@kdcloudjs/kdesign 1.6.23 → 1.6.25

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 (48) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/kdesign-complete.less +12 -1
  3. package/dist/kdesign.css +11 -2
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +252 -142
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +3 -3
  8. package/dist/kdesign.min.js +7 -7
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/_utils/usePopper.js +5 -1
  11. package/es/date-picker/context.d.ts +5 -1
  12. package/es/date-picker/date-panel.js +37 -9
  13. package/es/date-picker/date-picker.d.ts +2 -0
  14. package/es/date-picker/date-picker.js +24 -11
  15. package/es/date-picker/panel/month/month.js +13 -4
  16. package/es/date-picker/panel/year/year.d.ts +2 -1
  17. package/es/date-picker/panel/year/year.js +23 -5
  18. package/es/date-picker/range-picker.d.ts +2 -0
  19. package/es/date-picker/range-picker.js +20 -8
  20. package/es/date-picker/style/index.css +9 -0
  21. package/es/date-picker/style/index.less +11 -0
  22. package/es/date-picker/utils/date-fns.d.ts +1 -0
  23. package/es/date-picker/utils/date-fns.js +24 -1
  24. package/es/select/option.js +3 -2
  25. package/es/select/style/index.css +1 -1
  26. package/es/select/style/index.less +1 -1
  27. package/es/tooltip/tooltip.js +1 -1
  28. package/es/tree/utils/treeUtils.js +2 -2
  29. package/lib/_utils/usePopper.js +5 -1
  30. package/lib/date-picker/context.d.ts +5 -1
  31. package/lib/date-picker/date-panel.js +37 -9
  32. package/lib/date-picker/date-picker.d.ts +2 -0
  33. package/lib/date-picker/date-picker.js +23 -10
  34. package/lib/date-picker/panel/month/month.js +12 -3
  35. package/lib/date-picker/panel/year/year.d.ts +2 -1
  36. package/lib/date-picker/panel/year/year.js +23 -4
  37. package/lib/date-picker/range-picker.d.ts +2 -0
  38. package/lib/date-picker/range-picker.js +19 -7
  39. package/lib/date-picker/style/index.css +9 -0
  40. package/lib/date-picker/style/index.less +11 -0
  41. package/lib/date-picker/utils/date-fns.d.ts +1 -0
  42. package/lib/date-picker/utils/date-fns.js +29 -1
  43. package/lib/select/option.js +3 -2
  44. package/lib/select/style/index.css +1 -1
  45. package/lib/select/style/index.less +1 -1
  46. package/lib/tooltip/tooltip.js +1 -1
  47. package/lib/tree/utils/treeUtils.js +2 -2
  48. package/package.json +1 -1
@@ -556,7 +556,11 @@ function usePopper(locatorElement, popperElement, props) {
556
556
  focus: 'mousedown',
557
557
  contextMenu: 'mousedown'
558
558
  };
559
- popperNode === null || popperNode === void 0 ? void 0 : popperNode.addEventListener('mouseleave', debounceHidePopper);
559
+
560
+ if (matchTrigger('hover')) {
561
+ popperNode === null || popperNode === void 0 ? void 0 : popperNode.addEventListener('mouseleave', debounceHidePopper);
562
+ }
563
+
560
564
  Array.isArray(trigger) ? trigger.forEach(function (action) {
561
565
  return document.addEventListener(mapEvent[action], debounceHidePopper);
562
566
  }) : document.addEventListener(mapEvent[trigger], debounceHidePopper);
@@ -1,9 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import { DateType, InnerLocale, RangeValue, TimeUnit } from './interface';
3
+ import { IInnerPicker } from './date-picker';
3
4
  export declare type ContextOperationRefProps = {
4
5
  onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => boolean;
5
6
  onClose?: () => void;
6
7
  };
