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
@@ -13,46 +13,50 @@ var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
13
13
|
var theme_1 = require("../theme");
|
14
14
|
var Transition_1 = tslib_1.__importStar(require("react-transition-group/Transition"));
|
15
15
|
var icons_1 = require("./icons");
|
16
|
+
var icon_1 = require("../utils/icon");
|
16
17
|
var fadeStyles = (_a = {},
|
17
|
-
_a[Transition_1.ENTERING] = 'in',
|
18
18
|
_a[Transition_1.ENTERED] = 'in',
|
19
19
|
_a);
|
20
20
|
var Spinner = /** @class */ (function (_super) {
|
21
21
|
(0, tslib_1.__extends)(Spinner, _super);
|
22
22
|
function Spinner() {
|
23
|
-
|
24
|
-
_this.div = react_1.default.createRef();
|
25
|
-
_this.overlay = react_1.default.createRef();
|
26
|
-
return _this;
|
23
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
27
24
|
}
|
28
25
|
Spinner.prototype.render = function () {
|
29
|
-
var
|
30
|
-
var
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
// force reflow
|
35
|
-
// 由于从 mount 进来到加上 in 这个 class 估计是时间太短,上次的样式还没应用进去,所以这里强制reflow一把。
|
36
|
-
// 否则看不到动画。
|
37
|
-
// this.div.current!.offsetWidth;
|
38
|
-
_this.overlay.current && _this.overlay.current.offsetWidth;
|
39
|
-
}
|
26
|
+
var _a = this.props, cx = _a.classnames, show = _a.show, className = _a.className, spinnerClassName = _a.spinnerClassName, _b = _a.size, size = _b === void 0 ? '' : _b, overlay = _a.overlay, delay = _a.delay, icon = _a.icon, tip = _a.tip, _c = _a.tipPlacement, tipPlacement = _c === void 0 ? '' : _c;
|
27
|
+
var isCustomIcon = icon && react_1.default.isValidElement(icon);
|
28
|
+
var timeout = { enter: delay, exit: 0 };
|
29
|
+
return (react_1.default.createElement(Transition_1.default, { mountOnEnter: true, unmountOnExit: true, in: show, timeout: timeout }, function (status) {
|
30
|
+
var _a, _b, _c;
|
40
31
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
41
|
-
overlay ? (react_1.default.createElement("div", {
|
42
|
-
react_1.default.createElement("div", {
|
43
|
-
_a["Spinner--".concat(
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
32
|
+
overlay ? (react_1.default.createElement("div", { className: cx("Spinner-overlay", fadeStyles[status]) })) : null,
|
33
|
+
react_1.default.createElement("div", { className: cx("Spinner", tip && (_a = {},
|
34
|
+
_a["Spinner-tip--".concat(tipPlacement)] = [
|
35
|
+
'top',
|
36
|
+
'right',
|
37
|
+
'bottom',
|
38
|
+
'left'
|
39
|
+
].includes(tipPlacement),
|
40
|
+
_a), (_b = {}, _b["Spinner--overlay"] = overlay, _b), fadeStyles[status], className) },
|
41
|
+
react_1.default.createElement("div", { className: cx("Spinner-icon", (_c = {},
|
42
|
+
_c["Spinner-icon--".concat(size)] = ['lg', 'sm'].includes(size),
|
43
|
+
_c["Spinner-icon--default"] = !icon,
|
44
|
+
_c["Spinner-icon--simple"] = !isCustomIcon && icon,
|
45
|
+
_c["Spinner-icon--custom"] = isCustomIcon,
|
46
|
+
_c), spinnerClassName) }, icon ? (isCustomIcon ? (icon) : (0, icons_1.hasIcon)(icon) ? (react_1.default.createElement(icons_1.Icon, { icon: icon, className: "icon" })) : ((0, icon_1.generateIcon)(cx, icon, 'icon'))) : null),
|
47
|
+
tip ? react_1.default.createElement("span", { className: cx("Spinner-tip") }, tip) : '')));
|
48
48
|
}));
|
49
49
|
};
|
50
50
|
Spinner.defaultProps = {
|
51
|
-
|
51
|
+
show: true,
|
52
|
+
className: '',
|
52
53
|
spinnerClassName: '',
|
53
|
-
mode: '',
|
54
54
|
size: '',
|
55
|
-
|
55
|
+
icon: '',
|
56
|
+
tip: '',
|
57
|
+
tipPlacement: 'bottom',
|
58
|
+
delay: 0,
|
59
|
+
overlay: false
|
56
60
|
};
|
57
61
|
return Spinner;
|
58
62
|
}(react_1.default.Component));
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/Spinner.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";AAAA;;;;;GAKG;;;;;AAEH,6DAA0B;AAC1B,kCAA+C;AAC/C,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file Spinner\n * @description\n * @author fex\n * @date 2017-11-07\n */\n\nimport React from 'react';\nimport {themeable, ThemeProps} from '../theme';\nimport Transition, {ENTERED
|
11
|
+
"/**\n * @file Spinner\n * @description\n * @author fex\n * @date 2017-11-07\n */\n\nimport React from 'react';\nimport {themeable, ThemeProps} from '../theme';\nimport Transition, {ENTERED} from 'react-transition-group/Transition';\nimport {Icon, hasIcon} from './icons';\nimport {generateIcon} from '../utils/icon';\n\nconst fadeStyles: {\n [propName: string]: string;\n} = {\n [ENTERED]: 'in'\n};\n\n// Spinner Props\nexport interface SpinnerProps extends ThemeProps {\n show: boolean; // 控制Spinner显示与隐藏\n className?: string; // 自定义最外层元素class\n spinnerClassName?: string; // spin图标位置包裹元素的自定义class\n /**\n * @deprecated 已废弃,没有作用\n */\n mode?: string;\n size?: 'sm' | 'lg' | ''; // spinner Icon 大小\n icon?: string | React.ReactNode; // 自定义icon\n tip?: string; // spinner文案\n tipPlacement?: 'top' | 'right' | 'bottom' | 'left'; // spinner文案位置\n delay?: number; // 延迟显示\n overlay?: boolean; // 是否显示遮罩层,有children属性才生效\n}\n\nexport class Spinner extends React.Component<SpinnerProps> {\n static defaultProps = {\n show: true,\n className: '',\n spinnerClassName: '',\n size: '' as '',\n icon: '',\n tip: '',\n tipPlacement: 'bottom' as 'bottom',\n delay: 0,\n overlay: false\n };\n\n render() {\n const {\n classnames: cx,\n show,\n className,\n spinnerClassName,\n size = '',\n overlay,\n delay,\n icon,\n tip,\n tipPlacement = ''\n } = this.props;\n const isCustomIcon = icon && React.isValidElement(icon);\n const timeout = {enter: delay, exit: 0};\n\n return (\n <Transition mountOnEnter unmountOnExit in={show} timeout={timeout}>\n {(status: string) => {\n return (\n <>\n {/* 遮罩层 */}\n {overlay ? (\n <div className={cx(`Spinner-overlay`, fadeStyles[status])} />\n ) : null}\n\n {/* spinner图标和文案 */}\n <div\n className={cx(\n `Spinner`,\n tip && {\n [`Spinner-tip--${tipPlacement}`]: [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ].includes(tipPlacement)\n },\n {[`Spinner--overlay`]: overlay},\n fadeStyles[status],\n className\n )}\n >\n <div\n className={cx(\n `Spinner-icon`,\n {\n [`Spinner-icon--${size}`]: ['lg', 'sm'].includes(size),\n [`Spinner-icon--default`]: !icon,\n [`Spinner-icon--simple`]: !isCustomIcon && icon,\n [`Spinner-icon--custom`]: isCustomIcon\n },\n spinnerClassName\n )}\n >\n {icon ? (\n isCustomIcon ? (\n icon\n ) : hasIcon(icon as string) ? (\n <Icon icon={icon} className=\"icon\" />\n ) : (\n generateIcon(cx, icon as string, 'icon')\n )\n ) : null}\n </div>\n {tip ? <span className={cx(`Spinner-tip`)}>{tip}</span> : ''}\n </div>\n </>\n );\n }}\n </Transition>\n );\n }\n}\n\nexport default themeable(Spinner);\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -54,6 +54,10 @@ export interface StepsSchema extends BaseSchema {
|
|
54
54
|
* 展示模式
|
55
55
|
*/
|
56
56
|
mode?: 'horizontal' | 'vertical';
|
57
|
+
/**
|
58
|
+
* 标签放置位置
|
59
|
+
*/
|
60
|
+
labelPlacement?: 'horizontal' | 'vertical';
|
57
61
|
}
|
58
62
|
export interface StepsProps extends ThemeProps {
|
59
63
|
steps: StepSchema[];
|
@@ -63,6 +67,8 @@ export interface StepsProps extends ThemeProps {
|
|
63
67
|
[propName: string]: StepStatus;
|
64
68
|
};
|
65
69
|
mode?: 'horizontal' | 'vertical';
|
70
|
+
labelPlacement?: 'horizontal' | 'vertical';
|
71
|
+
progressDot?: boolean;
|
66
72
|
useMobileUI?: boolean;
|
67
73
|
}
|
68
74
|
export declare function Steps(props: StepsProps): JSX.Element;
|
package/lib/components/Steps.js
CHANGED
@@ -14,7 +14,7 @@ var StepStatus;
|
|
14
14
|
StepStatus["error"] = "error";
|
15
15
|
})(StepStatus = exports.StepStatus || (exports.StepStatus = {}));
|
16
16
|
function Steps(props) {
|
17
|
-
var stepsRow = props.steps, cx = props.classnames, className = props.className, current = props.current, status = props.status, _a = props.mode, mode = _a === void 0 ? 'horizontal' : _a, useMobileUI = props.useMobileUI;
|
17
|
+
var stepsRow = props.steps, cx = props.classnames, className = props.className, current = props.current, status = props.status, _a = props.mode, mode = _a === void 0 ? 'horizontal' : _a, _b = props.labelPlacement, labelPlacement = _b === void 0 ? 'horizontal' : _b, _c = props.progressDot, progressDot = _c === void 0 ? false : _c, useMobileUI = props.useMobileUI;
|
18
18
|
var FINISH_ICON = 'check';
|
19
19
|
var ERROR_ICON = 'close';
|
20
20
|
function getStepStatus(step, i) {
|
@@ -43,18 +43,22 @@ function Steps(props) {
|
|
43
43
|
};
|
44
44
|
}
|
45
45
|
var mobileUI = useMobileUI && (0, helper_1.isMobile)();
|
46
|
-
return (react_1.default.createElement("ul", { className: cx(
|
46
|
+
return (react_1.default.createElement("ul", { className: cx(// 纵向步骤条暂时不支持labelPlacement属性
|
47
|
+
'Steps', "Steps--Placement-".concat((progressDot || (labelPlacement === 'vertical' && mode != 'vertical')) ? 'vertical' : ''), "Steps--".concat(progressDot ? 'ProgressDot' : ''), "Steps--".concat(mode), mobileUI ? 'Steps-mobile' : '', className) }, stepsRow.map(function (step, i) {
|
47
48
|
var _a = getStepStatus(step, i), stepStatus = _a.stepStatus, icon = _a.icon;
|
48
|
-
return (react_1.default.createElement("li", { key: i, className: cx('StepsItem', "is-".concat(stepStatus), step.className) },
|
49
|
+
return (react_1.default.createElement("li", { key: i, className: cx('StepsItem', "is-".concat(stepStatus), step.className, "StepsItem-".concat(progressDot ? 'ProgressDot' : '')) },
|
49
50
|
react_1.default.createElement("div", { className: cx('StepsItem-container') },
|
50
|
-
react_1.default.createElement("div", { className: cx('StepsItem-
|
51
|
-
|
51
|
+
react_1.default.createElement("div", { className: cx('StepsItem-containerTail') }),
|
52
|
+
progressDot ? react_1.default.createElement("div", { className: cx('StepsItem-containerProgressDot') })
|
53
|
+
: react_1.default.createElement("div", { className: cx('StepsItem-containerIcon', i < current && 'is-success') },
|
54
|
+
react_1.default.createElement("span", { className: cx('StepsItem-icon') }, icon ? react_1.default.createElement(icons_1.Icon, { icon: icon, className: "icon" }) : i + 1)),
|
52
55
|
react_1.default.createElement("div", { className: cx('StepsItem-containerWrapper') },
|
53
56
|
react_1.default.createElement("div", { className: cx('StepsItem-body') },
|
54
|
-
react_1.default.createElement("div", { className: cx('StepsItem-title', i < current && 'is-success') },
|
55
|
-
react_1.default.createElement("span",
|
56
|
-
react_1.default.createElement("span", { className: cx('StepsItem-subTitle') }, step.subTitle)),
|
57
|
-
react_1.default.createElement("div", { className: cx('StepsItem-description')
|
57
|
+
react_1.default.createElement("div", { className: cx('StepsItem-title', "StepsItem-".concat(progressDot ? 'vertical-ProgressDot' : ''), i < current && 'is-success') },
|
58
|
+
react_1.default.createElement("span", { className: cx('StepsItem-ellText'), title: String(step.title) }, step.title),
|
59
|
+
react_1.default.createElement("span", { className: cx('StepsItem-subTitle', 'StepsItem-ellText'), title: String(step.subTitle) }, step.subTitle)),
|
60
|
+
react_1.default.createElement("div", { className: cx('StepsItem-description', 'StepsItem-ellText'), title: String(step.description) },
|
61
|
+
react_1.default.createElement("span", null, step.description)))))));
|
58
62
|
})));
|
59
63
|
}
|
60
64
|
exports.Steps = Steps;
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/Steps.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAC1B,kCAA+C;AAC/C,iCAA6B;AAE7B,0CAAyC;AAEzC,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2BAAa,CAAA;IACb,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;IACjB,6BAAe,CAAA;AACjB,CAAC,EALW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAKrB;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport {themeable, ThemeProps} from '../theme';\nimport {Icon} from './icons';\nimport {BaseSchema} from '../Schema';\nimport {isMobile} from '../utils/helper';\n\nexport enum StepStatus {\n wait = 'wait',\n process = 'process',\n finish = 'finish',\n error = 'error'\n}\n\nexport type StepSchema = {\n /**\n * 标题\n */\n title?: string | JSX.Element;\n\n /**\n * 子标题\n */\n subTitle?: string | JSX.Element;\n\n /**\n * 图标\n */\n icon?: string;\n\n value?: string | number;\n\n /**\n * 描述\n */\n description?: string | JSX.Element;\n\n status?: StepStatus;\n} & Omit<BaseSchema, 'type'>;\n\nexport interface StepsSchema extends BaseSchema {\n /**\n * 指定为 Steps 步骤条渲染器\n */\n type: 'steps';\n\n /**\n * 步骤\n */\n steps?: Array<StepSchema>;\n\n /**\n * API 或 数据映射\n */\n source?: string;\n\n /**\n * 指定当前步骤\n */\n value?: number | string;\n\n /**\n * 变量映射\n */\n name?: string;\n\n status: StepStatus;\n\n /**\n * 展示模式\n */\n mode?: 'horizontal' | 'vertical';\n
|
11
|
+
"import React from 'react';\nimport {themeable, ThemeProps} from '../theme';\nimport {Icon} from './icons';\nimport {BaseSchema} from '../Schema';\nimport {isMobile} from '../utils/helper';\n\nexport enum StepStatus {\n wait = 'wait',\n process = 'process',\n finish = 'finish',\n error = 'error'\n}\n\nexport type StepSchema = {\n /**\n * 标题\n */\n title?: string | JSX.Element;\n\n /**\n * 子标题\n */\n subTitle?: string | JSX.Element;\n\n /**\n * 图标\n */\n icon?: string;\n\n value?: string | number;\n\n /**\n * 描述\n */\n description?: string | JSX.Element;\n\n status?: StepStatus;\n} & Omit<BaseSchema, 'type'>;\n\nexport interface StepsSchema extends BaseSchema {\n /**\n * 指定为 Steps 步骤条渲染器\n */\n type: 'steps';\n\n /**\n * 步骤\n */\n steps?: Array<StepSchema>;\n\n /**\n * API 或 数据映射\n */\n source?: string;\n\n /**\n * 指定当前步骤\n */\n value?: number | string;\n\n /**\n * 变量映射\n */\n name?: string;\n\n status: StepStatus;\n\n /**\n * 展示模式\n */\n mode?: 'horizontal' | 'vertical';\n\n /**\n * 标签放置位置\n */\n labelPlacement?: 'horizontal' | 'vertical';\n}\nexport interface StepsProps extends ThemeProps {\n steps: StepSchema[];\n className: string;\n current: number;\n status?:\n | StepStatus\n | {\n [propName: string]: StepStatus;\n };\n mode?: 'horizontal' | 'vertical';\n labelPlacement?: 'horizontal' | 'vertical';\n progressDot?: boolean;\n useMobileUI?: boolean;\n}\n\nexport function Steps(props: StepsProps) {\n const {\n steps: stepsRow,\n classnames: cx,\n className,\n current,\n status,\n mode = 'horizontal',\n labelPlacement = 'horizontal',\n progressDot = false,\n useMobileUI\n } = props;\n const FINISH_ICON = 'check';\n const ERROR_ICON = 'close';\n\n function getStepStatus(\n step: StepSchema,\n i: number\n ): {stepStatus: StepStatus; icon?: string} {\n let stepStatus: StepStatus = StepStatus.wait;\n let icon = step.icon;\n\n if (i < current) {\n stepStatus = StepStatus.finish;\n !icon && (icon = FINISH_ICON);\n } else if (i === current) {\n stepStatus = StepStatus.process;\n }\n\n if (typeof status === 'string') {\n if (i === current) {\n stepStatus = step.status || status || StepStatus.process;\n stepStatus === StepStatus.error && !icon && (icon = ERROR_ICON);\n }\n } else if (typeof status === 'object') {\n const key = step.value;\n key && status[key] && (stepStatus = status[key]);\n }\n\n return {\n stepStatus,\n icon\n };\n }\n\n const mobileUI = useMobileUI && isMobile();\n return (\n <ul className={cx( // 纵向步骤条暂时不支持labelPlacement属性\n 'Steps',\n `Steps--Placement-${(progressDot || (labelPlacement === 'vertical' && mode != 'vertical')) ? 'vertical' : ''}`,\n `Steps--${progressDot ? 'ProgressDot' : ''}`, \n `Steps--${mode}`,\n mobileUI ? 'Steps-mobile' : '', className)}>\n {stepsRow.map((step, i) => {\n const {stepStatus, icon} = getStepStatus(step, i);\n return (\n <li\n key={i}\n className={cx('StepsItem', `is-${stepStatus}`, step.className, `StepsItem-${progressDot ? 'ProgressDot' : ''}`)}\n >\n <div className={cx('StepsItem-container')}>\n <div className={cx('StepsItem-containerTail')}></div>\n {progressDot ? <div className={cx('StepsItem-containerProgressDot')}></div>\n : <div className={cx('StepsItem-containerIcon', i < current && 'is-success')}>\n <span className={cx('StepsItem-icon')}>\n {icon ? <Icon icon={icon} className=\"icon\" /> : i + 1}\n </span>\n </div>}\n <div className={cx('StepsItem-containerWrapper')}>\n <div className={cx('StepsItem-body')}>\n <div\n className={cx(\n 'StepsItem-title',\n `StepsItem-${progressDot ? 'vertical-ProgressDot' : ''}`,\n i < current && 'is-success'\n )}\n >\n <span className={cx('StepsItem-ellText')} title={String(step.title)}>{step.title}</span>\n <span className={cx('StepsItem-subTitle', 'StepsItem-ellText')} title={String(step.subTitle)}>{step.subTitle}</span>\n </div>\n <div className={cx('StepsItem-description', 'StepsItem-ellText')} title={String(step.description)}>\n <span>{step.description}</span>\n </div>\n </div>\n </div>\n </div>\n </li>\n );\n })}\n </ul>\n );\n}\n\nexport default themeable(Steps);\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -15,11 +15,15 @@ interface TooltipProps extends React.HTMLProps<HTMLDivElement> {
|
|
15
15
|
style?: any;
|
16
16
|
arrowProps?: any;
|
17
17
|
placement?: string;
|
18
|
+
showArrow?: boolean;
|
19
|
+
tooltipTheme?: string;
|
18
20
|
[propName: string]: any;
|
19
21
|
}
|
20
22
|
export declare class Tooltip extends React.Component<TooltipProps> {
|
21
23
|
static defaultProps: {
|
22
24
|
className: string;
|
25
|
+
tooltipTheme: string;
|
26
|
+
showArrow: boolean;
|
23
27
|
};
|
24
28
|
render(): JSX.Element;
|
25
29
|
}
|
@@ -15,14 +15,16 @@ var Tooltip = /** @class */ (function (_super) {
|
|
15
15
|
return _super !== null && _super.apply(this, arguments) || this;
|
16
16
|
}
|
17
17
|
Tooltip.prototype.render = function () {
|
18
|
-
var _a = this.props, ns = _a.classPrefix, className = _a.className, title = _a.title, children = _a.children, arrowProps = _a.arrowProps, style = _a.style, placement = _a.placement, arrowOffsetLeft = _a.arrowOffsetLeft, arrowOffsetTop = _a.arrowOffsetTop, positionLeft = _a.positionLeft, positionTop = _a.positionTop, cx = _a.classnames, activePlacement = _a.activePlacement, onMouseEnter = _a.onMouseEnter, onMouseLeave = _a.onMouseLeave, rest = (0, tslib_1.__rest)(_a, ["classPrefix", "className", "title", "children", "arrowProps", "style", "placement", "arrowOffsetLeft", "arrowOffsetTop", "positionLeft", "positionTop", "classnames", "activePlacement", "onMouseEnter", "onMouseLeave"]);
|
19
|
-
return (react_1.default.createElement("div", (0, tslib_1.__assign)({}, rest, { className: cx("Tooltip", activePlacement ? "Tooltip--".concat(activePlacement) : '', className), style: style, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, role: "tooltip" }),
|
20
|
-
react_1.default.createElement("div", (0, tslib_1.__assign)({ className: cx("Tooltip-arrow") }, arrowProps)),
|
18
|
+
var _a = this.props, ns = _a.classPrefix, className = _a.className, tooltipTheme = _a.tooltipTheme, title = _a.title, children = _a.children, arrowProps = _a.arrowProps, style = _a.style, placement = _a.placement, arrowOffsetLeft = _a.arrowOffsetLeft, arrowOffsetTop = _a.arrowOffsetTop, positionLeft = _a.positionLeft, positionTop = _a.positionTop, cx = _a.classnames, activePlacement = _a.activePlacement, showArrow = _a.showArrow, onMouseEnter = _a.onMouseEnter, onMouseLeave = _a.onMouseLeave, rest = (0, tslib_1.__rest)(_a, ["classPrefix", "className", "tooltipTheme", "title", "children", "arrowProps", "style", "placement", "arrowOffsetLeft", "arrowOffsetTop", "positionLeft", "positionTop", "classnames", "activePlacement", "showArrow", "onMouseEnter", "onMouseLeave"]);
|
19
|
+
return (react_1.default.createElement("div", (0, tslib_1.__assign)({}, rest, { className: cx("Tooltip", activePlacement ? "Tooltip--".concat(activePlacement) : '', className, "Tooltip--".concat(tooltipTheme === 'dark' ? 'dark' : 'light')), style: style, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, role: "tooltip" }),
|
20
|
+
showArrow ? (react_1.default.createElement("div", (0, tslib_1.__assign)({ className: cx("Tooltip-arrow") }, arrowProps))) : null,
|
21
21
|
title ? react_1.default.createElement("div", { className: cx('Tooltip-title') }, title) : null,
|
22
22
|
react_1.default.createElement("div", { className: cx('Tooltip-body') }, children)));
|
23
23
|
};
|
24
24
|
Tooltip.defaultProps = {
|
25
|
-
className: ''
|
25
|
+
className: '',
|
26
|
+
tooltipTheme: 'light',
|
27
|
+
showArrow: true
|
26
28
|
};
|
27
29
|
return Tooltip;
|
28
30
|
}(react_1.default.Component));
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/Tooltip.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";AAAA;;;;GAIG;;;;AAEH,6DAA0B;AAG1B,kCAAiD;
|
9
|
+
"mappings": ";AAAA;;;;GAIG;;;;AAEH,6DAA0B;AAG1B,kCAAiD;AAgBjD;IAA6B,wCAA6B;IAA1D;;IAmDA,CAAC;IA5CC,wBAAM,GAAN;QACE,IAAM,KAmBF,IAAI,CAAC,KAAK,EAlBC,EAAE,iBAAA,EACf,SAAS,eAAA,EACT,YAAY,kBAAA,EACZ,KAAK,WAAA,EACL,QAAQ,cAAA,EACR,UAAU,gBAAA,EACV,KAAK,WAAA,EACL,SAAS,eAAA,EACT,eAAe,qBAAA,EACf,cAAc,oBAAA,EACd,YAAY,kBAAA,EACZ,WAAW,iBAAA,EACC,EAAE,gBAAA,EACd,eAAe,qBAAA,EACf,SAAS,eAAA,EACT,YAAY,kBAAA,EACZ,YAAY,kBAAA,EACT,IAAI,2BAlBH,uPAmBL,CAAa,CAAC;QAEf,OAAO,CACL,+DACM,IAAI,IACR,SAAS,EAAE,EAAE,CACX,SAAS,EACT,eAAe,CAAC,CAAC,CAAC,mBAAY,eAAe,CAAE,CAAC,CAAC,CAAC,EAAE,EACpD,SAAS,EACT,mBAAY,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAE,CACzD,EACD,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAC,SAAS;YAEb,SAAS,CAAC,CAAC,CAAC,CACX,6DAAK,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,IAAM,UAAU,EAAI,CACxD,CAAC,CAAC,CAAC,IAAI;YACP,KAAK,CAAC,CAAC,CAAC,uCAAK,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,IAAG,KAAK,CAAO,CAAC,CAAC,CAAC,IAAI;YAClE,uCAAK,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,IAAG,QAAQ,CAAO,CAChD,CACP,CAAC;IACJ,CAAC;IAjDM,oBAAY,GAAG;QACpB,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,OAAO;QACrB,SAAS,EAAE,IAAI;KAChB,CAAC;IA8CJ,cAAC;CAAA,AAnDD,CAA6B,eAAK,CAAC,SAAS,GAmD3C;AAnDY,0BAAO;AAqDpB,kBAAe,IAAA,iBAAS,EAAC,OAAO,CAAC,CAAC",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file Tooltip\n * @description\n * @author fex\n */\n\nimport React from 'react';\nimport cx from 'classnames';\nimport {classPrefix, classnames} from '../themes/default';\nimport {ClassNamesFn, themeable} from '../theme';\n\ninterface TooltipProps extends React.HTMLProps<HTMLDivElement> {\n title?: string;\n classPrefix: string;\n classnames: ClassNamesFn;\n theme?: string;\n className?: string;\n style?: any;\n arrowProps?: any;\n placement?: string;\n [propName: string]: any;\n}\n\nexport class Tooltip extends React.Component<TooltipProps> {\n static defaultProps = {\n className: ''\n };\n\n render() {\n const {\n classPrefix: ns,\n className,\n title,\n children,\n arrowProps,\n style,\n placement,\n arrowOffsetLeft,\n arrowOffsetTop,\n positionLeft,\n positionTop,\n classnames: cx,\n activePlacement,\n onMouseEnter,\n onMouseLeave,\n ...rest\n } = this.props;\n\n return (\n <div\n {...rest}\n className={cx(\n `Tooltip`,\n activePlacement ? `Tooltip--${activePlacement}` : '',\n className
|
11
|
+
"/**\n * @file Tooltip\n * @description\n * @author fex\n */\n\nimport React from 'react';\nimport cx from 'classnames';\nimport {classPrefix, classnames} from '../themes/default';\nimport {ClassNamesFn, themeable} from '../theme';\n\ninterface TooltipProps extends React.HTMLProps<HTMLDivElement> {\n title?: string;\n classPrefix: string;\n classnames: ClassNamesFn;\n theme?: string;\n className?: string;\n style?: any;\n arrowProps?: any;\n placement?: string;\n showArrow?: boolean;\n tooltipTheme?: string;\n [propName: string]: any;\n}\n\nexport class Tooltip extends React.Component<TooltipProps> {\n static defaultProps = {\n className: '',\n tooltipTheme: 'light',\n showArrow: true\n };\n\n render() {\n const {\n classPrefix: ns,\n className,\n tooltipTheme,\n title,\n children,\n arrowProps,\n style,\n placement,\n arrowOffsetLeft,\n arrowOffsetTop,\n positionLeft,\n positionTop,\n classnames: cx,\n activePlacement,\n showArrow,\n onMouseEnter,\n onMouseLeave,\n ...rest\n } = this.props;\n\n return (\n <div\n {...rest}\n className={cx(\n `Tooltip`,\n activePlacement ? `Tooltip--${activePlacement}` : '',\n className,\n `Tooltip--${tooltipTheme === 'dark' ? 'dark' : 'light'}`\n )}\n style={style}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n role=\"tooltip\"\n >\n {showArrow ? (\n <div className={cx(`Tooltip-arrow`)} {...arrowProps} />\n ) : null}\n {title ? <div className={cx('Tooltip-title')}>{title}</div> : null}\n <div className={cx('Tooltip-body')}>{children}</div>\n </div>\n );\n }\n}\n\nexport default themeable(Tooltip);\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -6,18 +6,78 @@
|
|
6
6
|
/// <reference types="hoist-non-react-statics" />
|
7
7
|
import React from 'react';
|
8
8
|
import { ClassNamesFn } from '../theme';
|
9
|
+
export declare type Trigger = 'hover' | 'click' | 'focus';
|
9
10
|
export interface TooltipObject {
|
11
|
+
/**
|
12
|
+
* 文字提示标题
|
13
|
+
*/
|
10
14
|
title?: string;
|
15
|
+
/**
|
16
|
+
* 文字提示内容
|
17
|
+
*/
|
11
18
|
content?: string;
|
12
|
-
|
13
|
-
|
19
|
+
/**
|
20
|
+
* 浮层出现位置
|
21
|
+
*/
|
22
|
+
placement?: 'top' | 'right' | 'bottom' | 'left';
|
23
|
+
/**
|
24
|
+
* 主题样式
|
25
|
+
*/
|
26
|
+
tooltipTheme?: 'light' | 'dark';
|
27
|
+
/**
|
28
|
+
* 浮层位置相对偏移量
|
29
|
+
*/
|
30
|
+
offset?: [number, number];
|
31
|
+
/**
|
32
|
+
* 内容区自定义样式
|
33
|
+
*/
|
34
|
+
style?: React.CSSProperties;
|
35
|
+
/**
|
36
|
+
* 是否可以移入浮层中, 默认true
|
37
|
+
*/
|
38
|
+
enterable?: boolean;
|
39
|
+
/**
|
40
|
+
* 是否展示浮层指向箭头
|
41
|
+
*/
|
42
|
+
showArrow?: boolean;
|
43
|
+
/**
|
44
|
+
* 是否禁用提示
|
45
|
+
*/
|
46
|
+
disabled?: boolean;
|
47
|
+
/**
|
48
|
+
* 浮层延迟显示时间, 单位 ms
|
49
|
+
*/
|
50
|
+
mouseEnterDelay?: number;
|
51
|
+
/**
|
52
|
+
* 浮层延迟隐藏时间, 单位 ms
|
53
|
+
*/
|
54
|
+
mouseLeaveDelay?: number;
|
55
|
+
/**
|
56
|
+
* 浮层内容可通过JSX渲染
|
57
|
+
*/
|
58
|
+
children?: () => JSX.Element | JSX.Element;
|
59
|
+
/**
|
60
|
+
* 挂载容器元素
|
61
|
+
*/
|
62
|
+
container?: React.ReactNode;
|
63
|
+
/**
|
64
|
+
* 浮层触发方式
|
65
|
+
*/
|
66
|
+
trigger?: Trigger | Array<Trigger>;
|
67
|
+
/**
|
68
|
+
* 是否点击非内容区域关闭提示,默认为true
|
69
|
+
*/
|
70
|
+
rootClose?: boolean;
|
71
|
+
/**
|
72
|
+
* 文字提示浮层CSS类名
|
73
|
+
*/
|
74
|
+
tooltipClassName?: string;
|
14
75
|
}
|
15
|
-
export declare type Trigger = 'hover' | 'click' | 'focus';
|
16
76
|
export interface TooltipWrapperProps {
|
77
|
+
tooltip?: string | TooltipObject;
|
17
78
|
classPrefix: string;
|
18
79
|
classnames: ClassNamesFn;
|
19
80
|
placement: 'top' | 'right' | 'bottom' | 'left';
|
20
|
-
tooltip?: string | TooltipObject;
|
21
81
|
container?: React.ReactNode;
|
22
82
|
trigger: Trigger | Array<Trigger>;
|
23
83
|
rootClose: boolean;
|
@@ -41,6 +101,8 @@ export declare class TooltipWrapper extends React.Component<TooltipWrapperProps,
|
|
41
101
|
show(): void;
|
42
102
|
hide(): void;
|
43
103
|
getChildProps(): any;
|
104
|
+
tooltipMouseEnter: (e: MouseEvent) => void;
|
105
|
+
tooltipMouseLeave: (e: MouseEvent) => void;
|
44
106
|
handleShow(): void;
|
45
107
|
handleHide(): void;
|
46
108
|
handleFocus(e: any): void;
|
@@ -14,12 +14,26 @@ var react_dom_1 = require("react-dom");
|
|
14
14
|
var Tooltip_1 = (0, tslib_1.__importDefault)(require("./Tooltip"));
|
15
15
|
var theme_1 = require("../theme");
|
16
16
|
var Overlay_1 = (0, tslib_1.__importDefault)(require("./Overlay"));
|
17
|
+
var helper_1 = require("../utils/helper");
|
17
18
|
var waitToHide = null;
|
18
19
|
var TooltipWrapper = /** @class */ (function (_super) {
|
19
20
|
(0, tslib_1.__extends)(TooltipWrapper, _super);
|
20
21
|
function TooltipWrapper(props) {
|
21
22
|
var _this = _super.call(this, props) || this;
|
22
23
|
_this.moutned = true;
|
24
|
+
_this.tooltipMouseEnter = function (e) {
|
25
|
+
var _a, _b;
|
26
|
+
var tooltip = _this.props.tooltip;
|
27
|
+
var enterable = (_b = (_a = tooltip) === null || _a === void 0 ? void 0 : _a.enterable) !== null && _b !== void 0 ? _b : true;
|
28
|
+
enterable && clearTimeout(_this.timer);
|
29
|
+
};
|
30
|
+
_this.tooltipMouseLeave = function (e) {
|
31
|
+
var _a, _b;
|
32
|
+
var tooltip = _this.props.tooltip;
|
33
|
+
var enterable = (_b = (_a = tooltip) === null || _a === void 0 ? void 0 : _a.enterable) !== null && _b !== void 0 ? _b : true;
|
34
|
+
enterable && clearTimeout(_this.timer);
|
35
|
+
_this.hide();
|
36
|
+
};
|
23
37
|
_this.getTarget = _this.getTarget.bind(_this);
|
24
38
|
_this.show = _this.show.bind(_this);
|
25
39
|
_this.hide = _this.hide.bind(_this);
|
@@ -61,13 +75,26 @@ var TooltipWrapper = /** @class */ (function (_super) {
|
|
61
75
|
TooltipWrapper.prototype.handleShow = function () {
|
62
76
|
this.timer && clearTimeout(this.timer);
|
63
77
|
waitToHide && waitToHide();
|
64
|
-
this.
|
78
|
+
var tooltip = this.props.tooltip;
|
79
|
+
if ((0, helper_1.isObject)(tooltip)) {
|
80
|
+
var _a = tooltip.mouseEnterDelay, mouseEnterDelay = _a === void 0 ? 0 : _a;
|
81
|
+
this.timer = setTimeout(this.show, mouseEnterDelay);
|
82
|
+
}
|
83
|
+
else {
|
84
|
+
this.timer = setTimeout(this.show, 0);
|
85
|
+
}
|
65
86
|
};
|
66
87
|
TooltipWrapper.prototype.handleHide = function () {
|
67
88
|
clearTimeout(this.timer);
|
68
|
-
var
|
89
|
+
var _a = this.props, delay = _a.delay, tooltip = _a.tooltip;
|
69
90
|
waitToHide = this.hide.bind(this);
|
70
|
-
|
91
|
+
if ((0, helper_1.isObject)(tooltip)) {
|
92
|
+
var _b = tooltip.mouseLeaveDelay, mouseLeaveDelay = _b === void 0 ? 300 : _b;
|
93
|
+
this.timer = setTimeout(this.hide, mouseLeaveDelay);
|
94
|
+
}
|
95
|
+
else {
|
96
|
+
this.timer = setTimeout(this.hide, delay);
|
97
|
+
}
|
71
98
|
};
|
72
99
|
TooltipWrapper.prototype.handleFocus = function (e) {
|
73
100
|
var onFocus = this.getChildProps().onFocus;
|
@@ -98,11 +125,16 @@ var TooltipWrapper = /** @class */ (function (_super) {
|
|
98
125
|
onClick && onClick(e);
|
99
126
|
};
|
100
127
|
TooltipWrapper.prototype.render = function () {
|
101
|
-
var
|
102
|
-
var child = react_1.default.Children.only(children);
|
103
|
-
if (!tooltip) {
|
128
|
+
var props = this.props;
|
129
|
+
var child = react_1.default.Children.only(props.children);
|
130
|
+
if (!props.tooltip) {
|
104
131
|
return child;
|
105
132
|
}
|
133
|
+
// tooltip 对象内属性优先级更高
|
134
|
+
var tooltipObj = (0, tslib_1.__assign)({ placement: props.placement, container: props.container, trigger: props.trigger, rootClose: props.rootClose, tooltipClassName: props.tooltipClassName, style: props.style, mouseLeaveDelay: props.delay }, (typeof props.tooltip === 'string'
|
135
|
+
? { content: props.tooltip }
|
136
|
+
: props.tooltip));
|
137
|
+
var title = tooltipObj.title, content = tooltipObj.content, placement = tooltipObj.placement, container = tooltipObj.container, trigger = tooltipObj.trigger, rootClose = tooltipObj.rootClose, tooltipClassName = tooltipObj.tooltipClassName, style = tooltipObj.style, _a = tooltipObj.disabled, disabled = _a === void 0 ? false : _a, offset = tooltipObj.offset, _b = tooltipObj.tooltipTheme, tooltipTheme = _b === void 0 ? 'light' : _b, _c = tooltipObj.showArrow, showArrow = _c === void 0 ? true : _c, children = tooltipObj.children;
|
106
138
|
var childProps = {
|
107
139
|
key: 'target'
|
108
140
|
};
|
@@ -120,8 +152,8 @@ var TooltipWrapper = /** @class */ (function (_super) {
|
|
120
152
|
}
|
121
153
|
return [
|
122
154
|
child ? react_1.default.cloneElement(child, childProps) : null,
|
123
|
-
react_1.default.createElement(Overlay_1.default, { key: "overlay", target: this.getTarget, show: this.state.show, onHide: this.handleHide, rootClose: rootClose, placement: placement, container: container },
|
124
|
-
react_1.default.createElement(Tooltip_1.default, { title: typeof
|
155
|
+
react_1.default.createElement(Overlay_1.default, { key: "overlay", target: this.getTarget, show: this.state.show && !disabled, onHide: this.handleHide, rootClose: rootClose, placement: placement, container: container, offset: Array.isArray(offset) ? offset : [0, 0] },
|
156
|
+
react_1.default.createElement(Tooltip_1.default, { title: typeof title === 'string' ? title : undefined, style: style, className: tooltipClassName, tooltipTheme: tooltipTheme, showArrow: showArrow, onMouseEnter: ~triggers.indexOf('hover') ? this.tooltipMouseEnter : function () { }, onMouseLeave: ~triggers.indexOf('hover') ? this.tooltipMouseLeave : function () { } }, children ? (react_1.default.createElement(react_1.default.Fragment, null, typeof children === 'function' ? children() : children)) : (react_1.default.createElement(Html_1.default, { html: typeof content === 'string' ? content : '' }))))
|
125
157
|
];
|
126
158
|
};
|
127
159
|
TooltipWrapper.defaultProps = {
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/TooltipWrapper.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";AAAA;;;;GAIG;;;;AAEH,6DAA0B;AAC1B,6DAA0B;AAC1B,iDAA8C;AAC9C,uCAAsC;AACtC,mEAAgC;AAChC,kCAAiD;AACjD,mEAAgC;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file TooltipWrapper\n * @description\n * @author fex\n */\n\nimport React from 'react';\nimport Html from './Html';\nimport {uncontrollable} from 'uncontrollable';\nimport {findDOMNode} from 'react-dom';\nimport Tooltip from './Tooltip';\nimport {ClassNamesFn, themeable} from '../theme';\nimport Overlay from './Overlay';\n\nexport interface TooltipObject {\n title?: string;\n content?: string;\n
|
11
|
+
"/**\n * @file TooltipWrapper\n * @description\n * @author fex\n */\n\nimport React from 'react';\nimport Html from './Html';\nimport {uncontrollable} from 'uncontrollable';\nimport {findDOMNode} from 'react-dom';\nimport Tooltip from './Tooltip';\nimport {ClassNamesFn, themeable} from '../theme';\nimport Overlay from './Overlay';\nimport {isObject} from '../utils/helper';\n\nexport type Trigger = 'hover' | 'click' | 'focus';\n\nexport interface TooltipObject {\n /**\n * 文字提示标题\n */\n title?: string;\n /**\n * 文字提示内容\n */\n content?: string;\n /**\n * 浮层出现位置\n */\n placement?: 'top' | 'right' | 'bottom' | 'left';\n /**\n * 主题样式\n */\n tooltipTheme?: 'light' | 'dark';\n /**\n * 浮层位置相对偏移量\n */\n offset?: [number, number];\n /**\n * 内容区自定义样式\n */\n style?: React.CSSProperties;\n /**\n * 是否可以移入浮层中, 默认true\n */\n enterable?: boolean;\n /**\n * 是否展示浮层指向箭头\n */\n showArrow?: boolean;\n /**\n * 是否禁用提示\n */\n disabled?: boolean;\n /**\n * 浮层延迟显示时间, 单位 ms\n */\n mouseEnterDelay?: number;\n /**\n * 浮层延迟隐藏时间, 单位 ms\n */\n mouseLeaveDelay?: number;\n /**\n * 浮层内容可通过JSX渲染\n */\n children?: () => JSX.Element | JSX.Element;\n /**\n * 挂载容器元素\n */\n container?: React.ReactNode;\n /**\n * 浮层触发方式\n */\n trigger?: Trigger | Array<Trigger>;\n /**\n * 是否点击非内容区域关闭提示,默认为true\n */\n rootClose?: boolean;\n /**\n * 文字提示浮层CSS类名\n */\n tooltipClassName?: string;\n}\n\nexport interface TooltipWrapperProps {\n tooltip?: string | TooltipObject;\n classPrefix: string;\n classnames: ClassNamesFn;\n placement: 'top' | 'right' | 'bottom' | 'left';\n container?: React.ReactNode;\n trigger: Trigger | Array<Trigger>;\n rootClose: boolean;\n overlay?: any;\n delay: number;\n theme?: string;\n tooltipClassName?: string;\n style?: React.CSSProperties;\n}\n\ninterface TooltipWrapperState {\n show?: boolean;\n}\n\nlet waitToHide: Function | null = null;\n\nexport class TooltipWrapper extends React.Component<\n TooltipWrapperProps,\n TooltipWrapperState\n> {\n static defaultProps: Pick<\n TooltipWrapperProps,\n 'placement' | 'trigger' | 'rootClose' | 'delay'\n > = {\n placement: 'top',\n trigger: ['hover', 'focus'],\n rootClose: false,\n delay: 300\n };\n\n target: HTMLElement;\n timer: ReturnType<typeof setTimeout>;\n moutned = true;\n constructor(props: TooltipWrapperProps) {\n super(props);\n\n this.getTarget = this.getTarget.bind(this);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleMouseOver = this.handleMouseOver.bind(this);\n this.handleMouseOut = this.handleMouseOut.bind(this);\n\n this.state = {\n show: false\n };\n }\n\n componentWillUnmount() {\n clearTimeout(this.timer);\n this.moutned = false;\n }\n\n getTarget() {\n return findDOMNode(this);\n }\n\n show() {\n this.setState({\n show: true\n });\n }\n\n hide() {\n waitToHide = null;\n this.moutned &&\n this.setState({\n show: false\n });\n }\n\n getChildProps() {\n const child = React.Children.only(this.props.children);\n return child && (child as any).props;\n }\n\n tooltipMouseEnter = (e: MouseEvent) => {\n const tooltip = this.props.tooltip;\n const enterable = (tooltip as any)?.enterable ?? true;\n enterable && clearTimeout(this.timer);\n };\n\n tooltipMouseLeave = (e: MouseEvent) => {\n const tooltip = this.props.tooltip;\n const enterable = (tooltip as any)?.enterable ?? true;\n enterable && clearTimeout(this.timer);\n this.hide();\n };\n\n handleShow() {\n this.timer && clearTimeout(this.timer);\n waitToHide && waitToHide();\n const tooltip = this.props.tooltip;\n if (isObject(tooltip)) {\n const {mouseEnterDelay = 0} = tooltip as TooltipObject;\n this.timer = setTimeout(this.show, mouseEnterDelay);\n } else {\n this.timer = setTimeout(this.show, 0);\n }\n }\n\n handleHide() {\n clearTimeout(this.timer);\n const {delay, tooltip} = this.props;\n\n waitToHide = this.hide.bind(this);\n if (isObject(tooltip)) {\n const {mouseLeaveDelay = 300} = tooltip as TooltipObject;\n this.timer = setTimeout(this.hide, mouseLeaveDelay);\n } else {\n this.timer = setTimeout(this.hide, delay);\n }\n }\n\n handleFocus(e: any) {\n const {onFocus} = this.getChildProps();\n this.handleShow();\n onFocus && onFocus(e);\n }\n\n handleBlur(e: any) {\n const {onBlur} = this.getChildProps();\n this.handleHide();\n onBlur && onBlur(e);\n }\n\n handleMouseOver(e: any) {\n this.handleMouseOverOut(this.handleShow, e, 'fromElement');\n }\n\n handleMouseOut(e: any) {\n this.handleMouseOverOut(this.handleHide, e, 'toElement');\n }\n\n handleMouseOverOut(\n handler: Function,\n e: React.MouseEvent<HTMLElement>,\n relatedNative: string\n ) {\n const target = e.currentTarget;\n const related: any =\n e.relatedTarget || (e as any).nativeEvent[relatedNative];\n\n if ((!related || related !== target) && !target.contains(related)) {\n handler(e);\n }\n }\n\n handleClick(e: any) {\n const {onClick} = this.getChildProps();\n this.state.show ? this.hide() : this.show();\n onClick && onClick(e);\n }\n\n render() {\n const props = this.props;\n\n const child = React.Children.only(props.children);\n if (!props.tooltip) {\n return child;\n }\n\n // tooltip 对象内属性优先级更高\n const tooltipObj: TooltipObject = {\n placement: props.placement,\n container: props.container,\n trigger: props.trigger,\n rootClose: props.rootClose,\n tooltipClassName: props.tooltipClassName,\n style: props.style,\n mouseLeaveDelay: props.delay,\n ...(typeof props.tooltip === 'string'\n ? {content: props.tooltip}\n : props.tooltip)\n };\n\n const {\n title,\n content,\n placement,\n container,\n trigger,\n rootClose,\n tooltipClassName,\n style,\n disabled = false,\n offset,\n tooltipTheme = 'light',\n showArrow = true,\n children\n } = tooltipObj;\n\n const childProps: any = {\n key: 'target'\n };\n\n const triggers = Array.isArray(trigger) ? trigger.concat() : [trigger];\n\n if (~triggers.indexOf('click')) {\n childProps.onClick = this.handleClick;\n }\n\n if (~triggers.indexOf('focus')) {\n childProps.onFocus = this.handleShow;\n childProps.onBlur = this.handleHide;\n }\n\n if (~triggers.indexOf('hover')) {\n childProps.onMouseOver = this.handleMouseOver;\n childProps.onMouseOut = this.handleMouseOut;\n }\n\n return [\n child ? React.cloneElement(child as any, childProps) : null,\n\n <Overlay\n key=\"overlay\"\n target={this.getTarget}\n show={this.state.show && !disabled}\n onHide={this.handleHide}\n rootClose={rootClose}\n placement={placement}\n container={container}\n offset={Array.isArray(offset) ? offset : [0, 0]}\n >\n <Tooltip\n title={typeof title === 'string' ? title : undefined}\n style={style}\n className={tooltipClassName}\n tooltipTheme={tooltipTheme}\n showArrow={showArrow}\n onMouseEnter={\n ~triggers.indexOf('hover') ? this.tooltipMouseEnter : () => {}\n }\n onMouseLeave={\n ~triggers.indexOf('hover') ? this.tooltipMouseLeave : () => {}\n }\n >\n {children ? (\n <>{typeof children === 'function' ? children() : children}</>\n ) : (\n <Html html={typeof content === 'string' ? content : ''} />\n )}\n </Tooltip>\n </Overlay>\n ];\n }\n}\n\nexport default themeable(\n uncontrollable(TooltipWrapper, {\n show: 'onVisibleChange'\n })\n);\n"
|
12
12
|
]
|
13
13
|
}
|