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
@@ -133,17 +133,17 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
133
133
|
}) }, text || label.slice(current, pointer)));
|
134
134
|
})
|
135
135
|
: label,
|
136
|
-
!isEnd && '>'));
|
136
|
+
!isEnd && ' > '));
|
137
137
|
})
|
138
138
|
: option[labelField || 'label']));
|
139
139
|
};
|
140
140
|
NestedSelectControl.prototype.handleOptionClick = function (option) {
|
141
141
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
142
|
-
var _a, multiple, onChange, joinValues, extractValue, valueField, value, isPrevented;
|
142
|
+
var _a, multiple, onChange, joinValues, extractValue, valueField, onlyLeaf, value, isPrevented;
|
143
143
|
return (0, tslib_1.__generator)(this, function (_b) {
|
144
144
|
switch (_b.label) {
|
145
145
|
case 0:
|
146
|
-
_a = this.props, multiple = _a.multiple, onChange = _a.onChange, joinValues = _a.joinValues, extractValue = _a.extractValue, valueField = _a.valueField;
|
146
|
+
_a = this.props, multiple = _a.multiple, onChange = _a.onChange, joinValues = _a.joinValues, extractValue = _a.extractValue, valueField = _a.valueField, onlyLeaf = _a.onlyLeaf;
|
147
147
|
if (multiple) {
|
148
148
|
return [2 /*return*/];
|
149
149
|
}
|
@@ -152,12 +152,19 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
152
152
|
: extractValue
|
153
153
|
? option[valueField || 'value']
|
154
154
|
: option;
|
155
|
+
if (value === undefined) {
|
156
|
+
return [2 /*return*/];
|
157
|
+
}
|
158
|
+
if (onlyLeaf && option.children) {
|
159
|
+
return [2 /*return*/];
|
160
|
+
}
|
155
161
|
return [4 /*yield*/, this.dispatchEvent('change', {
|
156
162
|
value: value
|
157
163
|
})];
|
158
164
|
case 1:
|
159
165
|
isPrevented = _b.sent();
|
160
166
|
isPrevented || onChange(value);
|
167
|
+
isPrevented || this.handleResultClear();
|
161
168
|
!multiple && this.close();
|
162
169
|
return [2 /*return*/];
|
163
170
|
}
|
@@ -259,6 +266,7 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
259
266
|
case 1:
|
260
267
|
isPrevented = _b.sent();
|
261
268
|
isPrevented || onChange(newValue);
|
269
|
+
isPrevented || this.handleResultClear();
|
262
270
|
return [2 /*return*/];
|
263
271
|
}
|
264
272
|
});
|
@@ -300,7 +308,7 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
300
308
|
return [4 /*yield*/, this.dispatchEvent('focus', e)];
|
301
309
|
case 1:
|
302
310
|
isPrevented = _b.sent();
|
303
|
-
isPrevented || onFocus && onFocus(e);
|
311
|
+
isPrevented || (onFocus && onFocus(e));
|
304
312
|
_b.label = 2;
|
305
313
|
case 2: return [2 /*return*/];
|
306
314
|
}
|
@@ -320,7 +328,7 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
320
328
|
return [4 /*yield*/, this.dispatchEvent('blur', e)];
|
321
329
|
case 1:
|
322
330
|
isPrevented = _a.sent();
|
323
|
-
isPrevented || onBlur && onBlur(e);
|
331
|
+
isPrevented || (onBlur && onBlur(e));
|
324
332
|
return [2 /*return*/];
|
325
333
|
}
|
326
334
|
});
|
@@ -541,6 +549,7 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
541
549
|
cascade: false,
|
542
550
|
withChildren: false,
|
543
551
|
onlyChildren: false,
|
552
|
+
onlyLeaf: false,
|
544
553
|
searchPromptText: 'Select.searchPromptText',
|
545
554
|
noResultsText: 'noResult',
|
546
555
|
checkAll: true,
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/NestedSelect.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAC1B,kFAA+C;AAC/C,oFAAiD;AACjD,kFAA+C;AAC/C,8EAA2C;AAC3C,gDAA4C;AAC5C,6CAU4B;AAC5B,2CAIyB;AACzB,kDAAwD;AACxD,uCAAsC;AACtC,+CAAoD;AACpD,gEAA6B;AAC7B,oEAAiC;AACjC,wEAAqC;AACrC,mDAAgD;AAChD,oFAAiD;AAwDjD;IAAiD,oDAGhD;IAHD;QAAA,qEA8xBC;QA9wBC,WAAK,GAAsB;YACzB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,EAAE;YACd,KAAK,EAAE,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC;SAC5B,CAAC;;IAywBJ,CAAC;IAtwBC,oCAAM,GAAN,UAAO,GAAQ;QACb,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,gDAAkB,GAAlB,UAAmB,SAA4B;QAC7C,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAC5C,IAAI,CAAC,QAAQ,CAAC;gBACZ,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;aAC5B,CAAC,CAAC;SACJ;IACH,CAAC;IAED,sCAAQ,GAAR,UAAS,MAAc,EAAE,IAAY,EAAE,WAAoB;QACnD,IAAA,KAAyB,IAAI,CAAC,KAAK,EAAlC,UAAU,gBAAA,EAAE,QAAQ,cAAc,CAAC;QAC1C,IAAM,UAAU,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAoB,CAAC;QAEhD,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC7C,QAAQ,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC,CAAC;SAC5B;IACH,CAAC;IAGK,2CAAa,GAAnB,UAAoB,SAAiB,EAAE,SAAmB;QAAnB,0BAAA,EAAA,cAAmB;;;;;;wBAClD,KAAwB,IAAI,CAAC,KAAK,EAAjC,aAAa,mBAAA,EAAE,IAAI,UAAA,CAAe;wBACnB,qBAAM,aAAa,CACvC,SAAS,EACT,IAAA,qBAAY,EAAC,IAAI,4BACZ,SAAS,EACZ,CACH,EAAA;;wBALK,aAAa,GAAG,SAKrB;wBACD,SAAS;wBACT,sBAAO,CAAC,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,CAAA,EAAC;;;;KACnC;IAGD,4CAAc,GAAd,UAAe,CAAwB;QAC9B,IAAA,OAAO,GAAI,IAAI,CAAC,KAAK,QAAd,CAAe;QAC7B,CAAC,CAAC,gBAAgB;YAChB,IAAI,CAAC,QAAQ,CAAC;gBACZ,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;IACP,CAAC;IAGD,+CAAiB,GAAjB;QACE,IAAI,CAAC,QAAQ,CAAC;YACZ,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;IACL,CAAC;IAGD,mCAAK,GAAL;QACE,IAAI,CAAC,QAAQ,CAAC;YACZ,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;IAEK,wCAAU,GAAhB,UAAiB,KAAa,EAAE,CAAiC;;;;;;wBAC3D,KAQA,IAAI,CAAC,KAAK,EAPZ,QAAQ,cAAA,EACR,eAAe,qBAAA,EACf,UAAU,gBAAA,EACV,UAAU,gBAAA,EACV,YAAY,kBAAA,EACZ,SAAS,eAAA,EACT,KAAK,WAAA,CACQ;wBAEf,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;wBAEzB,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAEjC,IAAI,UAAU,EAAE;4BACd,KAAK,GAAI,eAA2B;iCACjC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,EAA3B,CAA2B,CAAC;iCACxC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;yBAC3B;6BAAM,IAAI,YAAY,EAAE;4BACvB,KAAK,GAAI,eAA2B,CAAC,GAAG,CACtC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,EAA3B,CAA2B,CACpC,CAAC;yBACH;wBAEmB,qBAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gCACrD,KAAK,OAAA;6BACN,CAAC,EAAA;;wBAFI,WAAW,GAAG,SAElB;wBACF,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;;;;;KAChC;IAGD,yCAAW,GAAX,UAAY,MAAc,EAAE,GAAS;QAC7B,IAAA,KAMF,IAAI,CAAC,KAAK,EALA,EAAE,gBAAA,EACd,UAAU,gBAAA,EACV,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,iBAAiB,uBACL,CAAC;QACf,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACzC,IAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAE/C,IAAI,iBAAiB,EAAE;YACrB,OAAO,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;SACtC;QACD,IAAM,SAAS,GAAG,IAAA,yBAAgB,EAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAE1D,OAAO,CACL,wCACE,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAClC,GAAG,EAAE,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,IAExC,SAAS;YACR,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;gBACxB,IAAM,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;gBAC1C,IAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC7C,IAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC9C,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,OAAO,CACL,wCAAM,GAAG,EAAE,KAAK;oBACb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;wBACjB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,UAAC,IAAY,EAAE,SAAiB;4BAC9C,IAAM,OAAO,GAAG,OAAO,CAAC;4BACxB,OAAO,IAAI,IAAI,CAAC,MAAM,KAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,IAAI,CAAC,CAAC;4BAClD,OAAO,CACL,wCACE,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,EAAE,CAAC;oCACZ,oCAAoC,EAAE,CAAC,IAAI;iCAC5C,CAAC,IAED,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CACjC,CACR,CAAC;wBACJ,CAAC,CAAC;wBACJ,CAAC,CAAC,KAAK;oBACR,CAAC,KAAK,IAAI,GAAG,CACT,CACR,CAAC;YACJ,CAAC,CAAC;YACJ,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,CAC5B,CACR,CAAC;IACJ,CAAC;IAGK,+CAAiB,GAAvB,UAAwB,MAAc;;;;;;wBAC9B,KACJ,IAAI,CAAC,KAAK,EADL,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,UAAU,gBAAA,EAAE,YAAY,kBAAA,EAAE,UAAU,gBAAA,CAClD;wBAEb,IAAI,QAAQ,EAAE;4BACZ,sBAAO;yBACR;wBAEK,KAAK,GAAG,UAAU;4BACtB,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC;4BAC/B,CAAC,CAAC,YAAY;gCACd,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC;gCAC/B,CAAC,CAAC,MAAM,CAAC;wBAES,qBAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gCACrD,KAAK,OAAA;6BACN,CAAC,EAAA;;wBAFI,WAAW,GAAG,SAElB;wBACF,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAC/B,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;;;;;KAC3B;IAGK,yCAAW,GAAjB,UAAkB,MAAwB,EAAE,KAAc;;;;;;wBAClD,KAUF,IAAI,CAAC,KAAK,EATZ,QAAQ,cAAA,EACR,eAAe,qBAAA,EACf,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,YAAY,kBAAA,EACZ,YAAY,kBAAA,EACZ,YAAY,kBAAA,EACZ,OAAO,aAAA,EACP,OAAO,aAAA,CACM;wBACR,KAAK,GAAI,IAAI,CAAC,KAAK,MAAd,CAAe;wBAEvB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC;wBAElD,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;4BACtB,MAAM,CAAC,QAAQ;4BACf,MAAM,CAAC,QAAQ,CAAC,MAAM;4BACtB,OAAO,KAAK,KAAK,QAAQ,EACzB;4BACA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;gCAChB,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;6BAC7C;iCAAM;gCACL,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;6BAC7B;yBACF;wBAEK,KAAK,GAAG,eAAe,CAAC;wBAKxB,wBAAwB,GAAG,UAAC,MAAwB;4BACxD,OAAA,IAAA,iBAAO,EACL,IAAA,oBAAW,EAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,UAAA,IAAI;gCACzD,OAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;4BAAnD,CAAmD,CACpD,CACF;wBAJD,CAIC,CAAC;wBAEJ,QAAQ;wBACR,iBAAiB;wBACjB,oBAAoB;wBACpB,oBAAoB;wBAEpB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;4BACzB,IAAI,YAAY,EAAE;gCAChB,MAAM,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;6BAC9B;iCAAM,IAAI,YAAY,EAAE;gCACvB,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;6BAC3C;4BACD,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,MAAkB,CAAC;yBACnE;6BAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;4BACzC,IAAI,OAAO,EAAE;gCACX,KAAK,GAAG,IAAA,aAAG,EAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;6BAC9B;iCAAM,IAAI,YAAY,EAAE;gCACvB,MAAM,GAAG,IAAA,oBAAW,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gCACzB,OAAO,GAAI,MAAkB,CAAC,KAAK,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC;gCACxE,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,aAAG,CAAC,CAAC,CAAC,eAAK,CAAC,CAAC,KAAK,EAAE,MAAa,CAAC,CAAC;6BACvD;iCAAM,IAAI,YAAY,EAAE;gCACvB,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;gCACpC,OAAO,GAAI,MAAkB,CAAC,KAAK,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC;gCACxE,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,aAAG,CAAC,CAAC,CAAC,eAAK,CAAC,CAAC,KAAK,EAAE,MAAa,CAAC,CAAC;6BACvD;iCAAM;gCACL,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAA,oBAAW,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAArC,CAAqC,CAAC,CAAC;gCACpE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;6BAC/C;yBACF;6BAAM;4BACL,KAAK,GAAG,IAAA,aAAG,EAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;yBAC9B;wBAED,IAAI,CAAC,OAAO,EAAE;4BACR,OAAO,GAAG,MAAM,CAAC;4BAErB,OAAO,IAAI,EAAE;gCACL,MAAM,GAAG,IAAA,sBAAa,EAAC,OAAO,EAAE,OAAc,CAAC,CAAC;gCACtD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE;oCACjB,yBAAyB;oCAEzB,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAC,KAAU,IAAK,OAAA,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,EAAE;wCAChE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAU;4CACjC,IAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;4CACnC,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE;gDAC5C,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;6CACxB;wCACH,CAAC,CAAC,CAAC;wCAEH,IAAI,CAAC,YAAY,EAAE;4CACjB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yCACpB;wCAED,OAAO,GAAG,MAAM,CAAC;wCACjB,SAAS;qCACV;iCACF;gCACD,MAAM;6BACP;yBACF;wBAEK,QAAQ,GAAG,UAAU;4BACzB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,UAAoB,CAAC,EAA1B,CAA0B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;4BAC/D,CAAC,CAAC,YAAY;gCACd,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,UAAoB,CAAC,EAA1B,CAA0B,CAAC;gCAC/C,CAAC,CAAC,KAAK,CAAC;wBAEU,qBAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gCACrD,KAAK,EAAE,QAAQ;6BAChB,CAAC,EAAA;;wBAFI,WAAW,GAAG,SAElB;wBACF,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;;;;;KACnC;IAED,wCAAU,GAAV,UAAW,OAAgB;QAA3B,iBAQC;QAPO,IAAA,KAAgD,IAAI,CAAC,KAAK,EAAzD,eAAe,qBAAA,EAAE,YAAY,kBAAA,EAAE,YAAY,kBAAc,CAAC;QACjE,OAAO,OAAO,CAAC,KAAK,CAAC,UAAA,MAAM;YACzB,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACrD,OAAO,KAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aACzC;YACD,OAAO,eAAe,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,MAAM,EAAf,CAAe,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4CAAc,GAAd,UAAe,OAAgB;QAA/B,iBASC;QARC,OAAO,OAAO,CAAC,IAAI,CAAC,UAAA,MAAM;YACxB,IAAM,sBAAsB,GAC1B,MAAM,CAAC,QAAQ,IAAI,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1D,OAAO,CACL,sBAAsB;gBACtB,KAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,MAAM,EAAf,CAAe,CAAC,CACzD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oCAAM,GAAN;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QACxC,MAAM,IAAI,MAAM,EAAE,CAAC;IACrB,CAAC;IAGK,qCAAO,GAAb,UAAc,CAAM;;;;;;wBACZ,KAAsB,IAAI,CAAC,KAAK,EAA/B,OAAO,aAAA,EAAE,QAAQ,cAAA,CAAe;6BAEnC,CAAA,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA,EAAjC,wBAAiC;wBACnC,IAAI,CAAC,QAAQ,CAAC;4BACZ,SAAS,EAAE,IAAI;yBAChB,CAAC,CAAC;wBAEiB,qBAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,EAAA;;wBAAlD,WAAW,GAAG,SAAoC;wBACxD,WAAW,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;;;;;;KAExC;IAGK,oCAAM,GAAZ,UAAa,CAAM;;;;;;wBACV,MAAM,GAAI,IAAI,CAAC,KAAK,OAAd,CAAe;wBAE5B,IAAI,CAAC,QAAQ,CAAC;4BACZ,SAAS,EAAE,KAAK;yBACjB,CAAC,CAAC;wBAEiB,qBAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,EAAA;;wBAAjD,WAAW,GAAG,SAAmC;wBACvD,WAAW,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;;;;;KACpC;IAGD,uCAAS,GAAT;QACE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,IAAA,uBAAW,EAAC,IAAI,CAAgB,CAAC;SAChD;QACD,OAAO,IAAI,CAAC,MAAqB,CAAC;IACpC,CAAC;IAGD,4CAAc,GAAd,UAAe,CAAsB;QACnC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;YACjB,IAAI,CAAC,cAAc,CAAC,CAAQ,CAAC,CAAC;YAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;SACpB;IACH,CAAC;IAGD,gDAAkB,GAAlB,UAAmB,KAA0B;QAC3C,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACnC,IAAA,KAA8B,IAAI,CAAC,KAAK,EAAvC,QAAQ,cAAA,EAAE,eAAe,qBAAc,CAAC;QAE/C,IACE,KAAK,CAAC,GAAG,KAAK,WAAW;YACzB,CAAC,UAAU;YACX,eAAe,CAAC,MAAM;YACtB,QAAQ,EACR;YACA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC7C;IACH,CAAC;IAGD,+CAAiB,GAAjB,UAAkB,UAAkB;QAC5B,IAAA,KAAoC,IAAI,CAAC,KAAK,EAA7C,OAAO,aAAA,EAAE,UAAU,gBAAA,EAAE,UAAU,gBAAc,CAAC;QAErD,IAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,aAAa,GACf,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC/B,CAAC,CAAC,IAAA,mBAAU,EACR,OAAO,EACP,UAAA,MAAM;gBACJ,OAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;oBAC1C,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAF7C,CAE6C,EAC/C,CAAC,EACD,IAAI,CACL;YACH,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAEvB,IAAI,CAAC,QAAQ,CAAC;YACZ,UAAU,YAAA;YACV,KAAK,EAAE,CAAC,aAAa,CAAC;SACvB,CAAC,CAAC;IACL,CAAC;IAGK,gDAAkB,GAAxB,UAAyB,KAAoB;;;;;;wBACrC,KAOF,IAAI,CAAC,KAAK,EANZ,UAAU,gBAAA,EACV,YAAY,kBAAA,EACZ,SAAS,eAAA,EACT,UAAU,gBAAA,EACV,QAAQ,cAAA,EACR,QAAQ,cAAA,CACK;wBAEX,QAAQ,GAAQ,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BAE3D,CAAA,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA,EAA7B,wBAA6B;wBACX,qBAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gCACrD,KAAK,EAAE,EAAE;6BACV,CAAC,EAAA;;wBAFI,gBAAc,SAElB;wBACF,aAAW,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;wBAC5B,sBAAO;;wBAGT,IAAI,UAAU,IAAI,YAAY,EAAE;4BAC9B,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,EAA3B,CAA2B,CAAC,CAAC;yBAC3D;wBAED,IAAI,UAAU,EAAE;4BACd,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;yBAC5C;wBAEmB,qBAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gCACrD,KAAK,EAAE,QAAQ;6BAChB,CAAC,EAAA;;wBAFI,WAAW,GAAG,SAElB;wBACF,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;;;;;KACnC;IAED,2CAAa,GAAb;QAAA,iBAgHC;QA/GO,IAAA,KAaF,IAAI,CAAC,KAAK,EAZZ,QAAQ,cAAA,EACR,eAAe,qBAAA,EACH,EAAE,gBAAA,EACL,WAAW,aAAA,EACpB,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,aAAa,mBAAA,EACF,EAAE,eAAA,EACb,UAAU,gBAAA,EACV,aAAa,mBAAA,EACb,OAAO,aAAA,EACP,YAAY,kBACA,CAAC;QACf,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC;QAEpD,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAE/B,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAE9C,OAAO,CACL,8DACG,KAAK,CAAC,GAAG,CAAC,UAAC,OAAO,EAAE,KAAK,IAAK,OAAA,CAC7B,uCAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC;YAC/D,QAAQ,IAAI,QAAQ,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CACrC,uCAAK,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,UAAU,CAAC;gBACnD,8BAAC,kBAAQ,IACP,IAAI,EAAC,IAAI,EACT,QAAQ,EAAE,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,EAAE,OAAO,CAAC,EAC9C,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,cAAc,IAAI,CAAC,UAAU,GAC5B;gBACZ,wCAAM,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,EAAE,OAAO,CAAC,IAChD,EAAE,CAAC,aAAa,CAAC,CACb,CACH,CACP,CAAC,CAAC,CAAC,IAAI;YAEP,OAAO,CAAC,GAAG,CAAC,UAAC,MAAc,EAAE,GAAW;gBACvC,IAAM,SAAS,GAAG,IAAA,yBAAgB,EAAC,WAAW,EAAE,MAAa,CAAC,CAAC;gBAC/D,IAAM,aAAa,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CACnC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAhC,CAAgC,CACzC,CAAC;gBACF,IAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,IAAI,aAAa,CAAC;gBAChE,IAAM,cAAc,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAf,CAAe,CAAC,CAAC;gBAEhE,IAAI,YAAY,GACd,WAAW,IAAI,MAAM,CAAC,QAAQ,IAAI,cAAc,IAAI,CAAC,CAAC,QAAQ,CAAC;gBACjE,IAAI,mBAAmB,GAAG,CAAC,CAAC,CAC1B,MAAM,CAAC,QAAQ,IAAI,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CACxD,CAAC;gBACF,IAAI,WAAW,GACb,WAAW,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAEpD,IACE,CAAC,WAAW;oBACZ,YAAY;oBACZ,MAAM,CAAC,QAAQ;oBACf,KAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAChC;oBACA,WAAW,GAAG,IAAI,CAAC;iBACpB;gBAED,OAAO,CACL,uCACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE;wBACnC,WAAW,EACT,CAAC,YAAY;4BACb,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,CAAC;qBACrD,CAAC,EACF,YAAY,EAAE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,EAAE,MAAM,EAAE,KAAK,CAAC;oBAExD,QAAQ,CAAC,CAAC,CAAC,CACV,8BAAC,kBAAQ,IACP,IAAI,EAAC,IAAI,EACT,QAAQ,EAAE,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EACpD,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,EAC7B,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,EACzD,OAAO,EAAE,CAAC,WAAW,EACrB,QAAQ,EAAE,YAAY,GACZ,CACb,CAAC,CAAC,CAAC,IAAI;oBAER,uCACE,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE;4BACxC,aAAa,EAAE,YAAY;yBAC5B,CAAC,EACF,OAAO,EAAE;4BACP,OAAA,CAAC,YAAY;gCACb,CAAC,QAAQ;oCACP,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC;oCACjC,CAAC,CAAC,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;wBAHnC,CAGmC,IAGpC,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,CAC1B;oBAEL,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAC3C,uCAAK,SAAS,EAAE,EAAE,CAAC,+BAA+B,CAAC;wBACjD,8BAAC,YAAI,IAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAC,MAAM,GAAG,CACxC,CACP,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;YACJ,CAAC,CAAC,CACE,CACP,EArF8B,CAqF9B,CAAC,CACD,CACJ,CAAC;IACJ,CAAC;IAED,gDAAkB,GAAlB;QAAA,iBAwFC;QAvFO,IAAA,KAAsB,IAAI,CAAC,KAAK,EAA/B,KAAK,WAAA,EAAE,UAAU,gBAAc,CAAC;QACjC,IAAA,KAUF,IAAI,CAAC,KAAK,EATA,EAAE,gBAAA,EACL,WAAW,aAAA,EACpB,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,eAAe,qBAAA,EACf,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,YAAY,kBAAA,EACZ,aAAa,mBACD,CAAC;QACf,IAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAC/C,IAAM,oBAAoB,GAAG,IAAA,oBAAW,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAA,MAAM;YAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,IAAM,UAAU,GAAG,CACjB,uCAAK,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,IACpC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAC7B,oBAAoB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,KAAK;YACrC,IAAM,SAAS,GAAG,IAAA,yBAAgB,EAAC,WAAW,EAAE,MAAa,CAAC,CAAC;YAE/D,IAAM,WAAW,GAAG,OAAO;gBACzB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,QAAQ;qBACR,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAhC,CAAgC,CAAC,CAAA,CAAC;YAE9D,IAAI,cAAc,GAChB,WAAW;gBACX,MAAM,CAAC,QAAQ;gBACf,CAAC,CAAC,QAAQ;iBACV,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAf,CAAe,CAAC,CAAA,CAAC;YAE3C,IAAI,iBAAiB,GAAG,CAAC,CAAC,CACxB,MAAM,CAAC,QAAQ,IAAI,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CACxD,CAAC;YAEF,IAAI,SAAS,GAAG,WAAW,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAElE,IACE,CAAC,SAAS;gBACV,YAAY;gBACZ,MAAM,CAAC,QAAQ;gBACf,KAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAChC;gBACA,SAAS,GAAG,IAAI,CAAC;aAClB;YAED,OAAO,CACL,uCACE,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE;oBACnC,WAAW,EACT,CAAC,cAAc;wBACf,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,CAAC;iBACjD,CAAC,EACF,GAAG,EAAE,KAAK;gBAEV,uCACE,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE;wBACxC,aAAa,EAAE,cAAc;qBAC9B,CAAC,EACF,OAAO,EAAE;wBACP,CAAC,cAAc;4BACb,CAAC,QAAQ;gCACP,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;gCACxC,CAAC,CAAC,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;oBACxC,CAAC,IAEA,KAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CACnC,CACF,CACP,CAAC;QACJ,CAAC,CAAC,CACH,CAAC,CAAC,CAAC,CACF,uCACE,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE;gBACnC,WAAW,EAAE,IAAI;aAClB,CAAC,IAED,aAAa,CACV,CACP,CACG,CACP,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,0CAAY,GAAZ,UAAa,MAAc,EAAE,KAAa,EAAE,CAAa;QAClD,IAAA,KAAK,GAAI,IAAI,CAAC,KAAK,MAAd,CAAe;QACzB,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QAElB,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;YAC/B,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;gBAChB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;aAClC;iBAAM;gBACL,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACtB;SACF;aAAM;YACL,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC;IACpD,CAAC;IAED,yCAAW,GAAX;QAAA,iBA6CC;QA5CO,IAAA,KAMF,IAAI,CAAC,KAAK,EALZ,gBAAgB,sBAAA,EACL,EAAE,eAAA,EACD,EAAE,gBAAA,EACd,OAAO,aAAA,EACP,MAAM,YACM,CAAC;QACf,IAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACzC,IAAI,aAAa,GAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QAElD,IAAI,aAAa,EAAE;YACjB,aAAa,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;SAC3D;QAED,IAAI,IAAI,GAAG,CACT,8BAAC,qBAAS,IAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,IAC/D,UAAC,GAAQ;YACR,OAAO,CACL,uCAAK,SAAS,EAAE,EAAE,CAAC,wBAAwB,CAAC,EAAE,GAAG,EAAE,GAAG,IACnD,QAAQ,CAAC,CAAC,CAAC,CACV,KAAI,CAAC,kBAAkB,EAAE,CAC1B,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CACnB,KAAI,CAAC,aAAa,EAAE,CACrB,CAAC,CAAC,CAAC,CACF,uCAAK,SAAS,EAAE,EAAE,CAAC,uBAAuB,CAAC,IACxC,aAAa,CACV,CACP,CACG,CACP,CAAC;QACJ,CAAC,CACS,CACb,CAAC;QAEF,OAAO,CACL,8BAAC,iBAAO,IACN,MAAM,EAAE,IAAI,CAAC,SAAS,EACtB,SAAS,EAAE,gBAAgB,IAAI,CAAC,cAAM,OAAA,IAAA,uBAAW,EAAC,KAAI,CAAC,EAAjB,CAAiB,CAAC,EACxD,SAAS,EAAE,MAAM,EACjB,IAAI;YAEJ,8BAAC,iBAAO,IAAC,SAAS,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAG,IAAI,CAAW,CACxD,CACX,CAAC;IACJ,CAAC;IAED,oCAAM,GAAN;;QACQ,IAAA,KAgBF,IAAI,CAAC,KAAK,EAfZ,SAAS,eAAA,EACT,QAAQ,cAAA,EACI,EAAE,gBAAA,EACd,QAAQ,cAAA,EACR,WAAW,iBAAA,EACA,EAAE,eAAA,EACb,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,YAAY,kBAAA,EACZ,eAAe,qBAAA,EACf,SAAS,eAAA,EACT,OAAO,aAAA,EACP,UAAU,gBAAA,EACV,WAAW,iBAAA,EACX,GAAG,SACS,CAAC;QAEf,IAAM,QAAQ,GAAG,WAAW,IAAI,IAAA,iBAAQ,GAAE,CAAC;QAC3C,OAAO,CACL,uCAAK,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC;YAClD,8BAAC,sBAAS,IACR,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,IAAI,CAAC,MAAM,EAChB,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,GAAG,CAAC,EACnC,SAAS,EAAE,EAAE,CAAC,cAAc;wBAC1B,sBAAsB,EAAE,MAAM;wBAC9B,sBAAsB,EAAE,CAAC,QAAQ;wBACjC,qBAAqB,EAAE,QAAQ;wBAC/B,0BAA0B,EAAE,UAAU;wBACtC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;wBAChC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;;oBAClC,GAAC,8BAAuB,IAAA,gBAAO,EAAC,UAAU,CAAC,CAAE,IAAG,UAAU;wBAC1D,EACF,MAAM,EACJ,QAAQ;oBACN,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,eAAe,CAAC,MAAM;wBACxB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;wBACpB,CAAC,CAAC,EAAE,EAER,aAAa,EAAE,IAAI,CAAC,cAAc,EAClC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAC5B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAChC,cAAc,EAAE,IAAI,CAAC,kBAAkB,EACvC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAC/B,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,UAAU,EAAE,IAAI,CAAC,cAAc,EAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAClC,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,IAAI,EACtB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,EAAE,IAEnB,OAAO,CAAC,CAAC,CAAC,8BAAC,oBAAO,IAAC,IAAI,EAAC,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAClC;YACX,QAAQ,CAAC,CAAC,CAAC,CACV,8BAAC,eAAK,IACJ,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,EACnC,SAAS,EACP,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,EAElE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAC3B,MAAM,EAAE,IAAI,CAAC,KAAK,EAClB,WAAW,EAAE,KAAK,EAClB,SAAS,EAAE,KAAK;gBAEhB,8BAAC,kBAAQ,0BACP,OAAO,EAAE,IAAI,CAAC,KAAK,IACf,IAAI,CAAC,KAAK,IACd,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EACnC,KAAK,EAAE,eAAe,IACtB,CACI,CACT,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CACxB,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;IACJ,CAAC;;IAzxBM,gCAAY,GAA+B;QAChD,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,KAAK;QACnB,gBAAgB,EAAE,yBAAyB;QAC3C,aAAa,EAAE,UAAU;QACzB,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,IAAI;QACnB,iBAAiB,EAAE,KAAK;KACzB,CAAC;IAWF;QADC,iBAAQ;;;;qDAGR;IAoBD;QADC,iBAAQ;;;;4DAWR;IAGD;QADC,iBAAQ;;0EACS,eAAK,oBAAL,eAAK,CAAC,UAAU;;6DAMjC;IAGD;QADC,iBAAQ;;;;gEAKR;IAGD;QADC,iBAAQ;;;;oDAKR;IAkCD;QADC,iBAAQ;;0EACW,eAAM,oBAAN,eAAM;;0DAoDzB;IAGD;QADC,iBAAQ;;0EACuB,eAAM,oBAAN,eAAM;;gEAmBrC;IAGD;QADC,iBAAQ;;;;0DA+GR;IA6BD;QADC,iBAAQ;;;;sDAYR;IAGD;QADC,iBAAQ;;;;qDAUR;IAGD;QADC,iBAAQ;;;;wDAMR;IAGD;QADC,iBAAQ;;0EACS,eAAK,oBAAL,eAAK,CAAC,aAAa;;6DAKpC;IAGD;QADC,iBAAQ;;0EACiB,eAAK,oBAAL,eAAK,CAAC,aAAa;;iEAY5C;IAGD;QADC,iBAAQ;;;;gEAuBR;IAGD;QADC,iBAAQ;;0EACuB,KAAK,oBAAL,KAAK;;iEAgCpC;IAmWH,0BAAC;CAAA,AA9xBD,CAAiD,eAAK,CAAC,SAAS,GA8xB/D;kBA9xBoB,mBAAmB;AAmyBxC;IAAiD,4DAAmB;IAApE;;IAAsE,CAAC;IAA1D,2BAA2B;QAHvC,IAAA,wBAAc,EAAC;YACd,IAAI,EAAE,eAAe;SACtB,CAAC;OACW,2BAA2B,CAA+B;IAAD,kCAAC;CAAA,AAAvE,CAAiD,mBAAmB,GAAG;AAA1D,kEAA2B;AAIxC;IAAmD,8DAAmB;IAAtE;;IAAwE,CAAC;IAA5D,6BAA6B;QAHzC,IAAA,wBAAc,EAAC;YACd,IAAI,EAAE,iBAAiB;SACxB,CAAC;OACW,6BAA6B,CAA+B;IAAD,oCAAC;CAAA,AAAzE,CAAmD,mBAAmB,GAAG;AAA5D,sEAA6B",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport Overlay from '../../components/Overlay';\nimport Checkbox from '../../components/Checkbox';\nimport PopOver from '../../components/PopOver';\nimport PopUp from '../../components/PopUp';\nimport {Icon} from '../../components/icons';\nimport {\n autobind,\n flattenTree,\n filterTree,\n string2regExp,\n getTreeAncestors,\n getTreeParent,\n ucFirst,\n isMobile,\n createObject\n} from '../../utils/helper';\nimport {\n FormOptionsControl,\n OptionsControl,\n OptionsControlProps\n} from '../Form/Options';\nimport {Option, Options} from '../../components/Select';\nimport {findDOMNode} from 'react-dom';\nimport {ResultBox, Spinner} from '../../components';\nimport xor from 'lodash/xor';\nimport union from 'lodash/union';\nimport compact from 'lodash/compact';\nimport {RootClose} from '../../utils/RootClose';\nimport Cascader from '../../components/Cascader';\nimport {Action} from '../../types';\n\n/**\n * Nested Select\n * 文档:https://baidu.gitee.io/amis/docs/components/form/nested-select\n */\nexport interface NestedSelectControlSchema extends FormOptionsControl {\n type: 'nested-select';\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n /**\n * 弹框的 css 类\n */\n menuClassName?: string;\n\n /**\n * 父子之间是否完全独立。\n */\n cascade?: boolean;\n\n /**\n * 选父级的时候是否把子节点的值也包含在内。\n */\n withChildren?: boolean;\n\n /**\n * 选父级的时候,是否只把子节点的值包含在内\n */\n onlyChildren?: boolean;\n\n /**\n * 是否隐藏选择框中已选中节点的祖先节点的文本信息\n */\n hideNodePathLabel?: boolean;\n}\n\nexport interface NestedSelectProps extends OptionsControlProps {\n cascade?: boolean;\n noResultsText?: string;\n withChildren?: boolean;\n onlyChildren?: boolean;\n hideNodePathLabel?: boolean;\n useMobileUI?: boolean;\n}\n\nexport interface NestedSelectState {\n isOpened?: boolean;\n isFocused?: boolean;\n inputValue?: string;\n stack: Array<Array<Option>>;\n}\n\nexport default class NestedSelectControl extends React.Component<\n NestedSelectProps,\n NestedSelectState\n> {\n static defaultProps: Partial<NestedSelectProps> = {\n cascade: false,\n withChildren: false,\n onlyChildren: false,\n searchPromptText: 'Select.searchPromptText',\n noResultsText: 'noResult',\n checkAll: true,\n checkAllLabel: '全选',\n hideNodePathLabel: false\n };\n target: any;\n input: HTMLInputElement;\n state: NestedSelectState = {\n isOpened: false,\n isFocused: false,\n inputValue: '',\n stack: [this.props.options]\n };\n\n @autobind\n domRef(ref: any) {\n this.target = ref;\n }\n\n componentDidUpdate(prevProps: NestedSelectProps) {\n if (prevProps.options !== this.props.options) {\n this.setState({\n stack: [this.props.options]\n });\n }\n }\n\n doAction(action: Action, data: object, throwErrors: boolean) {\n const {resetValue, onChange} = this.props;\n const actionType = action?.actionType as string;\n\n if (!!~['clear', 'reset'].indexOf(actionType)) {\n onChange(resetValue ?? '');\n }\n }\n\n @autobind\n async dispatchEvent(eventName: string, eventData: any = {}) {\n const {dispatchEvent, data} = this.props;\n const rendererEvent = await dispatchEvent(\n eventName,\n createObject(data, {\n ...eventData\n })\n );\n // 返回阻塞标识\n return !!rendererEvent?.prevented;\n }\n\n @autobind\n handleOutClick(e: React.MouseEvent<any>) {\n const {options} = this.props;\n e.defaultPrevented ||\n this.setState({\n isOpened: true\n });\n }\n\n @autobind\n handleResultClear() {\n this.setState({\n inputValue: undefined\n });\n }\n\n @autobind\n close() {\n this.setState({\n isOpened: false\n });\n }\n\n async removeItem(index: number, e?: React.MouseEvent<HTMLElement>) {\n let {\n onChange,\n selectedOptions,\n joinValues,\n valueField,\n extractValue,\n delimiter,\n value\n } = this.props;\n\n e && e.stopPropagation();\n\n selectedOptions.splice(index, 1);\n\n if (joinValues) {\n value = (selectedOptions as Options)\n .map(item => item[valueField || 'value'])\n .join(delimiter || ',');\n } else if (extractValue) {\n value = (selectedOptions as Options).map(\n item => item[valueField || 'value']\n );\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value\n });\n isPrevented || onChange(value);\n }\n\n @autobind\n renderValue(option: Option, key?: any) {\n const {\n classnames: cx,\n labelField,\n valueField,\n options,\n hideNodePathLabel\n } = this.props;\n const inputValue = this.state.inputValue;\n const regexp = string2regExp(inputValue || '');\n\n if (hideNodePathLabel) {\n return option[labelField || 'label'];\n }\n const ancestors = getTreeAncestors(options, option, true);\n\n return (\n <span\n className={cx('Select-valueLabel')}\n key={key || option[valueField || 'value']}\n >\n {ancestors\n ? ancestors.map((item, index) => {\n const label = item[labelField || 'label'];\n const isEnd = index === ancestors.length - 1;\n const unmatchText = label.split(regexp || '');\n let pointer = 0;\n return (\n <span key={index}>\n {regexp.test(label)\n ? unmatchText.map((text: string, textIndex: number) => {\n const current = pointer;\n pointer += text.length || inputValue?.length || 0;\n return (\n <span\n key={textIndex}\n className={cx({\n 'NestedSelect-optionLabel-highlight': !text\n })}\n >\n {text || label.slice(current, pointer)}\n </span>\n );\n })\n : label}\n {!isEnd && '>'}\n </span>\n );\n })\n : option[labelField || 'label']}\n </span>\n );\n }\n\n @autobind\n async handleOptionClick(option: Option) {\n const {multiple, onChange, joinValues, extractValue, valueField} =\n this.props;\n\n if (multiple) {\n return;\n }\n\n const value = joinValues\n ? option[valueField || 'value']\n : extractValue\n ? option[valueField || 'value']\n : option;\n\n const isPrevented = await this.dispatchEvent('change', {\n value\n });\n isPrevented || onChange(value);\n !multiple && this.close();\n }\n\n @autobind\n async handleCheck(option: Option | Options, index?: number) {\n const {\n onChange,\n selectedOptions,\n joinValues,\n delimiter,\n extractValue,\n withChildren,\n onlyChildren,\n cascade,\n options\n } = this.props;\n const {stack} = this.state;\n\n let valueField = this.props.valueField || 'value';\n\n if (\n !Array.isArray(option) &&\n option.children &&\n option.children.length &&\n typeof index === 'number'\n ) {\n if (stack[index]) {\n stack.splice(index + 1, 1, option.children);\n } else {\n stack.push(option.children);\n }\n }\n\n const items = selectedOptions;\n let value: any[];\n /**\n * 打平树且只保留叶节点\n */\n const flattenTreeWithLeafNodes = (option: Option | Options) =>\n compact(\n flattenTree(Array.isArray(option) ? option : [option], node =>\n node.children && node.children.length ? null : node\n )\n );\n\n // 三种情况:\n // 1.全选,option为数组\n // 2.单个选中,且有children\n // 3.单个选中,没有children\n\n if (Array.isArray(option)) {\n if (withChildren) {\n option = flattenTree(option);\n } else if (onlyChildren) {\n option = flattenTreeWithLeafNodes(option);\n }\n value = items.length === option.length ? [] : (option as Options);\n } else if (Array.isArray(option.children)) {\n if (cascade) {\n value = xor(items, [option]);\n } else if (withChildren) {\n option = flattenTree([option]);\n const isEvery = (option as Options).every(opt => !!~items.indexOf(opt));\n value = (isEvery ? xor : union)(items, option as any);\n } else if (onlyChildren) {\n option = flattenTreeWithLeafNodes(option);\n const isEvery = (option as Options).every(opt => !!~items.indexOf(opt));\n value = (isEvery ? xor : union)(items, option as any);\n } else {\n value = items.filter(item => !~flattenTree([option]).indexOf(item));\n !~items.indexOf(option) && value.push(option);\n }\n } else {\n value = xor(items, [option]);\n }\n\n if (!cascade) {\n let toCheck = option;\n\n while (true) {\n const parent = getTreeParent(options, toCheck as any);\n if (parent?.value) {\n // 如果所有孩子节点都勾选了,应该自动勾选父级。\n\n if (parent.children.every((child: any) => ~value.indexOf(child))) {\n parent.children.forEach((child: any) => {\n const index = value.indexOf(child);\n if (~index && !withChildren && !onlyChildren) {\n value.splice(index, 1);\n }\n });\n\n if (!onlyChildren) {\n value.push(parent);\n }\n\n toCheck = parent;\n continue;\n }\n }\n break;\n }\n }\n\n const newValue = joinValues\n ? value.map(item => item[valueField as string]).join(delimiter)\n : extractValue\n ? value.map(item => item[valueField as string])\n : value;\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValue\n });\n isPrevented || onChange(newValue);\n }\n\n allChecked(options: Options): boolean {\n const {selectedOptions, withChildren, onlyChildren} = this.props;\n return options.every(option => {\n if ((withChildren || onlyChildren) && option.children) {\n return this.allChecked(option.children);\n }\n return selectedOptions.some(item => item === option);\n });\n }\n\n partialChecked(options: Options): boolean {\n return options.some(option => {\n const childrenPartialChecked =\n option.children && this.partialChecked(option.children);\n return (\n childrenPartialChecked ||\n this.props.selectedOptions.some(item => item === option)\n );\n });\n }\n\n reload() {\n const reload = this.props.reloadOptions;\n reload && reload();\n }\n\n @autobind\n async onFocus(e: any) {\n const {onFocus, disabled} = this.props;\n\n if (!disabled && !this.state.isOpened) {\n this.setState({\n isFocused: true\n });\n\n const isPrevented = await this.dispatchEvent('focus', e);\n isPrevented || onFocus && onFocus(e);\n }\n }\n\n @autobind\n async onBlur(e: any) {\n const {onBlur} = this.props;\n\n this.setState({\n isFocused: false\n });\n\n const isPrevented = await this.dispatchEvent('blur', e);\n isPrevented || onBlur && onBlur(e);\n }\n\n @autobind\n getTarget() {\n if (!this.target) {\n this.target = findDOMNode(this) as HTMLElement;\n }\n return this.target as HTMLElement;\n }\n\n @autobind\n handleKeyPress(e: React.KeyboardEvent) {\n if (e.key === ' ') {\n this.handleOutClick(e as any);\n e.preventDefault();\n }\n }\n\n @autobind\n handleInputKeyDown(event: React.KeyboardEvent) {\n const inputValue = this.state.inputValue;\n const {multiple, selectedOptions} = this.props;\n\n if (\n event.key === 'Backspace' &&\n !inputValue &&\n selectedOptions.length &&\n multiple\n ) {\n this.removeItem(selectedOptions.length - 1);\n }\n }\n\n @autobind\n handleInputChange(inputValue: string) {\n const {options, labelField, valueField} = this.props;\n\n const regexp = string2regExp(inputValue);\n\n let filtedOptions =\n inputValue && this.state.isOpened\n ? filterTree(\n options,\n option =>\n regexp.test(option[labelField || 'label']) ||\n regexp.test(option[valueField || 'value']) ||\n !!(option.children && option.children.length),\n 1,\n true\n )\n : options.concat();\n\n this.setState({\n inputValue,\n stack: [filtedOptions]\n });\n }\n\n @autobind\n async handleResultChange(value: Array<Option>) {\n const {\n joinValues,\n extractValue,\n delimiter,\n valueField,\n onChange,\n multiple\n } = this.props;\n\n let newValue: any = Array.isArray(value) ? value.concat() : [];\n\n if (!multiple && !newValue.length) {\n const isPrevented = await this.dispatchEvent('change', {\n value: ''\n });\n isPrevented || onChange('');\n return;\n }\n\n if (joinValues || extractValue) {\n newValue = value.map(item => item[valueField || 'value']);\n }\n\n if (joinValues) {\n newValue = newValue.join(delimiter || ',');\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValue\n });\n isPrevented || onChange(newValue);\n }\n\n renderOptions() {\n const {\n multiple,\n selectedOptions,\n classnames: cx,\n options: propOptions,\n disabled,\n checkAll,\n checkAllLabel,\n translate: __,\n labelField,\n menuClassName,\n cascade,\n onlyChildren\n } = this.props;\n const valueField = this.props.valueField || 'value';\n\n const stack = this.state.stack;\n\n let partialChecked = this.partialChecked(propOptions);\n let allChecked = this.allChecked(propOptions);\n\n return (\n <>\n {stack.map((options, index) => (\n <div key={index} className={cx('NestedSelect-menu', menuClassName)}>\n {multiple && checkAll && index === 0 ? (\n <div className={cx('NestedSelect-option', 'checkall')}>\n <Checkbox\n size=\"sm\"\n onChange={this.handleCheck.bind(this, options)}\n checked={partialChecked}\n partial={partialChecked && !allChecked}\n ></Checkbox>\n <span onClick={this.handleCheck.bind(this, options)}>\n {__(checkAllLabel)}\n </span>\n </div>\n ) : null}\n\n {options.map((option: Option, idx: number) => {\n const ancestors = getTreeAncestors(propOptions, option as any);\n const parentChecked = ancestors?.some(\n item => !!~selectedOptions.indexOf(item)\n );\n const uncheckable = cascade ? false : multiple && parentChecked;\n const parentDisabled = ancestors?.some(item => !!item.disabled);\n\n let nodeDisabled =\n uncheckable || option.disabled || parentDisabled || !!disabled;\n let selfChildrenChecked = !!(\n option.children && this.partialChecked(option.children)\n );\n let selfChecked =\n uncheckable || !!~selectedOptions.indexOf(option);\n\n if (\n !selfChecked &&\n onlyChildren &&\n option.children &&\n this.allChecked(option.children)\n ) {\n selfChecked = true;\n }\n\n return (\n <div\n key={idx}\n className={cx('NestedSelect-option', {\n 'is-active':\n !nodeDisabled &&\n (selfChecked || (!cascade && selfChildrenChecked))\n })}\n onMouseEnter={this.onMouseEnter.bind(this, option, index)}\n >\n {multiple ? (\n <Checkbox\n size=\"sm\"\n onChange={this.handleCheck.bind(this, option, index)}\n trueValue={option[valueField]}\n checked={selfChecked || (!cascade && selfChildrenChecked)}\n partial={!selfChecked}\n disabled={nodeDisabled}\n ></Checkbox>\n ) : null}\n\n <div\n className={cx('NestedSelect-optionLabel', {\n 'is-disabled': nodeDisabled\n })}\n onClick={() =>\n !nodeDisabled &&\n (multiple\n ? this.handleCheck(option, index)\n : this.handleOptionClick(option))\n }\n >\n {option[labelField || 'label']}\n </div>\n\n {option.children && option.children.length ? (\n <div className={cx('NestedSelect-optionArrowRight')}>\n <Icon icon=\"right-arrow\" className=\"icon\" />\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n ))}\n </>\n );\n }\n\n renderSearchResult() {\n const {stack, inputValue} = this.state;\n const {\n classnames: cx,\n options: propOptions,\n labelField,\n cascade,\n selectedOptions,\n multiple,\n disabled,\n onlyChildren,\n noResultsText\n } = this.props;\n const regexp = string2regExp(inputValue || '');\n const flattenTreeWithNodes = flattenTree(stack[0]).filter(option => {\n return regexp.test(option[labelField || 'label']);\n });\n\n // 一个stack一个menu\n const resultBody = (\n <div className={cx('NestedSelect-menu')}>\n {flattenTreeWithNodes.length ? (\n flattenTreeWithNodes.map((option, index) => {\n const ancestors = getTreeAncestors(propOptions, option as any);\n\n const uncheckable = cascade\n ? false\n : multiple &&\n ancestors?.some(item => !!~selectedOptions.indexOf(item));\n\n let isNodeDisabled =\n uncheckable ||\n option.disabled ||\n !!disabled ||\n ancestors?.some(item => !!item.disabled);\n\n let isChildrenChecked = !!(\n option.children && this.partialChecked(option.children)\n );\n\n let isChecked = uncheckable || !!~selectedOptions.indexOf(option);\n\n if (\n !isChecked &&\n onlyChildren &&\n option.children &&\n this.allChecked(option.children)\n ) {\n isChecked = true;\n }\n\n return (\n <div\n className={cx('NestedSelect-option', {\n 'is-active':\n !isNodeDisabled &&\n (isChecked || (!cascade && isChildrenChecked))\n })}\n key={index}\n >\n <div\n className={cx('NestedSelect-optionLabel', {\n 'is-disabled': isNodeDisabled\n })}\n onClick={() => {\n !isNodeDisabled &&\n (multiple\n ? this.handleCheck(option, option.value)\n : this.handleOptionClick(option));\n }}\n >\n {this.renderValue(option, option.value)}\n </div>\n </div>\n );\n })\n ) : (\n <div\n className={cx('NestedSelect-option', {\n 'no-result': true\n })}\n >\n {noResultsText}\n </div>\n )}\n </div>\n );\n return resultBody;\n }\n\n onMouseEnter(option: Option, index: number, e: MouseEvent) {\n let {stack} = this.state;\n index = index + 1;\n\n const children = option.children;\n if (children && children.length) {\n if (stack[index]) {\n stack.splice(index, 1, children);\n } else {\n stack.push(children);\n }\n } else {\n stack[index] && stack.splice(index, 1);\n }\n\n this.setState({stack: stack.slice(0, index + 1)});\n }\n\n renderOuter() {\n const {\n popOverContainer,\n translate: __,\n classnames: cx,\n options,\n render\n } = this.props;\n const isSearch = !!this.state.inputValue;\n let noResultsText: any = this.props.noResultsText;\n\n if (noResultsText) {\n noResultsText = render('noResultText', __(noResultsText));\n }\n\n let body = (\n <RootClose disabled={!this.state.isOpened} onRootClose={this.close}>\n {(ref: any) => {\n return (\n <div className={cx('NestedSelect-menuOuter')} ref={ref}>\n {isSearch ? (\n this.renderSearchResult()\n ) : options.length ? (\n this.renderOptions()\n ) : (\n <div className={cx('NestedSelect-noResult')}>\n {noResultsText}\n </div>\n )}\n </div>\n );\n }}\n </RootClose>\n );\n\n return (\n <Overlay\n target={this.getTarget}\n container={popOverContainer || (() => findDOMNode(this))}\n placement={'auto'}\n show\n >\n <PopOver className={cx('NestedSelect-popover')}>{body}</PopOver>\n </Overlay>\n );\n }\n\n render() {\n const {\n className,\n disabled,\n classnames: cx,\n multiple,\n placeholder,\n translate: __,\n inline,\n searchable,\n autoComplete,\n selectedOptions,\n clearable,\n loading,\n borderMode,\n useMobileUI,\n env\n } = this.props;\n\n const mobileUI = useMobileUI && isMobile();\n return (\n <div className={cx('NestedSelectControl', className)}>\n <ResultBox\n useMobileUI={useMobileUI}\n disabled={disabled}\n ref={this.domRef}\n placeholder={__(placeholder || '空')}\n className={cx(`NestedSelect`, {\n 'NestedSelect--inline': inline,\n 'NestedSelect--single': !multiple,\n 'NestedSelect--multi': multiple,\n 'NestedSelect--searchable': searchable,\n 'is-opened': this.state.isOpened,\n 'is-focused': this.state.isFocused,\n [`NestedSelect--border${ucFirst(borderMode)}`]: borderMode\n })}\n result={\n multiple\n ? selectedOptions\n : selectedOptions.length\n ? selectedOptions[0]\n : ''\n }\n onResultClick={this.handleOutClick}\n value={this.state.inputValue}\n onChange={this.handleInputChange}\n onResultChange={this.handleResultChange}\n onClear={this.handleResultClear}\n itemRender={this.renderValue}\n onKeyPress={this.handleKeyPress}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyDown={this.handleInputKeyDown}\n clearable={clearable}\n hasDropDownArrow={true}\n allowInput={searchable}\n inputPlaceholder={''}\n >\n {loading ? <Spinner size=\"sm\" /> : undefined}\n </ResultBox>\n {mobileUI ? (\n <PopUp\n className={cx(`NestedSelect-popup`)}\n container={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n isShow={this.state.isOpened}\n onHide={this.close}\n showConfirm={false}\n showClose={false}\n >\n <Cascader\n onClose={this.close}\n {...this.props}\n options={this.props.options.slice()}\n value={selectedOptions}\n />\n </PopUp>\n ) : this.state.isOpened ? (\n this.renderOuter()\n ) : null}\n </div>\n );\n }\n}\n\n@OptionsControl({\n type: 'nested-select'\n})\nexport class NestedSelectControlRenderer extends NestedSelectControl {}\n@OptionsControl({\n type: 'cascader-select'\n})\nexport class CascaderSelectControlRenderer extends NestedSelectControl {}\n"
|
11
|
+
"import React from 'react';\nimport Overlay from '../../components/Overlay';\nimport Checkbox from '../../components/Checkbox';\nimport PopOver from '../../components/PopOver';\nimport PopUp from '../../components/PopUp';\nimport {Icon} from '../../components/icons';\nimport {\n autobind,\n flattenTree,\n filterTree,\n string2regExp,\n getTreeAncestors,\n getTreeParent,\n ucFirst,\n isMobile,\n createObject\n} from '../../utils/helper';\nimport {\n FormOptionsControl,\n OptionsControl,\n OptionsControlProps\n} from '../Form/Options';\nimport {Option, Options} from '../../components/Select';\nimport {findDOMNode} from 'react-dom';\nimport {ResultBox, Spinner} from '../../components';\nimport xor from 'lodash/xor';\nimport union from 'lodash/union';\nimport compact from 'lodash/compact';\nimport {RootClose} from '../../utils/RootClose';\nimport Cascader from '../../components/Cascader';\nimport {Action} from '../../types';\n\n/**\n * Nested Select\n * 文档:https://baidu.gitee.io/amis/docs/components/form/nested-select\n */\nexport interface NestedSelectControlSchema extends FormOptionsControl {\n type: 'nested-select';\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n /**\n * 弹框的 css 类\n */\n menuClassName?: string;\n\n /**\n * 父子之间是否完全独立。\n */\n cascade?: boolean;\n\n /**\n * 选父级的时候是否把子节点的值也包含在内。\n */\n withChildren?: boolean;\n\n /**\n * 选父级的时候,是否只把子节点的值包含在内\n */\n onlyChildren?: boolean;\n\n /**\n * 单选时只允许选择叶子节点\n */\n onlyLeaf?: boolean;\n\n /**\n * 是否隐藏选择框中已选中节点的祖先节点的文本信息\n */\n hideNodePathLabel?: boolean;\n}\n\nexport interface NestedSelectProps extends OptionsControlProps {\n cascade?: boolean;\n noResultsText?: string;\n withChildren?: boolean;\n onlyChildren?: boolean;\n hideNodePathLabel?: boolean;\n useMobileUI?: boolean;\n}\n\nexport interface NestedSelectState {\n isOpened?: boolean;\n isFocused?: boolean;\n inputValue?: string;\n stack: Array<Array<Option>>;\n}\n\nexport default class NestedSelectControl extends React.Component<\n NestedSelectProps,\n NestedSelectState\n> {\n static defaultProps: Partial<NestedSelectProps> = {\n cascade: false,\n withChildren: false,\n onlyChildren: false,\n onlyLeaf: false,\n searchPromptText: 'Select.searchPromptText',\n noResultsText: 'noResult',\n checkAll: true,\n checkAllLabel: '全选',\n hideNodePathLabel: false\n };\n target: any;\n input: HTMLInputElement;\n state: NestedSelectState = {\n isOpened: false,\n isFocused: false,\n inputValue: '',\n stack: [this.props.options]\n };\n\n @autobind\n domRef(ref: any) {\n this.target = ref;\n }\n\n componentDidUpdate(prevProps: NestedSelectProps) {\n if (prevProps.options !== this.props.options) {\n this.setState({\n stack: [this.props.options]\n });\n }\n }\n\n doAction(action: Action, data: object, throwErrors: boolean) {\n const {resetValue, onChange} = this.props;\n const actionType = action?.actionType as string;\n\n if (!!~['clear', 'reset'].indexOf(actionType)) {\n onChange(resetValue ?? '');\n }\n }\n\n @autobind\n async dispatchEvent(eventName: string, eventData: any = {}) {\n const {dispatchEvent, data} = this.props;\n const rendererEvent = await dispatchEvent(\n eventName,\n createObject(data, {\n ...eventData\n })\n );\n // 返回阻塞标识\n return !!rendererEvent?.prevented;\n }\n\n @autobind\n handleOutClick(e: React.MouseEvent<any>) {\n const {options} = this.props;\n e.defaultPrevented ||\n this.setState({\n isOpened: true\n });\n }\n\n @autobind\n handleResultClear() {\n this.setState({\n inputValue: undefined\n });\n }\n\n @autobind\n close() {\n this.setState({\n isOpened: false\n });\n }\n\n async removeItem(index: number, e?: React.MouseEvent<HTMLElement>) {\n let {\n onChange,\n selectedOptions,\n joinValues,\n valueField,\n extractValue,\n delimiter,\n value\n } = this.props;\n\n e && e.stopPropagation();\n\n selectedOptions.splice(index, 1);\n\n if (joinValues) {\n value = (selectedOptions as Options)\n .map(item => item[valueField || 'value'])\n .join(delimiter || ',');\n } else if (extractValue) {\n value = (selectedOptions as Options).map(\n item => item[valueField || 'value']\n );\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value\n });\n isPrevented || onChange(value);\n }\n\n @autobind\n renderValue(option: Option, key?: any) {\n const {\n classnames: cx,\n labelField,\n valueField,\n options,\n hideNodePathLabel\n } = this.props;\n const inputValue = this.state.inputValue;\n const regexp = string2regExp(inputValue || '');\n\n if (hideNodePathLabel) {\n return option[labelField || 'label'];\n }\n const ancestors = getTreeAncestors(options, option, true);\n\n return (\n <span\n className={cx('Select-valueLabel')}\n key={key || option[valueField || 'value']}\n >\n {ancestors\n ? ancestors.map((item, index) => {\n const label = item[labelField || 'label'];\n const isEnd = index === ancestors.length - 1;\n const unmatchText = label.split(regexp || '');\n let pointer = 0;\n return (\n <span key={index}>\n {regexp.test(label)\n ? unmatchText.map((text: string, textIndex: number) => {\n const current = pointer;\n pointer += text.length || inputValue?.length || 0;\n return (\n <span\n key={textIndex}\n className={cx({\n 'NestedSelect-optionLabel-highlight': !text\n })}\n >\n {text || label.slice(current, pointer)}\n </span>\n );\n })\n : label}\n {!isEnd && ' > '}\n </span>\n );\n })\n : option[labelField || 'label']}\n </span>\n );\n }\n\n @autobind\n async handleOptionClick(option: Option) {\n const {multiple, onChange, joinValues, extractValue, valueField, onlyLeaf} =\n this.props;\n\n if (multiple) {\n return;\n }\n\n const value = joinValues\n ? option[valueField || 'value']\n : extractValue\n ? option[valueField || 'value']\n : option;\n\n if (value === undefined) {\n return;\n }\n\n if (onlyLeaf && option.children) {\n return;\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value\n });\n isPrevented || onChange(value);\n\n isPrevented || this.handleResultClear();\n\n !multiple && this.close();\n }\n\n @autobind\n async handleCheck(option: Option | Options, index?: number) {\n const {\n onChange,\n selectedOptions,\n joinValues,\n delimiter,\n extractValue,\n withChildren,\n onlyChildren,\n cascade,\n options\n } = this.props;\n const {stack} = this.state;\n\n let valueField = this.props.valueField || 'value';\n\n if (\n !Array.isArray(option) &&\n option.children &&\n option.children.length &&\n typeof index === 'number'\n ) {\n if (stack[index]) {\n stack.splice(index + 1, 1, option.children);\n } else {\n stack.push(option.children);\n }\n }\n\n const items = selectedOptions;\n let value: any[];\n /**\n * 打平树且只保留叶节点\n */\n const flattenTreeWithLeafNodes = (option: Option | Options) =>\n compact(\n flattenTree(Array.isArray(option) ? option : [option], node =>\n node.children && node.children.length ? null : node\n )\n );\n\n // 三种情况:\n // 1.全选,option为数组\n // 2.单个选中,且有children\n // 3.单个选中,没有children\n\n if (Array.isArray(option)) {\n if (withChildren) {\n option = flattenTree(option);\n } else if (onlyChildren) {\n option = flattenTreeWithLeafNodes(option);\n }\n value = items.length === option.length ? [] : (option as Options);\n } else if (Array.isArray(option.children)) {\n if (cascade) {\n value = xor(items, [option]);\n } else if (withChildren) {\n option = flattenTree([option]);\n const isEvery = (option as Options).every(opt => !!~items.indexOf(opt));\n value = (isEvery ? xor : union)(items, option as any);\n } else if (onlyChildren) {\n option = flattenTreeWithLeafNodes(option);\n const isEvery = (option as Options).every(opt => !!~items.indexOf(opt));\n value = (isEvery ? xor : union)(items, option as any);\n } else {\n value = items.filter(item => !~flattenTree([option]).indexOf(item));\n !~items.indexOf(option) && value.push(option);\n }\n } else {\n value = xor(items, [option]);\n }\n\n if (!cascade) {\n let toCheck = option;\n\n while (true) {\n const parent = getTreeParent(options, toCheck as any);\n if (parent?.value) {\n // 如果所有孩子节点都勾选了,应该自动勾选父级。\n\n if (parent.children.every((child: any) => ~value.indexOf(child))) {\n parent.children.forEach((child: any) => {\n const index = value.indexOf(child);\n if (~index && !withChildren && !onlyChildren) {\n value.splice(index, 1);\n }\n });\n\n if (!onlyChildren) {\n value.push(parent);\n }\n\n toCheck = parent;\n continue;\n }\n }\n break;\n }\n }\n\n const newValue = joinValues\n ? value.map(item => item[valueField as string]).join(delimiter)\n : extractValue\n ? value.map(item => item[valueField as string])\n : value;\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValue\n });\n isPrevented || onChange(newValue);\n\n isPrevented || this.handleResultClear();\n }\n\n allChecked(options: Options): boolean {\n const {selectedOptions, withChildren, onlyChildren} = this.props;\n return options.every(option => {\n if ((withChildren || onlyChildren) && option.children) {\n return this.allChecked(option.children);\n }\n return selectedOptions.some(item => item === option);\n });\n }\n\n partialChecked(options: Options): boolean {\n return options.some(option => {\n const childrenPartialChecked =\n option.children && this.partialChecked(option.children);\n return (\n childrenPartialChecked ||\n this.props.selectedOptions.some(item => item === option)\n );\n });\n }\n\n reload() {\n const reload = this.props.reloadOptions;\n reload && reload();\n }\n\n @autobind\n async onFocus(e: any) {\n const {onFocus, disabled} = this.props;\n\n if (!disabled && !this.state.isOpened) {\n this.setState({\n isFocused: true\n });\n\n const isPrevented = await this.dispatchEvent('focus', e);\n isPrevented || (onFocus && onFocus(e));\n }\n }\n\n @autobind\n async onBlur(e: any) {\n const {onBlur} = this.props;\n\n this.setState({\n isFocused: false\n });\n\n const isPrevented = await this.dispatchEvent('blur', e);\n isPrevented || (onBlur && onBlur(e));\n }\n\n @autobind\n getTarget() {\n if (!this.target) {\n this.target = findDOMNode(this) as HTMLElement;\n }\n return this.target as HTMLElement;\n }\n\n @autobind\n handleKeyPress(e: React.KeyboardEvent) {\n if (e.key === ' ') {\n this.handleOutClick(e as any);\n e.preventDefault();\n }\n }\n\n @autobind\n handleInputKeyDown(event: React.KeyboardEvent) {\n const inputValue = this.state.inputValue;\n const {multiple, selectedOptions} = this.props;\n\n if (\n event.key === 'Backspace' &&\n !inputValue &&\n selectedOptions.length &&\n multiple\n ) {\n this.removeItem(selectedOptions.length - 1);\n }\n }\n\n @autobind\n handleInputChange(inputValue: string) {\n const {options, labelField, valueField} = this.props;\n\n const regexp = string2regExp(inputValue);\n\n let filtedOptions =\n inputValue && this.state.isOpened\n ? filterTree(\n options,\n option =>\n regexp.test(option[labelField || 'label']) ||\n regexp.test(option[valueField || 'value']) ||\n !!(option.children && option.children.length),\n 1,\n true\n )\n : options.concat();\n\n this.setState({\n inputValue,\n stack: [filtedOptions]\n });\n }\n\n @autobind\n async handleResultChange(value: Array<Option>) {\n const {\n joinValues,\n extractValue,\n delimiter,\n valueField,\n onChange,\n multiple\n } = this.props;\n\n let newValue: any = Array.isArray(value) ? value.concat() : [];\n\n if (!multiple && !newValue.length) {\n const isPrevented = await this.dispatchEvent('change', {\n value: ''\n });\n isPrevented || onChange('');\n return;\n }\n\n if (joinValues || extractValue) {\n newValue = value.map(item => item[valueField || 'value']);\n }\n\n if (joinValues) {\n newValue = newValue.join(delimiter || ',');\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValue\n });\n isPrevented || onChange(newValue);\n }\n\n renderOptions() {\n const {\n multiple,\n selectedOptions,\n classnames: cx,\n options: propOptions,\n disabled,\n checkAll,\n checkAllLabel,\n translate: __,\n labelField,\n menuClassName,\n cascade,\n onlyChildren\n } = this.props;\n const valueField = this.props.valueField || 'value';\n\n const stack = this.state.stack;\n\n let partialChecked = this.partialChecked(propOptions);\n let allChecked = this.allChecked(propOptions);\n\n return (\n <>\n {stack.map((options, index) => (\n <div key={index} className={cx('NestedSelect-menu', menuClassName)}>\n {multiple && checkAll && index === 0 ? (\n <div className={cx('NestedSelect-option', 'checkall')}>\n <Checkbox\n size=\"sm\"\n onChange={this.handleCheck.bind(this, options)}\n checked={partialChecked}\n partial={partialChecked && !allChecked}\n ></Checkbox>\n <span onClick={this.handleCheck.bind(this, options)}>\n {__(checkAllLabel)}\n </span>\n </div>\n ) : null}\n\n {options.map((option: Option, idx: number) => {\n const ancestors = getTreeAncestors(propOptions, option as any);\n const parentChecked = ancestors?.some(\n item => !!~selectedOptions.indexOf(item)\n );\n const uncheckable = cascade ? false : multiple && parentChecked;\n const parentDisabled = ancestors?.some(item => !!item.disabled);\n\n let nodeDisabled =\n uncheckable || option.disabled || parentDisabled || !!disabled;\n let selfChildrenChecked = !!(\n option.children && this.partialChecked(option.children)\n );\n let selfChecked =\n uncheckable || !!~selectedOptions.indexOf(option);\n\n if (\n !selfChecked &&\n onlyChildren &&\n option.children &&\n this.allChecked(option.children)\n ) {\n selfChecked = true;\n }\n\n return (\n <div\n key={idx}\n className={cx('NestedSelect-option', {\n 'is-active':\n !nodeDisabled &&\n (selfChecked || (!cascade && selfChildrenChecked))\n })}\n onMouseEnter={this.onMouseEnter.bind(this, option, index)}\n >\n {multiple ? (\n <Checkbox\n size=\"sm\"\n onChange={this.handleCheck.bind(this, option, index)}\n trueValue={option[valueField]}\n checked={selfChecked || (!cascade && selfChildrenChecked)}\n partial={!selfChecked}\n disabled={nodeDisabled}\n ></Checkbox>\n ) : null}\n\n <div\n className={cx('NestedSelect-optionLabel', {\n 'is-disabled': nodeDisabled\n })}\n onClick={() =>\n !nodeDisabled &&\n (multiple\n ? this.handleCheck(option, index)\n : this.handleOptionClick(option))\n }\n >\n {option[labelField || 'label']}\n </div>\n\n {option.children && option.children.length ? (\n <div className={cx('NestedSelect-optionArrowRight')}>\n <Icon icon=\"right-arrow\" className=\"icon\" />\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n ))}\n </>\n );\n }\n\n renderSearchResult() {\n const {stack, inputValue} = this.state;\n const {\n classnames: cx,\n options: propOptions,\n labelField,\n cascade,\n selectedOptions,\n multiple,\n disabled,\n onlyChildren,\n noResultsText\n } = this.props;\n const regexp = string2regExp(inputValue || '');\n const flattenTreeWithNodes = flattenTree(stack[0]).filter(option => {\n return regexp.test(option[labelField || 'label']);\n });\n\n // 一个stack一个menu\n const resultBody = (\n <div className={cx('NestedSelect-menu')}>\n {flattenTreeWithNodes.length ? (\n flattenTreeWithNodes.map((option, index) => {\n const ancestors = getTreeAncestors(propOptions, option as any);\n\n const uncheckable = cascade\n ? false\n : multiple &&\n ancestors?.some(item => !!~selectedOptions.indexOf(item));\n\n let isNodeDisabled =\n uncheckable ||\n option.disabled ||\n !!disabled ||\n ancestors?.some(item => !!item.disabled);\n\n let isChildrenChecked = !!(\n option.children && this.partialChecked(option.children)\n );\n\n let isChecked = uncheckable || !!~selectedOptions.indexOf(option);\n\n if (\n !isChecked &&\n onlyChildren &&\n option.children &&\n this.allChecked(option.children)\n ) {\n isChecked = true;\n }\n\n return (\n <div\n className={cx('NestedSelect-option', {\n 'is-active':\n !isNodeDisabled &&\n (isChecked || (!cascade && isChildrenChecked))\n })}\n key={index}\n >\n <div\n className={cx('NestedSelect-optionLabel', {\n 'is-disabled': isNodeDisabled\n })}\n onClick={() => {\n !isNodeDisabled &&\n (multiple\n ? this.handleCheck(option, option.value)\n : this.handleOptionClick(option));\n }}\n >\n {this.renderValue(option, option.value)}\n </div>\n </div>\n );\n })\n ) : (\n <div\n className={cx('NestedSelect-option', {\n 'no-result': true\n })}\n >\n {noResultsText}\n </div>\n )}\n </div>\n );\n return resultBody;\n }\n\n onMouseEnter(option: Option, index: number, e: MouseEvent) {\n let {stack} = this.state;\n index = index + 1;\n\n const children = option.children;\n if (children && children.length) {\n if (stack[index]) {\n stack.splice(index, 1, children);\n } else {\n stack.push(children);\n }\n } else {\n stack[index] && stack.splice(index, 1);\n }\n\n this.setState({stack: stack.slice(0, index + 1)});\n }\n\n renderOuter() {\n const {\n popOverContainer,\n translate: __,\n classnames: cx,\n options,\n render\n } = this.props;\n const isSearch = !!this.state.inputValue;\n let noResultsText: any = this.props.noResultsText;\n\n if (noResultsText) {\n noResultsText = render('noResultText', __(noResultsText));\n }\n\n let body = (\n <RootClose disabled={!this.state.isOpened} onRootClose={this.close}>\n {(ref: any) => {\n return (\n <div className={cx('NestedSelect-menuOuter')} ref={ref}>\n {isSearch ? (\n this.renderSearchResult()\n ) : options.length ? (\n this.renderOptions()\n ) : (\n <div className={cx('NestedSelect-noResult')}>\n {noResultsText}\n </div>\n )}\n </div>\n );\n }}\n </RootClose>\n );\n\n return (\n <Overlay\n target={this.getTarget}\n container={popOverContainer || (() => findDOMNode(this))}\n placement={'auto'}\n show\n >\n <PopOver className={cx('NestedSelect-popover')}>{body}</PopOver>\n </Overlay>\n );\n }\n\n render() {\n const {\n className,\n disabled,\n classnames: cx,\n multiple,\n placeholder,\n translate: __,\n inline,\n searchable,\n autoComplete,\n selectedOptions,\n clearable,\n loading,\n borderMode,\n useMobileUI,\n env\n } = this.props;\n\n const mobileUI = useMobileUI && isMobile();\n return (\n <div className={cx('NestedSelectControl', className)}>\n <ResultBox\n useMobileUI={useMobileUI}\n disabled={disabled}\n ref={this.domRef}\n placeholder={__(placeholder || '空')}\n className={cx(`NestedSelect`, {\n 'NestedSelect--inline': inline,\n 'NestedSelect--single': !multiple,\n 'NestedSelect--multi': multiple,\n 'NestedSelect--searchable': searchable,\n 'is-opened': this.state.isOpened,\n 'is-focused': this.state.isFocused,\n [`NestedSelect--border${ucFirst(borderMode)}`]: borderMode\n })}\n result={\n multiple\n ? selectedOptions\n : selectedOptions.length\n ? selectedOptions[0]\n : ''\n }\n onResultClick={this.handleOutClick}\n value={this.state.inputValue}\n onChange={this.handleInputChange}\n onResultChange={this.handleResultChange}\n onClear={this.handleResultClear}\n itemRender={this.renderValue}\n onKeyPress={this.handleKeyPress}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyDown={this.handleInputKeyDown}\n clearable={clearable}\n hasDropDownArrow={true}\n allowInput={searchable}\n inputPlaceholder={''}\n >\n {loading ? <Spinner size=\"sm\" /> : undefined}\n </ResultBox>\n {mobileUI ? (\n <PopUp\n className={cx(`NestedSelect-popup`)}\n container={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n isShow={this.state.isOpened}\n onHide={this.close}\n showConfirm={false}\n showClose={false}\n >\n <Cascader\n onClose={this.close}\n {...this.props}\n options={this.props.options.slice()}\n value={selectedOptions}\n />\n </PopUp>\n ) : this.state.isOpened ? (\n this.renderOuter()\n ) : null}\n </div>\n );\n }\n}\n\n@OptionsControl({\n type: 'nested-select'\n})\nexport class NestedSelectControlRenderer extends NestedSelectControl {}\n@OptionsControl({\n type: 'cascader-select'\n})\nexport class CascaderSelectControlRenderer extends NestedSelectControl {}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -134,7 +134,7 @@ function registerOptionsControl(config) {
|
|
134
134
|
this.toDispose.forEach(function (fn) { return fn(); });
|
135
135
|
this.toDispose = [];
|
136
136
|
};
|
137
|
-
FormOptionsItem.prototype.
|
137
|
+
FormOptionsItem.prototype.dispatchOptionEvent = function (eventName, eventData) {
|
138
138
|
if (eventData === void 0) { eventData = ''; }
|
139
139
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
140
140
|
var _a, dispatchEvent, options, data, rendererEvent;
|
@@ -142,7 +142,7 @@ function registerOptionsControl(config) {
|
|
142
142
|
switch (_b.label) {
|
143
143
|
case 0:
|
144
144
|
_a = this.props, dispatchEvent = _a.dispatchEvent, options = _a.options, data = _a.data;
|
145
|
-
return [4 /*yield*/, dispatchEvent(
|
145
|
+
return [4 /*yield*/, dispatchEvent(eventName, (0, helper_1.createObject)(data, {
|
146
146
|
value: eventData,
|
147
147
|
options: options,
|
148
148
|
}))];
|
@@ -224,7 +224,7 @@ function registerOptionsControl(config) {
|
|
224
224
|
return [2 /*return*/];
|
225
225
|
}
|
226
226
|
newValue = this.toggleValue(option, value);
|
227
|
-
return [4 /*yield*/, this.
|
227
|
+
return [4 /*yield*/, this.dispatchOptionEvent('change', newValue)];
|
228
228
|
case 1:
|
229
229
|
isPrevented = _b.sent();
|
230
230
|
isPrevented || (onChange && onChange(newValue, submitOnChange, changeImmediately));
|
@@ -288,7 +288,7 @@ function registerOptionsControl(config) {
|
|
288
288
|
? []
|
289
289
|
: formItem.filteredOptions.concat();
|
290
290
|
newValue = this.formatValueArray(valueArray);
|
291
|
-
return [4 /*yield*/, this.
|
291
|
+
return [4 /*yield*/, this.dispatchOptionEvent('change', newValue)];
|
292
292
|
case 1:
|
293
293
|
isPrevented = _b.sent();
|
294
294
|
isPrevented || (onChange && onChange(newValue));
|
@@ -353,13 +353,26 @@ function registerOptionsControl(config) {
|
|
353
353
|
return formItem.loadOptions(source, data, undefined, false, isInit ? setPrinstineValue : onChange, setError);
|
354
354
|
};
|
355
355
|
FormOptionsItem.prototype.deferLoad = function (option) {
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
356
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
357
|
+
var _a, deferApi, source, env, formItem, data, api, json;
|
358
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
359
|
+
switch (_b.label) {
|
360
|
+
case 0:
|
361
|
+
_a = this.props, deferApi = _a.deferApi, source = _a.source, env = _a.env, formItem = _a.formItem, data = _a.data;
|
362
|
+
api = option.deferApi || deferApi || source;
|
363
|
+
if (!api) {
|
364
|
+
env.notify('error', '请在选项中设置 `deferApi` 或者表单项中设置 `deferApi`,用来加载子选项。');
|
365
|
+
return [2 /*return*/];
|
366
|
+
}
|
367
|
+
return [4 /*yield*/, (formItem === null || formItem === void 0 ? void 0 : formItem.deferLoadOptions(option, api, (0, helper_1.createObject)(data, option)))];
|
368
|
+
case 1:
|
369
|
+
json = _b.sent();
|
370
|
+
// 触发事件通知,加载完成
|
371
|
+
this.dispatchOptionEvent('loadFinished', json);
|
372
|
+
return [2 /*return*/];
|
373
|
+
}
|
374
|
+
});
|
375
|
+
});
|
363
376
|
};
|
364
377
|
FormOptionsItem.prototype.leftDeferLoad = function (option, leftOptions) {
|
365
378
|
var _a = this.props, deferApi = _a.deferApi, source = _a.source, env = _a.env, formItem = _a.formItem, data = _a.data;
|
@@ -436,7 +449,7 @@ function registerOptionsControl(config) {
|
|
436
449
|
if (idx === void 0) { idx = -1; }
|
437
450
|
if (skipForm === void 0) { skipForm = false; }
|
438
451
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
439
|
-
var _a, addControls, disabled, labelField, onOpenDialog, optionLabel, addApi, source, data, valueField, model, createBtnLabel, env, __, parent, ctx, result, _b, payload, e_1, options;
|
452
|
+
var _a, addControls, disabled, labelField, onOpenDialog, optionLabel, addApi, source, data, valueField, model, createBtnLabel, env, __, parent, ctx, result, _b, payload, e_1, isPrevented, options;
|
440
453
|
var _c;
|
441
454
|
return (0, tslib_1.__generator)(this, function (_d) {
|
442
455
|
switch (_d.label) {
|
@@ -522,11 +535,19 @@ function registerOptionsControl(config) {
|
|
522
535
|
if (!result.hasOwnProperty(valueField || 'value')) {
|
523
536
|
result = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, result), (_c = {}, _c[valueField || 'value'] = result[labelField || 'label'], _c));
|
524
537
|
}
|
525
|
-
|
526
|
-
|
527
|
-
|
538
|
+
return [4 /*yield*/, this.dispatchOptionEvent('add', (0, tslib_1.__assign)((0, tslib_1.__assign)({}, result), { idx: idx }))];
|
539
|
+
case 8:
|
540
|
+
isPrevented = _d.sent();
|
541
|
+
if (isPrevented) {
|
542
|
+
return [2 /*return*/];
|
528
543
|
}
|
529
|
-
|
544
|
+
if (!(parent === null || parent === void 0 ? void 0 : parent.defer)) return [3 /*break*/, 10];
|
545
|
+
return [4 /*yield*/, this.deferLoad(parent)];
|
546
|
+
case 9:
|
547
|
+
_d.sent();
|
548
|
+
return [3 /*break*/, 11];
|
549
|
+
case 10:
|
550
|
+
if (source && addApi) {
|
530
551
|
// 如果配置了 source 且配置了 addApi 直接重新拉取接口就够了
|
531
552
|
// 不能不判断 addApi 就刷新,因为有些场景就是临时添加的。
|
532
553
|
this.reload();
|
@@ -543,7 +564,8 @@ function registerOptionsControl(config) {
|
|
543
564
|
}
|
544
565
|
model.setOptions(options, this.changeOptionValue, data);
|
545
566
|
}
|
546
|
-
|
567
|
+
_d.label = 11;
|
568
|
+
case 11: return [2 /*return*/];
|
547
569
|
}
|
548
570
|
});
|
549
571
|
});
|
@@ -552,7 +574,7 @@ function registerOptionsControl(config) {
|
|
552
574
|
if (origin === void 0) { origin = value; }
|
553
575
|
if (skipForm === void 0) { skipForm = false; }
|
554
576
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
555
|
-
var _a, editControls, disabled, labelField, onOpenDialog, editApi, env, source, data, model, optionLabel, __, result, _b, payload, e_2, indexes;
|
577
|
+
var _a, editControls, disabled, labelField, onOpenDialog, editApi, env, source, data, model, optionLabel, __, result, _b, payload, e_2, isPrevented, indexes;
|
556
578
|
return (0, tslib_1.__generator)(this, function (_c) {
|
557
579
|
switch (_c.label) {
|
558
580
|
case 0:
|
@@ -617,6 +639,12 @@ function registerOptionsControl(config) {
|
|
617
639
|
if (!result) {
|
618
640
|
return [2 /*return*/];
|
619
641
|
}
|
642
|
+
return [4 /*yield*/, this.dispatchOptionEvent('edit', result)];
|
643
|
+
case 8:
|
644
|
+
isPrevented = _c.sent();
|
645
|
+
if (isPrevented) {
|
646
|
+
return [2 /*return*/];
|
647
|
+
}
|
620
648
|
if (source && editApi) {
|
621
649
|
this.reload();
|
622
650
|
}
|
@@ -633,7 +661,7 @@ function registerOptionsControl(config) {
|
|
633
661
|
};
|
634
662
|
FormOptionsItem.prototype.handleOptionDelete = function (value) {
|
635
663
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
636
|
-
var _a, deleteConfirmText, disabled, data, deleteApi, env, model, source, valueField, __, ctx, confirmed, _b, result, options, indexes, e_3;
|
664
|
+
var _a, deleteConfirmText, disabled, data, deleteApi, env, model, source, valueField, __, ctx, confirmed, _b, isPrevented, result, options, indexes, e_3;
|
637
665
|
return (0, tslib_1.__generator)(this, function (_c) {
|
638
666
|
switch (_c.label) {
|
639
667
|
case 0:
|
@@ -655,16 +683,22 @@ function registerOptionsControl(config) {
|
|
655
683
|
if (!confirmed) {
|
656
684
|
return [2 /*return*/];
|
657
685
|
}
|
658
|
-
|
686
|
+
return [4 /*yield*/, this.dispatchOptionEvent('delete', ctx)];
|
659
687
|
case 4:
|
660
|
-
_c.
|
688
|
+
isPrevented = _c.sent();
|
689
|
+
if (isPrevented) {
|
690
|
+
return [2 /*return*/];
|
691
|
+
}
|
692
|
+
_c.label = 5;
|
693
|
+
case 5:
|
694
|
+
_c.trys.push([5, 7, , 8]);
|
661
695
|
if (!deleteApi) {
|
662
696
|
throw new Error(__('Options.deleteAPI'));
|
663
697
|
}
|
664
698
|
return [4 /*yield*/, env.fetcher(deleteApi, ctx, {
|
665
699
|
method: 'delete'
|
666
700
|
})];
|
667
|
-
case
|
701
|
+
case 6:
|
668
702
|
result = _c.sent();
|
669
703
|
if (!result.ok) {
|
670
704
|
env.notify('error', result.msg || __('deleteFailed'));
|
@@ -679,13 +713,13 @@ function registerOptionsControl(config) {
|
|
679
713
|
model.setOptions((0, helper_1.spliceTree)(options, indexes, 1), this.changeOptionValue, data);
|
680
714
|
}
|
681
715
|
}
|
682
|
-
return [3 /*break*/,
|
683
|
-
case
|
716
|
+
return [3 /*break*/, 8];
|
717
|
+
case 7:
|
684
718
|
e_3 = _c.sent();
|
685
719
|
console.error(e_3);
|
686
720
|
env.notify('error', e_3.message);
|
687
|
-
return [3 /*break*/,
|
688
|
-
case
|
721
|
+
return [3 /*break*/, 8];
|
722
|
+
case 8: return [2 /*return*/];
|
689
723
|
}
|
690
724
|
});
|
691
725
|
});
|
@@ -737,7 +771,7 @@ function registerOptionsControl(config) {
|
|
737
771
|
helper_1.autobind,
|
738
772
|
(0, tslib_1.__metadata)("design:type", Function),
|
739
773
|
(0, tslib_1.__metadata)("design:paramtypes", [typeof (_b = typeof Select_1.Option !== "undefined" && Select_1.Option) === "function" ? _b : Object]),
|
740
|
-
(0, tslib_1.__metadata)("design:returntype",
|
774
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
741
775
|
], FormOptionsItem.prototype, "deferLoad", null);
|
742
776
|
(0, tslib_1.__decorate)([
|
743
777
|
helper_1.autobind,
|