amis 1.4.2-beta.6 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Schema.d.ts +11 -3
- package/lib/Schema.js.map +1 -1
- package/lib/components/Alert2.d.ts +26 -21
- package/lib/components/Alert2.js +11 -4
- package/lib/components/Alert2.js.map +2 -2
- package/lib/components/AnchorNav.d.ts +22 -21
- package/lib/components/AnchorNav.js +7 -3
- package/lib/components/AnchorNav.js.map +2 -2
- package/lib/components/ArrayInput.d.ts +84 -84
- package/lib/components/AssociatedSelection.d.ts +930 -0
- package/lib/components/AssociatedSelection.js +89 -0
- package/lib/components/AssociatedSelection.js.map +13 -0
- package/lib/components/Badge.js +2 -2
- package/lib/components/Badge.js.map +2 -2
- package/lib/components/Button.js +1 -1
- package/lib/components/Button.js.map +2 -2
- package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
- package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
- package/lib/components/ChainedSelection.js.map +13 -0
- package/lib/components/Checkbox.d.ts +20 -20
- package/lib/components/Collapse.d.ts +51 -23
- package/lib/components/Collapse.js +70 -11
- package/lib/components/Collapse.js.map +2 -2
- package/lib/components/CollapseGroup.d.ts +88 -0
- package/lib/components/CollapseGroup.js +81 -0
- package/lib/components/CollapseGroup.js.map +13 -0
- package/lib/components/ColorPicker.d.ts +89 -85
- package/lib/components/ColorPicker.js +17 -4
- package/lib/components/ColorPicker.js.map +2 -2
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DateRangePicker.d.ts +84 -84
- package/lib/components/Drawer.js +2 -2
- package/lib/components/Drawer.js.map +2 -2
- package/lib/components/Editor.d.ts +84 -84
- package/lib/components/GridNav.d.ts +52 -0
- package/lib/components/GridNav.js +123 -0
- package/lib/components/GridNav.js.map +13 -0
- package/lib/components/GroupedSelection.d.ts +907 -0
- package/lib/components/GroupedSelection.js +48 -0
- package/lib/components/GroupedSelection.js.map +13 -0
- package/lib/components/InputBox.d.ts +22 -21
- package/lib/components/InputBox.js +10 -2
- package/lib/components/InputBox.js.map +2 -2
- package/lib/components/Link.d.ts +29 -36
- package/lib/components/Link.js +14 -15
- package/lib/components/Link.js.map +2 -2
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/ModalManager.js +1 -1
- package/lib/components/ModalManager.js.map +2 -2
- package/lib/components/MonthRangePicker.d.ts +84 -84
- package/lib/components/NumberInput.d.ts +20 -20
- package/lib/components/Overlay.js +5 -0
- package/lib/components/Overlay.js.map +2 -2
- package/lib/components/PickerColumn.d.ts +514 -0
- package/lib/components/PickerColumn.js +279 -0
- package/lib/components/PickerColumn.js.map +13 -0
- package/lib/components/PickerContainer.d.ts +513 -0
- package/lib/components/PickerContainer.js +96 -0
- package/lib/components/PickerContainer.js.map +13 -0
- package/lib/components/PopOver.d.ts +1 -0
- package/lib/components/PopOver.js +12 -1
- package/lib/components/PopOver.js.map +2 -2
- package/lib/components/Progress.d.ts +85 -0
- package/lib/components/Progress.js +81 -0
- package/lib/components/Progress.js.map +13 -0
- package/lib/components/Radios.d.ts +22 -21
- package/lib/components/Radios.js +1 -0
- package/lib/components/Radios.js.map +2 -2
- package/lib/components/Rating.d.ts +21 -21
- package/lib/components/ResultBox.d.ts +84 -84
- package/lib/components/ResultBox.js +10 -2
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/SearchBox.d.ts +84 -84
- package/lib/components/Select.d.ts +245 -237
- package/lib/components/Select.js +25 -4
- package/lib/components/Select.js.map +2 -2
- package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
- package/lib/components/Selection.js +134 -0
- package/lib/components/Selection.js.map +13 -0
- package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
- package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
- package/lib/components/TableSelection.js.map +13 -0
- package/lib/components/Tabs.d.ts +20 -20
- package/lib/components/TabsTransfer.d.ts +84 -84
- package/lib/components/TabsTransfer.js +9 -9
- package/lib/components/TabsTransfer.js.map +2 -2
- package/lib/components/TabsTransferPicker.d.ts +489 -0
- package/lib/components/TabsTransferPicker.js +60 -0
- package/lib/components/TabsTransferPicker.js.map +13 -0
- package/lib/components/Toast.d.ts +90 -87
- package/lib/components/Toast.js +15 -5
- package/lib/components/Toast.js.map +2 -2
- package/lib/components/Transfer.d.ts +908 -274
- package/lib/components/Transfer.js +31 -24
- package/lib/components/Transfer.js.map +2 -2
- package/lib/components/TransferDropDown.d.ts +488 -0
- package/lib/components/TransferDropDown.js +59 -0
- package/lib/components/TransferDropDown.js.map +13 -0
- package/lib/components/TransferPicker.d.ts +493 -0
- package/lib/components/TransferPicker.js +60 -0
- package/lib/components/TransferPicker.js.map +13 -0
- package/lib/components/Tree.d.ts +115 -84
- package/lib/components/Tree.js +183 -30
- package/lib/components/Tree.js.map +2 -2
- package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
- package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
- package/lib/components/TreeSelection.js.map +13 -0
- package/lib/components/condition-builder/Field.js +4 -2
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Func.js +2 -2
- package/lib/components/condition-builder/Func.js.map +2 -2
- package/lib/components/condition-builder/InputSwitch.js +2 -2
- package/lib/components/condition-builder/InputSwitch.js.map +2 -2
- package/lib/components/condition-builder/Item.js +3 -3
- package/lib/components/condition-builder/Item.js.map +2 -2
- package/lib/components/icons.js +10 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/components/index.d.ts +8 -8
- package/lib/components/index.js +16 -16
- package/lib/components/index.js.map +2 -2
- package/lib/envOverwrite.d.ts +1 -1
- package/lib/envOverwrite.js +24 -9
- package/lib/envOverwrite.js.map +2 -2
- package/lib/factory.d.ts +15 -1
- package/lib/factory.js +35 -6
- package/lib/factory.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/hooks/index.d.ts +5 -0
- package/lib/hooks/index.js +14 -0
- package/lib/hooks/index.js.map +13 -0
- package/lib/hooks/use-set-state.d.ts +2 -0
- package/lib/hooks/use-set-state.js +15 -0
- package/lib/hooks/use-set-state.js.map +13 -0
- package/lib/hooks/use-touch.d.ts +16 -0
- package/lib/hooks/use-touch.js +73 -0
- package/lib/hooks/use-touch.js.map +13 -0
- package/lib/hooks/use-update-effect.d.ts +3 -0
- package/lib/hooks/use-update-effect.js +17 -0
- package/lib/hooks/use-update-effect.js.map +13 -0
- package/lib/icons/alert-danger.js +7 -0
- package/lib/icons/alert-info.js +7 -0
- package/lib/icons/alert-success.js +7 -0
- package/lib/icons/alert-warning.js +7 -0
- package/lib/icons/download.js +7 -0
- package/lib/icons/drag-bar.js +10 -3
- package/lib/index.d.ts +5 -0
- package/lib/index.js +6 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +2 -0
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +3 -0
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +5 -2
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +10 -5
- package/lib/renderers/Action.js +23 -5
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/Alert.d.ts +21 -1
- package/lib/renderers/Alert.js.map +2 -2
- package/lib/renderers/AnchorNav.d.ts +1 -0
- package/lib/renderers/AnchorNav.js +2 -2
- package/lib/renderers/AnchorNav.js.map +2 -2
- package/lib/renderers/Avatar.js +3 -3
- package/lib/renderers/Avatar.js.map +2 -2
- package/lib/renderers/Breadcrumb.js +1 -1
- package/lib/renderers/Breadcrumb.js.map +2 -2
- package/lib/renderers/CRUD.d.ts +5 -0
- package/lib/renderers/CRUD.js +25 -4
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Card.d.ts +5 -0
- package/lib/renderers/Card.js +34 -23
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Collapse.d.ts +25 -20
- package/lib/renderers/Collapse.js +10 -72
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/CollapseGroup.d.ts +42 -0
- package/lib/renderers/CollapseGroup.js +33 -0
- package/lib/renderers/CollapseGroup.js.map +13 -0
- package/lib/renderers/Form/ConditionBuilder.js +2 -2
- package/lib/renderers/Form/ConditionBuilder.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +4 -3
- package/lib/renderers/Form/Editor.d.ts +3 -2
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputCity.js +7 -6
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.d.ts +86 -85
- package/lib/renderers/Form/InputColor.js +1 -1
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputFile.d.ts +6 -0
- package/lib/renderers/Form/InputFile.js +28 -8
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.js +11 -4
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +1 -1
- package/lib/renderers/Form/Item.js +2 -1
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/Options.js +25 -4
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Select.d.ts +42 -4
- package/lib/renderers/Form/Select.js +37 -3
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
- package/lib/renderers/Form/TabsTransferPicker.js +29 -0
- package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
- package/lib/renderers/Form/Transfer.js +18 -3
- package/lib/renderers/Form/Transfer.js.map +2 -2
- package/lib/renderers/Form/TransferPicker.d.ts +52 -0
- package/lib/renderers/Form/TransferPicker.js +43 -0
- package/lib/renderers/Form/TransferPicker.js.map +13 -0
- package/lib/renderers/Form/TreeSelect.js +2 -2
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.d.ts +5 -0
- package/lib/renderers/Form/index.js +5 -3
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +13 -1
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/GridNav.d.ts +99 -0
- package/lib/renderers/GridNav.js +82 -0
- package/lib/renderers/GridNav.js.map +13 -0
- package/lib/renderers/IFrame.js +1 -3
- package/lib/renderers/IFrame.js.map +2 -2
- package/lib/renderers/Image.js +7 -5
- package/lib/renderers/Image.js.map +2 -2
- package/lib/renderers/Json.d.ts +4 -0
- package/lib/renderers/Json.js +4 -13
- package/lib/renderers/Json.js.map +2 -2
- package/lib/renderers/Link.d.ts +4 -2
- package/lib/renderers/Link.js +15 -8
- package/lib/renderers/Link.js.map +2 -2
- package/lib/renderers/List.js +1 -1
- package/lib/renderers/List.js.map +2 -2
- package/lib/renderers/Nav.d.ts +21 -21
- package/lib/renderers/Nav.js +37 -19
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Page.d.ts +18 -0
- package/lib/renderers/Page.js +53 -9
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Portlet.d.ts +125 -0
- package/lib/renderers/Portlet.js +156 -0
- package/lib/renderers/Portlet.js.map +13 -0
- package/lib/renderers/Progress.d.ts +23 -3
- package/lib/renderers/Progress.js +15 -19
- package/lib/renderers/Progress.js.map +2 -2
- package/lib/renderers/Property.js +1 -1
- package/lib/renderers/Property.js.map +2 -2
- package/lib/renderers/Table/ColumnToggler.js +1 -1
- package/lib/renderers/Table/ColumnToggler.js.map +2 -2
- package/lib/renderers/Table/TableContent.d.ts +4 -1
- package/lib/renderers/Table/TableContent.js +21 -1
- package/lib/renderers/Table/TableContent.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +5 -1
- package/lib/renderers/Table/index.js +65 -30
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Tabs.js +9 -1
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/WebComponent.js +1 -1
- package/lib/renderers/WebComponent.js.map +2 -2
- package/lib/store/combo.d.ts +2 -2
- package/lib/store/form.d.ts +1 -1
- package/lib/store/form.js +3 -5
- package/lib/store/form.js.map +2 -2
- package/lib/store/formItem.js +44 -4
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/table.d.ts +3 -2
- package/lib/store/table.js +35 -12
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +934 -222
- package/lib/themes/ang.css +934 -222
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +934 -222
- package/lib/themes/antd.css +934 -222
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +970 -260
- package/lib/themes/cxd.css +970 -260
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +934 -222
- package/lib/themes/dark.css +934 -222
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +970 -260
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +38 -1
- package/lib/types.js +0 -5
- package/lib/types.js.map +2 -2
- package/lib/utils/api.d.ts +3 -2
- package/lib/utils/api.js +90 -17
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/dom.d.ts +4 -0
- package/lib/utils/dom.js +11 -1
- package/lib/utils/dom.js.map +2 -2
- package/lib/utils/helper.d.ts +12 -23
- package/lib/utils/helper.js +62 -166
- package/lib/utils/helper.js.map +2 -2
- package/lib/utils/tpl-builtin.d.ts +2 -20
- package/lib/utils/tpl-builtin.js +25 -743
- package/lib/utils/tpl-builtin.js.map +2 -2
- package/lib/utils/tpl.js +24 -0
- package/lib/utils/tpl.js.map +2 -2
- package/package.json +5 -2
- package/schema.json +3966 -1263
- package/scss/_mixins.scss +1 -3
- package/scss/_properties.scss +42 -13
- package/scss/base/_common.scss +3 -0
- package/scss/base/_normalize.scss +2 -0
- package/scss/components/_alert.scss +28 -5
- package/scss/components/_anchor-nav.scss +89 -29
- package/scss/components/_button.scss +12 -0
- package/scss/components/_card.scss +9 -15
- package/scss/components/_collapse-group.scss +15 -0
- package/scss/components/_collapse.scss +48 -23
- package/scss/components/_grid-nav.scss +128 -0
- package/scss/components/_images.scss +1 -0
- package/scss/components/_input-box.scss +1 -0
- package/scss/components/_nav.scss +2 -7
- package/scss/components/_page.scss +35 -2
- package/scss/components/_picker-columns.scss +124 -0
- package/scss/components/_popover.scss +13 -0
- package/scss/components/_portlet.scss +51 -0
- package/scss/components/_progress.scss +141 -33
- package/scss/components/_result-box.scss +1 -0
- package/scss/components/_spinner.scss +5 -4
- package/scss/components/_status.scss +1 -1
- package/scss/components/_table.scss +32 -0
- package/scss/components/_toast.scss +41 -11
- package/scss/components/form/_checks.scss +0 -351
- package/scss/components/form/_color.scss +32 -3
- package/scss/components/form/_combo.scss +4 -0
- package/scss/components/form/_fieldset.scss +6 -1
- package/scss/components/form/_file.scss +11 -0
- package/scss/components/form/_form.scss +48 -0
- package/scss/components/form/_selection.scss +354 -0
- package/scss/components/form/_transfer.scss +76 -18
- package/scss/components/form/_tree.scss +42 -0
- package/scss/themes/_common.scss +6 -0
- package/scss/themes/_cxd-variables.scss +13 -6
- package/scss/themes/cxd.scss +19 -20
- package/sdk/ang-ie11.css +1065 -246
- package/sdk/ang.css +1069 -230
- package/sdk/antd-ie11.css +1068 -249
- package/sdk/antd.css +1069 -230
- package/sdk/charts.js +17 -17
- package/sdk/color-picker.js +65 -69
- package/sdk/cropperjs.js +3 -3
- package/sdk/cxd-ie11.css +1081 -268
- package/sdk/cxd.css +1116 -279
- package/sdk/dark-ie11.css +1069 -250
- package/sdk/dark.css +1069 -230
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/iconfont.svg +2513 -0
- package/sdk/iconfont.ttf +0 -0
- package/sdk/iconfont.woff +0 -0
- package/sdk/locale/de-DE.js +2 -0
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +20 -28
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +1081 -268
- package/sdk/sdk.css +1116 -279
- package/sdk/sdk.js +1371 -1189
- package/sdk/thirds/hls.js/hls.js +18 -18
- package/sdk/thirds/mpegts.js/mpegts.js +2 -2
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +19 -1
- package/src/components/Alert2.tsx +32 -4
- package/src/components/AnchorNav.tsx +15 -4
- package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +43 -37
- package/src/components/Badge.tsx +3 -3
- package/src/components/Button.tsx +1 -0
- package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
- package/src/components/Collapse.tsx +139 -20
- package/src/components/CollapseGroup.tsx +130 -0
- package/src/components/ColorPicker.tsx +32 -10
- package/src/components/Drawer.tsx +8 -6
- package/src/components/GridNav.tsx +233 -0
- package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
- package/src/components/InputBox.tsx +10 -9
- package/src/components/Link.tsx +28 -37
- package/src/components/ModalManager.ts +1 -1
- package/src/components/Overlay.tsx +6 -0
- package/src/components/PickerColumn.tsx +429 -0
- package/src/components/PickerContainer.tsx +128 -0
- package/src/components/PopOver.tsx +15 -1
- package/src/components/Progress.tsx +140 -0
- package/src/components/Radios.tsx +3 -8
- package/src/components/ResultBox.tsx +9 -9
- package/src/components/Select.tsx +57 -5
- package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
- package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
- package/src/components/TabsTransfer.tsx +13 -7
- package/src/components/TabsTransferPicker.tsx +85 -0
- package/src/components/Toast.tsx +48 -21
- package/src/components/Transfer.tsx +71 -50
- package/src/components/TransferDropDown.tsx +120 -0
- package/src/components/TransferPicker.tsx +91 -0
- package/src/components/Tree.tsx +194 -8
- package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
- package/src/components/condition-builder/Field.tsx +7 -5
- package/src/components/condition-builder/Func.tsx +3 -3
- package/src/components/condition-builder/InputSwitch.tsx +3 -3
- package/src/components/condition-builder/Item.tsx +5 -12
- package/src/components/icons.tsx +10 -0
- package/src/components/index.tsx +13 -13
- package/src/envOverwrite.ts +20 -8
- package/src/factory.tsx +70 -9
- package/src/hooks/index.ts +5 -0
- package/src/hooks/use-set-state.ts +19 -0
- package/src/hooks/use-touch.ts +100 -0
- package/src/hooks/use-update-effect.ts +16 -0
- package/src/icons/alert-danger.svg +1 -0
- package/src/icons/alert-info.svg +1 -0
- package/src/icons/alert-success.svg +1 -0
- package/src/icons/alert-warning.svg +1 -0
- package/src/icons/download.svg +4 -0
- package/src/icons/drag-bar.svg +12 -6
- package/src/index.tsx +5 -0
- package/src/locale/de-DE.ts +2 -0
- package/src/locale/en-US.ts +3 -0
- package/src/locale/zh-CN.ts +5 -2
- package/src/renderers/Action.tsx +58 -3
- package/src/renderers/Alert.tsx +31 -1
- package/src/renderers/AnchorNav.tsx +4 -0
- package/src/renderers/Avatar.tsx +8 -4
- package/src/renderers/Breadcrumb.tsx +5 -1
- package/src/renderers/CRUD.tsx +29 -3
- package/src/renderers/Card.tsx +76 -36
- package/src/renderers/Collapse.tsx +70 -115
- package/src/renderers/CollapseGroup.tsx +80 -0
- package/src/renderers/Form/ConditionBuilder.tsx +2 -2
- package/src/renderers/Form/InputCity.tsx +4 -8
- package/src/renderers/Form/InputColor.tsx +4 -2
- package/src/renderers/Form/InputFile.tsx +65 -24
- package/src/renderers/Form/InputImage.tsx +11 -3
- package/src/renderers/Form/Item.tsx +3 -2
- package/src/renderers/Form/Options.tsx +29 -3
- package/src/renderers/Form/Select.tsx +162 -21
- package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
- package/src/renderers/Form/Transfer.tsx +19 -4
- package/src/renderers/Form/TransferPicker.tsx +145 -0
- package/src/renderers/Form/TreeSelect.tsx +25 -0
- package/src/renderers/Form/index.tsx +15 -2
- package/src/renderers/Form/wrapControl.tsx +26 -1
- package/src/renderers/GridNav.tsx +204 -0
- package/src/renderers/IFrame.tsx +2 -4
- package/src/renderers/Image.tsx +19 -15
- package/src/renderers/Json.tsx +9 -9
- package/src/renderers/Link.tsx +29 -16
- package/src/renderers/List.tsx +1 -1
- package/src/renderers/Nav.tsx +105 -56
- package/src/renderers/Page.tsx +62 -1
- package/src/renderers/Portlet.tsx +423 -0
- package/src/renderers/Progress.tsx +56 -38
- package/src/renderers/Property.tsx +6 -4
- package/src/renderers/Table/ColumnToggler.tsx +1 -1
- package/src/renderers/Table/TableContent.tsx +40 -2
- package/src/renderers/Table/index.tsx +88 -43
- package/src/renderers/Tabs.tsx +9 -1
- package/src/renderers/WebComponent.tsx +2 -2
- package/src/store/form.ts +3 -9
- package/src/store/formItem.ts +94 -2
- package/src/store/table.ts +55 -14
- package/src/types.ts +58 -1
- package/src/utils/api.ts +120 -26
- package/src/utils/dom.tsx +12 -0
- package/src/utils/helper.ts +55 -185
- package/src/utils/tpl-builtin.ts +40 -866
- package/src/utils/tpl.ts +33 -0
- package/tsconfig-for-declaration.json +1 -1
- package/dump.rdb +0 -0
- package/lib/components/AssociatedCheckboxes.d.ts +0 -762
- package/lib/components/AssociatedCheckboxes.js +0 -90
- package/lib/components/AssociatedCheckboxes.js.map +0 -13
- package/lib/components/ChainedCheckboxes.js.map +0 -13
- package/lib/components/Checkboxes.js +0 -101
- package/lib/components/Checkboxes.js.map +0 -13
- package/lib/components/ListCheckboxes.d.ts +0 -739
- package/lib/components/ListCheckboxes.js +0 -48
- package/lib/components/ListCheckboxes.js.map +0 -13
- package/lib/components/ListRadios.d.ts +0 -763
- package/lib/components/ListRadios.js +0 -86
- package/lib/components/ListRadios.js.map +0 -13
- package/lib/components/TableCheckboxes.js.map +0 -13
- package/lib/components/TreeCheckboxes.js.map +0 -13
- package/lib/components/TreeRadios.d.ts +0 -838
- package/lib/components/TreeRadios.js +0 -116
- package/lib/components/TreeRadios.js.map +0 -13
- package/src/components/ListRadios.tsx +0 -159
- package/src/components/TreeRadios.tsx +0 -202
package/src/locale/en-US.ts
CHANGED
@@ -85,6 +85,7 @@ register('en-US', {
|
|
85
85
|
'Excel.placeholder': `Drag 'n' drop excel here, or click to select`,
|
86
86
|
'fetchFailed': 'Fetch api failed',
|
87
87
|
'File.continueAdd': 'Continue add',
|
88
|
+
'File.downloadTpl': 'Download template',
|
88
89
|
'File.dragDrop': `Drag 'n' drop some files here`,
|
89
90
|
'File.errorRetry': 'File upload failed, please try again',
|
90
91
|
'File.failed': 'Failed files.',
|
@@ -182,6 +183,7 @@ register('en-US', {
|
|
182
183
|
'Transfer.configError': 'Config error',
|
183
184
|
'Transfer.refreshIcon': 'Click to refresh',
|
184
185
|
'Transfer.searchKeyword': 'Enter keywords',
|
186
|
+
'Transfer.available': 'Available',
|
185
187
|
'Transfer.selectd': 'Selected',
|
186
188
|
'Transfer.selectFromLeft': 'Select from the left',
|
187
189
|
'Tree.addChild': 'Add child',
|
@@ -223,6 +225,7 @@ register('en-US', {
|
|
223
225
|
'Wizard.saveAndNext': 'Save & Next',
|
224
226
|
'year-to-year': '{{from}} - {{to}}',
|
225
227
|
'Year.placeholder': 'Select a Year',
|
228
|
+
'reload': 'Reload',
|
226
229
|
'rotate': 'Rotate',
|
227
230
|
'Editor.fullscreen': 'full screen',
|
228
231
|
'Editor.exitFullscreen': 'exit fullscreen mode',
|
package/src/locale/zh-CN.ts
CHANGED
@@ -87,6 +87,7 @@ register('zh-CN', {
|
|
87
87
|
'Excel.placeholder': '拖拽 Excel 到这,或点击上传',
|
88
88
|
'fetchFailed': '初始化失败',
|
89
89
|
'File.continueAdd': '继续添加',
|
90
|
+
'File.downloadTpl': '下载模板',
|
90
91
|
'File.dragDrop': '将文件拖拽到此处',
|
91
92
|
'File.errorRetry': '文件上传失败请重试',
|
92
93
|
'File.failed': '失败文件',
|
@@ -186,8 +187,9 @@ register('zh-CN', {
|
|
186
187
|
'Transfer.configError': '配置错误,选项无法与左侧选项对应',
|
187
188
|
'Transfer.refreshIcon': '点击刷新重新加载',
|
188
189
|
'Transfer.searchKeyword': '请输入关键字',
|
189
|
-
'Transfer.
|
190
|
-
'Transfer.
|
190
|
+
'Transfer.available': '可选项',
|
191
|
+
'Transfer.selectd': '已选项',
|
192
|
+
'Transfer.selectFromLeft': '请选择左侧数据',
|
191
193
|
'Tree.addChild': '添加子节点',
|
192
194
|
'Tree.addRoot': '添加一级节点',
|
193
195
|
'Tree.editNode': '编辑该节点',
|
@@ -227,6 +229,7 @@ register('zh-CN', {
|
|
227
229
|
'Wizard.saveAndNext': '保存并下一步',
|
228
230
|
'year-to-year': '{{from}} 年 - {{to}} 年',
|
229
231
|
'Year.placeholder': '请选择年',
|
232
|
+
'reload': '刷新',
|
230
233
|
'rotate': '旋转',
|
231
234
|
'Editor.fullscreen': '全屏',
|
232
235
|
'Editor.exitFullscreen': '退出全屏',
|
package/src/renderers/Action.tsx
CHANGED
@@ -4,8 +4,14 @@ import {Renderer, RendererProps} from '../factory';
|
|
4
4
|
import {filter} from '../utils/tpl';
|
5
5
|
import Button from '../components/Button';
|
6
6
|
import pick from 'lodash/pick';
|
7
|
+
import omit from 'lodash/omit';
|
7
8
|
|
8
9
|
export interface ButtonSchema extends BaseSchema {
|
10
|
+
/**
|
11
|
+
* 主要用于用户行为跟踪里区分是哪个按钮
|
12
|
+
*/
|
13
|
+
id?: string;
|
14
|
+
|
9
15
|
/**
|
10
16
|
* 是否为块状展示,默认为内联。
|
11
17
|
*/
|
@@ -144,6 +150,11 @@ export interface ButtonSchema extends BaseSchema {
|
|
144
150
|
* 自定义事件处理函数
|
145
151
|
*/
|
146
152
|
onClick?: string | any;
|
153
|
+
|
154
|
+
/**
|
155
|
+
* 子内容
|
156
|
+
*/
|
157
|
+
body?: SchemaCollection;
|
147
158
|
}
|
148
159
|
|
149
160
|
export interface AjaxActionSchema extends ButtonSchema {
|
@@ -332,6 +343,7 @@ export type ActionSchema =
|
|
332
343
|
| VanillaAction;
|
333
344
|
|
334
345
|
const ActionProps = [
|
346
|
+
'id',
|
335
347
|
'dialog',
|
336
348
|
'drawer',
|
337
349
|
'url',
|
@@ -380,6 +392,7 @@ import {
|
|
380
392
|
FeedbackDialog,
|
381
393
|
SchemaApi,
|
382
394
|
SchemaClassName,
|
395
|
+
SchemaCollection,
|
383
396
|
SchemaExpression,
|
384
397
|
SchemaIcon,
|
385
398
|
SchemaReload,
|
@@ -391,6 +404,7 @@ import {DrawerSchema, DrawerSchemaBase} from './Drawer';
|
|
391
404
|
import {generateIcon} from '../utils/icon';
|
392
405
|
import {BadgeSchema, withBadge} from '../components/Badge';
|
393
406
|
import {normalizeApi, str2AsyncFunction} from '../utils/api';
|
407
|
+
import {TooltipWrapper} from '../components/TooltipWrapper';
|
394
408
|
|
395
409
|
// 构造一个假的 React 事件避免可能的报错,主要用于快捷键功能
|
396
410
|
// 来自 https://stackoverflow.com/questions/27062455/reactjs-can-i-create-my-own-syntheticevent
|
@@ -495,6 +509,7 @@ export interface ActionProps
|
|
495
509
|
| 'iconClassName'
|
496
510
|
| 'rightIconClassName'
|
497
511
|
| 'loadingClassName'
|
512
|
+
| 'body'
|
498
513
|
>,
|
499
514
|
Omit<
|
500
515
|
OtherActionSchema,
|
@@ -570,7 +585,8 @@ export class Action extends React.Component<ActionProps, ActionState> {
|
|
570
585
|
|
571
586
|
@autobind
|
572
587
|
async handleAction(e: React.MouseEvent<any>) {
|
573
|
-
const {onAction, disabled, countDown} = this.props;
|
588
|
+
const {onAction, disabled, countDown, env} = this.props;
|
589
|
+
|
574
590
|
// https://reactjs.org/docs/legacy-event-pooling.html
|
575
591
|
e.persist();
|
576
592
|
let onClick = this.props.onClick;
|
@@ -592,9 +608,26 @@ export class Action extends React.Component<ActionProps, ActionState> {
|
|
592
608
|
|
593
609
|
e.preventDefault();
|
594
610
|
const action = pick(this.props, ActionProps) as ActionSchema;
|
611
|
+
const actionType = action.actionType;
|
612
|
+
|
613
|
+
// ajax 会在 wrapFetcher 里记录,这里再处理就重复了,因此去掉
|
614
|
+
// add 一般是 input-table 之类的,会触发 formItemChange,为了避免重复也去掉
|
615
|
+
if (
|
616
|
+
actionType !== 'ajax' &&
|
617
|
+
actionType !== 'download' &&
|
618
|
+
actionType !== 'add'
|
619
|
+
) {
|
620
|
+
env?.tracker(
|
621
|
+
{
|
622
|
+
eventType: actionType || this.props.type || 'click',
|
623
|
+
eventData: omit(action, ['type', 'actionType', 'tooltipPlacement'])
|
624
|
+
},
|
625
|
+
this.props
|
626
|
+
);
|
627
|
+
}
|
595
628
|
|
596
629
|
// download 是一种 ajax 的简写
|
597
|
-
if (
|
630
|
+
if (actionType === 'download') {
|
598
631
|
action.actionType = 'ajax';
|
599
632
|
const api = normalizeApi((action as AjaxActionSchema).api);
|
600
633
|
api.responseType = 'blob';
|
@@ -692,9 +725,30 @@ export class Action extends React.Component<ActionProps, ActionState> {
|
|
692
725
|
tooltipContainer,
|
693
726
|
tooltipRootClose,
|
694
727
|
loading,
|
695
|
-
|
728
|
+
body,
|
729
|
+
render,
|
730
|
+
classnames: cx,
|
731
|
+
classPrefix: ns
|
696
732
|
} = this.props;
|
697
733
|
|
734
|
+
if (actionType !== 'email' && body) {
|
735
|
+
return (
|
736
|
+
<TooltipWrapper
|
737
|
+
classPrefix={ns}
|
738
|
+
classnames={cx}
|
739
|
+
placement={tooltipPlacement}
|
740
|
+
tooltip={tooltip}
|
741
|
+
container={tooltipContainer}
|
742
|
+
trigger={tooltipTrigger}
|
743
|
+
rootClose={tooltipRootClose}
|
744
|
+
>
|
745
|
+
<div className={cx('Action', className)} onClick={this.handleAction}>
|
746
|
+
{render('body', body) as JSX.Element}
|
747
|
+
</div>
|
748
|
+
</TooltipWrapper>
|
749
|
+
);
|
750
|
+
}
|
751
|
+
|
698
752
|
let label = this.props.label;
|
699
753
|
let disabled = this.props.disabled;
|
700
754
|
let isActive = !!active;
|
@@ -798,6 +852,7 @@ export class ActionRenderer extends React.Component<
|
|
798
852
|
return (
|
799
853
|
<Action
|
800
854
|
{...(rest as any)}
|
855
|
+
env={env}
|
801
856
|
disabled={disabled || btnDisabled}
|
802
857
|
onAction={this.handleAction}
|
803
858
|
loading={loading}
|
package/src/renderers/Alert.tsx
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
import {Renderer, RendererProps} from '../factory';
|
2
2
|
import React from 'react';
|
3
3
|
import Alert, {AlertProps} from '../components/Alert2';
|
4
|
-
import {
|
4
|
+
import {
|
5
|
+
BaseSchema,
|
6
|
+
SchemaObject,
|
7
|
+
SchemaCollection,
|
8
|
+
SchemaIcon
|
9
|
+
} from '../Schema';
|
5
10
|
|
6
11
|
/**
|
7
12
|
* Alert 提示渲染器。
|
@@ -13,6 +18,11 @@ export interface AlertSchema extends BaseSchema {
|
|
13
18
|
*/
|
14
19
|
type: 'alert';
|
15
20
|
|
21
|
+
/**
|
22
|
+
* 提示框标题
|
23
|
+
*/
|
24
|
+
title?: string;
|
25
|
+
|
16
26
|
/**
|
17
27
|
* 内容区域
|
18
28
|
*/
|
@@ -27,6 +37,26 @@ export interface AlertSchema extends BaseSchema {
|
|
27
37
|
* 是否显示关闭按钮
|
28
38
|
*/
|
29
39
|
showCloseButton?: boolean;
|
40
|
+
|
41
|
+
/**
|
42
|
+
* 关闭按钮CSS类名
|
43
|
+
*/
|
44
|
+
closeButtonClassName?: string;
|
45
|
+
|
46
|
+
/**
|
47
|
+
* 是否显示ICON
|
48
|
+
*/
|
49
|
+
showIcon?: boolean;
|
50
|
+
|
51
|
+
/**
|
52
|
+
* 左侧图标
|
53
|
+
*/
|
54
|
+
icon?: SchemaIcon;
|
55
|
+
|
56
|
+
/**
|
57
|
+
* 图标CSS类名
|
58
|
+
*/
|
59
|
+
iconClassName?: string;
|
30
60
|
}
|
31
61
|
|
32
62
|
@Renderer({
|
@@ -65,6 +65,8 @@ export interface AnchorNavSchema extends BaseSchema {
|
|
65
65
|
* 楼层样式名
|
66
66
|
*/
|
67
67
|
sectionClassName?: SchemaClassName;
|
68
|
+
|
69
|
+
direction?: 'vertical' | 'horizontal';
|
68
70
|
}
|
69
71
|
|
70
72
|
export interface AnchorNavProps
|
@@ -148,6 +150,7 @@ export default class AnchorNav extends React.Component<
|
|
148
150
|
className,
|
149
151
|
linkClassName,
|
150
152
|
sectionClassName,
|
153
|
+
direction,
|
151
154
|
sectionRender,
|
152
155
|
render,
|
153
156
|
data
|
@@ -187,6 +190,7 @@ export default class AnchorNav extends React.Component<
|
|
187
190
|
sectionClassName={sectionClassName}
|
188
191
|
onSelect={this.handleSelect}
|
189
192
|
active={this.state.active}
|
193
|
+
direction={direction}
|
190
194
|
>
|
191
195
|
{children}
|
192
196
|
</CAnchorNav>
|
package/src/renderers/Avatar.tsx
CHANGED
@@ -10,7 +10,11 @@ import {
|
|
10
10
|
SchemaUrlPath
|
11
11
|
} from '../Schema';
|
12
12
|
import {BadgeSchema, withBadge} from '../components/Badge';
|
13
|
-
import {
|
13
|
+
import {
|
14
|
+
isPureVariable,
|
15
|
+
resolveVariable,
|
16
|
+
resolveVariableAndFilter
|
17
|
+
} from '../utils/tpl-builtin';
|
14
18
|
|
15
19
|
/**
|
16
20
|
* Avatar 用户头像显示
|
@@ -102,15 +106,15 @@ export class AvatarField extends React.Component<AvatarProps, object> {
|
|
102
106
|
};
|
103
107
|
|
104
108
|
if (isPureVariable(text)) {
|
105
|
-
text =
|
109
|
+
text = resolveVariableAndFilter(text, data);
|
106
110
|
}
|
107
111
|
|
108
112
|
if (isPureVariable(src)) {
|
109
|
-
src =
|
113
|
+
src = resolveVariableAndFilter(src, data, '| raw');
|
110
114
|
}
|
111
115
|
|
112
116
|
if (isPureVariable(icon)) {
|
113
|
-
icon =
|
117
|
+
icon = resolveVariableAndFilter(icon, data);
|
114
118
|
}
|
115
119
|
|
116
120
|
let avatar = <i className={icon} />;
|
@@ -77,7 +77,11 @@ export class BreadcrumbField extends React.Component<BreadcrumbProps, object> {
|
|
77
77
|
|
78
78
|
const crumbItems = items
|
79
79
|
? items
|
80
|
-
: (
|
80
|
+
: (resolveVariableAndFilter(
|
81
|
+
source,
|
82
|
+
data,
|
83
|
+
'| raw'
|
84
|
+
) as Array<BreadcrumbItemSchema>);
|
81
85
|
|
82
86
|
const crumbs = crumbItems
|
83
87
|
.map<React.ReactNode>((item, index) => (
|
package/src/renderers/CRUD.tsx
CHANGED
@@ -287,6 +287,11 @@ export interface CRUDCommonSchema extends BaseSchema {
|
|
287
287
|
* 开启查询区域,会根据列元素的searchable属性值,自动生成查询条件表单
|
288
288
|
*/
|
289
289
|
autoGenerateFilter?: boolean;
|
290
|
+
|
291
|
+
/**
|
292
|
+
* 内容区域占满屏幕剩余空间
|
293
|
+
*/
|
294
|
+
autoFillHeight?: boolean;
|
290
295
|
}
|
291
296
|
|
292
297
|
export type CRUDCardsSchema = CRUDCommonSchema & {
|
@@ -366,7 +371,8 @@ export default class CRUD extends React.Component<CRUDProps, any> {
|
|
366
371
|
'onInit',
|
367
372
|
'onSaved',
|
368
373
|
'onQuery',
|
369
|
-
'formStore'
|
374
|
+
'formStore',
|
375
|
+
'autoFillHeight'
|
370
376
|
];
|
371
377
|
static defaultProps = {
|
372
378
|
toolbarInline: true,
|
@@ -382,7 +388,8 @@ export default class CRUD extends React.Component<CRUDProps, any> {
|
|
382
388
|
filterTogglable: false,
|
383
389
|
filterDefaultVisible: true,
|
384
390
|
loadDataOnce: false,
|
385
|
-
loadDataOnceFetchOnFilter: true
|
391
|
+
loadDataOnceFetchOnFilter: true,
|
392
|
+
autoFillHeight: false
|
386
393
|
};
|
387
394
|
|
388
395
|
control: any;
|
@@ -1795,7 +1802,7 @@ export default class CRUD extends React.Component<CRUDProps, any> {
|
|
1795
1802
|
return null;
|
1796
1803
|
}
|
1797
1804
|
|
1798
|
-
const {render, store} = this.props;
|
1805
|
+
const {render, store, translate: __} = this.props;
|
1799
1806
|
const type = (toolbar as Schema).type || toolbar;
|
1800
1807
|
|
1801
1808
|
if (type === 'bulkActions' || type === 'bulk-actions') {
|
@@ -1812,6 +1819,22 @@ export default class CRUD extends React.Component<CRUDProps, any> {
|
|
1812
1819
|
return this.renderFilterToggler();
|
1813
1820
|
} else if (type === 'export-csv') {
|
1814
1821
|
return this.renderExportCSV(toolbar as Schema);
|
1822
|
+
} else if (type === 'reload') {
|
1823
|
+
let reloadButton = {
|
1824
|
+
label: '',
|
1825
|
+
icon: 'fa fa-sync',
|
1826
|
+
tooltip: __('reload'),
|
1827
|
+
tooltipPlacement: 'top',
|
1828
|
+
type: 'button'
|
1829
|
+
};
|
1830
|
+
if (typeof toolbar === 'object') {
|
1831
|
+
reloadButton = {...reloadButton, ...omit(toolbar, ['type', 'align'])};
|
1832
|
+
}
|
1833
|
+
return render(`toolbar/${index}`, reloadButton, {
|
1834
|
+
onAction: () => {
|
1835
|
+
this.reload();
|
1836
|
+
}
|
1837
|
+
});
|
1815
1838
|
} else if (Array.isArray(toolbar)) {
|
1816
1839
|
const children: Array<any> = toolbar
|
1817
1840
|
.filter((toolbar: any) => isVisible(toolbar, store.filterData))
|
@@ -2000,6 +2023,7 @@ export default class CRUD extends React.Component<CRUDProps, any> {
|
|
2000
2023
|
onQuery,
|
2001
2024
|
autoGenerateFilter,
|
2002
2025
|
onSelect,
|
2026
|
+
autoFillHeight,
|
2003
2027
|
...rest
|
2004
2028
|
} = this.props;
|
2005
2029
|
|
@@ -2026,6 +2050,7 @@ export default class CRUD extends React.Component<CRUDProps, any> {
|
|
2026
2050
|
'Crud-filter',
|
2027
2051
|
filter.panelClassName || 'Panel--default'
|
2028
2052
|
),
|
2053
|
+
api: undefined,
|
2029
2054
|
data: store.filterData,
|
2030
2055
|
onReset: this.handleFilterReset,
|
2031
2056
|
onSubmit: this.handleFilterSubmit,
|
@@ -2051,6 +2076,7 @@ export default class CRUD extends React.Component<CRUDProps, any> {
|
|
2051
2076
|
className: cx('Crud-body', bodyClassName),
|
2052
2077
|
ref: this.controlRef,
|
2053
2078
|
autoGenerateFilter: !filter && autoGenerateFilter,
|
2079
|
+
autoFillHeight: autoFillHeight,
|
2054
2080
|
selectable: !!(
|
2055
2081
|
(this.hasBulkActionsToolbar() && this.hasBulkActions()) ||
|
2056
2082
|
pickerMode
|
package/src/renderers/Card.tsx
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import {findDOMNode} from 'react-dom';
|
3
3
|
import {Renderer, RendererProps} from '../factory';
|
4
|
-
import {SchemaNode, Schema, Action} from '../types';
|
4
|
+
import {SchemaNode, Schema, Action, PlainObject} from '../types';
|
5
5
|
import {filter, evalExpression} from '../utils/tpl';
|
6
6
|
import cx from 'classnames';
|
7
7
|
import Checkbox from '../components/Checkbox';
|
@@ -11,7 +11,8 @@ import {
|
|
11
11
|
isVisible,
|
12
12
|
isDisabled,
|
13
13
|
noop,
|
14
|
-
isClickOnInput
|
14
|
+
isClickOnInput,
|
15
|
+
hashCode
|
15
16
|
} from '../utils/helper';
|
16
17
|
import {resolveVariable} from '../utils/tpl-builtin';
|
17
18
|
import QuickEdit, {SchemaQuickEdit} from './QuickEdit';
|
@@ -128,6 +129,7 @@ export interface CardSchema extends BaseSchema {
|
|
128
129
|
avatar?: SchemaUrlPath;
|
129
130
|
|
130
131
|
avatarText?: SchemaTpl;
|
132
|
+
avatarTextBackground?: String[];
|
131
133
|
avatarTextClassName?: SchemaClassName;
|
132
134
|
|
133
135
|
/**
|
@@ -166,6 +168,11 @@ export interface CardSchema extends BaseSchema {
|
|
166
168
|
* 底部按钮集合。
|
167
169
|
*/
|
168
170
|
actions?: Array<ActionSchema>;
|
171
|
+
|
172
|
+
/**
|
173
|
+
* 工具栏按钮
|
174
|
+
*/
|
175
|
+
toolbar?: Array<ActionSchema>;
|
169
176
|
}
|
170
177
|
|
171
178
|
export interface CardProps
|
@@ -273,30 +280,47 @@ export class Card extends React.Component<CardProps> {
|
|
273
280
|
multiple,
|
274
281
|
hideCheckToggler,
|
275
282
|
classnames: cx,
|
276
|
-
classPrefix: ns
|
283
|
+
classPrefix: ns,
|
284
|
+
toolbar,
|
285
|
+
render
|
277
286
|
} = this.props;
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
287
|
+
const toolbars: Array<JSX.Element> = [];
|
288
|
+
|
289
|
+
if (selectable && !hideCheckToggler) {
|
290
|
+
toolbars.push(
|
291
|
+
<Checkbox
|
292
|
+
key="check"
|
293
|
+
className={cx('Card-checkbox')}
|
294
|
+
type={multiple ? 'checkbox' : 'radio'}
|
295
|
+
disabled={!checkable}
|
296
|
+
checked={selected}
|
297
|
+
onChange={checkOnItemClick ? noop : this.handleCheck}
|
298
|
+
/>
|
284
299
|
);
|
285
|
-
}
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
300
|
+
}
|
301
|
+
|
302
|
+
if (Array.isArray(toolbar)) {
|
303
|
+
toolbar.forEach((action, index) =>
|
304
|
+
toolbars.push(
|
305
|
+
render(
|
306
|
+
`toolbar/${index}`,
|
307
|
+
{
|
308
|
+
type: 'button',
|
309
|
+
level: 'link',
|
310
|
+
size: 'sm',
|
311
|
+
...(action as any)
|
312
|
+
},
|
313
|
+
{
|
314
|
+
key: index
|
315
|
+
}
|
316
|
+
)
|
317
|
+
)
|
296
318
|
);
|
297
319
|
}
|
298
320
|
|
299
|
-
return
|
321
|
+
return toolbars.length ? (
|
322
|
+
<div className={cx('Card-toolbar')}>{toolbars}</div>
|
323
|
+
) : null;
|
300
324
|
}
|
301
325
|
|
302
326
|
renderActions() {
|
@@ -451,45 +475,55 @@ export class Card extends React.Component<CardProps> {
|
|
451
475
|
imageClassName,
|
452
476
|
avatarTextClassName,
|
453
477
|
href,
|
454
|
-
itemAction
|
478
|
+
itemAction,
|
479
|
+
dragging
|
455
480
|
} = this.props;
|
456
481
|
|
482
|
+
const toolbar = this.renderToolbar();
|
457
483
|
let heading = null;
|
458
484
|
|
459
|
-
if (header) {
|
485
|
+
if (header || toolbar) {
|
460
486
|
const {
|
461
487
|
highlight: highlightTpl,
|
462
488
|
avatar: avatarTpl,
|
463
489
|
avatarText: avatarTextTpl,
|
490
|
+
avatarTextBackground,
|
464
491
|
title: titleTpl,
|
465
492
|
subTitle: subTitleTpl,
|
466
493
|
subTitlePlaceholder,
|
467
494
|
desc: descTpl
|
468
|
-
} = header;
|
495
|
+
} = header || {};
|
469
496
|
|
470
497
|
const descPlaceholder =
|
471
|
-
header
|
498
|
+
header?.descriptionPlaceholder || header?.descPlaceholder;
|
472
499
|
|
473
500
|
const highlight = !!evalExpression(highlightTpl!, data as object);
|
474
501
|
const avatar = filter(avatarTpl, data, '| raw');
|
475
502
|
const avatarText = filter(avatarTextTpl, data);
|
476
503
|
const title = filter(titleTpl, data);
|
477
504
|
const subTitle = filter(subTitleTpl, data);
|
478
|
-
const desc = filter(header
|
505
|
+
const desc = filter(header?.description || descTpl, data);
|
506
|
+
const avatarTextStyle: PlainObject = {};
|
507
|
+
if (avatarText && avatarTextBackground && avatarTextBackground.length) {
|
508
|
+
avatarTextStyle['background'] =
|
509
|
+
avatarTextBackground[
|
510
|
+
Math.abs(hashCode(avatarText)) % avatarTextBackground.length
|
511
|
+
];
|
512
|
+
}
|
479
513
|
|
480
514
|
heading = (
|
481
|
-
<div className={cx('Card-heading', header
|
515
|
+
<div className={cx('Card-heading', header?.className)}>
|
482
516
|
{avatar ? (
|
483
517
|
<span
|
484
518
|
className={cx(
|
485
519
|
'Card-avtar',
|
486
|
-
header
|
520
|
+
header?.avatarClassName || avatarClassName
|
487
521
|
)}
|
488
522
|
>
|
489
523
|
<img
|
490
524
|
className={cx(
|
491
525
|
'Card-img',
|
492
|
-
header
|
526
|
+
header?.imageClassName || imageClassName
|
493
527
|
)}
|
494
528
|
src={avatar}
|
495
529
|
/>
|
@@ -498,8 +532,9 @@ export class Card extends React.Component<CardProps> {
|
|
498
532
|
<span
|
499
533
|
className={cx(
|
500
534
|
'Card-avtarText',
|
501
|
-
header
|
535
|
+
header?.avatarTextClassName || avatarTextClassName
|
502
536
|
)}
|
537
|
+
style={avatarTextStyle}
|
503
538
|
>
|
504
539
|
{avatarText}
|
505
540
|
</span>
|
@@ -509,7 +544,7 @@ export class Card extends React.Component<CardProps> {
|
|
509
544
|
<i
|
510
545
|
className={cx(
|
511
546
|
'Card-highlight',
|
512
|
-
header
|
547
|
+
header?.highlightClassName || highlightClassName
|
513
548
|
)}
|
514
549
|
/>
|
515
550
|
) : null}
|
@@ -518,7 +553,7 @@ export class Card extends React.Component<CardProps> {
|
|
518
553
|
<div
|
519
554
|
className={cx(
|
520
555
|
'Card-title',
|
521
|
-
header
|
556
|
+
header?.titleClassName || titleClassName
|
522
557
|
)}
|
523
558
|
>
|
524
559
|
{render('title', title)}
|
@@ -529,7 +564,7 @@ export class Card extends React.Component<CardProps> {
|
|
529
564
|
<div
|
530
565
|
className={cx(
|
531
566
|
'Card-subTitle',
|
532
|
-
header
|
567
|
+
header?.subTitleClassName || subTitleClassName
|
533
568
|
)}
|
534
569
|
>
|
535
570
|
{render('sub-title', subTitle || subTitlePlaceholder!, {
|
@@ -542,8 +577,8 @@ export class Card extends React.Component<CardProps> {
|
|
542
577
|
<div
|
543
578
|
className={cx(
|
544
579
|
'Card-desc',
|
545
|
-
header
|
546
|
-
header
|
580
|
+
header?.descriptionClassName ||
|
581
|
+
header?.descClassName ||
|
547
582
|
descClassName
|
548
583
|
)}
|
549
584
|
>
|
@@ -553,6 +588,7 @@ export class Card extends React.Component<CardProps> {
|
|
553
588
|
</div>
|
554
589
|
) : null}
|
555
590
|
</div>
|
591
|
+
{toolbar}
|
556
592
|
</div>
|
557
593
|
);
|
558
594
|
}
|
@@ -570,7 +606,11 @@ export class Card extends React.Component<CardProps> {
|
|
570
606
|
'Card--link': href || itemAction
|
571
607
|
})}
|
572
608
|
>
|
573
|
-
{
|
609
|
+
{dragging ? (
|
610
|
+
<div className={cx('Card-dragBtn')}>
|
611
|
+
<Icon icon="drag-bar" className="icon" />
|
612
|
+
</div>
|
613
|
+
) : null}
|
574
614
|
{heading}
|
575
615
|
{body ? (
|
576
616
|
<div className={cx('Card-body', bodyClassName)}>{body}</div>
|