8
+ export declare type ISelectType = 'key' | 'mouse' | 'submit' | 'inner';
7
9
  export interface SingleContextProps {
8
10
  prefixCls: string;
9
11
  viewDate: DateType;
@@ -21,9 +23,11 @@ export interface SingleContextProps {
21
23
  seconds?: TimeUnit[];
22
24
  disabledTimePanel?: boolean;
23
25
  setViewDate: (date: DateType, index?: 0 | 1) => void;
24
- onSelect: (date: DateType, type: 'key' | 'mouse' | 'submit') => void;
26
+ onSelect: (date: DateType, type: ISelectType) => void;
25
27
  onDateMouseEnter: (date: DateType) => void;
26
28
  onDateMouseLeave: (arg?: boolean) => void;
29
+ innerPicker: IInnerPicker;
30
+ setInnerPicker: (p: IInnerPicker) => void;
27
31
  }
28
32
  declare const Context: React.Context<SingleContextProps>;
29
33
  export default Context;
@@ -14,13 +14,15 @@ import isBoolean from 'lodash/isBoolean';
14
14
  import DateTime from './panel/date-time/date-time';
15
15
 
16
16
  function Panel(props) {
17
- // console.log('props', props)
18
17
  var context = useContext(Context);
19
18
  var prefixCls = context.prefixCls,
20
19
  viewDate = context.viewDate,
21
20
  setViewDate = context.setViewDate,
22
21
  panelPosition = context.panelPosition,
23
- locale = context.locale;
22
+ locale = context.locale,
23
+ innerPicker = context.innerPicker,
24
+ setInnerPicker = context.setInnerPicker;
25
+ var isInInnerPicker = innerPicker !== undefined;
24
26
  var _props$picker = props.picker,
25
27
  picker = _props$picker === void 0 ? 'date' : _props$picker,
26
28
  format = props.format,
@@ -54,6 +56,14 @@ function Panel(props) {
54
56
  };
55
57
 
56
58
  var renderDatePanel = function renderDatePanel() {
59
+ if (isInInnerPicker) {
60
+ if (innerPicker === 'year') {
61
+ return renderYearPanel();
62
+ } else {
63
+ return renderMonthPanel();
64
+ }
65
+ }
66
+
57
67
  if (!showTime) {
58
68
  var dateProps = {
59
69
  picker: picker,
@@ -123,12 +133,30 @@ function Panel(props) {
123
133
  };
124
134
  };
125
135
 
136
+ var onHeaderYearClick = function onHeaderYearClick() {
137
+ if (picker === 'date') {
138
+ setInnerPicker('year');
139
+ }
140
+ };
141
+
142
+ var onHeaderMonthClick = function onHeaderMonthClick() {
143
+ if (picker === 'date') {
144
+ setInnerPicker('month');
145
+ }
146
+ };
147
+
126
148
  var renderDateHeader = function renderDateHeader() {
127
149
  var year = getYear(viewDate);
128
150
  var month = getMonth(viewDate) + 1;
129
151
  var headerCls = classnames("".concat(prefixCls, "-header"), "".concat(prefixCls, "-header-date"));
130
152
  return {
131
- children: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", null, year + locale.year), /*#__PURE__*/React.createElement("span", null, month + locale.month)),
153
+ children: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
154
+ className: "".concat(prefixCls, "-header-text-inner"),
155
+ onClick: onHeaderYearClick
156
+ }, year + locale.year), /*#__PURE__*/React.createElement("span", {
157
+ className: "".concat(prefixCls, "-header-text-inner"),
158
+ onClick: onHeaderMonthClick
159
+ }, month + locale.month)),
132
160
  className: headerCls
133
161
  };
134
162
  };
@@ -136,7 +164,7 @@ function Panel(props) {
136
164
  var onSuperPrev = function onSuperPrev() {
137
165
  var date;
138
166
 
139
- if (picker === 'year') {
167
+ if (picker === 'year' || innerPicker === 'year') {
140
168
  var _props$yearItemNumber3 = props.yearItemNumber,
141
169
  yearItemNumber = _props$yearItemNumber3 === void 0 ? DEFAULT_YEAR_ITEM_NUMBER : _props$yearItemNumber3;
142
170
  date = addYears(viewDate, 0 - yearItemNumber);
@@ -150,7 +178,7 @@ function Panel(props) {
150
178
  var onSuperNext = function onSuperNext() {
151
179
  var date;
152
180
 
153
- if (picker === 'year') {
181
+ if (picker === 'year' || innerPicker === 'year') {
154
182
  var _props$yearItemNumber4 = props.yearItemNumber,
155
183
  yearItemNumber = _props$yearItemNumber4 === void 0 ? DEFAULT_YEAR_ITEM_NUMBER : _props$yearItemNumber4;
156
184
  var _viewDate = viewDate;
@@ -229,10 +257,10 @@ function Panel(props) {
229
257
  {
230
258
  headerObj = renderDateHeader();
231
259
  headerProps = {
232
- onPrev: panelPosition === 'right' ? undefined : onPrev,
233
- onNext: panelPosition === 'left' ? undefined : onNext,
234
- onSuperPrev: panelPosition === 'right' ? undefined : onSuperPrev,
235
- onSuperNext: panelPosition === 'left' ? undefined : onSuperNext
260
+ onPrev: panelPosition === 'right' || isInInnerPicker ? undefined : onPrev,
261
+ onNext: panelPosition === 'left' || isInInnerPicker ? undefined : onNext,
262
+ onSuperPrev: panelPosition === 'right' || innerPicker === 'month' ? undefined : onSuperPrev,
263
+ onSuperNext: panelPosition === 'left' || innerPicker === 'month' ? undefined : onSuperNext
236
264
  };
237
265
  panel = renderDatePanel();
238
266
  break;
@@ -5,6 +5,7 @@ import { BorderType, InputSiteType } from '../input/input';
5
5
  export interface PickerSharedProps extends React.AriaAttributes {
6
6
  dropdownClassName?: string;
7
7
  popupStyle?: React.CSSProperties;
8
+ popupRef?: React.Ref<any>;
8
9
  transitionName?: string;
9
10
  placeholder?: string;
10
11
  allowClear?: boolean;
@@ -47,5 +48,6 @@ export interface PickerTimeProps extends PickerSharedProps, Omit<OmitPanelProps<
47
48
  defaultOpenValue?: DateType;
48
49
  }
49
50
  export declare type PickerProps = PickerBaseProps | PickerDateProps | PickerTimeProps;
51
+ export declare type IInnerPicker = undefined | 'year' | 'month';
50
52
  declare const DatePicker: React.ForwardRefExoticComponent<(Partial<PickerBaseProps> & React.RefAttributes<unknown>) | (Partial<PickerDateProps> & React.RefAttributes<unknown>) | (Partial<PickerTimeProps> & React.RefAttributes<unknown>)>;
51
53
  export default DatePicker;
@@ -1,7 +1,7 @@
1
1
  import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
2
2
  import _extends from "@babel/runtime-corejs3/helpers/extends";
3
3
  import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
4
- import React, { useContext, useEffect } from 'react';
4
+ import React, { useContext, useEffect, useState } from 'react';
5
5
  import classnames from 'classnames';
6
6
  import ConfigContext from '../config-provider/ConfigContext';
7
7
  import { useMergedState, useOnClickOutside } from '../_utils/hooks';
@@ -34,6 +34,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
34
34
  className = datePickerProps.className,
35
35
  dropdownClassName = datePickerProps.dropdownClassName,
36
36
  popupStyle = datePickerProps.popupStyle,
37
+ popupRef = datePickerProps.popupRef,
37
38
  locale = datePickerProps.locale,
38
39
  inputReadOnly = datePickerProps.inputReadOnly,
39
40
  allowClear = datePickerProps.allowClear,
@@ -86,7 +87,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
86
87
 
87
88
  var panelDivRef = React.useRef(null);
88
89
  var inputDivRef = ref || /*#__PURE__*/React.createRef();
89
- var popperRef = React.useRef(null);
90
+ var popperRef = popupRef || /*#__PURE__*/React.createRef();
90
91
  var inputRef = React.useRef(null);
91
92
  var isHourStepValid = 24 % hourStep === 0;
92
93
  var isMinuteStepValid = 60 % minuteStep === 0;
@@ -98,8 +99,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
98
99
 
99
100
  var datePickerLang = _extends({}, globalLocale.getCompLangMsg({
100
101
  componentName: 'DatePicker'
101
- }), locale || {}); // console.log(_format)
102
- // 原始数据
102
+ }), locale || {}); // 原始数据
103
103
 
104
104
 
105
105
  var _useMergedState = useMergedState(null, {
@@ -229,6 +229,11 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
229
229
  mergedMode = _useMergedState8[0],
230
230
  setInnerMode = _useMergedState8[1];
231
231
 
232
+ var _useState = useState(undefined),
233
+ _useState2 = _slicedToArray(_useState, 2),
234
+ innerPicker = _useState2[0],
235
+ setInnerPicker = _useState2[1];
236
+
232
237
  useEffect(function () {
233
238
  setInnerMode(picker);
234
239
  }, [picker]);
@@ -280,13 +285,19 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
280
285
  };
281
286
 
282
287
  var onContextSelect = function onContextSelect(date, type) {
283
- if (type === 'submit' || type !== 'key' && !needConfirmButton) {
288
+ if (type === 'inner') {
284
289
  setViewDate(date);
285
- triggerChange(date);
286
- triggerOpen(false);
290
+ setSelectedValue(date);
291
+ setDateValue(date);
287
292
  } else {
288
- setViewDate(date);
289
- triggerChange(date);
293
+ if (type === 'submit' || type !== 'key' && !needConfirmButton) {
294
+ setViewDate(date);
295
+ triggerChange(date);
296
+ triggerOpen(false);
297
+ } else {
298
+ setViewDate(date);
299
+ triggerChange(date);
300
+ }
290
301
  }
291
302
  };
292
303
 
@@ -374,9 +385,11 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
374
385
  onSelect: onContextSelect,
375
386
  setViewDate: setViewDate,
376
387
  onDateMouseEnter: onEnter,
377
- onDateMouseLeave: onLeave
388
+ onDateMouseLeave: onLeave,
389
+ innerPicker: innerPicker,
390
+ setInnerPicker: setInnerPicker
378
391
  }
379
- }, panelNode, extraFooter || rangesNode || todayNode ? /*#__PURE__*/React.createElement("div", {
392
+ }, panelNode, (extraFooter || rangesNode || todayNode) && innerPicker === undefined ? /*#__PURE__*/React.createElement("div", {
380
393
  className: "".concat(datePickerPrefixCls, "-footer")
381
394
  }, extraFooter, rangesNode, todayNode) : null);
382
395
  }
@@ -4,7 +4,7 @@ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/insta
4
4
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
5
5
  import React, { useContext } from 'react';
6
6
  import classnames from 'classnames';
7
- import { getMonth, newDate, getYear, setMonth, isAfter, isBefore, isSameMonth, getStartOfMonth } from '../../utils/date-fns';
7
+ import { getMonth, newDate, getYear, setMonth, isAfter, isBefore, isSameMonth, getStartOfMonth, setYearOrMonthOfDate } from '../../utils/date-fns';
8
8
  import Context from '../../context';
9
9
  import useRangeCls from '../../hooks/use-range-cls';
10
10
  var monthsThreeColumns = [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]];
@@ -20,7 +20,9 @@ function Month(props) {
20
20
  rangeValue = context.rangeValue,
21
21
  panelPosition = context.panelPosition,
22
22
  hoverRangedValue = context.hoverRangedValue,
23
- locale = context.locale;
23
+ locale = context.locale,
24
+ innerPicker = context.innerPicker,
25
+ setInnerPicker = context.setInnerPicker;
24
26
  var disabledDate = props.disabledDate;
25
27
 
26
28
  var _dateValue;
@@ -89,8 +91,15 @@ function Month(props) {
89
91
  });
90
92
 
91
93
  var handleClick = function handleClick(date) {
92
- if (!(disabledDate && disabledDate(date))) {
93
- onSelect(date, 'mouse');
94
+ if (innerPicker === undefined) {
95
+ if (!(disabledDate && disabledDate(date))) {
96
+ onSelect(date, 'mouse');
97
+ }
98
+ } else {
99
+ //
100
+ var _viewDate = viewDate;
101
+ onSelect(setYearOrMonthOfDate(_viewDate, date, 'month'), 'inner');
102
+ setInnerPicker(undefined);
94
103
  }
95
104
  };
96
105
 
@@ -1,10 +1,11 @@
1
1
  /// <reference types="react" />
2
- import { DateType } from '../../interface';
2
+ import { DateType, PickerMode } from '../../interface';
3
3
  export interface YearProps {
4
4
  yearItemNumber: number;
5
5
  minDate?: DateType;
6
6
  maxDate?: DateType;
7
7
  disabledDate?: (date: DateType) => boolean;
8
+ picker?: PickerMode;
8
9
  }
9
10
  declare function Year(props: YearProps): JSX.Element;
10
11
  export default Year;
@@ -3,8 +3,9 @@ import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
3
3
  import React, { useContext } from 'react';
4
4
  import classnames from 'classnames';
5
5
  import Context from '../../context';
6
- import { getYearsPeriod, getYear, newDate, setYear, isAfter, getStartOfYear, isSameYear, isBefore } from '../../utils/date-fns';
6
+ import { getYearsPeriod, getYear, newDate, setYear, isAfter, getStartOfYear, isSameYear, isBefore, setYearOrMonthOfDate } from '../../utils/date-fns';
7
7
  import useRangeCls from '../../hooks/use-range-cls';
8
+ import { getClosingViewDate } from '../../utils';
8
9
 
9
10
  function Year(props) {
10
11
  var context = useContext(Context);
@@ -16,9 +17,13 @@ function Year(props) {
16
17
  onSelect = context.onSelect,
17
18
  rangeValue = context.rangeValue,
18
19
  panelPosition = context.panelPosition,
19
- hoverRangedValue = context.hoverRangedValue;
20
+ hoverRangedValue = context.hoverRangedValue,
21
+ innerPicker = context.innerPicker,
22
+ setInnerPicker = context.setInnerPicker;
20
23
  var yearItemNumber = props.yearItemNumber,
21
- disabledDate = props.disabledDate;
24
+ disabledDate = props.disabledDate,
25
+ _props$picker = props.picker,
26
+ picker = _props$picker === void 0 ? 'date' : _props$picker;
22
27
 
23
28
  var _dateValue;
24
29
 
@@ -86,8 +91,21 @@ function Year(props) {
86
91
  });
87
92
 
88
93
  var handleClick = function handleClick(date) {
89
- if (!(disabledDate && disabledDate(date))) {
90
- onSelect(date, 'mouse');
94
+ if (innerPicker === undefined) {
95
+ if (!(disabledDate && disabledDate(date))) {
96
+ onSelect(date, 'mouse');
97
+ }
98
+ } else {
99
+ //
100
+ var _viewDate = viewDate;
101
+
102
+ if (panelPosition) {
103
+ _viewDate = getClosingViewDate(viewDate, picker, -1);
104
+ } // date = addYears(_viewDate, 1)
105
+
106
+
107
+ onSelect(setYearOrMonthOfDate(_viewDate, date), 'inner');
108
+ setInnerPicker(undefined);
91
109
  }
92
110
  };
93
111
 
@@ -29,6 +29,8 @@ export interface RangePickerSharedProps {
29
29
  dateRender?: RangeDateRender;
30
30
  panelRender?: (originPanel: React.ReactNode) => React.ReactNode;
31
31
  getPopupContainer?: (node: HTMLElement) => HTMLElement;
32
+ popupRef?: React.Ref<any>;
33
+ popupStyle?: React.CSSProperties;
32
34
  }
33
35
  declare type OmitPickerProps<Props> = Omit<Props, 'value' | 'defaultValue' | 'defaultPickerValue' | 'placeholder' | 'disabled' | 'disabledTimePanel' | 'showToday' | 'showTime' | 'mode' | 'onChange' | 'onSelect' | 'onPanelChange' | 'pickerValue' | 'onPickerValueChange' | 'onOk' | 'dateRender'>;
34
36
  export declare type RangeShowTimeObject = Omit<SharedTimeProps, 'defaultValue'> & {
@@ -4,7 +4,7 @@ import _extends from "@babel/runtime-corejs3/helpers/extends";
4
4
  import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
5
5
  import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
6
6
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
7
- import React, { useContext, useEffect } from 'react';
7
+ import React, { useContext, useEffect, useState } from 'react';
8
8
  import isSameWeek from 'date-fns/isSameWeek';
9
9
  import ConfigContext from '../config-provider/ConfigContext';
10
10
  import { useMergedState, useOnClickOutside } from '../_utils/hooks';
@@ -85,6 +85,8 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
85
85
  allowEmpty = datePickerProps.allowEmpty,
86
86
  className = datePickerProps.className,
87
87
  style = datePickerProps.style,
88
+ popupStyle = datePickerProps.popupStyle,
89
+ popupRef = datePickerProps.popupRef,
88
90
  borderType = datePickerProps.borderType,
89
91
  separator = datePickerProps.separator,
90
92
  ranges = datePickerProps.ranges,
@@ -130,7 +132,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
130
132
  var separatorRef = React.useRef(null);
131
133
  var startInputRef = React.useRef(null);
132
134
  var endInputRef = React.useRef(null);
133
- var popperRef = React.useRef(null);
135
+ var popperRef = popupRef || /*#__PURE__*/React.createRef();
134
136
  var openRecordsRef = React.useRef({});
135
137
  var mergedDisabled = React.useMemo(function () {
136
138
  if (Array.isArray(disabled)) {
@@ -346,6 +348,11 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
346
348
  mergedModes = _useMergedState10[0],
347
349
  setInnerModes = _useMergedState10[1];
348
350
 
351
+ var _useState = useState(undefined),
352
+ _useState2 = _slicedToArray(_useState, 2),
353
+ innerPicker = _useState2[0],
354
+ setInnerPicker = _useState2[1];
355
+
349
356
  useEffect(function () {
350
357
  setInnerModes([picker, picker]);
351
358
  }, [picker]); // const triggerModesChange = (modes: [PanelMode, PanelMode], values: RangeValue) => {
@@ -474,8 +481,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
474
481
  var values = updateValues(selectedValue, date, mergedActivePickerIndex);
475
482
 
476
483
  if (type === 'submit' || type !== 'key' && !needConfirmButton) {
477
- // triggerChange will also update selected values
478
- triggerChange(values, mergedActivePickerIndex); // clear hover value style
484
+ triggerChange(values, mergedActivePickerIndex);
479
485
 
480
486
  if (mergedActivePickerIndex === 0) {
481
487
  onStartLeave();
@@ -581,7 +587,9 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
581
587
  onSelect: onSelect,
582
588
  setViewDate: setViewDate,
583
589
  onDateMouseEnter: onDateMouseEnter,
584
- onDateMouseLeave: onDateMouseLeave
590
+ onDateMouseLeave: onDateMouseLeave,
591
+ innerPicker: innerPicker,
592
+ setInnerPicker: setInnerPicker
585
593
  }
586
594
  }, renderPanel());
587
595
  var rightPanel = /*#__PURE__*/React.createElement(Context.Provider, {
@@ -596,7 +604,9 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
596
604
  onSelect: onSelect,
597
605
  setViewDate: setViewDate,
598
606
  onDateMouseEnter: onDateMouseEnter,
599
- onDateMouseLeave: onDateMouseLeave
607
+ onDateMouseLeave: onDateMouseLeave,
608
+ innerPicker: innerPicker,
609
+ setInnerPicker: setInnerPicker
600
610
  }
601
611
  }, renderPanel());
602
612
  panels = /*#__PURE__*/React.createElement("div", {
@@ -621,7 +631,9 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
621
631
  onSelect: onSelect,
622
632
  setViewDate: setViewDate,
623
633
  onDateMouseEnter: onDateMouseEnter,
624
- onDateMouseLeave: onDateMouseLeave
634
+ onDateMouseLeave: onDateMouseLeave,
635
+ innerPicker: innerPicker,
636
+ setInnerPicker: setInnerPicker
625
637
  }
626
638
  }, /*#__PURE__*/React.createElement(Panel, _extends({}, datePickerProps, {
627
639
  disabledDate: mergedActivePickerIndex === 0 ? disabledStartDate : disabledEndDate
@@ -763,7 +775,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
763
775
  trigger: 'click',
764
776
  prefixCls: "".concat(datePickerPrefixCls, "-panel"),
765
777
  arrow: false,
766
- popperStyle: style,
778
+ popperStyle: popupStyle,
767
779
  visible: mergedOpen,
768
780
  placement: 'bottomLeft',
769
781
  getPopupContainer: getPopupContainer
@@ -745,6 +745,15 @@
745
745
  -ms-flex: 1;
746
746
  flex: 1;
747
747
  }
748
+ .kd-date-picker-panel .kd-date-picker-header-text-inner {
749
+ cursor: pointer;
750
+ }
751
+ .kd-date-picker-panel .kd-date-picker-header-text-inner:hover {
752
+ color: var(--kd-c-date-picker-color-background-checked, var(--kd-g-color-theme, #5582f3));
753
+ }
754
+ .kd-date-picker-panel .kd-date-picker-header-text-inner:nth-child(2) {
755
+ margin-left: 13px;
756
+ }
748
757
  .kd-date-picker-panel .kd-date-picker-time-header,
749
758
  .kd-date-picker-panel .kd-date-picker-header {
750
759
  height: var(--kd-c-date-picker-panel-header-sizing-height, 36px);
@@ -627,6 +627,17 @@
627
627
 
628
628
  &-text {
629
629
  flex: 1;
630
+
631
+ &-inner {
632
+ cursor: pointer;
633
+
634
+ &:hover {
635
+ color: @date-color-background-checked;
636
+ }
637
+ &:nth-child(2) {
638
+ margin-left: 13px;
639
+ }
640
+ }
630
641
  }
631
642
  }
632
643
 
@@ -84,3 +84,4 @@ export declare function getYearsPeriod(date: DateType, yearItemNumber: number):
84
84
  endPeriod: number;
85
85
  };
86
86
  export declare function getLowerBoundTime(hour: number, minute: number, second: number, hourStep: number, minuteStep: number, secondStep: number): [number, number, number];
87
+ export declare const setYearOrMonthOfDate: (date1: DateType, date2: DateType, type?: string) => Date;
@@ -1,5 +1,6 @@
1
1
  import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
2
2
  import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
3
+ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
3
4
  import isDate from 'date-fns/isDate';
4
5
  import isValidDate from 'date-fns/isValid';
5
6
  import format from 'date-fns/format';
@@ -294,4 +295,26 @@ export function getLowerBoundTime(hour, minute, second, hourStep, minuteStep, se
294
295
 
295
296
  var lowerBoundSecond = Math.floor(second / secondStep) * secondStep;
296
297
  return [lowerBoundHour, lowerBoundMinute, lowerBoundSecond];
297
- }
298
+ }
299
+ export var setYearOrMonthOfDate = function setYearOrMonthOfDate(date1, date2) {
300
+ var _context, _context2, _context3, _context4, _context5;
301
+
302
+ var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'year';
303
+ var y = new Date(date1).getFullYear();
304
+
305
+ if (type === 'year') {
306
+ y = new Date(date2).getFullYear();
307
+ }
308
+
309
+ var m = new Date(date1 || date2).getMonth() + 1;
310
+
311
+ if (type === 'month') {
312
+ m = new Date(date2).getMonth() + 1;
313
+ }
314
+
315
+ var d = new Date(date1 || date2).getDate();
316
+ var h = new Date(date1 || date2).getHours();
317
+ var mi = new Date(date1 || date2).getMinutes();
318
+ var s = new Date(date1 || date2).getSeconds();
319
+ return new Date(_concatInstanceProperty(_context = _concatInstanceProperty(_context2 = _concatInstanceProperty(_context3 = _concatInstanceProperty(_context4 = _concatInstanceProperty(_context5 = "".concat(y, "-")).call(_context5, m, "-")).call(_context4, d, " ")).call(_context3, h, ":")).call(_context2, mi, ":")).call(_context, s));
320
+ };
@@ -25,7 +25,8 @@ var InternalOption = function InternalOption(props, ref) {
25
25
  disabled = props.disabled,
26
26
  values = _valuesInstanceProperty(props),
27
27
  isMultiple = props.isMultiple,
28
- onChangeSelect = props.onChangeSelect;
28
+ onChangeSelect = props.onChangeSelect,
29
+ title = props.title;
29
30
 
30
31
  var optionProps = _extends({}, props);
31
32
 
@@ -55,7 +56,7 @@ var InternalOption = function InternalOption(props, ref) {
55
56
  onChangeSelect && onChangeSelect(value, children, isSelected);
56
57
  };
57
58
 
58
- var titleText = _typeof(children) !== 'object' ? children : null;
59
+ var titleText = title || (_typeof(children) !== 'object' ? children : null);
59
60
  var checkStyle = {
60
61
  minHeight: '22px',
61
62
  background: 'none'
@@ -320,7 +320,7 @@
320
320
  padding-right: 8px;
321
321
  }
322
322
  .kd-select-bordered.kd-select-single .kd-select-selection-search {
323
- left: var(--kd-c-select-bordered-spacing-padding-left, 8px);
323
+ padding-left: var(--kd-c-select-bordered-spacing-padding-left, 8px);
324
324
  }
325
325
  .kd-select-wrapper {
326
326
  -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
@@ -94,7 +94,7 @@
94
94
 
95
95
  &.@{select-prefix-cls}-single {
96
96
  .@{select-prefix-cls}-selection-search {
97
- left: @select-bordered;
97
+ padding-left: @select-bordered;
98
98
  }
99
99
  }
100
100
  }
@@ -22,7 +22,7 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {
22
22
  });
23
23
 
24
24
  var onVisibleChange = function onVisibleChange(v) {
25
- if (status.current === v) return;
25
+ if (status.current === v && allProps.visible === undefined) return;
26
26
  status.current = v;
27
27
  props.onVisibleChange && props.onVisibleChange(v);
28
28
  };
@@ -477,14 +477,14 @@ var updateParent = function updateParent(key, keysNodeProps, allKeys, halfChecke
477
477
  pathParentKeys.reverse().forEach(function (itemKey) {
478
478
  var parent = keysNodeProps[itemKey];
479
479
 
480
- if (parent && !parent.disabled && parent.checkable !== false) {
480
+ if (parent && parent.checkable !== false) {
481
481
  var total = 0;
482
482
  var number = 0;
483
483
  parent.children.some(function (_ref) {
484
484
  var key = _ref.key;
485
485
  var item = keysNodeProps[key]; // 不符合可选条件
486
486
 
487
- if (!item || item.disabled || item.checkable === false) {
487
+ if (!item || item.checkable === false) {
488
488
  return false;
489
489
  }
490
490
 
@@ -590,7 +590,11 @@ function usePopper(locatorElement, popperElement, props) {
590
590
  focus: 'mousedown',
591
591
  contextMenu: 'mousedown'
592
592
  };
593
- popperNode === null || popperNode === void 0 ? void 0 : popperNode.addEventListener('mouseleave', debounceHidePopper);
593
+
594
+ if (matchTrigger('hover')) {
595
+ popperNode === null || popperNode === void 0 ? void 0 : popperNode.addEventListener('mouseleave', debounceHidePopper);
596
+ }
597
+
594
598
  Array.isArray(trigger) ? trigger.forEach(function (action) {
595
599
  return document.addEventListener(mapEvent[action], debounceHidePopper);
596
600
  }) : document.addEventListener(mapEvent[trigger], debounceHidePopper);
@@ -1,9 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import { DateType, InnerLocale, RangeValue, TimeUnit } from './interface';
3
+ import { IInnerPicker } from './date-picker';
3
4
  export declare type ContextOperationRefProps = {
4
5
  onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => boolean;
5
6
  onClose?: () => void;
6
7
  };
8
+ export declare type ISelectType = 'key' | 'mouse' | 'submit' | 'inner';
7
9
  export interface SingleContextProps {
8
10
  prefixCls: string;
9
11
  viewDate: DateType;
@@ -21,9 +23,11 @@ export interface SingleContextProps {
21
23
  seconds?: TimeUnit[];
22
24
  disabledTimePanel?: boolean;
23
25
  setViewDate: (date: DateType, index?: 0 | 1) => void;
24
- onSelect: (date: DateType, type: 'key' | 'mouse' | 'submit') => void;
26
+ onSelect: (date: DateType, type: ISelectType) => void;
25
27
  onDateMouseEnter: (date: DateType) => void;
26
28
  onDateMouseLeave: (arg?: boolean) => void;
29
+ innerPicker: IInnerPicker;
30
+ setInnerPicker: (p: IInnerPicker) => void;
27
31
  }
28
32
  declare const Context: React.Context<SingleContextProps>;
29
33
  export default Context;