amis 1.5.6-beta.5 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.husky/pre-commit +1 -1
- package/lib/Schema.d.ts +3 -2
- package/lib/Schema.js.map +1 -1
- package/lib/components/AssociatedSelection.d.ts +84 -84
- package/lib/components/AssociatedSelection.js +2 -2
- package/lib/components/AssociatedSelection.js.map +2 -2
- package/lib/components/Avatar.d.ts +135 -0
- package/lib/components/Avatar.js +120 -0
- package/lib/components/Avatar.js.map +13 -0
- package/lib/components/BaiduMapPicker.js.map +2 -2
- package/lib/components/CalendarMobile.d.ts +547 -0
- package/lib/components/CalendarMobile.js +432 -0
- package/lib/components/CalendarMobile.js.map +13 -0
- package/lib/components/Card.js +1 -1
- package/lib/components/Card.js.map +2 -2
- package/lib/components/Cascader.d.ts +123 -0
- package/lib/components/Cascader.js +487 -0
- package/lib/components/Cascader.js.map +13 -0
- package/lib/components/ChainedSelection.d.ts +84 -84
- package/lib/components/ChainedSelection.js +15 -3
- package/lib/components/ChainedSelection.js.map +2 -2
- package/lib/components/CityArea.d.ts +527 -0
- package/lib/components/CityArea.js +177 -0
- package/lib/components/CityArea.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/ColorPicker.js +4 -3
- package/lib/components/ColorPicker.js.map +2 -2
- package/lib/components/DatePicker.d.ts +85 -84
- package/lib/components/DatePicker.js +15 -8
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +85 -84
- package/lib/components/DateRangePicker.js +18 -6
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/GroupedSelection.d.ts +84 -84
- package/lib/components/GroupedSelection.js +14 -2
- package/lib/components/GroupedSelection.js.map +2 -2
- package/lib/components/MonthRangePicker.d.ts +85 -84
- package/lib/components/MonthRangePicker.js +16 -6
- package/lib/components/MonthRangePicker.js.map +2 -2
- package/lib/components/Overlay.d.ts +1 -1
- package/lib/components/Overlay.js.map +1 -1
- package/lib/components/Picker.d.ts +1 -0
- package/lib/components/Picker.js +16 -7
- package/lib/components/Picker.js.map +2 -2
- package/lib/components/PickerColumn.d.ts +1 -0
- package/lib/components/PickerColumn.js +21 -18
- package/lib/components/PickerColumn.js.map +2 -2
- package/lib/components/PickerContainer.d.ts +3 -0
- package/lib/components/PickerContainer.js +12 -5
- package/lib/components/PickerContainer.js.map +2 -2
- package/lib/components/PopOverContainer.d.ts +1 -0
- package/lib/components/PopOverContainer.js +5 -3
- package/lib/components/PopOverContainer.js.map +2 -2
- package/lib/components/PopUp.d.ts +1041 -28
- package/lib/components/PopUp.js +32 -8
- package/lib/components/PopUp.js.map +2 -2
- package/lib/components/Rating.d.ts +203 -73
- package/lib/components/Rating.js +147 -31
- package/lib/components/Rating.js.map +2 -2
- package/lib/components/ResultBox.d.ts +85 -84
- package/lib/components/ResultBox.js +9 -4
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/ResultList.d.ts +9 -2
- package/lib/components/ResultList.js +22 -2
- package/lib/components/ResultList.js.map +2 -2
- package/lib/components/Select.d.ts +237 -237
- package/lib/components/Select.js +9 -6
- package/lib/components/Select.js.map +2 -2
- package/lib/components/Selection.d.ts +94 -86
- package/lib/components/Selection.js +11 -2
- package/lib/components/Selection.js.map +2 -2
- package/lib/components/Steps.js.map +2 -2
- package/lib/components/TableSelection.d.ts +85 -85
- package/lib/components/TableSelection.js +1 -9
- package/lib/components/TableSelection.js.map +2 -2
- package/lib/components/Tabs.js +31 -33
- package/lib/components/Tabs.js.map +2 -2
- package/lib/components/TabsTransfer.d.ts +87 -256
- package/lib/components/TabsTransfer.js +52 -9
- package/lib/components/TabsTransfer.js.map +2 -2
- package/lib/components/TabsTransferPicker.d.ts +1 -1
- package/lib/components/TabsTransferPicker.js +20 -18
- package/lib/components/TabsTransferPicker.js.map +2 -2
- package/lib/components/Timeline.d.ts +69 -0
- package/lib/components/Timeline.js +16 -0
- package/lib/components/Timeline.js.map +13 -0
- package/lib/components/TimelineItem.d.ts +516 -0
- package/lib/components/TimelineItem.js +41 -0
- package/lib/components/TimelineItem.js.map +13 -0
- package/lib/components/Transfer.d.ts +100 -98
- package/lib/components/Transfer.js +2 -3
- package/lib/components/Transfer.js.map +2 -2
- package/lib/components/TransferDropDown.d.ts +85 -84
- package/lib/components/TransferDropDown.js +9 -10
- package/lib/components/TransferDropDown.js.map +2 -2
- package/lib/components/TransferPicker.d.ts +1 -0
- package/lib/components/TransferPicker.js +19 -4
- package/lib/components/TransferPicker.js.map +2 -2
- package/lib/components/TreeSelection.d.ts +85 -85
- package/lib/components/TreeSelection.js +7 -1
- package/lib/components/TreeSelection.js.map +2 -2
- package/lib/components/calendar/Calendar.d.ts +19 -0
- package/lib/components/calendar/Calendar.js +71 -1
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/calendar/DaysView.d.ts +21 -0
- package/lib/components/calendar/DaysView.js +76 -17
- package/lib/components/calendar/DaysView.js.map +2 -2
- package/lib/components/calendar/MonthsView.d.ts +34 -0
- package/lib/components/calendar/MonthsView.js +68 -3
- package/lib/components/calendar/MonthsView.js.map +2 -2
- package/lib/components/calendar/QuartersView.d.ts +1 -0
- package/lib/components/calendar/QuartersView.js +2 -2
- package/lib/components/calendar/QuartersView.js.map +2 -2
- package/lib/components/calendar/TimeView.d.ts +30 -18
- package/lib/components/calendar/TimeView.js +47 -8
- package/lib/components/calendar/TimeView.js.map +2 -2
- package/lib/components/calendar/YearsView.d.ts +6 -0
- package/lib/components/calendar/YearsView.js +21 -10
- package/lib/components/calendar/YearsView.js.map +2 -2
- package/lib/components/condition-builder/Field.js +1 -4
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Func.js +1 -1
- package/lib/components/condition-builder/Func.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +3 -0
- package/lib/components/formula/Editor.js +3 -2
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/FuncList.js +2 -1
- package/lib/components/formula/FuncList.js.map +2 -2
- package/lib/components/formula/Picker.js +1 -1
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/icons.js +4 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +4 -2
- package/lib/components/index.js.map +2 -2
- package/lib/components/virtual-list/SizeAndPositionManager.js.map +2 -2
- package/lib/components/virtual-list/index.js +1 -2
- package/lib/components/virtual-list/index.js.map +2 -2
- package/lib/factory.js +5 -0
- package/lib/factory.js.map +2 -2
- package/lib/icons/star.js +12 -0
- package/lib/icons/tree-down.js +7 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +17 -2
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +17 -2
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +16 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Avatar.d.ts +35 -26
- package/lib/renderers/Avatar.js +14 -19
- package/lib/renderers/Avatar.js.map +2 -2
- package/lib/renderers/CRUD.js +1 -2
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Card.js +6 -5
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Custom.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +11 -2
- package/lib/renderers/DropDownButton.js +30 -12
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Each.js +5 -2
- package/lib/renderers/Each.js.map +2 -2
- package/lib/renderers/Flex.js +1 -5
- package/lib/renderers/Flex.js.map +2 -2
- package/lib/renderers/Form/ChartRadios.js.map +2 -2
- package/lib/renderers/Form/Checkboxes.js.map +2 -2
- package/lib/renderers/Form/CityDB.js +526 -2
- package/lib/renderers/Form/CityDB.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.js +2 -1
- package/lib/renderers/Form/DiffEditor.js.map +2 -2
- package/lib/renderers/Form/InputCity.d.ts +85 -84
- package/lib/renderers/Form/InputCity.js +4 -2
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.d.ts +84 -84
- package/lib/renderers/Form/InputColor.js +6 -2
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +10 -5
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +6 -2
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +4 -1
- package/lib/renderers/Form/InputFormula.js +2 -2
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +1 -0
- package/lib/renderers/Form/InputImage.js +8 -4
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputMonthRange.js +1 -1
- package/lib/renderers/Form/InputMonthRange.js.map +2 -2
- package/lib/renderers/Form/InputQuarterRange.js +1 -1
- package/lib/renderers/Form/InputQuarterRange.js.map +2 -2
- package/lib/renderers/Form/InputRating.d.ts +37 -0
- package/lib/renderers/Form/InputRating.js +6 -2
- package/lib/renderers/Form/InputRating.js.map +2 -2
- package/lib/renderers/Form/InputYearRange.js +1 -1
- package/lib/renderers/Form/InputYearRange.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +10 -14
- package/lib/renderers/Form/Item.js +18 -9
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/NestedSelect.d.ts +1 -0
- package/lib/renderers/Form/NestedSelect.js +8 -4
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/Select.d.ts +2 -0
- package/lib/renderers/Form/Select.js +7 -4
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TabsTransfer.d.ts +5 -32
- package/lib/renderers/Form/TabsTransfer.js +20 -1
- package/lib/renderers/Form/TabsTransfer.js.map +2 -2
- package/lib/renderers/Form/TabsTransferPicker.d.ts +5 -35
- package/lib/renderers/Form/TabsTransferPicker.js +21 -2
- package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
- package/lib/renderers/Form/Transfer.d.ts +15 -4
- package/lib/renderers/Form/Transfer.js +55 -18
- package/lib/renderers/Form/Transfer.js.map +2 -2
- package/lib/renderers/Form/TransferPicker.d.ts +3 -32
- package/lib/renderers/Form/TransferPicker.js +1 -1
- package/lib/renderers/Form/TransferPicker.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.js +4 -4
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.js +2 -1
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/IFrame.js +0 -2
- package/lib/renderers/IFrame.js.map +2 -2
- package/lib/renderers/Json.js +7 -0
- package/lib/renderers/Json.js.map +2 -2
- package/lib/renderers/Nav.js +4 -1
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Remark.d.ts +4 -0
- package/lib/renderers/Remark.js +39 -7
- package/lib/renderers/Remark.js.map +2 -2
- package/lib/renderers/Steps.js +5 -5
- package/lib/renderers/Steps.js.map +2 -2
- package/lib/renderers/Table/TableRow.js +4 -1
- package/lib/renderers/Table/TableRow.js.map +2 -2
- package/lib/renderers/Table/index.js +4 -1
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Tabs.js +1 -1
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/Timeline.d.ts +65 -0
- package/lib/renderers/Timeline.js +54 -0
- package/lib/renderers/Timeline.js.map +13 -0
- package/lib/renderers/Video.js.map +2 -2
- package/lib/schemaExtend.js +23 -9
- package/lib/schemaExtend.js.map +2 -2
- package/lib/store/combo.js.map +2 -2
- package/lib/store/formItem.js +6 -6
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/table.js +1 -1
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +1018 -67
- package/lib/themes/ang.css +1018 -67
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +1053 -67
- package/lib/themes/antd.css +1053 -67
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1058 -78
- package/lib/themes/cxd.css +1058 -78
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +1019 -67
- package/lib/themes/dark.css +1019 -67
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +1058 -78
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/RootClose.js +3 -1
- package/lib/utils/RootClose.js.map +2 -2
- package/lib/utils/helper.d.ts +1 -6
- package/lib/utils/helper.js +6 -17
- package/lib/utils/helper.js.map +2 -2
- package/package.json +12 -6
- package/schema.json +3696 -971
- package/scss/_properties.scss +21 -7
- package/scss/components/_avatar.scss +27 -9
- package/scss/components/_calendar.scss +287 -0
- package/scss/components/_card.scss +1 -1
- package/scss/components/_cascader.scss +102 -0
- package/scss/components/_city-area.scss +27 -0
- package/scss/components/_collapse-group.scss +1 -3
- package/scss/components/_dropdown.scss +39 -9
- package/scss/components/_formula.scss +30 -6
- package/scss/components/_modal.scss +18 -0
- package/scss/components/_panel.scss +45 -0
- package/scss/components/_picker-columns.scss +15 -5
- package/scss/components/_popup.scss +42 -15
- package/scss/components/_result-box.scss +31 -0
- package/scss/components/_timeline.scss +198 -0
- package/scss/components/form/_checks.scss +2 -0
- package/scss/components/form/_color.scss +2 -2
- package/scss/components/form/_date-range.scss +1 -1
- package/scss/components/form/_date.scss +46 -1
- package/scss/components/form/_form.scss +168 -0
- package/scss/components/form/_nested-select.scss +3 -0
- package/scss/components/form/_rating.scss +60 -21
- package/scss/components/form/_result-list.scss +2 -0
- package/scss/components/form/_select.scss +32 -3
- package/scss/components/form/_selection.scss +5 -4
- package/scss/components/form/_transfer.scss +3 -0
- package/scss/components/form/_tree-select.scss +1 -1
- package/scss/themes/_antd-variables.scss +42 -0
- package/scss/themes/_common.scss +3 -0
- package/scss/themes/_cxd-variables.scss +51 -2
- package/scss/themes/_dark-variables.scss +1 -0
- package/scss/themes/cxd.scss +0 -12
- package/sdk/ang-ie11.css +1278 -141
- package/sdk/ang.css +1296 -153
- package/sdk/antd-ie11.css +1278 -141
- package/sdk/antd.css +1331 -153
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +1258 -132
- package/sdk/cxd.css +1338 -168
- package/sdk/dark-ie11.css +1278 -141
- package/sdk/dark.css +1297 -153
- package/sdk/exceljs.js +1 -1
- package/sdk/locale/de-DE.js +17 -2
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +18 -18
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +1258 -132
- package/sdk/sdk.css +1338 -168
- package/sdk/sdk.js +1242 -1218
- 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 +3 -0
- package/src/components/AssociatedSelection.tsx +5 -1
- package/src/components/Avatar.tsx +253 -0
- package/src/components/BaiduMapPicker.tsx +19 -14
- package/src/components/CalendarMobile.tsx +563 -0
- package/src/components/Card.tsx +2 -2
- package/src/components/Cascader.tsx +564 -0
- package/src/components/ChainedSelection.tsx +16 -3
- package/src/components/CityArea.tsx +315 -0
- package/src/components/Collapse.tsx +1 -1
- package/src/components/ColorPicker.tsx +41 -40
- package/src/components/DatePicker.tsx +54 -38
- package/src/components/DateRangePicker.tsx +83 -29
- package/src/components/GroupedSelection.tsx +14 -2
- package/src/components/MonthRangePicker.tsx +76 -30
- package/src/components/Overlay.tsx +1 -1
- package/src/components/Picker.tsx +55 -35
- package/src/components/PickerColumn.tsx +43 -36
- package/src/components/PickerContainer.tsx +13 -1
- package/src/components/PopOverContainer.tsx +31 -17
- package/src/components/PopUp.tsx +84 -57
- package/src/components/Rating.tsx +235 -47
- package/src/components/ResultBox.tsx +14 -2
- package/src/components/ResultList.tsx +36 -6
- package/src/components/Select.tsx +20 -23
- package/src/components/Selection.tsx +21 -3
- package/src/components/Steps.tsx +23 -10
- package/src/components/TableSelection.tsx +1 -44
- package/src/components/Tabs.tsx +65 -54
- package/src/components/TabsTransfer.tsx +78 -9
- package/src/components/TabsTransferPicker.tsx +25 -13
- package/src/components/Timeline.tsx +31 -0
- package/src/components/TimelineItem.tsx +107 -0
- package/src/components/Transfer.tsx +11 -8
- package/src/components/TransferDropDown.tsx +20 -12
- package/src/components/TransferPicker.tsx +25 -4
- package/src/components/TreeSelection.tsx +7 -1
- package/src/components/calendar/Calendar.tsx +101 -4
- package/src/components/calendar/DaysView.tsx +165 -33
- package/src/components/calendar/MonthsView.tsx +108 -1
- package/src/components/calendar/QuartersView.tsx +3 -2
- package/src/components/calendar/TimeView.tsx +104 -41
- package/src/components/calendar/YearsView.tsx +34 -17
- package/src/components/condition-builder/Field.tsx +1 -3
- package/src/components/condition-builder/Func.tsx +1 -1
- package/src/components/formula/Editor.tsx +16 -11
- package/src/components/formula/FuncList.tsx +3 -1
- package/src/components/formula/Picker.tsx +2 -1
- package/src/components/icons.tsx +4 -0
- package/src/components/index.tsx +2 -0
- package/src/components/virtual-list/SizeAndPositionManager.ts +6 -3
- package/src/components/virtual-list/index.tsx +4 -6
- package/src/factory.tsx +6 -0
- package/src/icons/star.svg +12 -0
- package/src/icons/tree-down.svg +5 -0
- package/src/index.tsx +1 -0
- package/src/locale/de-DE.ts +17 -2
- package/src/locale/en-US.ts +17 -2
- package/src/locale/zh-CN.ts +16 -1
- package/src/renderers/Avatar.tsx +83 -74
- package/src/renderers/CRUD.tsx +1 -3
- package/src/renderers/Card.tsx +10 -6
- package/src/renderers/Custom.tsx +6 -3
- package/src/renderers/DropDownButton.tsx +69 -35
- package/src/renderers/Each.tsx +4 -4
- package/src/renderers/Flex.tsx +3 -7
- package/src/renderers/Form/ChartRadios.tsx +2 -7
- package/src/renderers/Form/Checkboxes.tsx +1 -1
- package/src/renderers/Form/CityDB.ts +526 -2
- package/src/renderers/Form/DiffEditor.tsx +2 -3
- package/src/renderers/Form/InputCity.tsx +23 -3
- package/src/renderers/Form/InputColor.tsx +21 -2
- package/src/renderers/Form/InputDate.tsx +48 -20
- package/src/renderers/Form/InputDateRange.tsx +9 -2
- package/src/renderers/Form/InputFormula.tsx +9 -4
- package/src/renderers/Form/InputImage.tsx +9 -4
- package/src/renderers/Form/InputMonthRange.tsx +0 -1
- package/src/renderers/Form/InputQuarterRange.tsx +0 -1
- package/src/renderers/Form/InputRating.tsx +66 -3
- package/src/renderers/Form/InputYearRange.tsx +0 -1
- package/src/renderers/Form/Item.tsx +29 -8
- package/src/renderers/Form/NestedSelect.tsx +32 -4
- package/src/renderers/Form/Select.tsx +15 -3
- package/src/renderers/Form/TabsTransfer.tsx +28 -38
- package/src/renderers/Form/TabsTransferPicker.tsx +28 -46
- package/src/renderers/Form/Transfer.tsx +75 -24
- package/src/renderers/Form/TransferPicker.tsx +6 -38
- package/src/renderers/Form/TreeSelect.tsx +18 -16
- package/src/renderers/Form/index.tsx +2 -1
- package/src/renderers/IFrame.tsx +0 -2
- package/src/renderers/Json.tsx +5 -0
- package/src/renderers/Nav.tsx +4 -1
- package/src/renderers/Remark.tsx +68 -18
- package/src/renderers/Steps.tsx +11 -13
- package/src/renderers/Table/TableRow.tsx +3 -1
- package/src/renderers/Table/index.tsx +7 -1
- package/src/renderers/Tabs.tsx +6 -2
- package/src/renderers/Timeline.tsx +141 -0
- package/src/renderers/Video.tsx +4 -20
- package/src/schemaExtend.ts +22 -10
- package/src/store/combo.ts +1 -3
- package/src/store/formItem.ts +2 -2
- package/src/store/table.ts +2 -1
- package/src/utils/RootClose.ts +5 -1
- package/src/utils/helper.ts +6 -16
package/lib/utils/RootClose.js
CHANGED
@@ -7,9 +7,11 @@ exports.RootClose = void 0;
|
|
7
7
|
var tslib_1 = require("tslib");
|
8
8
|
var react_1 = require("react");
|
9
9
|
var useRootClose_1 = (0, tslib_1.__importDefault)(require("react-overlays/useRootClose"));
|
10
|
+
var react_dom_1 = require("react-dom");
|
10
11
|
var RootClose = function (_a) {
|
11
12
|
var children = _a.children, onRootClose = _a.onRootClose, props = (0, tslib_1.__rest)(_a, ["children", "onRootClose"]);
|
12
|
-
var _b = (0, react_1.useState)(null),
|
13
|
+
var _b = (0, react_1.useState)(null), rootComponent = _b[0], attachRef = _b[1];
|
14
|
+
var rootElement = (0, react_dom_1.findDOMNode)(rootComponent);
|
13
15
|
(0, useRootClose_1.default)(rootElement, onRootClose, props);
|
14
16
|
return typeof children === 'function' ? children(attachRef) : children;
|
15
17
|
};
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/utils/RootClose.ts"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";AAAA;;GAEG;;;;AAEH,+BAAsC;AACtC,0FAAuD;
|
9
|
+
"mappings": ";AAAA;;GAEG;;;;AAEH,+BAAsC;AACtC,0FAAuD;AACvD,uCAAsC;AAE/B,IAAM,SAAS,GAAG,UAAC,EAAsC;IAArC,IAAA,QAAQ,cAAA,EAAE,WAAW,iBAAA,EAAK,KAAK,2BAAhC,2BAAiC,CAAD;IAClD,IAAA,KAA6B,IAAA,gBAAQ,EAAC,IAAI,CAAC,EAA1C,aAAa,QAAA,EAAE,SAAS,QAAkB,CAAC;IAClD,IAAM,WAAW,GAAG,IAAA,uBAAW,EAAC,aAAa,CAAY,CAAC;IAE1D,IAAA,sBAAY,EAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAE9C,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzE,CAAC,CAAC;AAPW,QAAA,SAAS,aAOpB",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * 兼容之前的 RootCloseWrapper 写法\n */\n\nimport React, {useState} from 'react';\nimport useRootClose from 'react-overlays/useRootClose';\n\nexport const RootClose = ({children, onRootClose, ...props}: any) => {\n const [
|
11
|
+
"/**\n * 兼容之前的 RootCloseWrapper 写法\n */\n\nimport React, {useState} from 'react';\nimport useRootClose from 'react-overlays/useRootClose';\nimport {findDOMNode} from 'react-dom';\n\nexport const RootClose = ({children, onRootClose, ...props}: any) => {\n const [rootComponent, attachRef] = useState(null);\n const rootElement = findDOMNode(rootComponent) as Element;\n\n useRootClose(rootElement, onRootClose, props);\n\n return typeof children === 'function' ? children(attachRef) : children;\n};\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/utils/helper.d.ts
CHANGED
@@ -279,10 +279,5 @@ export declare function hashCode(s: string): number;
|
|
279
279
|
* @param mapper
|
280
280
|
*/
|
281
281
|
export declare function JSONTraverse(json: any, mapper: (value: any, key: string | number, host: Object) => any): void;
|
282
|
-
export declare function
|
283
|
-
export declare function convertDateToObject(value: moment.Moment): {
|
284
|
-
year: number;
|
285
|
-
month: number;
|
286
|
-
day: number;
|
287
|
-
} | null;
|
282
|
+
export declare function convertArrayValueToMoment(value: number[], types: string[], mom: moment.Moment): moment.Moment;
|
288
283
|
export declare function getRange(min: number, max: number, step?: number): number[];
|
package/lib/utils/helper.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.everyTree = exports.filterTree = exports.getTree = exports.findTreeIndex = exports.findTree = exports.eachTree = exports.mapTree = exports.uuidv4 = exports.uuid = exports.isEmpty = exports.omitControls = exports.until = exports.isBreakpoint = exports.__uri = exports.padArr = exports.difference = exports.getScrollParent = exports.promisify = exports.makeHorizontalDeeper = exports.hasAbility = exports.isDisabled = exports.visibilityFilter = exports.isUnfolded = exports.isVisible = exports.hasVisibleExpression = exports.makeColumnClassBuild = exports.immutableExtends = exports.isArrayChildrenModified = exports.isObjectShallowModified = exports.rmUndefined = exports.anyChanged = exports.noop = exports.hasOwnProperty = exports.findIndex = exports.guid = exports.syncDataFromSuper = exports.isSuperDataModified = exports.extendObject = exports.injectPropsToObject = exports.range = exports.isMobile = exports.preventDefault = exports.keyToPath = exports.deleteVariable = exports.setVariable = exports.getVariable = exports.string2regExp = exports.isObject = exports.cloneObject = exports.createObject = void 0;
|
4
|
-
exports.getRange = exports.
|
4
|
+
exports.getRange = exports.convertArrayValueToMoment = exports.JSONTraverse = exports.hashCode = exports.isClickOnInput = exports.normalizeNodePath = exports.removeHTMLTag = exports.detectPropValueChanged = exports.getPropValue = exports.getScrollbarWidth = exports.findObjectsWithKey = exports.SkipOperation = exports.loadScript = exports.mapObject = exports.chainEvents = exports.chainFunctions = exports.object2formData = exports.qsparse = exports.qsstringify = exports.hasFile = exports.sortArray = exports.bulkBindFunctions = exports.autobind = exports.pickEventsProps = exports.getLevelFromClassName = exports.getWidthRate = exports.camel = exports.lcFirst = exports.ucFirst = exports.getTreeParent = exports.getTreeAncestors = exports.getTreeDepth = exports.spliceTree = exports.flattenTree = exports.someTree = void 0;
|
5
5
|
var tslib_1 = require("tslib");
|
6
6
|
var isPlainObject_1 = (0, tslib_1.__importDefault)(require("lodash/isPlainObject"));
|
7
7
|
var isEqual_1 = (0, tslib_1.__importDefault)(require("lodash/isEqual"));
|
@@ -1232,28 +1232,17 @@ function JSONTraverse(json, mapper) {
|
|
1232
1232
|
});
|
1233
1233
|
}
|
1234
1234
|
exports.JSONTraverse = JSONTraverse;
|
1235
|
-
function
|
1235
|
+
function convertArrayValueToMoment(value, types, mom) {
|
1236
1236
|
if (value.length === 0)
|
1237
|
-
return
|
1237
|
+
return mom;
|
1238
1238
|
for (var i = 0; i < types.length; i++) {
|
1239
1239
|
var type = types[i];
|
1240
1240
|
// @ts-ignore
|
1241
|
-
|
1241
|
+
mom.set(type, value[i]);
|
1242
1242
|
}
|
1243
|
-
return
|
1243
|
+
return mom;
|
1244
1244
|
}
|
1245
|
-
exports.
|
1246
|
-
function convertDateToObject(value) {
|
1247
|
-
if (value) {
|
1248
|
-
return {
|
1249
|
-
year: value.year(),
|
1250
|
-
month: parseInt(value.format('MM'), 10),
|
1251
|
-
day: parseInt(value.format('DD'), 10)
|
1252
|
-
};
|
1253
|
-
}
|
1254
|
-
return null;
|
1255
|
-
}
|
1256
|
-
exports.convertDateToObject = convertDateToObject;
|
1245
|
+
exports.convertArrayValueToMoment = convertArrayValueToMoment;
|
1257
1246
|
function getRange(min, max, step) {
|
1258
1247
|
if (step === void 0) { step = 1; }
|
1259
1248
|
var arr = [];
|
package/lib/utils/helper.js.map
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/utils/helper.ts"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import isPlainObject from 'lodash/isPlainObject';\nimport isEqual from 'lodash/isEqual';\nimport isNaN from 'lodash/isNaN';\nimport uniq from 'lodash/uniq';\nimport last from 'lodash/last';\nimport {Schema, PlainObject, FunctionPropertyNames} from '../types';\nimport {evalExpression} from './tpl';\nimport qs from 'qs';\nimport {IIRendererStore} from '../store';\nimport {IFormStore} from '../store/form';\nimport {autobindMethod} from './autobind';\nimport {\n createObject,\n cloneObject,\n isObject,\n string2regExp,\n getVariable,\n setVariable,\n deleteVariable,\n keyToPath,\n isPureVariable,\n resolveVariable,\n resolveVariableAndFilter\n} from 'amis-formula';\nimport {isObservable} from 'mobx';\n\nexport {\n createObject,\n cloneObject,\n isObject,\n string2regExp,\n getVariable,\n setVariable,\n deleteVariable,\n keyToPath\n};\n\nexport function preventDefault(event: TouchEvent | Event): void {\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n}\n\nexport function isMobile() {\n return (window as any).matchMedia?.('(max-width: 768px)').matches;\n}\n\nexport function range(num: number, min: number, max: number): number {\n return Math.min(Math.max(num, min), max);\n}\n\n/**\n * 给目标对象添加其他属性,可读取但是不会被遍历。\n * @param target\n * @param props\n */\nexport function injectPropsToObject(target: any, props: any) {\n const sup = Object.create(target.__super || null);\n Object.keys(props).forEach(key => (sup[key] = props[key]));\n const result = Object.create(sup);\n Object.keys(target).forEach(key => (result[key] = target[key]));\n return result;\n}\n\nexport function extendObject(\n target: any,\n src?: any,\n persistOwnProps: boolean = true\n) {\n const obj = cloneObject(target, persistOwnProps);\n src && Object.keys(src).forEach(key => (obj[key] = src[key]));\n return obj;\n}\n\nexport function isSuperDataModified(\n data: any,\n prevData: any,\n store: IIRendererStore\n) {\n let keys: Array<string> = [];\n\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(store.data))\n );\n } else {\n keys = Object.keys(store.data);\n }\n\n if (Array.isArray(keys) && keys.length) {\n return keys.some(key => data[key] !== prevData[key]);\n }\n\n return false;\n}\n\nexport function syncDataFromSuper(\n data: any,\n superObject: any,\n prevSuperObject: any,\n store: IIRendererStore,\n force: boolean\n) {\n const obj = {\n ...data\n };\n\n let keys: Array<string> = [];\n\n // 如果是 form store,则从父级同步 formItem 种东西。\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(obj))\n );\n } else if (force) {\n keys = Object.keys(obj);\n }\n\n if (superObject || prevSuperObject) {\n keys.forEach(key => {\n if (!key) {\n return;\n }\n\n if (\n ((superObject && typeof superObject[key] !== 'undefined') ||\n (prevSuperObject && typeof prevSuperObject[key] !== 'undefined')) &&\n ((prevSuperObject && !superObject) ||\n (!prevSuperObject && superObject) ||\n prevSuperObject[key] !== superObject[key])\n ) {\n obj[key] = superObject[key];\n }\n });\n }\n\n return obj;\n}\n\n/**\n * 生成 8 位随机数字。\n *\n * @return {string} 8位随机数字\n */\nexport function guid() {\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n return s4() + s4() + s4();\n}\n\nexport function findIndex(\n arr: Array<any>,\n detect: (item?: any, index?: number) => boolean\n) {\n for (let i = 0, len = arr.length; i < len; i++) {\n if (detect(arr[i], i)) {\n return i;\n }\n }\n\n return -1;\n}\n\nexport function hasOwnProperty(\n data: {[propName: string]: any},\n key: string\n): boolean {\n const parts = keyToPath(key);\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (!isObject(data) || !data.hasOwnProperty(key)) {\n return false;\n }\n\n data = data[key];\n }\n\n return true;\n}\n\nexport function noop() {}\n\nexport function anyChanged(\n attrs: string | Array<string>,\n from: {[propName: string]: any},\n to: {[propName: string]: any},\n strictMode: boolean = true\n): boolean {\n return (typeof attrs === 'string' ? attrs.split(/\\s*,\\s*/) : attrs).some(\n key => (strictMode ? from[key] !== to[key] : from[key] != to[key])\n );\n}\n\nexport function rmUndefined(obj: PlainObject) {\n const newObj: PlainObject = {};\n\n if (typeof obj !== 'object') {\n return obj;\n }\n\n const keys = Object.keys(obj);\n keys.forEach(key => {\n if (obj[key] !== undefined) {\n newObj[key] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function isObjectShallowModified(\n prev: any,\n next: any,\n strictMode: boolean = true,\n ignoreUndefined: boolean = false,\n statck: Array<any> = []\n): boolean {\n if (Array.isArray(prev) && Array.isArray(next)) {\n return prev.length !== next.length\n ? true\n : prev.some((prev, index) =>\n isObjectShallowModified(\n prev,\n next[index],\n strictMode,\n ignoreUndefined,\n statck\n )\n );\n } else if (isNaN(prev) && isNaN(next)) {\n return false;\n } else if (\n null == prev ||\n null == next ||\n !isObject(prev) ||\n !isObject(next) ||\n isObservable(prev) ||\n isObservable(next)\n ) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (ignoreUndefined) {\n prev = rmUndefined(prev);\n next = rmUndefined(next);\n }\n\n const keys = Object.keys(prev);\n const nextKeys = Object.keys(next);\n if (\n keys.length !== nextKeys.length ||\n keys.sort().join(',') !== nextKeys.sort().join(',')\n ) {\n return true;\n }\n\n // 避免循环引用死循环。\n if (~statck.indexOf(prev)) {\n return false;\n }\n statck.push(prev);\n\n for (let i: number = keys.length - 1; i >= 0; i--) {\n let key = keys[i];\n if (\n isObjectShallowModified(\n prev[key],\n next[key],\n strictMode,\n ignoreUndefined,\n statck\n )\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function isArrayChildrenModified(\n prev: Array<any>,\n next: Array<any>,\n strictMode: boolean = true\n) {\n if (!Array.isArray(prev) || !Array.isArray(next)) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (prev.length !== next.length) {\n return true;\n }\n\n for (let i: number = prev.length - 1; i >= 0; i--) {\n if (strictMode ? prev[i] !== next[i] : prev[i] != next[i]) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function immutableExtends(to: any, from: any, deep = false) {\n // 不是对象,不可以merge\n if (!isObject(to) || !isObject(from)) {\n return to;\n }\n\n let ret = to;\n\n Object.keys(from).forEach(key => {\n const origin = to[key];\n const value = from[key];\n\n // todo 支持深度merge\n if (origin !== value) {\n // 一旦有修改,就创建个新对象。\n ret = ret !== to ? ret : {...to};\n ret[key] = value;\n }\n });\n\n return ret;\n}\n\n// 即将抛弃\nexport function makeColumnClassBuild(\n steps: number,\n classNameTpl: string = 'col-sm-$value'\n) {\n let count = 12;\n let step = Math.floor(count / steps);\n\n return function (schema: Schema) {\n if (\n schema.columnClassName &&\n /\\bcol-(?:xs|sm|md|lg)-(\\d+)\\b/.test(schema.columnClassName)\n ) {\n const flex = parseInt(RegExp.$1, 10);\n count -= flex;\n steps--;\n step = Math.floor(count / steps);\n return schema.columnClassName;\n } else if (schema.columnClassName) {\n count -= step;\n steps--;\n return schema.columnClassName;\n }\n\n count -= step;\n steps--;\n return classNameTpl.replace('$value', '' + step);\n };\n}\n\nexport function hasVisibleExpression(schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n}) {\n return schema?.visibleOn || schema?.hiddenOn;\n}\n\nexport function isVisible(\n schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n },\n data?: object\n) {\n return !(\n schema.hidden ||\n schema.visible === false ||\n (schema.hiddenOn && evalExpression(schema.hiddenOn, data) === true) ||\n (schema.visibleOn && evalExpression(schema.visibleOn, data) === false)\n );\n}\n\nexport function isUnfolded(\n node: any,\n config: {\n foldedField?: string;\n unfoldedField?: string;\n }\n): boolean {\n let {foldedField, unfoldedField} = config;\n\n unfoldedField = unfoldedField || 'unfolded';\n foldedField = foldedField || 'folded';\n\n let ret: boolean = false;\n if (unfoldedField && typeof node[unfoldedField] !== 'undefined') {\n ret = !!node[unfoldedField];\n } else if (foldedField && typeof node[foldedField] !== 'undefined') {\n ret = !node[foldedField];\n }\n\n return ret;\n}\n\n/**\n * 过滤掉被隐藏的数组元素\n */\nexport function visibilityFilter(items: any, data?: object) {\n return items.filter((item: any) => {\n return isVisible(item, data);\n });\n}\n\nexport function isDisabled(\n schema: {\n disabledOn?: string;\n disabled?: boolean;\n },\n data?: object\n) {\n return (\n schema.disabled ||\n (schema.disabledOn && evalExpression(schema.disabledOn, data))\n );\n}\n\nexport function hasAbility(\n schema: any,\n ability: string,\n data?: object,\n defaultValue: boolean = true\n): boolean {\n return schema.hasOwnProperty(ability)\n ? schema[ability]\n : schema.hasOwnProperty(`${ability}On`)\n ? evalExpression(schema[`${ability}On`], data || schema)\n : defaultValue;\n}\n\nexport function makeHorizontalDeeper(\n horizontal: {\n left: string;\n right: string;\n offset: string;\n leftFixed?: any;\n },\n count: number\n): {\n left: string | number;\n right: string | number;\n offset: string | number;\n leftFixed?: any;\n} {\n if (count > 1 && /\\bcol-(xs|sm|md|lg)-(\\d+)\\b/.test(horizontal.left)) {\n const flex = parseInt(RegExp.$2, 10) * count;\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n } else if (count > 1 && typeof horizontal.left === 'number') {\n const flex = horizontal.left * count;\n\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n }\n\n return horizontal;\n}\n\nexport function promisify<T extends Function>(\n fn: T\n): (...args: Array<any>) => Promise<any> & {\n raw: T;\n} {\n let promisified = function () {\n try {\n const ret = fn.apply(null, arguments);\n if (ret && ret.then) {\n return ret;\n } else if (typeof ret === 'function') {\n // thunk support\n return new Promise((resolve, reject) =>\n ret((error: boolean, value: any) =>\n error ? reject(error) : resolve(value)\n )\n );\n }\n return Promise.resolve(ret);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n (promisified as any).raw = fn;\n return promisified;\n}\n\nexport function getScrollParent(node: HTMLElement): HTMLElement | null {\n if (node == null) {\n return null;\n }\n\n const style = getComputedStyle(node);\n\n if (!style) {\n return null;\n }\n\n const text =\n style.getPropertyValue('overflow') +\n style.getPropertyValue('overflow-x') +\n style.getPropertyValue('overflow-y');\n\n if (/auto|scroll/.test(text) || node.nodeName === 'BODY') {\n return node;\n }\n\n return getScrollParent(node.parentNode as HTMLElement);\n}\n\n/**\n * Deep diff between two object, using lodash\n * @param {Object} object Object compared\n * @param {Object} base Object to compare with\n * @return {Object} Return a new object who represent the diff\n */\nexport function difference<\n T extends {[propName: string]: any},\n U extends {[propName: string]: any}\n>(object: T, base: U, keepProps?: Array<string>): {[propName: string]: any} {\n function changes(object: T, base: U) {\n if (isObject(object) && isObject(base)) {\n const keys: Array<keyof T & keyof U> = uniq(\n Object.keys(object).concat(Object.keys(base))\n );\n let result: any = {};\n\n keys.forEach(key => {\n const a: any = object[key as keyof T];\n const b: any = base[key as keyof U];\n\n if (keepProps && ~keepProps.indexOf(key as string)) {\n result[key] = a;\n }\n\n if (isEqual(a, b)) {\n return;\n }\n\n if (!object.hasOwnProperty(key)) {\n result[key] = undefined;\n } else if (Array.isArray(a) && Array.isArray(b)) {\n result[key] = a;\n } else {\n result[key] = changes(a as any, b as any);\n }\n });\n\n return result;\n } else {\n return object;\n }\n }\n return changes(object, base);\n}\n\nexport const padArr = (arr: Array<any>, size = 4): Array<Array<any>> => {\n const ret: Array<Array<any>> = [];\n const pool: Array<any> = arr.concat();\n let from = 0;\n\n while (pool.length) {\n let host: Array<any> = ret[from] || (ret[from] = []);\n\n if (host.length >= size) {\n from += 1;\n continue;\n }\n\n host.push(pool.shift());\n }\n\n return ret;\n};\n\nexport function __uri(id: string) {\n return id;\n}\n\n// xs < 768px\n// sm >= 768px\n// md >= 992px\n// lg >= 1200px\nexport function isBreakpoint(str: string): boolean {\n if (typeof str !== 'string') {\n return !!str;\n }\n\n const breaks = str.split(/\\s*,\\s*|\\s+/);\n\n if ((window as any).matchMedia) {\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' &&\n matchMedia(`screen and (max-width: 767px)`).matches) ||\n (item === 'sm' &&\n matchMedia(`screen and (min-width: 768px) and (max-width: 991px)`)\n .matches) ||\n (item === 'md' &&\n matchMedia(`screen and (min-width: 992px) and (max-width: 1199px)`)\n .matches) ||\n (item === 'lg' && matchMedia(`screen and (min-width: 1200px)`).matches)\n );\n } else {\n const width = window.innerWidth;\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' && width < 768) ||\n (item === 'sm' && width >= 768 && width < 992) ||\n (item === 'md' && width >= 992 && width < 1200) ||\n (item === 'lg' && width >= 1200)\n );\n }\n}\n\nexport function until(\n fn: () => Promise<any>,\n when: (ret: any) => boolean,\n getCanceler: (fn: () => any) => void,\n interval: number = 5000\n) {\n let timer: ReturnType<typeof setTimeout>;\n let stoped: boolean = false;\n\n return new Promise((resolve, reject) => {\n let cancel = () => {\n clearTimeout(timer);\n stoped = true;\n };\n\n let check = async () => {\n try {\n const ret = await fn();\n\n if (stoped) {\n return;\n } else if (when(ret)) {\n stoped = true;\n resolve(ret);\n } else {\n timer = setTimeout(check, interval);\n }\n } catch (e) {\n reject(e);\n }\n };\n\n check();\n getCanceler && getCanceler(cancel);\n });\n}\n\nexport function omitControls(\n controls: Array<any>,\n omitItems: Array<string>\n): Array<any> {\n return controls.filter(\n control => !~omitItems.indexOf(control.name || control._name)\n );\n}\n\nexport function isEmpty(thing: any) {\n if (isObject(thing) && Object.keys(thing).length) {\n return false;\n }\n\n return true;\n}\n\n/**\n * 基于时间戳的 uuid\n *\n * @returns uniqueId\n */\nexport const uuid = () => {\n return (+new Date()).toString(36);\n};\n\n// 参考 https://github.com/streamich/v4-uuid\nconst str = () =>\n (\n '00000000000000000' + (Math.random() * 0xffffffffffffffff).toString(16)\n ).slice(-16);\n\nexport const uuidv4 = () => {\n const a = str();\n const b = str();\n return (\n a.slice(0, 8) +\n '-' +\n a.slice(8, 12) +\n '-4' +\n a.slice(13) +\n '-a' +\n b.slice(1, 4) +\n '-' +\n b.slice(4)\n );\n};\n\nexport interface TreeItem {\n children?: TreeArray;\n [propName: string]: any;\n}\nexport interface TreeArray extends Array<TreeItem> {}\n\n/**\n * 类似于 arr.map 方法,此方法主要针对类似下面示例的树形结构。\n * [\n * {\n * children: []\n * },\n * // 其他成员\n * ]\n *\n * @param {Tree} tree 树形数据\n * @param {Function} iterator 处理函数,返回的数据会被替换成新的。\n * @return {Tree} 返回处理过的 tree\n */\nexport function mapTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => T,\n level: number = 1,\n depthFirst: boolean = false,\n paths: Array<T> = []\n) {\n return tree.map((item: any, index) => {\n if (depthFirst) {\n let children: TreeArray | undefined = item.children\n ? mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n )\n : undefined;\n children && (item = {...item, children: children});\n item = iterator(item, index, level, paths) || {...(item as object)};\n return item;\n }\n\n item = iterator(item, index, level, paths) || {...(item as object)};\n\n if (item.children && item.children.splice) {\n item.children = mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n );\n }\n\n return item;\n });\n}\n\n/**\n * 遍历树\n * @param tree\n * @param iterator\n */\nexport function eachTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1\n) {\n tree.map((item, index) => {\n iterator(item, index, level);\n\n if (item.children && item.children.splice) {\n eachTree(item.children, iterator, level + 1);\n }\n });\n}\n\n/**\n * 在树中查找节点。\n * @param tree\n * @param iterator\n */\nexport function findTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): T | null {\n let result: T | null = null;\n\n everyTree(tree, (item, key, level, paths) => {\n if (iterator(item, key, level, paths)) {\n result = item;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 在树中查找节点, 返回下标数组。\n * @param tree\n * @param iterator\n */\nexport function findTreeIndex<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): Array<number> | undefined {\n let idx: Array<number> = [];\n\n findTree(tree, (item, index, level, paths) => {\n if (iterator(item, index, level, paths)) {\n idx = [index];\n\n paths = paths.concat();\n paths.unshift({\n children: tree\n } as any);\n\n for (let i = paths.length - 1; i > 0; i--) {\n const prev = paths[i - 1];\n const current = paths[i];\n idx.unshift(prev.children!.indexOf(current));\n }\n\n return true;\n }\n return false;\n });\n\n return idx.length ? idx : undefined;\n}\n\nexport function getTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number\n): T | undefined | null {\n const indexes = Array.isArray(idx) ? idx.concat() : [idx];\n const lastIndex = indexes.pop()!;\n let list: Array<T> | null = tree;\n for (let i = 0, len = indexes.length; i < len; i++) {\n const index = indexes[i];\n if (!list![index]) {\n list = null;\n break;\n }\n list = list![index].children as any;\n }\n return list ? list[lastIndex] : undefined;\n}\n\n/**\n * 过滤树节点\n *\n * @param tree\n * @param iterator\n */\nexport function filterTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1,\n depthFirst: boolean = false\n) {\n if (depthFirst) {\n return tree\n .map(item => {\n let children: TreeArray | undefined = item.children\n ? filterTree(item.children, iterator, level + 1, depthFirst)\n : undefined;\n\n if (Array.isArray(children) && Array.isArray(item.children)) {\n item = {...item, children: children};\n }\n\n return item;\n })\n .filter((item, index) => iterator(item, index, level));\n }\n\n return tree\n .filter((item, index) => iterator(item, index, level))\n .map(item => {\n if (item.children && item.children.splice) {\n let children = filterTree(\n item.children,\n iterator,\n level + 1,\n depthFirst\n );\n\n if (Array.isArray(children) && Array.isArray(item.children)) {\n item = {...item, children: children};\n }\n }\n return item;\n });\n}\n\n/**\n * 判断树中每个节点是否满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function everyTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (\n item: T,\n key: number,\n level: number,\n paths: Array<T>,\n indexes: Array<number>\n ) => boolean,\n level: number = 1,\n paths: Array<T> = [],\n indexes: Array<number> = []\n): boolean {\n return tree.every((item, index) => {\n const value: any = iterator(item, index, level, paths, indexes);\n\n if (value && item.children && item.children.splice) {\n return everyTree(\n item.children,\n iterator,\n level + 1,\n paths.concat(item),\n indexes.concat(index)\n );\n }\n\n return value;\n });\n}\n\n/**\n * 判断树中是否有某些节点满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function someTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => boolean\n): boolean {\n let result = false;\n\n everyTree(tree, (item: T, key: number, level: number, paths: Array<T>) => {\n if (iterator(item, key, level, paths)) {\n result = true;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 将树打平变成一维数组,可以传入第二个参数实现打平节点中的其他属性。\n *\n * 比如:\n *\n * flattenTree([\n * {\n * id: 1,\n * children: [\n * { id: 2 },\n * { id: 3 },\n * ]\n * }\n * ], item => item.id); // 输出位 [1, 2, 3]\n *\n * @param tree\n * @param mapper\n */\nexport function flattenTree<T extends TreeItem>(tree: Array<T>): Array<T>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper: (value: T, index: number) => U\n): Array<U>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper?: (value: T, index: number) => U\n): Array<U> {\n let flattened: Array<any> = [];\n eachTree(tree, (item, index) =>\n flattened.push(mapper ? mapper(item, index) : item)\n );\n return flattened;\n}\n\n/**\n * 操作树,遵循 imutable, 每次返回一个新的树。\n * 类似数组的 splice 不同的地方这个方法不修改原始数据,\n * 同时第二个参数不是下标,而是下标数组,分别代表每一层的下标。\n *\n * 至于如何获取下标数组,请查看 findTreeIndex\n *\n * @param tree\n * @param idx\n * @param deleteCount\n * @param ...items\n */\nexport function spliceTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number,\n deleteCount: number = 0,\n ...items: Array<T>\n): Array<T> {\n const list = tree.concat();\n if (typeof idx === 'number') {\n list.splice(idx, deleteCount, ...items);\n } else if (Array.isArray(idx) && idx.length) {\n idx = idx.concat();\n const lastIdx = idx.pop()!;\n let host = idx.reduce((list: Array<T>, idx) => {\n const child = {\n ...list[idx],\n children: list[idx].children ? list[idx].children!.concat() : []\n };\n list[idx] = child;\n return child.children;\n }, list);\n host.splice(lastIdx, deleteCount, ...items);\n }\n\n return list;\n}\n\n/**\n * 计算树的深度\n * @param tree\n */\nexport function getTreeDepth<T extends TreeItem>(tree: Array<T>): number {\n return Math.max(\n ...tree.map(item => {\n if (Array.isArray(item.children)) {\n return 1 + getTreeDepth(item.children);\n }\n\n return 1;\n })\n );\n}\n\n/**\n * 从树中获取某个值的所有祖先\n * @param tree\n * @param value\n */\nexport function getTreeAncestors<T extends TreeItem>(\n tree: Array<T>,\n value: T,\n includeSelf = false\n): Array<T> | null {\n let ancestors: Array<T> | null = null;\n\n findTree(tree, (item, index, level, paths) => {\n if (item === value) {\n ancestors = paths;\n if (includeSelf) {\n ancestors.push(item);\n }\n return true;\n }\n return false;\n });\n\n return ancestors;\n}\n\n/**\n * 从树中获取某个值的上级\n * @param tree\n * @param value\n */\nexport function getTreeParent<T extends TreeItem>(tree: Array<T>, value: T) {\n const ancestors = getTreeAncestors(tree, value);\n return ancestors?.length ? ancestors[ancestors.length - 1] : null;\n}\n\nexport function ucFirst(str?: string) {\n return typeof str === 'string'\n ? str.substring(0, 1).toUpperCase() + str.substring(1)\n : str;\n}\n\nexport function lcFirst(str?: string) {\n return str ? str.substring(0, 1).toLowerCase() + str.substring(1) : '';\n}\n\nexport function camel(str?: string) {\n return str\n ? str\n .split(/[\\s_\\-]/)\n .map((item, index) => (index === 0 ? lcFirst(item) : ucFirst(item)))\n .join('')\n : '';\n}\n\nexport function getWidthRate(value: any, strictMode = false): number {\n if (typeof value === 'string' && /\\bcol\\-\\w+\\-(\\d+)\\b/.test(value)) {\n return parseInt(RegExp.$1, 10);\n }\n\n return strictMode ? 0 : value || 0;\n}\n\nexport function getLevelFromClassName(\n value: string,\n defaultValue: string = 'default'\n) {\n if (\n /\\b(?:btn|text)-(link|primary|secondary|info|success|warning|danger|light|dark)\\b/.test(\n value\n )\n ) {\n return RegExp.$1;\n }\n\n return defaultValue;\n}\n\nexport function pickEventsProps(props: any) {\n const ret: any = {};\n props &&\n Object.keys(props).forEach(\n key => /^on/.test(key) && (ret[key] = props[key])\n );\n return ret;\n}\n\nexport const autobind = autobindMethod;\n\nexport const bulkBindFunctions = function <\n T extends {\n [propName: string]: any;\n }\n>(context: T, funNames: Array<FunctionPropertyNames<T>>) {\n funNames.forEach(key => (context[key] = context[key].bind(context)));\n};\n\nexport function sortArray<T extends any>(\n items: Array<T>,\n field: string,\n dir: -1 | 1\n): Array<T> {\n return items.sort((a: any, b: any) => {\n let ret: number;\n const a1 = a[field];\n const b1 = b[field];\n\n if (typeof a1 === 'number' && typeof b1 === 'number') {\n ret = a1 < b1 ? -1 : a1 === b1 ? 0 : 1;\n } else {\n ret = String(a1).localeCompare(String(b1));\n }\n\n return ret * dir;\n });\n}\n\n// 只判断一层, 如果层级很深,form-data 也不好表达。\nexport function hasFile(object: any): boolean {\n return Object.keys(object).some(key => {\n let value = object[key];\n\n return (\n value instanceof File ||\n (Array.isArray(value) && value.length && value[0] instanceof File)\n );\n });\n}\n\nexport function qsstringify(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n keepEmptyArray?: boolean\n) {\n // qs会保留空字符串。fix: Combo模式的空数组,无法清空。改为存为空字符串;只转换一层\n keepEmptyArray &&\n Object.keys(data).forEach((key: any) => {\n Array.isArray(data[key]) && !data[key].length && (data[key] = '');\n });\n return qs.stringify(data, options);\n}\n\nexport function qsparse(\n data: string,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true,\n depth: 1000 // 默认是 5, 所以condition-builder只要来个条件组就会导致报错\n }\n) {\n return qs.parse(data, options);\n}\n\nexport function object2formData(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n fd: FormData = new FormData()\n): any {\n let fileObjects: any = [];\n let others: any = {};\n\n Object.keys(data).forEach(key => {\n const value = data[key];\n\n if (value instanceof File) {\n fileObjects.push([key, value]);\n } else if (\n Array.isArray(value) &&\n value.length &&\n value[0] instanceof File\n ) {\n value.forEach(value => fileObjects.push([`${key}[]`, value]));\n } else {\n others[key] = value;\n }\n });\n\n // 因为 key 的格式太多了,偷个懒,用 qs 来处理吧。\n qsstringify(others, options)\n .split('&')\n .forEach(item => {\n let parts = item.split('=');\n // form-data/multipart 是不需要 encode 值的。\n parts[0] && fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fileObjects.forEach((fileObject: any[]) =>\n fd.append(fileObject[0], fileObject[1], fileObject[1].name)\n );\n\n return fd;\n}\n\nexport function chainFunctions(\n ...fns: Array<(...args: Array<any>) => void>\n): (...args: Array<any>) => void {\n return (...args: Array<any>) =>\n fns.reduce(\n (ret: any, fn: any) =>\n ret === false\n ? false\n : typeof fn == 'function'\n ? fn(...args)\n : undefined,\n undefined\n );\n}\n\nexport function chainEvents(props: any, schema: any) {\n const ret: any = {};\n\n Object.keys(props).forEach(key => {\n if (\n key.substr(0, 2) === 'on' &&\n typeof props[key] === 'function' &&\n typeof schema[key] === 'function' &&\n schema[key] !== props[key]\n ) {\n // 表单项里面的 onChange 很特殊,这个不要处理。\n if (props.formStore && key === 'onChange') {\n ret[key] = props[key];\n } else {\n ret[key] = chainFunctions(schema[key], props[key]);\n }\n } else {\n ret[key] = props[key];\n }\n });\n\n return ret;\n}\n\nexport function mapObject(value: any, fn: Function): any {\n if (Array.isArray(value)) {\n return value.map(item => mapObject(item, fn));\n }\n if (isObject(value)) {\n let tmpValue = {...value};\n Object.keys(tmpValue).forEach(key => {\n (tmpValue as PlainObject)[key] = mapObject(\n (tmpValue as PlainObject)[key],\n fn\n );\n });\n return tmpValue;\n }\n return fn(value);\n}\n\nexport function loadScript(src: string) {\n return new Promise<void>((ok, fail) => {\n const script = document.createElement('script');\n script.onerror = reason => fail(reason);\n\n if (~src.indexOf('{{callback}}')) {\n const callbackFn = `loadscriptcallback_${uuid()}`;\n (window as any)[callbackFn] = () => {\n ok();\n delete (window as any)[callbackFn];\n };\n src = src.replace('{{callback}}', callbackFn);\n } else {\n script.onload = () => ok();\n }\n\n script.src = src;\n document.head.appendChild(script);\n });\n}\n\nexport class SkipOperation extends Error {}\n\n/**\n * 检查对象是否有循环引用,来自 https://stackoverflow.com/a/34909127\n * @param obj\n */\nfunction isCyclic(obj: any): boolean {\n const seenObjects: any = [];\n function detect(obj: any) {\n if (obj && typeof obj === 'object') {\n if (seenObjects.indexOf(obj) !== -1) {\n return true;\n }\n seenObjects.push(obj);\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && detect(obj[key])) {\n return true;\n }\n }\n }\n return false;\n }\n return detect(obj);\n}\n\nfunction internalFindObjectsWithKey(obj: any, key: string) {\n let objects: any[] = [];\n for (const k in obj) {\n if (!obj.hasOwnProperty(k)) continue;\n if (k === key) {\n objects.push(obj);\n } else if (typeof obj[k] === 'object') {\n objects = objects.concat(internalFindObjectsWithKey(obj[k], key));\n }\n }\n return objects;\n}\n\n/**\n * 深度查找具有某个 key 名字段的对象,实际实现是 internalFindObjectsWithKey,这里包一层是为了做循环引用检测\n * @param obj\n * @param key\n */\nexport function findObjectsWithKey(obj: any, key: string) {\n // 避免循环引用导致死循环\n if (isCyclic(obj)) {\n return [];\n }\n return internalFindObjectsWithKey(obj, key);\n}\n\nlet scrollbarWidth: number;\n\n/**\n * 获取浏览器滚动条宽度 https://stackoverflow.com/a/13382873\n */\n\nexport function getScrollbarWidth() {\n if (typeof scrollbarWidth !== 'undefined') {\n return scrollbarWidth;\n }\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n // @ts-ignore\n outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n scrollbarWidth = outer.offsetWidth - inner.offsetWidth;\n\n // Removing temporary elements from the DOM\n // @ts-ignore\n outer.parentNode.removeChild(outer);\n\n return scrollbarWidth;\n}\n\nfunction resolveValueByName(data: any, name?: string) {\n return isPureVariable(name)\n ? resolveVariableAndFilter(name, data)\n : resolveVariable(name, data);\n}\n\n// 统一的获取 value 值方法\nexport function getPropValue<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(props: T, getter?: (props: T) => any) {\n const {name, value, data, defaultValue} = props;\n return (\n value ?? getter?.(props) ?? resolveValueByName(data, name) ?? defaultValue\n );\n}\n\n// 检测 value 是否有变化,有变化就执行 onChange\nexport function detectPropValueChanged<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(\n props: T,\n prevProps: T,\n onChange: (value: any) => void,\n getter?: (props: T) => any\n) {\n let nextValue: any;\n if (typeof props.value !== 'undefined') {\n props.value !== prevProps.value && onChange(props.value);\n } else if ((nextValue = getter?.(props)) !== undefined) {\n nextValue !== getter!(prevProps) && onChange(nextValue);\n } else if (\n typeof props.name === 'string' &&\n (nextValue = resolveValueByName(props.data, props.name)) !== undefined\n ) {\n nextValue !== resolveValueByName(prevProps.data, prevProps.name) &&\n onChange(nextValue);\n } else if (props.defaultValue !== prevProps.defaultValue) {\n onChange(props.defaultValue);\n }\n}\n\n// 去掉字符串中的 html 标签,不完全准确但效率比较高\nexport function removeHTMLTag(str: string) {\n return typeof str === 'string' ? str.replace(/<\\/?[^>]+(>|$)/g, '') : str;\n}\n\n/**\n * 将路径格式的value转换成普通格式的value值\n *\n * @example\n *\n * 'a/b/c' => 'c';\n * {label: 'A/B/C', value: 'a/b/c'} => {label: 'C', value: 'c'};\n * 'a/b/c,a/d' => 'c,d';\n * ['a/b/c', 'a/d'] => ['c', 'd'];\n * [{label: 'A/B/C', value: 'a/b/c'},{label: 'A/D', value: 'a/d'}] => [{label: 'C', value: 'c'},{label: 'D', value: 'd'}]\n */\nexport function normalizeNodePath(\n value: any,\n enableNodePath: boolean,\n labelField: string = 'label',\n valueField: string = 'value',\n pathSeparator: string = '/',\n delimiter: string = ','\n) {\n const nodeValueArray: any[] = [];\n const nodePathArray: any[] = [];\n const getLastNodeFromPath = (path: any) =>\n last(path ? path.toString().split(pathSeparator) : []);\n\n if (typeof value === 'undefined' || !enableNodePath) {\n return {nodeValueArray, nodePathArray};\n }\n\n // 尾节点为当前options中value值\n if (Array.isArray(value)) {\n value.forEach(nodePath => {\n if (nodePath && nodePath.hasOwnProperty(valueField)) {\n nodeValueArray.push({\n ...nodePath,\n [labelField]: getLastNodeFromPath(nodePath[labelField]),\n [valueField]: getLastNodeFromPath(nodePath[valueField])\n });\n nodePathArray.push(nodePath[valueField]);\n } else {\n nodeValueArray.push(getLastNodeFromPath(nodePath));\n nodePathArray.push(nodePath);\n }\n });\n } else if (typeof value === 'string') {\n value\n .toString()\n .split(delimiter)\n .forEach(path => {\n nodeValueArray.push(getLastNodeFromPath(path));\n nodePathArray.push(path);\n });\n } else {\n nodeValueArray.push({\n ...value,\n [labelField]: getLastNodeFromPath(value[labelField]),\n [valueField || 'value']: getLastNodeFromPath(value[valueField])\n });\n nodePathArray.push(value[valueField]);\n }\n\n return {nodeValueArray, nodePathArray};\n}\n\n// 主要用于排除点击输入框和链接等情况\nexport function isClickOnInput(e: React.MouseEvent<HTMLElement>) {\n const target: HTMLElement = e.target as HTMLElement;\n let formItem;\n if (\n !e.currentTarget.contains(target) ||\n ~['INPUT', 'TEXTAREA'].indexOf(target.tagName) ||\n ((formItem = target.closest(`button, a, [data-role=\"form-item\"]`)) &&\n e.currentTarget.contains(formItem))\n ) {\n return true;\n }\n return false;\n}\n\n// 计算字符串 hash\nexport function hashCode(s: string): number {\n return s.split('').reduce((a, b) => {\n a = (a << 5) - a + b.charCodeAt(0);\n return a & a;\n }, 0);\n}\n\n/**\n * 遍历 schema\n * @param json\n * @param mapper\n */\nexport function JSONTraverse(\n json: any,\n mapper: (value: any, key: string | number, host: Object) => any\n) {\n Object.keys(json).forEach(key => {\n const value: any = json[key];\n if (isPlainObject(value) || Array.isArray(value)) {\n JSONTraverse(value, mapper);\n } else {\n mapper(value, key, json);\n }\n });\n}\n\nexport function convertDateArrayToDate(\n value: number[],\n types: string[],\n date: moment.Moment\n): moment.Moment | null {\n if (value.length === 0) return date;\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n // @ts-ignore\n date[type](value[i]);\n }\n return date;\n}\n\nexport function convertDateToObject(value: moment.Moment) {\n if (value) {\n return {\n year: value.year(),\n month: parseInt(value.format('MM'), 10),\n day: parseInt(value.format('DD'), 10)\n };\n }\n return null;\n}\n\nexport function getRange(min: number, max: number, step: number = 1) {\n const arr = [];\n for (let i = min; i <= max; i += step) {\n arr.push(i);\n }\n return arr;\n}\n"
|
11
|
+
"import isPlainObject from 'lodash/isPlainObject';\nimport isEqual from 'lodash/isEqual';\nimport isNaN from 'lodash/isNaN';\nimport uniq from 'lodash/uniq';\nimport last from 'lodash/last';\nimport {Schema, PlainObject, FunctionPropertyNames} from '../types';\nimport {evalExpression} from './tpl';\nimport qs from 'qs';\nimport {IIRendererStore} from '../store';\nimport {IFormStore} from '../store/form';\nimport {autobindMethod} from './autobind';\nimport {\n createObject,\n cloneObject,\n isObject,\n string2regExp,\n getVariable,\n setVariable,\n deleteVariable,\n keyToPath,\n isPureVariable,\n resolveVariable,\n resolveVariableAndFilter\n} from 'amis-formula';\nimport {isObservable} from 'mobx';\n\nexport {\n createObject,\n cloneObject,\n isObject,\n string2regExp,\n getVariable,\n setVariable,\n deleteVariable,\n keyToPath\n};\n\nexport function preventDefault(event: TouchEvent | Event): void {\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n}\n\nexport function isMobile() {\n return (window as any).matchMedia?.('(max-width: 768px)').matches;\n}\n\nexport function range(num: number, min: number, max: number): number {\n return Math.min(Math.max(num, min), max);\n}\n\n/**\n * 给目标对象添加其他属性,可读取但是不会被遍历。\n * @param target\n * @param props\n */\nexport function injectPropsToObject(target: any, props: any) {\n const sup = Object.create(target.__super || null);\n Object.keys(props).forEach(key => (sup[key] = props[key]));\n const result = Object.create(sup);\n Object.keys(target).forEach(key => (result[key] = target[key]));\n return result;\n}\n\nexport function extendObject(\n target: any,\n src?: any,\n persistOwnProps: boolean = true\n) {\n const obj = cloneObject(target, persistOwnProps);\n src && Object.keys(src).forEach(key => (obj[key] = src[key]));\n return obj;\n}\n\nexport function isSuperDataModified(\n data: any,\n prevData: any,\n store: IIRendererStore\n) {\n let keys: Array<string> = [];\n\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(store.data))\n );\n } else {\n keys = Object.keys(store.data);\n }\n\n if (Array.isArray(keys) && keys.length) {\n return keys.some(key => data[key] !== prevData[key]);\n }\n\n return false;\n}\n\nexport function syncDataFromSuper(\n data: any,\n superObject: any,\n prevSuperObject: any,\n store: IIRendererStore,\n force: boolean\n) {\n const obj = {\n ...data\n };\n\n let keys: Array<string> = [];\n\n // 如果是 form store,则从父级同步 formItem 种东西。\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(obj))\n );\n } else if (force) {\n keys = Object.keys(obj);\n }\n\n if (superObject || prevSuperObject) {\n keys.forEach(key => {\n if (!key) {\n return;\n }\n\n if (\n ((superObject && typeof superObject[key] !== 'undefined') ||\n (prevSuperObject && typeof prevSuperObject[key] !== 'undefined')) &&\n ((prevSuperObject && !superObject) ||\n (!prevSuperObject && superObject) ||\n prevSuperObject[key] !== superObject[key])\n ) {\n obj[key] = superObject[key];\n }\n });\n }\n\n return obj;\n}\n\n/**\n * 生成 8 位随机数字。\n *\n * @return {string} 8位随机数字\n */\nexport function guid() {\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n return s4() + s4() + s4();\n}\n\nexport function findIndex(\n arr: Array<any>,\n detect: (item?: any, index?: number) => boolean\n) {\n for (let i = 0, len = arr.length; i < len; i++) {\n if (detect(arr[i], i)) {\n return i;\n }\n }\n\n return -1;\n}\n\nexport function hasOwnProperty(\n data: {[propName: string]: any},\n key: string\n): boolean {\n const parts = keyToPath(key);\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (!isObject(data) || !data.hasOwnProperty(key)) {\n return false;\n }\n\n data = data[key];\n }\n\n return true;\n}\n\nexport function noop() {}\n\nexport function anyChanged(\n attrs: string | Array<string>,\n from: {[propName: string]: any},\n to: {[propName: string]: any},\n strictMode: boolean = true\n): boolean {\n return (typeof attrs === 'string' ? attrs.split(/\\s*,\\s*/) : attrs).some(\n key => (strictMode ? from[key] !== to[key] : from[key] != to[key])\n );\n}\n\nexport function rmUndefined(obj: PlainObject) {\n const newObj: PlainObject = {};\n\n if (typeof obj !== 'object') {\n return obj;\n }\n\n const keys = Object.keys(obj);\n keys.forEach(key => {\n if (obj[key] !== undefined) {\n newObj[key] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function isObjectShallowModified(\n prev: any,\n next: any,\n strictMode: boolean = true,\n ignoreUndefined: boolean = false,\n statck: Array<any> = []\n): boolean {\n if (Array.isArray(prev) && Array.isArray(next)) {\n return prev.length !== next.length\n ? true\n : prev.some((prev, index) =>\n isObjectShallowModified(\n prev,\n next[index],\n strictMode,\n ignoreUndefined,\n statck\n )\n );\n } else if (isNaN(prev) && isNaN(next)) {\n return false;\n } else if (\n null == prev ||\n null == next ||\n !isObject(prev) ||\n !isObject(next) ||\n isObservable(prev) ||\n isObservable(next)\n ) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (ignoreUndefined) {\n prev = rmUndefined(prev);\n next = rmUndefined(next);\n }\n\n const keys = Object.keys(prev);\n const nextKeys = Object.keys(next);\n if (\n keys.length !== nextKeys.length ||\n keys.sort().join(',') !== nextKeys.sort().join(',')\n ) {\n return true;\n }\n\n // 避免循环引用死循环。\n if (~statck.indexOf(prev)) {\n return false;\n }\n statck.push(prev);\n\n for (let i: number = keys.length - 1; i >= 0; i--) {\n let key = keys[i];\n if (\n isObjectShallowModified(\n prev[key],\n next[key],\n strictMode,\n ignoreUndefined,\n statck\n )\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function isArrayChildrenModified(\n prev: Array<any>,\n next: Array<any>,\n strictMode: boolean = true\n) {\n if (!Array.isArray(prev) || !Array.isArray(next)) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (prev.length !== next.length) {\n return true;\n }\n\n for (let i: number = prev.length - 1; i >= 0; i--) {\n if (strictMode ? prev[i] !== next[i] : prev[i] != next[i]) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function immutableExtends(to: any, from: any, deep = false) {\n // 不是对象,不可以merge\n if (!isObject(to) || !isObject(from)) {\n return to;\n }\n\n let ret = to;\n\n Object.keys(from).forEach(key => {\n const origin = to[key];\n const value = from[key];\n\n // todo 支持深度merge\n if (origin !== value) {\n // 一旦有修改,就创建个新对象。\n ret = ret !== to ? ret : {...to};\n ret[key] = value;\n }\n });\n\n return ret;\n}\n\n// 即将抛弃\nexport function makeColumnClassBuild(\n steps: number,\n classNameTpl: string = 'col-sm-$value'\n) {\n let count = 12;\n let step = Math.floor(count / steps);\n\n return function (schema: Schema) {\n if (\n schema.columnClassName &&\n /\\bcol-(?:xs|sm|md|lg)-(\\d+)\\b/.test(schema.columnClassName)\n ) {\n const flex = parseInt(RegExp.$1, 10);\n count -= flex;\n steps--;\n step = Math.floor(count / steps);\n return schema.columnClassName;\n } else if (schema.columnClassName) {\n count -= step;\n steps--;\n return schema.columnClassName;\n }\n\n count -= step;\n steps--;\n return classNameTpl.replace('$value', '' + step);\n };\n}\n\nexport function hasVisibleExpression(schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n}) {\n return schema?.visibleOn || schema?.hiddenOn;\n}\n\nexport function isVisible(\n schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n },\n data?: object\n) {\n return !(\n schema.hidden ||\n schema.visible === false ||\n (schema.hiddenOn && evalExpression(schema.hiddenOn, data) === true) ||\n (schema.visibleOn && evalExpression(schema.visibleOn, data) === false)\n );\n}\n\nexport function isUnfolded(\n node: any,\n config: {\n foldedField?: string;\n unfoldedField?: string;\n }\n): boolean {\n let {foldedField, unfoldedField} = config;\n\n unfoldedField = unfoldedField || 'unfolded';\n foldedField = foldedField || 'folded';\n\n let ret: boolean = false;\n if (unfoldedField && typeof node[unfoldedField] !== 'undefined') {\n ret = !!node[unfoldedField];\n } else if (foldedField && typeof node[foldedField] !== 'undefined') {\n ret = !node[foldedField];\n }\n\n return ret;\n}\n\n/**\n * 过滤掉被隐藏的数组元素\n */\nexport function visibilityFilter(items: any, data?: object) {\n return items.filter((item: any) => {\n return isVisible(item, data);\n });\n}\n\nexport function isDisabled(\n schema: {\n disabledOn?: string;\n disabled?: boolean;\n },\n data?: object\n) {\n return (\n schema.disabled ||\n (schema.disabledOn && evalExpression(schema.disabledOn, data))\n );\n}\n\nexport function hasAbility(\n schema: any,\n ability: string,\n data?: object,\n defaultValue: boolean = true\n): boolean {\n return schema.hasOwnProperty(ability)\n ? schema[ability]\n : schema.hasOwnProperty(`${ability}On`)\n ? evalExpression(schema[`${ability}On`], data || schema)\n : defaultValue;\n}\n\nexport function makeHorizontalDeeper(\n horizontal: {\n left: string;\n right: string;\n offset: string;\n leftFixed?: any;\n },\n count: number\n): {\n left: string | number;\n right: string | number;\n offset: string | number;\n leftFixed?: any;\n} {\n if (count > 1 && /\\bcol-(xs|sm|md|lg)-(\\d+)\\b/.test(horizontal.left)) {\n const flex = parseInt(RegExp.$2, 10) * count;\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n } else if (count > 1 && typeof horizontal.left === 'number') {\n const flex = horizontal.left * count;\n\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n }\n\n return horizontal;\n}\n\nexport function promisify<T extends Function>(\n fn: T\n): (...args: Array<any>) => Promise<any> & {\n raw: T;\n} {\n let promisified = function () {\n try {\n const ret = fn.apply(null, arguments);\n if (ret && ret.then) {\n return ret;\n } else if (typeof ret === 'function') {\n // thunk support\n return new Promise((resolve, reject) =>\n ret((error: boolean, value: any) =>\n error ? reject(error) : resolve(value)\n )\n );\n }\n return Promise.resolve(ret);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n (promisified as any).raw = fn;\n return promisified;\n}\n\nexport function getScrollParent(node: HTMLElement): HTMLElement | null {\n if (node == null) {\n return null;\n }\n\n const style = getComputedStyle(node);\n\n if (!style) {\n return null;\n }\n\n const text =\n style.getPropertyValue('overflow') +\n style.getPropertyValue('overflow-x') +\n style.getPropertyValue('overflow-y');\n\n if (/auto|scroll/.test(text) || node.nodeName === 'BODY') {\n return node;\n }\n\n return getScrollParent(node.parentNode as HTMLElement);\n}\n\n/**\n * Deep diff between two object, using lodash\n * @param {Object} object Object compared\n * @param {Object} base Object to compare with\n * @return {Object} Return a new object who represent the diff\n */\nexport function difference<\n T extends {[propName: string]: any},\n U extends {[propName: string]: any}\n>(object: T, base: U, keepProps?: Array<string>): {[propName: string]: any} {\n function changes(object: T, base: U) {\n if (isObject(object) && isObject(base)) {\n const keys: Array<keyof T & keyof U> = uniq(\n Object.keys(object).concat(Object.keys(base))\n );\n let result: any = {};\n\n keys.forEach(key => {\n const a: any = object[key as keyof T];\n const b: any = base[key as keyof U];\n\n if (keepProps && ~keepProps.indexOf(key as string)) {\n result[key] = a;\n }\n\n if (isEqual(a, b)) {\n return;\n }\n\n if (!object.hasOwnProperty(key)) {\n result[key] = undefined;\n } else if (Array.isArray(a) && Array.isArray(b)) {\n result[key] = a;\n } else {\n result[key] = changes(a as any, b as any);\n }\n });\n\n return result;\n } else {\n return object;\n }\n }\n return changes(object, base);\n}\n\nexport const padArr = (arr: Array<any>, size = 4): Array<Array<any>> => {\n const ret: Array<Array<any>> = [];\n const pool: Array<any> = arr.concat();\n let from = 0;\n\n while (pool.length) {\n let host: Array<any> = ret[from] || (ret[from] = []);\n\n if (host.length >= size) {\n from += 1;\n continue;\n }\n\n host.push(pool.shift());\n }\n\n return ret;\n};\n\nexport function __uri(id: string) {\n return id;\n}\n\n// xs < 768px\n// sm >= 768px\n// md >= 992px\n// lg >= 1200px\nexport function isBreakpoint(str: string): boolean {\n if (typeof str !== 'string') {\n return !!str;\n }\n\n const breaks = str.split(/\\s*,\\s*|\\s+/);\n\n if ((window as any).matchMedia) {\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' &&\n matchMedia(`screen and (max-width: 767px)`).matches) ||\n (item === 'sm' &&\n matchMedia(`screen and (min-width: 768px) and (max-width: 991px)`)\n .matches) ||\n (item === 'md' &&\n matchMedia(`screen and (min-width: 992px) and (max-width: 1199px)`)\n .matches) ||\n (item === 'lg' && matchMedia(`screen and (min-width: 1200px)`).matches)\n );\n } else {\n const width = window.innerWidth;\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' && width < 768) ||\n (item === 'sm' && width >= 768 && width < 992) ||\n (item === 'md' && width >= 992 && width < 1200) ||\n (item === 'lg' && width >= 1200)\n );\n }\n}\n\nexport function until(\n fn: () => Promise<any>,\n when: (ret: any) => boolean,\n getCanceler: (fn: () => any) => void,\n interval: number = 5000\n) {\n let timer: ReturnType<typeof setTimeout>;\n let stoped: boolean = false;\n\n return new Promise((resolve, reject) => {\n let cancel = () => {\n clearTimeout(timer);\n stoped = true;\n };\n\n let check = async () => {\n try {\n const ret = await fn();\n\n if (stoped) {\n return;\n } else if (when(ret)) {\n stoped = true;\n resolve(ret);\n } else {\n timer = setTimeout(check, interval);\n }\n } catch (e) {\n reject(e);\n }\n };\n\n check();\n getCanceler && getCanceler(cancel);\n });\n}\n\nexport function omitControls(\n controls: Array<any>,\n omitItems: Array<string>\n): Array<any> {\n return controls.filter(\n control => !~omitItems.indexOf(control.name || control._name)\n );\n}\n\nexport function isEmpty(thing: any) {\n if (isObject(thing) && Object.keys(thing).length) {\n return false;\n }\n\n return true;\n}\n\n/**\n * 基于时间戳的 uuid\n *\n * @returns uniqueId\n */\nexport const uuid = () => {\n return (+new Date()).toString(36);\n};\n\n// 参考 https://github.com/streamich/v4-uuid\nconst str = () =>\n (\n '00000000000000000' + (Math.random() * 0xffffffffffffffff).toString(16)\n ).slice(-16);\n\nexport const uuidv4 = () => {\n const a = str();\n const b = str();\n return (\n a.slice(0, 8) +\n '-' +\n a.slice(8, 12) +\n '-4' +\n a.slice(13) +\n '-a' +\n b.slice(1, 4) +\n '-' +\n b.slice(4)\n );\n};\n\nexport interface TreeItem {\n children?: TreeArray;\n [propName: string]: any;\n}\nexport interface TreeArray extends Array<TreeItem> {}\n\n/**\n * 类似于 arr.map 方法,此方法主要针对类似下面示例的树形结构。\n * [\n * {\n * children: []\n * },\n * // 其他成员\n * ]\n *\n * @param {Tree} tree 树形数据\n * @param {Function} iterator 处理函数,返回的数据会被替换成新的。\n * @return {Tree} 返回处理过的 tree\n */\nexport function mapTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => T,\n level: number = 1,\n depthFirst: boolean = false,\n paths: Array<T> = []\n) {\n return tree.map((item: any, index) => {\n if (depthFirst) {\n let children: TreeArray | undefined = item.children\n ? mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n )\n : undefined;\n children && (item = {...item, children: children});\n item = iterator(item, index, level, paths) || {...(item as object)};\n return item;\n }\n\n item = iterator(item, index, level, paths) || {...(item as object)};\n\n if (item.children && item.children.splice) {\n item.children = mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n );\n }\n\n return item;\n });\n}\n\n/**\n * 遍历树\n * @param tree\n * @param iterator\n */\nexport function eachTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1\n) {\n tree.map((item, index) => {\n iterator(item, index, level);\n\n if (item.children && item.children.splice) {\n eachTree(item.children, iterator, level + 1);\n }\n });\n}\n\n/**\n * 在树中查找节点。\n * @param tree\n * @param iterator\n */\nexport function findTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): T | null {\n let result: T | null = null;\n\n everyTree(tree, (item, key, level, paths) => {\n if (iterator(item, key, level, paths)) {\n result = item;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 在树中查找节点, 返回下标数组。\n * @param tree\n * @param iterator\n */\nexport function findTreeIndex<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): Array<number> | undefined {\n let idx: Array<number> = [];\n\n findTree(tree, (item, index, level, paths) => {\n if (iterator(item, index, level, paths)) {\n idx = [index];\n\n paths = paths.concat();\n paths.unshift({\n children: tree\n } as any);\n\n for (let i = paths.length - 1; i > 0; i--) {\n const prev = paths[i - 1];\n const current = paths[i];\n idx.unshift(prev.children!.indexOf(current));\n }\n\n return true;\n }\n return false;\n });\n\n return idx.length ? idx : undefined;\n}\n\nexport function getTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number\n): T | undefined | null {\n const indexes = Array.isArray(idx) ? idx.concat() : [idx];\n const lastIndex = indexes.pop()!;\n let list: Array<T> | null = tree;\n for (let i = 0, len = indexes.length; i < len; i++) {\n const index = indexes[i];\n if (!list![index]) {\n list = null;\n break;\n }\n list = list![index].children as any;\n }\n return list ? list[lastIndex] : undefined;\n}\n\n/**\n * 过滤树节点\n *\n * @param tree\n * @param iterator\n */\nexport function filterTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1,\n depthFirst: boolean = false\n) {\n if (depthFirst) {\n return tree\n .map(item => {\n let children: TreeArray | undefined = item.children\n ? filterTree(item.children, iterator, level + 1, depthFirst)\n : undefined;\n\n if (Array.isArray(children) && Array.isArray(item.children)) {\n item = {...item, children: children};\n }\n\n return item;\n })\n .filter((item, index) => iterator(item, index, level));\n }\n\n return tree\n .filter((item, index) => iterator(item, index, level))\n .map(item => {\n if (item.children && item.children.splice) {\n let children = filterTree(\n item.children,\n iterator,\n level + 1,\n depthFirst\n );\n\n if (Array.isArray(children) && Array.isArray(item.children)) {\n item = {...item, children: children};\n }\n }\n return item;\n });\n}\n\n/**\n * 判断树中每个节点是否满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function everyTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (\n item: T,\n key: number,\n level: number,\n paths: Array<T>,\n indexes: Array<number>\n ) => boolean,\n level: number = 1,\n paths: Array<T> = [],\n indexes: Array<number> = []\n): boolean {\n return tree.every((item, index) => {\n const value: any = iterator(item, index, level, paths, indexes);\n\n if (value && item.children && item.children.splice) {\n return everyTree(\n item.children,\n iterator,\n level + 1,\n paths.concat(item),\n indexes.concat(index)\n );\n }\n\n return value;\n });\n}\n\n/**\n * 判断树中是否有某些节点满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function someTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => boolean\n): boolean {\n let result = false;\n\n everyTree(tree, (item: T, key: number, level: number, paths: Array<T>) => {\n if (iterator(item, key, level, paths)) {\n result = true;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 将树打平变成一维数组,可以传入第二个参数实现打平节点中的其他属性。\n *\n * 比如:\n *\n * flattenTree([\n * {\n * id: 1,\n * children: [\n * { id: 2 },\n * { id: 3 },\n * ]\n * }\n * ], item => item.id); // 输出位 [1, 2, 3]\n *\n * @param tree\n * @param mapper\n */\nexport function flattenTree<T extends TreeItem>(tree: Array<T>): Array<T>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper: (value: T, index: number) => U\n): Array<U>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper?: (value: T, index: number) => U\n): Array<U> {\n let flattened: Array<any> = [];\n eachTree(tree, (item, index) =>\n flattened.push(mapper ? mapper(item, index) : item)\n );\n return flattened;\n}\n\n/**\n * 操作树,遵循 imutable, 每次返回一个新的树。\n * 类似数组的 splice 不同的地方这个方法不修改原始数据,\n * 同时第二个参数不是下标,而是下标数组,分别代表每一层的下标。\n *\n * 至于如何获取下标数组,请查看 findTreeIndex\n *\n * @param tree\n * @param idx\n * @param deleteCount\n * @param ...items\n */\nexport function spliceTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number,\n deleteCount: number = 0,\n ...items: Array<T>\n): Array<T> {\n const list = tree.concat();\n if (typeof idx === 'number') {\n list.splice(idx, deleteCount, ...items);\n } else if (Array.isArray(idx) && idx.length) {\n idx = idx.concat();\n const lastIdx = idx.pop()!;\n let host = idx.reduce((list: Array<T>, idx) => {\n const child = {\n ...list[idx],\n children: list[idx].children ? list[idx].children!.concat() : []\n };\n list[idx] = child;\n return child.children;\n }, list);\n host.splice(lastIdx, deleteCount, ...items);\n }\n\n return list;\n}\n\n/**\n * 计算树的深度\n * @param tree\n */\nexport function getTreeDepth<T extends TreeItem>(tree: Array<T>): number {\n return Math.max(\n ...tree.map(item => {\n if (Array.isArray(item.children)) {\n return 1 + getTreeDepth(item.children);\n }\n\n return 1;\n })\n );\n}\n\n/**\n * 从树中获取某个值的所有祖先\n * @param tree\n * @param value\n */\nexport function getTreeAncestors<T extends TreeItem>(\n tree: Array<T>,\n value: T,\n includeSelf = false\n): Array<T> | null {\n let ancestors: Array<T> | null = null;\n\n findTree(tree, (item, index, level, paths) => {\n if (item === value) {\n ancestors = paths;\n if (includeSelf) {\n ancestors.push(item);\n }\n return true;\n }\n return false;\n });\n\n return ancestors;\n}\n\n/**\n * 从树中获取某个值的上级\n * @param tree\n * @param value\n */\nexport function getTreeParent<T extends TreeItem>(tree: Array<T>, value: T) {\n const ancestors = getTreeAncestors(tree, value);\n return ancestors?.length ? ancestors[ancestors.length - 1] : null;\n}\n\nexport function ucFirst(str?: string) {\n return typeof str === 'string'\n ? str.substring(0, 1).toUpperCase() + str.substring(1)\n : str;\n}\n\nexport function lcFirst(str?: string) {\n return str ? str.substring(0, 1).toLowerCase() + str.substring(1) : '';\n}\n\nexport function camel(str?: string) {\n return str\n ? str\n .split(/[\\s_\\-]/)\n .map((item, index) => (index === 0 ? lcFirst(item) : ucFirst(item)))\n .join('')\n : '';\n}\n\nexport function getWidthRate(value: any, strictMode = false): number {\n if (typeof value === 'string' && /\\bcol\\-\\w+\\-(\\d+)\\b/.test(value)) {\n return parseInt(RegExp.$1, 10);\n }\n\n return strictMode ? 0 : value || 0;\n}\n\nexport function getLevelFromClassName(\n value: string,\n defaultValue: string = 'default'\n) {\n if (\n /\\b(?:btn|text)-(link|primary|secondary|info|success|warning|danger|light|dark)\\b/.test(\n value\n )\n ) {\n return RegExp.$1;\n }\n\n return defaultValue;\n}\n\nexport function pickEventsProps(props: any) {\n const ret: any = {};\n props &&\n Object.keys(props).forEach(\n key => /^on/.test(key) && (ret[key] = props[key])\n );\n return ret;\n}\n\nexport const autobind = autobindMethod;\n\nexport const bulkBindFunctions = function <\n T extends {\n [propName: string]: any;\n }\n>(context: T, funNames: Array<FunctionPropertyNames<T>>) {\n funNames.forEach(key => (context[key] = context[key].bind(context)));\n};\n\nexport function sortArray<T extends any>(\n items: Array<T>,\n field: string,\n dir: -1 | 1\n): Array<T> {\n return items.sort((a: any, b: any) => {\n let ret: number;\n const a1 = a[field];\n const b1 = b[field];\n\n if (typeof a1 === 'number' && typeof b1 === 'number') {\n ret = a1 < b1 ? -1 : a1 === b1 ? 0 : 1;\n } else {\n ret = String(a1).localeCompare(String(b1));\n }\n\n return ret * dir;\n });\n}\n\n// 只判断一层, 如果层级很深,form-data 也不好表达。\nexport function hasFile(object: any): boolean {\n return Object.keys(object).some(key => {\n let value = object[key];\n\n return (\n value instanceof File ||\n (Array.isArray(value) && value.length && value[0] instanceof File)\n );\n });\n}\n\nexport function qsstringify(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n keepEmptyArray?: boolean\n) {\n // qs会保留空字符串。fix: Combo模式的空数组,无法清空。改为存为空字符串;只转换一层\n keepEmptyArray &&\n Object.keys(data).forEach((key: any) => {\n Array.isArray(data[key]) && !data[key].length && (data[key] = '');\n });\n return qs.stringify(data, options);\n}\n\nexport function qsparse(\n data: string,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true,\n depth: 1000 // 默认是 5, 所以condition-builder只要来个条件组就会导致报错\n }\n) {\n return qs.parse(data, options);\n}\n\nexport function object2formData(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n fd: FormData = new FormData()\n): any {\n let fileObjects: any = [];\n let others: any = {};\n\n Object.keys(data).forEach(key => {\n const value = data[key];\n\n if (value instanceof File) {\n fileObjects.push([key, value]);\n } else if (\n Array.isArray(value) &&\n value.length &&\n value[0] instanceof File\n ) {\n value.forEach(value => fileObjects.push([`${key}[]`, value]));\n } else {\n others[key] = value;\n }\n });\n\n // 因为 key 的格式太多了,偷个懒,用 qs 来处理吧。\n qsstringify(others, options)\n .split('&')\n .forEach(item => {\n let parts = item.split('=');\n // form-data/multipart 是不需要 encode 值的。\n parts[0] && fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fileObjects.forEach((fileObject: any[]) =>\n fd.append(fileObject[0], fileObject[1], fileObject[1].name)\n );\n\n return fd;\n}\n\nexport function chainFunctions(\n ...fns: Array<(...args: Array<any>) => void>\n): (...args: Array<any>) => void {\n return (...args: Array<any>) =>\n fns.reduce(\n (ret: any, fn: any) =>\n ret === false\n ? false\n : typeof fn == 'function'\n ? fn(...args)\n : undefined,\n undefined\n );\n}\n\nexport function chainEvents(props: any, schema: any) {\n const ret: any = {};\n\n Object.keys(props).forEach(key => {\n if (\n key.substr(0, 2) === 'on' &&\n typeof props[key] === 'function' &&\n typeof schema[key] === 'function' &&\n schema[key] !== props[key]\n ) {\n // 表单项里面的 onChange 很特殊,这个不要处理。\n if (props.formStore && key === 'onChange') {\n ret[key] = props[key];\n } else {\n ret[key] = chainFunctions(schema[key], props[key]);\n }\n } else {\n ret[key] = props[key];\n }\n });\n\n return ret;\n}\n\nexport function mapObject(value: any, fn: Function): any {\n if (Array.isArray(value)) {\n return value.map(item => mapObject(item, fn));\n }\n if (isObject(value)) {\n let tmpValue = {...value};\n Object.keys(tmpValue).forEach(key => {\n (tmpValue as PlainObject)[key] = mapObject(\n (tmpValue as PlainObject)[key],\n fn\n );\n });\n return tmpValue;\n }\n return fn(value);\n}\n\nexport function loadScript(src: string) {\n return new Promise<void>((ok, fail) => {\n const script = document.createElement('script');\n script.onerror = reason => fail(reason);\n\n if (~src.indexOf('{{callback}}')) {\n const callbackFn = `loadscriptcallback_${uuid()}`;\n (window as any)[callbackFn] = () => {\n ok();\n delete (window as any)[callbackFn];\n };\n src = src.replace('{{callback}}', callbackFn);\n } else {\n script.onload = () => ok();\n }\n\n script.src = src;\n document.head.appendChild(script);\n });\n}\n\nexport class SkipOperation extends Error {}\n\n/**\n * 检查对象是否有循环引用,来自 https://stackoverflow.com/a/34909127\n * @param obj\n */\nfunction isCyclic(obj: any): boolean {\n const seenObjects: any = [];\n function detect(obj: any) {\n if (obj && typeof obj === 'object') {\n if (seenObjects.indexOf(obj) !== -1) {\n return true;\n }\n seenObjects.push(obj);\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && detect(obj[key])) {\n return true;\n }\n }\n }\n return false;\n }\n return detect(obj);\n}\n\nfunction internalFindObjectsWithKey(obj: any, key: string) {\n let objects: any[] = [];\n for (const k in obj) {\n if (!obj.hasOwnProperty(k)) continue;\n if (k === key) {\n objects.push(obj);\n } else if (typeof obj[k] === 'object') {\n objects = objects.concat(internalFindObjectsWithKey(obj[k], key));\n }\n }\n return objects;\n}\n\n/**\n * 深度查找具有某个 key 名字段的对象,实际实现是 internalFindObjectsWithKey,这里包一层是为了做循环引用检测\n * @param obj\n * @param key\n */\nexport function findObjectsWithKey(obj: any, key: string) {\n // 避免循环引用导致死循环\n if (isCyclic(obj)) {\n return [];\n }\n return internalFindObjectsWithKey(obj, key);\n}\n\nlet scrollbarWidth: number;\n\n/**\n * 获取浏览器滚动条宽度 https://stackoverflow.com/a/13382873\n */\n\nexport function getScrollbarWidth() {\n if (typeof scrollbarWidth !== 'undefined') {\n return scrollbarWidth;\n }\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n // @ts-ignore\n outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n scrollbarWidth = outer.offsetWidth - inner.offsetWidth;\n\n // Removing temporary elements from the DOM\n // @ts-ignore\n outer.parentNode.removeChild(outer);\n\n return scrollbarWidth;\n}\n\nfunction resolveValueByName(data: any, name?: string) {\n return isPureVariable(name)\n ? resolveVariableAndFilter(name, data)\n : resolveVariable(name, data);\n}\n\n// 统一的获取 value 值方法\nexport function getPropValue<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(props: T, getter?: (props: T) => any) {\n const {name, value, data, defaultValue} = props;\n return (\n value ?? getter?.(props) ?? resolveValueByName(data, name) ?? defaultValue\n );\n}\n\n// 检测 value 是否有变化,有变化就执行 onChange\nexport function detectPropValueChanged<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(\n props: T,\n prevProps: T,\n onChange: (value: any) => void,\n getter?: (props: T) => any\n) {\n let nextValue: any;\n if (typeof props.value !== 'undefined') {\n props.value !== prevProps.value && onChange(props.value);\n } else if ((nextValue = getter?.(props)) !== undefined) {\n nextValue !== getter!(prevProps) && onChange(nextValue);\n } else if (\n typeof props.name === 'string' &&\n (nextValue = resolveValueByName(props.data, props.name)) !== undefined\n ) {\n nextValue !== resolveValueByName(prevProps.data, prevProps.name) &&\n onChange(nextValue);\n } else if (props.defaultValue !== prevProps.defaultValue) {\n onChange(props.defaultValue);\n }\n}\n\n// 去掉字符串中的 html 标签,不完全准确但效率比较高\nexport function removeHTMLTag(str: string) {\n return typeof str === 'string' ? str.replace(/<\\/?[^>]+(>|$)/g, '') : str;\n}\n\n/**\n * 将路径格式的value转换成普通格式的value值\n *\n * @example\n *\n * 'a/b/c' => 'c';\n * {label: 'A/B/C', value: 'a/b/c'} => {label: 'C', value: 'c'};\n * 'a/b/c,a/d' => 'c,d';\n * ['a/b/c', 'a/d'] => ['c', 'd'];\n * [{label: 'A/B/C', value: 'a/b/c'},{label: 'A/D', value: 'a/d'}] => [{label: 'C', value: 'c'},{label: 'D', value: 'd'}]\n */\nexport function normalizeNodePath(\n value: any,\n enableNodePath: boolean,\n labelField: string = 'label',\n valueField: string = 'value',\n pathSeparator: string = '/',\n delimiter: string = ','\n) {\n const nodeValueArray: any[] = [];\n const nodePathArray: any[] = [];\n const getLastNodeFromPath = (path: any) =>\n last(path ? path.toString().split(pathSeparator) : []);\n\n if (typeof value === 'undefined' || !enableNodePath) {\n return {nodeValueArray, nodePathArray};\n }\n\n // 尾节点为当前options中value值\n if (Array.isArray(value)) {\n value.forEach(nodePath => {\n if (nodePath && nodePath.hasOwnProperty(valueField)) {\n nodeValueArray.push({\n ...nodePath,\n [labelField]: getLastNodeFromPath(nodePath[labelField]),\n [valueField]: getLastNodeFromPath(nodePath[valueField])\n });\n nodePathArray.push(nodePath[valueField]);\n } else {\n nodeValueArray.push(getLastNodeFromPath(nodePath));\n nodePathArray.push(nodePath);\n }\n });\n } else if (typeof value === 'string') {\n value\n .toString()\n .split(delimiter)\n .forEach(path => {\n nodeValueArray.push(getLastNodeFromPath(path));\n nodePathArray.push(path);\n });\n } else {\n nodeValueArray.push({\n ...value,\n [labelField]: getLastNodeFromPath(value[labelField]),\n [valueField || 'value']: getLastNodeFromPath(value[valueField])\n });\n nodePathArray.push(value[valueField]);\n }\n\n return {nodeValueArray, nodePathArray};\n}\n\n// 主要用于排除点击输入框和链接等情况\nexport function isClickOnInput(e: React.MouseEvent<HTMLElement>) {\n const target: HTMLElement = e.target as HTMLElement;\n let formItem;\n if (\n !e.currentTarget.contains(target) ||\n ~['INPUT', 'TEXTAREA'].indexOf(target.tagName) ||\n ((formItem = target.closest(`button, a, [data-role=\"form-item\"]`)) &&\n e.currentTarget.contains(formItem))\n ) {\n return true;\n }\n return false;\n}\n\n// 计算字符串 hash\nexport function hashCode(s: string): number {\n return s.split('').reduce((a, b) => {\n a = (a << 5) - a + b.charCodeAt(0);\n return a & a;\n }, 0);\n}\n\n/**\n * 遍历 schema\n * @param json\n * @param mapper\n */\nexport function JSONTraverse(\n json: any,\n mapper: (value: any, key: string | number, host: Object) => any\n) {\n Object.keys(json).forEach(key => {\n const value: any = json[key];\n if (isPlainObject(value) || Array.isArray(value)) {\n JSONTraverse(value, mapper);\n } else {\n mapper(value, key, json);\n }\n });\n}\n\nexport function convertArrayValueToMoment(\n value: number[],\n types: string[],\n mom: moment.Moment\n): moment.Moment {\n if (value.length === 0) return mom;\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n // @ts-ignore\n mom.set(type, value[i]);\n }\n return mom;\n}\n\n\nexport function getRange(min: number, max: number, step: number = 1) {\n const arr = [];\n for (let i = min; i <= max; i += step) {\n arr.push(i);\n }\n return arr;\n}\n"
|
12
12
|
]
|
13
13
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "amis",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.6.0",
|
4
4
|
"description": "一种MIS页面生成工具",
|
5
5
|
"main": "lib/index.js",
|
6
6
|
"scripts": {
|
@@ -13,7 +13,7 @@
|
|
13
13
|
"dev": "fis3 release -cwd ./public",
|
14
14
|
"publish-to-internal": "sh build.sh && sh publish.sh",
|
15
15
|
"build": "sh build.sh",
|
16
|
-
"prettier": "prettier --write '{src,examples
|
16
|
+
"prettier": "prettier --write '{src,scss,examples}/**/**/*.{js,jsx,ts,tsx,scss,json}'",
|
17
17
|
"deploy-gh-page": "sh ./deploy-gh-pages.sh",
|
18
18
|
"build-schemas": "ts-node -O '{\"target\":\"es6\"}' scripts/build-schemas.ts"
|
19
19
|
},
|
@@ -37,13 +37,19 @@
|
|
37
37
|
"url": "http://www.apache.org/licenses/LICENSE-2.0"
|
38
38
|
}
|
39
39
|
],
|
40
|
+
"lint-staged": {
|
41
|
+
"{src,examples}/**/**/*.{tsx,jsx,ts}": [
|
42
|
+
"prettier --write"
|
43
|
+
]
|
44
|
+
},
|
40
45
|
"dependencies": {
|
41
|
-
"amis-formula": "^1.3.
|
46
|
+
"amis-formula": "^1.3.5",
|
42
47
|
"ansi-to-react": "^6.1.6",
|
43
48
|
"async": "2.6.0",
|
44
49
|
"attr-accept": "2.2.2",
|
45
50
|
"blueimp-canvastoblob": "2.1.0",
|
46
51
|
"classnames": "2.3.1",
|
52
|
+
"codemirror": "^5.63.0",
|
47
53
|
"downshift": "6.1.7",
|
48
54
|
"echarts": "5.2.2",
|
49
55
|
"echarts-stat": "^1.2.0",
|
@@ -88,14 +94,13 @@
|
|
88
94
|
"tinymce": "^5.10.2",
|
89
95
|
"tslib": "^2.3.1",
|
90
96
|
"uncontrollable": "7.2.1",
|
91
|
-
"video-react": "0.14.1"
|
92
|
-
"codemirror": "^5.63.0"
|
97
|
+
"video-react": "0.14.1"
|
93
98
|
},
|
94
99
|
"devDependencies": {
|
95
|
-
"@types/codemirror": "^5.60.3",
|
96
100
|
"@fortawesome/fontawesome-free": "^5.15.4",
|
97
101
|
"@testing-library/react": "^12.0.0",
|
98
102
|
"@types/async": "^2.0.45",
|
103
|
+
"@types/codemirror": "^5.60.3",
|
99
104
|
"@types/echarts": "^4.9.2",
|
100
105
|
"@types/file-saver": "^2.0.1",
|
101
106
|
"@types/history": "^4.6.0",
|
@@ -148,6 +153,7 @@
|
|
148
153
|
"jest-canvas-mock": "^2.3.0",
|
149
154
|
"js-yaml": "^4.1.0",
|
150
155
|
"json5": "^2.2.0",
|
156
|
+
"lint-staged": "^12.1.4",
|
151
157
|
"marked": "^3.0.4",
|
152
158
|
"mkdirp": "^1.0.4",
|
153
159
|
"moment-timezone": "^0.5.33",
|