@kdcloudjs/kdesign 1.8.73 → 1.8.74

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.
Files changed (36) hide show
  1. package/dist/kdesign.css +1 -1
  2. package/dist/kdesign.css.map +1 -1
  3. package/dist/kdesign.js +349 -150
  4. package/dist/kdesign.js.map +1 -1
  5. package/dist/kdesign.min.css +1 -1
  6. package/dist/kdesign.min.js +10 -10
  7. package/dist/kdesign.min.js.map +1 -1
  8. package/es/date-picker/date-picker.js +28 -4
  9. package/es/date-picker/hooks/use-hover-value.d.ts +1 -1
  10. package/es/date-picker/hooks/use-hover-value.js +4 -2
  11. package/es/date-picker/hooks/use-value-texts.d.ts +3 -2
  12. package/es/date-picker/hooks/use-value-texts.js +3 -2
  13. package/es/date-picker/interface.d.ts +4 -0
  14. package/es/date-picker/locale/zh_CN.js +2 -0
  15. package/es/date-picker/range-picker.js +12 -8
  16. package/es/date-picker/utils/date-fns.d.ts +3 -3
  17. package/es/date-picker/utils/date-fns.js +73 -12
  18. package/es/locale/en-US.d.ts +2 -0
  19. package/es/locale/en-US.js +2 -0
  20. package/es/locale/locale.d.ts +2 -0
  21. package/es/locale/zh-CN.d.ts +2 -0
  22. package/lib/date-picker/date-picker.js +28 -4
  23. package/lib/date-picker/hooks/use-hover-value.d.ts +1 -1
  24. package/lib/date-picker/hooks/use-hover-value.js +4 -2
  25. package/lib/date-picker/hooks/use-value-texts.d.ts +3 -2
  26. package/lib/date-picker/hooks/use-value-texts.js +3 -2
  27. package/lib/date-picker/interface.d.ts +4 -0
  28. package/lib/date-picker/locale/zh_CN.js +2 -0
  29. package/lib/date-picker/range-picker.js +12 -8
  30. package/lib/date-picker/utils/date-fns.d.ts +3 -3
  31. package/lib/date-picker/utils/date-fns.js +73 -12
  32. package/lib/locale/en-US.d.ts +2 -0
  33. package/lib/locale/en-US.js +2 -0
  34. package/lib/locale/locale.d.ts +2 -0
  35. package/lib/locale/zh-CN.d.ts +2 -0
  36. package/package.json +1 -1
@@ -33,6 +33,28 @@ export var mergeDateLocale = function mergeDateLocale(globalLocale) {
33
33
  }, function (_, index) {
34
34
  return mergeLocale.monthTitle[index] || globalLocale.monthTitle[index];
35
35
  });
