@kdcloudjs/kdesign 1.7.39 → 1.7.40

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 (81) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/kdesign-complete.less +103 -9
  3. package/dist/kdesign.css +181 -3
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +1342 -106
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +3 -3
  8. package/dist/kdesign.min.js +13 -8
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/alert/style/index.css +4 -2
  11. package/es/alert/style/index.less +3 -1
  12. package/es/config-provider/compDefaultProps.d.ts +9 -0
  13. package/es/config-provider/compDefaultProps.js +10 -1
  14. package/es/date-picker/context.d.ts +4 -2
  15. package/es/date-picker/date-picker.d.ts +9 -0
  16. package/es/date-picker/date-picker.js +4 -2
  17. package/es/date-picker/panel/month/month.js +14 -9
  18. package/es/date-picker/panel/quarter/quarter.js +12 -4
  19. package/es/date-picker/panel/time/time-column.d.ts +2 -0
  20. package/es/date-picker/panel/time/time-column.js +14 -5
  21. package/es/date-picker/panel/time/time.js +8 -4
  22. package/es/date-picker/panel/week/week.js +20 -10
  23. package/es/date-picker/panel/year/year.js +12 -4
  24. package/es/date-picker/range-picker.js +11 -4
  25. package/es/index.d.ts +1 -0
  26. package/es/index.js +2 -1
  27. package/es/modal/modal.d.ts +1 -0
  28. package/es/modal/modal.js +31 -5
  29. package/es/modal/style/index.css +21 -0
  30. package/es/modal/style/index.less +25 -9
  31. package/es/qr-code/index.d.ts +3 -0
  32. package/es/qr-code/index.js +3 -0
  33. package/es/qr-code/qr-code.d.ts +42 -0
  34. package/es/qr-code/qr-code.js +80 -0
  35. package/es/qr-code/style/css.js +2 -0
  36. package/es/qr-code/style/index.css +154 -0
  37. package/es/qr-code/style/index.d.ts +2 -0
  38. package/es/qr-code/style/index.js +2 -0
  39. package/es/qr-code/style/index.less +42 -0
  40. package/es/qr-code/style/mixin.less +6 -0
  41. package/es/qr-code/style/token.less +24 -0
  42. package/es/tree/tree.js +2 -2
  43. package/es/tree/treeHooks.d.ts +1 -1
  44. package/es/tree/treeHooks.js +2 -2
  45. package/lib/alert/style/index.css +4 -2
  46. package/lib/alert/style/index.less +3 -1
  47. package/lib/config-provider/compDefaultProps.d.ts +9 -0
  48. package/lib/config-provider/compDefaultProps.js +10 -1
  49. package/lib/date-picker/context.d.ts +4 -2
  50. package/lib/date-picker/date-picker.d.ts +9 -0
  51. package/lib/date-picker/date-picker.js +4 -2
  52. package/lib/date-picker/panel/month/month.js +14 -9
  53. package/lib/date-picker/panel/quarter/quarter.js +12 -4
  54. package/lib/date-picker/panel/time/time-column.d.ts +2 -0
  55. package/lib/date-picker/panel/time/time-column.js +14 -5
  56. package/lib/date-picker/panel/time/time.js +8 -4
  57. package/lib/date-picker/panel/week/week.js +20 -10
  58. package/lib/date-picker/panel/year/year.js +12 -4
  59. package/lib/date-picker/range-picker.js +11 -4
  60. package/lib/index.d.ts +1 -0
  61. package/lib/index.js +7 -0
  62. package/lib/modal/modal.d.ts +1 -0
  63. package/lib/modal/modal.js +31 -5
  64. package/lib/modal/style/index.css +21 -0
  65. package/lib/modal/style/index.less +25 -9
  66. package/lib/qr-code/index.d.ts +3 -0
  67. package/lib/qr-code/index.js +27 -0
  68. package/lib/qr-code/qr-code.d.ts +42 -0
  69. package/lib/qr-code/qr-code.js +96 -0
  70. package/lib/qr-code/style/css.js +4 -0
  71. package/lib/qr-code/style/index.css +154 -0
  72. package/lib/qr-code/style/index.d.ts +2 -0
  73. package/lib/qr-code/style/index.js +4 -0
  74. package/lib/qr-code/style/index.less +42 -0
  75. package/lib/qr-code/style/mixin.less +6 -0
  76. package/lib/qr-code/style/token.less +24 -0
  77. package/lib/style/components.less +1 -0
  78. package/lib/tree/tree.js +2 -2
  79. package/lib/tree/treeHooks.d.ts +1 -1
  80. package/lib/tree/treeHooks.js +2 -2
  81. package/package.json +4 -2
