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
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/AnchorNav.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";AAAA;;;;GAIG;;;;AAEH,6DAA0B;AAE1B,kCAA+C;AAE/C,0CAAyC;AACzC,iDAA8C;AAC9C,kEAA+B;AAS/B;IAAwC,0DAA0C;IAAlF;QAAA,qEAaC;QAXC,gBAAU,GAAG,UAAC,GAAQ,IAAK,OAAA,CAAC,KAAI,CAAC,UAAU,GAAG,GAAG,CAAC,EAAvB,CAAuB,CAAC;;IAWrD,CAAC;IATC,0CAAM,GAAN;QACQ,IAAA,KAAwC,IAAI,CAAC,KAAK,EAArC,EAAE,gBAAA,EAAE,QAAQ,cAAA,EAAE,SAAS,eAAc,CAAC;QAEzD,OAAO,CACL,uCAAK,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,IACrE,QAAQ,CACL,CACP,CAAC;IACJ,CAAC;IACH,gCAAC;AAAD,CAAC,AAbD,CAAwC,eAAK,CAAC,aAAa,GAa1D;AAEY,QAAA,gBAAgB,GAAG,IAAA,iBAAS,EAAC,yBAAyB,CAAC,CAAC;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file AnchorNav\n * @description 锚点导航\n * @author hsm-lv\n */\n\nimport React from 'react';\nimport {Schema} from '../types';\nimport {ThemeProps, themeable} from '../theme';\nimport {PlainObject} from '../types';\nimport {autobind} from '../utils/helper';\nimport {uncontrollable} from 'uncontrollable';\nimport find from 'lodash/find';\n\nexport interface AnchorNavSectionProps extends ThemeProps {\n title?: string; // 标题\n name: string | number; // 标识\n body?: Schema; // Schema\n className?: string; // 样式名\n}\n\nclass AnchorNavSectionComponent extends React.PureComponent<AnchorNavSectionProps> {\n contentDom: any;\n contentRef = (ref: any) => (this.contentDom = ref);\n\n render() {\n const {classnames: cx, children, className} = this.props;\n\n return (\n <div ref={this.contentRef} className={cx('AnchorNav-section', className)}>\n {children}\n </div>\n );\n }\n}\n\nexport const AnchorNavSection = themeable(AnchorNavSectionComponent);\n\nexport interface AnchorNavProps extends ThemeProps {\n links?: Array<AnchorNavSectionProps>; // 锚点数据\n active?: string | number; // 激活标识\n linkClassName?: string; // 导航 CSS类名\n sectionClassName?: string; // 区域 CSS类名\n sectionRender?: (\n section: AnchorNavSectionProps,\n props?: AnchorNavProps\n ) => JSX.Element; // 锚点区域渲染器\n onSelect?: (key: string | number) => void; // 选中回调方法\n}\n\nexport interface AnchorNavState {\n offsetArr: PlainObject[]; // 记录每个段落的offsetTop\n fromSelect: boolean; // 标识滚动触发来源\n}\n\nexport class AnchorNav extends React.Component<AnchorNavProps, AnchorNavState> {\n static defaultProps: Pick<\n AnchorNavProps,\n 'linkClassName' | 'sectionClassName'\n > = {\n linkClassName: '',\n sectionClassName: ''\n };\n\n // 滚动区域DOM\n contentDom: React.RefObject<HTMLDivElement> = React.createRef();\n\n componentDidMount() {\n // 初始化\b滚动标识\n this.setState({fromSelect: false});\n\n // add scroll event\n const sectionRootDom =\n this.contentDom && (this.contentDom.current as HTMLElement);\n sectionRootDom.addEventListener('scroll', this.scrollToNav);\n let offsetArr: Array<object> = [];\n const {children, active} = this.props;\n\n // 收集段落区域offsetTop\n children &&\n React.Children.forEach(\n children,\n (section: AnchorNavSectionComponent, index: number) => {\n offsetArr.push({\n key: section.props.name,\n offsetTop: (sectionRootDom.children[index] as HTMLElement).offsetTop\n });\n }\n );\n\n this.setState(\n {\n offsetArr\n },\n () => active && this.scrollToSection(active)\n );\n }\n\n @autobind\n scrollToNav(e: Event) {\n if (this.state.fromSelect) {\n return;\n }\n\n // 获取滚动的scrollTop\n const scrollTop: number = (e.target as HTMLElement).scrollTop;\n\n // 判断scrollTop所在区域\n const offsetArr = this.state.offsetArr;\n const firstSection = offsetArr[0];\n const lastSection = offsetArr[offsetArr.length - 1];\n // 首层偏移\n const offset = scrollTop + firstSection.offsetTop;\n\n // 首层\n if (offset <= firstSection.offsetTop) {\n this.fireSelect(firstSection.key);\n }\n // 最后一层\n else if (offset >= lastSection.offsetTop) {\n this.fireSelect(lastSection.key);\n } else {\n // 段落区间判断\n offsetArr.forEach((item, index) => {\n if (\n offset >= item.offsetTop &&\n offset < offsetArr[index + 1].offsetTop\n ) {\n this.fireSelect(item.key);\n }\n });\n }\n }\n\n scrollToSection(key: string | number) {\n // 获取指定段落的offsettop\n const offsetArr = this.state.offsetArr;\n const section = find(offsetArr, item => item.key === key);\n const sectionRootDom =\n this.contentDom && (this.contentDom.current as HTMLElement);\n\n // 滚动到指定段落\n section &&\n (sectionRootDom.scrollTop = section.offsetTop - offsetArr[0].offsetTop);\n }\n\n handleSelect(key: string | number) {\n // 标记滚动来自导航选择\n this.setState({fromSelect: true});\n // 滚动到对应段落\n this.scrollToSection(key);\n\n const sectionRootDom =\n this.contentDom && (this.contentDom.current as HTMLElement);\n\n // 如果已经滚到底就不去更新导航选中了\n if (\n sectionRootDom.scrollHeight - sectionRootDom.scrollTop <\n sectionRootDom.clientHeight\n ) {\n // fire event\n this.fireSelect(key);\n }\n\n // 取消标记\n this.setState({fromSelect: false});\n }\n\n fireSelect(key: string | number) {\n const {onSelect} = this.props;\n onSelect && onSelect(key);\n }\n\n renderLink(link: any, index: number) {\n if (!link) {\n return;\n }\n\n const {classnames: cx, active: activeProp} = this.props;\n const {title, name} = link.props;\n const active = activeProp === undefined && index === 0 ? name : activeProp;\n\n return (\n <li\n className={cx('AnchorNav-link', active === name ? 'is-active' : '')}\n key={index}\n onClick={() => this.handleSelect(name)}\n >\n <a>{title}</a>\n </li>\n );\n }\n\n renderSection(section: any, index: number) {\n if (!section) {\n return;\n }\n\n const {active: activeProp, classnames} = this.props;\n const name = section.props.name;\n const active = activeProp === undefined && index === 0 ? name : activeProp;\n\n return React.cloneElement(section, {\n ...section.props,\n key: index,\n classnames,\n active\n });\n }\n\n render() {\n const {\n classnames: cx,\n className,\n linkClassName,\n sectionClassName,\n children\n } = this.props;\n\n if (!Array.isArray(children)) {\n return null;\n }\n\n return (\n <div
|
11
|
+
"/**\n * @file AnchorNav\n * @description 锚点导航\n * @author hsm-lv\n */\n\nimport React from 'react';\nimport {Schema} from '../types';\nimport {ThemeProps, themeable} from '../theme';\nimport {PlainObject} from '../types';\nimport {autobind} from '../utils/helper';\nimport {uncontrollable} from 'uncontrollable';\nimport find from 'lodash/find';\n\nexport interface AnchorNavSectionProps extends ThemeProps {\n title?: string; // 标题\n name: string | number; // 标识\n body?: Schema; // Schema\n className?: string; // 样式名\n}\n\nclass AnchorNavSectionComponent extends React.PureComponent<AnchorNavSectionProps> {\n contentDom: any;\n contentRef = (ref: any) => (this.contentDom = ref);\n\n render() {\n const {classnames: cx, children, className} = this.props;\n\n return (\n <div ref={this.contentRef} className={cx('AnchorNav-section', className)}>\n {children}\n </div>\n );\n }\n}\n\nexport const AnchorNavSection = themeable(AnchorNavSectionComponent);\n\nexport interface AnchorNavProps extends ThemeProps {\n links?: Array<AnchorNavSectionProps>; // 锚点数据\n active?: string | number; // 激活标识\n linkClassName?: string; // 导航 CSS类名\n sectionClassName?: string; // 区域 CSS类名\n sectionRender?: (\n section: AnchorNavSectionProps,\n props?: AnchorNavProps\n ) => JSX.Element; // 锚点区域渲染器\n onSelect?: (key: string | number) => void; // 选中回调方法\n direction?: 'vertical' | 'horizontal'; // 导航方向\n}\n\nexport interface AnchorNavState {\n offsetArr: PlainObject[]; // 记录每个段落的offsetTop\n fromSelect: boolean; // 标识滚动触发来源\n}\n\nexport class AnchorNav extends React.Component<AnchorNavProps, AnchorNavState> {\n static defaultProps: Pick<\n AnchorNavProps,\n 'linkClassName' | 'sectionClassName' | 'direction'\n > = {\n linkClassName: '',\n sectionClassName: '',\n direction: 'vertical'\n };\n\n // 滚动区域DOM\n contentDom: React.RefObject<HTMLDivElement> = React.createRef();\n\n componentDidMount() {\n // 初始化\b滚动标识\n this.setState({fromSelect: false});\n\n // add scroll event\n const sectionRootDom =\n this.contentDom && (this.contentDom.current as HTMLElement);\n sectionRootDom.addEventListener('scroll', this.scrollToNav);\n let offsetArr: Array<object> = [];\n const {children, active} = this.props;\n\n // 收集段落区域offsetTop\n children &&\n React.Children.forEach(\n children,\n (section: AnchorNavSectionComponent, index: number) => {\n offsetArr.push({\n key: section.props.name,\n offsetTop: (sectionRootDom.children[index] as HTMLElement).offsetTop\n });\n }\n );\n\n this.setState(\n {\n offsetArr\n },\n () => active && this.scrollToSection(active)\n );\n }\n\n @autobind\n scrollToNav(e: Event) {\n if (this.state.fromSelect) {\n return;\n }\n\n // 获取滚动的scrollTop\n const scrollTop: number = (e.target as HTMLElement).scrollTop;\n\n // 判断scrollTop所在区域\n const offsetArr = this.state.offsetArr;\n const firstSection = offsetArr[0];\n const lastSection = offsetArr[offsetArr.length - 1];\n // 首层偏移\n const offset = scrollTop + firstSection.offsetTop;\n\n // 首层\n if (offset <= firstSection.offsetTop) {\n this.fireSelect(firstSection.key);\n }\n // 最后一层\n else if (offset >= lastSection.offsetTop) {\n this.fireSelect(lastSection.key);\n } else {\n // 段落区间判断\n offsetArr.forEach((item, index) => {\n if (\n offset >= item.offsetTop &&\n offset < offsetArr[index + 1].offsetTop\n ) {\n this.fireSelect(item.key);\n }\n });\n }\n }\n\n scrollToSection(key: string | number) {\n // 获取指定段落的offsettop\n const offsetArr = this.state.offsetArr;\n const section = find(offsetArr, item => item.key === key);\n const sectionRootDom =\n this.contentDom && (this.contentDom.current as HTMLElement);\n\n // 滚动到指定段落\n section &&\n (sectionRootDom.scrollTop = section.offsetTop - offsetArr[0].offsetTop);\n }\n\n handleSelect(key: string | number) {\n // 标记滚动来自导航选择\n this.setState({fromSelect: true});\n // 滚动到对应段落\n this.scrollToSection(key);\n\n const sectionRootDom =\n this.contentDom && (this.contentDom.current as HTMLElement);\n\n // 如果已经滚到底就不去更新导航选中了\n if (\n sectionRootDom.scrollHeight - sectionRootDom.scrollTop <\n sectionRootDom.clientHeight\n ) {\n // fire event\n this.fireSelect(key);\n }\n\n // 取消标记\n this.setState({fromSelect: false});\n }\n\n fireSelect(key: string | number) {\n const {onSelect} = this.props;\n onSelect && onSelect(key);\n }\n\n renderLink(link: any, index: number) {\n if (!link) {\n return;\n }\n\n const {classnames: cx, active: activeProp} = this.props;\n const {title, name} = link.props;\n const active = activeProp === undefined && index === 0 ? name : activeProp;\n\n return (\n <li\n className={cx('AnchorNav-link', active === name ? 'is-active' : '')}\n key={index}\n onClick={() => this.handleSelect(name)}\n >\n <a>{title}</a>\n </li>\n );\n }\n\n renderSection(section: any, index: number) {\n if (!section) {\n return;\n }\n\n const {active: activeProp, classnames} = this.props;\n const name = section.props.name;\n const active = activeProp === undefined && index === 0 ? name : activeProp;\n\n return React.cloneElement(section, {\n ...section.props,\n key: index,\n classnames,\n active\n });\n }\n\n render() {\n const {\n classnames: cx,\n className,\n linkClassName,\n sectionClassName,\n children,\n direction\n } = this.props;\n\n if (!Array.isArray(children)) {\n return null;\n }\n\n return (\n <div\n className={cx(\n 'AnchorNav',\n {\n [`AnchorNav--${direction}`]: direction\n },\n className\n )}\n >\n <ul\n className={cx('AnchorNav-link-wrap', linkClassName)}\n role=\"anchorlist\"\n >\n {children.map((link, index) => this.renderLink(link, index))}\n </ul>\n\n <div\n className={cx('AnchorNav-section-wrap', sectionClassName)}\n ref={this.contentDom}\n >\n {children.map((section, index) => {\n return this.renderSection(section, index);\n })}\n </div>\n </div>\n );\n }\n}\n\nconst ThemedAnchorNav = themeable(\n uncontrollable(AnchorNav, {\n active: 'onSelect'\n })\n);\n\nexport default ThemedAnchorNav as typeof ThemedAnchorNav & {\n AnchorNavSection: typeof AnchorNavSection;\n};\n"
|
12
12
|
]
|
13
13
|
}
|