@kdcloudjs/kdesign 1.6.24 → 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 (36) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/kdesign-complete.less +11 -0
  3. package/dist/kdesign.css +10 -1
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +241 -136
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +2 -2
  8. package/dist/kdesign.min.js +7 -7
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/date-picker/context.d.ts +5 -1
  11. package/es/date-picker/date-panel.js +37 -9
  12. package/es/date-picker/date-picker.d.ts +2 -0
  13. package/es/date-picker/date-picker.js +24 -11
  14. package/es/date-picker/panel/month/month.js +13 -4
  15. package/es/date-picker/panel/year/year.d.ts +2 -1
  16. package/es/date-picker/panel/year/year.js +23 -5
  17. package/es/date-picker/range-picker.d.ts +2 -0
  18. package/es/date-picker/range-picker.js +20 -8
  19. package/es/date-picker/style/index.css +9 -0
  20. package/es/date-picker/style/index.less +11 -0
  21. package/es/date-picker/utils/date-fns.d.ts +1 -0
  22. package/es/date-picker/utils/date-fns.js +24 -1
  23. package/lib/date-picker/context.d.ts +5 -1
  24. package/lib/date-picker/date-panel.js +37 -9
  25. package/lib/date-picker/date-picker.d.ts +2 -0
  26. package/lib/date-picker/date-picker.js +23 -10
  27. package/lib/date-picker/panel/month/month.js +12 -3
  28. package/lib/date-picker/panel/year/year.d.ts +2 -1
  29. package/lib/date-picker/panel/year/year.js +23 -4
  30. package/lib/date-picker/range-picker.d.ts +2 -0
  31. package/lib/date-picker/range-picker.js +19 -7
  32. package/lib/date-picker/style/index.css +9 -0
  33. package/lib/date-picker/style/index.less +11 -0
  34. package/lib/date-picker/utils/date-fns.d.ts +1 -0
  35. package/lib/date-picker/utils/date-fns.js +29 -1
  36. package/package.json +1 -1
@@ -71,6 +71,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
71
71
  className = datePickerProps.className,
72
72
  dropdownClassName = datePickerProps.dropdownClassName,
73
73
  popupStyle = datePickerProps.popupStyle,
74
+ popupRef = datePickerProps.popupRef,
74
75
  locale = datePickerProps.locale,
75
76
  inputReadOnly = datePickerProps.inputReadOnly,
76
77
  allowClear = datePickerProps.allowClear,
@@ -125,7 +126,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
125
126
 
126
127
  var inputDivRef = ref || /*#__PURE__*/_react.default.createRef();
127
128
 
128
- var popperRef = _react.default.useRef(null);
129
+ var popperRef = popupRef || /*#__PURE__*/_react.default.createRef();
129
130
 
130
131
  var inputRef = _react.default.useRef(null);
131
132
 
@@ -138,8 +139,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
138
139
  var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';
139
140
  var datePickerLang = (0, _extends2.default)({}, globalLocale.getCompLangMsg({
140
141
  componentName: 'DatePicker'
141
- }), locale || {}); // console.log(_format)
142
- // 原始数据
142
+ }), locale || {}); // 原始数据
143
143
 
144
144
  var _useMergedState = (0, _hooks.useMergedState)(null, {
145
145
  value: value,
@@ -268,6 +268,11 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
268
268
  mergedMode = _useMergedState8[0],
269
269
  setInnerMode = _useMergedState8[1];
270
270
 
271
+ var _useState = (0, _react.useState)(undefined),
272
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
273
+ innerPicker = _useState2[0],
274
+ setInnerPicker = _useState2[1];
275
+
271
276
  (0, _react.useEffect)(function () {
272
277
  setInnerMode(picker);
273
278
  }, [picker]);
@@ -319,13 +324,19 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
319
324
  };
320
325
 
321
326
  var onContextSelect = function onContextSelect(date, type) {
322
- if (type === 'submit' || type !== 'key' && !needConfirmButton) {
327
+ if (type === 'inner') {
323
328
  setViewDate(date);
324
- triggerChange(date);
325
- triggerOpen(false);
329
+ setSelectedValue(date);
330
+ setDateValue(date);
326
331
  } else {
327
- setViewDate(date);
328
- triggerChange(date);
332
+ if (type === 'submit' || type !== 'key' && !needConfirmButton) {
333
+ setViewDate(date);
334
+ triggerChange(date);
335
+ triggerOpen(false);
336
+ } else {
337
+ setViewDate(date);
338
+ triggerChange(date);
339
+ }
329
340
  }
330
341
  };
331
342
 
@@ -412,9 +423,11 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
412
423
  onSelect: onContextSelect,
413
424
  setViewDate: setViewDate,
414
425
  onDateMouseEnter: onEnter,
415
- onDateMouseLeave: onLeave
426
+ onDateMouseLeave: onLeave,
427
+ innerPicker: innerPicker,
428
+ setInnerPicker: setInnerPicker
416
429
  }
417
- }, panelNode, extraFooter || rangesNode || todayNode ? /*#__PURE__*/_react.default.createElement("div", {
430
+ }, panelNode, (extraFooter || rangesNode || todayNode) && innerPicker === undefined ? /*#__PURE__*/_react.default.createElement("div", {
418
431
  className: "".concat(datePickerPrefixCls, "-footer")
419
432
  }, extraFooter, rangesNode, todayNode) : null);