@@ -193,11 +193,13 @@
193
193
  cursor: default;
194
194
  }
195
195
  .kd-alert-leave {
196
- -webkit-transition: min-height var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), opacity var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), margin var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), height var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), line-height var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1);
197
- transition: min-height var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), opacity var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), margin var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), height var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), line-height var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1);
196
+ -webkit-transition: padding var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), opacity var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), margin var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), height var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), line-height var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1);
197
+ transition: padding var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), opacity var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), margin var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), height var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1), line-height var(--kd-g-duration, 0.3s) cubic-bezier(0.32, 0.94, 0.6, 1);
198
198
  display: -webkit-box;
199
199
  display: -ms-flexbox;
200
200
  display: flex;
201
+ padding: 0 var(--kd-c-alert-sizing-padding-horizontal, 20px);
202
+ border-width: 0;
201
203
  min-height: 0;
202
204
  margin: 0 !important;
203
205
  overflow: hidden;
@@ -81,10 +81,12 @@
81
81
  cursor: default;
82
82
  }
83
83
  &-leave {
84
- transition: min-height @duration-promptly @alert-transition-fn, opacity @duration-promptly @alert-transition-fn,
84
+ transition: padding @duration-promptly @alert-transition-fn, opacity @duration-promptly @alert-transition-fn,
85
85
  margin @duration-promptly @alert-transition-fn, height @duration-promptly @alert-transition-fn,
86
86
  line-height @duration-promptly @alert-transition-fn;
87
87
  display: flex;
88
+ padding: 0 @alert-padding-horizontal;
89
+ border-width: 0;
88
90
  min-height: 0;
89
91
  margin: 0 !important;
90
92
  overflow: hidden;
@@ -191,6 +191,7 @@ declare const compDefaultProps: {
191
191
  cancelButtonProps: {};
192
192
  okButtonProps: {};
193
193
  showline: boolean;
194
+ overroll: boolean;
194
195
  };
195
196
  Menu: {
196
197
  mode: string;
@@ -467,5 +468,13 @@ declare const compDefaultProps: {
467
468
  disabled: boolean;
468
469
  size: string;
469
470
  };
471
+ QRCode: {
472
+ value: string;
473
+ size: number;
474
+ status: string;
475
+ type: string;
476
+ errorLevel: string;
477
+ color: string;
478
+ };
470
479
  };
471
480
  export default compDefaultProps;
@@ -195,7 +195,8 @@ var compDefaultProps = {
195
195
  draggable: true,
196
196
  cancelButtonProps: {},
197
197
  okButtonProps: {},
198
- showline: true
198
+ showline: true,
199
+ overroll: false
199
200
  },
200
201
  Menu: {
201
202
  mode: 'vertical',
@@ -484,6 +485,14 @@ var compDefaultProps = {
484
485
  action: 'copy',
485
486
  disabled: false,
486
487
  size: 'middle'
488
+ },
489
+ QRCode: {
490
+ value: 'https://www.kingdee.design/',
491
+ size: 86,
492
+ status: 'active',
493
+ type: 'canvas',
494
+ errorLevel: 'H',
495
+ color: '#000000'
487
496
  }
488
497
  };
489
498
  export default compDefaultProps;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { DateType, InnerLocale, RangeValue, TimeUnit } from './interface';
3
- import { IInnerPicker } from './date-picker';
3
+ import { CellRenderProp, IInnerPicker } from './date-picker';
4
4
  export declare type ContextOperationRefProps = {
5
5
  onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => boolean;
6
6
  onClose?: () => void;
@@ -13,7 +13,7 @@ export interface SingleContextProps {
13
13
  dateValue?: DateType | null;
14
14
  rangeValue?: RangeValue;
15
15
  hoverRangedValue?: RangeValue;
16
- panelPosition?: string;
16
+ panelPosition?: 'right' | 'left';
17
17
  open?: boolean;
18
18
  originHour?: number;
19
19
  minute?: number;
@@ -28,6 +28,8 @@ export interface SingleContextProps {
28
28
  onDateMouseLeave: (arg?: boolean) => void;
29
29
  innerPicker: IInnerPicker;
30
30
  setInnerPicker: (p: IInnerPicker) => void;
31
+ cellRender?: CellRenderProp;
32
+ range?: 'start' | 'end';
31
33
  }
32
34
  declare const Context: React.Context<SingleContextProps>;
33
35
  export default Context;
@@ -2,6 +2,14 @@ import React from 'react';
2
2
  import { DateType } from './interface';
3
3
  import { PickerPanelBaseProps, PickerPanelDateProps, PickerPanelTimeProps } from './date-panel';
4
4
  import { BorderType, InputSiteType } from '../input/input';
5
+ export declare type CellRenderSubType = 'hour' | 'minute' | 'second' | '12Hours';
6
+ export declare type CellRenderProp = (current: DateType | number, info: {
7
+ originNode: React.ReactElement;
8
+ panelType: 'time' | 'date' | 'week' | 'month' | 'quarter' | 'year';
9
+ date?: DateType;
10
+ range?: 'start' | 'end';
11
+ subType?: CellRenderSubType;
12
+ }) => React.ReactNode;
5
13
  export interface PickerSharedProps extends React.AriaAttributes {
6
14
  dropdownClassName?: string;
7
15
  popupStyle?: React.CSSProperties;
@@ -38,6 +46,7 @@ export interface PickerSharedProps extends React.AriaAttributes {
38
46
  onClick?: React.MouseEventHandler<HTMLDivElement>;
39
47
  onContextMenu?: React.MouseEventHandler<HTMLDivElement>;
40
48
  status?: 'error';
49
+ cellRender?: CellRenderProp;
41
50
  }
42
51
  declare type OmitPanelProps<Props> = Omit<Props, 'onChange' | 'hideHeader' | 'pickerValue' | 'onPickerValueChange'>;
43
52
  export interface PickerBaseProps extends PickerSharedProps, OmitPanelProps<PickerPanelBaseProps> {
@@ -81,7 +81,8 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
81
81
  onContextMenu = datePickerProps.onContextMenu,
82
82
  onClick = datePickerProps.onClick,
83
83
  _onOk = datePickerProps.onOk,
84
- status = datePickerProps.status;
84
+ status = datePickerProps.status,
85
+ cellRender = datePickerProps.cellRender;
85
86
  var inputDivRefDefault = React.useRef(null);
86
87
  var inputDivRef = ref || inputDivRefDefault;
87
88
  var popperRefDefault = React.useRef(null);
@@ -338,7 +339,8 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
338
339
  onDateMouseEnter: onEnter,
339
340
  onDateMouseLeave: onLeave,
340
341
  innerPicker: innerPicker,
341
- setInnerPicker: setInnerPicker
342
+ setInnerPicker: setInnerPicker,
343
+ cellRender: cellRender
342
344
  }
343
345
  }, panelNode, (extraFooter || rangesNode || todayNode) && innerPicker === undefined ? /*#__PURE__*/React.createElement("div", {
344
346
  className: "".concat(datePickerPrefixCls, "-footer")
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime-corejs3/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
3
- import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
4
3
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
4
+ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
5
5
  import React, { useContext } from 'react';
6
6
  import classnames from 'classnames';
7
7
  import { getMonth, newDate, getYear, setMonth, isAfter, isBefore, isSameMonth, getStartOfMonth, setYearOrMonthOfDate } from '../../utils/date-fns';
@@ -21,7 +21,9 @@ function Month(props) {
21
21
  hoverRangedValue = context.hoverRangedValue,
22
22
  locale = context.locale,
23
23
  innerPicker = context.innerPicker,
24
- setInnerPicker = context.setInnerPicker;
24
+ setInnerPicker = context.setInnerPicker,
25
+ cellRender = context.cellRender,
26
+ range = context.range;
25
27
  var disabledDate = props.disabledDate;
26
28
  var _dateValue;
27
29
  if (panelPosition) {
@@ -88,12 +90,6 @@ function Month(props) {
88
90
  setInnerPicker(undefined);
89
91
  }
90
92
  };
91
- var renderMonthItem = function renderMonthItem(i) {
92
- var _context;
93
- return /*#__PURE__*/React.createElement("span", {
94
- className: getMonthClassNames(i)
95
- }, _concatInstanceProperty(_context = "".concat(i + 1)).call(_context, locale.month));
96
- };
97
93
  var renderMonth = function renderMonth() {
98
94
  var monthLayout = monthsThreeColumns;
99
95
  var monthLineCls = classnames("".concat(prefixCls, "-month-line"));
@@ -102,6 +98,7 @@ function Month(props) {
102
98
  className: monthLineCls,
103
99
  key: i
104
100
  }, _mapInstanceProperty(month).call(month, function (m, j) {
101
+ var _context;
105
102
  var month = setMonth(viewDate, m);
106
103
  var _props = {
107
104
  onClick: function onClick() {
@@ -119,10 +116,18 @@ function Month(props) {
119
116
  }
120
117
  };
121
118
  var monthItemCls = classnames("".concat(prefixCls, "-month-item"), _defineProperty({}, "".concat(prefixCls, "-month-item-disabled"), disabledDate && disabledDate(month)), getRangeCls(month));
119
+ var originNode = /*#__PURE__*/React.createElement("span", {
120
+ className: getMonthClassNames(m)
121
+ }, _concatInstanceProperty(_context = "".concat(m + 1)).call(_context, locale.month));
122
122
  return /*#__PURE__*/React.createElement("div", _extends({
123
123
  className: monthItemCls,
124
124
  key: j
125
- }, _props), renderMonthItem(m));
125
+ }, _props), typeof cellRender === 'function' ? cellRender(m + 1, {
126
+ originNode: originNode,
127
+ panelType: 'month',
128
+ range: range,
129
+ date: month
130
+ }) || originNode : originNode);
126
131
  }));
127
132
  });
128
133
  };
@@ -17,7 +17,9 @@ function Quarter(props) {
17
17
  onDateMouseLeave = context.onDateMouseLeave,
18
18
  rangeValue = context.rangeValue,
19
19
  panelPosition = context.panelPosition,
20
- hoverRangedValue = context.hoverRangedValue;
20
+ hoverRangedValue = context.hoverRangedValue,
21
+ cellRender = context.cellRender,
22
+ range = context.range;
21
23
  var disabledDate = props.disabledDate;
22
24
  var _dateValue;
23
25
  if (panelPosition) {
@@ -96,12 +98,18 @@ function Quarter(props) {
96
98
  }
97
99
  };
98
100
  var quarterCls = classnames("".concat(prefixCls, "-quarter-item"), _defineProperty({}, "".concat(prefixCls, "-quarter-item-disabled"), disabledDate && disabledDate(quarter)), getRangeCls(quarter));
101
+ var originNode = /*#__PURE__*/React.createElement("div", _extends({
102
+ className: getQuarterClassNames(i + 1)
103
+ }, _props), n);
99
104
  return /*#__PURE__*/React.createElement("div", {
100
105
  key: n,
101
106
  className: quarterCls
102
- }, /*#__PURE__*/React.createElement("div", _extends({
103
- className: getQuarterClassNames(i + 1)
104
- }, _props), n));
107
+ }, typeof cellRender === 'function' ? cellRender(i + 1, {
108
+ originNode: originNode,
109
+ panelType: 'quarter',
110
+ range: range,
111
+ date: quarter
112
+ }) || originNode : originNode);
105
113
  });
