amis 1.3.4 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/lib/RootRenderer.js +4 -1
- package/lib/RootRenderer.js.map +2 -2
- package/lib/components/Badge.d.ts +13 -1
- package/lib/components/Badge.js +16 -2
- package/lib/components/Badge.js.map +2 -2
- package/lib/components/Checkbox.d.ts +1 -1
- package/lib/components/Checkbox.js +1 -1
- package/lib/components/Checkbox.js.map +2 -2
- package/lib/components/Drawer.js +1 -1
- package/lib/components/Drawer.js.map +2 -2
- package/lib/components/Modal.js +1 -1
- package/lib/components/Modal.js.map +2 -2
- package/lib/components/RichText.d.ts +0 -3
- package/lib/components/RichText.js +1 -22
- package/lib/components/RichText.js.map +2 -2
- package/lib/components/Select.d.ts +7 -0
- package/lib/components/Select.js.map +2 -2
- package/lib/components/Steps.d.ts +3 -3
- package/lib/components/Steps.js.map +1 -1
- package/lib/components/WithRemoteConfig.d.ts +8 -0
- package/lib/components/WithRemoteConfig.js +28 -2
- package/lib/components/WithRemoteConfig.js.map +2 -2
- package/lib/components/condition-builder/Field.js +0 -1
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Value.js +2 -1
- package/lib/components/condition-builder/Value.js.map +2 -2
- package/lib/components/condition-builder/types.d.ts +5 -0
- package/lib/components/condition-builder/types.js.map +1 -1
- package/lib/env.d.ts +1 -1
- package/lib/env.js.map +1 -1
- package/lib/factory.d.ts +6 -2
- package/lib/factory.js +9 -4
- package/lib/factory.js.map +2 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +1 -0
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +2 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +2 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +6 -0
- package/lib/renderers/Action.js +9 -1
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/CRUD.d.ts +2 -2
- package/lib/renderers/CRUD.js +13 -21
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Card.js +11 -11
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Collapse.d.ts +1 -1
- package/lib/renderers/Collapse.js +5 -1
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/Copyable.js +30 -28
- package/lib/renderers/Copyable.js.map +2 -2
- package/lib/renderers/Dialog.d.ts +0 -252
- package/lib/renderers/Dialog.js +3 -2
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/Drawer.js +2 -1
- package/lib/renderers/Drawer.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +4 -0
- package/lib/renderers/DropDownButton.js +2 -2
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Form/ButtonGroupSelect.js +3 -0
- package/lib/renderers/Form/ButtonGroupSelect.js.map +2 -2
- package/lib/renderers/Form/Combo.d.ts +2 -0
- package/lib/renderers/Form/Combo.js +16 -1
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +0 -2
- package/lib/renderers/Form/Editor.d.ts +0 -2
- package/lib/renderers/Form/Editor.js +1 -1
- package/lib/renderers/Form/Editor.js.map +2 -2
- package/lib/renderers/Form/InputExcel.d.ts +5 -0
- package/lib/renderers/Form/InputExcel.js +24 -3
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +8 -0
- package/lib/renderers/Form/InputImage.js +2 -1
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputNumber.d.ts +19 -5
- package/lib/renderers/Form/InputNumber.js +69 -7
- package/lib/renderers/Form/InputNumber.js.map +2 -2
- package/lib/renderers/Form/InputRange.js +7 -2
- package/lib/renderers/Form/InputRange.js.map +2 -2
- package/lib/renderers/Form/InputTable.d.ts +23 -5
- package/lib/renderers/Form/InputTable.js +32 -3
- package/lib/renderers/Form/InputTable.js.map +2 -2
- package/lib/renderers/Form/NestedSelect.js +2 -3
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/Options.js +3 -1
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/index.js +0 -10
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +3 -3
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Json.js +5 -1
- package/lib/renderers/Json.js.map +2 -2
- package/lib/renderers/List.d.ts +5 -0
- package/lib/renderers/List.js +20 -14
- package/lib/renderers/List.js.map +2 -2
- package/lib/renderers/Page.d.ts +6 -0
- package/lib/renderers/Page.js +10 -2
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Service.d.ts +10 -1
- package/lib/renderers/Service.js +85 -3
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/Steps.d.ts +4 -4
- package/lib/renderers/Steps.js +5 -2
- package/lib/renderers/Steps.js.map +2 -2
- package/lib/renderers/Table/TableBody.d.ts +5 -3
- package/lib/renderers/Table/TableBody.js +17 -11
- package/lib/renderers/Table/TableBody.js.map +2 -2
- package/lib/renderers/Table/TableCell.js +6 -2
- package/lib/renderers/Table/TableCell.js.map +2 -2
- package/lib/renderers/Table/TableContent.d.ts +3 -1
- package/lib/renderers/Table/TableContent.js +6 -2
- package/lib/renderers/Table/TableContent.js.map +2 -2
- package/lib/renderers/Table/TableRow.d.ts +1 -1
- package/lib/renderers/Table/TableRow.js +14 -13
- package/lib/renderers/Table/TableRow.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +28 -3
- package/lib/renderers/Table/index.js +97 -54
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/schemaExtend.d.ts +1 -0
- package/lib/schemaExtend.js +59 -0
- package/lib/schemaExtend.js.map +13 -0
- package/lib/store/app.d.ts +0 -1
- package/lib/store/combo.d.ts +0 -2
- package/lib/store/crud.d.ts +3 -3
- package/lib/store/crud.js +41 -36
- package/lib/store/crud.js.map +2 -2
- package/lib/store/form.d.ts +0 -1
- package/lib/store/formItem.js +10 -6
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/modal.d.ts +1 -1
- package/lib/store/modal.js +4 -0
- package/lib/store/modal.js.map +2 -2
- package/lib/store/root.d.ts +0 -1
- package/lib/store/service.d.ts +0 -1
- package/lib/store/service.js +0 -13
- package/lib/store/service.js.map +2 -2
- package/lib/store/table.d.ts +1 -2
- package/lib/store/table.js +44 -3
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +278 -17
- package/lib/themes/ang.css +278 -17
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +278 -17
- package/lib/themes/antd.css +278 -17
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +278 -17
- package/lib/themes/cxd.css +278 -17
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +278 -17
- package/lib/themes/dark.css +278 -17
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +278 -17
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/api.js +12 -0
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/attachmentAdpator.d.ts +7 -0
- package/lib/utils/attachmentAdpator.js +82 -0
- package/lib/utils/attachmentAdpator.js.map +13 -0
- package/lib/utils/helper.d.ts +2 -0
- package/lib/utils/helper.js +14 -1
- package/lib/utils/helper.js.map +2 -2
- package/lib/utils/resize-sensor.js +6 -0
- package/lib/utils/resize-sensor.js.map +2 -2
- package/lib/utils/tpl-builtin.d.ts +1 -0
- package/lib/utils/tpl-builtin.js +24 -8
- package/lib/utils/tpl-builtin.js.map +2 -2
- package/lib/utils/validations.js +62 -5
- package/lib/utils/validations.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +369 -164
- package/scss/_properties.scss +6 -0
- package/scss/components/_badge.scss +15 -1
- package/scss/components/_list.scss +8 -0
- package/scss/components/_markdown.scss +266 -0
- package/scss/components/_spinner.scss +6 -2
- package/scss/components/_table.scss +4 -0
- package/scss/components/form/_form.scss +3 -17
- package/scss/components/form/_group.scss +4 -0
- package/scss/components/form/_nested-select.scss +4 -0
- package/scss/components/form/_number.scss +12 -1
- package/scss/themes/_common.scss +1 -0
- package/sdk/ang-ie11.css +324 -20
- package/sdk/ang.css +330 -20
- package/sdk/antd-ie11.css +324 -20
- package/sdk/antd.css +330 -20
- package/sdk/charts.js +15 -15
- package/sdk/color-picker.js +65 -69
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +324 -20
- package/sdk/cxd.css +330 -20
- package/sdk/dark-ie11.css +324 -20
- package/sdk/dark.css +330 -20
- package/sdk/exceljs.js +1 -1
- package/sdk/locale/de-DE.js +1 -0
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +27 -23
- package/sdk/rich-text.js +63 -63
- package/sdk/sdk-ie11.css +324 -20
- package/sdk/sdk.css +330 -20
- package/sdk/sdk.js +1146 -1138
- 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/RootRenderer.tsx +8 -3
- package/src/components/Badge.tsx +41 -6
- package/src/components/Checkbox.tsx +5 -2
- package/src/components/Drawer.tsx +3 -2
- package/src/components/Modal.tsx +3 -2
- package/src/components/RichText.tsx +2 -27
- package/src/components/Select.tsx +1 -0
- package/src/components/Steps.tsx +3 -3
- package/src/components/WithRemoteConfig.tsx +37 -2
- package/src/components/condition-builder/Field.tsx +1 -2
- package/src/components/condition-builder/Value.tsx +3 -0
- package/src/components/condition-builder/types.ts +6 -0
- package/src/env.tsx +1 -1
- package/src/factory.tsx +14 -4
- package/src/index.tsx +2 -0
- package/src/locale/de-DE.ts +1 -0
- package/src/locale/en-US.ts +2 -1
- package/src/locale/zh-CN.ts +2 -1
- package/src/renderers/Action.tsx +19 -1
- package/src/renderers/CRUD.tsx +15 -34
- package/src/renderers/Card.tsx +21 -15
- package/src/renderers/Collapse.tsx +5 -1
- package/src/renderers/Copyable.tsx +46 -44
- package/src/renderers/Dialog.tsx +3 -2
- package/src/renderers/Drawer.tsx +2 -1
- package/src/renderers/DropDownButton.tsx +8 -0
- package/src/renderers/Form/ButtonGroupSelect.tsx +3 -0
- package/src/renderers/Form/Combo.tsx +7 -0
- package/src/renderers/Form/Editor.tsx +19 -20
- package/src/renderers/Form/InputExcel.tsx +28 -3
- package/src/renderers/Form/InputImage.tsx +23 -8
- package/src/renderers/Form/InputNumber.tsx +113 -18
- package/src/renderers/Form/InputRange.tsx +5 -2
- package/src/renderers/Form/InputTable.tsx +88 -9
- package/src/renderers/Form/NestedSelect.tsx +1 -1
- package/src/renderers/Form/Options.tsx +3 -1
- package/src/renderers/Form/index.tsx +0 -15
- package/src/renderers/Form/wrapControl.tsx +2 -2
- package/src/renderers/Json.tsx +10 -1
- package/src/renderers/List.tsx +32 -19
- package/src/renderers/Page.tsx +19 -0
- package/src/renderers/Service.tsx +101 -3
- package/src/renderers/Steps.tsx +12 -9
- package/src/renderers/Table/TableBody.tsx +29 -10
- package/src/renderers/Table/TableCell.tsx +15 -1
- package/src/renderers/Table/TableContent.tsx +7 -1
- package/src/renderers/Table/TableRow.tsx +18 -17
- package/src/renderers/Table/index.tsx +117 -28
- package/src/schemaExtend.ts +66 -0
- package/src/store/crud.ts +34 -38
- package/src/store/formItem.ts +10 -6
- package/src/store/modal.ts +4 -0
- package/src/store/service.ts +0 -19
- package/src/store/table.ts +48 -0
- package/src/utils/api.ts +11 -0
- package/src/utils/attachmentAdpator.ts +90 -0
- package/src/utils/helper.ts +15 -0
- package/src/utils/resize-sensor.ts +7 -0
- package/src/utils/tpl-builtin.ts +36 -17
- package/src/utils/validations.ts +80 -12
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/utils/tpl-builtin.ts"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import moment from 'moment';\nimport {PlainObject} from '../types';\nimport isPlainObject from 'lodash/isPlainObject';\nimport groupBy from 'lodash/groupBy';\nimport {\n createObject,\n isObject,\n setVariable,\n qsstringify,\n keyToPath,\n string2regExp,\n deleteVariable\n} from './helper';\nimport {Enginer} from './tpl';\nimport uniqBy from 'lodash/uniqBy';\nimport uniq from 'lodash/uniq';\nimport transform from 'lodash/transform';\n\nconst UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\nexport const prettyBytes = (num: number) => {\n if (!Number.isFinite(num)) {\n throw new TypeError(`Expected a finite number, got ${typeof num}: ${num}`);\n }\n\n const neg = num < 0;\n\n if (neg) {\n num = -num;\n }\n\n if (num < 1) {\n return (neg ? '-' : '') + num + ' B';\n }\n\n const exponent = Math.min(\n Math.floor(Math.log(num) / Math.log(1000)),\n UNITS.length - 1\n );\n const numStr = Number((num / Math.pow(1000, exponent)).toPrecision(3));\n const unit = UNITS[exponent];\n\n return (neg ? '-' : '') + numStr + ' ' + unit;\n};\n\nconst entityMap: {\n [propName: string]: string;\n} = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nexport const escapeHtml = (str: string) =>\n String(str).replace(/[&<>\"'\\/]/g, function (s) {\n return entityMap[s];\n });\n\nexport function formatDuration(value: number): string {\n const unit = ['秒', '分', '时', '天', '月', '季', '年'];\n const steps = [1, 60, 3600, 86400, 2592000, 7776000, 31104000];\n let len = steps.length;\n const parts = [];\n\n while (len--) {\n if (steps[len] && value >= steps[len]) {\n parts.push(Math.floor(value / steps[len]) + unit[len]);\n value %= steps[len];\n } else if (len === 0 && value) {\n parts.push((value.toFixed ? value.toFixed(2) : '0') + unit[0]);\n }\n }\n\n return parts.join('');\n}\n\nfunction makeSorter(\n key: string,\n method?: 'alpha' | 'numerical',\n order?: 'desc' | 'asc'\n) {\n return function (a: any, b: any) {\n if (!a || !b) {\n return 0;\n }\n\n const va = resolveVariable(key, a);\n const vb = resolveVariable(key, b);\n let result = 0;\n\n if (method === 'numerical') {\n result = (parseFloat(va) || 0) - (parseFloat(vb) || 0);\n } else {\n result = String(va).localeCompare(String(vb));\n }\n\n return result * (order === 'desc' ? -1 : 1);\n };\n}\n\nconst timeUnitMap: {\n [propName: string]: string;\n} = {\n year: 'Y',\n month: 'M',\n week: 'w',\n weekday: 'W',\n day: 'd',\n hour: 'h',\n minute: 'm',\n min: 'm',\n second: 's',\n millisecond: 'ms'\n};\n\nexport const relativeValueRe = /^(.+)?(\\+|-)(\\d+)(minute|min|hour|day|week|month|year|weekday|second|millisecond)s?$/i;\nexport const filterDate = (\n value: string,\n data: object = {},\n format = 'X',\n utc: boolean = false\n): moment.Moment => {\n let m,\n mm = utc ? moment.utc : moment;\n\n if (typeof value === 'string') {\n value = value.trim();\n }\n\n value = tokenize(value, data);\n\n if (value && typeof value === 'string' && (m = relativeValueRe.exec(value))) {\n const date = new Date();\n const step = parseInt(m[3], 10);\n const from = m[1]\n ? filterDate(m[1], data, format, utc)\n : mm(\n /(minute|min|hour|second)s?/.test(m[4])\n ? [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds()\n ]\n : [date.getFullYear(), date.getMonth(), date.getDate()]\n );\n\n return m[2] === '-'\n ? from.subtract(step, timeUnitMap[m[4]] as moment.DurationInputArg2)\n : from.add(step, timeUnitMap[m[4]] as moment.DurationInputArg2);\n // return from[m[2] === '-' ? 'subtract' : 'add'](step, mapping[m[4]] || m[4]);\n } else if (value === 'now') {\n return mm();\n } else if (value === 'today') {\n const date = new Date();\n return mm([date.getFullYear(), date.getMonth(), date.getDate()]);\n } else {\n return mm(value, format);\n }\n};\n\nexport function parseDuration(str: string): moment.Duration | undefined {\n const matches = /^((?:\\-|\\+)?(?:\\d*\\.)?\\d+)(minute|min|hour|day|week|month|quarter|year|weekday|second|millisecond)s?$/.exec(\n str\n );\n\n if (matches) {\n const duration = moment.duration(parseFloat(matches[1]), matches[2] as any);\n\n if (moment.isDuration(duration)) {\n return duration;\n }\n }\n\n return;\n}\n\nexport const filters: {\n [propName: string]: (input: any, ...args: any[]) => any;\n} = {\n map: (input: Array<unknown>, fn: string, ...arg: any) =>\n Array.isArray(input) && filters[fn]\n ? input.map(item => filters[fn](item, ...arg))\n : input,\n html: (input: string) => escapeHtml(input),\n json: (input, tabSize: number | string = 2) =>\n tabSize\n ? JSON.stringify(input, null, parseInt(tabSize as string, 10))\n : JSON.stringify(input),\n toJson: input => {\n let ret;\n try {\n ret = JSON.parse(input);\n } catch (e) {\n ret = null;\n }\n return ret;\n },\n toInt: input => (typeof input === 'string' ? parseInt(input, 10) : input),\n toFloat: input => (typeof input === 'string' ? parseFloat(input) : input),\n raw: input => input,\n now: () => new Date(),\n toDate: (input: any, inputFormat = '') => {\n const data = moment(input, inputFormat);\n data.add();\n return data.isValid() ? data.toDate() : undefined;\n },\n dateModify: (\n input: any,\n modifier: 'add' | 'subtract' | 'endOf' | 'startOf' = 'add',\n amount = 0,\n unit = 'days'\n ) => {\n if (!(input instanceof Date)) {\n input = new Date();\n }\n\n if (modifier === 'endOf' || modifier === 'startOf') {\n return moment(input)\n [modifier === 'endOf' ? 'endOf' : 'startOf'](amount || 'day')\n .toDate();\n }\n\n return moment(input)\n [modifier === 'add' ? 'add' : 'subtract'](parseInt(amount, 10) || 0, unit)\n .toDate();\n },\n date: (input, format = 'LLL', inputFormat = 'X') =>\n moment(input, inputFormat).format(format),\n number: input => {\n let parts = String(input).split('.');\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return parts.join('.');\n },\n trim: input => (typeof input === 'string' ? input.trim() : input),\n percent: (input, decimals = 0) => {\n input = parseFloat(input) || 0;\n decimals = parseInt(decimals, 10) || 0;\n\n let whole = input * 100;\n let multiplier = Math.pow(10, decimals);\n\n return (\n (Math.round(whole * multiplier) / multiplier).toFixed(decimals) + '%'\n );\n },\n duration: input => (input ? formatDuration(input) : input),\n bytes: input => (input ? prettyBytes(parseFloat(input)) : input),\n round: (input, decimals = 2) => {\n if (isNaN(input)) {\n return 0;\n }\n\n decimals = parseInt(decimals, 10) ?? 2;\n\n let multiplier = Math.pow(10, decimals);\n return (Math.round(input * multiplier) / multiplier).toFixed(decimals);\n },\n truncate: (input, length, end) => {\n if (typeof input !== 'string') {\n return input;\n }\n\n end = end || '...';\n\n if (length == null) {\n return input;\n }\n\n length = parseInt(length, 10) || 200;\n\n return input.substring(0, length) + (input.length > length ? end : '');\n },\n url_encode: input => encodeURIComponent(input),\n url_decode: input => decodeURIComponent(input),\n default: (input, defaultValue, strict = false) =>\n (strict ? input : input ? input : undefined) ??\n (() => {\n try {\n if (defaultValue === 'undefined') {\n return undefined;\n }\n\n return JSON.parse(defaultValue);\n } catch (e) {\n return defaultValue;\n }\n })(),\n join: (input, glue) => (input && input.join ? input.join(glue) : input),\n split: (input, delimiter = ',') =>\n typeof input === 'string' ? input.split(delimiter) : input,\n sortBy: (\n input: any,\n key: string,\n method: 'alpha' | 'numerical' = 'alpha',\n order?: 'asc' | 'desc'\n ) =>\n Array.isArray(input) ? input.sort(makeSorter(key, method, order)) : input,\n objectToArray: (\n input: any,\n label: string = 'label',\n value: string = 'value'\n ) =>\n transform(\n input,\n (result: any, v, k) => {\n (result || (result = [])).push({\n [label]: v,\n [value]: k\n });\n },\n []\n ),\n unique: (input: any, key?: string) =>\n Array.isArray(input) ? (key ? uniqBy(input, key) : uniq(input)) : input,\n topAndOther: (\n input: any,\n len: number = 10,\n labelField: string = 'name',\n restLabel = '其他'\n ) => {\n if (Array.isArray(input) && len) {\n const grouped = groupBy(input, (item: any) => {\n const index = input.indexOf(item) + 1;\n return index >= len ? len : index;\n });\n\n return Object.keys(grouped).map((key, index) => {\n const group = grouped[key];\n const obj = group.reduce((obj, item) => {\n Object.keys(item).forEach(key => {\n if (!obj.hasOwnProperty(key) || key === 'labelField') {\n obj[key] = item[key];\n } else if (\n typeof item[key] === 'number' &&\n typeof obj[key] === 'number'\n ) {\n obj[key] += item[key];\n } else if (\n typeof item[key] === 'string' &&\n /^(?:\\-|\\.)\\d/.test(item[key]) &&\n typeof obj[key] === 'number'\n ) {\n obj[key] += parseFloat(item[key]) || 0;\n } else if (\n typeof item[key] === 'string' &&\n typeof obj[key] === 'string'\n ) {\n obj[key] += `, ${item[key]}`;\n } else {\n obj[key] = item[key];\n }\n });\n\n return obj;\n }, {});\n\n if (index === len - 1) {\n obj[labelField] = restLabel || '其他';\n }\n return obj;\n });\n }\n return input;\n },\n first: input => input && input[0],\n nth: (input, nth = 0) => input && input[nth],\n last: input => input && (input.length ? input[input.length - 1] : null),\n minus: (input, step = 1) => (parseInt(input, 10) || 0) - parseInt(step, 10),\n plus: (input, step = 1) => (parseInt(input, 10) || 0) + parseInt(step, 10),\n count: (input: any) =>\n Array.isArray(input) || typeof input === 'string' ? input.length : 0,\n sum: (input, field) =>\n Array.isArray(input)\n ? input.reduce(\n (sum, item) =>\n sum + (parseFloat(field ? pickValues(field, item) : item) || 0),\n 0\n )\n : input,\n abs: (input: any) => (typeof input === 'number' ? Math.abs(input) : input),\n pick: (input, path = '&') =>\n Array.isArray(input) && !/^\\d+$/.test(path)\n ? input.map((item, index) =>\n pickValues(path, createObject({index}, item))\n )\n : pickValues(path, input),\n pick_if_exist: (input, path = '&') =>\n Array.isArray(input)\n ? input.map(item => resolveVariable(path, item) || item)\n : resolveVariable(path, input) || input,\n str2date: function (input, inputFormat = 'X', outputFormat = 'X') {\n return input\n ? filterDate(input, this, inputFormat).format(outputFormat)\n : '';\n },\n asArray: input => (Array.isArray(input) ? input : input ? [input] : input),\n concat(input, ...args: any[]) {\n return Array.isArray(input)\n ? input.concat(...args.map(arg => getStrOrVariable(arg, this)))\n : input;\n },\n filter: function (input, keys, expOrDirective, arg1) {\n if (!Array.isArray(input) || !keys || !expOrDirective) {\n return input;\n }\n\n let directive = expOrDirective;\n let fn: (value: any, key: string, item: any) => boolean = () => true;\n\n if (directive === 'isTrue') {\n fn = value => !!value;\n } else if (directive === 'isFalse') {\n fn = value => !value;\n } else if (directive === 'isExists') {\n fn = value => typeof value !== 'undefined';\n } else if (directive === 'equals' || directive === 'equal') {\n arg1 = arg1 ? getStrOrVariable(arg1, this) : '';\n fn = value => arg1 == value;\n } else if (directive === 'isIn') {\n let list: any = arg1 ? getStrOrVariable(arg1, this) : [];\n\n list = str2array(list);\n list = Array.isArray(list) ? list : list ? [list] : [];\n fn = value => (list.length ? !!~list.indexOf(value) : true);\n } else if (directive === 'notIn') {\n let list: Array<any> = arg1 ? getStrOrVariable(arg1, this) : [];\n list = str2array(list);\n list = Array.isArray(list) ? list : list ? [list] : [];\n fn = value => !~list.indexOf(value);\n } else {\n if (directive !== 'match') {\n directive = 'match';\n arg1 = expOrDirective;\n }\n arg1 = arg1 ? getStrOrVariable(arg1, this) : '';\n\n // 比对的值是空时直接返回。\n if (!arg1) {\n return input;\n }\n\n let reg = string2regExp(`${arg1}`, false);\n fn = value => reg.test(String(value));\n }\n\n // 判断keys是否为*\n const isAsterisk = /\\s*\\*\\s*/.test(keys);\n keys = keys.split(/\\s*,\\s*/);\n return input.filter((item: any) =>\n // 当keys为*时从item中获取key\n (isAsterisk ? Object.keys(item) : keys).some((key: string) =>\n fn(resolveVariable(key, item), key, item)\n )\n );\n },\n base64Encode(str) {\n return btoa(\n encodeURIComponent(str).replace(\n /%([0-9A-F]{2})/g,\n function toSolidBytes(match, p1) {\n return String.fromCharCode(('0x' + p1) as any);\n }\n )\n );\n },\n\n base64Decode(str) {\n return decodeURIComponent(\n atob(str)\n .split('')\n .map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join('')\n );\n },\n\n lowerCase: input =>\n input && typeof input === 'string' ? input.toLowerCase() : input,\n upperCase: input =>\n input && typeof input === 'string' ? input.toUpperCase() : input,\n\n isTrue(input, trueValue, falseValue) {\n return getConditionValue(input, !!input, trueValue, falseValue, this);\n },\n isFalse(input, trueValue, falseValue) {\n return getConditionValue(input, !input, trueValue, falseValue, this);\n },\n isMatch(input, matchArg, trueValue, falseValue) {\n matchArg = getStrOrVariable(matchArg, this as any);\n return getConditionValue(\n input,\n matchArg && string2regExp(`${matchArg}`, false).test(String(input)),\n trueValue,\n falseValue,\n this\n );\n },\n notMatch(input, matchArg, trueValue, falseValue) {\n matchArg = getStrOrVariable(matchArg, this as any);\n return getConditionValue(\n input,\n matchArg && !string2regExp(`${matchArg}`, false).test(String(input)),\n trueValue,\n falseValue,\n this\n );\n },\n isEquals(input, equalsValue, trueValue, falseValue) {\n equalsValue = /^\\d+$/.test(equalsValue)\n ? parseInt(equalsValue, 10)\n : getStrOrVariable(equalsValue, this as any);\n return getConditionValue(\n input,\n input === equalsValue,\n trueValue,\n falseValue,\n this\n );\n },\n notEquals(input, equalsValue, trueValue, falseValue) {\n equalsValue = /^\\d+$/.test(equalsValue)\n ? parseInt(equalsValue, 10)\n : getStrOrVariable(equalsValue, this as any);\n return getConditionValue(\n input,\n input !== equalsValue,\n trueValue,\n falseValue,\n this\n );\n }\n};\n\n/**\n * 如果当前传入字符为:'xxx'或者\"xxx\",则返回字符xxx\n * 否则去数据域中,获取变量xxx\n *\n * @param value 传入字符\n * @param data 数据域\n */\nfunction getStrOrVariable(value: string, data: any) {\n return /^('|\")(.*)\\1$/.test(value)\n ? RegExp.$2\n : /^-?\\d+$/.test(value)\n ? parseInt(value, 10)\n : /^(-?\\d+)\\.\\d+?$/.test(value)\n ? parseFloat(value)\n : /^\\[.*\\]$/.test(value)\n ? value\n .substring(1, value.length - 1)\n .split(/\\s*,\\s*/)\n .filter(item => item)\n : /,/.test(value)\n ? value.split(/\\s*,\\s*/).filter(item => item)\n : resolveVariable(value, data);\n}\n\nfunction str2array(list: any) {\n if (list && typeof list === 'string') {\n if (/^\\[.*\\]$/.test(list)) {\n return list\n .substring(1, list.length - 1)\n .split(/\\s*,\\s*/)\n .filter(item => item);\n } else {\n return list.split(/\\s*,\\s*/).filter(item => item);\n }\n }\n return list;\n}\n\nfunction getConditionValue(\n input: string,\n isTrue: boolean,\n trueValue: string,\n falseValue: string,\n data: any\n) {\n return isTrue || (!isTrue && falseValue)\n ? getStrOrVariable(isTrue ? trueValue : falseValue, data)\n : input;\n}\n\nexport function registerFilter(\n name: string,\n fn: (input: any, ...args: any[]) => any\n): void {\n filters[name] = fn;\n}\n\nexport function getFilters() {\n return filters;\n}\n\nexport function pickValues(names: string, data: object) {\n let arr: Array<string>;\n if (!names || ((arr = names.split(',')) && arr.length < 2)) {\n let idx = names.indexOf('~');\n if (~idx) {\n let key = names.substring(0, idx);\n let target = names.substring(idx + 1);\n return {\n [key]: resolveVariable(target, data)\n };\n }\n return resolveVariable(names, data);\n }\n\n let ret: any = {};\n arr.forEach(name => {\n let idx = name.indexOf('~');\n let target = name;\n\n if (~idx) {\n target = name.substring(idx + 1);\n name = name.substring(0, idx);\n }\n\n setVariable(ret, name, resolveVariable(target, data));\n });\n return ret;\n}\n\nfunction objectGet(data: any, path: string) {\n if (typeof data[path] !== 'undefined') {\n return data[path];\n }\n\n let parts = keyToPath(path.replace(/^{|}$/g, ''));\n return parts.reduce((data, path) => {\n if ((isObject(data) || Array.isArray(data)) && path in data) {\n return (data as {[propName: string]: any})[path];\n }\n\n return undefined;\n }, data);\n}\n\nfunction parseJson(str: string, defaultValue?: any) {\n try {\n return JSON.parse(str);\n } catch (e) {\n return defaultValue;\n }\n}\n\nfunction getCookie(name: string) {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n return parts.pop()!.split(';').shift();\n }\n return undefined;\n}\n\nexport const resolveVariable = (path?: string, data: any = {}): any => {\n if (!path || !data || typeof path !== 'string') {\n return undefined;\n }\n\n let [ns, varname] = path.split(':');\n\n if (!varname && ns) {\n varname = ns;\n ns = '';\n }\n\n if (ns === 'window') {\n data = window;\n } else if (ns === 'ls' || ns === 'ss') {\n let parts = keyToPath(varname.replace(/^{|}$/g, ''));\n const key = parts.shift()!;\n const raw =\n ns === 'ss' ? sessionStorage.getItem(key) : localStorage.getItem(key);\n\n if (typeof raw === 'string') {\n const data = parseJson(raw, raw);\n\n if (isObject(data) && parts.length) {\n return objectGet(data, parts.join('.'));\n }\n\n return data;\n }\n\n return undefined;\n } else if (ns === 'cookie') {\n const key = varname.replace(/^{|}$/g, '').trim();\n return getCookie(key);\n }\n\n if (varname === '$$') {\n return data;\n } else if (varname[0] === '$') {\n varname = path.substring(1);\n } else if (varname === '&') {\n return data;\n }\n\n return objectGet(data, varname);\n};\n\nexport function isPureVariable(path?: any): path is string {\n return typeof path === 'string'\n ? /^\\$(?:((?:\\w+\\:)?[a-z0-9_.][a-z0-9_.\\[\\]]*)|{[^}{]+})$/i.test(path)\n : false;\n}\nexport const resolveVariableAndFilter = (\n path?: string,\n data: object = {},\n defaultFilter: string = '| html',\n fallbackValue = (value: any) => value\n): any => {\n if (!path) {\n return undefined;\n }\n\n const m = /^(\\\\)?\\$(?:((?:\\w+\\:)?[a-z0-9_.][a-z0-9_.\\[\\]]*)|{([\\s\\S]+)})$/i.exec(\n path\n );\n\n if (!m) {\n return undefined;\n }\n\n const [_, escape, key, key2] = m;\n\n // 如果是转义如: `\\$abc` => `$abc`\n if (escape) {\n return _.substring(1);\n }\n\n let finalKey: string = key || key2;\n\n // 先只支持一层吧\n finalKey = finalKey.replace(\n /(\\\\|\\\\\\$)?\\$(?:([a-zA-Z0-9_.][a-zA-Z0-9_.\\[\\]]*)|{([^}{]+)})/g,\n (_, escape) => {\n return escape\n ? _.substring(1)\n : resolveVariableAndFilter(_, data, defaultFilter);\n }\n );\n\n // 默认 html 转义\n if (!~finalKey.indexOf('|')) {\n finalKey += defaultFilter;\n }\n\n let paths = finalKey.split(/\\s*\\|\\s*/g);\n let originalKey = finalKey;\n finalKey = paths.shift() as string;\n\n let ret = resolveVariable(finalKey, data);\n\n let prevConInputChanged = false; // 前一个类三元过滤器生效,则跳过后续类三元过滤器\n\n return ret == null &&\n !~originalKey.indexOf('default') &&\n !~originalKey.indexOf('now')\n ? fallbackValue(ret)\n : paths.reduce((input, filter) => {\n let params = filter\n .replace(\n /([^\\\\])\\\\([\\:\\\\])/g,\n (_, affix, content) =>\n `${affix}__${content === ':' ? 'colon' : 'slash'}__`\n )\n .split(':')\n .map(item =>\n item.replace(/__(slash|colon)__/g, (_, type) =>\n type === 'colon' ? ':' : '\\\\'\n )\n );\n let key = params.shift() as string;\n\n if (\n ~[\n 'isTrue',\n 'isFalse',\n 'isMatch',\n 'isEquals',\n 'notMatch',\n 'notEquals'\n ].indexOf(key)\n ) {\n if (prevConInputChanged) {\n return input;\n } else {\n const result = filters[key].call(data, input, ...params);\n prevConInputChanged = result !== input;\n return result;\n }\n } else {\n // 后面再遇到非类三元filter就重置了吧,不影响再后面的其他三元filter\n prevConInputChanged = false;\n }\n\n return (filters[key] || filters.raw).call(data, input, ...params);\n }, ret);\n};\n\nexport const tokenize = (\n str: string,\n data: object,\n defaultFilter: string = '| html'\n) => {\n if (!str || typeof str !== 'string') {\n return str;\n }\n\n return str.replace(\n /(\\\\)?\\$(?:((?:\\w+\\:)?[a-z0-9_\\.][a-z0-9_\\.\\[\\]]*|&|\\$)|{([^}{]+?)})/gi,\n (_, escape, key1, key2, index, source) => {\n if (!escape && key1 === '$') {\n const prefix = source[index - 1];\n return prefix === '='\n ? encodeURIComponent(JSON.stringify(data))\n : qsstringify(data);\n }\n\n return escape\n ? _.substring(1)\n : resolveVariableAndFilter(_, data, defaultFilter) ?? '';\n }\n );\n};\n\nexport function resolveMapping(\n value: any,\n data: PlainObject,\n defaultFilter = '| raw'\n) {\n return typeof value === 'string' && isPureVariable(value)\n ? resolveVariableAndFilter(value, data, defaultFilter, () => '')\n : typeof value === 'string' && ~value.indexOf('$')\n ? tokenize(value, data, defaultFilter)\n : value;\n}\n\nexport function dataMapping(\n to: any,\n from: PlainObject = {},\n ignoreFunction: boolean | ((key: string, value: any) => boolean) = false\n): any {\n if (Array.isArray(to)) {\n return to.map(item => dataMapping(item, from, ignoreFunction));\n } else if (typeof to === 'string') {\n return resolveMapping(to, from);\n } else if (!isPlainObject(to)) {\n return to;\n }\n\n let ret = {};\n Object.keys(to).forEach(key => {\n const value = to[key];\n let keys: Array<string>;\n\n if (typeof ignoreFunction === 'function' && ignoreFunction(key, value)) {\n // 如果被ignore,不做数据映射处理。\n setVariable(ret, key, value);\n } else if (key === '&' && value === '$$') {\n ret = {\n ...ret,\n ...from\n };\n } else if (key === '&') {\n const v =\n isPlainObject(value) &&\n (keys = Object.keys(value)) &&\n keys.length === 1 &&\n from[keys[0].substring(1)] &&\n Array.isArray(from[keys[0].substring(1)])\n ? from[keys[0].substring(1)].map((raw: object) =>\n dataMapping(\n value[keys[0]],\n createObject(from, raw),\n ignoreFunction\n )\n )\n : resolveMapping(value, from);\n\n if (Array.isArray(v) || typeof v === 'string') {\n ret = v;\n } else if (typeof v === 'function') {\n ret = {\n ...ret,\n ...v(from)\n };\n } else {\n ret = {\n ...ret,\n ...v\n };\n }\n } else if (value === '$$') {\n setVariable(ret, key, from);\n } else if (value && value[0] === '$') {\n const v = resolveMapping(value, from);\n setVariable(ret, key, v);\n\n if (v === '__undefined') {\n deleteVariable(ret, key);\n }\n } else if (\n isPlainObject(value) &&\n (keys = Object.keys(value)) &&\n keys.length === 1 &&\n keys[0][0] === '$' &&\n isPlainObject(value[keys[0]])\n ) {\n // from[keys[0].substring(1)] &&\n // Array.isArray(from[keys[0].substring(1)])\n // 支持只取数组中的部分值这个需求\n // 如:\n // data: {\n // items: {\n // '$rows': {\n // id: '$id',\n // forum_id: '$forum_id'\n // }\n // }\n // }\n const arr = Array.isArray(from[keys[0].substring(1)])\n ? from[keys[0].substring(1)]\n : [];\n const mapping = value[keys[0]];\n\n (ret as PlainObject)[key] = arr.map((raw: object) =>\n dataMapping(mapping, createObject(from, raw), ignoreFunction)\n );\n } else if (isPlainObject(value)) {\n setVariable(ret, key, dataMapping(value, from, ignoreFunction));\n } else if (Array.isArray(value)) {\n setVariable(\n ret,\n key,\n value.map((value: any) =>\n isPlainObject(value)\n ? dataMapping(value, from, ignoreFunction)\n : resolveMapping(value, from)\n )\n );\n } else if (typeof value == 'string' && ~value.indexOf('$')) {\n setVariable(ret, key, resolveMapping(value, from));\n } else if (typeof value === 'function' && ignoreFunction !== true) {\n setVariable(ret, key, value(from));\n } else {\n setVariable(ret, key, value);\n\n if (value === '__undefined') {\n deleteVariable(ret, key);\n }\n }\n });\n\n return ret;\n}\n\nfunction matchSynatax(str: string) {\n let from = 0;\n while (true) {\n const idx = str.indexOf('$', from);\n if (~idx) {\n const nextToken = str[idx + 1];\n\n // 如果没有下一个字符,或者下一个字符是引号或者空格\n // 这个一般不是取值用法\n if (!nextToken || ~['\"', \"'\", ' '].indexOf(nextToken)) {\n from = idx + 1;\n continue;\n }\n\n // 如果上个字符是转义也不是取值用法\n const prevToken = str[idx - 1];\n if (prevToken && prevToken === '\\\\') {\n from = idx + 1;\n continue;\n }\n\n return true;\n } else {\n break;\n }\n }\n return false;\n}\n\nexport function register(): Enginer & {name: string} {\n return {\n name: 'builtin',\n test: (str: string) => typeof str === 'string' && matchSynatax(str),\n removeEscapeToken: (str: string) =>\n typeof str === 'string' ? str.replace(/\\\\\\$/g, '$') : str,\n compile: (str: string, data: object, defaultFilter = '| html') =>\n tokenize(str, data, defaultFilter)\n };\n}\n"
|
11
|
+
"import moment from 'moment';\nimport {PlainObject} from '../types';\nimport isPlainObject from 'lodash/isPlainObject';\nimport groupBy from 'lodash/groupBy';\nimport {\n createObject,\n isObject,\n setVariable,\n qsstringify,\n keyToPath,\n string2regExp,\n deleteVariable\n} from './helper';\nimport {Enginer} from './tpl';\nimport uniqBy from 'lodash/uniqBy';\nimport uniq from 'lodash/uniq';\nimport transform from 'lodash/transform';\n\nconst UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\nexport const prettyBytes = (num: number) => {\n if (!Number.isFinite(num)) {\n throw new TypeError(`Expected a finite number, got ${typeof num}: ${num}`);\n }\n\n const neg = num < 0;\n\n if (neg) {\n num = -num;\n }\n\n if (num < 1) {\n return (neg ? '-' : '') + num + ' B';\n }\n\n const exponent = Math.min(\n Math.floor(Math.log(num) / Math.log(1000)),\n UNITS.length - 1\n );\n const numStr = Number((num / Math.pow(1000, exponent)).toPrecision(3));\n const unit = UNITS[exponent];\n\n return (neg ? '-' : '') + numStr + ' ' + unit;\n};\n\nconst entityMap: {\n [propName: string]: string;\n} = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nexport const escapeHtml = (str: string) =>\n String(str).replace(/[&<>\"'\\/]/g, function (s) {\n return entityMap[s];\n });\n\nexport function formatDuration(value: number): string {\n const unit = ['秒', '分', '时', '天', '月', '季', '年'];\n const steps = [1, 60, 3600, 86400, 2592000, 7776000, 31104000];\n let len = steps.length;\n const parts = [];\n\n while (len--) {\n if (steps[len] && value >= steps[len]) {\n parts.push(Math.floor(value / steps[len]) + unit[len]);\n value %= steps[len];\n } else if (len === 0 && value) {\n parts.push((value.toFixed ? value.toFixed(2) : '0') + unit[0]);\n }\n }\n\n return parts.join('');\n}\n\nfunction makeSorter(\n key: string,\n method?: 'alpha' | 'numerical',\n order?: 'desc' | 'asc'\n) {\n return function (a: any, b: any) {\n if (!a || !b) {\n return 0;\n }\n\n const va = resolveVariable(key, a);\n const vb = resolveVariable(key, b);\n let result = 0;\n\n if (method === 'numerical') {\n result = (parseFloat(va) || 0) - (parseFloat(vb) || 0);\n } else {\n result = String(va).localeCompare(String(vb));\n }\n\n return result * (order === 'desc' ? -1 : 1);\n };\n}\n\nconst timeUnitMap: {\n [propName: string]: string;\n} = {\n year: 'Y',\n month: 'M',\n week: 'w',\n weekday: 'W',\n day: 'd',\n hour: 'h',\n minute: 'm',\n min: 'm',\n second: 's',\n millisecond: 'ms'\n};\n\nexport const relativeValueRe =\n /^(.+)?(\\+|-)(\\d+)(minute|min|hour|day|week|month|year|weekday|second|millisecond)s?$/i;\nexport const filterDate = (\n value: string,\n data: object = {},\n format = 'X',\n utc: boolean = false\n): moment.Moment => {\n let m,\n mm = utc ? moment.utc : moment;\n\n if (typeof value === 'string') {\n value = value.trim();\n }\n\n value = tokenize(value, data);\n\n if (value && typeof value === 'string' && (m = relativeValueRe.exec(value))) {\n const date = new Date();\n const step = parseInt(m[3], 10);\n const from = m[1]\n ? filterDate(m[1], data, format, utc)\n : mm(\n /(minute|min|hour|second)s?/.test(m[4])\n ? [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds()\n ]\n : [date.getFullYear(), date.getMonth(), date.getDate()]\n );\n\n return m[2] === '-'\n ? from.subtract(step, timeUnitMap[m[4]] as moment.DurationInputArg2)\n : from.add(step, timeUnitMap[m[4]] as moment.DurationInputArg2);\n // return from[m[2] === '-' ? 'subtract' : 'add'](step, mapping[m[4]] || m[4]);\n } else if (value === 'now') {\n return mm();\n } else if (value === 'today') {\n const date = new Date();\n return mm([date.getFullYear(), date.getMonth(), date.getDate()]);\n } else {\n return mm(value, format);\n }\n};\n\nexport function parseDuration(str: string): moment.Duration | undefined {\n const matches =\n /^((?:\\-|\\+)?(?:\\d*\\.)?\\d+)(minute|min|hour|day|week|month|quarter|year|weekday|second|millisecond)s?$/.exec(\n str\n );\n\n if (matches) {\n const duration = moment.duration(parseFloat(matches[1]), matches[2] as any);\n\n if (moment.isDuration(duration)) {\n return duration;\n }\n }\n\n return;\n}\n\n// 主要用于解决 0.1+0.2 结果的精度问题导致太长\nexport function stripNumber(number: number) {\n if (typeof number === 'number') {\n return parseFloat(number.toPrecision(12));\n } else {\n return number;\n }\n}\n\nexport const filters: {\n [propName: string]: (input: any, ...args: any[]) => any;\n} = {\n map: (input: Array<unknown>, fn: string, ...arg: any) =>\n Array.isArray(input) && filters[fn]\n ? input.map(item => filters[fn](item, ...arg))\n : input,\n html: (input: string) => escapeHtml(input),\n json: (input, tabSize: number | string = 2) =>\n tabSize\n ? JSON.stringify(input, null, parseInt(tabSize as string, 10))\n : JSON.stringify(input),\n toJson: input => {\n let ret;\n try {\n ret = JSON.parse(input);\n } catch (e) {\n ret = null;\n }\n return ret;\n },\n toInt: input => (typeof input === 'string' ? parseInt(input, 10) : input),\n toFloat: input => (typeof input === 'string' ? parseFloat(input) : input),\n raw: input => input,\n now: () => new Date(),\n toDate: (input: any, inputFormat = '') => {\n const data = moment(input, inputFormat);\n data.add();\n return data.isValid() ? data.toDate() : undefined;\n },\n fromNow: (input: any, inputFormat = '') =>\n moment(input, inputFormat).fromNow(),\n dateModify: (\n input: any,\n modifier: 'add' | 'subtract' | 'endOf' | 'startOf' = 'add',\n amount = 0,\n unit = 'days'\n ) => {\n if (!(input instanceof Date)) {\n input = new Date();\n }\n\n if (modifier === 'endOf' || modifier === 'startOf') {\n return moment(input)\n [modifier === 'endOf' ? 'endOf' : 'startOf'](amount || 'day')\n .toDate();\n }\n\n return moment(input)\n [modifier === 'add' ? 'add' : 'subtract'](parseInt(amount, 10) || 0, unit)\n .toDate();\n },\n date: (input, format = 'LLL', inputFormat = 'X') =>\n moment(input, inputFormat).format(format),\n number: input => {\n let parts = String(input).split('.');\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return parts.join('.');\n },\n trim: input => (typeof input === 'string' ? input.trim() : input),\n percent: (input, decimals = 0) => {\n input = parseFloat(input) || 0;\n decimals = parseInt(decimals, 10) || 0;\n\n let whole = input * 100;\n let multiplier = Math.pow(10, decimals);\n\n return (\n (Math.round(whole * multiplier) / multiplier).toFixed(decimals) + '%'\n );\n },\n duration: input => (input ? formatDuration(input) : input),\n bytes: input => (input ? prettyBytes(parseFloat(input)) : input),\n round: (input, decimals = 2) => {\n if (isNaN(input)) {\n return 0;\n }\n\n decimals = parseInt(decimals, 10) ?? 2;\n\n let multiplier = Math.pow(10, decimals);\n return (Math.round(input * multiplier) / multiplier).toFixed(decimals);\n },\n truncate: (input, length, end) => {\n if (typeof input !== 'string') {\n return input;\n }\n\n end = end || '...';\n\n if (length == null) {\n return input;\n }\n\n length = parseInt(length, 10) || 200;\n\n return input.substring(0, length) + (input.length > length ? end : '');\n },\n url_encode: input => encodeURIComponent(input),\n url_decode: input => decodeURIComponent(input),\n default: (input, defaultValue, strict = false) =>\n (strict ? input : input ? input : undefined) ??\n (() => {\n try {\n if (defaultValue === 'undefined') {\n return undefined;\n }\n\n return JSON.parse(defaultValue);\n } catch (e) {\n return defaultValue;\n }\n })(),\n join: (input, glue) => (input && input.join ? input.join(glue) : input),\n split: (input, delimiter = ',') =>\n typeof input === 'string' ? input.split(delimiter) : input,\n sortBy: (\n input: any,\n key: string,\n method: 'alpha' | 'numerical' = 'alpha',\n order?: 'asc' | 'desc'\n ) =>\n Array.isArray(input) ? input.sort(makeSorter(key, method, order)) : input,\n objectToArray: (\n input: any,\n label: string = 'label',\n value: string = 'value'\n ) =>\n transform(\n input,\n (result: any, v, k) => {\n (result || (result = [])).push({\n [label]: v,\n [value]: k\n });\n },\n []\n ),\n unique: (input: any, key?: string) =>\n Array.isArray(input) ? (key ? uniqBy(input, key) : uniq(input)) : input,\n topAndOther: (\n input: any,\n len: number = 10,\n labelField: string = 'name',\n restLabel = '其他'\n ) => {\n if (Array.isArray(input) && len) {\n const grouped = groupBy(input, (item: any) => {\n const index = input.indexOf(item) + 1;\n return index >= len ? len : index;\n });\n\n return Object.keys(grouped).map((key, index) => {\n const group = grouped[key];\n const obj = group.reduce((obj, item) => {\n Object.keys(item).forEach(key => {\n if (!obj.hasOwnProperty(key) || key === 'labelField') {\n obj[key] = item[key];\n } else if (\n typeof item[key] === 'number' &&\n typeof obj[key] === 'number'\n ) {\n obj[key] += item[key];\n } else if (\n typeof item[key] === 'string' &&\n /^(?:\\-|\\.)\\d/.test(item[key]) &&\n typeof obj[key] === 'number'\n ) {\n obj[key] += parseFloat(item[key]) || 0;\n } else if (\n typeof item[key] === 'string' &&\n typeof obj[key] === 'string'\n ) {\n obj[key] += `, ${item[key]}`;\n } else {\n obj[key] = item[key];\n }\n });\n\n return obj;\n }, {});\n\n if (index === len - 1) {\n obj[labelField] = restLabel || '其他';\n }\n return obj;\n });\n }\n return input;\n },\n first: input => input && input[0],\n nth: (input, nth = 0) => input && input[nth],\n last: input => input && (input.length ? input[input.length - 1] : null),\n minus: (input, step = 1) =>\n stripNumber((parseInt(input, 10) || 0) - parseInt(step, 10)),\n plus: (input, step = 1) =>\n stripNumber((parseInt(input, 10) || 0) + parseInt(step, 10)),\n count: (input: any) =>\n Array.isArray(input) || typeof input === 'string' ? input.length : 0,\n sum: (input, field) => {\n if (!Array.isArray(input)) {\n return input;\n }\n const restult = input.reduce(\n (sum, item) =>\n sum + (parseFloat(field ? pickValues(field, item) : item) || 0),\n 0\n );\n return stripNumber(restult);\n },\n abs: (input: any) => (typeof input === 'number' ? Math.abs(input) : input),\n pick: (input, path = '&') =>\n Array.isArray(input) && !/^\\d+$/.test(path)\n ? input.map((item, index) =>\n pickValues(path, createObject({index}, item))\n )\n : pickValues(path, input),\n pick_if_exist: (input, path = '&') =>\n Array.isArray(input)\n ? input.map(item => resolveVariable(path, item) || item)\n : resolveVariable(path, input) || input,\n str2date: function (input, inputFormat = 'X', outputFormat = 'X') {\n return input\n ? filterDate(input, this, inputFormat).format(outputFormat)\n : '';\n },\n asArray: input => (Array.isArray(input) ? input : input ? [input] : input),\n concat(input, ...args: any[]) {\n return Array.isArray(input)\n ? input.concat(...args.map(arg => getStrOrVariable(arg, this)))\n : input;\n },\n filter: function (input, keys, expOrDirective, arg1) {\n if (!Array.isArray(input) || !keys || !expOrDirective) {\n return input;\n }\n\n let directive = expOrDirective;\n let fn: (value: any, key: string, item: any) => boolean = () => true;\n\n if (directive === 'isTrue') {\n fn = value => !!value;\n } else if (directive === 'isFalse') {\n fn = value => !value;\n } else if (directive === 'isExists') {\n fn = value => typeof value !== 'undefined';\n } else if (directive === 'equals' || directive === 'equal') {\n arg1 = arg1 ? getStrOrVariable(arg1, this) : '';\n fn = value => arg1 == value;\n } else if (directive === 'isIn') {\n let list: any = arg1 ? getStrOrVariable(arg1, this) : [];\n\n list = str2array(list);\n list = Array.isArray(list) ? list : list ? [list] : [];\n fn = value => (list.length ? !!~list.indexOf(value) : true);\n } else if (directive === 'notIn') {\n let list: Array<any> = arg1 ? getStrOrVariable(arg1, this) : [];\n list = str2array(list);\n list = Array.isArray(list) ? list : list ? [list] : [];\n fn = value => !~list.indexOf(value);\n } else {\n if (directive !== 'match') {\n directive = 'match';\n arg1 = expOrDirective;\n }\n arg1 = arg1 ? getStrOrVariable(arg1, this) : '';\n\n // 比对的值是空时直接返回。\n if (!arg1) {\n return input;\n }\n\n let reg = string2regExp(`${arg1}`, false);\n fn = value => reg.test(String(value));\n }\n\n // 判断keys是否为*\n const isAsterisk = /\\s*\\*\\s*/.test(keys);\n keys = keys.split(/\\s*,\\s*/);\n return input.filter((item: any) =>\n // 当keys为*时从item中获取key\n (isAsterisk ? Object.keys(item) : keys).some((key: string) =>\n fn(resolveVariable(key, item), key, item)\n )\n );\n },\n base64Encode(str) {\n return btoa(\n encodeURIComponent(str).replace(\n /%([0-9A-F]{2})/g,\n function toSolidBytes(match, p1) {\n return String.fromCharCode(('0x' + p1) as any);\n }\n )\n );\n },\n\n base64Decode(str) {\n return decodeURIComponent(\n atob(str)\n .split('')\n .map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join('')\n );\n },\n\n lowerCase: input =>\n input && typeof input === 'string' ? input.toLowerCase() : input,\n upperCase: input =>\n input && typeof input === 'string' ? input.toUpperCase() : input,\n\n isTrue(input, trueValue, falseValue) {\n return getConditionValue(input, !!input, trueValue, falseValue, this);\n },\n isFalse(input, trueValue, falseValue) {\n return getConditionValue(input, !input, trueValue, falseValue, this);\n },\n isMatch(input, matchArg, trueValue, falseValue) {\n matchArg = getStrOrVariable(matchArg, this as any);\n return getConditionValue(\n input,\n matchArg && string2regExp(`${matchArg}`, false).test(String(input)),\n trueValue,\n falseValue,\n this\n );\n },\n notMatch(input, matchArg, trueValue, falseValue) {\n matchArg = getStrOrVariable(matchArg, this as any);\n return getConditionValue(\n input,\n matchArg && !string2regExp(`${matchArg}`, false).test(String(input)),\n trueValue,\n falseValue,\n this\n );\n },\n isEquals(input, equalsValue, trueValue, falseValue) {\n equalsValue = /^\\d+$/.test(equalsValue)\n ? parseInt(equalsValue, 10)\n : getStrOrVariable(equalsValue, this as any);\n return getConditionValue(\n input,\n input === equalsValue,\n trueValue,\n falseValue,\n this\n );\n },\n notEquals(input, equalsValue, trueValue, falseValue) {\n equalsValue = /^\\d+$/.test(equalsValue)\n ? parseInt(equalsValue, 10)\n : getStrOrVariable(equalsValue, this as any);\n return getConditionValue(\n input,\n input !== equalsValue,\n trueValue,\n falseValue,\n this\n );\n }\n};\n\n/**\n * 如果当前传入字符为:'xxx'或者\"xxx\",则返回字符xxx\n * 否则去数据域中,获取变量xxx\n *\n * @param value 传入字符\n * @param data 数据域\n */\nfunction getStrOrVariable(value: string, data: any) {\n return /^('|\")(.*)\\1$/.test(value)\n ? RegExp.$2\n : /^-?\\d+$/.test(value)\n ? parseInt(value, 10)\n : /^(-?\\d+)\\.\\d+?$/.test(value)\n ? parseFloat(value)\n : /^\\[.*\\]$/.test(value)\n ? value\n .substring(1, value.length - 1)\n .split(/\\s*,\\s*/)\n .filter(item => item)\n : /,/.test(value)\n ? value.split(/\\s*,\\s*/).filter(item => item)\n : resolveVariable(value, data);\n}\n\nfunction str2array(list: any) {\n if (list && typeof list === 'string') {\n if (/^\\[.*\\]$/.test(list)) {\n return list\n .substring(1, list.length - 1)\n .split(/\\s*,\\s*/)\n .filter(item => item);\n } else {\n return list.split(/\\s*,\\s*/).filter(item => item);\n }\n }\n return list;\n}\n\nfunction getConditionValue(\n input: string,\n isTrue: boolean,\n trueValue: string,\n falseValue: string,\n data: any\n) {\n return isTrue || (!isTrue && falseValue)\n ? getStrOrVariable(isTrue ? trueValue : falseValue, data)\n : input;\n}\n\nexport function registerFilter(\n name: string,\n fn: (input: any, ...args: any[]) => any\n): void {\n filters[name] = fn;\n}\n\nexport function getFilters() {\n return filters;\n}\n\nexport function pickValues(names: string, data: object) {\n let arr: Array<string>;\n if (!names || ((arr = names.split(',')) && arr.length < 2)) {\n let idx = names.indexOf('~');\n if (~idx) {\n let key = names.substring(0, idx);\n let target = names.substring(idx + 1);\n return {\n [key]: resolveVariable(target, data)\n };\n }\n return resolveVariable(names, data);\n }\n\n let ret: any = {};\n arr.forEach(name => {\n let idx = name.indexOf('~');\n let target = name;\n\n if (~idx) {\n target = name.substring(idx + 1);\n name = name.substring(0, idx);\n }\n\n setVariable(ret, name, resolveVariable(target, data));\n });\n return ret;\n}\n\nfunction objectGet(data: any, path: string) {\n if (typeof data[path] !== 'undefined') {\n return data[path];\n }\n\n let parts = keyToPath(path.replace(/^{|}$/g, ''));\n return parts.reduce((data, path) => {\n if ((isObject(data) || Array.isArray(data)) && path in data) {\n return (data as {[propName: string]: any})[path];\n }\n\n return undefined;\n }, data);\n}\n\nfunction parseJson(str: string, defaultValue?: any) {\n try {\n return JSON.parse(str);\n } catch (e) {\n return defaultValue;\n }\n}\n\nfunction getCookie(name: string) {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n return parts.pop()!.split(';').shift();\n }\n return undefined;\n}\n\nexport const resolveVariable = (path?: string, data: any = {}): any => {\n if (!path || !data || typeof path !== 'string') {\n return undefined;\n }\n\n let [ns, varname] = path.split(':');\n\n if (!varname && ns) {\n varname = ns;\n ns = '';\n }\n\n if (ns === 'window') {\n data = window;\n } else if (ns === 'ls' || ns === 'ss') {\n let parts = keyToPath(varname.replace(/^{|}$/g, ''));\n const key = parts.shift()!;\n const raw =\n ns === 'ss' ? sessionStorage.getItem(key) : localStorage.getItem(key);\n\n if (typeof raw === 'string') {\n const data = parseJson(raw, raw);\n\n if (isObject(data) && parts.length) {\n return objectGet(data, parts.join('.'));\n }\n\n return data;\n }\n\n return undefined;\n } else if (ns === 'cookie') {\n const key = varname.replace(/^{|}$/g, '').trim();\n return getCookie(key);\n }\n\n if (varname === '$$') {\n return data;\n } else if (varname[0] === '$') {\n varname = path.substring(1);\n } else if (varname === '&') {\n return data;\n }\n\n return objectGet(data, varname);\n};\n\nexport function isPureVariable(path?: any): path is string {\n return typeof path === 'string'\n ? /^\\$(?:((?:\\w+\\:)?[a-z0-9_.][a-z0-9_.\\[\\]]*)|{[^}{]+})$/i.test(path)\n : false;\n}\nexport const resolveVariableAndFilter = (\n path?: string,\n data: object = {},\n defaultFilter: string = '| html',\n fallbackValue = (value: any) => value\n): any => {\n if (!path) {\n return undefined;\n }\n\n const m =\n /^(\\\\)?\\$(?:((?:\\w+\\:)?[a-z0-9_.][a-z0-9_.\\[\\]]*)|{([\\s\\S]+)})$/i.exec(\n path\n );\n\n if (!m) {\n return undefined;\n }\n\n const [_, escape, key, key2] = m;\n\n // 如果是转义如: `\\$abc` => `$abc`\n if (escape) {\n return _.substring(1);\n }\n\n let finalKey: string = key || key2;\n\n // 先只支持一层吧\n finalKey = finalKey.replace(\n /(\\\\|\\\\\\$)?\\$(?:([a-zA-Z0-9_.][a-zA-Z0-9_.\\[\\]]*)|{([^}{]+)})/g,\n (_, escape) => {\n return escape\n ? _.substring(1)\n : resolveVariableAndFilter(_, data, defaultFilter);\n }\n );\n\n // 默认 html 转义\n if (!~finalKey.indexOf('|')) {\n finalKey += defaultFilter;\n }\n\n let paths = finalKey.split(/\\s*\\|\\s*/g);\n let originalKey = finalKey;\n finalKey = paths.shift() as string;\n\n let ret = resolveVariable(finalKey, data);\n\n let prevConInputChanged = false; // 前一个类三元过滤器生效,则跳过后续类三元过滤器\n\n return ret == null &&\n !~originalKey.indexOf('default') &&\n !~originalKey.indexOf('now')\n ? fallbackValue(ret)\n : paths.reduce((input, filter) => {\n let params = filter\n .replace(\n /([^\\\\])\\\\([\\:\\\\])/g,\n (_, affix, content) =>\n `${affix}__${content === ':' ? 'colon' : 'slash'}__`\n )\n .split(':')\n .map(item =>\n item.replace(/__(slash|colon)__/g, (_, type) =>\n type === 'colon' ? ':' : '\\\\'\n )\n );\n let key = params.shift() as string;\n\n if (\n ~[\n 'isTrue',\n 'isFalse',\n 'isMatch',\n 'isEquals',\n 'notMatch',\n 'notEquals'\n ].indexOf(key)\n ) {\n if (prevConInputChanged) {\n return input;\n } else {\n const result = filters[key].call(data, input, ...params);\n prevConInputChanged = result !== input;\n return result;\n }\n } else {\n // 后面再遇到非类三元filter就重置了吧,不影响再后面的其他三元filter\n prevConInputChanged = false;\n }\n\n return (filters[key] || filters.raw).call(data, input, ...params);\n }, ret);\n};\n\nexport const tokenize = (\n str: string,\n data: object,\n defaultFilter: string = '| html'\n) => {\n if (!str || typeof str !== 'string') {\n return str;\n }\n\n return str.replace(\n /(\\\\)?\\$(?:((?:\\w+\\:)?[a-z0-9_\\.][a-z0-9_\\.\\[\\]]*|&|\\$)|{([^}{]+?)})/gi,\n (_, escape, key1, key2, index, source) => {\n if (!escape && key1 === '$') {\n const prefix = source[index - 1];\n return prefix === '='\n ? encodeURIComponent(JSON.stringify(data))\n : qsstringify(data);\n }\n\n return escape\n ? _.substring(1)\n : resolveVariableAndFilter(_, data, defaultFilter) ?? '';\n }\n );\n};\n\nexport function resolveMapping(\n value: any,\n data: PlainObject,\n defaultFilter = '| raw'\n) {\n return typeof value === 'string' && isPureVariable(value)\n ? resolveVariableAndFilter(value, data, defaultFilter, () => '')\n : typeof value === 'string' && ~value.indexOf('$')\n ? tokenize(value, data, defaultFilter)\n : value;\n}\n\nexport function dataMapping(\n to: any,\n from: PlainObject = {},\n ignoreFunction: boolean | ((key: string, value: any) => boolean) = false\n): any {\n if (Array.isArray(to)) {\n return to.map(item => dataMapping(item, from, ignoreFunction));\n } else if (typeof to === 'string') {\n return resolveMapping(to, from);\n } else if (!isPlainObject(to)) {\n return to;\n }\n\n let ret = {};\n Object.keys(to).forEach(key => {\n const value = to[key];\n let keys: Array<string>;\n\n if (typeof ignoreFunction === 'function' && ignoreFunction(key, value)) {\n // 如果被ignore,不做数据映射处理。\n setVariable(ret, key, value);\n } else if (key === '&' && value === '$$') {\n ret = {\n ...ret,\n ...from\n };\n } else if (key === '&') {\n const v =\n isPlainObject(value) &&\n (keys = Object.keys(value)) &&\n keys.length === 1 &&\n from[keys[0].substring(1)] &&\n Array.isArray(from[keys[0].substring(1)])\n ? from[keys[0].substring(1)].map((raw: object) =>\n dataMapping(\n value[keys[0]],\n createObject(from, raw),\n ignoreFunction\n )\n )\n : resolveMapping(value, from);\n\n if (Array.isArray(v) || typeof v === 'string') {\n ret = v;\n } else if (typeof v === 'function') {\n ret = {\n ...ret,\n ...v(from)\n };\n } else {\n ret = {\n ...ret,\n ...v\n };\n }\n } else if (value === '$$') {\n setVariable(ret, key, from);\n } else if (value && value[0] === '$') {\n const v = resolveMapping(value, from);\n setVariable(ret, key, v);\n\n if (v === '__undefined') {\n deleteVariable(ret, key);\n }\n } else if (\n isPlainObject(value) &&\n (keys = Object.keys(value)) &&\n keys.length === 1 &&\n keys[0][0] === '$' &&\n isPlainObject(value[keys[0]])\n ) {\n // from[keys[0].substring(1)] &&\n // Array.isArray(from[keys[0].substring(1)])\n // 支持只取数组中的部分值这个需求\n // 如:\n // data: {\n // items: {\n // '$rows': {\n // id: '$id',\n // forum_id: '$forum_id'\n // }\n // }\n // }\n const arr = Array.isArray(from[keys[0].substring(1)])\n ? from[keys[0].substring(1)]\n : [];\n const mapping = value[keys[0]];\n\n (ret as PlainObject)[key] = arr.map((raw: object) =>\n dataMapping(mapping, createObject(from, raw), ignoreFunction)\n );\n } else if (isPlainObject(value)) {\n setVariable(ret, key, dataMapping(value, from, ignoreFunction));\n } else if (Array.isArray(value)) {\n setVariable(\n ret,\n key,\n value.map((value: any) =>\n isPlainObject(value)\n ? dataMapping(value, from, ignoreFunction)\n : resolveMapping(value, from)\n )\n );\n } else if (typeof value == 'string' && ~value.indexOf('$')) {\n setVariable(ret, key, resolveMapping(value, from));\n } else if (typeof value === 'function' && ignoreFunction !== true) {\n setVariable(ret, key, value(from));\n } else {\n setVariable(ret, key, value);\n\n if (value === '__undefined') {\n deleteVariable(ret, key);\n }\n }\n });\n\n return ret;\n}\n\nfunction matchSynatax(str: string) {\n let from = 0;\n while (true) {\n const idx = str.indexOf('$', from);\n if (~idx) {\n const nextToken = str[idx + 1];\n\n // 如果没有下一个字符,或者下一个字符是引号或者空格\n // 这个一般不是取值用法\n if (!nextToken || ~['\"', \"'\", ' '].indexOf(nextToken)) {\n from = idx + 1;\n continue;\n }\n\n // 如果上个字符是转义也不是取值用法\n const prevToken = str[idx - 1];\n if (prevToken && prevToken === '\\\\') {\n from = idx + 1;\n continue;\n }\n\n return true;\n } else {\n break;\n }\n }\n return false;\n}\n\nexport function register(): Enginer & {name: string} {\n return {\n name: 'builtin',\n test: (str: string) => typeof str === 'string' && matchSynatax(str),\n removeEscapeToken: (str: string) =>\n typeof str === 'string' ? str.replace(/\\\\\\$/g, '$') : str,\n compile: (str: string, data: object, defaultFilter = '| html') =>\n tokenize(str, data, defaultFilter)\n };\n}\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/utils/validations.js
CHANGED
@@ -18,6 +18,65 @@ var makeRegexp = function (reg) {
|
|
18
18
|
}
|
19
19
|
return /^$/;
|
20
20
|
};
|
21
|
+
var memoize_1 = (0, tslib_1.__importDefault)(require("lodash/memoize"));
|
22
|
+
var isPlainObject_1 = (0, tslib_1.__importDefault)(require("lodash/isPlainObject"));
|
23
|
+
var makeUrlRegexp = (0, memoize_1.default)(function (options) {
|
24
|
+
options = (0, tslib_1.__assign)({ schemes: ['http', 'https', 'ftp', 'sftp'], allowLocal: true, allowDataUrl: false }, ((0, isPlainObject_1.default)(options) ? options : {}));
|
25
|
+
// https://github.com/ansman/validate.js/blob/master/validate.js#L1098-L1164
|
26
|
+
var schemes = options.schemes, allowLocal = options.allowLocal, allowDataUrl = options.allowDataUrl;
|
27
|
+
if (!Array.isArray(schemes)) {
|
28
|
+
schemes = ['http', 'https', 'ftp', 'sftp'];
|
29
|
+
}
|
30
|
+
var regex = '^' +
|
31
|
+
// protocol identifier
|
32
|
+
'(?:(?:' +
|
33
|
+
schemes.join('|') +
|
34
|
+
')://)' +
|
35
|
+
// user:pass authentication
|
36
|
+
'(?:\\S+(?::\\S*)?@)?' +
|
37
|
+
'(?:';
|
38
|
+
var tld = '(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))';
|
39
|
+
if (allowLocal) {
|
40
|
+
tld += '?';
|
41
|
+
}
|
42
|
+
else {
|
43
|
+
regex +=
|
44
|
+
// IP address exclusion
|
45
|
+
// private & local networks
|
46
|
+
'(?!(?:10|127)(?:\\.\\d{1,3}){3})' +
|
47
|
+
'(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})' +
|
48
|
+
'(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})';
|
49
|
+
}
|
50
|
+
regex +=
|
51
|
+
// IP address dotted notation octets
|
52
|
+
// excludes loopback network 0.0.0.0
|
53
|
+
// excludes reserved space >= 224.0.0.0
|
54
|
+
// excludes network & broacast addresses
|
55
|
+
// (first & last IP address of each class)
|
56
|
+
'(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])' +
|
57
|
+
'(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}' +
|
58
|
+
'(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))' +
|
59
|
+
'|' +
|
60
|
+
// host name
|
61
|
+
'(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)' +
|
62
|
+
// domain name
|
63
|
+
'(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*' +
|
64
|
+
tld +
|
65
|
+
')' +
|
66
|
+
// port number
|
67
|
+
'(?::\\d{2,5})?' +
|
68
|
+
// resource path
|
69
|
+
'(?:[/?#]\\S*)?' +
|
70
|
+
'$';
|
71
|
+
if (allowDataUrl) {
|
72
|
+
// RFC 2397
|
73
|
+
var mediaType = '\\w+\\/[-+.\\w]+(?:;[\\w=]+)*';
|
74
|
+
var urlchar = "[A-Za-z0-9-_.!~\\*'();\\/?:@&=+$,%]*";
|
75
|
+
var dataurl = 'data:(?:' + mediaType + ')?(?:;base64)?,' + urlchar;
|
76
|
+
regex = '(?:' + regex + ')|(?:^' + dataurl + '$)';
|
77
|
+
}
|
78
|
+
return new RegExp(regex, 'i');
|
79
|
+
});
|
21
80
|
exports.validations = {
|
22
81
|
isRequired: function (values, value) {
|
23
82
|
return (value !== undefined &&
|
@@ -40,8 +99,8 @@ exports.validations = {
|
|
40
99
|
isEmail: function (values, value) {
|
41
100
|
return exports.validations.matchRegexp(values, value, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i);
|
42
101
|
},
|
43
|
-
isUrl: function (values, value) {
|
44
|
-
return exports.validations.matchRegexp(values, value,
|
102
|
+
isUrl: function (values, value, options) {
|
103
|
+
return exports.validations.matchRegexp(values, value, makeUrlRegexp(options));
|
45
104
|
},
|
46
105
|
isTrue: function (values, value) {
|
47
106
|
return value === true;
|
@@ -223,9 +282,7 @@ function validate(value, values, rules, messages, __) {
|
|
223
282
|
throw new Error('Validation `' + ruleName + '` not exists!');
|
224
283
|
}
|
225
284
|
var fn = exports.validations[ruleName];
|
226
|
-
var args = (Array.isArray(rules[ruleName])
|
227
|
-
? rules[ruleName]
|
228
|
-
: [rules[ruleName]]).map(function (item) {
|
285
|
+
var args = (Array.isArray(rules[ruleName]) ? rules[ruleName] : [rules[ruleName]]).map(function (item) {
|
229
286
|
if (typeof item === 'string' && (0, tpl_builtin_1.isPureVariable)(item)) {
|
230
287
|
return (0, tpl_builtin_1.resolveVariableAndFilter)(item, values, '|raw');
|
231
288
|
}
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/utils/validations.ts"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import {createObject} from './helper';\nimport {filter} from './tpl';\nimport {isPureVariable, resolveVariableAndFilter} from './tpl-builtin';\nconst isExisty = (value: any) => value !== null && value !== undefined;\nconst isEmpty = (value: any) => value === '';\nconst makeRegexp = (reg: string | RegExp) => {\n if (reg instanceof RegExp) {\n return reg;\n } else if (/^(?:matchRegexp\\:)?\\/(.+)\\/([gimuy]*)$/.test(reg)) {\n return new RegExp(RegExp.$1, RegExp.$2 || '');\n } else if (typeof reg === 'string') {\n return new RegExp(reg);\n }\n\n return /^$/;\n};\n\nexport interface ValidateFn {\n (\n values: {[propsName: string]: any},\n value: any,\n arg1?: any,\n arg2?: any,\n arg3?: any\n ): boolean;\n}\n\nexport const validations: {\n [propsName: string]: ValidateFn;\n} = {\n isRequired: function (values, value: any) {\n return (\n value !== undefined &&\n value !== '' &&\n value !== null &&\n (!Array.isArray(value) || !!value.length)\n );\n },\n isExisty: function (values, value) {\n return isExisty(value);\n },\n matchRegexp: function (values, value, regexp) {\n return !isExisty(value) || isEmpty(value) || makeRegexp(regexp).test(value);\n },\n isUndefined: function (values, value) {\n return value === undefined;\n },\n isEmptyString: function (values, value) {\n return isEmpty(value);\n },\n isEmail: function (values, value) {\n return validations.matchRegexp(\n values,\n value,\n /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i\n );\n },\n isUrl: function (values, value) {\n return validations.matchRegexp(\n values,\n value,\n /^(https?|s?ftp):\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i\n );\n },\n isTrue: function (values, value) {\n return value === true;\n },\n isFalse: function (values, value) {\n return value === false;\n },\n isNumeric: function (values, value) {\n if (typeof value === 'number') {\n return true;\n }\n return validations.matchRegexp(values, value, /^[-+]?(?:\\d*[.])?\\d+$/);\n },\n isAlpha: function (values, value) {\n return validations.matchRegexp(values, value, /^[A-Z]+$/i);\n },\n isAlphanumeric: function (values, value) {\n return validations.matchRegexp(values, value, /^[0-9A-Z]+$/i);\n },\n isInt: function (values, value) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:0|[1-9]\\d*))$/);\n },\n isFloat: function (values, value) {\n return validations.matchRegexp(\n values,\n value,\n /^(?:[-+]?(?:\\d+))?(?:\\.\\d*)?(?:[eE][\\+\\-]?(?:\\d+))?$/\n );\n },\n isWords: function (values, value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s]+$/i);\n },\n isSpecialWords: function (values, value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s\\u00C0-\\u017F]+$/i);\n },\n isLength: function (values, value, length) {\n return !isExisty(value) || isEmpty(value) || value.length === length;\n },\n equals: function (values, value, eql) {\n return !isExisty(value) || isEmpty(value) || value == eql;\n },\n equalsField: function (values, value, field) {\n return value == values[field];\n },\n maxLength: function (values, value, length) {\n // 此方法应该判断文本长度,如果传入数据为number,导致 maxLength 和 maximum 表现一致了,默认转成string\n if (typeof value === 'number') {\n value = String(value);\n }\n return !isExisty(value) || value.length <= length;\n },\n minLength: function (values, value, length) {\n return !isExisty(value) || isEmpty(value) || value.length >= length;\n },\n isUrlPath: function (values, value, regexp) {\n return !isExisty(value) || isEmpty(value) || /^[a-z0-9_\\\\-]+$/i.test(value);\n },\n maximum: function (values, value, maximum) {\n return (\n !isExisty(value) ||\n isEmpty(value) ||\n (parseFloat(value) || 0) <= (parseFloat(maximum) || 0)\n );\n },\n lt: function (values, value, maximum) {\n return (\n !isExisty(value) ||\n isEmpty(value) ||\n (parseFloat(value) || 0) < (parseFloat(maximum) || 0)\n );\n },\n minimum: function (values, value, minimum) {\n return (\n !isExisty(value) ||\n isEmpty(value) ||\n (parseFloat(value) || 0) >= (parseFloat(minimum) || 0)\n );\n },\n gt: function (values, value, minimum) {\n return (\n !isExisty(value) ||\n isEmpty(value) ||\n (parseFloat(value) || 0) > (parseFloat(minimum) || 0)\n );\n },\n isJson: function (values, value, minimum) {\n if (isExisty(value) && !isEmpty(value) && typeof value === 'string') {\n try {\n const result = JSON.parse(value);\n if (typeof result === 'object' && result) {\n return true;\n }\n return false;\n } catch (e) {\n return false;\n }\n }\n return true;\n },\n isPhoneNumber: function (values, value) {\n return (\n !isExisty(value) || isEmpty(value) || /^[1]([3-9])[0-9]{9}$/.test(value)\n );\n },\n isTelNumber: function (values, value) {\n return (\n !isExisty(value) ||\n isEmpty(value) ||\n /^(\\(\\d{3,4}\\)|\\d{3,4}-|\\s)?\\d{7,14}$/.test(value)\n );\n },\n isZipcode: function (values, value) {\n return (\n !isExisty(value) || isEmpty(value) || /^[1-9]{1}(\\d+){5}$/.test(value)\n );\n },\n isId: function (values, value) {\n return (\n !isExisty(value) ||\n isEmpty(value) ||\n /(^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$)|(^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}$)/.test(\n value\n )\n );\n },\n notEmptyString: function (values, value) {\n return !isExisty(value) || !(String(value) && String(value).trim() === '');\n },\n matchRegexp1: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp2: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp3: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp4: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp5: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp6: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp7: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp8: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp9: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n }\n};\n\nexport function addRule(\n ruleName: string,\n fn: ValidateFn,\n message: string = ''\n) {\n validations[ruleName] = fn;\n validateMessages[ruleName] = message;\n}\n\nexport const validateMessages: {\n [propName: string]: string;\n} = {\n isEmail: 'validate.isEmail',\n isRequired: 'validate.isRequired',\n isUrl: 'validate.isUrl',\n isInt: 'validate.isInt',\n isAlpha: 'validate.isAlpha',\n isNumeric: 'validate.isNumeric',\n isAlphanumeric: 'validate.isAlphanumeric',\n isFloat: 'validate.isFloat',\n isWords: 'validate.isWords',\n isUrlPath: 'validate.isUrlPath',\n matchRegexp: 'validate.matchRegexp',\n minLength: 'validate.minLength',\n maxLength: 'validate.maxLength',\n maximum: 'validate.maximum',\n lt: 'validate.lt',\n minimum: 'validate.minimum',\n gt: 'validate.gt',\n isJson: 'validate.isJson',\n isLength: 'validate.isLength',\n notEmptyString: 'validate.notEmptyString',\n equalsField: 'validate.equalsField',\n equals: 'validate.equals',\n isPhoneNumber: 'validate.isPhoneNumber',\n isTelNumber: 'validate.isTelNumber',\n isZipcode: 'validate.isZipcode',\n isId: 'validate.isId'\n};\n\nexport function validate(\n value: any,\n values: {[propName: string]: any},\n rules: {[propName: string]: any},\n messages?: {[propName: string]: string},\n __ = (str: string) => str\n): Array<{\n rule: string;\n msg: string;\n}> {\n const errors: Array<{\n rule: string;\n msg: string;\n }> = [];\n\n rules &&\n Object.keys(rules).forEach(ruleName => {\n if (!rules[ruleName] && rules[ruleName] !== 0) {\n return;\n } else if (typeof validations[ruleName] !== 'function') {\n throw new Error('Validation `' + ruleName + '` not exists!');\n }\n\n const fn = validations[ruleName];\n const args = (Array.isArray(rules[ruleName])\n ? rules[ruleName]\n : [rules[ruleName]]\n ).map((item: any) => {\n if (typeof item === 'string' && isPureVariable(item)) {\n return resolveVariableAndFilter(item, values, '|raw');\n }\n\n return item;\n });\n\n if (!fn(values, value, ...args)) {\n errors.push({\n rule: ruleName,\n msg: filter(\n __((messages && messages[ruleName]) || validateMessages[ruleName]),\n {\n ...[''].concat(args)\n }\n )\n });\n }\n });\n\n return errors;\n}\n\nexport function validateObject(\n values: {[propName: string]: any},\n rules: {[propName: string]: any},\n messages?: {[propName: string]: string},\n __ = (str: string) => str\n) {\n const ret: {\n [propName: string]: {\n rule: string;\n msg: string;\n }[];\n } = {};\n\n Object.keys(rules).forEach(key => {\n const msgs = validate(\n values[key],\n values,\n rules[key] === true\n ? {\n isRequired: true\n }\n : rules[key],\n messages,\n __\n );\n\n if (msgs.length) {\n ret[key] = msgs;\n }\n });\n\n return ret;\n}\n\nconst splitValidations = function (str: string): Array<string> {\n let i = 0;\n const placeholder: {[propName: string]: string} = {};\n\n return str\n .replace(/matchRegexp\\d*\\s*\\:\\s*\\/.*?\\/[igm]*/g, raw => {\n placeholder[`__${i}`] = raw;\n return `__${i++}`;\n })\n .split(/,(?![^{\\[]*[}\\]])/g)\n .map(str => (/^__\\d+$/.test(str) ? placeholder[str] : str.trim()));\n};\n\nexport function str2rules(\n validations: string | {[propName: string]: any}\n): {[propName: string]: any} {\n if (typeof validations === 'string') {\n return validations\n ? splitValidations(validations).reduce(function (\n validations: {[propName: string]: any},\n validation\n ) {\n const idx = validation.indexOf(':');\n let validateMethod = validation;\n let args = [];\n\n if (~idx) {\n validateMethod = validation.substring(0, idx);\n args = /^matchRegexp/.test(validateMethod)\n ? [validation.substring(idx + 1).trim()]\n : validation\n .substring(idx + 1)\n .split(',')\n .map(function (arg) {\n try {\n return JSON.parse(arg);\n } catch (e) {\n return arg;\n }\n });\n }\n\n validations[validateMethod] = args.length ? args : true;\n return validations;\n },\n {})\n : {};\n }\n\n return validations || {};\n}\n"
|
11
|
+
"import {createObject} from './helper';\nimport {filter} from './tpl';\nimport {isPureVariable, resolveVariableAndFilter} from './tpl-builtin';\nconst isExisty = (value: any) => value !== null && value !== undefined;\nconst isEmpty = (value: any) => value === '';\nconst makeRegexp = (reg: string | RegExp) => {\n if (reg instanceof RegExp) {\n return reg;\n } else if (/^(?:matchRegexp\\:)?\\/(.+)\\/([gimuy]*)$/.test(reg)) {\n return new RegExp(RegExp.$1, RegExp.$2 || '');\n } else if (typeof reg === 'string') {\n return new RegExp(reg);\n }\n\n return /^$/;\n};\nimport memoize from 'lodash/memoize';\nimport isPlainObject from 'lodash/isPlainObject';\n\nconst makeUrlRegexp = memoize(function (options: any) {\n options = {\n schemes: ['http', 'https', 'ftp', 'sftp'],\n allowLocal: true,\n allowDataUrl: false,\n ...(isPlainObject(options) ? options : {})\n };\n\n // https://github.com/ansman/validate.js/blob/master/validate.js#L1098-L1164\n let {schemes, allowLocal, allowDataUrl} = options;\n\n if (!Array.isArray(schemes)) {\n schemes = ['http', 'https', 'ftp', 'sftp'];\n }\n\n let regex =\n '^' +\n // protocol identifier\n '(?:(?:' +\n schemes.join('|') +\n ')://)' +\n // user:pass authentication\n '(?:\\\\S+(?::\\\\S*)?@)?' +\n '(?:';\n\n var tld = '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))';\n\n if (allowLocal) {\n tld += '?';\n } else {\n regex +=\n // IP address exclusion\n // private & local networks\n '(?!(?:10|127)(?:\\\\.\\\\d{1,3}){3})' +\n '(?!(?:169\\\\.254|192\\\\.168)(?:\\\\.\\\\d{1,3}){2})' +\n '(?!172\\\\.(?:1[6-9]|2\\\\d|3[0-1])(?:\\\\.\\\\d{1,3}){2})';\n }\n\n regex +=\n // IP address dotted notation octets\n // excludes loopback network 0.0.0.0\n // excludes reserved space >= 224.0.0.0\n // excludes network & broacast addresses\n // (first & last IP address of each class)\n '(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])' +\n '(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}' +\n '(?:\\\\.(?:[1-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))' +\n '|' +\n // host name\n '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)' +\n // domain name\n '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*' +\n tld +\n ')' +\n // port number\n '(?::\\\\d{2,5})?' +\n // resource path\n '(?:[/?#]\\\\S*)?' +\n '$';\n\n if (allowDataUrl) {\n // RFC 2397\n var mediaType = '\\\\w+\\\\/[-+.\\\\w]+(?:;[\\\\w=]+)*';\n var urlchar = \"[A-Za-z0-9-_.!~\\\\*'();\\\\/?:@&=+$,%]*\";\n var dataurl = 'data:(?:' + mediaType + ')?(?:;base64)?,' + urlchar;\n regex = '(?:' + regex + ')|(?:^' + dataurl + '$)';\n }\n\n return new RegExp(regex, 'i');\n});\n\nexport interface ValidateFn {\n (\n values: {[propsName: string]: any},\n value: any,\n arg1?: any,\n arg2?: any,\n arg3?: any\n ): boolean;\n}\n\nexport const validations: {\n [propsName: string]: ValidateFn;\n} = {\n isRequired: function (values, value: any) {\n return (\n value !== undefined &&\n value !== '' &&\n value !== null &&\n (!Array.isArray(value) || !!value.length)\n );\n },\n isExisty: function (values, value) {\n return isExisty(value);\n },\n matchRegexp: function (values, value, regexp) {\n return !isExisty(value) || isEmpty(value) || makeRegexp(regexp).test(value);\n },\n isUndefined: function (values, value) {\n return value === undefined;\n },\n isEmptyString: function (values, value) {\n return isEmpty(value);\n },\n isEmail: function (values, value) {\n return validations.matchRegexp(\n values,\n value,\n /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i\n );\n },\n isUrl: function (values, value, options) {\n return validations.matchRegexp(values, value, makeUrlRegexp(options));\n },\n isTrue: function (values, value) {\n return value === true;\n },\n isFalse: function (values, value) {\n return value === false;\n },\n isNumeric: function (values, value) {\n if (typeof value === 'number') {\n return true;\n }\n return validations.matchRegexp(values, value, /^[-+]?(?:\\d*[.])?\\d+$/);\n },\n isAlpha: function (values, value) {\n return validations.matchRegexp(values, value, /^[A-Z]+$/i);\n },\n isAlphanumeric: function (values, value) {\n return validations.matchRegexp(values, value, /^[0-9A-Z]+$/i);\n },\n isInt: function (values, value) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:0|[1-9]\\d*))$/);\n },\n isFloat: function (values, value) {\n return validations.matchRegexp(\n values,\n value,\n /^(?:[-+]?(?:\\d+))?(?:\\.\\d*)?(?:[eE][\\+\\-]?(?:\\d+))?$/\n );\n },\n isWords: function (values, value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s]+$/i);\n },\n isSpecialWords: function (values, value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s\\u00C0-\\u017F]+$/i);\n },\n isLength: function (values, value, length) {\n return !isExisty(value) || isEmpty(value) || value.length === length;\n },\n equals: function (values, value, eql) {\n return !isExisty(value) || isEmpty(value) || value == eql;\n },\n equalsField: function (values, value, field) {\n return value == values[field];\n },\n maxLength: function (values, value, length) {\n // 此方法应该判断文本长度,如果传入数据为number,导致 maxLength 和 maximum 表现一致了,默认转成string\n if (typeof value === 'number') {\n value = String(value);\n }\n return !isExisty(value) || value.length <= length;\n },\n minLength: function (values, value, length) {\n return !isExisty(value) || isEmpty(value) || value.length >= length;\n },\n isUrlPath: function (values, value, regexp) {\n return !isExisty(value) || isEmpty(value) || /^[a-z0-9_\\\\-]+$/i.test(value);\n },\n maximum: function (values, value, maximum) {\n return (\n !isExisty(value) ||\n isEmpty(value) ||\n (parseFloat(value) || 0) <= (parseFloat(maximum) || 0)\n );\n },\n lt: function (values, value, maximum) {\n return (\n !isExisty(value) ||\n isEmpty(value) ||\n (parseFloat(value) || 0) < (parseFloat(maximum) || 0)\n );\n },\n minimum: function (values, value, minimum) {\n return (\n !isExisty(value) ||\n isEmpty(value) ||\n (parseFloat(value) || 0) >= (parseFloat(minimum) || 0)\n );\n },\n gt: function (values, value, minimum) {\n return (\n !isExisty(value) ||\n isEmpty(value) ||\n (parseFloat(value) || 0) > (parseFloat(minimum) || 0)\n );\n },\n isJson: function (values, value, minimum) {\n if (isExisty(value) && !isEmpty(value) && typeof value === 'string') {\n try {\n const result = JSON.parse(value);\n if (typeof result === 'object' && result) {\n return true;\n }\n return false;\n } catch (e) {\n return false;\n }\n }\n return true;\n },\n isPhoneNumber: function (values, value) {\n return (\n !isExisty(value) || isEmpty(value) || /^[1]([3-9])[0-9]{9}$/.test(value)\n );\n },\n isTelNumber: function (values, value) {\n return (\n !isExisty(value) ||\n isEmpty(value) ||\n /^(\\(\\d{3,4}\\)|\\d{3,4}-|\\s)?\\d{7,14}$/.test(value)\n );\n },\n isZipcode: function (values, value) {\n return (\n !isExisty(value) || isEmpty(value) || /^[1-9]{1}(\\d+){5}$/.test(value)\n );\n },\n isId: function (values, value) {\n return (\n !isExisty(value) ||\n isEmpty(value) ||\n /(^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$)|(^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}$)/.test(\n value\n )\n );\n },\n notEmptyString: function (values, value) {\n return !isExisty(value) || !(String(value) && String(value).trim() === '');\n },\n matchRegexp1: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp2: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp3: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp4: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp5: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp6: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp7: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp8: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n },\n matchRegexp9: function (values, value, regexp) {\n return validations.matchRegexp(values, value, regexp);\n }\n};\n\nexport function addRule(\n ruleName: string,\n fn: ValidateFn,\n message: string = ''\n) {\n validations[ruleName] = fn;\n validateMessages[ruleName] = message;\n}\n\nexport const validateMessages: {\n [propName: string]: string;\n} = {\n isEmail: 'validate.isEmail',\n isRequired: 'validate.isRequired',\n isUrl: 'validate.isUrl',\n isInt: 'validate.isInt',\n isAlpha: 'validate.isAlpha',\n isNumeric: 'validate.isNumeric',\n isAlphanumeric: 'validate.isAlphanumeric',\n isFloat: 'validate.isFloat',\n isWords: 'validate.isWords',\n isUrlPath: 'validate.isUrlPath',\n matchRegexp: 'validate.matchRegexp',\n minLength: 'validate.minLength',\n maxLength: 'validate.maxLength',\n maximum: 'validate.maximum',\n lt: 'validate.lt',\n minimum: 'validate.minimum',\n gt: 'validate.gt',\n isJson: 'validate.isJson',\n isLength: 'validate.isLength',\n notEmptyString: 'validate.notEmptyString',\n equalsField: 'validate.equalsField',\n equals: 'validate.equals',\n isPhoneNumber: 'validate.isPhoneNumber',\n isTelNumber: 'validate.isTelNumber',\n isZipcode: 'validate.isZipcode',\n isId: 'validate.isId'\n};\n\nexport function validate(\n value: any,\n values: {[propName: string]: any},\n rules: {[propName: string]: any},\n messages?: {[propName: string]: string},\n __ = (str: string) => str\n): Array<{\n rule: string;\n msg: string;\n}> {\n const errors: Array<{\n rule: string;\n msg: string;\n }> = [];\n\n rules &&\n Object.keys(rules).forEach(ruleName => {\n if (!rules[ruleName] && rules[ruleName] !== 0) {\n return;\n } else if (typeof validations[ruleName] !== 'function') {\n throw new Error('Validation `' + ruleName + '` not exists!');\n }\n\n const fn = validations[ruleName];\n const args = (\n Array.isArray(rules[ruleName]) ? rules[ruleName] : [rules[ruleName]]\n ).map((item: any) => {\n if (typeof item === 'string' && isPureVariable(item)) {\n return resolveVariableAndFilter(item, values, '|raw');\n }\n\n return item;\n });\n\n if (!fn(values, value, ...args)) {\n errors.push({\n rule: ruleName,\n msg: filter(\n __((messages && messages[ruleName]) || validateMessages[ruleName]),\n {\n ...[''].concat(args)\n }\n )\n });\n }\n });\n\n return errors;\n}\n\nexport function validateObject(\n values: {[propName: string]: any},\n rules: {[propName: string]: any},\n messages?: {[propName: string]: string},\n __ = (str: string) => str\n) {\n const ret: {\n [propName: string]: {\n rule: string;\n msg: string;\n }[];\n } = {};\n\n Object.keys(rules).forEach(key => {\n const msgs = validate(\n values[key],\n values,\n rules[key] === true\n ? {\n isRequired: true\n }\n : rules[key],\n messages,\n __\n );\n\n if (msgs.length) {\n ret[key] = msgs;\n }\n });\n\n return ret;\n}\n\nconst splitValidations = function (str: string): Array<string> {\n let i = 0;\n const placeholder: {[propName: string]: string} = {};\n\n return str\n .replace(/matchRegexp\\d*\\s*\\:\\s*\\/.*?\\/[igm]*/g, raw => {\n placeholder[`__${i}`] = raw;\n return `__${i++}`;\n })\n .split(/,(?![^{\\[]*[}\\]])/g)\n .map(str => (/^__\\d+$/.test(str) ? placeholder[str] : str.trim()));\n};\n\nexport function str2rules(validations: string | {[propName: string]: any}): {\n [propName: string]: any;\n} {\n if (typeof validations === 'string') {\n return validations\n ? splitValidations(validations).reduce(function (\n validations: {[propName: string]: any},\n validation\n ) {\n const idx = validation.indexOf(':');\n let validateMethod = validation;\n let args = [];\n\n if (~idx) {\n validateMethod = validation.substring(0, idx);\n args = /^matchRegexp/.test(validateMethod)\n ? [validation.substring(idx + 1).trim()]\n : validation\n .substring(idx + 1)\n .split(',')\n .map(function (arg) {\n try {\n return JSON.parse(arg);\n } catch (e) {\n return arg;\n }\n });\n }\n\n validations[validateMethod] = args.length ? args : true;\n return validations;\n },\n {})\n : {};\n }\n\n return validations || {};\n}\n"
|
12
12
|
]
|
13
13
|
}
|