420
433
  }
@@ -48,7 +48,9 @@ function Month(props) {
48
48
  rangeValue = context.rangeValue,
49
49
  panelPosition = context.panelPosition,
50
50
  hoverRangedValue = context.hoverRangedValue,
51
- locale = context.locale;
51
+ locale = context.locale,
52
+ innerPicker = context.innerPicker,
53
+ setInnerPicker = context.setInnerPicker;
52
54
  var disabledDate = props.disabledDate;
53
55
 
54
56
  var _dateValue;
@@ -117,8 +119,15 @@ function Month(props) {
117
119
  });
118
120
 
119
121
  var handleClick = function handleClick(date) {
120
- if (!(disabledDate && disabledDate(date))) {
121
- onSelect(date, 'mouse');
122
+ if (innerPicker === undefined) {
123
+ if (!(disabledDate && disabledDate(date))) {
124
+ onSelect(date, 'mouse');
125
+ }
126
+ } else {
127
+ //
128
+ var _viewDate = viewDate;
129
+ onSelect((0, _dateFns.setYearOrMonthOfDate)(_viewDate, date, 'month'), 'inner');
130
+ setInnerPicker(undefined);
122
131
  }
123
132
  };
124
133
 
@@ -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;
@@ -27,6 +27,8 @@ var _dateFns = require("../../utils/date-fns");
27
27
 
28
28
  var _useRangeCls = _interopRequireDefault(require("../../hooks/use-range-cls"));
29
29
 
30
+ var _utils = require("../../utils");
31
+
30
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
33
 
32
34
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -41,9 +43,13 @@ function Year(props) {
41
43
  onSelect = context.onSelect,
42
44
  rangeValue = context.rangeValue,
43
45
  panelPosition = context.panelPosition,
44
- hoverRangedValue = context.hoverRangedValue;
46
+ hoverRangedValue = context.hoverRangedValue,
47
+ innerPicker = context.innerPicker,
48
+ setInnerPicker = context.setInnerPicker;
45
49
  var yearItemNumber = props.yearItemNumber,
46
- disabledDate = props.disabledDate;
50
+ disabledDate = props.disabledDate,
51
+ _props$picker = props.picker,
52
+ picker = _props$picker === void 0 ? 'date' : _props$picker;
47
53
 
48
54
  var _dateValue;
49
55
 
@@ -111,8 +117,21 @@ function Year(props) {
111
117
  });
112
118
 
113
119
  var handleClick = function handleClick(date) {
114
- if (!(disabledDate && disabledDate(date))) {
115
- onSelect(date, 'mouse');
120
+ if (innerPicker === undefined) {
121
+ if (!(disabledDate && disabledDate(date))) {
122
+ onSelect(date, 'mouse');
123
+ }
124
+ } else {
125
+ //
126
+ var _viewDate = viewDate;
127
+
128
+ if (panelPosition) {
129
+ _viewDate = (0, _utils.getClosingViewDate)(viewDate, picker, -1);
130
+ } // date = addYears(_viewDate, 1)
131
+
132
+
133
+ onSelect((0, _dateFns.setYearOrMonthOfDate)(_viewDate, date), 'inner');
134
+ setInnerPicker(undefined);
116
135
  }
117
136
  };
118
137
 
@@ -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'> & {
@@ -129,6 +129,8 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
129
129
  allowEmpty = datePickerProps.allowEmpty,
130
130
  className = datePickerProps.className,
131
131
  style = datePickerProps.style,
132
+ popupStyle = datePickerProps.popupStyle,
133
+ popupRef = datePickerProps.popupRef,
132
134
  borderType = datePickerProps.borderType,
133
135
  separator = datePickerProps.separator,
134
136
  ranges = datePickerProps.ranges,
@@ -179,7 +181,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
179
181
 
180
182
  var endInputRef = _react.default.useRef(null);
181
183
 
182
- var popperRef = _react.default.useRef(null);
184
+ var popperRef = popupRef || /*#__PURE__*/_react.default.createRef();
183
185
 
184
186
  var openRecordsRef = _react.default.useRef({});
185
187
 
@@ -397,6 +399,11 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
397
399
  mergedModes = _useMergedState10[0],
398
400
  setInnerModes = _useMergedState10[1];
399
401
 
402
+ var _useState = (0, _react.useState)(undefined),
403
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
404
+ innerPicker = _useState2[0],
405
+ setInnerPicker = _useState2[1];
406
+
400
407
  (0, _react.useEffect)(function () {
401
408
  setInnerModes([picker, picker]);
402
409
  }, [picker]); // const triggerModesChange = (modes: [PanelMode, PanelMode], values: RangeValue) => {
@@ -525,8 +532,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
525
532
  var values = (0, _utils2.updateValues)(selectedValue, date, mergedActivePickerIndex);
526
533
 
527
534
  if (type === 'submit' || type !== 'key' && !needConfirmButton) {
528
- // triggerChange will also update selected values
529
- triggerChange(values, mergedActivePickerIndex); // clear hover value style
535
+ triggerChange(values, mergedActivePickerIndex);
530
536
 
531
537
  if (mergedActivePickerIndex === 0) {
532
538
  onStartLeave();
@@ -633,7 +639,9 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
633
639
  onSelect: onSelect,
634
640
  setViewDate: setViewDate,
635
641
  onDateMouseEnter: onDateMouseEnter,
636
- onDateMouseLeave: onDateMouseLeave
642
+ onDateMouseLeave: onDateMouseLeave,
643
+ innerPicker: innerPicker,
644
+ setInnerPicker: setInnerPicker
637
645
  }
638
646
  }, renderPanel());
639
647
 
@@ -649,7 +657,9 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
649
657
  onSelect: onSelect,
650
658
  setViewDate: setViewDate,
651
659
  onDateMouseEnter: onDateMouseEnter,
652
- onDateMouseLeave: onDateMouseLeave
660
+ onDateMouseLeave: onDateMouseLeave,
661
+ innerPicker: innerPicker,
662
+ setInnerPicker: setInnerPicker
653
663
  }
