amis 1.4.2-beta.6 → 1.5.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/lib/Schema.d.ts +11 -3
- package/lib/Schema.js.map +1 -1
- package/lib/components/Alert2.d.ts +26 -21
- package/lib/components/Alert2.js +11 -4
- package/lib/components/Alert2.js.map +2 -2
- package/lib/components/AnchorNav.d.ts +22 -21
- package/lib/components/AnchorNav.js +7 -3
- package/lib/components/AnchorNav.js.map +2 -2
- package/lib/components/ArrayInput.d.ts +84 -84
- package/lib/components/AssociatedSelection.d.ts +930 -0
- package/lib/components/AssociatedSelection.js +89 -0
- package/lib/components/AssociatedSelection.js.map +13 -0
- package/lib/components/Badge.js +2 -2
- package/lib/components/Badge.js.map +2 -2
- package/lib/components/Button.js +1 -1
- package/lib/components/Button.js.map +2 -2
- package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
- package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
- package/lib/components/ChainedSelection.js.map +13 -0
- package/lib/components/Checkbox.d.ts +20 -20
- package/lib/components/Collapse.d.ts +51 -23
- package/lib/components/Collapse.js +70 -11
- package/lib/components/Collapse.js.map +2 -2
- package/lib/components/CollapseGroup.d.ts +88 -0
- package/lib/components/CollapseGroup.js +81 -0
- package/lib/components/CollapseGroup.js.map +13 -0
- package/lib/components/ColorPicker.d.ts +89 -85
- package/lib/components/ColorPicker.js +17 -4
- package/lib/components/ColorPicker.js.map +2 -2
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DateRangePicker.d.ts +84 -84
- package/lib/components/Drawer.js +2 -2
- package/lib/components/Drawer.js.map +2 -2
- package/lib/components/Editor.d.ts +84 -84
- package/lib/components/GridNav.d.ts +52 -0
- package/lib/components/GridNav.js +123 -0
- package/lib/components/GridNav.js.map +13 -0
- package/lib/components/GroupedSelection.d.ts +907 -0
- package/lib/components/GroupedSelection.js +48 -0
- package/lib/components/GroupedSelection.js.map +13 -0
- package/lib/components/InputBox.d.ts +22 -21
- package/lib/components/InputBox.js +10 -2
- package/lib/components/InputBox.js.map +2 -2
- package/lib/components/Link.d.ts +29 -36
- package/lib/components/Link.js +14 -15
- package/lib/components/Link.js.map +2 -2
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/ModalManager.js +1 -1
- package/lib/components/ModalManager.js.map +2 -2
- package/lib/components/MonthRangePicker.d.ts +84 -84
- package/lib/components/NumberInput.d.ts +20 -20
- package/lib/components/Overlay.js +5 -0
- package/lib/components/Overlay.js.map +2 -2
- package/lib/components/PickerColumn.d.ts +514 -0
- package/lib/components/PickerColumn.js +279 -0
- package/lib/components/PickerColumn.js.map +13 -0
- package/lib/components/PickerContainer.d.ts +513 -0
- package/lib/components/PickerContainer.js +96 -0
- package/lib/components/PickerContainer.js.map +13 -0
- package/lib/components/PopOver.d.ts +1 -0
- package/lib/components/PopOver.js +12 -1
- package/lib/components/PopOver.js.map +2 -2
- package/lib/components/Progress.d.ts +85 -0
- package/lib/components/Progress.js +81 -0
- package/lib/components/Progress.js.map +13 -0
- package/lib/components/Radios.d.ts +22 -21
- package/lib/components/Radios.js +1 -0
- package/lib/components/Radios.js.map +2 -2
- package/lib/components/Rating.d.ts +21 -21
- package/lib/components/ResultBox.d.ts +84 -84
- package/lib/components/ResultBox.js +10 -2
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/SearchBox.d.ts +84 -84
- package/lib/components/Select.d.ts +245 -237
- package/lib/components/Select.js +25 -4
- package/lib/components/Select.js.map +2 -2
- package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
- package/lib/components/Selection.js +134 -0
- package/lib/components/Selection.js.map +13 -0
- package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
- package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
- package/lib/components/TableSelection.js.map +13 -0
- package/lib/components/Tabs.d.ts +20 -20
- package/lib/components/TabsTransfer.d.ts +84 -84
- package/lib/components/TabsTransfer.js +9 -9
- package/lib/components/TabsTransfer.js.map +2 -2
- package/lib/components/TabsTransferPicker.d.ts +489 -0
- package/lib/components/TabsTransferPicker.js +60 -0
- package/lib/components/TabsTransferPicker.js.map +13 -0
- package/lib/components/Toast.d.ts +90 -87
- package/lib/components/Toast.js +15 -5
- package/lib/components/Toast.js.map +2 -2
- package/lib/components/Transfer.d.ts +908 -274
- package/lib/components/Transfer.js +31 -24
- package/lib/components/Transfer.js.map +2 -2
- package/lib/components/TransferDropDown.d.ts +488 -0
- package/lib/components/TransferDropDown.js +59 -0
- package/lib/components/TransferDropDown.js.map +13 -0
- package/lib/components/TransferPicker.d.ts +493 -0
- package/lib/components/TransferPicker.js +60 -0
- package/lib/components/TransferPicker.js.map +13 -0
- package/lib/components/Tree.d.ts +115 -84
- package/lib/components/Tree.js +183 -30
- package/lib/components/Tree.js.map +2 -2
- package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
- package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
- package/lib/components/TreeSelection.js.map +13 -0
- package/lib/components/condition-builder/Field.js +4 -2
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Func.js +2 -2
- package/lib/components/condition-builder/Func.js.map +2 -2
- package/lib/components/condition-builder/InputSwitch.js +2 -2
- package/lib/components/condition-builder/InputSwitch.js.map +2 -2
- package/lib/components/condition-builder/Item.js +3 -3
- package/lib/components/condition-builder/Item.js.map +2 -2
- package/lib/components/icons.js +10 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/components/index.d.ts +8 -8
- package/lib/components/index.js +16 -16
- package/lib/components/index.js.map +2 -2
- package/lib/envOverwrite.d.ts +1 -1
- package/lib/envOverwrite.js +24 -9
- package/lib/envOverwrite.js.map +2 -2
- package/lib/factory.d.ts +15 -1
- package/lib/factory.js +35 -6
- package/lib/factory.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/hooks/index.d.ts +5 -0
- package/lib/hooks/index.js +14 -0
- package/lib/hooks/index.js.map +13 -0
- package/lib/hooks/use-set-state.d.ts +2 -0
- package/lib/hooks/use-set-state.js +15 -0
- package/lib/hooks/use-set-state.js.map +13 -0
- package/lib/hooks/use-touch.d.ts +16 -0
- package/lib/hooks/use-touch.js +73 -0
- package/lib/hooks/use-touch.js.map +13 -0
- package/lib/hooks/use-update-effect.d.ts +3 -0
- package/lib/hooks/use-update-effect.js +17 -0
- package/lib/hooks/use-update-effect.js.map +13 -0
- package/lib/icons/alert-danger.js +7 -0
- package/lib/icons/alert-info.js +7 -0
- package/lib/icons/alert-success.js +7 -0
- package/lib/icons/alert-warning.js +7 -0
- package/lib/icons/download.js +7 -0
- package/lib/icons/drag-bar.js +10 -3
- package/lib/index.d.ts +5 -0
- package/lib/index.js +6 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +2 -0
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +3 -0
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +5 -2
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +10 -5
- package/lib/renderers/Action.js +23 -5
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/Alert.d.ts +21 -1
- package/lib/renderers/Alert.js.map +2 -2
- package/lib/renderers/AnchorNav.d.ts +1 -0
- package/lib/renderers/AnchorNav.js +2 -2
- package/lib/renderers/AnchorNav.js.map +2 -2
- package/lib/renderers/Avatar.js +3 -3
- package/lib/renderers/Avatar.js.map +2 -2
- package/lib/renderers/Breadcrumb.js +1 -1
- package/lib/renderers/Breadcrumb.js.map +2 -2
- package/lib/renderers/CRUD.d.ts +5 -0
- package/lib/renderers/CRUD.js +25 -4
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Card.d.ts +5 -0
- package/lib/renderers/Card.js +34 -23
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Collapse.d.ts +25 -20
- package/lib/renderers/Collapse.js +10 -72
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/CollapseGroup.d.ts +42 -0
- package/lib/renderers/CollapseGroup.js +33 -0
- package/lib/renderers/CollapseGroup.js.map +13 -0
- package/lib/renderers/Form/ConditionBuilder.js +2 -2
- package/lib/renderers/Form/ConditionBuilder.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +4 -3
- package/lib/renderers/Form/Editor.d.ts +3 -2
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputCity.js +7 -6
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.d.ts +86 -85
- package/lib/renderers/Form/InputColor.js +1 -1
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputFile.d.ts +6 -0
- package/lib/renderers/Form/InputFile.js +28 -8
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.js +11 -4
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +1 -1
- package/lib/renderers/Form/Item.js +2 -1
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/Options.js +25 -4
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Select.d.ts +42 -4
- package/lib/renderers/Form/Select.js +37 -3
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
- package/lib/renderers/Form/TabsTransferPicker.js +29 -0
- package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
- package/lib/renderers/Form/Transfer.js +18 -3
- package/lib/renderers/Form/Transfer.js.map +2 -2
- package/lib/renderers/Form/TransferPicker.d.ts +52 -0
- package/lib/renderers/Form/TransferPicker.js +43 -0
- package/lib/renderers/Form/TransferPicker.js.map +13 -0
- package/lib/renderers/Form/TreeSelect.js +2 -2
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.d.ts +5 -0
- package/lib/renderers/Form/index.js +5 -3
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +13 -1
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/GridNav.d.ts +99 -0
- package/lib/renderers/GridNav.js +82 -0
- package/lib/renderers/GridNav.js.map +13 -0
- package/lib/renderers/IFrame.js +1 -3
- package/lib/renderers/IFrame.js.map +2 -2
- package/lib/renderers/Image.js +7 -5
- package/lib/renderers/Image.js.map +2 -2
- package/lib/renderers/Json.d.ts +4 -0
- package/lib/renderers/Json.js +4 -13
- package/lib/renderers/Json.js.map +2 -2
- package/lib/renderers/Link.d.ts +4 -2
- package/lib/renderers/Link.js +15 -8
- package/lib/renderers/Link.js.map +2 -2
- package/lib/renderers/List.js +1 -1
- package/lib/renderers/List.js.map +2 -2
- package/lib/renderers/Nav.d.ts +21 -21
- package/lib/renderers/Nav.js +37 -19
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Page.d.ts +18 -0
- package/lib/renderers/Page.js +53 -9
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Portlet.d.ts +125 -0
- package/lib/renderers/Portlet.js +156 -0
- package/lib/renderers/Portlet.js.map +13 -0
- package/lib/renderers/Progress.d.ts +23 -3
- package/lib/renderers/Progress.js +15 -19
- package/lib/renderers/Progress.js.map +2 -2
- package/lib/renderers/Property.js +1 -1
- package/lib/renderers/Property.js.map +2 -2
- package/lib/renderers/Table/ColumnToggler.js +1 -1
- package/lib/renderers/Table/ColumnToggler.js.map +2 -2
- package/lib/renderers/Table/TableContent.d.ts +4 -1
- package/lib/renderers/Table/TableContent.js +21 -1
- package/lib/renderers/Table/TableContent.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +5 -1
- package/lib/renderers/Table/index.js +65 -30
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Tabs.js +9 -1
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/WebComponent.js +1 -1
- package/lib/renderers/WebComponent.js.map +2 -2
- package/lib/store/combo.d.ts +2 -2
- package/lib/store/form.d.ts +1 -1
- package/lib/store/form.js +3 -5
- package/lib/store/form.js.map +2 -2
- package/lib/store/formItem.js +44 -4
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/table.d.ts +3 -2
- package/lib/store/table.js +35 -12
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +934 -222
- package/lib/themes/ang.css +934 -222
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +934 -222
- package/lib/themes/antd.css +934 -222
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +970 -260
- package/lib/themes/cxd.css +970 -260
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +934 -222
- package/lib/themes/dark.css +934 -222
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +970 -260
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +38 -1
- package/lib/types.js +0 -5
- package/lib/types.js.map +2 -2
- package/lib/utils/api.d.ts +3 -2
- package/lib/utils/api.js +90 -17
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/dom.d.ts +4 -0
- package/lib/utils/dom.js +11 -1
- package/lib/utils/dom.js.map +2 -2
- package/lib/utils/helper.d.ts +12 -23
- package/lib/utils/helper.js +62 -166
- package/lib/utils/helper.js.map +2 -2
- package/lib/utils/tpl-builtin.d.ts +2 -20
- package/lib/utils/tpl-builtin.js +25 -743
- package/lib/utils/tpl-builtin.js.map +2 -2
- package/lib/utils/tpl.js +24 -0
- package/lib/utils/tpl.js.map +2 -2
- package/package.json +5 -2
- package/schema.json +3966 -1263
- package/scss/_mixins.scss +1 -3
- package/scss/_properties.scss +42 -13
- package/scss/base/_common.scss +3 -0
- package/scss/base/_normalize.scss +2 -0
- package/scss/components/_alert.scss +28 -5
- package/scss/components/_anchor-nav.scss +89 -29
- package/scss/components/_button.scss +12 -0
- package/scss/components/_card.scss +9 -15
- package/scss/components/_collapse-group.scss +15 -0
- package/scss/components/_collapse.scss +48 -23
- package/scss/components/_grid-nav.scss +128 -0
- package/scss/components/_images.scss +1 -0
- package/scss/components/_input-box.scss +1 -0
- package/scss/components/_nav.scss +2 -7
- package/scss/components/_page.scss +35 -2
- package/scss/components/_picker-columns.scss +124 -0
- package/scss/components/_popover.scss +13 -0
- package/scss/components/_portlet.scss +51 -0
- package/scss/components/_progress.scss +141 -33
- package/scss/components/_result-box.scss +1 -0
- package/scss/components/_spinner.scss +5 -4
- package/scss/components/_status.scss +1 -1
- package/scss/components/_table.scss +32 -0
- package/scss/components/_toast.scss +41 -11
- package/scss/components/form/_checks.scss +0 -351
- package/scss/components/form/_color.scss +32 -3
- package/scss/components/form/_combo.scss +4 -0
- package/scss/components/form/_fieldset.scss +6 -1
- package/scss/components/form/_file.scss +11 -0
- package/scss/components/form/_form.scss +48 -0
- package/scss/components/form/_selection.scss +354 -0
- package/scss/components/form/_transfer.scss +76 -18
- package/scss/components/form/_tree.scss +42 -0
- package/scss/themes/_common.scss +6 -0
- package/scss/themes/_cxd-variables.scss +13 -6
- package/scss/themes/cxd.scss +19 -20
- package/sdk/ang-ie11.css +1065 -246
- package/sdk/ang.css +1069 -230
- package/sdk/antd-ie11.css +1068 -249
- package/sdk/antd.css +1069 -230
- package/sdk/charts.js +17 -17
- package/sdk/color-picker.js +65 -69
- package/sdk/cropperjs.js +3 -3
- package/sdk/cxd-ie11.css +1081 -268
- package/sdk/cxd.css +1116 -279
- package/sdk/dark-ie11.css +1069 -250
- package/sdk/dark.css +1069 -230
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/iconfont.svg +2513 -0
- package/sdk/iconfont.ttf +0 -0
- package/sdk/iconfont.woff +0 -0
- package/sdk/locale/de-DE.js +2 -0
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +20 -28
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +1081 -268
- package/sdk/sdk.css +1116 -279
- package/sdk/sdk.js +1371 -1189
- package/sdk/thirds/hls.js/hls.js +18 -18
- package/sdk/thirds/mpegts.js/mpegts.js +2 -2
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +19 -1
- package/src/components/Alert2.tsx +32 -4
- package/src/components/AnchorNav.tsx +15 -4
- package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +43 -37
- package/src/components/Badge.tsx +3 -3
- package/src/components/Button.tsx +1 -0
- package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
- package/src/components/Collapse.tsx +139 -20
- package/src/components/CollapseGroup.tsx +130 -0
- package/src/components/ColorPicker.tsx +32 -10
- package/src/components/Drawer.tsx +8 -6
- package/src/components/GridNav.tsx +233 -0
- package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
- package/src/components/InputBox.tsx +10 -9
- package/src/components/Link.tsx +28 -37
- package/src/components/ModalManager.ts +1 -1
- package/src/components/Overlay.tsx +6 -0
- package/src/components/PickerColumn.tsx +429 -0
- package/src/components/PickerContainer.tsx +128 -0
- package/src/components/PopOver.tsx +15 -1
- package/src/components/Progress.tsx +140 -0
- package/src/components/Radios.tsx +3 -8
- package/src/components/ResultBox.tsx +9 -9
- package/src/components/Select.tsx +57 -5
- package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
- package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
- package/src/components/TabsTransfer.tsx +13 -7
- package/src/components/TabsTransferPicker.tsx +85 -0
- package/src/components/Toast.tsx +48 -21
- package/src/components/Transfer.tsx +71 -50
- package/src/components/TransferDropDown.tsx +120 -0
- package/src/components/TransferPicker.tsx +91 -0
- package/src/components/Tree.tsx +194 -8
- package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
- package/src/components/condition-builder/Field.tsx +7 -5
- package/src/components/condition-builder/Func.tsx +3 -3
- package/src/components/condition-builder/InputSwitch.tsx +3 -3
- package/src/components/condition-builder/Item.tsx +5 -12
- package/src/components/icons.tsx +10 -0
- package/src/components/index.tsx +13 -13
- package/src/envOverwrite.ts +20 -8
- package/src/factory.tsx +70 -9
- package/src/hooks/index.ts +5 -0
- package/src/hooks/use-set-state.ts +19 -0
- package/src/hooks/use-touch.ts +100 -0
- package/src/hooks/use-update-effect.ts +16 -0
- package/src/icons/alert-danger.svg +1 -0
- package/src/icons/alert-info.svg +1 -0
- package/src/icons/alert-success.svg +1 -0
- package/src/icons/alert-warning.svg +1 -0
- package/src/icons/download.svg +4 -0
- package/src/icons/drag-bar.svg +12 -6
- package/src/index.tsx +5 -0
- package/src/locale/de-DE.ts +2 -0
- package/src/locale/en-US.ts +3 -0
- package/src/locale/zh-CN.ts +5 -2
- package/src/renderers/Action.tsx +58 -3
- package/src/renderers/Alert.tsx +31 -1
- package/src/renderers/AnchorNav.tsx +4 -0
- package/src/renderers/Avatar.tsx +8 -4
- package/src/renderers/Breadcrumb.tsx +5 -1
- package/src/renderers/CRUD.tsx +29 -3
- package/src/renderers/Card.tsx +76 -36
- package/src/renderers/Collapse.tsx +70 -115
- package/src/renderers/CollapseGroup.tsx +80 -0
- package/src/renderers/Form/ConditionBuilder.tsx +2 -2
- package/src/renderers/Form/InputCity.tsx +4 -8
- package/src/renderers/Form/InputColor.tsx +4 -2
- package/src/renderers/Form/InputFile.tsx +65 -24
- package/src/renderers/Form/InputImage.tsx +11 -3
- package/src/renderers/Form/Item.tsx +3 -2
- package/src/renderers/Form/Options.tsx +29 -3
- package/src/renderers/Form/Select.tsx +162 -21
- package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
- package/src/renderers/Form/Transfer.tsx +19 -4
- package/src/renderers/Form/TransferPicker.tsx +145 -0
- package/src/renderers/Form/TreeSelect.tsx +25 -0
- package/src/renderers/Form/index.tsx +15 -2
- package/src/renderers/Form/wrapControl.tsx +26 -1
- package/src/renderers/GridNav.tsx +204 -0
- package/src/renderers/IFrame.tsx +2 -4
- package/src/renderers/Image.tsx +19 -15
- package/src/renderers/Json.tsx +9 -9
- package/src/renderers/Link.tsx +29 -16
- package/src/renderers/List.tsx +1 -1
- package/src/renderers/Nav.tsx +105 -56
- package/src/renderers/Page.tsx +62 -1
- package/src/renderers/Portlet.tsx +423 -0
- package/src/renderers/Progress.tsx +56 -38
- package/src/renderers/Property.tsx +6 -4
- package/src/renderers/Table/ColumnToggler.tsx +1 -1
- package/src/renderers/Table/TableContent.tsx +40 -2
- package/src/renderers/Table/index.tsx +88 -43
- package/src/renderers/Tabs.tsx +9 -1
- package/src/renderers/WebComponent.tsx +2 -2
- package/src/store/form.ts +3 -9
- package/src/store/formItem.ts +94 -2
- package/src/store/table.ts +55 -14
- package/src/types.ts +58 -1
- package/src/utils/api.ts +120 -26
- package/src/utils/dom.tsx +12 -0
- package/src/utils/helper.ts +55 -185
- package/src/utils/tpl-builtin.ts +40 -866
- package/src/utils/tpl.ts +33 -0
- package/tsconfig-for-declaration.json +1 -1
- package/dump.rdb +0 -0
- package/lib/components/AssociatedCheckboxes.d.ts +0 -762
- package/lib/components/AssociatedCheckboxes.js +0 -90
- package/lib/components/AssociatedCheckboxes.js.map +0 -13
- package/lib/components/ChainedCheckboxes.js.map +0 -13
- package/lib/components/Checkboxes.js +0 -101
- package/lib/components/Checkboxes.js.map +0 -13
- package/lib/components/ListCheckboxes.d.ts +0 -739
- package/lib/components/ListCheckboxes.js +0 -48
- package/lib/components/ListCheckboxes.js.map +0 -13
- package/lib/components/ListRadios.d.ts +0 -763
- package/lib/components/ListRadios.js +0 -86
- package/lib/components/ListRadios.js.map +0 -13
- package/lib/components/TableCheckboxes.js.map +0 -13
- package/lib/components/TreeCheckboxes.js.map +0 -13
- package/lib/components/TreeRadios.d.ts +0 -838
- package/lib/components/TreeRadios.js +0 -116
- package/lib/components/TreeRadios.js.map +0 -13
- package/src/components/ListRadios.tsx +0 -159
- package/src/components/TreeRadios.tsx +0 -202
@@ -3,11 +3,10 @@ import {Renderer, RendererProps} from '../factory';
|
|
3
3
|
import {Collapse as BasicCollapse} from '../components/Collapse';
|
4
4
|
import {
|
5
5
|
BaseSchema,
|
6
|
-
SchemaClassName,
|
7
6
|
SchemaCollection,
|
8
|
-
SchemaTpl
|
7
|
+
SchemaTpl,
|
8
|
+
SchemaObject
|
9
9
|
} from '../Schema';
|
10
|
-
import {isClickOnInput} from '../utils/helper';
|
11
10
|
|
12
11
|
/**
|
13
12
|
* Collapse 折叠渲染器,格式说明。
|
@@ -19,10 +18,20 @@ export interface CollapseSchema extends BaseSchema {
|
|
19
18
|
*/
|
20
19
|
type: 'collapse';
|
21
20
|
|
21
|
+
/**
|
22
|
+
* 标识
|
23
|
+
*/
|
24
|
+
key?: string;
|
25
|
+
|
22
26
|
/**
|
23
27
|
* 标题展示位置
|
24
28
|
*/
|
25
|
-
|
29
|
+
headerPosition?: 'top' | 'bottom';
|
30
|
+
|
31
|
+
/**
|
32
|
+
* 标题
|
33
|
+
*/
|
34
|
+
header?: string | SchemaCollection;
|
26
35
|
|
27
36
|
/**
|
28
37
|
* 内容区域
|
@@ -32,7 +41,12 @@ export interface CollapseSchema extends BaseSchema {
|
|
32
41
|
/**
|
33
42
|
* 配置 Body 容器 className
|
34
43
|
*/
|
35
|
-
bodyClassName?:
|
44
|
+
bodyClassName?: string;
|
45
|
+
|
46
|
+
/**
|
47
|
+
* 是否禁用
|
48
|
+
*/
|
49
|
+
disabled?: boolean;
|
36
50
|
|
37
51
|
/**
|
38
52
|
* 是否可折叠
|
@@ -45,19 +59,24 @@ export interface CollapseSchema extends BaseSchema {
|
|
45
59
|
collapsed?: boolean;
|
46
60
|
|
47
61
|
/**
|
48
|
-
*
|
62
|
+
* 图标是否展示
|
49
63
|
*/
|
50
|
-
|
64
|
+
showArrow?: boolean;
|
65
|
+
|
66
|
+
/**
|
67
|
+
* 自定义切换图标
|
68
|
+
*/
|
69
|
+
expandIcon?: SchemaObject;
|
51
70
|
|
52
71
|
/**
|
53
|
-
* 标题
|
72
|
+
* 标题 CSS 类名
|
54
73
|
*/
|
55
|
-
|
74
|
+
headingClassName?: string;
|
56
75
|
|
57
76
|
/**
|
58
77
|
* 收起的标题
|
59
78
|
*/
|
60
|
-
|
79
|
+
collapseHeader?: SchemaTpl;
|
61
80
|
|
62
81
|
/**
|
63
82
|
* 控件大小
|
@@ -85,141 +104,77 @@ export interface CollapseProps
|
|
85
104
|
children?: JSX.Element | ((props?: any) => JSX.Element);
|
86
105
|
}
|
87
106
|
|
88
|
-
export interface CollapseState {
|
89
|
-
collapsed: boolean;
|
90
|
-
}
|
91
|
-
|
92
107
|
export default class Collapse extends React.Component<
|
93
108
|
CollapseProps,
|
94
|
-
|
109
|
+
{}
|
95
110
|
> {
|
96
|
-
static propsList: Array<string> = [
|
97
|
-
'wrapperComponent',
|
98
|
-
'headingComponent',
|
99
|
-
'bodyClassName',
|
100
|
-
'collapsed',
|
101
|
-
'headingClassName',
|
102
|
-
'title',
|
103
|
-
'mountOnEnter',
|
104
|
-
'unmountOnExit'
|
105
|
-
];
|
106
|
-
|
107
|
-
static defaultProps: Partial<CollapseProps> = {
|
108
|
-
titlePosition: 'top',
|
109
|
-
wrapperComponent: 'div',
|
110
|
-
headingComponent: 'h4',
|
111
|
-
className: '',
|
112
|
-
headingClassName: '',
|
113
|
-
bodyClassName: '',
|
114
|
-
collapsable: true
|
115
|
-
};
|
116
|
-
|
117
|
-
state = {
|
118
|
-
collapsed: false
|
119
|
-
};
|
120
|
-
|
121
|
-
constructor(props: CollapseProps) {
|
122
|
-
super(props);
|
123
|
-
|
124
|
-
this.toggleCollapsed = this.toggleCollapsed.bind(this);
|
125
|
-
this.state.collapsed = !!props.collapsed;
|
126
|
-
}
|
127
|
-
|
128
|
-
componentDidUpdate(prevProps: CollapseProps) {
|
129
|
-
const props = this.props;
|
130
|
-
|
131
|
-
if (prevProps.collapsed !== props.collapsed) {
|
132
|
-
this.setState({
|
133
|
-
collapsed: !!props.collapsed
|
134
|
-
});
|
135
|
-
}
|
136
|
-
}
|
137
|
-
|
138
|
-
toggleCollapsed(e: React.MouseEvent<HTMLElement>) {
|
139
|
-
if (isClickOnInput(e)) {
|
140
|
-
return;
|
141
|
-
}
|
142
|
-
this.props.collapsable !== false &&
|
143
|
-
this.setState({
|
144
|
-
collapsed: !this.state.collapsed
|
145
|
-
});
|
146
|
-
}
|
147
111
|
|
148
112
|
render() {
|
149
113
|
const {
|
114
|
+
key,
|
115
|
+
id,
|
150
116
|
classPrefix: ns,
|
151
117
|
classnames: cx,
|
152
118
|
size,
|
153
|
-
wrapperComponent
|
154
|
-
headingComponent
|
119
|
+
wrapperComponent,
|
120
|
+
headingComponent,
|
155
121
|
className,
|
156
122
|
headingClassName,
|
157
123
|
children,
|
158
124
|
titlePosition,
|
125
|
+
headerPosition,
|
159
126
|
title,
|
160
127
|
collapseTitle,
|
128
|
+
collapseHeader,
|
129
|
+
header,
|
161
130
|
body,
|
162
131
|
bodyClassName,
|
163
132
|
render,
|
164
133
|
collapsable,
|
165
134
|
translate: __,
|
166
135
|
mountOnEnter,
|
167
|
-
unmountOnExit
|
136
|
+
unmountOnExit,
|
137
|
+
showArrow,
|
138
|
+
expandIcon,
|
139
|
+
disabled,
|
140
|
+
collapsed,
|
141
|
+
propsUpdate,
|
142
|
+
onCollapse
|
168
143
|
} = this.props;
|
169
|
-
// 默认给个 title,不然没法点
|
170
|
-
const finalTitle = this.state.collapsed ? title : collapseTitle || title;
|
171
|
-
|
172
|
-
let dom = [
|
173
|
-
finalTitle ? (
|
174
|
-
<HeadingComponent
|
175
|
-
key="title"
|
176
|
-
onClick={this.toggleCollapsed}
|
177
|
-
className={cx(`Collapse-header`, headingClassName)}
|
178
|
-
>
|
179
|
-
{collapsable && <span className={cx('Collapse-arrow')} />}
|
180
|
-
{render('heading', finalTitle)}
|
181
|
-
</HeadingComponent>
|
182
|
-
) : null,
|
183
144
|
|
145
|
+
return (
|
184
146
|
<BasicCollapse
|
185
|
-
|
147
|
+
key={key}
|
148
|
+
id={id}
|
186
149
|
classnames={cx}
|
187
150
|
classPrefix={ns}
|
188
|
-
key="body"
|
189
151
|
mountOnEnter={mountOnEnter}
|
190
152
|
unmountOnExit={unmountOnExit}
|
153
|
+
size={size}
|
154
|
+
wrapperComponent={wrapperComponent}
|
155
|
+
headingComponent={headingComponent}
|
156
|
+
className={className}
|
157
|
+
headingClassName={headingClassName}
|
158
|
+
bodyClassName={bodyClassName}
|
159
|
+
headerPosition={titlePosition || headerPosition}
|
160
|
+
collapsable={collapsable}
|
161
|
+
collapsed={collapsed}
|
162
|
+
showArrow={showArrow}
|
163
|
+
disabled={disabled}
|
164
|
+
propsUpdate={propsUpdate}
|
165
|
+
expandIcon={expandIcon ? render('arrow-icon', expandIcon || '', {className: cx('Collapse-icon-tranform')}) : null}
|
166
|
+
collapseHeader={collapseTitle || collapseHeader ? render('heading', collapseTitle || collapseHeader) : null}
|
167
|
+
header={render('heading', title || header || '')}
|
168
|
+
body={children
|
169
|
+
? typeof children === 'function'
|
170
|
+
? children(this.props)
|
171
|
+
: children
|
172
|
+
: body
|
173
|
+
? render('body', body)
|
174
|
+
: null}
|
175
|
+
onCollapse={onCollapse}
|
191
176
|
>
|
192
|
-
<div className={cx(`Collapse-body`, bodyClassName)}>
|
193
|
-
{children
|
194
|
-
? typeof children === 'function'
|
195
|
-
? children(this.props)
|
196
|
-
: children
|
197
|
-
: body
|
198
|
-
? render('body', body)
|
199
|
-
: null}
|
200
|
-
</div>
|
201
177
|
</BasicCollapse>
|
202
|
-
];
|
203
|
-
|
204
|
-
if (titlePosition === 'bottom') {
|
205
|
-
dom.reverse();
|
206
|
-
}
|
207
|
-
|
208
|
-
return (
|
209
|
-
<WrapperComponent
|
210
|
-
className={cx(
|
211
|
-
`Collapse`,
|
212
|
-
{
|
213
|
-
'is-collapsed': this.state.collapsed,
|
214
|
-
[`Collapse--${size}`]: size,
|
215
|
-
'Collapse--collapsable': collapsable,
|
216
|
-
'Collapse--title-bottom': titlePosition === 'bottom'
|
217
|
-
},
|
218
|
-
className
|
219
|
-
)}
|
220
|
-
>
|
221
|
-
{dom}
|
222
|
-
</WrapperComponent>
|
223
178
|
);
|
224
179
|
}
|
225
180
|
}
|
@@ -0,0 +1,80 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import {Renderer, RendererProps} from '../factory';
|
3
|
+
import {BaseSchema, SchemaCollection, SchemaObject} from '../Schema';
|
4
|
+
import CollapseGroup from '../components/CollapseGroup';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* CollapseGroup 折叠渲染器,格式说明。
|
8
|
+
* 文档:https://baidu.gitee.io/amis/docs/components/collapse
|
9
|
+
*/
|
10
|
+
export interface CollapseGroupSchema extends BaseSchema {
|
11
|
+
/**
|
12
|
+
* 指定为折叠器类型
|
13
|
+
*/
|
14
|
+
type: 'collapse-group';
|
15
|
+
|
16
|
+
/**
|
17
|
+
* 激活面板
|
18
|
+
*/
|
19
|
+
activeKey?: Array<string | number | never> | string | number;
|
20
|
+
|
21
|
+
/**
|
22
|
+
* 手风琴模式
|
23
|
+
*/
|
24
|
+
accordion?: boolean;
|
25
|
+
|
26
|
+
/**
|
27
|
+
* 自定义切换图标
|
28
|
+
*/
|
29
|
+
expandIcon?: SchemaObject;
|
30
|
+
|
31
|
+
/**
|
32
|
+
* 设置图标位置
|
33
|
+
*/
|
34
|
+
expandIconPosition?: 'left' | 'right';
|
35
|
+
|
36
|
+
/**
|
37
|
+
* 内容区域
|
38
|
+
*/
|
39
|
+
body?: SchemaCollection;
|
40
|
+
}
|
41
|
+
export interface CollapseGroupProps
|
42
|
+
extends RendererProps,
|
43
|
+
Omit<CollapseGroupSchema, 'type' | 'className'> {
|
44
|
+
|
45
|
+
children?: JSX.Element | ((props?: any) => JSX.Element);
|
46
|
+
}
|
47
|
+
|
48
|
+
export class CollapseGroupRender extends React.Component<CollapseGroupProps, {}> {
|
49
|
+
constructor(props: CollapseGroupProps) {
|
50
|
+
super(props);
|
51
|
+
}
|
52
|
+
render() {
|
53
|
+
const {
|
54
|
+
defaultActiveKey,
|
55
|
+
accordion,
|
56
|
+
expandIcon,
|
57
|
+
expandIconPosition,
|
58
|
+
body,
|
59
|
+
className,
|
60
|
+
render
|
61
|
+
} = this.props;
|
62
|
+
return (
|
63
|
+
<CollapseGroup
|
64
|
+
defaultActiveKey={defaultActiveKey}
|
65
|
+
accordion={accordion}
|
66
|
+
expandIcon={expandIcon}
|
67
|
+
expandIconPosition={expandIconPosition}
|
68
|
+
className={className}
|
69
|
+
>
|
70
|
+
{render('body', body || '')}
|
71
|
+
</CollapseGroup>
|
72
|
+
)
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
|
77
|
+
@Renderer({
|
78
|
+
type: 'collapse-group'
|
79
|
+
})
|
80
|
+
export class CollapseGroupRenderer extends CollapseGroupRender {}
|
@@ -66,12 +66,12 @@ const ConditionBuilderWithRemoteOptions = withRemoteConfig({
|
|
66
66
|
RemoteOptionsProps & React.ComponentProps<typeof ConditionBuilder>
|
67
67
|
> {
|
68
68
|
render() {
|
69
|
-
const {loading, config, deferLoad, ...rest} = this.props;
|
69
|
+
const {loading, config, deferLoad, disabled, ...rest} = this.props;
|
70
70
|
return (
|
71
71
|
<ConditionBuilder
|
72
72
|
{...rest}
|
73
73
|
fields={config || rest.fields || []}
|
74
|
-
disabled={loading}
|
74
|
+
disabled={disabled || loading}
|
75
75
|
/>
|
76
76
|
);
|
77
77
|
}
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import {FormItem, FormControlProps, FormBaseControl} from './Item';
|
3
3
|
import {ClassNamesFn, themeable, ThemeProps} from '../../theme';
|
4
|
-
import
|
4
|
+
import Spinner from '../../components/Spinner';
|
5
|
+
import Select from '../../components/Select';
|
5
6
|
import {autobind} from '../../utils/helper';
|
6
7
|
import {Option} from './Options';
|
7
8
|
import {localeable, LocaleProps} from '../../locale';
|
@@ -293,13 +294,8 @@ export class CityPicker extends React.Component<
|
|
293
294
|
|
294
295
|
@autobind
|
295
296
|
syncOut() {
|
296
|
-
const {
|
297
|
-
|
298
|
-
allowStreet,
|
299
|
-
joinValues,
|
300
|
-
extractValue,
|
301
|
-
delimiter
|
302
|
-
} = this.props;
|
297
|
+
const {onChange, allowStreet, joinValues, extractValue, delimiter} =
|
298
|
+
this.props;
|
303
299
|
|
304
300
|
const {code, province, city, district, street} = this.state;
|
305
301
|
|
@@ -1,7 +1,9 @@
|
|
1
1
|
import React, {Suspense} from 'react';
|
2
|
-
import {FormItem, FormControlProps, FormBaseControl} from './Item';
|
3
2
|
import cx from 'classnames';
|
4
3
|
|
4
|
+
import {FormItem, FormControlProps, FormBaseControl} from './Item';
|
5
|
+
import type {PresetColor} from '../../components/ColorPicker';
|
6
|
+
|
5
7
|
export const ColorPicker = React.lazy(
|
6
8
|
() => import('../../components/ColorPicker')
|
7
9
|
);
|
@@ -34,7 +36,7 @@ export interface InputColorControlSchema extends FormBaseControl {
|
|
34
36
|
/**
|
35
37
|
* 预设颜色,用户可以直接从预设中选。
|
36
38
|
*/
|
37
|
-
presetColors?: Array<
|
39
|
+
presetColors?: Array<PresetColor>;
|
38
40
|
|
39
41
|
/**
|
40
42
|
* 是否允许用户输入颜色。
|
@@ -18,8 +18,10 @@ import {dataMapping} from '../../utils/tpl-builtin';
|
|
18
18
|
import {
|
19
19
|
SchemaApi,
|
20
20
|
SchemaClassName,
|
21
|
-
SchemaTokenizeableString
|
21
|
+
SchemaTokenizeableString,
|
22
|
+
SchemaUrlPath
|
22
23
|
} from '../../Schema';
|
24
|
+
import merge from 'lodash/merge';
|
23
25
|
|
24
26
|
/**
|
25
27
|
* File 文件上传控件
|
@@ -88,6 +90,11 @@ export interface FileControlSchema extends FormBaseControl {
|
|
88
90
|
*/
|
89
91
|
downloadUrl?: SchemaApi;
|
90
92
|
|
93
|
+
/**
|
94
|
+
* 模板下载地址
|
95
|
+
*/
|
96
|
+
templateUrl?: SchemaApi;
|
97
|
+
|
91
98
|
/**
|
92
99
|
* 默认 `file`, 如果你不想自己存储,则可以忽略此属性。
|
93
100
|
* @default file
|
@@ -275,6 +282,7 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
275
282
|
extractValue: false,
|
276
283
|
delimiter: ',',
|
277
284
|
downloadUrl: '', // '/api/file/'
|
285
|
+
templateUrl: '',
|
278
286
|
useChunk: 'auto',
|
279
287
|
chunkSize: 5 * 1024 * 1024, // 文件大于5M, 自动分块上传
|
280
288
|
startChunkApi: '/api/upload/startChunk',
|
@@ -356,11 +364,12 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
356
364
|
if (value && value instanceof Blob) {
|
357
365
|
files = [value as any];
|
358
366
|
} else if (value) {
|
359
|
-
files = (
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
367
|
+
files = (
|
368
|
+
Array.isArray(value)
|
369
|
+
? value
|
370
|
+
: joinValues
|
371
|
+
? `${(value as any)[valueField] || value}`.split(delimiter)
|
372
|
+
: [value as any]
|
364
373
|
)
|
365
374
|
.map(item => FileControl.valueToFile(item, props) as FileValue)
|
366
375
|
.filter(item => item);
|
@@ -386,6 +395,7 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
386
395
|
this.uploadBigFile = this.uploadBigFile.bind(this);
|
387
396
|
this.handleSelect = this.handleSelect.bind(this);
|
388
397
|
this.syncAutoFill = this.syncAutoFill.bind(this);
|
398
|
+
this.downloadTpl = this.downloadTpl.bind(this);
|
389
399
|
}
|
390
400
|
|
391
401
|
componentDidMount() {
|
@@ -402,11 +412,12 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
402
412
|
let files: Array<FileValue> = [];
|
403
413
|
|
404
414
|
if (value) {
|
405
|
-
files = (
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
415
|
+
files = (
|
416
|
+
Array.isArray(value)
|
417
|
+
? value
|
418
|
+
: joinValues && typeof value === 'string'
|
419
|
+
? value.split(delimiter)
|
420
|
+
: [value as any]
|
410
421
|
)
|
411
422
|
.map(item => {
|
412
423
|
let obj = FileControl.valueToFile(
|
@@ -532,7 +543,7 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
532
543
|
e.preventDefault();
|
533
544
|
e.stopPropagation();
|
534
545
|
|
535
|
-
const {
|
546
|
+
const {downloadUrl} = this.props;
|
536
547
|
const urlField = this.props.urlField || 'url';
|
537
548
|
const valueField = this.props.valueField || 'value';
|
538
549
|
|
@@ -547,10 +558,23 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
547
558
|
? downloadUrl
|
548
559
|
: `${fileUrl}`;
|
549
560
|
|
561
|
+
this.handleApi(api, file);
|
562
|
+
}
|
563
|
+
|
564
|
+
downloadTpl(e: React.MouseEvent) {
|
565
|
+
e.preventDefault();
|
566
|
+
e.stopPropagation();
|
567
|
+
|
568
|
+
this.handleApi(this.props.templateUrl || '');
|
569
|
+
}
|
570
|
+
|
571
|
+
handleApi(api: SchemaApi, payload?: object) {
|
572
|
+
const {data, env} = this.props;
|
550
573
|
if (api) {
|
551
574
|
const ctx = createObject(data, {
|
552
|
-
...
|
575
|
+
...payload
|
553
576
|
});
|
577
|
+
|
554
578
|
const apiObject = normalizeApi(api);
|
555
579
|
|
556
580
|
if (apiObject.method?.toLowerCase() === 'get' && !apiObject.data) {
|
@@ -851,8 +875,8 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
851
875
|
}
|
852
876
|
|
853
877
|
syncAutoFill() {
|
854
|
-
const {autoFill, multiple, onBulkChange} = this.props;
|
855
|
-
if (!isEmpty(autoFill)) {
|
878
|
+
const {autoFill, multiple, onBulkChange, data} = this.props;
|
879
|
+
if (!isEmpty(autoFill) && onBulkChange) {
|
856
880
|
const files = this.state.files.filter(
|
857
881
|
file => ~['uploaded', 'init', 'ready'].indexOf(file.state as string)
|
858
882
|
);
|
@@ -864,7 +888,12 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
864
888
|
}
|
865
889
|
: files[0]
|
866
890
|
);
|
867
|
-
|
891
|
+
Object.keys(toSync).forEach(key => {
|
892
|
+
if (isPlainObject(toSync[key]) && isPlainObject(data[key])) {
|
893
|
+
toSync[key] = merge({}, data[key], toSync[key]);
|
894
|
+
}
|
895
|
+
});
|
896
|
+
onBulkChange(toSync);
|
868
897
|
}
|
869
898
|
}
|
870
899
|
|
@@ -1163,7 +1192,8 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
1163
1192
|
classnames: cx,
|
1164
1193
|
translate: __,
|
1165
1194
|
render,
|
1166
|
-
downloadUrl
|
1195
|
+
downloadUrl,
|
1196
|
+
templateUrl
|
1167
1197
|
} = this.props;
|
1168
1198
|
let {files, uploading, error} = this.state;
|
1169
1199
|
const nameField = this.props.nameField || 'name';
|
@@ -1186,6 +1216,16 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
1186
1216
|
|
1187
1217
|
return (
|
1188
1218
|
<div className={cx('FileControl', className)}>
|
1219
|
+
{templateUrl ? (
|
1220
|
+
<a
|
1221
|
+
className={cx('FileControl-templateInfo')}
|
1222
|
+
onClick={this.downloadTpl.bind(this)}
|
1223
|
+
>
|
1224
|
+
<Icon icon="download" className="icon" />
|
1225
|
+
<span>{__('File.downloadTpl')}</span>
|
1226
|
+
</a>
|
1227
|
+
) : null}
|
1228
|
+
|
1189
1229
|
<DropZone
|
1190
1230
|
disabled={disabled}
|
1191
1231
|
key="drop-zone"
|
@@ -1223,13 +1263,14 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
1223
1263
|
onClick={this.handleSelect}
|
1224
1264
|
>
|
1225
1265
|
<Icon icon="upload" className="icon" />
|
1226
|
-
<span>
|
1227
|
-
|
1228
|
-
|
1229
|
-
|
1230
|
-
|
1231
|
-
|
1232
|
-
|
1266
|
+
<span>
|
1267
|
+
{!multiple && files.length
|
1268
|
+
? __('File.repick')
|
1269
|
+
: multiple && files.length
|
1270
|
+
? __('File.continueAdd')
|
1271
|
+
: btnLabel
|
1272
|
+
? btnLabel
|
1273
|
+
: __('File.upload')}
|
1233
1274
|
</span>
|
1234
1275
|
</Button>
|
1235
1276
|
) : null}
|
@@ -29,6 +29,8 @@ import {
|
|
29
29
|
SchemaUrlPath
|
30
30
|
} from '../../Schema';
|
31
31
|
import {filter} from '../../utils/tpl';
|
32
|
+
import isPlainObject from 'lodash/isPlainObject';
|
33
|
+
import merge from 'lodash/merge';
|
32
34
|
|
33
35
|
/**
|
34
36
|
* Image 图片上传控件
|
@@ -790,8 +792,8 @@ export default class ImageControl extends React.Component<
|
|
790
792
|
}
|
791
793
|
|
792
794
|
syncAutoFill() {
|
793
|
-
const {autoFill, multiple, onBulkChange} = this.props;
|
794
|
-
if (!isEmpty(autoFill)) {
|
795
|
+
const {autoFill, multiple, onBulkChange, data} = this.props;
|
796
|
+
if (!isEmpty(autoFill) && onBulkChange) {
|
795
797
|
const files = this.state.files.filter(
|
796
798
|
file => ~['uploaded', 'init', 'ready'].indexOf(file.state as string)
|
797
799
|
);
|
@@ -803,7 +805,13 @@ export default class ImageControl extends React.Component<
|
|
803
805
|
}
|
804
806
|
: files[0]
|
805
807
|
);
|
806
|
-
|
808
|
+
|
809
|
+
Object.keys(toSync).forEach(key => {
|
810
|
+
if (isPlainObject(toSync[key]) && isPlainObject(data[key])) {
|
811
|
+
toSync[key] = merge({}, data[key], toSync[key]);
|
812
|
+
}
|
813
|
+
});
|
814
|
+
onBulkChange(toSync);
|
807
815
|
}
|
808
816
|
}
|
809
817
|
|
@@ -314,7 +314,7 @@ export interface FormItemProps extends RendererProps {
|
|
314
314
|
submitOnChange?: boolean,
|
315
315
|
changeImmediately?: boolean
|
316
316
|
) => void;
|
317
|
-
onBulkChange
|
317
|
+
onBulkChange?: (
|
318
318
|
values: {[propName: string]: any},
|
319
319
|
submitOnChange?: boolean
|
320
320
|
) => void;
|
@@ -1089,7 +1089,8 @@ export const detectProps = [
|
|
1089
1089
|
'items',
|
1090
1090
|
'showCounter',
|
1091
1091
|
'minLength',
|
1092
|
-
'maxLength'
|
1092
|
+
'maxLength',
|
1093
|
+
'embed'
|
1093
1094
|
];
|
1094
1095
|
|
1095
1096
|
export function asFormItem(config: Omit<FormItemConfig, 'component'>) {
|
@@ -48,6 +48,8 @@ import {
|
|
48
48
|
SchemaObject,
|
49
49
|
SchemaTokenizeableString
|
50
50
|
} from '../../Schema';
|
51
|
+
import isPlainObject from 'lodash/isPlainObject';
|
52
|
+
import merge from 'lodash/merge';
|
51
53
|
|
52
54
|
export {Option};
|
53
55
|
|
@@ -450,7 +452,12 @@ export function registerOptionsControl(config: OptionsConfig) {
|
|
450
452
|
const {autoFill, multiple, onBulkChange, data} = this.props;
|
451
453
|
const formItem = this.props.formItem as IFormItemStore;
|
452
454
|
|
453
|
-
if (
|
455
|
+
if (
|
456
|
+
onBulkChange &&
|
457
|
+
autoFill &&
|
458
|
+
!isEmpty(autoFill) &&
|
459
|
+
formItem.filteredOptions.length
|
460
|
+
) {
|
454
461
|
const selectedOptions = formItem.getSelectedOptions(value);
|
455
462
|
const toSync = dataMapping(
|
456
463
|
autoFill,
|
@@ -482,7 +489,14 @@ export function registerOptionsControl(config: OptionsConfig) {
|
|
482
489
|
selectedOptions[0]
|
483
490
|
)
|
484
491
|
);
|
485
|
-
|
492
|
+
|
493
|
+
Object.keys(toSync).forEach(key => {
|
494
|
+
if (isPlainObject(toSync[key]) && isPlainObject(data[key])) {
|
495
|
+
toSync[key] = merge({}, data[key], toSync[key]);
|
496
|
+
}
|
497
|
+
});
|
498
|
+
|
499
|
+
onBulkChange(toSync);
|
486
500
|
}
|
487
501
|
}
|
488
502
|
|
@@ -873,7 +887,19 @@ export function registerOptionsControl(config: OptionsConfig) {
|
|
873
887
|
body: {
|
874
888
|
type: 'form',
|
875
889
|
api: addApi,
|
876
|
-
controls:
|
890
|
+
controls: [
|
891
|
+
{
|
892
|
+
type: 'hidden',
|
893
|
+
name: 'idx',
|
894
|
+
value: idx
|
895
|
+
},
|
896
|
+
{
|
897
|
+
type: 'hidden',
|
898
|
+
name: 'parent',
|
899
|
+
value: parent
|
900
|
+
},
|
901
|
+
...(addControls || [])
|
902
|
+
]
|
877
903
|
}
|
878
904
|
},
|
879
905
|
ctx
|