amis 1.7.0 → 1.8.0-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Schema.d.ts +10 -2
- package/lib/Schema.js +0 -1
- package/lib/Schema.js.map +2 -2
- package/lib/SchemaRenderer.js +19 -3
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/WithRootStore.d.ts +18 -0
- package/lib/WithStore.js +2 -1
- package/lib/WithStore.js.map +2 -2
- package/lib/actions/CmptAction.js +26 -4
- package/lib/actions/CmptAction.js.map +2 -2
- package/lib/actions/PageAction.d.ts +32 -0
- package/lib/actions/PageAction.js +72 -0
- package/lib/actions/PageAction.js.map +13 -0
- package/lib/actions/index.d.ts +1 -0
- package/lib/actions/index.js +1 -0
- package/lib/actions/index.js.map +2 -2
- package/lib/components/Alert2.js +4 -2
- package/lib/components/Alert2.js.map +2 -2
- package/lib/components/AssociatedSelection.js +9 -2
- package/lib/components/AssociatedSelection.js.map +2 -2
- package/lib/components/Avatar.d.ts +20 -20
- package/lib/components/BarCode.js +1 -1
- package/lib/components/BarCode.js.map +2 -2
- package/lib/components/CalendarMobile.d.ts +84 -84
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/Cascader.d.ts +2 -0
- package/lib/components/Cascader.js +28 -12
- package/lib/components/Cascader.js.map +2 -2
- package/lib/components/Checkbox.d.ts +24 -23
- package/lib/components/Checkbox.js +5 -1
- package/lib/components/Checkbox.js.map +2 -2
- package/lib/components/CityArea.js +3 -0
- package/lib/components/CityArea.js.map +2 -2
- package/lib/components/Collapse.d.ts +20 -20
- package/lib/components/DatePicker.d.ts +87 -84
- package/lib/components/DatePicker.js +48 -11
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +285 -171
- package/lib/components/DateRangePicker.js +471 -66
- 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/ListGroup.d.ts +21 -21
- package/lib/components/Modal.js +1 -1
- package/lib/components/Modal.js.map +2 -2
- package/lib/components/MonthRangePicker.d.ts +84 -84
- package/lib/components/Overlay.d.ts +1 -0
- package/lib/components/Overlay.js +4 -3
- package/lib/components/Overlay.js.map +2 -2
- package/lib/components/Progress.d.ts +29 -24
- package/lib/components/Progress.js +52 -21
- package/lib/components/Progress.js.map +2 -2
- package/lib/components/PullRefresh.d.ts +86 -0
- package/lib/components/PullRefresh.js +135 -0
- package/lib/components/PullRefresh.js.map +13 -0
- package/lib/components/Radios.d.ts +22 -22
- package/lib/components/Radios.js +3 -5
- package/lib/components/Radios.js.map +2 -2
- package/lib/components/Range.d.ts +2 -2
- package/lib/components/Range.js +24 -11
- package/lib/components/Range.js.map +2 -2
- package/lib/components/Spinner.d.ts +200 -107
- package/lib/components/Spinner.js +30 -26
- package/lib/components/Spinner.js.map +2 -2
- package/lib/components/Steps.d.ts +6 -0
- package/lib/components/Steps.js +13 -9
- package/lib/components/Steps.js.map +2 -2
- package/lib/components/Tabs.d.ts +27 -23
- package/lib/components/Tabs.js +37 -22
- package/lib/components/Tabs.js.map +2 -2
- package/lib/components/Tooltip.d.ts +4 -0
- package/lib/components/Tooltip.js +6 -4
- package/lib/components/Tooltip.js.map +2 -2
- package/lib/components/TooltipWrapper.d.ts +87 -24
- package/lib/components/TooltipWrapper.js +40 -8
- package/lib/components/TooltipWrapper.js.map +2 -2
- package/lib/components/Transfer.d.ts +84 -84
- package/lib/components/TransferDropDown.d.ts +84 -84
- package/lib/components/Tree.d.ts +87 -85
- package/lib/components/Tree.js +13 -5
- package/lib/components/Tree.js.map +2 -2
- package/lib/components/TreeSelection.d.ts +84 -84
- package/lib/components/calendar/Calendar.js +3 -12
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/calendar/TimeView.d.ts +1 -0
- package/lib/components/calendar/TimeView.js +7 -0
- package/lib/components/calendar/TimeView.js.map +2 -2
- package/lib/components/calendar/YearsView.js +3 -3
- package/lib/components/calendar/YearsView.js.map +2 -2
- package/lib/components/condition-builder/Expression.d.ts +1 -0
- package/lib/components/condition-builder/Expression.js +4 -4
- package/lib/components/condition-builder/Expression.js.map +2 -2
- package/lib/components/condition-builder/Field.d.ts +1 -0
- package/lib/components/condition-builder/Field.js +3 -2
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Group.d.ts +1 -0
- package/lib/components/condition-builder/Group.js +2 -2
- package/lib/components/condition-builder/Group.js.map +2 -2
- package/lib/components/condition-builder/GroupOrItem.d.ts +1 -0
- package/lib/components/condition-builder/GroupOrItem.js +2 -2
- package/lib/components/condition-builder/GroupOrItem.js.map +2 -2
- package/lib/components/condition-builder/InputSwitch.d.ts +2 -1
- 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.d.ts +1 -0
- package/lib/components/condition-builder/Item.js +9 -8
- package/lib/components/condition-builder/Item.js.map +2 -2
- package/lib/components/condition-builder/Value.d.ts +1 -0
- package/lib/components/condition-builder/Value.js +5 -5
- package/lib/components/condition-builder/Value.js.map +2 -2
- package/lib/components/condition-builder/index.d.ts +1 -0
- package/lib/components/condition-builder/index.js +2 -2
- package/lib/components/condition-builder/index.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +90 -86
- package/lib/components/formula/Editor.js +26 -4
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/Picker.d.ts +5 -0
- package/lib/components/formula/Picker.js +21 -4
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/factory.d.ts +5 -0
- package/lib/factory.js +24 -3
- package/lib/factory.js.map +2 -2
- package/lib/icons/trash.js +10 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +18 -1
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +18 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +18 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +3 -1
- package/lib/renderers/Action.js +23 -5
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/App.d.ts +1 -0
- package/lib/renderers/App.js +3 -0
- package/lib/renderers/App.js.map +2 -2
- package/lib/renderers/ButtonGroup.d.ts +2 -2
- package/lib/renderers/ButtonGroup.js.map +1 -1
- package/lib/renderers/CRUD.d.ts +8 -0
- package/lib/renderers/CRUD.js +12 -5
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Carousel.d.ts +1 -0
- package/lib/renderers/Carousel.js +13 -1
- package/lib/renderers/Carousel.js.map +2 -2
- package/lib/renderers/Chart.d.ts +1 -0
- package/lib/renderers/Chart.js +3 -0
- package/lib/renderers/Chart.js.map +2 -2
- package/lib/renderers/Dialog.d.ts +5 -0
- package/lib/renderers/Dialog.js +7 -3
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/Drawer.d.ts +1 -0
- package/lib/renderers/Drawer.js +6 -1
- package/lib/renderers/Drawer.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +2 -0
- package/lib/renderers/DropDownButton.js +13 -4
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Form/Checkbox.d.ts +5 -2
- package/lib/renderers/Form/Checkbox.js +2 -2
- package/lib/renderers/Form/Checkbox.js.map +2 -2
- package/lib/renderers/Form/Checkboxes.d.ts +7 -2
- package/lib/renderers/Form/Checkboxes.js +101 -12
- package/lib/renderers/Form/Checkboxes.js.map +2 -2
- package/lib/renderers/Form/Combo.d.ts +6 -4
- package/lib/renderers/Form/Combo.js +132 -45
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +3 -2
- package/lib/renderers/Form/Editor.d.ts +2 -2
- package/lib/renderers/Form/InputCity.d.ts +87 -84
- package/lib/renderers/Form/InputCity.js +48 -3
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +10 -3
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.d.ts +5 -0
- package/lib/renderers/Form/InputDateRange.js +12 -3
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputFile.js +19 -8
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +4 -0
- package/lib/renderers/Form/InputFormula.js +2 -2
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputImage.js +18 -7
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputMonthRange.js +5 -1
- package/lib/renderers/Form/InputMonthRange.js.map +2 -2
- package/lib/renderers/Form/InputRange.d.ts +2 -2
- package/lib/renderers/Form/InputRange.js +13 -14
- package/lib/renderers/Form/InputRange.js.map +2 -2
- package/lib/renderers/Form/InputTable.js +4 -2
- package/lib/renderers/Form/InputTable.js.map +2 -2
- package/lib/renderers/Form/InputText.d.ts +1 -1
- package/lib/renderers/Form/InputText.js +8 -10
- package/lib/renderers/Form/InputText.js.map +2 -2
- package/lib/renderers/Form/InputTree.d.ts +5 -0
- package/lib/renderers/Form/InputTree.js +51 -2
- package/lib/renderers/Form/InputTree.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +79 -76
- package/lib/renderers/Form/Item.js +3 -1
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/NestedSelect.d.ts +4 -0
- package/lib/renderers/Form/NestedSelect.js +14 -5
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/Options.js +61 -27
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Select.js +4 -2
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/Textarea.js +2 -1
- package/lib/renderers/Form/Textarea.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.d.ts +11 -2
- package/lib/renderers/Form/TreeSelect.js +56 -10
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.d.ts +3 -0
- package/lib/renderers/Form/index.js +53 -16
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Form/wrapControl.d.ts +10 -0
- package/lib/renderers/Form/wrapControl.js +41 -19
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Nav.d.ts +82 -67
- package/lib/renderers/Nav.js +49 -13
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Page.d.ts +21 -0
- package/lib/renderers/Page.js +56 -17
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Progress.d.ts +4 -7
- package/lib/renderers/Progress.js +3 -3
- package/lib/renderers/Progress.js.map +2 -2
- package/lib/renderers/Service.d.ts +3 -0
- package/lib/renderers/Service.js +55 -20
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/Spinner.d.ts +58 -2
- package/lib/renderers/Spinner.js +8 -1
- package/lib/renderers/Spinner.js.map +2 -2
- package/lib/renderers/Steps.d.ts +8 -0
- package/lib/renderers/Steps.js +2 -2
- package/lib/renderers/Steps.js.map +2 -2
- package/lib/renderers/Table/ColumnToggler.d.ts +4 -0
- package/lib/renderers/Table/ColumnToggler.js +11 -6
- package/lib/renderers/Table/ColumnToggler.js.map +2 -2
- package/lib/renderers/Table/TableCell.js +27 -1
- package/lib/renderers/Table/TableCell.js.map +2 -2
- package/lib/renderers/Table/TableRow.js +1 -1
- package/lib/renderers/Table/TableRow.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +2 -0
- package/lib/renderers/Table/index.js +23 -10
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Tabs.d.ts +14 -2
- package/lib/renderers/Tabs.js +24 -8
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/TooltipWrapper.d.ts +133 -0
- package/lib/renderers/TooltipWrapper.js +70 -0
- package/lib/renderers/TooltipWrapper.js.map +13 -0
- package/lib/renderers/Wizard.d.ts +7 -3
- package/lib/renderers/Wizard.js +269 -152
- package/lib/renderers/Wizard.js.map +2 -2
- package/lib/store/combo.d.ts +2 -2
- package/lib/store/crud.d.ts +1 -0
- package/lib/store/crud.js +55 -19
- package/lib/store/crud.js.map +2 -2
- package/lib/store/form.d.ts +1 -1
- package/lib/store/form.js +5 -1
- package/lib/store/form.js.map +2 -2
- package/lib/store/formItem.js +1 -1
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/index.d.ts +5 -0
- package/lib/store/index.js +14 -0
- package/lib/store/index.js.map +2 -2
- package/lib/store/table.d.ts +2 -2
- package/lib/store/table.js +4 -4
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +965 -210
- package/lib/themes/ang.css +955 -175
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +1080 -325
- package/lib/themes/antd.css +956 -176
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1048 -293
- package/lib/themes/cxd.css +961 -180
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +965 -210
- package/lib/themes/dark.css +955 -175
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +1048 -293
- package/lib/themes/default.css +961 -180
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +3 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/ColorScale.d.ts +19 -0
- package/lib/utils/ColorScale.js +104 -0
- package/lib/utils/ColorScale.js.map +13 -0
- package/lib/utils/api.js +20 -4
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/columnsSplit.d.ts +1 -0
- package/lib/utils/columnsSplit.js +40 -0
- package/lib/utils/columnsSplit.js.map +13 -0
- package/lib/utils/debug.d.ts +1 -1
- package/lib/utils/debug.js +16 -22
- package/lib/utils/debug.js.map +2 -2
- package/lib/utils/dom.d.ts +1 -1
- package/lib/utils/dom.js +7 -5
- package/lib/utils/dom.js.map +2 -2
- package/lib/utils/position.js +0 -1
- package/lib/utils/position.js.map +2 -2
- package/lib/utils/scrollPosition.d.ts +6 -0
- package/lib/utils/scrollPosition.js +31 -0
- package/lib/utils/scrollPosition.js.map +13 -0
- package/package.json +3 -2
- package/schema.json +30213 -29222
- package/scss/_properties.scss +67 -25
- package/scss/components/_alert.scss +1 -1
- package/scss/components/_barcode.scss +1 -1
- package/scss/components/_button-group.scss +15 -0
- package/scss/components/_carousel.scss +1 -0
- package/scss/components/_column-toggler.scss +21 -11
- package/scss/components/_debug.scss +3 -3
- package/scss/components/_formula.scss +19 -1
- package/scss/components/_nav.scss +51 -6
- package/scss/components/_progress.scss +7 -14
- package/scss/components/_pull-refresh.scss +25 -0
- package/scss/components/_spinner.scss +134 -56
- package/scss/components/_steps.scss +199 -8
- package/scss/components/_tabs.scss +145 -13
- package/scss/components/_tooltip.scss +76 -9
- package/scss/components/form/_checks.scss +125 -2
- package/scss/components/form/_combo.scss +13 -1
- package/scss/components/form/_date-range.scss +27 -2
- package/scss/components/form/_date.scss +25 -0
- package/scss/components/form/_editor.scss +2 -1
- package/scss/components/form/_file.scss +4 -0
- package/scss/components/form/_form.scss +31 -8
- package/scss/components/form/_number.scss +5 -2
- package/scss/components/form/_select.scss +0 -1
- package/scss/components/form/_textarea.scss +1 -23
- package/scss/components/form/_transfer.scss +3 -2
- package/scss/themes/_antd-variables.scss +1 -1
- package/scss/themes/_common.scss +1 -0
- package/scss/themes/_cxd-variables.scss +6 -5
- package/sdk/ang-ie11.css +1059 -198
- package/sdk/ang.css +1050 -164
- package/sdk/antd-ie11.css +1167 -306
- package/sdk/antd.css +1051 -165
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +1145 -284
- package/sdk/cxd.css +1056 -169
- package/sdk/dark-ie11.css +1056 -195
- package/sdk/dark.css +1050 -164
- package/sdk/exceljs.js +1 -1
- package/sdk/locale/de-DE.js +18 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +17 -17
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +1145 -284
- package/sdk/sdk.css +1056 -169
- package/sdk/sdk.js +1321 -1273
- 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 +15 -2
- package/src/SchemaRenderer.tsx +32 -14
- package/src/WithStore.tsx +3 -1
- package/src/actions/CmptAction.ts +28 -0
- package/src/actions/PageAction.ts +62 -0
- package/src/actions/index.ts +1 -0
- package/src/components/Alert2.tsx +9 -3
- package/src/components/AssociatedSelection.tsx +9 -3
- package/src/components/BarCode.tsx +2 -2
- package/src/components/Cascader.tsx +37 -11
- package/src/components/Checkbox.tsx +11 -5
- package/src/components/CityArea.tsx +3 -0
- package/src/components/DatePicker.tsx +68 -22
- package/src/components/DateRangePicker.tsx +551 -88
- package/src/components/Drawer.tsx +1 -0
- package/src/components/Modal.tsx +1 -0
- package/src/components/Overlay.tsx +6 -3
- package/src/components/Progress.tsx +64 -33
- package/src/components/PullRefresh.tsx +197 -0
- package/src/components/Radios.tsx +6 -17
- package/src/components/Range.tsx +26 -12
- package/src/components/Spinner.tsx +77 -42
- package/src/components/Steps.tsx +28 -27
- package/src/components/Tabs.tsx +51 -21
- package/src/components/Tooltip.tsx +12 -3
- package/src/components/TooltipWrapper.tsx +140 -33
- package/src/components/Tree.tsx +19 -5
- package/src/components/calendar/Calendar.tsx +4 -13
- package/src/components/calendar/TimeView.tsx +12 -0
- package/src/components/calendar/YearsView.tsx +3 -4
- package/src/components/condition-builder/Expression.tsx +6 -1
- package/src/components/condition-builder/Field.tsx +5 -1
- package/src/components/condition-builder/Group.tsx +4 -1
- package/src/components/condition-builder/GroupOrItem.tsx +4 -1
- package/src/components/condition-builder/InputSwitch.tsx +4 -1
- package/src/components/condition-builder/Item.tsx +28 -4
- package/src/components/condition-builder/Value.tsx +7 -1
- package/src/components/condition-builder/index.tsx +4 -2
- package/src/components/formula/Editor.tsx +46 -10
- package/src/components/formula/Picker.tsx +32 -1
- package/src/components/icons.tsx +2 -0
- package/src/factory.tsx +31 -3
- package/src/icons/trash.svg +8 -0
- package/src/index.tsx +1 -0
- package/src/locale/de-DE.ts +18 -1
- package/src/locale/en-US.ts +18 -1
- package/src/locale/zh-CN.ts +18 -1
- package/src/renderers/Action.tsx +24 -2
- package/src/renderers/App.tsx +4 -0
- package/src/renderers/ButtonGroup.tsx +2 -2
- package/src/renderers/CRUD.tsx +23 -5
- package/src/renderers/Carousel.tsx +8 -0
- package/src/renderers/Chart.tsx +4 -0
- package/src/renderers/Dialog.tsx +21 -3
- package/src/renderers/Drawer.tsx +14 -2
- package/src/renderers/DropDownButton.tsx +14 -3
- package/src/renderers/Form/Checkbox.tsx +11 -2
- package/src/renderers/Form/Checkboxes.tsx +106 -23
- package/src/renderers/Form/Combo.tsx +179 -66
- package/src/renderers/Form/InputCity.tsx +46 -5
- package/src/renderers/Form/InputDate.tsx +18 -4
- package/src/renderers/Form/InputDateRange.tsx +27 -3
- package/src/renderers/Form/InputFile.tsx +23 -7
- package/src/renderers/Form/InputFormula.tsx +7 -0
- package/src/renderers/Form/InputImage.tsx +22 -6
- package/src/renderers/Form/InputMonthRange.tsx +7 -1
- package/src/renderers/Form/InputRange.tsx +20 -22
- package/src/renderers/Form/InputTable.tsx +6 -2
- package/src/renderers/Form/InputText.tsx +14 -4
- package/src/renderers/Form/InputTree.tsx +40 -2
- package/src/renderers/Form/Item.tsx +7 -0
- package/src/renderers/Form/NestedSelect.tsx +23 -4
- package/src/renderers/Form/Options.tsx +26 -7
- package/src/renderers/Form/Select.tsx +5 -3
- package/src/renderers/Form/Textarea.tsx +3 -1
- package/src/renderers/Form/TreeSelect.tsx +47 -9
- package/src/renderers/Form/index.tsx +56 -25
- package/src/renderers/Form/wrapControl.tsx +23 -12
- package/src/renderers/Nav.tsx +231 -33
- package/src/renderers/Page.tsx +97 -35
- package/src/renderers/Progress.tsx +9 -11
- package/src/renderers/Service.tsx +66 -27
- package/src/renderers/Spinner.tsx +85 -3
- package/src/renderers/Steps.tsx +14 -0
- package/src/renderers/Table/ColumnToggler.tsx +36 -11
- package/src/renderers/Table/TableCell.tsx +39 -1
- package/src/renderers/Table/TableRow.tsx +1 -1
- package/src/renderers/Table/index.tsx +43 -19
- package/src/renderers/Tabs.tsx +90 -31
- package/src/renderers/TooltipWrapper.tsx +262 -0
- package/src/renderers/Wizard.tsx +169 -93
- package/src/store/crud.ts +50 -5
- package/src/store/form.ts +8 -3
- package/src/store/formItem.ts +1 -2
- package/src/store/index.ts +20 -0
- package/src/store/table.ts +4 -4
- package/src/types.ts +8 -1
- package/src/utils/ColorScale.ts +138 -0
- package/src/utils/api.ts +26 -4
- package/src/utils/columnsSplit.tsx +57 -0
- package/src/utils/debug.tsx +17 -24
- package/src/utils/dom.tsx +7 -6
- package/src/utils/position.ts +0 -1
- package/src/utils/scrollPosition.ts +29 -0
@@ -42,8 +42,29 @@ var FormulaEditor = /** @class */ (function (_super) {
|
|
42
42
|
return funcs;
|
43
43
|
};
|
44
44
|
FormulaEditor.highlightValue = function (value, variables, functions) {
|
45
|
-
|
46
|
-
|
45
|
+
if (!Array.isArray(variables) || !variables.length || !value) {
|
46
|
+
return;
|
47
|
+
}
|
48
|
+
var varMap = {};
|
49
|
+
(0, helper_1.eachTree)(variables, function (item) { return item.value && (varMap[item.value] = item.label); });
|
50
|
+
var vars = Object.keys(varMap)
|
51
|
+
.filter(function (item) { return item; })
|
52
|
+
.sort(function (a, b) { return b.length - a.length; });
|
53
|
+
var content = value || '';
|
54
|
+
var html = '';
|
55
|
+
// 标记方法调用
|
56
|
+
html = content.replace(/([A-Z]+)\s*\(/g, function (_, func, pos) {
|
57
|
+
return _ === null || _ === void 0 ? void 0 : _.replace(func, "<span class=\"c-func\">".concat(func, "</span>"));
|
58
|
+
});
|
59
|
+
vars.forEach(function (v) {
|
60
|
+
var from = 0;
|
61
|
+
var idx = -1;
|
62
|
+
while (~(idx = content.indexOf(v, from))) {
|
63
|
+
html = content.replace(v, "<span class=\"c-field\">".concat(varMap[v], "</span>"));
|
64
|
+
from = idx + v.length;
|
65
|
+
}
|
66
|
+
});
|
67
|
+
return { html: html };
|
47
68
|
};
|
48
69
|
FormulaEditor.prototype.componentWillUnmount = function () {
|
49
70
|
var _a;
|
@@ -102,6 +123,8 @@ var FormulaEditor = /** @class */ (function (_super) {
|
|
102
123
|
FormulaEditor.prototype.render = function () {
|
103
124
|
var _a = this.props, variables = _a.variables, header = _a.header, value = _a.value, functions = _a.functions, variableMode = _a.variableMode, __ = _a.translate, cx = _a.classnames, variableClassName = _a.variableClassName, functionClassName = _a.functionClassName, classPrefix = _a.classPrefix;
|
104
125
|
var focused = this.state.focused;
|
126
|
+
var customFunctions = Array.isArray(functions) ? functions : [];
|
127
|
+
var functionList = (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], FormulaEditor.buildDefaultFunctions(doc_1.doc), true), customFunctions, true);
|
105
128
|
return (react_1.default.createElement("div", { className: cx("FormulaEditor", {
|
106
129
|
'is-focused': focused
|
107
130
|
}) },
|
@@ -113,11 +136,10 @@ var FormulaEditor = /** @class */ (function (_super) {
|
|
113
136
|
react_1.default.createElement("div", { className: cx('FormulaEditor-panel-header') }, __('FormulaEditor.variable')),
|
114
137
|
react_1.default.createElement("div", { className: cx('FormulaEditor-panel-body') },
|
115
138
|
react_1.default.createElement(VariableList_1.VariableList, { classPrefix: classPrefix, className: cx('FormulaEditor-VariableList', 'FormulaEditor-VariableList-root', variableClassName), selectMode: variableMode, data: variables, onSelect: this.handleVariableSelect }))),
|
116
|
-
react_1.default.createElement(FuncList_1.default, { className: functionClassName, title: __('FormulaEditor.function'), data:
|
139
|
+
react_1.default.createElement(FuncList_1.default, { className: functionClassName, title: __('FormulaEditor.function'), data: functionList, onSelect: this.handleFunctionSelect }))));
|
117
140
|
};
|
118
141
|
var _a;
|
119
142
|
FormulaEditor.defaultProps = {
|
120
|
-
functions: FormulaEditor.buildDefaultFunctions(doc_1.doc),
|
121
143
|
variables: [],
|
122
144
|
evalMode: true
|
123
145
|
};
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/formula/Editor.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA;;GAEG;AACH,6DAA0B;AAC1B,iDAA8C;AAC9C,6CAAmC;AACnC,6CAA0C;AAE1C,mCAAsD;AACtD,qEAAkC;AAClC,+CAA4C;AAC5C,0EAA6C;AAC7C,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file 公式编辑器\n */\nimport React from 'react';\nimport {uncontrollable} from 'uncontrollable';\nimport {parse} from 'amis-formula';\nimport {doc} from 'amis-formula/dist/doc';\n\nimport {FormulaPlugin, editorFactory} from './plugin';\nimport FuncList from './FuncList';\nimport {VariableList} from './VariableList';\nimport CodeMirrorEditor from '../CodeMirror';\nimport {autobind} from '../../utils/helper';\nimport {themeable, ThemeProps} from '../../theme';\nimport {localeable, LocaleProps} from '../../locale';\n\nexport interface VariableItem {\n label: string;\n value?: string;\n children?: Array<VariableItem>;\n type: '';\n tag?: string;\n selectMode?: 'tree' | 'tabs';\n}\n\nexport interface FuncGroup {\n groupName: string;\n items: Array<FuncItem>;\n}\n\nexport interface FuncItem {\n name: string
|
11
|
+
"/**\n * @file 公式编辑器\n */\nimport React from 'react';\nimport {uncontrollable} from 'uncontrollable';\nimport {parse} from 'amis-formula';\nimport {doc} from 'amis-formula/dist/doc';\n\nimport {FormulaPlugin, editorFactory} from './plugin';\nimport FuncList from './FuncList';\nimport {VariableList} from './VariableList';\nimport CodeMirrorEditor from '../CodeMirror';\nimport {autobind, eachTree} from '../../utils/helper';\nimport {themeable, ThemeProps} from '../../theme';\nimport {localeable, LocaleProps} from '../../locale';\n\nexport interface VariableItem {\n label: string;\n value?: string;\n children?: Array<VariableItem>;\n type: '';\n tag?: string;\n selectMode?: 'tree' | 'tabs';\n}\n\nexport interface FuncGroup {\n groupName: string;\n items: Array<FuncItem>;\n}\n\nexport interface FuncItem {\n name: string; // 函数名\n example?: string; // 示例\n description?: string; // 描述\n [propName: string]: any;\n}\n\nexport interface FormulaEditorProps extends ThemeProps, LocaleProps {\n onChange?: (value: string) => void;\n value: string;\n /**\n * evalMode 即直接就是表达式,否则\n * 需要 ${这里面才是表达式}\n * 默认为 true\n */\n evalMode?: boolean;\n\n /**\n * 用于提示的变量集合,默认为空\n */\n variables: Array<VariableItem>;\n\n /**\n * 变量展现模式,可选值:'tabs' | 'tree'\n */\n variableMode?: 'tabs' | 'tree';\n\n /**\n * 函数集合,默认不需要传,即 amis-formula 里面那个函数\n * 如果有扩充,则需要传。\n */\n functions: Array<FuncGroup>;\n\n /**\n * 顶部标题,默认为表达式\n */\n header: string;\n\n variableClassName?: string;\n\n functionClassName?: string;\n}\n\nexport interface FunctionsProps {\n name: string;\n items: FunctionProps[];\n}\n\nexport interface FunctionProps {\n name: string;\n intro: string;\n usage: string;\n example: string;\n}\n\nexport interface FormulaState {\n focused: boolean;\n}\n\nexport class FormulaEditor extends React.Component<\n FormulaEditorProps,\n FormulaState\n> {\n state: FormulaState = {\n focused: false\n };\n editorPlugin?: FormulaPlugin;\n\n static buildDefaultFunctions(\n doc: Array<{\n namespace: string;\n name: string;\n [propName: string]: any;\n }>\n ) {\n const funcs: Array<FuncGroup> = [];\n\n doc.forEach(item => {\n const namespace = item.namespace || 'Others';\n let exists = funcs.find(item => item.groupName === namespace);\n if (!exists) {\n exists = {\n groupName: namespace,\n items: []\n };\n funcs.push(exists);\n }\n exists.items.push(item);\n });\n\n return funcs;\n }\n\n static defaultProps: Pick<FormulaEditorProps, 'variables' | 'evalMode'> = {\n variables: [],\n evalMode: true\n };\n\n static highlightValue(\n value: string,\n variables: Array<VariableItem>,\n functions: Array<FuncGroup>\n ) {\n if (!Array.isArray(variables) || !variables.length || !value) {\n return;\n }\n\n const varMap: {\n [propname: string]: string;\n } = {};\n\n eachTree(\n variables,\n item => item.value && (varMap[item.value] = item.label)\n );\n const vars = Object.keys(varMap)\n .filter(item => item)\n .sort((a, b) => b.length - a.length);\n\n const content = value || '';\n let html = '';\n\n // 标记方法调用\n html = content.replace(/([A-Z]+)\\s*\\(/g, (_, func, pos) => {\n return _?.replace(func, `<span class=\"c-func\">${func}</span>`);\n });\n\n vars.forEach(v => {\n let from = 0;\n let idx = -1;\n while (~(idx = content.indexOf(v, from))) {\n html = content.replace(v, `<span class=\"c-field\">${varMap[v]}</span>`);\n from = idx + v.length;\n }\n });\n\n return {html};\n }\n\n componentWillUnmount() {\n this.editorPlugin?.dispose();\n }\n\n @autobind\n handleFocus() {\n this.setState({\n focused: true\n });\n }\n\n @autobind\n handleBlur() {\n this.setState({\n focused: false\n });\n }\n\n @autobind\n insertValue(value: any, type: 'variable' | 'func') {\n this.editorPlugin?.insertContent(value, type);\n }\n\n @autobind\n handleEditorMounted(cm: any, editor: any) {\n this.editorPlugin = new FormulaPlugin(editor, cm, () => this.props);\n }\n\n @autobind\n validate() {\n const value = this.props.value;\n\n try {\n value\n ? parse(value, {\n evalMode: this.props.evalMode\n })\n : null;\n } catch (e) {\n return e.message;\n }\n\n return;\n }\n\n @autobind\n handleFunctionSelect(item: FuncItem) {\n this.editorPlugin?.insertContent(`${item.name}`, 'func');\n }\n\n @autobind\n handleVariableSelect(item: VariableItem) {\n this.editorPlugin?.insertContent(\n {\n key: item.value,\n name: item.label\n },\n 'variable'\n );\n }\n\n @autobind\n handleOnChange(value: any) {\n const onChange = this.props.onChange;\n onChange?.(value);\n }\n\n @autobind\n editorFactory(dom: HTMLElement, cm: any) {\n return editorFactory(dom, cm, this.props);\n }\n\n render() {\n const {\n variables,\n header,\n value,\n functions,\n variableMode,\n translate: __,\n classnames: cx,\n variableClassName,\n functionClassName,\n classPrefix\n } = this.props;\n const {focused} = this.state;\n const customFunctions = Array.isArray(functions) ? functions : [];\n const functionList = [\n ...FormulaEditor.buildDefaultFunctions(doc),\n ...customFunctions\n ];\n\n return (\n <div\n className={cx(`FormulaEditor`, {\n 'is-focused': focused\n })}\n >\n <section className={cx(`FormulaEditor-content`)}>\n <header className={cx(`FormulaEditor-header`)}>\n {__(header || 'FormulaEditor.title')}\n </header>\n\n <CodeMirrorEditor\n className={cx('FormulaEditor-editor')}\n value={value}\n onChange={this.handleOnChange}\n editorFactory={this.editorFactory}\n editorDidMount={this.handleEditorMounted}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n </section>\n\n <section className={cx('FormulaEditor-settings')}>\n <div className={cx('FormulaEditor-panel')}>\n <div className={cx('FormulaEditor-panel-header')}>\n {__('FormulaEditor.variable')}\n </div>\n <div className={cx('FormulaEditor-panel-body')}>\n <VariableList\n classPrefix={classPrefix}\n className={cx(\n 'FormulaEditor-VariableList',\n 'FormulaEditor-VariableList-root',\n variableClassName\n )}\n selectMode={variableMode}\n data={variables}\n onSelect={this.handleVariableSelect}\n />\n </div>\n </div>\n\n <FuncList\n className={functionClassName}\n title={__('FormulaEditor.function')}\n data={functionList}\n onSelect={this.handleFunctionSelect}\n />\n </section>\n </div>\n );\n }\n}\n\nexport default uncontrollable(\n themeable(localeable(FormulaEditor)),\n {\n value: 'onChange'\n },\n ['validate']\n);\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -36,6 +36,10 @@ export interface FormulaPickerProps extends FormulaEditorProps {
|
|
36
36
|
* 禁用状态
|
37
37
|
*/
|
38
38
|
disabled?: boolean;
|
39
|
+
/**
|
40
|
+
* 是否允许输入,否需要点击fx在弹窗中输入
|
41
|
+
*/
|
42
|
+
allowInput?: boolean;
|
39
43
|
/**
|
40
44
|
* 占位文本
|
41
45
|
*/
|
@@ -55,6 +59,7 @@ export interface FormulaPickerProps extends FormulaEditorProps {
|
|
55
59
|
}
|
56
60
|
export declare class FormulaPicker extends React.Component<FormulaPickerProps> {
|
57
61
|
handleConfirm(value: any): void;
|
62
|
+
renderFormulaValue(item: any): "" | JSX.Element;
|
58
63
|
render(): JSX.Element;
|
59
64
|
}
|
60
65
|
declare const _default: {
|
@@ -4,10 +4,11 @@ exports.FormulaPicker = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
5
5
|
var uncontrollable_1 = require("uncontrollable");
|
6
6
|
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
7
|
+
var Editor_1 = require("./Editor");
|
7
8
|
var helper_1 = require("../../utils/helper");
|
8
9
|
var icon_1 = require("../../utils/icon");
|
9
10
|
var PickerContainer_1 = (0, tslib_1.__importDefault)(require("../PickerContainer"));
|
10
|
-
var
|
11
|
+
var Editor_2 = (0, tslib_1.__importDefault)(require("./Editor"));
|
11
12
|
var ResultBox_1 = (0, tslib_1.__importDefault)(require("../ResultBox"));
|
12
13
|
var Button_1 = (0, tslib_1.__importDefault)(require("../Button"));
|
13
14
|
var icons_1 = require("../icons");
|
@@ -23,9 +24,17 @@ var FormulaPicker = /** @class */ (function (_super) {
|
|
23
24
|
var _a, _b;
|
24
25
|
(_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, value);
|
25
26
|
};
|
27
|
+
FormulaPicker.prototype.renderFormulaValue = function (item) {
|
28
|
+
var _a = this.props, allowInput = _a.allowInput, cx = _a.classnames;
|
29
|
+
var html = { __html: item.html };
|
30
|
+
if (allowInput) {
|
31
|
+
return '';
|
32
|
+
}
|
33
|
+
return (react_1.default.createElement("div", { className: cx('FormulaPicker-ResultBox'), dangerouslySetInnerHTML: html }));
|
34
|
+
};
|
26
35
|
FormulaPicker.prototype.render = function () {
|
27
36
|
var _this = this;
|
28
|
-
var _a = this.props, cx = _a.classnames, value = _a.value, __ = _a.translate, disabled = _a.disabled, className = _a.className, onChange = _a.onChange, size = _a.size, borderMode = _a.borderMode, placeholder = _a.placeholder, mode = _a.mode, btnLabel = _a.btnLabel, level = _a.level, btnSize = _a.btnSize, icon = _a.icon, title = _a.title, clearable = _a.clearable, variables = _a.variables, functions = _a.functions, rest = (0, tslib_1.__rest)(_a, ["classnames", "value", "translate", "disabled", "className", "onChange", "size", "borderMode", "placeholder", "mode", "btnLabel", "level", "btnSize", "icon", "title", "clearable", "variables", "functions"]);
|
37
|
+
var _a = this.props, cx = _a.classnames, value = _a.value, __ = _a.translate, disabled = _a.disabled, allowInput = _a.allowInput, className = _a.className, onChange = _a.onChange, size = _a.size, borderMode = _a.borderMode, placeholder = _a.placeholder, mode = _a.mode, btnLabel = _a.btnLabel, level = _a.level, btnSize = _a.btnSize, icon = _a.icon, title = _a.title, clearable = _a.clearable, variables = _a.variables, functions = _a.functions, rest = (0, tslib_1.__rest)(_a, ["classnames", "value", "translate", "disabled", "allowInput", "className", "onChange", "size", "borderMode", "placeholder", "mode", "btnLabel", "level", "btnSize", "icon", "title", "clearable", "variables", "functions"]);
|
29
38
|
if ((0, tpl_builtin_1.isPureVariable)(variables)) {
|
30
39
|
// 如果 variables 是 ${xxx} 这种形式,将其处理成实际的值
|
31
40
|
variables = (0, tpl_builtin_1.resolveVariableAndFilter)(variables, this.props.data, '| raw');
|
@@ -37,7 +46,7 @@ var FormulaPicker = /** @class */ (function (_super) {
|
|
37
46
|
var iconElement = (0, icon_1.generateIcon)(cx, icon, 'Icon');
|
38
47
|
return (react_1.default.createElement(PickerContainer_1.default, { title: __(title || 'FormulaEditor.title'), headerClassName: "font-bold", bodyRender: function (_a) {
|
39
48
|
var onClose = _a.onClose, value = _a.value, onChange = _a.onChange;
|
40
|
-
return (react_1.default.createElement(
|
49
|
+
return (react_1.default.createElement(Editor_2.default, (0, tslib_1.__assign)({}, rest, { variables: variables, functions: functions, value: value, onChange: onChange })));
|
41
50
|
}, value: value, onConfirm: this.handleConfirm, size: 'md' }, function (_a) {
|
42
51
|
var _b, _c, _d;
|
43
52
|
var _e, _f;
|
@@ -51,7 +60,9 @@ var FormulaPicker = /** @class */ (function (_super) {
|
|
51
60
|
_c['is-filled'] = !!value,
|
52
61
|
_c)) })),
|
53
62
|
react_1.default.createElement("span", { className: cx('FormulaPicker-label') }, __(btnLabel || 'FormulaEditor.btnLabel')))) : (react_1.default.createElement(react_1.default.Fragment, null,
|
54
|
-
react_1.default.createElement(ResultBox_1.default, { className: cx('FormulaPicker-input', isOpened ? 'is-active' : ''), allowInput:
|
63
|
+
react_1.default.createElement(ResultBox_1.default, { className: cx('FormulaPicker-input', isOpened ? 'is-active' : ''), allowInput: allowInput, clearable: clearable, value: value, result: allowInput
|
64
|
+
? void 0
|
65
|
+
: Editor_1.FormulaEditor.highlightValue(value, variables, functions), itemRender: _this.renderFormulaValue, onResultChange: helper_1.noop, onChange: _this.handleConfirm, disabled: disabled, borderMode: borderMode, placeholder: placeholder }),
|
55
66
|
react_1.default.createElement(Button_1.default, { className: cx('FormulaPicker-action'), onClick: onClick },
|
56
67
|
react_1.default.createElement(icons_1.Icon, { icon: "function", className: cx('FormulaPicker-icon', 'icon', (_d = {},
|
57
68
|
_d['is-filled'] = !!value,
|
@@ -64,6 +75,12 @@ var FormulaPicker = /** @class */ (function (_super) {
|
|
64
75
|
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
65
76
|
(0, tslib_1.__metadata)("design:returntype", void 0)
|
66
77
|
], FormulaPicker.prototype, "handleConfirm", null);
|
78
|
+
(0, tslib_1.__decorate)([
|
79
|
+
helper_1.autobind,
|
80
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
81
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
82
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
83
|
+
], FormulaPicker.prototype, "renderFormulaValue", null);
|
67
84
|
return FormulaPicker;
|
68
85
|
}(react_1.default.Component));
|
69
86
|
exports.FormulaPicker = FormulaPicker;
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/formula/Picker.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,iDAA8C;AAC9C,6DAA0B;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import {uncontrollable} from 'uncontrollable';\nimport React from 'react';\nimport {FormulaEditor, FormulaEditorProps} from './Editor';\nimport {autobind, noop} from '../../utils/helper';\nimport {generateIcon} from '../../utils/icon';\nimport PickerContainer from '../PickerContainer';\nimport Editor from './Editor';\nimport ResultBox from '../ResultBox';\nimport Button from '../Button';\nimport {Icon} from '../icons';\nimport {themeable} from '../../theme';\nimport {localeable} from '../../locale';\n\nimport type {SchemaIcon} from '../../Schema';\nimport {\n resolveVariableAndFilter,\n isPureVariable\n} from '../../utils/tpl-builtin';\n\nexport interface FormulaPickerProps extends FormulaEditorProps {\n // 新的属性?\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n /**\n * 编辑器标题\n */\n title?: string;\n\n /**\n * 按钮图标\n */\n icon?: SchemaIcon;\n\n /**\n * 控件模式\n */\n mode?: 'button' | 'input-button';\n\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n /**\n * 按钮Label,inputMode为button时生效\n */\n btnLabel?: string;\n\n /**\n * 按钮样式\n */\n level?:\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'link'\n | 'primary'\n | 'dark'\n | 'light';\n\n /**\n * 按钮大小\n */\n btnSize?: 'xs' | 'sm' | 'md' | 'lg';\n\n /**\n * 禁用状态\n */\n disabled?: boolean;\n\n /**\n * 占位文本\n */\n placeholder?: string;\n\n /**\n * 可清除\n */\n clearable?: boolean;\n\n /**\n * 支持通过上下文变量配置value\n */\n source?: string;\n\n /**\n * 外层透传的 data,和source配合使用\n */\n data?: any;\n}\n\nexport class FormulaPicker extends React.Component<FormulaPickerProps> {\n @autobind\n handleConfirm(value: any) {\n this.props.onChange?.(value);\n }\n\n render() {\n let {\n classnames: cx,\n value,\n translate: __,\n disabled,\n className,\n onChange,\n size,\n borderMode,\n placeholder,\n mode,\n btnLabel,\n level,\n btnSize,\n icon,\n title,\n clearable,\n variables,\n functions,\n ...rest\n } = this.props;\n if (isPureVariable(variables)) {\n // 如果 variables 是 ${xxx} 这种形式,将其处理成实际的值\n variables = resolveVariableAndFilter(variables, this.props.data, '| raw');\n }\n\n if (isPureVariable(functions)) {\n // 如果 functions 是 ${xxx} 这种形式,将其处理成实际的值\n functions = resolveVariableAndFilter(functions, this.props.data, '| raw');\n }\n const iconElement = generateIcon(cx, icon, 'Icon');\n\n return (\n <PickerContainer\n title={__(title || 'FormulaEditor.title')}\n headerClassName=\"font-bold\"\n bodyRender={({onClose, value, onChange}) => {\n return (\n <Editor\n {...rest}\n variables={variables}\n functions={functions}\n value={value}\n onChange={onChange}\n />\n );\n }}\n value={value}\n onConfirm={this.handleConfirm}\n size={'md'}\n >\n {({onClick, isOpened}) => (\n <div className={cx('FormulaPicker', className)}>\n {mode === 'button' ? (\n <Button\n className={cx('FormulaPicker-action', 'w-full')}\n level={level}\n size={btnSize}\n onClick={onClick}\n >\n {iconElement ? (\n React.cloneElement(iconElement, {\n className: cx(\n iconElement?.props?.className ?? '',\n 'FormulaPicker-icon',\n {\n ['is-filled']: !!value\n }\n )\n })\n ) : (\n <Icon\n icon=\"function\"\n className={cx('FormulaPicker-icon', 'icon', {\n ['is-filled']: !!value\n })}\n />\n )}\n <span className={cx('FormulaPicker-label')}>\n {__(btnLabel || 'FormulaEditor.btnLabel')}\n </span>\n </Button>\n ) : (\n <>\n <ResultBox\n className={cx(\n 'FormulaPicker-input',\n isOpened ? 'is-active' : ''\n )}\n allowInput\n clearable={clearable}\n value={value}\n onResultChange={noop}\n onChange={this.handleConfirm}\n disabled={disabled}\n borderMode={borderMode}\n placeholder={placeholder}\n />\n\n <Button\n className={cx('FormulaPicker-action')}\n onClick={onClick}\n >\n <Icon\n icon=\"function\"\n className={cx('FormulaPicker-icon', 'icon', {\n ['is-filled']: !!value\n })}\n />\n </Button>\n </>\n )}\n </div>\n )}\n </PickerContainer>\n );\n }\n}\n\nexport default themeable(\n localeable(\n uncontrollable(FormulaPicker, {\n value: 'onChange'\n })\n )\n);\n"
|
11
|
+
"import {uncontrollable} from 'uncontrollable';\nimport React from 'react';\nimport {FormulaEditor, FormulaEditorProps} from './Editor';\nimport {autobind, noop} from '../../utils/helper';\nimport {generateIcon} from '../../utils/icon';\nimport PickerContainer from '../PickerContainer';\nimport Editor from './Editor';\nimport ResultBox from '../ResultBox';\nimport Button from '../Button';\nimport {Icon} from '../icons';\nimport {themeable} from '../../theme';\nimport {localeable} from '../../locale';\n\nimport type {SchemaIcon} from '../../Schema';\nimport {\n resolveVariableAndFilter,\n isPureVariable\n} from '../../utils/tpl-builtin';\n\nexport interface FormulaPickerProps extends FormulaEditorProps {\n // 新的属性?\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n /**\n * 编辑器标题\n */\n title?: string;\n\n /**\n * 按钮图标\n */\n icon?: SchemaIcon;\n\n /**\n * 控件模式\n */\n mode?: 'button' | 'input-button';\n\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n /**\n * 按钮Label,inputMode为button时生效\n */\n btnLabel?: string;\n\n /**\n * 按钮样式\n */\n level?:\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'link'\n | 'primary'\n | 'dark'\n | 'light';\n\n /**\n * 按钮大小\n */\n btnSize?: 'xs' | 'sm' | 'md' | 'lg';\n\n /**\n * 禁用状态\n */\n disabled?: boolean;\n\n /**\n * 是否允许输入,否需要点击fx在弹窗中输入\n */\n allowInput?: boolean;\n\n /**\n * 占位文本\n */\n placeholder?: string;\n\n /**\n * 可清除\n */\n clearable?: boolean;\n\n /**\n * 支持通过上下文变量配置value\n */\n source?: string;\n\n /**\n * 外层透传的 data,和source配合使用\n */\n data?: any;\n}\n\nexport class FormulaPicker extends React.Component<FormulaPickerProps> {\n @autobind\n handleConfirm(value: any) {\n this.props.onChange?.(value);\n }\n\n @autobind\n renderFormulaValue(item: any) {\n const {allowInput, classnames: cx} = this.props;\n const html = {__html: item.html};\n if (allowInput) {\n return '';\n }\n return (\n <div\n className={cx('FormulaPicker-ResultBox')}\n dangerouslySetInnerHTML={html}\n ></div>\n );\n }\n\n render() {\n let {\n classnames: cx,\n value,\n translate: __,\n disabled,\n allowInput,\n className,\n onChange,\n size,\n borderMode,\n placeholder,\n mode,\n btnLabel,\n level,\n btnSize,\n icon,\n title,\n clearable,\n variables,\n functions,\n ...rest\n } = this.props;\n if (isPureVariable(variables)) {\n // 如果 variables 是 ${xxx} 这种形式,将其处理成实际的值\n variables = resolveVariableAndFilter(variables, this.props.data, '| raw');\n }\n\n if (isPureVariable(functions)) {\n // 如果 functions 是 ${xxx} 这种形式,将其处理成实际的值\n functions = resolveVariableAndFilter(functions, this.props.data, '| raw');\n }\n const iconElement = generateIcon(cx, icon, 'Icon');\n\n return (\n <PickerContainer\n title={__(title || 'FormulaEditor.title')}\n headerClassName=\"font-bold\"\n bodyRender={({onClose, value, onChange}) => {\n return (\n <Editor\n {...rest}\n variables={variables}\n functions={functions}\n value={value}\n onChange={onChange}\n />\n );\n }}\n value={value}\n onConfirm={this.handleConfirm}\n size={'md'}\n >\n {({onClick, isOpened}) => (\n <div className={cx('FormulaPicker', className)}>\n {mode === 'button' ? (\n <Button\n className={cx('FormulaPicker-action', 'w-full')}\n level={level}\n size={btnSize}\n onClick={onClick}\n >\n {iconElement ? (\n React.cloneElement(iconElement, {\n className: cx(\n iconElement?.props?.className ?? '',\n 'FormulaPicker-icon',\n {\n ['is-filled']: !!value\n }\n )\n })\n ) : (\n <Icon\n icon=\"function\"\n className={cx('FormulaPicker-icon', 'icon', {\n ['is-filled']: !!value\n })}\n />\n )}\n <span className={cx('FormulaPicker-label')}>\n {__(btnLabel || 'FormulaEditor.btnLabel')}\n </span>\n </Button>\n ) : (\n <>\n <ResultBox\n className={cx(\n 'FormulaPicker-input',\n isOpened ? 'is-active' : ''\n )}\n allowInput={allowInput}\n clearable={clearable}\n value={value}\n result={\n allowInput\n ? void 0\n : FormulaEditor.highlightValue(\n value,\n variables,\n functions\n )\n }\n itemRender={this.renderFormulaValue}\n onResultChange={noop}\n onChange={this.handleConfirm}\n disabled={disabled}\n borderMode={borderMode}\n placeholder={placeholder}\n />\n\n <Button\n className={cx('FormulaPicker-action')}\n onClick={onClick}\n >\n <Icon\n icon=\"function\"\n className={cx('FormulaPicker-icon', 'icon', {\n ['is-filled']: !!value\n })}\n />\n </Button>\n </>\n )}\n </div>\n )}\n </PickerContainer>\n );\n }\n}\n\nexport default themeable(\n localeable(\n uncontrollable(FormulaPicker, {\n value: 'onChange'\n })\n )\n);\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/components/icons.js
CHANGED
@@ -101,6 +101,7 @@ exports.FunctionIcon = function_svg_1.default;
|
|
101
101
|
var input_clear_svg_1 = (0, tslib_1.__importDefault)(require("../icons/input-clear.js"));
|
102
102
|
exports.InputClearIcon = input_clear_svg_1.default;
|
103
103
|
var slider_handle_icon_svg_1 = (0, tslib_1.__importDefault)(require("../icons/slider-handle-icon.js"));
|
104
|
+
var trash_svg_1 = (0, tslib_1.__importDefault)(require("../icons/trash.js"));
|
104
105
|
// 兼容原来的用法,后续不直接试用。
|
105
106
|
exports.closeIcon = react_1.default.createElement(close_svg_1.default, null);
|
106
107
|
exports.unDoIcon = react_1.default.createElement(undo_svg_1.default, null);
|
@@ -205,6 +206,7 @@ registerIcon('slider-handle', slider_handle_icon_svg_1.default);
|
|
205
206
|
registerIcon('cloud-upload', cloud_upload_svg_1.default);
|
206
207
|
registerIcon('image', image_svg_1.default);
|
207
208
|
registerIcon('refresh', refresh_svg_1.default);
|
209
|
+
registerIcon('trash', trash_svg_1.default);
|
208
210
|
function Icon(_a) {
|
209
211
|
var icon = _a.icon, className = _a.className, rest = (0, tslib_1.__rest)(_a, ["icon", "className"]);
|
210
212
|
// jest 运行环境下,把指定的 icon 也输出到 snapshot 中。
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/icons.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA;;;;GAIG;AACH,6DAA0B;AAE1B,8EAA2C;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file Icon\n * @description\n * @author fex\n */\nimport React from 'react';\n\nimport CloseIcon from '../icons/close.svg';\nimport CloseSmallIcon from '../icons/close-small.svg';\nimport StatusCloseIcon from '../icons/status-close.svg';\nimport UnDoIcon from '../icons/undo.svg';\nimport ReDoIcon from '../icons/redo.svg';\nimport EnterIcon from '../icons/enter.svg';\nimport VolumeIcon from '../icons/volume.svg';\nimport MuteIcon from '../icons/mute.svg';\nimport PlayIcon from '../icons/play.svg';\nimport PauseIcon from '../icons/pause.svg';\nimport LeftArrowIcon from '../icons/left-arrow.svg';\nimport RightArrowIcon from '../icons/right-arrow.svg';\nimport CheckIcon from '../icons/check.svg';\nimport PlusIcon from '../icons/plus.svg';\nimport MinusIcon from '../icons/minus.svg';\nimport PencilIcon from '../icons/pencil.svg';\nimport ViewIcon from '../icons/view.svg';\nimport RemoveIcon from '../icons/remove.svg';\nimport RetryIcon from '../icons/retry.svg';\nimport UploadIcon from '../icons/upload.svg';\nimport DownloadIcon from '../icons/download.svg';\nimport FileIcon from '../icons/file.svg';\nimport StatusSuccessIcon from '../icons/status-success.svg';\nimport StatusFailIcon from '../icons/status-fail.svg';\nimport StatusInfoIcon from '../icons/status-info.svg';\nimport StatusWarningIcon from '../icons/status-warning.svg';\nimport SuccessIcon from '../icons/success.svg';\nimport FailIcon from '../icons/fail.svg';\nimport SearchIcon from '../icons/search.svg';\nimport BackIcon from '../icons/back.svg';\nimport MoveIcon from '../icons/move.svg';\nimport InfoIcon from '../icons/info.svg';\nimport LocationIcon from '../icons/location.svg';\nimport DragBarIcon from '../icons/drag-bar.svg';\nimport ReloadIcon from '../icons/reload.svg';\nimport ExchangeIcon from '../icons/exchange.svg';\nimport ColmunsIcon from '../icons/columns.svg';\nimport CalendarIcon from '../icons/calendar.svg';\nimport ClockIcon from '../icons/clock.svg';\nimport TreeDownIcon from '../icons/tree-down.svg';\nimport CloudUploadIcon from '../icons/cloud-upload.svg';\nimport ImageIcon from '../icons/image.svg';\nimport RefreshIcon from '../icons/refresh.svg';\n\nimport CopyIcon from '../icons/copy.svg';\nimport FilterIcon from '../icons/filter.svg';\nimport CaretIcon from '../icons/caret.svg';\nimport RightArrowBoldIcon from '../icons/right-arrow-bold.svg';\nimport ColumnFilterIcon from '../icons/column-filter.svg';\nimport ZoomInIcon from '../icons/zoom-in.svg';\nimport ZoomOutIcon from '../icons/zoom-out.svg';\nimport QuestionIcon from '../icons/question.svg';\nimport QuestionMarkIcon from '../icons/question-mark.svg';\nimport WindowRestoreIcon from '../icons/window-restore.svg';\nimport InfoCircleIcon from '../icons/info-circle.svg';\nimport WarningIcon from '../icons/warning.svg';\nimport WarningMarkIcon from '../icons/warning-mark.svg';\nimport ScheduleIcon from '../icons/schedule.svg';\nimport HomeIcon from '../icons/home.svg';\nimport FolderIcon from '../icons/folder.svg';\nimport SortDefaultIcon from '../icons/sort-default.svg';\nimport SortAscIcon from '../icons/sort-asc.svg';\nimport SortDescIcon from '../icons/sort-desc.svg';\nimport SettingIcon from '../icons/setting.svg';\nimport PlusCicleIcon from '../icons/plus-cicle.svg';\nimport EllipsisVIcon from '../icons/ellipsis-v.svg';\nimport ExpandAltIcon from '../icons/expand-alt.svg';\nimport CompressAltIcon from '../icons/compress-alt.svg';\nimport TransparentIcon from '../icons/transparent.svg';\nimport LoadingOutline from '../icons/loading-outline.svg';\nimport Star from '../icons/star.svg';\nimport AlertSuccess from '../icons/alert-success.svg';\nimport AlertInfo from '../icons/alert-info.svg';\nimport AlertWarning from '../icons/alert-warning.svg';\nimport AlertDanger from '../icons/alert-danger.svg';\nimport FunctionIcon from '../icons/function.svg';\nimport InputClearIcon from '../icons/input-clear.svg';\nimport SliderHandleIcon from '../icons/slider-handle-icon.svg';\n\n// 兼容原来的用法,后续不直接试用。\n\nexport const closeIcon = <CloseIcon />;\nexport const unDoIcon = <UnDoIcon />;\nexport const reDoIcon = <ReDoIcon />;\nexport const enterIcon = <EnterIcon />;\nexport const volumeIcon = <VolumeIcon />;\nexport const muteIcon = <MuteIcon />;\nexport const playIcon = <PlayIcon />;\nexport const pauseIcon = <PauseIcon />;\nexport const leftArrowIcon = <LeftArrowIcon />;\nexport const rightArrowIcon = <RightArrowIcon />;\nconst iconFactory: {\n [propName: string]: React.ReactType<{}>;\n} = {};\n\nexport function getIcon(key: string) {\n return iconFactory[key];\n}\n\nexport function hasIcon(iconName: string) {\n return !!getIcon(iconName);\n}\n\nexport function registerIcon(key: string, component: React.ReactType<{}>) {\n iconFactory[key] = component;\n}\n\nregisterIcon('close', CloseIcon);\nregisterIcon('close-small', CloseSmallIcon);\nregisterIcon('status-close', StatusCloseIcon);\nregisterIcon('undo', UnDoIcon);\nregisterIcon('redo', ReDoIcon);\nregisterIcon('enter', EnterIcon);\nregisterIcon('volume', VolumeIcon);\nregisterIcon('mute', MuteIcon);\nregisterIcon('play', PlayIcon);\nregisterIcon('pause', PauseIcon);\nregisterIcon('left-arrow', LeftArrowIcon);\nregisterIcon('right-arrow', RightArrowIcon);\nregisterIcon('prev', LeftArrowIcon);\nregisterIcon('next', RightArrowIcon);\nregisterIcon('check', CheckIcon);\nregisterIcon('plus', PlusIcon);\nregisterIcon('add', PlusIcon);\nregisterIcon('minus', MinusIcon);\nregisterIcon('pencil', PencilIcon);\nregisterIcon('view', ViewIcon);\nregisterIcon('remove', RemoveIcon);\nregisterIcon('retry', RetryIcon);\nregisterIcon('upload', UploadIcon);\nregisterIcon('download', DownloadIcon);\nregisterIcon('file', FileIcon);\nregisterIcon('status-success', StatusSuccessIcon);\nregisterIcon('status-fail', StatusFailIcon);\nregisterIcon('status-info', StatusInfoIcon);\nregisterIcon('status-warning', StatusWarningIcon);\nregisterIcon('success', SuccessIcon);\nregisterIcon('fail', FailIcon);\nregisterIcon('warning', WarningIcon);\nregisterIcon('warning-mark', WarningMarkIcon);\nregisterIcon('search', SearchIcon);\nregisterIcon('back', BackIcon);\nregisterIcon('move', MoveIcon);\nregisterIcon('info', InfoIcon);\nregisterIcon('info-circle', InfoCircleIcon);\nregisterIcon('location', LocationIcon);\nregisterIcon('drag-bar', DragBarIcon);\nregisterIcon('reload', ReloadIcon);\nregisterIcon('exchange', ExchangeIcon);\nregisterIcon('columns', ColmunsIcon);\nregisterIcon('calendar', CalendarIcon);\nregisterIcon('clock', ClockIcon);\nregisterIcon('copy', CopyIcon);\nregisterIcon('filter', FilterIcon);\nregisterIcon('column-filter', ColumnFilterIcon);\nregisterIcon('caret', CaretIcon);\nregisterIcon('right-arrow-bold', RightArrowBoldIcon);\nregisterIcon('zoom-in', ZoomInIcon);\nregisterIcon('zoom-out', ZoomOutIcon);\nregisterIcon('question', QuestionIcon);\nregisterIcon('question-mark', QuestionMarkIcon);\nregisterIcon('window-restore', WindowRestoreIcon);\nregisterIcon('schedule', ScheduleIcon);\nregisterIcon('home', HomeIcon);\nregisterIcon('folder', FolderIcon);\nregisterIcon('sort-default', SortDefaultIcon);\nregisterIcon('sort-asc', SortAscIcon);\nregisterIcon('sort-desc', SortDescIcon);\nregisterIcon('setting', SettingIcon);\nregisterIcon('plus-cicle', PlusCicleIcon);\nregisterIcon('ellipsis-v', EllipsisVIcon);\nregisterIcon('expand-alt', ExpandAltIcon);\nregisterIcon('compress-alt', CompressAltIcon);\nregisterIcon('transparent', TransparentIcon);\nregisterIcon('loading-outline', LoadingOutline);\nregisterIcon('star', Star);\nregisterIcon('alert-success', AlertSuccess);\nregisterIcon('alert-info', AlertInfo);\nregisterIcon('alert-warning', AlertWarning);\nregisterIcon('alert-danger', AlertDanger);\nregisterIcon('tree-down', TreeDownIcon);\nregisterIcon('function', FunctionIcon);\nregisterIcon('input-clear', InputClearIcon);\nregisterIcon('slider-handle', SliderHandleIcon);\nregisterIcon('cloud-upload', CloudUploadIcon);\nregisterIcon('image', ImageIcon);\nregisterIcon('refresh', RefreshIcon);\n\nexport function Icon({\n icon,\n className,\n ...rest\n}: {\n icon: string;\n} & React.ComponentProps<any>) {\n // jest 运行环境下,把指定的 icon 也输出到 snapshot 中。\n if (typeof jest !== 'undefined') {\n rest.icon = icon;\n }\n\n const Component = getIcon(icon);\n return Component ? (\n <Component {...rest} className={`${className || ''} icon-${icon}`} />\n ) : (\n <span className=\"text-danger\">没有 icon {icon}</span>\n );\n}\n\nexport {\n InputClearIcon,\n CloseIcon,\n UnDoIcon,\n ReDoIcon,\n EnterIcon,\n VolumeIcon,\n MuteIcon,\n PlayIcon,\n PauseIcon,\n LeftArrowIcon,\n RightArrowIcon,\n CheckIcon,\n PlusIcon,\n MinusIcon,\n PencilIcon,\n FunctionIcon\n};\n"
|
11
|
+
"/**\n * @file Icon\n * @description\n * @author fex\n */\nimport React from 'react';\n\nimport CloseIcon from '../icons/close.svg';\nimport CloseSmallIcon from '../icons/close-small.svg';\nimport StatusCloseIcon from '../icons/status-close.svg';\nimport UnDoIcon from '../icons/undo.svg';\nimport ReDoIcon from '../icons/redo.svg';\nimport EnterIcon from '../icons/enter.svg';\nimport VolumeIcon from '../icons/volume.svg';\nimport MuteIcon from '../icons/mute.svg';\nimport PlayIcon from '../icons/play.svg';\nimport PauseIcon from '../icons/pause.svg';\nimport LeftArrowIcon from '../icons/left-arrow.svg';\nimport RightArrowIcon from '../icons/right-arrow.svg';\nimport CheckIcon from '../icons/check.svg';\nimport PlusIcon from '../icons/plus.svg';\nimport MinusIcon from '../icons/minus.svg';\nimport PencilIcon from '../icons/pencil.svg';\nimport ViewIcon from '../icons/view.svg';\nimport RemoveIcon from '../icons/remove.svg';\nimport RetryIcon from '../icons/retry.svg';\nimport UploadIcon from '../icons/upload.svg';\nimport DownloadIcon from '../icons/download.svg';\nimport FileIcon from '../icons/file.svg';\nimport StatusSuccessIcon from '../icons/status-success.svg';\nimport StatusFailIcon from '../icons/status-fail.svg';\nimport StatusInfoIcon from '../icons/status-info.svg';\nimport StatusWarningIcon from '../icons/status-warning.svg';\nimport SuccessIcon from '../icons/success.svg';\nimport FailIcon from '../icons/fail.svg';\nimport SearchIcon from '../icons/search.svg';\nimport BackIcon from '../icons/back.svg';\nimport MoveIcon from '../icons/move.svg';\nimport InfoIcon from '../icons/info.svg';\nimport LocationIcon from '../icons/location.svg';\nimport DragBarIcon from '../icons/drag-bar.svg';\nimport ReloadIcon from '../icons/reload.svg';\nimport ExchangeIcon from '../icons/exchange.svg';\nimport ColmunsIcon from '../icons/columns.svg';\nimport CalendarIcon from '../icons/calendar.svg';\nimport ClockIcon from '../icons/clock.svg';\nimport TreeDownIcon from '../icons/tree-down.svg';\nimport CloudUploadIcon from '../icons/cloud-upload.svg';\nimport ImageIcon from '../icons/image.svg';\nimport RefreshIcon from '../icons/refresh.svg';\n\nimport CopyIcon from '../icons/copy.svg';\nimport FilterIcon from '../icons/filter.svg';\nimport CaretIcon from '../icons/caret.svg';\nimport RightArrowBoldIcon from '../icons/right-arrow-bold.svg';\nimport ColumnFilterIcon from '../icons/column-filter.svg';\nimport ZoomInIcon from '../icons/zoom-in.svg';\nimport ZoomOutIcon from '../icons/zoom-out.svg';\nimport QuestionIcon from '../icons/question.svg';\nimport QuestionMarkIcon from '../icons/question-mark.svg';\nimport WindowRestoreIcon from '../icons/window-restore.svg';\nimport InfoCircleIcon from '../icons/info-circle.svg';\nimport WarningIcon from '../icons/warning.svg';\nimport WarningMarkIcon from '../icons/warning-mark.svg';\nimport ScheduleIcon from '../icons/schedule.svg';\nimport HomeIcon from '../icons/home.svg';\nimport FolderIcon from '../icons/folder.svg';\nimport SortDefaultIcon from '../icons/sort-default.svg';\nimport SortAscIcon from '../icons/sort-asc.svg';\nimport SortDescIcon from '../icons/sort-desc.svg';\nimport SettingIcon from '../icons/setting.svg';\nimport PlusCicleIcon from '../icons/plus-cicle.svg';\nimport EllipsisVIcon from '../icons/ellipsis-v.svg';\nimport ExpandAltIcon from '../icons/expand-alt.svg';\nimport CompressAltIcon from '../icons/compress-alt.svg';\nimport TransparentIcon from '../icons/transparent.svg';\nimport LoadingOutline from '../icons/loading-outline.svg';\nimport Star from '../icons/star.svg';\nimport AlertSuccess from '../icons/alert-success.svg';\nimport AlertInfo from '../icons/alert-info.svg';\nimport AlertWarning from '../icons/alert-warning.svg';\nimport AlertDanger from '../icons/alert-danger.svg';\nimport FunctionIcon from '../icons/function.svg';\nimport InputClearIcon from '../icons/input-clear.svg';\nimport SliderHandleIcon from '../icons/slider-handle-icon.svg';\nimport TrashIcon from '../icons/trash.svg';\n\n// 兼容原来的用法,后续不直接试用。\n\nexport const closeIcon = <CloseIcon />;\nexport const unDoIcon = <UnDoIcon />;\nexport const reDoIcon = <ReDoIcon />;\nexport const enterIcon = <EnterIcon />;\nexport const volumeIcon = <VolumeIcon />;\nexport const muteIcon = <MuteIcon />;\nexport const playIcon = <PlayIcon />;\nexport const pauseIcon = <PauseIcon />;\nexport const leftArrowIcon = <LeftArrowIcon />;\nexport const rightArrowIcon = <RightArrowIcon />;\nconst iconFactory: {\n [propName: string]: React.ReactType<{}>;\n} = {};\n\nexport function getIcon(key: string) {\n return iconFactory[key];\n}\n\nexport function hasIcon(iconName: string) {\n return !!getIcon(iconName);\n}\n\nexport function registerIcon(key: string, component: React.ReactType<{}>) {\n iconFactory[key] = component;\n}\n\nregisterIcon('close', CloseIcon);\nregisterIcon('close-small', CloseSmallIcon);\nregisterIcon('status-close', StatusCloseIcon);\nregisterIcon('undo', UnDoIcon);\nregisterIcon('redo', ReDoIcon);\nregisterIcon('enter', EnterIcon);\nregisterIcon('volume', VolumeIcon);\nregisterIcon('mute', MuteIcon);\nregisterIcon('play', PlayIcon);\nregisterIcon('pause', PauseIcon);\nregisterIcon('left-arrow', LeftArrowIcon);\nregisterIcon('right-arrow', RightArrowIcon);\nregisterIcon('prev', LeftArrowIcon);\nregisterIcon('next', RightArrowIcon);\nregisterIcon('check', CheckIcon);\nregisterIcon('plus', PlusIcon);\nregisterIcon('add', PlusIcon);\nregisterIcon('minus', MinusIcon);\nregisterIcon('pencil', PencilIcon);\nregisterIcon('view', ViewIcon);\nregisterIcon('remove', RemoveIcon);\nregisterIcon('retry', RetryIcon);\nregisterIcon('upload', UploadIcon);\nregisterIcon('download', DownloadIcon);\nregisterIcon('file', FileIcon);\nregisterIcon('status-success', StatusSuccessIcon);\nregisterIcon('status-fail', StatusFailIcon);\nregisterIcon('status-info', StatusInfoIcon);\nregisterIcon('status-warning', StatusWarningIcon);\nregisterIcon('success', SuccessIcon);\nregisterIcon('fail', FailIcon);\nregisterIcon('warning', WarningIcon);\nregisterIcon('warning-mark', WarningMarkIcon);\nregisterIcon('search', SearchIcon);\nregisterIcon('back', BackIcon);\nregisterIcon('move', MoveIcon);\nregisterIcon('info', InfoIcon);\nregisterIcon('info-circle', InfoCircleIcon);\nregisterIcon('location', LocationIcon);\nregisterIcon('drag-bar', DragBarIcon);\nregisterIcon('reload', ReloadIcon);\nregisterIcon('exchange', ExchangeIcon);\nregisterIcon('columns', ColmunsIcon);\nregisterIcon('calendar', CalendarIcon);\nregisterIcon('clock', ClockIcon);\nregisterIcon('copy', CopyIcon);\nregisterIcon('filter', FilterIcon);\nregisterIcon('column-filter', ColumnFilterIcon);\nregisterIcon('caret', CaretIcon);\nregisterIcon('right-arrow-bold', RightArrowBoldIcon);\nregisterIcon('zoom-in', ZoomInIcon);\nregisterIcon('zoom-out', ZoomOutIcon);\nregisterIcon('question', QuestionIcon);\nregisterIcon('question-mark', QuestionMarkIcon);\nregisterIcon('window-restore', WindowRestoreIcon);\nregisterIcon('schedule', ScheduleIcon);\nregisterIcon('home', HomeIcon);\nregisterIcon('folder', FolderIcon);\nregisterIcon('sort-default', SortDefaultIcon);\nregisterIcon('sort-asc', SortAscIcon);\nregisterIcon('sort-desc', SortDescIcon);\nregisterIcon('setting', SettingIcon);\nregisterIcon('plus-cicle', PlusCicleIcon);\nregisterIcon('ellipsis-v', EllipsisVIcon);\nregisterIcon('expand-alt', ExpandAltIcon);\nregisterIcon('compress-alt', CompressAltIcon);\nregisterIcon('transparent', TransparentIcon);\nregisterIcon('loading-outline', LoadingOutline);\nregisterIcon('star', Star);\nregisterIcon('alert-success', AlertSuccess);\nregisterIcon('alert-info', AlertInfo);\nregisterIcon('alert-warning', AlertWarning);\nregisterIcon('alert-danger', AlertDanger);\nregisterIcon('tree-down', TreeDownIcon);\nregisterIcon('function', FunctionIcon);\nregisterIcon('input-clear', InputClearIcon);\nregisterIcon('slider-handle', SliderHandleIcon);\nregisterIcon('cloud-upload', CloudUploadIcon);\nregisterIcon('image', ImageIcon);\nregisterIcon('refresh', RefreshIcon);\nregisterIcon('trash', TrashIcon);\n\nexport function Icon({\n icon,\n className,\n ...rest\n}: {\n icon: string;\n} & React.ComponentProps<any>) {\n // jest 运行环境下,把指定的 icon 也输出到 snapshot 中。\n if (typeof jest !== 'undefined') {\n rest.icon = icon;\n }\n\n const Component = getIcon(icon);\n return Component ? (\n <Component {...rest} className={`${className || ''} icon-${icon}`} />\n ) : (\n <span className=\"text-danger\">没有 icon {icon}</span>\n );\n}\n\nexport {\n InputClearIcon,\n CloseIcon,\n UnDoIcon,\n ReDoIcon,\n EnterIcon,\n VolumeIcon,\n MuteIcon,\n PlayIcon,\n PauseIcon,\n LeftArrowIcon,\n RightArrowIcon,\n CheckIcon,\n PlusIcon,\n MinusIcon,\n PencilIcon,\n FunctionIcon\n};\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/factory.d.ts
CHANGED
@@ -46,6 +46,7 @@ export interface RenderSchemaFilter {
|
|
46
46
|
}
|
47
47
|
export interface wsObject {
|
48
48
|
url: string;
|
49
|
+
responseKey?: string;
|
49
50
|
body?: any;
|
50
51
|
}
|
51
52
|
export interface RenderOptions {
|
@@ -81,6 +82,10 @@ export interface RenderOptions {
|
|
81
82
|
* 过滤 html 标签,可用来添加 xss 保护逻辑
|
82
83
|
*/
|
83
84
|
filterHtml?: (input: string) => string;
|
85
|
+
/**
|
86
|
+
* 是否开启 amis 调试
|
87
|
+
*/
|
88
|
+
enableAMISDebug?: boolean;
|
84
89
|
[propName: string]: any;
|
85
90
|
}
|
86
91
|
export interface fetcherConfig {
|
package/lib/factory.js
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
"use strict";
|
2
|
+
var _a, _b;
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
4
|
exports.RendererEnv = exports.getRendererByName = exports.getRenderers = exports.resolveRenderer = exports.updateEnv = exports.clearStoresCache = exports.render = exports.loadRenderer = exports.unRegisterRenderer = exports.registerRenderer = exports.Renderer = exports.filterSchema = exports.addSchemaFilter = void 0;
|
4
5
|
var tslib_1 = require("tslib");
|
@@ -23,6 +24,7 @@ Object.defineProperty(exports, "RendererEnv", { enumerable: true, get: function
|
|
23
24
|
var envOverwrite_1 = require("./envOverwrite");
|
24
25
|
var renderer_event_1 = require("./utils/renderer-event");
|
25
26
|
var Action_1 = require("./actions/Action");
|
27
|
+
var debug_1 = require("./utils/debug");
|
26
28
|
var renderers = [];
|
27
29
|
var rendererNames = [];
|
28
30
|
var schemaFilters = [];
|
@@ -105,6 +107,7 @@ var defaultOptions = {
|
|
105
107
|
affixOffsetBottom: 0,
|
106
108
|
richTextToken: '',
|
107
109
|
useMobileUI: true,
|
110
|
+
enableAMISDebug: (_b = (_a = window.enableAMISDebug) !== null && _a !== void 0 ? _a : location.search.indexOf('amisDebug=1') !== -1) !== null && _b !== void 0 ? _b : false,
|
108
111
|
loadRenderer: loadRenderer,
|
109
112
|
rendererEventListeners: [],
|
110
113
|
fetcher: function () {
|
@@ -120,8 +123,20 @@ var defaultOptions = {
|
|
120
123
|
}
|
121
124
|
};
|
122
125
|
socket_1.onmessage = function (event) {
|
126
|
+
var _a;
|
123
127
|
if (event.data) {
|
124
|
-
|
128
|
+
var data = void 0;
|
129
|
+
try {
|
130
|
+
data = JSON.parse(event.data);
|
131
|
+
}
|
132
|
+
catch (error) { }
|
133
|
+
if (typeof data !== 'object') {
|
134
|
+
var key = ws.responseKey || 'data';
|
135
|
+
data = (_a = {},
|
136
|
+
_a[key] = event.data,
|
137
|
+
_a);
|
138
|
+
}
|
139
|
+
onMessage(data);
|
125
140
|
}
|
126
141
|
};
|
127
142
|
socket_1.onerror = onError;
|
@@ -306,6 +321,12 @@ function render(schema, props, options, pathPrefix) {
|
|
306
321
|
options = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, defaultOptions), options), { fetcher: options.fetcher
|
307
322
|
? (0, api_1.wrapFetcher)(options.fetcher, options.tracker)
|
308
323
|
: defaultOptions.fetcher, confirm: (0, helper_1.promisify)(options.confirm || defaultOptions.confirm || window.confirm), locale: locale, translate: translate });
|
324
|
+
if (options.enableAMISDebug) {
|
325
|
+
// 因为里面还有 render
|
326
|
+
setTimeout(function () {
|
327
|
+
(0, debug_1.enableDebug)();
|
328
|
+
}, 10);
|
329
|
+
}
|
309
330
|
store = index_1.RendererStore.create({}, options);
|
310
331
|
stores[options.session || 'global'] = store;
|
311
332
|
}
|
@@ -327,14 +348,14 @@ function render(schema, props, options, pathPrefix) {
|
|
327
348
|
// 进行文本替换
|
328
349
|
if (env.replaceText && (0, helper_1.isObject)(env.replaceText)) {
|
329
350
|
var replaceKeys_1 = Object.keys(env.replaceText);
|
330
|
-
replaceKeys_1.sort().
|
351
|
+
replaceKeys_1.sort(function (a, b) { return b.length - a.length; }); // 避免用户将短的放前面
|
331
352
|
var replaceTextIgnoreKeys_1 = new Set(env.replaceTextIgnoreKeys || []);
|
332
353
|
(0, helper_1.JSONTraverse)(schema, function (value, key, object) {
|
333
354
|
if (typeof value === 'string' && !replaceTextIgnoreKeys_1.has(key)) {
|
334
355
|
for (var _i = 0, replaceKeys_2 = replaceKeys_1; _i < replaceKeys_2.length; _i++) {
|
335
356
|
var replaceKey = replaceKeys_2[_i];
|
336
357
|
if (~value.indexOf(replaceKey)) {
|
337
|
-
object[key] = value.replaceAll(replaceKey, env.replaceText[replaceKey]);
|
358
|
+
value = object[key] = value.replaceAll(replaceKey, env.replaceText[replaceKey]);
|
338
359
|
}
|
339
360
|
}
|
340
361
|
}
|