amis 1.5.7 → 1.6.1
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/.husky/pre-commit +1 -1
- package/README.md +1 -0
- package/lib/RootRenderer.d.ts +2 -0
- package/lib/RootRenderer.js +19 -1
- package/lib/RootRenderer.js.map +2 -2
- package/lib/Schema.d.ts +3 -2
- package/lib/Schema.js.map +1 -1
- package/lib/SchemaRenderer.js +52 -1
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/Scoped.d.ts +2 -0
- package/lib/Scoped.js +27 -1
- package/lib/Scoped.js.map +2 -2
- package/lib/actions/Action.d.ts +33 -0
- package/lib/actions/Action.js +100 -0
- package/lib/actions/Action.js.map +13 -0
- package/lib/actions/AjaxAction.d.ts +14 -0
- package/lib/actions/AjaxAction.js +68 -0
- package/lib/actions/AjaxAction.js.map +13 -0
- package/lib/actions/BreakAction.d.ts +12 -0
- package/lib/actions/BreakAction.js +28 -0
- package/lib/actions/BreakAction.js.map +13 -0
- package/lib/actions/BroadcastAction.d.ts +12 -0
- package/lib/actions/BroadcastAction.js +40 -0
- package/lib/actions/BroadcastAction.js.map +13 -0
- package/lib/actions/CmptAction.d.ts +12 -0
- package/lib/actions/CmptAction.js +40 -0
- package/lib/actions/CmptAction.js.map +13 -0
- package/lib/actions/ContinueAction.d.ts +12 -0
- package/lib/actions/ContinueAction.js +28 -0
- package/lib/actions/ContinueAction.js.map +13 -0
- package/lib/actions/CopyAction.d.ts +12 -0
- package/lib/actions/CopyAction.js +35 -0
- package/lib/actions/CopyAction.js.map +13 -0
- package/lib/actions/CustomAction.d.ts +12 -0
- package/lib/actions/CustomAction.js +43 -0
- package/lib/actions/CustomAction.js.map +13 -0
- package/lib/actions/DialogAction.d.ts +12 -0
- package/lib/actions/DialogAction.js +31 -0
- package/lib/actions/DialogAction.js.map +13 -0
- package/lib/actions/DrawerAction.d.ts +12 -0
- package/lib/actions/DrawerAction.js +31 -0
- package/lib/actions/DrawerAction.js.map +13 -0
- package/lib/actions/EmailAction.d.ts +12 -0
- package/lib/actions/EmailAction.js +37 -0
- package/lib/actions/EmailAction.js.map +13 -0
- package/lib/actions/LoopAction.d.ts +12 -0
- package/lib/actions/LoopAction.js +93 -0
- package/lib/actions/LoopAction.js.map +13 -0
- package/lib/actions/OpenPageAction.d.ts +12 -0
- package/lib/actions/OpenPageAction.js +33 -0
- package/lib/actions/OpenPageAction.js.map +13 -0
- package/lib/actions/ParallelAction.d.ts +5 -0
- package/lib/actions/ParallelAction.js +33 -0
- package/lib/actions/ParallelAction.js.map +13 -0
- package/lib/actions/SwitchAction.d.ts +8 -0
- package/lib/actions/SwitchAction.js +45 -0
- package/lib/actions/SwitchAction.js.map +13 -0
- package/lib/actions/index.d.ts +18 -0
- package/lib/actions/index.js +22 -0
- package/lib/actions/index.js.map +13 -0
- package/lib/components/AnchorNav.d.ts +20 -20
- package/lib/components/AssociatedSelection.d.ts +84 -84
- package/lib/components/AssociatedSelection.js +2 -2
- package/lib/components/AssociatedSelection.js.map +2 -2
- package/lib/components/Avatar.d.ts +135 -0
- package/lib/components/Avatar.js +120 -0
- package/lib/components/Avatar.js.map +13 -0
- package/lib/components/BaiduMapPicker.js.map +2 -2
- package/lib/components/Button.d.ts +20 -20
- package/lib/components/CalendarMobile.d.ts +573 -0
- package/lib/components/CalendarMobile.js +486 -0
- package/lib/components/CalendarMobile.js.map +13 -0
- package/lib/components/Cascader.d.ts +123 -0
- package/lib/components/Cascader.js +487 -0
- package/lib/components/Cascader.js.map +13 -0
- package/lib/components/ChainedSelection.d.ts +84 -84
- package/lib/components/ChainedSelection.js +15 -3
- package/lib/components/ChainedSelection.js.map +2 -2
- package/lib/components/CityArea.d.ts +527 -0
- package/lib/components/CityArea.js +177 -0
- package/lib/components/CityArea.js.map +13 -0
- package/lib/components/Collapse.d.ts +20 -20
- package/lib/components/ColorPicker.d.ts +84 -84
- package/lib/components/ColorPicker.js +4 -3
- package/lib/components/ColorPicker.js.map +2 -2
- package/lib/components/DatePicker.d.ts +85 -84
- package/lib/components/DatePicker.js +21 -8
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +85 -84
- package/lib/components/DateRangePicker.js +19 -6
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/GroupedSelection.d.ts +84 -84
- package/lib/components/GroupedSelection.js +14 -2
- package/lib/components/GroupedSelection.js.map +2 -2
- package/lib/components/InputBox.d.ts +21 -21
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/ListMenu.d.ts +84 -84
- package/lib/components/MonthRangePicker.d.ts +85 -84
- package/lib/components/MonthRangePicker.js +18 -7
- package/lib/components/MonthRangePicker.js.map +2 -2
- package/lib/components/Overlay.d.ts +1 -1
- package/lib/components/Overlay.js.map +1 -1
- package/lib/components/Picker.d.ts +1 -0
- package/lib/components/Picker.js +16 -7
- package/lib/components/Picker.js.map +2 -2
- package/lib/components/PickerColumn.d.ts +1 -0
- package/lib/components/PickerColumn.js +21 -18
- package/lib/components/PickerColumn.js.map +2 -2
- package/lib/components/PickerContainer.d.ts +3 -0
- package/lib/components/PickerContainer.js +12 -5
- package/lib/components/PickerContainer.js.map +2 -2
- package/lib/components/PopOverContainer.d.ts +1 -0
- package/lib/components/PopOverContainer.js +5 -3
- package/lib/components/PopOverContainer.js.map +2 -2
- package/lib/components/PopUp.d.ts +1041 -28
- package/lib/components/PopUp.js +32 -8
- package/lib/components/PopUp.js.map +2 -2
- package/lib/components/Radios.d.ts +21 -21
- package/lib/components/Rating.d.ts +21 -21
- package/lib/components/ResultBox.d.ts +85 -84
- package/lib/components/ResultBox.js +9 -4
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/ResultList.d.ts +9 -2
- package/lib/components/ResultList.js +22 -2
- package/lib/components/ResultList.js.map +2 -2
- package/lib/components/Select.d.ts +238 -238
- package/lib/components/Select.js +13 -9
- package/lib/components/Select.js.map +2 -2
- package/lib/components/Selection.d.ts +94 -86
- package/lib/components/Selection.js +11 -2
- package/lib/components/Selection.js.map +2 -2
- package/lib/components/Steps.js.map +2 -2
- package/lib/components/TableSelection.d.ts +85 -85
- package/lib/components/TableSelection.js +1 -9
- package/lib/components/TableSelection.js.map +2 -2
- package/lib/components/Tabs.js +31 -33
- package/lib/components/Tabs.js.map +2 -2
- package/lib/components/TabsTransfer.d.ts +87 -256
- package/lib/components/TabsTransfer.js +52 -9
- package/lib/components/TabsTransfer.js.map +2 -2
- package/lib/components/TabsTransferPicker.d.ts +1 -1
- package/lib/components/TabsTransferPicker.js +20 -18
- package/lib/components/TabsTransferPicker.js.map +2 -2
- package/lib/components/Timeline.d.ts +69 -0
- package/lib/components/Timeline.js +16 -0
- package/lib/components/Timeline.js.map +13 -0
- package/lib/components/TimelineItem.d.ts +517 -0
- package/lib/components/TimelineItem.js +40 -0
- package/lib/components/TimelineItem.js.map +13 -0
- package/lib/components/Transfer.d.ts +100 -98
- package/lib/components/Transfer.js +2 -3
- package/lib/components/Transfer.js.map +2 -2
- package/lib/components/TransferDropDown.d.ts +85 -84
- package/lib/components/TransferDropDown.js +9 -10
- package/lib/components/TransferDropDown.js.map +2 -2
- package/lib/components/TransferPicker.d.ts +1 -0
- package/lib/components/TransferPicker.js +19 -4
- package/lib/components/TransferPicker.js.map +2 -2
- package/lib/components/Tree.d.ts +84 -84
- package/lib/components/TreeSelection.d.ts +85 -85
- package/lib/components/TreeSelection.js +7 -1
- package/lib/components/TreeSelection.js.map +2 -2
- package/lib/components/calendar/Calendar.d.ts +19 -0
- package/lib/components/calendar/Calendar.js +71 -1
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/calendar/DaysView.d.ts +21 -0
- package/lib/components/calendar/DaysView.js +76 -17
- package/lib/components/calendar/DaysView.js.map +2 -2
- package/lib/components/calendar/MonthsView.d.ts +34 -0
- package/lib/components/calendar/MonthsView.js +68 -3
- package/lib/components/calendar/MonthsView.js.map +2 -2
- package/lib/components/calendar/QuartersView.d.ts +1 -0
- package/lib/components/calendar/QuartersView.js +2 -2
- package/lib/components/calendar/QuartersView.js.map +2 -2
- package/lib/components/calendar/TimeView.d.ts +30 -18
- package/lib/components/calendar/TimeView.js +47 -8
- package/lib/components/calendar/TimeView.js.map +2 -2
- package/lib/components/calendar/YearsView.d.ts +6 -0
- package/lib/components/calendar/YearsView.js +21 -10
- package/lib/components/calendar/YearsView.js.map +2 -2
- package/lib/components/condition-builder/Field.js +1 -4
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Func.js +1 -1
- package/lib/components/condition-builder/Func.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +3 -0
- package/lib/components/formula/Editor.js +3 -2
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/FuncList.js +2 -1
- package/lib/components/formula/FuncList.js.map +2 -2
- package/lib/components/formula/Picker.js +1 -1
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/formula/plugin.js +0 -1
- package/lib/components/formula/plugin.js.map +2 -2
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +4 -2
- package/lib/components/index.js.map +2 -2
- package/lib/components/virtual-list/SizeAndPositionManager.js.map +2 -2
- package/lib/components/virtual-list/index.js +1 -2
- package/lib/components/virtual-list/index.js.map +2 -2
- package/lib/env.d.ts +4 -0
- package/lib/env.js.map +2 -2
- package/lib/factory.d.ts +2 -1
- package/lib/factory.js +83 -0
- package/lib/factory.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/icons/tree-down.js +7 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +4 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +17 -2
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +17 -2
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +16 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +1 -1
- package/lib/renderers/Action.js +26 -10
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/Avatar.d.ts +35 -26
- package/lib/renderers/Avatar.js +14 -19
- package/lib/renderers/Avatar.js.map +2 -2
- package/lib/renderers/Card.js +6 -5
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Custom.d.ts +1 -1
- package/lib/renderers/Custom.js +1 -1
- package/lib/renderers/Custom.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +11 -2
- package/lib/renderers/DropDownButton.js +30 -12
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Each.js +5 -2
- package/lib/renderers/Each.js.map +2 -2
- package/lib/renderers/Flex.js +1 -5
- package/lib/renderers/Flex.js.map +2 -2
- package/lib/renderers/Form/ChartRadios.js.map +2 -2
- package/lib/renderers/Form/Checkboxes.js.map +2 -2
- package/lib/renderers/Form/CityDB.js +526 -2
- package/lib/renderers/Form/CityDB.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +6 -0
- package/lib/renderers/Form/DiffEditor.js +2 -1
- package/lib/renderers/Form/DiffEditor.js.map +2 -2
- package/lib/renderers/Form/Editor.d.ts +6 -0
- package/lib/renderers/Form/InputCity.d.ts +85 -84
- package/lib/renderers/Form/InputCity.js +4 -2
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.d.ts +84 -84
- package/lib/renderers/Form/InputColor.js +6 -2
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +10 -5
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +6 -2
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +4 -1
- package/lib/renderers/Form/InputFormula.js +2 -2
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +1 -0
- package/lib/renderers/Form/InputImage.js +8 -4
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputMonthRange.js +1 -1
- package/lib/renderers/Form/InputMonthRange.js.map +2 -2
- package/lib/renderers/Form/InputQuarterRange.js +1 -1
- package/lib/renderers/Form/InputQuarterRange.js.map +2 -2
- package/lib/renderers/Form/InputRichText.d.ts +4 -0
- package/lib/renderers/Form/InputRichText.js +2 -1
- package/lib/renderers/Form/InputRichText.js.map +2 -2
- package/lib/renderers/Form/InputYearRange.js +1 -1
- package/lib/renderers/Form/InputYearRange.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +10 -14
- package/lib/renderers/Form/Item.js +18 -9
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/NestedSelect.d.ts +1 -0
- package/lib/renderers/Form/NestedSelect.js +8 -4
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/Options.js +9 -7
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Select.d.ts +2 -0
- package/lib/renderers/Form/Select.js +9 -6
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TabsTransfer.d.ts +5 -32
- package/lib/renderers/Form/TabsTransfer.js +20 -1
- package/lib/renderers/Form/TabsTransfer.js.map +2 -2
- package/lib/renderers/Form/TabsTransferPicker.d.ts +5 -35
- package/lib/renderers/Form/TabsTransferPicker.js +21 -2
- package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
- package/lib/renderers/Form/Transfer.d.ts +15 -4
- package/lib/renderers/Form/Transfer.js +55 -18
- package/lib/renderers/Form/Transfer.js.map +2 -2
- package/lib/renderers/Form/TransferPicker.d.ts +3 -32
- package/lib/renderers/Form/TransferPicker.js +1 -1
- package/lib/renderers/Form/TransferPicker.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.js +4 -4
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.js +8 -1
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/IFrame.js +0 -2
- package/lib/renderers/IFrame.js.map +2 -2
- package/lib/renderers/Link.d.ts +1 -1
- package/lib/renderers/Link.js +27 -6
- package/lib/renderers/Link.js.map +2 -2
- package/lib/renderers/Log.js +15 -10
- package/lib/renderers/Log.js.map +2 -2
- package/lib/renderers/Nav.d.ts +21 -21
- package/lib/renderers/Remark.d.ts +5 -1
- package/lib/renderers/Remark.js +39 -7
- package/lib/renderers/Remark.js.map +2 -2
- package/lib/renderers/Steps.js +5 -5
- package/lib/renderers/Steps.js.map +2 -2
- package/lib/renderers/Table/index.js +4 -1
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Tabs.js +1 -1
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/Timeline.d.ts +65 -0
- package/lib/renderers/Timeline.js +54 -0
- package/lib/renderers/Timeline.js.map +13 -0
- package/lib/renderers/Video.js.map +2 -2
- package/lib/schemaExtend.js +23 -9
- package/lib/schemaExtend.js.map +2 -2
- package/lib/store/combo.js.map +2 -2
- package/lib/store/formItem.js +1 -1
- package/lib/store/formItem.js.map +2 -2
- package/lib/themes/ang-ie11.css +1149 -53
- package/lib/themes/ang.css +1149 -53
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +1187 -53
- package/lib/themes/antd.css +1187 -53
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1189 -70
- package/lib/themes/cxd.css +1189 -70
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +1152 -53
- package/lib/themes/dark.css +1152 -53
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +1189 -70
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/RootClose.js +3 -1
- package/lib/utils/RootClose.js.map +2 -2
- package/lib/utils/api.js +14 -3
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/debug.d.ts +26 -0
- package/lib/utils/debug.js +351 -0
- package/lib/utils/debug.js.map +13 -0
- package/lib/utils/helper.d.ts +1 -6
- package/lib/utils/helper.js +6 -17
- package/lib/utils/helper.js.map +2 -2
- package/lib/utils/renderer-event.d.ts +38 -0
- package/lib/utils/renderer-event.js +28 -0
- package/lib/utils/renderer-event.js.map +13 -0
- package/package.json +12 -6
- package/schema.json +3516 -839
- package/scss/_properties.scss +20 -6
- package/scss/_variables.scss +1 -0
- package/scss/components/_avatar.scss +27 -9
- package/scss/components/_calendar.scss +291 -0
- package/scss/components/_card.scss +1 -1
- package/scss/components/_cascader.scss +102 -0
- package/scss/components/_city-area.scss +27 -0
- package/scss/components/_collapse-group.scss +1 -3
- package/scss/components/_debug.scss +167 -0
- package/scss/components/_dropdown.scss +39 -9
- package/scss/components/_formula.scss +30 -6
- package/scss/components/_modal.scss +18 -0
- package/scss/components/_panel.scss +45 -0
- package/scss/components/_picker-columns.scss +15 -5
- package/scss/components/_popup.scss +43 -16
- package/scss/components/_result-box.scss +31 -0
- package/scss/components/_timeline.scss +198 -0
- package/scss/components/form/_checks.scss +2 -0
- package/scss/components/form/_color.scss +2 -2
- package/scss/components/form/_date-range.scss +34 -1
- package/scss/components/form/_date.scss +46 -1
- package/scss/components/form/_form.scss +170 -0
- package/scss/components/form/_nested-select.scss +3 -0
- package/scss/components/form/_result-list.scss +2 -0
- package/scss/components/form/_select.scss +32 -3
- package/scss/components/form/_selection.scss +5 -4
- package/scss/components/form/_transfer.scss +3 -0
- package/scss/components/form/_tree-select.scss +1 -1
- package/scss/themes/_antd-variables.scss +45 -0
- package/scss/themes/_common.scss +5 -0
- package/scss/themes/_cxd-variables.scss +50 -1
- package/scss/themes/_dark-variables.scss +4 -0
- package/scss/themes/cxd.scss +0 -19
- package/sdk/ang-ie11.css +1450 -142
- package/sdk/ang.css +1473 -159
- package/sdk/antd-ie11.css +1451 -142
- package/sdk/antd.css +1511 -159
- package/sdk/charts.js +15 -15
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +1448 -158
- package/sdk/cxd.css +1513 -178
- package/sdk/dark-ie11.css +1450 -142
- package/sdk/dark.css +1476 -159
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/locale/de-DE.js +17 -2
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +18 -18
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +1448 -158
- package/sdk/sdk.css +1513 -178
- package/sdk/sdk.js +1309 -1251
- 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/RootRenderer.tsx +27 -1
- package/src/Schema.ts +3 -0
- package/src/SchemaRenderer.tsx +70 -4
- package/src/Scoped.tsx +46 -4
- package/src/actions/Action.ts +138 -0
- package/src/actions/AjaxAction.ts +58 -0
- package/src/actions/BreakAction.ts +27 -0
- package/src/actions/BroadcastAction.ts +41 -0
- package/src/actions/CmptAction.ts +36 -0
- package/src/actions/ContinueAction.ts +27 -0
- package/src/actions/CopyAction.ts +41 -0
- package/src/actions/CustomAction.ts +46 -0
- package/src/actions/DialogAction.ts +28 -0
- package/src/actions/DrawerAction.ts +28 -0
- package/src/actions/EmailAction.ts +38 -0
- package/src/actions/LoopAction.ts +77 -0
- package/src/actions/OpenPageAction.ts +39 -0
- package/src/actions/ParallelAction.ts +26 -0
- package/src/actions/SwitchAction.ts +35 -0
- package/src/actions/index.ts +20 -0
- package/src/components/AssociatedSelection.tsx +5 -1
- package/src/components/Avatar.tsx +253 -0
- package/src/components/BaiduMapPicker.tsx +19 -14
- package/src/components/CalendarMobile.tsx +658 -0
- package/src/components/Cascader.tsx +564 -0
- package/src/components/ChainedSelection.tsx +16 -3
- package/src/components/CityArea.tsx +315 -0
- package/src/components/ColorPicker.tsx +41 -40
- package/src/components/DatePicker.tsx +80 -34
- package/src/components/DateRangePicker.tsx +85 -30
- package/src/components/GroupedSelection.tsx +14 -2
- package/src/components/MonthRangePicker.tsx +78 -31
- package/src/components/Overlay.tsx +1 -1
- package/src/components/Picker.tsx +55 -35
- package/src/components/PickerColumn.tsx +43 -36
- package/src/components/PickerContainer.tsx +13 -1
- package/src/components/PopOverContainer.tsx +31 -17
- package/src/components/PopUp.tsx +84 -57
- package/src/components/ResultBox.tsx +14 -2
- package/src/components/ResultList.tsx +36 -6
- package/src/components/Select.tsx +24 -26
- package/src/components/Selection.tsx +21 -3
- package/src/components/Steps.tsx +23 -10
- package/src/components/TableSelection.tsx +1 -44
- package/src/components/Tabs.tsx +65 -54
- package/src/components/TabsTransfer.tsx +78 -9
- package/src/components/TabsTransferPicker.tsx +25 -13
- package/src/components/Timeline.tsx +36 -0
- package/src/components/TimelineItem.tsx +140 -0
- package/src/components/Transfer.tsx +11 -8
- package/src/components/TransferDropDown.tsx +20 -12
- package/src/components/TransferPicker.tsx +25 -4
- package/src/components/TreeSelection.tsx +7 -1
- package/src/components/calendar/Calendar.tsx +101 -4
- package/src/components/calendar/DaysView.tsx +165 -33
- package/src/components/calendar/MonthsView.tsx +108 -1
- package/src/components/calendar/QuartersView.tsx +3 -2
- package/src/components/calendar/TimeView.tsx +104 -41
- package/src/components/calendar/YearsView.tsx +34 -17
- package/src/components/condition-builder/Field.tsx +1 -3
- package/src/components/condition-builder/Func.tsx +1 -1
- package/src/components/formula/Editor.tsx +16 -11
- package/src/components/formula/FuncList.tsx +3 -1
- package/src/components/formula/Picker.tsx +2 -1
- package/src/components/formula/plugin.ts +0 -2
- package/src/components/icons.tsx +2 -0
- package/src/components/index.tsx +2 -0
- package/src/components/virtual-list/SizeAndPositionManager.ts +6 -3
- package/src/components/virtual-list/index.tsx +4 -6
- package/src/env.tsx +22 -0
- package/src/factory.tsx +93 -1
- package/src/icons/tree-down.svg +5 -0
- package/src/index.tsx +5 -0
- package/src/locale/de-DE.ts +17 -2
- package/src/locale/en-US.ts +17 -2
- package/src/locale/zh-CN.ts +16 -1
- package/src/renderers/Action.tsx +11 -2
- package/src/renderers/Avatar.tsx +83 -74
- package/src/renderers/Card.tsx +10 -6
- package/src/renderers/Custom.tsx +7 -4
- package/src/renderers/DropDownButton.tsx +69 -35
- package/src/renderers/Each.tsx +4 -4
- package/src/renderers/Flex.tsx +3 -7
- package/src/renderers/Form/ChartRadios.tsx +2 -7
- package/src/renderers/Form/Checkboxes.tsx +1 -1
- package/src/renderers/Form/CityDB.ts +526 -2
- package/src/renderers/Form/DiffEditor.tsx +2 -3
- package/src/renderers/Form/InputCity.tsx +23 -3
- package/src/renderers/Form/InputColor.tsx +21 -2
- package/src/renderers/Form/InputDate.tsx +48 -20
- package/src/renderers/Form/InputDateRange.tsx +9 -2
- package/src/renderers/Form/InputFormula.tsx +9 -4
- package/src/renderers/Form/InputImage.tsx +9 -4
- package/src/renderers/Form/InputMonthRange.tsx +0 -1
- package/src/renderers/Form/InputQuarterRange.tsx +0 -1
- package/src/renderers/Form/InputRichText.tsx +11 -1
- package/src/renderers/Form/InputYearRange.tsx +0 -1
- package/src/renderers/Form/Item.tsx +29 -8
- package/src/renderers/Form/NestedSelect.tsx +32 -4
- package/src/renderers/Form/Options.tsx +15 -7
- package/src/renderers/Form/Select.tsx +21 -5
- package/src/renderers/Form/TabsTransfer.tsx +28 -38
- package/src/renderers/Form/TabsTransferPicker.tsx +28 -46
- package/src/renderers/Form/Transfer.tsx +75 -24
- package/src/renderers/Form/TransferPicker.tsx +6 -38
- package/src/renderers/Form/TreeSelect.tsx +18 -16
- package/src/renderers/Form/index.tsx +7 -1
- package/src/renderers/IFrame.tsx +0 -2
- package/src/renderers/Link.tsx +18 -3
- package/src/renderers/Log.tsx +5 -1
- package/src/renderers/Remark.tsx +68 -18
- package/src/renderers/Steps.tsx +11 -13
- package/src/renderers/Table/index.tsx +7 -1
- package/src/renderers/Tabs.tsx +6 -2
- package/src/renderers/Timeline.tsx +141 -0
- package/src/renderers/Video.tsx +4 -20
- package/src/schemaExtend.ts +22 -10
- package/src/store/combo.ts +1 -3
- package/src/store/formItem.ts +1 -1
- package/src/utils/RootClose.ts +5 -1
- package/src/utils/api.ts +15 -2
- package/src/utils/debug.tsx +438 -0
- package/src/utils/helper.ts +6 -16
- package/src/utils/renderer-event.ts +75 -0
@@ -0,0 +1,486 @@
|
|
1
|
+
"use strict";
|
2
|
+
/**
|
3
|
+
* @file CalendarMobile
|
4
|
+
* @description 移动端日历组件
|
5
|
+
* @author hongyang03
|
6
|
+
*/
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
8
|
+
exports.CalendarMobile = void 0;
|
9
|
+
var tslib_1 = require("tslib");
|
10
|
+
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
11
|
+
var moment_1 = (0, tslib_1.__importDefault)(require("moment"));
|
12
|
+
var Calendar_1 = (0, tslib_1.__importDefault)(require("./calendar/Calendar"));
|
13
|
+
var theme_1 = require("../theme");
|
14
|
+
var locale_1 = require("../locale");
|
15
|
+
var helper_1 = require("../utils/helper");
|
16
|
+
var CalendarMobile = /** @class */ (function (_super) {
|
17
|
+
(0, tslib_1.__extends)(CalendarMobile, _super);
|
18
|
+
function CalendarMobile(props) {
|
19
|
+
var _this = _super.call(this, props) || this;
|
20
|
+
_this.mobileBody = react_1.default.createRef();
|
21
|
+
_this.mobileHeader = react_1.default.createRef();
|
22
|
+
var _a = _this.props, startDate = _a.startDate, endDate = _a.endDate, defaultDate = _a.defaultDate, minDate = _a.minDate, maxDate = _a.maxDate;
|
23
|
+
var dateRange = _this.getDateRange(minDate, maxDate, defaultDate);
|
24
|
+
_this.state = {
|
25
|
+
minDate: dateRange.minDate,
|
26
|
+
maxDate: dateRange.maxDate,
|
27
|
+
startDate: startDate,
|
28
|
+
endDate: endDate,
|
29
|
+
showToast: false,
|
30
|
+
currentDate: dateRange.currentDate,
|
31
|
+
isScrollToBottom: false,
|
32
|
+
dateTime: endDate ? [endDate.hour(), endDate.minute()] : [0, 0]
|
33
|
+
};
|
34
|
+
return _this;
|
35
|
+
}
|
36
|
+
CalendarMobile.prototype.getDateRange = function (minDate, maxDate, defaultDate) {
|
37
|
+
!moment_1.default.isMoment(minDate) || !minDate.isValid() && (minDate = undefined);
|
38
|
+
!moment_1.default.isMoment(maxDate) || !maxDate.isValid() && (maxDate = undefined);
|
39
|
+
var currentDate = defaultDate || (0, moment_1.default)();
|
40
|
+
var dateRange = {
|
41
|
+
minDate: currentDate.clone().subtract(1, 'year').startOf('months'),
|
42
|
+
maxDate: currentDate.clone().add(1, 'year').endOf('months')
|
43
|
+
};
|
44
|
+
if (minDate && maxDate) {
|
45
|
+
dateRange = {
|
46
|
+
minDate: minDate,
|
47
|
+
maxDate: maxDate
|
48
|
+
};
|
49
|
+
}
|
50
|
+
else if (minDate && !maxDate) {
|
51
|
+
dateRange = {
|
52
|
+
minDate: minDate,
|
53
|
+
maxDate: (0, moment_1.default)(minDate).add(2, 'year')
|
54
|
+
};
|
55
|
+
currentDate = minDate.clone();
|
56
|
+
}
|
57
|
+
else if (!minDate && maxDate) {
|
58
|
+
dateRange = {
|
59
|
+
minDate: (0, moment_1.default)(maxDate).subtract(2, 'year'),
|
60
|
+
maxDate: maxDate
|
61
|
+
};
|
62
|
+
currentDate = maxDate.clone();
|
63
|
+
}
|
64
|
+
if (!currentDate.isBetween(dateRange.minDate, dateRange.maxDate, 'days', '[]')) {
|
65
|
+
currentDate = dateRange.minDate.clone();
|
66
|
+
}
|
67
|
+
return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, dateRange), { currentDate: currentDate });
|
68
|
+
};
|
69
|
+
CalendarMobile.prototype.componentDidMount = function () {
|
70
|
+
this.initMonths();
|
71
|
+
};
|
72
|
+
CalendarMobile.prototype.componentDidUpdate = function (prevProps) {
|
73
|
+
var _this = this;
|
74
|
+
var props = this.props;
|
75
|
+
if (prevProps.minDate !== props.minDate || prevProps.maxDate !== props.maxDate) {
|
76
|
+
var currentDate = this.state.currentDate;
|
77
|
+
var dateRange = this.getDateRange(props.minDate, props.maxDate, (0, moment_1.default)(currentDate));
|
78
|
+
this.setState({
|
79
|
+
minDate: dateRange.minDate,
|
80
|
+
maxDate: dateRange.maxDate,
|
81
|
+
currentDate: dateRange.currentDate,
|
82
|
+
}, function () { return _this.initMonths(); });
|
83
|
+
}
|
84
|
+
};
|
85
|
+
CalendarMobile.prototype.componentWillUnmount = function () {
|
86
|
+
this.setState({ showToast: false });
|
87
|
+
clearTimeout(this.timer);
|
88
|
+
};
|
89
|
+
CalendarMobile.prototype.initMonths = function () {
|
90
|
+
if (this.mobileBody.current) {
|
91
|
+
var header = this.mobileHeader.current;
|
92
|
+
var monthHeights = [];
|
93
|
+
var monthCollection = this.mobileBody.current.children;
|
94
|
+
for (var i = 0; i < monthCollection.length; i++) {
|
95
|
+
monthHeights[i] = monthCollection[i].offsetTop - header.clientHeight;
|
96
|
+
}
|
97
|
+
this.setState({
|
98
|
+
monthHeights: monthHeights
|
99
|
+
});
|
100
|
+
var defaultDate = this.props.defaultDate || this.state.currentDate;
|
101
|
+
this.scollToDate(defaultDate ? (0, moment_1.default)(defaultDate) : (0, moment_1.default)());
|
102
|
+
}
|
103
|
+
};
|
104
|
+
CalendarMobile.prototype.scollToDate = function (date) {
|
105
|
+
var showViewMode = this.props.showViewMode;
|
106
|
+
var minDate = this.state.minDate;
|
107
|
+
var index = date.diff(minDate, showViewMode);
|
108
|
+
var currentEl = this.mobileBody.current.children[index];
|
109
|
+
if (!currentEl) {
|
110
|
+
return;
|
111
|
+
}
|
112
|
+
var header = this.mobileHeader.current;
|
113
|
+
this.mobileBody.current.scrollBy(0, currentEl.offsetTop - this.mobileBody.current.scrollTop - header.clientHeight);
|
114
|
+
};
|
115
|
+
CalendarMobile.prototype.onMobileBodyScroll = function (e) {
|
116
|
+
var _a, _b;
|
117
|
+
var showViewMode = this.props.showViewMode;
|
118
|
+
var monthHeights = this.state.monthHeights;
|
119
|
+
var minDate = (_a = this.state.minDate) === null || _a === void 0 ? void 0 : _a.clone();
|
120
|
+
if (!((_b = this.mobileBody) === null || _b === void 0 ? void 0 : _b.current) || !monthHeights || !minDate) {
|
121
|
+
return;
|
122
|
+
}
|
123
|
+
var scrollTop = this.mobileBody.current.scrollTop;
|
124
|
+
var clientHeight = this.mobileBody.current.clientHeight;
|
125
|
+
var scrollHeight = this.mobileBody.current.scrollHeight;
|
126
|
+
var i = 0;
|
127
|
+
for (i; i < monthHeights.length; i++) {
|
128
|
+
if (scrollTop < monthHeights[i]) {
|
129
|
+
break;
|
130
|
+
}
|
131
|
+
}
|
132
|
+
i--;
|
133
|
+
i < 0 && (i = 0);
|
134
|
+
var currentDate = minDate.add(i, showViewMode);
|
135
|
+
this.setState({
|
136
|
+
currentDate: currentDate,
|
137
|
+
isScrollToBottom: scrollTop + clientHeight === scrollHeight
|
138
|
+
});
|
139
|
+
};
|
140
|
+
CalendarMobile.prototype.scrollPreYear = function () {
|
141
|
+
if (!this.state.currentDate) {
|
142
|
+
return;
|
143
|
+
}
|
144
|
+
var _a = this.state, currentDate = _a.currentDate, minDate = _a.minDate;
|
145
|
+
currentDate = currentDate.clone().subtract(1, 'years');
|
146
|
+
if (minDate && currentDate.isBefore(minDate)) {
|
147
|
+
currentDate = minDate;
|
148
|
+
}
|
149
|
+
this.setState({
|
150
|
+
currentDate: currentDate
|
151
|
+
});
|
152
|
+
this.scollToDate(currentDate);
|
153
|
+
};
|
154
|
+
CalendarMobile.prototype.scrollAfterYear = function () {
|
155
|
+
if (!this.state.currentDate) {
|
156
|
+
return;
|
157
|
+
}
|
158
|
+
var _a = this.state, currentDate = _a.currentDate, maxDate = _a.maxDate;
|
159
|
+
currentDate = currentDate.clone().add(1, 'years');
|
160
|
+
if (maxDate && currentDate.isAfter(maxDate)) {
|
161
|
+
currentDate = maxDate;
|
162
|
+
}
|
163
|
+
this.setState({
|
164
|
+
currentDate: currentDate
|
165
|
+
});
|
166
|
+
this.scollToDate(currentDate);
|
167
|
+
};
|
168
|
+
CalendarMobile.prototype.getDaysOfWeek = function () {
|
169
|
+
var locale = (0, moment_1.default)().localeData();
|
170
|
+
var days = locale.weekdaysMin();
|
171
|
+
var first = locale.firstDayOfWeek();
|
172
|
+
var dow = [];
|
173
|
+
var i = 0;
|
174
|
+
days.forEach(function (day) {
|
175
|
+
dow[(7 + (i++) - first) % 7] = day;
|
176
|
+
});
|
177
|
+
return dow;
|
178
|
+
};
|
179
|
+
CalendarMobile.prototype.handleCalendarClick = function (isDisabled) {
|
180
|
+
var _this = this;
|
181
|
+
if (isDisabled) {
|
182
|
+
this.setState({ showToast: true });
|
183
|
+
this.timer = setTimeout(function () {
|
184
|
+
_this.setState({ showToast: false });
|
185
|
+
}, 2000);
|
186
|
+
}
|
187
|
+
};
|
188
|
+
CalendarMobile.prototype.getRenderProps = function (props, currentDate) {
|
189
|
+
var _a = this.state, startDate = _a.startDate, endDate = _a.endDate;
|
190
|
+
var _b = this.props, __ = _b.translate, viewMode = _b.viewMode, isDatePicker = _b.isDatePicker;
|
191
|
+
var precision = viewMode === 'time' ? 'hours' : viewMode || 'day';
|
192
|
+
var footerText = '';
|
193
|
+
if (startDate &&
|
194
|
+
endDate &&
|
195
|
+
currentDate.isBetween(startDate, endDate, precision, '()')) {
|
196
|
+
props.className += ' rdtBetween';
|
197
|
+
}
|
198
|
+
else if (startDate
|
199
|
+
&& endDate
|
200
|
+
&& startDate.isSame(endDate, precision)
|
201
|
+
&& currentDate.isSame(startDate, precision)) {
|
202
|
+
props.className += ' rdtRangeStart';
|
203
|
+
footerText = __('Calendar.beginAndEnd');
|
204
|
+
}
|
205
|
+
else if (startDate && currentDate.isSame(startDate, precision)) {
|
206
|
+
props.className += ' rdtRangeStart';
|
207
|
+
footerText = __('Calendar.begin');
|
208
|
+
if (endDate) {
|
209
|
+
props.className += ' rdtRangeHasEnd';
|
210
|
+
}
|
211
|
+
}
|
212
|
+
else if (endDate && currentDate.isSame(endDate, precision)) {
|
213
|
+
props.className += ' rdtRangeEnd';
|
214
|
+
footerText = __('Calendar.end');
|
215
|
+
}
|
216
|
+
if (precision === 'day' && currentDate.date() === 1 && currentDate.day() === 1) {
|
217
|
+
props.className += ' rdtOldNone';
|
218
|
+
}
|
219
|
+
if (isDatePicker) {
|
220
|
+
footerText = '';
|
221
|
+
}
|
222
|
+
var rdtDisabled = props.className.indexOf('rdtDisabled') > -1;
|
223
|
+
return {
|
224
|
+
props: props,
|
225
|
+
footerText: footerText,
|
226
|
+
rdtDisabled: rdtDisabled
|
227
|
+
};
|
228
|
+
};
|
229
|
+
CalendarMobile.prototype.handleTimeChange = function (newTime) {
|
230
|
+
var _this = this;
|
231
|
+
if (!newTime) {
|
232
|
+
return;
|
233
|
+
}
|
234
|
+
var onChange = this.props.onChange;
|
235
|
+
var _a = this.state, startDate = _a.startDate, endDate = _a.endDate;
|
236
|
+
if (startDate) {
|
237
|
+
var obj = {
|
238
|
+
dateTime: newTime,
|
239
|
+
startDate: endDate ? startDate : startDate === null || startDate === void 0 ? void 0 : startDate.clone().set({ hour: newTime[0], minute: newTime[1], second: newTime[2] || 0 }),
|
240
|
+
endDate: !endDate ? endDate : endDate === null || endDate === void 0 ? void 0 : endDate.clone().set({ hour: newTime[0], minute: newTime[1], second: newTime[2] || 0 })
|
241
|
+
};
|
242
|
+
this.setState(obj, function () {
|
243
|
+
onChange && onChange(_this.state);
|
244
|
+
});
|
245
|
+
}
|
246
|
+
};
|
247
|
+
CalendarMobile.prototype.checkIsValidDate = function (currentDate) {
|
248
|
+
var _a = this.state, startDate = _a.startDate, endDate = _a.endDate, minDate = _a.minDate, maxDate = _a.maxDate;
|
249
|
+
var _b = this.props, minDuration = _b.minDuration, maxDuration = _b.maxDuration, viewMode = _b.viewMode;
|
250
|
+
var precision = viewMode === 'time' ? 'hours' : viewMode || 'day';
|
251
|
+
if (minDate && currentDate.isBefore(minDate, precision)) {
|
252
|
+
return false;
|
253
|
+
}
|
254
|
+
else if (maxDate && currentDate.isAfter(maxDate, precision)) {
|
255
|
+
return false;
|
256
|
+
}
|
257
|
+
else if (startDate && !endDate) {
|
258
|
+
if (minDuration
|
259
|
+
&& currentDate.isBefore(startDate.clone().add(minDuration))
|
260
|
+
&& currentDate.isSameOrAfter(startDate)) {
|
261
|
+
return false;
|
262
|
+
}
|
263
|
+
else if (maxDuration && currentDate.isAfter(startDate.clone().add(maxDuration))) {
|
264
|
+
return false;
|
265
|
+
}
|
266
|
+
}
|
267
|
+
return true;
|
268
|
+
};
|
269
|
+
CalendarMobile.prototype.renderMobileDay = function (props, currentDate) {
|
270
|
+
var _this = this;
|
271
|
+
var cx = this.props.classnames;
|
272
|
+
var renderProps = this.getRenderProps(props, currentDate);
|
273
|
+
return react_1.default.createElement("td", (0, tslib_1.__assign)({}, renderProps.props),
|
274
|
+
react_1.default.createElement("div", { className: "calendar-wrap", onClick: function () { return _this.handleCalendarClick(renderProps.rdtDisabled); } },
|
275
|
+
currentDate.date(),
|
276
|
+
react_1.default.createElement("div", { className: cx('CalendarMobile-range-text') }, renderProps.footerText)));
|
277
|
+
};
|
278
|
+
CalendarMobile.prototype.renderMonth = function (props, month, year) {
|
279
|
+
var _this = this;
|
280
|
+
var cx = this.props.classnames;
|
281
|
+
var currentDate = (0, moment_1.default)().year(year).month(month);
|
282
|
+
var monthStr = currentDate
|
283
|
+
.localeData()
|
284
|
+
.monthsShort(currentDate.month(month));
|
285
|
+
var strLength = 3;
|
286
|
+
var monthStrFixedLength = monthStr.substring(0, strLength);
|
287
|
+
var renderProps = this.getRenderProps(props, currentDate);
|
288
|
+
return (react_1.default.createElement("td", (0, tslib_1.__assign)({}, renderProps.props),
|
289
|
+
react_1.default.createElement("div", { className: "calendar-wrap", onClick: function () { return _this.handleCalendarClick(renderProps.rdtDisabled); } },
|
290
|
+
monthStrFixedLength,
|
291
|
+
react_1.default.createElement("div", { className: cx('CalendarMobile-range-text') }, renderProps.footerText))));
|
292
|
+
};
|
293
|
+
CalendarMobile.prototype.renderQuarter = function (props, quarter, year) {
|
294
|
+
var _this = this;
|
295
|
+
var cx = this.props.classnames;
|
296
|
+
var currentDate = (0, moment_1.default)().year(year).quarter(quarter);
|
297
|
+
var renderProps = this.getRenderProps(props, currentDate);
|
298
|
+
return (react_1.default.createElement("td", (0, tslib_1.__assign)({}, props),
|
299
|
+
react_1.default.createElement("div", { className: "calendar-wrap", onClick: function () { return _this.handleCalendarClick(renderProps.rdtDisabled); } },
|
300
|
+
"Q",
|
301
|
+
quarter,
|
302
|
+
react_1.default.createElement("div", { className: cx('CalendarMobile-range-text') }, renderProps.footerText))));
|
303
|
+
};
|
304
|
+
CalendarMobile.prototype.handleMobileChange = function (newValue) {
|
305
|
+
var _this = this;
|
306
|
+
var _a = this.props, embed = _a.embed, minDuration = _a.minDuration, maxDuration = _a.maxDuration, confirm = _a.confirm, onChange = _a.onChange, viewMode = _a.viewMode, isDatePicker = _a.isDatePicker;
|
307
|
+
var _b = this.state, startDate = _b.startDate, endDate = _b.endDate, dateTime = _b.dateTime, minDate = _b.minDate, maxDate = _b.maxDate;
|
308
|
+
var precision = viewMode === 'time' ? 'hours' : viewMode || 'day';
|
309
|
+
if (minDate && newValue && newValue.isBefore(minDate, 'second')) {
|
310
|
+
newValue = minDate;
|
311
|
+
}
|
312
|
+
if (maxDate && newValue && newValue.isAfter(maxDate, 'second')) {
|
313
|
+
newValue = maxDate;
|
314
|
+
}
|
315
|
+
if (!isDatePicker &&
|
316
|
+
startDate &&
|
317
|
+
!endDate &&
|
318
|
+
newValue.isSameOrAfter(startDate) &&
|
319
|
+
(!minDuration || newValue.isSameOrAfter(startDate.clone().add(minDuration))) &&
|
320
|
+
(!maxDuration || newValue.isSameOrBefore(startDate.clone().add(maxDuration)))) {
|
321
|
+
return this.setState({
|
322
|
+
endDate: newValue.clone().endOf(precision).set({ hour: dateTime[0], minute: dateTime[1], second: dateTime[2] || 0 })
|
323
|
+
}, function () {
|
324
|
+
onChange && onChange(_this.state, function () { return embed && confirm && confirm(startDate, endDate); });
|
325
|
+
});
|
326
|
+
}
|
327
|
+
this.setState({
|
328
|
+
startDate: newValue.clone().startOf(precision).set({ hour: dateTime[0], minute: dateTime[1], second: dateTime[2] || 0 }),
|
329
|
+
endDate: undefined
|
330
|
+
}, function () {
|
331
|
+
onChange && onChange(_this.state);
|
332
|
+
});
|
333
|
+
};
|
334
|
+
CalendarMobile.prototype.renderMobileCalendarBody = function () {
|
335
|
+
var _this = this;
|
336
|
+
var _a = this.props, cx = _a.classnames, dateFormat = _a.dateFormat, timeFormat = _a.timeFormat, inputFormat = _a.inputFormat, locale = _a.locale, _b = _a.viewMode, viewMode = _b === void 0 ? 'days' : _b, close = _a.close, defaultDate = _a.defaultDate, showViewMode = _a.showViewMode;
|
337
|
+
var __ = this.props.translate;
|
338
|
+
var _c = this.state, minDate = _c.minDate, maxDate = _c.maxDate;
|
339
|
+
if (!minDate || !maxDate) {
|
340
|
+
return;
|
341
|
+
}
|
342
|
+
var calendarDates = [];
|
343
|
+
for (var minDateClone = minDate.clone(); minDateClone.isSameOrBefore(maxDate); minDateClone.add(1, showViewMode)) {
|
344
|
+
var date = minDateClone.clone();
|
345
|
+
if (defaultDate) {
|
346
|
+
date = (0, moment_1.default)(defaultDate).set({ year: date.get('year'), month: date.get('month') });
|
347
|
+
}
|
348
|
+
calendarDates.push(date);
|
349
|
+
}
|
350
|
+
return (react_1.default.createElement("div", { className: cx('CalendarMobile-body'), ref: this.mobileBody, onScroll: this.onMobileBodyScroll }, calendarDates.map(function (calendarDate, index) {
|
351
|
+
var rdtOldNone = showViewMode === 'months'
|
352
|
+
&& calendarDate.clone().startOf('month').day() === 1
|
353
|
+
? 'rdtOldNone' : '';
|
354
|
+
return react_1.default.createElement("div", { className: cx('CalendarMobile-calendar-wrap', rdtOldNone), key: 'calendar-wrap' + index },
|
355
|
+
showViewMode === 'months' && react_1.default.createElement("div", { className: cx('CalendarMobile-calendar-mark'), key: 'calendar-mark' + index }, calendarDate.month() + 1),
|
356
|
+
react_1.default.createElement("div", { className: cx('CalendarMobile-calendar-header') },
|
357
|
+
react_1.default.createElement("span", { className: "rdtSwitch" }, calendarDate.format(__('dateformat.year'))),
|
358
|
+
showViewMode === 'months' && react_1.default.createElement("span", { className: "rdtSwitch" }, calendarDate.format(__('MMM')))),
|
359
|
+
react_1.default.createElement(Calendar_1.default, { className: cx('CalendarMobile-calendar', rdtOldNone), viewDate: calendarDate, value: calendarDate, onChange: _this.handleMobileChange, requiredConfirm: false, dateFormat: dateFormat, inputFormat: inputFormat, timeFormat: '', isValidDate: _this.checkIsValidDate, viewMode: viewMode, input: false, onClose: close, renderDay: _this.renderMobileDay, renderMonth: _this.renderMonth, renderQuarter: _this.renderQuarter, locale: locale, hideHeader: true, updateOn: viewMode, key: 'calendar' + index }));
|
360
|
+
})));
|
361
|
+
};
|
362
|
+
CalendarMobile.prototype.renderMobileTimePicker = function () {
|
363
|
+
var _a = this.props, cx = _a.classnames, timeFormat = _a.timeFormat, locale = _a.locale, close = _a.close, timeConstraints = _a.timeConstraints, defaultDate = _a.defaultDate, isDatePicker = _a.isDatePicker;
|
364
|
+
var __ = this.props.translate;
|
365
|
+
var _b = this.state, startDate = _b.startDate, endDate = _b.endDate, dateTime = _b.dateTime;
|
366
|
+
return (react_1.default.createElement("div", { className: cx('CalendarMobile-time') },
|
367
|
+
react_1.default.createElement("div", { className: cx('CalendarMobile-time-title') }, isDatePicker ? __('Date.titleTime') : startDate && endDate ? __('Calendar.endPick') : __('Calendar.startPick')),
|
368
|
+
react_1.default.createElement(Calendar_1.default, { className: cx('CalendarMobile-time-calendar'), value: defaultDate, onChange: this.handleTimeChange, requiredConfirm: false, timeFormat: timeFormat, viewMode: "time", input: false, onClose: close, locale: locale, useMobileUI: true, showToolbar: false, viewDate: (0, moment_1.default)().set({ hour: dateTime[0], minute: dateTime[1], second: dateTime[2] || 0 }), timeConstraints: timeConstraints, isValidDate: this.checkIsValidDate })));
|
369
|
+
};
|
370
|
+
CalendarMobile.prototype.render = function () {
|
371
|
+
var _a = this.props, className = _a.className, cx = _a.classnames, embed = _a.embed, close = _a.close, confirm = _a.confirm, footerExtra = _a.footerExtra, timeFormat = _a.timeFormat, showViewMode = _a.showViewMode, isDatePicker = _a.isDatePicker;
|
372
|
+
var __ = this.props.translate;
|
373
|
+
var _b = this.state, startDate = _b.startDate, endDate = _b.endDate, currentDate = _b.currentDate, showToast = _b.showToast, isScrollToBottom = _b.isScrollToBottom, minDate = _b.minDate, maxDate = _b.maxDate;
|
374
|
+
var dateNow = currentDate
|
375
|
+
? currentDate.format(__("Calendar." + (showViewMode === 'months' ? 'yearmonth' : 'year')))
|
376
|
+
: (0, moment_1.default)().format(__("Calendar." + (showViewMode === 'months' ? 'yearmonth' : 'year')));
|
377
|
+
var header = (react_1.default.createElement("div", { className: cx('CalendarMobile-header'), ref: this.mobileHeader },
|
378
|
+
react_1.default.createElement("div", { className: cx('CalendarMobile-subtitle') },
|
379
|
+
react_1.default.createElement("span", { className: "subtitle-text" },
|
380
|
+
currentDate && currentDate.isSameOrBefore(minDate, showViewMode)
|
381
|
+
? null
|
382
|
+
: react_1.default.createElement("a", { className: "rdtPrev", onClick: this.scrollPreYear }, "\u2039"),
|
383
|
+
dateNow,
|
384
|
+
currentDate && currentDate.isSameOrAfter(maxDate, showViewMode) || isScrollToBottom
|
385
|
+
? null
|
386
|
+
: react_1.default.createElement("a", { className: "rdtNext", onClick: this.scrollAfterYear }, "\u203A"))),
|
387
|
+
showViewMode === 'months' ? react_1.default.createElement("div", { className: cx('CalendarMobile-weekdays') }, this.getDaysOfWeek().map(function (day, index) { return (react_1.default.createElement("span", { key: day + index, className: "weekday" }, day)); })) : null));
|
388
|
+
var footer = (react_1.default.createElement("div", { className: cx('CalendarMobile-footer') },
|
389
|
+
timeFormat && startDate && this.renderMobileTimePicker(),
|
390
|
+
react_1.default.createElement("div", { className: cx('CalendarMobile-footer-toolbar') },
|
391
|
+
react_1.default.createElement("div", { className: cx('CalendarMobile-footer-ranges') }, footerExtra),
|
392
|
+
confirm && !embed && react_1.default.createElement("a", { className: cx('Button', 'Button--primary', 'date-range-confirm', {
|
393
|
+
'is-disabled': !startDate || !(endDate || isDatePicker)
|
394
|
+
}), onClick: function () {
|
395
|
+
confirm(startDate, endDate);
|
396
|
+
close && close();
|
397
|
+
} }, __('confirm')))));
|
398
|
+
return (react_1.default.createElement("div", { className: cx('CalendarMobile', embed ? 'CalendarMobile-embed' : '', className) },
|
399
|
+
react_1.default.createElement("div", { className: cx('CalendarMobile-wrap') },
|
400
|
+
header,
|
401
|
+
this.renderMobileCalendarBody(),
|
402
|
+
footer),
|
403
|
+
showToast ? react_1.default.createElement("div", { className: cx('CalendarMobile-toast') }, __('Calendar.toast')) : null));
|
404
|
+
};
|
405
|
+
var _a, _b, _c;
|
406
|
+
CalendarMobile.defaultProps = {
|
407
|
+
showViewMode: 'months'
|
408
|
+
};
|
409
|
+
(0, tslib_1.__decorate)([
|
410
|
+
helper_1.autobind,
|
411
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
412
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
413
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
414
|
+
], CalendarMobile.prototype, "onMobileBodyScroll", null);
|
415
|
+
(0, tslib_1.__decorate)([
|
416
|
+
helper_1.autobind,
|
417
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
418
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
419
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
420
|
+
], CalendarMobile.prototype, "scrollPreYear", null);
|
421
|
+
(0, tslib_1.__decorate)([
|
422
|
+
helper_1.autobind,
|
423
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
424
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
425
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
426
|
+
], CalendarMobile.prototype, "scrollAfterYear", null);
|
427
|
+
(0, tslib_1.__decorate)([
|
428
|
+
helper_1.autobind,
|
429
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
430
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Boolean]),
|
431
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
432
|
+
], CalendarMobile.prototype, "handleCalendarClick", null);
|
433
|
+
(0, tslib_1.__decorate)([
|
434
|
+
helper_1.autobind,
|
435
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
436
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
437
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
438
|
+
], CalendarMobile.prototype, "handleTimeChange", null);
|
439
|
+
(0, tslib_1.__decorate)([
|
440
|
+
helper_1.autobind,
|
441
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
442
|
+
(0, tslib_1.__metadata)("design:paramtypes", [typeof (_a = typeof moment_1.default !== "undefined" && moment_1.default.Moment) === "function" ? _a : Object]),
|
443
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
444
|
+
], CalendarMobile.prototype, "checkIsValidDate", null);
|
445
|
+
(0, tslib_1.__decorate)([
|
446
|
+
helper_1.autobind,
|
447
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
448
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, typeof (_b = typeof moment_1.default !== "undefined" && moment_1.default.Moment) === "function" ? _b : Object]),
|
449
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
450
|
+
], CalendarMobile.prototype, "renderMobileDay", null);
|
451
|
+
(0, tslib_1.__decorate)([
|
452
|
+
helper_1.autobind,
|
453
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
454
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, Number, Number]),
|
455
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
456
|
+
], CalendarMobile.prototype, "renderMonth", null);
|
457
|
+
(0, tslib_1.__decorate)([
|
458
|
+
helper_1.autobind,
|
459
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
460
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, Number, Number]),
|
461
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
462
|
+
], CalendarMobile.prototype, "renderQuarter", null);
|
463
|
+
(0, tslib_1.__decorate)([
|
464
|
+
helper_1.autobind,
|
465
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
466
|
+
(0, tslib_1.__metadata)("design:paramtypes", [typeof (_c = typeof moment_1.default !== "undefined" && moment_1.default.Moment) === "function" ? _c : Object]),
|
467
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
468
|
+
], CalendarMobile.prototype, "handleMobileChange", null);
|
469
|
+
(0, tslib_1.__decorate)([
|
470
|
+
helper_1.autobind,
|
471
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
472
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
473
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
474
|
+
], CalendarMobile.prototype, "renderMobileCalendarBody", null);
|
475
|
+
(0, tslib_1.__decorate)([
|
476
|
+
helper_1.autobind,
|
477
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
478
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
479
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
480
|
+
], CalendarMobile.prototype, "renderMobileTimePicker", null);
|
481
|
+
return CalendarMobile;
|
482
|
+
}(react_1.default.Component));
|
483
|
+
exports.CalendarMobile = CalendarMobile;
|
484
|
+
;
|
485
|
+
exports.default = (0, theme_1.themeable)((0, locale_1.localeable)(CalendarMobile));
|
486
|
+
//# sourceMappingURL=./components/CalendarMobile.js.map
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"file": "CalendarMobile.js",
|
4
|
+
"sourceRoot": "",
|
5
|
+
"sources": [
|
6
|
+
"/src/components/CalendarMobile.tsx"
|
7
|
+
],
|
8
|
+
"names": [],
|
9
|
+
"mappings": "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",
|
10
|
+
"sourcesContent": [
|
11
|
+
"/**\n * @file CalendarMobile\n * @description 移动端日历组件\n * @author hongyang03\n */\n\nimport React from 'react';\nimport moment from 'moment';\nimport Calendar from './calendar/Calendar';\nimport {themeable, ThemeProps} from '../theme';\nimport {LocaleProps, localeable} from '../locale';\nimport {autobind} from '../utils/helper';\n\nexport interface CalendarMobileProps extends ThemeProps, LocaleProps {\n className?: string;\n timeFormat?: string;\n inputFormat?: string;\n startDate?: moment.Moment;\n endDate?: moment.Moment;\n minDate?: moment.Moment;\n maxDate?: moment.Moment;\n minDuration?: moment.Duration;\n maxDuration?: moment.Duration;\n dateFormat?: string;\n embed?: boolean;\n viewMode?: 'days' | 'months' | 'years' | 'time' | 'quarters';\n close?: () => void;\n confirm?: (startDate?: any, endTime?: any) => void;\n onChange?: (data: any, callback?: () => void) => void;\n footerExtra?: JSX.Element | null;\n showViewMode?: 'years' | 'months';\n isDatePicker?: boolean;\n timeConstraints?: {\n hours?: {\n min: number;\n max: number;\n step: number;\n };\n minutes?: {\n min: number;\n max: number;\n step: number;\n };\n seconds: {\n min: number;\n max: number;\n step: number;\n };\n };\n defaultDate?: moment.Moment;\n}\n\nexport interface CalendarMobileState {\n startDate?: moment.Moment;\n endDate?: moment.Moment;\n monthHeights?: number[];\n currentDate: moment.Moment;\n showToast: boolean;\n isScrollToBottom: boolean;\n dateTime: any;\n minDate?: moment.Moment;\n maxDate?: moment.Moment;\n}\n\nexport class CalendarMobile extends React.Component<\n CalendarMobileProps,\n CalendarMobileState\n> {\n\n mobileBody: any;\n mobileHeader: any;\n timer: any;\n\n static defaultProps: Pick<CalendarMobileProps, 'showViewMode'> = {\n showViewMode: 'months'\n };\n\n constructor(props: CalendarMobileProps) {\n super(props);\n\n this.mobileBody = React.createRef();\n this.mobileHeader = React.createRef();\n\n const {startDate, endDate, defaultDate, minDate, maxDate} = this.props;\n const dateRange = this.getDateRange(minDate, maxDate, defaultDate);\n\n this.state = {\n minDate: dateRange.minDate,\n maxDate: dateRange.maxDate,\n startDate,\n endDate,\n showToast: false,\n currentDate: dateRange.currentDate,\n isScrollToBottom: false,\n dateTime: endDate ? [endDate.hour(), endDate.minute()] : [0, 0]\n };\n }\n\n getDateRange(minDate?: moment.Moment, maxDate?: moment.Moment, defaultDate?: moment.Moment) {\n !moment.isMoment(minDate) || !minDate.isValid() && (minDate = undefined);\n !moment.isMoment(maxDate) || !maxDate.isValid() && (maxDate = undefined);\n\n let currentDate = defaultDate || moment();\n let dateRange: {\n minDate: moment.Moment,\n maxDate: moment.Moment\n } = {\n minDate: currentDate.clone().subtract(1, 'year').startOf('months'),\n maxDate: currentDate.clone().add(1, 'year').endOf('months')\n };\n if (minDate && maxDate) {\n dateRange = {\n minDate,\n maxDate\n };\n }\n else if (minDate && !maxDate) {\n dateRange = {\n minDate,\n maxDate: moment(minDate).add(2, 'year')\n };\n currentDate = minDate.clone();\n }\n else if (!minDate && maxDate) {\n dateRange = {\n minDate: moment(maxDate).subtract(2, 'year'),\n maxDate\n };\n currentDate = maxDate.clone();\n }\n\n if (!currentDate.isBetween(dateRange.minDate, dateRange.maxDate, 'days', '[]')) {\n currentDate = dateRange.minDate.clone();\n }\n return {\n ...dateRange,\n currentDate\n };\n }\n\n componentDidMount() {\n this.initMonths();\n }\n\n componentDidUpdate(prevProps: CalendarMobileProps) {\n const props = this.props;\n\n if (prevProps.minDate !== props.minDate || prevProps.maxDate !== props.maxDate) {\n const currentDate = this.state.currentDate;\n const dateRange = this.getDateRange(props.minDate, props.maxDate, moment(currentDate));\n this.setState(\n {\n minDate: dateRange.minDate,\n maxDate: dateRange.maxDate,\n currentDate: dateRange.currentDate,\n },\n () => this.initMonths()\n );\n }\n }\n\n componentWillUnmount() {\n this.setState({showToast: false});\n clearTimeout(this.timer);\n }\n\n initMonths() {\n if (this.mobileBody.current) {\n const header = this.mobileHeader.current;\n let monthHeights: number[] = [];\n const monthCollection = this.mobileBody.current.children;\n for (let i = 0; i < monthCollection.length; i++) {\n monthHeights[i] = monthCollection[i].offsetTop - header.clientHeight;\n }\n this.setState({\n monthHeights\n });\n const defaultDate = this.props.defaultDate || this.state.currentDate;\n this.scollToDate(defaultDate ? moment(defaultDate) : moment());\n }\n }\n\n scollToDate(date: moment.Moment) {\n const {showViewMode} = this.props;\n const {minDate} = this.state;\n const index = date.diff(minDate, showViewMode);\n const currentEl = this.mobileBody.current.children[index];\n if (!currentEl) {\n return;\n }\n const header = this.mobileHeader.current;\n this.mobileBody.current.scrollBy(0, currentEl.offsetTop - this.mobileBody.current.scrollTop - header.clientHeight);\n }\n\n @autobind\n onMobileBodyScroll(e: any) {\n const {showViewMode} = this.props;\n const {monthHeights} = this.state;\n let minDate = this.state.minDate?.clone();\n if (!this.mobileBody?.current || !monthHeights || !minDate) {\n return;\n }\n const scrollTop = this.mobileBody.current.scrollTop;\n const clientHeight = this.mobileBody.current.clientHeight;\n const scrollHeight = this.mobileBody.current.scrollHeight;\n \n let i = 0;\n for(i; i < monthHeights.length; i++) {\n if (scrollTop < monthHeights[i]) {\n break;\n }\n }\n i--;\n i < 0 && (i = 0);\n const currentDate = minDate.add(i, showViewMode);\n this.setState({\n currentDate,\n isScrollToBottom: scrollTop + clientHeight === scrollHeight\n });\n }\n\n @autobind\n scrollPreYear() {\n if (!this.state.currentDate) {\n return;\n }\n let {currentDate, minDate} = this.state;\n currentDate = currentDate.clone().subtract(1, 'years');\n if (minDate && currentDate.isBefore(minDate)) {\n currentDate = minDate;\n }\n this.setState({\n currentDate\n });\n this.scollToDate(currentDate);\n }\n\n @autobind\n scrollAfterYear() {\n if (!this.state.currentDate) {\n return;\n }\n let {currentDate, maxDate} = this.state;\n currentDate = currentDate.clone().add(1, 'years');\n if (maxDate && currentDate.isAfter(maxDate)) {\n currentDate = maxDate;\n }\n this.setState({\n currentDate\n });\n this.scollToDate(currentDate);\n }\n\n getDaysOfWeek() {\n const locale = moment().localeData();\n const days = locale.weekdaysMin();\n const first = locale.firstDayOfWeek();\n const\tdow: string[] = [];\n let\ti = 0;\n\n days.forEach((day: string) => {\n dow[ (7 + ( i++ ) - first) % 7 ] = day;\n });\n\n return dow;\n }\n\n @autobind\n handleCalendarClick(isDisabled: boolean) {\n if (isDisabled) {\n this.setState({showToast: true});\n this.timer = setTimeout(() => {\n this.setState({showToast: false});\n }, 2000);\n }\n }\n\n getRenderProps(props: any, currentDate: moment.Moment) {\n let {startDate, endDate} = this.state;\n const {translate: __, viewMode, isDatePicker} = this.props;\n const precision = viewMode === 'time' ? 'hours' : viewMode || 'day';\n let footerText = '';\n\n if (startDate &&\n endDate &&\n currentDate.isBetween(startDate, endDate, precision, '()')) {\n props.className += ' rdtBetween';\n }\n else if (startDate\n && endDate\n && startDate.isSame(endDate, precision)\n && currentDate.isSame(startDate, precision)) {\n props.className += ' rdtRangeStart';\n footerText = __('Calendar.beginAndEnd');\n }\n else if (startDate && currentDate.isSame(startDate, precision)) {\n props.className += ' rdtRangeStart';\n footerText = __('Calendar.begin');\n if (endDate) {\n props.className += ' rdtRangeHasEnd';\n }\n }\n else if (endDate && currentDate.isSame(endDate, precision)) {\n props.className += ' rdtRangeEnd';\n footerText = __('Calendar.end');\n }\n\n if (precision === 'day' && currentDate.date() === 1 && currentDate.day() === 1) {\n props.className += ' rdtOldNone';\n }\n\n if (isDatePicker) {\n footerText = '';\n }\n\n const rdtDisabled = props.className.indexOf('rdtDisabled') > -1;\n\n return {\n props,\n footerText,\n rdtDisabled\n };\n }\n\n @autobind\n handleTimeChange(newTime: any) {\n if (!newTime) {\n return;\n }\n const {onChange} = this.props;\n let {startDate, endDate} = this.state;\n if (startDate) {\n let obj = {\n dateTime: newTime,\n startDate: endDate ? startDate : startDate?.clone().set({hour: newTime[0], minute: newTime[1], second: newTime[2] || 0}),\n endDate: !endDate ? endDate : endDate?.clone().set({hour: newTime[0], minute: newTime[1], second: newTime[2] || 0})\n };\n this.setState(obj, () => {\n onChange && onChange(this.state);\n });\n }\n }\n\n @autobind\n checkIsValidDate(currentDate: moment.Moment) {\n const {startDate, endDate, minDate, maxDate} = this.state;\n let {minDuration, maxDuration, viewMode} = this.props;\n const precision = viewMode === 'time' ? 'hours' : viewMode || 'day';\n\n if (minDate && currentDate.isBefore(minDate, precision)) {\n return false;\n }\n else if (maxDate && currentDate.isAfter(maxDate, precision)) {\n return false;\n }\n else if (startDate && !endDate) {\n if (minDuration\n && currentDate.isBefore(startDate.clone().add(minDuration))\n && currentDate.isSameOrAfter(startDate)) {\n return false;\n }\n else if (maxDuration && currentDate.isAfter(startDate.clone().add(maxDuration))) {\n return false;\n }\n }\n\n return true;\n }\n\n @autobind\n renderMobileDay(props: any, currentDate: moment.Moment) {\n const cx = this.props.classnames;\n const renderProps = this.getRenderProps(props, currentDate);\n\n return <td {...renderProps.props}>\n <div className=\"calendar-wrap\" onClick={() => this.handleCalendarClick(renderProps.rdtDisabled)}>\n {currentDate.date()}\n <div className={cx('CalendarMobile-range-text')}>{renderProps.footerText}</div>\n </div>\n </td>;\n }\n\n @autobind\n renderMonth(props: any, month: number, year: number) {\n const cx = this.props.classnames;\n const currentDate = moment().year(year).month(month);\n const monthStr = currentDate\n .localeData()\n .monthsShort(currentDate.month(month));\n const strLength = 3;\n const monthStrFixedLength = monthStr.substring(0, strLength);\n const renderProps = this.getRenderProps(props, currentDate);\n\n return (\n <td {...renderProps.props}>\n <div className=\"calendar-wrap\" onClick={() => this.handleCalendarClick(renderProps.rdtDisabled)}>\n {monthStrFixedLength}\n <div className={cx('CalendarMobile-range-text')}>{renderProps.footerText}</div>\n </div>\n </td>\n );\n }\n\n @autobind\n renderQuarter(props: any, quarter: number, year: number) {\n const cx = this.props.classnames;\n const currentDate = moment().year(year).quarter(quarter);\n const renderProps = this.getRenderProps(props, currentDate);\n\n return (\n <td {...props}>\n <div className=\"calendar-wrap\" onClick={() => this.handleCalendarClick(renderProps.rdtDisabled)}>\n Q{quarter}\n <div className={cx('CalendarMobile-range-text')}>{renderProps.footerText}</div>\n </div>\n </td>\n );\n }\n\n @autobind\n handleMobileChange(newValue: moment.Moment) {\n const {embed, minDuration, maxDuration, confirm, onChange, viewMode, isDatePicker} = this.props;\n const {startDate, endDate, dateTime, minDate, maxDate} = this.state;\n const precision = viewMode === 'time' ? 'hours' : viewMode || 'day';\n\n if (minDate && newValue && newValue.isBefore(minDate, 'second')) {\n newValue = minDate;\n }\n\n if (maxDate && newValue && newValue.isAfter(maxDate, 'second')) {\n newValue = maxDate;\n }\n\n if (\n !isDatePicker &&\n startDate &&\n !endDate &&\n newValue.isSameOrAfter(startDate) &&\n (!minDuration || newValue.isSameOrAfter(startDate.clone().add(minDuration))) &&\n (!maxDuration || newValue.isSameOrBefore(startDate.clone().add(maxDuration)))\n ) {\n return this.setState(\n {\n endDate: newValue.clone().endOf(precision).set({hour: dateTime[0], minute: dateTime[1], second: dateTime[2] || 0})\n },\n () => {\n onChange && onChange(this.state, () => embed && confirm && confirm(startDate, endDate));\n }\n );\n }\n\n this.setState(\n {\n startDate: newValue.clone().startOf(precision).set({hour: dateTime[0], minute: dateTime[1], second: dateTime[2] || 0}),\n endDate: undefined\n },\n () => {\n onChange && onChange(this.state);\n }\n );\n }\n\n @autobind\n renderMobileCalendarBody() {\n const {\n classnames: cx,\n dateFormat,\n timeFormat,\n inputFormat,\n locale,\n viewMode = 'days',\n close,\n defaultDate,\n showViewMode\n } = this.props;\n const __ = this.props.translate;\n\n const {minDate, maxDate} = this.state;\n if (!minDate || !maxDate) {\n return;\n }\n let calendarDates: moment.Moment[] = [];\n for(let minDateClone = minDate.clone(); minDateClone.isSameOrBefore(maxDate); minDateClone.add(1, showViewMode)) {\n let date = minDateClone.clone();\n if (defaultDate) {\n date = moment(defaultDate).set({year: date.get('year'), month: date.get('month')});\n }\n calendarDates.push(date);\n }\n\n return (\n <div className={cx('CalendarMobile-body')} ref={this.mobileBody}\n onScroll={this.onMobileBodyScroll}>\n {calendarDates.map((calendarDate: moment.Moment, index: number) => {\n const rdtOldNone = showViewMode === 'months'\n && calendarDate.clone().startOf('month').day() === 1\n ? 'rdtOldNone' : '';\n\n return <div className={cx('CalendarMobile-calendar-wrap', rdtOldNone)} key={'calendar-wrap' + index}>\n {showViewMode === 'months' && <div className={cx('CalendarMobile-calendar-mark')} key={'calendar-mark' + index}>\n {calendarDate.month() + 1}\n </div>}\n <div className={cx('CalendarMobile-calendar-header')}>\n <span className=\"rdtSwitch\">\n {calendarDate.format(__('dateformat.year'))}\n </span>\n {showViewMode === 'months' && <span className=\"rdtSwitch\">\n {calendarDate.format(__('MMM'))}\n </span>}\n </div>\n <Calendar\n className={cx('CalendarMobile-calendar', rdtOldNone)}\n viewDate={calendarDate}\n value={calendarDate}\n onChange={this.handleMobileChange}\n requiredConfirm={false}\n dateFormat={dateFormat}\n inputFormat={inputFormat}\n timeFormat=''\n isValidDate={this.checkIsValidDate}\n viewMode={viewMode}\n input={false}\n onClose={close}\n renderDay={this.renderMobileDay}\n renderMonth={this.renderMonth}\n renderQuarter={this.renderQuarter}\n locale={locale}\n hideHeader={true}\n updateOn={viewMode}\n key={'calendar' + index}\n />\n </div>\n })}\n </div>\n );\n }\n\n @autobind\n renderMobileTimePicker() {\n const {\n classnames: cx,\n timeFormat,\n locale,\n close,\n timeConstraints,\n defaultDate,\n isDatePicker\n } = this.props;\n const __ = this.props.translate;\n\n const {startDate, endDate, dateTime} = this.state;\n\n return (\n <div className={cx('CalendarMobile-time')}>\n <div className={cx('CalendarMobile-time-title')}>\n {isDatePicker ? __('Date.titleTime') : startDate && endDate ? __('Calendar.endPick') : __('Calendar.startPick')}\n </div>\n <Calendar\n className={cx('CalendarMobile-time-calendar')}\n value={defaultDate}\n onChange={this.handleTimeChange}\n requiredConfirm={false}\n timeFormat={timeFormat}\n viewMode=\"time\"\n input={false}\n onClose={close}\n locale={locale}\n useMobileUI={true}\n showToolbar={false}\n viewDate={moment().set({hour: dateTime[0], minute: dateTime[1], second: dateTime[2] || 0})}\n timeConstraints={timeConstraints}\n isValidDate={this.checkIsValidDate}\n />\n </div>\n );\n }\n\n\n render() {\n const {\n className,\n classnames: cx,\n embed,\n close,\n confirm,\n footerExtra,\n timeFormat,\n showViewMode,\n isDatePicker\n } = this.props;\n const __ = this.props.translate;\n\n const {startDate, endDate, currentDate, showToast, isScrollToBottom, minDate, maxDate} = this.state;\n let dateNow = currentDate\n ? currentDate.format(__(`Calendar.${showViewMode === 'months' ? 'yearmonth' : 'year'}`))\n : moment().format(__(`Calendar.${showViewMode === 'months' ? 'yearmonth' : 'year'}`));\n\n const header = (\n <div className={cx('CalendarMobile-header')} ref={this.mobileHeader}>\n <div className={cx('CalendarMobile-subtitle')}>\n <span className=\"subtitle-text\">\n {currentDate && currentDate.isSameOrBefore(minDate, showViewMode)\n ? null\n : <a className=\"rdtPrev\" onClick={this.scrollPreYear}>‹</a>}\n {dateNow}\n {currentDate && currentDate.isSameOrAfter(maxDate, showViewMode) || isScrollToBottom\n ? null\n : <a className=\"rdtNext\" onClick={this.scrollAfterYear}>›</a>}\n </span>\n </div>\n {showViewMode === 'months' ? <div className={cx('CalendarMobile-weekdays')}>\n {this.getDaysOfWeek().map((day: string, index: number) => (\n <span key={day + index} className=\"weekday\">\n {day}\n </span>\n ))}\n </div> : null}\n </div>\n );\n\n const footer = (\n <div className={cx('CalendarMobile-footer')}>\n {timeFormat && startDate && this.renderMobileTimePicker()}\n <div className={cx('CalendarMobile-footer-toolbar')}>\n <div className={cx('CalendarMobile-footer-ranges')}>\n {footerExtra}\n </div>\n {confirm && !embed && <a\n className={cx('Button', 'Button--primary', 'date-range-confirm', {\n 'is-disabled': !startDate || !(endDate || isDatePicker)\n })}\n onClick={() => {\n confirm(startDate, endDate);\n close && close();\n }}\n >\n {__('confirm')}\n </a>}\n </div>\n </div>\n );\n\n return (\n <div className={cx('CalendarMobile',\n embed ? 'CalendarMobile-embed' : '',\n className)}>\n <div className={cx('CalendarMobile-wrap')}>\n {header}\n {this.renderMobileCalendarBody()}\n {footer}\n </div>\n {showToast? <div className={cx('CalendarMobile-toast')}>{__('Calendar.toast')}</div> : null}\n </div>\n );\n }\n};\n\nexport default themeable(localeable(CalendarMobile));"
|
12
|
+
]
|
13
|
+
}
|