654
664
  }, renderPanel());
655
665
 
@@ -675,7 +685,9 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
675
685
  onSelect: onSelect,
676
686
  setViewDate: setViewDate,
677
687
  onDateMouseEnter: onDateMouseEnter,
678
- onDateMouseLeave: onDateMouseLeave
688
+ onDateMouseLeave: onDateMouseLeave,
689
+ innerPicker: innerPicker,
690
+ setInnerPicker: setInnerPicker
679
691
  }
680
692
  }, /*#__PURE__*/_react.default.createElement(_datePanel.default, (0, _extends2.default)({}, datePickerProps, {
681
693
  disabledDate: mergedActivePickerIndex === 0 ? disabledStartDate : disabledEndDate
@@ -816,7 +828,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
816
828
  trigger: 'click',
817
829
  prefixCls: "".concat(datePickerPrefixCls, "-panel"),
818
830
  arrow: false,
819
- popperStyle: style,
831
+ popperStyle: popupStyle,
820
832
  visible: mergedOpen,
821
833
  placement: 'bottomLeft',
822
834
  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;
@@ -171,6 +171,7 @@ Object.defineProperty(exports, "setYear", {
171
171
  return _setYear.default;
172
172
  }
173
173
  });
174
+ exports.setYearOrMonthOfDate = void 0;
174
175
  Object.defineProperty(exports, "subDays", {
175
176
  enumerable: true,
176
177
  get: function get() {
@@ -212,6 +213,8 @@ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-s
212
213
 
213
214
  var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
214
215
 
216
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
217
+
215
218
  var _isDate = _interopRequireDefault(require("date-fns/isDate"));
216
219
 
217
220
  var _isValid = _interopRequireDefault(require("date-fns/isValid"));
@@ -574,4 +577,29 @@ function getLowerBoundTime(hour, minute, second, hourStep, minuteStep, secondSte
574
577
 
575
578
  var lowerBoundSecond = Math.floor(second / secondStep) * secondStep;
576
579
  return [lowerBoundHour, lowerBoundMinute, lowerBoundSecond];
577
- }
580
+ }
581
+
582
+ var setYearOrMonthOfDate = function setYearOrMonthOfDate(date1, date2) {
583
+ var _context, _context2, _context3, _context4, _context5;
584
+
585
+ var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'year';
586
+ var y = new Date(date1).getFullYear();
587
+
588
+ if (type === 'year') {
589
+ y = new Date(date2).getFullYear();
590
+ }
591
+
592
+ var m = new Date(date1 || date2).getMonth() + 1;
593
+
594
+ if (type === 'month') {
595
+ m = new Date(date2).getMonth() + 1;
596
+ }
597
+
598
+ var d = new Date(date1 || date2).getDate();
599
+ var h = new Date(date1 || date2).getHours();
600
+ var mi = new Date(date1 || date2).getMinutes();
601
+ var s = new Date(date1 || date2).getSeconds();
602
+ return new Date((0, _concat.default)(_context = (0, _concat.default)(_context2 = (0, _concat.default)(_context3 = (0, _concat.default)(_context4 = (0, _concat.default)(_context5 = "".concat(y, "-")).call(_context5, m, "-")).call(_context4, d, " ")).call(_context3, h, ":")).call(_context2, mi, ":")).call(_context, s));
603
+ };
604
+
605
+ exports.setYearOrMonthOfDate = setYearOrMonthOfDate;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kdcloudjs/kdesign",
3
- "version": "1.6.24",
3
+ "version": "1.6.25",
4
4
  "description": "KDesign 金蝶前端react 组件库",
5
5
  "title": "kdesign",
6
6
  "keywords": [