amis 1.3.5-beta.7 → 1.4.2-beta.11
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 +16 -3
- package/lib/components/Badge.js +54 -5
- package/lib/components/Badge.js.map +2 -2
- package/lib/components/Button.d.ts +24 -22
- package/lib/components/Button.js +13 -7
- 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 +1 -1
- package/lib/components/Checkbox.js +1 -1
- package/lib/components/Checkbox.js.map +2 -2
- 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/Drawer.js +1 -1
- package/lib/components/Drawer.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.js +1 -1
- 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/Modal.js +1 -1
- package/lib/components/Modal.js.map +2 -2
- 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/RichText.d.ts +6 -1
- package/lib/components/RichText.js +207 -8
- 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 +252 -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/Steps.d.ts +3 -3
- package/lib/components/Steps.js.map +1 -1
- 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 +487 -0
- package/lib/components/TransferDropDown.js +59 -0
- package/lib/components/TransferDropDown.js.map +13 -0
- package/lib/components/TransferPicker.d.ts +489 -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.d.ts +8 -0
- package/lib/components/WithRemoteConfig.js +29 -3
- package/lib/components/WithRemoteConfig.js.map +2 -2
- package/lib/components/calendar/DaysView.js +2 -2
- package/lib/components/calendar/DaysView.js.map +2 -2
- package/lib/components/condition-builder/Field.js +5 -3
- 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/condition-builder/Value.js +2 -1
- package/lib/components/condition-builder/Value.js.map +2 -2
- package/lib/components/condition-builder/types.d.ts +5 -0
- package/lib/components/condition-builder/types.js.map +1 -1
- 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 +9 -1
- package/lib/factory.js +13 -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/clock.js +10 -0
- package/lib/icons/loading-outline.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 +5 -0
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +6 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +9 -4
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +17 -1
- package/lib/renderers/Action.js +21 -8
- 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 +48 -23
- 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.d.ts +1 -1
- package/lib/renderers/Collapse.js +8 -3
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/Dialog.d.ts +0 -252
- package/lib/renderers/Dialog.js +1 -4
- 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 +13 -1
- package/lib/renderers/DropDownButton.js +9 -5
- 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 -5
- package/lib/renderers/Form/Editor.d.ts +3 -4
- package/lib/renderers/Form/Editor.js +1 -1
- package/lib/renderers/Form/Editor.js.map +2 -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/InputExcel.d.ts +5 -0
- package/lib/renderers/Form/InputExcel.js +24 -3
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputFile.js +12 -6
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +8 -0
- package/lib/renderers/Form/InputImage.js +18 -8
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputTable.d.ts +23 -5
- package/lib/renderers/Form/InputTable.js +32 -3
- package/lib/renderers/Form/InputTable.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 +41 -4
- package/lib/renderers/Form/Select.js +23 -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 +3 -2
- package/lib/renderers/Form/Transfer.js.map +2 -2
- package/lib/renderers/Form/TransferPicker.d.ts +48 -0
- package/lib/renderers/Form/TransferPicker.js +29 -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.js +1 -1
- 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 +7 -12
- 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 +81 -25
- package/lib/renderers/Nav.js +292 -31
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Page.js +4 -1
- 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/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/Service.d.ts +10 -1
- package/lib/renderers/Service.js +85 -3
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/SparkLine.d.ts +4 -0
- package/lib/renderers/SparkLine.js.map +2 -2
- package/lib/renderers/Steps.d.ts +4 -4
- package/lib/renderers/Steps.js +5 -2
- package/lib/renderers/Steps.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 +5 -1
- package/lib/renderers/Table/TableBody.js.map +1 -1
- package/lib/renderers/Table/TableCell.js +3 -1
- package/lib/renderers/Table/TableCell.js.map +2 -2
- package/lib/renderers/Table/TableContent.d.ts +5 -2
- package/lib/renderers/Table/TableContent.js +21 -1
- package/lib/renderers/Table/TableContent.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +27 -5
- package/lib/renderers/Table/index.js +251 -101
- 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/app.d.ts +0 -1
- package/lib/store/combo.d.ts +2 -18
- package/lib/store/crud.d.ts +0 -1
- package/lib/store/crud.js +3 -7
- package/lib/store/crud.js.map +2 -2
- package/lib/store/form.d.ts +1 -2
- package/lib/store/form.js +5 -6
- package/lib/store/form.js.map +2 -2
- package/lib/store/modal.d.ts +1 -1
- package/lib/store/modal.js +4 -0
- package/lib/store/modal.js.map +2 -2
- package/lib/store/root.d.ts +0 -1
- package/lib/store/service.d.ts +0 -1
- package/lib/store/service.js +5 -17
- package/lib/store/service.js.map +2 -2
- package/lib/store/table.d.ts +260 -5
- package/lib/store/table.js +83 -7
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +1360 -244
- package/lib/themes/ang.css +1360 -244
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +1360 -244
- package/lib/themes/antd.css +1360 -244
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1960 -517
- package/lib/themes/cxd.css +1960 -517
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +1360 -244
- package/lib/themes/dark.css +1360 -244
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +1960 -517
- 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 +43 -15
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/attachmentAdpator.d.ts +7 -0
- package/lib/utils/attachmentAdpator.js +82 -0
- package/lib/utils/attachmentAdpator.js.map +13 -0
- 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/lib/utils/validations.js +62 -5
- package/lib/utils/validations.js.map +2 -2
- package/package.json +1 -2
- package/schema.json +3638 -1030
- package/scss/_mixins.scss +27 -0
- package/scss/_properties.scss +88 -13
- package/scss/_utilities.scss +4 -0
- package/scss/base/_normalize.scss +2 -0
- package/scss/components/_anchor-nav.scss +88 -29
- package/scss/components/_badge.scss +67 -2
- package/scss/components/_button.scss +34 -3
- 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/_image-gallery.scss +1 -1
- package/scss/components/_images.scss +2 -1
- package/scss/components/_link.scss +6 -0
- package/scss/components/_mapping.scss +6 -0
- package/scss/components/_markdown.scss +266 -0
- package/scss/components/_nav.scss +236 -154
- package/scss/components/_page.scss +5 -4
- package/scss/components/_picker-columns.scss +123 -0
- package/scss/components/_popover.scss +17 -0
- package/scss/components/_portlet.scss +51 -0
- package/scss/components/_progress.scss +2 -0
- package/scss/components/_spinner.scss +6 -2
- 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 +5 -4
- package/scss/components/form/_group.scss +4 -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 +219 -91
- package/scss/themes/cxd.scss +370 -0
- package/sdk/ang-ie11.css +1752 -431
- package/sdk/ang.css +1706 -323
- package/sdk/antd-ie11.css +1739 -420
- package/sdk/antd.css +1706 -323
- package/sdk/charts.js +13 -13
- package/sdk/color-picker.js +65 -69
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +3015 -1397
- package/sdk/cxd.css +2402 -651
- package/sdk/dark-ie11.css +1750 -429
- package/sdk/dark.css +1706 -323
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/ie11-patch.css +1 -0
- package/sdk/locale/de-DE.js +5 -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 -30
- package/sdk/rich-text.js +62 -64
- package/sdk/sdk-ie11.css +3015 -1397
- package/sdk/sdk.css +2402 -651
- package/sdk/sdk.js +1278 -1220
- 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 +126 -23
- package/src/components/Button.tsx +23 -7
- package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
- package/src/components/Checkbox.tsx +5 -2
- package/src/components/Collapse.tsx +14 -9
- package/src/components/DatePicker.tsx +1 -1
- package/src/components/DateRangePicker.tsx +23 -11
- package/src/components/Drawer.tsx +3 -2
- package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
- package/src/components/InputBox.tsx +1 -1
- package/src/components/Link.tsx +85 -0
- package/src/components/Modal.tsx +3 -2
- 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/RichText.tsx +244 -3
- package/src/components/SearchBox.tsx +4 -5
- package/src/components/Select.tsx +61 -5
- package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
- package/src/components/SparkLine.tsx +4 -1
- package/src/components/Steps.tsx +3 -3
- 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 +117 -0
- package/src/components/TransferPicker.tsx +84 -0
- package/src/components/Tree.tsx +6 -8
- package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
- package/src/components/WithRemoteConfig.tsx +44 -4
- package/src/components/calendar/DaysView.tsx +2 -2
- package/src/components/condition-builder/Field.tsx +6 -7
- 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/condition-builder/Value.tsx +3 -0
- package/src/components/condition-builder/types.ts +6 -0
- package/src/components/icons.tsx +15 -0
- package/src/components/index.tsx +13 -13
- package/src/envOverwrite.ts +0 -1
- package/src/factory.tsx +31 -6
- 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/loading-outline.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 +5 -0
- package/src/locale/en-US.ts +6 -1
- package/src/locale/zh-CN.ts +9 -4
- package/src/renderers/Action.tsx +99 -15
- 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 +70 -56
- package/src/renderers/Card.tsx +63 -34
- package/src/renderers/Chart.tsx +6 -2
- package/src/renderers/Collapse.tsx +9 -3
- package/src/renderers/Dialog.tsx +1 -5
- package/src/renderers/Drawer.tsx +0 -4
- package/src/renderers/DropDownButton.tsx +34 -12
- package/src/renderers/Form/Checkbox.tsx +8 -0
- package/src/renderers/Form/Combo.tsx +2 -3
- package/src/renderers/Form/Editor.tsx +19 -20
- package/src/renderers/Form/InputCity.tsx +4 -8
- package/src/renderers/Form/InputExcel.tsx +28 -3
- package/src/renderers/Form/InputFile.tsx +30 -20
- package/src/renderers/Form/InputImage.tsx +39 -13
- package/src/renderers/Form/InputTable.tsx +88 -9
- package/src/renderers/Form/Item.tsx +1 -1
- package/src/renderers/Form/Options.tsx +32 -7
- package/src/renderers/Form/Picker.tsx +3 -2
- package/src/renderers/Form/Select.tsx +144 -21
- package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
- package/src/renderers/Form/Transfer.tsx +3 -2
- package/src/renderers/Form/TransferPicker.tsx +123 -0
- package/src/renderers/Form/TreeSelect.tsx +25 -0
- package/src/renderers/Form/index.tsx +1 -1
- 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 +19 -10
- 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 +392 -60
- package/src/renderers/Page.tsx +3 -1
- package/src/renderers/Portlet.tsx +423 -0
- package/src/renderers/Property.tsx +3 -2
- package/src/renderers/SearchBox.tsx +23 -4
- package/src/renderers/Service.tsx +101 -3
- package/src/renderers/SparkLine.tsx +5 -0
- package/src/renderers/Steps.tsx +12 -9
- package/src/renderers/Table/ColumnToggler.tsx +544 -0
- package/src/renderers/Table/ItemActionsWrapper.tsx +44 -0
- package/src/renderers/Table/TableBody.tsx +1 -1
- package/src/renderers/Table/TableCell.tsx +16 -1
- package/src/renderers/Table/TableContent.tsx +41 -3
- package/src/renderers/Table/index.tsx +318 -92
- 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/modal.ts +4 -0
- package/src/store/service.ts +5 -23
- package/src/store/table.ts +103 -4
- package/src/types.ts +57 -0
- package/src/utils/api.ts +63 -23
- package/src/utils/attachmentAdpator.ts +90 -0
- package/src/utils/dom.tsx +12 -0
- package/src/utils/handleAction.ts +41 -0
- package/src/utils/helper.ts +12 -3
- package/src/utils/icon.tsx +4 -0
- package/src/utils/tpl-builtin.ts +48 -17
- package/src/utils/validations.ts +80 -12
- 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
@@ -5,9 +5,11 @@ import {SchemaNode, Action, Schema} from '../../types';
|
|
5
5
|
import forEach from 'lodash/forEach';
|
6
6
|
import {filter} from '../../utils/tpl';
|
7
7
|
import DropDownButton from '../DropDownButton';
|
8
|
+
import './ColumnToggler';
|
8
9
|
import Checkbox from '../../components/Checkbox';
|
9
10
|
import Button from '../../components/Button';
|
10
11
|
import {TableStore, ITableStore, IColumn, IRow} from '../../store/table';
|
12
|
+
import {saveAs} from 'file-saver';
|
11
13
|
import {
|
12
14
|
anyChanged,
|
13
15
|
getScrollParent,
|
@@ -16,7 +18,10 @@ import {
|
|
16
18
|
autobind,
|
17
19
|
isArrayChildrenModified,
|
18
20
|
getVariable,
|
19
|
-
removeHTMLTag
|
21
|
+
removeHTMLTag,
|
22
|
+
eachTree,
|
23
|
+
isObject,
|
24
|
+
createObject
|
20
25
|
} from '../../utils/helper';
|
21
26
|
import {
|
22
27
|
isPureVariable,
|
@@ -35,6 +40,7 @@ import {HeadCellSearchDropDown} from './HeadCellSearchDropdown';
|
|
35
40
|
import {TableContent} from './TableContent';
|
36
41
|
import {
|
37
42
|
BaseSchema,
|
43
|
+
SchemaApi,
|
38
44
|
SchemaClassName,
|
39
45
|
SchemaObject,
|
40
46
|
SchemaTokenizeableString,
|
@@ -49,6 +55,10 @@ import {TableBody} from './TableBody';
|
|
49
55
|
import {TplSchema} from '../Tpl';
|
50
56
|
import {MappingSchema} from '../Mapping';
|
51
57
|
import {isAlive, getSnapshot} from 'mobx-state-tree';
|
58
|
+
import ColumnToggler from './ColumnToggler';
|
59
|
+
import {BadgeSchema} from '../../components/Badge';
|
60
|
+
import offset from '../../utils/offset';
|
61
|
+
import {getStyleNumber} from '../../utils/dom';
|
52
62
|
|
53
63
|
/**
|
54
64
|
* 表格列,不指定类型时默认为文本类型。
|
@@ -97,7 +107,7 @@ export type TableColumnObject = {
|
|
97
107
|
/**
|
98
108
|
* 是否可快速搜索
|
99
109
|
*/
|
100
|
-
searchable?: boolean;
|
110
|
+
searchable?: boolean | SchemaObject;
|
101
111
|
|
102
112
|
/**
|
103
113
|
* 配置是否默认展示
|
@@ -277,6 +287,16 @@ export interface TableSchema extends BaseSchema {
|
|
277
287
|
* 行样式表表达式
|
278
288
|
*/
|
279
289
|
rowClassNameExpr?: string;
|
290
|
+
|
291
|
+
/**
|
292
|
+
* 行角标
|
293
|
+
*/
|
294
|
+
itemBadge?: BadgeSchema;
|
295
|
+
|
296
|
+
/**
|
297
|
+
* 开启查询区域,会根据列元素的searchable属性值,自动生成查询条件表单
|
298
|
+
*/
|
299
|
+
autoGenerateFilter?: boolean;
|
280
300
|
}
|
281
301
|
|
282
302
|
export interface TableProps extends RendererProps {
|
@@ -344,8 +364,15 @@ export interface TableProps extends RendererProps {
|
|
344
364
|
popOverContainer?: any;
|
345
365
|
canAccessSuperData?: boolean;
|
346
366
|
reUseRow?: boolean;
|
367
|
+
itemBadge?: BadgeSchema;
|
347
368
|
}
|
348
369
|
|
370
|
+
type ExportExcelToolbar = SchemaNode & {
|
371
|
+
api?: SchemaApi;
|
372
|
+
columns?: string[];
|
373
|
+
filename?: string;
|
374
|
+
};
|
375
|
+
|
349
376
|
/**
|
350
377
|
* 将 url 转成绝对地址
|
351
378
|
*/
|
@@ -397,7 +424,9 @@ export default class Table extends React.Component<TableProps, object> {
|
|
397
424
|
'popOverContainer',
|
398
425
|
'headerToolbarClassName',
|
399
426
|
'toolbarClassName',
|
400
|
-
'footerToolbarClassName'
|
427
|
+
'footerToolbarClassName',
|
428
|
+
'itemBadge',
|
429
|
+
'autoFillHeight'
|
401
430
|
];
|
402
431
|
static defaultProps: Partial<TableProps> = {
|
403
432
|
className: '',
|
@@ -470,6 +499,9 @@ export default class Table extends React.Component<TableProps, object> {
|
|
470
499
|
this.handleMouseMove = this.handleMouseMove.bind(this);
|
471
500
|
this.handleMouseLeave = this.handleMouseLeave.bind(this);
|
472
501
|
this.subFormRef = this.subFormRef.bind(this);
|
502
|
+
this.handleColumnToggle = this.handleColumnToggle.bind(this);
|
503
|
+
this.renderAutoFilterForm = this.renderAutoFilterForm.bind(this);
|
504
|
+
this.updateAutoFillHeight = this.updateAutoFillHeight.bind(this);
|
473
505
|
|
474
506
|
const {
|
475
507
|
store,
|
@@ -580,6 +612,68 @@ export default class Table extends React.Component<TableProps, object> {
|
|
580
612
|
this.affixDetect();
|
581
613
|
parent.addEventListener('scroll', this.affixDetect);
|
582
614
|
window.addEventListener('resize', this.affixDetect);
|
615
|
+
this.updateAutoFillHeight();
|
616
|
+
window.addEventListener('resize', this.updateAutoFillHeight);
|
617
|
+
}
|
618
|
+
|
619
|
+
/**
|
620
|
+
* 自动设置表格高度占满界面剩余区域
|
621
|
+
* 用 css 实现有点麻烦,要改很多结构,所以先用 dom hack 了,避免对之前的功能有影响
|
622
|
+
*/
|
623
|
+
updateAutoFillHeight() {
|
624
|
+
const {autoFillHeight, footerToolbar, classPrefix: ns} = this.props;
|
625
|
+
if (!autoFillHeight) {
|
626
|
+
return;
|
627
|
+
}
|
628
|
+
const table = findDOMNode(this) as HTMLElement;
|
629
|
+
const tableContent = table.querySelector(
|
630
|
+
`.${ns}Table-content`
|
631
|
+
) as HTMLElement;
|
632
|
+
const tableContentWrap = table.querySelector(
|
633
|
+
`.${ns}Table-contentWrap`
|
634
|
+
) as HTMLElement;
|
635
|
+
const footToolbar = table.querySelector(
|
636
|
+
`.${ns}Table-footToolbar`
|
637
|
+
) as HTMLElement;
|
638
|
+
if (!tableContent) {
|
639
|
+
return;
|
640
|
+
}
|
641
|
+
|
642
|
+
// 计算 table-content 在 dom 中的位置
|
643
|
+
const tableContentTop = offset(tableContent).top;
|
644
|
+
const viewportHeight = window.innerHeight;
|
645
|
+
// 有时候会拿不到 footToolbar?
|
646
|
+
const footToolbarHeight = footToolbar ? offset(footToolbar).height : 0;
|
647
|
+
// 有时候会拿不到 footToolbar,等一下在执行
|
648
|
+
if (!footToolbarHeight && footerToolbar && footerToolbar.length) {
|
649
|
+
setTimeout(() => {
|
650
|
+
this.updateAutoFillHeight();
|
651
|
+
}, 100);
|
652
|
+
return;
|
653
|
+
}
|
654
|
+
const tableContentWrapMarginButtom = getStyleNumber(
|
655
|
+
tableContentWrap,
|
656
|
+
'margin-bottom'
|
657
|
+
);
|
658
|
+
|
659
|
+
// 循环计算父级节点的 pddding,这里不考虑父级节点还可能会有其它兄弟节点的情况了
|
660
|
+
let allParentPaddingButtom = 0;
|
661
|
+
let parentNode = tableContent.parentElement;
|
662
|
+
while (parentNode) {
|
663
|
+
const paddingButtom = getStyleNumber(parentNode, 'padding-bottom');
|
664
|
+
const borderBottom = getStyleNumber(parentNode, 'border-bottom-width');
|
665
|
+
allParentPaddingButtom =
|
666
|
+
allParentPaddingButtom + paddingButtom + borderBottom;
|
667
|
+
parentNode = parentNode.parentElement;
|
668
|
+
}
|
669
|
+
|
670
|
+
tableContent.style.height = `${
|
671
|
+
viewportHeight -
|
672
|
+
tableContentTop -
|
673
|
+
tableContentWrapMarginButtom -
|
674
|
+
footToolbarHeight -
|
675
|
+
allParentPaddingButtom
|
676
|
+
}px`;
|
583
677
|
}
|
584
678
|
|
585
679
|
componentDidUpdate(prevProps: TableProps) {
|
@@ -648,8 +742,12 @@ export default class Table extends React.Component<TableProps, object> {
|
|
648
742
|
) {
|
649
743
|
Table.syncRows(store, props, prevProps) && this.syncSelected();
|
650
744
|
} else if (isArrayChildrenModified(prevProps.selected!, props.selected!)) {
|
745
|
+
const prevSelectedRows = store.selectedRows
|
746
|
+
.map(item => item.id)
|
747
|
+
.join(',');
|
651
748
|
store.updateSelected(props.selected || [], props.valueField);
|
652
|
-
|
749
|
+
const selectedRows = store.selectedRows.map(item => item.id).join(',');
|
750
|
+
prevSelectedRows !== selectedRows && this.syncSelected();
|
653
751
|
}
|
654
752
|
|
655
753
|
this.updateTableInfoLazy();
|
@@ -661,6 +759,7 @@ export default class Table extends React.Component<TableProps, object> {
|
|
661
759
|
const parent = this.parentNode;
|
662
760
|
parent && parent.removeEventListener('scroll', this.affixDetect);
|
663
761
|
window.removeEventListener('resize', this.affixDetect);
|
762
|
+
window.removeEventListener('resize', this.updateAutoFillHeight);
|
664
763
|
(this.updateTableInfoLazy as any).cancel();
|
665
764
|
this.unSensor && this.unSensor();
|
666
765
|
|
@@ -682,8 +781,14 @@ export default class Table extends React.Component<TableProps, object> {
|
|
682
781
|
onAction(e, action, ctx);
|
683
782
|
}
|
684
783
|
|
685
|
-
handleCheck(item: IRow) {
|
686
|
-
|
784
|
+
handleCheck(item: IRow, value: boolean, shift?: boolean) {
|
785
|
+
const {store} = this.props;
|
786
|
+
if (shift) {
|
787
|
+
store.toggleShift(item);
|
788
|
+
} else {
|
789
|
+
item.toggle();
|
790
|
+
}
|
791
|
+
|
687
792
|
this.syncSelected();
|
688
793
|
}
|
689
794
|
|
@@ -844,7 +949,7 @@ export default class Table extends React.Component<TableProps, object> {
|
|
844
949
|
}
|
845
950
|
|
846
951
|
affixDetect() {
|
847
|
-
if (!this.props.affixHeader || !this.table) {
|
952
|
+
if (!this.props.affixHeader || !this.table || this.props.autoFillHeight) {
|
848
953
|
return;
|
849
954
|
}
|
850
955
|
|
@@ -1098,7 +1203,7 @@ export default class Table extends React.Component<TableProps, object> {
|
|
1098
1203
|
|
1099
1204
|
handleMouseMove(e: React.MouseEvent<any>) {
|
1100
1205
|
const tr: HTMLElement = (e.target as HTMLElement).closest(
|
1101
|
-
'tr[data-
|
1206
|
+
'tr[data-id]'
|
1102
1207
|
) as HTMLElement;
|
1103
1208
|
|
1104
1209
|
if (!tr) {
|
@@ -1116,20 +1221,20 @@ export default class Table extends React.Component<TableProps, object> {
|
|
1116
1221
|
return;
|
1117
1222
|
}
|
1118
1223
|
|
1119
|
-
const
|
1224
|
+
const id = tr.getAttribute('data-id') as string;
|
1225
|
+
const row = store.hoverRow;
|
1120
1226
|
|
1121
|
-
if (
|
1227
|
+
if (row?.id === id) {
|
1122
1228
|
return;
|
1123
1229
|
}
|
1124
|
-
store.rows
|
1230
|
+
eachTree<IRow>(store.rows, (item: IRow) => item.setIsHover(item.id === id));
|
1125
1231
|
}
|
1126
1232
|
|
1127
1233
|
handleMouseLeave() {
|
1128
1234
|
const store = this.props.store;
|
1235
|
+
const row = store.hoverRow;
|
1129
1236
|
|
1130
|
-
|
1131
|
-
store.rows[store.hoverIndex].setIsHover(false);
|
1132
|
-
}
|
1237
|
+
row?.setIsHover(false);
|
1133
1238
|
}
|
1134
1239
|
|
1135
1240
|
draggingTr: HTMLTableRowElement;
|
@@ -1333,6 +1438,111 @@ export default class Table extends React.Component<TableProps, object> {
|
|
1333
1438
|
document.removeEventListener('mouseup', this.handleColResizeMouseUp);
|
1334
1439
|
}
|
1335
1440
|
|
1441
|
+
handleColumnToggle(columns: Array<IColumn>) {
|
1442
|
+
const {store} = this.props;
|
1443
|
+
|
1444
|
+
store.update({columns});
|
1445
|
+
}
|
1446
|
+
|
1447
|
+
renderAutoFilterForm(): React.ReactNode {
|
1448
|
+
const {
|
1449
|
+
render,
|
1450
|
+
store,
|
1451
|
+
onSearchableFromReset,
|
1452
|
+
onSearchableFromSubmit,
|
1453
|
+
onSearchableFromInit,
|
1454
|
+
classnames: cx,
|
1455
|
+
translate: __
|
1456
|
+
} = this.props;
|
1457
|
+
const searchableColumns = store.searchableColumns;
|
1458
|
+
const activedSearchableColumns = store.activedSearchableColumns;
|
1459
|
+
|
1460
|
+
if (!searchableColumns.length) {
|
1461
|
+
return null;
|
1462
|
+
}
|
1463
|
+
|
1464
|
+
const groupedSearchableColumns: Array<Record<string, any>> = [
|
1465
|
+
{body: [], md: 4},
|
1466
|
+
{body: [], md: 4},
|
1467
|
+
{body: [], md: 4}
|
1468
|
+
];
|
1469
|
+
|
1470
|
+
activedSearchableColumns.forEach((column, index) => {
|
1471
|
+
groupedSearchableColumns[index % 3].body.push({
|
1472
|
+
...column.searchable,
|
1473
|
+
name: column.searchable?.name ?? column.name,
|
1474
|
+
label: column.searchable?.label ?? column.label,
|
1475
|
+
mode: 'horizontal'
|
1476
|
+
});
|
1477
|
+
});
|
1478
|
+
|
1479
|
+
return render(
|
1480
|
+
'searchable-form',
|
1481
|
+
{
|
1482
|
+
type: 'form',
|
1483
|
+
api: null,
|
1484
|
+
title: '',
|
1485
|
+
mode: 'normal',
|
1486
|
+
submitText: __('search'),
|
1487
|
+
body: [
|
1488
|
+
{
|
1489
|
+
type: 'grid',
|
1490
|
+
columns: groupedSearchableColumns
|
1491
|
+
}
|
1492
|
+
],
|
1493
|
+
actions: [
|
1494
|
+
{
|
1495
|
+
type: 'dropdown-button',
|
1496
|
+
label: __('Table.searchFields'),
|
1497
|
+
className: cx('Table-searchableForm-dropdown', 'mr-2'),
|
1498
|
+
level: 'link',
|
1499
|
+
trigger: 'click',
|
1500
|
+
size: 'sm',
|
1501
|
+
align: 'right',
|
1502
|
+
buttons: searchableColumns.map(column => {
|
1503
|
+
return {
|
1504
|
+
type: 'checkbox',
|
1505
|
+
className: cx('Table-searchableForm-checkbox'),
|
1506
|
+
name: `__search_${column.searchable?.name ?? column.name}`,
|
1507
|
+
option: column.searchable?.label ?? column.label,
|
1508
|
+
value: column.enableSearch,
|
1509
|
+
badge: {
|
1510
|
+
offset: [-10, 5],
|
1511
|
+
visibleOn: `${
|
1512
|
+
column.toggable && !column.toggled && column.enableSearch
|
1513
|
+
}`
|
1514
|
+
},
|
1515
|
+
onChange: (value: boolean) => {
|
1516
|
+
column.setEnableSearch(value);
|
1517
|
+
}
|
1518
|
+
};
|
1519
|
+
})
|
1520
|
+
},
|
1521
|
+
{
|
1522
|
+
type: 'submit',
|
1523
|
+
label: __('search'),
|
1524
|
+
level: 'primary',
|
1525
|
+
className: 'w-18'
|
1526
|
+
},
|
1527
|
+
{
|
1528
|
+
type: 'reset',
|
1529
|
+
label: __('reset'),
|
1530
|
+
className: 'w-18'
|
1531
|
+
}
|
1532
|
+
]
|
1533
|
+
},
|
1534
|
+
{
|
1535
|
+
key: 'searchable-form',
|
1536
|
+
panelClassName: cx('Table-searchableForm'),
|
1537
|
+
actionsClassName: cx('Table-searchableForm-footer'),
|
1538
|
+
onReset: onSearchableFromReset,
|
1539
|
+
onSubmit: onSearchableFromSubmit,
|
1540
|
+
onInit: onSearchableFromInit,
|
1541
|
+
formStore: undefined
|
1542
|
+
}
|
1543
|
+
);
|
1544
|
+
}
|
1545
|
+
|
1336
1546
|
renderHeading() {
|
1337
1547
|
let {
|
1338
1548
|
title,
|
@@ -1422,7 +1632,8 @@ export default class Table extends React.Component<TableProps, object> {
|
|
1422
1632
|
render,
|
1423
1633
|
classPrefix: ns,
|
1424
1634
|
resizable,
|
1425
|
-
classnames: cx
|
1635
|
+
classnames: cx,
|
1636
|
+
autoGenerateFilter
|
1426
1637
|
} = this.props;
|
1427
1638
|
|
1428
1639
|
if (column.type === '__checkme') {
|
@@ -1469,7 +1680,7 @@ export default class Table extends React.Component<TableProps, object> {
|
|
1469
1680
|
|
1470
1681
|
let affix = null;
|
1471
1682
|
|
1472
|
-
if (column.searchable && column.name) {
|
1683
|
+
if (column.searchable && column.name && !autoGenerateFilter) {
|
1473
1684
|
affix = (
|
1474
1685
|
<HeadCellSearchDropDown
|
1475
1686
|
{...this.props}
|
@@ -1622,7 +1833,8 @@ export default class Table extends React.Component<TableProps, object> {
|
|
1622
1833
|
classnames: cx,
|
1623
1834
|
checkOnItemClick,
|
1624
1835
|
popOverContainer,
|
1625
|
-
canAccessSuperData
|
1836
|
+
canAccessSuperData,
|
1837
|
+
itemBadge
|
1626
1838
|
} = this.props;
|
1627
1839
|
|
1628
1840
|
if (column.name && item.rowSpans[column.name] === 0) {
|
@@ -1710,7 +1922,13 @@ export default class Table extends React.Component<TableProps, object> {
|
|
1710
1922
|
quickEditFormRef: this.subFormRef,
|
1711
1923
|
prefix,
|
1712
1924
|
onImageEnlarge: this.handleImageEnlarge,
|
1713
|
-
canAccessSuperData
|
1925
|
+
canAccessSuperData,
|
1926
|
+
row: item,
|
1927
|
+
itemBadge,
|
1928
|
+
showBadge:
|
1929
|
+
!props.isHead &&
|
1930
|
+
itemBadge &&
|
1931
|
+
store.firstToggledColumnIndex === props.colIndex
|
1714
1932
|
};
|
1715
1933
|
delete subProps.label;
|
1716
1934
|
|
@@ -1945,23 +2163,29 @@ export default class Table extends React.Component<TableProps, object> {
|
|
1945
2163
|
}
|
1946
2164
|
|
1947
2165
|
return (
|
1948
|
-
<
|
2166
|
+
<ColumnToggler
|
1949
2167
|
{...rest}
|
1950
|
-
|
2168
|
+
{...(isObject(config) ? config : {})}
|
2169
|
+
tooltip={config?.tooltip || __('Table.columnsVisibility')}
|
1951
2170
|
tooltipContainer={
|
1952
2171
|
env && env.getModalContainer ? env.getModalContainer : undefined
|
1953
2172
|
}
|
1954
|
-
align={config
|
2173
|
+
align={config?.align ?? 'left'}
|
1955
2174
|
isActived={store.hasColumnHidden()}
|
1956
2175
|
classnames={cx}
|
1957
2176
|
classPrefix={ns}
|
1958
2177
|
key="columns-toggable"
|
1959
|
-
size=
|
1960
|
-
label={
|
2178
|
+
size={config?.size || 'sm'}
|
2179
|
+
label={
|
2180
|
+
config?.label || <Icon icon="columns" className="icon m-r-none" />
|
2181
|
+
}
|
2182
|
+
draggable={config?.draggable}
|
2183
|
+
columns={store.columnsData}
|
2184
|
+
onColumnToggle={this.handleColumnToggle}
|
1961
2185
|
>
|
1962
2186
|
{store.toggableColumns.map(column => (
|
1963
2187
|
<li
|
1964
|
-
className={cx('
|
2188
|
+
className={cx('ColumnToggler-menuItem')}
|
1965
2189
|
key={column.index}
|
1966
2190
|
onClick={column.toggleToggle}
|
1967
2191
|
>
|
@@ -1970,7 +2194,7 @@ export default class Table extends React.Component<TableProps, object> {
|
|
1970
2194
|
</Checkbox>
|
1971
2195
|
</li>
|
1972
2196
|
))}
|
1973
|
-
</
|
2197
|
+
</ColumnToggler>
|
1974
2198
|
);
|
1975
2199
|
}
|
1976
2200
|
|
@@ -2004,7 +2228,7 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2004
2228
|
);
|
2005
2229
|
}
|
2006
2230
|
|
2007
|
-
renderExportExcel(toolbar:
|
2231
|
+
renderExportExcel(toolbar: ExportExcelToolbar) {
|
2008
2232
|
const {
|
2009
2233
|
store,
|
2010
2234
|
env,
|
@@ -2028,8 +2252,8 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2028
2252
|
let tmpStore;
|
2029
2253
|
let filename = 'data';
|
2030
2254
|
// 支持配置 api 远程获取
|
2031
|
-
if (typeof toolbar === 'object' &&
|
2032
|
-
const res = await env.fetcher(
|
2255
|
+
if (typeof toolbar === 'object' && toolbar.api) {
|
2256
|
+
const res = await env.fetcher(toolbar.api, data);
|
2033
2257
|
if (!res.data) {
|
2034
2258
|
env.notify('warning', __('placeholder.noData'));
|
2035
2259
|
return;
|
@@ -2047,8 +2271,8 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2047
2271
|
rows = store.rows;
|
2048
2272
|
}
|
2049
2273
|
|
2050
|
-
if (typeof toolbar === 'object' &&
|
2051
|
-
filename = filter(
|
2274
|
+
if (typeof toolbar === 'object' && toolbar.filename) {
|
2275
|
+
filename = filter(toolbar.filename, data, '| raw');
|
2052
2276
|
}
|
2053
2277
|
|
2054
2278
|
if (rows.length === 0) {
|
@@ -2062,7 +2286,17 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2062
2286
|
});
|
2063
2287
|
worksheet.views = [{state: 'frozen', xSplit: 0, ySplit: 1}];
|
2064
2288
|
|
2065
|
-
const
|
2289
|
+
const filteredColumns = toolbar.columns
|
2290
|
+
? columns.filter(column => {
|
2291
|
+
const filterColumnsNames = toolbar.columns!;
|
2292
|
+
if (filterColumnsNames.indexOf(column.name) !== -1) {
|
2293
|
+
return true;
|
2294
|
+
}
|
2295
|
+
return false;
|
2296
|
+
})
|
2297
|
+
: columns;
|
2298
|
+
|
2299
|
+
const firstRowLabels = filteredColumns.map(column => {
|
2066
2300
|
return column.label;
|
2067
2301
|
});
|
2068
2302
|
const firstRow = worksheet.getRow(1);
|
@@ -2077,14 +2311,15 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2077
2311
|
column: firstRowLabels.length
|
2078
2312
|
}
|
2079
2313
|
};
|
2314
|
+
// 用于 mapping source 的情况
|
2315
|
+
const remoteMappingCache: any = {};
|
2080
2316
|
// 数据从第二行开始
|
2081
2317
|
let rowIndex = 1;
|
2082
2318
|
for (const row of rows) {
|
2083
2319
|
rowIndex += 1;
|
2084
2320
|
const sheetRow = worksheet.getRow(rowIndex);
|
2085
2321
|
let columIndex = 0;
|
2086
|
-
const
|
2087
|
-
for (const column of cols) {
|
2322
|
+
for (const column of filteredColumns) {
|
2088
2323
|
columIndex += 1;
|
2089
2324
|
const name = column.name!;
|
2090
2325
|
const value = getVariable(row.data, name);
|
@@ -2170,7 +2405,30 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2170
2405
|
};
|
2171
2406
|
} else if (type === 'mapping') {
|
2172
2407
|
// 拷贝自 Mapping.tsx
|
2173
|
-
|
2408
|
+
let map = (column as MappingSchema).map;
|
2409
|
+
const source = (column as MappingSchema).source;
|
2410
|
+
if (source) {
|
2411
|
+
let sourceValue = source;
|
2412
|
+
if (isPureVariable(source)) {
|
2413
|
+
sourceValue = resolveVariableAndFilter(
|
2414
|
+
source as string,
|
2415
|
+
data,
|
2416
|
+
'| raw'
|
2417
|
+
);
|
2418
|
+
}
|
2419
|
+
|
2420
|
+
const mapKey = JSON.stringify(source);
|
2421
|
+
if (mapKey in remoteMappingCache) {
|
2422
|
+
map = remoteMappingCache[mapKey];
|
2423
|
+
} else {
|
2424
|
+
const res = await env.fetcher(sourceValue, data);
|
2425
|
+
if (res.data) {
|
2426
|
+
remoteMappingCache[mapKey] = res.data;
|
2427
|
+
map = res.data;
|
2428
|
+
}
|
2429
|
+
}
|
2430
|
+
}
|
2431
|
+
|
2174
2432
|
if (
|
2175
2433
|
typeof value !== 'undefined' &&
|
2176
2434
|
map &&
|
@@ -2183,14 +2441,18 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2183
2441
|
: value === false && map['0']
|
2184
2442
|
? map['0']
|
2185
2443
|
: map['*']); // 兼容平台旧用法:即 value 为 true 时映射 1 ,为 false 时映射 0
|
2186
|
-
sheetRow.getCell(columIndex).value =
|
2444
|
+
sheetRow.getCell(columIndex).value =
|
2445
|
+
removeHTMLTag(viewValue);
|
2187
2446
|
} else {
|
2188
|
-
sheetRow.getCell(columIndex).value = value;
|
2447
|
+
sheetRow.getCell(columIndex).value = removeHTMLTag(value);
|
2189
2448
|
}
|
2190
2449
|
} else {
|
2191
2450
|
if ((column as TplSchema).tpl) {
|
2192
2451
|
sheetRow.getCell(columIndex).value = removeHTMLTag(
|
2193
|
-
filter(
|
2452
|
+
filter(
|
2453
|
+
(column as TplSchema).tpl,
|
2454
|
+
createObject(data, row.data)
|
2455
|
+
)
|
2194
2456
|
);
|
2195
2457
|
} else {
|
2196
2458
|
sheetRow.getCell(columIndex).value = value;
|
@@ -2393,57 +2655,6 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2393
2655
|
: footerNode || toolbarNode || null;
|
2394
2656
|
}
|
2395
2657
|
|
2396
|
-
renderItemActions() {
|
2397
|
-
const {itemActions, render, store, classnames: cx} = this.props;
|
2398
|
-
const finalActions = Array.isArray(itemActions)
|
2399
|
-
? itemActions.filter(action => !action.hiddenOnHover)
|
2400
|
-
: [];
|
2401
|
-
|
2402
|
-
if (!finalActions.length) {
|
2403
|
-
return null;
|
2404
|
-
}
|
2405
|
-
const rowIndex = store.hoverIndex;
|
2406
|
-
const heights = this.heights;
|
2407
|
-
let height = 40;
|
2408
|
-
let top = 0;
|
2409
|
-
|
2410
|
-
if (heights && heights[rowIndex]) {
|
2411
|
-
height = heights[rowIndex];
|
2412
|
-
top += heights.header;
|
2413
|
-
for (let i = rowIndex - 1; i >= 0; i--) {
|
2414
|
-
top += heights[i];
|
2415
|
-
}
|
2416
|
-
}
|
2417
|
-
|
2418
|
-
return (
|
2419
|
-
<div
|
2420
|
-
className={cx('Table-itemActions-wrap')}
|
2421
|
-
style={{
|
2422
|
-
top,
|
2423
|
-
height
|
2424
|
-
}}
|
2425
|
-
>
|
2426
|
-
<div className={cx('Table-itemActions')}>
|
2427
|
-
{finalActions.map((action, index) =>
|
2428
|
-
render(
|
2429
|
-
`itemAction/${index}`,
|
2430
|
-
{
|
2431
|
-
...(action as any),
|
2432
|
-
isMenuItem: true
|
2433
|
-
},
|
2434
|
-
{
|
2435
|
-
key: index,
|
2436
|
-
item: store.rows[rowIndex],
|
2437
|
-
data: store.rows[rowIndex].locals,
|
2438
|
-
rowIndex
|
2439
|
-
}
|
2440
|
-
)
|
2441
|
-
)}
|
2442
|
-
</div>
|
2443
|
-
</div>
|
2444
|
-
);
|
2445
|
-
}
|
2446
|
-
|
2447
2658
|
renderTableContent() {
|
2448
2659
|
const {
|
2449
2660
|
classnames: cx,
|
@@ -2458,8 +2669,11 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2458
2669
|
prefixRow,
|
2459
2670
|
locale,
|
2460
2671
|
affixRow,
|
2672
|
+
tableContentClassName,
|
2461
2673
|
translate,
|
2462
|
-
itemAction
|
2674
|
+
itemAction,
|
2675
|
+
autoFillHeight,
|
2676
|
+
itemActions
|
2463
2677
|
} = this.props;
|
2464
2678
|
|
2465
2679
|
// 理论上来说 store.rows 应该也行啊
|
@@ -2470,9 +2684,13 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2470
2684
|
<TableContent
|
2471
2685
|
tableClassName={cx(
|
2472
2686
|
store.combineNum > 0 ? 'Table-table--withCombine' : '',
|
2687
|
+
{'Table-table--checkOnItemClick': checkOnItemClick},
|
2473
2688
|
tableClassName
|
2474
2689
|
)}
|
2690
|
+
className={tableContentClassName}
|
2691
|
+
itemActions={itemActions}
|
2475
2692
|
itemAction={itemAction}
|
2693
|
+
store={store}
|
2476
2694
|
classnames={cx}
|
2477
2695
|
columns={store.filteredColumns}
|
2478
2696
|
columnsGroup={store.columnGroup}
|
@@ -2503,7 +2721,14 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2503
2721
|
}
|
2504
2722
|
|
2505
2723
|
render() {
|
2506
|
-
const {
|
2724
|
+
const {
|
2725
|
+
className,
|
2726
|
+
store,
|
2727
|
+
classnames: cx,
|
2728
|
+
affixColumns,
|
2729
|
+
autoFillHeight,
|
2730
|
+
autoGenerateFilter
|
2731
|
+
} = this.props;
|
2507
2732
|
|
2508
2733
|
this.renderedToolbars = []; // 用来记录哪些 toolbar 已经渲染了,已经渲染了就不重复渲染了。
|
2509
2734
|
const heading = this.renderHeading();
|
@@ -2518,9 +2743,11 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2518
2743
|
return (
|
2519
2744
|
<div
|
2520
2745
|
className={cx('Table', className, {
|
2521
|
-
'Table--unsaved': !!store.modified || !!store.moved
|
2746
|
+
'Table--unsaved': !!store.modified || !!store.moved,
|
2747
|
+
'Table--autoFillHeight': autoFillHeight
|
2522
2748
|
})}
|
2523
2749
|
>
|
2750
|
+
{autoGenerateFilter ? this.renderAutoFilterForm() : null}
|
2524
2751
|
{header}
|
2525
2752
|
{heading}
|
2526
2753
|
<div
|
@@ -2554,7 +2781,6 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2554
2781
|
: null}
|
2555
2782
|
</div>
|
2556
2783
|
{this.renderTableContent()}
|
2557
|
-
{~store.hoverIndex ? this.renderItemActions() : null}
|
2558
2784
|
</div>
|
2559
2785
|
{this.renderAffixHeader(tableClassName)}
|
2560
2786
|
{footer}
|