106
114
  };
107
115
  var quarterCls = classnames("".concat(prefixCls, "-quarter"));
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { DateType } from '../../interface';
3
+ import { CellRenderSubType } from '../../date-picker';
3
4
  export interface Unit {
4
5
  label: React.ReactText;
5
6
  value: number;
@@ -12,6 +13,7 @@ export interface TimeUnitColumnProps {
12
13
  selectValue?: DateType;
13
14
  hideDisabledOptions?: boolean;
14
15
  onSelect?: (value: number) => void;
16
+ subType?: CellRenderSubType;
15
17
  }
16
18
  declare function TimeUnitColumn(props: TimeUnitColumnProps): JSX.Element;
17
19
  export default TimeUnitColumn;
@@ -12,10 +12,13 @@ function TimeUnitColumn(props) {
12
12
  onSelect = props.onSelect,
13
13
  value = props.value,
14
14
  hideDisabledOptions = props.hideDisabledOptions,
15
- selectValue = props.selectValue;
15
+ selectValue = props.selectValue,
16
+ subType = props.subType;
16
17
  var cellPrefixCls = "".concat(prefixCls, "-cell");
17
18
  var _React$useContext = React.useContext(Context),
18
- open = _React$useContext.open;
19
+ open = _React$useContext.open,
20
+ cellRender = _React$useContext.cellRender,
21
+ range = _React$useContext.range;
19
22
  var ulRef = useRef(null);
20
23
  var liRefs = useRef(new _Map());
21
24
  var scrollRef = useRef();
@@ -52,6 +55,9 @@ function TimeUnitColumn(props) {
52
55
  if (hideDisabledOptions && unit.disabled) {
53
56
  return null;
54
57
  }
58
+ var originNode = /*#__PURE__*/React.createElement("div", {
59
+ className: "".concat(cellPrefixCls, "-inner")
60
+ }, unit.label);
55
61
  return /*#__PURE__*/React.createElement("div", {
56
62
  key: unit.value,
57
63
  ref: function ref(element) {
@@ -64,9 +70,12 @@ function TimeUnitColumn(props) {
64
70
  }
65
71
  onSelect(unit.value);
66
72
  }
67
- }, /*#__PURE__*/React.createElement("div", {
68
- className: "".concat(cellPrefixCls, "-inner")
69
- }, unit.label));
73
+ }, typeof cellRender === 'function' ? cellRender(unit.value, {
74
+ originNode: originNode,
75
+ panelType: 'time',
76
+ subType: subType,
77
+ range: range
78
+ }) || originNode : originNode);
70
79
  }));
