amis 1.4.1 → 1.4.2-beta.13
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 +1 -1
- package/lib/Schema.d.ts +26 -2
- package/lib/Schema.js.map +1 -1
- package/lib/components/Alert.js +3 -1
- package/lib/components/Alert.js.map +2 -2
- package/lib/components/AnchorNav.d.ts +22 -21
- package/lib/components/AnchorNav.js +7 -3
- package/lib/components/AnchorNav.js.map +2 -2
- package/lib/components/ArrayInput.d.ts +84 -84
- package/lib/components/AssociatedSelection.d.ts +930 -0
- package/lib/components/AssociatedSelection.js +89 -0
- package/lib/components/AssociatedSelection.js.map +13 -0
- package/lib/components/Badge.d.ts +2 -2
- package/lib/components/Badge.js +13 -7
- package/lib/components/Badge.js.map +2 -2
- package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
- package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
- package/lib/components/ChainedSelection.js.map +13 -0
- package/lib/components/Collapse.js +1 -1
- package/lib/components/Collapse.js.map +2 -2
- package/lib/components/ColorPicker.d.ts +84 -84
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DatePicker.js +1 -1
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +84 -84
- package/lib/components/DateRangePicker.js +1 -1
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/Editor.d.ts +84 -84
- package/lib/components/GroupedSelection.d.ts +907 -0
- package/lib/components/GroupedSelection.js +48 -0
- package/lib/components/GroupedSelection.js.map +13 -0
- package/lib/components/InputBox.d.ts +22 -21
- package/lib/components/InputBox.js +11 -3
- package/lib/components/InputBox.js.map +2 -2
- package/lib/components/Link.d.ts +84 -0
- package/lib/components/Link.js +43 -0
- package/lib/components/Link.js.map +13 -0
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/ModalManager.js +1 -1
- package/lib/components/ModalManager.js.map +2 -2
- package/lib/components/MonthRangePicker.d.ts +84 -84
- package/lib/components/MonthRangePicker.js +1 -1
- package/lib/components/MonthRangePicker.js.map +2 -2
- package/lib/components/NumberInput.d.ts +20 -20
- package/lib/components/PickerColumn.d.ts +514 -0
- package/lib/components/PickerColumn.js +279 -0
- package/lib/components/PickerColumn.js.map +13 -0
- package/lib/components/PickerContainer.d.ts +513 -0
- package/lib/components/PickerContainer.js +96 -0
- package/lib/components/PickerContainer.js.map +13 -0
- package/lib/components/Radios.d.ts +22 -21
- package/lib/components/Radios.js +1 -0
- package/lib/components/Radios.js.map +2 -2
- package/lib/components/Rating.d.ts +21 -21
- package/lib/components/ResultBox.d.ts +84 -84
- package/lib/components/ResultBox.js +10 -2
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/RichText.js +17 -53
- package/lib/components/RichText.js.map +2 -2
- package/lib/components/SearchBox.d.ts +84 -84
- package/lib/components/SearchBox.js +4 -4
- package/lib/components/SearchBox.js.map +2 -2
- package/lib/components/Select.d.ts +245 -237
- package/lib/components/Select.js +28 -4
- package/lib/components/Select.js.map +2 -2
- package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
- package/lib/components/Selection.js +134 -0
- package/lib/components/Selection.js.map +13 -0
- package/lib/components/SparkLine.d.ts +85 -84
- package/lib/components/SparkLine.js +2 -2
- package/lib/components/SparkLine.js.map +2 -2
- package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
- package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
- package/lib/components/TableSelection.js.map +13 -0
- package/lib/components/Tabs.d.ts +20 -20
- package/lib/components/TabsTransfer.d.ts +84 -84
- package/lib/components/TabsTransfer.js +9 -9
- package/lib/components/TabsTransfer.js.map +2 -2
- package/lib/components/TabsTransferPicker.d.ts +489 -0
- package/lib/components/TabsTransferPicker.js +60 -0
- package/lib/components/TabsTransferPicker.js.map +13 -0
- package/lib/components/Toast.js +2 -2
- package/lib/components/Toast.js.map +2 -2
- package/lib/components/Transfer.d.ts +908 -274
- package/lib/components/Transfer.js +31 -24
- package/lib/components/Transfer.js.map +2 -2
- package/lib/components/TransferDropDown.d.ts +488 -0
- package/lib/components/TransferDropDown.js +59 -0
- package/lib/components/TransferDropDown.js.map +13 -0
- package/lib/components/TransferPicker.d.ts +493 -0
- package/lib/components/TransferPicker.js +60 -0
- package/lib/components/TransferPicker.js.map +13 -0
- package/lib/components/Tree.d.ts +84 -84
- package/lib/components/Tree.js +5 -3
- package/lib/components/Tree.js.map +2 -2
- package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
- package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
- package/lib/components/TreeSelection.js.map +13 -0
- package/lib/components/WithRemoteConfig.js +1 -1
- package/lib/components/WithRemoteConfig.js.map +2 -2
- package/lib/components/condition-builder/Field.js +5 -2
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Func.js +2 -2
- package/lib/components/condition-builder/Func.js.map +2 -2
- package/lib/components/condition-builder/InputSwitch.js +2 -2
- package/lib/components/condition-builder/InputSwitch.js.map +2 -2
- package/lib/components/condition-builder/Item.js +3 -3
- package/lib/components/condition-builder/Item.js.map +2 -2
- package/lib/components/icons.js +14 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/components/index.d.ts +8 -8
- package/lib/components/index.js +16 -16
- package/lib/components/index.js.map +2 -2
- package/lib/envOverwrite.js.map +2 -2
- package/lib/factory.d.ts +4 -0
- package/lib/factory.js +4 -2
- package/lib/factory.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/hooks/index.d.ts +5 -0
- package/lib/hooks/index.js +14 -0
- package/lib/hooks/index.js.map +13 -0
- package/lib/hooks/use-set-state.d.ts +2 -0
- package/lib/hooks/use-set-state.js +15 -0
- package/lib/hooks/use-set-state.js.map +13 -0
- package/lib/hooks/use-touch.d.ts +16 -0
- package/lib/hooks/use-touch.js +73 -0
- package/lib/hooks/use-touch.js.map +13 -0
- package/lib/hooks/use-update-effect.d.ts +3 -0
- package/lib/hooks/use-update-effect.js +17 -0
- package/lib/hooks/use-update-effect.js.map +13 -0
- package/lib/icons/clock.js +10 -0
- package/lib/icons/download.js +7 -0
- package/lib/icons/status-close.js +11 -0
- package/lib/icons/status-fail.js +11 -0
- package/lib/icons/status-info.js +10 -0
- package/lib/icons/status-success.js +11 -0
- package/lib/icons/status-warning.js +10 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +4 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +4 -0
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +5 -0
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +8 -3
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +8 -0
- package/lib/renderers/Action.js +17 -4
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/AnchorNav.d.ts +1 -0
- package/lib/renderers/AnchorNav.js +2 -2
- package/lib/renderers/AnchorNav.js.map +2 -2
- package/lib/renderers/Avatar.js +3 -3
- package/lib/renderers/Avatar.js.map +2 -2
- package/lib/renderers/Breadcrumb.js +1 -1
- package/lib/renderers/Breadcrumb.js.map +2 -2
- package/lib/renderers/CRUD.d.ts +9 -0
- package/lib/renderers/CRUD.js +43 -8
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Card.d.ts +4 -0
- package/lib/renderers/Card.js +29 -23
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Chart.js +1 -1
- package/lib/renderers/Chart.js.map +2 -2
- package/lib/renderers/Collapse.js +3 -2
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/Dialog.js +0 -3
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/Drawer.js +0 -3
- package/lib/renderers/Drawer.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +5 -1
- package/lib/renderers/DropDownButton.js +8 -6
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Form/Checkbox.d.ts +5 -0
- package/lib/renderers/Form/Checkbox.js +4 -0
- package/lib/renderers/Form/Checkbox.js.map +2 -2
- package/lib/renderers/Form/Combo.js +2 -2
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +4 -3
- package/lib/renderers/Form/Editor.d.ts +3 -2
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputCity.js +7 -6
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.d.ts +84 -84
- package/lib/renderers/Form/InputFile.d.ts +6 -0
- package/lib/renderers/Form/InputFile.js +30 -10
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.js +16 -7
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +1 -1
- package/lib/renderers/Form/Item.js.map +1 -1
- package/lib/renderers/Form/Options.js +19 -6
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Picker.js +2 -2
- package/lib/renderers/Form/Picker.js.map +2 -2
- package/lib/renderers/Form/Select.d.ts +42 -4
- package/lib/renderers/Form/Select.js +37 -3
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
- package/lib/renderers/Form/TabsTransferPicker.js +29 -0
- package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
- package/lib/renderers/Form/Transfer.js +18 -3
- package/lib/renderers/Form/Transfer.js.map +2 -2
- package/lib/renderers/Form/TransferPicker.d.ts +52 -0
- package/lib/renderers/Form/TransferPicker.js +43 -0
- package/lib/renderers/Form/TransferPicker.js.map +13 -0
- package/lib/renderers/Form/TreeSelect.js +2 -2
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.d.ts +5 -0
- package/lib/renderers/Form/index.js +5 -3
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +15 -3
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/IFrame.js +3 -5
- package/lib/renderers/IFrame.js.map +2 -2
- package/lib/renderers/Image.d.ts +1 -0
- package/lib/renderers/Image.js +15 -1
- package/lib/renderers/Image.js.map +2 -2
- package/lib/renderers/Json.d.ts +4 -0
- package/lib/renderers/Json.js +4 -13
- package/lib/renderers/Json.js.map +2 -2
- package/lib/renderers/Link.d.ts +18 -3
- package/lib/renderers/Link.js +27 -15
- package/lib/renderers/Link.js.map +2 -2
- package/lib/renderers/List.js +1 -1
- package/lib/renderers/List.js.map +2 -2
- package/lib/renderers/Log.d.ts +2 -2
- package/lib/renderers/Log.js +7 -1
- package/lib/renderers/Log.js.map +2 -2
- package/lib/renderers/Mapping.d.ts +9 -2
- package/lib/renderers/Mapping.js +18 -6
- package/lib/renderers/Mapping.js.map +2 -2
- package/lib/renderers/Nav.d.ts +62 -36
- package/lib/renderers/Nav.js +272 -96
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Portlet.d.ts +125 -0
- package/lib/renderers/Portlet.js +156 -0
- package/lib/renderers/Portlet.js.map +13 -0
- package/lib/renderers/Property.js +2 -1
- package/lib/renderers/Property.js.map +2 -2
- package/lib/renderers/SearchBox.d.ts +6 -1
- package/lib/renderers/SearchBox.js +19 -5
- package/lib/renderers/SearchBox.js.map +2 -2
- package/lib/renderers/SparkLine.d.ts +4 -0
- package/lib/renderers/SparkLine.js.map +2 -2
- package/lib/renderers/Table/ColumnToggler.d.ts +113 -0
- package/lib/renderers/Table/ColumnToggler.js +216 -0
- package/lib/renderers/Table/ColumnToggler.js.map +13 -0
- package/lib/renderers/Table/ItemActionsWrapper.d.ts +11 -0
- package/lib/renderers/Table/ItemActionsWrapper.js +31 -0
- package/lib/renderers/Table/ItemActionsWrapper.js.map +13 -0
- package/lib/renderers/Table/TableBody.d.ts +4 -0
- package/lib/renderers/Table/TableCell.js +3 -1
- package/lib/renderers/Table/TableCell.js.map +2 -2
- package/lib/renderers/Table/TableContent.d.ts +4 -1
- package/lib/renderers/Table/TableContent.js +21 -1
- package/lib/renderers/Table/TableContent.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +19 -2
- package/lib/renderers/Table/index.js +172 -57
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Tabs.js +9 -1
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/WebComponent.js +1 -1
- package/lib/renderers/WebComponent.js.map +2 -2
- package/lib/store/combo.d.ts +2 -16
- package/lib/store/crud.js +3 -7
- package/lib/store/crud.js.map +2 -2
- package/lib/store/form.d.ts +1 -1
- package/lib/store/form.js +5 -6
- package/lib/store/form.js.map +2 -2
- package/lib/store/service.js +5 -4
- package/lib/store/service.js.map +2 -2
- package/lib/store/table.d.ts +260 -3
- package/lib/store/table.js +69 -11
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +888 -238
- package/lib/themes/ang.css +888 -238
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +888 -238
- package/lib/themes/antd.css +888 -238
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1446 -457
- package/lib/themes/cxd.css +1446 -457
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +888 -238
- package/lib/themes/dark.css +888 -238
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +1446 -457
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +37 -0
- package/lib/types.js +0 -5
- package/lib/types.js.map +2 -2
- package/lib/utils/api.d.ts +3 -2
- package/lib/utils/api.js +31 -15
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/dom.d.ts +4 -0
- package/lib/utils/dom.js +11 -1
- package/lib/utils/dom.js.map +2 -2
- package/lib/utils/handleAction.d.ts +7 -0
- package/lib/utils/handleAction.js +30 -0
- package/lib/utils/handleAction.js.map +13 -0
- package/lib/utils/helper.d.ts +3 -1
- package/lib/utils/helper.js +14 -5
- package/lib/utils/helper.js.map +2 -2
- package/lib/utils/icon.js +3 -0
- package/lib/utils/icon.js.map +2 -2
- package/lib/utils/tpl-builtin.d.ts +1 -1
- package/lib/utils/tpl-builtin.js +25 -15
- package/lib/utils/tpl-builtin.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +3341 -998
- package/scss/_mixins.scss +1 -3
- package/scss/_properties.scss +63 -4
- package/scss/_utilities.scss +4 -0
- package/scss/base/_common.scss +3 -0
- package/scss/base/_normalize.scss +2 -0
- package/scss/components/_anchor-nav.scss +88 -29
- package/scss/components/_button.scss +4 -5
- package/scss/components/_card.scss +8 -14
- package/scss/components/_collapse.scss +41 -8
- package/scss/components/_column-toggler.scss +234 -0
- package/scss/components/_dropdown.scss +2 -1
- package/scss/components/_images.scss +2 -1
- package/scss/components/_input-box.scss +1 -0
- package/scss/components/_link.scss +6 -0
- package/scss/components/_mapping.scss +6 -0
- package/scss/components/_nav.scss +231 -223
- package/scss/components/_page.scss +5 -4
- package/scss/components/_picker-columns.scss +124 -0
- package/scss/components/_popover.scss +13 -0
- package/scss/components/_portlet.scss +51 -0
- package/scss/components/_progress.scss +2 -0
- package/scss/components/_result-box.scss +1 -0
- package/scss/components/_status.scss +1 -1
- package/scss/components/_steps.scss +1 -1
- package/scss/components/_table.scss +51 -1
- package/scss/components/form/_checks.scss +0 -351
- package/scss/components/form/_color.scss +1 -0
- package/scss/components/form/_date-range.scss +2 -0
- package/scss/components/form/_date.scss +2 -0
- package/scss/components/form/_fieldset.scss +6 -3
- package/scss/components/form/_file.scss +16 -4
- package/scss/components/form/_form.scss +48 -0
- package/scss/components/form/_image.scss +7 -2
- package/scss/components/form/_list.scss +1 -0
- package/scss/components/form/_location.scss +1 -1
- package/scss/components/form/_selection.scss +354 -0
- package/scss/components/form/_text.scss +13 -0
- package/scss/components/form/_textarea.scss +10 -0
- package/scss/components/form/_transfer.scss +77 -18
- package/scss/themes/_common.scss +7 -0
- package/scss/themes/_cxd-colors.scss +56 -0
- package/scss/themes/_cxd-variables.scss +217 -89
- package/scss/themes/cxd.scss +370 -0
- package/sdk/ang-ie11.css +1117 -392
- package/sdk/ang.css +1110 -342
- package/sdk/antd-ie11.css +1105 -380
- package/sdk/antd.css +1110 -342
- package/sdk/charts.js +13 -13
- package/sdk/color-picker.js +65 -69
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +2086 -1062
- package/sdk/cxd.css +1643 -495
- package/sdk/dark-ie11.css +1117 -392
- package/sdk/dark.css +1110 -342
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/iconfont.svg +2513 -0
- package/sdk/iconfont.ttf +0 -0
- package/sdk/iconfont.woff +0 -0
- package/sdk/ie11-patch.css +1 -0
- package/sdk/locale/de-DE.js +4 -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 +20 -28
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +2086 -1062
- package/sdk/sdk.css +1643 -495
- package/sdk/sdk.js +1219 -1165
- 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/Schema.ts +32 -0
- package/src/components/Alert.tsx +3 -1
- package/src/components/AnchorNav.tsx +15 -4
- package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
- package/src/components/Badge.tsx +38 -26
- package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
- package/src/components/Collapse.tsx +14 -9
- package/src/components/DatePicker.tsx +1 -1
- package/src/components/DateRangePicker.tsx +23 -11
- package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
- package/src/components/InputBox.tsx +11 -10
- package/src/components/Link.tsx +85 -0
- package/src/components/ModalManager.ts +1 -1
- package/src/components/MonthRangePicker.tsx +10 -2
- package/src/components/PickerColumn.tsx +429 -0
- package/src/components/PickerContainer.tsx +128 -0
- package/src/components/Radios.tsx +3 -8
- package/src/components/ResultBox.tsx +9 -9
- package/src/components/RichText.tsx +17 -57
- package/src/components/SearchBox.tsx +4 -5
- package/src/components/Select.tsx +60 -5
- package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
- package/src/components/SparkLine.tsx +4 -1
- package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
- package/src/components/TabsTransfer.tsx +13 -7
- package/src/components/TabsTransferPicker.tsx +85 -0
- package/src/components/Toast.tsx +5 -5
- package/src/components/Transfer.tsx +71 -50
- package/src/components/TransferDropDown.tsx +120 -0
- package/src/components/TransferPicker.tsx +91 -0
- package/src/components/Tree.tsx +6 -8
- package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
- package/src/components/WithRemoteConfig.tsx +7 -2
- package/src/components/condition-builder/Field.tsx +5 -5
- package/src/components/condition-builder/Func.tsx +3 -3
- package/src/components/condition-builder/InputSwitch.tsx +3 -3
- package/src/components/condition-builder/Item.tsx +5 -12
- package/src/components/icons.tsx +15 -0
- package/src/components/index.tsx +13 -13
- package/src/envOverwrite.ts +0 -1
- package/src/factory.tsx +18 -3
- package/src/hooks/index.ts +5 -0
- package/src/hooks/use-set-state.ts +19 -0
- package/src/hooks/use-touch.ts +100 -0
- package/src/hooks/use-update-effect.ts +16 -0
- package/src/icons/clock.svg +1 -0
- package/src/icons/download.svg +4 -0
- package/src/icons/status-close.svg +10 -0
- package/src/icons/status-fail.svg +10 -0
- package/src/icons/status-info.svg +8 -0
- package/src/icons/status-success.svg +10 -0
- package/src/icons/status-warning.svg +8 -0
- package/src/index.tsx +3 -0
- package/src/locale/de-DE.ts +4 -0
- package/src/locale/en-US.ts +5 -0
- package/src/locale/zh-CN.ts +8 -3
- package/src/renderers/Action.tsx +33 -2
- package/src/renderers/AnchorNav.tsx +4 -0
- package/src/renderers/Avatar.tsx +8 -4
- package/src/renderers/Breadcrumb.tsx +5 -1
- package/src/renderers/CRUD.tsx +63 -28
- package/src/renderers/Card.tsx +63 -34
- package/src/renderers/Chart.tsx +6 -2
- package/src/renderers/Collapse.tsx +4 -2
- package/src/renderers/Dialog.tsx +0 -4
- package/src/renderers/Drawer.tsx +0 -4
- package/src/renderers/DropDownButton.tsx +18 -13
- package/src/renderers/Form/Checkbox.tsx +8 -0
- package/src/renderers/Form/Combo.tsx +2 -3
- package/src/renderers/Form/InputCity.tsx +4 -8
- package/src/renderers/Form/InputFile.tsx +66 -24
- package/src/renderers/Form/InputImage.tsx +16 -5
- package/src/renderers/Form/Item.tsx +3 -2
- package/src/renderers/Form/Options.tsx +32 -7
- package/src/renderers/Form/Picker.tsx +3 -2
- package/src/renderers/Form/Select.tsx +162 -21
- package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
- package/src/renderers/Form/Transfer.tsx +19 -4
- package/src/renderers/Form/TransferPicker.tsx +145 -0
- package/src/renderers/Form/TreeSelect.tsx +25 -0
- package/src/renderers/Form/index.tsx +15 -2
- package/src/renderers/Form/wrapControl.tsx +28 -3
- package/src/renderers/IFrame.tsx +4 -5
- package/src/renderers/Image.tsx +10 -0
- package/src/renderers/Json.tsx +9 -9
- package/src/renderers/Link.tsx +53 -14
- package/src/renderers/List.tsx +1 -1
- package/src/renderers/Log.tsx +16 -3
- package/src/renderers/Mapping.tsx +27 -11
- package/src/renderers/Nav.tsx +325 -122
- package/src/renderers/Portlet.tsx +423 -0
- package/src/renderers/Property.tsx +3 -2
- package/src/renderers/SearchBox.tsx +23 -4
- package/src/renderers/SparkLine.tsx +5 -0
- package/src/renderers/Table/ColumnToggler.tsx +544 -0
- package/src/renderers/Table/ItemActionsWrapper.tsx +44 -0
- package/src/renderers/Table/TableCell.tsx +16 -1
- package/src/renderers/Table/TableContent.tsx +40 -2
- package/src/renderers/Table/index.tsx +257 -80
- package/src/renderers/Tabs.tsx +9 -1
- package/src/renderers/WebComponent.tsx +2 -2
- package/src/store/crud.ts +3 -8
- package/src/store/form.ts +5 -10
- package/src/store/service.ts +5 -4
- package/src/store/table.ts +103 -11
- package/src/types.ts +57 -0
- package/src/utils/api.ts +52 -23
- package/src/utils/dom.tsx +12 -0
- package/src/utils/handleAction.ts +41 -0
- package/src/utils/helper.ts +12 -4
- package/src/utils/icon.tsx +4 -0
- package/src/utils/tpl-builtin.ts +48 -17
- package/dump.rdb +0 -0
- package/lib/components/AssociatedCheckboxes.d.ts +0 -762
- package/lib/components/AssociatedCheckboxes.js +0 -90
- package/lib/components/AssociatedCheckboxes.js.map +0 -13
- package/lib/components/ChainedCheckboxes.js.map +0 -13
- package/lib/components/Checkboxes.js +0 -101
- package/lib/components/Checkboxes.js.map +0 -13
- package/lib/components/ListCheckboxes.d.ts +0 -739
- package/lib/components/ListCheckboxes.js +0 -48
- package/lib/components/ListCheckboxes.js.map +0 -13
- package/lib/components/ListRadios.d.ts +0 -763
- package/lib/components/ListRadios.js +0 -86
- package/lib/components/ListRadios.js.map +0 -13
- package/lib/components/TableCheckboxes.js.map +0 -13
- package/lib/components/TreeCheckboxes.js.map +0 -13
- package/lib/components/TreeRadios.d.ts +0 -838
- package/lib/components/TreeRadios.js +0 -116
- package/lib/components/TreeRadios.js.map +0 -13
- package/sdk.zip +0 -0
- package/src/components/ListRadios.tsx +0 -159
- package/src/components/TreeRadios.tsx +0 -202
package/lib/utils/helper.js.map
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/utils/helper.ts"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import isPlainObject from 'lodash/isPlainObject';\nimport isEqual from 'lodash/isEqual';\nimport isNaN from 'lodash/isNaN';\nimport uniq from 'lodash/uniq';\nimport last from 'lodash/last';\nimport {Schema, PlainObject, FunctionPropertyNames} from '../types';\nimport {evalExpression} from './tpl';\nimport qs from 'qs';\nimport {IIRendererStore} from '../store';\nimport {IFormStore} from '../store/form';\nimport {autobindMethod} from './autobind';\nimport {\n isPureVariable,\n resolveVariable,\n resolveVariableAndFilter\n} from './tpl-builtin';\nimport {isObservable} from 'mobx';\n\n// 方便取值的时候能够把上层的取到,但是获取的时候不会全部把所有的数据获取到。\nexport function createObject(\n superProps?: {[propName: string]: any},\n props?: {[propName: string]: any},\n properties?: any\n): object {\n if (superProps && Object.isFrozen(superProps)) {\n superProps = cloneObject(superProps);\n }\n\n const obj = superProps\n ? Object.create(superProps, {\n ...properties,\n __super: {\n value: superProps,\n writable: false,\n enumerable: false\n }\n })\n : Object.create(Object.prototype, properties);\n\n props &&\n isObject(props) &&\n Object.keys(props).forEach(key => (obj[key] = props[key]));\n\n return obj;\n}\n\nexport function cloneObject(target: any, persistOwnProps: boolean = true) {\n const obj =\n target && target.__super\n ? Object.create(target.__super, {\n __super: {\n value: target.__super,\n writable: false,\n enumerable: false\n }\n })\n : Object.create(Object.prototype);\n persistOwnProps &&\n target &&\n Object.keys(target).forEach(key => (obj[key] = target[key]));\n return obj;\n}\n\n/**\n * 给目标对象添加其他属性,可读取但是不会被遍历。\n * @param target\n * @param props\n */\nexport function injectPropsToObject(target: any, props: any) {\n const sup = Object.create(target.__super || null);\n Object.keys(props).forEach(key => (sup[key] = props[key]));\n const result = Object.create(sup);\n Object.keys(target).forEach(key => (result[key] = target[key]));\n return result;\n}\n\nexport function extendObject(\n target: any,\n src?: any,\n persistOwnProps: boolean = true\n) {\n const obj = cloneObject(target, persistOwnProps);\n src && Object.keys(src).forEach(key => (obj[key] = src[key]));\n return obj;\n}\n\nexport function syncDataFromSuper(\n data: any,\n superObject: any,\n prevSuperObject: any,\n store: IIRendererStore,\n force: boolean\n) {\n const obj = {\n ...data\n };\n\n let keys: Array<string> = [];\n\n // 如果是 form store,则从父级同步 formItem 种东西。\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(obj))\n );\n } else if (force) {\n keys = Object.keys(obj);\n }\n\n if (superObject || prevSuperObject) {\n keys.forEach(key => {\n if (!key) {\n return;\n }\n\n if (\n ((superObject && typeof superObject[key] !== 'undefined') ||\n (prevSuperObject && typeof prevSuperObject[key] !== 'undefined')) &&\n ((prevSuperObject && !superObject) ||\n (!prevSuperObject && superObject) ||\n prevSuperObject[key] !== superObject[key])\n ) {\n obj[key] = superObject[key];\n }\n });\n }\n\n return obj;\n}\n\n/**\n * 生成 8 位随机数字。\n *\n * @return {string} 8位随机数字\n */\nexport function guid() {\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n return s4() + s4() + s4();\n}\n\nexport function findIndex(\n arr: Array<any>,\n detect: (item?: any, index?: number) => boolean\n) {\n for (let i = 0, len = arr.length; i < len; i++) {\n if (detect(arr[i], i)) {\n return i;\n }\n }\n\n return -1;\n}\n\nexport function getVariable(\n data: {[propName: string]: any},\n key: string | undefined,\n canAccessSuper: boolean = true\n): any {\n if (!data || !key) {\n return undefined;\n } else if (canAccessSuper ? key in data : data.hasOwnProperty(key)) {\n return data[key];\n }\n\n return keyToPath(key).reduce(\n (obj, key) =>\n obj &&\n typeof obj === 'object' &&\n (canAccessSuper ? key in obj : obj.hasOwnProperty(key))\n ? obj[key]\n : undefined,\n data\n );\n}\n\nexport function setVariable(\n data: {[propName: string]: any},\n key: string,\n value: any\n) {\n data = data || {};\n\n if (key in data) {\n data[key] = value;\n return;\n }\n\n const parts = keyToPath(key);\n const last = parts.pop() as string;\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (isPlainObject(data[key])) {\n data = data[key] = {\n ...data[key]\n };\n } else if (Array.isArray(data[key])) {\n data[key] = data[key].concat();\n data = data[key];\n } else if (data[key]) {\n // throw new Error(`目标路径不是纯对象,不能覆盖`);\n // 强行转成对象\n data[key] = {};\n data = data[key];\n } else {\n data[key] = {};\n data = data[key];\n }\n }\n\n data[last] = value;\n}\n\nexport function deleteVariable(data: {[propName: string]: any}, key: string) {\n if (!data) {\n return;\n } else if (data.hasOwnProperty(key)) {\n delete data[key];\n return;\n }\n\n const parts = keyToPath(key);\n const last = parts.pop() as string;\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (isPlainObject(data[key])) {\n data = data[key] = {\n ...data[key]\n };\n } else if (data[key]) {\n throw new Error(`目标路径不是纯对象,不能修改`);\n } else {\n break;\n }\n }\n\n if (data && data.hasOwnProperty && data.hasOwnProperty(last)) {\n delete data[last];\n }\n}\n\nexport function hasOwnProperty(\n data: {[propName: string]: any},\n key: string\n): boolean {\n const parts = keyToPath(key);\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (!isObject(data) || !data.hasOwnProperty(key)) {\n return false;\n }\n\n data = data[key];\n }\n\n return true;\n}\n\nexport function noop() {}\n\nexport function anyChanged(\n attrs: string | Array<string>,\n from: {[propName: string]: any},\n to: {[propName: string]: any},\n strictMode: boolean = true\n): boolean {\n return (typeof attrs === 'string' ? attrs.split(/\\s*,\\s*/) : attrs).some(\n key => (strictMode ? from[key] !== to[key] : from[key] != to[key])\n );\n}\n\nexport function rmUndefined(obj: PlainObject) {\n const newObj: PlainObject = {};\n\n if (typeof obj !== 'object') {\n return obj;\n }\n\n const keys = Object.keys(obj);\n keys.forEach(key => {\n if (obj[key] !== undefined) {\n newObj[key] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function isObjectShallowModified(\n prev: any,\n next: any,\n strictMode: boolean = true,\n ignoreUndefined: boolean = false,\n statck: Array<any> = []\n): boolean {\n if (Array.isArray(prev) && Array.isArray(next)) {\n return prev.length !== next.length\n ? true\n : prev.some((prev, index) =>\n isObjectShallowModified(\n prev,\n next[index],\n strictMode,\n ignoreUndefined,\n statck\n )\n );\n } else if (isNaN(prev) && isNaN(next)) {\n return false;\n } else if (\n null == prev ||\n null == next ||\n !isObject(prev) ||\n !isObject(next) ||\n isObservable(prev) ||\n isObservable(next)\n ) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (ignoreUndefined) {\n prev = rmUndefined(prev);\n next = rmUndefined(next);\n }\n\n const keys = Object.keys(prev);\n const nextKeys = Object.keys(next);\n if (\n keys.length !== nextKeys.length ||\n keys.sort().join(',') !== nextKeys.sort().join(',')\n ) {\n return true;\n }\n\n // 避免循环引用死循环。\n if (~statck.indexOf(prev)) {\n return false;\n }\n statck.push(prev);\n\n for (let i: number = keys.length - 1; i >= 0; i--) {\n let key = keys[i];\n if (\n isObjectShallowModified(\n prev[key],\n next[key],\n strictMode,\n ignoreUndefined,\n statck\n )\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function isArrayChildrenModified(\n prev: Array<any>,\n next: Array<any>,\n strictMode: boolean = true\n) {\n if (!Array.isArray(prev) || !Array.isArray(next)) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (prev.length !== next.length) {\n return true;\n }\n\n for (let i: number = prev.length - 1; i >= 0; i--) {\n if (strictMode ? prev[i] !== next[i] : prev[i] != next[i]) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function immutableExtends(to: any, from: any, deep = false) {\n // 不是对象,不可以merge\n if (!isObject(to) || !isObject(from)) {\n return to;\n }\n\n let ret = to;\n\n Object.keys(from).forEach(key => {\n const origin = to[key];\n const value = from[key];\n\n // todo 支持深度merge\n if (origin !== value) {\n // 一旦有修改,就创建个新对象。\n ret = ret !== to ? ret : {...to};\n ret[key] = value;\n }\n });\n\n return ret;\n}\n\n// 即将抛弃\nexport function makeColumnClassBuild(\n steps: number,\n classNameTpl: string = 'col-sm-$value'\n) {\n let count = 12;\n let step = Math.floor(count / steps);\n\n return function (schema: Schema) {\n if (\n schema.columnClassName &&\n /\\bcol-(?:xs|sm|md|lg)-(\\d+)\\b/.test(schema.columnClassName)\n ) {\n const flex = parseInt(RegExp.$1, 10);\n count -= flex;\n steps--;\n step = Math.floor(count / steps);\n return schema.columnClassName;\n } else if (schema.columnClassName) {\n count -= step;\n steps--;\n return schema.columnClassName;\n }\n\n count -= step;\n steps--;\n return classNameTpl.replace('$value', '' + step);\n };\n}\n\nexport function hasVisibleExpression(schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n}) {\n return schema?.visibleOn || schema?.hiddenOn;\n}\n\nexport function isVisible(\n schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n },\n data?: object\n) {\n return !(\n schema.hidden ||\n schema.visible === false ||\n (schema.hiddenOn && evalExpression(schema.hiddenOn, data) === true) ||\n (schema.visibleOn && evalExpression(schema.visibleOn, data) === false)\n );\n}\n\nexport function isUnfolded(\n node: any,\n config: {\n foldedField?: string;\n unfoldedField?: string;\n }\n): boolean {\n let {foldedField, unfoldedField} = config;\n\n unfoldedField = unfoldedField || 'unfolded';\n foldedField = foldedField || 'folded';\n\n let ret: boolean = false;\n if (unfoldedField && typeof node[unfoldedField] !== 'undefined') {\n ret = !!node[unfoldedField];\n } else if (foldedField && typeof node[foldedField] !== 'undefined') {\n ret = !node[foldedField];\n }\n\n return ret;\n}\n\n/**\n * 过滤掉被隐藏的数组元素\n */\nexport function visibilityFilter(items: any, data?: object) {\n return items.filter((item: any) => {\n return isVisible(item, data);\n });\n}\n\nexport function isDisabled(\n schema: {\n disabledOn?: string;\n disabled?: boolean;\n },\n data?: object\n) {\n return (\n schema.disabled ||\n (schema.disabledOn && evalExpression(schema.disabledOn, data))\n );\n}\n\n\nexport function hasAbility(\n schema: any,\n ability: string,\n data?: object,\n defaultValue: boolean = true\n): boolean {\n return schema.hasOwnProperty(ability)\n ? schema[ability]\n : schema.hasOwnProperty(`${ability}On`)\n ? evalExpression(schema[`${ability}On`], data || schema)\n : defaultValue;\n}\n\nexport function makeHorizontalDeeper(\n horizontal: {\n left: string;\n right: string;\n offset: string;\n leftFixed?: any;\n },\n count: number\n): {\n left: string | number;\n right: string | number;\n offset: string | number;\n leftFixed?: any;\n} {\n if (count > 1 && /\\bcol-(xs|sm|md|lg)-(\\d+)\\b/.test(horizontal.left)) {\n const flex = parseInt(RegExp.$2, 10) * count;\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n } else if (count > 1 && typeof horizontal.left === 'number') {\n const flex = horizontal.left * count;\n\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n }\n\n return horizontal;\n}\n\nexport function promisify<T extends Function>(\n fn: T\n): (...args: Array<any>) => Promise<any> & {\n raw: T;\n} {\n let promisified = function () {\n try {\n const ret = fn.apply(null, arguments);\n if (ret && ret.then) {\n return ret;\n } else if (typeof ret === 'function') {\n // thunk support\n return new Promise((resolve, reject) =>\n ret((error: boolean, value: any) =>\n error ? reject(error) : resolve(value)\n )\n );\n }\n return Promise.resolve(ret);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n (promisified as any).raw = fn;\n return promisified;\n}\n\nexport function getScrollParent(node: HTMLElement): HTMLElement | null {\n if (node == null) {\n return null;\n }\n\n const style = getComputedStyle(node);\n\n if (!style) {\n return null;\n }\n\n const text =\n style.getPropertyValue('overflow') +\n style.getPropertyValue('overflow-x') +\n style.getPropertyValue('overflow-y');\n\n if (/auto|scroll/.test(text) || node.nodeName === 'BODY') {\n return node;\n }\n\n return getScrollParent(node.parentNode as HTMLElement);\n}\n\n/**\n * Deep diff between two object, using lodash\n * @param {Object} object Object compared\n * @param {Object} base Object to compare with\n * @return {Object} Return a new object who represent the diff\n */\nexport function difference<\n T extends {[propName: string]: any},\n U extends {[propName: string]: any}\n>(object: T, base: U, keepProps?: Array<string>): {[propName: string]: any} {\n function changes(object: T, base: U) {\n if (isObject(object) && isObject(base)) {\n const keys: Array<keyof T & keyof U> = uniq(\n Object.keys(object).concat(Object.keys(base))\n );\n let result: any = {};\n\n keys.forEach(key => {\n const a: any = object[key as keyof T];\n const b: any = base[key as keyof U];\n\n if (keepProps && ~keepProps.indexOf(key as string)) {\n result[key] = a;\n }\n\n if (isEqual(a, b)) {\n return;\n }\n\n if (!object.hasOwnProperty(key)) {\n result[key] = undefined;\n } else if (Array.isArray(a) && Array.isArray(b)) {\n result[key] = a;\n } else {\n result[key] = changes(a as any, b as any);\n }\n });\n\n return result;\n } else {\n return object;\n }\n }\n return changes(object, base);\n}\n\nexport const padArr = (arr: Array<any>, size = 4): Array<Array<any>> => {\n const ret: Array<Array<any>> = [];\n const pool: Array<any> = arr.concat();\n let from = 0;\n\n while (pool.length) {\n let host: Array<any> = ret[from] || (ret[from] = []);\n\n if (host.length >= size) {\n from += 1;\n continue;\n }\n\n host.push(pool.shift());\n }\n\n return ret;\n};\n\nexport function __uri(id: string) {\n return id;\n}\n\nexport function isObject(obj: any) {\n const typename = typeof obj;\n return (\n obj &&\n typename !== 'string' &&\n typename !== 'number' &&\n typename !== 'boolean' &&\n typename !== 'function' &&\n !Array.isArray(obj)\n );\n}\n\n// xs < 768px\n// sm >= 768px\n// md >= 992px\n// lg >= 1200px\nexport function isBreakpoint(str: string): boolean {\n if (typeof str !== 'string') {\n return !!str;\n }\n\n const breaks = str.split(/\\s*,\\s*|\\s+/);\n\n if ((window as any).matchMedia) {\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' &&\n matchMedia(`screen and (max-width: 767px)`).matches) ||\n (item === 'sm' &&\n matchMedia(`screen and (min-width: 768px) and (max-width: 991px)`)\n .matches) ||\n (item === 'md' &&\n matchMedia(`screen and (min-width: 992px) and (max-width: 1199px)`)\n .matches) ||\n (item === 'lg' && matchMedia(`screen and (min-width: 1200px)`).matches)\n );\n } else {\n const width = window.innerWidth;\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' && width < 768) ||\n (item === 'sm' && width >= 768 && width < 992) ||\n (item === 'md' && width >= 992 && width < 1200) ||\n (item === 'lg' && width >= 1200)\n );\n }\n}\n\nexport function until(\n fn: () => Promise<any>,\n when: (ret: any) => boolean,\n getCanceler: (fn: () => any) => void,\n interval: number = 5000\n) {\n let timer: ReturnType<typeof setTimeout>;\n let stoped: boolean = false;\n\n return new Promise((resolve, reject) => {\n let cancel = () => {\n clearTimeout(timer);\n stoped = true;\n };\n\n let check = async () => {\n try {\n const ret = await fn();\n\n if (stoped) {\n return;\n } else if (when(ret)) {\n stoped = true;\n resolve(ret);\n } else {\n timer = setTimeout(check, interval);\n }\n } catch (e) {\n reject(e);\n }\n };\n\n check();\n getCanceler && getCanceler(cancel);\n });\n}\n\nexport function omitControls(\n controls: Array<any>,\n omitItems: Array<string>\n): Array<any> {\n return controls.filter(\n control => !~omitItems.indexOf(control.name || control._name)\n );\n}\n\nexport function isEmpty(thing: any) {\n if (isObject(thing) && Object.keys(thing).length) {\n return false;\n }\n\n return true;\n}\n\n/**\n * 基于时间戳的 uuid\n *\n * @returns uniqueId\n */\nexport const uuid = () => {\n return (+new Date()).toString(36);\n};\n\n// 参考 https://github.com/streamich/v4-uuid\nconst str = () =>\n (\n '00000000000000000' + (Math.random() * 0xffffffffffffffff).toString(16)\n ).slice(-16);\n\nexport const uuidv4 = () => {\n const a = str();\n const b = str();\n return (\n a.slice(0, 8) +\n '-' +\n a.slice(8, 12) +\n '-4' +\n a.slice(13) +\n '-a' +\n b.slice(1, 4) +\n '-' +\n b.slice(4)\n );\n};\n\nexport interface TreeItem {\n children?: TreeArray;\n [propName: string]: any;\n}\nexport interface TreeArray extends Array<TreeItem> {}\n\n/**\n * 类似于 arr.map 方法,此方法主要针对类似下面示例的树形结构。\n * [\n * {\n * children: []\n * },\n * // 其他成员\n * ]\n *\n * @param {Tree} tree 树形数据\n * @param {Function} iterator 处理函数,返回的数据会被替换成新的。\n * @return {Tree} 返回处理过的 tree\n */\nexport function mapTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => T,\n level: number = 1,\n depthFirst: boolean = false,\n paths: Array<T> = []\n) {\n return tree.map((item: any, index) => {\n if (depthFirst) {\n let children: TreeArray | undefined = item.children\n ? mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n )\n : undefined;\n children && (item = {...item, children: children});\n item = iterator(item, index, level, paths) || {...(item as object)};\n return item;\n }\n\n item = iterator(item, index, level, paths) || {...(item as object)};\n\n if (item.children && item.children.splice) {\n item.children = mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n );\n }\n\n return item;\n });\n}\n\n/**\n * 遍历树\n * @param tree\n * @param iterator\n */\nexport function eachTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1\n) {\n tree.map((item, index) => {\n iterator(item, index, level);\n\n if (item.children && item.children.splice) {\n eachTree(item.children, iterator, level + 1);\n }\n });\n}\n\n/**\n * 在树中查找节点。\n * @param tree\n * @param iterator\n */\nexport function findTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): T | null {\n let result: T | null = null;\n\n everyTree(tree, (item, key, level, paths) => {\n if (iterator(item, key, level, paths)) {\n result = item;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 在树中查找节点, 返回下标数组。\n * @param tree\n * @param iterator\n */\nexport function findTreeIndex<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): Array<number> | undefined {\n let idx: Array<number> = [];\n\n findTree(tree, (item, index, level, paths) => {\n if (iterator(item, index, level, paths)) {\n idx = [index];\n\n paths = paths.concat();\n paths.unshift({\n children: tree\n } as any);\n\n for (let i = paths.length - 1; i > 0; i--) {\n const prev = paths[i - 1];\n const current = paths[i];\n idx.unshift(prev.children!.indexOf(current));\n }\n\n return true;\n }\n return false;\n });\n\n return idx.length ? idx : undefined;\n}\n\nexport function getTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number\n): T | undefined | null {\n const indexes = Array.isArray(idx) ? idx.concat() : [idx];\n const lastIndex = indexes.pop()!;\n let list: Array<T> | null = tree;\n for (let i = 0, len = indexes.length; i < len; i++) {\n const index = indexes[i];\n if (!list![index]) {\n list = null;\n break;\n }\n list = list![index].children as any;\n }\n return list ? list[lastIndex] : undefined;\n}\n\n/**\n * 过滤树节点\n *\n * @param tree\n * @param iterator\n */\nexport function filterTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1,\n depthFirst: boolean = false\n) {\n if (depthFirst) {\n return tree\n .map(item => {\n let children: TreeArray | undefined = item.children\n ? filterTree(item.children, iterator, level + 1, depthFirst)\n : undefined;\n\n if (\n Array.isArray(children) &&\n Array.isArray(item.children) &&\n children.length !== item.children.length\n ) {\n item = {...item, children: children};\n }\n\n return item;\n })\n .filter((item, index) => iterator(item, index, level));\n }\n\n return tree\n .filter((item, index) => iterator(item, index, level))\n .map(item => {\n if (item.children && item.children.splice) {\n let children = filterTree(\n item.children,\n iterator,\n level + 1,\n depthFirst\n );\n\n if (\n Array.isArray(children) &&\n Array.isArray(item.children) &&\n children.length !== item.children.length\n ) {\n item = {...item, children: children};\n }\n }\n return item;\n });\n}\n\n/**\n * 判断树中每个节点是否满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function everyTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (\n item: T,\n key: number,\n level: number,\n paths: Array<T>,\n indexes: Array<number>\n ) => boolean,\n level: number = 1,\n paths: Array<T> = [],\n indexes: Array<number> = []\n): boolean {\n return tree.every((item, index) => {\n const value: any = iterator(item, index, level, paths, indexes);\n\n if (value && item.children && item.children.splice) {\n return everyTree(\n item.children,\n iterator,\n level + 1,\n paths.concat(item),\n indexes.concat(index)\n );\n }\n\n return value;\n });\n}\n\n/**\n * 判断树中是否有某些节点满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function someTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => boolean\n): boolean {\n let result = false;\n\n everyTree(tree, (item: T, key: number, level: number, paths: Array<T>) => {\n if (iterator(item, key, level, paths)) {\n result = true;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 将树打平变成一维数组,可以传入第二个参数实现打平节点中的其他属性。\n *\n * 比如:\n *\n * flattenTree([\n * {\n * id: 1,\n * children: [\n * { id: 2 },\n * { id: 3 },\n * ]\n * }\n * ], item => item.id); // 输出位 [1, 2, 3]\n *\n * @param tree\n * @param mapper\n */\nexport function flattenTree<T extends TreeItem>(tree: Array<T>): Array<T>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper: (value: T, index: number) => U\n): Array<U>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper?: (value: T, index: number) => U\n): Array<U> {\n let flattened: Array<any> = [];\n eachTree(tree, (item, index) =>\n flattened.push(mapper ? mapper(item, index) : item)\n );\n return flattened;\n}\n\n/**\n * 操作树,遵循 imutable, 每次返回一个新的树。\n * 类似数组的 splice 不同的地方这个方法不修改原始数据,\n * 同时第二个参数不是下标,而是下标数组,分别代表每一层的下标。\n *\n * 至于如何获取下标数组,请查看 findTreeIndex\n *\n * @param tree\n * @param idx\n * @param deleteCount\n * @param ...items\n */\nexport function spliceTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number,\n deleteCount: number = 0,\n ...items: Array<T>\n): Array<T> {\n const list = tree.concat();\n if (typeof idx === 'number') {\n list.splice(idx, deleteCount, ...items);\n } else if (Array.isArray(idx) && idx.length) {\n idx = idx.concat();\n const lastIdx = idx.pop()!;\n let host = idx.reduce((list: Array<T>, idx) => {\n const child = {\n ...list[idx],\n children: list[idx].children ? list[idx].children!.concat() : []\n };\n list[idx] = child;\n return child.children;\n }, list);\n host.splice(lastIdx, deleteCount, ...items);\n }\n\n return list;\n}\n\n/**\n * 计算树的深度\n * @param tree\n */\nexport function getTreeDepth<T extends TreeItem>(tree: Array<T>): number {\n return Math.max(\n ...tree.map(item => {\n if (Array.isArray(item.children)) {\n return 1 + getTreeDepth(item.children);\n }\n\n return 1;\n })\n );\n}\n\n/**\n * 从树中获取某个值的所有祖先\n * @param tree\n * @param value\n */\nexport function getTreeAncestors<T extends TreeItem>(\n tree: Array<T>,\n value: T,\n includeSelf = false\n): Array<T> | null {\n let ancestors: Array<T> | null = null;\n\n findTree(tree, (item, index, level, paths) => {\n if (item === value) {\n ancestors = paths;\n if (includeSelf) {\n ancestors.push(item);\n }\n return true;\n }\n return false;\n });\n\n return ancestors;\n}\n\n/**\n * 从树中获取某个值的上级\n * @param tree\n * @param value\n */\nexport function getTreeParent<T extends TreeItem>(tree: Array<T>, value: T) {\n const ancestors = getTreeAncestors(tree, value);\n return ancestors?.length ? ancestors[ancestors.length - 1] : null;\n}\n\nexport function ucFirst(str?: string) {\n return typeof str === 'string'\n ? str.substring(0, 1).toUpperCase() + str.substring(1)\n : str;\n}\n\nexport function lcFirst(str?: string) {\n return str ? str.substring(0, 1).toLowerCase() + str.substring(1) : '';\n}\n\nexport function camel(str?: string) {\n return str\n ? str\n .split(/[\\s_\\-]/)\n .map((item, index) => (index === 0 ? lcFirst(item) : ucFirst(item)))\n .join('')\n : '';\n}\n\nexport function getWidthRate(value: any, strictMode = false): number {\n if (typeof value === 'string' && /\\bcol\\-\\w+\\-(\\d+)\\b/.test(value)) {\n return parseInt(RegExp.$1, 10);\n }\n\n return strictMode ? 0 : value || 0;\n}\n\nexport function getLevelFromClassName(\n value: string,\n defaultValue: string = 'default'\n) {\n if (\n /\\b(?:btn|text)-(link|primary|secondary|info|success|warning|danger|light|dark)\\b/.test(\n value\n )\n ) {\n return RegExp.$1;\n }\n\n return defaultValue;\n}\n\nexport function string2regExp(value: string, caseSensitive = false) {\n if (typeof value !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n return new RegExp(\n value.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d'),\n !caseSensitive ? 'i' : ''\n );\n}\n\nexport function pickEventsProps(props: any) {\n const ret: any = {};\n props &&\n Object.keys(props).forEach(\n key => /^on/.test(key) && (ret[key] = props[key])\n );\n return ret;\n}\n\nexport const autobind = autobindMethod;\n\nexport const bulkBindFunctions = function <\n T extends {\n [propName: string]: any;\n }\n>(context: T, funNames: Array<FunctionPropertyNames<T>>) {\n funNames.forEach(key => (context[key] = context[key].bind(context)));\n};\n\nexport function sortArray<T extends any>(\n items: Array<T>,\n field: string,\n dir: -1 | 1\n): Array<T> {\n return items.sort((a: any, b: any) => {\n let ret: number;\n const a1 = a[field];\n const b1 = b[field];\n\n if (typeof a1 === 'number' && typeof b1 === 'number') {\n ret = a1 < b1 ? -1 : a1 === b1 ? 0 : 1;\n } else {\n ret = String(a1).localeCompare(String(b1));\n }\n\n return ret * dir;\n });\n}\n\n// 只判断一层, 如果层级很深,form-data 也不好表达。\nexport function hasFile(object: any): boolean {\n return Object.keys(object).some(key => {\n let value = object[key];\n\n return (\n value instanceof File ||\n (Array.isArray(value) && value.length && value[0] instanceof File)\n );\n });\n}\n\nexport function qsstringify(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n keepEmptyArray?: boolean\n) {\n // qs会保留空字符串。fix: Combo模式的空数组,无法清空。改为存为空字符串;只转换一层\n keepEmptyArray &&\n Object.keys(data).forEach((key: any) => {\n Array.isArray(data[key]) && !data[key].length && (data[key] = '');\n });\n return qs.stringify(data, options);\n}\n\nexport function qsparse(\n data: string,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true,\n depth: 1000 // 默认是 5, 所以condition-builder只要来个条件组就会导致报错\n }\n) {\n return qs.parse(data, options);\n}\n\nexport function object2formData(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n fd: FormData = new FormData()\n): any {\n let fileObjects: any = [];\n let others: any = {};\n\n Object.keys(data).forEach(key => {\n const value = data[key];\n\n if (value instanceof File) {\n fileObjects.push([key, value]);\n } else if (\n Array.isArray(value) &&\n value.length &&\n value[0] instanceof File\n ) {\n value.forEach(value => fileObjects.push([`${key}[]`, value]));\n } else {\n others[key] = value;\n }\n });\n\n // 因为 key 的格式太多了,偷个懒,用 qs 来处理吧。\n qsstringify(others, options)\n .split('&')\n .forEach(item => {\n let parts = item.split('=');\n // form-data/multipart 是不需要 encode 值的。\n parts[0] && fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fileObjects.forEach((fileObject: any[]) =>\n fd.append(fileObject[0], fileObject[1], fileObject[1].name)\n );\n\n return fd;\n}\n\nexport function chainFunctions(\n ...fns: Array<(...args: Array<any>) => void>\n): (...args: Array<any>) => void {\n return (...args: Array<any>) =>\n fns.reduce(\n (ret: any, fn: any) =>\n ret === false\n ? false\n : typeof fn == 'function'\n ? fn(...args)\n : undefined,\n undefined\n );\n}\n\nexport function chainEvents(props: any, schema: any) {\n const ret: any = {};\n\n Object.keys(props).forEach(key => {\n if (\n key.substr(0, 2) === 'on' &&\n typeof props[key] === 'function' &&\n typeof schema[key] === 'function' &&\n schema[key] !== props[key]\n ) {\n // 表单项里面的 onChange 很特殊,这个不要处理。\n if (props.formStore && key === 'onChange') {\n ret[key] = props[key];\n } else {\n ret[key] = chainFunctions(schema[key], props[key]);\n }\n } else {\n ret[key] = props[key];\n }\n });\n\n return ret;\n}\n\nexport function mapObject(value: any, fn: Function): any {\n if (Array.isArray(value)) {\n return value.map(item => mapObject(item, fn));\n }\n if (isObject(value)) {\n let tmpValue = {...value};\n Object.keys(tmpValue).forEach(key => {\n (tmpValue as PlainObject)[key] = mapObject(\n (tmpValue as PlainObject)[key],\n fn\n );\n });\n return tmpValue;\n }\n return fn(value);\n}\n\nexport function loadScript(src: string) {\n return new Promise<void>((ok, fail) => {\n const script = document.createElement('script');\n script.onerror = reason => fail(reason);\n\n if (~src.indexOf('{{callback}}')) {\n const callbackFn = `loadscriptcallback_${uuid()}`;\n (window as any)[callbackFn] = () => {\n ok();\n delete (window as any)[callbackFn];\n };\n src = src.replace('{{callback}}', callbackFn);\n } else {\n script.onload = () => ok();\n }\n\n script.src = src;\n document.head.appendChild(script);\n });\n}\n\nexport class SkipOperation extends Error {}\n\n/**\n * 将例如像 a.b.c 或 a[1].b 的字符串转换为路径数组\n *\n * @param string 要转换的字符串\n */\nexport const keyToPath = (string: string) => {\n const result = [];\n\n if (string.charCodeAt(0) === '.'.charCodeAt(0)) {\n result.push('');\n }\n\n string.replace(\n new RegExp(\n '[^.[\\\\]]+|\\\\[(?:([^\"\\'][^[]*)|([\"\\'])((?:(?!\\\\2)[^\\\\\\\\]|\\\\\\\\.)*?)\\\\2)\\\\]|(?=(?:\\\\.|\\\\[\\\\])(?:\\\\.|\\\\[\\\\]|$))',\n 'g'\n ),\n (match, expression, quote, subString) => {\n let key = match;\n if (quote) {\n key = subString.replace(/\\\\(\\\\)?/g, '$1');\n } else if (expression) {\n key = expression.trim();\n }\n result.push(key);\n return '';\n }\n );\n\n return result;\n};\n\n/**\n * 检查对象是否有循环引用,来自 https://stackoverflow.com/a/34909127\n * @param obj\n */\nfunction isCyclic(obj: any): boolean {\n const seenObjects: any = [];\n function detect(obj: any) {\n if (obj && typeof obj === 'object') {\n if (seenObjects.indexOf(obj) !== -1) {\n return true;\n }\n seenObjects.push(obj);\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && detect(obj[key])) {\n return true;\n }\n }\n }\n return false;\n }\n return detect(obj);\n}\n\nfunction internalFindObjectsWithKey(obj: any, key: string) {\n let objects: any[] = [];\n for (const k in obj) {\n if (!obj.hasOwnProperty(k)) continue;\n if (k === key) {\n objects.push(obj);\n } else if (typeof obj[k] === 'object') {\n objects = objects.concat(internalFindObjectsWithKey(obj[k], key));\n }\n }\n return objects;\n}\n\n/**\n * 深度查找具有某个 key 名字段的对象,实际实现是 internalFindObjectsWithKey,这里包一层是为了做循环引用检测\n * @param obj\n * @param key\n */\nexport function findObjectsWithKey(obj: any, key: string) {\n // 避免循环引用导致死循环\n if (isCyclic(obj)) {\n return [];\n }\n return internalFindObjectsWithKey(obj, key);\n}\n\nlet scrollbarWidth: number;\n\n/**\n * 获取浏览器滚动条宽度 https://stackoverflow.com/a/13382873\n */\n\nexport function getScrollbarWidth() {\n if (typeof scrollbarWidth !== 'undefined') {\n return scrollbarWidth;\n }\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n // @ts-ignore\n outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n scrollbarWidth = outer.offsetWidth - inner.offsetWidth;\n\n // Removing temporary elements from the DOM\n // @ts-ignore\n outer.parentNode.removeChild(outer);\n\n return scrollbarWidth;\n}\n\nfunction resolveValueByName(data: any, name?: string) {\n return isPureVariable(name)\n ? resolveVariableAndFilter(name, data)\n : resolveVariable(name, data);\n}\n\n// 统一的获取 value 值方法\nexport function getPropValue<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(props: T, getter?: (props: T) => any) {\n const {name, value, data, defaultValue} = props;\n return (\n value ?? getter?.(props) ?? resolveValueByName(data, name) ?? defaultValue\n );\n}\n\n// 检测 value 是否有变化,有变化就执行 onChange\nexport function detectPropValueChanged<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(\n props: T,\n prevProps: T,\n onChange: (value: any) => void,\n getter?: (props: T) => any\n) {\n let nextValue: any;\n if (typeof props.value !== 'undefined') {\n props.value !== prevProps.value && onChange(props.value);\n } else if ((nextValue = getter?.(props)) !== undefined) {\n nextValue !== getter!(prevProps) && onChange(nextValue);\n } else if (\n typeof props.name === 'string' &&\n (nextValue = resolveValueByName(props.data, props.name)) !== undefined\n ) {\n nextValue !== resolveValueByName(prevProps.data, prevProps.name) &&\n onChange(nextValue);\n } else if (props.defaultValue !== prevProps.defaultValue) {\n onChange(props.defaultValue);\n }\n}\n\n// 去掉字符串中的 html 标签,不完全准确但效率比较高\nexport function removeHTMLTag(str: string) {\n return str.replace(/<\\/?[^>]+(>|$)/g, '');\n}\n\n/**\n * 将路径格式的value转换成普通格式的value值\n *\n * @example\n *\n * 'a/b/c' => 'c';\n * {label: 'A/B/C', value: 'a/b/c'} => {label: 'C', value: 'c'};\n * 'a/b/c,a/d' => 'c,d';\n * ['a/b/c', 'a/d'] => ['c', 'd'];\n * [{label: 'A/B/C', value: 'a/b/c'},{label: 'A/D', value: 'a/d'}] => [{label: 'C', value: 'c'},{label: 'D', value: 'd'}]\n */\nexport function normalizeNodePath(\n value: any,\n enableNodePath: boolean,\n labelField: string = 'label',\n valueField: string = 'value',\n pathSeparator: string = '/',\n delimiter: string = ','\n) {\n const nodeValueArray: any[] = [];\n const nodePathArray: any[] = [];\n const getLastNodeFromPath = (path: any) =>\n last(path ? path.toString().split(pathSeparator) : []);\n\n if (typeof value === 'undefined' || !enableNodePath) {\n return {nodeValueArray, nodePathArray};\n }\n\n // 尾节点为当前options中value值\n if (Array.isArray(value)) {\n value.forEach(nodePath => {\n if (nodePath && nodePath.hasOwnProperty(valueField)) {\n nodeValueArray.push({\n ...nodePath,\n [labelField]: getLastNodeFromPath(nodePath[labelField]),\n [valueField]: getLastNodeFromPath(nodePath[valueField])\n });\n nodePathArray.push(nodePath[valueField]);\n } else {\n nodeValueArray.push(getLastNodeFromPath(nodePath));\n nodePathArray.push(nodePath);\n }\n });\n } else if (typeof value === 'string') {\n value\n .toString()\n .split(delimiter)\n .forEach(path => {\n nodeValueArray.push(getLastNodeFromPath(path));\n nodePathArray.push(path);\n });\n } else {\n nodeValueArray.push({\n ...value,\n [labelField]: getLastNodeFromPath(value[labelField]),\n [valueField || 'value']: getLastNodeFromPath(value[valueField])\n });\n nodePathArray.push(value[valueField]);\n }\n\n return {nodeValueArray, nodePathArray};\n}\n\n// 主要用于排除点击输入框和链接等情况\nexport function isClickOnInput(e: React.MouseEvent<HTMLElement>) {\n const target: HTMLElement = e.target as HTMLElement;\n let formItem;\n if (\n !e.currentTarget.contains(target) ||\n ~['INPUT', 'TEXTAREA'].indexOf(target.tagName) ||\n ((formItem = target.closest(`button, a, [data-role=\"form-item\"]`)) &&\n e.currentTarget.contains(formItem))\n ) {\n return true;\n }\n return false;\n}\n"
|
11
|
+
"import isPlainObject from 'lodash/isPlainObject';\nimport isEqual from 'lodash/isEqual';\nimport isNaN from 'lodash/isNaN';\nimport uniq from 'lodash/uniq';\nimport last from 'lodash/last';\nimport {Schema, PlainObject, FunctionPropertyNames} from '../types';\nimport {evalExpression} from './tpl';\nimport qs from 'qs';\nimport {IIRendererStore} from '../store';\nimport {IFormStore} from '../store/form';\nimport {autobindMethod} from './autobind';\nimport {\n isPureVariable,\n resolveVariable,\n resolveVariableAndFilter\n} from './tpl-builtin';\nimport {isObservable} from 'mobx';\n\nexport function isMobile() {\n return (window as any).matchMedia?.('(max-width: 768px)').matches;\n}\n\nexport function range(num: number, min: number, max: number): number {\n return Math.min(Math.max(num, min), max);\n}\n\n// 方便取值的时候能够把上层的取到,但是获取的时候不会全部把所有的数据获取到。\nexport function createObject(\n superProps?: {[propName: string]: any},\n props?: {[propName: string]: any},\n properties?: any\n): object {\n if (superProps && Object.isFrozen(superProps)) {\n superProps = cloneObject(superProps);\n }\n\n const obj = superProps\n ? Object.create(superProps, {\n ...properties,\n __super: {\n value: superProps,\n writable: false,\n enumerable: false\n }\n })\n : Object.create(Object.prototype, properties);\n\n props &&\n isObject(props) &&\n Object.keys(props).forEach(key => (obj[key] = props[key]));\n\n return obj;\n}\n\nexport function cloneObject(target: any, persistOwnProps: boolean = true) {\n const obj =\n target && target.__super\n ? Object.create(target.__super, {\n __super: {\n value: target.__super,\n writable: false,\n enumerable: false\n }\n })\n : Object.create(Object.prototype);\n persistOwnProps &&\n target &&\n Object.keys(target).forEach(key => (obj[key] = target[key]));\n return obj;\n}\n\n/**\n * 给目标对象添加其他属性,可读取但是不会被遍历。\n * @param target\n * @param props\n */\nexport function injectPropsToObject(target: any, props: any) {\n const sup = Object.create(target.__super || null);\n Object.keys(props).forEach(key => (sup[key] = props[key]));\n const result = Object.create(sup);\n Object.keys(target).forEach(key => (result[key] = target[key]));\n return result;\n}\n\nexport function extendObject(\n target: any,\n src?: any,\n persistOwnProps: boolean = true\n) {\n const obj = cloneObject(target, persistOwnProps);\n src && Object.keys(src).forEach(key => (obj[key] = src[key]));\n return obj;\n}\n\nexport function syncDataFromSuper(\n data: any,\n superObject: any,\n prevSuperObject: any,\n store: IIRendererStore,\n force: boolean\n) {\n const obj = {\n ...data\n };\n\n let keys: Array<string> = [];\n\n // 如果是 form store,则从父级同步 formItem 种东西。\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(obj))\n );\n } else if (force) {\n keys = Object.keys(obj);\n }\n\n if (superObject || prevSuperObject) {\n keys.forEach(key => {\n if (!key) {\n return;\n }\n\n if (\n ((superObject && typeof superObject[key] !== 'undefined') ||\n (prevSuperObject && typeof prevSuperObject[key] !== 'undefined')) &&\n ((prevSuperObject && !superObject) ||\n (!prevSuperObject && superObject) ||\n prevSuperObject[key] !== superObject[key])\n ) {\n obj[key] = superObject[key];\n }\n });\n }\n\n return obj;\n}\n\n/**\n * 生成 8 位随机数字。\n *\n * @return {string} 8位随机数字\n */\nexport function guid() {\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n return s4() + s4() + s4();\n}\n\nexport function findIndex(\n arr: Array<any>,\n detect: (item?: any, index?: number) => boolean\n) {\n for (let i = 0, len = arr.length; i < len; i++) {\n if (detect(arr[i], i)) {\n return i;\n }\n }\n\n return -1;\n}\n\nexport function getVariable(\n data: {[propName: string]: any},\n key: string | undefined,\n canAccessSuper: boolean = true\n): any {\n if (!data || !key) {\n return undefined;\n } else if (canAccessSuper ? key in data : data.hasOwnProperty(key)) {\n return data[key];\n }\n\n return keyToPath(key).reduce(\n (obj, key) =>\n obj &&\n typeof obj === 'object' &&\n (canAccessSuper ? key in obj : obj.hasOwnProperty(key))\n ? obj[key]\n : undefined,\n data\n );\n}\n\nexport function setVariable(\n data: {[propName: string]: any},\n key: string,\n value: any,\n convertKeyToPath?: boolean\n) {\n data = data || {};\n\n if (key in data) {\n data[key] = value;\n return;\n }\n\n const parts = convertKeyToPath !== false ? keyToPath(key) : [key];\n const last = parts.pop() as string;\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (isPlainObject(data[key])) {\n data = data[key] = {\n ...data[key]\n };\n } else if (Array.isArray(data[key])) {\n data[key] = data[key].concat();\n data = data[key];\n } else if (data[key]) {\n // throw new Error(`目标路径不是纯对象,不能覆盖`);\n // 强行转成对象\n data[key] = {};\n data = data[key];\n } else {\n data[key] = {};\n data = data[key];\n }\n }\n\n data[last] = value;\n}\n\nexport function deleteVariable(data: {[propName: string]: any}, key: string) {\n if (!data) {\n return;\n } else if (data.hasOwnProperty(key)) {\n delete data[key];\n return;\n }\n\n const parts = keyToPath(key);\n const last = parts.pop() as string;\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (isPlainObject(data[key])) {\n data = data[key] = {\n ...data[key]\n };\n } else if (data[key]) {\n throw new Error(`目标路径不是纯对象,不能修改`);\n } else {\n break;\n }\n }\n\n if (data && data.hasOwnProperty && data.hasOwnProperty(last)) {\n delete data[last];\n }\n}\n\nexport function hasOwnProperty(\n data: {[propName: string]: any},\n key: string\n): boolean {\n const parts = keyToPath(key);\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (!isObject(data) || !data.hasOwnProperty(key)) {\n return false;\n }\n\n data = data[key];\n }\n\n return true;\n}\n\nexport function noop() {}\n\nexport function anyChanged(\n attrs: string | Array<string>,\n from: {[propName: string]: any},\n to: {[propName: string]: any},\n strictMode: boolean = true\n): boolean {\n return (typeof attrs === 'string' ? attrs.split(/\\s*,\\s*/) : attrs).some(\n key => (strictMode ? from[key] !== to[key] : from[key] != to[key])\n );\n}\n\nexport function rmUndefined(obj: PlainObject) {\n const newObj: PlainObject = {};\n\n if (typeof obj !== 'object') {\n return obj;\n }\n\n const keys = Object.keys(obj);\n keys.forEach(key => {\n if (obj[key] !== undefined) {\n newObj[key] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function isObjectShallowModified(\n prev: any,\n next: any,\n strictMode: boolean = true,\n ignoreUndefined: boolean = false,\n statck: Array<any> = []\n): boolean {\n if (Array.isArray(prev) && Array.isArray(next)) {\n return prev.length !== next.length\n ? true\n : prev.some((prev, index) =>\n isObjectShallowModified(\n prev,\n next[index],\n strictMode,\n ignoreUndefined,\n statck\n )\n );\n } else if (isNaN(prev) && isNaN(next)) {\n return false;\n } else if (\n null == prev ||\n null == next ||\n !isObject(prev) ||\n !isObject(next) ||\n isObservable(prev) ||\n isObservable(next)\n ) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (ignoreUndefined) {\n prev = rmUndefined(prev);\n next = rmUndefined(next);\n }\n\n const keys = Object.keys(prev);\n const nextKeys = Object.keys(next);\n if (\n keys.length !== nextKeys.length ||\n keys.sort().join(',') !== nextKeys.sort().join(',')\n ) {\n return true;\n }\n\n // 避免循环引用死循环。\n if (~statck.indexOf(prev)) {\n return false;\n }\n statck.push(prev);\n\n for (let i: number = keys.length - 1; i >= 0; i--) {\n let key = keys[i];\n if (\n isObjectShallowModified(\n prev[key],\n next[key],\n strictMode,\n ignoreUndefined,\n statck\n )\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function isArrayChildrenModified(\n prev: Array<any>,\n next: Array<any>,\n strictMode: boolean = true\n) {\n if (!Array.isArray(prev) || !Array.isArray(next)) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (prev.length !== next.length) {\n return true;\n }\n\n for (let i: number = prev.length - 1; i >= 0; i--) {\n if (strictMode ? prev[i] !== next[i] : prev[i] != next[i]) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function immutableExtends(to: any, from: any, deep = false) {\n // 不是对象,不可以merge\n if (!isObject(to) || !isObject(from)) {\n return to;\n }\n\n let ret = to;\n\n Object.keys(from).forEach(key => {\n const origin = to[key];\n const value = from[key];\n\n // todo 支持深度merge\n if (origin !== value) {\n // 一旦有修改,就创建个新对象。\n ret = ret !== to ? ret : {...to};\n ret[key] = value;\n }\n });\n\n return ret;\n}\n\n// 即将抛弃\nexport function makeColumnClassBuild(\n steps: number,\n classNameTpl: string = 'col-sm-$value'\n) {\n let count = 12;\n let step = Math.floor(count / steps);\n\n return function (schema: Schema) {\n if (\n schema.columnClassName &&\n /\\bcol-(?:xs|sm|md|lg)-(\\d+)\\b/.test(schema.columnClassName)\n ) {\n const flex = parseInt(RegExp.$1, 10);\n count -= flex;\n steps--;\n step = Math.floor(count / steps);\n return schema.columnClassName;\n } else if (schema.columnClassName) {\n count -= step;\n steps--;\n return schema.columnClassName;\n }\n\n count -= step;\n steps--;\n return classNameTpl.replace('$value', '' + step);\n };\n}\n\nexport function hasVisibleExpression(schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n}) {\n return schema?.visibleOn || schema?.hiddenOn;\n}\n\nexport function isVisible(\n schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n },\n data?: object\n) {\n return !(\n schema.hidden ||\n schema.visible === false ||\n (schema.hiddenOn && evalExpression(schema.hiddenOn, data) === true) ||\n (schema.visibleOn && evalExpression(schema.visibleOn, data) === false)\n );\n}\n\nexport function isUnfolded(\n node: any,\n config: {\n foldedField?: string;\n unfoldedField?: string;\n }\n): boolean {\n let {foldedField, unfoldedField} = config;\n\n unfoldedField = unfoldedField || 'unfolded';\n foldedField = foldedField || 'folded';\n\n let ret: boolean = false;\n if (unfoldedField && typeof node[unfoldedField] !== 'undefined') {\n ret = !!node[unfoldedField];\n } else if (foldedField && typeof node[foldedField] !== 'undefined') {\n ret = !node[foldedField];\n }\n\n return ret;\n}\n\n/**\n * 过滤掉被隐藏的数组元素\n */\nexport function visibilityFilter(items: any, data?: object) {\n return items.filter((item: any) => {\n return isVisible(item, data);\n });\n}\n\nexport function isDisabled(\n schema: {\n disabledOn?: string;\n disabled?: boolean;\n },\n data?: object\n) {\n return (\n schema.disabled ||\n (schema.disabledOn && evalExpression(schema.disabledOn, data))\n );\n}\n\nexport function hasAbility(\n schema: any,\n ability: string,\n data?: object,\n defaultValue: boolean = true\n): boolean {\n return schema.hasOwnProperty(ability)\n ? schema[ability]\n : schema.hasOwnProperty(`${ability}On`)\n ? evalExpression(schema[`${ability}On`], data || schema)\n : defaultValue;\n}\n\nexport function makeHorizontalDeeper(\n horizontal: {\n left: string;\n right: string;\n offset: string;\n leftFixed?: any;\n },\n count: number\n): {\n left: string | number;\n right: string | number;\n offset: string | number;\n leftFixed?: any;\n} {\n if (count > 1 && /\\bcol-(xs|sm|md|lg)-(\\d+)\\b/.test(horizontal.left)) {\n const flex = parseInt(RegExp.$2, 10) * count;\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n } else if (count > 1 && typeof horizontal.left === 'number') {\n const flex = horizontal.left * count;\n\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n }\n\n return horizontal;\n}\n\nexport function promisify<T extends Function>(\n fn: T\n): (...args: Array<any>) => Promise<any> & {\n raw: T;\n} {\n let promisified = function () {\n try {\n const ret = fn.apply(null, arguments);\n if (ret && ret.then) {\n return ret;\n } else if (typeof ret === 'function') {\n // thunk support\n return new Promise((resolve, reject) =>\n ret((error: boolean, value: any) =>\n error ? reject(error) : resolve(value)\n )\n );\n }\n return Promise.resolve(ret);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n (promisified as any).raw = fn;\n return promisified;\n}\n\nexport function getScrollParent(node: HTMLElement): HTMLElement | null {\n if (node == null) {\n return null;\n }\n\n const style = getComputedStyle(node);\n\n if (!style) {\n return null;\n }\n\n const text =\n style.getPropertyValue('overflow') +\n style.getPropertyValue('overflow-x') +\n style.getPropertyValue('overflow-y');\n\n if (/auto|scroll/.test(text) || node.nodeName === 'BODY') {\n return node;\n }\n\n return getScrollParent(node.parentNode as HTMLElement);\n}\n\n/**\n * Deep diff between two object, using lodash\n * @param {Object} object Object compared\n * @param {Object} base Object to compare with\n * @return {Object} Return a new object who represent the diff\n */\nexport function difference<\n T extends {[propName: string]: any},\n U extends {[propName: string]: any}\n>(object: T, base: U, keepProps?: Array<string>): {[propName: string]: any} {\n function changes(object: T, base: U) {\n if (isObject(object) && isObject(base)) {\n const keys: Array<keyof T & keyof U> = uniq(\n Object.keys(object).concat(Object.keys(base))\n );\n let result: any = {};\n\n keys.forEach(key => {\n const a: any = object[key as keyof T];\n const b: any = base[key as keyof U];\n\n if (keepProps && ~keepProps.indexOf(key as string)) {\n result[key] = a;\n }\n\n if (isEqual(a, b)) {\n return;\n }\n\n if (!object.hasOwnProperty(key)) {\n result[key] = undefined;\n } else if (Array.isArray(a) && Array.isArray(b)) {\n result[key] = a;\n } else {\n result[key] = changes(a as any, b as any);\n }\n });\n\n return result;\n } else {\n return object;\n }\n }\n return changes(object, base);\n}\n\nexport const padArr = (arr: Array<any>, size = 4): Array<Array<any>> => {\n const ret: Array<Array<any>> = [];\n const pool: Array<any> = arr.concat();\n let from = 0;\n\n while (pool.length) {\n let host: Array<any> = ret[from] || (ret[from] = []);\n\n if (host.length >= size) {\n from += 1;\n continue;\n }\n\n host.push(pool.shift());\n }\n\n return ret;\n};\n\nexport function __uri(id: string) {\n return id;\n}\n\nexport function isObject(obj: any) {\n const typename = typeof obj;\n return (\n obj &&\n typename !== 'string' &&\n typename !== 'number' &&\n typename !== 'boolean' &&\n typename !== 'function' &&\n !Array.isArray(obj)\n );\n}\n\n// xs < 768px\n// sm >= 768px\n// md >= 992px\n// lg >= 1200px\nexport function isBreakpoint(str: string): boolean {\n if (typeof str !== 'string') {\n return !!str;\n }\n\n const breaks = str.split(/\\s*,\\s*|\\s+/);\n\n if ((window as any).matchMedia) {\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' &&\n matchMedia(`screen and (max-width: 767px)`).matches) ||\n (item === 'sm' &&\n matchMedia(`screen and (min-width: 768px) and (max-width: 991px)`)\n .matches) ||\n (item === 'md' &&\n matchMedia(`screen and (min-width: 992px) and (max-width: 1199px)`)\n .matches) ||\n (item === 'lg' && matchMedia(`screen and (min-width: 1200px)`).matches)\n );\n } else {\n const width = window.innerWidth;\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' && width < 768) ||\n (item === 'sm' && width >= 768 && width < 992) ||\n (item === 'md' && width >= 992 && width < 1200) ||\n (item === 'lg' && width >= 1200)\n );\n }\n}\n\nexport function until(\n fn: () => Promise<any>,\n when: (ret: any) => boolean,\n getCanceler: (fn: () => any) => void,\n interval: number = 5000\n) {\n let timer: ReturnType<typeof setTimeout>;\n let stoped: boolean = false;\n\n return new Promise((resolve, reject) => {\n let cancel = () => {\n clearTimeout(timer);\n stoped = true;\n };\n\n let check = async () => {\n try {\n const ret = await fn();\n\n if (stoped) {\n return;\n } else if (when(ret)) {\n stoped = true;\n resolve(ret);\n } else {\n timer = setTimeout(check, interval);\n }\n } catch (e) {\n reject(e);\n }\n };\n\n check();\n getCanceler && getCanceler(cancel);\n });\n}\n\nexport function omitControls(\n controls: Array<any>,\n omitItems: Array<string>\n): Array<any> {\n return controls.filter(\n control => !~omitItems.indexOf(control.name || control._name)\n );\n}\n\nexport function isEmpty(thing: any) {\n if (isObject(thing) && Object.keys(thing).length) {\n return false;\n }\n\n return true;\n}\n\n/**\n * 基于时间戳的 uuid\n *\n * @returns uniqueId\n */\nexport const uuid = () => {\n return (+new Date()).toString(36);\n};\n\n// 参考 https://github.com/streamich/v4-uuid\nconst str = () =>\n (\n '00000000000000000' + (Math.random() * 0xffffffffffffffff).toString(16)\n ).slice(-16);\n\nexport const uuidv4 = () => {\n const a = str();\n const b = str();\n return (\n a.slice(0, 8) +\n '-' +\n a.slice(8, 12) +\n '-4' +\n a.slice(13) +\n '-a' +\n b.slice(1, 4) +\n '-' +\n b.slice(4)\n );\n};\n\nexport interface TreeItem {\n children?: TreeArray;\n [propName: string]: any;\n}\nexport interface TreeArray extends Array<TreeItem> {}\n\n/**\n * 类似于 arr.map 方法,此方法主要针对类似下面示例的树形结构。\n * [\n * {\n * children: []\n * },\n * // 其他成员\n * ]\n *\n * @param {Tree} tree 树形数据\n * @param {Function} iterator 处理函数,返回的数据会被替换成新的。\n * @return {Tree} 返回处理过的 tree\n */\nexport function mapTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => T,\n level: number = 1,\n depthFirst: boolean = false,\n paths: Array<T> = []\n) {\n return tree.map((item: any, index) => {\n if (depthFirst) {\n let children: TreeArray | undefined = item.children\n ? mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n )\n : undefined;\n children && (item = {...item, children: children});\n item = iterator(item, index, level, paths) || {...(item as object)};\n return item;\n }\n\n item = iterator(item, index, level, paths) || {...(item as object)};\n\n if (item.children && item.children.splice) {\n item.children = mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n );\n }\n\n return item;\n });\n}\n\n/**\n * 遍历树\n * @param tree\n * @param iterator\n */\nexport function eachTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1\n) {\n tree.map((item, index) => {\n iterator(item, index, level);\n\n if (item.children && item.children.splice) {\n eachTree(item.children, iterator, level + 1);\n }\n });\n}\n\n/**\n * 在树中查找节点。\n * @param tree\n * @param iterator\n */\nexport function findTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): T | null {\n let result: T | null = null;\n\n everyTree(tree, (item, key, level, paths) => {\n if (iterator(item, key, level, paths)) {\n result = item;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 在树中查找节点, 返回下标数组。\n * @param tree\n * @param iterator\n */\nexport function findTreeIndex<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): Array<number> | undefined {\n let idx: Array<number> = [];\n\n findTree(tree, (item, index, level, paths) => {\n if (iterator(item, index, level, paths)) {\n idx = [index];\n\n paths = paths.concat();\n paths.unshift({\n children: tree\n } as any);\n\n for (let i = paths.length - 1; i > 0; i--) {\n const prev = paths[i - 1];\n const current = paths[i];\n idx.unshift(prev.children!.indexOf(current));\n }\n\n return true;\n }\n return false;\n });\n\n return idx.length ? idx : undefined;\n}\n\nexport function getTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number\n): T | undefined | null {\n const indexes = Array.isArray(idx) ? idx.concat() : [idx];\n const lastIndex = indexes.pop()!;\n let list: Array<T> | null = tree;\n for (let i = 0, len = indexes.length; i < len; i++) {\n const index = indexes[i];\n if (!list![index]) {\n list = null;\n break;\n }\n list = list![index].children as any;\n }\n return list ? list[lastIndex] : undefined;\n}\n\n/**\n * 过滤树节点\n *\n * @param tree\n * @param iterator\n */\nexport function filterTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1,\n depthFirst: boolean = false\n) {\n if (depthFirst) {\n return tree\n .map(item => {\n let children: TreeArray | undefined = item.children\n ? filterTree(item.children, iterator, level + 1, depthFirst)\n : undefined;\n\n if (\n Array.isArray(children) &&\n Array.isArray(item.children) &&\n children.length !== item.children.length\n ) {\n item = {...item, children: children};\n }\n\n return item;\n })\n .filter((item, index) => iterator(item, index, level));\n }\n\n return tree\n .filter((item, index) => iterator(item, index, level))\n .map(item => {\n if (item.children && item.children.splice) {\n let children = filterTree(\n item.children,\n iterator,\n level + 1,\n depthFirst\n );\n\n if (\n Array.isArray(children) &&\n Array.isArray(item.children) &&\n children.length !== item.children.length\n ) {\n item = {...item, children: children};\n }\n }\n return item;\n });\n}\n\n/**\n * 判断树中每个节点是否满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function everyTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (\n item: T,\n key: number,\n level: number,\n paths: Array<T>,\n indexes: Array<number>\n ) => boolean,\n level: number = 1,\n paths: Array<T> = [],\n indexes: Array<number> = []\n): boolean {\n return tree.every((item, index) => {\n const value: any = iterator(item, index, level, paths, indexes);\n\n if (value && item.children && item.children.splice) {\n return everyTree(\n item.children,\n iterator,\n level + 1,\n paths.concat(item),\n indexes.concat(index)\n );\n }\n\n return value;\n });\n}\n\n/**\n * 判断树中是否有某些节点满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function someTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => boolean\n): boolean {\n let result = false;\n\n everyTree(tree, (item: T, key: number, level: number, paths: Array<T>) => {\n if (iterator(item, key, level, paths)) {\n result = true;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 将树打平变成一维数组,可以传入第二个参数实现打平节点中的其他属性。\n *\n * 比如:\n *\n * flattenTree([\n * {\n * id: 1,\n * children: [\n * { id: 2 },\n * { id: 3 },\n * ]\n * }\n * ], item => item.id); // 输出位 [1, 2, 3]\n *\n * @param tree\n * @param mapper\n */\nexport function flattenTree<T extends TreeItem>(tree: Array<T>): Array<T>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper: (value: T, index: number) => U\n): Array<U>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper?: (value: T, index: number) => U\n): Array<U> {\n let flattened: Array<any> = [];\n eachTree(tree, (item, index) =>\n flattened.push(mapper ? mapper(item, index) : item)\n );\n return flattened;\n}\n\n/**\n * 操作树,遵循 imutable, 每次返回一个新的树。\n * 类似数组的 splice 不同的地方这个方法不修改原始数据,\n * 同时第二个参数不是下标,而是下标数组,分别代表每一层的下标。\n *\n * 至于如何获取下标数组,请查看 findTreeIndex\n *\n * @param tree\n * @param idx\n * @param deleteCount\n * @param ...items\n */\nexport function spliceTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number,\n deleteCount: number = 0,\n ...items: Array<T>\n): Array<T> {\n const list = tree.concat();\n if (typeof idx === 'number') {\n list.splice(idx, deleteCount, ...items);\n } else if (Array.isArray(idx) && idx.length) {\n idx = idx.concat();\n const lastIdx = idx.pop()!;\n let host = idx.reduce((list: Array<T>, idx) => {\n const child = {\n ...list[idx],\n children: list[idx].children ? list[idx].children!.concat() : []\n };\n list[idx] = child;\n return child.children;\n }, list);\n host.splice(lastIdx, deleteCount, ...items);\n }\n\n return list;\n}\n\n/**\n * 计算树的深度\n * @param tree\n */\nexport function getTreeDepth<T extends TreeItem>(tree: Array<T>): number {\n return Math.max(\n ...tree.map(item => {\n if (Array.isArray(item.children)) {\n return 1 + getTreeDepth(item.children);\n }\n\n return 1;\n })\n );\n}\n\n/**\n * 从树中获取某个值的所有祖先\n * @param tree\n * @param value\n */\nexport function getTreeAncestors<T extends TreeItem>(\n tree: Array<T>,\n value: T,\n includeSelf = false\n): Array<T> | null {\n let ancestors: Array<T> | null = null;\n\n findTree(tree, (item, index, level, paths) => {\n if (item === value) {\n ancestors = paths;\n if (includeSelf) {\n ancestors.push(item);\n }\n return true;\n }\n return false;\n });\n\n return ancestors;\n}\n\n/**\n * 从树中获取某个值的上级\n * @param tree\n * @param value\n */\nexport function getTreeParent<T extends TreeItem>(tree: Array<T>, value: T) {\n const ancestors = getTreeAncestors(tree, value);\n return ancestors?.length ? ancestors[ancestors.length - 1] : null;\n}\n\nexport function ucFirst(str?: string) {\n return typeof str === 'string'\n ? str.substring(0, 1).toUpperCase() + str.substring(1)\n : str;\n}\n\nexport function lcFirst(str?: string) {\n return str ? str.substring(0, 1).toLowerCase() + str.substring(1) : '';\n}\n\nexport function camel(str?: string) {\n return str\n ? str\n .split(/[\\s_\\-]/)\n .map((item, index) => (index === 0 ? lcFirst(item) : ucFirst(item)))\n .join('')\n : '';\n}\n\nexport function getWidthRate(value: any, strictMode = false): number {\n if (typeof value === 'string' && /\\bcol\\-\\w+\\-(\\d+)\\b/.test(value)) {\n return parseInt(RegExp.$1, 10);\n }\n\n return strictMode ? 0 : value || 0;\n}\n\nexport function getLevelFromClassName(\n value: string,\n defaultValue: string = 'default'\n) {\n if (\n /\\b(?:btn|text)-(link|primary|secondary|info|success|warning|danger|light|dark)\\b/.test(\n value\n )\n ) {\n return RegExp.$1;\n }\n\n return defaultValue;\n}\n\nexport function string2regExp(value: string, caseSensitive = false) {\n if (typeof value !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n return new RegExp(\n value.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d'),\n !caseSensitive ? 'i' : ''\n );\n}\n\nexport function pickEventsProps(props: any) {\n const ret: any = {};\n props &&\n Object.keys(props).forEach(\n key => /^on/.test(key) && (ret[key] = props[key])\n );\n return ret;\n}\n\nexport const autobind = autobindMethod;\n\nexport const bulkBindFunctions = function <\n T extends {\n [propName: string]: any;\n }\n>(context: T, funNames: Array<FunctionPropertyNames<T>>) {\n funNames.forEach(key => (context[key] = context[key].bind(context)));\n};\n\nexport function sortArray<T extends any>(\n items: Array<T>,\n field: string,\n dir: -1 | 1\n): Array<T> {\n return items.sort((a: any, b: any) => {\n let ret: number;\n const a1 = a[field];\n const b1 = b[field];\n\n if (typeof a1 === 'number' && typeof b1 === 'number') {\n ret = a1 < b1 ? -1 : a1 === b1 ? 0 : 1;\n } else {\n ret = String(a1).localeCompare(String(b1));\n }\n\n return ret * dir;\n });\n}\n\n// 只判断一层, 如果层级很深,form-data 也不好表达。\nexport function hasFile(object: any): boolean {\n return Object.keys(object).some(key => {\n let value = object[key];\n\n return (\n value instanceof File ||\n (Array.isArray(value) && value.length && value[0] instanceof File)\n );\n });\n}\n\nexport function qsstringify(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n keepEmptyArray?: boolean\n) {\n // qs会保留空字符串。fix: Combo模式的空数组,无法清空。改为存为空字符串;只转换一层\n keepEmptyArray &&\n Object.keys(data).forEach((key: any) => {\n Array.isArray(data[key]) && !data[key].length && (data[key] = '');\n });\n return qs.stringify(data, options);\n}\n\nexport function qsparse(\n data: string,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true,\n depth: 1000 // 默认是 5, 所以condition-builder只要来个条件组就会导致报错\n }\n) {\n return qs.parse(data, options);\n}\n\nexport function object2formData(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n fd: FormData = new FormData()\n): any {\n let fileObjects: any = [];\n let others: any = {};\n\n Object.keys(data).forEach(key => {\n const value = data[key];\n\n if (value instanceof File) {\n fileObjects.push([key, value]);\n } else if (\n Array.isArray(value) &&\n value.length &&\n value[0] instanceof File\n ) {\n value.forEach(value => fileObjects.push([`${key}[]`, value]));\n } else {\n others[key] = value;\n }\n });\n\n // 因为 key 的格式太多了,偷个懒,用 qs 来处理吧。\n qsstringify(others, options)\n .split('&')\n .forEach(item => {\n let parts = item.split('=');\n // form-data/multipart 是不需要 encode 值的。\n parts[0] && fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fileObjects.forEach((fileObject: any[]) =>\n fd.append(fileObject[0], fileObject[1], fileObject[1].name)\n );\n\n return fd;\n}\n\nexport function chainFunctions(\n ...fns: Array<(...args: Array<any>) => void>\n): (...args: Array<any>) => void {\n return (...args: Array<any>) =>\n fns.reduce(\n (ret: any, fn: any) =>\n ret === false\n ? false\n : typeof fn == 'function'\n ? fn(...args)\n : undefined,\n undefined\n );\n}\n\nexport function chainEvents(props: any, schema: any) {\n const ret: any = {};\n\n Object.keys(props).forEach(key => {\n if (\n key.substr(0, 2) === 'on' &&\n typeof props[key] === 'function' &&\n typeof schema[key] === 'function' &&\n schema[key] !== props[key]\n ) {\n // 表单项里面的 onChange 很特殊,这个不要处理。\n if (props.formStore && key === 'onChange') {\n ret[key] = props[key];\n } else {\n ret[key] = chainFunctions(schema[key], props[key]);\n }\n } else {\n ret[key] = props[key];\n }\n });\n\n return ret;\n}\n\nexport function mapObject(value: any, fn: Function): any {\n if (Array.isArray(value)) {\n return value.map(item => mapObject(item, fn));\n }\n if (isObject(value)) {\n let tmpValue = {...value};\n Object.keys(tmpValue).forEach(key => {\n (tmpValue as PlainObject)[key] = mapObject(\n (tmpValue as PlainObject)[key],\n fn\n );\n });\n return tmpValue;\n }\n return fn(value);\n}\n\nexport function loadScript(src: string) {\n return new Promise<void>((ok, fail) => {\n const script = document.createElement('script');\n script.onerror = reason => fail(reason);\n\n if (~src.indexOf('{{callback}}')) {\n const callbackFn = `loadscriptcallback_${uuid()}`;\n (window as any)[callbackFn] = () => {\n ok();\n delete (window as any)[callbackFn];\n };\n src = src.replace('{{callback}}', callbackFn);\n } else {\n script.onload = () => ok();\n }\n\n script.src = src;\n document.head.appendChild(script);\n });\n}\n\nexport class SkipOperation extends Error {}\n\n/**\n * 将例如像 a.b.c 或 a[1].b 的字符串转换为路径数组\n *\n * @param string 要转换的字符串\n */\nexport const keyToPath = (string: string) => {\n const result = [];\n\n if (string.charCodeAt(0) === '.'.charCodeAt(0)) {\n result.push('');\n }\n\n string.replace(\n new RegExp(\n '[^.[\\\\]]+|\\\\[(?:([^\"\\'][^[]*)|([\"\\'])((?:(?!\\\\2)[^\\\\\\\\]|\\\\\\\\.)*?)\\\\2)\\\\]|(?=(?:\\\\.|\\\\[\\\\])(?:\\\\.|\\\\[\\\\]|$))',\n 'g'\n ),\n (match, expression, quote, subString) => {\n let key = match;\n if (quote) {\n key = subString.replace(/\\\\(\\\\)?/g, '$1');\n } else if (expression) {\n key = expression.trim();\n }\n result.push(key);\n return '';\n }\n );\n\n return result;\n};\n\n/**\n * 检查对象是否有循环引用,来自 https://stackoverflow.com/a/34909127\n * @param obj\n */\nfunction isCyclic(obj: any): boolean {\n const seenObjects: any = [];\n function detect(obj: any) {\n if (obj && typeof obj === 'object') {\n if (seenObjects.indexOf(obj) !== -1) {\n return true;\n }\n seenObjects.push(obj);\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && detect(obj[key])) {\n return true;\n }\n }\n }\n return false;\n }\n return detect(obj);\n}\n\nfunction internalFindObjectsWithKey(obj: any, key: string) {\n let objects: any[] = [];\n for (const k in obj) {\n if (!obj.hasOwnProperty(k)) continue;\n if (k === key) {\n objects.push(obj);\n } else if (typeof obj[k] === 'object') {\n objects = objects.concat(internalFindObjectsWithKey(obj[k], key));\n }\n }\n return objects;\n}\n\n/**\n * 深度查找具有某个 key 名字段的对象,实际实现是 internalFindObjectsWithKey,这里包一层是为了做循环引用检测\n * @param obj\n * @param key\n */\nexport function findObjectsWithKey(obj: any, key: string) {\n // 避免循环引用导致死循环\n if (isCyclic(obj)) {\n return [];\n }\n return internalFindObjectsWithKey(obj, key);\n}\n\nlet scrollbarWidth: number;\n\n/**\n * 获取浏览器滚动条宽度 https://stackoverflow.com/a/13382873\n */\n\nexport function getScrollbarWidth() {\n if (typeof scrollbarWidth !== 'undefined') {\n return scrollbarWidth;\n }\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n // @ts-ignore\n outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n scrollbarWidth = outer.offsetWidth - inner.offsetWidth;\n\n // Removing temporary elements from the DOM\n // @ts-ignore\n outer.parentNode.removeChild(outer);\n\n return scrollbarWidth;\n}\n\nfunction resolveValueByName(data: any, name?: string) {\n return isPureVariable(name)\n ? resolveVariableAndFilter(name, data)\n : resolveVariable(name, data);\n}\n\n// 统一的获取 value 值方法\nexport function getPropValue<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(props: T, getter?: (props: T) => any) {\n const {name, value, data, defaultValue} = props;\n return (\n value ?? getter?.(props) ?? resolveValueByName(data, name) ?? defaultValue\n );\n}\n\n// 检测 value 是否有变化,有变化就执行 onChange\nexport function detectPropValueChanged<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(\n props: T,\n prevProps: T,\n onChange: (value: any) => void,\n getter?: (props: T) => any\n) {\n let nextValue: any;\n if (typeof props.value !== 'undefined') {\n props.value !== prevProps.value && onChange(props.value);\n } else if ((nextValue = getter?.(props)) !== undefined) {\n nextValue !== getter!(prevProps) && onChange(nextValue);\n } else if (\n typeof props.name === 'string' &&\n (nextValue = resolveValueByName(props.data, props.name)) !== undefined\n ) {\n nextValue !== resolveValueByName(prevProps.data, prevProps.name) &&\n onChange(nextValue);\n } else if (props.defaultValue !== prevProps.defaultValue) {\n onChange(props.defaultValue);\n }\n}\n\n// 去掉字符串中的 html 标签,不完全准确但效率比较高\nexport function removeHTMLTag(str: string) {\n return typeof str === 'string' ? str.replace(/<\\/?[^>]+(>|$)/g, '') : str;\n}\n\n/**\n * 将路径格式的value转换成普通格式的value值\n *\n * @example\n *\n * 'a/b/c' => 'c';\n * {label: 'A/B/C', value: 'a/b/c'} => {label: 'C', value: 'c'};\n * 'a/b/c,a/d' => 'c,d';\n * ['a/b/c', 'a/d'] => ['c', 'd'];\n * [{label: 'A/B/C', value: 'a/b/c'},{label: 'A/D', value: 'a/d'}] => [{label: 'C', value: 'c'},{label: 'D', value: 'd'}]\n */\nexport function normalizeNodePath(\n value: any,\n enableNodePath: boolean,\n labelField: string = 'label',\n valueField: string = 'value',\n pathSeparator: string = '/',\n delimiter: string = ','\n) {\n const nodeValueArray: any[] = [];\n const nodePathArray: any[] = [];\n const getLastNodeFromPath = (path: any) =>\n last(path ? path.toString().split(pathSeparator) : []);\n\n if (typeof value === 'undefined' || !enableNodePath) {\n return {nodeValueArray, nodePathArray};\n }\n\n // 尾节点为当前options中value值\n if (Array.isArray(value)) {\n value.forEach(nodePath => {\n if (nodePath && nodePath.hasOwnProperty(valueField)) {\n nodeValueArray.push({\n ...nodePath,\n [labelField]: getLastNodeFromPath(nodePath[labelField]),\n [valueField]: getLastNodeFromPath(nodePath[valueField])\n });\n nodePathArray.push(nodePath[valueField]);\n } else {\n nodeValueArray.push(getLastNodeFromPath(nodePath));\n nodePathArray.push(nodePath);\n }\n });\n } else if (typeof value === 'string') {\n value\n .toString()\n .split(delimiter)\n .forEach(path => {\n nodeValueArray.push(getLastNodeFromPath(path));\n nodePathArray.push(path);\n });\n } else {\n nodeValueArray.push({\n ...value,\n [labelField]: getLastNodeFromPath(value[labelField]),\n [valueField || 'value']: getLastNodeFromPath(value[valueField])\n });\n nodePathArray.push(value[valueField]);\n }\n\n return {nodeValueArray, nodePathArray};\n}\n\n// 主要用于排除点击输入框和链接等情况\nexport function isClickOnInput(e: React.MouseEvent<HTMLElement>) {\n const target: HTMLElement = e.target as HTMLElement;\n let formItem;\n if (\n !e.currentTarget.contains(target) ||\n ~['INPUT', 'TEXTAREA'].indexOf(target.tagName) ||\n ((formItem = target.closest(`button, a, [data-role=\"form-item\"]`)) &&\n e.currentTarget.contains(formItem))\n ) {\n return true;\n }\n return false;\n}\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/utils/icon.js
CHANGED
@@ -13,6 +13,9 @@ var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
13
13
|
* @param classNameProp amis 配置里设置的 className
|
14
14
|
*/
|
15
15
|
var generateIcon = function (cx, icon, className, classNameProp) {
|
16
|
+
if (react_1.default.isValidElement(icon)) {
|
17
|
+
return icon;
|
18
|
+
}
|
16
19
|
var isURLIcon = (icon === null || icon === void 0 ? void 0 : icon.indexOf('.')) !== -1;
|
17
20
|
return icon ? (isURLIcon ? (react_1.default.createElement("img", { className: cx(className, classNameProp), src: icon, key: icon })) : (react_1.default.createElement("i", { className: cx(className, icon, classNameProp), key: icon }))) : null;
|
18
21
|
};
|
package/lib/utils/icon.js.map
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/utils/icon.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";AAAA;;GAEG;;;;AAEH,6DAA0B;AAG1B;;;;;GAKG;AACI,IAAM,YAAY,GAAG,UAC1B,EAAgB,EAChB,IAAa,EACb,SAAkB,EAClB,aAAsB;IAEtB,IAAM,SAAS,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,GAAG,CAAC,MAAK,CAAC,CAAC,CAAC;IAE5C,OAAO,IAAI,CAAC,CAAC,CAAC,CACZ,SAAS,CAAC,CAAC,CAAC,CACV,uCAAK,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAI,CACvE,CAAC,CAAC,CAAC,CACF,qCAAG,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,GAAI,CAChE,CACF,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC;
|
9
|
+
"mappings": ";AAAA;;GAEG;;;;AAEH,6DAA0B;AAG1B;;;;;GAKG;AACI,IAAM,YAAY,GAAG,UAC1B,EAAgB,EAChB,IAAa,EACb,SAAkB,EAClB,aAAsB;IAEtB,IAAI,eAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,IAAI,CAAC;KACb;IAED,IAAM,SAAS,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,GAAG,CAAC,MAAK,CAAC,CAAC,CAAC;IAE5C,OAAO,IAAI,CAAC,CAAC,CAAC,CACZ,SAAS,CAAC,CAAC,CAAC,CACV,uCAAK,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAI,CACvE,CAAC,CAAC,CAAC,CACF,qCAAG,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,GAAI,CAChE,CACF,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC;AAnBW,QAAA,YAAY,gBAmBvB",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file 图标支持的公共方法,主要是支持自动识别地址和 icon-font\n */\n\nimport React from 'react';\nimport {ClassNamesFn} from '../theme';\n\n/**\n * 判断字符串来生成 i 或 img\n * @param icon icon 设置\n * @param className 内部用的 className\n * @param classNameProp amis 配置里设置的 className\n */\nexport const generateIcon = (\n cx: ClassNamesFn,\n icon?: string,\n className?: string,\n classNameProp?: string\n) => {\n const isURLIcon = icon?.indexOf('.') !== -1;\n\n return icon ? (\n isURLIcon ? (\n <img className={cx(className, classNameProp)} src={icon} key={icon} />\n ) : (\n <i className={cx(className, icon, classNameProp)} key={icon} />\n )\n ) : null;\n};\n"
|
11
|
+
"/**\n * @file 图标支持的公共方法,主要是支持自动识别地址和 icon-font\n */\n\nimport React from 'react';\nimport {ClassNamesFn} from '../theme';\n\n/**\n * 判断字符串来生成 i 或 img\n * @param icon icon 设置\n * @param className 内部用的 className\n * @param classNameProp amis 配置里设置的 className\n */\nexport const generateIcon = (\n cx: ClassNamesFn,\n icon?: string,\n className?: string,\n classNameProp?: string\n) => {\n if (React.isValidElement(icon)) {\n return icon;\n }\n\n const isURLIcon = icon?.indexOf('.') !== -1;\n\n return icon ? (\n isURLIcon ? (\n <img className={cx(className, classNameProp)} src={icon} key={icon} />\n ) : (\n <i className={cx(className, icon, classNameProp)} key={icon} />\n )\n ) : null;\n};\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -21,7 +21,7 @@ export declare function isPureVariable(path?: any): path is string;
|
|
21
21
|
export declare const resolveVariableAndFilter: (path?: string | undefined, data?: object, defaultFilter?: string, fallbackValue?: (value: any) => any) => any;
|
22
22
|
export declare const tokenize: (str: string, data: object, defaultFilter?: string) => string;
|
23
23
|
export declare function resolveMapping(value: any, data: PlainObject, defaultFilter?: string): any;
|
24
|
-
export declare function dataMapping(to: any, from?: PlainObject, ignoreFunction?: boolean | ((key: string, value: any) => boolean)): any;
|
24
|
+
export declare function dataMapping(to: any, from?: PlainObject, ignoreFunction?: boolean | ((key: string, value: any) => boolean), convertKeyToPath?: boolean): any;
|
25
25
|
export declare function register(): Enginer & {
|
26
26
|
name: string;
|
27
27
|
};
|
package/lib/utils/tpl-builtin.js
CHANGED
@@ -338,11 +338,19 @@ exports.filters = {
|
|
338
338
|
last: function (input) { return input && (input.length ? input[input.length - 1] : null); },
|
339
339
|
minus: function (input, step) {
|
340
340
|
if (step === void 0) { step = 1; }
|
341
|
-
return stripNumber((
|
341
|
+
return stripNumber((Number(input) || 0) - Number(getStrOrVariable(step, this)));
|
342
342
|
},
|
343
343
|
plus: function (input, step) {
|
344
344
|
if (step === void 0) { step = 1; }
|
345
|
-
return stripNumber((
|
345
|
+
return stripNumber((Number(input) || 0) + Number(getStrOrVariable(step, this)));
|
346
|
+
},
|
347
|
+
times: function (input, step) {
|
348
|
+
if (step === void 0) { step = 1; }
|
349
|
+
return stripNumber((Number(input) || 0) * Number(getStrOrVariable(step, this)));
|
350
|
+
},
|
351
|
+
division: function (input, step) {
|
352
|
+
if (step === void 0) { step = 1; }
|
353
|
+
return stripNumber((Number(input) || 0) / Number(getStrOrVariable(step, this)));
|
346
354
|
},
|
347
355
|
count: function (input) {
|
348
356
|
return Array.isArray(input) || typeof input === 'string' ? input.length : 0;
|
@@ -743,11 +751,13 @@ function resolveMapping(value, data, defaultFilter) {
|
|
743
751
|
: value;
|
744
752
|
}
|
745
753
|
exports.resolveMapping = resolveMapping;
|
746
|
-
function dataMapping(to, from, ignoreFunction) {
|
754
|
+
function dataMapping(to, from, ignoreFunction, convertKeyToPath) {
|
747
755
|
if (from === void 0) { from = {}; }
|
748
756
|
if (ignoreFunction === void 0) { ignoreFunction = false; }
|
749
757
|
if (Array.isArray(to)) {
|
750
|
-
return to.map(function (item) {
|
758
|
+
return to.map(function (item) {
|
759
|
+
return dataMapping(item, from, ignoreFunction, convertKeyToPath);
|
760
|
+
});
|
751
761
|
}
|
752
762
|
else if (typeof to === 'string') {
|
753
763
|
return resolveMapping(to, from);
|
@@ -761,7 +771,7 @@ function dataMapping(to, from, ignoreFunction) {
|
|
761
771
|
var keys;
|
762
772
|
if (typeof ignoreFunction === 'function' && ignoreFunction(key, value)) {
|
763
773
|
// 如果被ignore,不做数据映射处理。
|
764
|
-
(0, helper_1.setVariable)(ret, key, value);
|
774
|
+
(0, helper_1.setVariable)(ret, key, value, convertKeyToPath);
|
765
775
|
}
|
766
776
|
else if (key === '&' && value === '$$') {
|
767
777
|
ret = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, ret), from);
|
@@ -773,7 +783,7 @@ function dataMapping(to, from, ignoreFunction) {
|
|
773
783
|
from[keys[0].substring(1)] &&
|
774
784
|
Array.isArray(from[keys[0].substring(1)])
|
775
785
|
? from[keys[0].substring(1)].map(function (raw) {
|
776
|
-
return dataMapping(value[keys[0]], (0, helper_1.createObject)(from, raw), ignoreFunction);
|
786
|
+
return dataMapping(value[keys[0]], (0, helper_1.createObject)(from, raw), ignoreFunction, convertKeyToPath);
|
777
787
|
})
|
778
788
|
: resolveMapping(value, from);
|
779
789
|
if (Array.isArray(v) || typeof v === 'string') {
|
@@ -787,11 +797,11 @@ function dataMapping(to, from, ignoreFunction) {
|
|
787
797
|
}
|
788
798
|
}
|
789
799
|
else if (value === '$$') {
|
790
|
-
(0, helper_1.setVariable)(ret, key, from);
|
800
|
+
(0, helper_1.setVariable)(ret, key, from, convertKeyToPath);
|
791
801
|
}
|
792
802
|
else if (value && value[0] === '$') {
|
793
803
|
var v = resolveMapping(value, from);
|
794
|
-
(0, helper_1.setVariable)(ret, key, v);
|
804
|
+
(0, helper_1.setVariable)(ret, key, v, convertKeyToPath);
|
795
805
|
if (v === '__undefined') {
|
796
806
|
(0, helper_1.deleteVariable)(ret, key);
|
797
807
|
}
|
@@ -818,27 +828,27 @@ function dataMapping(to, from, ignoreFunction) {
|
|
818
828
|
: [];
|
819
829
|
var mapping_1 = value[keys[0]];
|
820
830
|
ret[key] = arr.map(function (raw) {
|
821
|
-
return dataMapping(mapping_1, (0, helper_1.createObject)(from, raw), ignoreFunction);
|
831
|
+
return dataMapping(mapping_1, (0, helper_1.createObject)(from, raw), ignoreFunction, convertKeyToPath);
|
822
832
|
});
|
823
833
|
}
|
824
834
|
else if ((0, isPlainObject_1.default)(value)) {
|
825
|
-
(0, helper_1.setVariable)(ret, key, dataMapping(value, from, ignoreFunction));
|
835
|
+
(0, helper_1.setVariable)(ret, key, dataMapping(value, from, ignoreFunction, convertKeyToPath), convertKeyToPath);
|
826
836
|
}
|
827
837
|
else if (Array.isArray(value)) {
|
828
838
|
(0, helper_1.setVariable)(ret, key, value.map(function (value) {
|
829
839
|
return (0, isPlainObject_1.default)(value)
|
830
|
-
? dataMapping(value, from, ignoreFunction)
|
840
|
+
? dataMapping(value, from, ignoreFunction, convertKeyToPath)
|
831
841
|
: resolveMapping(value, from);
|
832
|
-
}));
|
842
|
+
}), convertKeyToPath);
|
833
843
|
}
|
834
844
|
else if (typeof value == 'string' && ~value.indexOf('$')) {
|
835
|
-
(0, helper_1.setVariable)(ret, key, resolveMapping(value, from));
|
845
|
+
(0, helper_1.setVariable)(ret, key, resolveMapping(value, from), convertKeyToPath);
|
836
846
|
}
|
837
847
|
else if (typeof value === 'function' && ignoreFunction !== true) {
|
838
|
-
(0, helper_1.setVariable)(ret, key, value(from));
|
848
|
+
(0, helper_1.setVariable)(ret, key, value(from), convertKeyToPath);
|
839
849
|
}
|
840
850
|
else {
|
841
|
-
(0, helper_1.setVariable)(ret, key, value);
|
851
|
+
(0, helper_1.setVariable)(ret, key, value, convertKeyToPath);
|
842
852
|
if (value === '__undefined') {
|
843
853
|
(0, helper_1.deleteVariable)(ret, key);
|
844
854
|
}
|