@tmagic/utils 1.4.7 → 1.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,8 +11,7 @@ const asyncLoadJs = /* @__PURE__ */ (() => {
11
11
  loaded = /* @__PURE__ */ new Map();
12
12
  documentMap.set(document, loaded);
13
13
  }
14
- if (loaded.get(url))
15
- return loaded.get(url);
14
+ if (loaded.get(url)) return loaded.get(url);
16
15
  const load = new Promise((resolve, reject) => {
17
16
  const script = document.createElement("script");
18
17
  script.type = "text/javascript";
@@ -46,8 +45,7 @@ const asyncLoadCss = /* @__PURE__ */ (() => {
46
45
  loaded = /* @__PURE__ */ new Map();
47
46
  documentMap.set(document, loaded);
48
47
  }
49
- if (loaded.get(url))
50
- return loaded.get(url);
48
+ if (loaded.get(url)) return loaded.get(url);
51
49
  const load = new Promise((resolve, reject) => {
52
50
  const node = document.createElement("link");
53
51
  node.rel = "stylesheet";
@@ -72,10 +70,8 @@ const asyncLoadCss = /* @__PURE__ */ (() => {
72
70
  })();
73
71
  const addClassName = (el, doc, className) => {
74
72
  const oldEl = doc.querySelector(`.${className}`);
75
- if (oldEl && oldEl !== el)
76
- removeClassName(oldEl, className);
77
- if (!el.classList.contains(className))
78
- el.classList.add(className);
73
+ if (oldEl && oldEl !== el) removeClassName(oldEl, className);
74
+ if (!el.classList.contains(className)) el.classList.add(className);
79
75
  };
80
76
  const removeClassName = (el, ...className) => {
81
77
  el.classList.remove(...className);
@@ -99,8 +95,7 @@ const createDiv = ({ className, cssText }) => {
99
95
  };
100
96
  const getDocument = () => globalThis.document;
101
97
  const calcValueByFontsize = (doc, value) => {
102
- if (!doc)
103
- return value;
98
+ if (!doc) return value;
104
99
  const { fontSize } = doc.documentElement.style;
105
100
  if (fontSize) {
106
101
  const times = globalThis.parseFloat(fontSize) / 100;
@@ -179,21 +174,18 @@ const getUrlParam = (param, url) => {
179
174
  const isObject = (obj) => Object.prototype.toString.call(obj) === "[object Object]";
180
175
  const isPop = (node) => Boolean(node?.type?.toLowerCase().endsWith("pop"));
181
176
  const isPage = (node) => {
182
- if (!node)
183
- return false;
177
+ if (!node) return false;
184
178
  return Boolean(node.type?.toLowerCase() === NodeType.PAGE);
185
179
  };
186
180
  const isPageFragment = (node) => {
187
- if (!node)
188
- return false;
181
+ if (!node) return false;
189
182
  return Boolean(node.type?.toLowerCase() === NodeType.PAGE_FRAGMENT);
190
183
  };
191
184
  const isNumber = (value) => /^(-?\d+)(\.\d+)?$/.test(value);
192
185
  const getHost = (targetUrl) => targetUrl.match(/\/\/([^/]+)/)?.[1];
193
186
  const isSameDomain = (targetUrl = "", source = globalThis.location.host) => {
194
187
  const isHttpUrl = /^(http[s]?:)?\/\//.test(targetUrl);
195
- if (!isHttpUrl)
196
- return true;
188
+ if (!isHttpUrl) return true;
197
189
  return getHost(targetUrl) === source;
198
190
  };
199
191
  const guid = (digit = 8) => "x".repeat(digit).replace(/[xy]/g, (c) => {
@@ -253,10 +245,8 @@ const replaceChildNode = (newNode, data, parentId) => {
253
245
  if (parentId) {
254
246
  parent = getNodePath(parentId, data).pop();
255
247
  }
256
- if (!node)
257
- throw new Error("未找到目标节点");
258
- if (!parent)
259
- throw new Error("未找到父节点");
248
+ if (!node) throw new Error("未找到目标节点");
249
+ if (!parent) throw new Error("未找到父节点");
260
250
  const index = parent.items?.findIndex((child) => child.id === node.id);
261
251
  parent.items.splice(index, 1, newNode);
262
252
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tmagic-utils.js","sources":["../src/dom.ts","../src/index.ts"],"sourcesContent":["export const asyncLoadJs = (() => {\n // 正在加载或加载成功的存入此Map中\n const documentMap = new Map();\n\n return (url: string, crossOrigin?: string, document = globalThis.document) => {\n let loaded = documentMap.get(document);\n if (!loaded) {\n loaded = new Map();\n documentMap.set(document, loaded);\n }\n\n // 正在加载或已经加载成功的,直接返回\n if (loaded.get(url)) return loaded.get(url);\n\n const load = new Promise<void>((resolve, reject) => {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n if (crossOrigin) {\n script.crossOrigin = crossOrigin;\n }\n script.src = url;\n document.body.appendChild(script);\n script.onload = () => {\n resolve();\n };\n script.onerror = () => {\n reject(new Error('加载失败'));\n };\n setTimeout(() => {\n reject(new Error('timeout'));\n }, 60 * 1000);\n }).catch((err) => {\n // 加载失败的,从map中移除,第二次加载时,可以再次执行加载\n loaded.delete(url);\n throw err;\n });\n\n loaded.set(url, load);\n return loaded.get(url);\n };\n})();\n\nexport const asyncLoadCss = (() => {\n // 正在加载或加载成功的存入此Map中\n const documentMap = new Map();\n\n return (url: string, document = globalThis.document) => {\n let loaded = documentMap.get(document);\n if (!loaded) {\n loaded = new Map();\n documentMap.set(document, loaded);\n }\n\n // 正在加载或已经加载成功的,直接返回\n if (loaded.get(url)) return loaded.get(url);\n\n const load = new Promise<void>((resolve, reject) => {\n const node = document.createElement('link');\n node.rel = 'stylesheet';\n node.href = url;\n document.head.appendChild(node);\n node.onload = () => {\n resolve();\n };\n node.onerror = () => {\n reject(new Error('加载失败'));\n };\n setTimeout(() => {\n reject(new Error('timeout'));\n }, 60 * 1000);\n }).catch((err) => {\n // 加载失败的,从map中移除,第二次加载时,可以再次执行加载\n loaded.delete(url);\n throw err;\n });\n\n loaded.set(url, load);\n return loaded.get(url);\n };\n})();\n\nexport const addClassName = (el: Element, doc: Document, className: string) => {\n const oldEl = doc.querySelector(`.${className}`);\n if (oldEl && oldEl !== el) removeClassName(oldEl, className);\n if (!el.classList.contains(className)) el.classList.add(className);\n};\n\nexport const removeClassName = (el: Element, ...className: string[]) => {\n el.classList.remove(...className);\n};\n\nexport const removeClassNameByClassName = (doc: Document, className: string) => {\n const el: HTMLElement | null = doc.querySelector(`.${className}`);\n el?.classList.remove(className);\n return el;\n};\n\nexport const injectStyle = (doc: Document, style: string) => {\n const styleEl = doc.createElement('style');\n styleEl.innerHTML = style;\n doc.head.appendChild(styleEl);\n return styleEl;\n};\n\nexport const createDiv = ({ className, cssText }: { className: string; cssText: string }) => {\n const el = globalThis.document.createElement('div');\n el.className = className;\n el.style.cssText = cssText;\n return el;\n};\n\nexport const getDocument = () => globalThis.document;\n\nexport const calcValueByFontsize = (doc: Document | undefined, value: number) => {\n if (!doc) return value;\n const { fontSize } = doc.documentElement.style;\n\n if (fontSize) {\n const times = globalThis.parseFloat(fontSize) / 100;\n return Number((value / times).toFixed(2));\n }\n\n return value;\n};\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2023 THL A29 Limited, a Tencent company. 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 dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport { cloneDeep, set as objectSet } from 'lodash-es';\n\nimport type { DataSchema, DataSourceDeps, Id, MComponent, MNode } from '@tmagic/schema';\nimport { NodeType } from '@tmagic/schema';\n\nexport * from './dom';\n\nexport const sleep = (ms: number): Promise<void> =>\n new Promise((resolve) => {\n const timer = setTimeout(() => {\n clearTimeout(timer);\n resolve();\n }, ms);\n });\n\nexport const datetimeFormatter = (\n v: string | Date,\n defaultValue = '-',\n format = 'YYYY-MM-DD HH:mm:ss',\n): string | number => {\n if (v) {\n let time = null;\n if (['x', 'timestamp'].includes(format)) {\n time = dayjs(v).valueOf();\n } else if ((typeof v === 'string' && v.includes('Z')) || v.constructor === Date) {\n dayjs.extend(utc);\n // UTC字符串时间或Date对象格式化为北京时间\n time = dayjs(v).utcOffset(8).format(format);\n } else {\n time = dayjs(v).format(format);\n }\n\n // 格式化为北京时间\n if (time !== 'Invalid Date') {\n return time;\n }\n return defaultValue;\n }\n return defaultValue;\n};\n\n// 驼峰转换横线\nexport const toLine = (name = '') => name.replace(/\\B([A-Z])/g, '-$1').toLowerCase();\n\nexport const toHump = (name = ''): string => name.replace(/-(\\w)/g, (all, letter) => letter.toUpperCase());\n\nexport const emptyFn = (): any => undefined;\n\n/**\n * 通过id获取组件在应用的子孙路径\n * @param {number | string} id 组件id\n * @param {Array} data 要查找的根容器节点\n * @return {Array} 组件在data中的子孙路径\n */\nexport const getNodePath = (id: Id, data: MNode[] = []): MNode[] => {\n const path: MNode[] = [];\n\n const get = function (id: number | string, data: MNode[]): MNode | null {\n if (!Array.isArray(data)) {\n return null;\n }\n\n for (let i = 0, l = data.length; i < l; i++) {\n const item = data[i];\n\n path.push(item);\n if (`${item.id}` === `${id}`) {\n return item;\n }\n\n if (item.items) {\n const node = get(id, item.items);\n if (node) {\n return node;\n }\n }\n\n path.pop();\n }\n\n return null;\n };\n\n get(id, data);\n\n return path;\n};\n\nexport const filterXSS = (str: string) =>\n str.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\"/g, '&quot;').replace(/'/g, '&apos;');\n\nexport const getUrlParam = (param: string, url?: string) => {\n const u = url || location.href;\n const reg = new RegExp(`[?&#]${param}=([^&#]+)`, 'gi');\n\n const matches = u.match(reg);\n let strArr;\n if (matches && matches.length > 0) {\n strArr = matches[matches.length - 1].split('=');\n if (strArr && strArr.length > 1) {\n // 过滤XSS字符\n return filterXSS(strArr[1]);\n }\n return '';\n }\n return '';\n};\n\nexport const isObject = (obj: any) => Object.prototype.toString.call(obj) === '[object Object]';\n\nexport const isPop = (node: MComponent | null): boolean => Boolean(node?.type?.toLowerCase().endsWith('pop'));\n\nexport const isPage = (node?: MComponent | null): boolean => {\n if (!node) return false;\n return Boolean(node.type?.toLowerCase() === NodeType.PAGE);\n};\n\nexport const isPageFragment = (node?: MComponent | null): boolean => {\n if (!node) return false;\n return Boolean(node.type?.toLowerCase() === NodeType.PAGE_FRAGMENT);\n};\n\nexport const isNumber = (value: string) => /^(-?\\d+)(\\.\\d+)?$/.test(value);\n\nexport const getHost = (targetUrl: string) => targetUrl.match(/\\/\\/([^/]+)/)?.[1];\n\nexport const isSameDomain = (targetUrl = '', source = globalThis.location.host) => {\n const isHttpUrl = /^(http[s]?:)?\\/\\//.test(targetUrl);\n\n if (!isHttpUrl) return true;\n\n return getHost(targetUrl) === source;\n};\n\n/**\n * 生成指定位数的GUID,无【-】格式\n * @param digit 位数,默认值8\n * @returns\n */\nexport const guid = (digit = 8): string =>\n 'x'.repeat(digit).replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n\nexport const getValueByKeyPath = (\n keys: number | string | string[] = '',\n data: Record<string | number, any> = {},\n): any => {\n // 将 array[0] 转成 array.0\n const keyArray = Array.isArray(keys) ? keys : `${keys}`.replaceAll(/\\[(\\d+)\\]/g, '.$1').split('.');\n return keyArray.reduce((accumulator, currentValue: any) => {\n if (isObject(accumulator) || Array.isArray(accumulator)) {\n return accumulator[currentValue];\n }\n\n return void 0;\n }, data);\n};\n\nexport const setValueByKeyPath = (keys: string | number, value: any, data: Record<string | number, any> = {}): any =>\n objectSet(data, keys, value);\n\nexport const getNodes = (ids: Id[], data: MNode[] = []): MNode[] => {\n const nodes: MNode[] = [];\n\n const get = function (ids: Id[], data: MNode[]) {\n if (!Array.isArray(data)) {\n return;\n }\n\n for (let i = 0, l = data.length; i < l; i++) {\n const item = data[i];\n const index = ids.findIndex((id: Id) => `${id}` === `${item.id}`);\n\n if (index > -1) {\n ids.slice(index, 1);\n nodes.push(item);\n }\n\n if (item.items) {\n get(ids, item.items);\n }\n }\n };\n\n get(ids, data);\n\n return nodes;\n};\n\nexport const getDepKeys = (dataSourceDeps: DataSourceDeps = {}, nodeId: Id) =>\n Array.from(\n Object.values(dataSourceDeps).reduce((prev, cur) => {\n (cur[nodeId]?.keys || []).forEach((key) => prev.add(key));\n return prev;\n }, new Set<Id>()),\n );\n\nexport const getDepNodeIds = (dataSourceDeps: DataSourceDeps = {}) =>\n Array.from(\n Object.values(dataSourceDeps).reduce((prev, cur) => {\n Object.keys(cur).forEach((id) => {\n prev.add(id);\n });\n return prev;\n }, new Set<string>()),\n );\n\n/**\n * 将新节点更新到data或者parentId对应的节点的子节点中\n * @param newNode 新节点\n * @param data 需要修改的数据\n * @param parentId 父节点 id\n */\nexport const replaceChildNode = (newNode: MNode, data?: MNode[], parentId?: Id) => {\n const path = getNodePath(newNode.id, data);\n const node = path.pop();\n let parent = path.pop();\n\n if (parentId) {\n parent = getNodePath(parentId, data).pop();\n }\n\n if (!node) throw new Error('未找到目标节点');\n if (!parent) throw new Error('未找到父节点');\n\n const index = parent.items?.findIndex((child: MNode) => child.id === node.id);\n parent.items.splice(index, 1, newNode);\n};\n\nexport const DSL_NODE_KEY_COPY_PREFIX = '__magic__';\n\nexport const compiledNode = (\n compile: (value: any) => any,\n node: MNode,\n dataSourceDeps: DataSourceDeps = {},\n sourceId?: Id,\n) => {\n let keys: Id[] = [];\n if (!sourceId) {\n keys = getDepKeys(dataSourceDeps, node.id);\n } else {\n const dep = dataSourceDeps[sourceId];\n keys = dep?.[node.id].keys || [];\n }\n\n keys.forEach((key) => {\n const keys = `${key}`.replaceAll(/\\[(\\d+)\\]/g, '.$1').split('.');\n\n const cacheKey = keys.map((key, index) => {\n if (index < keys.length - 1) {\n return key;\n }\n return `${DSL_NODE_KEY_COPY_PREFIX}${key}`;\n });\n\n const value = getValueByKeyPath(key, node);\n let templateValue = getValueByKeyPath(cacheKey, node);\n\n if (typeof templateValue === 'undefined') {\n setValueByKeyPath(cacheKey.join('.'), value, node);\n templateValue = value;\n }\n\n let newValue;\n try {\n newValue = compile(templateValue);\n } catch (e) {\n console.error(e);\n newValue = '';\n }\n\n setValueByKeyPath(key, newValue, node);\n });\n\n return node;\n};\n\nexport const compiledCond = (op: string, fieldValue: any, inputValue: any, range: number[] = []): boolean => {\n if (typeof fieldValue === 'string' && typeof inputValue === 'undefined') {\n inputValue = '';\n }\n\n switch (op) {\n case 'is':\n return fieldValue === inputValue;\n case 'not':\n return fieldValue !== inputValue;\n case '=':\n return fieldValue === inputValue;\n case '!=':\n return fieldValue !== inputValue;\n case '>':\n return fieldValue > inputValue;\n case '>=':\n return fieldValue >= inputValue;\n case '<':\n return fieldValue < inputValue;\n case '<=':\n return fieldValue <= inputValue;\n case 'between':\n return range.length > 1 && fieldValue >= range[0] && fieldValue <= range[1];\n case 'not_between':\n return range.length < 2 || fieldValue < range[0] || fieldValue > range[1];\n case 'include':\n return fieldValue?.includes?.(inputValue);\n case 'not_include':\n return typeof fieldValue === 'undefined' || !fieldValue.includes?.(inputValue);\n default:\n break;\n }\n\n return false;\n};\n\nexport const getDefaultValueFromFields = (fields: DataSchema[]) => {\n const data: Record<string, any> = {};\n\n const defaultValue: Record<string, any> = {\n string: undefined,\n object: {},\n array: [],\n boolean: undefined,\n number: undefined,\n null: null,\n any: undefined,\n };\n\n fields.forEach((field) => {\n if (typeof field.defaultValue !== 'undefined') {\n if (field.type === 'array' && !Array.isArray(field.defaultValue)) {\n data[field.name] = defaultValue.array;\n return;\n }\n\n if (field.type === 'object' && !isObject(field.defaultValue)) {\n if (typeof field.defaultValue === 'string') {\n try {\n data[field.name] = JSON.parse(field.defaultValue);\n } catch (e) {\n data[field.name] = defaultValue.object;\n }\n return;\n }\n\n data[field.name] = defaultValue.object;\n return;\n }\n\n data[field.name] = cloneDeep(field.defaultValue);\n\n return;\n }\n\n if (field.type === 'object') {\n data[field.name] = field.fields ? getDefaultValueFromFields(field.fields) : defaultValue.object;\n return;\n }\n\n if (field.type) {\n data[field.name] = defaultValue[field.type];\n return;\n }\n\n data[field.name] = undefined;\n });\n\n return data;\n};\n\nexport const DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX = 'ds-field::';\n\nexport const DATA_SOURCE_FIELDS_CHANGE_EVENT_PREFIX = 'ds-field-changed';\n\nexport const getKeys = Object.keys as <T extends object>(obj: T) => Array<keyof T>;\n\nexport const calculatePercentage = (value: number, percentageStr: string) => {\n const percentage = globalThis.parseFloat(percentageStr) / 100; // 先将百分比字符串转换为浮点数,并除以100转换为小数\n const result = value * percentage;\n return result;\n};\n\nexport const isPercentage = (value: number | string) => /^(\\d+)(\\.\\d+)?%$/.test(`${value}`);\n\nexport const convertToNumber = (value: number | string, parentValue = 0) => {\n if (typeof value === 'number') {\n return value;\n }\n\n if (typeof value === 'string' && isPercentage(value)) {\n return calculatePercentage(parentValue, value);\n }\n\n return parseFloat(value);\n};\n\n/**\n * 添加参数到URL\n * @param obj 参数对象\n * @param global window对象\n * @param needReload 是否需要刷新\n */\nexport const addParamToUrl = (obj: Record<string, any>, global = globalThis, needReload = true) => {\n const url = new URL(global.location.href);\n const { searchParams } = url;\n for (const [k, v] of Object.entries(obj)) {\n searchParams.set(k, v);\n }\n const newUrl = url.toString();\n if (needReload) {\n global.location.href = newUrl;\n } else {\n global.history.pushState({}, '', url);\n }\n};\n"],"names":["id","data","objectSet","ids","keys","key"],"mappings":"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"}
1
+ {"version":3,"file":"tmagic-utils.js","sources":["../src/dom.ts","../src/index.ts"],"sourcesContent":["export const asyncLoadJs = (() => {\n // 正在加载或加载成功的存入此Map中\n const documentMap = new Map();\n\n return (url: string, crossOrigin?: string, document = globalThis.document) => {\n let loaded = documentMap.get(document);\n if (!loaded) {\n loaded = new Map();\n documentMap.set(document, loaded);\n }\n\n // 正在加载或已经加载成功的,直接返回\n if (loaded.get(url)) return loaded.get(url);\n\n const load = new Promise<void>((resolve, reject) => {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n if (crossOrigin) {\n script.crossOrigin = crossOrigin;\n }\n script.src = url;\n document.body.appendChild(script);\n script.onload = () => {\n resolve();\n };\n script.onerror = () => {\n reject(new Error('加载失败'));\n };\n setTimeout(() => {\n reject(new Error('timeout'));\n }, 60 * 1000);\n }).catch((err) => {\n // 加载失败的,从map中移除,第二次加载时,可以再次执行加载\n loaded.delete(url);\n throw err;\n });\n\n loaded.set(url, load);\n return loaded.get(url);\n };\n})();\n\nexport const asyncLoadCss = (() => {\n // 正在加载或加载成功的存入此Map中\n const documentMap = new Map();\n\n return (url: string, document = globalThis.document) => {\n let loaded = documentMap.get(document);\n if (!loaded) {\n loaded = new Map();\n documentMap.set(document, loaded);\n }\n\n // 正在加载或已经加载成功的,直接返回\n if (loaded.get(url)) return loaded.get(url);\n\n const load = new Promise<void>((resolve, reject) => {\n const node = document.createElement('link');\n node.rel = 'stylesheet';\n node.href = url;\n document.head.appendChild(node);\n node.onload = () => {\n resolve();\n };\n node.onerror = () => {\n reject(new Error('加载失败'));\n };\n setTimeout(() => {\n reject(new Error('timeout'));\n }, 60 * 1000);\n }).catch((err) => {\n // 加载失败的,从map中移除,第二次加载时,可以再次执行加载\n loaded.delete(url);\n throw err;\n });\n\n loaded.set(url, load);\n return loaded.get(url);\n };\n})();\n\nexport const addClassName = (el: Element, doc: Document, className: string) => {\n const oldEl = doc.querySelector(`.${className}`);\n if (oldEl && oldEl !== el) removeClassName(oldEl, className);\n if (!el.classList.contains(className)) el.classList.add(className);\n};\n\nexport const removeClassName = (el: Element, ...className: string[]) => {\n el.classList.remove(...className);\n};\n\nexport const removeClassNameByClassName = (doc: Document, className: string) => {\n const el: HTMLElement | null = doc.querySelector(`.${className}`);\n el?.classList.remove(className);\n return el;\n};\n\nexport const injectStyle = (doc: Document, style: string) => {\n const styleEl = doc.createElement('style');\n styleEl.innerHTML = style;\n doc.head.appendChild(styleEl);\n return styleEl;\n};\n\nexport const createDiv = ({ className, cssText }: { className: string; cssText: string }) => {\n const el = globalThis.document.createElement('div');\n el.className = className;\n el.style.cssText = cssText;\n return el;\n};\n\nexport const getDocument = () => globalThis.document;\n\nexport const calcValueByFontsize = (doc: Document | undefined, value: number) => {\n if (!doc) return value;\n const { fontSize } = doc.documentElement.style;\n\n if (fontSize) {\n const times = globalThis.parseFloat(fontSize) / 100;\n return Number((value / times).toFixed(2));\n }\n\n return value;\n};\n","/*\n * Tencent is pleased to support the open source community by making TMagicEditor available.\n *\n * Copyright (C) 2023 THL A29 Limited, a Tencent company. 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 dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport { cloneDeep, set as objectSet } from 'lodash-es';\n\nimport type { DataSchema, DataSourceDeps, Id, MComponent, MNode } from '@tmagic/schema';\nimport { NodeType } from '@tmagic/schema';\n\nexport * from './dom';\n\nexport const sleep = (ms: number): Promise<void> =>\n new Promise((resolve) => {\n const timer = setTimeout(() => {\n clearTimeout(timer);\n resolve();\n }, ms);\n });\n\nexport const datetimeFormatter = (\n v: string | Date,\n defaultValue = '-',\n format = 'YYYY-MM-DD HH:mm:ss',\n): string | number => {\n if (v) {\n let time = null;\n if (['x', 'timestamp'].includes(format)) {\n time = dayjs(v).valueOf();\n } else if ((typeof v === 'string' && v.includes('Z')) || v.constructor === Date) {\n dayjs.extend(utc);\n // UTC字符串时间或Date对象格式化为北京时间\n time = dayjs(v).utcOffset(8).format(format);\n } else {\n time = dayjs(v).format(format);\n }\n\n // 格式化为北京时间\n if (time !== 'Invalid Date') {\n return time;\n }\n return defaultValue;\n }\n return defaultValue;\n};\n\n// 驼峰转换横线\nexport const toLine = (name = '') => name.replace(/\\B([A-Z])/g, '-$1').toLowerCase();\n\nexport const toHump = (name = ''): string => name.replace(/-(\\w)/g, (all, letter) => letter.toUpperCase());\n\nexport const emptyFn = (): any => undefined;\n\n/**\n * 通过id获取组件在应用的子孙路径\n * @param {number | string} id 组件id\n * @param {Array} data 要查找的根容器节点\n * @return {Array} 组件在data中的子孙路径\n */\nexport const getNodePath = (id: Id, data: MNode[] = []): MNode[] => {\n const path: MNode[] = [];\n\n const get = function (id: number | string, data: MNode[]): MNode | null {\n if (!Array.isArray(data)) {\n return null;\n }\n\n for (let i = 0, l = data.length; i < l; i++) {\n const item = data[i];\n\n path.push(item);\n if (`${item.id}` === `${id}`) {\n return item;\n }\n\n if (item.items) {\n const node = get(id, item.items);\n if (node) {\n return node;\n }\n }\n\n path.pop();\n }\n\n return null;\n };\n\n get(id, data);\n\n return path;\n};\n\nexport const filterXSS = (str: string) =>\n str.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\"/g, '&quot;').replace(/'/g, '&apos;');\n\nexport const getUrlParam = (param: string, url?: string) => {\n const u = url || location.href;\n const reg = new RegExp(`[?&#]${param}=([^&#]+)`, 'gi');\n\n const matches = u.match(reg);\n let strArr;\n if (matches && matches.length > 0) {\n strArr = matches[matches.length - 1].split('=');\n if (strArr && strArr.length > 1) {\n // 过滤XSS字符\n return filterXSS(strArr[1]);\n }\n return '';\n }\n return '';\n};\n\nexport const isObject = (obj: any) => Object.prototype.toString.call(obj) === '[object Object]';\n\nexport const isPop = (node: MComponent | null): boolean => Boolean(node?.type?.toLowerCase().endsWith('pop'));\n\nexport const isPage = (node?: MComponent | null): boolean => {\n if (!node) return false;\n return Boolean(node.type?.toLowerCase() === NodeType.PAGE);\n};\n\nexport const isPageFragment = (node?: MComponent | null): boolean => {\n if (!node) return false;\n return Boolean(node.type?.toLowerCase() === NodeType.PAGE_FRAGMENT);\n};\n\nexport const isNumber = (value: string) => /^(-?\\d+)(\\.\\d+)?$/.test(value);\n\nexport const getHost = (targetUrl: string) => targetUrl.match(/\\/\\/([^/]+)/)?.[1];\n\nexport const isSameDomain = (targetUrl = '', source = globalThis.location.host) => {\n const isHttpUrl = /^(http[s]?:)?\\/\\//.test(targetUrl);\n\n if (!isHttpUrl) return true;\n\n return getHost(targetUrl) === source;\n};\n\n/**\n * 生成指定位数的GUID,无【-】格式\n * @param digit 位数,默认值8\n * @returns\n */\nexport const guid = (digit = 8): string =>\n 'x'.repeat(digit).replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n\nexport const getValueByKeyPath = (\n keys: number | string | string[] = '',\n data: Record<string | number, any> = {},\n): any => {\n // 将 array[0] 转成 array.0\n const keyArray = Array.isArray(keys) ? keys : `${keys}`.replaceAll(/\\[(\\d+)\\]/g, '.$1').split('.');\n return keyArray.reduce((accumulator, currentValue: any) => {\n if (isObject(accumulator) || Array.isArray(accumulator)) {\n return accumulator[currentValue];\n }\n\n return void 0;\n }, data);\n};\n\nexport const setValueByKeyPath = (keys: string | number, value: any, data: Record<string | number, any> = {}): any =>\n objectSet(data, keys, value);\n\nexport const getNodes = (ids: Id[], data: MNode[] = []): MNode[] => {\n const nodes: MNode[] = [];\n\n const get = function (ids: Id[], data: MNode[]) {\n if (!Array.isArray(data)) {\n return;\n }\n\n for (let i = 0, l = data.length; i < l; i++) {\n const item = data[i];\n const index = ids.findIndex((id: Id) => `${id}` === `${item.id}`);\n\n if (index > -1) {\n ids.slice(index, 1);\n nodes.push(item);\n }\n\n if (item.items) {\n get(ids, item.items);\n }\n }\n };\n\n get(ids, data);\n\n return nodes;\n};\n\nexport const getDepKeys = (dataSourceDeps: DataSourceDeps = {}, nodeId: Id) =>\n Array.from(\n Object.values(dataSourceDeps).reduce((prev, cur) => {\n (cur[nodeId]?.keys || []).forEach((key) => prev.add(key));\n return prev;\n }, new Set<Id>()),\n );\n\nexport const getDepNodeIds = (dataSourceDeps: DataSourceDeps = {}) =>\n Array.from(\n Object.values(dataSourceDeps).reduce((prev, cur) => {\n Object.keys(cur).forEach((id) => {\n prev.add(id);\n });\n return prev;\n }, new Set<string>()),\n );\n\n/**\n * 将新节点更新到data或者parentId对应的节点的子节点中\n * @param newNode 新节点\n * @param data 需要修改的数据\n * @param parentId 父节点 id\n */\nexport const replaceChildNode = (newNode: MNode, data?: MNode[], parentId?: Id) => {\n const path = getNodePath(newNode.id, data);\n const node = path.pop();\n let parent = path.pop();\n\n if (parentId) {\n parent = getNodePath(parentId, data).pop();\n }\n\n if (!node) throw new Error('未找到目标节点');\n if (!parent) throw new Error('未找到父节点');\n\n const index = parent.items?.findIndex((child: MNode) => child.id === node.id);\n parent.items.splice(index, 1, newNode);\n};\n\nexport const DSL_NODE_KEY_COPY_PREFIX = '__magic__';\n\nexport const compiledNode = (\n compile: (value: any) => any,\n node: MNode,\n dataSourceDeps: DataSourceDeps = {},\n sourceId?: Id,\n) => {\n let keys: Id[] = [];\n if (!sourceId) {\n keys = getDepKeys(dataSourceDeps, node.id);\n } else {\n const dep = dataSourceDeps[sourceId];\n keys = dep?.[node.id].keys || [];\n }\n\n keys.forEach((key) => {\n const keys = `${key}`.replaceAll(/\\[(\\d+)\\]/g, '.$1').split('.');\n\n const cacheKey = keys.map((key, index) => {\n if (index < keys.length - 1) {\n return key;\n }\n return `${DSL_NODE_KEY_COPY_PREFIX}${key}`;\n });\n\n const value = getValueByKeyPath(key, node);\n let templateValue = getValueByKeyPath(cacheKey, node);\n\n if (typeof templateValue === 'undefined') {\n setValueByKeyPath(cacheKey.join('.'), value, node);\n templateValue = value;\n }\n\n let newValue;\n try {\n newValue = compile(templateValue);\n } catch (e) {\n console.error(e);\n newValue = '';\n }\n\n setValueByKeyPath(key, newValue, node);\n });\n\n return node;\n};\n\nexport const compiledCond = (op: string, fieldValue: any, inputValue: any, range: number[] = []): boolean => {\n if (typeof fieldValue === 'string' && typeof inputValue === 'undefined') {\n inputValue = '';\n }\n\n switch (op) {\n case 'is':\n return fieldValue === inputValue;\n case 'not':\n return fieldValue !== inputValue;\n case '=':\n return fieldValue === inputValue;\n case '!=':\n return fieldValue !== inputValue;\n case '>':\n return fieldValue > inputValue;\n case '>=':\n return fieldValue >= inputValue;\n case '<':\n return fieldValue < inputValue;\n case '<=':\n return fieldValue <= inputValue;\n case 'between':\n return range.length > 1 && fieldValue >= range[0] && fieldValue <= range[1];\n case 'not_between':\n return range.length < 2 || fieldValue < range[0] || fieldValue > range[1];\n case 'include':\n return fieldValue?.includes?.(inputValue);\n case 'not_include':\n return typeof fieldValue === 'undefined' || !fieldValue.includes?.(inputValue);\n default:\n break;\n }\n\n return false;\n};\n\nexport const getDefaultValueFromFields = (fields: DataSchema[]) => {\n const data: Record<string, any> = {};\n\n const defaultValue: Record<string, any> = {\n string: undefined,\n object: {},\n array: [],\n boolean: undefined,\n number: undefined,\n null: null,\n any: undefined,\n };\n\n fields.forEach((field) => {\n if (typeof field.defaultValue !== 'undefined') {\n if (field.type === 'array' && !Array.isArray(field.defaultValue)) {\n data[field.name] = defaultValue.array;\n return;\n }\n\n if (field.type === 'object' && !isObject(field.defaultValue)) {\n if (typeof field.defaultValue === 'string') {\n try {\n data[field.name] = JSON.parse(field.defaultValue);\n } catch (e) {\n data[field.name] = defaultValue.object;\n }\n return;\n }\n\n data[field.name] = defaultValue.object;\n return;\n }\n\n data[field.name] = cloneDeep(field.defaultValue);\n\n return;\n }\n\n if (field.type === 'object') {\n data[field.name] = field.fields ? getDefaultValueFromFields(field.fields) : defaultValue.object;\n return;\n }\n\n if (field.type) {\n data[field.name] = defaultValue[field.type];\n return;\n }\n\n data[field.name] = undefined;\n });\n\n return data;\n};\n\nexport const DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX = 'ds-field::';\n\nexport const DATA_SOURCE_FIELDS_CHANGE_EVENT_PREFIX = 'ds-field-changed';\n\nexport const getKeys = Object.keys as <T extends object>(obj: T) => Array<keyof T>;\n\nexport const calculatePercentage = (value: number, percentageStr: string) => {\n const percentage = globalThis.parseFloat(percentageStr) / 100; // 先将百分比字符串转换为浮点数,并除以100转换为小数\n const result = value * percentage;\n return result;\n};\n\nexport const isPercentage = (value: number | string) => /^(\\d+)(\\.\\d+)?%$/.test(`${value}`);\n\nexport const convertToNumber = (value: number | string, parentValue = 0) => {\n if (typeof value === 'number') {\n return value;\n }\n\n if (typeof value === 'string' && isPercentage(value)) {\n return calculatePercentage(parentValue, value);\n }\n\n return parseFloat(value);\n};\n\n/**\n * 添加参数到URL\n * @param obj 参数对象\n * @param global window对象\n * @param needReload 是否需要刷新\n */\nexport const addParamToUrl = (obj: Record<string, any>, global = globalThis, needReload = true) => {\n const url = new URL(global.location.href);\n const { searchParams } = url;\n for (const [k, v] of Object.entries(obj)) {\n searchParams.set(k, v);\n }\n const newUrl = url.toString();\n if (needReload) {\n global.location.href = newUrl;\n } else {\n global.history.pushState({}, '', url);\n }\n};\n"],"names":["id","data","objectSet","ids","keys","key"],"mappings":"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"}
@@ -2618,8 +2618,7 @@
2618
2618
  loaded = /* @__PURE__ */ new Map();
2619
2619
  documentMap.set(document, loaded);
2620
2620
  }
2621
- if (loaded.get(url))
2622
- return loaded.get(url);
2621
+ if (loaded.get(url)) return loaded.get(url);
2623
2622
  const load = new Promise((resolve, reject) => {
2624
2623
  const script = document.createElement("script");
2625
2624
  script.type = "text/javascript";
@@ -2653,8 +2652,7 @@
2653
2652
  loaded = /* @__PURE__ */ new Map();
2654
2653
  documentMap.set(document, loaded);
2655
2654
  }
2656
- if (loaded.get(url))
2657
- return loaded.get(url);
2655
+ if (loaded.get(url)) return loaded.get(url);
2658
2656
  const load = new Promise((resolve, reject) => {
2659
2657
  const node = document.createElement("link");
2660
2658
  node.rel = "stylesheet";
@@ -2679,10 +2677,8 @@
2679
2677
  })();
2680
2678
  const addClassName = (el, doc, className) => {
2681
2679
  const oldEl = doc.querySelector(`.${className}`);
2682
- if (oldEl && oldEl !== el)
2683
- removeClassName(oldEl, className);
2684
- if (!el.classList.contains(className))
2685
- el.classList.add(className);
2680
+ if (oldEl && oldEl !== el) removeClassName(oldEl, className);
2681
+ if (!el.classList.contains(className)) el.classList.add(className);
2686
2682
  };
2687
2683
  const removeClassName = (el, ...className) => {
2688
2684
  el.classList.remove(...className);
@@ -2706,8 +2702,7 @@
2706
2702
  };
2707
2703
  const getDocument = () => globalThis.document;
2708
2704
  const calcValueByFontsize = (doc, value) => {
2709
- if (!doc)
2710
- return value;
2705
+ if (!doc) return value;
2711
2706
  const { fontSize } = doc.documentElement.style;
2712
2707
  if (fontSize) {
2713
2708
  const times = globalThis.parseFloat(fontSize) / 100;
@@ -2786,21 +2781,18 @@
2786
2781
  const isObject = (obj) => Object.prototype.toString.call(obj) === "[object Object]";
2787
2782
  const isPop = (node) => Boolean(node?.type?.toLowerCase().endsWith("pop"));
2788
2783
  const isPage = (node) => {
2789
- if (!node)
2790
- return false;
2784
+ if (!node) return false;
2791
2785
  return Boolean(node.type?.toLowerCase() === schema.NodeType.PAGE);
2792
2786
  };
2793
2787
  const isPageFragment = (node) => {
2794
- if (!node)
2795
- return false;
2788
+ if (!node) return false;
2796
2789
  return Boolean(node.type?.toLowerCase() === schema.NodeType.PAGE_FRAGMENT);
2797
2790
  };
2798
2791
  const isNumber = (value) => /^(-?\d+)(\.\d+)?$/.test(value);
2799
2792
  const getHost = (targetUrl) => targetUrl.match(/\/\/([^/]+)/)?.[1];
2800
2793
  const isSameDomain = (targetUrl = "", source = globalThis.location.host) => {
2801
2794
  const isHttpUrl = /^(http[s]?:)?\/\//.test(targetUrl);
2802
- if (!isHttpUrl)
2803
- return true;
2795
+ if (!isHttpUrl) return true;
2804
2796
  return getHost(targetUrl) === source;
2805
2797
  };
2806
2798
  const guid = (digit = 8) => "x".repeat(digit).replace(/[xy]/g, (c) => {
@@ -2860,10 +2852,8 @@
2860
2852
  if (parentId) {
2861
2853
  parent = getNodePath(parentId, data).pop();
2862
2854
  }
2863
- if (!node)
2864
- throw new Error("未找到目标节点");
2865
- if (!parent)
2866
- throw new Error("未找到父节点");
2855
+ if (!node) throw new Error("未找到目标节点");
2856
+ if (!parent) throw new Error("未找到父节点");
2867
2857
  const index = parent.items?.findIndex((child) => child.id === node.id);
2868
2858
  parent.items.splice(index, 1, newNode);
2869
2859
  };