71
80
  }
72
81
  export default TimeUnitColumn;
@@ -165,7 +165,8 @@ function TimePanel(props) {
165
165
  }
166
166
  }
167
167
  addColumnNode(showHour, /*#__PURE__*/React.createElement(TimeColumn, {
168
- key: "hour"
168
+ key: "hour",
169
+ subType: 'hour'
169
170
  }), hour, hours, function (num) {
170
171
  var time = setTime(isPM, num, minute, second);
171
172
  if (time) {
@@ -173,7 +174,8 @@ function TimePanel(props) {
173
174
  }
174
175
  });
175
176
  addColumnNode(showMinute, /*#__PURE__*/React.createElement(TimeColumn, {
176
- key: "minute"
177
+ key: "minute",
178
+ subType: 'minute'
177
179
  }), minute, minutes, function (num) {
178
180
  var time = setTime(isPM, hour, num, second);
179
181
  if (time) {
@@ -181,7 +183,8 @@ function TimePanel(props) {
181
183
  }
182
184
  });
183
185
  addColumnNode(showSecond, /*#__PURE__*/React.createElement(TimeColumn, {
184
- key: "second"
186
+ key: "second",
187
+ subType: 'second'
185
188
  }), second, seconds, function (num) {
186
189
  var time = setTime(isPM, hour, minute, num);
187
190
  if (time) {
@@ -193,7 +196,8 @@ function TimePanel(props) {
193
196
  PMIndex = isPM ? 1 : 0;
194
197
  }
195
198
  addColumnNode(use12Hours === true, /*#__PURE__*/React.createElement(TimeColumn, {
196
- key: "12hours"
199
+ key: "12hours",
200
+ subType: '12Hours'
197
201
  }), PMIndex, [{
198
202
  label: 'AM',
199
203
  value: 0,
@@ -35,7 +35,9 @@ function Week(props) {
35
35
  disabledTimePanel = context.disabledTimePanel,
36
36
  onSelect = context.onSelect,
37
37
  onDateMouseEnter = context.onDateMouseEnter,
38
- onDateMouseLeave = context.onDateMouseLeave;
38
+ onDateMouseLeave = context.onDateMouseLeave,
39
+ cellRender = context.cellRender,
40
+ range = context.range;
39
41
  var showWeekNumber = props.showWeekNumber,
40
42
  day = props.day,
41
43
  picker = props.picker,
@@ -176,8 +178,6 @@ function Week(props) {
176
178
  } else {
177
179
  now = dateValue || viewDate;
178
180
  }
179
- // if(hours) {
180
- // }
181
181
  var dayTime = setTime(day, {
182
182
  hour: getHours(now),
183
183
  minute: getMinutes(now),
@@ -200,18 +200,28 @@ function Week(props) {
200
200
  }
201
201
  }
202
202
  };
203
- // console.log('disabledDate', disabledDate)
203
+ var originNode = /*#__PURE__*/React.createElement("div", {
204
+ className: getDayClassNames(day)
205
+ }, date);
204
206
  return /*#__PURE__*/React.createElement("div", _extends({
205
207
  key: day.valueOf(),
206
208
  className: classnames("".concat(prefixCls, "-calendar-item"), (_classnames3 = {}, _defineProperty(_classnames3, "".concat(prefixCls, "-calendar-item-disabled"), disabledDate && disabledDate(day)), _defineProperty(_classnames3, "".concat(prefixCls, "-calendar-current"), currentMonth === getMonth(day)), _classnames3), getRangeCls(day))
207
- }, _props), /*#__PURE__*/React.createElement("div", {
208
- className: getDayClassNames(day)
209
- }, date));
209
+ }, _props), typeof cellRender === 'function' ? cellRender(day, {
210
+ originNode: originNode,
211
+ panelType: 'date',
212
+ range: range,
213
+ date: day
214
+ }) || originNode : originNode);
210
215
  }));
211
- var calenderLineCls = classnames((_classnames4 = {}, _defineProperty(_classnames4, "".concat(prefixCls, "-calendar-line"), picker !== 'week'), _defineProperty(_classnames4, "".concat(prefixCls, "-calendar-week-line"), picker === 'week'), _defineProperty(_classnames4, "".concat(prefixCls, "-calendar-week-selected"), picker === 'week' && getWeekSelected(startOfWeek)), _classnames4));
212
- return /*#__PURE__*/React.createElement("div", {
213
- className: calenderLineCls
216
+ var originNode = /*#__PURE__*/React.createElement("div", {
217
+ className: classnames((_classnames4 = {}, _defineProperty(_classnames4, "".concat(prefixCls, "-calendar-line"), picker !== 'week'), _defineProperty(_classnames4, "".concat(prefixCls, "-calendar-week-line"), picker === 'week'), _defineProperty(_classnames4, "".concat(prefixCls, "-calendar-week-selected"), picker === 'week' && getWeekSelected(startOfWeek)), _classnames4))
214
218
  }, week);
219
+ return typeof cellRender === 'function' ? cellRender(weekNumber, {
220
+ originNode: originNode,
221
+ panelType: 'week',
222
+ range: range,
223
+ date: startOfWeek
224
+ }) || originNode : originNode;
215
225
  };
216
226
  return /*#__PURE__*/React.createElement(React.Fragment, null, renderDays());
217
227
  }
@@ -18,7 +18,9 @@ function Year(props) {
18
18
  panelPosition = context.panelPosition,
19
19
  hoverRangedValue = context.hoverRangedValue,
20
20
  innerPicker = context.innerPicker,
21
- setInnerPicker = context.setInnerPicker;
21
+ setInnerPicker = context.setInnerPicker,
22
+ cellRender = context.cellRender,
23
+ range = context.range;
22
24
  var yearItemNumber = props.yearItemNumber,
23
25
  disabledDate = props.disabledDate,
24
26
  _props$picker = props.picker,
@@ -114,12 +116,18 @@ function Year(props) {
114
116
  }
115
117
  }
116
118
  };
119
+ var originNode = /*#__PURE__*/React.createElement("span", {
120
+ className: getYearClassNames(y)
121
+ }, y);
117
122
  yearsList.push( /*#__PURE__*/React.createElement("div", _extends({
118
123
  className: classnames("".concat(prefixCls, "-year-item"), _defineProperty({}, "".concat(prefixCls, "-year-item-disabled"), disabledDate && disabledDate(year)), getRangeCls(year)),
119
124
  key: y
120
- }, _props), /*#__PURE__*/React.createElement("span", {
121
- className: getYearClassNames(y)
122
- }, y)));
125
+ }, _props), typeof cellRender === 'function' ? cellRender(y, {
126
+ originNode: originNode,
127
+ panelType: 'year',
128
+ range: range,
129
+ date: year
130
+ }) || originNode : originNode));
123
131
  };
