amis 1.9.1-beta.22 → 1.9.1-beta.25

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. package/lib/helper.css.map +1 -1
  2. package/lib/renderers/CRUD.js +2 -2
  3. package/lib/renderers/CRUD.js.map +2 -2
  4. package/lib/renderers/Form/index.js +1 -0
  5. package/lib/renderers/Form/index.js.map +2 -2
  6. package/lib/renderers/Table/exportExcel.js +1 -1
  7. package/lib/renderers/Table/exportExcel.js.map +2 -2
  8. package/lib/themes/ang-ie11.css +11 -14
  9. package/lib/themes/ang.css +11 -14
  10. package/lib/themes/ang.css.map +1 -1
  11. package/lib/themes/antd-ie11.css +11 -14
  12. package/lib/themes/antd.css +11 -14
  13. package/lib/themes/antd.css.map +1 -1
  14. package/lib/themes/cxd-ie11.css +11 -14
  15. package/lib/themes/cxd.css +11 -14
  16. package/lib/themes/cxd.css.map +1 -1
  17. package/lib/themes/dark-ie11.css +11 -14
  18. package/lib/themes/dark.css +11 -14
  19. package/lib/themes/dark.css.map +1 -1
  20. package/lib/themes/default-ie11.css +11 -14
  21. package/lib/themes/default.css +11 -14
  22. package/lib/themes/default.css.map +1 -1
  23. package/lib/utils/helper.js +1 -1
  24. package/lib/utils/helper.js.map +2 -2
  25. package/package.json +1 -1
  26. package/schema.json +19 -24
  27. package/scss/_mixins.scss +1 -1
  28. package/scss/components/form/_date.scss +19 -11
  29. package/sdk/ang-ie11.css +11 -15
  30. package/sdk/ang.css +11 -15
  31. package/sdk/antd-ie11.css +11 -15
  32. package/sdk/antd.css +11 -15
  33. package/sdk/barcode.js +51 -51
  34. package/sdk/charts.js +14 -14
  35. package/sdk/codemirror.js +7 -7
  36. package/sdk/color-picker.js +65 -65
  37. package/sdk/cropperjs.js +2 -2
  38. package/sdk/cxd-ie11.css +11 -15
  39. package/sdk/cxd.css +11 -15
  40. package/sdk/dark-ie11.css +11 -15
  41. package/sdk/dark.css +11 -15
  42. package/sdk/exceljs.js +1 -1
  43. package/sdk/helper.css.map +1 -1
  44. package/sdk/markdown.js +69 -69
  45. package/sdk/papaparse.js +1 -1
  46. package/sdk/renderers/Form/CityDB.js +1 -1
  47. package/sdk/rest.js +16 -16
  48. package/sdk/rich-text.js +62 -62
  49. package/sdk/sdk-ie11.css +11 -15
  50. package/sdk/sdk.css +11 -15
  51. package/sdk/sdk.js +1643 -1648
  52. package/sdk/thirds/hls.js/hls.js +1 -1
  53. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  54. package/sdk/tinymce.js +57 -57
  55. package/src/renderers/CRUD.tsx +2 -2
  56. package/src/renderers/Form/index.tsx +2 -0
  57. package/src/renderers/Table/exportExcel.ts +1 -1
  58. package/src/utils/helper.ts +2 -2
