2026-03-27 07:38:21 +00:00

1 line
43 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"index.umd.cjs","names":[],"sources":["../../../../../node_modules/.pnpm/@tmagic+form-schema@1.7.9_typescript@5.9.3/node_modules/@tmagic/form-schema/dist/es/index.js","../../../../../node_modules/.pnpm/@tmagic+vue-button@1.0.0_@tmagic+core@1.7.9_typescript@5.9.3__@tmagic+vue-runtime-help@_a8bb8634c3e85a9b0f1399ed8e6b54c3/node_modules/@tmagic/vue-button/src/formConfig.ts","../../../../../node_modules/.pnpm/@tmagic+schema@1.7.9_typescript@5.9.3/node_modules/@tmagic/schema/dist/es/index.js","../../../../../node_modules/.pnpm/@tmagic+utils@1.7.9_@tmagic+schema@1.7.9_typescript@5.9.3__typescript@5.9.3/node_modules/@tmagic/utils/dist/es/dom.js","../../../../../node_modules/.pnpm/@tmagic+utils@1.7.9_@tmagic+schema@1.7.9_typescript@5.9.3__typescript@5.9.3/node_modules/@tmagic/utils/dist/es/index.js","../../../../../node_modules/.pnpm/@tmagic+vue-container@2.0.0_@tmagic+core@1.7.9_typescript@5.9.3__@tmagic+vue-runtime-he_6d2cd864d4eadb33a0b7c401a1ffad08/node_modules/@tmagic/vue-container/src/formConfig.ts","../../../../../node_modules/.pnpm/@tmagic+vue-img@1.0.0_@tmagic+core@1.7.9_typescript@5.9.3__@tmagic+vue-runtime-help@2.0_2bf3da347b8baafc0aa7b6a8364c2a4b/node_modules/@tmagic/vue-img/src/formConfig.ts","../../../../../node_modules/.pnpm/@tmagic+vue-iterator-container@1.0.0_@tmagic+core@1.7.9_typescript@5.9.3__@tmagic+vue-r_23f3eb5318f8aab0279239040dec70f2/node_modules/@tmagic/vue-iterator-container/src/formConfig.ts","../../../../../node_modules/.pnpm/@tmagic+vue-overlay@1.0.0_@tmagic+core@1.7.9_typescript@5.9.3__@tmagic+vue-runtime-help_533cc96542eba220c95e08fb6689a45e/node_modules/@tmagic/vue-overlay/src/formConfig.ts","../../../../../node_modules/.pnpm/@tmagic+vue-page@1.0.0_@tmagic+core@1.7.9_typescript@5.9.3__@tmagic+vue-runtime-help@2._1ab91835190e75860e49664d1ea13de4/node_modules/@tmagic/vue-page/src/formConfig.ts","../../../../../node_modules/.pnpm/@tmagic+vue-page-fragment@1.0.0_@tmagic+core@1.7.9_typescript@5.9.3__@tmagic+vue-runtim_8a2a67861a6d9f575beaf349c5faa398/node_modules/@tmagic/vue-page-fragment/src/formConfig.ts","../../../../../node_modules/.pnpm/@tmagic+vue-page-fragment-container@1.0.0_@tmagic+core@1.7.9_typescript@5.9.3__@tmagic+_f34b50aedf81744975c8086dc4786e42/node_modules/@tmagic/vue-page-fragment-container/src/formConfig.ts","../../../../../node_modules/.pnpm/@tmagic+vue-qrcode@1.0.0_@tmagic+core@1.7.9_typescript@5.9.3__@tmagic+vue-runtime-help@_47714413f4d6dcc6616f0d88d2b8035a/node_modules/@tmagic/vue-qrcode/src/formConfig.ts","../../../../../node_modules/.pnpm/@tmagic+vue-text@1.0.0_@tmagic+core@1.7.9_typescript@5.9.3__@tmagic+vue-runtime-help@2._b5d8a983d271a6bbbc444be8a2dffd22/node_modules/@tmagic/vue-text/src/formConfig.ts","../../../.tmagic/config-entry.ts"],"sourcesContent":["//#region packages/form-schema/src/index.ts\nvar defineFormConfig = (config) => config;\nvar defineFormItem = (config) => config;\n//#endregion\nexport { defineFormConfig, defineFormItem };\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2025 Tencent. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { defineFormConfig } from '@tmagic/form-schema';\n\nexport default defineFormConfig([\n {\n name: 'className',\n type: 'data-source-input',\n text: 'class',\n },\n {\n text: '文本',\n name: 'text',\n type: 'data-source-input',\n },\n]);\n","//#region packages/schema/src/index.ts\nvar NodeType = /* @__PURE__ */ function(NodeType) {\n\t/** 容器 */\n\tNodeType[\"CONTAINER\"] = \"container\";\n\t/** 页面 */\n\tNodeType[\"PAGE\"] = \"page\";\n\t/** 根类型 */\n\tNodeType[\"ROOT\"] = \"app\";\n\t/** 页面片 */\n\tNodeType[\"PAGE_FRAGMENT\"] = \"page-fragment\";\n\treturn NodeType;\n}({});\nvar NODE_CONDS_KEY = \"displayConds\";\nvar NODE_CONDS_RESULT_KEY = \"displayCondsResultReverse\";\nvar NODE_DISABLE_DATA_SOURCE_KEY = \"_tmagic_node_disabled_data_source\";\nvar NODE_DISABLE_CODE_BLOCK_KEY = \"_tmagic_node_disabled_code_block\";\nvar ActionType = /* @__PURE__ */ function(ActionType) {\n\t/** 联动组件 */\n\tActionType[\"COMP\"] = \"comp\";\n\t/** 联动代码 */\n\tActionType[\"CODE\"] = \"code\";\n\t/** 数据源 */\n\tActionType[\"DATA_SOURCE\"] = \"data-source\";\n\treturn ActionType;\n}({});\nvar HookType = /* @__PURE__ */ function(HookType) {\n\t/** 代码块钩子标识 */\n\tHookType[\"CODE\"] = \"code\";\n\treturn HookType;\n}({});\nvar HookCodeType = /* @__PURE__ */ function(HookCodeType) {\n\t/** 代码块 */\n\tHookCodeType[\"CODE\"] = \"code\";\n\t/** 数据源方法 */\n\tHookCodeType[\"DATA_SOURCE_METHOD\"] = \"data-source-method\";\n\treturn HookCodeType;\n}({});\n//#endregion\nexport { ActionType, HookCodeType, HookType, NODE_CONDS_KEY, NODE_CONDS_RESULT_KEY, NODE_DISABLE_CODE_BLOCK_KEY, NODE_DISABLE_DATA_SOURCE_KEY, NodeType };\n","//#region packages/utils/src/dom.ts\nvar asyncLoadJs = (() => {\n\tconst documentMap = /* @__PURE__ */ new Map();\n\treturn (url, crossOrigin, document = globalThis.document) => {\n\t\tlet loaded = documentMap.get(document);\n\t\tif (!loaded) {\n\t\t\tloaded = /* @__PURE__ */ new Map();\n\t\t\tdocumentMap.set(document, loaded);\n\t\t}\n\t\tif (loaded.get(url)) return loaded.get(url);\n\t\tconst load = new Promise((resolve, reject) => {\n\t\t\tconst script = document.createElement(\"script\");\n\t\t\tscript.type = \"text/javascript\";\n\t\t\tif (crossOrigin) script.crossOrigin = crossOrigin;\n\t\t\tscript.src = url;\n\t\t\tdocument.body.appendChild(script);\n\t\t\tscript.onload = () => {\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\tscript.onerror = () => {\n\t\t\t\treject(/* @__PURE__ */ new Error(\"加载失败\"));\n\t\t\t};\n\t\t\tsetTimeout(() => {\n\t\t\t\treject(/* @__PURE__ */ new Error(\"timeout\"));\n\t\t\t}, 60 * 1e3);\n\t\t}).catch((err) => {\n\t\t\tloaded.delete(url);\n\t\t\tthrow err;\n\t\t});\n\t\tloaded.set(url, load);\n\t\treturn loaded.get(url);\n\t};\n})();\nvar asyncLoadCss = (() => {\n\tconst documentMap = /* @__PURE__ */ new Map();\n\treturn (url, document = globalThis.document) => {\n\t\tlet loaded = documentMap.get(document);\n\t\tif (!loaded) {\n\t\t\tloaded = /* @__PURE__ */ new Map();\n\t\t\tdocumentMap.set(document, loaded);\n\t\t}\n\t\tif (loaded.get(url)) return loaded.get(url);\n\t\tconst load = new Promise((resolve, reject) => {\n\t\t\tconst node = document.createElement(\"link\");\n\t\t\tnode.rel = \"stylesheet\";\n\t\t\tnode.href = url;\n\t\t\tdocument.head.appendChild(node);\n\t\t\tnode.onload = () => {\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\tnode.onerror = () => {\n\t\t\t\treject(/* @__PURE__ */ new Error(\"加载失败\"));\n\t\t\t};\n\t\t\tsetTimeout(() => {\n\t\t\t\treject(/* @__PURE__ */ new Error(\"timeout\"));\n\t\t\t}, 60 * 1e3);\n\t\t}).catch((err) => {\n\t\t\tloaded.delete(url);\n\t\t\tthrow err;\n\t\t});\n\t\tloaded.set(url, load);\n\t\treturn loaded.get(url);\n\t};\n})();\nvar addClassName = (el, doc, className) => {\n\tconst oldEl = doc.querySelector(`.${className}`);\n\tif (oldEl && oldEl !== el) removeClassName(oldEl, className);\n\tif (!el.classList.contains(className)) el.classList.add(className);\n};\nvar removeClassName = (el, ...className) => {\n\tel.classList.remove(...className);\n};\nvar removeClassNameByClassName = (doc, className) => {\n\tconst el = doc.querySelector(`.${className}`);\n\tel?.classList.remove(className);\n\treturn el;\n};\nvar injectStyle = (doc, style) => {\n\tconst styleEl = doc.createElement(\"style\");\n\tstyleEl.innerHTML = style;\n\tdoc.head.appendChild(styleEl);\n\treturn styleEl;\n};\nvar createDiv = ({ className, cssText }) => {\n\tconst el = globalThis.document.createElement(\"div\");\n\tel.className = className;\n\tel.style.cssText = cssText;\n\treturn el;\n};\nvar getDocument = () => globalThis.document;\nvar calcValueByFontsize = (doc, value) => {\n\tif (!doc) return value;\n\tconst { fontSize } = doc.documentElement.style;\n\tif (fontSize) {\n\t\tconst times = globalThis.parseFloat(fontSize) / 100;\n\t\treturn Number((value / times).toFixed(2));\n\t}\n\treturn value;\n};\nvar dslDomRelateConfig = {\n\tgetIdFromEl: (el) => el?.dataset?.tmagicId,\n\tgetElById: (doc, id) => doc?.querySelector(`[data-tmagic-id=\"${id}\"]`),\n\tsetIdToEl: (el, id) => {\n\t\tel.dataset.tmagicId = `${id}`;\n\t}\n};\nvar setDslDomRelateConfig = (name, value) => {\n\tdslDomRelateConfig[name] = value;\n};\nvar getIdFromEl = () => dslDomRelateConfig.getIdFromEl;\nvar getElById = () => dslDomRelateConfig.getElById;\nvar setIdToEl = () => dslDomRelateConfig.setIdToEl;\n//#endregion\nexport { addClassName, asyncLoadCss, asyncLoadJs, calcValueByFontsize, createDiv, getDocument, getElById, getIdFromEl, injectStyle, removeClassName, removeClassNameByClassName, setDslDomRelateConfig, setIdToEl };\n","import { addClassName, asyncLoadCss, asyncLoadJs, calcValueByFontsize, createDiv, getDocument, getElById, getIdFromEl, injectStyle, removeClassName, removeClassNameByClassName, setDslDomRelateConfig, setIdToEl } from \"./dom.js\";\nimport { cloneDeep, set } from \"lodash-es\";\nimport { NodeType } from \"@tmagic/schema\";\n//#region packages/utils/src/index.ts\nvar _globalThis;\nvar getGlobalThis = () => _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\nvar sleep = (ms) => new Promise((resolve) => {\n\tconst timer = setTimeout(() => {\n\t\tclearTimeout(timer);\n\t\tresolve();\n\t}, ms);\n});\nvar toLine = (name = \"\") => name.replace(/\\B([A-Z])/g, \"-$1\").toLowerCase();\nvar toHump = (name = \"\") => name.replace(/-(\\w)/g, (_all, letter) => letter.toUpperCase());\nvar emptyFn = () => void 0;\n/**\n* 通过id获取组件在应用的子孙路径\n* @param {number | string} id 组件id\n* @param {Array} data 要查找的根容器节点\n* @return {Array} 组件在data中的子孙路径\n*/\nvar getNodePath = (id, data = []) => {\n\tconst path = [];\n\tconst get = function(id, data) {\n\t\tif (!Array.isArray(data)) return null;\n\t\tfor (let i = 0, l = data.length; i < l; i++) {\n\t\t\tconst item = data[i];\n\t\t\tpath.push(item);\n\t\t\tif (`${item.id}` === `${id}`) return item;\n\t\t\tif (item.items) {\n\t\t\t\tconst node = get(id, item.items);\n\t\t\t\tif (node) return node;\n\t\t\t}\n\t\t\tpath.pop();\n\t\t}\n\t\treturn null;\n\t};\n\tget(id, data);\n\treturn path;\n};\nvar getNodeInfo = (id, root) => {\n\tconst info = {\n\t\tnode: null,\n\t\tparent: null,\n\t\tpage: null\n\t};\n\tif (!root) return info;\n\tif (id === root.id) {\n\t\tinfo.node = root;\n\t\treturn info;\n\t}\n\tconst path = getNodePath(id, root.items);\n\tif (!path.length) return info;\n\tpath.unshift(root);\n\tinfo.node = path[path.length - 1];\n\tinfo.parent = path[path.length - 2];\n\tpath.forEach((item) => {\n\t\tif (isPage(item) || isPageFragment(item)) {\n\t\t\tinfo.page = item;\n\t\t\treturn;\n\t\t}\n\t});\n\treturn info;\n};\nvar filterXSS = (str) => str.replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/'/g, \"&apos;\");\nvar getUrlParam = (param, url) => {\n\tconst u = url || location.href;\n\tconst reg = new RegExp(`[?&#]${param}=([^&#]+)`, \"gi\");\n\tconst matches = u.match(reg);\n\tlet strArr;\n\tif (matches && matches.length > 0) {\n\t\tstrArr = matches[matches.length - 1].split(\"=\");\n\t\tif (strArr && strArr.length > 1) return filterXSS(strArr[1]);\n\t\treturn \"\";\n\t}\n\treturn \"\";\n};\n/**\n* 设置url中指定的参数\n*\n* @param {string}\n* name [参数名]\n* @param {string}\n* value [参数值]\n* @param {string}\n* url [发生替换的url地址|默认为location.href]\n* @return {string} [返回处理后的url]\n*/\nvar setUrlParam = (name, value, url = globalThis.location.href) => {\n\tconst reg = new RegExp(`[?&#]${name}=([^&#]*)`, \"gi\");\n\tconst matches = url.match(reg);\n\tconst key = `{key${(/* @__PURE__ */ new Date()).getTime()}}`;\n\tlet strArr;\n\tif (matches && matches.length > 0) strArr = matches[matches.length - 1];\n\telse strArr = \"\";\n\tconst extra = `${name}=${value}`;\n\tif (strArr) {\n\t\tconst first = strArr.charAt(0);\n\t\turl = url.replace(strArr, key);\n\t\turl = url.replace(key, value ? first + extra : \"\");\n\t} else if (value) if (url.indexOf(\"?\") > -1) url += `&${extra}`;\n\telse url += `?${extra}`;\n\treturn url;\n};\nvar getSearchObj = (search = globalThis.location.search ? globalThis.location.search.substring(1) : \"\") => {\n\treturn search.split(\"&\").reduce((obj, item) => {\n\t\tconst [a, b = \"\"] = item.split(\"=\");\n\t\treturn {\n\t\t\t...obj,\n\t\t\t[a]: b\n\t\t};\n\t}, {});\n};\nvar delQueStr = (url, ref) => {\n\tlet str = \"\";\n\tif (url.indexOf(\"?\") !== -1) str = url.substring(url.indexOf(\"?\") + 1);\n\telse return url;\n\tlet arr = [];\n\tlet returnurl = \"\";\n\tconst isHit = Array.isArray(ref) ? function(v) {\n\t\treturn ~ref.indexOf(v);\n\t} : function(v) {\n\t\treturn v === ref;\n\t};\n\tif (str.indexOf(\"&\") !== -1) {\n\t\tarr = str.split(\"&\");\n\t\tfor (let i = 0, len = arr.length; i < len; i++) if (!isHit(arr[i].split(\"=\")[0])) returnurl = `${returnurl + arr[i].split(\"=\")[0]}=${arr[i].split(\"=\")[1]}&`;\n\t\treturn returnurl ? `${url.substr(0, url.indexOf(\"?\"))}?${returnurl.substr(0, returnurl.length - 1)}` : url.substr(0, url.indexOf(\"?\"));\n\t}\n\tarr = str.split(\"=\");\n\tif (isHit(arr[0])) return url.substr(0, url.indexOf(\"?\"));\n\treturn url;\n};\nvar isObject = (obj) => Object.prototype.toString.call(obj) === \"[object Object]\";\nvar isPop = (node) => Boolean(node?.type?.toLowerCase().endsWith(\"pop\"));\nvar isPage = (node) => {\n\tif (!node) return false;\n\treturn Boolean(node.type?.toLowerCase() === NodeType.PAGE);\n};\nvar isPageFragment = (node) => {\n\tif (!node) return false;\n\treturn Boolean(node.type?.toLowerCase() === NodeType.PAGE_FRAGMENT);\n};\nvar isNumber = (value) => typeof value === \"number\" && !isNaN(value) || /^(-?\\d+)(\\.\\d+)?$/.test(`${value}`);\nvar getHost = (targetUrl) => targetUrl.match(/\\/\\/([^/]+)/)?.[1];\nvar isSameDomain = (targetUrl = \"\", source = globalThis.location.host) => {\n\tif (!/^(http[s]?:)?\\/\\//.test(targetUrl)) return true;\n\treturn getHost(targetUrl) === source;\n};\n/**\n* 生成指定位数的GUID无【-】格式\n* @param digit 位数默认值8\n* @returns\n*/\nvar guid = (digit = 8) => \"x\".repeat(digit).replace(/[xy]/g, (c) => {\n\tconst r = Math.random() * 16 | 0;\n\treturn (c === \"x\" ? r : r & 3 | 8).toString(16);\n});\nvar getKeysArray = (keys) => `${keys}`.replace(/\\[(\\d+)\\]/g, \".$1\").split(\".\");\nvar getValueByKeyPath = (keys = \"\", data = {}) => {\n\treturn (Array.isArray(keys) ? keys : getKeysArray(keys)).reduce((accumulator, currentValue) => {\n\t\tif (isObject(accumulator)) return accumulator[currentValue];\n\t\tif (Array.isArray(accumulator) && /^\\d*$/.test(`${currentValue}`)) return accumulator[currentValue];\n\t\tthrow new Error(`${data}中不存在${keys}`);\n\t}, data);\n};\nvar setValueByKeyPath = (keys, value, data = {}) => set(data, keys, value);\nvar getNodes = (ids, data = []) => {\n\tconst nodes = [];\n\tconst get = function(ids, data) {\n\t\tif (!Array.isArray(data)) return;\n\t\tfor (const item of data) {\n\t\t\tconst index = ids.findIndex((id) => `${id}` === `${item.id}`);\n\t\t\tif (index > -1) {\n\t\t\t\tids.splice(index, 1);\n\t\t\t\tnodes.push(item);\n\t\t\t}\n\t\t\tif (item.items) get(ids, item.items);\n\t\t}\n\t};\n\tget(ids, data);\n\treturn nodes;\n};\nvar getDepKeys = (dataSourceDeps = {}, nodeId) => Array.from(Object.values(dataSourceDeps).reduce((prev, cur) => {\n\t(cur[nodeId]?.keys || []).forEach((key) => prev.add(key));\n\treturn prev;\n}, /* @__PURE__ */ new Set()));\nvar getDepNodeIds = (dataSourceDeps = {}) => Array.from(Object.values(dataSourceDeps).reduce((prev, cur) => {\n\tObject.keys(cur).forEach((id) => {\n\t\tprev.add(id);\n\t});\n\treturn prev;\n}, /* @__PURE__ */ new Set()));\n/**\n* 将新节点更新到data或者parentId对应的节点的子节点中\n* @param newNode 新节点\n* @param data 需要修改的数据\n* @param parentId 父节点 id\n*/\nvar replaceChildNode = (newNode, data, parentId) => {\n\tconst path = getNodePath(newNode.id, data);\n\tconst node = path.pop();\n\tlet parent = path.pop();\n\tif (parentId) parent = getNodePath(parentId, data).pop();\n\tif (!node) {\n\t\tconsole.warn(`未找到目标节点(${newNode.id})`);\n\t\treturn;\n\t}\n\tif (!parent) {\n\t\tconsole.warn(`未找到父节点(${newNode.id})`);\n\t\treturn;\n\t}\n\tconst index = parent.items?.findIndex((child) => child.id === node.id);\n\tparent.items.splice(index, 1, newNode);\n};\nvar DSL_NODE_KEY_COPY_PREFIX = \"__tmagic__\";\nvar IS_DSL_NODE_KEY = \"__tmagic__dslNode\";\nvar PAGE_FRAGMENT_CONTAINER_ID_KEY = \"tmagic-page-fragment-container-id\";\nvar compiledNode = (compile, node, dataSourceDeps = {}, sourceId) => {\n\tlet keys = [];\n\tif (!sourceId) keys = getDepKeys(dataSourceDeps, node.id);\n\telse keys = dataSourceDeps[sourceId]?.[node.id].keys || [];\n\tkeys.forEach((key) => {\n\t\tconst keys = getKeysArray(key);\n\t\tconst cacheKey = keys.map((key, index) => {\n\t\t\tif (index < keys.length - 1) return key;\n\t\t\treturn `${DSL_NODE_KEY_COPY_PREFIX}${key}`;\n\t\t});\n\t\tlet templateValue = getValueByKeyPath(cacheKey, node);\n\t\tif (typeof templateValue === \"undefined\") try {\n\t\t\tconst value = getValueByKeyPath(key, node);\n\t\t\tsetValueByKeyPath(cacheKey.join(\".\"), value, node);\n\t\t\ttemplateValue = value;\n\t\t} catch (e) {\n\t\t\tconsole.warn(e);\n\t\t\treturn;\n\t\t}\n\t\tlet newValue;\n\t\ttry {\n\t\t\tnewValue = compile(templateValue);\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t\tnewValue = \"\";\n\t\t}\n\t\tsetValueByKeyPath(key, newValue, node);\n\t});\n\treturn node;\n};\nvar compiledCond = (op, fieldValue, inputValue, range = []) => {\n\tif (typeof fieldValue === \"string\" && typeof inputValue === \"undefined\") inputValue = \"\";\n\tswitch (op) {\n\t\tcase \"is\": return fieldValue === inputValue;\n\t\tcase \"not\": return fieldValue !== inputValue;\n\t\tcase \"=\": return fieldValue === inputValue;\n\t\tcase \"!=\": return fieldValue !== inputValue;\n\t\tcase \">\": return fieldValue > inputValue;\n\t\tcase \">=\": return fieldValue >= inputValue;\n\t\tcase \"<\": return fieldValue < inputValue;\n\t\tcase \"<=\": return fieldValue <= inputValue;\n\t\tcase \"between\": return range.length > 1 && fieldValue >= range[0] && fieldValue <= range[1];\n\t\tcase \"not_between\": return range.length < 2 || fieldValue < range[0] || fieldValue > range[1];\n\t\tcase \"include\": return fieldValue?.includes?.(inputValue);\n\t\tcase \"not_include\": return typeof fieldValue === \"undefined\" || !fieldValue.includes?.(inputValue);\n\t\tdefault: break;\n\t}\n\treturn false;\n};\nvar getDefaultValueFromFields = (fields) => {\n\tconst data = {};\n\tconst defaultValue = {\n\t\tstring: void 0,\n\t\tobject: {},\n\t\tarray: [],\n\t\tboolean: void 0,\n\t\tnumber: void 0,\n\t\tnull: null,\n\t\tany: void 0\n\t};\n\tfields.forEach((field) => {\n\t\tif (typeof field.defaultValue !== \"undefined\") {\n\t\t\tif (field.type === \"array\" && !Array.isArray(field.defaultValue)) {\n\t\t\t\tdata[field.name] = defaultValue.array;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (field.type === \"object\" && !isObject(field.defaultValue)) {\n\t\t\t\tif (typeof field.defaultValue === \"string\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tdata[field.name] = JSON.parse(field.defaultValue);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tdata[field.name] = defaultValue.object;\n\t\t\t\t\t\tconsole.warn(\"defaultValue 解析失败\", field.defaultValue, e);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tdata[field.name] = defaultValue.object;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdata[field.name] = cloneDeep(field.defaultValue);\n\t\t\treturn;\n\t\t}\n\t\tif (field.type === \"object\") {\n\t\t\tdata[field.name] = field.fields ? getDefaultValueFromFields(field.fields) : defaultValue.object;\n\t\t\treturn;\n\t\t}\n\t\tif (field.type) {\n\t\t\tdata[field.name] = defaultValue[field.type];\n\t\t\treturn;\n\t\t}\n\t\tdata[field.name] = void 0;\n\t});\n\treturn data;\n};\nvar DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX = \"ds-field::\";\nvar DATA_SOURCE_FIELDS_CHANGE_EVENT_PREFIX = \"ds-field-changed\";\nvar getKeys = Object.keys;\nvar calculatePercentage = (value, percentageStr) => {\n\treturn value * (globalThis.parseFloat(percentageStr) / 100);\n};\nvar isPercentage = (value) => /^(\\d+)(\\.\\d+)?%$/.test(`${value}`);\nvar convertToNumber = (value, parentValue = 0) => {\n\tif (typeof value === \"number\") return value;\n\tif (typeof value === \"string\" && isPercentage(value)) return calculatePercentage(parentValue, value);\n\treturn parseFloat(value);\n};\n/**\n* 添加参数到URL\n* @param obj 参数对象\n* @param global window对象\n* @param needReload 是否需要刷新\n*/\nvar addParamToUrl = (obj, global = globalThis, needReload = true) => {\n\tconst url = new URL(global.location.href);\n\tconst { searchParams } = url;\n\tfor (const [k, v] of Object.entries(obj)) searchParams.set(k, v);\n\tconst newUrl = url.toString();\n\tif (needReload) global.location.href = newUrl;\n\telse global.history.pushState({}, \"\", url);\n};\nvar dataSourceTemplateRegExp = /\\$\\{([\\s\\S]+?)\\}/g;\nvar isDslNode = (config) => typeof config[\"__tmagic__dslNode\"] === \"undefined\" || config[\"__tmagic__dslNode\"] === true;\nvar traverseNode = (node, cb, parents = [], evalCbAfter = false) => {\n\tif (!evalCbAfter) cb(node, parents);\n\tif (Array.isArray(node.items) && node.items.length) {\n\t\tparents.push(node);\n\t\tnode.items.forEach((item) => {\n\t\t\ttraverseNode(item, cb, [...parents], evalCbAfter);\n\t\t});\n\t}\n\tif (evalCbAfter) cb(node, parents);\n};\nvar isValueIncludeDataSource = (value) => {\n\tif (typeof value === \"string\" && /\\$\\{([\\s\\S]+?)\\}/.test(value)) return true;\n\tif (Array.isArray(value) && `${value[0]}`.startsWith(\"ds-field::\")) return true;\n\tif (value?.isBindDataSource && value.dataSourceId) return true;\n\tif (value?.isBindDataSourceField && value.dataSourceId) return true;\n\treturn false;\n};\nvar removeDataSourceFieldPrefix = (id) => id?.replace(\"ds-field::\", \"\") || \"\";\n//#endregion\nexport { DATA_SOURCE_FIELDS_CHANGE_EVENT_PREFIX, DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, DSL_NODE_KEY_COPY_PREFIX, IS_DSL_NODE_KEY, PAGE_FRAGMENT_CONTAINER_ID_KEY, addClassName, addParamToUrl, asyncLoadCss, asyncLoadJs, calcValueByFontsize, calculatePercentage, compiledCond, compiledNode, convertToNumber, createDiv, dataSourceTemplateRegExp, delQueStr, emptyFn, filterXSS, getDefaultValueFromFields, getDepKeys, getDepNodeIds, getDocument, getElById, getGlobalThis, getHost, getIdFromEl, getKeys, getKeysArray, getNodeInfo, getNodePath, getNodes, getSearchObj, getUrlParam, getValueByKeyPath, guid, injectStyle, isDslNode, isNumber, isObject, isPage, isPageFragment, isPercentage, isPop, isSameDomain, isValueIncludeDataSource, removeClassName, removeClassNameByClassName, removeDataSourceFieldPrefix, replaceChildNode, setDslDomRelateConfig, setIdToEl, setUrlParam, setValueByKeyPath, sleep, toHump, toLine, traverseNode };\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2025 Tencent. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getElById } from '@tmagic/core';\nimport { defineFormConfig } from '@tmagic/form-schema';\n\nexport default defineFormConfig([\n {\n name: 'className',\n type: 'data-source-input',\n text: 'class',\n },\n {\n name: 'layout',\n text: '容器布局',\n type: 'select',\n defaultValue: 'absolute',\n options: [\n { value: 'absolute', text: '绝对定位' },\n { value: 'relative', text: '流式布局' },\n ],\n onChange: (formState: any, v: string, { model, setModel }: any) => {\n if (!model.style) return v;\n if (v === 'relative') {\n setModel('style.height', 'auto');\n } else {\n const el = getElById()(formState.stage?.renderer?.contentWindow.document, model.id);\n if (el) {\n setModel('style.height', el.getBoundingClientRect().height);\n }\n }\n },\n },\n]);\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2025 Tencent. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { defineFormConfig } from '@tmagic/form-schema';\n\nexport default defineFormConfig([\n {\n name: 'className',\n type: 'data-source-input',\n text: 'class',\n },\n {\n type: 'data-source-field-select',\n name: 'src',\n text: '图片',\n checkStrictly: false,\n dataSourceFieldType: ['string'],\n fieldConfig: {\n type: 'img-upload',\n },\n },\n {\n text: '链接',\n name: 'url',\n type: 'data-source-input',\n },\n]);\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2025 Tencent. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, NODE_CONDS_KEY } from '@tmagic/core';\nimport { defineFormConfig } from '@tmagic/form-schema';\n\nexport default defineFormConfig([\n {\n name: 'className',\n type: 'data-source-input',\n text: 'class',\n },\n {\n name: 'iteratorData',\n text: '数据源数据',\n value: 'value',\n dataSourceFieldType: ['array'],\n checkStrictly: true,\n type: 'data-source-field-select',\n onChange: (_vm: any, v: string[] = [], { setModel }: any) => {\n if (Array.isArray(v) && v.length > 1) {\n const [dsId, ...keys] = v;\n setModel('dsField', [dsId.replace(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, ''), ...keys]);\n } else {\n setModel('dsField', []);\n }\n },\n },\n {\n name: 'dsField',\n type: 'hidden',\n },\n {\n type: 'panel',\n title: '子项配置',\n name: 'itemConfig',\n items: [\n {\n type: 'display-conds',\n name: NODE_CONDS_KEY,\n titlePrefix: '条件组',\n defaultValue: [],\n },\n {\n name: 'layout',\n text: '容器布局',\n type: 'select',\n defaultValue: 'absolute',\n options: [\n { value: 'absolute', text: '绝对定位' },\n { value: 'relative', text: '流式布局', disabled: true },\n ],\n },\n {\n type: 'fieldset',\n legend: '样式',\n name: 'style',\n items: [\n {\n name: 'width',\n text: '宽度',\n },\n {\n name: 'height',\n text: '高度',\n },\n {\n text: 'overflow',\n name: 'overflow',\n type: 'select',\n options: [\n { text: 'visible', value: 'visible' },\n { text: 'hidden', value: 'hidden' },\n { text: 'clip', value: 'clip' },\n { text: 'scroll', value: 'scroll' },\n { text: 'auto', value: 'auto' },\n { text: 'overlay', value: 'overlay' },\n ],\n },\n {\n name: 'backgroundImage',\n text: '背景图',\n },\n {\n name: 'backgroundColor',\n text: '背景颜色',\n type: 'colorPicker',\n },\n {\n name: 'backgroundRepeat',\n text: '背景图重复',\n type: 'select',\n defaultValue: 'no-repeat',\n options: [\n { text: 'repeat', value: 'repeat' },\n { text: 'repeat-x', value: 'repeat-x' },\n { text: 'repeat-y', value: 'repeat-y' },\n { text: 'no-repeat', value: 'no-repeat' },\n { text: 'inherit', value: 'inherit' },\n ],\n },\n {\n name: 'backgroundSize',\n text: '背景图大小',\n defaultValue: '100% 100%',\n },\n ],\n },\n ],\n },\n]);\n","import { defineFormConfig } from '@tmagic/form-schema';\n\nexport default defineFormConfig([]);\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2025 Tencent. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getElById } from '@tmagic/core';\nimport { defineFormConfig } from '@tmagic/form-schema';\n\nexport default defineFormConfig([\n {\n text: '页面标识',\n name: 'name',\n disabled: true,\n extra: '在多页面的情况下用来指定要打开的页面',\n },\n {\n text: '页面标题',\n name: 'title',\n },\n {\n name: 'layout',\n text: '容器布局',\n type: 'select',\n defaultValue: 'absolute',\n options: [\n { value: 'absolute', text: '绝对定位' },\n { value: 'relative', text: '流式布局' },\n ],\n onChange: (formState: any, v: string, { model, setModel }: any) => {\n if (!model.style) return v;\n if (v === 'relative') {\n setModel('style.height', 'auto');\n } else {\n const el = getElById()(formState.stage?.renderer?.contentWindow.document, model.id);\n if (el) {\n setModel('style.height', el.getBoundingClientRect().height);\n }\n }\n },\n },\n {\n name: 'jsFiles',\n text: 'js',\n type: 'table',\n items: [\n {\n name: 'url',\n label: '链接',\n },\n ],\n },\n {\n name: 'cssFiles',\n text: 'css',\n type: 'table',\n items: [\n {\n name: 'url',\n label: '链接',\n },\n ],\n },\n {\n text: 'css',\n name: 'css',\n type: 'vs-code',\n language: 'css',\n autosize: {\n minRows: 3,\n maxRows: 20,\n },\n },\n]);\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2025 Tencent. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getElById } from '@tmagic/core';\nimport { defineFormConfig } from '@tmagic/form-schema';\n\nexport default defineFormConfig([\n {\n text: '页面片标识',\n name: 'name',\n disabled: true,\n },\n {\n text: '页面片标题',\n name: 'title',\n },\n {\n name: 'layout',\n text: '容器布局',\n type: 'select',\n defaultValue: 'absolute',\n options: [\n { value: 'absolute', text: '绝对定位' },\n { value: 'relative', text: '流式布局' },\n ],\n onChange: (formState: any, v: string, { model, setModel }: any) => {\n if (!model.style) return v;\n if (v === 'relative') {\n setModel('style.height', 'auto');\n } else {\n const el = getElById()(formState.stage?.renderer?.contentWindow.document, model.id);\n if (el) {\n setModel('style.height', el.getBoundingClientRect().height);\n }\n }\n },\n },\n]);\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2025 Tencent. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { defineFormConfig } from '@tmagic/form-schema';\n\nexport default defineFormConfig([\n {\n name: 'className',\n type: 'data-source-input',\n text: 'class',\n },\n {\n name: 'pageFragmentId',\n text: '页面片ID',\n type: 'page-fragment-select',\n },\n]);\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2025 Tencent. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { defineFormConfig } from '@tmagic/form-schema';\n\nexport default defineFormConfig([\n {\n name: 'className',\n type: 'data-source-input',\n text: 'class',\n },\n {\n text: '链接',\n name: 'url',\n type: 'data-source-input',\n },\n]);\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2025 Tencent. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { defineFormConfig } from '@tmagic/form-schema';\n\nexport default defineFormConfig([\n {\n name: 'className',\n type: 'data-source-input',\n text: 'class',\n },\n {\n name: 'text',\n text: '文本',\n type: 'data-source-input',\n },\n {\n name: 'multiple',\n text: '多行文本',\n type: 'switch',\n },\n]);\n","import button from '@tmagic/vue-button/src/formConfig';\nimport container from '@tmagic/vue-container/src/formConfig';\nimport img from '@tmagic/vue-img/src/formConfig';\nimport iteratorContainer from '@tmagic/vue-iterator-container/src/formConfig';\nimport overlay from '@tmagic/vue-overlay/src/formConfig';\nimport page from '@tmagic/vue-page/src/formConfig';\nimport pageFragment from '@tmagic/vue-page-fragment/src/formConfig';\nimport pageFragmentContainer from '@tmagic/vue-page-fragment-container/src/formConfig';\nimport qrcode from '@tmagic/vue-qrcode/src/formConfig';\nimport text from '@tmagic/vue-text/src/formConfig';\n\nconst configs: Record<string, any> = {\n 'button': button,\n 'container': container,\n 'img': img,\n 'iterator-container': iteratorContainer,\n 'overlay': overlay,\n 'page': page,\n 'page-fragment': pageFragment,\n 'page-fragment-container': pageFragmentContainer,\n 'qrcode': qrcode,\n 'text': text,\n};\n\nexport default configs;"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13],"mappings":"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"}