amis 1.5.8-beta.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/CalendarMobile.js +5 -5
- package/lib/components/CalendarMobile.js.map +2 -2
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/Cascader.d.ts +123 -0
- package/lib/components/Cascader.js +487 -0
- package/lib/components/Cascader.js.map +13 -0
- package/lib/components/CityArea.d.ts +527 -0
- package/lib/components/CityArea.js +177 -0
- package/lib/components/CityArea.js.map +13 -0
- package/lib/components/ColorPicker.js +4 -3
- package/lib/components/ColorPicker.js.map +2 -2
- package/lib/components/DatePicker.d.ts +85 -84
- package/lib/components/DatePicker.js +7 -6
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.js +8 -11
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/MonthRangePicker.js +5 -8
- package/lib/components/MonthRangePicker.js.map +2 -2
- package/lib/components/Picker.d.ts +1 -0
- package/lib/components/Picker.js +10 -6
- package/lib/components/Picker.js.map +2 -2
- package/lib/components/PickerColumn.d.ts +1 -0
- package/lib/components/PickerColumn.js +21 -17
- package/lib/components/PickerColumn.js.map +2 -2
- package/lib/components/PopOverContainer.d.ts +1 -0
- package/lib/components/PopOverContainer.js +5 -3
- package/lib/components/PopOverContainer.js.map +2 -2
- package/lib/components/PopUp.d.ts +1040 -28
- package/lib/components/PopUp.js +32 -8
- package/lib/components/PopUp.js.map +2 -2
- package/lib/components/ResultBox.d.ts +85 -84
- package/lib/components/ResultBox.js +7 -3
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/Select.js +9 -6
- package/lib/components/Select.js.map +2 -2
- package/lib/components/TransferDropDown.d.ts +85 -84
- package/lib/components/TransferDropDown.js +9 -6
- package/lib/components/TransferDropDown.js.map +2 -2
- package/lib/components/calendar/Calendar.d.ts +14 -0
- package/lib/components/calendar/Calendar.js +62 -5
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/calendar/DaysView.d.ts +20 -0
- package/lib/components/calendar/DaysView.js +51 -4
- package/lib/components/calendar/DaysView.js.map +2 -2
- package/lib/components/calendar/MonthsView.d.ts +7 -1
- package/lib/components/calendar/MonthsView.js +41 -52
- package/lib/components/calendar/MonthsView.js.map +2 -2
- package/lib/components/calendar/TimeView.d.ts +27 -20
- package/lib/components/calendar/TimeView.js +40 -4
- package/lib/components/calendar/TimeView.js.map +2 -2
- package/lib/components/calendar/YearsView.d.ts +6 -0
- package/lib/components/calendar/YearsView.js +15 -6
- package/lib/components/calendar/YearsView.js.map +2 -2
- package/lib/index.js +1 -1
- package/lib/locale/de-DE.js +4 -0
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +4 -0
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +4 -0
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +11 -2
- package/lib/renderers/DropDownButton.js +30 -12
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Form/CityDB.js +526 -2
- package/lib/renderers/Form/CityDB.js.map +2 -2
- package/lib/renderers/Form/InputCity.d.ts +85 -84
- package/lib/renderers/Form/InputCity.js +4 -2
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.js +6 -2
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +5 -2
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +6 -2
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +10 -14
- package/lib/renderers/Form/Item.js +7 -5
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/NestedSelect.d.ts +1 -0
- package/lib/renderers/Form/NestedSelect.js +7 -3
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/Select.d.ts +2 -0
- package/lib/renderers/Form/Select.js +7 -4
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.js +4 -4
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Remark.js +2 -1
- package/lib/renderers/Remark.js.map +2 -2
- package/lib/schemaExtend.js +23 -9
- package/lib/schemaExtend.js.map +2 -2
- package/lib/themes/ang-ie11.css +312 -29
- package/lib/themes/ang.css +312 -29
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +312 -29
- package/lib/themes/antd.css +312 -29
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +315 -41
- package/lib/themes/cxd.css +315 -41
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +312 -29
- package/lib/themes/dark.css +312 -29
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +315 -41
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/helper.d.ts +1 -6
- package/lib/utils/helper.js +6 -17
- package/lib/utils/helper.js.map +2 -2
- package/package.json +1 -2
- package/schema.json +2192 -20
- package/scss/_properties.scss +10 -6
- package/scss/components/_calendar.scss +9 -2
- package/scss/components/_cascader.scss +102 -0
- package/scss/components/_city-area.scss +27 -0
- package/scss/components/_dropdown.scss +39 -9
- package/scss/components/_picker-columns.scss +15 -5
- package/scss/components/_popup.scss +35 -12
- package/scss/components/_result-box.scss +31 -0
- package/scss/components/form/_checks.scss +2 -0
- package/scss/components/form/_color.scss +2 -2
- package/scss/components/form/_date-range.scss +1 -1
- package/scss/components/form/_date.scss +46 -1
- package/scss/components/form/_nested-select.scss +3 -0
- package/scss/components/form/_select.scss +32 -3
- package/scss/components/form/_transfer.scss +3 -0
- package/scss/components/form/_tree-select.scss +1 -1
- package/scss/themes/_common.scss +2 -0
- package/scss/themes/_cxd-variables.scss +3 -3
- package/scss/themes/cxd.scss +0 -12
- package/sdk/ang-ie11.css +368 -29
- package/sdk/ang.css +367 -30
- package/sdk/antd-ie11.css +368 -29
- package/sdk/antd.css +367 -30
- package/sdk/charts.js +18 -18
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +3 -3
- package/sdk/cxd-ie11.css +370 -42
- package/sdk/cxd.css +370 -44
- package/sdk/dark-ie11.css +368 -29
- package/sdk/dark.css +367 -30
- package/sdk/exceljs.js +1 -1
- package/sdk/locale/de-DE.js +4 -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 +18 -18
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +370 -42
- package/sdk/sdk.css +370 -44
- package/sdk/sdk.js +1309 -1227
- 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/components/CalendarMobile.tsx +5 -5
- package/src/components/Cascader.tsx +564 -0
- package/src/components/CityArea.tsx +315 -0
- package/src/components/ColorPicker.tsx +5 -2
- package/src/components/DatePicker.tsx +15 -5
- package/src/components/DateRangePicker.tsx +52 -43
- package/src/components/MonthRangePicker.tsx +44 -38
- package/src/components/Picker.tsx +27 -12
- package/src/components/PickerColumn.tsx +28 -18
- package/src/components/PopOverContainer.tsx +31 -17
- package/src/components/PopUp.tsx +55 -13
- package/src/components/ResultBox.tsx +10 -1
- package/src/components/Select.tsx +20 -23
- package/src/components/TransferDropDown.tsx +19 -5
- package/src/components/calendar/Calendar.tsx +86 -9
- package/src/components/calendar/DaysView.tsx +86 -2
- package/src/components/calendar/MonthsView.tsx +56 -63
- package/src/components/calendar/TimeView.tsx +82 -29
- package/src/components/calendar/YearsView.tsx +25 -6
- package/src/locale/de-DE.ts +4 -0
- package/src/locale/en-US.ts +4 -0
- package/src/locale/zh-CN.ts +4 -0
- package/src/renderers/DropDownButton.tsx +69 -35
- package/src/renderers/Form/CityDB.ts +526 -2
- package/src/renderers/Form/InputCity.tsx +23 -3
- package/src/renderers/Form/InputColor.tsx +21 -2
- package/src/renderers/Form/InputDate.tsx +10 -1
- package/src/renderers/Form/InputDateRange.tsx +9 -1
- package/src/renderers/Form/Item.tsx +14 -4
- package/src/renderers/Form/NestedSelect.tsx +31 -3
- package/src/renderers/Form/Select.tsx +15 -2
- package/src/renderers/Form/TreeSelect.tsx +10 -6
- package/src/renderers/Remark.tsx +2 -1
- package/src/schemaExtend.ts +22 -10
- package/src/utils/helper.ts +6 -16
@@ -11,6 +11,7 @@ var ResultBox_1 = (0, tslib_1.__importDefault)(require("./ResultBox"));
|
|
11
11
|
var icons_1 = require("./icons");
|
12
12
|
var InputBox_1 = (0, tslib_1.__importDefault)(require("./InputBox"));
|
13
13
|
var PopOverContainer_1 = (0, tslib_1.__importDefault)(require("./PopOverContainer"));
|
14
|
+
var helper_1 = require("../utils/helper");
|
14
15
|
var TransferDropDown = /** @class */ (function (_super) {
|
15
16
|
(0, tslib_1.__extends)(TransferDropDown, _super);
|
16
17
|
function TransferDropDown() {
|
@@ -18,11 +19,14 @@ var TransferDropDown = /** @class */ (function (_super) {
|
|
18
19
|
}
|
19
20
|
TransferDropDown.prototype.render = function () {
|
20
21
|
var _this = this;
|
21
|
-
var _a = this.props, cx = _a.classnames, value = _a.value, __ = _a.translate, disabled = _a.disabled, className = _a.className, onChange = _a.onChange, onSearch = _a.onSearch, multiple = _a.multiple, borderMode = _a.borderMode;
|
22
|
+
var _a = this.props, cx = _a.classnames, value = _a.value, __ = _a.translate, disabled = _a.disabled, className = _a.className, onChange = _a.onChange, onSearch = _a.onSearch, multiple = _a.multiple, borderMode = _a.borderMode, useMobileUI = _a.useMobileUI;
|
22
23
|
var _b = this.state, inputValue = _b.inputValue, searchResult = _b.searchResult;
|
23
|
-
|
24
|
+
var mobileUI = useMobileUI && (0, helper_1.isMobile)();
|
25
|
+
return (react_1.default.createElement(PopOverContainer_1.default, { useMobileUI: useMobileUI, popOverClassName: cx('TransferDropDown-popover'), popOverRender: function (_a) {
|
24
26
|
var onClose = _a.onClose;
|
25
|
-
return (react_1.default.createElement("div", { className: cx('TransferDropDown-content'
|
27
|
+
return (react_1.default.createElement("div", { className: cx('TransferDropDown-content', {
|
28
|
+
'is-mobile': mobileUI
|
29
|
+
}) },
|
26
30
|
onSearch ? (react_1.default.createElement("div", { className: cx('Transfer-search') },
|
27
31
|
react_1.default.createElement(InputBox_1.default, { value: inputValue, onChange: _this.handleSearch, placeholder: __('Transfer.searchKeyword'), clearable: false, onKeyDown: _this.handleSearchKeyDown }, searchResult !== null ? (react_1.default.createElement("a", { onClick: _this.handleSeachCancel },
|
28
32
|
react_1.default.createElement(icons_1.Icon, { icon: "close", className: "icon" }))) : (react_1.default.createElement(icons_1.Icon, { icon: "search", className: "icon" }))))) : null,
|
@@ -41,9 +45,8 @@ var TransferDropDown = /** @class */ (function (_super) {
|
|
41
45
|
}, multiple: multiple }))));
|
42
46
|
} }, function (_a) {
|
43
47
|
var onClick = _a.onClick, isOpened = _a.isOpened, ref = _a.ref;
|
44
|
-
return (react_1.default.createElement(ResultBox_1.default, { className: cx('TransferDropDown', className, isOpened ? 'is-active' : ''), borderMode: borderMode, allowInput: false, result: multiple ? value : (value === null || value === void 0 ? void 0 : value[0]) ? value === null || value === void 0 ? void 0 : value[0] : null, onResultChange: onChange, onResultClick: onClick, placeholder: __('Select.placeholder'), disabled: disabled, ref: ref },
|
45
|
-
react_1.default.createElement("
|
46
|
-
react_1.default.createElement(icons_1.Icon, { icon: "caret", className: "icon" }))));
|
48
|
+
return (react_1.default.createElement(ResultBox_1.default, { className: cx('TransferDropDown', className, isOpened ? 'is-active' : ''), borderMode: borderMode, allowInput: false, result: multiple ? value : (value === null || value === void 0 ? void 0 : value[0]) ? value === null || value === void 0 ? void 0 : value[0] : null, onResultChange: onChange, onResultClick: onClick, placeholder: __('Select.placeholder'), disabled: disabled, ref: ref, useMobileUI: useMobileUI }, !mobileUI ? (react_1.default.createElement("span", { className: cx('TransferDropDown-icon') },
|
49
|
+
react_1.default.createElement(icons_1.Icon, { icon: "caret", className: "icon" }))) : (react_1.default.createElement(react_1.default.Fragment, null))));
|
47
50
|
}));
|
48
51
|
};
|
49
52
|
return TransferDropDown;
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/TransferDropDown.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,oCAAqC;AACrC,kCAAmC;AACnC,uCAAmD;AACnD,iDAA8C;AAC9C,6DAA0B;AAC1B,uEAAoC;AACpC,iCAA6B;AAC7B,qEAAkC;AAClC,qFAAkD;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import {localeable} from '../locale';\nimport {themeable} from '../theme';\nimport {Transfer, TransferProps} from './Transfer';\nimport {uncontrollable} from 'uncontrollable';\nimport React from 'react';\nimport ResultBox from './ResultBox';\nimport {Icon} from './icons';\nimport InputBox from './InputBox';\nimport PopOverContainer from './PopOverContainer';\n\nexport interface TransferDropDownProps extends TransferProps {\n // 新的属性?\n multiple?: boolean;\n borderMode?: 'full' | 'half' | 'none';\n}\n\nexport class TransferDropDown extends Transfer<TransferDropDownProps> {\n render() {\n const {\n classnames: cx,\n value,\n translate: __,\n disabled,\n className,\n onChange,\n onSearch,\n multiple,\n borderMode\n } = this.props;\n const {inputValue, searchResult} = this.state;\n\n return (\n <PopOverContainer\n popOverClassName={cx('TransferDropDown-popover')}\n popOverRender={({onClose}) => (\n <div
|
11
|
+
"import {localeable} from '../locale';\nimport {themeable} from '../theme';\nimport {Transfer, TransferProps} from './Transfer';\nimport {uncontrollable} from 'uncontrollable';\nimport React from 'react';\nimport ResultBox from './ResultBox';\nimport {Icon} from './icons';\nimport InputBox from './InputBox';\nimport PopOverContainer from './PopOverContainer';\nimport {isMobile} from '../utils/helper';\n\nexport interface TransferDropDownProps extends TransferProps {\n // 新的属性?\n multiple?: boolean;\n borderMode?: 'full' | 'half' | 'none';\n useMobileUI?: boolean;\n}\n\nexport class TransferDropDown extends Transfer<TransferDropDownProps> {\n render() {\n const {\n classnames: cx,\n value,\n translate: __,\n disabled,\n className,\n onChange,\n onSearch,\n multiple,\n borderMode,\n useMobileUI\n } = this.props;\n const {inputValue, searchResult} = this.state;\n\n const mobileUI = useMobileUI && isMobile();\n return (\n <PopOverContainer\n useMobileUI={useMobileUI}\n popOverClassName={cx('TransferDropDown-popover')}\n popOverRender={({onClose}) => (\n <div\n className={cx('TransferDropDown-content', {\n 'is-mobile': mobileUI\n })}\n >\n {onSearch ? (\n <div className={cx('Transfer-search')}>\n <InputBox\n value={inputValue}\n onChange={this.handleSearch}\n placeholder={__('Transfer.searchKeyword')}\n clearable={false}\n onKeyDown={this.handleSearchKeyDown}\n >\n {searchResult !== null ? (\n <a onClick={this.handleSeachCancel}>\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n ) : (\n <Icon icon=\"search\" className=\"icon\" />\n )}\n </InputBox>\n </div>\n ) : null}\n {searchResult !== null\n ? this.renderSearchResult({\n ...this.props,\n value,\n onChange: multiple\n ? onChange\n : (value: any) => {\n onClose();\n onChange?.(value);\n },\n multiple\n })\n : this.renderOptions({\n ...this.props,\n value,\n onChange: multiple\n ? onChange\n : (value: any) => {\n onClose();\n onChange?.(value);\n },\n multiple\n })}\n </div>\n )}\n >\n {({onClick, isOpened, ref}) => (\n <ResultBox\n className={cx(\n 'TransferDropDown',\n className,\n isOpened ? 'is-active' : ''\n )}\n borderMode={borderMode}\n allowInput={false}\n result={multiple ? value : value?.[0] ? value?.[0] : null}\n onResultChange={onChange}\n onResultClick={onClick}\n placeholder={__('Select.placeholder')}\n disabled={disabled}\n ref={ref}\n useMobileUI={useMobileUI}\n >\n {!mobileUI ? (\n <span className={cx('TransferDropDown-icon')}>\n <Icon icon=\"caret\" className=\"icon\" />\n </span>\n ) : (\n <></>\n )}\n </ResultBox>\n )}\n </PopOverContainer>\n );\n }\n}\n\nexport default themeable(\n localeable(\n uncontrollable(TransferDropDown, {\n value: 'onChange'\n })\n )\n);\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -4,6 +4,19 @@
|
|
4
4
|
import ReactDatePicker from 'react-datetime';
|
5
5
|
import React from 'react';
|
6
6
|
import moment from 'moment';
|
7
|
+
export declare type DateType = 'year' | 'month' | 'date' | 'hours' | 'minutes' | 'seconds';
|
8
|
+
export interface BoundaryObject {
|
9
|
+
max: number;
|
10
|
+
min: number;
|
11
|
+
}
|
12
|
+
export interface DateBoundary {
|
13
|
+
year: BoundaryObject;
|
14
|
+
month: BoundaryObject;
|
15
|
+
date: BoundaryObject;
|
16
|
+
hours: BoundaryObject;
|
17
|
+
minutes: BoundaryObject;
|
18
|
+
seconds: BoundaryObject;
|
19
|
+
}
|
7
20
|
interface BaseDatePickerProps extends Omit<ReactDatePicker.DatetimepickerProps, 'viewMode'> {
|
8
21
|
viewMode?: 'years' | 'months' | 'days' | 'time' | 'quarters';
|
9
22
|
inputFormat?: string;
|
@@ -26,6 +39,7 @@ interface BaseDatePickerProps extends Omit<ReactDatePicker.DatetimepickerProps,
|
|
26
39
|
hideHeader?: boolean;
|
27
40
|
updateOn?: string;
|
28
41
|
useMobileUI?: boolean;
|
42
|
+
embed?: boolean;
|
29
43
|
showToolbar?: boolean;
|
30
44
|
}
|
31
45
|
declare const _default: React.ComponentType<BaseDatePickerProps>;
|
@@ -15,6 +15,15 @@ var BaseDatePicker = /** @class */ (function (_super) {
|
|
15
15
|
(0, tslib_1.__extends)(BaseDatePicker, _super);
|
16
16
|
function BaseDatePicker(props) {
|
17
17
|
var _this = _super.call(this, props) || this;
|
18
|
+
_this.timeCellLength = {
|
19
|
+
year: 4,
|
20
|
+
month: 2,
|
21
|
+
date: 2,
|
22
|
+
hours: 2,
|
23
|
+
minutes: 2,
|
24
|
+
seconds: 2,
|
25
|
+
milliseconds: 3
|
26
|
+
};
|
18
27
|
_this.getUpdateOn = function (formats) {
|
19
28
|
if (formats.date.match(/[lLD]/)) {
|
20
29
|
return 'days';
|
@@ -52,7 +61,9 @@ var BaseDatePicker = /** @class */ (function (_super) {
|
|
52
61
|
'hideHeader',
|
53
62
|
'updateOn',
|
54
63
|
'useMobileUI',
|
55
|
-
'showToolbar'
|
64
|
+
'showToolbar',
|
65
|
+
'embed',
|
66
|
+
'onScheduleClick'
|
56
67
|
].forEach(function (key) { return (props[key] = _this.props[key]); });
|
57
68
|
return props;
|
58
69
|
};
|
@@ -137,11 +148,54 @@ var BaseDatePicker = /** @class */ (function (_super) {
|
|
137
148
|
}
|
138
149
|
that.props.onChange(date);
|
139
150
|
};
|
151
|
+
_this.getDateBoundary = function (currentDate) {
|
152
|
+
var _a, _b;
|
153
|
+
var _c = currentDate.toObject(), years = _c.years, months = _c.months;
|
154
|
+
var maxDateObject = (_a = _this.props.maxDate) === null || _a === void 0 ? void 0 : _a.toObject();
|
155
|
+
var minDateObject = (_b = _this.props.minDate) === null || _b === void 0 ? void 0 : _b.toObject();
|
156
|
+
var yearBoundary = {
|
157
|
+
max: maxDateObject ? maxDateObject.years : years + 100,
|
158
|
+
min: minDateObject ? minDateObject.years : years - 100,
|
159
|
+
};
|
160
|
+
var monthBoundary = {
|
161
|
+
max: years === (maxDateObject === null || maxDateObject === void 0 ? void 0 : maxDateObject.years) ? maxDateObject.months : 11,
|
162
|
+
min: years === (minDateObject === null || minDateObject === void 0 ? void 0 : minDateObject.years) ? minDateObject.months : 0
|
163
|
+
};
|
164
|
+
var dateBoundary = {
|
165
|
+
max: years === (maxDateObject === null || maxDateObject === void 0 ? void 0 : maxDateObject.years) && months === (maxDateObject === null || maxDateObject === void 0 ? void 0 : maxDateObject.months) ? maxDateObject.date : currentDate.daysInMonth(),
|
166
|
+
min: years === (minDateObject === null || minDateObject === void 0 ? void 0 : minDateObject.years) && months === (minDateObject === null || minDateObject === void 0 ? void 0 : minDateObject.months) ? minDateObject.date : 1
|
167
|
+
};
|
168
|
+
return {
|
169
|
+
year: yearBoundary,
|
170
|
+
month: monthBoundary,
|
171
|
+
date: dateBoundary,
|
172
|
+
hours: { max: 23, min: 0 },
|
173
|
+
minutes: { max: 59, min: 0 },
|
174
|
+
seconds: { max: 59, min: 0 }
|
175
|
+
};
|
176
|
+
};
|
177
|
+
_this.timeCell = function (value, type) {
|
178
|
+
var str = value + '';
|
179
|
+
while (str.length < _this.timeCellLength[type])
|
180
|
+
str = '0' + str;
|
181
|
+
return str;
|
182
|
+
};
|
183
|
+
_this.getColumns = function (types, dateBoundary) {
|
184
|
+
var columns = [];
|
185
|
+
types.map(function (type) {
|
186
|
+
var options = (0, helper_1.getRange)(dateBoundary[type].min, dateBoundary[type].max, 1).map(function (item) {
|
187
|
+
return {
|
188
|
+
text: type === 'month' ? _this.timeCell(item + 1, type) : _this.timeCell(item, type),
|
189
|
+
value: item
|
190
|
+
};
|
191
|
+
});
|
192
|
+
columns.push({ options: options });
|
193
|
+
});
|
194
|
+
return columns;
|
195
|
+
};
|
140
196
|
_this.onConfirm = function (value, types) {
|
141
|
-
var currentDate = (_this.state.selectedDate ||
|
142
|
-
|
143
|
-
(0, moment_1.default)()).clone();
|
144
|
-
var date = (0, helper_1.convertDateArrayToDate)(value, types, currentDate);
|
197
|
+
var currentDate = (_this.state.selectedDate || _this.state.viewDate || (0, moment_1.default)()).clone();
|
198
|
+
var date = (0, helper_1.convertArrayValueToMoment)(value, types, currentDate);
|
145
199
|
if (!_this.props.value) {
|
146
200
|
_this.setState({
|
147
201
|
selectedDate: date,
|
@@ -178,6 +232,9 @@ var BaseDatePicker = /** @class */ (function (_super) {
|
|
178
232
|
viewProps.updateOn = 'months';
|
179
233
|
}
|
180
234
|
viewProps.onConfirm = this.onConfirm;
|
235
|
+
viewProps.getDateBoundary = this.getDateBoundary;
|
236
|
+
viewProps.getColumns = this.getColumns;
|
237
|
+
viewProps.timeCell = this.timeCell;
|
181
238
|
return (react_1.default.createElement("div", { className: (0, classnames_1.default)('rdt rdtStatic rdtOpen', this.props.className) },
|
182
239
|
react_1.default.createElement("div", { key: "dt", className: "rdtPicker" },
|
183
240
|
react_1.default.createElement(Component, { view: this.state.currentView, viewProps: viewProps }))));
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/calendar/Calendar.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;AAAA;;GAEG;AACH,+EAA6C;AAC7C,6DAA0B;AAC1B,uFAA0D;AAC1D,uEAA4B;AAC5B,+DAA4B;AAC5B,qCAAoE;AACpE,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file 基于 react-datetime 改造。\n */\nimport ReactDatePicker from 'react-datetime';\nimport React from 'react';\nimport CustomCalendarContainer from './CalendarContainer';\nimport cx from 'classnames';\nimport moment from 'moment';\nimport {themeable, ThemeOutterProps, ThemeProps} from '../../theme';\nimport {
|
11
|
+
"/**\n * @file 基于 react-datetime 改造。\n */\nimport ReactDatePicker from 'react-datetime';\nimport React from 'react';\nimport CustomCalendarContainer from './CalendarContainer';\nimport cx from 'classnames';\nimport moment from 'moment';\nimport {themeable, ThemeOutterProps, ThemeProps} from '../../theme';\nimport {convertArrayValueToMoment, getRange} from \"../../utils/helper\";\nimport {PickerOption} from '../PickerColumn';\n\nexport type DateType = 'year' | 'month' | 'date' | 'hours' | 'minutes' | 'seconds';\nexport interface BoundaryObject {\n max: number;\n min: number;\n}\n\nexport interface DateBoundary {\n year: BoundaryObject;\n month: BoundaryObject;\n date: BoundaryObject;\n hours: BoundaryObject;\n minutes: BoundaryObject;\n seconds: BoundaryObject;\n}\n\ninterface BaseDatePickerProps\n extends Omit<ReactDatePicker.DatetimepickerProps, 'viewMode'> {\n viewMode?: 'years' | 'months' | 'days' | 'time' | 'quarters';\n inputFormat?: string;\n onViewModeChange?: (type: string) => void;\n requiredConfirm?: boolean;\n onClose?: () => void;\n isEndDate?: boolean;\n minDate?: moment.Moment;\n maxDate?: moment.Moment;\n renderDay?: (\n props: any,\n currentDate: moment.Moment,\n selectedDate: moment.Moment\n ) => JSX.Element;\n renderQuarter?: (\n props: any,\n quartar: number,\n year?: number,\n date?: moment.Moment\n ) => JSX.Element;\n schedules?: Array<{\n startTime: Date;\n endTime: Date;\n content: string | React.ReactElement;\n color?: string;\n }>;\n largeMode?: boolean;\n onScheduleClick?: (scheduleData: any) => void;\n hideHeader?: boolean;\n updateOn?: string;\n useMobileUI?: boolean;\n embed?: boolean;\n showToolbar?: boolean;\n}\n\nclass BaseDatePicker extends ReactDatePicker {\n state: any;\n props: any;\n setState: (state: any) => void;\n getStateFromProps: any;\n\n timeCellLength = {\n year: 4,\n month: 2,\n date: 2,\n hours: 2,\n minutes: 2,\n seconds: 2,\n milliseconds: 3\n };\n\n constructor(props: any) {\n super(props);\n const state = this.getStateFromProps(this.props);\n\n if (state.open === undefined) {\n state.open = !this.props.input;\n }\n\n state.currentView = this.props.dateFormat\n ? this.props.viewMode || state.updateOn || 'days'\n : 'time';\n\n this.state = state;\n }\n\n static propTypes = {};\n\n getUpdateOn = (formats: any) => {\n if (formats.date.match(/[lLD]/)) {\n return 'days';\n } else if (formats.date.indexOf('M') !== -1) {\n return 'months';\n } else if (formats.date.indexOf('Q') !== -1) {\n return 'quarters';\n } else if (formats.date.indexOf('Y') !== -1) {\n return 'years';\n }\n\n return 'days';\n };\n\n getComponentProps = ((origin: Function) => {\n return () => {\n const props = origin.call(this);\n props.setDateTimeState = this.setState.bind(this);\n\n [\n 'inputFormat',\n 'onChange',\n 'onClose',\n 'requiredConfirm',\n 'classPrefix',\n 'prevIcon',\n 'nextIcon',\n 'isEndDate',\n 'classnames',\n 'minDate',\n 'maxDate',\n 'schedules',\n 'largeMode',\n 'onScheduleClick',\n 'hideHeader',\n 'updateOn',\n 'useMobileUI',\n 'showToolbar',\n 'embed',\n 'onScheduleClick'\n ].forEach(key => (props[key] = (this.props as any)[key]));\n\n return props;\n };\n })((this as any).getComponentProps);\n\n setDate = (type: 'month' | 'year' | 'quarters') => {\n // todo 没看懂这个是啥意思,好像没啥用\n const currentShould =\n this.props.viewMode === 'months' &&\n !/^mm$/i.test(this.props.inputFormat || '');\n const nextViews = {\n month: currentShould ? 'months' : 'days',\n year: currentShould ? 'months' : 'days',\n quarters: ''\n };\n\n if ((this.props.viewMode as any) === 'quarters') {\n nextViews.year = 'quarters';\n }\n\n return (e: any) => {\n this.setState({\n viewDate: this.state.viewDate\n .clone()\n [type](\n parseInt(e.target.closest('td').getAttribute('data-value'), 10)\n )\n .startOf(type),\n currentView: nextViews[type]\n });\n this.props.onViewModeChange?.(nextViews[type]);\n };\n };\n\n updateSelectedDate = (e: React.MouseEvent, close?: boolean) => {\n const that: any = this;\n let target = e.currentTarget,\n modifier = 0,\n viewDate = this.state.viewDate,\n currentDate = this.state.selectedDate || viewDate,\n date;\n\n if (target.className.indexOf('rdtDay') !== -1) {\n if (target.className.indexOf('rdtNew') !== -1) modifier = 1;\n else if (target.className.indexOf('rdtOld') !== -1) modifier = -1;\n\n date = viewDate\n .clone()\n .month(viewDate.month() + modifier)\n .date(parseInt(target.getAttribute('data-value')!, 10));\n } else if (target.className.indexOf('rdtMonth') !== -1) {\n date = viewDate\n .clone()\n .month(parseInt(target.getAttribute('data-value')!, 10))\n .date(currentDate.date());\n } else if (target.className.indexOf('rdtQuarter') !== -1) {\n date = viewDate\n .clone()\n .quarter(parseInt(target.getAttribute('data-value')!, 10))\n .startOf('quarter')\n .date(currentDate.date());\n } else if (target.className.indexOf('rdtYear') !== -1) {\n date = viewDate\n .clone()\n .month(currentDate.month())\n .date(currentDate.date())\n .year(parseInt(target.getAttribute('data-value')!, 10));\n }\n\n date\n .hours(currentDate.hours())\n .minutes(currentDate.minutes())\n .seconds(currentDate.seconds())\n .milliseconds(currentDate.milliseconds());\n\n if (!this.props.value) {\n var open = !(this.props.closeOnSelect && close);\n if (!open) {\n that.props.onBlur(date);\n }\n\n this.setState({\n selectedDate: date,\n viewDate: date.clone().startOf('month'),\n inputValue: date.format(this.state.inputFormat),\n open: open\n });\n } else {\n if (this.props.closeOnSelect && close) {\n that.closeCalendar();\n }\n }\n\n that.props.onChange(date);\n };\n\n getDateBoundary = (currentDate: moment.Moment) => {\n const {years, months} = currentDate.toObject();\n const maxDateObject = this.props.maxDate?.toObject();\n const minDateObject = this.props.minDate?.toObject();\n\n const yearBoundary = {\n max: maxDateObject ? maxDateObject.years : years + 100,\n min: minDateObject ? minDateObject.years : years - 100,\n };\n const monthBoundary = {\n max: years === maxDateObject?.years ? maxDateObject.months : 11,\n min: years === minDateObject?.years ? minDateObject.months : 0\n };\n const dateBoundary = {\n max: years === maxDateObject?.years && months === maxDateObject?.months ? maxDateObject.date : currentDate.daysInMonth(),\n min: years === minDateObject?.years && months === minDateObject?.months ? minDateObject.date : 1\n }\n return {\n year: yearBoundary,\n month: monthBoundary,\n date: dateBoundary,\n hours: {max: 23, min: 0},\n minutes: {max: 59, min: 0},\n seconds: {max: 59, min: 0}\n };\n };\n\n timeCell = (value: number, type: DateType) => {\n\t\tlet str = value + '';\n\t\twhile (str.length < this.timeCellLength[type])\n\t\t\tstr = '0' + str;\n\t\treturn str;\n\t};\n\n getColumns = (types: DateType[], dateBoundary: DateBoundary) => {\n const columns: { options: PickerOption[] }[] = [];\n types.map((type: DateType) => {\n const options = getRange(dateBoundary[type].min, dateBoundary[type].max, 1).map(item => {\n\n return {\n text: type === 'month' ? this.timeCell(item+1, type) : this.timeCell(item, type),\n value: item\n };\n });\n columns.push({options})\n });\n return columns;\n };\n\n onConfirm = (value: number[], types: string[]) => {\n const currentDate = (this.state.selectedDate || this.state.viewDate || moment()).clone();\n const date = convertArrayValueToMoment(value, types, currentDate);\n\n if (!this.props.value) {\n this.setState({\n selectedDate: date,\n inputValue: date!.format(this.state.inputFormat)\n });\n }\n this.props.onChange && this.props.onChange(date);\n this.props.onClose && this.props.onClose();\n };\n\n \n render() {\n const Component = CustomCalendarContainer as any;\n const viewProps = this.getComponentProps();\n\n if (this.props.viewMode === 'quarters') {\n [viewProps.updateOn, viewProps.renderQuarter] = [\n 'quarters',\n this.props.renderQuarter\n ];\n }\n else if (this.props.viewMode === 'years') {\n viewProps.updateOn = 'years';\n }\n else if (this.props.viewMode === 'months') {\n viewProps.updateOn = 'months';\n }\n\n viewProps.onConfirm = this.onConfirm;\n viewProps.getDateBoundary = this.getDateBoundary;\n viewProps.getColumns = this.getColumns;\n viewProps.timeCell = this.timeCell;\n\n return (\n <div className={cx('rdt rdtStatic rdtOpen', this.props.className)}>\n <div key=\"dt\" className=\"rdtPicker\">\n <Component view={this.state.currentView} viewProps={viewProps} />\n </div>\n </div>\n );\n }\n}\n\nconst Calendar: any = themeable(BaseDatePicker as any);\nexport default Calendar as React.ComponentType<BaseDatePickerProps>;\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -4,6 +4,8 @@ import DaysView from 'react-datetime/src/DaysView';
|
|
4
4
|
import React from 'react';
|
5
5
|
import { LocaleProps } from '../../locale';
|
6
6
|
import { ClassNamesFn } from '../../theme';
|
7
|
+
import { PickerOption } from '../PickerColumn';
|
8
|
+
import { DateType } from './Calendar';
|
7
9
|
interface CustomDaysViewProps extends LocaleProps {
|
8
10
|
classPrefix?: string;
|
9
11
|
prevIcon?: string;
|
@@ -11,12 +13,16 @@ interface CustomDaysViewProps extends LocaleProps {
|
|
11
13
|
viewDate: moment.Moment;
|
12
14
|
selectedDate: moment.Moment;
|
13
15
|
minDate: moment.Moment;
|
16
|
+
maxDate: moment.Moment;
|
17
|
+
useMobileUI: boolean;
|
18
|
+
embed: boolean;
|
14
19
|
timeFormat: string;
|
15
20
|
requiredConfirm?: boolean;
|
16
21
|
isEndDate?: boolean;
|
17
22
|
renderDay?: Function;
|
18
23
|
onClose?: () => void;
|
19
24
|
onChange: (value: moment.Moment) => void;
|
25
|
+
onConfirm?: (value: number[], types: DateType[]) => void;
|
20
26
|
setDateTimeState: (state: any) => void;
|
21
27
|
setTime: (type: string, amount: number) => void;
|
22
28
|
subtractTime: (amount: number, type: string, toSelected?: moment.Moment) => () => void;
|
@@ -35,11 +41,22 @@ interface CustomDaysViewProps extends LocaleProps {
|
|
35
41
|
largeMode?: boolean;
|
36
42
|
onScheduleClick?: (scheduleData: any) => void;
|
37
43
|
hideHeader?: boolean;
|
44
|
+
getColumns: (types: DateType[], dateBoundary: void) => any;
|
45
|
+
getDateBoundary: (currentDate: moment.Moment) => any;
|
38
46
|
}
|
39
47
|
export declare class CustomDaysView extends DaysView {
|
40
48
|
props: CustomDaysViewProps;
|
49
|
+
state: {
|
50
|
+
columns: {
|
51
|
+
options: PickerOption[];
|
52
|
+
}[];
|
53
|
+
types: DateType[];
|
54
|
+
pickerValue: number[];
|
55
|
+
};
|
56
|
+
setState: (arg0: any) => () => any;
|
41
57
|
getDaysOfWeek: (locale: any) => any;
|
42
58
|
renderDays: () => JSX.Element;
|
59
|
+
constructor(props: any);
|
43
60
|
updateSelectedDate: (event: React.MouseEvent<any>) => void;
|
44
61
|
setTime: (type: 'hours' | 'minutes' | 'seconds' | 'milliseconds', value: number) => void;
|
45
62
|
confirm: () => void;
|
@@ -51,6 +68,9 @@ export declare class CustomDaysView extends DaysView {
|
|
51
68
|
}[];
|
52
69
|
renderTimes: () => JSX.Element;
|
53
70
|
renderFooter: () => JSX.Element | null;
|
71
|
+
onPickerConfirm: (value: number[]) => void;
|
72
|
+
onPickerChange: (value: number[], index: number) => void;
|
73
|
+
renderPicker: () => JSX.Element;
|
54
74
|
render(): JSX.Element;
|
55
75
|
}
|
56
76
|
declare const _default: {
|
@@ -7,12 +7,14 @@ var moment_1 = (0, tslib_1.__importDefault)(require("moment"));
|
|
7
7
|
var DaysView_1 = (0, tslib_1.__importDefault)(require("react-datetime/src/DaysView"));
|
8
8
|
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
9
9
|
var downshift_1 = (0, tslib_1.__importDefault)(require("downshift"));
|
10
|
-
var locale_1 = require("../../locale");
|
11
10
|
var find_1 = (0, tslib_1.__importDefault)(require("lodash/find"));
|
11
|
+
var locale_1 = require("../../locale");
|
12
|
+
var helper_1 = require("../../utils/helper");
|
13
|
+
var Picker_1 = (0, tslib_1.__importDefault)(require("../Picker"));
|
12
14
|
var CustomDaysView = /** @class */ (function (_super) {
|
13
15
|
(0, tslib_1.__extends)(CustomDaysView, _super);
|
14
|
-
function CustomDaysView() {
|
15
|
-
var _this = _super
|
16
|
+
function CustomDaysView(props) {
|
17
|
+
var _this = _super.call(this, props) || this;
|
16
18
|
_this.updateSelectedDate = function (event) {
|
17
19
|
// need confirm
|
18
20
|
if (_this.props.requiredConfirm) {
|
@@ -213,6 +215,48 @@ var CustomDaysView = /** @class */ (function (_super) {
|
|
213
215
|
react_1.default.createElement("a", { className: cx('Button', 'Button--default'), onClick: _this.cancel }, __('cancel')),
|
214
216
|
react_1.default.createElement("a", { className: cx('Button', 'Button--primary', 'm-l-sm'), onClick: _this.confirm }, __('confirm')))) : null))));
|
215
217
|
};
|
218
|
+
_this.onPickerConfirm = function (value) {
|
219
|
+
_this.props.onConfirm && _this.props.onConfirm(value, _this.state.types);
|
220
|
+
};
|
221
|
+
_this.onPickerChange = function (value, index) {
|
222
|
+
var _a = _this.props, selectedDate = _a.selectedDate, viewDate = _a.viewDate;
|
223
|
+
// 变更年份、月份的时候,需要更新columns
|
224
|
+
if (index === 1 || index === 0) {
|
225
|
+
var currentDate = (selectedDate || viewDate || (0, moment_1.default)()).clone();
|
226
|
+
// 只需计算year 、month
|
227
|
+
var selectDate = (0, helper_1.convertArrayValueToMoment)(value, ['year', 'month'], currentDate);
|
228
|
+
var dateBoundary = _this.props.getDateBoundary(selectDate);
|
229
|
+
_this.setState({
|
230
|
+
columns: _this.props.getColumns(_this.state.types, dateBoundary),
|
231
|
+
pickerValue: value
|
232
|
+
});
|
233
|
+
}
|
234
|
+
};
|
235
|
+
_this.renderPicker = function () {
|
236
|
+
var __ = _this.props.translate;
|
237
|
+
var title = _this.state.types.length > 3 ? __('Date.titleTime') : __('Date.titleDate');
|
238
|
+
return (react_1.default.createElement(Picker_1.default, { translate: _this.props.translate, locale: _this.props.locale, title: title, columns: _this.state.columns, value: _this.state.pickerValue, onChange: _this.onPickerChange, onConfirm: _this.onPickerConfirm, onClose: _this.cancel }));
|
239
|
+
};
|
240
|
+
var selectedDate = props.selectedDate, viewDate = props.viewDate, timeFormat = props.timeFormat;
|
241
|
+
var currentDate = (selectedDate || viewDate || (0, moment_1.default)());
|
242
|
+
var types = ['year', 'month', 'date'];
|
243
|
+
timeFormat.split(':').forEach(function (format) {
|
244
|
+
var type = /h/i.test(format)
|
245
|
+
? 'hours'
|
246
|
+
: /m/.test(format)
|
247
|
+
? 'minutes'
|
248
|
+
: /s/.test(format)
|
249
|
+
? 'seconds'
|
250
|
+
: '';
|
251
|
+
type && types.push(type);
|
252
|
+
});
|
253
|
+
var dateBoundary = _this.props.getDateBoundary(currentDate);
|
254
|
+
var columns = _this.props.getColumns(types, dateBoundary);
|
255
|
+
_this.state = {
|
256
|
+
columns: columns,
|
257
|
+
types: types,
|
258
|
+
pickerValue: currentDate.toArray()
|
259
|
+
};
|
216
260
|
return _this;
|
217
261
|
}
|
218
262
|
CustomDaysView.prototype.computedTimeOptions = function (total) {
|
@@ -224,10 +268,13 @@ var CustomDaysView = /** @class */ (function (_super) {
|
|
224
268
|
return times;
|
225
269
|
};
|
226
270
|
CustomDaysView.prototype.render = function () {
|
271
|
+
var _a = this.props, date = _a.viewDate, useMobileUI = _a.useMobileUI, embed = _a.embed;
|
227
272
|
var footer = this.renderFooter();
|
228
|
-
var date = this.props.viewDate;
|
229
273
|
var locale = date.localeData();
|
230
274
|
var __ = this.props.translate;
|
275
|
+
if ((0, helper_1.isMobile)() && useMobileUI && !embed) {
|
276
|
+
return (react_1.default.createElement("div", { className: "rdtYears" }, this.renderPicker()));
|
277
|
+
}
|
231
278
|
var tableChildren = [
|
232
279
|
this.props.hideHeader ? null : react_1.default.createElement("thead", { key: "th" },
|
233
280
|
react_1.default.createElement("tr", null,
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/calendar/DaysView.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import moment from 'moment';\n// @ts-ignore\nimport DaysView from 'react-datetime/src/DaysView';\nimport React from 'react';\nimport Downshift from 'downshift';\nimport {LocaleProps, localeable} from '../../locale';\nimport {ClassNamesFn} from '../../theme';\nimport find from 'lodash/find';\n\ninterface CustomDaysViewProps extends LocaleProps {\n classPrefix?: string;\n prevIcon?: string;\n nextIcon?: string;\n viewDate: moment.Moment;\n selectedDate: moment.Moment;\n minDate: moment.Moment;\n timeFormat: string;\n requiredConfirm?: boolean;\n isEndDate?: boolean;\n renderDay?: Function;\n onClose?: () => void;\n onChange: (value: moment.Moment) => void;\n setDateTimeState: (state: any) => void;\n setTime: (type: string, amount: number) => void;\n subtractTime: (\n amount: number,\n type: string,\n toSelected?: moment.Moment\n ) => () => void;\n addTime: (\n amount: number,\n type: string,\n toSelected?: moment.Moment\n ) => () => void;\n isValidDate?: (\n currentDate: moment.Moment,\n selected?: moment.Moment\n ) => boolean;\n showView: (view: string) => () => void;\n updateSelectedDate: (event: React.MouseEvent<any>, close?: boolean) => void;\n handleClickOutside: () => void;\n classnames: ClassNamesFn;\n schedules?: Array<{\n startTime: Date;\n endTime: Date;\n content: any;\n className?: string;\n }>;\n largeMode?: boolean;\n onScheduleClick?: (scheduleData: any) => void;\n hideHeader?: boolean;\n}\n\nexport class CustomDaysView extends DaysView {\n props: CustomDaysViewProps;\n getDaysOfWeek: (locale: any) => any;\n renderDays: () => JSX.Element;\n\n updateSelectedDate = (event: React.MouseEvent<any>) => {\n // need confirm\n if (this.props.requiredConfirm) {\n const viewDate = this.props.viewDate.clone();\n const currentDate = this.props.selectedDate || viewDate;\n\n const target = event.target as HTMLElement;\n let modifier = 0;\n\n if (~target.className.indexOf('rdtNew')) {\n modifier = 1;\n }\n if (~target.className.indexOf('rdtOld')) {\n modifier = -1;\n }\n\n viewDate\n .month(viewDate.month() + modifier)\n .date(parseInt(target.getAttribute('data-value') as string, 10))\n .hours(currentDate.hours())\n .minutes(currentDate.minutes())\n .seconds(currentDate.seconds())\n .milliseconds(currentDate.milliseconds());\n\n this.props.setDateTimeState({\n viewDate,\n selectedDate: viewDate.clone()\n });\n return;\n }\n\n this.props.updateSelectedDate(event, true);\n };\n\n setTime = (\n type: 'hours' | 'minutes' | 'seconds' | 'milliseconds',\n value: number\n ) => {\n const date = (this.props.selectedDate || this.props.viewDate).clone();\n date[type](value);\n\n this.props.setDateTimeState({\n viewDate: date.clone(),\n selectedDate: date.clone()\n });\n\n if (!this.props.requiredConfirm) {\n this.props.onChange(date);\n }\n };\n\n confirm = () => {\n let date = (this.props.selectedDate || this.props.viewDate).clone();\n\n // 如果 minDate 是可用的,且比当前日期晚,则用 minDate\n if (this.props.minDate?.isValid() && this.props.minDate?.isAfter(date)) {\n date = this.props.minDate.clone();\n }\n\n this.props.setDateTimeState({\n selectedDate: date\n });\n this.props.onChange(date);\n this.props.onClose && this.props.onClose();\n };\n\n cancel = () => {\n this.props.onClose && this.props.onClose();\n };\n\n renderDay = (props: any, currentDate: moment.Moment) => {\n if (this.props.schedules) {\n let schedule: any[] = [];\n this.props.schedules.forEach((item: any) => {\n if (\n currentDate.isSameOrAfter(\n moment(item.startTime).subtract(1, 'days')\n ) &&\n currentDate.isSameOrBefore(item.endTime)\n ) {\n schedule.push(item);\n }\n });\n if (schedule.length > 0) {\n const cx = this.props.classnames;\n const __ = this.props.translate;\n // 日程数据\n const scheduleData = {\n scheduleData: schedule.map((item: any) => {\n return {\n ...item,\n time:\n moment(item.startTime).format('YYYY-MM-DD HH:mm:ss') +\n ' - ' +\n moment(item.endTime).format('YYYY-MM-DD HH:mm:ss')\n };\n }),\n currentDate\n };\n\n // 放大模式\n if (this.props.largeMode) {\n let showSchedule: any[] = [];\n for (let i = 0; i < schedule.length; i++) {\n if (showSchedule.length > 3) {\n break;\n }\n if (moment(schedule[i].startTime).isSame(currentDate, 'day')) {\n showSchedule.push(schedule[i]);\n } else if (currentDate.weekday() === 0) {\n // 周一重新设置日程\n showSchedule.push({\n ...schedule[i],\n width: moment(schedule[i].endTime).date() - currentDate.date()\n });\n }\n }\n [0, 1, 2].forEach((i: number) => {\n const findSchedule = find(\n schedule,\n (item: any) => item.height === i\n );\n if (\n findSchedule &&\n findSchedule !== showSchedule[i] &&\n currentDate.weekday() !== 0\n ) {\n // 生成一个空白格占位\n showSchedule.splice(i, 0, {\n width: 1,\n className: 'bg-transparent',\n content: ''\n });\n } else {\n showSchedule[i] && (showSchedule[i].height = i);\n }\n });\n // 最多展示3个\n showSchedule = showSchedule.slice(0, 3);\n const scheduleDiv = showSchedule.map((item: any, index: number) => {\n const width =\n item.width ||\n Math.min(\n moment(item.endTime).diff(moment(item.startTime), 'days') + 1,\n 7 - moment(item.startTime).weekday()\n );\n return (\n <div\n key={props.key + 'content' + index}\n className={cx(\n 'ScheduleCalendar-large-schedule-content',\n item.className\n )}\n style={{width: width + '00%'}}\n onClick={() =>\n this.props.onScheduleClick &&\n this.props.onScheduleClick(scheduleData)\n }\n >\n <div className={cx('ScheduleCalendar-text-overflow')}>\n {item.content}\n </div>\n </div>\n );\n });\n return (\n <td {...props}>\n <div className={cx('ScheduleCalendar-large-day-wrap')}>\n <div className={cx('ScheduleCalendar-large-schedule-header')}>\n {currentDate.date()}\n </div>\n {scheduleDiv}\n {schedule.length > 3 && (\n <div className={cx('ScheduleCalendar-large-schedule-footer')}>\n {schedule.length - 3} {__('more')}\n </div>\n )}\n </div>\n </td>\n );\n }\n\n // 正常模式\n const ScheduleIcon = (\n <span\n className={cx('ScheduleCalendar-icon', schedule[0].className)}\n onClick={() =>\n this.props.onScheduleClick &&\n this.props.onScheduleClick(scheduleData)\n }\n ></span>\n );\n return (\n <td {...props}>\n {currentDate.date()}\n {ScheduleIcon}\n </td>\n );\n }\n }\n return <td {...props}>{currentDate.date()}</td>;\n };\n\n computedTimeOptions(total: number) {\n const times: {label: string; value: string}[] = [];\n\n for (let t = 0; t < total; t++) {\n const label = t < 10 ? `0${t}` : `${t}`;\n times.push({label, value: label});\n }\n\n return times;\n }\n\n renderTimes = () => {\n const {\n timeFormat,\n selectedDate,\n viewDate,\n isEndDate,\n classnames: cx\n } = this.props;\n\n const date = selectedDate || (isEndDate ? viewDate.endOf('day') : viewDate);\n const inputs: Array<React.ReactNode> = [];\n\n timeFormat.split(':').forEach((format, i) => {\n const type = /h/i.test(format)\n ? 'hours'\n : /m/.test(format)\n ? 'minutes'\n : /s/.test(format)\n ? 'seconds'\n : '';\n if (type) {\n const min = 0;\n const max = type === 'hours' ? 23 : 59;\n const hours = this.computedTimeOptions(24);\n const times = this.computedTimeOptions(60);\n const options = type === 'hours' ? hours : times;\n const formatMap = {\n hours: 'HH',\n minutes: 'mm',\n seconds: 'ss'\n };\n\n inputs.push(\n <Downshift\n key={i + 'input'}\n inputValue={date.format(formatMap[type])}\n >\n {({isOpen, getInputProps, openMenu, closeMenu}) => {\n const inputProps = getInputProps({\n onFocus: () => openMenu(),\n onChange: (e: any) =>\n this.setTime(\n type,\n Math.max(\n min,\n Math.min(\n parseInt(\n e.currentTarget.value.replace(/\\D/g, ''),\n 10\n ) || 0,\n max\n )\n )\n )\n });\n return (\n <div className={cx('CalendarInputWrapper')}>\n <input\n type=\"text\"\n value={date.format(formatMap[type])}\n className={cx('CalendarInput')}\n min={min}\n max={max}\n {...inputProps}\n />\n {isOpen ? (\n <div className={cx('CalendarInput-sugs')}>\n {options.map(option => {\n return (\n <div\n key={option.value}\n className={cx('CalendarInput-sugsItem', {\n 'is-highlight':\n option.value === date.format(formatMap[type])\n })}\n onClick={() => {\n this.setTime(type, parseInt(option.value, 10));\n closeMenu();\n }}\n >\n {option.value}\n </div>\n );\n })}\n </div>\n ) : null}\n </div>\n );\n }}\n </Downshift>\n );\n\n inputs.push(<span key={i + 'divider'}>:</span>);\n }\n });\n\n inputs.length && inputs.pop();\n\n return <div>{inputs}</div>;\n };\n\n renderFooter = () => {\n if (!this.props.timeFormat && !this.props.requiredConfirm) {\n return null;\n }\n\n const {translate: __, classnames: cx} = this.props;\n\n return (\n <tfoot key=\"tf\">\n <tr>\n <td colSpan={7}>\n {this.props.timeFormat ? this.renderTimes() : null}\n {this.props.requiredConfirm ? (\n <div key=\"button\" className=\"rdtActions\">\n <a\n className={cx('Button', 'Button--default')}\n onClick={this.cancel}\n >\n {__('cancel')}\n </a>\n <a\n className={cx('Button', 'Button--primary', 'm-l-sm')}\n onClick={this.confirm}\n >\n {__('confirm')}\n </a>\n </div>\n ) : null}\n </td>\n </tr>\n </tfoot>\n );\n };\n\n render() {\n const footer = this.renderFooter();\n const date = this.props.viewDate;\n const locale = date.localeData();\n const __ = this.props.translate;\n\n const tableChildren = [\n this.props.hideHeader ? null : <thead key=\"th\">\n <tr>\n <th colSpan={7}>\n <div className=\"rdtHeader\">\n <a\n className=\"rdtPrev\"\n onClick={this.props.subtractTime(1, 'years')}\n >\n «\n </a>\n <a\n className=\"rdtPrev\"\n onClick={this.props.subtractTime(1, 'months')}\n >\n ‹\n </a>\n\n <div className=\"rdtCenter\">\n <a className=\"rdtSwitch\" onClick={this.props.showView('years')}>\n {date.format(__('dateformat.year'))}\n </a>\n <a\n className=\"rdtSwitch\"\n onClick={this.props.showView('months')}\n >\n {date.format(__('MMM'))}\n </a>\n </div>\n\n <a className=\"rdtNext\" onClick={this.props.addTime(1, 'months')}>\n ›\n </a>\n <a className=\"rdtNext\" onClick={this.props.addTime(1, 'years')}>\n »\n </a>\n </div>\n </th>\n </tr>\n <tr>\n {this.getDaysOfWeek(locale).map((day: number, index: number) => (\n <th key={day + index} className=\"dow\">\n {day}\n </th>\n ))}\n </tr>\n </thead>,\n\n <tbody key=\"tb\">{this.renderDays()}</tbody>\n ];\n\n footer && tableChildren.push(footer);\n\n return (\n <div className=\"rdtDays\">\n <table>{tableChildren}</table>\n </div>\n );\n }\n}\n\nexport default localeable(\n CustomDaysView as any as React.ComponentClass<CustomDaysViewProps>\n);\n"
|
11
|
+
"import moment from 'moment';\n// @ts-ignore\nimport DaysView from 'react-datetime/src/DaysView';\nimport React from 'react';\nimport Downshift from 'downshift';\nimport find from 'lodash/find';\nimport {LocaleProps, localeable} from '../../locale';\nimport {ClassNamesFn} from '../../theme';\nimport {isMobile, convertArrayValueToMoment} from \"../../utils/helper\";\nimport Picker from '../Picker';\nimport {PickerOption} from '../PickerColumn';\nimport {DateType} from './Calendar';\n\ninterface CustomDaysViewProps extends LocaleProps {\n classPrefix?: string;\n prevIcon?: string;\n nextIcon?: string;\n viewDate: moment.Moment;\n selectedDate: moment.Moment;\n minDate: moment.Moment;\n maxDate: moment.Moment;\n useMobileUI: boolean;\n embed: boolean;\n timeFormat: string;\n requiredConfirm?: boolean;\n isEndDate?: boolean;\n renderDay?: Function;\n onClose?: () => void;\n onChange: (value: moment.Moment) => void;\n onConfirm?: (value: number[], types: DateType[]) => void;\n setDateTimeState: (state: any) => void;\n setTime: (type: string, amount: number) => void;\n subtractTime: (\n amount: number,\n type: string,\n toSelected?: moment.Moment\n ) => () => void;\n addTime: (\n amount: number,\n type: string,\n toSelected?: moment.Moment\n ) => () => void;\n isValidDate?: (\n currentDate: moment.Moment,\n selected?: moment.Moment\n ) => boolean;\n showView: (view: string) => () => void;\n updateSelectedDate: (event: React.MouseEvent<any>, close?: boolean) => void;\n handleClickOutside: () => void;\n classnames: ClassNamesFn;\n schedules?: Array<{\n startTime: Date;\n endTime: Date;\n content: any;\n className?: string;\n }>;\n largeMode?: boolean;\n onScheduleClick?: (scheduleData: any) => void;\n hideHeader?: boolean;\n getColumns: (types: DateType[], dateBoundary: void) => any;\n getDateBoundary: (currentDate: moment.Moment) => any;\n}\n\nexport class CustomDaysView extends DaysView {\n props: CustomDaysViewProps;\n state: { columns: { options: PickerOption[] }[]; types: DateType[]; pickerValue: number[]};\n setState: (arg0: any) => () => any;\n getDaysOfWeek: (locale: any) => any;\n renderDays: () => JSX.Element;\n\n constructor(props: any) {\n super(props);\n\n const {selectedDate, viewDate, timeFormat} = props;\n const currentDate = (selectedDate || viewDate || moment());\n\n const types: DateType[] = ['year', 'month', 'date'];\n timeFormat.split(':').forEach((format: string) => {\n const type: DateType | '' = /h/i.test(format)\n ? 'hours'\n : /m/.test(format)\n ? 'minutes'\n : /s/.test(format)\n ? 'seconds'\n : '';\n type && types.push(type)\n });\n\n const dateBoundary = this.props.getDateBoundary(currentDate);\n const columns = this.props.getColumns(types, dateBoundary);\n this.state = {\n columns,\n types,\n pickerValue: currentDate.toArray()\n }\n }\n\n updateSelectedDate = (event: React.MouseEvent<any>) => {\n // need confirm\n if (this.props.requiredConfirm) {\n const viewDate = this.props.viewDate.clone();\n const currentDate = this.props.selectedDate || viewDate;\n\n const target = event.target as HTMLElement;\n let modifier = 0;\n\n if (~target.className.indexOf('rdtNew')) {\n modifier = 1;\n }\n if (~target.className.indexOf('rdtOld')) {\n modifier = -1;\n }\n\n viewDate\n .month(viewDate.month() + modifier)\n .date(parseInt(target.getAttribute('data-value') as string, 10))\n .hours(currentDate.hours())\n .minutes(currentDate.minutes())\n .seconds(currentDate.seconds())\n .milliseconds(currentDate.milliseconds());\n\n this.props.setDateTimeState({\n viewDate,\n selectedDate: viewDate.clone()\n });\n return;\n }\n\n this.props.updateSelectedDate(event, true);\n };\n\n setTime = (\n type: 'hours' | 'minutes' | 'seconds' | 'milliseconds',\n value: number\n ) => {\n const date = (this.props.selectedDate || this.props.viewDate).clone();\n date[type](value);\n\n this.props.setDateTimeState({\n viewDate: date.clone(),\n selectedDate: date.clone()\n });\n\n if (!this.props.requiredConfirm) {\n this.props.onChange(date);\n }\n };\n\n confirm = () => {\n let date = (this.props.selectedDate || this.props.viewDate).clone();\n\n // 如果 minDate 是可用的,且比当前日期晚,则用 minDate\n if (this.props.minDate?.isValid() && this.props.minDate?.isAfter(date)) {\n date = this.props.minDate.clone();\n }\n\n this.props.setDateTimeState({\n selectedDate: date\n });\n this.props.onChange(date);\n this.props.onClose && this.props.onClose();\n };\n\n cancel = () => {\n this.props.onClose && this.props.onClose();\n };\n\n renderDay = (props: any, currentDate: moment.Moment) => {\n if (this.props.schedules) {\n let schedule: any[] = [];\n this.props.schedules.forEach((item: any) => {\n if (\n currentDate.isSameOrAfter(\n moment(item.startTime).subtract(1, 'days')\n ) &&\n currentDate.isSameOrBefore(item.endTime)\n ) {\n schedule.push(item);\n }\n });\n if (schedule.length > 0) {\n const cx = this.props.classnames;\n const __ = this.props.translate;\n // 日程数据\n const scheduleData = {\n scheduleData: schedule.map((item: any) => {\n return {\n ...item,\n time:\n moment(item.startTime).format('YYYY-MM-DD HH:mm:ss') +\n ' - ' +\n moment(item.endTime).format('YYYY-MM-DD HH:mm:ss')\n };\n }),\n currentDate\n };\n\n // 放大模式\n if (this.props.largeMode) {\n let showSchedule: any[] = [];\n for (let i = 0; i < schedule.length; i++) {\n if (showSchedule.length > 3) {\n break;\n }\n if (moment(schedule[i].startTime).isSame(currentDate, 'day')) {\n showSchedule.push(schedule[i]);\n } else if (currentDate.weekday() === 0) {\n // 周一重新设置日程\n showSchedule.push({\n ...schedule[i],\n width: moment(schedule[i].endTime).date() - currentDate.date()\n });\n }\n }\n [0, 1, 2].forEach((i: number) => {\n const findSchedule = find(\n schedule,\n (item: any) => item.height === i\n );\n if (\n findSchedule &&\n findSchedule !== showSchedule[i] &&\n currentDate.weekday() !== 0\n ) {\n // 生成一个空白格占位\n showSchedule.splice(i, 0, {\n width: 1,\n className: 'bg-transparent',\n content: ''\n });\n } else {\n showSchedule[i] && (showSchedule[i].height = i);\n }\n });\n // 最多展示3个\n showSchedule = showSchedule.slice(0, 3);\n const scheduleDiv = showSchedule.map((item: any, index: number) => {\n const width =\n item.width ||\n Math.min(\n moment(item.endTime).diff(moment(item.startTime), 'days') + 1,\n 7 - moment(item.startTime).weekday()\n );\n return (\n <div\n key={props.key + 'content' + index}\n className={cx(\n 'ScheduleCalendar-large-schedule-content',\n item.className\n )}\n style={{width: width + '00%'}}\n onClick={() =>\n this.props.onScheduleClick &&\n this.props.onScheduleClick(scheduleData)\n }\n >\n <div className={cx('ScheduleCalendar-text-overflow')}>\n {item.content}\n </div>\n </div>\n );\n });\n return (\n <td {...props}>\n <div className={cx('ScheduleCalendar-large-day-wrap')}>\n <div className={cx('ScheduleCalendar-large-schedule-header')}>\n {currentDate.date()}\n </div>\n {scheduleDiv}\n {schedule.length > 3 && (\n <div className={cx('ScheduleCalendar-large-schedule-footer')}>\n {schedule.length - 3} {__('more')}\n </div>\n )}\n </div>\n </td>\n );\n }\n\n // 正常模式\n const ScheduleIcon = (\n <span\n className={cx('ScheduleCalendar-icon', schedule[0].className)}\n onClick={() =>\n this.props.onScheduleClick &&\n this.props.onScheduleClick(scheduleData)\n }\n ></span>\n );\n return (\n <td {...props}>\n {currentDate.date()}\n {ScheduleIcon}\n </td>\n );\n }\n }\n return <td {...props}>{currentDate.date()}</td>;\n };\n\n computedTimeOptions(total: number) {\n const times: {label: string; value: string}[] = [];\n\n for (let t = 0; t < total; t++) {\n const label = t < 10 ? `0${t}` : `${t}`;\n times.push({label, value: label});\n }\n\n return times;\n }\n\n renderTimes = () => {\n const {\n timeFormat,\n selectedDate,\n viewDate,\n isEndDate,\n classnames: cx\n } = this.props;\n\n const date = selectedDate || (isEndDate ? viewDate.endOf('day') : viewDate);\n const inputs: Array<React.ReactNode> = [];\n\n timeFormat.split(':').forEach((format, i) => {\n const type = /h/i.test(format)\n ? 'hours'\n : /m/.test(format)\n ? 'minutes'\n : /s/.test(format)\n ? 'seconds'\n : '';\n if (type) {\n const min = 0;\n const max = type === 'hours' ? 23 : 59;\n const hours = this.computedTimeOptions(24);\n const times = this.computedTimeOptions(60);\n const options = type === 'hours' ? hours : times;\n const formatMap = {\n hours: 'HH',\n minutes: 'mm',\n seconds: 'ss'\n };\n\n inputs.push(\n <Downshift\n key={i + 'input'}\n inputValue={date.format(formatMap[type])}\n >\n {({isOpen, getInputProps, openMenu, closeMenu}) => {\n const inputProps = getInputProps({\n onFocus: () => openMenu(),\n onChange: (e: any) =>\n this.setTime(\n type,\n Math.max(\n min,\n Math.min(\n parseInt(\n e.currentTarget.value.replace(/\\D/g, ''),\n 10\n ) || 0,\n max\n )\n )\n )\n });\n return (\n <div className={cx('CalendarInputWrapper')}>\n <input\n type=\"text\"\n value={date.format(formatMap[type])}\n className={cx('CalendarInput')}\n min={min}\n max={max}\n {...inputProps}\n />\n {isOpen ? (\n <div className={cx('CalendarInput-sugs')}>\n {options.map(option => {\n return (\n <div\n key={option.value}\n className={cx('CalendarInput-sugsItem', {\n 'is-highlight':\n option.value === date.format(formatMap[type])\n })}\n onClick={() => {\n this.setTime(type, parseInt(option.value, 10));\n closeMenu();\n }}\n >\n {option.value}\n </div>\n );\n })}\n </div>\n ) : null}\n </div>\n );\n }}\n </Downshift>\n );\n\n inputs.push(<span key={i + 'divider'}>:</span>);\n }\n });\n\n inputs.length && inputs.pop();\n\n return <div>{inputs}</div>;\n };\n\n renderFooter = () => {\n if (!this.props.timeFormat && !this.props.requiredConfirm) {\n return null;\n }\n\n const {translate: __, classnames: cx} = this.props;\n\n return (\n <tfoot key=\"tf\">\n <tr>\n <td colSpan={7}>\n {this.props.timeFormat ? this.renderTimes() : null}\n {this.props.requiredConfirm ? (\n <div key=\"button\" className=\"rdtActions\">\n <a\n className={cx('Button', 'Button--default')}\n onClick={this.cancel}\n >\n {__('cancel')}\n </a>\n <a\n className={cx('Button', 'Button--primary', 'm-l-sm')}\n onClick={this.confirm}\n >\n {__('confirm')}\n </a>\n </div>\n ) : null}\n </td>\n </tr>\n </tfoot>\n );\n };\n\n onPickerConfirm = (value: number[]) => {\n this.props.onConfirm && this.props.onConfirm(value, this.state.types);\n }\n\n onPickerChange = (value: number[], index: number) => {\n const {selectedDate, viewDate} = this.props;\n\n // 变更年份、月份的时候,需要更新columns\n if (index === 1 || index === 0) {\n const currentDate = (selectedDate || viewDate || moment()).clone();\n \n // 只需计算year 、month\n const selectDate = convertArrayValueToMoment(value, ['year', 'month'], currentDate);\n const dateBoundary = this.props.getDateBoundary(selectDate);\n this.setState({\n columns: this.props.getColumns(this.state.types, dateBoundary),\n pickerValue: value\n });\n }\n }\n\n renderPicker = () => {\n const {translate: __} = this.props;\n const title = this.state.types.length > 3 ? __('Date.titleTime') : __('Date.titleDate');\n return (\n <Picker\n translate={this.props.translate}\n locale={this.props.locale}\n title={title}\n columns={this.state.columns}\n value={this.state.pickerValue}\n onChange={this.onPickerChange}\n onConfirm={this.onPickerConfirm}\n onClose={this.cancel}\n />\n );\n };\n\n render() {\n const {viewDate: date, useMobileUI, embed} = this.props;\n const footer = this.renderFooter();\n const locale = date.localeData();\n const __ = this.props.translate;\n if (isMobile() && useMobileUI && !embed) {\n return (\n <div className=\"rdtYears\">\n {this.renderPicker()}\n </div>\n );\n }\n\n const tableChildren = [\n this.props.hideHeader ? null : <thead key=\"th\">\n <tr>\n <th colSpan={7}>\n <div className=\"rdtHeader\">\n <a\n className=\"rdtPrev\"\n onClick={this.props.subtractTime(1, 'years')}\n >\n «\n </a>\n <a\n className=\"rdtPrev\"\n onClick={this.props.subtractTime(1, 'months')}\n >\n ‹\n </a>\n\n <div className=\"rdtCenter\">\n <a className=\"rdtSwitch\" onClick={this.props.showView('years')}>\n {date.format(__('dateformat.year'))}\n </a>\n <a\n className=\"rdtSwitch\"\n onClick={this.props.showView('months')}\n >\n {date.format(__('MMM'))}\n </a>\n </div>\n\n <a className=\"rdtNext\" onClick={this.props.addTime(1, 'months')}>\n ›\n </a>\n <a className=\"rdtNext\" onClick={this.props.addTime(1, 'years')}>\n »\n </a>\n </div>\n </th>\n </tr>\n <tr>\n {this.getDaysOfWeek(locale).map((day: number, index: number) => (\n <th key={day + index} className=\"dow\">\n {day}\n </th>\n ))}\n </tr>\n </thead>,\n\n <tbody key=\"tb\">{this.renderDays()}</tbody>\n ];\n\n footer && tableChildren.push(footer);\n\n return (\n <div className=\"rdtDays\">\n <table>{tableChildren}</table>\n </div>\n );\n }\n}\n\nexport default localeable(\n CustomDaysView as any as React.ComponentClass<CustomDaysViewProps>\n);\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -3,6 +3,8 @@ import MonthsView from 'react-datetime/src/MonthsView';
|
|
3
3
|
import moment from 'moment';
|
4
4
|
import React from 'react';
|
5
5
|
import { LocaleProps } from '../../locale';
|
6
|
+
import { PickerOption } from '../PickerColumn';
|
7
|
+
import { DateType } from './Calendar';
|
6
8
|
export interface OtherProps {
|
7
9
|
inputFormat?: string;
|
8
10
|
hideHeader?: boolean;
|
@@ -19,6 +21,9 @@ export declare class CustomMonthsView extends MonthsView {
|
|
19
21
|
onChange?: () => void;
|
20
22
|
onClose?: () => void;
|
21
23
|
onConfirm?: (value: number[], types: string[]) => void;
|
24
|
+
getColumns: (types: DateType[], dateBoundary: void) => any;
|
25
|
+
timeCell: (value: number, type: DateType) => string;
|
26
|
+
getDateBoundary: (currentDate: moment.Moment) => any;
|
22
27
|
useMobileUI: boolean;
|
23
28
|
} & LocaleProps & OtherProps;
|
24
29
|
maxDateObject: {
|
@@ -33,8 +38,9 @@ export declare class CustomMonthsView extends MonthsView {
|
|
33
38
|
};
|
34
39
|
state: {
|
35
40
|
columns: {
|
36
|
-
options:
|
41
|
+
options: PickerOption[];
|
37
42
|
}[];
|
43
|
+
pickerValue: number[];
|
38
44
|
};
|
39
45
|
setState: (arg0: any) => () => any;
|
40
46
|
renderMonths: () => JSX.Element;
|