amis 1.7.0 → 1.8.0-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Schema.d.ts +10 -2
- package/lib/Schema.js +0 -1
- package/lib/Schema.js.map +2 -2
- package/lib/SchemaRenderer.js +19 -3
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/WithRootStore.d.ts +18 -0
- package/lib/WithStore.js +2 -1
- package/lib/WithStore.js.map +2 -2
- package/lib/actions/CmptAction.js +26 -4
- package/lib/actions/CmptAction.js.map +2 -2
- package/lib/actions/PageAction.d.ts +32 -0
- package/lib/actions/PageAction.js +72 -0
- package/lib/actions/PageAction.js.map +13 -0
- package/lib/actions/index.d.ts +1 -0
- package/lib/actions/index.js +1 -0
- package/lib/actions/index.js.map +2 -2
- package/lib/components/Alert2.js +4 -2
- package/lib/components/Alert2.js.map +2 -2
- package/lib/components/AssociatedSelection.js +9 -2
- package/lib/components/AssociatedSelection.js.map +2 -2
- package/lib/components/Avatar.d.ts +20 -20
- package/lib/components/BarCode.js +1 -1
- package/lib/components/BarCode.js.map +2 -2
- package/lib/components/CalendarMobile.d.ts +84 -84
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/Cascader.d.ts +2 -0
- package/lib/components/Cascader.js +28 -12
- package/lib/components/Cascader.js.map +2 -2
- package/lib/components/Checkbox.d.ts +24 -23
- package/lib/components/Checkbox.js +5 -1
- package/lib/components/Checkbox.js.map +2 -2
- package/lib/components/CityArea.js +3 -0
- package/lib/components/CityArea.js.map +2 -2
- package/lib/components/Collapse.d.ts +20 -20
- package/lib/components/DatePicker.d.ts +87 -84
- package/lib/components/DatePicker.js +48 -11
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +285 -171
- package/lib/components/DateRangePicker.js +471 -66
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/Drawer.js +1 -1
- package/lib/components/Drawer.js.map +2 -2
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/Modal.js +1 -1
- package/lib/components/Modal.js.map +2 -2
- package/lib/components/MonthRangePicker.d.ts +84 -84
- package/lib/components/Overlay.d.ts +1 -0
- package/lib/components/Overlay.js +4 -3
- package/lib/components/Overlay.js.map +2 -2
- package/lib/components/Progress.d.ts +29 -24
- package/lib/components/Progress.js +52 -21
- package/lib/components/Progress.js.map +2 -2
- package/lib/components/PullRefresh.d.ts +86 -0
- package/lib/components/PullRefresh.js +135 -0
- package/lib/components/PullRefresh.js.map +13 -0
- package/lib/components/Radios.d.ts +22 -22
- package/lib/components/Radios.js +3 -5
- package/lib/components/Radios.js.map +2 -2
- package/lib/components/Range.d.ts +2 -2
- package/lib/components/Range.js +24 -11
- package/lib/components/Range.js.map +2 -2
- package/lib/components/Spinner.d.ts +200 -107
- package/lib/components/Spinner.js +30 -26
- package/lib/components/Spinner.js.map +2 -2
- package/lib/components/Steps.d.ts +6 -0
- package/lib/components/Steps.js +13 -9
- package/lib/components/Steps.js.map +2 -2
- package/lib/components/Tabs.d.ts +27 -23
- package/lib/components/Tabs.js +37 -22
- package/lib/components/Tabs.js.map +2 -2
- package/lib/components/Tooltip.d.ts +4 -0
- package/lib/components/Tooltip.js +6 -4
- package/lib/components/Tooltip.js.map +2 -2
- package/lib/components/TooltipWrapper.d.ts +87 -24
- package/lib/components/TooltipWrapper.js +40 -8
- package/lib/components/TooltipWrapper.js.map +2 -2
- package/lib/components/Transfer.d.ts +84 -84
- package/lib/components/TransferDropDown.d.ts +84 -84
- package/lib/components/Tree.d.ts +87 -85
- package/lib/components/Tree.js +13 -5
- package/lib/components/Tree.js.map +2 -2
- package/lib/components/TreeSelection.d.ts +84 -84
- package/lib/components/calendar/Calendar.js +3 -12
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/calendar/TimeView.d.ts +1 -0
- package/lib/components/calendar/TimeView.js +7 -0
- package/lib/components/calendar/TimeView.js.map +2 -2
- package/lib/components/calendar/YearsView.js +3 -3
- package/lib/components/calendar/YearsView.js.map +2 -2
- package/lib/components/condition-builder/Expression.d.ts +1 -0
- package/lib/components/condition-builder/Expression.js +4 -4
- package/lib/components/condition-builder/Expression.js.map +2 -2
- package/lib/components/condition-builder/Field.d.ts +1 -0
- package/lib/components/condition-builder/Field.js +3 -2
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Group.d.ts +1 -0
- package/lib/components/condition-builder/Group.js +2 -2
- package/lib/components/condition-builder/Group.js.map +2 -2
- package/lib/components/condition-builder/GroupOrItem.d.ts +1 -0
- package/lib/components/condition-builder/GroupOrItem.js +2 -2
- package/lib/components/condition-builder/GroupOrItem.js.map +2 -2
- package/lib/components/condition-builder/InputSwitch.d.ts +2 -1
- package/lib/components/condition-builder/InputSwitch.js +2 -2
- package/lib/components/condition-builder/InputSwitch.js.map +2 -2
- package/lib/components/condition-builder/Item.d.ts +1 -0
- package/lib/components/condition-builder/Item.js +9 -8
- package/lib/components/condition-builder/Item.js.map +2 -2
- package/lib/components/condition-builder/Value.d.ts +1 -0
- package/lib/components/condition-builder/Value.js +5 -5
- package/lib/components/condition-builder/Value.js.map +2 -2
- package/lib/components/condition-builder/index.d.ts +1 -0
- package/lib/components/condition-builder/index.js +2 -2
- package/lib/components/condition-builder/index.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +90 -86
- package/lib/components/formula/Editor.js +26 -4
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/Picker.d.ts +5 -0
- package/lib/components/formula/Picker.js +21 -4
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/factory.d.ts +5 -0
- package/lib/factory.js +24 -3
- package/lib/factory.js.map +2 -2
- package/lib/icons/trash.js +10 -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 +18 -1
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +18 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +18 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +3 -1
- package/lib/renderers/Action.js +23 -5
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/App.d.ts +1 -0
- package/lib/renderers/App.js +3 -0
- package/lib/renderers/App.js.map +2 -2
- package/lib/renderers/ButtonGroup.d.ts +2 -2
- package/lib/renderers/ButtonGroup.js.map +1 -1
- package/lib/renderers/CRUD.d.ts +8 -0
- package/lib/renderers/CRUD.js +12 -5
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Carousel.d.ts +1 -0
- package/lib/renderers/Carousel.js +13 -1
- package/lib/renderers/Carousel.js.map +2 -2
- package/lib/renderers/Chart.d.ts +1 -0
- package/lib/renderers/Chart.js +3 -0
- package/lib/renderers/Chart.js.map +2 -2
- package/lib/renderers/Dialog.d.ts +5 -0
- package/lib/renderers/Dialog.js +7 -3
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/Drawer.d.ts +1 -0
- package/lib/renderers/Drawer.js +6 -1
- package/lib/renderers/Drawer.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +2 -0
- package/lib/renderers/DropDownButton.js +13 -4
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Form/Checkbox.d.ts +5 -2
- package/lib/renderers/Form/Checkbox.js +2 -2
- package/lib/renderers/Form/Checkbox.js.map +2 -2
- package/lib/renderers/Form/Checkboxes.d.ts +7 -2
- package/lib/renderers/Form/Checkboxes.js +101 -12
- package/lib/renderers/Form/Checkboxes.js.map +2 -2
- package/lib/renderers/Form/Combo.d.ts +6 -4
- package/lib/renderers/Form/Combo.js +132 -45
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +3 -2
- package/lib/renderers/Form/Editor.d.ts +2 -2
- package/lib/renderers/Form/InputCity.d.ts +87 -84
- package/lib/renderers/Form/InputCity.js +48 -3
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +10 -3
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.d.ts +5 -0
- package/lib/renderers/Form/InputDateRange.js +12 -3
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputFile.js +19 -8
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +4 -0
- package/lib/renderers/Form/InputFormula.js +2 -2
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputImage.js +18 -7
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputMonthRange.js +5 -1
- package/lib/renderers/Form/InputMonthRange.js.map +2 -2
- package/lib/renderers/Form/InputRange.d.ts +2 -2
- package/lib/renderers/Form/InputRange.js +13 -14
- package/lib/renderers/Form/InputRange.js.map +2 -2
- package/lib/renderers/Form/InputTable.js +4 -2
- package/lib/renderers/Form/InputTable.js.map +2 -2
- package/lib/renderers/Form/InputText.d.ts +1 -1
- package/lib/renderers/Form/InputText.js +8 -10
- package/lib/renderers/Form/InputText.js.map +2 -2
- package/lib/renderers/Form/InputTree.d.ts +5 -0
- package/lib/renderers/Form/InputTree.js +51 -2
- package/lib/renderers/Form/InputTree.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +79 -76
- package/lib/renderers/Form/Item.js +3 -1
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/NestedSelect.d.ts +4 -0
- package/lib/renderers/Form/NestedSelect.js +14 -5
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/Options.js +61 -27
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Select.js +4 -2
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/Textarea.js +2 -1
- package/lib/renderers/Form/Textarea.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.d.ts +11 -2
- package/lib/renderers/Form/TreeSelect.js +56 -10
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.d.ts +3 -0
- package/lib/renderers/Form/index.js +53 -16
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Form/wrapControl.d.ts +10 -0
- package/lib/renderers/Form/wrapControl.js +41 -19
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Nav.d.ts +82 -67
- package/lib/renderers/Nav.js +49 -13
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Page.d.ts +21 -0
- package/lib/renderers/Page.js +56 -17
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Progress.d.ts +4 -7
- package/lib/renderers/Progress.js +3 -3
- package/lib/renderers/Progress.js.map +2 -2
- package/lib/renderers/Service.d.ts +3 -0
- package/lib/renderers/Service.js +55 -20
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/Spinner.d.ts +58 -2
- package/lib/renderers/Spinner.js +8 -1
- package/lib/renderers/Spinner.js.map +2 -2
- package/lib/renderers/Steps.d.ts +8 -0
- package/lib/renderers/Steps.js +2 -2
- package/lib/renderers/Steps.js.map +2 -2
- package/lib/renderers/Table/ColumnToggler.d.ts +4 -0
- package/lib/renderers/Table/ColumnToggler.js +11 -6
- package/lib/renderers/Table/ColumnToggler.js.map +2 -2
- package/lib/renderers/Table/TableCell.js +27 -1
- package/lib/renderers/Table/TableCell.js.map +2 -2
- package/lib/renderers/Table/TableRow.js +1 -1
- package/lib/renderers/Table/TableRow.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +2 -0
- package/lib/renderers/Table/index.js +23 -10
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Tabs.d.ts +14 -2
- package/lib/renderers/Tabs.js +24 -8
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/TooltipWrapper.d.ts +133 -0
- package/lib/renderers/TooltipWrapper.js +70 -0
- package/lib/renderers/TooltipWrapper.js.map +13 -0
- package/lib/renderers/Wizard.d.ts +7 -3
- package/lib/renderers/Wizard.js +269 -152
- package/lib/renderers/Wizard.js.map +2 -2
- package/lib/store/combo.d.ts +2 -2
- package/lib/store/crud.d.ts +1 -0
- package/lib/store/crud.js +55 -19
- package/lib/store/crud.js.map +2 -2
- package/lib/store/form.d.ts +1 -1
- package/lib/store/form.js +5 -1
- package/lib/store/form.js.map +2 -2
- package/lib/store/formItem.js +1 -1
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/index.d.ts +5 -0
- package/lib/store/index.js +14 -0
- package/lib/store/index.js.map +2 -2
- package/lib/store/table.d.ts +2 -2
- package/lib/store/table.js +4 -4
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +965 -210
- package/lib/themes/ang.css +955 -175
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +1080 -325
- package/lib/themes/antd.css +956 -176
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1048 -293
- package/lib/themes/cxd.css +961 -180
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +965 -210
- package/lib/themes/dark.css +955 -175
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +1048 -293
- package/lib/themes/default.css +961 -180
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +3 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/ColorScale.d.ts +19 -0
- package/lib/utils/ColorScale.js +104 -0
- package/lib/utils/ColorScale.js.map +13 -0
- package/lib/utils/api.js +20 -4
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/columnsSplit.d.ts +1 -0
- package/lib/utils/columnsSplit.js +40 -0
- package/lib/utils/columnsSplit.js.map +13 -0
- package/lib/utils/debug.d.ts +1 -1
- package/lib/utils/debug.js +16 -22
- package/lib/utils/debug.js.map +2 -2
- package/lib/utils/dom.d.ts +1 -1
- package/lib/utils/dom.js +7 -5
- package/lib/utils/dom.js.map +2 -2
- package/lib/utils/position.js +0 -1
- package/lib/utils/position.js.map +2 -2
- package/lib/utils/scrollPosition.d.ts +6 -0
- package/lib/utils/scrollPosition.js +31 -0
- package/lib/utils/scrollPosition.js.map +13 -0
- package/package.json +3 -2
- package/schema.json +30213 -29222
- package/scss/_properties.scss +67 -25
- package/scss/components/_alert.scss +1 -1
- package/scss/components/_barcode.scss +1 -1
- package/scss/components/_button-group.scss +15 -0
- package/scss/components/_carousel.scss +1 -0
- package/scss/components/_column-toggler.scss +21 -11
- package/scss/components/_debug.scss +3 -3
- package/scss/components/_formula.scss +19 -1
- package/scss/components/_nav.scss +51 -6
- package/scss/components/_progress.scss +7 -14
- package/scss/components/_pull-refresh.scss +25 -0
- package/scss/components/_spinner.scss +134 -56
- package/scss/components/_steps.scss +199 -8
- package/scss/components/_tabs.scss +145 -13
- package/scss/components/_tooltip.scss +76 -9
- package/scss/components/form/_checks.scss +125 -2
- package/scss/components/form/_combo.scss +13 -1
- package/scss/components/form/_date-range.scss +27 -2
- package/scss/components/form/_date.scss +25 -0
- package/scss/components/form/_editor.scss +2 -1
- package/scss/components/form/_file.scss +4 -0
- package/scss/components/form/_form.scss +31 -8
- package/scss/components/form/_number.scss +5 -2
- package/scss/components/form/_select.scss +0 -1
- package/scss/components/form/_textarea.scss +1 -23
- package/scss/components/form/_transfer.scss +3 -2
- package/scss/themes/_antd-variables.scss +1 -1
- package/scss/themes/_common.scss +1 -0
- package/scss/themes/_cxd-variables.scss +6 -5
- package/sdk/ang-ie11.css +1059 -198
- package/sdk/ang.css +1050 -164
- package/sdk/antd-ie11.css +1167 -306
- package/sdk/antd.css +1051 -165
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +1145 -284
- package/sdk/cxd.css +1056 -169
- package/sdk/dark-ie11.css +1056 -195
- package/sdk/dark.css +1050 -164
- package/sdk/exceljs.js +1 -1
- package/sdk/locale/de-DE.js +18 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +17 -17
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +1145 -284
- package/sdk/sdk.css +1056 -169
- package/sdk/sdk.js +1321 -1273
- 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 +15 -2
- package/src/SchemaRenderer.tsx +32 -14
- package/src/WithStore.tsx +3 -1
- package/src/actions/CmptAction.ts +28 -0
- package/src/actions/PageAction.ts +62 -0
- package/src/actions/index.ts +1 -0
- package/src/components/Alert2.tsx +9 -3
- package/src/components/AssociatedSelection.tsx +9 -3
- package/src/components/BarCode.tsx +2 -2
- package/src/components/Cascader.tsx +37 -11
- package/src/components/Checkbox.tsx +11 -5
- package/src/components/CityArea.tsx +3 -0
- package/src/components/DatePicker.tsx +68 -22
- package/src/components/DateRangePicker.tsx +551 -88
- package/src/components/Drawer.tsx +1 -0
- package/src/components/Modal.tsx +1 -0
- package/src/components/Overlay.tsx +6 -3
- package/src/components/Progress.tsx +64 -33
- package/src/components/PullRefresh.tsx +197 -0
- package/src/components/Radios.tsx +6 -17
- package/src/components/Range.tsx +26 -12
- package/src/components/Spinner.tsx +77 -42
- package/src/components/Steps.tsx +28 -27
- package/src/components/Tabs.tsx +51 -21
- package/src/components/Tooltip.tsx +12 -3
- package/src/components/TooltipWrapper.tsx +140 -33
- package/src/components/Tree.tsx +19 -5
- package/src/components/calendar/Calendar.tsx +4 -13
- package/src/components/calendar/TimeView.tsx +12 -0
- package/src/components/calendar/YearsView.tsx +3 -4
- package/src/components/condition-builder/Expression.tsx +6 -1
- package/src/components/condition-builder/Field.tsx +5 -1
- package/src/components/condition-builder/Group.tsx +4 -1
- package/src/components/condition-builder/GroupOrItem.tsx +4 -1
- package/src/components/condition-builder/InputSwitch.tsx +4 -1
- package/src/components/condition-builder/Item.tsx +28 -4
- package/src/components/condition-builder/Value.tsx +7 -1
- package/src/components/condition-builder/index.tsx +4 -2
- package/src/components/formula/Editor.tsx +46 -10
- package/src/components/formula/Picker.tsx +32 -1
- package/src/components/icons.tsx +2 -0
- package/src/factory.tsx +31 -3
- package/src/icons/trash.svg +8 -0
- package/src/index.tsx +1 -0
- package/src/locale/de-DE.ts +18 -1
- package/src/locale/en-US.ts +18 -1
- package/src/locale/zh-CN.ts +18 -1
- package/src/renderers/Action.tsx +24 -2
- package/src/renderers/App.tsx +4 -0
- package/src/renderers/ButtonGroup.tsx +2 -2
- package/src/renderers/CRUD.tsx +23 -5
- package/src/renderers/Carousel.tsx +8 -0
- package/src/renderers/Chart.tsx +4 -0
- package/src/renderers/Dialog.tsx +21 -3
- package/src/renderers/Drawer.tsx +14 -2
- package/src/renderers/DropDownButton.tsx +14 -3
- package/src/renderers/Form/Checkbox.tsx +11 -2
- package/src/renderers/Form/Checkboxes.tsx +106 -23
- package/src/renderers/Form/Combo.tsx +179 -66
- package/src/renderers/Form/InputCity.tsx +46 -5
- package/src/renderers/Form/InputDate.tsx +18 -4
- package/src/renderers/Form/InputDateRange.tsx +27 -3
- package/src/renderers/Form/InputFile.tsx +23 -7
- package/src/renderers/Form/InputFormula.tsx +7 -0
- package/src/renderers/Form/InputImage.tsx +22 -6
- package/src/renderers/Form/InputMonthRange.tsx +7 -1
- package/src/renderers/Form/InputRange.tsx +20 -22
- package/src/renderers/Form/InputTable.tsx +6 -2
- package/src/renderers/Form/InputText.tsx +14 -4
- package/src/renderers/Form/InputTree.tsx +40 -2
- package/src/renderers/Form/Item.tsx +7 -0
- package/src/renderers/Form/NestedSelect.tsx +23 -4
- package/src/renderers/Form/Options.tsx +26 -7
- package/src/renderers/Form/Select.tsx +5 -3
- package/src/renderers/Form/Textarea.tsx +3 -1
- package/src/renderers/Form/TreeSelect.tsx +47 -9
- package/src/renderers/Form/index.tsx +56 -25
- package/src/renderers/Form/wrapControl.tsx +23 -12
- package/src/renderers/Nav.tsx +231 -33
- package/src/renderers/Page.tsx +97 -35
- package/src/renderers/Progress.tsx +9 -11
- package/src/renderers/Service.tsx +66 -27
- package/src/renderers/Spinner.tsx +85 -3
- package/src/renderers/Steps.tsx +14 -0
- package/src/renderers/Table/ColumnToggler.tsx +36 -11
- package/src/renderers/Table/TableCell.tsx +39 -1
- package/src/renderers/Table/TableRow.tsx +1 -1
- package/src/renderers/Table/index.tsx +43 -19
- package/src/renderers/Tabs.tsx +90 -31
- package/src/renderers/TooltipWrapper.tsx +262 -0
- package/src/renderers/Wizard.tsx +169 -93
- package/src/store/crud.ts +50 -5
- package/src/store/form.ts +8 -3
- package/src/store/formItem.ts +1 -2
- package/src/store/index.ts +20 -0
- package/src/store/table.ts +4 -4
- package/src/types.ts +8 -1
- package/src/utils/ColorScale.ts +138 -0
- package/src/utils/api.ts +26 -4
- package/src/utils/columnsSplit.tsx +57 -0
- package/src/utils/debug.tsx +17 -24
- package/src/utils/dom.tsx +7 -6
- package/src/utils/position.ts +0 -1
- package/src/utils/scrollPosition.ts +29 -0
@@ -1,14 +1,11 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import {findDOMNode} from 'react-dom';
|
3
|
-
import
|
4
|
-
|
5
|
-
|
6
|
-
FormBaseControl,
|
7
|
-
FormControlSchemaAlias
|
8
|
-
} from './Item';
|
9
|
-
import {Schema, Action, Api} from '../../types';
|
3
|
+
import cloneDeep from 'lodash/cloneDeep';
|
4
|
+
import {FormItem, FormControlProps, FormBaseControl} from './Item';
|
5
|
+
import {Action, Api} from '../../types';
|
10
6
|
import {ComboStore, IComboStore} from '../../store/combo';
|
11
7
|
import {default as CTabs, Tab} from '../../components/Tabs';
|
8
|
+
import Button from '../../components/Button';
|
12
9
|
|
13
10
|
import {
|
14
11
|
guid,
|
@@ -24,7 +21,7 @@ import {evalExpression, filter} from '../../utils/tpl';
|
|
24
21
|
import find from 'lodash/find';
|
25
22
|
import Select from '../../components/Select';
|
26
23
|
import {dataMapping, resolveVariable} from '../../utils/tpl-builtin';
|
27
|
-
import {isEffectiveApi} from '../../utils/api';
|
24
|
+
import {isEffectiveApi, str2AsyncFunction} from '../../utils/api';
|
28
25
|
import {Alert2} from '../../components';
|
29
26
|
import memoize from 'lodash/memoize';
|
30
27
|
import {Icon} from '../../components/icons';
|
@@ -32,8 +29,6 @@ import {isAlive} from 'mobx-state-tree';
|
|
32
29
|
import {
|
33
30
|
SchemaApi,
|
34
31
|
SchemaClassName,
|
35
|
-
SchemaCollection,
|
36
|
-
SchemaIcon,
|
37
32
|
SchemaObject,
|
38
33
|
SchemaTpl
|
39
34
|
} from '../../Schema';
|
@@ -255,6 +250,8 @@ export interface ComboControlSchema extends FormBaseControl {
|
|
255
250
|
};
|
256
251
|
}
|
257
252
|
|
253
|
+
export type ComboRendererEvent = 'add' | 'delete' | 'tabsChange';
|
254
|
+
|
258
255
|
function pickVars(vars: any, fields: Array<string>) {
|
259
256
|
return fields.reduce((data: any, key: string) => {
|
260
257
|
data[key] = resolveVariable(key, vars);
|
@@ -291,6 +288,8 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
291
288
|
| 'tabsMode'
|
292
289
|
| 'tabsStyle'
|
293
290
|
| 'placeholder'
|
291
|
+
| 'itemClassName'
|
292
|
+
| 'itemsWrapperClassName'
|
294
293
|
> = {
|
295
294
|
minLength: 0,
|
296
295
|
maxLength: 0,
|
@@ -307,7 +306,9 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
307
306
|
deleteIcon: '',
|
308
307
|
tabsMode: false,
|
309
308
|
tabsStyle: '',
|
310
|
-
placeholder: 'placeholder.empty'
|
309
|
+
placeholder: 'placeholder.empty',
|
310
|
+
itemClassName: '',
|
311
|
+
itemsWrapperClassName: ''
|
311
312
|
};
|
312
313
|
static propsList: Array<string> = [
|
313
314
|
'minLength',
|
@@ -334,7 +335,9 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
334
335
|
'items',
|
335
336
|
'conditions',
|
336
337
|
'messages',
|
337
|
-
'formStore'
|
338
|
+
'formStore',
|
339
|
+
'itemClassName',
|
340
|
+
'itemsWrapperClassName'
|
338
341
|
];
|
339
342
|
|
340
343
|
subForms: Array<any> = [];
|
@@ -359,7 +362,7 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
359
362
|
this.handleFormInit = this.handleFormInit.bind(this);
|
360
363
|
this.handleAction = this.handleAction.bind(this);
|
361
364
|
this.addItem = this.addItem.bind(this);
|
362
|
-
this.
|
365
|
+
this.deleteItem = this.deleteItem.bind(this);
|
363
366
|
this.dragTipRef = this.dragTipRef.bind(this);
|
364
367
|
this.flush = this.flush.bind(this);
|
365
368
|
this.handleComboTypeChange = this.handleComboTypeChange.bind(this);
|
@@ -469,9 +472,17 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
469
472
|
this.props.onChange(value, submitOnChange, true);
|
470
473
|
}
|
471
474
|
|
472
|
-
addItem() {
|
473
|
-
const {
|
474
|
-
|
475
|
+
async addItem() {
|
476
|
+
const {
|
477
|
+
flat,
|
478
|
+
joinValues,
|
479
|
+
delimiter,
|
480
|
+
scaffold,
|
481
|
+
disabled,
|
482
|
+
submitOnChange,
|
483
|
+
data,
|
484
|
+
dispatchEvent
|
485
|
+
} = this.props;
|
475
486
|
|
476
487
|
if (disabled) {
|
477
488
|
return;
|
@@ -479,6 +490,18 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
479
490
|
|
480
491
|
let value = this.getValueAsArray();
|
481
492
|
|
493
|
+
const rendererEvent = await dispatchEvent(
|
494
|
+
'add',
|
495
|
+
createObject(data, {
|
496
|
+
value:
|
497
|
+
flat && joinValues ? value.join(delimiter || ',') : cloneDeep(value)
|
498
|
+
})
|
499
|
+
);
|
500
|
+
|
501
|
+
if (rendererEvent?.prevented) {
|
502
|
+
return;
|
503
|
+
}
|
504
|
+
|
482
505
|
value.push(
|
483
506
|
flat
|
484
507
|
? scaffold || ''
|
@@ -495,7 +518,7 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
495
518
|
this.props.onChange(value, submitOnChange, true);
|
496
519
|
}
|
497
520
|
|
498
|
-
async
|
521
|
+
async deleteItem(key: number) {
|
499
522
|
const {
|
500
523
|
flat,
|
501
524
|
joinValues,
|
@@ -505,7 +528,8 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
505
528
|
deleteConfirmText,
|
506
529
|
data,
|
507
530
|
env,
|
508
|
-
translate: __
|
531
|
+
translate: __,
|
532
|
+
dispatchEvent
|
509
533
|
} = this.props;
|
510
534
|
|
511
535
|
if (disabled) {
|
@@ -515,6 +539,19 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
515
539
|
let value = this.getValueAsArray();
|
516
540
|
const ctx = createObject(data, value[key]);
|
517
541
|
|
542
|
+
const rendererEvent = await dispatchEvent(
|
543
|
+
'delete',
|
544
|
+
createObject(data, {
|
545
|
+
key,
|
546
|
+
value:
|
547
|
+
flat && joinValues ? value.join(delimiter || ',') : cloneDeep(value)
|
548
|
+
})
|
549
|
+
);
|
550
|
+
|
551
|
+
if (rendererEvent?.prevented) {
|
552
|
+
return;
|
553
|
+
}
|
554
|
+
|
518
555
|
if (isEffectiveApi(deleteApi, ctx)) {
|
519
556
|
const confirmed = await env.confirm(
|
520
557
|
deleteConfirmText ? filter(deleteConfirmText, ctx) : __('deleteConfirm')
|
@@ -598,7 +635,8 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
598
635
|
|
599
636
|
if (
|
600
637
|
syncDefaultValue === false ||
|
601
|
-
this.subFormDefaultValues.length !==
|
638
|
+
this.subFormDefaultValues.length !==
|
639
|
+
this.subForms.filter(item => item !== undefined).length
|
602
640
|
) {
|
603
641
|
return;
|
604
642
|
}
|
@@ -654,7 +692,7 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
654
692
|
const {onAction} = this.props;
|
655
693
|
|
656
694
|
if (action.actionType === 'delete') {
|
657
|
-
action.index !== void 0 && this.
|
695
|
+
action.index !== void 0 && this.deleteItem(action.index);
|
658
696
|
return;
|
659
697
|
}
|
660
698
|
|
@@ -866,8 +904,19 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
866
904
|
}
|
867
905
|
|
868
906
|
@autobind
|
869
|
-
handleTabSelect(key: number) {
|
870
|
-
const {store} = this.props;
|
907
|
+
async handleTabSelect(key: number) {
|
908
|
+
const {store, data, dispatchEvent} = this.props;
|
909
|
+
|
910
|
+
const rendererEvent = await dispatchEvent(
|
911
|
+
'tabsChange',
|
912
|
+
createObject(data, {
|
913
|
+
key
|
914
|
+
})
|
915
|
+
);
|
916
|
+
|
917
|
+
if (rendererEvent?.prevented) {
|
918
|
+
return;
|
919
|
+
}
|
871
920
|
|
872
921
|
store.setActiveKey(key);
|
873
922
|
}
|
@@ -998,8 +1047,8 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
998
1047
|
) {
|
999
1048
|
toolbar = (
|
1000
1049
|
<div
|
1001
|
-
onClick={this.
|
1002
|
-
key="
|
1050
|
+
onClick={this.deleteItem.bind(this, index)}
|
1051
|
+
key="delete"
|
1003
1052
|
className={cx(
|
1004
1053
|
`Combo-tab-delBtn ${!store.removable ? 'is-disabled' : ''}`
|
1005
1054
|
)}
|
@@ -1105,6 +1154,99 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1105
1154
|
);
|
1106
1155
|
}
|
1107
1156
|
|
1157
|
+
renderDelBtn(value: any, index: number) {
|
1158
|
+
const {
|
1159
|
+
classPrefix: ns,
|
1160
|
+
classnames: cx,
|
1161
|
+
render,
|
1162
|
+
store,
|
1163
|
+
deleteIcon,
|
1164
|
+
translate: __,
|
1165
|
+
itemRemovableOn,
|
1166
|
+
disabled,
|
1167
|
+
removable,
|
1168
|
+
deleteBtn
|
1169
|
+
} = this.props;
|
1170
|
+
|
1171
|
+
const finnalRemovable =
|
1172
|
+
store.removable !== false && // minLength ?
|
1173
|
+
!disabled && // 控件自身是否禁用
|
1174
|
+
removable !== false; // 是否可以删除
|
1175
|
+
|
1176
|
+
if (
|
1177
|
+
!(
|
1178
|
+
finnalRemovable && // 表达式判断单条是否可删除
|
1179
|
+
(!itemRemovableOn || evalExpression(itemRemovableOn, value) !== false)
|
1180
|
+
)
|
1181
|
+
) {
|
1182
|
+
// 不符合删除条件,则不渲染删除按钮
|
1183
|
+
return null;
|
1184
|
+
}
|
1185
|
+
|
1186
|
+
// deleteBtn是对象,则根据自定义配置渲染按钮
|
1187
|
+
if (isObject(deleteBtn)) {
|
1188
|
+
return render('delete-btn', {
|
1189
|
+
...deleteBtn,
|
1190
|
+
type: 'button',
|
1191
|
+
className: cx(
|
1192
|
+
'Combo-delController',
|
1193
|
+
deleteBtn ? deleteBtn.classname : ''
|
1194
|
+
),
|
1195
|
+
onClick: (e: any) => {
|
1196
|
+
if (!deleteBtn.onClick) {
|
1197
|
+
this.deleteItem(index);
|
1198
|
+
return;
|
1199
|
+
}
|
1200
|
+
|
1201
|
+
let originClickHandler = deleteBtn.onClick;
|
1202
|
+
if (typeof originClickHandler === 'string') {
|
1203
|
+
originClickHandler = str2AsyncFunction(
|
1204
|
+
deleteBtn.onClick,
|
1205
|
+
'e',
|
1206
|
+
'index',
|
1207
|
+
'props'
|
1208
|
+
);
|
1209
|
+
}
|
1210
|
+
const result = originClickHandler(e, index, this.props);
|
1211
|
+
if (result && result.then) {
|
1212
|
+
result.then(() => {
|
1213
|
+
this.deleteItem(index);
|
1214
|
+
});
|
1215
|
+
} else {
|
1216
|
+
this.deleteItem(index);
|
1217
|
+
}
|
1218
|
+
}
|
1219
|
+
});
|
1220
|
+
}
|
1221
|
+
|
1222
|
+
// deleteBtn是string,则渲染按钮文本
|
1223
|
+
if (typeof deleteBtn === 'string') {
|
1224
|
+
return render('delete-btn', {
|
1225
|
+
type: 'button',
|
1226
|
+
className: cx('Combo-delController'),
|
1227
|
+
label: deleteBtn,
|
1228
|
+
onClick: this.deleteItem.bind(this, index)
|
1229
|
+
});
|
1230
|
+
}
|
1231
|
+
|
1232
|
+
// 如果上述按钮不满足,则渲染默认按钮
|
1233
|
+
return (
|
1234
|
+
<a
|
1235
|
+
onClick={this.deleteItem.bind(this, index)}
|
1236
|
+
key="delete"
|
1237
|
+
className={cx(`Combo-delBtn ${!store.removable ? 'is-disabled' : ''}`)}
|
1238
|
+
data-tooltip={__('delete')}
|
1239
|
+
data-position="bottom"
|
1240
|
+
>
|
1241
|
+
{deleteIcon ? (
|
1242
|
+
<i className={deleteIcon} />
|
1243
|
+
) : (
|
1244
|
+
<Icon icon="status-close" className="icon" />
|
1245
|
+
)}
|
1246
|
+
</a>
|
1247
|
+
);
|
1248
|
+
}
|
1249
|
+
|
1108
1250
|
renderMultipe() {
|
1109
1251
|
if (this.props.tabsMode) {
|
1110
1252
|
return this.renderTabsMode();
|
@@ -1127,18 +1269,18 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1127
1269
|
addable,
|
1128
1270
|
removable,
|
1129
1271
|
typeSwitchable,
|
1130
|
-
itemRemovableOn,
|
1131
1272
|
delimiter,
|
1132
1273
|
canAccessSuperData,
|
1133
1274
|
addIcon,
|
1134
1275
|
dragIcon,
|
1135
|
-
deleteIcon,
|
1136
1276
|
noBorder,
|
1137
1277
|
conditions,
|
1138
1278
|
lazyLoad,
|
1139
1279
|
changeImmediately,
|
1140
1280
|
placeholder,
|
1141
|
-
translate: __
|
1281
|
+
translate: __,
|
1282
|
+
itemClassName,
|
1283
|
+
itemsWrapperClassName
|
1142
1284
|
} = this.props;
|
1143
1285
|
|
1144
1286
|
let items = this.props.items;
|
@@ -1148,11 +1290,6 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1148
1290
|
value = value.split(delimiter || ',');
|
1149
1291
|
}
|
1150
1292
|
|
1151
|
-
const finnalRemovable =
|
1152
|
-
store.removable !== false && // minLength ?
|
1153
|
-
!disabled && // 控件自身是否禁用
|
1154
|
-
removable !== false; // 是否可以删除
|
1155
|
-
|
1156
1293
|
return (
|
1157
1294
|
<div
|
1158
1295
|
className={cx(
|
@@ -1165,34 +1302,10 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1165
1302
|
: ''
|
1166
1303
|
)}
|
1167
1304
|
>
|
1168
|
-
<div className={cx(`Combo-items
|
1305
|
+
<div className={cx(`Combo-items`, itemsWrapperClassName)}>
|
1169
1306
|
{Array.isArray(value) && value.length ? (
|
1170
1307
|
value.map((value, index, thelist) => {
|
1171
|
-
let delBtn: any =
|
1172
|
-
|
1173
|
-
if (
|
1174
|
-
finnalRemovable && // 表达式判断单条是否可删除
|
1175
|
-
(!itemRemovableOn ||
|
1176
|
-
evalExpression(itemRemovableOn, value) !== false)
|
1177
|
-
) {
|
1178
|
-
delBtn = (
|
1179
|
-
<a
|
1180
|
-
onClick={this.removeItem.bind(this, index)}
|
1181
|
-
key="remove"
|
1182
|
-
className={cx(
|
1183
|
-
`Combo-delBtn ${!store.removable ? 'is-disabled' : ''}`
|
1184
|
-
)}
|
1185
|
-
data-tooltip={__('delete')}
|
1186
|
-
data-position="bottom"
|
1187
|
-
>
|
1188
|
-
{deleteIcon ? (
|
1189
|
-
<i className={deleteIcon} />
|
1190
|
-
) : (
|
1191
|
-
<Icon icon="status-close" className="icon" />
|
1192
|
-
)}
|
1193
|
-
</a>
|
1194
|
-
);
|
1195
|
-
}
|
1308
|
+
let delBtn: any = this.renderDelBtn(value, index);
|
1196
1309
|
|
1197
1310
|
const data = this.formatValue(value, index);
|
1198
1311
|
let condition: ComboCondition | null = null;
|
@@ -1214,7 +1327,7 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1214
1327
|
|
1215
1328
|
return (
|
1216
1329
|
<div
|
1217
|
-
className={cx(`Combo-item
|
1330
|
+
className={cx(`Combo-item`, itemClassName)}
|
1218
1331
|
key={this.keys[index] || (this.keys[index] = guid())}
|
1219
1332
|
>
|
1220
1333
|
{!disabled && draggable && thelist.length > 1 ? (
|
@@ -1315,15 +1428,14 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1315
1428
|
}
|
1316
1429
|
)
|
1317
1430
|
) : (
|
1318
|
-
<
|
1319
|
-
|
1431
|
+
<Button
|
1432
|
+
className={cx(`Combo-addBtn`, addButtonClassName)}
|
1433
|
+
tooltip={__('Combo.add')}
|
1320
1434
|
onClick={this.addItem}
|
1321
|
-
className={cx(`Button Combo-addBtn`, addButtonClassName)}
|
1322
|
-
data-tooltip={__('Combo.add')}
|
1323
1435
|
>
|
1324
1436
|
{addIcon ? <Icon icon="plus" className="icon" /> : null}
|
1325
1437
|
<span>{__(addButtonText || 'Combo.add')}</span>
|
1326
|
-
</
|
1438
|
+
</Button>
|
1327
1439
|
)
|
1328
1440
|
) : null}
|
1329
1441
|
{draggable ? (
|
@@ -1352,7 +1464,8 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1352
1464
|
disabled,
|
1353
1465
|
typeSwitchable,
|
1354
1466
|
nullable,
|
1355
|
-
translate: __
|
1467
|
+
translate: __,
|
1468
|
+
itemClassName
|
1356
1469
|
} = this.props;
|
1357
1470
|
|
1358
1471
|
let items = this.props.items;
|
@@ -1373,7 +1486,7 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1373
1486
|
disabled ? 'is-disabled' : ''
|
1374
1487
|
)}
|
1375
1488
|
>
|
1376
|
-
<div className={cx(`Combo-item
|
1489
|
+
<div className={cx(`Combo-item`, itemClassName)}>
|
1377
1490
|
{condition && typeSwitchable !== false ? (
|
1378
1491
|
<div className={cx('Combo-itemTag')}>
|
1379
1492
|
<label>{__('Combo.type')}</label>
|
@@ -4,7 +4,8 @@ import {ClassNamesFn, themeable, ThemeProps} from '../../theme';
|
|
4
4
|
import Spinner from '../../components/Spinner';
|
5
5
|
import Select from '../../components/Select';
|
6
6
|
import CityArea from '../../components/CityArea';
|
7
|
-
import {autobind, isMobile} from '../../utils/helper';
|
7
|
+
import {autobind, isMobile, createObject} from '../../utils/helper';
|
8
|
+
import {Action} from '../../types';
|
8
9
|
import {Option} from './Options';
|
9
10
|
import {localeable, LocaleProps} from '../../locale';
|
10
11
|
|
@@ -299,7 +300,16 @@ export class CityPicker extends React.Component<
|
|
299
300
|
const {onChange, allowStreet, joinValues, extractValue, delimiter} =
|
300
301
|
this.props;
|
301
302
|
|
302
|
-
const {
|
303
|
+
const {
|
304
|
+
code,
|
305
|
+
province,
|
306
|
+
city,
|
307
|
+
district,
|
308
|
+
street,
|
309
|
+
provinceCode,
|
310
|
+
cityCode,
|
311
|
+
districtCode
|
312
|
+
} = this.state;
|
303
313
|
|
304
314
|
if (typeof extractValue === 'undefined' ? joinValues : extractValue) {
|
305
315
|
code
|
@@ -312,8 +322,11 @@ export class CityPicker extends React.Component<
|
|
312
322
|
} else {
|
313
323
|
onChange({
|
314
324
|
code,
|
325
|
+
provinceCode,
|
315
326
|
province,
|
327
|
+
cityCode,
|
316
328
|
city,
|
329
|
+
districtCode,
|
317
330
|
district,
|
318
331
|
street
|
319
332
|
});
|
@@ -420,10 +433,38 @@ export interface LocationControlProps extends FormControlProps {
|
|
420
433
|
allowStreet?: boolean;
|
421
434
|
}
|
422
435
|
export class LocationControl extends React.Component<LocationControlProps> {
|
436
|
+
|
437
|
+
@autobind
|
438
|
+
doAction(action: Action, data: object, throwErrors: boolean) {
|
439
|
+
const {resetValue, onChange} = this.props;
|
440
|
+
const actionType = action?.actionType as string;
|
441
|
+
|
442
|
+
if (!!~['clear', 'reset'].indexOf(actionType)) {
|
443
|
+
onChange(resetValue ?? '');
|
444
|
+
}
|
445
|
+
}
|
446
|
+
|
447
|
+
@autobind
|
448
|
+
async handleChange(value: number | string) {
|
449
|
+
const {dispatchEvent, data, onChange} = this.props;
|
450
|
+
|
451
|
+
const rendererEvent = await dispatchEvent(
|
452
|
+
'change',
|
453
|
+
createObject(data, {
|
454
|
+
value
|
455
|
+
})
|
456
|
+
);
|
457
|
+
|
458
|
+
if (rendererEvent?.prevented) {
|
459
|
+
return;
|
460
|
+
}
|
461
|
+
|
462
|
+
onChange(value);
|
463
|
+
}
|
464
|
+
|
423
465
|
render() {
|
424
466
|
const {
|
425
467
|
value,
|
426
|
-
onChange,
|
427
468
|
allowCity,
|
428
469
|
allowDistrict,
|
429
470
|
extractValue,
|
@@ -441,7 +482,7 @@ export class LocationControl extends React.Component<LocationControlProps> {
|
|
441
482
|
popOverContainer={
|
442
483
|
env && env.getModalContainer ? env.getModalContainer : undefined
|
443
484
|
}
|
444
|
-
onChange={
|
485
|
+
onChange={this.handleChange}
|
445
486
|
allowCity={allowCity}
|
446
487
|
allowDistrict={allowDistrict}
|
447
488
|
extractValue={extractValue}
|
@@ -454,7 +495,7 @@ export class LocationControl extends React.Component<LocationControlProps> {
|
|
454
495
|
<ThemedCity
|
455
496
|
searchable={searchable}
|
456
497
|
value={value}
|
457
|
-
onChange={
|
498
|
+
onChange={this.handleChange}
|
458
499
|
allowCity={allowCity}
|
459
500
|
allowDistrict={allowDistrict}
|
460
501
|
extractValue={extractValue}
|
@@ -423,8 +423,14 @@ export default class DateControl extends React.PureComponent<
|
|
423
423
|
// 动作
|
424
424
|
doAction(action: Action, data: object, throwErrors: boolean) {
|
425
425
|
const {resetValue, onChange} = this.props;
|
426
|
+
|
426
427
|
if (action.actionType === 'clear') {
|
427
|
-
onChange(
|
428
|
+
onChange('');
|
429
|
+
return;
|
430
|
+
}
|
431
|
+
|
432
|
+
if (action.actionType === 'reset' && resetValue) {
|
433
|
+
onChange(resetValue);
|
428
434
|
}
|
429
435
|
}
|
430
436
|
|
@@ -457,15 +463,23 @@ export default class DateControl extends React.PureComponent<
|
|
457
463
|
useMobileUI,
|
458
464
|
...rest
|
459
465
|
} = this.props;
|
466
|
+
const mobileUI = useMobileUI && isMobile();
|
460
467
|
|
461
468
|
if (type === 'time' && timeFormat) {
|
462
469
|
format = timeFormat;
|
463
470
|
}
|
464
471
|
|
465
|
-
const mobileUI = useMobileUI && isMobile();
|
466
|
-
|
467
472
|
return (
|
468
|
-
<div
|
473
|
+
<div
|
474
|
+
className={cx(
|
475
|
+
`DateControl`,
|
476
|
+
{
|
477
|
+
'is-date': /date$/.test(type),
|
478
|
+
'is-datetime': /datetime$/.test(type)
|
479
|
+
},
|
480
|
+
className
|
481
|
+
)}
|
482
|
+
>
|
469
483
|
<DatePicker
|
470
484
|
{...rest}
|
471
485
|
useMobileUI={useMobileUI}
|
@@ -7,9 +7,11 @@ import includes from 'lodash/includes';
|
|
7
7
|
import DateRangePicker, {
|
8
8
|
DateRangePicker as BaseDateRangePicker
|
9
9
|
} from '../../components/DateRangePicker';
|
10
|
-
import {
|
10
|
+
import {isMobile, createObject, autobind} from '../../utils/helper';
|
11
11
|
import {Action} from '../../types';
|
12
12
|
|
13
|
+
import type {ShortCuts} from '../../components/DatePicker';
|
14
|
+
|
13
15
|
/**
|
14
16
|
* DateRange 日期范围控件
|
15
17
|
* 文档:https://baidu.gitee.io/amis/docs/components/form/date-range
|
@@ -75,6 +77,11 @@ export interface DateRangeControlSchema extends FormBaseControl {
|
|
75
77
|
* 开启后变成非弹出模式,即内联模式。
|
76
78
|
*/
|
77
79
|
embed?: boolean;
|
80
|
+
|
81
|
+
/**
|
82
|
+
* 日期范围快捷键
|
83
|
+
*/
|
84
|
+
ranges?: string | Array<ShortCuts>;
|
78
85
|
}
|
79
86
|
|
80
87
|
export interface DateRangeProps
|
@@ -173,8 +180,14 @@ export default class DateRangeControl extends React.Component<DateRangeProps> {
|
|
173
180
|
// 动作
|
174
181
|
doAction(action: Action, data: object, throwErrors: boolean) {
|
175
182
|
const {resetValue, onChange} = this.props;
|
183
|
+
|
176
184
|
if (action.actionType === 'clear') {
|
177
|
-
onChange(
|
185
|
+
onChange('');
|
186
|
+
return;
|
187
|
+
}
|
188
|
+
|
189
|
+
if (action.actionType === 'reset' && resetValue) {
|
190
|
+
onChange(resetValue);
|
178
191
|
}
|
179
192
|
}
|
180
193
|
|
@@ -206,8 +219,19 @@ export default class DateRangeControl extends React.Component<DateRangeProps> {
|
|
206
219
|
...rest
|
207
220
|
} = this.props;
|
208
221
|
const mobileUI = useMobileUI && isMobile();
|
222
|
+
const comptType = this.props?.type;
|
223
|
+
|
209
224
|
return (
|
210
|
-
<div
|
225
|
+
<div
|
226
|
+
className={cx(
|
227
|
+
`${ns}DateRangeControl`,
|
228
|
+
{
|
229
|
+
'is-date': /date-/.test(comptType),
|
230
|
+
'is-datetime': /datetime-/.test(comptType)
|
231
|
+
},
|
232
|
+
className
|
233
|
+
)}
|
234
|
+
>
|
211
235
|
<DateRangePicker
|
212
236
|
{...rest}
|
213
237
|
useMobileUI={useMobileUI}
|
@@ -28,6 +28,7 @@ import {
|
|
28
28
|
SchemaUrlPath
|
29
29
|
} from '../../Schema';
|
30
30
|
import merge from 'lodash/merge';
|
31
|
+
import omit from 'lodash/omit';
|
31
32
|
|
32
33
|
/**
|
33
34
|
* File 文件上传控件
|
@@ -817,7 +818,11 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
817
818
|
let value =
|
818
819
|
(ret.data as any).value || (ret.data as any).url || ret.data;
|
819
820
|
|
820
|
-
const dispatcher = await this.dispatchEvent('success',
|
821
|
+
const dispatcher = await this.dispatchEvent('success', {
|
822
|
+
...file,
|
823
|
+
value,
|
824
|
+
state: 'uploaded'
|
825
|
+
});
|
821
826
|
if (dispatcher?.prevented) {
|
822
827
|
return;
|
823
828
|
}
|
@@ -913,13 +918,16 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
913
918
|
}
|
914
919
|
|
915
920
|
syncAutoFill() {
|
916
|
-
const {autoFill, multiple, onBulkChange, data} = this.props;
|
917
|
-
|
921
|
+
const {autoFill, multiple, onBulkChange, data, name} = this.props;
|
922
|
+
// 排除自身的字段,否则会无限更新state
|
923
|
+
const excludeSelfAutoFill = omit(autoFill, name || '');
|
924
|
+
|
925
|
+
if (!isEmpty(excludeSelfAutoFill) && onBulkChange) {
|
918
926
|
const files = this.state.files.filter(
|
919
927
|
file => ~['uploaded', 'init', 'ready'].indexOf(file.state as string)
|
920
928
|
);
|
921
929
|
const toSync = dataMapping(
|
922
|
-
|
930
|
+
excludeSelfAutoFill,
|
923
931
|
multiple
|
924
932
|
? {
|
925
933
|
items: files
|
@@ -1216,11 +1224,19 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
1216
1224
|
|
1217
1225
|
async dispatchEvent(e: string, data?: Record<string, any>) {
|
1218
1226
|
const {dispatchEvent} = this.props;
|
1219
|
-
|
1227
|
+
const getEventData = (item: Record<string, any>) => ({
|
1228
|
+
name: item.path || item.name,
|
1229
|
+
value: item.value,
|
1230
|
+
state: item.state,
|
1231
|
+
error: item.error
|
1232
|
+
});
|
1233
|
+
const value = data
|
1234
|
+
? getEventData(data)
|
1235
|
+
: this.state.files.map(item => getEventData(item));
|
1220
1236
|
return dispatchEvent(
|
1221
1237
|
e,
|
1222
1238
|
createObject(this.props.data, {
|
1223
|
-
file:
|
1239
|
+
file: value
|
1224
1240
|
})
|
1225
1241
|
);
|
1226
1242
|
}
|
@@ -1312,7 +1328,7 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
1312
1328
|
>
|
1313
1329
|
<input disabled={disabled} {...getInputProps()} />
|
1314
1330
|
|
1315
|
-
{drag ? (
|
1331
|
+
{drag || isDragActive ? (
|
1316
1332
|
<div
|
1317
1333
|
className={cx('FileControl-acceptTip')}
|
1318
1334
|
onClick={this.handleSelect}
|