124
132
  for (var y = startPeriod; y <= endPeriod; y++) {
125
133
  _loop();
@@ -110,7 +110,8 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
110
110
  onBlur = datePickerProps.onBlur,
111
111
  _onOk = datePickerProps.onOk,
112
112
  getPopupContainer = datePickerProps.getPopupContainer,
113
- status = datePickerProps.status;
113
+ status = datePickerProps.status,
114
+ cellRender = datePickerProps.cellRender;
114
115
  var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';
115
116
  var datePickerLang = _extends({}, globalLocale.getCompLangMsg({
116
117
  componentName: 'DatePicker'
@@ -520,7 +521,9 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
520
521
  onDateMouseEnter: onDateMouseEnter,
521
522
  onDateMouseLeave: onDateMouseLeave,
522
523
  innerPicker: innerPicker,
523
- setInnerPicker: setInnerPicker
524
+ setInnerPicker: setInnerPicker,
525
+ cellRender: cellRender,
526
+ range: mergedActivePickerIndex === 0 ? 'start' : 'end'
524
527
  }
525
528
  }, renderPanel());
526
529
  var rightPanel = /*#__PURE__*/React.createElement(Context.Provider, {
@@ -537,7 +540,9 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
537
540
  onDateMouseEnter: onDateMouseEnter,
538
541
  onDateMouseLeave: onDateMouseLeave,
539
542
  innerPicker: innerPicker,
540
- setInnerPicker: setInnerPicker
543
+ setInnerPicker: setInnerPicker,
544
+ cellRender: cellRender,
545
+ range: mergedActivePickerIndex === 0 ? 'start' : 'end'
541
546
  }
542
547
  }, renderPanel());
