amis 1.4.1 → 1.4.2-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/Schema.d.ts +26 -2
- package/lib/Schema.js.map +1 -1
- package/lib/components/Alert.js +3 -1
- package/lib/components/Alert.js.map +2 -2
- package/lib/components/AnchorNav.d.ts +22 -21
- package/lib/components/AnchorNav.js +7 -3
- package/lib/components/AnchorNav.js.map +2 -2
- package/lib/components/ArrayInput.d.ts +84 -84
- package/lib/components/AssociatedSelection.d.ts +930 -0
- package/lib/components/AssociatedSelection.js +89 -0
- package/lib/components/AssociatedSelection.js.map +13 -0
- package/lib/components/Badge.d.ts +2 -2
- package/lib/components/Badge.js +13 -7
- package/lib/components/Badge.js.map +2 -2
- package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
- package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
- package/lib/components/ChainedSelection.js.map +13 -0
- package/lib/components/Collapse.js +1 -1
- package/lib/components/Collapse.js.map +2 -2
- package/lib/components/ColorPicker.d.ts +84 -84
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DatePicker.js +1 -1
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +84 -84
- package/lib/components/DateRangePicker.js +1 -1
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/Editor.d.ts +84 -84
- package/lib/components/GroupedSelection.d.ts +907 -0
- package/lib/components/GroupedSelection.js +48 -0
- package/lib/components/GroupedSelection.js.map +13 -0
- package/lib/components/InputBox.d.ts +22 -21
- package/lib/components/InputBox.js +11 -3
- package/lib/components/InputBox.js.map +2 -2
- package/lib/components/Link.d.ts +84 -0
- package/lib/components/Link.js +43 -0
- package/lib/components/Link.js.map +13 -0
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/ModalManager.js +1 -1
- package/lib/components/ModalManager.js.map +2 -2
- package/lib/components/MonthRangePicker.d.ts +84 -84
- package/lib/components/MonthRangePicker.js +1 -1
- package/lib/components/MonthRangePicker.js.map +2 -2
- package/lib/components/NumberInput.d.ts +20 -20
- package/lib/components/PickerColumn.d.ts +514 -0
- package/lib/components/PickerColumn.js +279 -0
- package/lib/components/PickerColumn.js.map +13 -0
- package/lib/components/PickerContainer.d.ts +513 -0
- package/lib/components/PickerContainer.js +96 -0
- package/lib/components/PickerContainer.js.map +13 -0
- package/lib/components/Radios.d.ts +22 -21
- package/lib/components/Radios.js +1 -0
- package/lib/components/Radios.js.map +2 -2
- package/lib/components/Rating.d.ts +21 -21
- package/lib/components/ResultBox.d.ts +84 -84
- package/lib/components/ResultBox.js +10 -2
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/RichText.js +17 -53
- package/lib/components/RichText.js.map +2 -2
- package/lib/components/SearchBox.d.ts +84 -84
- package/lib/components/SearchBox.js +4 -4
- package/lib/components/SearchBox.js.map +2 -2
- package/lib/components/Select.d.ts +245 -237
- package/lib/components/Select.js +28 -4
- package/lib/components/Select.js.map +2 -2
- package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
- package/lib/components/Selection.js +134 -0
- package/lib/components/Selection.js.map +13 -0
- package/lib/components/SparkLine.d.ts +85 -84
- package/lib/components/SparkLine.js +2 -2
- package/lib/components/SparkLine.js.map +2 -2
- package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
- package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
- package/lib/components/TableSelection.js.map +13 -0
- package/lib/components/Tabs.d.ts +20 -20
- package/lib/components/TabsTransfer.d.ts +84 -84
- package/lib/components/TabsTransfer.js +9 -9
- package/lib/components/TabsTransfer.js.map +2 -2
- package/lib/components/TabsTransferPicker.d.ts +489 -0
- package/lib/components/TabsTransferPicker.js +60 -0
- package/lib/components/TabsTransferPicker.js.map +13 -0
- package/lib/components/Toast.js +2 -2
- package/lib/components/Toast.js.map +2 -2
- package/lib/components/Transfer.d.ts +908 -274
- package/lib/components/Transfer.js +31 -24
- package/lib/components/Transfer.js.map +2 -2
- package/lib/components/TransferDropDown.d.ts +488 -0
- package/lib/components/TransferDropDown.js +59 -0
- package/lib/components/TransferDropDown.js.map +13 -0
- package/lib/components/TransferPicker.d.ts +493 -0
- package/lib/components/TransferPicker.js +60 -0
- package/lib/components/TransferPicker.js.map +13 -0
- package/lib/components/Tree.d.ts +84 -84
- package/lib/components/Tree.js +5 -3
- package/lib/components/Tree.js.map +2 -2
- package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
- package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
- package/lib/components/TreeSelection.js.map +13 -0
- package/lib/components/WithRemoteConfig.js +1 -1
- package/lib/components/WithRemoteConfig.js.map +2 -2
- package/lib/components/condition-builder/Field.js +5 -2
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Func.js +2 -2
- package/lib/components/condition-builder/Func.js.map +2 -2
- package/lib/components/condition-builder/InputSwitch.js +2 -2
- package/lib/components/condition-builder/InputSwitch.js.map +2 -2
- package/lib/components/condition-builder/Item.js +3 -3
- package/lib/components/condition-builder/Item.js.map +2 -2
- package/lib/components/icons.js +14 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/components/index.d.ts +8 -8
- package/lib/components/index.js +16 -16
- package/lib/components/index.js.map +2 -2
- package/lib/envOverwrite.js.map +2 -2
- package/lib/factory.d.ts +4 -0
- package/lib/factory.js +4 -2
- package/lib/factory.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/hooks/index.d.ts +5 -0
- package/lib/hooks/index.js +14 -0
- package/lib/hooks/index.js.map +13 -0
- package/lib/hooks/use-set-state.d.ts +2 -0
- package/lib/hooks/use-set-state.js +15 -0
- package/lib/hooks/use-set-state.js.map +13 -0
- package/lib/hooks/use-touch.d.ts +16 -0
- package/lib/hooks/use-touch.js +73 -0
- package/lib/hooks/use-touch.js.map +13 -0
- package/lib/hooks/use-update-effect.d.ts +3 -0
- package/lib/hooks/use-update-effect.js +17 -0
- package/lib/hooks/use-update-effect.js.map +13 -0
- package/lib/icons/clock.js +10 -0
- package/lib/icons/download.js +7 -0
- package/lib/icons/status-close.js +11 -0
- package/lib/icons/status-fail.js +11 -0
- package/lib/icons/status-info.js +10 -0
- package/lib/icons/status-success.js +11 -0
- package/lib/icons/status-warning.js +10 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +4 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +4 -0
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +5 -0
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +8 -3
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +8 -0
- package/lib/renderers/Action.js +17 -4
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/AnchorNav.d.ts +1 -0
- package/lib/renderers/AnchorNav.js +2 -2
- package/lib/renderers/AnchorNav.js.map +2 -2
- package/lib/renderers/Avatar.js +3 -3
- package/lib/renderers/Avatar.js.map +2 -2
- package/lib/renderers/Breadcrumb.js +1 -1
- package/lib/renderers/Breadcrumb.js.map +2 -2
- package/lib/renderers/CRUD.d.ts +9 -0
- package/lib/renderers/CRUD.js +43 -8
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Card.d.ts +4 -0
- package/lib/renderers/Card.js +29 -23
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Chart.js +1 -1
- package/lib/renderers/Chart.js.map +2 -2
- package/lib/renderers/Collapse.js +3 -2
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/Dialog.js +0 -3
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/Drawer.js +0 -3
- package/lib/renderers/Drawer.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +5 -1
- package/lib/renderers/DropDownButton.js +8 -6
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Form/Checkbox.d.ts +5 -0
- package/lib/renderers/Form/Checkbox.js +4 -0
- package/lib/renderers/Form/Checkbox.js.map +2 -2
- package/lib/renderers/Form/Combo.js +2 -2
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +4 -3
- package/lib/renderers/Form/Editor.d.ts +3 -2
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputCity.js +7 -6
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.d.ts +84 -84
- package/lib/renderers/Form/InputFile.d.ts +6 -0
- package/lib/renderers/Form/InputFile.js +30 -10
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.js +16 -7
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +1 -1
- package/lib/renderers/Form/Item.js.map +1 -1
- package/lib/renderers/Form/Options.js +19 -6
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Picker.js +2 -2
- package/lib/renderers/Form/Picker.js.map +2 -2
- package/lib/renderers/Form/Select.d.ts +42 -4
- package/lib/renderers/Form/Select.js +37 -3
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
- package/lib/renderers/Form/TabsTransferPicker.js +29 -0
- package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
- package/lib/renderers/Form/Transfer.js +18 -3
- package/lib/renderers/Form/Transfer.js.map +2 -2
- package/lib/renderers/Form/TransferPicker.d.ts +52 -0
- package/lib/renderers/Form/TransferPicker.js +43 -0
- package/lib/renderers/Form/TransferPicker.js.map +13 -0
- package/lib/renderers/Form/TreeSelect.js +2 -2
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.d.ts +5 -0
- package/lib/renderers/Form/index.js +5 -3
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +15 -3
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/IFrame.js +3 -5
- package/lib/renderers/IFrame.js.map +2 -2
- package/lib/renderers/Image.d.ts +1 -0
- package/lib/renderers/Image.js +15 -1
- package/lib/renderers/Image.js.map +2 -2
- package/lib/renderers/Json.d.ts +4 -0
- package/lib/renderers/Json.js +4 -13
- package/lib/renderers/Json.js.map +2 -2
- package/lib/renderers/Link.d.ts +18 -3
- package/lib/renderers/Link.js +27 -15
- package/lib/renderers/Link.js.map +2 -2
- package/lib/renderers/List.js +1 -1
- package/lib/renderers/List.js.map +2 -2
- package/lib/renderers/Log.d.ts +2 -2
- package/lib/renderers/Log.js +7 -1
- package/lib/renderers/Log.js.map +2 -2
- package/lib/renderers/Mapping.d.ts +9 -2
- package/lib/renderers/Mapping.js +18 -6
- package/lib/renderers/Mapping.js.map +2 -2
- package/lib/renderers/Nav.d.ts +62 -36
- package/lib/renderers/Nav.js +272 -96
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Portlet.d.ts +125 -0
- package/lib/renderers/Portlet.js +156 -0
- package/lib/renderers/Portlet.js.map +13 -0
- package/lib/renderers/Property.js +2 -1
- package/lib/renderers/Property.js.map +2 -2
- package/lib/renderers/SearchBox.d.ts +6 -1
- package/lib/renderers/SearchBox.js +19 -5
- package/lib/renderers/SearchBox.js.map +2 -2
- package/lib/renderers/SparkLine.d.ts +4 -0
- package/lib/renderers/SparkLine.js.map +2 -2
- package/lib/renderers/Table/ColumnToggler.d.ts +113 -0
- package/lib/renderers/Table/ColumnToggler.js +216 -0
- package/lib/renderers/Table/ColumnToggler.js.map +13 -0
- package/lib/renderers/Table/ItemActionsWrapper.d.ts +11 -0
- package/lib/renderers/Table/ItemActionsWrapper.js +31 -0
- package/lib/renderers/Table/ItemActionsWrapper.js.map +13 -0
- package/lib/renderers/Table/TableBody.d.ts +4 -0
- package/lib/renderers/Table/TableCell.js +3 -1
- package/lib/renderers/Table/TableCell.js.map +2 -2
- package/lib/renderers/Table/TableContent.d.ts +4 -1
- package/lib/renderers/Table/TableContent.js +21 -1
- package/lib/renderers/Table/TableContent.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +19 -2
- package/lib/renderers/Table/index.js +172 -57
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Tabs.js +9 -1
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/WebComponent.js +1 -1
- package/lib/renderers/WebComponent.js.map +2 -2
- package/lib/store/combo.d.ts +2 -16
- package/lib/store/crud.js +3 -7
- package/lib/store/crud.js.map +2 -2
- package/lib/store/form.d.ts +1 -1
- package/lib/store/form.js +5 -6
- package/lib/store/form.js.map +2 -2
- package/lib/store/service.js +5 -4
- package/lib/store/service.js.map +2 -2
- package/lib/store/table.d.ts +260 -3
- package/lib/store/table.js +69 -11
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +888 -238
- package/lib/themes/ang.css +888 -238
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +888 -238
- package/lib/themes/antd.css +888 -238
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1446 -457
- package/lib/themes/cxd.css +1446 -457
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +888 -238
- package/lib/themes/dark.css +888 -238
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +1446 -457
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +37 -0
- package/lib/types.js +0 -5
- package/lib/types.js.map +2 -2
- package/lib/utils/api.d.ts +3 -2
- package/lib/utils/api.js +31 -15
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/dom.d.ts +4 -0
- package/lib/utils/dom.js +11 -1
- package/lib/utils/dom.js.map +2 -2
- package/lib/utils/handleAction.d.ts +7 -0
- package/lib/utils/handleAction.js +30 -0
- package/lib/utils/handleAction.js.map +13 -0
- package/lib/utils/helper.d.ts +3 -1
- package/lib/utils/helper.js +14 -5
- package/lib/utils/helper.js.map +2 -2
- package/lib/utils/icon.js +3 -0
- package/lib/utils/icon.js.map +2 -2
- package/lib/utils/tpl-builtin.d.ts +1 -1
- package/lib/utils/tpl-builtin.js +25 -15
- package/lib/utils/tpl-builtin.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +3341 -998
- package/scss/_mixins.scss +1 -3
- package/scss/_properties.scss +63 -4
- package/scss/_utilities.scss +4 -0
- package/scss/base/_common.scss +3 -0
- package/scss/base/_normalize.scss +2 -0
- package/scss/components/_anchor-nav.scss +88 -29
- package/scss/components/_button.scss +4 -5
- package/scss/components/_card.scss +8 -14
- package/scss/components/_collapse.scss +41 -8
- package/scss/components/_column-toggler.scss +234 -0
- package/scss/components/_dropdown.scss +2 -1
- package/scss/components/_images.scss +2 -1
- package/scss/components/_input-box.scss +1 -0
- package/scss/components/_link.scss +6 -0
- package/scss/components/_mapping.scss +6 -0
- package/scss/components/_nav.scss +231 -223
- package/scss/components/_page.scss +5 -4
- package/scss/components/_picker-columns.scss +124 -0
- package/scss/components/_popover.scss +13 -0
- package/scss/components/_portlet.scss +51 -0
- package/scss/components/_progress.scss +2 -0
- package/scss/components/_result-box.scss +1 -0
- package/scss/components/_status.scss +1 -1
- package/scss/components/_steps.scss +1 -1
- package/scss/components/_table.scss +51 -1
- package/scss/components/form/_checks.scss +0 -351
- package/scss/components/form/_color.scss +1 -0
- package/scss/components/form/_date-range.scss +2 -0
- package/scss/components/form/_date.scss +2 -0
- package/scss/components/form/_fieldset.scss +6 -3
- package/scss/components/form/_file.scss +16 -4
- package/scss/components/form/_form.scss +48 -0
- package/scss/components/form/_image.scss +7 -2
- package/scss/components/form/_list.scss +1 -0
- package/scss/components/form/_location.scss +1 -1
- package/scss/components/form/_selection.scss +354 -0
- package/scss/components/form/_text.scss +13 -0
- package/scss/components/form/_textarea.scss +10 -0
- package/scss/components/form/_transfer.scss +77 -18
- package/scss/themes/_common.scss +7 -0
- package/scss/themes/_cxd-colors.scss +56 -0
- package/scss/themes/_cxd-variables.scss +217 -89
- package/scss/themes/cxd.scss +370 -0
- package/sdk/ang-ie11.css +1117 -392
- package/sdk/ang.css +1110 -342
- package/sdk/antd-ie11.css +1105 -380
- package/sdk/antd.css +1110 -342
- package/sdk/charts.js +13 -13
- package/sdk/color-picker.js +65 -69
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +2086 -1062
- package/sdk/cxd.css +1643 -495
- package/sdk/dark-ie11.css +1117 -392
- package/sdk/dark.css +1110 -342
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/iconfont.svg +2513 -0
- package/sdk/iconfont.ttf +0 -0
- package/sdk/iconfont.woff +0 -0
- package/sdk/ie11-patch.css +1 -0
- package/sdk/locale/de-DE.js +4 -0
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +20 -28
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +2086 -1062
- package/sdk/sdk.css +1643 -495
- package/sdk/sdk.js +1219 -1165
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +32 -0
- package/src/components/Alert.tsx +3 -1
- package/src/components/AnchorNav.tsx +15 -4
- package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
- package/src/components/Badge.tsx +38 -26
- package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
- package/src/components/Collapse.tsx +14 -9
- package/src/components/DatePicker.tsx +1 -1
- package/src/components/DateRangePicker.tsx +23 -11
- package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
- package/src/components/InputBox.tsx +11 -10
- package/src/components/Link.tsx +85 -0
- package/src/components/ModalManager.ts +1 -1
- package/src/components/MonthRangePicker.tsx +10 -2
- package/src/components/PickerColumn.tsx +429 -0
- package/src/components/PickerContainer.tsx +128 -0
- package/src/components/Radios.tsx +3 -8
- package/src/components/ResultBox.tsx +9 -9
- package/src/components/RichText.tsx +17 -57
- package/src/components/SearchBox.tsx +4 -5
- package/src/components/Select.tsx +60 -5
- package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
- package/src/components/SparkLine.tsx +4 -1
- package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
- package/src/components/TabsTransfer.tsx +13 -7
- package/src/components/TabsTransferPicker.tsx +85 -0
- package/src/components/Toast.tsx +5 -5
- package/src/components/Transfer.tsx +71 -50
- package/src/components/TransferDropDown.tsx +120 -0
- package/src/components/TransferPicker.tsx +91 -0
- package/src/components/Tree.tsx +6 -8
- package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
- package/src/components/WithRemoteConfig.tsx +7 -2
- package/src/components/condition-builder/Field.tsx +5 -5
- package/src/components/condition-builder/Func.tsx +3 -3
- package/src/components/condition-builder/InputSwitch.tsx +3 -3
- package/src/components/condition-builder/Item.tsx +5 -12
- package/src/components/icons.tsx +15 -0
- package/src/components/index.tsx +13 -13
- package/src/envOverwrite.ts +0 -1
- package/src/factory.tsx +18 -3
- package/src/hooks/index.ts +5 -0
- package/src/hooks/use-set-state.ts +19 -0
- package/src/hooks/use-touch.ts +100 -0
- package/src/hooks/use-update-effect.ts +16 -0
- package/src/icons/clock.svg +1 -0
- package/src/icons/download.svg +4 -0
- package/src/icons/status-close.svg +10 -0
- package/src/icons/status-fail.svg +10 -0
- package/src/icons/status-info.svg +8 -0
- package/src/icons/status-success.svg +10 -0
- package/src/icons/status-warning.svg +8 -0
- package/src/index.tsx +3 -0
- package/src/locale/de-DE.ts +4 -0
- package/src/locale/en-US.ts +5 -0
- package/src/locale/zh-CN.ts +8 -3
- package/src/renderers/Action.tsx +33 -2
- package/src/renderers/AnchorNav.tsx +4 -0
- package/src/renderers/Avatar.tsx +8 -4
- package/src/renderers/Breadcrumb.tsx +5 -1
- package/src/renderers/CRUD.tsx +63 -28
- package/src/renderers/Card.tsx +63 -34
- package/src/renderers/Chart.tsx +6 -2
- package/src/renderers/Collapse.tsx +4 -2
- package/src/renderers/Dialog.tsx +0 -4
- package/src/renderers/Drawer.tsx +0 -4
- package/src/renderers/DropDownButton.tsx +18 -13
- package/src/renderers/Form/Checkbox.tsx +8 -0
- package/src/renderers/Form/Combo.tsx +2 -3
- package/src/renderers/Form/InputCity.tsx +4 -8
- package/src/renderers/Form/InputFile.tsx +66 -24
- package/src/renderers/Form/InputImage.tsx +16 -5
- package/src/renderers/Form/Item.tsx +3 -2
- package/src/renderers/Form/Options.tsx +32 -7
- package/src/renderers/Form/Picker.tsx +3 -2
- package/src/renderers/Form/Select.tsx +162 -21
- package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
- package/src/renderers/Form/Transfer.tsx +19 -4
- package/src/renderers/Form/TransferPicker.tsx +145 -0
- package/src/renderers/Form/TreeSelect.tsx +25 -0
- package/src/renderers/Form/index.tsx +15 -2
- package/src/renderers/Form/wrapControl.tsx +28 -3
- package/src/renderers/IFrame.tsx +4 -5
- package/src/renderers/Image.tsx +10 -0
- package/src/renderers/Json.tsx +9 -9
- package/src/renderers/Link.tsx +53 -14
- package/src/renderers/List.tsx +1 -1
- package/src/renderers/Log.tsx +16 -3
- package/src/renderers/Mapping.tsx +27 -11
- package/src/renderers/Nav.tsx +325 -122
- package/src/renderers/Portlet.tsx +423 -0
- package/src/renderers/Property.tsx +3 -2
- package/src/renderers/SearchBox.tsx +23 -4
- package/src/renderers/SparkLine.tsx +5 -0
- package/src/renderers/Table/ColumnToggler.tsx +544 -0
- package/src/renderers/Table/ItemActionsWrapper.tsx +44 -0
- package/src/renderers/Table/TableCell.tsx +16 -1
- package/src/renderers/Table/TableContent.tsx +40 -2
- package/src/renderers/Table/index.tsx +257 -80
- package/src/renderers/Tabs.tsx +9 -1
- package/src/renderers/WebComponent.tsx +2 -2
- package/src/store/crud.ts +3 -8
- package/src/store/form.ts +5 -10
- package/src/store/service.ts +5 -4
- package/src/store/table.ts +103 -11
- package/src/types.ts +57 -0
- package/src/utils/api.ts +52 -23
- package/src/utils/dom.tsx +12 -0
- package/src/utils/handleAction.ts +41 -0
- package/src/utils/helper.ts +12 -4
- package/src/utils/icon.tsx +4 -0
- package/src/utils/tpl-builtin.ts +48 -17
- package/dump.rdb +0 -0
- package/lib/components/AssociatedCheckboxes.d.ts +0 -762
- package/lib/components/AssociatedCheckboxes.js +0 -90
- package/lib/components/AssociatedCheckboxes.js.map +0 -13
- package/lib/components/ChainedCheckboxes.js.map +0 -13
- package/lib/components/Checkboxes.js +0 -101
- package/lib/components/Checkboxes.js.map +0 -13
- package/lib/components/ListCheckboxes.d.ts +0 -739
- package/lib/components/ListCheckboxes.js +0 -48
- package/lib/components/ListCheckboxes.js.map +0 -13
- package/lib/components/ListRadios.d.ts +0 -763
- package/lib/components/ListRadios.js +0 -86
- package/lib/components/ListRadios.js.map +0 -13
- package/lib/components/TableCheckboxes.js.map +0 -13
- package/lib/components/TreeCheckboxes.js.map +0 -13
- package/lib/components/TreeRadios.d.ts +0 -838
- package/lib/components/TreeRadios.js +0 -116
- package/lib/components/TreeRadios.js.map +0 -13
- package/sdk.zip +0 -0
- package/src/components/ListRadios.tsx +0 -159
- package/src/components/TreeRadios.tsx +0 -202
@@ -61,7 +61,6 @@ class FroalaEditorComponent extends React.Component<FroalaEditorComponentProps>
|
|
61
61
|
config: any;
|
62
62
|
editorInitialized: any;
|
63
63
|
INNER_HTML_ATTR: any;
|
64
|
-
hasSpecialTag: any;
|
65
64
|
oldModel: any;
|
66
65
|
el: any;
|
67
66
|
_initEvents: any;
|
@@ -166,7 +165,7 @@ class FroalaEditorComponent extends React.Component<FroalaEditorComponentProps>
|
|
166
165
|
this.element.innerHTML = this.props.model;
|
167
166
|
}
|
168
167
|
|
169
|
-
this.setContent(
|
168
|
+
this.setContent();
|
170
169
|
|
171
170
|
// Default initialized.
|
172
171
|
this.registerEvent(
|
@@ -176,17 +175,20 @@ class FroalaEditorComponent extends React.Component<FroalaEditorComponentProps>
|
|
176
175
|
|
177
176
|
// Check if events are set.
|
178
177
|
if (!this.config.events) this.config.events = {};
|
179
|
-
this.config.events.initialized = () =>
|
178
|
+
this.config.events.initialized = () => {
|
179
|
+
this.editorInitialized = true;
|
180
|
+
this.initListeners();
|
181
|
+
};
|
180
182
|
|
181
183
|
this.editor = new FroalaEditor(this.element, this.config);
|
182
184
|
}
|
183
185
|
|
184
|
-
setContent(
|
186
|
+
setContent() {
|
185
187
|
if (this.props.model || this.props.model == '') {
|
186
188
|
this.oldModel = this.props.model;
|
187
189
|
|
188
190
|
if (this.editorInitialized) {
|
189
|
-
this.setNormalTagContent(
|
191
|
+
this.setNormalTagContent();
|
190
192
|
} else {
|
191
193
|
if (!this._initEvents) this._initEvents = [];
|
192
194
|
this._initEvents.push(() => this.setNormalTagContent());
|
@@ -194,35 +196,14 @@ class FroalaEditorComponent extends React.Component<FroalaEditorComponentProps>
|
|
194
196
|
}
|
195
197
|
}
|
196
198
|
|
197
|
-
setNormalTagContent(
|
199
|
+
setNormalTagContent() {
|
198
200
|
let self = this;
|
199
201
|
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
self.editor.undo.saveStep();
|
206
|
-
}
|
207
|
-
}
|
208
|
-
|
209
|
-
if (firstTime) {
|
210
|
-
if (this.config.initOnClick) {
|
211
|
-
this.registerEvent('initializationDelayed', () => {
|
212
|
-
htmlSet();
|
213
|
-
});
|
214
|
-
|
215
|
-
this.registerEvent('initialized', () => {
|
216
|
-
this.editorInitialized = true;
|
217
|
-
});
|
218
|
-
} else {
|
219
|
-
this.registerEvent('initialized', () => {
|
220
|
-
this.editorInitialized = true;
|
221
|
-
htmlSet();
|
222
|
-
});
|
223
|
-
}
|
224
|
-
} else {
|
225
|
-
htmlSet();
|
202
|
+
self.editor.html && self.editor.html.set(self.props.model || '');
|
203
|
+
if (self.editorInitialized && self.editor.undo) {
|
204
|
+
//This will reset the undo stack everytime the model changes externally. Can we fix this?
|
205
|
+
self.editor.undo.reset();
|
206
|
+
self.editor.undo.saveStep();
|
226
207
|
}
|
227
208
|
}
|
228
209
|
|
@@ -232,6 +213,7 @@ class FroalaEditorComponent extends React.Component<FroalaEditorComponentProps>
|
|
232
213
|
this.listeningEvents.length = 0;
|
233
214
|
this.element = null;
|
234
215
|
this.editorInitialized = false;
|
216
|
+
this._initEvents = [];
|
235
217
|
}
|
236
218
|
}
|
237
219
|
|
@@ -250,31 +232,9 @@ class FroalaEditorComponent extends React.Component<FroalaEditorComponentProps>
|
|
250
232
|
|
251
233
|
let modelContent = '';
|
252
234
|
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
for (let i = 0; i < attributeNodes.length; i++) {
|
258
|
-
let attrName = attributeNodes[i].name;
|
259
|
-
if (
|
260
|
-
this.config.reactIgnoreAttrs &&
|
261
|
-
this.config.reactIgnoreAttrs.indexOf(attrName) != -1
|
262
|
-
) {
|
263
|
-
continue;
|
264
|
-
}
|
265
|
-
attrs[attrName] = attributeNodes[i].value;
|
266
|
-
}
|
267
|
-
|
268
|
-
if (this.element.innerHTML) {
|
269
|
-
attrs[this.INNER_HTML_ATTR] = this.element.innerHTML;
|
270
|
-
}
|
271
|
-
|
272
|
-
modelContent = attrs;
|
273
|
-
} else {
|
274
|
-
let returnedHtml = this.editor.html.get();
|
275
|
-
if (typeof returnedHtml === 'string') {
|
276
|
-
modelContent = returnedHtml;
|
277
|
-
}
|
235
|
+
let returnedHtml = this.editor.html.get();
|
236
|
+
if (typeof returnedHtml === 'string') {
|
237
|
+
modelContent = returnedHtml;
|
278
238
|
}
|
279
239
|
|
280
240
|
this.oldModel = modelContent;
|
@@ -54,7 +54,7 @@ export class SearchBox extends React.Component<SearchBoxProps> {
|
|
54
54
|
|
55
55
|
@autobind
|
56
56
|
handleCancel() {
|
57
|
-
const {onActiveChange,
|
57
|
+
const {onActiveChange, onCancel, onChange} = this.props;
|
58
58
|
onActiveChange?.(false);
|
59
59
|
onCancel?.();
|
60
60
|
onChange?.('');
|
@@ -62,14 +62,14 @@ export class SearchBox extends React.Component<SearchBoxProps> {
|
|
62
62
|
|
63
63
|
@autobind
|
64
64
|
handleChange(e: React.ChangeEvent<HTMLInputElement>) {
|
65
|
-
const {
|
65
|
+
const {searchImediately, onChange} = this.props;
|
66
66
|
onChange?.(e.currentTarget.value);
|
67
67
|
searchImediately && this.lazyEmitSearch();
|
68
68
|
}
|
69
69
|
|
70
70
|
@autobind
|
71
71
|
handleSearch() {
|
72
|
-
const {
|
72
|
+
const {onSearch, value} = this.props;
|
73
73
|
onSearch?.(value || '');
|
74
74
|
}
|
75
75
|
|
@@ -84,14 +84,13 @@ export class SearchBox extends React.Component<SearchBoxProps> {
|
|
84
84
|
render() {
|
85
85
|
const {
|
86
86
|
classnames: cx,
|
87
|
-
value,
|
88
87
|
active,
|
89
88
|
name,
|
90
89
|
className,
|
91
|
-
onChange,
|
92
90
|
disabled,
|
93
91
|
placeholder,
|
94
92
|
mini,
|
93
|
+
value,
|
95
94
|
translate: __
|
96
95
|
} = this.props;
|
97
96
|
|
@@ -20,7 +20,8 @@ import {
|
|
20
20
|
findTree,
|
21
21
|
autobind,
|
22
22
|
ucFirst,
|
23
|
-
normalizeNodePath
|
23
|
+
normalizeNodePath,
|
24
|
+
isMobile
|
24
25
|
} from '../utils/helper';
|
25
26
|
import find from 'lodash/find';
|
26
27
|
import isPlainObject from 'lodash/isPlainObject';
|
@@ -35,6 +36,7 @@ import {LocaleProps, localeable} from '../locale';
|
|
35
36
|
import Spinner from './Spinner';
|
36
37
|
import {Option, Options} from '../Schema';
|
37
38
|
import {RemoteOptionsProps, withRemoteConfig} from './WithRemoteConfig';
|
39
|
+
import PickerColumn from './PickerColumn';
|
38
40
|
|
39
41
|
export {Option, Options};
|
40
42
|
|
@@ -317,6 +319,7 @@ interface SelectProps extends OptionProps, ThemeProps, LocaleProps {
|
|
317
319
|
defaultCheckAll?: boolean;
|
318
320
|
simpleValue?: boolean;
|
319
321
|
defaultOpen?: boolean;
|
322
|
+
useMobileUI?: boolean;
|
320
323
|
|
321
324
|
/**
|
322
325
|
* 边框模式,全边框,还是半边框,或者没边框。
|
@@ -326,6 +329,11 @@ interface SelectProps extends OptionProps, ThemeProps, LocaleProps {
|
|
326
329
|
* 是否隐藏已选项
|
327
330
|
*/
|
328
331
|
hideSelected?: boolean;
|
332
|
+
|
333
|
+
/**
|
334
|
+
* 移动端样式类名
|
335
|
+
*/
|
336
|
+
mobileClassName?: string;
|
329
337
|
}
|
330
338
|
|
331
339
|
interface SelectState {
|
@@ -335,6 +343,7 @@ interface SelectState {
|
|
335
343
|
inputValue: string;
|
336
344
|
highlightedIndex: number;
|
337
345
|
selection: Array<Option>;
|
346
|
+
pickerSelectItem: any;
|
338
347
|
}
|
339
348
|
|
340
349
|
export class Select extends React.Component<SelectProps, SelectState> {
|
@@ -368,6 +377,8 @@ export class Select extends React.Component<SelectProps, SelectState> {
|
|
368
377
|
|
369
378
|
this.open = this.open.bind(this);
|
370
379
|
this.close = this.close.bind(this);
|
380
|
+
this.confirm = this.confirm.bind(this);
|
381
|
+
this.handlePickerChange = this.handlePickerChange.bind(this);
|
371
382
|
this.toggle = this.toggle.bind(this);
|
372
383
|
this.onBlur = this.onBlur.bind(this);
|
373
384
|
this.onFocus = this.onFocus.bind(this);
|
@@ -391,7 +402,8 @@ export class Select extends React.Component<SelectProps, SelectState> {
|
|
391
402
|
inputValue: '',
|
392
403
|
highlightedIndex: -1,
|
393
404
|
selection: value2array(props.value, props),
|
394
|
-
itemHeight: 35
|
405
|
+
itemHeight: 35,
|
406
|
+
pickerSelectItem: ''
|
395
407
|
};
|
396
408
|
}
|
397
409
|
|
@@ -435,6 +447,14 @@ export class Select extends React.Component<SelectProps, SelectState> {
|
|
435
447
|
});
|
436
448
|
}
|
437
449
|
|
450
|
+
confirm() {
|
451
|
+
// @ts-ignore
|
452
|
+
this.handleChange(this.state.pickerSelectItem);
|
453
|
+
this.setState({
|
454
|
+
isOpen: false
|
455
|
+
});
|
456
|
+
}
|
457
|
+
|
438
458
|
toggle(e?: React.MouseEvent<HTMLDivElement>) {
|
439
459
|
if (
|
440
460
|
e &&
|
@@ -549,6 +569,16 @@ export class Select extends React.Component<SelectProps, SelectState> {
|
|
549
569
|
);
|
550
570
|
}
|
551
571
|
|
572
|
+
handlePickerChange(selectItem: any, index: number, confirm: boolean) {
|
573
|
+
this.setState({
|
574
|
+
pickerSelectItem: selectItem
|
575
|
+
});
|
576
|
+
// 直接选中选项
|
577
|
+
if (confirm) {
|
578
|
+
this.handleChange(selectItem);
|
579
|
+
}
|
580
|
+
}
|
581
|
+
|
552
582
|
handleChange(selectItem: any) {
|
553
583
|
const {onChange, multiple, simpleValue, valueField} = this.props;
|
554
584
|
let {selection} = this.state;
|
@@ -716,6 +746,7 @@ export class Select extends React.Component<SelectProps, SelectState> {
|
|
716
746
|
const {
|
717
747
|
popOverContainer,
|
718
748
|
options,
|
749
|
+
value,
|
719
750
|
valueField,
|
720
751
|
labelField,
|
721
752
|
noResultsText,
|
@@ -737,7 +768,9 @@ export class Select extends React.Component<SelectProps, SelectState> {
|
|
737
768
|
overlayPlacement,
|
738
769
|
translate: __,
|
739
770
|
hideSelected,
|
740
|
-
renderMenu
|
771
|
+
renderMenu,
|
772
|
+
mobileClassName,
|
773
|
+
useMobileUI = false
|
741
774
|
} = this.props;
|
742
775
|
const {selection} = this.state;
|
743
776
|
|
@@ -770,6 +803,9 @@ export class Select extends React.Component<SelectProps, SelectState> {
|
|
770
803
|
// 渲染单个选项
|
771
804
|
const renderItem = ({index, style}: {index: number; style?: object}) => {
|
772
805
|
const item = filtedOptions[index];
|
806
|
+
if (!item) {
|
807
|
+
return null;
|
808
|
+
}
|
773
809
|
const checked =
|
774
810
|
selectedItem === item || !!~selectionValues.indexOf(item[valueField]);
|
775
811
|
if (hideSelected && checked) {
|
@@ -879,7 +915,22 @@ export class Select extends React.Component<SelectProps, SelectState> {
|
|
879
915
|
);
|
880
916
|
};
|
881
917
|
|
882
|
-
const
|
918
|
+
const mobileUI = isMobile() && useMobileUI;
|
919
|
+
const menu = mobileUI ? (
|
920
|
+
<PickerColumn
|
921
|
+
mobileClassName={mobileClassName}
|
922
|
+
labelField={'label'}
|
923
|
+
readonly={false}
|
924
|
+
className={'PickerColumns-column'}
|
925
|
+
value={value && value[0]}
|
926
|
+
swipeDuration={1000}
|
927
|
+
visibleItemCount={5}
|
928
|
+
options={filtedOptions}
|
929
|
+
onChange={checkAll ? noop : this.handlePickerChange}
|
930
|
+
onClose={this.close}
|
931
|
+
onConfirm={this.confirm}
|
932
|
+
></PickerColumn>
|
933
|
+
) : (
|
883
934
|
<div
|
884
935
|
ref={this.menu}
|
885
936
|
className={cx('Select-menu', {
|
@@ -975,7 +1026,11 @@ export class Select extends React.Component<SelectProps, SelectState> {
|
|
975
1026
|
>
|
976
1027
|
<PopOver
|
977
1028
|
overlay
|
978
|
-
className={cx(
|
1029
|
+
className={cx(
|
1030
|
+
'Select-popover',
|
1031
|
+
popoverClassName,
|
1032
|
+
mobileUI ? 'PopOver-isMobile' : ''
|
1033
|
+
)}
|
979
1034
|
style={{
|
980
1035
|
minWidth: this.target ? this.target.offsetWidth : 'auto'
|
981
1036
|
}}
|
@@ -16,29 +16,33 @@ import isEqual from 'lodash/isEqual';
|
|
16
16
|
import {LocaleProps, localeable} from '../locale';
|
17
17
|
// import isPlainObject from 'lodash/isPlainObject';
|
18
18
|
|
19
|
-
export interface
|
19
|
+
export interface BaseSelectionProps extends ThemeProps, LocaleProps {
|
20
20
|
options: Options;
|
21
21
|
className?: string;
|
22
22
|
placeholder?: string;
|
23
|
-
value?: Array<any>;
|
24
|
-
|
23
|
+
value?: any | Array<any>;
|
24
|
+
multiple?: boolean;
|
25
|
+
clearable?: boolean;
|
26
|
+
onChange?: (value: Array<any> | any) => void;
|
25
27
|
onDeferLoad?: (option: Option) => void;
|
26
28
|
inline?: boolean;
|
27
29
|
labelClassName?: string;
|
28
30
|
option2value?: (option: Option) => any;
|
29
31
|
itemClassName?: string;
|
30
32
|
itemRender: (option: Option) => JSX.Element;
|
31
|
-
|
32
33
|
disabled?: boolean;
|
34
|
+
onClick?: (e: React.MouseEvent) => void;
|
33
35
|
}
|
34
36
|
|
35
|
-
export class
|
36
|
-
T extends
|
37
|
+
export class BaseSelection<
|
38
|
+
T extends BaseSelectionProps = BaseSelectionProps,
|
37
39
|
S = any
|
38
40
|
> extends React.Component<T, S> {
|
39
41
|
static defaultProps = {
|
40
42
|
placeholder: 'placeholder.noOption',
|
41
|
-
itemRender: (option: Option) => <span>{option.label}</span
|
43
|
+
itemRender: (option: Option) => <span>{option.label}</span>,
|
44
|
+
multiple: true,
|
45
|
+
clearable: false
|
42
46
|
};
|
43
47
|
|
44
48
|
static value2array(
|
@@ -62,36 +66,82 @@ export class BaseCheckboxes<
|
|
62
66
|
});
|
63
67
|
}
|
64
68
|
|
69
|
+
static resolveSelected(
|
70
|
+
value: any,
|
71
|
+
options: Options,
|
72
|
+
option2value: (option: Option) => any = (option: Option) => option
|
73
|
+
) {
|
74
|
+
value = Array.isArray(value) ? value[0] : value;
|
75
|
+
return findTree(options, option => isEqual(option2value(option), value));
|
76
|
+
}
|
77
|
+
|
78
|
+
// 获取两个数组的交集
|
79
|
+
intersectArray(
|
80
|
+
arr1: undefined | Array<Option>,
|
81
|
+
arr2: undefined | Array<Option>
|
82
|
+
): Array<Option> {
|
83
|
+
if (!Array.isArray(arr1) || !Array.isArray(arr2)) {
|
84
|
+
return [];
|
85
|
+
}
|
86
|
+
const len1 = arr1.length;
|
87
|
+
const len2 = arr2.length;
|
88
|
+
if (len1 < len2) {
|
89
|
+
return this.intersectArray(arr2, arr1);
|
90
|
+
}
|
91
|
+
return Array.from(new Set(arr1.filter(item => arr2.includes(item))));
|
92
|
+
}
|
93
|
+
|
65
94
|
toggleOption(option: Option) {
|
66
|
-
const {
|
95
|
+
const {
|
96
|
+
value,
|
97
|
+
onChange,
|
98
|
+
option2value,
|
99
|
+
options,
|
100
|
+
disabled,
|
101
|
+
multiple,
|
102
|
+
clearable
|
103
|
+
} = this.props;
|
67
104
|
|
68
105
|
if (disabled || option.disabled) {
|
69
106
|
return;
|
70
107
|
}
|
71
108
|
|
72
|
-
let valueArray =
|
109
|
+
let valueArray = BaseSelection.value2array(value, options, option2value);
|
73
110
|
let idx = valueArray.indexOf(option);
|
74
111
|
|
75
|
-
if (~idx) {
|
112
|
+
if (~idx && (multiple || clearable)) {
|
76
113
|
valueArray.splice(idx, 1);
|
77
|
-
} else {
|
114
|
+
} else if (multiple) {
|
78
115
|
valueArray.push(option);
|
116
|
+
} else {
|
117
|
+
valueArray = [option];
|
79
118
|
}
|
80
119
|
|
81
120
|
let newValue: string | Array<Option> = option2value
|
82
121
|
? valueArray.map(item => option2value(item))
|
83
122
|
: valueArray;
|
84
123
|
|
85
|
-
onChange && onChange(newValue);
|
124
|
+
onChange && onChange(multiple ? newValue : newValue[0]);
|
86
125
|
}
|
87
126
|
|
88
127
|
@autobind
|
89
128
|
toggleAll() {
|
90
|
-
const {value, onChange, option2value, options} = this.props;
|
129
|
+
const {value, onChange, option2value, options, multiple} = this.props;
|
130
|
+
if (multiple) {
|
131
|
+
return;
|
132
|
+
}
|
133
|
+
|
91
134
|
let valueArray: Array<Option> = [];
|
92
135
|
|
93
|
-
|
94
|
-
|
136
|
+
const availableOptions = options.filter(option => !option.disabled);
|
137
|
+
const intersectOptions = this.intersectArray(value, availableOptions);
|
138
|
+
|
139
|
+
if (!Array.isArray(value)) {
|
140
|
+
valueArray = availableOptions;
|
141
|
+
} else if (intersectOptions.length < availableOptions.length) {
|
142
|
+
valueArray = Array.from(new Set([...value, ...availableOptions]));
|
143
|
+
} else {
|
144
|
+
valueArray = value.filter(item => !availableOptions.includes(item));
|
95
145
|
}
|
96
146
|
|
97
147
|
let newValue: string | Array<Option> = option2value
|
@@ -113,17 +163,20 @@ export class BaseCheckboxes<
|
|
113
163
|
classnames: cx,
|
114
164
|
option2value,
|
115
165
|
itemClassName,
|
116
|
-
itemRender
|
166
|
+
itemRender,
|
167
|
+
multiple,
|
168
|
+
onClick
|
117
169
|
} = this.props;
|
118
170
|
|
119
171
|
const __ = this.props.translate;
|
120
172
|
|
121
|
-
let valueArray =
|
173
|
+
let valueArray = BaseSelection.value2array(value, options, option2value);
|
122
174
|
let body: Array<React.ReactNode> = [];
|
123
175
|
|
124
176
|
if (Array.isArray(options) && options.length) {
|
125
177
|
body = options.map((option, key) => (
|
126
178
|
<Checkbox
|
179
|
+
type={multiple ? 'checkbox' : 'radio'}
|
127
180
|
className={cx(itemClassName, option.className)}
|
128
181
|
key={key}
|
129
182
|
onChange={() => this.toggleOption(option)}
|
@@ -140,10 +193,11 @@ export class BaseCheckboxes<
|
|
140
193
|
return (
|
141
194
|
<div
|
142
195
|
className={cx(
|
143
|
-
'
|
196
|
+
'Selection',
|
144
197
|
className,
|
145
|
-
inline ? '
|
198
|
+
inline ? 'Selection--inline' : ''
|
146
199
|
)}
|
200
|
+
onClick={onClick}
|
147
201
|
>
|
148
202
|
{body && body.length ? body : <div>{__(placeholder)}</div>}
|
149
203
|
</div>
|
@@ -151,11 +205,11 @@ export class BaseCheckboxes<
|
|
151
205
|
}
|
152
206
|
}
|
153
207
|
|
154
|
-
export class
|
208
|
+
export class Selection extends BaseSelection {}
|
155
209
|
|
156
210
|
export default themeable(
|
157
211
|
localeable(
|
158
|
-
uncontrollable(
|
212
|
+
uncontrollable(Selection, {
|
159
213
|
value: 'onChange'
|
160
214
|
})
|
161
215
|
)
|
@@ -14,6 +14,7 @@ export interface SparkLineProps extends ThemeProps, LocaleProps {
|
|
14
14
|
label?: string;
|
15
15
|
}
|
16
16
|
>;
|
17
|
+
placeholder?: string;
|
17
18
|
onClick?: (e: React.MouseEvent, value?: PlainObject) => void;
|
18
19
|
}
|
19
20
|
|
@@ -76,6 +77,8 @@ export class SparkLine extends React.Component<SparkLineProps> {
|
|
76
77
|
value,
|
77
78
|
width,
|
78
79
|
height,
|
80
|
+
placeholder,
|
81
|
+
translate: __,
|
79
82
|
onClick
|
80
83
|
} = this.props;
|
81
84
|
|
@@ -98,7 +101,7 @@ export class SparkLine extends React.Component<SparkLineProps> {
|
|
98
101
|
{this.renderLines()}
|
99
102
|
</svg>
|
100
103
|
) : (
|
101
|
-
|
104
|
+
placeholder ?? __('placeholder.empty')
|
102
105
|
)}
|
103
106
|
</div>
|
104
107
|
);
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import {BaseSelection, BaseSelectionProps} from './Selection';
|
2
2
|
import {themeable} from '../theme';
|
3
3
|
import React from 'react';
|
4
4
|
import {uncontrollable} from 'uncontrollable';
|
@@ -7,7 +7,7 @@ import {Option} from './Select';
|
|
7
7
|
import {resolveVariable} from '../utils/tpl-builtin';
|
8
8
|
import {localeable} from '../locale';
|
9
9
|
|
10
|
-
export interface
|
10
|
+
export interface TableSelectionProps extends BaseSelectionProps {
|
11
11
|
columns: Array<{
|
12
12
|
name: string;
|
13
13
|
label: string;
|
@@ -25,9 +25,9 @@ export interface TableCheckboxesProps extends BaseCheckboxesProps {
|
|
25
25
|
) => JSX.Element;
|
26
26
|
}
|
27
27
|
|
28
|
-
export class
|
28
|
+
export class TableSelection extends BaseSelection<TableSelectionProps> {
|
29
29
|
static defaultProps = {
|
30
|
-
...
|
30
|
+
...BaseSelection.defaultProps,
|
31
31
|
cellRender: (
|
32
32
|
column: {
|
33
33
|
name: string;
|
@@ -50,9 +50,16 @@ export class TableCheckboxes extends BaseCheckboxes<TableCheckboxesProps> {
|
|
50
50
|
}
|
51
51
|
|
52
52
|
renderTHead() {
|
53
|
-
const {
|
53
|
+
const {
|
54
|
+
options,
|
55
|
+
classnames: cx,
|
56
|
+
value,
|
57
|
+
disabled,
|
58
|
+
option2value,
|
59
|
+
multiple
|
60
|
+
} = this.props;
|
54
61
|
let columns = this.getColumns();
|
55
|
-
let valueArray =
|
62
|
+
let valueArray = BaseSelection.value2array(value, options, option2value);
|
56
63
|
const availableOptions = options.filter(option => !option.disabled);
|
57
64
|
let partialChecked = false;
|
58
65
|
let allChecked = !!availableOptions.length;
|
@@ -70,9 +77,10 @@ export class TableCheckboxes extends BaseCheckboxes<TableCheckboxesProps> {
|
|
70
77
|
return (
|
71
78
|
<thead>
|
72
79
|
<tr>
|
73
|
-
{Array.isArray(options) && options.length ? (
|
80
|
+
{multiple && Array.isArray(options) && options.length ? (
|
74
81
|
<th className={cx('Table-checkCell')}>
|
75
82
|
<Checkbox
|
83
|
+
key="checkbox"
|
76
84
|
size="sm"
|
77
85
|
disabled={disabled}
|
78
86
|
onChange={this.toggleAll}
|
@@ -97,11 +105,13 @@ export class TableCheckboxes extends BaseCheckboxes<TableCheckboxesProps> {
|
|
97
105
|
cellRender,
|
98
106
|
value,
|
99
107
|
disabled,
|
108
|
+
multiple,
|
100
109
|
option2value,
|
101
|
-
translate: __
|
110
|
+
translate: __,
|
111
|
+
itemClassName
|
102
112
|
} = this.props;
|
103
113
|
const columns = this.getColumns();
|
104
|
-
let valueArray =
|
114
|
+
let valueArray = BaseSelection.value2array(value, options, option2value);
|
105
115
|
|
106
116
|
return (
|
107
117
|
<tbody>
|
@@ -113,10 +123,18 @@ export class TableCheckboxes extends BaseCheckboxes<TableCheckboxesProps> {
|
|
113
123
|
<tr
|
114
124
|
key={rowIndex}
|
115
125
|
onClick={e => e.defaultPrevented || this.toggleOption(option)}
|
126
|
+
className={cx(
|
127
|
+
itemClassName,
|
128
|
+
option.className,
|
129
|
+
disabled || option.disabled ? 'is-disabled' : '',
|
130
|
+
!!~valueArray.indexOf(option) ? 'is-active' : ''
|
131
|
+
)}
|
116
132
|
>
|
117
|
-
|
118
|
-
<
|
119
|
-
|
133
|
+
{multiple ? (
|
134
|
+
<td className={cx('Table-checkCell')} key="checkbox">
|
135
|
+
<Checkbox size="sm" checked={checked} disabled={disabled} />
|
136
|
+
</td>
|
137
|
+
) : null}
|
120
138
|
{columns.map((column, colIndex) => (
|
121
139
|
<td key={colIndex}>
|
122
140
|
{cellRender(column, option, colIndex, rowIndex)}
|
@@ -144,10 +162,11 @@ export class TableCheckboxes extends BaseCheckboxes<TableCheckboxesProps> {
|
|
144
162
|
classnames: cx,
|
145
163
|
option2value,
|
146
164
|
itemClassName,
|
147
|
-
itemRender
|
165
|
+
itemRender,
|
166
|
+
multiple
|
148
167
|
} = this.props;
|
149
168
|
|
150
|
-
let valueArray =
|
169
|
+
let valueArray = BaseSelection.value2array(value, options, option2value);
|
151
170
|
let body: Array<React.ReactNode> = [];
|
152
171
|
|
153
172
|
if (Array.isArray(options) && options.length) {
|
@@ -155,30 +174,32 @@ export class TableCheckboxes extends BaseCheckboxes<TableCheckboxesProps> {
|
|
155
174
|
<div
|
156
175
|
key={key}
|
157
176
|
className={cx(
|
158
|
-
'
|
177
|
+
'TableSelection-item',
|
159
178
|
itemClassName,
|
160
179
|
option.className,
|
161
180
|
disabled || option.disabled ? 'is-disabled' : ''
|
162
181
|
)}
|
163
182
|
onClick={() => this.toggleOption(option)}
|
164
183
|
>
|
165
|
-
<div className={cx('
|
184
|
+
<div className={cx('TableSelection-itemLabel')}>
|
166
185
|
{itemRender(option)}
|
167
186
|
</div>
|
168
187
|
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
188
|
+
{multiple ? (
|
189
|
+
<Checkbox
|
190
|
+
size="sm"
|
191
|
+
checked={!!~valueArray.indexOf(option)}
|
192
|
+
disabled={disabled || option.disabled}
|
193
|
+
labelClassName={labelClassName}
|
194
|
+
description={option.description}
|
195
|
+
/>
|
196
|
+
) : null}
|
176
197
|
</div>
|
177
198
|
));
|
178
199
|
}
|
179
200
|
|
180
201
|
return (
|
181
|
-
<div className={cx('
|
202
|
+
<div className={cx('TableSelection', className)}>
|
182
203
|
<div className={cx('Table-content')}>
|
183
204
|
<table className={cx('Table-table')}>
|
184
205
|
{this.renderTHead()}
|
@@ -192,7 +213,7 @@ export class TableCheckboxes extends BaseCheckboxes<TableCheckboxesProps> {
|
|
192
213
|
|
193
214
|
export default themeable(
|
194
215
|
localeable(
|
195
|
-
uncontrollable(
|
216
|
+
uncontrollable(TableSelection, {
|
196
217
|
value: 'onChange'
|
197
218
|
})
|
198
219
|
)
|