amis 1.5.7 → 1.5.8-beta.2
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/lib/Schema.d.ts +3 -2
- package/lib/Schema.js.map +1 -1
- 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/CalendarMobile.d.ts +547 -0
- package/lib/components/CalendarMobile.js +432 -0
- package/lib/components/CalendarMobile.js.map +13 -0
- package/lib/components/Card.d.ts +20 -20
- 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/ColorPicker.d.ts +84 -84
- package/lib/components/ColorPicker.js.map +2 -2
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DatePicker.js +10 -4
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +85 -84
- package/lib/components/DateRangePicker.js +21 -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/MonthRangePicker.d.ts +85 -84
- package/lib/components/MonthRangePicker.js +19 -6
- 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.js +9 -4
- package/lib/components/Picker.js.map +2 -2
- package/lib/components/PickerColumn.js +0 -1
- 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/PopUp.d.ts +1 -0
- package/lib/components/PopUp.js +5 -5
- package/lib/components/PopUp.js.map +2 -2
- package/lib/components/ResultBox.js +2 -1
- 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 +237 -237
- package/lib/components/Select.js +1 -1
- package/lib/components/Select.js.map +1 -1
- 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 +516 -0
- package/lib/components/TimelineItem.js +41 -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 +84 -84
- package/lib/components/TransferDropDown.js +1 -5
- 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/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 +5 -0
- package/lib/components/calendar/Calendar.js +15 -2
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/calendar/DaysView.d.ts +1 -0
- package/lib/components/calendar/DaysView.js +25 -13
- package/lib/components/calendar/DaysView.js.map +2 -2
- package/lib/components/calendar/MonthsView.d.ts +28 -0
- package/lib/components/calendar/MonthsView.js +79 -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 +5 -0
- package/lib/components/calendar/TimeView.js +8 -5
- package/lib/components/calendar/TimeView.js.map +2 -2
- package/lib/components/calendar/YearsView.js +6 -4
- 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/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/factory.js +5 -0
- package/lib/factory.js.map +2 -2
- package/lib/icons/tree-down.js +7 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +13 -2
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +13 -2
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +12 -1
- package/lib/locale/zh-CN.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.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/DiffEditor.js +2 -1
- package/lib/renderers/Form/DiffEditor.js.map +2 -2
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputColor.d.ts +84 -84
- package/lib/renderers/Form/InputColor.js +1 -1
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +6 -4
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +1 -1
- 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/InputYearRange.js +1 -1
- package/lib/renderers/Form/InputYearRange.js.map +2 -2
- package/lib/renderers/Form/Item.js +11 -4
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/NestedSelect.js +1 -1
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/Select.js +1 -1
- 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.map +2 -2
- package/lib/renderers/IFrame.js +0 -2
- package/lib/renderers/IFrame.js.map +2 -2
- package/lib/renderers/Remark.d.ts +4 -0
- package/lib/renderers/Remark.js +38 -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/store/combo.js.map +2 -2
- package/lib/themes/ang-ie11.css +659 -25
- package/lib/themes/ang.css +659 -25
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +694 -25
- package/lib/themes/antd.css +694 -25
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +696 -25
- package/lib/themes/cxd.css +696 -25
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +660 -25
- package/lib/themes/dark.css +660 -25
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +696 -25
- 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/helper.d.ts +1 -1
- package/lib/utils/helper.js +1 -1
- package/lib/utils/helper.js.map +2 -2
- package/package.json +13 -6
- package/schema.json +1042 -541
- package/scss/_properties.scss +8 -0
- package/scss/components/_avatar.scss +27 -9
- package/scss/components/_calendar.scss +280 -0
- package/scss/components/_card.scss +1 -1
- package/scss/components/_collapse-group.scss +1 -3
- package/scss/components/_formula.scss +30 -6
- package/scss/components/_modal.scss +18 -0
- package/scss/components/_panel.scss +45 -0
- package/scss/components/_popup.scss +10 -6
- package/scss/components/_timeline.scss +198 -0
- package/scss/components/form/_form.scss +168 -0
- package/scss/components/form/_result-list.scss +2 -0
- package/scss/components/form/_selection.scss +5 -4
- package/scss/themes/_antd-variables.scss +42 -0
- package/scss/themes/_common.scss +1 -0
- package/scss/themes/_cxd-variables.scss +47 -0
- package/scss/themes/_dark-variables.scss +1 -0
- package/sdk/ang-ie11.css +782 -23
- package/sdk/ang.css +791 -26
- package/sdk/antd-ie11.css +782 -23
- package/sdk/antd.css +826 -26
- package/sdk/charts.js +17 -17
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +3 -3
- package/sdk/cxd-ie11.css +782 -23
- package/sdk/cxd.css +828 -26
- package/sdk/dark-ie11.css +783 -24
- package/sdk/dark.css +792 -26
- package/sdk/exceljs.js +1 -1
- package/sdk/locale/de-DE.js +13 -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 +782 -23
- package/sdk/sdk.css +828 -26
- package/sdk/sdk.js +1225 -1285
- package/sdk/thirds/hls.js/hls.js +18 -18
- package/sdk/thirds/mpegts.js/mpegts.js +2 -2
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +3 -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 +563 -0
- package/src/components/ChainedSelection.tsx +16 -3
- package/src/components/ColorPicker.tsx +37 -39
- package/src/components/DatePicker.tsx +41 -35
- package/src/components/DateRangePicker.tsx +61 -16
- package/src/components/GroupedSelection.tsx +14 -2
- package/src/components/MonthRangePicker.tsx +57 -17
- package/src/components/Overlay.tsx +1 -1
- package/src/components/Picker.tsx +41 -36
- package/src/components/PickerColumn.tsx +22 -25
- package/src/components/PickerContainer.tsx +13 -1
- package/src/components/PopUp.tsx +34 -49
- package/src/components/ResultBox.tsx +4 -1
- package/src/components/ResultList.tsx +36 -6
- package/src/components/Select.tsx +1 -1
- 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 +31 -0
- package/src/components/TimelineItem.tsx +107 -0
- package/src/components/Transfer.tsx +11 -8
- package/src/components/TransferDropDown.tsx +1 -7
- package/src/components/TransferPicker.tsx +25 -4
- package/src/components/TreeSelection.tsx +7 -1
- package/src/components/calendar/Calendar.tsx +26 -6
- package/src/components/calendar/DaysView.tsx +79 -31
- package/src/components/calendar/MonthsView.tsx +116 -2
- package/src/components/calendar/QuartersView.tsx +3 -2
- package/src/components/calendar/TimeView.tsx +26 -16
- package/src/components/calendar/YearsView.tsx +14 -16
- 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/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/factory.tsx +6 -0
- package/src/icons/tree-down.svg +5 -0
- package/src/index.tsx +1 -0
- package/src/locale/de-DE.ts +13 -2
- package/src/locale/en-US.ts +13 -2
- package/src/locale/zh-CN.ts +12 -1
- package/src/renderers/Avatar.tsx +83 -74
- package/src/renderers/Card.tsx +10 -6
- package/src/renderers/Custom.tsx +6 -3
- 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/DiffEditor.tsx +2 -3
- package/src/renderers/Form/InputColor.tsx +1 -1
- package/src/renderers/Form/InputDate.tsx +38 -19
- package/src/renderers/Form/InputDateRange.tsx +0 -1
- 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/InputYearRange.tsx +0 -1
- package/src/renderers/Form/Item.tsx +15 -4
- package/src/renderers/Form/NestedSelect.tsx +1 -1
- package/src/renderers/Form/Select.tsx +0 -1
- 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 +12 -14
- package/src/renderers/IFrame.tsx +0 -2
- package/src/renderers/Remark.tsx +67 -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/store/combo.ts +1 -3
- package/src/utils/RootClose.ts +5 -1
- package/src/utils/helper.ts +1 -1
@@ -15,7 +15,7 @@ import {ClassNamesFn, themeable, ThemeProps} from '../theme';
|
|
15
15
|
import {PlainObject} from '../types';
|
16
16
|
import Calendar from './calendar/Calendar';
|
17
17
|
import 'react-datetime/css/react-datetime.css';
|
18
|
-
import {
|
18
|
+
import {localeable, LocaleProps, TranslateFn} from '../locale';
|
19
19
|
import {isMobile, ucFirst} from '../utils/helper';
|
20
20
|
|
21
21
|
const availableShortcuts: {[propName: string]: any} = {
|
@@ -280,10 +280,10 @@ export interface DateProps extends LocaleProps, ThemeProps {
|
|
280
280
|
// 是否为内嵌模式,如果开启就不是 picker 了,直接页面点选。
|
281
281
|
embed?: boolean;
|
282
282
|
schedules?: Array<{
|
283
|
-
startTime: Date
|
284
|
-
endTime: Date
|
285
|
-
content: any
|
286
|
-
className?: string
|
283
|
+
startTime: Date;
|
284
|
+
endTime: Date;
|
285
|
+
content: any;
|
286
|
+
className?: string;
|
287
287
|
}>;
|
288
288
|
scheduleClassNames?: Array<string>;
|
289
289
|
largeMode?: boolean;
|
@@ -315,7 +315,13 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
|
|
315
315
|
shortcuts: '',
|
316
316
|
closeOnSelect: true,
|
317
317
|
overlayPlacement: 'auto',
|
318
|
-
scheduleClassNames: [
|
318
|
+
scheduleClassNames: [
|
319
|
+
'bg-warning',
|
320
|
+
'bg-danger',
|
321
|
+
'bg-success',
|
322
|
+
'bg-info',
|
323
|
+
'bg-secondary'
|
324
|
+
]
|
319
325
|
};
|
320
326
|
state: DatePickerState = {
|
321
327
|
isOpened: false,
|
@@ -561,6 +567,7 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
|
|
561
567
|
embed,
|
562
568
|
minDate,
|
563
569
|
useMobileUI,
|
570
|
+
maxDate,
|
564
571
|
schedules,
|
565
572
|
largeMode,
|
566
573
|
scheduleClassNames,
|
@@ -571,7 +578,6 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
|
|
571
578
|
const isOpened = this.state.isOpened;
|
572
579
|
let date: moment.Moment | undefined = this.state.value;
|
573
580
|
|
574
|
-
|
575
581
|
if (embed) {
|
576
582
|
let schedulesData: DateProps['schedules'] = undefined;
|
577
583
|
if (schedules && Array.isArray(schedules)) {
|
@@ -617,6 +623,7 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
|
|
617
623
|
onClose={this.close}
|
618
624
|
locale={locale}
|
619
625
|
minDate={minDate}
|
626
|
+
maxDate={maxDate}
|
620
627
|
// utc={utc}
|
621
628
|
schedules={schedulesData}
|
622
629
|
largeMode={largeMode}
|
@@ -695,39 +702,38 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
|
|
695
702
|
onClose={this.close}
|
696
703
|
locale={locale}
|
697
704
|
minDate={minDate}
|
705
|
+
maxDate={maxDate}
|
698
706
|
// utc={utc}
|
699
707
|
/>
|
700
708
|
</PopOver>
|
701
709
|
</Overlay>
|
702
710
|
) : null}
|
703
|
-
{
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
) : null
|
730
|
-
}
|
711
|
+
{useMobileUI && isMobile() ? (
|
712
|
+
<PopUp
|
713
|
+
className={cx(`${ns}DatePicker-popup`)}
|
714
|
+
isShow={isOpened}
|
715
|
+
onHide={this.handleClick}
|
716
|
+
>
|
717
|
+
{this.renderShortCuts(shortcuts)}
|
718
|
+
|
719
|
+
<Calendar
|
720
|
+
value={date}
|
721
|
+
onChange={this.handleChange}
|
722
|
+
requiredConfirm={!!(dateFormat && timeFormat)}
|
723
|
+
dateFormat={dateFormat}
|
724
|
+
inputFormat={inputFormat}
|
725
|
+
timeFormat={timeFormat}
|
726
|
+
isValidDate={this.checkIsValidDate}
|
727
|
+
viewMode={viewMode}
|
728
|
+
timeConstraints={timeConstraints}
|
729
|
+
input={false}
|
730
|
+
onClose={this.close}
|
731
|
+
locale={locale}
|
732
|
+
minDate={minDate}
|
733
|
+
// utc={utc}
|
734
|
+
/>
|
735
|
+
</PopUp>
|
736
|
+
) : null}
|
731
737
|
</div>
|
732
738
|
);
|
733
739
|
}
|
@@ -18,6 +18,7 @@ import {ClassNamesFn, themeable, ThemeProps} from '../theme';
|
|
18
18
|
import {PlainObject} from '../types';
|
19
19
|
import {isMobile, noop, ucFirst} from '../utils/helper';
|
20
20
|
import {LocaleProps, localeable} from '../locale';
|
21
|
+
import CalendarMobile from './CalendarMobile';
|
21
22
|
|
22
23
|
export interface DateRangePickerProps extends ThemeProps, LocaleProps {
|
23
24
|
className?: string;
|
@@ -287,6 +288,7 @@ export class DateRangePicker extends React.Component<
|
|
287
288
|
this.handlePopOverClick = this.handlePopOverClick.bind(this);
|
288
289
|
this.renderDay = this.renderDay.bind(this);
|
289
290
|
this.renderQuarter = this.renderQuarter.bind(this);
|
291
|
+
this.handleMobileChange = this.handleMobileChange.bind(this);
|
290
292
|
const {format, joinValues, delimiter, value} = this.props;
|
291
293
|
|
292
294
|
this.state = {
|
@@ -499,6 +501,16 @@ export class DateRangePicker extends React.Component<
|
|
499
501
|
);
|
500
502
|
}
|
501
503
|
|
504
|
+
handleMobileChange(data: any, callback?: () => void) {
|
505
|
+
this.setState(
|
506
|
+
{
|
507
|
+
startDate: data.startDate,
|
508
|
+
endDate: data.endDate
|
509
|
+
},
|
510
|
+
callback
|
511
|
+
);
|
512
|
+
}
|
513
|
+
|
502
514
|
selectRannge(range: PlainObject) {
|
503
515
|
const {closeOnSelect, minDate, maxDate} = this.props;
|
504
516
|
const now = moment();
|
@@ -763,10 +775,19 @@ export class DateRangePicker extends React.Component<
|
|
763
775
|
embed,
|
764
776
|
overlayPlacement,
|
765
777
|
borderMode,
|
766
|
-
useMobileUI
|
778
|
+
useMobileUI,
|
779
|
+
timeFormat,
|
780
|
+
minDate,
|
781
|
+
maxDate,
|
782
|
+
minDuration,
|
783
|
+
maxDuration,
|
784
|
+
dateFormat,
|
785
|
+
viewMode = 'days',
|
786
|
+
ranges
|
767
787
|
} = this.props;
|
788
|
+
const useCalendarMobile = useMobileUI && isMobile() && ['days', 'months', 'quarters'].indexOf(viewMode) > -1;
|
768
789
|
|
769
|
-
const {isOpened, isFocused} = this.state;
|
790
|
+
const {isOpened, isFocused, startDate, endDate} = this.state;
|
770
791
|
|
771
792
|
const selectedDate = DateRangePicker.unFormatValue(
|
772
793
|
value,
|
@@ -785,6 +806,25 @@ export class DateRangePicker extends React.Component<
|
|
785
806
|
endViewValue && arr.push(endViewValue);
|
786
807
|
const __ = this.props.translate;
|
787
808
|
|
809
|
+
const calendarMobile = <CalendarMobile
|
810
|
+
timeFormat={timeFormat}
|
811
|
+
inputFormat={inputFormat}
|
812
|
+
startDate={startDate}
|
813
|
+
endDate={endDate}
|
814
|
+
minDate={minDate}
|
815
|
+
maxDate={maxDate}
|
816
|
+
minDuration={minDuration}
|
817
|
+
maxDuration={maxDuration}
|
818
|
+
dateFormat={dateFormat}
|
819
|
+
embed={embed}
|
820
|
+
viewMode={viewMode}
|
821
|
+
close={this.close}
|
822
|
+
confirm={this.confirm}
|
823
|
+
onChange={this.handleMobileChange}
|
824
|
+
footerExtra={this.renderRanges(ranges)}
|
825
|
+
showViewMode={viewMode === 'quarters' || viewMode === 'months' ? 'years' : 'months'}
|
826
|
+
/>;
|
827
|
+
|
788
828
|
if (embed) {
|
789
829
|
return (
|
790
830
|
<div
|
@@ -796,11 +836,15 @@ export class DateRangePicker extends React.Component<
|
|
796
836
|
className
|
797
837
|
)}
|
798
838
|
>
|
799
|
-
{
|
839
|
+
{useCalendarMobile
|
840
|
+
? calendarMobile
|
841
|
+
: this.renderCalendar()}
|
800
842
|
</div>
|
801
843
|
);
|
802
844
|
}
|
803
845
|
|
846
|
+
const CalendarMobileTitle = <div className={`${ns}CalendarMobile-title`}>{__('Calendar.datepicker')}</div>;
|
847
|
+
|
804
848
|
return (
|
805
849
|
<div
|
806
850
|
tabIndex={0}
|
@@ -839,8 +883,20 @@ export class DateRangePicker extends React.Component<
|
|
839
883
|
<Icon icon="clock" className="icon" />
|
840
884
|
</a>
|
841
885
|
|
842
|
-
{
|
843
|
-
|
886
|
+
{isOpened ? (
|
887
|
+
useMobileUI && isMobile() ? (
|
888
|
+
<PopUp
|
889
|
+
isShow={isOpened}
|
890
|
+
className={cx(`${ns}CalendarMobile-pop`)}
|
891
|
+
onHide={this.close}
|
892
|
+
header={CalendarMobileTitle}
|
893
|
+
>
|
894
|
+
{useCalendarMobile
|
895
|
+
? calendarMobile
|
896
|
+
: this.renderCalendar()}
|
897
|
+
</PopUp>
|
898
|
+
)
|
899
|
+
: <Overlay
|
844
900
|
target={() => this.dom.current}
|
845
901
|
onHide={this.close}
|
846
902
|
container={popOverContainer || (() => findDOMNode(this))}
|
@@ -859,17 +915,6 @@ export class DateRangePicker extends React.Component<
|
|
859
915
|
</PopOver>
|
860
916
|
</Overlay>
|
861
917
|
) : null}
|
862
|
-
{
|
863
|
-
useMobileUI && isMobile() && (
|
864
|
-
<PopUp
|
865
|
-
isShow={isOpened}
|
866
|
-
className={cx(`${ns}DateRangePicker-popup`)}
|
867
|
-
onHide={this.handleClick}
|
868
|
-
>
|
869
|
-
{this.renderCalendar()}
|
870
|
-
</PopUp>
|
871
|
-
)
|
872
|
-
}
|
873
918
|
</div>
|
874
919
|
);
|
875
920
|
}
|
@@ -27,7 +27,13 @@ export class GroupedSelection extends BaseSelection {
|
|
27
27
|
className={cx('GroupedSelection-group', option.className)}
|
28
28
|
>
|
29
29
|
<div className={cx('GroupedSelection-itemLabel')}>
|
30
|
-
{itemRender(option
|
30
|
+
{itemRender(option, {
|
31
|
+
index: index,
|
32
|
+
multiple: multiple,
|
33
|
+
checked: false,
|
34
|
+
onChange: () => undefined,
|
35
|
+
disabled: disabled || option.disabled
|
36
|
+
})}
|
31
37
|
</div>
|
32
38
|
|
33
39
|
<div className={cx('GroupedSelection-items', option.className)}>
|
@@ -52,7 +58,13 @@ export class GroupedSelection extends BaseSelection {
|
|
52
58
|
onClick={() => this.toggleOption(option)}
|
53
59
|
>
|
54
60
|
<div className={cx('GroupedSelection-itemLabel')}>
|
55
|
-
{itemRender(option
|
61
|
+
{itemRender(option, {
|
62
|
+
index: index,
|
63
|
+
multiple: multiple,
|
64
|
+
checked: !!~valueArray.indexOf(option),
|
65
|
+
onChange: () => this.toggleOption(option),
|
66
|
+
disabled: disabled || option.disabled
|
67
|
+
})}
|
56
68
|
</div>
|
57
69
|
|
58
70
|
{multiple ? (
|
@@ -20,7 +20,8 @@ import {LocaleProps, localeable} from '../locale';
|
|
20
20
|
import {DateRangePicker} from './DateRangePicker';
|
21
21
|
import capitalize from 'lodash/capitalize';
|
22
22
|
import {ShortCuts, ShortCutDateRange} from './DatePicker';
|
23
|
-
import {
|
23
|
+
import {availableRanges} from './DateRangePicker';
|
24
|
+
import CalendarMobile from './CalendarMobile';
|
24
25
|
|
25
26
|
export interface MonthRangePickerProps extends ThemeProps, LocaleProps {
|
26
27
|
className?: string;
|
@@ -99,6 +100,7 @@ export class MonthRangePicker extends React.Component<
|
|
99
100
|
this.handleKeyPress = this.handleKeyPress.bind(this);
|
100
101
|
this.handlePopOverClick = this.handlePopOverClick.bind(this);
|
101
102
|
this.renderMonth = this.renderMonth.bind(this);
|
103
|
+
this.handleMobileChange = this.handleMobileChange.bind(this);
|
102
104
|
const {format, joinValues, delimiter, value} = this.props;
|
103
105
|
|
104
106
|
this.state = {
|
@@ -280,6 +282,16 @@ export class MonthRangePicker extends React.Component<
|
|
280
282
|
);
|
281
283
|
}
|
282
284
|
|
285
|
+
handleMobileChange(data: any, callback?: () => void) {
|
286
|
+
this.setState(
|
287
|
+
{
|
288
|
+
startDate: data.startDate,
|
289
|
+
endDate: data.endDate
|
290
|
+
},
|
291
|
+
callback
|
292
|
+
);
|
293
|
+
}
|
294
|
+
|
283
295
|
selectRannge(range: PlainObject) {
|
284
296
|
const {closeOnSelect, minDate, maxDate} = this.props;
|
285
297
|
this.setState(
|
@@ -531,10 +543,17 @@ export class MonthRangePicker extends React.Component<
|
|
531
543
|
disabled,
|
532
544
|
embed,
|
533
545
|
overlayPlacement,
|
534
|
-
useMobileUI
|
546
|
+
useMobileUI,
|
547
|
+
timeFormat,
|
548
|
+
minDate,
|
549
|
+
maxDate,
|
550
|
+
minDuration,
|
551
|
+
maxDuration,
|
552
|
+
ranges
|
535
553
|
} = this.props;
|
554
|
+
const mobileUI = isMobile() && useMobileUI;
|
536
555
|
|
537
|
-
const {isOpened, isFocused} = this.state;
|
556
|
+
const {isOpened, isFocused, startDate, endDate} = this.state;
|
538
557
|
|
539
558
|
const selectedDate = DateRangePicker.unFormatValue(
|
540
559
|
value,
|
@@ -553,6 +572,24 @@ export class MonthRangePicker extends React.Component<
|
|
553
572
|
endViewValue && arr.push(endViewValue);
|
554
573
|
const __ = this.props.translate;
|
555
574
|
|
575
|
+
const calendarMobile = <CalendarMobile
|
576
|
+
timeFormat={timeFormat}
|
577
|
+
inputFormat={inputFormat}
|
578
|
+
startDate={startDate}
|
579
|
+
endDate={endDate}
|
580
|
+
minDate={minDate}
|
581
|
+
maxDate={maxDate}
|
582
|
+
minDuration={minDuration}
|
583
|
+
maxDuration={maxDuration}
|
584
|
+
embed={embed}
|
585
|
+
viewMode="months"
|
586
|
+
close={this.close}
|
587
|
+
confirm={this.confirm}
|
588
|
+
onChange={this.handleMobileChange}
|
589
|
+
footerExtra={this.renderRanges(ranges)}
|
590
|
+
showViewMode="years"
|
591
|
+
/>;
|
592
|
+
|
556
593
|
if (embed) {
|
557
594
|
return (
|
558
595
|
<div
|
@@ -564,11 +601,15 @@ export class MonthRangePicker extends React.Component<
|
|
564
601
|
className
|
565
602
|
)}
|
566
603
|
>
|
567
|
-
{
|
604
|
+
{mobileUI
|
605
|
+
? calendarMobile
|
606
|
+
: this.renderCalendar()}
|
568
607
|
</div>
|
569
608
|
);
|
570
609
|
}
|
571
610
|
|
611
|
+
const CalendarMobileTitle = <div className={`${ns}CalendarMobile-title`}>{__('Calendar.datepicker')}</div>;
|
612
|
+
|
572
613
|
return (
|
573
614
|
<div
|
574
615
|
tabIndex={0}
|
@@ -606,8 +647,18 @@ export class MonthRangePicker extends React.Component<
|
|
606
647
|
<Icon icon="clock" className="icon" />
|
607
648
|
</a>
|
608
649
|
|
609
|
-
{
|
610
|
-
|
650
|
+
{isOpened ? (
|
651
|
+
mobileUI ? (
|
652
|
+
<PopUp
|
653
|
+
isShow={isOpened}
|
654
|
+
className={cx(`${ns}CalendarMobile-pop`)}
|
655
|
+
onHide={this.close}
|
656
|
+
header={CalendarMobileTitle}
|
657
|
+
>
|
658
|
+
{calendarMobile}
|
659
|
+
</PopUp>
|
660
|
+
)
|
661
|
+
: <Overlay
|
611
662
|
target={() => this.dom.current}
|
612
663
|
onHide={this.close}
|
613
664
|
container={popOverContainer || (() => findDOMNode(this))}
|
@@ -626,17 +677,6 @@ export class MonthRangePicker extends React.Component<
|
|
626
677
|
</PopOver>
|
627
678
|
</Overlay>
|
628
679
|
) : null}
|
629
|
-
{
|
630
|
-
useMobileUI && isMobile() && (
|
631
|
-
<PopUp
|
632
|
-
className={cx(`${ns}DateRangePicker-popup`)}
|
633
|
-
isShow={isOpened}
|
634
|
-
onHide={this.handleClick}
|
635
|
-
>
|
636
|
-
{this.renderCalendar()}
|
637
|
-
</PopUp>
|
638
|
-
)
|
639
|
-
}
|
640
680
|
</div>
|
641
681
|
);
|
642
682
|
}
|
@@ -165,7 +165,7 @@ class Position extends React.Component<any, any> {
|
|
165
165
|
interface OverlayProps {
|
166
166
|
placement?: string;
|
167
167
|
show?: boolean;
|
168
|
-
transition?: React.
|
168
|
+
transition?: React.ElementType;
|
169
169
|
containerPadding?: number;
|
170
170
|
shouldUpdatePosition?: boolean;
|
171
171
|
rootClose?: boolean;
|
@@ -2,11 +2,7 @@
|
|
2
2
|
* @file Picker
|
3
3
|
* @description 移动端列滚动选择器
|
4
4
|
*/
|
5
|
-
import React, {
|
6
|
-
memo,
|
7
|
-
ReactNode,
|
8
|
-
useState
|
9
|
-
} from 'react';
|
5
|
+
import React, {memo, ReactNode, useState, useEffect} from 'react';
|
10
6
|
import {uncontrollable} from 'uncontrollable';
|
11
7
|
|
12
8
|
import {themeable, ThemeProps} from '../theme';
|
@@ -18,7 +14,7 @@ import {PickerColumnItem, default as Column} from './PickerColumn';
|
|
18
14
|
export type PickerValue = string | number;
|
19
15
|
|
20
16
|
export interface PickerProps extends ThemeProps, LocaleProps {
|
21
|
-
title?: String | ReactNode
|
17
|
+
title?: String | ReactNode;
|
22
18
|
labelField?: string;
|
23
19
|
className?: string;
|
24
20
|
showToolbar?: boolean;
|
@@ -28,17 +24,9 @@ export interface PickerProps extends ThemeProps, LocaleProps {
|
|
28
24
|
visibleItemCount?: number;
|
29
25
|
itemHeight?: number;
|
30
26
|
columns: PickerColumnItem[] | PickerColumnItem;
|
31
|
-
onChange?: (
|
32
|
-
|
33
|
-
|
34
|
-
confirm?: boolean
|
35
|
-
) => void;
|
36
|
-
onClose?: (
|
37
|
-
value?: PickerValue[]
|
38
|
-
) => void;
|
39
|
-
onConfirm?: (
|
40
|
-
value?: PickerValue[]
|
41
|
-
) => void;
|
27
|
+
onChange?: (value?: PickerValue[], index?: number, confirm?: boolean) => void;
|
28
|
+
onClose?: (value?: PickerValue[]) => void;
|
29
|
+
onConfirm?: (value?: PickerValue[]) => void;
|
42
30
|
}
|
43
31
|
|
44
32
|
function fixToArray(data: any) {
|
@@ -48,7 +36,7 @@ function fixToArray(data: any) {
|
|
48
36
|
return data;
|
49
37
|
}
|
50
38
|
|
51
|
-
const Picker = memo<PickerProps>(
|
39
|
+
const Picker = memo<PickerProps>(props => {
|
52
40
|
const {
|
53
41
|
labelField,
|
54
42
|
visibleItemCount = 5,
|
@@ -57,7 +45,7 @@ const Picker = memo<PickerProps>((props) => {
|
|
57
45
|
columns = [],
|
58
46
|
itemHeight = 30,
|
59
47
|
showToolbar = true,
|
60
|
-
className='',
|
48
|
+
className = '',
|
61
49
|
classnames: cx,
|
62
50
|
classPrefix: ns,
|
63
51
|
translate: __
|
@@ -65,8 +53,11 @@ const Picker = memo<PickerProps>((props) => {
|
|
65
53
|
|
66
54
|
const _columns = fixToArray(columns);
|
67
55
|
const [innerValue, setInnerValue] = useState<PickerValue[]>(
|
68
|
-
fixToArray(props.value === undefined ? props.defaultValue || [] : value
|
56
|
+
fixToArray(props.value === undefined ? props.defaultValue || [] : value)
|
69
57
|
);
|
58
|
+
useEffect(() => {
|
59
|
+
setInnerValue(value);
|
60
|
+
}, [value]);
|
70
61
|
|
71
62
|
const close = () => {
|
72
63
|
if (props.onClose) {
|
@@ -80,7 +71,11 @@ const Picker = memo<PickerProps>((props) => {
|
|
80
71
|
}
|
81
72
|
};
|
82
73
|
|
83
|
-
const onChange = (
|
74
|
+
const onChange = (
|
75
|
+
itemValue: PickerValue,
|
76
|
+
columnIndex: number,
|
77
|
+
confirm?: boolean
|
78
|
+
) => {
|
84
79
|
const nextInnerValue = [...innerValue];
|
85
80
|
nextInnerValue[columnIndex] = itemValue;
|
86
81
|
setInnerValue(nextInnerValue);
|
@@ -103,7 +98,9 @@ const Picker = memo<PickerProps>((props) => {
|
|
103
98
|
onChange={(val: string | number, i, confirm) => {
|
104
99
|
onChange(val, index, confirm);
|
105
100
|
}}
|
106
|
-
|
101
|
+
key={`column${index}`}
|
102
|
+
/>
|
103
|
+
);
|
107
104
|
};
|
108
105
|
|
109
106
|
const wrapHeight = itemHeight * +visibleItemCount;
|
@@ -114,21 +111,29 @@ const Picker = memo<PickerProps>((props) => {
|
|
114
111
|
};
|
115
112
|
|
116
113
|
return (
|
117
|
-
<div
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
114
|
+
<div className={cx(className, 'PickerColumns', 'PickerColumns-popOver')}>
|
115
|
+
{showToolbar && (
|
116
|
+
<div className={cx('PickerColumns-toolbar')}>
|
117
|
+
<Button
|
118
|
+
className="PickerColumns-cancel"
|
119
|
+
level="default"
|
120
|
+
onClick={close}
|
121
|
+
>
|
122
|
+
{__('cancel')}
|
123
|
+
</Button>
|
124
|
+
<Button
|
125
|
+
className="PickerColumns-confirm"
|
126
|
+
level="primary"
|
127
|
+
onClick={confirm}
|
128
|
+
>
|
129
|
+
{__('confirm')}
|
130
|
+
</Button>
|
131
|
+
</div>
|
132
|
+
)}
|
128
133
|
<div className={cx('PickerColumns-columns')} style={columnsStyle}>
|
129
|
-
|
130
|
-
|
131
|
-
|
134
|
+
{_columns.map((column: PickerColumnItem, index: number) =>
|
135
|
+
renderColumnItem(column, index)
|
136
|
+
)}
|
132
137
|
<div className={cx('PickerColumns-mask')} style={maskStyle}></div>
|
133
138
|
<div className={cx('PickerColumns-frame')} style={frameStyle}></div>
|
134
139
|
</div>
|
@@ -33,7 +33,7 @@ export interface PickerColumnItem {
|
|
33
33
|
index?: number,
|
34
34
|
confirm?: boolean
|
35
35
|
) => void;
|
36
|
-
}
|
36
|
+
}
|
37
37
|
|
38
38
|
export interface PickerColumnProps extends PickerColumnItem, ThemeProps {}
|
39
39
|
|
@@ -64,7 +64,7 @@ function getElementTranslateY(element: HTMLElement | null) {
|
|
64
64
|
function isOptionDisabled(option: PickerOption) {
|
65
65
|
return isObject(option) && option.disabled;
|
66
66
|
}
|
67
|
-
|
67
|
+
|
68
68
|
const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
|
69
69
|
const {
|
70
70
|
visibleItemCount = 5,
|
@@ -132,11 +132,9 @@ const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
|
|
132
132
|
updateState({index});
|
133
133
|
|
134
134
|
if (emitChange && props.onChange) {
|
135
|
-
requestAnimationFrame(
|
136
|
-
(
|
137
|
-
|
138
|
-
}
|
139
|
-
);
|
135
|
+
requestAnimationFrame(() => {
|
136
|
+
props.onChange?.(options[index], index, confirm);
|
137
|
+
});
|
140
138
|
// setTimeout(() => {
|
141
139
|
// props.onChange?.(options[index], index, confirm);
|
142
140
|
// }, 0);
|
@@ -301,7 +299,7 @@ const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
|
|
301
299
|
onClickItem(index);
|
302
300
|
}
|
303
301
|
};
|
304
|
-
|
302
|
+
|
305
303
|
const childData = {
|
306
304
|
className: 'text-ellipsis',
|
307
305
|
children: text
|
@@ -357,23 +355,23 @@ const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
|
|
357
355
|
transitionProperty: state.duration ? 'all' : 'none'
|
358
356
|
};
|
359
357
|
return (
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
358
|
+
<div
|
359
|
+
ref={root}
|
360
|
+
className={props.classnames('PickerColumns', props.className)}
|
361
|
+
onTouchStart={onTouchStart}
|
362
|
+
onTouchMove={onTouchMove}
|
363
|
+
onTouchEnd={onTouchEnd}
|
364
|
+
onTouchCancel={onTouchEnd}
|
365
|
+
>
|
366
|
+
<ul
|
367
|
+
ref={wrapper}
|
368
|
+
style={wrapperStyle}
|
369
|
+
className={props.classnames('PickerColumns-columnWrapper')}
|
370
|
+
onTransitionEnd={stopMomentum}
|
367
371
|
>
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
className={props.classnames('PickerColumns-columnWrapper')}
|
372
|
-
onTransitionEnd={stopMomentum}
|
373
|
-
>
|
374
|
-
{renderOptions()}
|
375
|
-
</ul>
|
376
|
-
</div>
|
372
|
+
{renderOptions()}
|
373
|
+
</ul>
|
374
|
+
</div>
|
377
375
|
);
|
378
376
|
});
|
379
377
|
|
@@ -389,4 +387,3 @@ export default themeable(
|
|
389
387
|
value: 'onChange'
|
390
388
|
})
|
391
389
|
);
|
392
|
-
|