543
548
  panels = /*#__PURE__*/React.createElement("div", {
@@ -564,7 +569,9 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
564
569
  onDateMouseEnter: onDateMouseEnter,
565
570
  onDateMouseLeave: onDateMouseLeave,
566
571
  innerPicker: innerPicker,
567
- setInnerPicker: setInnerPicker
572
+ setInnerPicker: setInnerPicker,
573
+ cellRender: cellRender,
574
+ range: mergedActivePickerIndex === 0 ? 'start' : 'end'
568
575
  }
569
576
  }, renderPanel());
570
577
  }
package/es/index.d.ts CHANGED
@@ -56,3 +56,4 @@ export { default as Link } from './link';
56
56
  export { default as TreeSelect } from './tree-select';
57
57
  export { default as ColorPicker } from './color-picker';
58
58
  export { default as Clipboard } from './clipboard';
59
+ export { default as QRCode } from './qr-code';
package/es/index.js CHANGED
@@ -55,4 +55,5 @@ export { default as BaseData } from './base-data';
55
55
  export { default as Link } from './link';
56
56
  export { default as TreeSelect } from './tree-select';
57
57
  export { default as ColorPicker } from './color-picker';
58
- export { default as Clipboard } from './clipboard';
58
+ export { default as Clipboard } from './clipboard';
59
+ export { default as QRCode } from './qr-code';
@@ -43,6 +43,7 @@ export interface IModalProps {
43
43
  width?: number;
44
44
  showline?: boolean;
45
45
  bounds?: DraggableBounds | string | false;
46
+ overroll?: boolean;
46
47
  onDragStart?: DraggableEventHandler;
47
48
  onDrag?: DraggableEventHandler;
48
49
  onDragStop?: DraggableEventHandler;
package/es/modal/modal.js CHANGED
@@ -27,7 +27,7 @@ import { useHideDocumentScrollBar } from '../_utils/hooks';
27
27
  export var ConfirmModalTypes = ['confirm', 'normal'];
28
28
  export var ModalTypes = tuple('confirm', 'warning', 'error', 'normal');
29
29
  var InternalModal = function InternalModal(props, ref) {
30
- var _classNames3, _classNames4, _context2, _context3;
30
+ var _classNames3, _classNames4, _context2, _context3, _context4;
31
31
  var _useContext = useContext(ConfigContext),
32
32
  getPrefixCls = _useContext.getPrefixCls,
33
33
  prefixCls = _useContext.prefixCls,
@@ -70,7 +70,8 @@ var InternalModal = function InternalModal(props, ref) {
70
70
  onDrag = modalProps.onDrag,
71
71
  onDragStop = modalProps.onDragStop,
72
72
  bounds = modalProps.bounds,
73
- others = __rest(modalProps, ["body", "bodyClassName", "bodyStyle", "cancelButtonProps", "cancelText", "className", "closable", "closeIcon", "destroyOnClose", "draggable", "focusTriggerAfterClose", "footer", "footerClassName", "footerStyle", "footerBtnOrder", "getContainer", "height", "keyboard", "mask", "maskClosable", "maskStyle", "maskClassName", "okButtonProps", "okText", "onCancel", "onOk", "prefixCls", "title", "titleIcon", "type", "visible", "width", "showline", "onDragStart", "onDrag", "onDragStop", "bounds"]);
73
+ overroll = modalProps.overroll,
74
+ others = __rest(modalProps, ["body", "bodyClassName", "bodyStyle", "cancelButtonProps", "cancelText", "className", "closable", "closeIcon", "destroyOnClose", "draggable", "focusTriggerAfterClose", "footer", "footerClassName", "footerStyle", "footerBtnOrder", "getContainer", "height", "keyboard", "mask", "maskClosable", "maskStyle", "maskClassName", "okButtonProps", "okText", "onCancel", "onOk", "prefixCls", "title", "titleIcon", "type", "visible", "width", "showline", "onDragStart", "onDrag", "onDragStop", "bounds", "overroll"]);
74
75
  var isForceController = visible !== undefined;
75
76
  var _useState = useState(isForceController ? visible : true),
76
77
  _useState2 = _slicedToArray(_useState, 2),
@@ -78,6 +79,7 @@ var InternalModal = function InternalModal(props, ref) {
78
79
  setInnerVisible = _useState2[1]; // 需要根据visible来判断,不能一开始为true再去设置false
79
80
  var previousActiveElement = useRef(null);
80
81
  var innerRef = useRef(null);
82
+ var wrapperRef = useRef(null);
81
83
  var containerRef = ref || innerRef;
82
84
  var modalPrefixCls = getPrefixCls(prefixCls, 'modal', customPrefixcls);
83
85
  devWarning(ModalTypes.indexOf(type) === -1, 'modal', "cannot found modal type '".concat(type, "'"));
@@ -185,11 +187,16 @@ var InternalModal = function InternalModal(props, ref) {
185
187
  proxyCloseModal(onCancel);
186
188
  }
187
189
  }, [proxyCloseModal, onCancel, maskClosable]);
190
+ var handleWrapperClick = function handleWrapperClick(e) {
191
+ if (wrapperRef.current === e.target) {
192
+ handleMaskClick();
193
+ }
194
+ };
188
195
  var isHidden = !destroyOnClose && !(isForceController ? visible : innerVisible);
189
196
  var modalClasses = classNames(modalPrefixCls, className, (_classNames3 = {}, _defineProperty(_classNames3, "".concat(modalPrefixCls, "-container"), true), _defineProperty(_classNames3, "".concat(modalPrefixCls, "-container-hidden"), isHidden), _defineProperty(_classNames3, "".concat(modalPrefixCls, "-container-show"), !isHidden), _classNames3));
190
197
  var headerClass = "".concat(modalPrefixCls, "-header");
191
198
  var container = /*#__PURE__*/React.createElement("div", {
192
- className: classNames((_classNames4 = {}, _defineProperty(_classNames4, "".concat(modalPrefixCls, "-container-box"), true), _defineProperty(_classNames4, "".concat(modalPrefixCls, "-has-container-box"), modalContainer), _defineProperty(_classNames4, "".concat(modalPrefixCls, "-showline"), showline), _classNames4)),
199
+ className: classNames((_classNames4 = {}, _defineProperty(_classNames4, "".concat(modalPrefixCls, "-container-box"), true), _defineProperty(_classNames4, "".concat(modalPrefixCls, "-has-container-box"), modalContainer && !overroll), _defineProperty(_classNames4, "".concat(modalPrefixCls, "-showline"), showline), _classNames4)),
193
200
  style: {
194
201
  width: width,
195
202
  height: height
@@ -239,8 +246,18 @@ var InternalModal = function InternalModal(props, ref) {
239
246
  onClick: handleMaskClick,
240
247
  className: classNames(maskClassName, _defineProperty({}, "".concat(modalPrefixCls, "-mask"), true)),
241
248
  style: maskStyle
242
- }), /*#__PURE__*/React.createElement(Draggable, {
243
- defaultPosition: defaultPosition,
249
+ }), overroll ? /*#__PURE__*/React.createElement("div", {
250
+ tabIndex: -1,
251
+ className: classNames(_defineProperty({}, "".concat(modalPrefixCls, "-wrapper"), modalContainer && ((isForceController ? visible : innerVisible) || !destroyOnClose))),
252
+ ref: wrapperRef,
253
+ onClick: handleWrapperClick
254
+ }, /*#__PURE__*/React.createElement("div", {
255
+ className: "".concat(modalPrefixCls, "-dialog")
256
+ }, /*#__PURE__*/React.createElement(Draggable, {
257
+ defaultPosition: {
258
+ x: 0,
259
+ y: 0
260
+ },
244
261
  handle: ".".concat(headerClass),
245
262
  disabled: !draggable,
246
263
  onStart: handleDragStart,
@@ -248,6 +265,15 @@ var InternalModal = function InternalModal(props, ref) {
248
265
  onStop: onDragStop,
249
266
  bounds: bounds,
250
267
  cancel: _concatInstanceProperty(_context3 = ".".concat(modalPrefixCls, "-title-container, .")).call(_context3, modalPrefixCls, "-close-icon")
268
+ }, container))) : /*#__PURE__*/React.createElement(Draggable, {
269
+ defaultPosition: defaultPosition,
270
+ handle: ".".concat(headerClass),
271
+ disabled: !draggable,
272
+ onStart: handleDragStart,
273
+ onDrag: onDrag,
274
+ onStop: onDragStop,
275
+ bounds: bounds,
276
+ cancel: _concatInstanceProperty(_context4 = ".".concat(modalPrefixCls, "-title-container, .")).call(_context4, modalPrefixCls, "-close-icon")
251
277
  }, container));
252
278
  var renderComp = ((isForceController ? visible : innerVisible) || !destroyOnClose) && comp;
253
279
  if (modalContainer && renderComp) return /*#__PURE__*/ReactDOM.createPortal(renderComp, modalContainer);
@@ -252,6 +252,27 @@
252
252
  .kd-modal-margin-btn {
253
253
  margin-right: var(--kd-c-modal-footer-button-spacing, 12px);
254
254
  }
255
+ .kd-modal-wrapper {
256
+ position: fixed;
257
+ top: 0;
258
+ right: 0;
259
+ bottom: 0;
260
+ left: 0;
261
+ overflow: auto;
262
+ text-align: center;
263
+ }
264
+ .kd-modal-wrapper::before {
265
+ display: inline-block;
266
+ width: 0;
267
+ height: 100%;
268
+ vertical-align: middle;
269
+ content: '';
270
+ }
271
+ .kd-modal-dialog {
272
+ display: inline-block;
273
+ vertical-align: middle;
274
+ max-width: calc(100vw);
275
+ }
255
276
  .kd-modal-showline .kd-modal-header {
256
277
  border-bottom: var(--kd-c-modal-sizing-border, 1px) solid var(--kd-c-modal-color-border, var(--kd-g-color-border-strong-2, #d9d9d9));
257
278
  }