amis 1.8.0-beta.1 → 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 +9 -2
- package/lib/Schema.js.map +1 -1
- 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/AssociatedSelection.js +9 -2
- package/lib/components/AssociatedSelection.js.map +2 -2
- 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/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/Collapse.d.ts +20 -20
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DatePicker.js +8 -5
- 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 +44 -16
- 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/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 +66 -4
- 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 +0 -13
- 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 +87 -85
- package/lib/components/formula/Editor.js +10 -6
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/Picker.js +3 -1
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/factory.d.ts +5 -0
- package/lib/factory.js +22 -1
- package/lib/factory.js.map +2 -2
- package/lib/index.js +1 -1
- 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 +2 -0
- 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/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 +1 -0
- package/lib/renderers/Dialog.js +3 -0
- 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/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 +2 -1
- package/lib/renderers/Form/Combo.js +54 -16
- 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 +44 -2
- 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/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.js +13 -14
- package/lib/renderers/Form/InputRange.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 +54 -14
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Progress.d.ts +3 -6
- package/lib/renderers/Progress.js +2 -2
- 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/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 +4 -0
- package/lib/renderers/Tabs.js +22 -6
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/TooltipWrapper.d.ts +35 -6
- package/lib/renderers/TooltipWrapper.js +19 -8
- package/lib/renderers/TooltipWrapper.js.map +2 -2
- 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 +2 -2
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +768 -199
- package/lib/themes/ang.css +723 -142
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +851 -282
- package/lib/themes/antd.css +724 -143
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +879 -310
- package/lib/themes/cxd.css +727 -146
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +769 -200
- package/lib/themes/dark.css +723 -142
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +879 -310
- package/lib/themes/default.css +727 -146
- 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 +29681 -28936
- package/scss/_properties.scss +44 -13
- package/scss/components/_barcode.scss +1 -1
- 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 +1 -1
- package/scss/components/_nav.scss +51 -6
- package/scss/components/_progress.scss +4 -6
- 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/_tooltip.scss +4 -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 +13 -1
- 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 +3 -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 +4 -4
- package/sdk/ang-ie11.css +816 -182
- package/sdk/ang.css +775 -129
- package/sdk/antd-ie11.css +896 -262
- package/sdk/antd.css +776 -130
- 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 +907 -273
- package/sdk/cxd.css +779 -133
- package/sdk/dark-ie11.css +817 -183
- package/sdk/dark.css +775 -129
- 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 +907 -273
- package/sdk/sdk.css +779 -133
- package/sdk/sdk.js +1317 -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 +10 -0
- 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/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/DatePicker.tsx +12 -4
- 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 +57 -22
- 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/Tooltip.tsx +12 -3
- package/src/components/TooltipWrapper.tsx +137 -33
- package/src/components/Tree.tsx +19 -5
- package/src/components/calendar/Calendar.tsx +0 -14
- 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 +20 -15
- package/src/components/formula/Picker.tsx +9 -5
- package/src/factory.tsx +29 -1
- 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 +22 -1
- package/src/renderers/App.tsx +4 -0
- 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 +4 -0
- package/src/renderers/Drawer.tsx +14 -2
- package/src/renderers/Form/Checkbox.tsx +11 -2
- package/src/renderers/Form/Checkboxes.tsx +106 -23
- package/src/renderers/Form/Combo.tsx +104 -49
- package/src/renderers/Form/InputCity.tsx +33 -4
- 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/InputImage.tsx +22 -6
- package/src/renderers/Form/InputMonthRange.tsx +7 -1
- package/src/renderers/Form/InputRange.tsx +18 -16
- 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 +96 -33
- package/src/renderers/Progress.tsx +7 -9
- 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/index.tsx +43 -19
- package/src/renderers/Tabs.tsx +75 -28
- package/src/renderers/TooltipWrapper.tsx +71 -28
- 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 +2 -2
- 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
package/lib/renderers/Nav.js.map
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Nav.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAC1B,uCAAsC;AACtC,sCAAgE;AAChE,sFAAuD;AACvD,oCAAoD;AACpD,0CAUyB;AACzB,oCAAwD;AACxD,kCAA+C;AAC/C,6CAAyC;AAQzC,sCAA2C;AAC3C,mEAGwC;AAExC,+EAA4C;AAC5C,oCAA4C;AAC5C,6CAAuD;AA6IvD;IAAgC,2CAG/B;IAHD;QAAA,qEA+SC;QAlSC,gBAAU,GAGN;YACF,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL,CAAC;QACF,WAAK,GAAoB,EAAE,CAAC;;IA2R9B,CAAC;IAxRC,gCAAW,GAAX,UAAY,IAAU;QACd,IAAA,KAAkB,IAAI,CAAC,KAAK,EAA3B,GAAG,SAAA,EAAE,QAAQ,cAAc,CAAC;QACnC,qBAAqB;QACrB,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE;YACnB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC;gBACX,SAAS,EAAE,MAAM;gBACjB,SAAS,EAAE;oBACT,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,IAAI,EAAE,IAAI,CAAC,EAAE;iBACd;aACF,CAAC,CAAC;SACJ;QAED,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,IAAI,CAAC,CAAC;IACnB,CAAC;IAGD,+BAAU,GAAV,UAAW,MAAY,EAAE,SAAmB;;QAC1C,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAGD,gCAAW,GAAX,UAAY,CAAY,EAAE,EAAU,EAAE,KAAa;;QAC3C,IAAA,KAAgC,IAAI,CAAC,KAAK,EAAzC,eAAe,qBAAA,EAAE,UAAU,gBAAc,CAAC;QACjD,IAAI,IAAI,GAAI,CAAC,CAAC,MAAsB,CAAC,qBAAqB,EAAE,CAAC;QAC7D,IAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAY,CAAC;QACtC,IAAA,GAAG,GAAmB,IAAI,IAAvB,EAAE,MAAM,GAAW,IAAI,OAAf,EAAE,KAAK,GAAI,IAAI,MAAR,CAAS;QAC7B,IAAA,OAAO,GAAa,CAAC,QAAd,EAAE,OAAO,GAAI,CAAC,QAAL,CAAM;QAC3B,IAAM,IAAI,GAAG,KAAK,GAAG,CAAC,MAAA,QAAQ,CAAC,UAAiB,EAAE,EAAE,CAAC,mCAAI,EAAE,CAAC,CAAC;QAC7D,IAAM,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC;QAClC,IAAI,QAAQ,CAAC;QACb,IAAI,OAAO,IAAI,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE;YAC/B,QAAQ,GAAG,QAAQ,CAAC;SACrB;aAAM;YACL,QAAQ,GAAG,KAAK,CAAC;SAClB;QACD,IACE,CAAC,eAAe;YAChB,QAAQ,KAAK,QAAQ;YACrB,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,MAAM,EACrC;YACA,QAAQ,GAAG,MAAM,CAAC;SACnB;QACD,OAAO;YACL,MAAM,EAAE,EAAE;YACV,QAAQ,UAAA;YACR,QAAQ,UAAA;YACR,IAAI,MAAA;YACJ,MAAM,QAAA;YACN,IAAI,MAAA;SACL,CAAC;IACJ,CAAC;IAED,wCAAmB,GAAnB,UAAoB,CAAY;;QACvB,IAAA,eAAe,GAAI,IAAI,CAAC,KAAK,gBAAd,CAAe;QACrC,IAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC,CAAC,MAAM;QAC9C,IAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAW,CAAC;QAC1D,IAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9D,IACE,eAAe;YACf,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,aAAa,OAAK,MAAA,MAAM,CAAC,aAAa,0CAAE,aAAa,CAAA,EACzE;YACA,IAAI,CAAC,QAAQ,CAAC,EAAC,aAAa,EAAE,SAAS,EAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QACvD,IAAA,KAA2C,IAAI,CAAC,QAAQ,EAAvD,QAAQ,cAAA,EAAE,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,IAAI,UAAiB,CAAC;QAC7D,IAAI,QAAQ,MAAK,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAA,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,EAAC,aAAa,EAAE,SAAS,EAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,OAAO;SACR;QACD,IAAM,EAAE,GAAI,IAAA,uBAAW,EAAC,IAAI,CAAiB,CAAC,UAAyB,CAAC;QACxE,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC;gBACZ,aAAa,EAAE;oBACb,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,GAAG;oBAC9C,IAAI,MAAA;oBACJ,KAAK,EAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,IAAI;oBAC9C,MAAM,QAAA;oBACN,OAAO,EAAE,GAAG;iBACb;aACF,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC;gBACZ,aAAa,EAAE;oBACb,GAAG,EACD,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;wBAC3D,EAAE,CAAC,qBAAqB,EAAE,CAAC,GAAG;oBAChC,IAAI,MAAA;oBACJ,KAAK,EAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,IAAI;iBAC/C;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAGD,oCAAe,GAAf,UAAgB,IAAU;QAD1B,iBAmBC;QAjBC,OAAO,UAAC,CAAkB;YACxB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAM,aAAa,GAAG,CAAC,CAAC,aAA4B,CAAC;YACrD,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,UAAU,CAAC;YAC1C,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,KAAI,CAAC,QAAQ,GAAG;gBACd,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,IAAI;aACX,CAAC;YACF,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,KAAI,CAAC,UAAU,GAAG;gBAChB,CAAC,EAAE,CAAC,CAAC,OAAO;gBACZ,CAAC,EAAE,CAAC,CAAC,OAAO;aACb,CAAC;YACF,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAI,CAAC,aAAa,CAAC,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC;IAGD,mCAAc,GAAd,UAAe,CAAY;QACzB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;SACR;QACD,IAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QACvC,IAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,EAAE;YACP,OAAO;SACR;QACD,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAGD,kCAAa,GAAb,UAAc,CAAY;;QACxB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC;YACZ,aAAa,EAAE,SAAS;SACzB,CAAC,CAAC;QACH,IAAM,aAAa,GAAG,CAAC,CAAC,aAA4B,CAAC;QACrD,IAAM,EAAE,GAAG,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,MAAM,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAI,EAAE,KAAK,MAAM,EAAE;YAC9C,OAAO;SACR;QACD,aAAa,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACjE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAEnE,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,YAAY,mDAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,+BAAU,GAAV,UAAW,IAAU,EAAE,KAAa,EAAE,KAAS;QAA/C,iBAoGC;;QApGqC,sBAAA,EAAA,SAAS;QAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAClD,OAAO,IAAI,CAAC;SACb;QACD,IAAM,QAAQ,GAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAClC,IAAA,KAWF,IAAI,CAAC,KAAK,EAVZ,QAAQ,cAAA,EACR,gBAAgB,sBAAA,EACJ,EAAE,gBAAA,EACd,UAAU,gBAAA,EACV,MAAM,YAAA,EACN,WAAW,iBAAA,EACX,SAAS,eAAA,EACT,KAAK,WAAA,EACL,SAAS,eAAA,EACH,WAAW,UACL,CAAC;QACf,IAAM,MAAM,GACV,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1E,OAAO,CACL,sCACE,GAAG,EAAE,IAAI,CAAC,IAAI,aACL,IAAI,CAAC,IAAI,EAClB,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE;gBACxC,aAAa,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO;gBACxD,WAAW,EAAE,QAAQ;gBACrB,aAAa,EAAE,IAAI,CAAC,QAAQ;gBAC5B,SAAS,EAAE,MAAM;aAClB,CAAC,EACF,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAEvC,8BAAC,aAAK,IACJ,UAAU,EAAE,EAAE,EACd,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,IAAA,qBAAY,EAAC,WAAW,EAAE,IAAI,CAAC;gBAErC,gDACW,IAAI,CAAC,IAAI,gBACN,KAAK,EACjB,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAC1C,KAAK,EAAE;wBACL,WAAW,EAAE,KAAK,GAAG,CAAC,MAAA,QAAQ,CAAC,UAAiB,EAAE,EAAE,CAAC,mCAAI,EAAE,CAAC;qBAC7D;oBAEA,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CACxB,uCACE,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAC/B,SAAS,QACT,WAAW,EAAE,UAAA,CAAC;4BACZ,KAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;4BAC5B,CAAC,CAAC,eAAe,EAAE,CAAC;wBACtB,CAAC;wBAED,8BAAC,YAAI,IAAC,IAAI,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,GAAG,CACrC,CACP,CAAC,CAAC,CAAC,IAAI;oBACP,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACd,8BAAC,iBAAO,IACN,IAAI,EAAC,IAAI,EACT,IAAI,QACJ,IAAI,EAAC,QAAQ,EACb,gBAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,GACnC,CACH,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CACX,wCACE,OAAO,EAAE,UAAA,CAAC;4BACR,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;4BACtB,CAAC,CAAC,eAAe,EAAE,CAAC;wBACtB,CAAC,EACD,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;wBAElD,8BAAC,YAAI,IAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,MAAM,GAAG,CACjC,CACR,CAAC,CAAC,CAAC,IAAI;oBACP,IAAA,mBAAY,EAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;oBAC3C,IAAI,CAAC,KAAK;wBACT,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;4BAC7B,CAAC,CAAC,IAAI,CAAC,KAAK;4BACZ,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAyB,CAAC,CAAC,CACrD;gBAEF,OAAO;gBACP,WAAW,CAAC,CAAC,CAAC,CACZ,uCAAK,SAAS,EAAE,EAAE,CAAC,kBAAkB,CAAC,IACnC,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE;oBAC7B,IAAI,EAAE,IAAA,qBAAY,EAAC,WAAW,EAAE,IAAI,CAAC;iBACtC,CAAC,CACE,CACP,CAAC,CAAC,CAAC,IAAI;gBAET,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CACtD,sCAAI,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,IAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;oBAC7B,OAAA,KAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC;gBAAvC,CAAuC,CACxC,CACE,CACN,CAAC,CAAC,CAAC,IAAI,CACF,CACL,CACN,CAAC;IACJ,CAAC;IAED,2BAAM,GAAN;QAAA,iBAuBC;QAtBO,IAAA,KAAuD,IAAI,CAAC,KAAK,EAAhE,SAAS,eAAA,EAAE,OAAO,aAAA,EAAc,EAAE,gBAAA,EAAE,KAAK,WAAA,EAAE,OAAO,aAAc,CAAC;QACjE,IAAA,aAAa,GAAI,IAAI,CAAC,KAAK,cAAd,CAAe;QACnC,OAAO,CACL,uCAAK,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC;YACvB,sCACE,SAAS,EAAE,EAAE,CACX,UAAU,EACV,SAAS,EACT,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CACjD;gBAEA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBACnB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,KAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAA5B,CAA4B,CAAC;oBAC1D,CAAC,CAAC,IAAI;gBAER,8BAAC,iBAAO,IAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,QAAC,IAAI,EAAC,QAAQ,GAAG,CAC/C;YACJ,aAAa,CAAC,CAAC,CAAC,CACf,uCAAK,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,aAAa,GAAI,CAClE,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;IACJ,CAAC;;IA1SM,uBAAY,GAAG;QACpB,UAAU,EAAE,EAAE;KACf,CAAC;IAiBF;QADC,iBAAQ;;;;iDAeR;IAGD;QADC,iBAAQ;;;;gDAGR;IAGD;QADC,iBAAQ;;0EACM,SAAS,oBAAT,SAAS;;iDA6BvB;IAED;QADC,iBAAQ;;0EACc,SAAS,oBAAT,SAAS;;yDA0C/B;IAGD;QADC,iBAAQ;;;;qDAmBR;IAGD;QADC,iBAAQ;;0EACS,SAAS,oBAAT,SAAS;;oDAY1B;IAGD;QADC,iBAAQ;;0EACQ,SAAS,oBAAT,SAAS;;mDAkBzB;IAgIH,iBAAC;CAAA,AA/SD,CAAgC,eAAK,CAAC,SAAS,GA+S9C;AA/SY,gCAAU;AAiTvB,IAAM,gBAAgB,GAAG,IAAA,iBAAS,EAAC,UAAU,CAAC,CAAC;AAE/C,IAAM,iCAAiC,GAAG,IAAA,mCAAgB,EAAC;IACzD,OAAO,EAAE,UAAC,MAAW,EAAE,KAAU;QAC/B,IAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACjC,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IACD,SAAS,EAAE,UAAC,QAAa,EAAE,MAAW,EAAE,KAAU;QAChD,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAA,iBAAQ,EAAC,MAAM,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,EAAX,CAAW,CAAC,EAAE;YACrD,IAAA,GAAG,GAAI,KAAK,IAAT,CAAU;YAEpB,GAAG,CAAC,MAAM,CAAC,IAAA,YAAM,EAAC,QAAQ,CAAC,KAAe,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;SAC1D;IACH,CAAC;IACD,eAAe,EAAf,UACE,KAAkB,EAClB,MAA+B,EAC/B,KAAU,EACV,UAAmB;QAEnB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,KAAK,QAAQ,EAAE;YAC5C,IAAA,MAAI,GAAqC,KAAK,KAA1C,EAAE,KAAG,GAAgC,KAAK,IAArC,EAAE,eAAa,GAAiB,KAAK,cAAtB,EAAE,aAAW,GAAI,KAAK,YAAT,CAAU;YAEtD,KAAK,GAAG,IAAA,gBAAO,EACb,KAAK,EACL,UAAC,IAAU;;gBACT,IAAM,IAAI,yEACL,IAAI,GACJ,IAAA,uBAAiB,EAAC,IAAI,EAAE,MAAc,CAAC,KAC1C,MAAM,EACJ,CAAC,UAAU,KAAK,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC;wBACjD,CAAC,IAAI,CAAC,QAAQ;4BACZ,CAAC,CAAC,IAAA,oBAAc,EAAC,IAAI,CAAC,QAAkB,EAAE,MAAI,CAAC;4BAC/C,CAAC,CAAC,CAAC,CAAC,CACA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gCACzB,KAAG;gCACH,KAAG,CAAC,YAAY,CAAC,IAAA,YAAM,EAAC,IAAI,CAAC,EAAY,EAAE,MAAI,CAAC,CAAC,CAClD,CAAC,EACR,IAAI,EAAE,MAAA,MAAA,IAAI,CAAC,EAAE,mCAAI,IAAI,CAAC,IAAI,mCAAI,IAAA,aAAI,GAAE,GACrC,CAAC;gBAEF,IAAI,CAAC,QAAQ;oBACX,IAAA,mBAAU,EAAC,IAAI,EAAE,EAAC,aAAa,iBAAA,EAAE,WAAW,eAAA,EAAC,CAAC;wBAC9C,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,CAAC,MAAM,EAAb,CAAa,CAAC,CAAC,CAAC;gBAE/D,OAAO,IAAI,CAAC;YACd,CAAC,EACD,CAAC,EACD,IAAI,CACL,CAAC;SACH;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,eAAe,EAAf,UAAgB,IAAU,EAAE,OAAsB,EAAE,KAAkB;QACpE,OAAO,IAAA,mBAAU,EAAC,KAAK,EAAE,OAAO,EAAE,CAAC,kDAC9B,IAAI,KACP,OAAO,EAAE,IAAI,IACb,CAAC;IACL,CAAC;IAED,cAAc,EAAd,UACE,IAAU,EACV,OAAsB,EACtB,GAAY,EACZ,KAAkB;QAElB,IAAM,OAAO,mDACR,IAAI,KACP,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GACpC,CAAC;QAEF,IAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YACtC,CAAC,CAAC,GAAG,CAAC,IAAI;YACV,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAE1E,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC3B,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;SACzB;QAED,OAAO,IAAA,mBAAU,EAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;CACF,CAAC;IACc,wCAUb;IACC,iBAAY,KAAU;QAAtB,YACE,kBAAM,KAAK,CAAC,SAIb;QAHC,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QAC7C,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QACjD,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;;IAC/C,CAAC;IAED,mCAAiB,GAAjB;QACE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACpD;IACH,CAAC;IAED,oCAAkB,GAAlB,UAAmB,SAAc;QAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE;YAC9C,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;SAC/D;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE;YAC/C,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SACrD;IACH,CAAC;IAED,4BAAU,GAAV,UAAW,MAAY,EAAE,SAAmB;QACpC,IAAA,KAAoC,IAAI,CAAC,KAAK,EAA7C,MAAM,YAAA,EAAE,YAAY,kBAAA,EAAE,SAAS,eAAc,CAAC;QAErD,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClC,SAAS,CAAC,MAAM,CAAC,CAAC;SACnB;aAAM;YACL,YAAY,CACV,IAAA,gBAAO,EAAC,MAAM,EAAE,UAAC,IAAU;gBACzB,OAAA,MAAM,KAAK,IAAI;oBACb,CAAC,iDACM,IAAI,KACP,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAEhD,CAAC,CAAC,IAAI;YALR,CAKQ,CACT,EACD,QAAQ,CACT,CAAC;SACH;IACH,CAAC;IAEK,4BAAU,GAAhB,UAAiB,QAAmB;;;;;;wBAC9B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;wBACvB,MAAM,GAAwB,QAAQ,OAAhC,EAAE,QAAQ,GAAc,QAAQ,SAAtB,EAAE,QAAQ,GAAI,QAAQ,SAAZ,CAAa;wBAC9C,IAAI,QAAQ,EAAE;4BAEN,SAAS,GAAG,IAAA,sBAAa,EAC7B,KAAK,EACL,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAA3B,CAA2B,CACxB,CAAC;4BACd,KAAK,GAAG,IAAA,mBAAU,EAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;4BAExC,IAAI,QAAQ,KAAK,MAAM,EAAE;gCACvB,oBAAoB;gCACpB,IAAA,gBAAO,EAAC,KAAK,EAAE,UAAA,IAAI;oCACjB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;wCACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;4CAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;yCACpB;wCACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qCAC9B;oCACD,OAAO,IAAI,CAAC;gCACd,CAAC,CAAC,CAAC;6BACJ;iCAAM;gCAEC,GAAG,GAAG,IAAA,sBAAa,EACvB,KAAK,EACL,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,KAAK,MAAM,EAApB,CAAoB,CACjB,CAAC;gCACd,SAAS;gCACT,IAAI,QAAQ,KAAK,QAAQ,EAAE;oCACzB,GAAG,CAAC,IAAI,CAAE,GAAG,CAAC,GAAG,EAAa,GAAG,CAAC,CAAC,CAAC;iCACrC;gCACD,KAAK,GAAG,IAAA,mBAAU,EAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;6BAC7C;yBACF;wBACD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;wBACzC,qBAAM,IAAI,CAAC,SAAS,CAClB,IAAA,gBAAO,EAAC,KAAK,EAAE,UAAC,IAAU;gCACxB,WAAW;gCACX,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;oCACpB,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;wCACtB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;qCAClB;iCACF;gCACD,OAAO,IAAI,CAAC;4BACd,CAAC,CAAC,CACH,EAAA;;wBAVD,SAUC,CAAC;;;;;KACH;IAEK,2BAAS,GAAf,UAAgB,KAAY;;;;;;wBACpB,KAAoC,IAAI,CAAC,KAAK,EAA7C,YAAY,kBAAA,EAAE,GAAG,SAAA,EAAE,IAAI,UAAA,EAAE,MAAM,YAAA,CAAe;6BACjD,CAAA,YAAY,IAAI,IAAA,oBAAc,EAAC,YAAY,CAAC,CAAA,EAA5C,wBAA4C;wBAC9C,qBAAM,GAAG,CAAC,OAAO,CACf,YAAyB,EACzB,IAAA,qBAAY,EAAC,IAAI,EAAE,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,EACjC,EAAC,MAAM,EAAE,MAAM,EAAC,CACjB,EAAA;;wBAJD,SAIC,CAAC;wBACF,MAAM,EAAE,CAAC;;;wBAET,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;;;;;;KAE9C;IAED,8BAAY,GAAZ,UAAa,IAAU;QACf,IAAA,KAAwB,IAAI,CAAC,KAAK,EAAjC,QAAQ,cAAA,EAAE,GAAG,SAAA,EAAE,IAAI,UAAc,CAAC;QACzC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE;YACxC,OAAO;SACR;QAED,IACE,CAAC,IAAI,CAAC,EAAE;YACR,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACtC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC/B;YACA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO;SACR;QAED,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,CAAC,IAAA,YAAM,EAAC,IAAI,CAAC,EAAY,EAAE,IAAI,CAAC,EAAE,IAAW,CAAC,CAAC;IAC5D,CAAC;IAED,wBAAM,GAAN;QACE,IAAM,KAAsD,IAAI,CAAC,KAAK,EAA/D,OAAO,aAAA,EAAE,MAAM,YAAA,EAAE,SAAS,eAAA,EAAE,YAAY,kBAAA,EAAK,IAAI,2BAAlD,kDAAmD,CAAa,CAAC;QACvE,OAAO,CACL,8BAAC,gBAAgB,4BACX,IAAI,IACR,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,IAAI,EAAE,EACnB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,QAAQ,EAAE,IAAI,CAAC,UAAU,EACzB,YAAY,EAAE,IAAI,CAAC,UAAU,IAC7B,CACH,CAAC;IACJ,CAAC;IACH,cAAC;AAAD,CAAC,AAnJD,CAAc,eAAK,CAAC,SAAS,GAoJ9B,CAAC;AAEF,kBAAe,gBAAgB,CAAC;AAKhC;IAAwC,mDAA8B;IAepE,4BAAY,KAAoB,EAAE,OAAuB;QAAzD,YACE,kBAAM,KAAK,CAAC,SAIb;QAjBD,eAAS,GAKO,SAAS,CAAC;QAUxB,IAAM,MAAM,GAAG,OAAO,CAAC;QACvB,MAAM,CAAC,iBAAiB,CAAC,KAAI,CAAC,CAAC;;IACjC,CAAC;IATD,4CAAe,GAAf,UAAgB,GAAQ;QACtB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACvB,CAAC;IASD,iDAAoB,GAApB;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,OAAyB,CAAC;QAC9C,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAGD,mCAAM,GAAN,UAAO,MAAe,EAAE,KAAW,EAAE,MAAe;;QAClD,IAAI,KAAK,EAAE;YACT,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC5B;QAEK,IAAA,KAAqC,IAAI,CAAC,KAAK,EAA9C,IAAI,UAAA,EAAE,GAAG,SAAA,EAAE,MAAM,YAAA,EAAa,EAAE,eAAc,CAAC;QACtD,IAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAA,qBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7D,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAGD,oCAAO,GAAP,UAAQ,MAAc;QACpB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,mCAAM,GAAN;QACE,IAAU,IAAI,uBAAI,IAAI,CAAC,KAAK,EAAtB,EAAS,CAAa,CAAC;QAC7B,OAAO,CACL,8BAAC,iCAAiC,4BAC5B,IAAI,IACR,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,eAAe,EAAE,IAAI,CAAC,eAAe,IACrC,CACH,CAAC;IACJ,CAAC;;IApDM,8BAAW,GAAG,sBAAa,CAAC;IAUnC;QADC,iBAAQ;;;;6DAGR;IAeD;QADC,iBAAQ;;;;oDAUR;IAGD;QADC,iBAAQ;;;;qDAGR;IA1CU,kBAAkB;QAJ9B,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,KAAK;SACZ,CAAC;0EAgBmB,uBAAa,oBAAb,uBAAa,oDAAW,uBAAc,oBAAd,uBAAc;OAf9C,kBAAkB,CAsD9B;IAAD,yBAAC;CAAA,AAtDD,CAAwC,eAAK,CAAC,SAAS,GAsDtD;AAtDY,gDAAkB",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport {Renderer, RendererEnv, RendererProps} from '../factory';\nimport getExprProperties from '../utils/filter-schema';\nimport {filter, evalExpression} from '../utils/tpl';\nimport {\n guid,\n autobind,\n createObject,\n findTree,\n isUnfolded,\n mapTree,\n someTree,\n spliceTree,\n findTreeIndex\n} from '../utils/helper';\nimport {ScopedContext, IScopedContext} from '../Scoped';\nimport {themeable, ThemeProps} from '../theme';\nimport {Icon} from '../components/icons';\nimport {\n BaseSchema,\n SchemaApi,\n SchemaIcon,\n SchemaUrlPath,\n SchemaCollection\n} from '../Schema';\nimport {generateIcon} from '../utils/icon';\nimport {\n RemoteOptionsProps,\n withRemoteConfig\n} from '../components/WithRemoteConfig';\nimport {Payload} from '../types';\nimport Spinner from '../components/Spinner';\nimport {isEffectiveApi} from '../utils/api';\nimport {Badge, BadgeSchema} from '../components/Badge';\n\nexport type NavItemSchema = {\n /**\n * 文字说明\n */\n label?: string | SchemaCollection;\n\n /**\n * 图标类名,参考 fontawesome 4。\n */\n icon?: SchemaIcon;\n\n to?: SchemaUrlPath;\n\n target?: string;\n\n unfolded?: boolean;\n active?: boolean;\n\n defer?: boolean;\n deferApi?: SchemaApi;\n\n children?: Array<NavItemSchema>;\n} & Omit<BaseSchema, 'type'>;\n\n/**\n * Nav 导航渲染器\n * 文档:https://baidu.gitee.io/amis/docs/components/nav\n */\nexport interface NavSchema extends BaseSchema {\n /**\n * 指定为 Nav 导航渲染器\n */\n type: 'nav';\n\n /**\n * 链接地址集合\n */\n links?: Array<NavItemSchema>;\n\n /**\n * @default 24\n */\n indentSize: number;\n\n /**\n * 可以通过 API 拉取。\n */\n source?: SchemaApi;\n\n /**\n * 懒加载 api,如果不配置复用 source 接口。\n */\n deferApi?: SchemaApi;\n\n /**\n * true 为垂直排列,false 为水平排列类似如 tabs。\n */\n stacked?: boolean;\n\n /**\n * 更多操作菜单列表\n */\n itemActions?: SchemaCollection;\n\n /**\n * 可拖拽\n */\n draggable?: boolean;\n\n /**\n * 保存排序的 api\n */\n saveOrderApi?: SchemaApi;\n\n /**\n * 角标\n */\n itemBadge?: BadgeSchema;\n\n /**\n * 仅允许同层级拖拽\n */\n dragOnSameLevel?: boolean;\n}\n\nexport interface Link {\n className?: string;\n label?: string | SchemaCollection;\n to?: string;\n target?: string;\n icon?: string;\n active?: boolean;\n activeOn?: string;\n unfolded?: boolean;\n children?: Links;\n defer?: boolean;\n loading?: boolean;\n loaded?: boolean;\n [propName: string]: any;\n itemBadge?: BadgeSchema;\n}\nexport interface Links extends Array<Link> {}\n\nexport interface NavigationState {\n links?: Links;\n error?: string;\n dropIndicator?: {\n top: number;\n left: number;\n width: number;\n height?: number;\n opacity?: number;\n };\n}\n\nexport interface NavigationProps\n extends ThemeProps,\n Omit<NavSchema, 'type' | 'className'> {\n onSelect?: (item: Link) => void | false;\n onToggle?: (item: Link, forceFold?: boolean) => void;\n onDragUpdate?: (dropInfo: IDropInfo) => void;\n togglerClassName?: string;\n links?: Array<Link>;\n loading?: boolean;\n render: RendererProps['render'];\n env: RendererEnv;\n data: Object;\n reload?: any;\n}\n\nexport interface IDropInfo {\n dragLink: Link | null;\n nodeId: string;\n position: string;\n rect: DOMRect;\n height: number;\n left: number;\n}\n\nexport class Navigation extends React.Component<\n NavigationProps,\n NavigationState\n> {\n static defaultProps = {\n indentSize: 24\n };\n\n dragNode: {\n node: HTMLElement;\n link: Link | null;\n } | null;\n dropInfo: IDropInfo | null;\n startPoint: {\n y: number;\n x: number;\n } = {\n y: 0,\n x: 0\n };\n state: NavigationState = {};\n\n @autobind\n handleClick(link: Link) {\n const {env, onSelect} = this.props;\n // 和 action 里命名一致方便分析\n if (link && link.to) {\n env?.tracker({\n eventType: 'link',\n eventData: {\n label: link.label,\n link: link.to\n }\n });\n }\n\n onSelect?.(link);\n }\n\n @autobind\n toggleLink(target: Link, forceFold?: boolean) {\n this.props.onToggle?.(target, forceFold);\n }\n\n @autobind\n getDropInfo(e: DragEvent, id: string, depth: number): IDropInfo {\n const {dragOnSameLevel, indentSize} = this.props;\n let rect = (e.target as HTMLElement).getBoundingClientRect();\n const dragLink = this.dragNode?.link as Link;\n const {top, height, width} = rect;\n let {clientY, clientX} = e;\n const left = depth * (parseInt(indentSize as any, 10) ?? 24);\n const deltaX = left + width * 0.2;\n let position;\n if (clientY >= top + height / 2) {\n position = 'bottom';\n } else {\n position = 'top';\n }\n if (\n !dragOnSameLevel &&\n position === 'bottom' &&\n clientX >= this.startPoint.x + deltaX\n ) {\n position = 'self';\n }\n return {\n nodeId: id,\n dragLink,\n position,\n rect,\n height,\n left\n };\n }\n @autobind\n updateDropIndicator(e: DragEvent) {\n const {dragOnSameLevel} = this.props;\n const target = e.target as HTMLElement; // a标签\n const targetId = target.getAttribute('data-id') as string;\n const targetDepth = Number(target.getAttribute('data-depth'));\n if (\n dragOnSameLevel &&\n this.dragNode?.node.parentElement !== target.parentElement?.parentElement\n ) {\n this.setState({dropIndicator: undefined});\n this.dropInfo = null;\n return;\n }\n this.dropInfo = this.getDropInfo(e, targetId, targetDepth);\n let {position, rect, dragLink, height, left} = this.dropInfo;\n if (targetId === dragLink?.__id) {\n this.setState({dropIndicator: undefined});\n this.dropInfo = null;\n return;\n }\n const ul = (findDOMNode(this) as HTMLElement).firstChild as HTMLElement;\n if (position === 'self') {\n this.setState({\n dropIndicator: {\n top: rect.top - ul.getBoundingClientRect().top,\n left,\n width: ul.getBoundingClientRect().width - left,\n height,\n opacity: 0.2\n }\n });\n } else {\n this.setState({\n dropIndicator: {\n top:\n (position === 'bottom' ? rect.top + rect.height : rect.top) -\n ul.getBoundingClientRect().top,\n left,\n width: ul.getBoundingClientRect().width - left\n }\n });\n }\n }\n\n @autobind\n handleDragStart(link: Link) {\n return (e: React.DragEvent) => {\n e.stopPropagation();\n const currentTarget = e.currentTarget as HTMLElement;\n e.dataTransfer.effectAllowed = 'copyMove';\n e.dataTransfer.setDragImage(currentTarget, 0, 0);\n this.dragNode = {\n node: currentTarget,\n link: link\n };\n this.dropInfo = null;\n this.startPoint = {\n x: e.clientX,\n y: e.clientY\n };\n currentTarget.addEventListener('dragend', this.handleDragEnd);\n document.body.addEventListener('dragover', this.handleDragOver);\n };\n }\n\n @autobind\n handleDragOver(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n if (!this.dragNode) {\n return;\n }\n const target = e.target as HTMLElement;\n const id = target.getAttribute('data-id');\n if (!id) {\n return;\n }\n this.updateDropIndicator(e);\n }\n\n @autobind\n handleDragEnd(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.setState({\n dropIndicator: undefined\n });\n const currentTarget = e.currentTarget as HTMLElement;\n const id = currentTarget.getAttribute('data-id');\n let nodeId = this.dropInfo?.nodeId;\n if (!this.dropInfo || !nodeId || id === nodeId) {\n return;\n }\n currentTarget.removeEventListener('dragend', this.handleDragEnd);\n document.body.removeEventListener('dragover', this.handleDragOver);\n\n this.props.onDragUpdate?.(this.dropInfo);\n this.dragNode = null;\n this.dropInfo = null;\n }\n\n renderItem(link: Link, index: number, depth = 1) {\n if (link.hidden === true || link.visible === false) {\n return null;\n }\n const isActive: boolean = !!link.active;\n const {\n disabled,\n togglerClassName,\n classnames: cx,\n indentSize,\n render,\n itemActions,\n draggable,\n links,\n itemBadge,\n data: defaultData\n } = this.props;\n const hasSub =\n (link.defer && !link.loaded) || (link.children && link.children.length);\n return (\n <li\n key={link.__id}\n data-id={link.__id}\n className={cx('Nav-item', link.className, {\n 'is-disabled': disabled || link.disabled || link.loading,\n 'is-active': isActive,\n 'is-unfolded': link.unfolded,\n 'has-sub': hasSub\n })}\n onDragStart={this.handleDragStart(link)}\n >\n <Badge\n classnames={cx}\n badge={itemBadge}\n data={createObject(defaultData, link)}\n >\n <a\n data-id={link.__id}\n data-depth={depth}\n onClick={this.handleClick.bind(this, link)}\n style={{\n paddingLeft: depth * (parseInt(indentSize as any, 10) ?? 24)\n }}\n >\n {!disabled && draggable ? (\n <div\n className={cx('Nav-itemDrager')}\n draggable\n onMouseDown={e => {\n this.toggleLink(link, true);\n e.stopPropagation();\n }}\n >\n <Icon icon=\"drag-bar\" className=\"icon\" />\n </div>\n ) : null}\n {link.loading ? (\n <Spinner\n size=\"sm\"\n show\n icon=\"reload\"\n spinnerClassName={cx('Nav-spinner')}\n />\n ) : hasSub ? (\n <span\n onClick={e => {\n this.toggleLink(link);\n e.stopPropagation();\n }}\n className={cx('Nav-itemToggler', togglerClassName)}\n >\n <Icon icon=\"caret\" className=\"icon\" />\n </span>\n ) : null}\n {generateIcon(cx, link.icon, 'Nav-itemIcon')}\n {link.label &&\n (typeof link.label === 'string'\n ? link.label\n : render('inline', link.label as SchemaCollection))}\n </a>\n {\n // 更多操作\n itemActions ? (\n <div className={cx('Nav-item-atcions')}>\n {render('inline', itemActions, {\n data: createObject(defaultData, link)\n })}\n </div>\n ) : null\n }\n {Array.isArray(link.children) && link.children.length ? (\n <ul className={cx('Nav-subItems')}>\n {link.children.map((link, index) =>\n this.renderItem(link, index, depth + 1)\n )}\n </ul>\n ) : null}\n </Badge>\n </li>\n );\n }\n\n render(): JSX.Element {\n const {className, stacked, classnames: cx, links, loading} = this.props;\n const {dropIndicator} = this.state;\n return (\n <div className={cx('Nav')}>\n <ul\n className={cx(\n 'Nav-list',\n className,\n stacked ? 'Nav-list--stacked' : 'Nav-list--tabs'\n )}\n >\n {Array.isArray(links)\n ? links.map((item, index) => this.renderItem(item, index))\n : null}\n\n <Spinner show={!!loading} overlay icon=\"reload\" />\n </ul>\n {dropIndicator ? (\n <div className={cx('Nav-dropIndicator')} style={dropIndicator} />\n ) : null}\n </div>\n );\n }\n}\n\nconst ThemedNavigation = themeable(Navigation);\n\nconst ConditionBuilderWithRemoteOptions = withRemoteConfig({\n adaptor: (config: any, props: any) => {\n const links = Array.isArray(config)\n ? config\n : config.links || config.options || config.items || config.rows;\n\n if (!Array.isArray(links)) {\n throw new Error('payload.data.options is not array.');\n }\n\n return links;\n },\n afterLoad: (response: any, config: any, props: any) => {\n if (response.value && !someTree(config, item => item.active)) {\n const {env} = props;\n\n env.jumpTo(filter(response.value as string, props.data));\n }\n },\n normalizeConfig(\n links: Array<Link>,\n origin: Array<Link> | undefined,\n props: any,\n motivation?: string\n ) {\n if (Array.isArray(links) && motivation !== 'toggle') {\n const {data, env, unfoldedField, foldedField} = props;\n\n links = mapTree(\n links,\n (link: Link) => {\n const item: any = {\n ...link,\n ...getExprProperties(link, data as object),\n active:\n (motivation !== 'location-change' && link.active) ||\n (link.activeOn\n ? evalExpression(link.activeOn as string, data)\n : !!(\n link.hasOwnProperty('to') &&\n env &&\n env.isCurrentUrl(filter(link.to as string, data))\n )),\n __id: link.id ?? link.__id ?? guid()\n };\n\n item.unfolded =\n isUnfolded(item, {unfoldedField, foldedField}) ||\n (link.children && link.children.some(link => !!link.active));\n\n return item;\n },\n 1,\n true\n );\n }\n\n return links;\n },\n\n beforeDeferLoad(item: Link, indexes: Array<number>, links: Array<Link>) {\n return spliceTree(links, indexes, 1, {\n ...item,\n loading: true\n });\n },\n\n afterDeferLoad(\n item: Link,\n indexes: Array<number>,\n ret: Payload,\n links: Array<Link>\n ) {\n const newItem = {\n ...item,\n loading: false,\n loaded: true,\n error: ret.ok ? undefined : ret.msg\n };\n\n const children = Array.isArray(ret.data)\n ? ret.data\n : ret.data.links || ret.data.options || ret.data.items || ret.data.rows;\n\n if (Array.isArray(children)) {\n newItem.children = children.concat();\n newItem.unfolded = true;\n }\n\n return spliceTree(links, indexes, 1, newItem);\n }\n})(\n class extends React.Component<\n RemoteOptionsProps &\n React.ComponentProps<typeof ThemedNavigation> & {\n location?: any;\n env?: RendererEnv;\n data?: any;\n unfoldedField?: string;\n foldedField?: string;\n reload?: any;\n }\n > {\n constructor(props: any) {\n super(props);\n this.toggleLink = this.toggleLink.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.dragUpdate = this.dragUpdate.bind(this);\n }\n\n componentDidMount() {\n if (Array.isArray(this.props.links)) {\n this.props.updateConfig(this.props.links, 'mount');\n }\n }\n\n componentDidUpdate(prevProps: any) {\n if (this.props.location !== prevProps.location) {\n this.props.updateConfig(this.props.config, 'location-change');\n } else if (this.props.links !== prevProps.links) {\n this.props.updateConfig(this.props.links, 'update');\n }\n }\n\n toggleLink(target: Link, forceFold?: boolean) {\n const {config, updateConfig, deferLoad} = this.props;\n\n if (target.defer && !target.loaded) {\n deferLoad(target);\n } else {\n updateConfig(\n mapTree(config, (link: Link) =>\n target === link\n ? {\n ...link,\n unfolded: forceFold ? false : !link.unfolded\n }\n : link\n ),\n 'toggle'\n );\n }\n }\n\n async dragUpdate(dropInfo: IDropInfo) {\n let links = this.props.config;\n const {nodeId, dragLink, position} = dropInfo;\n if (dragLink) {\n // 删除原节点\n const sourceIdx = findTreeIndex(\n links,\n link => link.__id === dragLink.__id\n ) as number[];\n links = spliceTree(links, sourceIdx, 1);\n\n if (position === 'self') {\n // 插入到对应节点的children中\n mapTree(links, link => {\n if (link.__id === nodeId) {\n if (!link.children) {\n link.children = [];\n }\n link.children.push(dragLink);\n }\n return link;\n });\n } else {\n // 找到需要插入的节点\n const idx = findTreeIndex(\n links,\n link => link.__id === nodeId\n ) as number[];\n // 插入节点之后\n if (position === 'bottom') {\n idx.push((idx.pop() as number) + 1);\n }\n links = spliceTree(links, idx, 0, dragLink);\n }\n }\n this.props.updateConfig(links, 'update');\n await this.saveOrder(\n mapTree(links, (link: Link) => {\n // 清除内部加的字段\n for (let key in link) {\n if (/^__.*$/.test(key)) {\n delete link[key];\n }\n }\n return link;\n })\n );\n }\n\n async saveOrder(links: Links) {\n const {saveOrderApi, env, data, reload} = this.props;\n if (saveOrderApi && isEffectiveApi(saveOrderApi)) {\n await env.fetcher(\n saveOrderApi as SchemaApi,\n createObject(data, {data: links}),\n {method: 'post'}\n );\n reload();\n } else {\n env.alert('NAV saveOrderApi is required!');\n }\n }\n\n handleSelect(link: Link) {\n const {onSelect, env, data} = this.props;\n if (onSelect && onSelect(link) === false) {\n return;\n }\n\n if (\n !link.to &&\n ((link.children && link.children.length) ||\n (link.defer && !link.loaded))\n ) {\n this.toggleLink(link);\n return;\n }\n\n env?.jumpTo(filter(link.to as string, data), link as any);\n }\n\n render() {\n const {loading, config, deferLoad, updateConfig, ...rest} = this.props;\n return (\n <ThemedNavigation\n {...rest}\n loading={loading}\n links={config || []}\n disabled={loading}\n onSelect={this.handleSelect}\n onToggle={this.toggleLink}\n onDragUpdate={this.dragUpdate}\n />\n );\n }\n }\n);\n\nexport default ThemedNavigation;\n@Renderer({\n test: /(^|\\/)(?:nav|navigation)$/,\n name: 'nav'\n})\nexport class NavigationRenderer extends React.Component<RendererProps> {\n static contextType = ScopedContext;\n\n remoteRef:\n | {\n loadConfig: (ctx?: any) => Promise<any> | void;\n setConfig: (value: any) => void;\n }\n | undefined = undefined;\n\n @autobind\n remoteConfigRef(ref: any) {\n this.remoteRef = ref;\n }\n\n constructor(props: RendererProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n componentWillUnmount() {\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n }\n\n @autobind\n reload(target?: string, query?: any, values?: object) {\n if (query) {\n return this.receive(query);\n }\n\n const {data, env, source, translate: __} = this.props;\n const finalData = values ? createObject(data, values) : data;\n\n this.remoteRef?.loadConfig(finalData);\n }\n\n @autobind\n receive(values: object) {\n this.reload(undefined, undefined, values);\n }\n\n render() {\n const {...rest} = this.props;\n return (\n <ConditionBuilderWithRemoteOptions\n {...rest}\n reload={this.reload}\n remoteConfigRef={this.remoteConfigRef}\n />\n );\n }\n}\n"
|
11
|
+
"import React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport Overflow from 'rc-overflow';\nimport {Renderer, RendererEnv, RendererProps} from '../factory';\nimport getExprProperties from '../utils/filter-schema';\nimport {filter, evalExpression} from '../utils/tpl';\nimport {\n guid,\n autobind,\n createObject,\n isUnfolded,\n mapTree,\n someTree,\n spliceTree,\n findTreeIndex,\n isObject\n} from '../utils/helper';\nimport {generateIcon} from '../utils/icon';\nimport {isEffectiveApi} from '../utils/api';\nimport {themeable, ThemeProps} from '../theme';\nimport {Icon, getIcon} from '../components/icons';\nimport {Badge, BadgeSchema} from '../components/Badge';\nimport {\n RemoteOptionsProps,\n withRemoteConfig\n} from '../components/WithRemoteConfig';\nimport Spinner from '../components/Spinner';\nimport PopOverContainer from '../components/PopOverContainer';\nimport {ScopedContext, IScopedContext} from '../Scoped';\n\nimport type {Payload} from '../types';\nimport type {\n BaseSchema,\n SchemaObject,\n SchemaApi,\n SchemaIcon,\n SchemaUrlPath,\n SchemaCollection,\n SchemaClassName\n} from '../Schema';\n\nexport type NavItemSchema = {\n /**\n * 文字说明\n */\n label?: string | SchemaCollection;\n\n /**\n * 图标类名,参考 fontawesome 4。\n */\n icon?: SchemaIcon;\n\n to?: SchemaUrlPath;\n\n target?: string;\n\n unfolded?: boolean;\n active?: boolean;\n\n defer?: boolean;\n deferApi?: SchemaApi;\n\n children?: Array<NavItemSchema>;\n} & Omit<BaseSchema, 'type'>;\n\nexport interface NavOverflow {\n /**\n * 是否开启响应式收纳\n */\n enable: boolean;\n\n /**\n * 菜单触发按钮的文字\n */\n overflowLabel?: string | SchemaObject;\n\n /**\n * 菜单触发按钮的图标\n * @default \"fa fa-ellipsis\"\n */\n overflowIndicator?: SchemaIcon;\n\n /**\n * 菜单触发按钮CSS类名\n */\n overflowClassName?: SchemaClassName;\n\n /**\n * Popover浮层CSS类名\n */\n overflowPopoverClassName?: SchemaClassName;\n\n /**\n * 菜单外层CSS类名\n */\n overflowListClassName?: SchemaClassName;\n\n /**\n * 导航横向布局时,开启开启响应式收纳后最大可显示数量,超出此数量的导航将被收纳到下拉菜单中\n */\n maxVisibleCount?: number;\n\n /**\n * 包裹导航的外层标签名,可以使用其他标签渲染\n * @default \"ul\"\n */\n wrapperComponent?: string;\n\n /**\n * 导航项目宽度\n * @default 160\n */\n itemWidth?: number;\n\n /**\n * 导航列表后缀节点\n */\n overflowSuffix?: SchemaCollection;\n\n /**\n * 自定义样式\n */\n style?: React.CSSProperties;\n\n /**\n * 菜单DOM挂载点\n */\n popOverContainer?: any;\n}\n\n/**\n * Nav 导航渲染器\n * 文档:https://baidu.gitee.io/amis/docs/components/nav\n */\nexport interface NavSchema extends BaseSchema {\n /**\n * 指定为 Nav 导航渲染器\n */\n type: 'nav';\n\n /**\n * 链接地址集合\n */\n links?: Array<NavItemSchema>;\n\n /**\n * @default 24\n */\n indentSize: number;\n\n /**\n * 可以通过 API 拉取。\n */\n source?: SchemaApi;\n\n /**\n * 懒加载 api,如果不配置复用 source 接口。\n */\n deferApi?: SchemaApi;\n\n /**\n * true 为垂直排列,false 为水平排列类似如 tabs。\n */\n stacked?: boolean;\n\n /**\n * 更多操作菜单列表\n */\n itemActions?: SchemaCollection;\n\n /**\n * 可拖拽\n */\n draggable?: boolean;\n\n /**\n * 保存排序的 api\n */\n saveOrderApi?: SchemaApi;\n\n /**\n * 角标\n */\n itemBadge?: BadgeSchema;\n\n /**\n * 仅允许同层级拖拽\n */\n dragOnSameLevel?: boolean;\n\n /**\n * 横向导航时自动收纳配置\n */\n overflow?: NavOverflow;\n}\n\nexport interface Link {\n className?: string;\n label?: string | SchemaCollection;\n to?: string;\n target?: string;\n icon?: string;\n active?: boolean;\n activeOn?: string;\n unfolded?: boolean;\n children?: Links;\n defer?: boolean;\n loading?: boolean;\n loaded?: boolean;\n [propName: string]: any;\n itemBadge?: BadgeSchema;\n}\nexport interface Links extends Array<Link> {}\n\nexport interface NavigationState {\n links?: Links;\n error?: string;\n dropIndicator?: {\n top: number;\n left: number;\n width: number;\n height?: number;\n opacity?: number;\n };\n}\n\nexport interface NavigationProps\n extends ThemeProps,\n Omit<NavSchema, 'type' | 'className'> {\n onSelect?: (item: Link) => void | false;\n onToggle?: (item: Link, forceFold?: boolean) => void;\n onDragUpdate?: (dropInfo: IDropInfo) => void;\n togglerClassName?: string;\n links?: Array<Link>;\n loading?: boolean;\n render: RendererProps['render'];\n env: RendererEnv;\n data: Object;\n reload?: any;\n overflow?: NavOverflow;\n}\n\nexport interface IDropInfo {\n dragLink: Link | null;\n nodeId: string;\n position: string;\n rect: DOMRect;\n height: number;\n left: number;\n}\n\nexport class Navigation extends React.Component<\n NavigationProps,\n NavigationState\n> {\n static defaultProps: Pick<NavigationProps, 'indentSize'> = {\n indentSize: 24\n };\n\n dragNode: {\n node: HTMLElement;\n link: Link | null;\n } | null;\n dropInfo: IDropInfo | null;\n startPoint: {\n y: number;\n x: number;\n } = {\n y: 0,\n x: 0\n };\n state: NavigationState = {};\n\n @autobind\n handleClick(link: Link) {\n const {env, onSelect} = this.props;\n // 和 action 里命名一致方便分析\n if (link && link.to) {\n env?.tracker({\n eventType: 'link',\n eventData: {\n label: link.label,\n link: link.to\n }\n });\n }\n\n onSelect?.(link);\n }\n\n @autobind\n toggleLink(target: Link, forceFold?: boolean) {\n this.props.onToggle?.(target, forceFold);\n }\n\n @autobind\n getDropInfo(e: DragEvent, id: string, depth: number): IDropInfo {\n const {dragOnSameLevel, indentSize} = this.props;\n let rect = (e.target as HTMLElement).getBoundingClientRect();\n const dragLink = this.dragNode?.link as Link;\n const {top, height, width} = rect;\n let {clientY, clientX} = e;\n const left = depth * (parseInt(indentSize as any, 10) ?? 24);\n const deltaX = left + width * 0.2;\n let position;\n if (clientY >= top + height / 2) {\n position = 'bottom';\n } else {\n position = 'top';\n }\n if (\n !dragOnSameLevel &&\n position === 'bottom' &&\n clientX >= this.startPoint.x + deltaX\n ) {\n position = 'self';\n }\n return {\n nodeId: id,\n dragLink,\n position,\n rect,\n height,\n left\n };\n }\n @autobind\n updateDropIndicator(e: DragEvent) {\n const {dragOnSameLevel} = this.props;\n const target = e.target as HTMLElement; // a标签\n const targetId = target.getAttribute('data-id') as string;\n const targetDepth = Number(target.getAttribute('data-depth'));\n if (\n dragOnSameLevel &&\n this.dragNode?.node.parentElement !== target.parentElement?.parentElement\n ) {\n this.setState({dropIndicator: undefined});\n this.dropInfo = null;\n return;\n }\n this.dropInfo = this.getDropInfo(e, targetId, targetDepth);\n let {position, rect, dragLink, height, left} = this.dropInfo;\n if (targetId === dragLink?.__id) {\n this.setState({dropIndicator: undefined});\n this.dropInfo = null;\n return;\n }\n const ul = (findDOMNode(this) as HTMLElement).firstChild as HTMLElement;\n if (position === 'self') {\n this.setState({\n dropIndicator: {\n top: rect.top - ul.getBoundingClientRect().top,\n left,\n width: ul.getBoundingClientRect().width - left,\n height,\n opacity: 0.2\n }\n });\n } else {\n this.setState({\n dropIndicator: {\n top:\n (position === 'bottom' ? rect.top + rect.height : rect.top) -\n ul.getBoundingClientRect().top,\n left,\n width: ul.getBoundingClientRect().width - left\n }\n });\n }\n }\n\n @autobind\n handleDragStart(link: Link) {\n return (e: React.DragEvent) => {\n e.stopPropagation();\n const currentTarget = e.currentTarget as HTMLElement;\n e.dataTransfer.effectAllowed = 'copyMove';\n e.dataTransfer.setDragImage(currentTarget, 0, 0);\n this.dragNode = {\n node: currentTarget,\n link: link\n };\n this.dropInfo = null;\n this.startPoint = {\n x: e.clientX,\n y: e.clientY\n };\n currentTarget.addEventListener('dragend', this.handleDragEnd);\n document.body.addEventListener('dragover', this.handleDragOver);\n };\n }\n\n @autobind\n handleDragOver(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n if (!this.dragNode) {\n return;\n }\n const target = e.target as HTMLElement;\n const id = target.getAttribute('data-id');\n if (!id) {\n return;\n }\n this.updateDropIndicator(e);\n }\n\n @autobind\n handleDragEnd(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.setState({\n dropIndicator: undefined\n });\n const currentTarget = e.currentTarget as HTMLElement;\n const id = currentTarget.getAttribute('data-id');\n let nodeId = this.dropInfo?.nodeId;\n if (!this.dropInfo || !nodeId || id === nodeId) {\n return;\n }\n currentTarget.removeEventListener('dragend', this.handleDragEnd);\n document.body.removeEventListener('dragover', this.handleDragOver);\n\n this.props.onDragUpdate?.(this.dropInfo);\n this.dragNode = null;\n this.dropInfo = null;\n }\n\n renderItem(link: Link, index: number, depth = 1) {\n if (link.hidden === true || link.visible === false) {\n return null;\n }\n const isActive: boolean = !!link.active;\n const {\n disabled,\n togglerClassName,\n classnames: cx,\n indentSize,\n render,\n itemActions,\n draggable,\n links,\n itemBadge,\n data: defaultData\n } = this.props;\n const hasSub =\n (link.defer && !link.loaded) || (link.children && link.children.length);\n\n return (\n <li\n key={link.__id}\n data-id={link.__id}\n className={cx('Nav-item', link.className, {\n 'is-disabled': disabled || link.disabled || link.loading,\n 'is-active': isActive,\n 'is-unfolded': link.unfolded,\n 'has-sub': hasSub\n })}\n onDragStart={this.handleDragStart(link)}\n >\n <Badge\n classnames={cx}\n badge={itemBadge}\n data={createObject(defaultData, link)}\n >\n <a\n data-id={link.__id}\n data-depth={depth}\n title={link?.label?.toString()}\n onClick={this.handleClick.bind(this, link)}\n style={{\n paddingLeft: depth * (parseInt(indentSize as any, 10) ?? 24)\n }}\n >\n {!disabled && draggable ? (\n <div\n className={cx('Nav-itemDrager')}\n draggable\n onMouseDown={e => {\n this.toggleLink(link, true);\n e.stopPropagation();\n }}\n >\n <Icon icon=\"drag-bar\" className=\"icon\" />\n </div>\n ) : null}\n {link.loading ? (\n <Spinner\n size=\"sm\"\n show\n icon=\"reload\"\n spinnerClassName={cx('Nav-spinner')}\n />\n ) : hasSub ? (\n <span\n onClick={e => {\n this.toggleLink(link);\n e.stopPropagation();\n }}\n className={cx('Nav-itemToggler', togglerClassName)}\n >\n <Icon icon=\"caret\" className=\"icon\" />\n </span>\n ) : null}\n {generateIcon(cx, link.icon, 'Nav-itemIcon')}\n {link.label &&\n (typeof link.label === 'string'\n ? link.label\n : render('inline', link.label as SchemaCollection))}\n </a>\n {\n // 更多操作\n itemActions ? (\n <div className={cx('Nav-item-atcions')}>\n {render('inline', itemActions, {\n data: createObject(defaultData, link)\n })}\n </div>\n ) : null\n }\n {Array.isArray(link.children) && link.children.length ? (\n <ul className={cx('Nav-subItems')}>\n {link.children.map((link, index) =>\n this.renderItem(link, index, depth + 1)\n )}\n </ul>\n ) : null}\n </Badge>\n </li>\n );\n }\n\n renderOverflowNavs(overflowConfig: NavOverflow) {\n const {render, classnames: cx, className, loading, links = []} = this.props;\n const {\n overflowClassName,\n overflowPopoverClassName,\n overflowListClassName,\n overflowLabel,\n overflowIndicator,\n itemWidth = 160,\n overflowSuffix,\n popOverContainer,\n style,\n maxVisibleCount,\n wrapperComponent = 'ul'\n } = overflowConfig;\n\n return (\n <>\n <Spinner show={!!loading} overlay icon=\"reload\" />\n\n <Overflow<Link>\n className={cx('Nav-list--tabs', className)}\n prefixCls={cx('Nav-list')}\n itemWidth={itemWidth}\n style={style}\n component={wrapperComponent as any}\n data={links}\n suffix={\n overflowSuffix\n ? render('nav-overflow-suffix', overflowSuffix)\n : null\n }\n renderRawItem={(item, index) =>\n this.renderItem(item, index) as JSX.Element\n }\n renderRawRest={overFlowedItems => {\n return (\n <PopOverContainer\n popOverContainer={popOverContainer}\n popOverClassName={cx(\n 'Nav-item-overflow-popover',\n overflowPopoverClassName\n )}\n popOverRender={({onClose}) => (\n <div\n className={cx(\n 'Nav-list',\n 'Nav-list--stacked', // 浮层菜单为垂直布局\n 'Nav-list-overflow',\n overflowListClassName\n )}\n >\n {overFlowedItems.map((item, index) =>\n React.cloneElement(\n this.renderItem(item, index) as JSX.Element,\n {\n onClick: onClose\n }\n )\n )}\n </div>\n )}\n >\n {({onClick, ref, isOpened}) => (\n <li\n ref={ref}\n className={cx(\n 'Nav-item',\n 'Nav-item-overflow',\n {\n 'is-overflow-opened': isOpened\n },\n overflowClassName\n )}\n onClick={onClick}\n >\n <a data-id={guid()} data-depth={1}>\n {getIcon(overflowIndicator!) ? (\n <Icon icon={overflowIndicator} className=\"icon\" />\n ) : (\n generateIcon(cx, overflowIndicator, 'Nav-itemIcon')\n )}\n {overflowLabel && isObject\n ? render('nav-overflow-label', overflowLabel)\n : overflowLabel}\n </a>\n </li>\n )}\n </PopOverContainer>\n );\n }}\n maxCount={\n maxVisibleCount && Number.isInteger(maxVisibleCount)\n ? maxVisibleCount\n : 'responsive'\n }\n />\n </>\n );\n }\n\n render(): JSX.Element {\n const {\n className,\n stacked,\n classnames: cx,\n links,\n loading,\n overflow\n } = this.props;\n const {dropIndicator} = this.state;\n\n return (\n <div className={cx('Nav')}>\n {overflow && isObject(overflow) && overflow.enable ? (\n this.renderOverflowNavs({\n overflowIndicator: 'fa fa-ellipsis',\n wrapperComponent: 'ul',\n itemWidth: 160,\n ...overflow\n })\n ) : (\n <>\n <ul\n className={cx(\n 'Nav-list',\n className,\n stacked ? 'Nav-list--stacked' : 'Nav-list--tabs'\n )}\n >\n {Array.isArray(links)\n ? links.map((item, index) => this.renderItem(item, index))\n : null}\n\n <Spinner show={!!loading} overlay icon=\"reload\" />\n </ul>\n {dropIndicator ? (\n <div className={cx('Nav-dropIndicator')} style={dropIndicator} />\n ) : null}\n </>\n )}\n </div>\n );\n }\n}\n\nconst ThemedNavigation = themeable(Navigation);\n\nconst ConditionBuilderWithRemoteOptions = withRemoteConfig({\n adaptor: (config: any, props: any) => {\n const links = Array.isArray(config)\n ? config\n : config.links || config.options || config.items || config.rows;\n\n if (!Array.isArray(links)) {\n throw new Error('payload.data.options is not array.');\n }\n\n return links;\n },\n afterLoad: (response: any, config: any, props: any) => {\n if (response.value && !someTree(config, item => item.active)) {\n const {env} = props;\n\n env.jumpTo(filter(response.value as string, props.data));\n }\n },\n normalizeConfig(\n links: Array<Link>,\n origin: Array<Link> | undefined,\n props: any,\n motivation?: string\n ) {\n if (Array.isArray(links) && motivation !== 'toggle') {\n const {data, env, unfoldedField, foldedField} = props;\n\n links = mapTree(\n links,\n (link: Link) => {\n const item: any = {\n ...link,\n ...getExprProperties(link, data as object),\n active:\n (motivation !== 'location-change' && link.active) ||\n (link.activeOn\n ? evalExpression(link.activeOn as string, data)\n : !!(\n link.hasOwnProperty('to') &&\n env &&\n env.isCurrentUrl(filter(link.to as string, data))\n )),\n __id: link.__id ?? guid()\n };\n\n item.unfolded =\n isUnfolded(item, {unfoldedField, foldedField}) ||\n (link.children && link.children.some(link => !!link.active));\n\n return item;\n },\n 1,\n true\n );\n }\n\n return links;\n },\n\n beforeDeferLoad(item: Link, indexes: Array<number>, links: Array<Link>) {\n return spliceTree(links, indexes, 1, {\n ...item,\n loading: true\n });\n },\n\n afterDeferLoad(\n item: Link,\n indexes: Array<number>,\n ret: Payload,\n links: Array<Link>\n ) {\n const newItem = {\n ...item,\n loading: false,\n loaded: true,\n error: ret.ok ? undefined : ret.msg\n };\n\n const children = Array.isArray(ret.data)\n ? ret.data\n : ret.data.links || ret.data.options || ret.data.items || ret.data.rows;\n\n if (Array.isArray(children)) {\n newItem.children = children.concat();\n newItem.unfolded = true;\n }\n\n return spliceTree(links, indexes, 1, newItem);\n }\n})(\n class extends React.Component<\n RemoteOptionsProps &\n React.ComponentProps<typeof ThemedNavigation> & {\n location?: any;\n env?: RendererEnv;\n data?: any;\n unfoldedField?: string;\n foldedField?: string;\n reload?: any;\n }\n > {\n constructor(props: any) {\n super(props);\n this.toggleLink = this.toggleLink.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.dragUpdate = this.dragUpdate.bind(this);\n }\n\n componentDidMount() {\n if (Array.isArray(this.props.links)) {\n this.props.updateConfig(this.props.links, 'mount');\n }\n }\n\n componentDidUpdate(prevProps: any) {\n if (this.props.location !== prevProps.location) {\n this.props.updateConfig(this.props.config, 'location-change');\n } else if (this.props.links !== prevProps.links) {\n this.props.updateConfig(this.props.links, 'update');\n }\n }\n\n toggleLink(target: Link, forceFold?: boolean) {\n const {config, updateConfig, deferLoad} = this.props;\n\n if (target.defer && !target.loaded) {\n deferLoad(target);\n } else {\n updateConfig(\n mapTree(config, (link: Link) =>\n target === link\n ? {\n ...link,\n unfolded: forceFold ? false : !link.unfolded\n }\n : link\n ),\n 'toggle'\n );\n }\n }\n\n async dragUpdate(dropInfo: IDropInfo) {\n let links = this.props.config;\n const {nodeId, dragLink, position} = dropInfo;\n if (dragLink) {\n // 删除原节点\n const sourceIdx = findTreeIndex(\n links,\n link => link.__id === dragLink.__id\n ) as number[];\n links = spliceTree(links, sourceIdx, 1);\n\n if (position === 'self') {\n // 插入到对应节点的children中\n mapTree(links, link => {\n if (link.__id === nodeId) {\n if (!link.children) {\n link.children = [];\n }\n link.children.push(dragLink);\n }\n return link;\n });\n } else {\n // 找到需要插入的节点\n const idx = findTreeIndex(\n links,\n link => link.__id === nodeId\n ) as number[];\n // 插入节点之后\n if (position === 'bottom') {\n idx.push((idx.pop() as number) + 1);\n }\n links = spliceTree(links, idx, 0, dragLink);\n }\n }\n this.props.updateConfig(links, 'update');\n await this.saveOrder(\n mapTree(links, (link: Link) => {\n // 清除内部加的字段\n for (let key in link) {\n if (/^__.*$/.test(key)) {\n delete link[key];\n }\n }\n return link;\n })\n );\n }\n\n async saveOrder(links: Links) {\n const {saveOrderApi, env, data, reload} = this.props;\n if (saveOrderApi && isEffectiveApi(saveOrderApi)) {\n await env.fetcher(\n saveOrderApi as SchemaApi,\n createObject(data, {data: links}),\n {method: 'post'}\n );\n reload();\n } else {\n env.alert('NAV saveOrderApi is required!');\n }\n }\n\n handleSelect(link: Link) {\n const {onSelect, env, data} = this.props;\n if (onSelect && onSelect(link) === false) {\n return;\n }\n\n if (\n !link.to &&\n ((link.children && link.children.length) ||\n (link.defer && !link.loaded))\n ) {\n this.toggleLink(link);\n return;\n }\n\n env?.jumpTo(filter(link.to as string, data), link as any);\n }\n\n render() {\n const {loading, config, deferLoad, updateConfig, ...rest} = this.props;\n return (\n <ThemedNavigation\n {...rest}\n loading={loading}\n links={config || []}\n disabled={loading}\n onSelect={this.handleSelect}\n onToggle={this.toggleLink}\n onDragUpdate={this.dragUpdate}\n />\n );\n }\n }\n);\n\nexport default ThemedNavigation;\n@Renderer({\n test: /(^|\\/)(?:nav|navigation)$/,\n name: 'nav'\n})\nexport class NavigationRenderer extends React.Component<RendererProps> {\n static contextType = ScopedContext;\n\n remoteRef:\n | {\n loadConfig: (ctx?: any) => Promise<any> | void;\n setConfig: (value: any) => void;\n }\n | undefined = undefined;\n\n @autobind\n remoteConfigRef(ref: any) {\n this.remoteRef = ref;\n }\n\n constructor(props: RendererProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n componentWillUnmount() {\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n }\n\n @autobind\n reload(target?: string, query?: any, values?: object) {\n if (query) {\n return this.receive(query);\n }\n\n const {data, env, source, translate: __} = this.props;\n const finalData = values ? createObject(data, values) : data;\n\n this.remoteRef?.loadConfig(finalData);\n }\n\n @autobind\n receive(values: object) {\n this.reload(undefined, undefined, values);\n }\n\n render() {\n const {...rest} = this.props;\n return (\n <ConditionBuilderWithRemoteOptions\n {...rest}\n reload={this.reload}\n remoteConfigRef={this.remoteConfigRef}\n />\n );\n }\n}\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/renderers/Page.d.ts
CHANGED
@@ -53,6 +53,12 @@ export interface PageSchema extends BaseSchema {
|
|
53
53
|
* 边栏是否允许拖动
|
54
54
|
*/
|
55
55
|
asideResizor?: boolean;
|
56
|
+
/**
|
57
|
+
* 边栏内容是否粘住,即不跟随滚动。
|
58
|
+
*
|
59
|
+
* @default true
|
60
|
+
*/
|
61
|
+
asideSticky?: boolean;
|
56
62
|
/**
|
57
63
|
* 边栏最小宽度
|
58
64
|
*/
|
@@ -139,6 +145,14 @@ export interface PageSchema extends BaseSchema {
|
|
139
145
|
style?: {
|
140
146
|
[propName: string]: any;
|
141
147
|
};
|
148
|
+
/**
|
149
|
+
* 下拉刷新配置
|
150
|
+
*/
|
151
|
+
pullRefresh?: {
|
152
|
+
disabled?: boolean;
|
153
|
+
pullingText?: string;
|
154
|
+
loosingText?: string;
|
155
|
+
};
|
142
156
|
}
|
143
157
|
export interface PageProps extends RendererProps, Omit<PageSchema, 'type' | 'className'> {
|
144
158
|
data: any;
|
@@ -153,6 +167,7 @@ export default class Page extends React.Component<PageProps> {
|
|
153
167
|
startX: number;
|
154
168
|
startWidth: number;
|
155
169
|
codeWrap: HTMLElement;
|
170
|
+
asideInner: React.RefObject<HTMLDivElement>;
|
156
171
|
static defaultProps: {
|
157
172
|
asideClassName: string;
|
158
173
|
bodyClassName: string;
|
@@ -160,6 +175,10 @@ export default class Page extends React.Component<PageProps> {
|
|
160
175
|
initFetch: boolean;
|
161
176
|
toolbarClassName: string;
|
162
177
|
messages: {};
|
178
|
+
asideSticky: boolean;
|
179
|
+
pullRefresh: {
|
180
|
+
disabled: boolean;
|
181
|
+
};
|
163
182
|
};
|
164
183
|
static propsList: Array<keyof PageProps>;
|
165
184
|
constructor(props: PageProps);
|
@@ -191,6 +210,7 @@ export default class Page extends React.Component<PageProps> {
|
|
191
210
|
receive(values: object): void;
|
192
211
|
silentReload(target?: string, query?: any): void;
|
193
212
|
initInterval(value: any): any;
|
213
|
+
handleRefresh(): Promise<void>;
|
194
214
|
handleChange(value: any, name: string, submit?: boolean, changePristine?: boolean): void;
|
195
215
|
renderHeader(): JSX.Element | undefined;
|
196
216
|
render(): JSX.Element;
|
@@ -203,5 +223,6 @@ export declare class PageRenderer extends Page {
|
|
203
223
|
handleAction(e: React.UIEvent<any>, action: Action, ctx: object, throwErrors?: boolean, delegate?: IScopedContext): void;
|
204
224
|
handleDialogConfirm(values: object[], action: Action, ...rest: Array<any>): void;
|
205
225
|
handleDrawerConfirm(values: object[], action: Action, ...rest: Array<any>): void;
|
226
|
+
setData(values: object): void;
|
206
227
|
}
|
207
228
|
export {};
|
package/lib/renderers/Page.js
CHANGED
@@ -12,10 +12,13 @@ var Alert2_1 = (0, tslib_1.__importDefault)(require("../components/Alert2"));
|
|
12
12
|
var api_1 = require("../utils/api");
|
13
13
|
var components_1 = require("../components");
|
14
14
|
var style_1 = require("../utils/style");
|
15
|
+
var PullRefresh_1 = (0, tslib_1.__importDefault)(require("../components/PullRefresh"));
|
16
|
+
var scrollPosition_1 = require("../utils/scrollPosition");
|
15
17
|
var Page = /** @class */ (function (_super) {
|
16
18
|
(0, tslib_1.__extends)(Page, _super);
|
17
19
|
function Page(props) {
|
18
20
|
var _this = _super.call(this, props) || this;
|
21
|
+
_this.asideInner = react_1.default.createRef();
|
19
22
|
// autobind 会让继承里面的 super 指向有问题,所以先这样!
|
20
23
|
(0, helper_1.bulkBindFunctions)(_this, [
|
21
24
|
'handleAction',
|
@@ -91,7 +94,7 @@ var Page = /** @class */ (function (_super) {
|
|
91
94
|
}
|
92
95
|
};
|
93
96
|
Page.prototype.componentDidMount = function () {
|
94
|
-
var _a = this.props, initApi = _a.initApi, initFetch = _a.initFetch, initFetchOn = _a.initFetchOn, store = _a.store, messages = _a.messages;
|
97
|
+
var _a = this.props, initApi = _a.initApi, initFetch = _a.initFetch, initFetchOn = _a.initFetchOn, store = _a.store, messages = _a.messages, asideSticky = _a.asideSticky;
|
95
98
|
this.mounted = true;
|
96
99
|
if ((0, api_1.isEffectiveApi)(initApi, store.data, initFetch, initFetchOn)) {
|
97
100
|
store
|
@@ -101,6 +104,10 @@ var Page = /** @class */ (function (_super) {
|
|
101
104
|
})
|
102
105
|
.then(this.initInterval);
|
103
106
|
}
|
107
|
+
if (asideSticky && this.asideInner.current) {
|
108
|
+
var dom = this.asideInner.current;
|
109
|
+
dom.style.cssText += "position: sticky; top: ".concat((0, scrollPosition_1.scrollPosition)(dom).top, "px;");
|
110
|
+
}
|
104
111
|
};
|
105
112
|
Page.prototype.componentDidUpdate = function (prevProps) {
|
106
113
|
var props = this.props;
|
@@ -315,6 +322,25 @@ var Page = /** @class */ (function (_super) {
|
|
315
322
|
(this.timer = setTimeout(silentPolling ? this.silentReload : this.reload, Math.max(interval, 1000)));
|
316
323
|
return value;
|
317
324
|
};
|
325
|
+
Page.prototype.handleRefresh = function () {
|
326
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
327
|
+
var _a, dispatchEvent, data, rendererEvent;
|
328
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
329
|
+
switch (_b.label) {
|
330
|
+
case 0:
|
331
|
+
_a = this.props, dispatchEvent = _a.dispatchEvent, data = _a.data;
|
332
|
+
return [4 /*yield*/, dispatchEvent('pullRefresh', data)];
|
333
|
+
case 1:
|
334
|
+
rendererEvent = _b.sent();
|
335
|
+
if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
|
336
|
+
return [2 /*return*/];
|
337
|
+
}
|
338
|
+
this.reload();
|
339
|
+
return [2 /*return*/];
|
340
|
+
}
|
341
|
+
});
|
342
|
+
});
|
343
|
+
};
|
318
344
|
Page.prototype.handleChange = function (value, name, submit, changePristine) {
|
319
345
|
var _a = this.props, store = _a.store, onChange = _a.onChange;
|
320
346
|
if (typeof name === 'string' && name) {
|
@@ -356,7 +382,7 @@ var Page = /** @class */ (function (_super) {
|
|
356
382
|
return header || right;
|
357
383
|
};
|
358
384
|
Page.prototype.render = function () {
|
359
|
-
var _a = this.props, className = _a.className, store = _a.store, body = _a.body, bodyClassName = _a.bodyClassName, render = _a.render, aside = _a.aside, asideClassName = _a.asideClassName, cx = _a.classnames, header = _a.header, showErrorMsg = _a.showErrorMsg, initApi = _a.initApi, regions = _a.regions, style = _a.style, data = _a.data, asideResizor = _a.asideResizor, __ = _a.translate;
|
385
|
+
var _a = this.props, className = _a.className, store = _a.store, body = _a.body, bodyClassName = _a.bodyClassName, render = _a.render, aside = _a.aside, asideClassName = _a.asideClassName, cx = _a.classnames, header = _a.header, showErrorMsg = _a.showErrorMsg, initApi = _a.initApi, regions = _a.regions, style = _a.style, data = _a.data, asideResizor = _a.asideResizor, pullRefresh = _a.pullRefresh, __ = _a.translate;
|
360
386
|
var subProps = {
|
361
387
|
onAction: this.handleAction,
|
362
388
|
onQuery: initApi ? this.handleQuery : undefined,
|
@@ -367,24 +393,25 @@ var Page = /** @class */ (function (_super) {
|
|
367
393
|
? ~regions.indexOf('aside')
|
368
394
|
: aside && (!Array.isArray(aside) || aside.length);
|
369
395
|
var styleVar = (0, style_1.buildStyle)(style, data);
|
396
|
+
var pageContent = (react_1.default.createElement("div", { className: cx('Page-content') },
|
397
|
+
react_1.default.createElement("div", { className: cx('Page-main') },
|
398
|
+
this.renderHeader(),
|
399
|
+
react_1.default.createElement("div", { className: cx("Page-body", bodyClassName) },
|
400
|
+
react_1.default.createElement(components_1.Spinner, { size: "lg", overlay: true, key: "info", show: store.loading }),
|
401
|
+
store.error && showErrorMsg !== false ? (react_1.default.createElement(Alert2_1.default, { level: "danger", showCloseButton: true, onClose: store.clearMessage }, store.msg)) : null,
|
402
|
+
(Array.isArray(regions) ? ~regions.indexOf('body') : body)
|
403
|
+
? render('body', body || '', subProps)
|
404
|
+
: null))));
|
370
405
|
return (react_1.default.createElement("div", { className: cx("Page", hasAside ? "Page--withSidebar" : '', className), onClick: this.handleClick, style: styleVar },
|
371
406
|
hasAside ? (react_1.default.createElement("div", { className: cx("Page-aside", asideResizor ? 'relative' : 'Page-aside--withWidth', asideClassName) },
|
372
|
-
render('aside', aside || '', (0, tslib_1.__assign)((0, tslib_1.__assign)({}, subProps), (typeof aside === 'string'
|
407
|
+
react_1.default.createElement("div", { className: cx("Page-asideInner"), ref: this.asideInner }, render('aside', aside || '', (0, tslib_1.__assign)((0, tslib_1.__assign)({}, subProps), (typeof aside === 'string'
|
373
408
|
? {
|
374
409
|
inline: false,
|
375
410
|
className: "Page-asideTplWrapper"
|
376
411
|
}
|
377
|
-
: null))),
|
412
|
+
: null)))),
|
378
413
|
asideResizor ? (react_1.default.createElement("div", { onMouseDown: this.handleResizeMouseDown, className: cx("Page-asideResizor") })) : null)) : null,
|
379
|
-
react_1.default.createElement(
|
380
|
-
react_1.default.createElement("div", { className: cx('Page-main') },
|
381
|
-
this.renderHeader(),
|
382
|
-
react_1.default.createElement("div", { className: cx("Page-body", bodyClassName) },
|
383
|
-
react_1.default.createElement(components_1.Spinner, { size: "lg", overlay: true, key: "info", show: store.loading }),
|
384
|
-
store.error && showErrorMsg !== false ? (react_1.default.createElement(Alert2_1.default, { level: "danger", showCloseButton: true, onClose: store.clearMessage }, store.msg)) : null,
|
385
|
-
(Array.isArray(regions) ? ~regions.indexOf('body') : body)
|
386
|
-
? render('body', body || '', subProps)
|
387
|
-
: null))),
|
414
|
+
pullRefresh && !pullRefresh.disabled ? (react_1.default.createElement(PullRefresh_1.default, (0, tslib_1.__assign)({}, pullRefresh, { translate: __, onRefresh: this.handleRefresh }), pageContent)) : (pageContent),
|
388
415
|
render('dialog', (0, tslib_1.__assign)((0, tslib_1.__assign)({}, (store.action &&
|
389
416
|
store.action.dialog)), { type: 'dialog' }), {
|
390
417
|
key: 'dialog',
|
@@ -414,7 +441,11 @@ var Page = /** @class */ (function (_super) {
|
|
414
441
|
initFetch: true,
|
415
442
|
// primaryField: 'id',
|
416
443
|
toolbarClassName: '',
|
417
|
-
messages: {}
|
444
|
+
messages: {},
|
445
|
+
asideSticky: true,
|
446
|
+
pullRefresh: {
|
447
|
+
disabled: true
|
448
|
+
}
|
418
449
|
};
|
419
450
|
Page.propsList = [
|
420
451
|
'title',
|
@@ -451,6 +482,12 @@ var Page = /** @class */ (function (_super) {
|
|
451
482
|
(0, tslib_1.__metadata)("design:paramtypes", []),
|
452
483
|
(0, tslib_1.__metadata)("design:returntype", void 0)
|
453
484
|
], Page.prototype, "handleResizeMouseUp", null);
|
485
|
+
(0, tslib_1.__decorate)([
|
486
|
+
helper_1.autobind,
|
487
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
488
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
489
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
490
|
+
], Page.prototype, "handleRefresh", null);
|
454
491
|
return Page;
|
455
492
|
}(react_1.default.Component));
|
456
493
|
exports.default = Page;
|
@@ -540,6 +577,9 @@ var PageRenderer = /** @class */ (function (_super) {
|
|
540
577
|
}
|
541
578
|
}, 300);
|
542
579
|
};
|
580
|
+
PageRenderer.prototype.setData = function (values) {
|
581
|
+
return this.props.store.updateData(values);
|
582
|
+
};
|
543
583
|
var _c;
|
544
584
|
PageRenderer.contextType = Scoped_1.ScopedContext;
|
545
585
|
PageRenderer = (0, tslib_1.__decorate)([
|