amis 1.9.1-beta.19 → 1.9.1-beta.23
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/components/Radios.d.ts +10 -10
- package/lib/components/ResultBox.d.ts +44 -40
- package/lib/components/ResultBox.js +43 -7
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/ResultTableList.js +16 -17
- package/lib/components/ResultTableList.js.map +2 -2
- package/lib/components/Select.d.ts +498 -294
- package/lib/components/Select.js +64 -12
- package/lib/components/Select.js.map +2 -2
- package/lib/components/TableSelection.d.ts +42 -40
- package/lib/components/TableSelection.js +7 -2
- package/lib/components/TableSelection.js.map +2 -2
- package/lib/components/TooltipWrapper.d.ts +1 -1
- package/lib/components/TooltipWrapper.js.map +2 -2
- package/lib/components/TransferDropDown.d.ts +43 -40
- package/lib/components/TransferDropDown.js +2 -2
- package/lib/components/TransferDropDown.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/index.js +1 -1
- package/lib/locale/de-DE.js +1 -1
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +1 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/renderers/CRUD.js +2 -2
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +66 -20
- package/lib/renderers/Form/Editor.d.ts +66 -20
- package/lib/renderers/Form/Group.js +1 -1
- package/lib/renderers/Form/Group.js.map +2 -2
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputTag.d.ts +8 -0
- package/lib/renderers/Form/InputTag.js +2 -2
- package/lib/renderers/Form/InputTag.js.map +2 -2
- package/lib/renderers/Form/Options.js +7 -7
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Select.d.ts +24 -0
- package/lib/renderers/Form/Select.js +5 -3
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/Transfer.d.ts +1 -0
- package/lib/renderers/Form/Transfer.js +4 -0
- package/lib/renderers/Form/Transfer.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.d.ts +0 -1
- package/lib/renderers/Form/TreeSelect.js +1 -9
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.js +9 -4
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/QRCode.d.ts +16 -0
- package/lib/renderers/QRCode.js +25 -1
- package/lib/renderers/QRCode.js.map +2 -2
- package/lib/renderers/Table/exportExcel.js +51 -37
- package/lib/renderers/Table/exportExcel.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +2 -0
- package/lib/renderers/Table/index.js +37 -5
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Tpl.d.ts +4 -0
- package/lib/renderers/Tpl.js +6 -3
- package/lib/renderers/Tpl.js.map +2 -2
- package/lib/store/combo.d.ts +72 -22
- package/lib/store/form.d.ts +30 -9
- package/lib/store/form.js +28 -10
- package/lib/store/form.js.map +2 -2
- package/lib/store/formItem.d.ts +3 -1
- package/lib/store/formItem.js +3 -5
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/table.d.ts +60 -18
- package/lib/themes/ang-ie11.css +94 -13
- package/lib/themes/ang.css +99 -13
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +94 -13
- package/lib/themes/antd.css +99 -13
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +94 -13
- package/lib/themes/cxd.css +101 -13
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +94 -13
- package/lib/themes/dark.css +99 -13
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +94 -13
- package/lib/themes/default.css +101 -13
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/helper.d.ts +1 -0
- package/lib/utils/helper.js +11 -1
- package/lib/utils/helper.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +94 -28
- package/scss/_mixins.scss +1 -1
- package/scss/_properties.scss +11 -6
- package/scss/components/_result-box.scss +34 -2
- package/scss/components/form/_select.scss +88 -32
- package/scss/components/form/_selection.scss +9 -6
- package/scss/themes/_cxd-variables.scss +2 -0
- package/scss/themes/cxd.scss +0 -2
- package/sdk/ang-ie11.css +108 -13
- package/sdk/ang.css +113 -13
- package/sdk/antd-ie11.css +108 -13
- package/sdk/antd.css +113 -13
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +108 -13
- package/sdk/cxd.css +115 -13
- package/sdk/dark-ie11.css +108 -13
- package/sdk/dark.css +113 -13
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/locale/de-DE.js +2 -2
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +16 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +108 -13
- package/sdk/sdk.css +115 -13
- package/sdk/sdk.js +1341 -1341
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/components/ResultBox.tsx +98 -12
- package/src/components/ResultTableList.tsx +32 -33
- package/src/components/Select.tsx +149 -17
- package/src/components/TableSelection.tsx +15 -8
- package/src/components/TooltipWrapper.tsx +20 -14
- package/src/components/TransferDropDown.tsx +9 -1
- package/src/locale/de-DE.ts +2 -2
- package/src/locale/en-US.ts +2 -2
- package/src/renderers/CRUD.tsx +2 -2
- package/src/renderers/Form/Group.tsx +1 -1
- package/src/renderers/Form/InputImage.tsx +4 -2
- package/src/renderers/Form/InputTag.tsx +14 -0
- package/src/renderers/Form/Options.tsx +7 -9
- package/src/renderers/Form/Select.tsx +41 -2
- package/src/renderers/Form/Transfer.tsx +6 -0
- package/src/renderers/Form/TreeSelect.tsx +14 -16
- package/src/renderers/Form/index.tsx +13 -2
- package/src/renderers/QRCode.tsx +50 -1
- package/src/renderers/Table/exportExcel.ts +30 -13
- package/src/renderers/Table/index.tsx +42 -6
- package/src/renderers/Tpl.tsx +11 -1
- package/src/store/form.ts +31 -24
- package/src/store/formItem.ts +65 -52
- package/src/utils/helper.ts +11 -1
package/lib/utils/helper.d.ts
CHANGED
@@ -282,3 +282,4 @@ export declare function JSONTraverse(json: any, mapper: (value: any, key: string
|
|
282
282
|
export declare function convertArrayValueToMoment(value: number[], types: string[], mom: moment.Moment): moment.Moment;
|
283
283
|
export declare function getRange(min: number, max: number, step?: number): number[];
|
284
284
|
export declare function repeatCount(count: number, iterator: (index: number) => any): any[];
|
285
|
+
export declare function isNumeric(value: any): boolean;
|
package/lib/utils/helper.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.everyTree = exports.filterTree = exports.getTree = exports.findTreeIndex = exports.findTree = exports.eachTree = exports.mapTree = exports.uuidv4 = exports.uuid = exports.isEmpty = exports.omitControls = exports.until = exports.isBreakpoint = exports.__uri = exports.padArr = exports.difference = exports.getScrollParent = exports.promisify = exports.makeHorizontalDeeper = exports.hasAbility = exports.isDisabled = exports.visibilityFilter = exports.isUnfolded = exports.isVisible = exports.hasVisibleExpression = exports.makeColumnClassBuild = exports.immutableExtends = exports.isArrayChildrenModified = exports.isObjectShallowModified = exports.rmUndefined = exports.anyChanged = exports.noop = exports.hasOwnProperty = exports.findIndex = exports.guid = exports.syncDataFromSuper = exports.isSuperDataModified = exports.extendObject = exports.injectPropsToObject = exports.range = exports.isMobile = exports.preventDefault = exports.keyToPath = exports.deleteVariable = exports.setVariable = exports.getVariable = exports.string2regExp = exports.isObject = exports.cloneObject = exports.createObject = void 0;
|
4
|
-
exports.repeatCount = exports.getRange = exports.convertArrayValueToMoment = exports.JSONTraverse = exports.hashCode = exports.isClickOnInput = exports.normalizeNodePath = exports.removeHTMLTag = exports.detectPropValueChanged = exports.getPropValue = exports.getScrollbarWidth = exports.findObjectsWithKey = exports.SkipOperation = exports.loadScript = exports.mapObject = exports.chainEvents = exports.chainFunctions = exports.object2formData = exports.qsparse = exports.qsstringify = exports.hasFile = exports.sortArray = exports.bulkBindFunctions = exports.autobind = exports.pickEventsProps = exports.getLevelFromClassName = exports.getWidthRate = exports.camel = exports.lcFirst = exports.ucFirst = exports.getTreeParent = exports.getTreeAncestors = exports.getTreeDepth = exports.spliceTree = exports.flattenTree = exports.someTree = void 0;
|
4
|
+
exports.isNumeric = exports.repeatCount = exports.getRange = exports.convertArrayValueToMoment = exports.JSONTraverse = exports.hashCode = exports.isClickOnInput = exports.normalizeNodePath = exports.removeHTMLTag = exports.detectPropValueChanged = exports.getPropValue = exports.getScrollbarWidth = exports.findObjectsWithKey = exports.SkipOperation = exports.loadScript = exports.mapObject = exports.chainEvents = exports.chainFunctions = exports.object2formData = exports.qsparse = exports.qsstringify = exports.hasFile = exports.sortArray = exports.bulkBindFunctions = exports.autobind = exports.pickEventsProps = exports.getLevelFromClassName = exports.getWidthRate = exports.camel = exports.lcFirst = exports.ucFirst = exports.getTreeParent = exports.getTreeAncestors = exports.getTreeDepth = exports.spliceTree = exports.flattenTree = exports.someTree = void 0;
|
5
5
|
var tslib_1 = require("tslib");
|
6
6
|
var isPlainObject_1 = (0, tslib_1.__importDefault)(require("lodash/isPlainObject"));
|
7
7
|
var isEqual_1 = (0, tslib_1.__importDefault)(require("lodash/isEqual"));
|
@@ -702,6 +702,9 @@ 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)) {
|
706
|
+
return false;
|
707
|
+
}
|
705
708
|
return tree.every(function (item, index) {
|
706
709
|
var value = iterator(item, index, level, paths, indexes);
|
707
710
|
if (value && item.children && item.children.splice) {
|
@@ -1262,4 +1265,11 @@ function repeatCount(count, iterator) {
|
|
1262
1265
|
return result;
|
1263
1266
|
}
|
1264
1267
|
exports.repeatCount = repeatCount;
|
1268
|
+
function isNumeric(value) {
|
1269
|
+
if (typeof value === 'number') {
|
1270
|
+
return true;
|
1271
|
+
}
|
1272
|
+
return /^[-+]?(?:\d*[.])?\d+$/.test(value);
|
1273
|
+
}
|
1274
|
+
exports.isNumeric = isNumeric;
|
1265
1275
|
//# sourceMappingURL=./utils/helper.js.map
|
package/lib/utils/helper.js.map
CHANGED
@@ -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 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"
|
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"
|
12
12
|
]
|
13
13
|
}
|