amis 1.9.1-beta.11 → 1.9.1-beta.12
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/RootRenderer.js +14 -0
- package/lib/RootRenderer.js.map +2 -2
- package/lib/SchemaRenderer.js +8 -3
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/components/Alert2.d.ts +10 -10
- package/lib/components/DateRangePicker.js +11 -9
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/SearchBox.d.ts +40 -40
- package/lib/components/Select.d.ts +193 -193
- package/lib/components/Select.js +2 -4
- package/lib/components/Select.js.map +2 -2
- package/lib/components/virtual-list/index.js +1 -1
- package/lib/components/virtual-list/index.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/locale/de-DE.js +1 -0
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +1 -0
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +5 -2
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +6 -0
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/CRUD.js +2 -1
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Card.js +5 -4
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Carousel.d.ts +1 -1
- package/lib/renderers/Carousel.js +5 -1
- package/lib/renderers/Carousel.js.map +2 -2
- package/lib/renderers/Form/InputImage.js +1 -1
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputText.js +1 -1
- package/lib/renderers/Form/InputText.js.map +2 -2
- package/lib/renderers/Form/Options.js +1 -0
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Select.d.ts +12 -0
- package/lib/renderers/Form/Select.js +1 -3
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +72 -19
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Service.js +1 -0
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/Table/TableContent.d.ts +2 -2
- package/lib/renderers/Table/TableContent.js +4 -16
- package/lib/renderers/Table/TableContent.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +2 -5
- package/lib/renderers/Table/index.js +2 -2
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/store/table.js +7 -3
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +0 -1
- package/lib/themes/ang.css +0 -1
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +0 -1
- package/lib/themes/antd.css +0 -1
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +8 -1
- package/lib/themes/cxd.css +8 -1
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +0 -1
- package/lib/themes/dark.css +0 -1
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +8 -1
- package/lib/themes/default.css +8 -1
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/formula.d.ts +16 -0
- package/lib/utils/formula.js +207 -0
- package/lib/utils/formula.js.map +13 -0
- package/lib/utils/grammar.d.ts +4 -0
- package/lib/utils/grammar.js +47 -0
- package/lib/utils/grammar.js.map +13 -0
- package/lib/utils/helper.js +1 -0
- package/lib/utils/helper.js.map +2 -2
- package/lib/utils/tpl.js +3 -0
- package/lib/utils/tpl.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +278 -222
- package/scss/components/_collapse.scss +1 -1
- package/scss/themes/cxd.scss +12 -0
- package/sdk/ang-ie11.css +0 -1
- package/sdk/ang.css +0 -1
- package/sdk/antd-ie11.css +0 -1
- package/sdk/antd.css +0 -1
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +9 -1
- package/sdk/cxd.css +9 -1
- package/sdk/dark-ie11.css +0 -1
- package/sdk/dark.css +0 -1
- package/sdk/exceljs.js +1 -1
- package/sdk/locale/de-DE.js +1 -0
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +16 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +9 -1
- package/sdk/sdk.css +9 -1
- package/sdk/sdk.js +1695 -1665
- 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 +14 -0
- package/src/SchemaRenderer.tsx +4 -2
- package/src/components/DateRangePicker.tsx +73 -60
- package/src/components/Select.tsx +2 -4
- package/src/components/virtual-list/index.tsx +1 -1
- package/src/locale/de-DE.ts +1 -0
- package/src/locale/en-US.ts +1 -0
- package/src/locale/zh-CN.ts +5 -2
- package/src/renderers/Action.tsx +8 -0
- package/src/renderers/CRUD.tsx +2 -1
- package/src/renderers/Card.tsx +10 -5
- package/src/renderers/Carousel.tsx +10 -4
- package/src/renderers/Form/InputImage.tsx +1 -1
- package/src/renderers/Form/InputText.tsx +1 -0
- package/src/renderers/Form/Options.tsx +1 -0
- package/src/renderers/Form/Select.tsx +13 -3
- package/src/renderers/Form/wrapControl.tsx +90 -22
- package/src/renderers/Service.tsx +1 -0
- package/src/renderers/Table/TableContent.tsx +22 -34
- package/src/renderers/Table/index.tsx +4 -8
- package/src/store/table.ts +10 -3
- package/src/types.ts +1 -0
- package/src/utils/formula.ts +240 -0
- package/src/utils/grammar.ts +53 -0
- package/src/utils/helper.ts +2 -1
- package/src/utils/tpl.ts +2 -0
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/DateRangePicker.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file DateRangePicker\n * @description 自定义日期范围时间选择器组件\n * @author fex\n */\n\nimport React from 'react';\nimport moment from 'moment';\nimport {findDOMNode} from 'react-dom';\nimport {Icon} from './icons';\nimport Overlay from './Overlay';\nimport {ShortCuts, ShortCutDateRange} from './DatePicker';\nimport Calendar from './calendar/Calendar';\nimport PopOver from './PopOver';\nimport PopUp from './PopUp';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {PlainObject} from '../types';\nimport {isMobile, noop, ucFirst} from '../utils/helper';\nimport {LocaleProps, localeable} from '../locale';\nimport CalendarMobile from './CalendarMobile';\nimport Input from './Input';\n\nexport interface DateRangePickerProps extends ThemeProps, LocaleProps {\n className?: string;\n popoverClassName?: string;\n startPlaceholder?: string;\n endPlaceholder?: string;\n theme?: any;\n format: string;\n utc?: boolean;\n inputFormat?: string;\n ranges?: string | Array<ShortCuts>;\n clearable?: boolean;\n minDate?: moment.Moment;\n maxDate?: moment.Moment;\n minDuration?: moment.Duration;\n maxDuration?: moment.Duration;\n joinValues: boolean;\n delimiter: string;\n value?: any;\n onChange: (value: any) => void;\n data?: any;\n disabled?: boolean;\n closeOnSelect?: boolean;\n overlayPlacement: string;\n timeFormat?: string;\n resetValue?: any;\n popOverContainer?: any;\n dateFormat?: string;\n embed?: boolean;\n viewMode?: 'days' | 'months' | 'years' | 'time' | 'quarters';\n borderMode?: 'full' | 'half' | 'none';\n useMobileUI?: boolean;\n onFocus?: Function;\n onBlur?: Function;\n type?: string;\n onRef?: any;\n}\n\nexport interface DateRangePickerState {\n isOpened: boolean;\n isFocused: boolean;\n startDate?: moment.Moment;\n endDate?: moment.Moment;\n editState?: 'start' | 'end'; // 编辑开始时间还是结束时间\n startInputValue?: string;\n endInputValue?: string;\n}\n\nexport const availableRanges: {[propName: string]: any} = {\n 'today': {\n label: 'Date.today',\n startDate: (now: moment.Moment) => {\n return now.startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now;\n }\n },\n\n 'yesterday': {\n label: 'Date.yesterday',\n startDate: (now: moment.Moment) => {\n return now.add(-1, 'days').startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(-1, 'days').endOf('day');\n }\n },\n\n 'tomorrow': {\n label: 'Date.tomorrow',\n startDate: (now: moment.Moment) => {\n return now.add(1, 'days').startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(1, 'days').endOf('day');\n }\n },\n\n // 兼容一下错误的用法\n '1daysago': {\n label: 'DateRange.1daysago',\n startDate: (now: moment.Moment) => {\n return now.add(-1, 'days');\n },\n endDate: (now: moment.Moment) => {\n return now;\n }\n },\n\n '1dayago': {\n label: 'DateRange.1daysago',\n startDate: (now: moment.Moment) => {\n return now.add(-1, 'days');\n },\n endDate: (now: moment.Moment) => {\n return now;\n }\n },\n\n '7daysago': {\n label: 'DateRange.7daysago',\n startDate: (now: moment.Moment) => {\n return now.add(-7, 'days').startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(-1, 'days').endOf('day');\n }\n },\n\n '30daysago': {\n label: 'DateRange.30daysago',\n startDate: (now: moment.Moment) => {\n return now.add(-30, 'days').startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(-1, 'days').endOf('day');\n }\n },\n\n '90daysago': {\n label: 'DateRange.90daysago',\n startDate: (now: moment.Moment) => {\n return now.add(-90, 'days').startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(-1, 'days').endOf('day');\n }\n },\n\n 'prevweek': {\n label: 'DateRange.lastWeek',\n startDate: (now: moment.Moment) => {\n return now.startOf('week').add(-1, 'weeks');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('week').add(-1, 'days').endOf('day');\n }\n },\n\n 'thisweek': {\n label: 'DateRange.thisWeek',\n startDate: (now: moment.Moment) => {\n return now.startOf('week');\n },\n endDate: (now: moment.Moment) => {\n return now.endOf('week');\n }\n },\n\n 'thismonth': {\n label: 'DateRange.thisMonth',\n startDate: (now: moment.Moment) => {\n return now.startOf('month');\n },\n endDate: (now: moment.Moment) => {\n return now.endOf('month');\n }\n },\n\n 'thisquarter': {\n label: 'DateRange.thisQuarter',\n startDate: (now: moment.Moment) => {\n return now.startOf('quarter');\n },\n endDate: (now: moment.Moment) => {\n return now.endOf('quarter');\n }\n },\n\n 'prevmonth': {\n label: 'DateRange.lastMonth',\n startDate: (now: moment.Moment) => {\n return now.startOf('month').add(-1, 'month');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('month').add(-1, 'day').endOf('day');\n }\n },\n\n 'prevquarter': {\n label: 'DateRange.lastQuarter',\n startDate: (now: moment.Moment) => {\n return now.startOf('quarter').add(-1, 'quarter');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('quarter').add(-1, 'day').endOf('day');\n }\n },\n\n 'thisyear': {\n label: 'DateRange.thisYear',\n startDate: (now: moment.Moment) => {\n return now.startOf('year');\n },\n endDate: (now: moment.Moment) => {\n return now.endOf('year');\n }\n },\n\n // 兼容一下之前的用法 'lastYear'\n 'prevyear': {\n label: 'DateRange.lastYear',\n startDate: (now: moment.Moment) => {\n return now.startOf('year').add(-1, 'year');\n },\n endDate: (now: moment.Moment) => {\n return now.endOf('year').add(-1, 'year').endOf('day');\n }\n },\n\n 'lastYear': {\n label: 'DateRange.lastYear',\n startDate: (now: moment.Moment) => {\n return now.startOf('year').add(-1, 'year');\n },\n endDate: (now: moment.Moment) => {\n return now.endOf('year').add(-1, 'year').endOf('day');\n }\n }\n};\n\nexport const advancedRanges = [\n {\n regexp: /^(\\d+)hoursago$/,\n resolve: (__: any, _: string, hours: string) => {\n return {\n label: __('DateRange.hoursago', {hours}),\n startDate: (now: moment.Moment) => {\n return now.add(-hours, 'hours').startOf('hour');\n },\n endDate: (now: moment.Moment) => {\n return now.add(-1, 'hours').endOf('hours');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)hourslater$/,\n resolve: (__: any, _: string, hours: string) => {\n return {\n label: __('DateRange.hourslater', {hours}),\n startDate: (now: moment.Moment) => {\n return now.startOf('hour');\n },\n endDate: (now: moment.Moment) => {\n return now.add(hours, 'hours').endOf('hour');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)daysago$/,\n resolve: (__: any, _: string, days: string) => {\n return {\n label: __('DateRange.daysago', {days}),\n startDate: (now: moment.Moment) => {\n return now.add(-days, 'days').startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(-1, 'days').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)dayslater$/,\n resolve: (__: any, _: string, days: string) => {\n return {\n label: __('DateRange.dayslater', {days}),\n startDate: (now: moment.Moment) => {\n return now.startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(days, 'days').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)weeksago$/,\n resolve: (__: any, _: string, weeks: string) => {\n return {\n label: __('DateRange.weeksago', {weeks}),\n startDate: (now: moment.Moment) => {\n return now.startOf('week').add(-weeks, 'weeks');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('week').add(-1, 'days').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)weekslater$/,\n resolve: (__: any, _: string, weeks: string) => {\n return {\n label: __('DateRange.weekslater', {weeks}),\n startDate: (now: moment.Moment) => {\n return now.startOf('week');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('week').add(weeks, 'weeks').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)monthsago$/,\n resolve: (__: any, _: string, months: string) => {\n return {\n label: __('DateRange.monthsago', {months}),\n startDate: (now: moment.Moment) => {\n return now.startOf('months').add(-months, 'months');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('month').add(-1, 'days').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)monthslater$/,\n resolve: (__: any, _: string, months: string) => {\n return {\n label: __('DateRange.monthslater', {months}),\n startDate: (now: moment.Moment) => {\n return now.startOf('month');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('month').add(months, 'months').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)quartersago$/,\n resolve: (__: any, _: string, quarters: string) => {\n return {\n label: __('DateRange.quartersago', {quarters}),\n startDate: (now: moment.Moment) => {\n return now.startOf('quarters').add(-quarters, 'quarters');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('quarter').add(-1, 'days').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)quarterslater$/,\n resolve: (__: any, _: string, quarters: string) => {\n return {\n label: __('DateRange.quarterslater', {quarters}),\n startDate: (now: moment.Moment) => {\n return now.startOf('quarter');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('quarter').add(quarters, 'quarters').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)yearsago$/,\n resolve: (__: any, _: string, years: string) => {\n return {\n label: __('DateRange.yearsago', {years}),\n startDate: (now: moment.Moment) => {\n return now.startOf('years').add(-years, 'years');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('year').add(-1, 'days').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)yearslater$/,\n resolve: (__: any, _: string, years: string) => {\n return {\n label: __('DateRange.yearslater', {years}),\n startDate: (now: moment.Moment) => {\n return now.startOf('year');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('year').add(years, 'years').endOf('day');\n }\n };\n }\n }\n];\n\nexport class DateRangePicker extends React.Component<\n DateRangePickerProps,\n DateRangePickerState\n> {\n static defaultProps = {\n startPlaceholder: 'Calendar.startPick',\n endPlaceholder: 'Calendar.endPick',\n format: 'X',\n inputFormat: 'YYYY-MM-DD',\n joinValues: true,\n clearable: true,\n delimiter: ',',\n ranges: 'yesterday,7daysago,prevweek,thismonth,prevmonth,prevquarter',\n resetValue: '',\n closeOnSelect: true,\n overlayPlacement: 'auto'\n };\n\n innerDom: any;\n popover: any;\n input?: HTMLInputElement;\n\n // 是否是第一次点击,如果是第一次点击就可以点任意地址\n isFirstClick: boolean = true;\n\n static formatValue(\n newValue: any,\n format: string,\n joinValues: boolean,\n delimiter: string,\n utc = false\n ) {\n newValue = [\n (utc ? moment.utc(newValue.startDate) : newValue.startDate)?.format(\n format\n ),\n (utc ? moment.utc(newValue.endDate) : newValue.endDate)?.format(format)\n ];\n\n if (joinValues) {\n newValue = newValue.join(delimiter);\n }\n\n return newValue;\n }\n\n static unFormatValue(\n value: any,\n format: string,\n joinValues: boolean,\n delimiter: string\n ) {\n if (!value) {\n return {\n startDate: undefined,\n endDate: undefined\n };\n }\n\n if (joinValues && typeof value === 'string') {\n value = value.split(delimiter);\n }\n\n return {\n startDate: value[0] ? moment(value[0], format) : undefined,\n endDate: value[1] ? moment(value[1], format) : undefined\n };\n }\n\n dom: React.RefObject<HTMLDivElement>;\n calendarRef: React.RefObject<HTMLDivElement>;\n nextMonth = moment().add(1, 'months');\n\n startInputRef: React.RefObject<HTMLInputElement>;\n endInputRef: React.RefObject<HTMLInputElement>;\n\n constructor(props: DateRangePickerProps) {\n super(props);\n\n this.startInputRef = React.createRef();\n this.endInputRef = React.createRef();\n this.calendarRef = React.createRef();\n this.open = this.open.bind(this);\n this.openStart = this.openStart.bind(this);\n this.openEnd = this.openEnd.bind(this);\n this.close = this.close.bind(this);\n this.startInputChange = this.startInputChange.bind(this);\n this.endInputChange = this.endInputChange.bind(this);\n this.handleDateChange = this.handleDateChange.bind(this);\n this.handleStartDateChange = this.handleStartDateChange.bind(this);\n this.handeleEndDateChange = this.handeleEndDateChange.bind(this);\n this.handleTimeStartChange = this.handleTimeStartChange.bind(this);\n this.handleTimeEndChange = this.handleTimeEndChange.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.checkStartIsValidDate = this.checkStartIsValidDate.bind(this);\n this.checkEndIsValidDate = this.checkEndIsValidDate.bind(this);\n this.confirm = this.confirm.bind(this);\n this.clearValue = this.clearValue.bind(this);\n this.dom = React.createRef();\n this.handleClick = this.handleClick.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handlePopOverClick = this.handlePopOverClick.bind(this);\n this.renderDay = this.renderDay.bind(this);\n this.renderMonth = this.renderMonth.bind(this);\n this.renderQuarter = this.renderQuarter.bind(this);\n this.renderYear = this.renderYear.bind(this);\n this.handleMobileChange = this.handleMobileChange.bind(this);\n this.handleOutClick = this.handleOutClick.bind(this);\n const {format, joinValues, delimiter, value, inputFormat} = this.props;\n const {startDate, endDate} = DateRangePicker.unFormatValue(\n value,\n format,\n joinValues,\n delimiter\n );\n this.state = {\n isOpened: false,\n isFocused: false,\n editState: 'start',\n startDate,\n endDate,\n startInputValue: startDate?.format(inputFormat),\n endInputValue: endDate?.format(inputFormat)\n };\n }\n componentDidMount() {\n document.body.addEventListener('click', this.handleOutClick, true);\n this.props?.onRef?.(this);\n }\n\n componentWillUnmount() {\n document.body.removeEventListener('click', this.handleOutClick, true);\n }\n\n handleOutClick(e: Event) {\n if (\n !e.target ||\n !this.dom.current ||\n this.dom.current.contains(e.target as HTMLElement) ||\n !this.calendarRef.current ||\n this.calendarRef.current.contains(e.target as HTMLElement)\n ) {\n return;\n }\n if (this.state.isOpened) {\n e.preventDefault();\n this.close();\n }\n }\n\n componentDidUpdate(prevProps: DateRangePickerProps) {\n const props = this.props;\n const {value, format, joinValues, inputFormat, delimiter} = props;\n\n if (prevProps.value !== value) {\n const {startDate, endDate} = DateRangePicker.unFormatValue(\n value,\n format,\n joinValues,\n delimiter\n );\n this.setState({\n startDate,\n endDate,\n startInputValue: startDate?.format(inputFormat),\n endInputValue: endDate?.format(inputFormat)\n });\n }\n }\n\n focus() {\n if (!this.dom.current || this.props.disabled) {\n return;\n }\n\n this.dom.current.focus();\n }\n\n blur() {\n if (!this.dom.current || this.props.disabled) {\n return;\n }\n\n this.dom.current.blur();\n }\n\n handleFocus(e: React.SyntheticEvent<HTMLDivElement>) {\n this.setState({\n isFocused: true\n });\n const {onFocus} = this.props;\n onFocus && onFocus(e);\n }\n\n handleBlur(e: React.SyntheticEvent<HTMLDivElement>) {\n this.setState({\n isFocused: false\n });\n const {onBlur} = this.props;\n onBlur && onBlur(e);\n }\n\n open() {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({\n isOpened: true\n });\n }\n\n openStart() {\n if (this.props.disabled) {\n return;\n }\n this.setState({\n isOpened: true,\n editState: 'start'\n });\n }\n\n openEnd() {\n if (this.props.disabled) {\n return;\n }\n this.setState({\n isOpened: true,\n editState: 'end'\n });\n }\n\n close() {\n this.setState(\n {\n isOpened: false,\n editState: undefined\n },\n this.blur\n );\n }\n\n handleClick() {\n this.state.isOpened ? this.close() : this.open();\n }\n\n handlePopOverClick(e: React.MouseEvent<any>) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n handleKeyPress(e: React.KeyboardEvent) {\n if (e.key === ' ') {\n this.handleClick();\n e.preventDefault();\n }\n }\n\n confirm() {\n if (!this.state.startDate && !this.state.endDate) {\n return;\n } else if (this.state.startDate?.isAfter(this.state.endDate)) {\n return;\n }\n\n this.props.onChange(\n DateRangePicker.formatValue(\n {\n startDate: this.state.startDate,\n endDate: this.state.endDate\n },\n this.props.format,\n this.props.joinValues,\n this.props.delimiter,\n this.props.utc\n )\n );\n if (this.state.startDate && !this.state.endDate) {\n this.setState({editState: 'end'});\n } else {\n this.close();\n }\n }\n\n filterDate(\n date: moment.Moment,\n originValue?: moment.Moment,\n timeFormat?: string,\n type: 'start' | 'end' = 'start'\n ): moment.Moment {\n let value = date.clone();\n\n // 没有初始值\n if (!originValue) {\n value = value[type === 'start' ? 'startOf' : 'endOf']('day');\n } else if (typeof timeFormat === 'string' && /ss/.test(timeFormat)) {\n value = value[type === 'start' ? 'startOf' : 'endOf']('second');\n } else if (typeof timeFormat === 'string' && /mm/.test(timeFormat)) {\n value = value[type === 'start' ? 'startOf' : 'endOf']('minute');\n } else if (typeof timeFormat === 'string' && /HH/i.test(timeFormat)) {\n value = value[type === 'start' ? 'startOf' : 'endOf']('hour');\n } else if (typeof timeFormat === 'string' && /Q/i.test(timeFormat)) {\n value = value[type === 'start' ? 'startOf' : 'endOf']('quarter');\n } else {\n value = value[type === 'start' ? 'startOf' : 'endOf']('day');\n }\n\n return value;\n }\n\n handleDateChange(newValue: moment.Moment) {\n let {editState} = this.state;\n if (editState === 'start') {\n this.handleStartDateChange(newValue);\n } else if (editState === 'end') {\n this.handeleEndDateChange(newValue);\n }\n }\n\n handleStartDateChange(newValue: moment.Moment) {\n const {timeFormat, minDate, inputFormat, type} = this.props;\n let {startDate} = this.state;\n if (minDate && newValue.isBefore(minDate)) {\n newValue = minDate;\n }\n const date = this.filterDate(\n newValue,\n startDate || minDate,\n timeFormat,\n 'start'\n );\n const newState = {\n startDate: date,\n startInputValue: date.format(inputFormat)\n } as any;\n // 这些没有时间的选择点第一次后第二次就是选结束时间\n if (\n type === 'input-date-range' ||\n type === 'input-year-range' ||\n type === 'input-quarter-range' ||\n type === 'input-month-range'\n ) {\n newState.editState = 'end';\n }\n this.setState(newState);\n }\n\n handeleEndDateChange(newValue: moment.Moment) {\n const {embed, timeFormat, inputFormat} = this.props;\n let {startDate, endDate} = this.state;\n newValue = this.getEndDateByDuration(newValue);\n\n // 如果结束时间在前面,需要清空开始时间\n if (newValue.isBefore(startDate)) {\n this.setState({\n startDate: undefined,\n startInputValue: ''\n });\n }\n\n const date = this.filterDate(newValue, endDate, timeFormat, 'end');\n this.setState(\n {\n endDate: date,\n endInputValue: date.format(inputFormat)\n },\n () => {\n embed && this.confirm();\n }\n );\n }\n\n // 手动控制输入时间\n startInputChange(e: React.ChangeEvent<HTMLInputElement>) {\n const {onChange, inputFormat, format, utc} = this.props;\n const value = e.currentTarget.value;\n this.setState({startInputValue: value});\n if (value === '') {\n onChange('');\n } else {\n let newDate = this.getStartDateByDuration(moment(value, inputFormat));\n this.setState({startDate: newDate});\n }\n }\n\n endInputChange(e: React.ChangeEvent<HTMLInputElement>) {\n const {onChange, inputFormat, format, utc} = this.props;\n const value = e.currentTarget.value;\n this.setState({endInputValue: value});\n if (value === '') {\n onChange('');\n } else {\n let newDate = this.getEndDateByDuration(moment(value, inputFormat));\n this.setState({endDate: newDate});\n }\n }\n\n // 根据 duration 修复结束时间\n getEndDateByDuration(newValue: moment.Moment) {\n const {minDuration, maxDuration, type} = this.props;\n let {startDate, endDate, editState} = this.state;\n if (!startDate) {\n return newValue;\n }\n\n // 时间范围必须统一成同一天,不然会不一致\n if (type === 'input-time-range' && startDate) {\n newValue.set({\n year: startDate.year(),\n month: startDate.month(),\n date: startDate.date()\n });\n }\n\n if (minDuration && newValue.isBefore(startDate.clone().add(minDuration))) {\n newValue = startDate.clone().add(minDuration);\n }\n\n if (maxDuration && newValue.isAfter(startDate.clone().add(maxDuration))) {\n newValue = startDate.clone().add(maxDuration);\n }\n\n return newValue;\n }\n\n // 根据 duration 修复起始时间\n getStartDateByDuration(newValue: moment.Moment) {\n const {minDuration, maxDuration, type} = this.props;\n let {endDate, editState} = this.state;\n if (!endDate) {\n return newValue;\n }\n // 时间范围必须统一成同一天,不然会不一致\n if (type === 'input-time-range' && endDate) {\n newValue.set({\n year: endDate.year(),\n month: endDate.month(),\n date: endDate.date()\n });\n }\n\n if (\n minDuration &&\n newValue.isBefore(endDate.clone().subtract(minDuration))\n ) {\n newValue = endDate.clone().subtract(minDuration);\n }\n\n if (\n maxDuration &&\n newValue.isAfter(endDate.clone().subtract(maxDuration))\n ) {\n newValue = endDate.clone().subtract(maxDuration);\n }\n\n return newValue;\n }\n\n // 主要用于处理时间的情况\n handleTimeStartChange(newValue: moment.Moment) {\n const {embed, timeFormat, inputFormat, minDuration, maxDuration, minDate} =\n this.props;\n const {startDate, endDate} = this.state;\n\n // 时间范围必须统一成同一天,不然会不一致\n if (endDate) {\n newValue.set({\n year: endDate.year(),\n month: endDate.month(),\n date: endDate.date()\n });\n }\n\n if (minDate && newValue && newValue.isBefore(minDate, 'second')) {\n newValue = minDate;\n }\n\n this.setState(\n {\n startDate: newValue,\n startInputValue: newValue.format(inputFormat)\n },\n () => {\n embed && this.confirm();\n }\n );\n }\n\n handleTimeEndChange(newValue: moment.Moment) {\n const {embed, timeFormat, inputFormat, minDuration, maxDuration, maxDate} =\n this.props;\n const {startDate, endDate} = this.state;\n if (startDate) {\n newValue.set({\n year: startDate.year(),\n month: startDate.month(),\n date: startDate.date()\n });\n }\n\n if (maxDate && newValue && newValue.isAfter(maxDate, 'second')) {\n newValue = maxDate;\n }\n\n if (\n startDate &&\n minDuration &&\n newValue.isAfter(startDate.clone().add(minDuration))\n ) {\n newValue = startDate.clone().add(minDuration);\n }\n if (\n startDate &&\n maxDuration &&\n newValue.isBefore(startDate.clone().add(maxDuration))\n ) {\n newValue = startDate.clone().add(maxDuration);\n }\n\n this.setState(\n {\n endDate: newValue,\n endInputValue: newValue.format(inputFormat)\n },\n () => {\n embed && this.confirm();\n }\n );\n }\n\n handleMobileChange(data: any, callback?: () => void) {\n this.setState(\n {\n startDate: data.startDate,\n endDate: data.endDate\n },\n callback\n );\n }\n\n selectRannge(range: PlainObject) {\n const {closeOnSelect, minDate, maxDate} = this.props;\n const now = moment();\n this.setState(\n {\n startDate:\n minDate && minDate.isValid()\n ? moment.max(range.startDate(now.clone()), minDate)\n : range.startDate(now.clone()),\n endDate:\n maxDate && maxDate.isValid()\n ? moment.min(maxDate, range.endDate(now.clone()))\n : range.endDate(now.clone())\n },\n closeOnSelect ? this.confirm : noop\n );\n }\n\n renderRanges(ranges: string | Array<ShortCuts> | undefined) {\n if (!ranges) {\n return null;\n }\n const {classPrefix: ns} = this.props;\n let rangeArr: Array<string | ShortCuts>;\n if (typeof ranges === 'string') {\n rangeArr = ranges.split(',');\n } else {\n rangeArr = ranges;\n }\n const __ = this.props.translate;\n\n return (\n <ul className={`${ns}DateRangePicker-rangers`}>\n {rangeArr.map(item => {\n if (!item) {\n return null;\n }\n let range: PlainObject = {};\n if (typeof item === 'string') {\n if (availableRanges[item]) {\n range = availableRanges[item];\n range.key = item;\n } else {\n // 通过正则尝试匹配\n for (let i = 0, len = advancedRanges.length; i < len; i++) {\n let value = advancedRanges[i];\n const m = value.regexp.exec(item);\n if (m) {\n range = value.resolve.apply(item, [__, ...m]);\n range.key = item;\n }\n }\n }\n } else if (\n (item as ShortCutDateRange).startDate &&\n (item as ShortCutDateRange).endDate\n ) {\n range = {\n ...item,\n startDate: () => (item as ShortCutDateRange).startDate,\n endDate: () => (item as ShortCutDateRange).endDate\n };\n }\n if (Object.keys(range).length) {\n return (\n <li\n className={`${ns}DateRangePicker-ranger`}\n onClick={() => this.selectRannge(range)}\n key={range.key || range.label}\n >\n <a>{__(range.label)}</a>\n </li>\n );\n } else {\n return null;\n }\n })}\n </ul>\n );\n }\n\n clearValue(e: React.MouseEvent<any>) {\n e.preventDefault();\n e.stopPropagation();\n const {onChange} = this.props;\n this.setState({startInputValue: '', endInputValue: ''});\n onChange('');\n }\n\n // 清空\n clear() {\n const {onChange} = this.props;\n this.setState({startInputValue: '', endInputValue: ''});\n onChange('');\n }\n\n // 重置\n reset() {\n const {resetValue, onChange, format, joinValues, delimiter, inputFormat} =\n this.props;\n if (!resetValue) {\n return;\n }\n const {startDate, endDate} = DateRangePicker.unFormatValue(\n resetValue,\n format,\n joinValues,\n delimiter\n );\n onChange(resetValue);\n this.setState({\n startInputValue: startDate?.format(inputFormat),\n endInputValue: endDate?.format(inputFormat)\n });\n }\n\n checkStartIsValidDate(currentDate: moment.Moment) {\n let {endDate, startDate} = this.state;\n let {minDate, maxDate, minDuration, maxDuration, viewMode} = this.props;\n const precision = viewMode === 'time' ? 'hours' : viewMode || 'day';\n\n maxDate =\n maxDate && endDate\n ? maxDate.isBefore(endDate)\n ? maxDate\n : endDate\n : undefined;\n\n if (minDate && currentDate.isBefore(minDate, precision)) {\n return false;\n } else if (maxDate && currentDate.isAfter(maxDate, precision)) {\n return false;\n } else if (\n // 如果配置了 minDuration 那么 EndDate - minDuration 之后的天数也不能选\n endDate &&\n minDuration &&\n currentDate.isAfter(endDate.clone().subtract(minDuration))\n ) {\n return false;\n } else if (\n endDate &&\n maxDuration &&\n currentDate.isBefore(endDate.clone().subtract(maxDuration))\n ) {\n return false;\n }\n\n return true;\n }\n\n checkEndIsValidDate(currentDate: moment.Moment) {\n let {startDate} = this.state;\n let {minDate, maxDate, minDuration, maxDuration, viewMode} = this.props;\n const precision = viewMode === 'time' ? 'hours' : viewMode || 'day';\n\n minDate =\n minDate && startDate\n ? minDate.isAfter(startDate)\n ? minDate\n : startDate\n : undefined;\n\n if (minDate && currentDate.isBefore(minDate, precision)) {\n return false;\n } else if (maxDate && currentDate.isAfter(maxDate, precision)) {\n return false;\n } else if (\n startDate &&\n minDuration &&\n currentDate.isBefore(startDate.clone().add(minDuration))\n ) {\n return false;\n } else if (\n startDate &&\n maxDuration &&\n currentDate.isAfter(startDate.clone().add(maxDuration))\n ) {\n return false;\n }\n\n return true;\n }\n\n renderDay(props: any, currentDate: moment.Moment) {\n let {startDate, endDate} = this.state;\n\n if (\n startDate &&\n endDate &&\n currentDate.isBetween(startDate, endDate, 'day', '[]')\n ) {\n props.className += ' rdtBetween';\n }\n\n return <td {...props}><span>{currentDate.date()}</span></td>;\n }\n\n renderMonth(props: any, month: number, year: number, date: any) {\n const m = moment();\n const currentDate = m.year(year).month(month);\n const {startDate, endDate} = this.state;\n\n var localMoment = m.localeData().monthsShort(m.month(month));\n var strLength = 3;\n var monthStrFixedLength = localMoment.substring(0, strLength);\n\n if (\n startDate &&\n endDate &&\n currentDate.isBetween(startDate, endDate, 'month', '[]')\n ) {\n props.className += ' rdtBetween';\n }\n\n return (\n <td {...props}>\n <span>{monthStrFixedLength}</span>\n </td>\n );\n }\n\n renderQuarter(props: any, quarter: number, year: number) {\n const currentDate = moment().year(year).quarter(quarter);\n const {startDate, endDate} = this.state;\n\n if (\n startDate &&\n endDate &&\n currentDate.isBetween(startDate, endDate, 'quarter', '[]')\n ) {\n props.className += ' rdtBetween';\n }\n\n return (\n <td {...props}>\n <span>Q{quarter}</span>\n </td>\n );\n }\n renderYear(props: any, year: number) {\n const currentDate = moment().year(year);\n const {startDate, endDate} = this.state;\n\n if (\n startDate &&\n endDate &&\n currentDate.isBetween(startDate, endDate, 'year', '[]')\n ) {\n props.className += ' rdtBetween';\n }\n\n return (\n <td {...props}>\n <span>{year}</span>\n </td>\n );\n }\n\n renderCalendar() {\n const {\n classPrefix: ns,\n classnames: cx,\n dateFormat,\n timeFormat,\n inputFormat,\n ranges,\n locale,\n embed,\n type,\n viewMode = 'days'\n } = this.props;\n const __ = this.props.translate;\n\n const {startDate, endDate, editState} = this.state;\n \n // timeRange需要单独选择范围\n const isTimeRange = type === 'input-datetime-range' || viewMode === 'time';\n\n return (\n <div className={`${ns}DateRangePicker-wrap`} ref={this.calendarRef}>\n {this.renderRanges(ranges)}\n {(!isTimeRange || editState === 'start' && !embed) && <Calendar\n className={`${ns}DateRangePicker-start`}\n value={startDate}\n // 区分的原因是 time-range 左侧就只能选起始时间,而其它都能在左侧同时同时选择起始和结束\n // TODO: 后续得把 time-range 代码拆分出来\n onChange={\n type === 'input-datetime-range'\n ? this.handleStartDateChange\n : viewMode === 'time'\n ? this.handleTimeStartChange\n : this.handleDateChange\n }\n requiredConfirm={false}\n dateFormat={dateFormat}\n inputFormat={inputFormat}\n timeFormat={timeFormat}\n isValidDate={this.checkStartIsValidDate}\n viewMode={viewMode}\n input={false}\n onClose={this.close}\n renderDay={this.renderDay}\n renderMonth={this.renderMonth}\n renderQuarter={this.renderQuarter}\n renderYear={this.renderYear}\n locale={locale}\n timeRangeHeader=\"开始时间\"\n />}\n {(!isTimeRange || editState === 'end' && !embed) && <Calendar\n className={`${ns}DateRangePicker-end`}\n value={endDate}\n onChange={\n type === 'input-datetime-range'\n ? this.handeleEndDateChange\n : viewMode === 'time'\n ? this.handleTimeEndChange\n : this.handleDateChange\n }\n requiredConfirm={false}\n dateFormat={dateFormat}\n inputFormat={inputFormat}\n timeFormat={timeFormat}\n viewDate={this.nextMonth}\n isEndDate\n isValidDate={this.checkEndIsValidDate}\n viewMode={viewMode}\n input={false}\n onClose={this.close}\n renderDay={this.renderDay}\n renderMonth={this.renderMonth}\n renderQuarter={this.renderQuarter}\n renderYear={this.renderYear}\n locale={locale}\n timeRangeHeader=\"结束时间\"\n />}\n\n {embed ? null : (\n <div key=\"button\" className={`${ns}DateRangePicker-actions`}>\n <a className={cx('Button', 'Button--default')} onClick={this.close}>\n {__('cancel')}\n </a>\n <a\n className={cx('Button', 'Button--primary', 'm-l-sm', {\n 'is-disabled':\n (!this.state.startDate && isTimeRange && editState === 'start') ||\n (!this.state.endDate && isTimeRange && editState === 'end') ||\n this.state.endDate?.isBefore(this.state.startDate)\n })}\n onClick={this.confirm}\n >\n {__('confirm')}\n </a>\n </div>\n )}\n </div>\n );\n }\n\n render() {\n const {\n className,\n popoverClassName,\n classPrefix: ns,\n classnames: cx,\n value,\n startPlaceholder,\n endPlaceholder,\n popOverContainer,\n inputFormat,\n format,\n joinValues,\n delimiter,\n clearable,\n disabled,\n embed,\n overlayPlacement,\n borderMode,\n useMobileUI,\n timeFormat,\n minDate,\n maxDate,\n minDuration,\n maxDuration,\n dateFormat,\n viewMode = 'days',\n ranges\n } = this.props;\n const useCalendarMobile =\n useMobileUI &&\n isMobile() &&\n ['days', 'months', 'quarters'].indexOf(viewMode) > -1;\n\n const {isOpened, isFocused, startDate, endDate} = this.state;\n\n const __ = this.props.translate;\n\n const calendarMobile = (\n <CalendarMobile\n timeFormat={timeFormat}\n inputFormat={inputFormat}\n startDate={startDate}\n endDate={endDate}\n minDate={minDate}\n maxDate={maxDate}\n minDuration={minDuration}\n maxDuration={maxDuration}\n dateFormat={dateFormat}\n embed={embed}\n viewMode={viewMode}\n close={this.close}\n confirm={this.confirm}\n onChange={this.handleMobileChange}\n footerExtra={this.renderRanges(ranges)}\n showViewMode={\n viewMode === 'quarters' || viewMode === 'months' ? 'years' : 'months'\n }\n />\n );\n\n if (embed) {\n return (\n <div\n className={cx(\n `${ns}DateRangeCalendar`,\n {\n 'is-disabled': disabled\n },\n className\n )}\n >\n {useCalendarMobile ? calendarMobile : this.renderCalendar()}\n </div>\n );\n }\n\n const CalendarMobileTitle = (\n <div className={`${ns}CalendarMobile-title`}>\n {__('Calendar.datepicker')}\n </div>\n );\n\n return (\n <div\n tabIndex={0}\n onKeyPress={this.handleKeyPress}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx(\n `${ns}DateRangePicker`,\n {\n 'is-disabled': disabled,\n 'is-focused': isFocused,\n [`${ns}DateRangePicker--border${ucFirst(borderMode)}`]: borderMode,\n 'is-mobile': useMobileUI && isMobile()\n },\n className\n )}\n ref={this.dom}\n >\n <Input\n className={cx('DateRangePicker-input', {\n isActive: this.state.editState === 'start'\n })}\n onChange={this.startInputChange}\n onClick={this.openStart}\n ref={this.startInputRef}\n placeholder={__(startPlaceholder)}\n autoComplete=\"off\"\n value={this.state.startInputValue || ''}\n disabled={disabled}\n />\n <span className={cx('DateRangePicker-input-separator')}>-</span>\n <Input\n className={cx('DateRangePicker-input', {\n isActive: this.state.editState === 'end'\n })}\n onChange={this.endInputChange}\n onClick={this.openEnd}\n ref={this.endInputRef}\n placeholder={__(endPlaceholder)}\n autoComplete=\"off\"\n value={this.state.endInputValue || ''}\n disabled={disabled}\n />\n\n {clearable && !disabled && value ? (\n <a className={`${ns}DateRangePicker-clear`} onClick={this.clearValue}>\n <Icon icon=\"input-clear\" className=\"icon\" />\n </a>\n ) : null}\n\n <a className={`${ns}DateRangePicker-toggler`}>\n <Icon icon={viewMode === 'time' ? 'clock' : 'date'} className=\"icon\" />\n </a>\n\n {isOpened ? (\n useMobileUI && isMobile() ? (\n <PopUp\n isShow={isOpened}\n container={popOverContainer}\n className={cx(`${ns}CalendarMobile-pop`)}\n onHide={this.close}\n header={CalendarMobileTitle}\n >\n {useCalendarMobile ? calendarMobile : this.renderCalendar()}\n </PopUp>\n ) : (\n <Overlay\n target={() => this.dom.current}\n onHide={this.close}\n container={popOverContainer || (() => findDOMNode(this))}\n rootClose={false}\n placement={overlayPlacement}\n show\n >\n <PopOver\n classPrefix={ns}\n className={cx(`${ns}DateRangePicker-popover`, popoverClassName)}\n onHide={this.close}\n onClick={this.handlePopOverClick}\n >\n {this.renderCalendar()}\n </PopOver>\n </Overlay>\n )\n ) : null}\n </div>\n );\n }\n}\n\nexport default themeable(localeable(DateRangePicker));\n"
|
11
|
+
"/**\n * @file DateRangePicker\n * @description 自定义日期范围时间选择器组件\n * @author fex\n */\n\nimport React from 'react';\nimport moment from 'moment';\nimport {findDOMNode} from 'react-dom';\nimport {Icon} from './icons';\nimport Overlay from './Overlay';\nimport {ShortCuts, ShortCutDateRange} from './DatePicker';\nimport Calendar from './calendar/Calendar';\nimport PopOver from './PopOver';\nimport PopUp from './PopUp';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {PlainObject} from '../types';\nimport {isMobile, noop, ucFirst} from '../utils/helper';\nimport {LocaleProps, localeable} from '../locale';\nimport CalendarMobile from './CalendarMobile';\nimport Input from './Input';\n\nexport interface DateRangePickerProps extends ThemeProps, LocaleProps {\n className?: string;\n popoverClassName?: string;\n startPlaceholder?: string;\n endPlaceholder?: string;\n theme?: any;\n format: string;\n utc?: boolean;\n inputFormat?: string;\n ranges?: string | Array<ShortCuts>;\n clearable?: boolean;\n minDate?: moment.Moment;\n maxDate?: moment.Moment;\n minDuration?: moment.Duration;\n maxDuration?: moment.Duration;\n joinValues: boolean;\n delimiter: string;\n value?: any;\n onChange: (value: any) => void;\n data?: any;\n disabled?: boolean;\n closeOnSelect?: boolean;\n overlayPlacement: string;\n timeFormat?: string;\n resetValue?: any;\n popOverContainer?: any;\n dateFormat?: string;\n embed?: boolean;\n viewMode?: 'days' | 'months' | 'years' | 'time' | 'quarters';\n borderMode?: 'full' | 'half' | 'none';\n useMobileUI?: boolean;\n onFocus?: Function;\n onBlur?: Function;\n type?: string;\n onRef?: any;\n}\n\nexport interface DateRangePickerState {\n isOpened: boolean;\n isFocused: boolean;\n startDate?: moment.Moment;\n endDate?: moment.Moment;\n editState?: 'start' | 'end'; // 编辑开始时间还是结束时间\n startInputValue?: string;\n endInputValue?: string;\n}\n\nexport const availableRanges: {[propName: string]: any} = {\n 'today': {\n label: 'Date.today',\n startDate: (now: moment.Moment) => {\n return now.startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now;\n }\n },\n\n 'yesterday': {\n label: 'Date.yesterday',\n startDate: (now: moment.Moment) => {\n return now.add(-1, 'days').startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(-1, 'days').endOf('day');\n }\n },\n\n 'tomorrow': {\n label: 'Date.tomorrow',\n startDate: (now: moment.Moment) => {\n return now.add(1, 'days').startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(1, 'days').endOf('day');\n }\n },\n\n // 兼容一下错误的用法\n '1daysago': {\n label: 'DateRange.1daysago',\n startDate: (now: moment.Moment) => {\n return now.add(-1, 'days');\n },\n endDate: (now: moment.Moment) => {\n return now;\n }\n },\n\n '1dayago': {\n label: 'DateRange.1daysago',\n startDate: (now: moment.Moment) => {\n return now.add(-1, 'days');\n },\n endDate: (now: moment.Moment) => {\n return now;\n }\n },\n\n '7daysago': {\n label: 'DateRange.7daysago',\n startDate: (now: moment.Moment) => {\n return now.add(-7, 'days').startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(-1, 'days').endOf('day');\n }\n },\n\n '30daysago': {\n label: 'DateRange.30daysago',\n startDate: (now: moment.Moment) => {\n return now.add(-30, 'days').startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(-1, 'days').endOf('day');\n }\n },\n\n '90daysago': {\n label: 'DateRange.90daysago',\n startDate: (now: moment.Moment) => {\n return now.add(-90, 'days').startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(-1, 'days').endOf('day');\n }\n },\n\n 'prevweek': {\n label: 'DateRange.lastWeek',\n startDate: (now: moment.Moment) => {\n return now.startOf('week').add(-1, 'weeks');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('week').add(-1, 'days').endOf('day');\n }\n },\n\n 'thisweek': {\n label: 'DateRange.thisWeek',\n startDate: (now: moment.Moment) => {\n return now.startOf('week');\n },\n endDate: (now: moment.Moment) => {\n return now.endOf('week');\n }\n },\n\n 'thismonth': {\n label: 'DateRange.thisMonth',\n startDate: (now: moment.Moment) => {\n return now.startOf('month');\n },\n endDate: (now: moment.Moment) => {\n return now.endOf('month');\n }\n },\n\n 'thisquarter': {\n label: 'DateRange.thisQuarter',\n startDate: (now: moment.Moment) => {\n return now.startOf('quarter');\n },\n endDate: (now: moment.Moment) => {\n return now.endOf('quarter');\n }\n },\n\n 'prevmonth': {\n label: 'DateRange.lastMonth',\n startDate: (now: moment.Moment) => {\n return now.startOf('month').add(-1, 'month');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('month').add(-1, 'day').endOf('day');\n }\n },\n\n 'prevquarter': {\n label: 'DateRange.lastQuarter',\n startDate: (now: moment.Moment) => {\n return now.startOf('quarter').add(-1, 'quarter');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('quarter').add(-1, 'day').endOf('day');\n }\n },\n\n 'thisyear': {\n label: 'DateRange.thisYear',\n startDate: (now: moment.Moment) => {\n return now.startOf('year');\n },\n endDate: (now: moment.Moment) => {\n return now.endOf('year');\n }\n },\n\n // 兼容一下之前的用法 'lastYear'\n 'prevyear': {\n label: 'DateRange.lastYear',\n startDate: (now: moment.Moment) => {\n return now.startOf('year').add(-1, 'year');\n },\n endDate: (now: moment.Moment) => {\n return now.endOf('year').add(-1, 'year').endOf('day');\n }\n },\n\n 'lastYear': {\n label: 'DateRange.lastYear',\n startDate: (now: moment.Moment) => {\n return now.startOf('year').add(-1, 'year');\n },\n endDate: (now: moment.Moment) => {\n return now.endOf('year').add(-1, 'year').endOf('day');\n }\n }\n};\n\nexport const advancedRanges = [\n {\n regexp: /^(\\d+)hoursago$/,\n resolve: (__: any, _: string, hours: string) => {\n return {\n label: __('DateRange.hoursago', {hours}),\n startDate: (now: moment.Moment) => {\n return now.add(-hours, 'hours').startOf('hour');\n },\n endDate: (now: moment.Moment) => {\n return now.add(-1, 'hours').endOf('hours');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)hourslater$/,\n resolve: (__: any, _: string, hours: string) => {\n return {\n label: __('DateRange.hourslater', {hours}),\n startDate: (now: moment.Moment) => {\n return now.startOf('hour');\n },\n endDate: (now: moment.Moment) => {\n return now.add(hours, 'hours').endOf('hour');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)daysago$/,\n resolve: (__: any, _: string, days: string) => {\n return {\n label: __('DateRange.daysago', {days}),\n startDate: (now: moment.Moment) => {\n return now.add(-days, 'days').startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(-1, 'days').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)dayslater$/,\n resolve: (__: any, _: string, days: string) => {\n return {\n label: __('DateRange.dayslater', {days}),\n startDate: (now: moment.Moment) => {\n return now.startOf('day');\n },\n endDate: (now: moment.Moment) => {\n return now.add(days, 'days').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)weeksago$/,\n resolve: (__: any, _: string, weeks: string) => {\n return {\n label: __('DateRange.weeksago', {weeks}),\n startDate: (now: moment.Moment) => {\n return now.startOf('week').add(-weeks, 'weeks');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('week').add(-1, 'days').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)weekslater$/,\n resolve: (__: any, _: string, weeks: string) => {\n return {\n label: __('DateRange.weekslater', {weeks}),\n startDate: (now: moment.Moment) => {\n return now.startOf('week');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('week').add(weeks, 'weeks').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)monthsago$/,\n resolve: (__: any, _: string, months: string) => {\n return {\n label: __('DateRange.monthsago', {months}),\n startDate: (now: moment.Moment) => {\n return now.startOf('months').add(-months, 'months');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('month').add(-1, 'days').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)monthslater$/,\n resolve: (__: any, _: string, months: string) => {\n return {\n label: __('DateRange.monthslater', {months}),\n startDate: (now: moment.Moment) => {\n return now.startOf('month');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('month').add(months, 'months').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)quartersago$/,\n resolve: (__: any, _: string, quarters: string) => {\n return {\n label: __('DateRange.quartersago', {quarters}),\n startDate: (now: moment.Moment) => {\n return now.startOf('quarters').add(-quarters, 'quarters');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('quarter').add(-1, 'days').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)quarterslater$/,\n resolve: (__: any, _: string, quarters: string) => {\n return {\n label: __('DateRange.quarterslater', {quarters}),\n startDate: (now: moment.Moment) => {\n return now.startOf('quarter');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('quarter').add(quarters, 'quarters').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)yearsago$/,\n resolve: (__: any, _: string, years: string) => {\n return {\n label: __('DateRange.yearsago', {years}),\n startDate: (now: moment.Moment) => {\n return now.startOf('years').add(-years, 'years');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('year').add(-1, 'days').endOf('day');\n }\n };\n }\n },\n {\n regexp: /^(\\d+)yearslater$/,\n resolve: (__: any, _: string, years: string) => {\n return {\n label: __('DateRange.yearslater', {years}),\n startDate: (now: moment.Moment) => {\n return now.startOf('year');\n },\n endDate: (now: moment.Moment) => {\n return now.startOf('year').add(years, 'years').endOf('day');\n }\n };\n }\n }\n];\n\nexport class DateRangePicker extends React.Component<\n DateRangePickerProps,\n DateRangePickerState\n> {\n static defaultProps = {\n startPlaceholder: 'Calendar.startPick',\n endPlaceholder: 'Calendar.endPick',\n format: 'X',\n inputFormat: 'YYYY-MM-DD',\n joinValues: true,\n clearable: true,\n delimiter: ',',\n ranges: 'yesterday,7daysago,prevweek,thismonth,prevmonth,prevquarter',\n resetValue: '',\n closeOnSelect: true,\n overlayPlacement: 'auto'\n };\n\n innerDom: any;\n popover: any;\n input?: HTMLInputElement;\n\n // 是否是第一次点击,如果是第一次点击就可以点任意地址\n isFirstClick: boolean = true;\n\n static formatValue(\n newValue: any,\n format: string,\n joinValues: boolean,\n delimiter: string,\n utc = false\n ) {\n newValue = [\n (utc ? moment.utc(newValue.startDate) : newValue.startDate)?.format(\n format\n ),\n (utc ? moment.utc(newValue.endDate) : newValue.endDate)?.format(format)\n ];\n\n if (joinValues) {\n newValue = newValue.join(delimiter);\n }\n\n return newValue;\n }\n\n static unFormatValue(\n value: any,\n format: string,\n joinValues: boolean,\n delimiter: string\n ) {\n if (!value) {\n return {\n startDate: undefined,\n endDate: undefined\n };\n }\n\n if (joinValues && typeof value === 'string') {\n value = value.split(delimiter);\n }\n\n return {\n startDate: value[0] ? moment(value[0], format) : undefined,\n endDate: value[1] ? moment(value[1], format) : undefined\n };\n }\n\n dom: React.RefObject<HTMLDivElement>;\n calendarRef: React.RefObject<HTMLDivElement>;\n nextMonth = moment().add(1, 'months');\n\n startInputRef: React.RefObject<HTMLInputElement>;\n endInputRef: React.RefObject<HTMLInputElement>;\n\n constructor(props: DateRangePickerProps) {\n super(props);\n\n this.startInputRef = React.createRef();\n this.endInputRef = React.createRef();\n this.calendarRef = React.createRef();\n this.open = this.open.bind(this);\n this.openStart = this.openStart.bind(this);\n this.openEnd = this.openEnd.bind(this);\n this.close = this.close.bind(this);\n this.startInputChange = this.startInputChange.bind(this);\n this.endInputChange = this.endInputChange.bind(this);\n this.handleDateChange = this.handleDateChange.bind(this);\n this.handleStartDateChange = this.handleStartDateChange.bind(this);\n this.handeleEndDateChange = this.handeleEndDateChange.bind(this);\n this.handleTimeStartChange = this.handleTimeStartChange.bind(this);\n this.handleTimeEndChange = this.handleTimeEndChange.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.checkStartIsValidDate = this.checkStartIsValidDate.bind(this);\n this.checkEndIsValidDate = this.checkEndIsValidDate.bind(this);\n this.confirm = this.confirm.bind(this);\n this.clearValue = this.clearValue.bind(this);\n this.dom = React.createRef();\n this.handleClick = this.handleClick.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handlePopOverClick = this.handlePopOverClick.bind(this);\n this.renderDay = this.renderDay.bind(this);\n this.renderMonth = this.renderMonth.bind(this);\n this.renderQuarter = this.renderQuarter.bind(this);\n this.renderYear = this.renderYear.bind(this);\n this.handleMobileChange = this.handleMobileChange.bind(this);\n this.handleOutClick = this.handleOutClick.bind(this);\n const {format, joinValues, delimiter, value, inputFormat} = this.props;\n const {startDate, endDate} = DateRangePicker.unFormatValue(\n value,\n format,\n joinValues,\n delimiter\n );\n this.state = {\n isOpened: false,\n isFocused: false,\n editState: 'start',\n startDate,\n endDate,\n startInputValue: startDate?.format(inputFormat),\n endInputValue: endDate?.format(inputFormat)\n };\n }\n componentDidMount() {\n document.body.addEventListener('click', this.handleOutClick, true);\n this.props?.onRef?.(this);\n }\n\n componentWillUnmount() {\n document.body.removeEventListener('click', this.handleOutClick, true);\n }\n\n handleOutClick(e: Event) {\n if (\n !e.target ||\n !this.dom.current ||\n this.dom.current.contains(e.target as HTMLElement) ||\n !this.calendarRef.current ||\n this.calendarRef.current.contains(e.target as HTMLElement)\n ) {\n return;\n }\n if (this.state.isOpened) {\n e.preventDefault();\n this.close();\n }\n }\n\n componentDidUpdate(prevProps: DateRangePickerProps) {\n const props = this.props;\n const {value, format, joinValues, inputFormat, delimiter} = props;\n\n if (prevProps.value !== value) {\n const {startDate, endDate} = DateRangePicker.unFormatValue(\n value,\n format,\n joinValues,\n delimiter\n );\n this.setState({\n startDate,\n endDate,\n startInputValue: startDate?.format(inputFormat),\n endInputValue: endDate?.format(inputFormat)\n });\n }\n }\n\n focus() {\n if (!this.dom.current || this.props.disabled) {\n return;\n }\n\n this.dom.current.focus();\n }\n\n blur() {\n if (!this.dom.current || this.props.disabled) {\n return;\n }\n\n this.dom.current.blur();\n }\n\n handleFocus(e: React.SyntheticEvent<HTMLDivElement>) {\n this.setState({\n isFocused: true\n });\n const {onFocus} = this.props;\n onFocus && onFocus(e);\n }\n\n handleBlur(e: React.SyntheticEvent<HTMLDivElement>) {\n this.setState({\n isFocused: false\n });\n const {onBlur} = this.props;\n onBlur && onBlur(e);\n }\n\n open() {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({\n isOpened: true\n });\n }\n\n openStart() {\n if (this.props.disabled) {\n return;\n }\n this.setState({\n isOpened: true,\n editState: 'start'\n });\n }\n\n openEnd() {\n if (this.props.disabled) {\n return;\n }\n this.setState({\n isOpened: true,\n editState: 'end'\n });\n }\n\n close() {\n this.setState(\n {\n isOpened: false,\n editState: undefined\n },\n this.blur\n );\n }\n\n handleClick() {\n this.state.isOpened ? this.close() : this.open();\n }\n\n handlePopOverClick(e: React.MouseEvent<any>) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n handleKeyPress(e: React.KeyboardEvent) {\n if (e.key === ' ') {\n this.handleClick();\n e.preventDefault();\n }\n }\n\n confirm() {\n if (!this.state.startDate && !this.state.endDate) {\n return;\n } else if (this.state.startDate?.isAfter(this.state.endDate)) {\n return;\n }\n\n this.props.onChange(\n DateRangePicker.formatValue(\n {\n startDate: this.state.startDate,\n endDate: this.state.endDate\n },\n this.props.format,\n this.props.joinValues,\n this.props.delimiter,\n this.props.utc\n )\n );\n if (this.state.startDate && !this.state.endDate) {\n this.setState({editState: 'end'});\n } else {\n this.close();\n }\n }\n\n filterDate(\n date: moment.Moment,\n originValue?: moment.Moment,\n timeFormat?: string,\n type: 'start' | 'end' = 'start'\n ): moment.Moment {\n let value = date.clone();\n\n // 没有初始值\n if (!originValue) {\n value = value[type === 'start' ? 'startOf' : 'endOf']('day');\n } else if (typeof timeFormat === 'string' && /ss/.test(timeFormat)) {\n value = value[type === 'start' ? 'startOf' : 'endOf']('second');\n } else if (typeof timeFormat === 'string' && /mm/.test(timeFormat)) {\n value = value[type === 'start' ? 'startOf' : 'endOf']('minute');\n } else if (typeof timeFormat === 'string' && /HH/i.test(timeFormat)) {\n value = value[type === 'start' ? 'startOf' : 'endOf']('hour');\n } else if (typeof timeFormat === 'string' && /Q/i.test(timeFormat)) {\n value = value[type === 'start' ? 'startOf' : 'endOf']('quarter');\n } else {\n value = value[type === 'start' ? 'startOf' : 'endOf']('day');\n }\n\n return value;\n }\n\n handleDateChange(newValue: moment.Moment) {\n let {editState} = this.state;\n if (editState === 'start') {\n this.handleStartDateChange(newValue);\n } else if (editState === 'end') {\n this.handeleEndDateChange(newValue);\n }\n }\n\n handleStartDateChange(newValue: moment.Moment) {\n const {timeFormat, minDate, inputFormat, type} = this.props;\n let {startDate} = this.state;\n if (minDate && newValue.isBefore(minDate)) {\n newValue = minDate;\n }\n const date = this.filterDate(\n newValue,\n startDate || minDate,\n timeFormat,\n 'start'\n );\n const newState = {\n startDate: date,\n startInputValue: date.format(inputFormat)\n } as any;\n // 这些没有时间的选择点第一次后第二次就是选结束时间\n if (\n type === 'input-date-range' ||\n type === 'input-year-range' ||\n type === 'input-quarter-range' ||\n type === 'input-month-range'\n ) {\n newState.editState = 'end';\n }\n this.setState(newState);\n }\n\n handeleEndDateChange(newValue: moment.Moment) {\n const {embed, timeFormat, inputFormat} = this.props;\n let {startDate, endDate} = this.state;\n newValue = this.getEndDateByDuration(newValue);\n\n // 如果结束时间在前面,需要清空开始时间\n if (newValue.isBefore(startDate)) {\n this.setState({\n startDate: undefined,\n startInputValue: ''\n });\n }\n\n const date = this.filterDate(newValue, endDate, timeFormat, 'end');\n this.setState(\n {\n endDate: date,\n endInputValue: date.format(inputFormat)\n },\n () => {\n embed && this.confirm();\n }\n );\n }\n\n // 手动控制输入时间\n startInputChange(e: React.ChangeEvent<HTMLInputElement>) {\n const {onChange, inputFormat, format, utc} = this.props;\n const value = e.currentTarget.value;\n this.setState({startInputValue: value});\n if (value === '') {\n onChange('');\n } else {\n let newDate = this.getStartDateByDuration(moment(value, inputFormat));\n this.setState({startDate: newDate});\n }\n }\n\n endInputChange(e: React.ChangeEvent<HTMLInputElement>) {\n const {onChange, inputFormat, format, utc} = this.props;\n const value = e.currentTarget.value;\n this.setState({endInputValue: value});\n if (value === '') {\n onChange('');\n } else {\n let newDate = this.getEndDateByDuration(moment(value, inputFormat));\n this.setState({endDate: newDate});\n }\n }\n\n // 根据 duration 修复结束时间\n getEndDateByDuration(newValue: moment.Moment) {\n const {minDuration, maxDuration, type} = this.props;\n let {startDate, endDate, editState} = this.state;\n if (!startDate) {\n return newValue;\n }\n\n // 时间范围必须统一成同一天,不然会不一致\n if (type === 'input-time-range' && startDate) {\n newValue.set({\n year: startDate.year(),\n month: startDate.month(),\n date: startDate.date()\n });\n }\n\n if (minDuration && newValue.isBefore(startDate.clone().add(minDuration))) {\n newValue = startDate.clone().add(minDuration);\n }\n\n if (maxDuration && newValue.isAfter(startDate.clone().add(maxDuration))) {\n newValue = startDate.clone().add(maxDuration);\n }\n\n return newValue;\n }\n\n // 根据 duration 修复起始时间\n getStartDateByDuration(newValue: moment.Moment) {\n const {minDuration, maxDuration, type} = this.props;\n let {endDate, editState} = this.state;\n if (!endDate) {\n return newValue;\n }\n // 时间范围必须统一成同一天,不然会不一致\n if (type === 'input-time-range' && endDate) {\n newValue.set({\n year: endDate.year(),\n month: endDate.month(),\n date: endDate.date()\n });\n }\n\n if (\n minDuration &&\n newValue.isBefore(endDate.clone().subtract(minDuration))\n ) {\n newValue = endDate.clone().subtract(minDuration);\n }\n\n if (\n maxDuration &&\n newValue.isAfter(endDate.clone().subtract(maxDuration))\n ) {\n newValue = endDate.clone().subtract(maxDuration);\n }\n\n return newValue;\n }\n\n // 主要用于处理时间的情况\n handleTimeStartChange(newValue: moment.Moment) {\n const {embed, timeFormat, inputFormat, minDuration, maxDuration, minDate} =\n this.props;\n const {startDate, endDate} = this.state;\n\n // 时间范围必须统一成同一天,不然会不一致\n if (endDate) {\n newValue.set({\n year: endDate.year(),\n month: endDate.month(),\n date: endDate.date()\n });\n }\n\n if (minDate && newValue && newValue.isBefore(minDate, 'second')) {\n newValue = minDate;\n }\n\n this.setState(\n {\n startDate: newValue,\n startInputValue: newValue.format(inputFormat)\n },\n () => {\n embed && this.confirm();\n }\n );\n }\n\n handleTimeEndChange(newValue: moment.Moment) {\n const {embed, timeFormat, inputFormat, minDuration, maxDuration, maxDate} =\n this.props;\n const {startDate, endDate} = this.state;\n if (startDate) {\n newValue.set({\n year: startDate.year(),\n month: startDate.month(),\n date: startDate.date()\n });\n }\n\n if (maxDate && newValue && newValue.isAfter(maxDate, 'second')) {\n newValue = maxDate;\n }\n\n if (\n startDate &&\n minDuration &&\n newValue.isAfter(startDate.clone().add(minDuration))\n ) {\n newValue = startDate.clone().add(minDuration);\n }\n if (\n startDate &&\n maxDuration &&\n newValue.isBefore(startDate.clone().add(maxDuration))\n ) {\n newValue = startDate.clone().add(maxDuration);\n }\n\n this.setState(\n {\n endDate: newValue,\n endInputValue: newValue.format(inputFormat)\n },\n () => {\n embed && this.confirm();\n }\n );\n }\n\n handleMobileChange(data: any, callback?: () => void) {\n this.setState(\n {\n startDate: data.startDate,\n endDate: data.endDate\n },\n callback\n );\n }\n\n selectRannge(range: PlainObject) {\n const {closeOnSelect, minDate, maxDate} = this.props;\n const now = moment();\n this.setState(\n {\n startDate:\n minDate && minDate.isValid()\n ? moment.max(range.startDate(now.clone()), minDate)\n : range.startDate(now.clone()),\n endDate:\n maxDate && maxDate.isValid()\n ? moment.min(maxDate, range.endDate(now.clone()))\n : range.endDate(now.clone())\n },\n closeOnSelect ? this.confirm : noop\n );\n }\n\n renderRanges(ranges: string | Array<ShortCuts> | undefined) {\n if (!ranges) {\n return null;\n }\n const {classPrefix: ns} = this.props;\n let rangeArr: Array<string | ShortCuts>;\n if (typeof ranges === 'string') {\n rangeArr = ranges.split(',');\n } else {\n rangeArr = ranges;\n }\n const __ = this.props.translate;\n\n return (\n <ul className={`${ns}DateRangePicker-rangers`}>\n {rangeArr.map(item => {\n if (!item) {\n return null;\n }\n let range: PlainObject = {};\n if (typeof item === 'string') {\n if (availableRanges[item]) {\n range = availableRanges[item];\n range.key = item;\n } else {\n // 通过正则尝试匹配\n for (let i = 0, len = advancedRanges.length; i < len; i++) {\n let value = advancedRanges[i];\n const m = value.regexp.exec(item);\n if (m) {\n range = value.resolve.apply(item, [__, ...m]);\n range.key = item;\n }\n }\n }\n } else if (\n (item as ShortCutDateRange).startDate &&\n (item as ShortCutDateRange).endDate\n ) {\n range = {\n ...item,\n startDate: () => (item as ShortCutDateRange).startDate,\n endDate: () => (item as ShortCutDateRange).endDate\n };\n }\n if (Object.keys(range).length) {\n return (\n <li\n className={`${ns}DateRangePicker-ranger`}\n onClick={() => this.selectRannge(range)}\n key={range.key || range.label}\n >\n <a>{__(range.label)}</a>\n </li>\n );\n } else {\n return null;\n }\n })}\n </ul>\n );\n }\n\n clearValue(e: React.MouseEvent<any>) {\n e.preventDefault();\n e.stopPropagation();\n const {onChange} = this.props;\n this.setState({startInputValue: '', endInputValue: ''});\n onChange('');\n }\n\n // 清空\n clear() {\n const {onChange} = this.props;\n this.setState({startInputValue: '', endInputValue: ''});\n onChange('');\n }\n\n // 重置\n reset() {\n const {resetValue, onChange, format, joinValues, delimiter, inputFormat} =\n this.props;\n if (!resetValue) {\n return;\n }\n const {startDate, endDate} = DateRangePicker.unFormatValue(\n resetValue,\n format,\n joinValues,\n delimiter\n );\n onChange(resetValue);\n this.setState({\n startInputValue: startDate?.format(inputFormat),\n endInputValue: endDate?.format(inputFormat)\n });\n }\n\n checkStartIsValidDate(currentDate: moment.Moment) {\n let {endDate, startDate} = this.state;\n let {minDate, maxDate, minDuration, maxDuration, viewMode} = this.props;\n const precision = viewMode === 'time' ? 'hours' : viewMode || 'day';\n\n maxDate =\n maxDate && endDate\n ? maxDate.isBefore(endDate)\n ? maxDate\n : endDate\n : undefined;\n\n if (minDate && currentDate.isBefore(minDate, precision)) {\n return false;\n } else if (maxDate && currentDate.isAfter(maxDate, precision)) {\n return false;\n } else if (\n // 如果配置了 minDuration 那么 EndDate - minDuration 之后的天数也不能选\n endDate &&\n minDuration &&\n currentDate.isAfter(endDate.clone().subtract(minDuration))\n ) {\n return false;\n } else if (\n endDate &&\n maxDuration &&\n currentDate.isBefore(endDate.clone().subtract(maxDuration))\n ) {\n return false;\n }\n\n return true;\n }\n\n checkEndIsValidDate(currentDate: moment.Moment) {\n let {startDate} = this.state;\n let {minDate, maxDate, minDuration, maxDuration, viewMode} = this.props;\n const precision = viewMode === 'time' ? 'hours' : viewMode || 'day';\n\n minDate =\n minDate && startDate\n ? minDate.isAfter(startDate)\n ? minDate\n : startDate\n : undefined;\n\n if (minDate && currentDate.isBefore(minDate, precision)) {\n return false;\n } else if (maxDate && currentDate.isAfter(maxDate, precision)) {\n return false;\n } else if (\n startDate &&\n minDuration &&\n currentDate.isBefore(startDate.clone().add(minDuration))\n ) {\n return false;\n } else if (\n startDate &&\n maxDuration &&\n currentDate.isAfter(startDate.clone().add(maxDuration))\n ) {\n return false;\n }\n\n return true;\n }\n\n renderDay(props: any, currentDate: moment.Moment) {\n let {startDate, endDate} = this.state;\n\n if (\n startDate &&\n endDate &&\n currentDate.isBetween(startDate, endDate, 'day', '[]')\n ) {\n props.className += ' rdtBetween';\n }\n\n return (\n <td {...props}>\n <span>{currentDate.date()}</span>\n </td>\n );\n }\n\n renderMonth(props: any, month: number, year: number, date: any) {\n const m = moment();\n const currentDate = m.year(year).month(month);\n const {startDate, endDate} = this.state;\n\n var localMoment = m.localeData().monthsShort(m.month(month));\n var strLength = 3;\n var monthStrFixedLength = localMoment.substring(0, strLength);\n\n if (\n startDate &&\n endDate &&\n currentDate.isBetween(startDate, endDate, 'month', '[]')\n ) {\n props.className += ' rdtBetween';\n }\n\n return (\n <td {...props}>\n <span>{monthStrFixedLength}</span>\n </td>\n );\n }\n\n renderQuarter(props: any, quarter: number, year: number) {\n const currentDate = moment().year(year).quarter(quarter);\n const {startDate, endDate} = this.state;\n\n if (\n startDate &&\n endDate &&\n currentDate.isBetween(startDate, endDate, 'quarter', '[]')\n ) {\n props.className += ' rdtBetween';\n }\n\n return (\n <td {...props}>\n <span>Q{quarter}</span>\n </td>\n );\n }\n renderYear(props: any, year: number) {\n const currentDate = moment().year(year);\n const {startDate, endDate} = this.state;\n\n if (\n startDate &&\n endDate &&\n currentDate.isBetween(startDate, endDate, 'year', '[]')\n ) {\n props.className += ' rdtBetween';\n }\n\n return (\n <td {...props}>\n <span>{year}</span>\n </td>\n );\n }\n\n renderCalendar() {\n const {\n classPrefix: ns,\n classnames: cx,\n dateFormat,\n timeFormat,\n inputFormat,\n ranges,\n locale,\n embed,\n type,\n viewMode = 'days'\n } = this.props;\n const __ = this.props.translate;\n\n const {startDate, endDate, editState} = this.state;\n\n // timeRange需要单独选择范围\n const isTimeRange = type === 'input-datetime-range' || viewMode === 'time';\n\n return (\n <div className={`${ns}DateRangePicker-wrap`} ref={this.calendarRef}>\n {this.renderRanges(ranges)}\n {(!isTimeRange || (editState === 'start' && !embed)) && (\n <Calendar\n className={`${ns}DateRangePicker-start`}\n value={startDate}\n // 区分的原因是 time-range 左侧就只能选起始时间,而其它都能在左侧同时同时选择起始和结束\n // TODO: 后续得把 time-range 代码拆分出来\n onChange={\n type === 'input-datetime-range'\n ? this.handleStartDateChange\n : viewMode === 'time'\n ? this.handleTimeStartChange\n : this.handleDateChange\n }\n requiredConfirm={false}\n dateFormat={dateFormat}\n inputFormat={inputFormat}\n timeFormat={timeFormat}\n isValidDate={this.checkStartIsValidDate}\n viewMode={viewMode}\n input={false}\n onClose={this.close}\n renderDay={this.renderDay}\n renderMonth={this.renderMonth}\n renderQuarter={this.renderQuarter}\n renderYear={this.renderYear}\n locale={locale}\n timeRangeHeader=\"开始时间\"\n />\n )}\n {(!isTimeRange || (editState === 'end' && !embed)) && (\n <Calendar\n className={`${ns}DateRangePicker-end`}\n value={endDate}\n onChange={\n type === 'input-datetime-range'\n ? this.handeleEndDateChange\n : viewMode === 'time'\n ? this.handleTimeEndChange\n : this.handleDateChange\n }\n requiredConfirm={false}\n dateFormat={dateFormat}\n inputFormat={inputFormat}\n timeFormat={timeFormat}\n viewDate={this.nextMonth}\n isEndDate\n isValidDate={this.checkEndIsValidDate}\n viewMode={viewMode}\n input={false}\n onClose={this.close}\n renderDay={this.renderDay}\n renderMonth={this.renderMonth}\n renderQuarter={this.renderQuarter}\n renderYear={this.renderYear}\n locale={locale}\n timeRangeHeader=\"结束时间\"\n />\n )}\n\n {embed ? null : (\n <div key=\"button\" className={`${ns}DateRangePicker-actions`}>\n <a className={cx('Button', 'Button--default')} onClick={this.close}>\n {__('cancel')}\n </a>\n <a\n className={cx('Button', 'Button--primary', 'm-l-sm', {\n 'is-disabled':\n (!this.state.startDate &&\n isTimeRange &&\n editState === 'start') ||\n (!this.state.endDate && isTimeRange && editState === 'end') ||\n this.state.endDate?.isBefore(this.state.startDate)\n })}\n onClick={this.confirm}\n >\n {__('confirm')}\n </a>\n </div>\n )}\n </div>\n );\n }\n\n render() {\n const {\n className,\n popoverClassName,\n classPrefix: ns,\n classnames: cx,\n value,\n startPlaceholder,\n endPlaceholder,\n popOverContainer,\n inputFormat,\n format,\n joinValues,\n delimiter,\n clearable,\n disabled,\n embed,\n overlayPlacement,\n borderMode,\n useMobileUI,\n timeFormat,\n minDate,\n maxDate,\n minDuration,\n maxDuration,\n dateFormat,\n viewMode = 'days',\n ranges\n } = this.props;\n const useCalendarMobile =\n useMobileUI &&\n isMobile() &&\n ['days', 'months', 'quarters'].indexOf(viewMode) > -1;\n\n const {isOpened, isFocused, startDate, endDate} = this.state;\n\n const __ = this.props.translate;\n\n const calendarMobile = (\n <CalendarMobile\n timeFormat={timeFormat}\n inputFormat={inputFormat}\n startDate={startDate}\n endDate={endDate}\n minDate={minDate}\n maxDate={maxDate}\n minDuration={minDuration}\n maxDuration={maxDuration}\n dateFormat={dateFormat}\n embed={embed}\n viewMode={viewMode}\n close={this.close}\n confirm={this.confirm}\n onChange={this.handleMobileChange}\n footerExtra={this.renderRanges(ranges)}\n showViewMode={\n viewMode === 'quarters' || viewMode === 'months' ? 'years' : 'months'\n }\n />\n );\n\n if (embed) {\n return (\n <div\n className={cx(\n `${ns}DateRangeCalendar`,\n {\n 'is-disabled': disabled\n },\n className\n )}\n >\n {useCalendarMobile ? calendarMobile : this.renderCalendar()}\n </div>\n );\n }\n\n const CalendarMobileTitle = (\n <div className={`${ns}CalendarMobile-title`}>\n {__('Calendar.datepicker')}\n </div>\n );\n\n return (\n <div\n tabIndex={0}\n onKeyPress={this.handleKeyPress}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx(\n `${ns}DateRangePicker`,\n {\n 'is-disabled': disabled,\n 'is-focused': isFocused,\n [`${ns}DateRangePicker--border${ucFirst(borderMode)}`]: borderMode,\n 'is-mobile': useMobileUI && isMobile()\n },\n className\n )}\n ref={this.dom}\n >\n <Input\n className={cx('DateRangePicker-input', {\n isActive: this.state.editState === 'start' && isOpened\n })}\n onChange={this.startInputChange}\n onClick={this.openStart}\n ref={this.startInputRef}\n placeholder={__(startPlaceholder)}\n autoComplete=\"off\"\n value={this.state.startInputValue || ''}\n disabled={disabled}\n />\n <span className={cx('DateRangePicker-input-separator')}>-</span>\n <Input\n className={cx('DateRangePicker-input', {\n isActive: this.state.editState === 'end' && isOpened\n })}\n onChange={this.endInputChange}\n onClick={this.openEnd}\n ref={this.endInputRef}\n placeholder={__(endPlaceholder)}\n autoComplete=\"off\"\n value={this.state.endInputValue || ''}\n disabled={disabled}\n />\n\n {clearable && !disabled && value ? (\n <a className={`${ns}DateRangePicker-clear`} onClick={this.clearValue}>\n <Icon icon=\"input-clear\" className=\"icon\" />\n </a>\n ) : null}\n\n <a className={`${ns}DateRangePicker-toggler`}>\n <Icon\n icon={viewMode === 'time' ? 'clock' : 'date'}\n className=\"icon\"\n />\n </a>\n\n {isOpened ? (\n useMobileUI && isMobile() ? (\n <PopUp\n isShow={isOpened}\n container={popOverContainer}\n className={cx(`${ns}CalendarMobile-pop`)}\n onHide={this.close}\n header={CalendarMobileTitle}\n >\n {useCalendarMobile ? calendarMobile : this.renderCalendar()}\n </PopUp>\n ) : (\n <Overlay\n target={() => this.dom.current}\n onHide={this.close}\n container={popOverContainer || (() => findDOMNode(this))}\n rootClose={false}\n placement={overlayPlacement}\n show\n >\n <PopOver\n classPrefix={ns}\n className={cx(`${ns}DateRangePicker-popover`, popoverClassName)}\n onHide={this.close}\n onClick={this.handlePopOverClick}\n >\n {this.renderCalendar()}\n </PopOver>\n </Overlay>\n )\n ) : null}\n </div>\n );\n }\n}\n\nexport default themeable(localeable(DateRangePicker));\n"
|
12
12
|
]
|
13
13
|
}
|