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
@@ -7,77 +7,112 @@
|
|
7
7
|
|
8
8
|
import React from 'react';
|
9
9
|
import {themeable, ThemeProps} from '../theme';
|
10
|
-
import Transition, {ENTERED
|
11
|
-
import {Icon} from './icons';
|
10
|
+
import Transition, {ENTERED} from 'react-transition-group/Transition';
|
11
|
+
import {Icon, hasIcon} from './icons';
|
12
|
+
import {generateIcon} from '../utils/icon';
|
12
13
|
|
13
14
|
const fadeStyles: {
|
14
15
|
[propName: string]: string;
|
15
16
|
} = {
|
16
|
-
[ENTERING]: 'in',
|
17
17
|
[ENTERED]: 'in'
|
18
18
|
};
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
20
|
+
// Spinner Props
|
21
|
+
export interface SpinnerProps extends ThemeProps {
|
22
|
+
show: boolean; // 控制Spinner显示与隐藏
|
23
|
+
className?: string; // 自定义最外层元素class
|
24
|
+
spinnerClassName?: string; // spin图标位置包裹元素的自定义class
|
25
|
+
/**
|
26
|
+
* @deprecated 已废弃,没有作用
|
27
|
+
*/
|
28
|
+
mode?: string;
|
29
|
+
size?: 'sm' | 'lg' | ''; // spinner Icon 大小
|
30
|
+
icon?: string | React.ReactNode; // 自定义icon
|
31
|
+
tip?: string; // spinner文案
|
32
|
+
tipPlacement?: 'top' | 'right' | 'bottom' | 'left'; // spinner文案位置
|
33
|
+
delay?: number; // 延迟显示
|
34
|
+
overlay?: boolean; // 是否显示遮罩层,有children属性才生效
|
27
35
|
}
|
28
36
|
|
29
|
-
export class Spinner extends React.Component<SpinnerProps
|
37
|
+
export class Spinner extends React.Component<SpinnerProps> {
|
30
38
|
static defaultProps = {
|
31
|
-
|
39
|
+
show: true,
|
40
|
+
className: '',
|
32
41
|
spinnerClassName: '',
|
33
|
-
mode: '',
|
34
42
|
size: '' as '',
|
35
|
-
|
43
|
+
icon: '',
|
44
|
+
tip: '',
|
45
|
+
tipPlacement: 'bottom' as 'bottom',
|
46
|
+
delay: 0,
|
47
|
+
overlay: false
|
36
48
|
};
|
37
49
|
|
38
|
-
div: React.RefObject<HTMLDivElement> = React.createRef();
|
39
|
-
overlay: React.RefObject<HTMLDivElement> = React.createRef();
|
40
|
-
|
41
50
|
render() {
|
42
51
|
const {
|
43
|
-
show,
|
44
52
|
classnames: cx,
|
53
|
+
show,
|
54
|
+
className,
|
45
55
|
spinnerClassName,
|
46
|
-
|
47
|
-
size,
|
56
|
+
size = '',
|
48
57
|
overlay,
|
49
|
-
|
58
|
+
delay,
|
59
|
+
icon,
|
60
|
+
tip,
|
61
|
+
tipPlacement = ''
|
50
62
|
} = this.props;
|
63
|
+
const isCustomIcon = icon && React.isValidElement(icon);
|
64
|
+
const timeout = {enter: delay, exit: 0};
|
65
|
+
|
51
66
|
return (
|
52
|
-
<Transition mountOnEnter unmountOnExit in={show} timeout={
|
67
|
+
<Transition mountOnEnter unmountOnExit in={show} timeout={timeout}>
|
53
68
|
{(status: string) => {
|
54
|
-
if (status === ENTERING) {
|
55
|
-
// force reflow
|
56
|
-
// 由于从 mount 进来到加上 in 这个 class 估计是时间太短,上次的样式还没应用进去,所以这里强制reflow一把。
|
57
|
-
// 否则看不到动画。
|
58
|
-
// this.div.current!.offsetWidth;
|
59
|
-
this.overlay.current && this.overlay.current.offsetWidth;
|
60
|
-
}
|
61
|
-
|
62
69
|
return (
|
63
70
|
<>
|
71
|
+
{/* 遮罩层 */}
|
64
72
|
{overlay ? (
|
65
|
-
<div
|
66
|
-
ref={this.overlay}
|
67
|
-
className={cx(`Spinner-overlay`, fadeStyles[status])}
|
68
|
-
/>
|
73
|
+
<div className={cx(`Spinner-overlay`, fadeStyles[status])} />
|
69
74
|
) : null}
|
70
75
|
|
76
|
+
{/* spinner图标和文案 */}
|
71
77
|
<div
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
78
|
+
className={cx(
|
79
|
+
`Spinner`,
|
80
|
+
tip && {
|
81
|
+
[`Spinner-tip--${tipPlacement}`]: [
|
82
|
+
'top',
|
83
|
+
'right',
|
84
|
+
'bottom',
|
85
|
+
'left'
|
86
|
+
].includes(tipPlacement)
|
87
|
+
},
|
88
|
+
{[`Spinner--overlay`]: overlay},
|
89
|
+
fadeStyles[status],
|
90
|
+
className
|
91
|
+
)}
|
79
92
|
>
|
80
|
-
|
93
|
+
<div
|
94
|
+
className={cx(
|
95
|
+
`Spinner-icon`,
|
96
|
+
{
|
97
|
+
[`Spinner-icon--${size}`]: ['lg', 'sm'].includes(size),
|
98
|
+
[`Spinner-icon--default`]: !icon,
|
99
|
+
[`Spinner-icon--simple`]: !isCustomIcon && icon,
|
100
|
+
[`Spinner-icon--custom`]: isCustomIcon
|
101
|
+
},
|
102
|
+
spinnerClassName
|
103
|
+
)}
|
104
|
+
>
|
105
|
+
{icon ? (
|
106
|
+
isCustomIcon ? (
|
107
|
+
icon
|
108
|
+
) : hasIcon(icon as string) ? (
|
109
|
+
<Icon icon={icon} className="icon" />
|
110
|
+
) : (
|
111
|
+
generateIcon(cx, icon as string, 'icon')
|
112
|
+
)
|
113
|
+
) : null}
|
114
|
+
</div>
|
115
|
+
{tip ? <span className={cx(`Spinner-tip`)}>{tip}</span> : ''}
|
81
116
|
</div>
|
82
117
|
</>
|
83
118
|
);
|
package/src/components/Steps.tsx
CHANGED
@@ -69,8 +69,12 @@ export interface StepsSchema extends BaseSchema {
|
|
69
69
|
* 展示模式
|
70
70
|
*/
|
71
71
|
mode?: 'horizontal' | 'vertical';
|
72
|
-
}
|
73
72
|
|
73
|
+
/**
|
74
|
+
* 标签放置位置
|
75
|
+
*/
|
76
|
+
labelPlacement?: 'horizontal' | 'vertical';
|
77
|
+
}
|
74
78
|
export interface StepsProps extends ThemeProps {
|
75
79
|
steps: StepSchema[];
|
76
80
|
className: string;
|
@@ -81,6 +85,8 @@ export interface StepsProps extends ThemeProps {
|
|
81
85
|
[propName: string]: StepStatus;
|
82
86
|
};
|
83
87
|
mode?: 'horizontal' | 'vertical';
|
88
|
+
labelPlacement?: 'horizontal' | 'vertical';
|
89
|
+
progressDot?: boolean;
|
84
90
|
useMobileUI?: boolean;
|
85
91
|
}
|
86
92
|
|
@@ -92,6 +98,8 @@ export function Steps(props: StepsProps) {
|
|
92
98
|
current,
|
93
99
|
status,
|
94
100
|
mode = 'horizontal',
|
101
|
+
labelPlacement = 'horizontal',
|
102
|
+
progressDot = false,
|
95
103
|
useMobileUI
|
96
104
|
} = props;
|
97
105
|
const FINISH_ICON = 'check';
|
@@ -129,48 +137,41 @@ export function Steps(props: StepsProps) {
|
|
129
137
|
|
130
138
|
const mobileUI = useMobileUI && isMobile();
|
131
139
|
return (
|
132
|
-
<ul
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
)}
|
139
|
-
>
|
140
|
+
<ul className={cx( // 纵向步骤条暂时不支持labelPlacement属性
|
141
|
+
'Steps',
|
142
|
+
`Steps--Placement-${(progressDot || (labelPlacement === 'vertical' && mode != 'vertical')) ? 'vertical' : ''}`,
|
143
|
+
`Steps--${progressDot ? 'ProgressDot' : ''}`,
|
144
|
+
`Steps--${mode}`,
|
145
|
+
mobileUI ? 'Steps-mobile' : '', className)}>
|
140
146
|
{stepsRow.map((step, i) => {
|
141
147
|
const {stepStatus, icon} = getStepStatus(step, i);
|
142
|
-
|
143
148
|
return (
|
144
149
|
<li
|
145
150
|
key={i}
|
146
|
-
className={cx('StepsItem', `is-${stepStatus}`, step.className)}
|
151
|
+
className={cx('StepsItem', `is-${stepStatus}`, step.className, `StepsItem-${progressDot ? 'ProgressDot' : ''}`)}
|
147
152
|
>
|
148
153
|
<div className={cx('StepsItem-container')}>
|
149
|
-
|
150
|
-
className={cx(
|
151
|
-
'StepsItem-containerIcon',
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
{icon ? <Icon icon={icon} className="icon" /> : i + 1}
|
157
|
-
</span>
|
158
|
-
</div>
|
154
|
+
<div className={cx('StepsItem-containerTail')}></div>
|
155
|
+
{progressDot ? <div className={cx('StepsItem-containerProgressDot')}></div>
|
156
|
+
: <div className={cx('StepsItem-containerIcon', i < current && 'is-success')}>
|
157
|
+
<span className={cx('StepsItem-icon')}>
|
158
|
+
{icon ? <Icon icon={icon} className="icon" /> : i + 1}
|
159
|
+
</span>
|
160
|
+
</div>}
|
159
161
|
<div className={cx('StepsItem-containerWrapper')}>
|
160
162
|
<div className={cx('StepsItem-body')}>
|
161
163
|
<div
|
162
164
|
className={cx(
|
163
165
|
'StepsItem-title',
|
166
|
+
`StepsItem-${progressDot ? 'vertical-ProgressDot' : ''}`,
|
164
167
|
i < current && 'is-success'
|
165
168
|
)}
|
166
169
|
>
|
167
|
-
<span>{step.title}</span>
|
168
|
-
<span className={cx('StepsItem-subTitle')}>
|
169
|
-
{step.subTitle}
|
170
|
-
</span>
|
170
|
+
<span className={cx('StepsItem-ellText')} title={String(step.title)}>{step.title}</span>
|
171
|
+
<span className={cx('StepsItem-subTitle', 'StepsItem-ellText')} title={String(step.subTitle)}>{step.subTitle}</span>
|
171
172
|
</div>
|
172
|
-
<div className={cx('StepsItem-description')}>
|
173
|
-
{step.description}
|
173
|
+
<div className={cx('StepsItem-description', 'StepsItem-ellText')} title={String(step.description)}>
|
174
|
+
<span>{step.description}</span>
|
174
175
|
</div>
|
175
176
|
</div>
|
176
177
|
</div>
|
@@ -18,18 +18,23 @@ interface TooltipProps extends React.HTMLProps<HTMLDivElement> {
|
|
18
18
|
style?: any;
|
19
19
|
arrowProps?: any;
|
20
20
|
placement?: string;
|
21
|
+
showArrow?: boolean;
|
22
|
+
tooltipTheme?: string;
|
21
23
|
[propName: string]: any;
|
22
24
|
}
|
23
25
|
|
24
26
|
export class Tooltip extends React.Component<TooltipProps> {
|
25
27
|
static defaultProps = {
|
26
|
-
className: ''
|
28
|
+
className: '',
|
29
|
+
tooltipTheme: 'light',
|
30
|
+
showArrow: true
|
27
31
|
};
|
28
32
|
|
29
33
|
render() {
|
30
34
|
const {
|
31
35
|
classPrefix: ns,
|
32
36
|
className,
|
37
|
+
tooltipTheme,
|
33
38
|
title,
|
34
39
|
children,
|
35
40
|
arrowProps,
|
@@ -41,6 +46,7 @@ export class Tooltip extends React.Component<TooltipProps> {
|
|
41
46
|
positionTop,
|
42
47
|
classnames: cx,
|
43
48
|
activePlacement,
|
49
|
+
showArrow,
|
44
50
|
onMouseEnter,
|
45
51
|
onMouseLeave,
|
46
52
|
...rest
|
@@ -52,14 +58,17 @@ export class Tooltip extends React.Component<TooltipProps> {
|
|
52
58
|
className={cx(
|
53
59
|
`Tooltip`,
|
54
60
|
activePlacement ? `Tooltip--${activePlacement}` : '',
|
55
|
-
className
|
61
|
+
className,
|
62
|
+
`Tooltip--${tooltipTheme === 'dark' ? 'dark' : 'light'}`
|
56
63
|
)}
|
57
64
|
style={style}
|
58
65
|
onMouseEnter={onMouseEnter}
|
59
66
|
onMouseLeave={onMouseLeave}
|
60
67
|
role="tooltip"
|
61
68
|
>
|
62
|
-
|
69
|
+
{showArrow ? (
|
70
|
+
<div className={cx(`Tooltip-arrow`)} {...arrowProps} />
|
71
|
+
) : null}
|
63
72
|
{title ? <div className={cx('Tooltip-title')}>{title}</div> : null}
|
64
73
|
<div className={cx('Tooltip-body')}>{children}</div>
|
65
74
|
</div>
|
@@ -11,21 +11,82 @@ import {findDOMNode} from 'react-dom';
|
|
11
11
|
import Tooltip from './Tooltip';
|
12
12
|
import {ClassNamesFn, themeable} from '../theme';
|
13
13
|
import Overlay from './Overlay';
|
14
|
+
import {isObject} from '../utils/helper';
|
15
|
+
|
16
|
+
export type Trigger = 'hover' | 'click' | 'focus';
|
14
17
|
|
15
18
|
export interface TooltipObject {
|
19
|
+
/**
|
20
|
+
* 文字提示标题
|
21
|
+
*/
|
16
22
|
title?: string;
|
23
|
+
/**
|
24
|
+
* 文字提示内容
|
25
|
+
*/
|
17
26
|
content?: string;
|
18
|
-
|
19
|
-
|
27
|
+
/**
|
28
|
+
* 浮层出现位置
|
29
|
+
*/
|
30
|
+
placement?: 'top' | 'right' | 'bottom' | 'left';
|
31
|
+
/**
|
32
|
+
* 主题样式
|
33
|
+
*/
|
34
|
+
tooltipTheme?: 'light' | 'dark';
|
35
|
+
/**
|
36
|
+
* 浮层位置相对偏移量
|
37
|
+
*/
|
38
|
+
offset?: [number, number];
|
39
|
+
/**
|
40
|
+
* 内容区自定义样式
|
41
|
+
*/
|
42
|
+
style?: React.CSSProperties;
|
43
|
+
/**
|
44
|
+
* 是否可以移入浮层中, 默认true
|
45
|
+
*/
|
46
|
+
enterable?: boolean;
|
47
|
+
/**
|
48
|
+
* 是否展示浮层指向箭头
|
49
|
+
*/
|
50
|
+
showArrow?: boolean;
|
51
|
+
/**
|
52
|
+
* 是否禁用提示
|
53
|
+
*/
|
54
|
+
disabled?: boolean;
|
55
|
+
/**
|
56
|
+
* 浮层延迟显示时间, 单位 ms
|
57
|
+
*/
|
58
|
+
mouseEnterDelay?: number;
|
59
|
+
/**
|
60
|
+
* 浮层延迟隐藏时间, 单位 ms
|
61
|
+
*/
|
62
|
+
mouseLeaveDelay?: number;
|
63
|
+
/**
|
64
|
+
* 浮层内容可通过JSX渲染
|
65
|
+
*/
|
66
|
+
children?: () => JSX.Element | JSX.Element;
|
67
|
+
/**
|
68
|
+
* 挂载容器元素
|
69
|
+
*/
|
70
|
+
container?: React.ReactNode;
|
71
|
+
/**
|
72
|
+
* 浮层触发方式
|
73
|
+
*/
|
74
|
+
trigger?: Trigger | Array<Trigger>;
|
75
|
+
/**
|
76
|
+
* 是否点击非内容区域关闭提示,默认为true
|
77
|
+
*/
|
78
|
+
rootClose?: boolean;
|
79
|
+
/**
|
80
|
+
* 文字提示浮层CSS类名
|
81
|
+
*/
|
82
|
+
tooltipClassName?: string;
|
20
83
|
}
|
21
84
|
|
22
|
-
export type Trigger = 'hover' | 'click' | 'focus';
|
23
|
-
|
24
85
|
export interface TooltipWrapperProps {
|
86
|
+
tooltip?: string | TooltipObject;
|
25
87
|
classPrefix: string;
|
26
88
|
classnames: ClassNamesFn;
|
27
89
|
placement: 'top' | 'right' | 'bottom' | 'left';
|
28
|
-
tooltip?: string | TooltipObject;
|
29
90
|
container?: React.ReactNode;
|
30
91
|
trigger: Trigger | Array<Trigger>;
|
31
92
|
rootClose: boolean;
|
@@ -106,18 +167,42 @@ export class TooltipWrapper extends React.Component<
|
|
106
167
|
return child && (child as any).props;
|
107
168
|
}
|
108
169
|
|
170
|
+
tooltipMouseEnter = (e: MouseEvent) => {
|
171
|
+
const tooltip = this.props.tooltip;
|
172
|
+
const enterable = (tooltip as any)?.enterable ?? true;
|
173
|
+
enterable && clearTimeout(this.timer);
|
174
|
+
};
|
175
|
+
|
176
|
+
tooltipMouseLeave = (e: MouseEvent) => {
|
177
|
+
const tooltip = this.props.tooltip;
|
178
|
+
const enterable = (tooltip as any)?.enterable ?? true;
|
179
|
+
enterable && clearTimeout(this.timer);
|
180
|
+
this.hide();
|
181
|
+
};
|
182
|
+
|
109
183
|
handleShow() {
|
110
184
|
this.timer && clearTimeout(this.timer);
|
111
185
|
waitToHide && waitToHide();
|
112
|
-
this.
|
186
|
+
const tooltip = this.props.tooltip;
|
187
|
+
if (isObject(tooltip)) {
|
188
|
+
const {mouseEnterDelay = 0} = tooltip as TooltipObject;
|
189
|
+
this.timer = setTimeout(this.show, mouseEnterDelay);
|
190
|
+
} else {
|
191
|
+
this.timer = setTimeout(this.show, 0);
|
192
|
+
}
|
113
193
|
}
|
114
194
|
|
115
195
|
handleHide() {
|
116
196
|
clearTimeout(this.timer);
|
117
|
-
const {delay} = this.props;
|
197
|
+
const {delay, tooltip} = this.props;
|
118
198
|
|
119
199
|
waitToHide = this.hide.bind(this);
|
120
|
-
|
200
|
+
if (isObject(tooltip)) {
|
201
|
+
const {mouseLeaveDelay = 300} = tooltip as TooltipObject;
|
202
|
+
this.timer = setTimeout(this.hide, mouseLeaveDelay);
|
203
|
+
} else {
|
204
|
+
this.timer = setTimeout(this.hide, delay);
|
205
|
+
}
|
121
206
|
}
|
122
207
|
|
123
208
|
handleFocus(e: any) {
|
@@ -161,22 +246,42 @@ export class TooltipWrapper extends React.Component<
|
|
161
246
|
}
|
162
247
|
|
163
248
|
render() {
|
249
|
+
const props = this.props;
|
250
|
+
|
251
|
+
const child = React.Children.only(props.children);
|
252
|
+
if (!props.tooltip) {
|
253
|
+
return child;
|
254
|
+
}
|
255
|
+
|
256
|
+
// tooltip 对象内属性优先级更高
|
257
|
+
const tooltipObj: TooltipObject = {
|
258
|
+
placement: props.placement,
|
259
|
+
container: props.container,
|
260
|
+
trigger: props.trigger,
|
261
|
+
rootClose: props.rootClose,
|
262
|
+
tooltipClassName: props.tooltipClassName,
|
263
|
+
style: props.style,
|
264
|
+
mouseLeaveDelay: props.delay,
|
265
|
+
...(typeof props.tooltip === 'string'
|
266
|
+
? {content: props.tooltip}
|
267
|
+
: props.tooltip)
|
268
|
+
};
|
269
|
+
|
164
270
|
const {
|
165
|
-
|
166
|
-
|
271
|
+
title,
|
272
|
+
content,
|
167
273
|
placement,
|
168
274
|
container,
|
169
275
|
trigger,
|
170
276
|
rootClose,
|
171
277
|
tooltipClassName,
|
172
|
-
style
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
}
|
278
|
+
style,
|
279
|
+
disabled = false,
|
280
|
+
offset,
|
281
|
+
tooltipTheme = 'light',
|
282
|
+
showArrow = true,
|
283
|
+
children
|
284
|
+
} = tooltipObj;
|
180
285
|
|
181
286
|
const childProps: any = {
|
182
287
|
key: 'target'
|
@@ -204,31 +309,30 @@ export class TooltipWrapper extends React.Component<
|
|
204
309
|
<Overlay
|
205
310
|
key="overlay"
|
206
311
|
target={this.getTarget}
|
207
|
-
show={this.state.show}
|
312
|
+
show={this.state.show && !disabled}
|
208
313
|
onHide={this.handleHide}
|
209
314
|
rootClose={rootClose}
|
210
315
|
placement={placement}
|
211
316
|
container={container}
|
317
|
+
offset={Array.isArray(offset) ? offset : [0, 0]}
|
212
318
|
>
|
213
319
|
<Tooltip
|
214
|
-
title={typeof
|
320
|
+
title={typeof title === 'string' ? title : undefined}
|
215
321
|
style={style}
|
216
322
|
className={tooltipClassName}
|
217
|
-
|
218
|
-
|
323
|
+
tooltipTheme={tooltipTheme}
|
324
|
+
showArrow={showArrow}
|
325
|
+
onMouseEnter={
|
326
|
+
~triggers.indexOf('hover') ? this.tooltipMouseEnter : () => {}
|
327
|
+
}
|
328
|
+
onMouseLeave={
|
329
|
+
~triggers.indexOf('hover') ? this.tooltipMouseLeave : () => {}
|
330
|
+
}
|
219
331
|
>
|
220
|
-
{
|
221
|
-
|
222
|
-
(tooltip as TooltipObject).render!()
|
223
|
-
) : null
|
224
|
-
) : tooltip && (tooltip as TooltipObject).dom ? (
|
225
|
-
(tooltip as TooltipObject).dom!
|
332
|
+
{children ? (
|
333
|
+
<>{typeof children === 'function' ? children() : children}</>
|
226
334
|
) : (
|
227
|
-
<Html
|
228
|
-
html={
|
229
|
-
typeof tooltip === 'string' ? tooltip : tooltip.content || ''
|
230
|
-
}
|
231
|
-
/>
|
335
|
+
<Html html={typeof content === 'string' ? content : ''} />
|
232
336
|
)}
|
233
337
|
</Tooltip>
|
234
338
|
</Overlay>
|
package/src/components/Tree.tsx
CHANGED
@@ -41,6 +41,8 @@ export interface IDropInfo {
|
|
41
41
|
interface TreeSelectorProps extends ThemeProps, LocaleProps {
|
42
42
|
highlightTxt?: string;
|
43
43
|
|
44
|
+
onRef: any;
|
45
|
+
|
44
46
|
showIcon?: boolean;
|
45
47
|
// 是否默认都展开
|
46
48
|
initiallyOpen?: boolean;
|
@@ -55,6 +57,8 @@ interface TreeSelectorProps extends ThemeProps, LocaleProps {
|
|
55
57
|
withChildren?: boolean;
|
56
58
|
// 多选时,选中父节点时,是否只将起子节点加入到值中。
|
57
59
|
onlyChildren?: boolean;
|
60
|
+
// 单选时,只运行选择子节点
|
61
|
+
onlyLeaf?: boolean;
|
58
62
|
// 名称、取值等字段名映射
|
59
63
|
labelField: string;
|
60
64
|
valueField: string;
|
@@ -206,6 +210,7 @@ export class TreeSelector extends React.Component<
|
|
206
210
|
|
207
211
|
componentDidMount() {
|
208
212
|
const {enableNodePath} = this.props;
|
213
|
+
this.props.onRef(this)
|
209
214
|
enableNodePath && this.expandLazyLoadNodes();
|
210
215
|
}
|
211
216
|
|
@@ -246,20 +251,23 @@ export class TreeSelector extends React.Component<
|
|
246
251
|
onExpandTree?.(nodePathArr);
|
247
252
|
}
|
248
253
|
|
249
|
-
syncUnFolded(props: TreeSelectorProps) {
|
254
|
+
syncUnFolded(props: TreeSelectorProps, unfoldedLevel?: Number) {
|
255
|
+
// 传入默认展开层级需要重新初始化unfolded
|
256
|
+
let initFoldedLevel = typeof unfoldedLevel !== 'undefined';
|
257
|
+
let expandLevel = initFoldedLevel ? unfoldedLevel : props.unfoldedLevel;
|
250
258
|
// 初始化树节点的展开状态
|
251
259
|
let unfolded = this.unfolded;
|
252
260
|
const {foldedField, unfoldedField} = this.props;
|
253
261
|
|
254
262
|
eachTree(props.options, (node: Option, index, level) => {
|
255
|
-
if (unfolded.has(node)) {
|
263
|
+
if (unfolded.has(node) && !initFoldedLevel) {
|
256
264
|
return;
|
257
265
|
}
|
258
266
|
|
259
267
|
if (node.children && node.children.length) {
|
260
268
|
let ret: any = true;
|
261
269
|
|
262
|
-
if (node.defer && node.loaded) {
|
270
|
+
if (node.defer && node.loaded && !initFoldedLevel) {
|
263
271
|
ret = true;
|
264
272
|
} else if (
|
265
273
|
unfoldedField &&
|
@@ -270,7 +278,7 @@ export class TreeSelector extends React.Component<
|
|
270
278
|
ret = !node[foldedField];
|
271
279
|
} else {
|
272
280
|
ret = !!props.initiallyOpen;
|
273
|
-
if (!ret && level <= (
|
281
|
+
if (!ret && level <= (expandLevel as number)) {
|
274
282
|
ret = true;
|
275
283
|
}
|
276
284
|
}
|
@@ -278,6 +286,8 @@ export class TreeSelector extends React.Component<
|
|
278
286
|
}
|
279
287
|
});
|
280
288
|
|
289
|
+
initFoldedLevel && this.forceUpdate();
|
290
|
+
|
281
291
|
return unfolded;
|
282
292
|
}
|
283
293
|
|
@@ -365,13 +375,17 @@ export class TreeSelector extends React.Component<
|
|
365
375
|
|
366
376
|
@autobind
|
367
377
|
handleSelect(node: any, value?: any) {
|
368
|
-
const {joinValues, valueField, onChange, enableNodePath} =
|
378
|
+
const {joinValues, valueField, onChange, enableNodePath, onlyLeaf} =
|
379
|
+
this.props;
|
369
380
|
|
370
381
|
if (node[valueField as string] === undefined) {
|
371
382
|
if (node.defer && !node.loaded) {
|
372
383
|
this.toggleUnfolded(node);
|
373
384
|
}
|
385
|
+
return;
|
386
|
+
}
|
374
387
|
|
388
|
+
if (onlyLeaf && node.children) {
|
375
389
|
return;
|
376
390
|
}
|
377
391
|
|
@@ -161,20 +161,6 @@ class BaseDatePicker extends React.Component<
|
|
161
161
|
updatedState = this.getStateFromProps(props);
|
162
162
|
}
|
163
163
|
|
164
|
-
// open 是外部控制了
|
165
|
-
// if (updatedState.open === undefined) {
|
166
|
-
// if (typeof props.open !== 'undefined') {
|
167
|
-
// updatedState.open = props.open;
|
168
|
-
// } else if (
|
169
|
-
// prevProps.closeOnSelect &&
|
170
|
-
// this.state.currentView !== viewModes.TIME
|
171
|
-
// ) {
|
172
|
-
// updatedState.open = false;
|
173
|
-
// } else {
|
174
|
-
// updatedState.open = this.state.open;
|
175
|
-
// }
|
176
|
-
// }
|
177
|
-
|
178
164
|
if (props.viewMode !== prevProps.viewMode) {
|
179
165
|
updatedState.currentView = props.viewMode;
|
180
166
|
}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import moment from 'moment';
|
2
2
|
import React from 'react';
|
3
|
+
import merge from 'lodash/merge';
|
3
4
|
import {LocaleProps, localeable} from '../../locale';
|
4
5
|
import {Icon} from '../icons';
|
5
6
|
import {ClassNamesFn} from '../../theme';
|
@@ -30,6 +31,7 @@ interface CustomTimeViewProps extends LocaleProps {
|
|
30
31
|
useMobileUI: boolean;
|
31
32
|
showToolbar?: boolean;
|
32
33
|
onChange?: (value: any) => void;
|
34
|
+
timeConstraints?: any;
|
33
35
|
}
|
34
36
|
|
35
37
|
interface CustomTimeViewState {
|
@@ -85,6 +87,13 @@ export class CustomTimeView extends React.Component<
|
|
85
87
|
constructor(props: any) {
|
86
88
|
super(props);
|
87
89
|
this.state = this.calculateState(this.props);
|
90
|
+
|
91
|
+
if (this.props.timeConstraints) {
|
92
|
+
this.timeConstraints = merge(
|
93
|
+
this.timeConstraints,
|
94
|
+
this.props.timeConstraints
|
95
|
+
);
|
96
|
+
}
|
88
97
|
}
|
89
98
|
|
90
99
|
componentDidUpdate(preProps: CustomTimeViewProps) {
|
@@ -173,6 +182,9 @@ export class CustomTimeView extends React.Component<
|
|
173
182
|
value =
|
174
183
|
this.timeConstraints[type].min +
|
175
184
|
(value - (this.timeConstraints[type].max + 1));
|
185
|
+
if (value < this.timeConstraints[type].min) {
|
186
|
+
value = this.timeConstraints[type].min;
|
187
|
+
}
|
176
188
|
return this.pad(type, value);
|
177
189
|
}
|
178
190
|
|