36
+ if (mergeLocale.months) {
37
+ var mergedMonths = _Array$from({
38
+ length: 12
39
+ }, function (_, index) {
40
+ var _a;
41
+ return mergeLocale.months[index] || ((_a = globalLocale.months) === null || _a === void 0 ? void 0 : _a[index]) || '';
42
+ });
43
+ mergeLocale.months = mergedMonths.every(function (m) {
44
+ return m !== '';
45
+ }) ? mergedMonths : undefined;
46
+ }
47
+ if (mergeLocale.monthsShort) {
48
+ var mergedMonthsShort = _Array$from({
49
+ length: 12
50
+ }, function (_, index) {
51
+ var _a;
52
+ return mergeLocale.monthsShort[index] || ((_a = globalLocale.monthsShort) === null || _a === void 0 ? void 0 : _a[index]) || '';
53
+ });
54
+ mergeLocale.monthsShort = mergedMonthsShort.every(function (m) {
55
+ return m !== '';
56
+ }) ? mergedMonthsShort : undefined;
57
+ }
36
58
  if ((mergeLocale === null || mergeLocale === void 0 ? void 0 : mergeLocale.month) && mergeLocale.month !== MONTH_DEFAULT_SUFFIX) {
37
59
  var _context;
38
60
  mergeLocale.monthTitle = _mapInstanceProperty(_context = mergeLocale.monthTitle).call(_context, function (d) {
@@ -173,7 +195,8 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
173
195
  setViewDate(dateValue);
174
196
  }, [dateValue]);
175
197
  var valueText = useValueTexts(selectedValue, {
176
- format: _format
198
+ format: _format,
199
+ locale: datePickerLang
177
200
  });
178
201
  var _useTextValueMapping = useTextValueMapping({
179
202
  valueText: valueText,
@@ -182,7 +205,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
182
205
  triggerChange(null);
183
206
  setViewDate(null);
184
207
  } else if (newText && newText.length >= _format.length) {
185
- var inputTempDate = parseDate(newText, _format);
208
+ var inputTempDate = parseDate(newText, _format, datePickerLang);
186
209
  if (inputTempDate && (!disabledDate || !disabledDate(inputTempDate))) {
187
210
  if (picker !== 'year') {
188
211
  triggerChange(inputTempDate);
@@ -200,7 +223,8 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
200
223
  triggerTextChange = _useTextValueMapping2[1],
201
224
  resetText = _useTextValueMapping2[2];
202
225
  var _useHoverValue = useHoverValue(text, {
203
- format: _format
226
+ format: _format,
227
+ locale: datePickerLang
204
228
  }),
205
229
  _useHoverValue2 = _slicedToArray(_useHoverValue, 3),
206
230
  hoverValue = _useHoverValue2[0],
@@ -266,7 +290,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
266
290
  onSelect(newValue);
267
291
  }
268
292
  if (onChange && !isEqual(dateValue, newValue)) {
269
- onChange(newValue, newValue ? formatDate(newValue, _format) : '');
293
+ onChange(newValue, newValue ? formatDate(newValue, _format, datePickerLang) : '');
270
294
  }
271
295
  setSelectedValue(newValue);
272
296
  setDateValue(newValue);
@@ -1,3 +1,3 @@
1
1
  import { DateType } from '../interface';
2
2
  import { ValueTextConfig } from './use-value-texts';
3
- export default function useHoverValue(valueText: string, { format }: ValueTextConfig): [string, (date: DateType) => void, (immediately?: boolean) => void];
3
+ export default function useHoverValue(valueText: string, { format, locale }: ValueTextConfig): [string, (date: DateType) => void, (immediately?: boolean) => void];
@@ -3,7 +3,8 @@ import isNumber from 'lodash/isNumber';
3
3
  import { useState, useEffect, useRef } from 'react';
4
4
  import useValueTexts from './use-value-texts';
5
5
  export default function useHoverValue(valueText, _ref) {
6
- var format = _ref.format;
6
+ var format = _ref.format,
7
+ locale = _ref.locale;
7
8
  var _useState = useState(null),
8
9
  _useState2 = _slicedToArray(_useState, 2),
9
10
  value = _useState2[0],
@@ -21,7 +22,8 @@ export default function useHoverValue(valueText, _ref) {
21
22
  });
22
23
  }
23
24
  var valueTexts = useValueTexts(value, {
24
- format: format
25
+ format: format,
26
+ locale: locale
25
27
  });
26
28
  function onEnter(date) {
27
29
  setValue(date);
@@ -1,5 +1,6 @@
1
- import { DateFormat, DateType } from '../interface';
1
+ import { DateFormat, DateType, InnerLocale } from '../interface';
2
2
  export interface ValueTextConfig {
3
3
  format: DateFormat;
4
+ locale?: InnerLocale;
4
5
  }
5
- export default function useValueTexts(value: DateType | null, { format }: ValueTextConfig): string;
6
+ export default function useValueTexts(value: DateType | null, { format, locale }: ValueTextConfig): string;
@@ -1,12 +1,13 @@
1
1
  import { formatDate } from '../utils/date-fns';
2
2
  import useStateMemo from './use-state-memo';
3
3
  export default function useValueTexts(value, _ref) {
4
- var format = _ref.format;
4
+ var format = _ref.format,
5
+ locale = _ref.locale;
5
6
  return useStateMemo(function () {
6
7
  if (!value) {
7
8
  return '';
8
9
  }
9
- var valueTexts = formatDate(value, format);
10
+ var valueTexts = formatDate(value, format, locale);
10
11
  return valueTexts;
11
12
  }, [value], function (prev, next) {
12
13
  return prev !== next;
@@ -17,6 +17,8 @@ export interface Locale {
17
17
  'DatePicker.month': string;
18
18
  'DatePicker.weekTitle': WeekTitleType;
19
19
  'DatePicker.monthTitle': MonthTitleType;
20
+ 'DatePicker.months'?: MonthTitleType;
21
+ 'DatePicker.monthsShort'?: MonthTitleType;
20
22
  'DatePicker.rangePlaceholder': [string, string];
21
23
  'DatePicker.rangeYearPlaceholder': [string, string];
22
24
  'DatePicker.rangeMonthPlaceholder': [string, string];
@@ -40,6 +42,8 @@ export interface InnerLocale {
40
42
  month: string;
41
43
  weekTitle: WeekTitleType;
42
44
  monthTitle: MonthTitleType;
45
+ months?: MonthTitleType;
46
+ monthsShort?: MonthTitleType;
43
47
  rangePlaceholder: [string, string];
44
48
  rangeYearPlaceholder: [string, string];
45
49
  rangeMonthPlaceholder: [string, string];
@@ -12,6 +12,8 @@ var locale = {
12
12
  'DatePicker.year': '年',
13
13
  'DatePicker.weekTitle': ['日', '一', '二', '三', '四', '五', '六'],
14
14
  'DatePicker.monthTitle': ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
15
+ 'DatePicker.months': ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
16
+ 'DatePicker.monthsShort': ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
15
17
  'DatePicker.rangePlaceholder': ['开始日期', '结束日期'],
16
18
  'DatePicker.rangeYearPlaceholder': ['开始年份', '结束年份'],
17
19
  'DatePicker.rangeMonthPlaceholder': ['开始月份', '结束月份'],
@@ -197,17 +197,19 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
197
197
  getViewDate = _useRangeViewDates2[0],
198
198
  setViewDate = _useRangeViewDates2[1];
199
199
  var startValueTexts = useValueTexts(getValue(selectedValue, 0), {
200
- format: _format
200
+ format: _format,
201
+ locale: datePickerLang
201
202
  });
202
203
  var endValueTexts = useValueTexts(getValue(selectedValue, 1), {
203
- format: _format
204
+ format: _format,
205
+ locale: datePickerLang
204
206
  });
205
207
  var _onTextChange = function onTextChange(newText, index) {
206
208
  var inputTempDate;
207
209
  if (newText === '') {
208
210
  triggerChange(updateValues(selectedValue, null, index), index);
209
211
  } else if (newText && newText.length >= _format.length) {
210
- inputTempDate = parseDate(newText, _format);
212
+ inputTempDate = parseDate(newText, _format, datePickerLang);
211
213
  var disabledFunc = index === 0 ? disabledStartDate : disabledEndDate;
212
214
  if (inputTempDate && (!disabledFunc || !disabledFunc(inputTempDate))) {
213
215
  if (picker !== 'year') {
@@ -245,14 +247,16 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
245
247
  hoverRangedValue = _useState2[0],
246
248
  setHoverRangedValue = _useState2[1];
247
249
  var _useHoverValue = useHoverValue(startText, {
248
- format: _format
250
+ format: _format,
251
+ locale: datePickerLang
249
252
  }),
250
253
  _useHoverValue2 = _slicedToArray(_useHoverValue, 3),
251
254
  startHoverValue = _useHoverValue2[0],
252
255
  onStartEnter = _useHoverValue2[1],
253
256
  onStartLeave = _useHoverValue2[2];
254
257
  var _useHoverValue3 = useHoverValue(endText, {
255
- format: _format
258
+ format: _format,
259
+ locale: datePickerLang
256
260
  }),
257
261
  _useHoverValue4 = _slicedToArray(_useHoverValue3, 3),
258
262
  endHoverValue = _useHoverValue4[0],
@@ -331,7 +335,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
331
335
  setInnerValue(values);
332
336
  }
333
337
  if (onChange && (!isEqual(getValue(dateValue, 0), getValue(values, 0)) || !isEqual(getValue(dateValue, 1), getValue(values, 1)))) {
334
- onChange(values, [values && values[0] ? formatDate(values[0], _format) : '', values && values[1] ? formatDate(values[1], _format) : '']);
338
+ onChange(values, [values && values[0] ? formatDate(values[0], _format, datePickerLang) : '', values && values[1] ? formatDate(values[1], _format, datePickerLang) : '']);
335
339
  }
336
340
  };
337
341
  var triggerChange = function triggerChange(newValue, sourceIndex) {
@@ -351,8 +355,8 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
351
355
  }
352
356
  }
353
357
  setSelectedValue(values);
354
- var startStr = values && values[0] ? formatDate(values[0], _format) : '';
355
- var endStr = values && values[1] ? formatDate(values[1], _format) : '';
358
+ var startStr = values && values[0] ? formatDate(values[0], _format, datePickerLang) : '';
359
+ var endStr = values && values[1] ? formatDate(values[1], _format, datePickerLang) : '';
356
360
  if (onCalendarChange) {
357
361
  var info = {
358
362
  range: sourceIndex === 0 ? 'start' : 'end'
@@ -27,15 +27,15 @@ import setQuarter from 'date-fns/setQuarter';
27
27
  import setYear from 'date-fns/setYear';
28
28
  import isAfter from 'date-fns/isAfter';
29
29
  import isBefore from 'date-fns/isBefore';
30
- import { DateFormat, DateType } from '../interface';
30
+ import { DateFormat, DateType, InnerLocale } from '../interface';
31
31
  export declare const DEFAULT_YEAR_ITEM_NUMBER = 12;
32
32
  export declare const localeParse: (format: string) => string;
33
33
  export declare function isNullEqual<T>(value1: T, value2: T): boolean | undefined;
34
34
  export declare function newDate<DateType extends Date | string | number>(value?: DateType): Date | null;
35
- export declare function parseDate(value: string, dateFormat: DateFormat): Date | null;
35
+ export declare function parseDate(value: string, dateFormat: DateFormat, locale?: InnerLocale): Date | null;
36
36
  export { isDate };
37
37
  export declare function isValid(date: DateType): boolean;
38
- export declare function formatDate(date: DateType, _format: DateFormat, _locale?: string): string | null;
38
+ export declare function formatDate(date: DateType, _format: DateFormat, _locale?: string | InnerLocale): string | null;
39
39
  export declare function setTime(date: DateType, { hour, minute, second }: {
40
40
  hour?: number | undefined;
41
41
  minute?: number | undefined;
@@ -1,4 +1,9 @@
1
+ import _typeof from "@babel/runtime-corejs3/helpers/typeof";
1
2
  import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
3
+ import _sortInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/sort";
4
+ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
5
+ import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
6
+ import _padStartInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/pad-start";
2
7
  import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
3
8
  import isDate from 'date-fns/isDate';
4
9
  import isValidDate from 'date-fns/isValid';
@@ -83,19 +88,63 @@ export function newDate(value) {
83
88
  var d = value ? typeof value === 'string' || value instanceof String ? parseISO(value) : toDate(value) : new Date();
84
89
  return isValid(d) ? d : null;
85
90
  }
86
- export function parseDate(value, dateFormat) {
91
+ export function parseDate(value, dateFormat, locale) {
87
92
  var parsedDate = null;
88
93
  var strictParsingValueMatch = true;
89
94
  if (_includesInstanceProperty(dateFormat).call(dateFormat, 'wo')) {
90
95
  return parseWeek(value);
91
96
  }
92
- parsedDate = parse(value, dateFormat, new Date());
97
+ var normalizedValue = value;
98
+ var normalizedFormat = dateFormat;
99
+ if (locale) {
100
+ if (_includesInstanceProperty(dateFormat).call(dateFormat, 'MMMM') && locale.months) {
101
+ var _context, _context2;
102
+ var sortedIndices = _sortInstanceProperty(_context = _mapInstanceProperty(_context2 = locale.months).call(_context2, function (m, i) {
103
+ return {
104
+ name: m,
105
+ index: i
106
+ };
107
+ })).call(_context, function (a, b) {
108
+ return b.name.length - a.name.length;
109
+ });
110
+ var matched = _findInstanceProperty(sortedIndices).call(sortedIndices, function (_ref) {
111
+ var name = _ref.name;
112
+ return _includesInstanceProperty(value).call(value, name);
113
+ });
114
+ if (matched) {
115
+ var _context3;
116
+ normalizedValue = normalizedValue.replace(matched.name, _padStartInstanceProperty(_context3 = String(matched.index + 1)).call(_context3, 2, '0'));
117
+ normalizedFormat = normalizedFormat.replace('MMMM', 'MM');
118
+ }
119
+ } else if (_includesInstanceProperty(dateFormat).call(dateFormat, 'MMM') && locale.monthsShort) {
120
+ var _context4, _context5;
121
+ var _sortedIndices = _sortInstanceProperty(_context4 = _mapInstanceProperty(_context5 = locale.monthsShort).call(_context5, function (m, i) {
122
+ return {
123
+ name: m,
124
+ index: i
125
+ };
126
+ })).call(_context4, function (a, b) {
127
+ return b.name.length - a.name.length;
128
+ });
129
+ var _matched = _findInstanceProperty(_sortedIndices).call(_sortedIndices, function (_ref2) {
130
+ var name = _ref2.name;
131
+ return _includesInstanceProperty(value).call(value, name);
132
+ });
133
+ if (_matched) {
134
+ var _context6;
135
+ normalizedValue = normalizedValue.replace(_matched.name, _padStartInstanceProperty(_context6 = String(_matched.index + 1)).call(_context6, 2, '0'));
136
+ normalizedFormat = normalizedFormat.replace('MMM', 'MM');
137
+ }
138
+ }
139
+ }
140
+ parsedDate = parse(normalizedValue, localeParse(normalizedFormat), new Date());
93
141
  if (!isValid(parsedDate)) {
94
- if (value.length > 0) {
95
- parsedDate = parse(value, _sliceInstanceProperty(dateFormat).call(dateFormat, 0, value.length), new Date());
142
+ if (normalizedValue.length > 0) {
143
+ var _context7;
144
+ parsedDate = parse(normalizedValue, _sliceInstanceProperty(_context7 = localeParse(normalizedFormat)).call(_context7, 0, normalizedValue.length), new Date());
96
145
  }
97
146
  if (!isValid(parsedDate)) {
98
- parsedDate = new Date(value);
147
+ parsedDate = new Date(normalizedValue);
99
148
  }
100
149
  }
101
150
  return isValid(parsedDate) && strictParsingValueMatch ? parsedDate : null;
@@ -108,15 +157,27 @@ export function formatDate(date, _format, _locale) {
108
157
  if (!isValid(date)) {
109
158
  return null;
110
159
  }
160
+ if (_locale && _typeof(_locale) === 'object') {
161
+ var monthIndex = getMonth(date);
162
+ var result = localeParse(_format);
163
+ if (_includesInstanceProperty(result).call(result, 'MMMM') && _locale.months) {
164
+ var escaped = _locale.months[monthIndex].replace(/'/g, "''");
165
+ result = result.replace(/MMMM/g, "'".concat(escaped, "'"));
166
+ } else if (_includesInstanceProperty(result).call(result, 'MMM') && _locale.monthsShort) {
167
+ var _escaped = _locale.monthsShort[monthIndex].replace(/'/g, "''");
168
+ result = result.replace(/MMM/g, "'".concat(_escaped, "'"));
169
+ }
170
+ return format(date, result);
171
+ }
111
172
  return format(date, localeParse(_format));
112
173
  }
113
- export function setTime(date, _ref) {
114
- var _ref$hour = _ref.hour,
115
- hour = _ref$hour === void 0 ? 0 : _ref$hour,
116
- _ref$minute = _ref.minute,
117
- minute = _ref$minute === void 0 ? 0 : _ref$minute,
118
- _ref$second = _ref.second,
119
- second = _ref$second === void 0 ? 0 : _ref$second;
174
+ export function setTime(date, _ref3) {
175
+ var _ref3$hour = _ref3.hour,
176
+ hour = _ref3$hour === void 0 ? 0 : _ref3$hour,
177
+ _ref3$minute = _ref3.minute,
178
+ minute = _ref3$minute === void 0 ? 0 : _ref3$minute,
179
+ _ref3$second = _ref3.second,
180
+ second = _ref3$second === void 0 ? 0 : _ref3$second;
120
181
  return setHours(setMinutes(setSeconds(date, second), minute), hour);
121
182
  }
122
183
  export { setMinutes, setHours, setMonth, setQuarter, setYear };
@@ -13,6 +13,8 @@ declare const locale: {
13
13
  'DatePicker.year': string;
14
14
  'DatePicker.weekTitle': string[];
15
15
  'DatePicker.monthTitle': string[];
16
+ 'DatePicker.months': string[];
17
+ 'DatePicker.monthsShort': string[];
16
18
  'DatePicker.rangePlaceholder': string[];
17
19
  'DatePicker.rangeYearPlaceholder': string[];
18
20
  'DatePicker.rangeMonthPlaceholder': string[];
@@ -13,6 +13,8 @@ var locale = {
13
13
  'DatePicker.year': '',
14
14
  'DatePicker.weekTitle': ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
15
15
  'DatePicker.monthTitle': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
16
+ 'DatePicker.months': ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
17
+ 'DatePicker.monthsShort': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
16
18
  'DatePicker.rangePlaceholder': ['Start date', 'End date'],
17
19
  'DatePicker.rangeYearPlaceholder': ['Start year', 'End year'],
18
20
  'DatePicker.rangeMonthPlaceholder': ['Start month', 'End month'],
@@ -146,6 +146,8 @@ declare class LocaleCache {
146
146
  'DatePicker.month': string;
147
147
  'DatePicker.weekTitle': import("../date-picker/interface").WeekTitleType;
148
148
  'DatePicker.monthTitle': import("../date-picker/interface").MonthTitleType;
149
+ 'DatePicker.months'?: import("../date-picker/interface").MonthTitleType | undefined;
150
+ 'DatePicker.monthsShort'?: import("../date-picker/interface").MonthTitleType | undefined;
149
151
  'DatePicker.rangePlaceholder': [string, string];
150
152
  'DatePicker.rangeYearPlaceholder': [string, string];
151
153
  'DatePicker.rangeMonthPlaceholder': [string, string];
@@ -118,6 +118,8 @@ declare const locale: {
118
118
  'DatePicker.month': string;
119
119
  'DatePicker.weekTitle': import("../date-picker/interface").WeekTitleType;
120
120
  'DatePicker.monthTitle': import("../date-picker/interface").MonthTitleType;
121
+ 'DatePicker.months'?: import("../date-picker/interface").MonthTitleType | undefined;
122
+ 'DatePicker.monthsShort'?: import("../date-picker/interface").MonthTitleType | undefined;
121
123
  'DatePicker.rangePlaceholder': [string, string];
122
124
  'DatePicker.rangeYearPlaceholder': [string, string];
123
125
  'DatePicker.rangeMonthPlaceholder': [string, string];
@@ -45,6 +45,28 @@ var mergeDateLocale = function mergeDateLocale(globalLocale) {
45
45
  }, function (_, index) {
46
46
  return mergeLocale.monthTitle[index] || globalLocale.monthTitle[index];
47
47
  });
48
+ if (mergeLocale.months) {
49
+ var mergedMonths = (0, _from.default)({
50
+ length: 12
51
+ }, function (_, index) {
52
+ var _a;
53
+ return mergeLocale.months[index] || ((_a = globalLocale.months) === null || _a === void 0 ? void 0 : _a[index]) || '';
54
+ });
55
+ mergeLocale.months = mergedMonths.every(function (m) {
56
+ return m !== '';
57
+ }) ? mergedMonths : undefined;
58
+ }
59
+ if (mergeLocale.monthsShort) {
60
+ var mergedMonthsShort = (0, _from.default)({
61
+ length: 12
62
+ }, function (_, index) {
63
+ var _a;
64
+ return mergeLocale.monthsShort[index] || ((_a = globalLocale.monthsShort) === null || _a === void 0 ? void 0 : _a[index]) || '';
65
+ });
66
+ mergeLocale.monthsShort = mergedMonthsShort.every(function (m) {
67
+ return m !== '';
68
+ }) ? mergedMonthsShort : undefined;
69
+ }
48
70
  if ((mergeLocale === null || mergeLocale === void 0 ? void 0 : mergeLocale.month) && mergeLocale.month !== MONTH_DEFAULT_SUFFIX) {
49
71
  var _context;
50
72
  mergeLocale.monthTitle = (0, _map.default)(_context = mergeLocale.monthTitle).call(_context, function (d) {
@@ -186,7 +208,8 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
186
208
  setViewDate(dateValue);
187
209
  }, [dateValue]);
188
210
  var valueText = (0, _useValueTexts.default)(selectedValue, {
189
- format: _format
211
+ format: _format,
212
+ locale: datePickerLang
190
213
  });
191
214
  var _useTextValueMapping = (0, _useTextValueMapping3.default)({
192
215
  valueText: valueText,
@@ -195,7 +218,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
195
218
  triggerChange(null);
196
219
  setViewDate(null);
197
220
  } else if (newText && newText.length >= _format.length) {
198
- var inputTempDate = (0, _dateFns.parseDate)(newText, _format);
221
+ var inputTempDate = (0, _dateFns.parseDate)(newText, _format, datePickerLang);
199
222
  if (inputTempDate && (!disabledDate || !disabledDate(inputTempDate))) {
200
223
  if (picker !== 'year') {
201
224
  triggerChange(inputTempDate);
@@ -213,7 +236,8 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
213
236
  triggerTextChange = _useTextValueMapping2[1],
214
237
  resetText = _useTextValueMapping2[2];
215
238
  var _useHoverValue = (0, _useHoverValue3.default)(text, {
216
- format: _format
239
+ format: _format,
240
+ locale: datePickerLang
217
241
  }),
218
242
  _useHoverValue2 = (0, _slicedToArray2.default)(_useHoverValue, 3),
219
243
  hoverValue = _useHoverValue2[0],
@@ -279,7 +303,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
279
303
  onSelect(newValue);
280
304
  }
281
305
  if (onChange && !(0, _dateFns.isEqual)(dateValue, newValue)) {
282
- onChange(newValue, newValue ? (0, _dateFns.formatDate)(newValue, _format) : '');
306
+ onChange(newValue, newValue ? (0, _dateFns.formatDate)(newValue, _format, datePickerLang) : '');
283
307
  }
284
308
  setSelectedValue(newValue);
285
309
  setDateValue(newValue);
@@ -1,3 +1,3 @@
1
1
  import { DateType } from '../interface';
2
2
  import { ValueTextConfig } from './use-value-texts';
3
- export default function useHoverValue(valueText: string, { format }: ValueTextConfig): [string, (date: DateType) => void, (immediately?: boolean) => void];
3
+ export default function useHoverValue(valueText: string, { format, locale }: ValueTextConfig): [string, (date: DateType) => void, (immediately?: boolean) => void];
@@ -10,7 +10,8 @@ var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
10
10
  var _react = require("react");
11
11
  var _useValueTexts = _interopRequireDefault(require("./use-value-texts"));
12
12
  function useHoverValue(valueText, _ref) {
13
- var format = _ref.format;
13
+ var format = _ref.format,
14
+ locale = _ref.locale;
14
15
  var _useState = (0, _react.useState)(null),
15
16
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
16
17
  value = _useState2[0],
@@ -28,7 +29,8 @@ function useHoverValue(valueText, _ref) {
28
29
  });
29
30
  }
30
31
  var valueTexts = (0, _useValueTexts.default)(value, {
31
- format: format
32
+ format: format,
33
+ locale: locale
32
34
  });
33
35
  function onEnter(date) {
34
36
  setValue(date);
@@ -1,5 +1,6 @@
1
- import { DateFormat, DateType } from '../interface';
1
+ import { DateFormat, DateType, InnerLocale } from '../interface';
2
2
  export interface ValueTextConfig {
3
3
  format: DateFormat;
4
+ locale?: InnerLocale;
4
5
  }
5
- export default function useValueTexts(value: DateType | null, { format }: ValueTextConfig): string;
6
+ export default function useValueTexts(value: DateType | null, { format, locale }: ValueTextConfig): string;
@@ -8,12 +8,13 @@ exports.default = useValueTexts;
8
8
  var _dateFns = require("../utils/date-fns");
9
9
  var _useStateMemo = _interopRequireDefault(require("./use-state-memo"));
10
10
  function useValueTexts(value, _ref) {
11
- var format = _ref.format;
11
+ var format = _ref.format,
12
+ locale = _ref.locale;
12
13
  return (0, _useStateMemo.default)(function () {
13
14
  if (!value) {
14
15
  return '';
15
16
  }
16
- var valueTexts = (0, _dateFns.formatDate)(value, format);
17
+ var valueTexts = (0, _dateFns.formatDate)(value, format, locale);
17
18
  return valueTexts;
18
19
  }, [value], function (prev, next) {
19
20
  return prev !== next;
@@ -17,6 +17,8 @@ export interface Locale {
17
17
  'DatePicker.month': string;
18
18
  'DatePicker.weekTitle': WeekTitleType;
19
19
  'DatePicker.monthTitle': MonthTitleType;
20
+ 'DatePicker.months'?: MonthTitleType;
21
+ 'DatePicker.monthsShort'?: MonthTitleType;
20
22
  'DatePicker.rangePlaceholder': [string, string];
21
23
  'DatePicker.rangeYearPlaceholder': [string, string];
22
24
  'DatePicker.rangeMonthPlaceholder': [string, string];
@@ -40,6 +42,8 @@ export interface InnerLocale {
40
42
  month: string;
41
43
  weekTitle: WeekTitleType;
42
44
  monthTitle: MonthTitleType;
45
+ months?: MonthTitleType;
46
+ monthsShort?: MonthTitleType;
43
47
  rangePlaceholder: [string, string];
44
48
  rangeYearPlaceholder: [string, string];
45
49
  rangeMonthPlaceholder: [string, string];
@@ -18,6 +18,8 @@ var locale = {
18
18
  'DatePicker.year': '年',
19
19
  'DatePicker.weekTitle': ['日', '一', '二', '三', '四', '五', '六'],
20
20
  'DatePicker.monthTitle': ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
21
+ 'DatePicker.months': ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
22
+ 'DatePicker.monthsShort': ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
21
23
  'DatePicker.rangePlaceholder': ['开始日期', '结束日期'],
22
24
  'DatePicker.rangeYearPlaceholder': ['开始年份', '结束年份'],
23
25
  'DatePicker.rangeMonthPlaceholder': ['开始月份', '结束月份'],
@@ -209,17 +209,19 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
209
209
  getViewDate = _useRangeViewDates2[0],
210
210
  setViewDate = _useRangeViewDates2[1];
211
211
  var startValueTexts = (0, _useValueTexts.default)((0, _utils2.getValue)(selectedValue, 0), {
212
- format: _format
212
+ format: _format,
213
+ locale: datePickerLang
213
214
  });
214
215
  var endValueTexts = (0, _useValueTexts.default)((0, _utils2.getValue)(selectedValue, 1), {
215
- format: _format
216
+ format: _format,
217
+ locale: datePickerLang
216
218
  });
217
219
  var _onTextChange = function onTextChange(newText, index) {
218
220
  var inputTempDate;
219
221
  if (newText === '') {
220
222
  triggerChange((0, _utils2.updateValues)(selectedValue, null, index), index);
221
223
  } else if (newText && newText.length >= _format.length) {
222
- inputTempDate = (0, _dateFns.parseDate)(newText, _format);
224
+ inputTempDate = (0, _dateFns.parseDate)(newText, _format, datePickerLang);
223
225
  var disabledFunc = index === 0 ? disabledStartDate : disabledEndDate;
224
226
  if (inputTempDate && (!disabledFunc || !disabledFunc(inputTempDate))) {
225
227
  if (picker !== 'year') {
@@ -257,14 +259,16 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
257
259
  hoverRangedValue = _useState2[0],
258
260
  setHoverRangedValue = _useState2[1];
259
261
  var _useHoverValue = (0, _useHoverValue5.default)(startText, {
260
- format: _format
262
+ format: _format,
263
+ locale: datePickerLang
261
264
  }),
262
265
  _useHoverValue2 = (0, _slicedToArray2.default)(_useHoverValue, 3),
263
266
  startHoverValue = _useHoverValue2[0],
264
267
  onStartEnter = _useHoverValue2[1],
265
268
  onStartLeave = _useHoverValue2[2];
266
269
  var _useHoverValue3 = (0, _useHoverValue5.default)(endText, {
267
- format: _format
270
+ format: _format,
271
+ locale: datePickerLang
268
272
  }),
269
273
  _useHoverValue4 = (0, _slicedToArray2.default)(_useHoverValue3, 3),
270
274
  endHoverValue = _useHoverValue4[0],
@@ -343,7 +347,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
343
347
  setInnerValue(values);
344
348
  }
345
349
  if (onChange && (!(0, _dateFns.isEqual)((0, _utils2.getValue)(dateValue, 0), (0, _utils2.getValue)(values, 0)) || !(0, _dateFns.isEqual)((0, _utils2.getValue)(dateValue, 1), (0, _utils2.getValue)(values, 1)))) {
346
- onChange(values, [values && values[0] ? (0, _dateFns.formatDate)(values[0], _format) : '', values && values[1] ? (0, _dateFns.formatDate)(values[1], _format) : '']);
350
+ onChange(values, [values && values[0] ? (0, _dateFns.formatDate)(values[0], _format, datePickerLang) : '', values && values[1] ? (0, _dateFns.formatDate)(values[1], _format, datePickerLang) : '']);
347
351
  }
348
352
  };
349
353
  var triggerChange = function triggerChange(newValue, sourceIndex) {
@@ -363,8 +367,8 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
363
367
  }
364
368
  }
365
369
  setSelectedValue(values);
366
- var startStr = values && values[0] ? (0, _dateFns.formatDate)(values[0], _format) : '';
367
- var endStr = values && values[1] ? (0, _dateFns.formatDate)(values[1], _format) : '';
370
+ var startStr = values && values[0] ? (0, _dateFns.formatDate)(values[0], _format, datePickerLang) : '';
371
+ var endStr = values && values[1] ? (0, _dateFns.formatDate)(values[1], _format, datePickerLang) : '';
368
372
  if (onCalendarChange) {
369
373
  var info = {
370
374
  range: sourceIndex === 0 ? 'start' : 'end'
@@ -27,15 +27,15 @@ import setQuarter from 'date-fns/setQuarter';
27
27
  import setYear from 'date-fns/setYear';
28
28
  import isAfter from 'date-fns/isAfter';
29
29
  import isBefore from 'date-fns/isBefore';
30
- import { DateFormat, DateType } from '../interface';
30
+ import { DateFormat, DateType, InnerLocale } from '../interface';
31
31
  export declare const DEFAULT_YEAR_ITEM_NUMBER = 12;
32
32
  export declare const localeParse: (format: string) => string;
33
33
  export declare function isNullEqual<T>(value1: T, value2: T): boolean | undefined;
34
34
  export declare function newDate<DateType extends Date | string | number>(value?: DateType): Date | null;
35
- export declare function parseDate(value: string, dateFormat: DateFormat): Date | null;
35
+ export declare function parseDate(value: string, dateFormat: DateFormat, locale?: InnerLocale): Date | null;
36
36
  export { isDate };
37
37
  export declare function isValid(date: DateType): boolean;
38
- export declare function formatDate(date: DateType, _format: DateFormat, _locale?: string): string | null;
38
+ export declare function formatDate(date: DateType, _format: DateFormat, _locale?: string | InnerLocale): string | null;
39
39
  export declare function setTime(date: DateType, { hour, minute, second }: {
40
40
  hour?: number | undefined;
41
41
  minute?: number | undefined;