@@ -702,7 +702,7 @@ function everyTree(tree, iterator, level, paths, indexes) {
702
702
  if (level === void 0) { level = 1; }
703
703
  if (paths === void 0) { paths = []; }
704
704
  if (indexes === void 0) { indexes = []; }
705
- if (!Array.isArray(tree)) {
705
+ if (!Array.isArray(tree) && !(0, mobx_1.isObservableArray)(tree)) {
706
706
  return false;
707
707
  }
708
708
  return tree.every(function (item, index) {
@@ -6,8 +6,8 @@
6
6
  "/src/utils/helper.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import isPlainObject from 'lodash/isPlainObject';\nimport isEqual from 'lodash/isEqual';\nimport isNaN from 'lodash/isNaN';\nimport uniq from 'lodash/uniq';\nimport last from 'lodash/last';\nimport {Schema, PlainObject, FunctionPropertyNames} from '../types';\nimport {evalExpression} from './tpl';\nimport qs from 'qs';\nimport {IIRendererStore} from '../store';\nimport {IFormStore} from '../store/form';\nimport {autobindMethod} from './autobind';\nimport {\n createObject,\n cloneObject,\n isObject,\n string2regExp,\n getVariable,\n setVariable,\n deleteVariable,\n keyToPath,\n isPureVariable,\n resolveVariable,\n resolveVariableAndFilter\n} from 'amis-formula';\nimport {isObservable} from 'mobx';\n\nexport {\n createObject,\n cloneObject,\n isObject,\n string2regExp,\n getVariable,\n setVariable,\n deleteVariable,\n keyToPath\n};\n\nexport function preventDefault(event: TouchEvent | Event): void {\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n}\n\nexport function isMobile() {\n return (window as any).matchMedia?.('(max-width: 768px)').matches;\n}\n\nexport function range(num: number, min: number, max: number): number {\n return Math.min(Math.max(num, min), max);\n}\n\n/**\n * 给目标对象添加其他属性,可读取但是不会被遍历。\n * @param target\n * @param props\n */\nexport function injectPropsToObject(target: any, props: any) {\n const sup = Object.create(target.__super || null);\n Object.keys(props).forEach(key => (sup[key] = props[key]));\n const result = Object.create(sup);\n Object.keys(target).forEach(key => (result[key] = target[key]));\n return result;\n}\n\nexport function extendObject(\n target: any,\n src?: any,\n persistOwnProps: boolean = true\n) {\n const obj = cloneObject(target, persistOwnProps);\n src && Object.keys(src).forEach(key => (obj[key] = src[key]));\n return obj;\n}\n\nexport function isSuperDataModified(\n data: any,\n prevData: any,\n store: IIRendererStore\n) {\n let keys: Array<string> = [];\n\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(store.data))\n );\n } else {\n keys = Object.keys(store.data);\n }\n\n if (Array.isArray(keys) && keys.length) {\n return keys.some(key => data[key] !== prevData[key]);\n }\n\n return false;\n}\n\nexport function syncDataFromSuper(\n data: any,\n superObject: any,\n prevSuperObject: any,\n store: IIRendererStore,\n force: boolean\n) {\n const obj = {\n ...data\n };\n\n let keys: Array<string> = [];\n\n // 如果是 form store,则从父级同步 formItem 种东西。\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(obj))\n );\n } else if (force) {\n keys = Object.keys(obj);\n }\n\n if (superObject || prevSuperObject) {\n keys.forEach(key => {\n if (!key) {\n return;\n }\n\n if (\n ((superObject && typeof superObject[key] !== 'undefined') ||\n (prevSuperObject && typeof prevSuperObject[key] !== 'undefined')) &&\n ((prevSuperObject && !superObject) ||\n (!prevSuperObject && superObject) ||\n prevSuperObject[key] !== superObject[key])\n ) {\n obj[key] = superObject[key];\n }\n });\n }\n\n return obj;\n}\n\n/**\n * 生成 8 位随机数字。\n *\n * @return {string} 8位随机数字\n */\nexport function guid() {\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n return s4() + s4() + s4();\n}\n\nexport function findIndex(\n arr: Array<any>,\n detect: (item?: any, index?: number) => boolean\n) {\n for (let i = 0, len = arr.length; i < len; i++) {\n if (detect(arr[i], i)) {\n return i;\n }\n }\n\n return -1;\n}\n\nexport function hasOwnProperty(\n data: {[propName: string]: any},\n key: string\n): boolean {\n const parts = keyToPath(key);\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (!isObject(data) || !data.hasOwnProperty(key)) {\n return false;\n }\n\n data = data[key];\n }\n\n return true;\n}\n\nexport function noop() {}\n\nexport function anyChanged(\n attrs: string | Array<string>,\n from: {[propName: string]: any},\n to: {[propName: string]: any},\n strictMode: boolean = true\n): boolean {\n return (typeof attrs === 'string' ? attrs.split(/\\s*,\\s*/) : attrs).some(\n key => (strictMode ? from[key] !== to[key] : from[key] != to[key])\n );\n}\n\nexport function rmUndefined(obj: PlainObject) {\n const newObj: PlainObject = {};\n\n if (typeof obj !== 'object') {\n return obj;\n }\n\n const keys = Object.keys(obj);\n keys.forEach(key => {\n if (obj[key] !== undefined) {\n newObj[key] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function isObjectShallowModified(\n prev: any,\n next: any,\n strictMode: boolean = true,\n ignoreUndefined: boolean = false,\n statck: Array<any> = []\n): boolean {\n if (Array.isArray(prev) && Array.isArray(next)) {\n return prev.length !== next.length\n ? true\n : prev.some((prev, index) =>\n isObjectShallowModified(\n prev,\n next[index],\n strictMode,\n ignoreUndefined,\n statck\n )\n );\n } else if (isNaN(prev) && isNaN(next)) {\n return false;\n } else if (\n null == prev ||\n null == next ||\n !isObject(prev) ||\n !isObject(next) ||\n isObservable(prev) ||\n isObservable(next)\n ) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (ignoreUndefined) {\n prev = rmUndefined(prev);\n next = rmUndefined(next);\n }\n\n const keys = Object.keys(prev);\n const nextKeys = Object.keys(next);\n if (\n keys.length !== nextKeys.length ||\n keys.sort().join(',') !== nextKeys.sort().join(',')\n ) {\n return true;\n }\n\n // 避免循环引用死循环。\n if (~statck.indexOf(prev)) {\n return false;\n }\n statck.push(prev);\n\n for (let i: number = keys.length - 1; i >= 0; i--) {\n let key = keys[i];\n if (\n isObjectShallowModified(\n prev[key],\n next[key],\n strictMode,\n ignoreUndefined,\n statck\n )\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function isArrayChildrenModified(\n prev: Array<any>,\n next: Array<any>,\n strictMode: boolean = true\n) {\n if (!Array.isArray(prev) || !Array.isArray(next)) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (prev.length !== next.length) {\n return true;\n }\n\n for (let i: number = prev.length - 1; i >= 0; i--) {\n if (strictMode ? prev[i] !== next[i] : prev[i] != next[i]) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function immutableExtends(to: any, from: any, deep = false) {\n // 不是对象,不可以merge\n if (!isObject(to) || !isObject(from)) {\n return to;\n }\n\n let ret = to;\n\n Object.keys(from).forEach(key => {\n const origin = to[key];\n const value = from[key];\n\n // todo 支持深度merge\n if (origin !== value) {\n // 一旦有修改,就创建个新对象。\n ret = ret !== to ? ret : {...to};\n ret[key] = value;\n }\n });\n\n return ret;\n}\n\n// 即将抛弃\nexport function makeColumnClassBuild(\n steps: number,\n classNameTpl: string = 'col-sm-$value'\n) {\n let count = 12;\n let step = Math.floor(count / steps);\n\n return function (schema: Schema) {\n if (\n schema.columnClassName &&\n /\\bcol-(?:xs|sm|md|lg)-(\\d+)\\b/.test(schema.columnClassName)\n ) {\n const flex = parseInt(RegExp.$1, 10);\n count -= flex;\n steps--;\n step = Math.floor(count / steps);\n return schema.columnClassName;\n } else if (schema.columnClassName) {\n count -= step;\n steps--;\n return schema.columnClassName;\n }\n\n count -= step;\n steps--;\n return classNameTpl.replace('$value', '' + step);\n };\n}\n\nexport function hasVisibleExpression(schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n}) {\n return schema?.visibleOn || schema?.hiddenOn;\n}\n\nexport function isVisible(\n schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n },\n data?: object\n) {\n return !(\n schema.hidden ||\n schema.visible === false ||\n (schema.hiddenOn && evalExpression(schema.hiddenOn, data) === true) ||\n (schema.visibleOn && evalExpression(schema.visibleOn, data) === false)\n );\n}\n\nexport function isUnfolded(\n node: any,\n config: {\n foldedField?: string;\n unfoldedField?: string;\n }\n): boolean {\n let {foldedField, unfoldedField} = config;\n\n unfoldedField = unfoldedField || 'unfolded';\n foldedField = foldedField || 'folded';\n\n let ret: boolean = false;\n if (unfoldedField && typeof node[unfoldedField] !== 'undefined') {\n ret = !!node[unfoldedField];\n } else if (foldedField && typeof node[foldedField] !== 'undefined') {\n ret = !node[foldedField];\n }\n\n return ret;\n}\n\n/**\n * 过滤掉被隐藏的数组元素\n */\nexport function visibilityFilter(items: any, data?: object) {\n return items.filter((item: any) => {\n return isVisible(item, data);\n });\n}\n\nexport function isDisabled(\n schema: {\n disabledOn?: string;\n disabled?: boolean;\n },\n data?: object\n) {\n return (\n schema.disabled ||\n (schema.disabledOn && evalExpression(schema.disabledOn, data))\n );\n}\n\nexport function hasAbility(\n schema: any,\n ability: string,\n data?: object,\n defaultValue: boolean = true\n): boolean {\n return schema.hasOwnProperty(ability)\n ? schema[ability]\n : schema.hasOwnProperty(`${ability}On`)\n ? evalExpression(schema[`${ability}On`], data || schema)\n : defaultValue;\n}\n\nexport function makeHorizontalDeeper(\n horizontal: {\n left: string;\n right: string;\n offset: string;\n leftFixed?: any;\n },\n count: number\n): {\n left: string | number;\n right: string | number;\n offset: string | number;\n leftFixed?: any;\n} {\n if (count > 1 && /\\bcol-(xs|sm|md|lg)-(\\d+)\\b/.test(horizontal.left)) {\n const flex = parseInt(RegExp.$2, 10) * count;\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n } else if (count > 1 && typeof horizontal.left === 'number') {\n const flex = horizontal.left * count;\n\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n }\n\n return horizontal;\n}\n\nexport function promisify<T extends Function>(\n fn: T\n): (...args: Array<any>) => Promise<any> & {\n raw: T;\n} {\n let promisified = function () {\n try {\n const ret = fn.apply(null, arguments);\n if (ret && ret.then) {\n return ret;\n } else if (typeof ret === 'function') {\n // thunk support\n return new Promise((resolve, reject) =>\n ret((error: boolean, value: any) =>\n error ? reject(error) : resolve(value)\n )\n );\n }\n return Promise.resolve(ret);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n (promisified as any).raw = fn;\n return promisified;\n}\n\nexport function getScrollParent(node: HTMLElement): HTMLElement | null {\n if (node == null) {\n return null;\n }\n\n const style = getComputedStyle(node);\n\n if (!style) {\n return null;\n }\n\n const text =\n style.getPropertyValue('overflow') +\n style.getPropertyValue('overflow-x') +\n style.getPropertyValue('overflow-y');\n\n if (/auto|scroll/.test(text) || node.nodeName === 'BODY') {\n return node;\n }\n\n return getScrollParent(node.parentNode as HTMLElement);\n}\n\n/**\n * Deep diff between two object, using lodash\n * @param {Object} object Object compared\n * @param {Object} base Object to compare with\n * @return {Object} Return a new object who represent the diff\n */\nexport function difference<\n T extends {[propName: string]: any},\n U extends {[propName: string]: any}\n>(object: T, base: U, keepProps?: Array<string>): {[propName: string]: any} {\n function changes(object: T, base: U) {\n if (isObject(object) && isObject(base)) {\n const keys: Array<keyof T & keyof U> = uniq(\n Object.keys(object).concat(Object.keys(base))\n );\n let result: any = {};\n\n keys.forEach(key => {\n const a: any = object[key as keyof T];\n const b: any = base[key as keyof U];\n\n if (keepProps && ~keepProps.indexOf(key as string)) {\n result[key] = a;\n }\n\n if (isEqual(a, b)) {\n return;\n }\n\n if (!object.hasOwnProperty(key)) {\n result[key] = undefined;\n } else if (Array.isArray(a) && Array.isArray(b)) {\n result[key] = a;\n } else {\n result[key] = changes(a as any, b as any);\n }\n });\n\n return result;\n } else {\n return object;\n }\n }\n return changes(object, base);\n}\n\nexport const padArr = (arr: Array<any>, size = 4): Array<Array<any>> => {\n const ret: Array<Array<any>> = [];\n const pool: Array<any> = arr.concat();\n let from = 0;\n\n while (pool.length) {\n let host: Array<any> = ret[from] || (ret[from] = []);\n\n if (host.length >= size) {\n from += 1;\n continue;\n }\n\n host.push(pool.shift());\n }\n\n return ret;\n};\n\nexport function __uri(id: string) {\n return id;\n}\n\n// xs < 768px\n// sm >= 768px\n// md >= 992px\n// lg >= 1200px\nexport function isBreakpoint(str: string): boolean {\n if (typeof str !== 'string') {\n return !!str;\n }\n\n const breaks = str.split(/\\s*,\\s*|\\s+/);\n\n if ((window as any).matchMedia) {\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' &&\n matchMedia(`screen and (max-width: 767px)`).matches) ||\n (item === 'sm' &&\n matchMedia(`screen and (min-width: 768px) and (max-width: 991px)`)\n .matches) ||\n (item === 'md' &&\n matchMedia(`screen and (min-width: 992px) and (max-width: 1199px)`)\n .matches) ||\n (item === 'lg' && matchMedia(`screen and (min-width: 1200px)`).matches)\n );\n } else {\n const width = window.innerWidth;\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' && width < 768) ||\n (item === 'sm' && width >= 768 && width < 992) ||\n (item === 'md' && width >= 992 && width < 1200) ||\n (item === 'lg' && width >= 1200)\n );\n }\n}\n\nexport function until(\n fn: () => Promise<any>,\n when: (ret: any) => boolean,\n getCanceler: (fn: () => any) => void,\n interval: number = 5000\n) {\n let timer: ReturnType<typeof setTimeout>;\n let stoped: boolean = false;\n\n return new Promise((resolve, reject) => {\n let cancel = () => {\n clearTimeout(timer);\n stoped = true;\n };\n\n let check = async () => {\n try {\n const ret = await fn();\n\n if (stoped) {\n return;\n } else if (when(ret)) {\n stoped = true;\n resolve(ret);\n } else {\n timer = setTimeout(check, interval);\n }\n } catch (e) {\n reject(e);\n }\n };\n\n check();\n getCanceler && getCanceler(cancel);\n });\n}\n\nexport function omitControls(\n controls: Array<any>,\n omitItems: Array<string>\n): Array<any> {\n return controls.filter(\n control => !~omitItems.indexOf(control.name || control._name)\n );\n}\n\nexport function isEmpty(thing: any) {\n if (isObject(thing) && Object.keys(thing).length) {\n return false;\n }\n\n return true;\n}\n\n/**\n * 基于时间戳的 uuid\n *\n * @returns uniqueId\n */\nexport const uuid = () => {\n return (+new Date()).toString(36);\n};\n\n// 参考 https://github.com/streamich/v4-uuid\nconst str = () =>\n (\n '00000000000000000' + (Math.random() * 0xffffffffffffffff).toString(16)\n ).slice(-16);\n\nexport const uuidv4 = () => {\n const a = str();\n const b = str();\n return (\n a.slice(0, 8) +\n '-' +\n a.slice(8, 12) +\n '-4' +\n a.slice(13) +\n '-a' +\n b.slice(1, 4) +\n '-' +\n b.slice(4)\n );\n};\n\nexport interface TreeItem {\n children?: TreeArray;\n [propName: string]: any;\n}\nexport interface TreeArray extends Array<TreeItem> {}\n\n/**\n * 类似于 arr.map 方法,此方法主要针对类似下面示例的树形结构。\n * [\n * {\n * children: []\n * },\n * // 其他成员\n * ]\n *\n * @param {Tree} tree 树形数据\n * @param {Function} iterator 处理函数,返回的数据会被替换成新的。\n * @return {Tree} 返回处理过的 tree\n */\nexport function mapTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => T,\n level: number = 1,\n depthFirst: boolean = false,\n paths: Array<T> = []\n) {\n return tree.map((item: any, index) => {\n if (depthFirst) {\n let children: TreeArray | undefined = item.children\n ? mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n )\n : undefined;\n children && (item = {...item, children: children});\n item = iterator(item, index, level, paths) || {...(item as object)};\n return item;\n }\n\n item = iterator(item, index, level, paths) || {...(item as object)};\n\n if (item.children && item.children.splice) {\n item.children = mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n );\n }\n\n return item;\n });\n}\n\n/**\n * 遍历树\n * @param tree\n * @param iterator\n */\nexport function eachTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1\n) {\n tree.map((item, index) => {\n iterator(item, index, level);\n\n if (item.children && item.children.splice) {\n eachTree(item.children, iterator, level + 1);\n }\n });\n}\n\n/**\n * 在树中查找节点。\n * @param tree\n * @param iterator\n */\nexport function findTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): T | null {\n let result: T | null = null;\n\n everyTree(tree, (item, key, level, paths) => {\n if (iterator(item, key, level, paths)) {\n result = item;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 在树中查找节点, 返回下标数组。\n * @param tree\n * @param iterator\n */\nexport function findTreeIndex<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): Array<number> | undefined {\n let idx: Array<number> = [];\n\n findTree(tree, (item, index, level, paths) => {\n if (iterator(item, index, level, paths)) {\n idx = [index];\n\n paths = paths.concat();\n paths.unshift({\n children: tree\n } as any);\n\n for (let i = paths.length - 1; i > 0; i--) {\n const prev = paths[i - 1];\n const current = paths[i];\n idx.unshift(prev.children!.indexOf(current));\n }\n\n return true;\n }\n return false;\n });\n\n return idx.length ? idx : undefined;\n}\n\nexport function getTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number\n): T | undefined | null {\n const indexes = Array.isArray(idx) ? idx.concat() : [idx];\n const lastIndex = indexes.pop()!;\n let list: Array<T> | null = tree;\n for (let i = 0, len = indexes.length; i < len; i++) {\n const index = indexes[i];\n if (!list![index]) {\n list = null;\n break;\n }\n list = list![index].children as any;\n }\n return list ? list[lastIndex] : undefined;\n}\n\n/**\n * 过滤树节点\n *\n * @param tree\n * @param iterator\n */\nexport function filterTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1,\n depthFirst: boolean = false\n) {\n if (depthFirst) {\n return tree\n .map(item => {\n let children: TreeArray | undefined = item.children\n ? filterTree(item.children, iterator, level + 1, depthFirst)\n : undefined;\n\n if (Array.isArray(children) && Array.isArray(item.children)) {\n item = {...item, children: children};\n }\n\n return item;\n })\n .filter((item, index) => iterator(item, index, level));\n }\n\n return tree\n .filter((item, index) => iterator(item, index, level))\n .map(item => {\n if (item.children && item.children.splice) {\n let children = filterTree(\n item.children,\n iterator,\n level + 1,\n depthFirst\n );\n\n if (Array.isArray(children) && Array.isArray(item.children)) {\n item = {...item, children: children};\n }\n }\n return item;\n });\n}\n\n/**\n * 判断树中每个节点是否满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function everyTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (\n item: T,\n key: number,\n level: number,\n paths: Array<T>,\n indexes: Array<number>\n ) => boolean,\n level: number = 1,\n paths: Array<T> = [],\n indexes: Array<number> = []\n): boolean {\n if (!Array.isArray(tree)) {\n return false;\n }\n return tree.every((item, index) => {\n const value: any = iterator(item, index, level, paths, indexes);\n\n if (value && item.children && item.children.splice) {\n return everyTree(\n item.children,\n iterator,\n level + 1,\n paths.concat(item),\n indexes.concat(index)\n );\n }\n\n return value;\n });\n}\n\n/**\n * 判断树中是否有某些节点满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function someTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => boolean\n): boolean {\n let result = false;\n\n everyTree(tree, (item: T, key: number, level: number, paths: Array<T>) => {\n if (iterator(item, key, level, paths)) {\n result = true;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 将树打平变成一维数组,可以传入第二个参数实现打平节点中的其他属性。\n *\n * 比如:\n *\n * flattenTree([\n * {\n * id: 1,\n * children: [\n * { id: 2 },\n * { id: 3 },\n * ]\n * }\n * ], item => item.id); // 输出为 [1, 2, 3]\n *\n * @param tree\n * @param mapper\n */\nexport function flattenTree<T extends TreeItem>(tree: Array<T>): Array<T>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper: (value: T, index: number) => U\n): Array<U>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper?: (value: T, index: number) => U\n): Array<U> {\n let flattened: Array<any> = [];\n eachTree(tree, (item, index) =>\n flattened.push(mapper ? mapper(item, index) : item)\n );\n return flattened;\n}\n\n/**\n * 操作树,遵循 imutable, 每次返回一个新的树。\n * 类似数组的 splice 不同的地方这个方法不修改原始数据,\n * 同时第二个参数不是下标,而是下标数组,分别代表每一层的下标。\n *\n * 至于如何获取下标数组,请查看 findTreeIndex\n *\n * @param tree\n * @param idx\n * @param deleteCount\n * @param ...items\n */\nexport function spliceTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number,\n deleteCount: number = 0,\n ...items: Array<T>\n): Array<T> {\n const list = tree.concat();\n if (typeof idx === 'number') {\n list.splice(idx, deleteCount, ...items);\n } else if (Array.isArray(idx) && idx.length) {\n idx = idx.concat();\n const lastIdx = idx.pop()!;\n let host = idx.reduce((list: Array<T>, idx) => {\n const child = {\n ...list[idx],\n children: list[idx].children ? list[idx].children!.concat() : []\n };\n list[idx] = child;\n return child.children;\n }, list);\n host.splice(lastIdx, deleteCount, ...items);\n }\n\n return list;\n}\n\n/**\n * 计算树的深度\n * @param tree\n */\nexport function getTreeDepth<T extends TreeItem>(tree: Array<T>): number {\n return Math.max(\n ...tree.map(item => {\n if (Array.isArray(item.children)) {\n return 1 + getTreeDepth(item.children);\n }\n\n return 1;\n })\n );\n}\n\n/**\n * 从树中获取某个值的所有祖先\n * @param tree\n * @param value\n */\nexport function getTreeAncestors<T extends TreeItem>(\n tree: Array<T>,\n value: T,\n includeSelf = false\n): Array<T> | null {\n let ancestors: Array<T> | null = null;\n\n findTree(tree, (item, index, level, paths) => {\n if (item === value) {\n ancestors = paths;\n if (includeSelf) {\n ancestors.push(item);\n }\n return true;\n }\n return false;\n });\n\n return ancestors;\n}\n\n/**\n * 从树中获取某个值的上级\n * @param tree\n * @param value\n */\nexport function getTreeParent<T extends TreeItem>(tree: Array<T>, value: T) {\n const ancestors = getTreeAncestors(tree, value);\n return ancestors?.length ? ancestors[ancestors.length - 1] : null;\n}\n\nexport function ucFirst(str?: string) {\n return typeof str === 'string'\n ? str.substring(0, 1).toUpperCase() + str.substring(1)\n : str;\n}\n\nexport function lcFirst(str?: string) {\n return str ? str.substring(0, 1).toLowerCase() + str.substring(1) : '';\n}\n\nexport function camel(str?: string) {\n return str\n ? str\n .split(/[\\s_\\-]/)\n .map((item, index) => (index === 0 ? lcFirst(item) : ucFirst(item)))\n .join('')\n : '';\n}\n\nexport function getWidthRate(value: any, strictMode = false): number {\n if (typeof value === 'string' && /\\bcol\\-\\w+\\-(\\d+)\\b/.test(value)) {\n return parseInt(RegExp.$1, 10);\n }\n\n return strictMode ? 0 : value || 0;\n}\n\nexport function getLevelFromClassName(\n value: string,\n defaultValue: string = 'default'\n) {\n if (\n /\\b(?:btn|text)-(link|primary|secondary|info|success|warning|danger|light|dark)\\b/.test(\n value\n )\n ) {\n return RegExp.$1;\n }\n\n return defaultValue;\n}\n\nexport function pickEventsProps(props: any) {\n const ret: any = {};\n props &&\n Object.keys(props).forEach(\n key => /^on/.test(key) && (ret[key] = props[key])\n );\n return ret;\n}\n\nexport const autobind = autobindMethod;\n\nexport const bulkBindFunctions = function <\n T extends {\n [propName: string]: any;\n }\n>(context: T, funNames: Array<FunctionPropertyNames<T>>) {\n funNames.forEach(key => (context[key] = context[key].bind(context)));\n};\n\nexport function sortArray<T extends any>(\n items: Array<T>,\n field: string,\n dir: -1 | 1\n): Array<T> {\n return items.sort((a: any, b: any) => {\n let ret: number;\n const a1 = a[field];\n const b1 = b[field];\n\n if (typeof a1 === 'number' && typeof b1 === 'number') {\n ret = a1 < b1 ? -1 : a1 === b1 ? 0 : 1;\n } else {\n ret = String(a1).localeCompare(String(b1));\n }\n\n return ret * dir;\n });\n}\n\n// 只判断一层, 如果层级很深,form-data 也不好表达。\nexport function hasFile(object: any): boolean {\n return Object.keys(object).some(key => {\n let value = object[key];\n\n return (\n value instanceof File ||\n (Array.isArray(value) && value.length && value[0] instanceof File)\n );\n });\n}\n\nexport function qsstringify(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n keepEmptyArray?: boolean\n) {\n // qs会保留空字符串。fix: Combo模式的空数组,无法清空。改为存为空字符串;只转换一层\n keepEmptyArray &&\n Object.keys(data).forEach((key: any) => {\n Array.isArray(data[key]) && !data[key].length && (data[key] = '');\n });\n return qs.stringify(data, options);\n}\n\nexport function qsparse(\n data: string,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true,\n depth: 1000 // 默认是 5, 所以condition-builder只要来个条件组就会导致报错\n }\n) {\n return qs.parse(data, options);\n}\n\nexport function object2formData(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n fd: FormData = new FormData()\n): any {\n let fileObjects: any = [];\n let others: any = {};\n\n Object.keys(data).forEach(key => {\n const value = data[key];\n\n if (value instanceof File) {\n fileObjects.push([key, value]);\n } else if (\n Array.isArray(value) &&\n value.length &&\n value[0] instanceof File\n ) {\n value.forEach(value => fileObjects.push([`${key}[]`, value]));\n } else {\n others[key] = value;\n }\n });\n\n // 因为 key 的格式太多了,偷个懒,用 qs 来处理吧。\n qsstringify(others, options)\n .split('&')\n .forEach(item => {\n let parts = item.split('=');\n // form-data/multipart 是不需要 encode 值的。\n parts[0] && fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fileObjects.forEach((fileObject: any[]) =>\n fd.append(fileObject[0], fileObject[1], fileObject[1].name)\n );\n\n return fd;\n}\n\nexport function chainFunctions(\n ...fns: Array<(...args: Array<any>) => void>\n): (...args: Array<any>) => void {\n return (...args: Array<any>) =>\n fns.reduce(\n (ret: any, fn: any) =>\n ret === false\n ? false\n : typeof fn == 'function'\n ? fn(...args)\n : undefined,\n undefined\n );\n}\n\nexport function chainEvents(props: any, schema: any) {\n const ret: any = {};\n\n Object.keys(props).forEach(key => {\n if (\n key.substr(0, 2) === 'on' &&\n typeof props[key] === 'function' &&\n typeof schema[key] === 'function' &&\n schema[key] !== props[key]\n ) {\n // 表单项里面的 onChange 很特殊,这个不要处理。\n if (props.formStore && key === 'onChange') {\n ret[key] = props[key];\n } else {\n ret[key] = chainFunctions(schema[key], props[key]);\n }\n } else {\n ret[key] = props[key];\n }\n });\n\n return ret;\n}\n\nexport function mapObject(value: any, fn: Function): any {\n if (Array.isArray(value)) {\n return value.map(item => mapObject(item, fn));\n }\n if (isObject(value)) {\n let tmpValue = {...value};\n Object.keys(tmpValue).forEach(key => {\n (tmpValue as PlainObject)[key] = mapObject(\n (tmpValue as PlainObject)[key],\n fn\n );\n });\n return tmpValue;\n }\n return fn(value);\n}\n\nexport function loadScript(src: string) {\n return new Promise<void>((ok, fail) => {\n const script = document.createElement('script');\n script.onerror = reason => fail(reason);\n\n if (~src.indexOf('{{callback}}')) {\n const callbackFn = `loadscriptcallback_${uuid()}`;\n (window as any)[callbackFn] = () => {\n ok();\n delete (window as any)[callbackFn];\n };\n src = src.replace('{{callback}}', callbackFn);\n } else {\n script.onload = () => ok();\n }\n\n script.src = src;\n document.head.appendChild(script);\n });\n}\n\nexport class SkipOperation extends Error {}\n\n/**\n * 检查对象是否有循环引用,来自 https://stackoverflow.com/a/34909127\n * @param obj\n */\nfunction isCyclic(obj: any): boolean {\n const seenObjects: any = [];\n function detect(obj: any) {\n if (obj && typeof obj === 'object') {\n if (seenObjects.indexOf(obj) !== -1) {\n return true;\n }\n seenObjects.push(obj);\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && detect(obj[key])) {\n return true;\n }\n }\n }\n return false;\n }\n return detect(obj);\n}\n\nfunction internalFindObjectsWithKey(obj: any, key: string) {\n let objects: any[] = [];\n for (const k in obj) {\n if (!obj.hasOwnProperty(k)) continue;\n if (k === key) {\n objects.push(obj);\n } else if (typeof obj[k] === 'object') {\n objects = objects.concat(internalFindObjectsWithKey(obj[k], key));\n }\n }\n return objects;\n}\n\n/**\n * 深度查找具有某个 key 名字段的对象,实际实现是 internalFindObjectsWithKey,这里包一层是为了做循环引用检测\n * @param obj\n * @param key\n */\nexport function findObjectsWithKey(obj: any, key: string) {\n // 避免循环引用导致死循环\n if (isCyclic(obj)) {\n return [];\n }\n return internalFindObjectsWithKey(obj, key);\n}\n\nlet scrollbarWidth: number;\n\n/**\n * 获取浏览器滚动条宽度 https://stackoverflow.com/a/13382873\n */\n\nexport function getScrollbarWidth() {\n if (typeof scrollbarWidth !== 'undefined') {\n return scrollbarWidth;\n }\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n // @ts-ignore\n outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n scrollbarWidth = outer.offsetWidth - inner.offsetWidth;\n\n // Removing temporary elements from the DOM\n // @ts-ignore\n outer.parentNode.removeChild(outer);\n\n return scrollbarWidth;\n}\n\n// 后续改用 FormulaExec['formula']\nfunction resolveValueByName(data: any, name?: string) {\n return isPureVariable(name)\n ? resolveVariableAndFilter(name, data)\n : resolveVariable(name, data);\n}\n\n// 统一的获取 value 值方法\nexport function getPropValue<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(props: T, getter?: (props: T) => any) {\n const {name, value, data, defaultValue} = props;\n return (\n value ?? getter?.(props) ?? resolveValueByName(data, name) ?? defaultValue\n );\n}\n\n// 检测 value 是否有变化,有变化就执行 onChange\nexport function detectPropValueChanged<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(\n props: T,\n prevProps: T,\n onChange: (value: any) => void,\n getter?: (props: T) => any\n) {\n let nextValue: any;\n if (typeof props.value !== 'undefined') {\n props.value !== prevProps.value && onChange(props.value);\n } else if ((nextValue = getter?.(props)) !== undefined) {\n nextValue !== getter!(prevProps) && onChange(nextValue);\n } else if (\n typeof props.name === 'string' &&\n (nextValue = resolveValueByName(props.data, props.name)) !== undefined\n ) {\n nextValue !== resolveValueByName(prevProps.data, prevProps.name) &&\n onChange(nextValue);\n } else if (props.defaultValue !== prevProps.defaultValue) {\n onChange(props.defaultValue);\n }\n}\n\n// 去掉字符串中的 html 标签,不完全准确但效率比较高\nexport function removeHTMLTag(str: string) {\n return typeof str === 'string' ? str.replace(/<\\/?[^>]+(>|$)/g, '') : str;\n}\n\n/**\n * 将路径格式的value转换成普通格式的value值\n *\n * @example\n *\n * 'a/b/c' => 'c';\n * {label: 'A/B/C', value: 'a/b/c'} => {label: 'C', value: 'c'};\n * 'a/b/c,a/d' => 'c,d';\n * ['a/b/c', 'a/d'] => ['c', 'd'];\n * [{label: 'A/B/C', value: 'a/b/c'},{label: 'A/D', value: 'a/d'}] => [{label: 'C', value: 'c'},{label: 'D', value: 'd'}]\n */\nexport function normalizeNodePath(\n value: any,\n enableNodePath: boolean,\n labelField: string = 'label',\n valueField: string = 'value',\n pathSeparator: string = '/',\n delimiter: string = ','\n) {\n const nodeValueArray: any[] = [];\n const nodePathArray: any[] = [];\n const getLastNodeFromPath = (path: any) =>\n last(path ? path.toString().split(pathSeparator) : []);\n\n if (typeof value === 'undefined' || !enableNodePath) {\n return {nodeValueArray, nodePathArray};\n }\n\n // 尾节点为当前options中value值\n if (Array.isArray(value)) {\n value.forEach(nodePath => {\n if (nodePath && nodePath.hasOwnProperty(valueField)) {\n nodeValueArray.push({\n ...nodePath,\n [labelField]: getLastNodeFromPath(nodePath[labelField]),\n [valueField]: getLastNodeFromPath(nodePath[valueField])\n });\n nodePathArray.push(nodePath[valueField]);\n } else {\n nodeValueArray.push(getLastNodeFromPath(nodePath));\n nodePathArray.push(nodePath);\n }\n });\n } else if (typeof value === 'string') {\n value\n .toString()\n .split(delimiter)\n .forEach(path => {\n nodeValueArray.push(getLastNodeFromPath(path));\n nodePathArray.push(path);\n });\n } else {\n nodeValueArray.push({\n ...value,\n [labelField]: getLastNodeFromPath(value[labelField]),\n [valueField || 'value']: getLastNodeFromPath(value[valueField])\n });\n nodePathArray.push(value[valueField]);\n }\n\n return {nodeValueArray, nodePathArray};\n}\n\n// 主要用于排除点击输入框和链接等情况\nexport function isClickOnInput(e: React.MouseEvent<HTMLElement>) {\n const target: HTMLElement = e.target as HTMLElement;\n let formItem;\n if (\n !e.currentTarget.contains(target) ||\n ~['INPUT', 'TEXTAREA'].indexOf(target.tagName) ||\n ((formItem = target.closest(`button, a, [data-role=\"form-item\"]`)) &&\n e.currentTarget.contains(formItem))\n ) {\n return true;\n }\n return false;\n}\n\n// 计算字符串 hash\nexport function hashCode(s: string): number {\n return s.split('').reduce((a, b) => {\n a = (a << 5) - a + b.charCodeAt(0);\n return a & a;\n }, 0);\n}\n\n/**\n * 遍历 schema\n * @param json\n * @param mapper\n */\nexport function JSONTraverse(\n json: any,\n mapper: (value: any, key: string | number, host: Object) => any\n) {\n Object.keys(json).forEach(key => {\n const value: any = json[key];\n if (isPlainObject(value) || Array.isArray(value)) {\n JSONTraverse(value, mapper);\n } else {\n mapper(value, key, json);\n }\n });\n}\n\nexport function convertArrayValueToMoment(\n value: number[],\n types: string[],\n mom: moment.Moment\n): moment.Moment {\n if (value.length === 0) return mom;\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n // @ts-ignore\n mom.set(type, value[i]);\n }\n return mom;\n}\n\nexport function getRange(min: number, max: number, step: number = 1) {\n const arr = [];\n for (let i = min; i <= max; i += step) {\n arr.push(i);\n }\n return arr;\n}\n\nexport function repeatCount(count: number, iterator: (index: number) => any) {\n let result: Array<any> = [];\n let index = 0;\n\n while (count--) {\n result.push(iterator(index++));\n }\n\n return result;\n}\n\nexport function isNumeric(value: any): boolean {\n if (typeof value === 'number') {\n return true;\n }\n return /^[-+]?(?:\\d*[.])?\\d+$/.test(value);\n}\n"
11
+ "import isPlainObject from 'lodash/isPlainObject';\nimport isEqual from 'lodash/isEqual';\nimport isNaN from 'lodash/isNaN';\nimport uniq from 'lodash/uniq';\nimport last from 'lodash/last';\nimport {Schema, PlainObject, FunctionPropertyNames} from '../types';\nimport {evalExpression} from './tpl';\nimport qs from 'qs';\nimport {IIRendererStore} from '../store';\nimport {IFormStore} from '../store/form';\nimport {autobindMethod} from './autobind';\nimport {\n createObject,\n cloneObject,\n isObject,\n string2regExp,\n getVariable,\n setVariable,\n deleteVariable,\n keyToPath,\n isPureVariable,\n resolveVariable,\n resolveVariableAndFilter\n} from 'amis-formula';\nimport {isObservable, isObservableArray} from 'mobx';\n\nexport {\n createObject,\n cloneObject,\n isObject,\n string2regExp,\n getVariable,\n setVariable,\n deleteVariable,\n keyToPath\n};\n\nexport function preventDefault(event: TouchEvent | Event): void {\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n}\n\nexport function isMobile() {\n return (window as any).matchMedia?.('(max-width: 768px)').matches;\n}\n\nexport function range(num: number, min: number, max: number): number {\n return Math.min(Math.max(num, min), max);\n}\n\n/**\n * 给目标对象添加其他属性,可读取但是不会被遍历。\n * @param target\n * @param props\n */\nexport function injectPropsToObject(target: any, props: any) {\n const sup = Object.create(target.__super || null);\n Object.keys(props).forEach(key => (sup[key] = props[key]));\n const result = Object.create(sup);\n Object.keys(target).forEach(key => (result[key] = target[key]));\n return result;\n}\n\nexport function extendObject(\n target: any,\n src?: any,\n persistOwnProps: boolean = true\n) {\n const obj = cloneObject(target, persistOwnProps);\n src && Object.keys(src).forEach(key => (obj[key] = src[key]));\n return obj;\n}\n\nexport function isSuperDataModified(\n data: any,\n prevData: any,\n store: IIRendererStore\n) {\n let keys: Array<string> = [];\n\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(store.data))\n );\n } else {\n keys = Object.keys(store.data);\n }\n\n if (Array.isArray(keys) && keys.length) {\n return keys.some(key => data[key] !== prevData[key]);\n }\n\n return false;\n}\n\nexport function syncDataFromSuper(\n data: any,\n superObject: any,\n prevSuperObject: any,\n store: IIRendererStore,\n force: boolean\n) {\n const obj = {\n ...data\n };\n\n let keys: Array<string> = [];\n\n // 如果是 form store,则从父级同步 formItem 种东西。\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(obj))\n );\n } else if (force) {\n keys = Object.keys(obj);\n }\n\n if (superObject || prevSuperObject) {\n keys.forEach(key => {\n if (!key) {\n return;\n }\n\n if (\n ((superObject && typeof superObject[key] !== 'undefined') ||\n (prevSuperObject && typeof prevSuperObject[key] !== 'undefined')) &&\n ((prevSuperObject && !superObject) ||\n (!prevSuperObject && superObject) ||\n prevSuperObject[key] !== superObject[key])\n ) {\n obj[key] = superObject[key];\n }\n });\n }\n\n return obj;\n}\n\n/**\n * 生成 8 位随机数字。\n *\n * @return {string} 8位随机数字\n */\nexport function guid() {\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n return s4() + s4() + s4();\n}\n\nexport function findIndex(\n arr: Array<any>,\n detect: (item?: any, index?: number) => boolean\n) {\n for (let i = 0, len = arr.length; i < len; i++) {\n if (detect(arr[i], i)) {\n return i;\n }\n }\n\n return -1;\n}\n\nexport function hasOwnProperty(\n data: {[propName: string]: any},\n key: string\n): boolean {\n const parts = keyToPath(key);\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (!isObject(data) || !data.hasOwnProperty(key)) {\n return false;\n }\n\n data = data[key];\n }\n\n return true;\n}\n\nexport function noop() {}\n\nexport function anyChanged(\n attrs: string | Array<string>,\n from: {[propName: string]: any},\n to: {[propName: string]: any},\n strictMode: boolean = true\n): boolean {\n return (typeof attrs === 'string' ? attrs.split(/\\s*,\\s*/) : attrs).some(\n key => (strictMode ? from[key] !== to[key] : from[key] != to[key])\n );\n}\n\nexport function rmUndefined(obj: PlainObject) {\n const newObj: PlainObject = {};\n\n if (typeof obj !== 'object') {\n return obj;\n }\n\n const keys = Object.keys(obj);\n keys.forEach(key => {\n if (obj[key] !== undefined) {\n newObj[key] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function isObjectShallowModified(\n prev: any,\n next: any,\n strictMode: boolean = true,\n ignoreUndefined: boolean = false,\n statck: Array<any> = []\n): boolean {\n if (Array.isArray(prev) && Array.isArray(next)) {\n return prev.length !== next.length\n ? true\n : prev.some((prev, index) =>\n isObjectShallowModified(\n prev,\n next[index],\n strictMode,\n ignoreUndefined,\n statck\n )\n );\n } else if (isNaN(prev) && isNaN(next)) {\n return false;\n } else if (\n null == prev ||\n null == next ||\n !isObject(prev) ||\n !isObject(next) ||\n isObservable(prev) ||\n isObservable(next)\n ) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (ignoreUndefined) {\n prev = rmUndefined(prev);\n next = rmUndefined(next);\n }\n\n const keys = Object.keys(prev);\n const nextKeys = Object.keys(next);\n if (\n keys.length !== nextKeys.length ||\n keys.sort().join(',') !== nextKeys.sort().join(',')\n ) {\n return true;\n }\n\n // 避免循环引用死循环。\n if (~statck.indexOf(prev)) {\n return false;\n }\n statck.push(prev);\n\n for (let i: number = keys.length - 1; i >= 0; i--) {\n let key = keys[i];\n if (\n isObjectShallowModified(\n prev[key],\n next[key],\n strictMode,\n ignoreUndefined,\n statck\n )\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function isArrayChildrenModified(\n prev: Array<any>,\n next: Array<any>,\n strictMode: boolean = true\n) {\n if (!Array.isArray(prev) || !Array.isArray(next)) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (prev.length !== next.length) {\n return true;\n }\n\n for (let i: number = prev.length - 1; i >= 0; i--) {\n if (strictMode ? prev[i] !== next[i] : prev[i] != next[i]) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function immutableExtends(to: any, from: any, deep = false) {\n // 不是对象,不可以merge\n if (!isObject(to) || !isObject(from)) {\n return to;\n }\n\n let ret = to;\n\n Object.keys(from).forEach(key => {\n const origin = to[key];\n const value = from[key];\n\n // todo 支持深度merge\n if (origin !== value) {\n // 一旦有修改,就创建个新对象。\n ret = ret !== to ? ret : {...to};\n ret[key] = value;\n }\n });\n\n return ret;\n}\n\n// 即将抛弃\nexport function makeColumnClassBuild(\n steps: number,\n classNameTpl: string = 'col-sm-$value'\n) {\n let count = 12;\n let step = Math.floor(count / steps);\n\n return function (schema: Schema) {\n if (\n schema.columnClassName &&\n /\\bcol-(?:xs|sm|md|lg)-(\\d+)\\b/.test(schema.columnClassName)\n ) {\n const flex = parseInt(RegExp.$1, 10);\n count -= flex;\n steps--;\n step = Math.floor(count / steps);\n return schema.columnClassName;\n } else if (schema.columnClassName) {\n count -= step;\n steps--;\n return schema.columnClassName;\n }\n\n count -= step;\n steps--;\n return classNameTpl.replace('$value', '' + step);\n };\n}\n\nexport function hasVisibleExpression(schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n}) {\n return schema?.visibleOn || schema?.hiddenOn;\n}\n\nexport function isVisible(\n schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n },\n data?: object\n) {\n return !(\n schema.hidden ||\n schema.visible === false ||\n (schema.hiddenOn && evalExpression(schema.hiddenOn, data) === true) ||\n (schema.visibleOn && evalExpression(schema.visibleOn, data) === false)\n );\n}\n\nexport function isUnfolded(\n node: any,\n config: {\n foldedField?: string;\n unfoldedField?: string;\n }\n): boolean {\n let {foldedField, unfoldedField} = config;\n\n unfoldedField = unfoldedField || 'unfolded';\n foldedField = foldedField || 'folded';\n\n let ret: boolean = false;\n if (unfoldedField && typeof node[unfoldedField] !== 'undefined') {\n ret = !!node[unfoldedField];\n } else if (foldedField && typeof node[foldedField] !== 'undefined') {\n ret = !node[foldedField];\n }\n\n return ret;\n}\n\n/**\n * 过滤掉被隐藏的数组元素\n */\nexport function visibilityFilter(items: any, data?: object) {\n return items.filter((item: any) => {\n return isVisible(item, data);\n });\n}\n\nexport function isDisabled(\n schema: {\n disabledOn?: string;\n disabled?: boolean;\n },\n data?: object\n) {\n return (\n schema.disabled ||\n (schema.disabledOn && evalExpression(schema.disabledOn, data))\n );\n}\n\nexport function hasAbility(\n schema: any,\n ability: string,\n data?: object,\n defaultValue: boolean = true\n): boolean {\n return schema.hasOwnProperty(ability)\n ? schema[ability]\n : schema.hasOwnProperty(`${ability}On`)\n ? evalExpression(schema[`${ability}On`], data || schema)\n : defaultValue;\n}\n\nexport function makeHorizontalDeeper(\n horizontal: {\n left: string;\n right: string;\n offset: string;\n leftFixed?: any;\n },\n count: number\n): {\n left: string | number;\n right: string | number;\n offset: string | number;\n leftFixed?: any;\n} {\n if (count > 1 && /\\bcol-(xs|sm|md|lg)-(\\d+)\\b/.test(horizontal.left)) {\n const flex = parseInt(RegExp.$2, 10) * count;\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n } else if (count > 1 && typeof horizontal.left === 'number') {\n const flex = horizontal.left * count;\n\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n }\n\n return horizontal;\n}\n\nexport function promisify<T extends Function>(\n fn: T\n): (...args: Array<any>) => Promise<any> & {\n raw: T;\n} {\n let promisified = function () {\n try {\n const ret = fn.apply(null, arguments);\n if (ret && ret.then) {\n return ret;\n } else if (typeof ret === 'function') {\n // thunk support\n return new Promise((resolve, reject) =>\n ret((error: boolean, value: any) =>\n error ? reject(error) : resolve(value)\n )\n );\n }\n return Promise.resolve(ret);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n (promisified as any).raw = fn;\n return promisified;\n}\n\nexport function getScrollParent(node: HTMLElement): HTMLElement | null {\n if (node == null) {\n return null;\n }\n\n const style = getComputedStyle(node);\n\n if (!style) {\n return null;\n }\n\n const text =\n style.getPropertyValue('overflow') +\n style.getPropertyValue('overflow-x') +\n style.getPropertyValue('overflow-y');\n\n if (/auto|scroll/.test(text) || node.nodeName === 'BODY') {\n return node;\n }\n\n return getScrollParent(node.parentNode as HTMLElement);\n}\n\n/**\n * Deep diff between two object, using lodash\n * @param {Object} object Object compared\n * @param {Object} base Object to compare with\n * @return {Object} Return a new object who represent the diff\n */\nexport function difference<\n T extends {[propName: string]: any},\n U extends {[propName: string]: any}\n>(object: T, base: U, keepProps?: Array<string>): {[propName: string]: any} {\n function changes(object: T, base: U) {\n if (isObject(object) && isObject(base)) {\n const keys: Array<keyof T & keyof U> = uniq(\n Object.keys(object).concat(Object.keys(base))\n );\n let result: any = {};\n\n keys.forEach(key => {\n const a: any = object[key as keyof T];\n const b: any = base[key as keyof U];\n\n if (keepProps && ~keepProps.indexOf(key as string)) {\n result[key] = a;\n }\n\n if (isEqual(a, b)) {\n return;\n }\n\n if (!object.hasOwnProperty(key)) {\n result[key] = undefined;\n } else if (Array.isArray(a) && Array.isArray(b)) {\n result[key] = a;\n } else {\n result[key] = changes(a as any, b as any);\n }\n });\n\n return result;\n } else {\n return object;\n }\n }\n return changes(object, base);\n}\n\nexport const padArr = (arr: Array<any>, size = 4): Array<Array<any>> => {\n const ret: Array<Array<any>> = [];\n const pool: Array<any> = arr.concat();\n let from = 0;\n\n while (pool.length) {\n let host: Array<any> = ret[from] || (ret[from] = []);\n\n if (host.length >= size) {\n from += 1;\n continue;\n }\n\n host.push(pool.shift());\n }\n\n return ret;\n};\n\nexport function __uri(id: string) {\n return id;\n}\n\n// xs < 768px\n// sm >= 768px\n// md >= 992px\n// lg >= 1200px\nexport function isBreakpoint(str: string): boolean {\n if (typeof str !== 'string') {\n return !!str;\n }\n\n const breaks = str.split(/\\s*,\\s*|\\s+/);\n\n if ((window as any).matchMedia) {\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' &&\n matchMedia(`screen and (max-width: 767px)`).matches) ||\n (item === 'sm' &&\n matchMedia(`screen and (min-width: 768px) and (max-width: 991px)`)\n .matches) ||\n (item === 'md' &&\n matchMedia(`screen and (min-width: 992px) and (max-width: 1199px)`)\n .matches) ||\n (item === 'lg' && matchMedia(`screen and (min-width: 1200px)`).matches)\n );\n } else {\n const width = window.innerWidth;\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' && width < 768) ||\n (item === 'sm' && width >= 768 && width < 992) ||\n (item === 'md' && width >= 992 && width < 1200) ||\n (item === 'lg' && width >= 1200)\n );\n }\n}\n\nexport function until(\n fn: () => Promise<any>,\n when: (ret: any) => boolean,\n getCanceler: (fn: () => any) => void,\n interval: number = 5000\n) {\n let timer: ReturnType<typeof setTimeout>;\n let stoped: boolean = false;\n\n return new Promise((resolve, reject) => {\n let cancel = () => {\n clearTimeout(timer);\n stoped = true;\n };\n\n let check = async () => {\n try {\n const ret = await fn();\n\n if (stoped) {\n return;\n } else if (when(ret)) {\n stoped = true;\n resolve(ret);\n } else {\n timer = setTimeout(check, interval);\n }\n } catch (e) {\n reject(e);\n }\n };\n\n check();\n getCanceler && getCanceler(cancel);\n });\n}\n\nexport function omitControls(\n controls: Array<any>,\n omitItems: Array<string>\n): Array<any> {\n return controls.filter(\n control => !~omitItems.indexOf(control.name || control._name)\n );\n}\n\nexport function isEmpty(thing: any) {\n if (isObject(thing) && Object.keys(thing).length) {\n return false;\n }\n\n return true;\n}\n\n/**\n * 基于时间戳的 uuid\n *\n * @returns uniqueId\n */\nexport const uuid = () => {\n return (+new Date()).toString(36);\n};\n\n// 参考 https://github.com/streamich/v4-uuid\nconst str = () =>\n (\n '00000000000000000' + (Math.random() * 0xffffffffffffffff).toString(16)\n ).slice(-16);\n\nexport const uuidv4 = () => {\n const a = str();\n const b = str();\n return (\n a.slice(0, 8) +\n '-' +\n a.slice(8, 12) +\n '-4' +\n a.slice(13) +\n '-a' +\n b.slice(1, 4) +\n '-' +\n b.slice(4)\n );\n};\n\nexport interface TreeItem {\n children?: TreeArray;\n [propName: string]: any;\n}\nexport interface TreeArray extends Array<TreeItem> {}\n\n/**\n * 类似于 arr.map 方法,此方法主要针对类似下面示例的树形结构。\n * [\n * {\n * children: []\n * },\n * // 其他成员\n * ]\n *\n * @param {Tree} tree 树形数据\n * @param {Function} iterator 处理函数,返回的数据会被替换成新的。\n * @return {Tree} 返回处理过的 tree\n */\nexport function mapTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => T,\n level: number = 1,\n depthFirst: boolean = false,\n paths: Array<T> = []\n) {\n return tree.map((item: any, index) => {\n if (depthFirst) {\n let children: TreeArray | undefined = item.children\n ? mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n )\n : undefined;\n children && (item = {...item, children: children});\n item = iterator(item, index, level, paths) || {...(item as object)};\n return item;\n }\n\n item = iterator(item, index, level, paths) || {...(item as object)};\n\n if (item.children && item.children.splice) {\n item.children = mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n );\n }\n\n return item;\n });\n}\n\n/**\n * 遍历树\n * @param tree\n * @param iterator\n */\nexport function eachTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1\n) {\n tree.map((item, index) => {\n iterator(item, index, level);\n\n if (item.children && item.children.splice) {\n eachTree(item.children, iterator, level + 1);\n }\n });\n}\n\n/**\n * 在树中查找节点。\n * @param tree\n * @param iterator\n */\nexport function findTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): T | null {\n let result: T | null = null;\n\n everyTree(tree, (item, key, level, paths) => {\n if (iterator(item, key, level, paths)) {\n result = item;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 在树中查找节点, 返回下标数组。\n * @param tree\n * @param iterator\n */\nexport function findTreeIndex<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): Array<number> | undefined {\n let idx: Array<number> = [];\n\n findTree(tree, (item, index, level, paths) => {\n if (iterator(item, index, level, paths)) {\n idx = [index];\n\n paths = paths.concat();\n paths.unshift({\n children: tree\n } as any);\n\n for (let i = paths.length - 1; i > 0; i--) {\n const prev = paths[i - 1];\n const current = paths[i];\n idx.unshift(prev.children!.indexOf(current));\n }\n\n return true;\n }\n return false;\n });\n\n return idx.length ? idx : undefined;\n}\n\nexport function getTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number\n): T | undefined | null {\n const indexes = Array.isArray(idx) ? idx.concat() : [idx];\n const lastIndex = indexes.pop()!;\n let list: Array<T> | null = tree;\n for (let i = 0, len = indexes.length; i < len; i++) {\n const index = indexes[i];\n if (!list![index]) {\n list = null;\n break;\n }\n list = list![index].children as any;\n }\n return list ? list[lastIndex] : undefined;\n}\n\n/**\n * 过滤树节点\n *\n * @param tree\n * @param iterator\n */\nexport function filterTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1,\n depthFirst: boolean = false\n) {\n if (depthFirst) {\n return tree\n .map(item => {\n let children: TreeArray | undefined = item.children\n ? filterTree(item.children, iterator, level + 1, depthFirst)\n : undefined;\n\n if (Array.isArray(children) && Array.isArray(item.children)) {\n item = {...item, children: children};\n }\n\n return item;\n })\n .filter((item, index) => iterator(item, index, level));\n }\n\n return tree\n .filter((item, index) => iterator(item, index, level))\n .map(item => {\n if (item.children && item.children.splice) {\n let children = filterTree(\n item.children,\n iterator,\n level + 1,\n depthFirst\n );\n\n if (Array.isArray(children) && Array.isArray(item.children)) {\n item = {...item, children: children};\n }\n }\n return item;\n });\n}\n\n/**\n * 判断树中每个节点是否满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function everyTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (\n item: T,\n key: number,\n level: number,\n paths: Array<T>,\n indexes: Array<number>\n ) => boolean,\n level: number = 1,\n paths: Array<T> = [],\n indexes: Array<number> = []\n): boolean {\n if (!Array.isArray(tree) && !isObservableArray(tree)) {\n return false;\n }\n return tree.every((item, index) => {\n const value: any = iterator(item, index, level, paths, indexes);\n\n if (value && item.children && item.children.splice) {\n return everyTree(\n item.children,\n iterator,\n level + 1,\n paths.concat(item),\n indexes.concat(index)\n );\n }\n\n return value;\n });\n}\n\n/**\n * 判断树中是否有某些节点满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function someTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => boolean\n): boolean {\n let result = false;\n\n everyTree(tree, (item: T, key: number, level: number, paths: Array<T>) => {\n if (iterator(item, key, level, paths)) {\n result = true;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 将树打平变成一维数组,可以传入第二个参数实现打平节点中的其他属性。\n *\n * 比如:\n *\n * flattenTree([\n * {\n * id: 1,\n * children: [\n * { id: 2 },\n * { id: 3 },\n * ]\n * }\n * ], item => item.id); // 输出为 [1, 2, 3]\n *\n * @param tree\n * @param mapper\n */\nexport function flattenTree<T extends TreeItem>(tree: Array<T>): Array<T>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper: (value: T, index: number) => U\n): Array<U>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper?: (value: T, index: number) => U\n): Array<U> {\n let flattened: Array<any> = [];\n eachTree(tree, (item, index) =>\n flattened.push(mapper ? mapper(item, index) : item)\n );\n return flattened;\n}\n\n/**\n * 操作树,遵循 imutable, 每次返回一个新的树。\n * 类似数组的 splice 不同的地方这个方法不修改原始数据,\n * 同时第二个参数不是下标,而是下标数组,分别代表每一层的下标。\n *\n * 至于如何获取下标数组,请查看 findTreeIndex\n *\n * @param tree\n * @param idx\n * @param deleteCount\n * @param ...items\n */\nexport function spliceTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number,\n deleteCount: number = 0,\n ...items: Array<T>\n): Array<T> {\n const list = tree.concat();\n if (typeof idx === 'number') {\n list.splice(idx, deleteCount, ...items);\n } else if (Array.isArray(idx) && idx.length) {\n idx = idx.concat();\n const lastIdx = idx.pop()!;\n let host = idx.reduce((list: Array<T>, idx) => {\n const child = {\n ...list[idx],\n children: list[idx].children ? list[idx].children!.concat() : []\n };\n list[idx] = child;\n return child.children;\n }, list);\n host.splice(lastIdx, deleteCount, ...items);\n }\n\n return list;\n}\n\n/**\n * 计算树的深度\n * @param tree\n */\nexport function getTreeDepth<T extends TreeItem>(tree: Array<T>): number {\n return Math.max(\n ...tree.map(item => {\n if (Array.isArray(item.children)) {\n return 1 + getTreeDepth(item.children);\n }\n\n return 1;\n })\n );\n}\n\n/**\n * 从树中获取某个值的所有祖先\n * @param tree\n * @param value\n */\nexport function getTreeAncestors<T extends TreeItem>(\n tree: Array<T>,\n value: T,\n includeSelf = false\n): Array<T> | null {\n let ancestors: Array<T> | null = null;\n\n findTree(tree, (item, index, level, paths) => {\n if (item === value) {\n ancestors = paths;\n if (includeSelf) {\n ancestors.push(item);\n }\n return true;\n }\n return false;\n });\n\n return ancestors;\n}\n\n/**\n * 从树中获取某个值的上级\n * @param tree\n * @param value\n */\nexport function getTreeParent<T extends TreeItem>(tree: Array<T>, value: T) {\n const ancestors = getTreeAncestors(tree, value);\n return ancestors?.length ? ancestors[ancestors.length - 1] : null;\n}\n\nexport function ucFirst(str?: string) {\n return typeof str === 'string'\n ? str.substring(0, 1).toUpperCase() + str.substring(1)\n : str;\n}\n\nexport function lcFirst(str?: string) {\n return str ? str.substring(0, 1).toLowerCase() + str.substring(1) : '';\n}\n\nexport function camel(str?: string) {\n return str\n ? str\n .split(/[\\s_\\-]/)\n .map((item, index) => (index === 0 ? lcFirst(item) : ucFirst(item)))\n .join('')\n : '';\n}\n\nexport function getWidthRate(value: any, strictMode = false): number {\n if (typeof value === 'string' && /\\bcol\\-\\w+\\-(\\d+)\\b/.test(value)) {\n return parseInt(RegExp.$1, 10);\n }\n\n return strictMode ? 0 : value || 0;\n}\n\nexport function getLevelFromClassName(\n value: string,\n defaultValue: string = 'default'\n) {\n if (\n /\\b(?:btn|text)-(link|primary|secondary|info|success|warning|danger|light|dark)\\b/.test(\n value\n )\n ) {\n return RegExp.$1;\n }\n\n return defaultValue;\n}\n\nexport function pickEventsProps(props: any) {\n const ret: any = {};\n props &&\n Object.keys(props).forEach(\n key => /^on/.test(key) && (ret[key] = props[key])\n );\n return ret;\n}\n\nexport const autobind = autobindMethod;\n\nexport const bulkBindFunctions = function <\n T extends {\n [propName: string]: any;\n }\n>(context: T, funNames: Array<FunctionPropertyNames<T>>) {\n funNames.forEach(key => (context[key] = context[key].bind(context)));\n};\n\nexport function sortArray<T extends any>(\n items: Array<T>,\n field: string,\n dir: -1 | 1\n): Array<T> {\n return items.sort((a: any, b: any) => {\n let ret: number;\n const a1 = a[field];\n const b1 = b[field];\n\n if (typeof a1 === 'number' && typeof b1 === 'number') {\n ret = a1 < b1 ? -1 : a1 === b1 ? 0 : 1;\n } else {\n ret = String(a1).localeCompare(String(b1));\n }\n\n return ret * dir;\n });\n}\n\n// 只判断一层, 如果层级很深,form-data 也不好表达。\nexport function hasFile(object: any): boolean {\n return Object.keys(object).some(key => {\n let value = object[key];\n\n return (\n value instanceof File ||\n (Array.isArray(value) && value.length && value[0] instanceof File)\n );\n });\n}\n\nexport function qsstringify(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n keepEmptyArray?: boolean\n) {\n // qs会保留空字符串。fix: Combo模式的空数组,无法清空。改为存为空字符串;只转换一层\n keepEmptyArray &&\n Object.keys(data).forEach((key: any) => {\n Array.isArray(data[key]) && !data[key].length && (data[key] = '');\n });\n return qs.stringify(data, options);\n}\n\nexport function qsparse(\n data: string,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true,\n depth: 1000 // 默认是 5, 所以condition-builder只要来个条件组就会导致报错\n }\n) {\n return qs.parse(data, options);\n}\n\nexport function object2formData(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n fd: FormData = new FormData()\n): any {\n let fileObjects: any = [];\n let others: any = {};\n\n Object.keys(data).forEach(key => {\n const value = data[key];\n\n if (value instanceof File) {\n fileObjects.push([key, value]);\n } else if (\n Array.isArray(value) &&\n value.length &&\n value[0] instanceof File\n ) {\n value.forEach(value => fileObjects.push([`${key}[]`, value]));\n } else {\n others[key] = value;\n }\n });\n\n // 因为 key 的格式太多了,偷个懒,用 qs 来处理吧。\n qsstringify(others, options)\n .split('&')\n .forEach(item => {\n let parts = item.split('=');\n // form-data/multipart 是不需要 encode 值的。\n parts[0] && fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fileObjects.forEach((fileObject: any[]) =>\n fd.append(fileObject[0], fileObject[1], fileObject[1].name)\n );\n\n return fd;\n}\n\nexport function chainFunctions(\n ...fns: Array<(...args: Array<any>) => void>\n): (...args: Array<any>) => void {\n return (...args: Array<any>) =>\n fns.reduce(\n (ret: any, fn: any) =>\n ret === false\n ? false\n : typeof fn == 'function'\n ? fn(...args)\n : undefined,\n undefined\n );\n}\n\nexport function chainEvents(props: any, schema: any) {\n const ret: any = {};\n\n Object.keys(props).forEach(key => {\n if (\n key.substr(0, 2) === 'on' &&\n typeof props[key] === 'function' &&\n typeof schema[key] === 'function' &&\n schema[key] !== props[key]\n ) {\n // 表单项里面的 onChange 很特殊,这个不要处理。\n if (props.formStore && key === 'onChange') {\n ret[key] = props[key];\n } else {\n ret[key] = chainFunctions(schema[key], props[key]);\n }\n } else {\n ret[key] = props[key];\n }\n });\n\n return ret;\n}\n\nexport function mapObject(value: any, fn: Function): any {\n if (Array.isArray(value)) {\n return value.map(item => mapObject(item, fn));\n }\n if (isObject(value)) {\n let tmpValue = {...value};\n Object.keys(tmpValue).forEach(key => {\n (tmpValue as PlainObject)[key] = mapObject(\n (tmpValue as PlainObject)[key],\n fn\n );\n });\n return tmpValue;\n }\n return fn(value);\n}\n\nexport function loadScript(src: string) {\n return new Promise<void>((ok, fail) => {\n const script = document.createElement('script');\n script.onerror = reason => fail(reason);\n\n if (~src.indexOf('{{callback}}')) {\n const callbackFn = `loadscriptcallback_${uuid()}`;\n (window as any)[callbackFn] = () => {\n ok();\n delete (window as any)[callbackFn];\n };\n src = src.replace('{{callback}}', callbackFn);\n } else {\n script.onload = () => ok();\n }\n\n script.src = src;\n document.head.appendChild(script);\n });\n}\n\nexport class SkipOperation extends Error {}\n\n/**\n * 检查对象是否有循环引用,来自 https://stackoverflow.com/a/34909127\n * @param obj\n */\nfunction isCyclic(obj: any): boolean {\n const seenObjects: any = [];\n function detect(obj: any) {\n if (obj && typeof obj === 'object') {\n if (seenObjects.indexOf(obj) !== -1) {\n return true;\n }\n seenObjects.push(obj);\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && detect(obj[key])) {\n return true;\n }\n }\n }\n return false;\n }\n return detect(obj);\n}\n\nfunction internalFindObjectsWithKey(obj: any, key: string) {\n let objects: any[] = [];\n for (const k in obj) {\n if (!obj.hasOwnProperty(k)) continue;\n if (k === key) {\n objects.push(obj);\n } else if (typeof obj[k] === 'object') {\n objects = objects.concat(internalFindObjectsWithKey(obj[k], key));\n }\n }\n return objects;\n}\n\n/**\n * 深度查找具有某个 key 名字段的对象,实际实现是 internalFindObjectsWithKey,这里包一层是为了做循环引用检测\n * @param obj\n * @param key\n */\nexport function findObjectsWithKey(obj: any, key: string) {\n // 避免循环引用导致死循环\n if (isCyclic(obj)) {\n return [];\n }\n return internalFindObjectsWithKey(obj, key);\n}\n\nlet scrollbarWidth: number;\n\n/**\n * 获取浏览器滚动条宽度 https://stackoverflow.com/a/13382873\n */\n\nexport function getScrollbarWidth() {\n if (typeof scrollbarWidth !== 'undefined') {\n return scrollbarWidth;\n }\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n // @ts-ignore\n outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n scrollbarWidth = outer.offsetWidth - inner.offsetWidth;\n\n // Removing temporary elements from the DOM\n // @ts-ignore\n outer.parentNode.removeChild(outer);\n\n return scrollbarWidth;\n}\n\n// 后续改用 FormulaExec['formula']\nfunction resolveValueByName(data: any, name?: string) {\n return isPureVariable(name)\n ? resolveVariableAndFilter(name, data)\n : resolveVariable(name, data);\n}\n\n// 统一的获取 value 值方法\nexport function getPropValue<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(props: T, getter?: (props: T) => any) {\n const {name, value, data, defaultValue} = props;\n return (\n value ?? getter?.(props) ?? resolveValueByName(data, name) ?? defaultValue\n );\n}\n\n// 检测 value 是否有变化,有变化就执行 onChange\nexport function detectPropValueChanged<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(\n props: T,\n prevProps: T,\n onChange: (value: any) => void,\n getter?: (props: T) => any\n) {\n let nextValue: any;\n if (typeof props.value !== 'undefined') {\n props.value !== prevProps.value && onChange(props.value);\n } else if ((nextValue = getter?.(props)) !== undefined) {\n nextValue !== getter!(prevProps) && onChange(nextValue);\n } else if (\n typeof props.name === 'string' &&\n (nextValue = resolveValueByName(props.data, props.name)) !== undefined\n ) {\n nextValue !== resolveValueByName(prevProps.data, prevProps.name) &&\n onChange(nextValue);\n } else if (props.defaultValue !== prevProps.defaultValue) {\n onChange(props.defaultValue);\n }\n}\n\n// 去掉字符串中的 html 标签,不完全准确但效率比较高\nexport function removeHTMLTag(str: string) {\n return typeof str === 'string' ? str.replace(/<\\/?[^>]+(>|$)/g, '') : str;\n}\n\n/**\n * 将路径格式的value转换成普通格式的value值\n *\n * @example\n *\n * 'a/b/c' => 'c';\n * {label: 'A/B/C', value: 'a/b/c'} => {label: 'C', value: 'c'};\n * 'a/b/c,a/d' => 'c,d';\n * ['a/b/c', 'a/d'] => ['c', 'd'];\n * [{label: 'A/B/C', value: 'a/b/c'},{label: 'A/D', value: 'a/d'}] => [{label: 'C', value: 'c'},{label: 'D', value: 'd'}]\n */\nexport function normalizeNodePath(\n value: any,\n enableNodePath: boolean,\n labelField: string = 'label',\n valueField: string = 'value',\n pathSeparator: string = '/',\n delimiter: string = ','\n) {\n const nodeValueArray: any[] = [];\n const nodePathArray: any[] = [];\n const getLastNodeFromPath = (path: any) =>\n last(path ? path.toString().split(pathSeparator) : []);\n\n if (typeof value === 'undefined' || !enableNodePath) {\n return {nodeValueArray, nodePathArray};\n }\n\n // 尾节点为当前options中value值\n if (Array.isArray(value)) {\n value.forEach(nodePath => {\n if (nodePath && nodePath.hasOwnProperty(valueField)) {\n nodeValueArray.push({\n ...nodePath,\n [labelField]: getLastNodeFromPath(nodePath[labelField]),\n [valueField]: getLastNodeFromPath(nodePath[valueField])\n });\n nodePathArray.push(nodePath[valueField]);\n } else {\n nodeValueArray.push(getLastNodeFromPath(nodePath));\n nodePathArray.push(nodePath);\n }\n });\n } else if (typeof value === 'string') {\n value\n .toString()\n .split(delimiter)\n .forEach(path => {\n nodeValueArray.push(getLastNodeFromPath(path));\n nodePathArray.push(path);\n });\n } else {\n nodeValueArray.push({\n ...value,\n [labelField]: getLastNodeFromPath(value[labelField]),\n [valueField || 'value']: getLastNodeFromPath(value[valueField])\n });\n nodePathArray.push(value[valueField]);\n }\n\n return {nodeValueArray, nodePathArray};\n}\n\n// 主要用于排除点击输入框和链接等情况\nexport function isClickOnInput(e: React.MouseEvent<HTMLElement>) {\n const target: HTMLElement = e.target as HTMLElement;\n let formItem;\n if (\n !e.currentTarget.contains(target) ||\n ~['INPUT', 'TEXTAREA'].indexOf(target.tagName) ||\n ((formItem = target.closest(`button, a, [data-role=\"form-item\"]`)) &&\n e.currentTarget.contains(formItem))\n ) {\n return true;\n }\n return false;\n}\n\n// 计算字符串 hash\nexport function hashCode(s: string): number {\n return s.split('').reduce((a, b) => {\n a = (a << 5) - a + b.charCodeAt(0);\n return a & a;\n }, 0);\n}\n\n/**\n * 遍历 schema\n * @param json\n * @param mapper\n */\nexport function JSONTraverse(\n json: any,\n mapper: (value: any, key: string | number, host: Object) => any\n) {\n Object.keys(json).forEach(key => {\n const value: any = json[key];\n if (isPlainObject(value) || Array.isArray(value)) {\n JSONTraverse(value, mapper);\n } else {\n mapper(value, key, json);\n }\n });\n}\n\nexport function convertArrayValueToMoment(\n value: number[],\n types: string[],\n mom: moment.Moment\n): moment.Moment {\n if (value.length === 0) return mom;\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n // @ts-ignore\n mom.set(type, value[i]);\n }\n return mom;\n}\n\nexport function getRange(min: number, max: number, step: number = 1) {\n const arr = [];\n for (let i = min; i <= max; i += step) {\n arr.push(i);\n }\n return arr;\n}\n\nexport function repeatCount(count: number, iterator: (index: number) => any) {\n let result: Array<any> = [];\n let index = 0;\n\n while (count--) {\n result.push(iterator(index++));\n }\n\n return result;\n}\n\nexport function isNumeric(value: any): boolean {\n if (typeof value === 'number') {\n return true;\n }\n return /^[-+]?(?:\\d*[.])?\\d+$/.test(value);\n}\n"
12
12
  ]
13
13
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "amis",
3
- "version": "1.9.1-beta.22",
3
+ "version": "1.9.1-beta.25",
4
4
  "description": "一种MIS页面生成工具",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
package/schema.json CHANGED
@@ -19429,7 +19429,7 @@
19429
19429
  },
19430
19430
  "WebkitMaxInlineSize": {
19431
19431
  "$ref": "#/definitions/Property.MaxInlineSize%3C(string%7Cnumber)%3E",
19432
- "description": "The **`max-inline-size`** CSS property defines the horizontal or vertical maximum size of an element's block, depending on its writing mode. It corresponds to either the `max-width` or the `max-height` property, depending on the value of `writing-mode`.\n\n**Syntax**: `<'max-width'>`\n\n**Initial value**: `none`"
19432
+ "description": "The **`max-inline-size`** CSS property defines the horizontal or vertical maximum size of an element's block, depending on its writing mode. It corresponds to either the `max-width` or the `max-height` property, depending on the value of `writing-mode`.\n\n**Syntax**: `<'max-width'>`\n\n**Initial value**: `0`"
19433
19433
  },
19434
19434
  "WebkitOrder": {
19435
19435
  "$ref": "#/definitions/Property.Order",
@@ -19577,7 +19577,7 @@
19577
19577
  },
19578
19578
  "all": {
19579
19579
  "$ref": "#/definitions/Property.All",
19580
- "description": "The **`all`** shorthand CSS property resets all of an element's properties except `unicode-bidi`, `direction`, and CSS Custom Properties. It can set properties to their initial or inherited values, or to the values specified in another stylesheet origin.\n\n**Syntax**: `initial | inherit | unset | revert | revert-layer`\n\n**Initial value**: There is no practical initial value for it.\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :-----: | :----: | :-: | | **37** | **27** | **9.1** | **79** | No |"
19580
+ "description": "The **`all`** shorthand CSS property resets all of an element's properties except `unicode-bidi`, `direction`, and CSS Custom Properties. It can set properties to their initial or inherited values, or to the values specified in another stylesheet origin.\n\n**Syntax**: `initial | inherit | unset | revert`\n\n**Initial value**: There is no practical initial value for it.\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :-----: | :----: | :-: | | **37** | **27** | **9.1** | **79** | No |"
19581
19581
  },
19582
19582
  "animation": {
19583
19583
  "$ref": "#/definitions/Property.Animation%3Cstring%3E",
@@ -19741,7 +19741,7 @@
19741
19741
  },
19742
19742
  "textEmphasis": {
19743
19743
  "$ref": "#/definitions/Property.TextEmphasis",
19744
- "description": "The **`text-emphasis`** CSS property applies emphasis marks to text (except spaces and control characters). It is a shorthand for `text-emphasis-style` and `text-emphasis-color`.\n\n**Syntax**: `<'text-emphasis-style'> || <'text-emphasis-color'>`\n\n| Chrome | Firefox | Safari | Edge | IE | | :------: | :-----: | :----: | :------: | :-: | | **99** | **46** | **7** | **99** | No | | 25 _-x-_ | | | 79 _-x-_ | |"
19744
+ "description": "The **`text-emphasis`** CSS property applies emphasis marks to text (except spaces and control characters). It is a shorthand for `text-emphasis-style` and `text-emphasis-color`.\n\n**Syntax**: `<'text-emphasis-style'> || <'text-emphasis-color'>`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----------: | :-----: | :----: | :----------: | :-: | | **25** _-x-_ | **46** | **7** | **79** _-x-_ | No |"
19745
19745
  },
19746
19746
  "transition": {
19747
19747
  "$ref": "#/definitions/Property.Transition%3Cstring%3E",
@@ -20137,7 +20137,7 @@
20137
20137
  },
20138
20138
  "contentVisibility": {
20139
20139
  "$ref": "#/definitions/Property.ContentVisibility",
20140
- "description": "The **`content-visibility`** CSS property controls whether or not an element renders its contents at all, along with forcing a strong set of containments, allowing user agents to potentially omit large swathes of layout and rendering work until it becomes needed. Basically it enables the user agent to skip an element's rendering work (including layout and painting) until it is needed — which makes the initial page load much faster.\n\n**Syntax**: `visible | auto | hidden`\n\n**Initial value**: `visible`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :----: | :----: | :-: | | **85** | No | No | **85** | No |"
20140
+ "description": "The **`content-visibility`** CSS property controls whether or not an element renders its contents at all, along with forcing a strong set of containments, allowing user agents to potentially omit large swathes of layout and rendering work until it becomes needed. Basically it enables the user agent to skip an element's rendering work (including layout and painting) until it is needed — which makes the initial page load much faster.\n\n**Syntax**: `visible | auto | hidden`\n\n**Initial value**: `visible`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :------: | :----: | :-: | | **85** | No | **15.4** | **85** | No |"
20141
20141
  },
20142
20142
  "counterIncrement": {
20143
20143
  "$ref": "#/definitions/Property.CounterIncrement",
@@ -20389,11 +20389,11 @@
20389
20389
  },
20390
20390
  "marginBlockEnd": {
20391
20391
  "$ref": "#/definitions/Property.MarginBlockEnd%3C(string%7Cnumber)%3E",
20392
- "description": "The **`margin-block-end`** CSS property defines the logical block end margin of an element, which maps to a physical margin depending on the element's writing mode, directionality, and text orientation.\n\n**Syntax**: `<'margin-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :------: | :----: | :-: | | **87** | **41** | **12.1** | **87** | No |"
20392
+ "description": "The **`margin-block-end`** CSS property defines the logical block end margin of an element, which maps to a physical margin depending on the element's writing mode, directionality, and text orientation.\n\n**Syntax**: `<'margin-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :------: | :----: | :-: | | **69** | **41** | **12.1** | **79** | No |"
20393
20393
  },
20394
20394
  "marginBlockStart": {
20395
20395
  "$ref": "#/definitions/Property.MarginBlockStart%3C(string%7Cnumber)%3E",
20396
- "description": "The **`margin-block-start`** CSS property defines the logical block start margin of an element, which maps to a physical margin depending on the element's writing mode, directionality, and text orientation.\n\n**Syntax**: `<'margin-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :------: | :----: | :-: | | **87** | **41** | **12.1** | **87** | No |"
20396
+ "description": "The **`margin-block-start`** CSS property defines the logical block start margin of an element, which maps to a physical margin depending on the element's writing mode, directionality, and text orientation.\n\n**Syntax**: `<'margin-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :------: | :----: | :-: | | **69** | **41** | **12.1** | **79** | No |"
20397
20397
  },
20398
20398
  "marginBottom": {
20399
20399
  "$ref": "#/definitions/Property.MarginBottom%3C(string%7Cnumber)%3E",
@@ -20405,11 +20405,11 @@
20405
20405
  },
20406
20406
  "marginInlineEnd": {
20407
20407
  "$ref": "#/definitions/Property.MarginInlineEnd%3C(string%7Cnumber)%3E",
20408
- "description": "The **`margin-inline-end`** CSS property defines the logical inline end margin of an element, which maps to a physical margin depending on the element's writing mode, directionality, and text orientation. In other words, it corresponds to the `margin-top`, `margin-right`, `margin-bottom` or `margin-left` property depending on the values defined for `writing-mode`, `direction`, and `text-orientation`.\n\n**Syntax**: `<'margin-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----------------------: | :-------------------: | :----------------------: | :-----------------------: | :-: | | **87** | **41** | **12.1** | **87** | No | | 2 _(-webkit-margin-end)_ | 3 _(-moz-margin-end)_ | 3 _(-webkit-margin-end)_ | 79 _(-webkit-margin-end)_ | |"
20408
+ "description": "The **`margin-inline-end`** CSS property defines the logical inline end margin of an element, which maps to a physical margin depending on the element's writing mode, directionality, and text orientation. In other words, it corresponds to the `margin-top`, `margin-right`, `margin-bottom` or `margin-left` property depending on the values defined for `writing-mode`, `direction`, and `text-orientation`.\n\n**Syntax**: `<'margin-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----------------------: | :-------------------: | :----------------------: | :----: | :-: | | **69** | **41** | **12.1** | **79** | No | | 2 _(-webkit-margin-end)_ | 3 _(-moz-margin-end)_ | 3 _(-webkit-margin-end)_ | | |"
20409
20409
  },
20410
20410
  "marginInlineStart": {
20411
20411
  "$ref": "#/definitions/Property.MarginInlineStart%3C(string%7Cnumber)%3E",
20412
- "description": "The **`margin-inline-start`** CSS property defines the logical inline start margin of an element, which maps to a physical margin depending on the element's writing mode, directionality, and text orientation. It corresponds to the `margin-top`, `margin-right`, `margin-bottom`, or `margin-left` property depending on the values defined for `writing-mode`, `direction`, and `text-orientation`.\n\n**Syntax**: `<'margin-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :------------------------: | :---------------------: | :------------------------: | :-------------------------: | :-: | | **87** | **41** | **12.1** | **87** | No | | 2 _(-webkit-margin-start)_ | 3 _(-moz-margin-start)_ | 3 _(-webkit-margin-start)_ | 79 _(-webkit-margin-start)_ | |"
20412
+ "description": "The **`margin-inline-start`** CSS property defines the logical inline start margin of an element, which maps to a physical margin depending on the element's writing mode, directionality, and text orientation. It corresponds to the `margin-top`, `margin-right`, `margin-bottom`, or `margin-left` property depending on the values defined for `writing-mode`, `direction`, and `text-orientation`.\n\n**Syntax**: `<'margin-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :------------------------: | :---------------------: | :------------------------: | :----: | :-: | | **69** | **41** | **12.1** | **79** | No | | 2 _(-webkit-margin-start)_ | 3 _(-moz-margin-start)_ | 3 _(-webkit-margin-start)_ | | |"
20413
20413
  },
20414
20414
  "marginLeft": {
20415
20415
  "$ref": "#/definitions/Property.MarginLeft%3C(string%7Cnumber)%3E",
@@ -20489,7 +20489,7 @@
20489
20489
  },
20490
20490
  "maxBlockSize": {
20491
20491
  "$ref": "#/definitions/Property.MaxBlockSize%3C(string%7Cnumber)%3E",
20492
- "description": "The **`max-block-size`** CSS property specifies the maximum size of an element in the direction opposite that of the writing direction as specified by `writing-mode`. That is, if the writing direction is horizontal, then `max-block-size` is equivalent to `max-height`; if the writing direction is vertical, `max-block-size` is the same as `max-width`.\n\n**Syntax**: `<'max-width'>`\n\n**Initial value**: `none`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :------: | :----: | :-: | | **57** | **41** | **12.1** | **79** | No |"
20492
+ "description": "The **`max-block-size`** CSS property specifies the maximum size of an element in the direction opposite that of the writing direction as specified by `writing-mode`. That is, if the writing direction is horizontal, then `max-block-size` is equivalent to `max-height`; if the writing direction is vertical, `max-block-size` is the same as `max-width`.\n\n**Syntax**: `<'max-width'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :------: | :----: | :-: | | **57** | **41** | **12.1** | **79** | No |"
20493
20493
  },
20494
20494
  "maxHeight": {
20495
20495
  "$ref": "#/definitions/Property.MaxHeight%3C(string%7Cnumber)%3E",
@@ -20497,7 +20497,7 @@
20497
20497
  },
20498
20498
  "maxInlineSize": {
20499
20499
  "$ref": "#/definitions/Property.MaxInlineSize%3C(string%7Cnumber)%3E",
20500
- "description": "The **`max-inline-size`** CSS property defines the horizontal or vertical maximum size of an element's block, depending on its writing mode. It corresponds to either the `max-width` or the `max-height` property, depending on the value of `writing-mode`.\n\n**Syntax**: `<'max-width'>`\n\n**Initial value**: `none`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :--------: | :----: | :-: | | **57** | **41** | **12.1** | **79** | No | | | | 10.1 _-x-_ | | |"
20500
+ "description": "The **`max-inline-size`** CSS property defines the horizontal or vertical maximum size of an element's block, depending on its writing mode. It corresponds to either the `max-width` or the `max-height` property, depending on the value of `writing-mode`.\n\n**Syntax**: `<'max-width'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :--------: | :----: | :-: | | **57** | **41** | **12.1** | **79** | No | | | | 10.1 _-x-_ | | |"
20501
20501
  },
20502
20502
  "maxLines": {
20503
20503
  "$ref": "#/definitions/Property.MaxLines",
@@ -20525,7 +20525,7 @@
20525
20525
  },
20526
20526
  "mixBlendMode": {
20527
20527
  "$ref": "#/definitions/Property.MixBlendMode",
20528
- "description": "The **`mix-blend-mode`** CSS property sets how an element's content should blend with the content of the element's parent and the element's background.\n\n**Syntax**: `<blend-mode> | plus-lighter`\n\n**Initial value**: `normal`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :----: | :----: | :-: | | **41** | **32** | **8** | **79** | No |"
20528
+ "description": "The **`mix-blend-mode`** CSS property sets how an element's content should blend with the content of the element's parent and the element's background.\n\n**Syntax**: `<blend-mode>`\n\n**Initial value**: `normal`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :----: | :----: | :-: | | **41** | **32** | **8** | **79** | No |"
20529
20529
  },
20530
20530
  "motionDistance": {
20531
20531
  "$ref": "#/definitions/Property.OffsetDistance%3C(string%7Cnumber)%3E",
@@ -20549,7 +20549,7 @@
20549
20549
  },
20550
20550
  "offsetAnchor": {
20551
20551
  "$ref": "#/definitions/Property.OffsetAnchor%3C(string%7Cnumber)%3E",
20552
- "description": "**Syntax**: `auto | <position>`\n\n**Initial value**: `auto`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :----: | :--: | :-: | | No | **72** | No | No | No |"
20552
+ "description": "**Syntax**: `auto | <position>`\n\n**Initial value**: `auto`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :----: | :----: | :-: | | **79** | **72** | No | **79** | No |"
20553
20553
  },
20554
20554
  "offsetDistance": {
20555
20555
  "$ref": "#/definitions/Property.OffsetDistance%3C(string%7Cnumber)%3E",
@@ -20645,11 +20645,11 @@
20645
20645
  },
20646
20646
  "paddingBlockEnd": {
20647
20647
  "$ref": "#/definitions/Property.PaddingBlockEnd%3C(string%7Cnumber)%3E",
20648
- "description": "The **`padding-block-end`** CSS property defines the logical block end padding of an element, which maps to a physical padding depending on the element's writing mode, directionality, and text orientation.\n\n**Syntax**: `<'padding-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :------: | :----: | :-: | | **87** | **41** | **12.1** | **87** | No |"
20648
+ "description": "The **`padding-block-end`** CSS property defines the logical block end padding of an element, which maps to a physical padding depending on the element's writing mode, directionality, and text orientation.\n\n**Syntax**: `<'padding-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :------: | :----: | :-: | | **69** | **41** | **12.1** | **79** | No |"
20649
20649
  },
20650
20650
  "paddingBlockStart": {
20651
20651
  "$ref": "#/definitions/Property.PaddingBlockStart%3C(string%7Cnumber)%3E",
20652
- "description": "The **`padding-block-start`** CSS property defines the logical block start padding of an element, which maps to a physical padding depending on the element's writing mode, directionality, and text orientation.\n\n**Syntax**: `<'padding-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :------: | :----: | :-: | | **87** | **41** | **12.1** | **87** | No |"
20652
+ "description": "The **`padding-block-start`** CSS property defines the logical block start padding of an element, which maps to a physical padding depending on the element's writing mode, directionality, and text orientation.\n\n**Syntax**: `<'padding-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----: | :-----: | :------: | :----: | :-: | | **69** | **41** | **12.1** | **79** | No |"
20653
20653
  },
20654
20654
  "paddingBottom": {
20655
20655
  "$ref": "#/definitions/Property.PaddingBottom%3C(string%7Cnumber)%3E",
@@ -20661,11 +20661,11 @@
20661
20661
  },
20662
20662
  "paddingInlineEnd": {
20663
20663
  "$ref": "#/definitions/Property.PaddingInlineEnd%3C(string%7Cnumber)%3E",
20664
- "description": "The **`padding-inline-end`** CSS property defines the logical inline end padding of an element, which maps to a physical padding depending on the element's writing mode, directionality, and text orientation.\n\n**Syntax**: `<'padding-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :-----------------------: | :--------------------: | :-----------------------: | :------------------------: | :-: | | **87** | **41** | **12.1** | **87** | No | | 2 _(-webkit-padding-end)_ | 3 _(-moz-padding-end)_ | 3 _(-webkit-padding-end)_ | 79 _(-webkit-padding-end)_ | |"
20664
+ "description": "The **`padding-inline-end`** CSS property defines the logical inline end padding of an element, which maps to a physical padding depending on the element's writing mode, directionality, and text orientation.\n\n**Syntax**: `<'padding-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :-----------------------: | :--------------------: | :-----------------------: | :----: | :-: | | **69** | **41** | **12.1** | **79** | No | | 2 _(-webkit-padding-end)_ | 3 _(-moz-padding-end)_ | 3 _(-webkit-padding-end)_ | | |"
20665
20665
  },
20666
20666
  "paddingInlineStart": {
20667
20667
  "$ref": "#/definitions/Property.PaddingInlineStart%3C(string%7Cnumber)%3E",
20668
- "description": "The **`padding-inline-start`** CSS property defines the logical inline start padding of an element, which maps to a physical padding depending on the element's writing mode, directionality, and text orientation.\n\n**Syntax**: `<'padding-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :-------------------------: | :----------------------: | :-------------------------: | :--------------------------: | :-: | | **87** | **41** | **12.1** | **87** | No | | 2 _(-webkit-padding-start)_ | 3 _(-moz-padding-start)_ | 3 _(-webkit-padding-start)_ | 79 _(-webkit-padding-start)_ | |"
20668
+ "description": "The **`padding-inline-start`** CSS property defines the logical inline start padding of an element, which maps to a physical padding depending on the element's writing mode, directionality, and text orientation.\n\n**Syntax**: `<'padding-left'>`\n\n**Initial value**: `0`\n\n| Chrome | Firefox | Safari | Edge | IE | | :-------------------------: | :----------------------: | :-------------------------: | :----: | :-: | | **69** | **41** | **12.1** | **79** | No | | 2 _(-webkit-padding-start)_ | 3 _(-moz-padding-start)_ | 3 _(-webkit-padding-start)_ | | |"
20669
20669
  },
20670
20670
  "paddingLeft": {
20671
20671
  "$ref": "#/definitions/Property.PaddingLeft%3C(string%7Cnumber)%3E",
@@ -20945,15 +20945,15 @@
20945
20945
  },
20946
20946
  "textEmphasisColor": {
20947
20947
  "$ref": "#/definitions/Property.TextEmphasisColor",
20948
- "description": "The **`text-emphasis-color`** CSS property sets the color of emphasis marks. This value can also be set using the `text-emphasis` shorthand.\n\n**Syntax**: `<color>`\n\n**Initial value**: `currentcolor`\n\n| Chrome | Firefox | Safari | Edge | IE | | :------: | :-----: | :----: | :------: | :-: | | **99** | **46** | **7** | **99** | No | | 25 _-x-_ | | | 79 _-x-_ | |"
20948
+ "description": "The **`text-emphasis-color`** CSS property sets the color of emphasis marks. This value can also be set using the `text-emphasis` shorthand.\n\n**Syntax**: `<color>`\n\n**Initial value**: `currentcolor`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----------: | :-----: | :----: | :----------: | :-: | | **25** _-x-_ | **46** | **7** | **79** _-x-_ | No |"
20949
20949
  },
20950
20950
  "textEmphasisPosition": {
20951
20951
  "$ref": "#/definitions/Property.TextEmphasisPosition",
20952
- "description": "The **`text-emphasis-position`** CSS property sets where emphasis marks are drawn. Like ruby text, if there isn't enough room for emphasis marks, the line height is increased.\n\n**Syntax**: `[ over | under ] && [ right | left ]`\n\n**Initial value**: `over right`\n\n| Chrome | Firefox | Safari | Edge | IE | | :------: | :-----: | :----: | :------: | :-: | | **99** | **46** | **7** | **99** | No | | 25 _-x-_ | | | 79 _-x-_ | |"
20952
+ "description": "The **`text-emphasis-position`** CSS property sets where emphasis marks are drawn. Like ruby text, if there isn't enough room for emphasis marks, the line height is increased.\n\n**Syntax**: `[ over | under ] && [ right | left ]`\n\n**Initial value**: `over right`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----------: | :-----: | :----: | :----------: | :-: | | **25** _-x-_ | **46** | **7** | **79** _-x-_ | No |"
20953
20953
  },
20954
20954
  "textEmphasisStyle": {
20955
20955
  "$ref": "#/definitions/Property.TextEmphasisStyle",
20956
- "description": "The **`text-emphasis-style`** CSS property sets the appearance of emphasis marks. It can also be set, and reset, using the `text-emphasis` shorthand.\n\n**Syntax**: `none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>`\n\n**Initial value**: `none`\n\n| Chrome | Firefox | Safari | Edge | IE | | :------: | :-----: | :----: | :------: | :-: | | **99** | **46** | **7** | **99** | No | | 25 _-x-_ | | | 79 _-x-_ | |"
20956
+ "description": "The **`text-emphasis-style`** CSS property sets the appearance of emphasis marks. It can also be set, and reset, using the `text-emphasis` shorthand.\n\n**Syntax**: `none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>`\n\n**Initial value**: `none`\n\n| Chrome | Firefox | Safari | Edge | IE | | :----------: | :-----: | :----: | :----------: | :-: | | **25** _-x-_ | **46** | **7** | **79** _-x-_ | No |"
20957
20957
  },
20958
20958
  "textIndent": {
20959
20959
  "$ref": "#/definitions/Property.TextIndent%3C(string%7Cnumber)%3E",
@@ -21135,7 +21135,6 @@
21135
21135
  "inherit",
21136
21136
  "initial",
21137
21137
  "revert",
21138
- "revert-layer",
21139
21138
  "unset"
21140
21139
  ]
21141
21140
  },
@@ -31364,10 +31363,6 @@
31364
31363
  },
31365
31364
  {
31366
31365
  "$ref": "#/definitions/DataType.BlendMode"
31367
- },
31368
- {
31369
- "type": "string",
31370
- "const": "plus-lighter"
31371
31366
  }
31372
31367
  ]
31373
31368
  },