bkui-vue 2.0.1-beta.1 → 2.0.1-beta.11

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 (54) hide show
  1. package/dist/index.cjs.js +58 -58
  2. package/dist/index.esm.js +11848 -11789
  3. package/dist/index.umd.js +57 -57
  4. package/dist/style.css +1 -1
  5. package/dist/style.variable.css +1 -1
  6. package/lib/cascader/cascader.css +3 -3
  7. package/lib/cascader/cascader.less +4 -4
  8. package/lib/cascader/cascader.variable.css +3 -3
  9. package/lib/cascader/index.js +4 -4
  10. package/lib/color-picker/color-picker.css +3 -3
  11. package/lib/color-picker/color-picker.less +3 -3
  12. package/lib/color-picker/color-picker.variable.css +3 -3
  13. package/lib/color-picker/index.js +1 -1
  14. package/lib/date-picker/base/year-table.d.ts +2 -2
  15. package/lib/date-picker/index.js +115 -38
  16. package/lib/date-picker/interface.d.ts +1 -1
  17. package/lib/date-picker/panel/date-range.d.ts +1 -63
  18. package/lib/date-picker/utils.d.ts +4 -0
  19. package/lib/dialog/dialog.css +0 -4
  20. package/lib/dialog/dialog.variable.css +0 -4
  21. package/lib/info-box/index.js +1 -1
  22. package/lib/modal/modal.css +0 -4
  23. package/lib/modal/modal.less +0 -5
  24. package/lib/modal/modal.variable.css +0 -4
  25. package/lib/pop-confirm/index.d.ts +11 -11
  26. package/lib/pop-confirm/index.js +2 -1
  27. package/lib/pop-confirm/pop-confirm.d.ts +5 -5
  28. package/lib/pop-confirm/props.d.ts +2 -2
  29. package/lib/radio/index.js +8 -13
  30. package/lib/rate/rate.css +27 -0
  31. package/lib/rate/rate.less +33 -0
  32. package/lib/rate/rate.variable.css +27 -0
  33. package/lib/select/select.css +1 -2
  34. package/lib/select/select.less +1 -2
  35. package/lib/select/select.variable.css +1 -2
  36. package/lib/styles/index.d.ts +0 -1
  37. package/lib/table/index.js +40 -15
  38. package/lib/table/plugins/use-shift-key.d.ts +2 -0
  39. package/lib/table/props.d.ts +1 -1
  40. package/lib/table-column/index.js +1 -1
  41. package/lib/transfer/index.js +16 -14
  42. package/lib/transfer/transfer.css +9 -9
  43. package/lib/transfer/transfer.less +3 -3
  44. package/lib/transfer/transfer.variable.css +9 -9
  45. package/lib/tree/index.js +17 -13
  46. package/lib/tree/tree.d.ts +2 -8
  47. package/lib/tree/tree.less +1 -1
  48. package/lib/tree/util.d.ts +1 -1
  49. package/lib/upload/index.js +16 -9
  50. package/lib/upload/upload.type.d.ts +1 -1
  51. package/package.json +1 -1
  52. package/lib/rate/star.css +0 -27
  53. package/lib/rate/star.less +0 -34
  54. package/lib/rate/star.variable.css +0 -156
@@ -281,10 +281,10 @@
281
281
  cursor: not-allowed;
282
282
  background-color: white;
283
283
  }
284
- .bk-cascader-panel-wrapper .bk-cascader-panel .bk-cascader-node.is-disabled .icon-angle-right {
284
+ .bk-cascader-panel-wrapper .bk-cascader-panel .bk-cascader-node.is-disabled .bk-icon-angle-right {
285
285
  color: #c4c6cc;
286
286
  }
287
- .bk-cascader-panel-wrapper .bk-cascader-panel .bk-cascader-node .icon-angle-right {
287
+ .bk-cascader-panel-wrapper .bk-cascader-panel .bk-cascader-node .bk-icon-angle-right {
288
288
  position: absolute;
289
289
  top: 50%;
290
290
  right: 0;
@@ -292,7 +292,7 @@
292
292
  color: #979ba5;
293
293
  transform: translateY(-50%);
294
294
  }
295
- .bk-cascader-panel-wrapper .bk-cascader-panel .bk-cascader-node .icon-spinner {
295
+ .bk-cascader-panel-wrapper .bk-cascader-panel .bk-cascader-node .bk-icon-spinner {
296
296
  position: absolute;
297
297
  top: 50%;
298
298
  right: 5px;
@@ -1,7 +1,7 @@
1
1
  @import '../styles/themes/themes.less';
2
2
  @import '../styles/mixins/mixins.less';
3
3
 
4
- .@{bk-prefix}-cascader-popover.@{bk-prefix}-pop2-content.bk-popover {
4
+ .@{bk-prefix}-cascader-popover.@{bk-prefix}-pop2-content.@{bk-prefix}-popover {
5
5
  padding: 0;
6
6
  }
7
7
  .@{bk-prefix}-cascader-popover-wrapper {
@@ -240,12 +240,12 @@
240
240
  cursor: not-allowed;
241
241
  background-color: @white-color;
242
242
 
243
- .icon-angle-right {
243
+ .@{bk-prefix}-icon-angle-right {
244
244
  color: @light-gray;
245
245
  }
246
246
  }
247
247
 
248
- .icon-angle-right {
248
+ .@{bk-prefix}-icon-angle-right {
249
249
  position: absolute;
250
250
  top: 50%;
251
251
  right: 0;
@@ -254,7 +254,7 @@
254
254
  transform: translateY(-50%);
255
255
  }
256
256
 
257
- .icon-spinner {
257
+ .@{bk-prefix}-icon-spinner {
258
258
  position: absolute;
259
259
  top: 50%;
260
260
  right: 5px;
@@ -410,10 +410,10 @@
410
410
  cursor: not-allowed;
411
411
  background-color: white;
412
412
  }
413
- .bk-cascader-panel-wrapper .bk-cascader-panel .bk-cascader-node.is-disabled .icon-angle-right {
413
+ .bk-cascader-panel-wrapper .bk-cascader-panel .bk-cascader-node.is-disabled .bk-icon-angle-right {
414
414
  color: #c4c6cc;
415
415
  }
416
- .bk-cascader-panel-wrapper .bk-cascader-panel .bk-cascader-node .icon-angle-right {
416
+ .bk-cascader-panel-wrapper .bk-cascader-panel .bk-cascader-node .bk-icon-angle-right {
417
417
  position: absolute;
418
418
  top: 50%;
419
419
  right: 0;
@@ -421,7 +421,7 @@
421
421
  color: #979ba5;
422
422
  transform: translateY(-50%);
423
423
  }
424
- .bk-cascader-panel-wrapper .bk-cascader-panel .bk-cascader-node .icon-spinner {
424
+ .bk-cascader-panel-wrapper .bk-cascader-panel .bk-cascader-node .bk-icon-spinner {
425
425
  position: absolute;
426
426
  top: 50%;
427
427
  right: 5px;
@@ -883,6 +883,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
883
883
  setup: function setup(props, _ref) {
884
884
  var emit = _ref.emit;
885
885
  var t = (0,config_provider_namespaceObject.useLocale)('cascader');
886
+ var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
887
+ resolveClassName = _usePrefix.resolveClassName;
886
888
  var store = props.store;
887
889
  var menus = (0,external_vue_namespaceObject.reactive)({
888
890
  list: [props.store.getNodes()]
@@ -1031,9 +1033,9 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
1031
1033
  };
1032
1034
  var iconRender = function iconRender(node) {
1033
1035
  return node.loading ? (0,external_vue_namespaceObject.createVNode)(icon_namespaceObject.Spinner, {
1034
- "class": "icon-spinner"
1036
+ "class": resolveClassName('icon-spinner')
1035
1037
  }, null) : (0,external_vue_namespaceObject.createVNode)(icon_namespaceObject.AngleRight, {
1036
- "class": "icon-angle-right"
1038
+ "class": resolveClassName('icon-angle-right')
1037
1039
  }, null);
1038
1040
  };
1039
1041
  (0,external_vue_namespaceObject.watch)(function () {
@@ -1048,8 +1050,6 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
1048
1050
  }, function (value) {
1049
1051
  menus.list = [value.getNodes()];
1050
1052
  });
1051
- var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
1052
- resolveClassName = _usePrefix.resolveClassName;
1053
1053
  return {
1054
1054
  menus: menus,
1055
1055
  activePath: activePath,
@@ -53,7 +53,7 @@
53
53
  box-shadow: 0 0 0 2px rgba(45, 140, 240, 0.2);
54
54
  transition: border 0.2s, box-shadow 0.2s;
55
55
  }
56
- .bk-color-picker.bk-color-picker-show-dropdown .icon-angle-down {
56
+ .bk-color-picker.bk-color-picker-show-dropdown .bk-icon-angle-down {
57
57
  transform: rotate(-180deg);
58
58
  transition: transform 0.3s;
59
59
  }
@@ -65,7 +65,7 @@
65
65
  .bk-color-picker.bk-color-picker-disabled .bk-color-picker-text {
66
66
  color: #3a84ff;
67
67
  }
68
- .bk-color-picker.bk-color-picker-disabled .bk-color-picker-icon .icon-angle-down {
68
+ .bk-color-picker.bk-color-picker-disabled .bk-color-picker-icon .bk-icon-angle-down {
69
69
  color: #3a84ff;
70
70
  }
71
71
  .bk-color-picker .bk-color-picker-color {
@@ -102,7 +102,7 @@
102
102
  margin-right: 5px;
103
103
  transform: rotate(180deg);
104
104
  }
105
- .bk-color-picker .bk-color-picker-icon .icon-angle-down {
105
+ .bk-color-picker .bk-color-picker-icon .bk-icon-angle-down {
106
106
  position: absolute;
107
107
  right: 4px;
108
108
  display: flex;
@@ -65,7 +65,7 @@
65
65
  box-shadow: 0 0 0 2px rgba(45, 140, 240, .2);
66
66
  transition: border .2s, box-shadow .2s;
67
67
 
68
- .icon-angle-down {
68
+ .@{bk-prefix}-icon-angle-down {
69
69
  transform: rotate(-180deg);
70
70
  transition: transform .3s;
71
71
  }
@@ -80,7 +80,7 @@
80
80
  color: #3a84ff;
81
81
  }
82
82
 
83
- .@{bk-prefix}-color-picker-icon .icon-angle-down {
83
+ .@{bk-prefix}-color-picker-icon .@{bk-prefix}-icon-angle-down {
84
84
  color: #3a84ff;
85
85
  }
86
86
  }
@@ -124,7 +124,7 @@
124
124
  transform: rotate(180deg);
125
125
 
126
126
 
127
- .icon-angle-down {
127
+ .@{bk-prefix}-icon-angle-down {
128
128
  position: absolute;
129
129
  right: 4px;
130
130
  display: flex;
@@ -182,7 +182,7 @@
182
182
  box-shadow: 0 0 0 2px rgba(45, 140, 240, 0.2);
183
183
  transition: border 0.2s, box-shadow 0.2s;
184
184
  }
185
- .bk-color-picker.bk-color-picker-show-dropdown .icon-angle-down {
185
+ .bk-color-picker.bk-color-picker-show-dropdown .bk-icon-angle-down {
186
186
  transform: rotate(-180deg);
187
187
  transition: transform 0.3s;
188
188
  }
@@ -194,7 +194,7 @@
194
194
  .bk-color-picker.bk-color-picker-disabled .bk-color-picker-text {
195
195
  color: #3a84ff;
196
196
  }
197
- .bk-color-picker.bk-color-picker-disabled .bk-color-picker-icon .icon-angle-down {
197
+ .bk-color-picker.bk-color-picker-disabled .bk-color-picker-icon .bk-icon-angle-down {
198
198
  color: #3a84ff;
199
199
  }
200
200
  .bk-color-picker .bk-color-picker-color {
@@ -231,7 +231,7 @@
231
231
  margin-right: 5px;
232
232
  transform: rotate(180deg);
233
233
  }
234
- .bk-color-picker .bk-color-picker-icon .icon-angle-down {
234
+ .bk-color-picker .bk-color-picker-icon .bk-icon-angle-down {
235
235
  position: absolute;
236
236
  right: 4px;
237
237
  display: flex;
@@ -2582,7 +2582,7 @@ var whiteColorObj = formatColor('#FFFFFF');
2582
2582
  }, [(0,external_vue_namespaceObject.createVNode)("span", null, [colorStr.value])]) : undefined, (0,external_vue_namespaceObject.createVNode)("div", {
2583
2583
  "class": "".concat(resolveClassName('color-picker-icon'))
2584
2584
  }, [(0,external_vue_namespaceObject.createVNode)(icon_namespaceObject.AngleUp, {
2585
- "class": "icon-angle-down"
2585
+ "class": resolveClassName('icon-angle-down')
2586
2586
  }, null)])]), (0,external_vue_namespaceObject.createVNode)(external_vue_namespaceObject.Transition, {
2587
2587
  "name": "bk-fade-down-transition"
2588
2588
  }, {
@@ -75,7 +75,7 @@ declare const _default: import("vue").DefineComponent<{
75
75
  handleClick: (cell: any) => void;
76
76
  handleMouseMove: (cell: any) => void;
77
77
  resolveClassName: (cls: string) => string;
78
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("pick" | "pick-click" | "change-range")[], "pick" | "pick-click" | "change-range", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
78
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("pick" | "pick-click" | "changeRange")[], "pick" | "pick-click" | "changeRange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
79
79
  readonly tableDate: {
80
80
  readonly type: DateConstructor;
81
81
  readonly required: true;
@@ -110,7 +110,7 @@ declare const _default: import("vue").DefineComponent<{
110
110
  }>> & {
111
111
  onPick?: (...args: any[]) => any;
112
112
  "onPick-click"?: (...args: any[]) => any;
113
- "onChange-range"?: (...args: any[]) => any;
113
+ onChangeRange?: (...args: any[]) => any;
114
114
  }, {
115
115
  readonly rangeState: Record<string, any>;
116
116
  readonly cellClass: Function;
@@ -43,7 +43,7 @@ __webpack_require__.d(__webpack_exports__, {
43
43
  ;// CONCATENATED MODULE: external "../shared"
44
44
  var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
45
45
  var y = x => () => x
46
- const shared_namespaceObject = x({ ["BKPopover"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.BKPopover, ["bkZIndexManager"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.bkZIndexManager, ["capitalize"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.capitalize, ["getFullscreenRoot"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.getFullscreenRoot, ["resolveClassName"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.resolveClassName, ["scrollTop"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.scrollTop, ["useFormItem"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.useFormItem, ["withInstall"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.withInstall });
46
+ const shared_namespaceObject = x({ ["BKPopover"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.BKPopover, ["bkZIndexManager"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.bkZIndexManager, ["capitalize"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.capitalize, ["getFullscreenRoot"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.getFullscreenRoot, ["scrollTop"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.scrollTop, ["useFormItem"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.useFormItem, ["withInstall"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__.withInstall });
47
47
  ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/typeof.js
48
48
  function _typeof(o) {
49
49
  "@babel/helpers - typeof";
@@ -1099,6 +1099,10 @@ var typeValueResolver = {
1099
1099
  return src_fecha.parse(text, format || 'yyyy-MM-dd');
1100
1100
  }
1101
1101
  },
1102
+ yearrange: {
1103
+ formatter: rangeFormatter,
1104
+ parser: rangeParser
1105
+ },
1102
1106
  multiple: {
1103
1107
  formatter: function formatter(value, format) {
1104
1108
  return value.filter(Boolean).map(function (date) {
@@ -1193,6 +1197,7 @@ var DEFAULT_FORMATS = {
1193
1197
  month: 'yyyy-MM',
1194
1198
  monthrange: 'yyyy-MM',
1195
1199
  year: 'yyyy',
1200
+ yearrange: 'yyyy',
1196
1201
  datetime: 'yyyy-MM-dd HH:mm:ss',
1197
1202
  time: 'HH:mm:ss',
1198
1203
  timerange: 'HH:mm:ss',
@@ -1271,7 +1276,9 @@ var timePickerKey = Symbol('time-picker');
1271
1276
  // }
1272
1277
  function iconBtnCls(direction) {
1273
1278
  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
1274
- return [(0,shared_namespaceObject.resolveClassName)('picker-panel-icon-btn'), (0,shared_namespaceObject.resolveClassName)("date-picker-".concat(direction, "-btn")), (0,shared_namespaceObject.resolveClassName)("date-picker-".concat(direction, "-btn-arrow").concat(type))];
1279
+ var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
1280
+ resolveClassName = _usePrefix.resolveClassName;
1281
+ return [resolveClassName('picker-panel-icon-btn'), resolveClassName("date-picker-".concat(direction, "-btn")), resolveClassName("date-picker-".concat(direction, "-btn-arrow").concat(type))];
1275
1282
  }
1276
1283
  var getDayCountOfMonth = function getDayCountOfMonth(year, month) {
1277
1284
  return new Date(year, month + 1, 0).getDate();
@@ -1363,7 +1370,15 @@ var isInRange = function isInRange(time, a, b) {
1363
1370
  if (!a || !b) {
1364
1371
  return false;
1365
1372
  }
1366
- var _sort = [a, b].sort(),
1373
+ var _sort = [a, b].sort(function (x, y) {
1374
+ if (x - y > 0) {
1375
+ return 1;
1376
+ }
1377
+ if (x - y < 0) {
1378
+ return -1;
1379
+ }
1380
+ return 0;
1381
+ }),
1367
1382
  _sort2 = _slicedToArray(_sort, 2),
1368
1383
  start = _sort2[0],
1369
1384
  end = _sort2[1];
@@ -1670,6 +1685,8 @@ var monthTableProps = {
1670
1685
  maxDay = _dates$value$map2[1];
1671
1686
  var rangeStart = props.rangeState.from && clearHours(props.rangeState.from);
1672
1687
  var rangeEnd = props.rangeState.to && clearHours(props.rangeState.to);
1688
+ var now = new Date();
1689
+ var currentMonth = clearHours(new Date(now.getFullYear(), now.getMonth(), 1));
1673
1690
  for (var i = 0; i < 12; i++) {
1674
1691
  var cell = JSON.parse(JSON.stringify(cellTmpl));
1675
1692
  cell.date = new Date(tableYear, i, 1);
@@ -1682,6 +1699,7 @@ var monthTableProps = {
1682
1699
  cell.start = isRange && time === minDay;
1683
1700
  cell.end = isRange && time === maxDay;
1684
1701
  cell.focused = day === focusedDate;
1702
+ cell.isCurrentMonth = day === currentMonth;
1685
1703
  cells.push(cell);
1686
1704
  }
1687
1705
  return cells;
@@ -1692,7 +1710,7 @@ var monthTableProps = {
1692
1710
  var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
1693
1711
  resolveClassName = _usePrefix.resolveClassName;
1694
1712
  var getCellCls = function getCellCls(cell) {
1695
- return [resolveClassName('date-picker-cells-cell'), _defineProperty(_defineProperty(_defineProperty({}, resolveClassName('date-picker-cells-cell-selected'), cell.selected), resolveClassName('date-picker-cells-cell-disabled'), cell.disabled), resolveClassName('date-picker-cells-cell-range'), cell.range && !cell.start && !cell.end) // resolveClassName('date-picker-cells-cell'),
1713
+ return [resolveClassName('date-picker-cells-cell'), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, resolveClassName('date-picker-cells-cell-selected'), cell.selected), resolveClassName('date-picker-cells-cell-disabled'), cell.disabled), resolveClassName('date-picker-cells-cell-today'), cell.isCurrentMonth), resolveClassName('date-picker-cells-cell-range'), cell.range && !cell.start && !cell.end) // resolveClassName('date-picker-cells-cell'),
1696
1714
  // {
1697
1715
  // [resolveClassName('date-picker-cells-cell-today')]: cell.type === 'today',
1698
1716
  // [resolveClassName('date-picker-cells-cell-range')]: cell.range && !cell.start && !cell.end,
@@ -1745,6 +1763,7 @@ var monthTableProps = {
1745
1763
  ;// CONCATENATED MODULE: ../../packages/date-picker/src/base/year-table.tsx
1746
1764
 
1747
1765
 
1766
+
1748
1767
  /*
1749
1768
  * Tencent is pleased to support the open source community by making
1750
1769
  * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
@@ -1817,7 +1836,7 @@ var yearTableProps = {
1817
1836
  /* harmony default export */ const year_table = ((0,external_vue_namespaceObject.defineComponent)({
1818
1837
  name: 'YearTable',
1819
1838
  props: yearTableProps,
1820
- emits: ['pick', 'pick-click', 'change-range'],
1839
+ emits: ['pick', 'pick-click', 'changeRange'],
1821
1840
  setup: function setup(props, _ref) {
1822
1841
  var emit = _ref.emit;
1823
1842
  var dates = (0,external_vue_namespaceObject.computed)(function () {
@@ -1827,6 +1846,7 @@ var yearTableProps = {
1827
1846
  var rangeSelecting = selectionMode === 'range' && rangeState.selecting;
1828
1847
  return rangeSelecting ? [rangeState.from] : modelValue;
1829
1848
  });
1849
+ var isRange = props.selectionMode === 'range';
1830
1850
  var startYear = (0,external_vue_namespaceObject.computed)(function () {
1831
1851
  return Math.floor(props.tableDate.getFullYear() / 10) * 10;
1832
1852
  });
@@ -1841,13 +1861,25 @@ var yearTableProps = {
1841
1861
  return clearHours(new Date(date.getFullYear(), 0, 1));
1842
1862
  });
1843
1863
  var focusedDate = clearHours(new Date(props.focusedDate.getFullYear(), 0, 1));
1864
+ var currentYear = clearHours(new Date(new Date().getFullYear(), 0, 1));
1865
+ var _dates$value$map = dates.value.map(clearHours),
1866
+ _dates$value$map2 = _slicedToArray(_dates$value$map, 2),
1867
+ minDay = _dates$value$map2[0],
1868
+ maxDay = _dates$value$map2[1];
1869
+ var rangeStart = props.rangeState.from && clearHours(props.rangeState.from);
1870
+ var rangeEnd = props.rangeState.to && clearHours(props.rangeState.to);
1844
1871
  for (var i = 0; i < 10; i++) {
1845
1872
  var cell = JSON.parse(JSON.stringify(cellTmpl));
1846
1873
  cell.date = new Date(startYear.value + i, 0, 1);
1847
- cell.disabled = typeof props.disabledDate === 'function' && props.disabledDate(cell.date) && props.selectionMode === 'year';
1874
+ cell.disabled = typeof props.disabledDate === 'function' && props.disabledDate(cell.date);
1848
1875
  var day = clearHours(cell.date);
1876
+ var time = cell.date && clearHours(cell.date);
1877
+ cell.range = isRange && isInRange(time, rangeStart, rangeEnd);
1878
+ cell.start = isRange && time === minDay;
1879
+ cell.end = isRange && time === maxDay;
1849
1880
  cell.selected = selectedDays.includes(day);
1850
1881
  cell.focused = day === focusedDate;
1882
+ cell.isCurrent = day === currentYear;
1851
1883
  cells.push(cell);
1852
1884
  }
1853
1885
  return cells;
@@ -1855,7 +1887,7 @@ var yearTableProps = {
1855
1887
  var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
1856
1888
  resolveClassName = _usePrefix.resolveClassName;
1857
1889
  var getCellCls = function getCellCls(cell) {
1858
- return [resolveClassName('date-picker-cells-cell'), _defineProperty(_defineProperty(_defineProperty({}, resolveClassName('date-picker-cells-cell-selected'), cell.selected), resolveClassName('date-picker-cells-cell-disabled'), cell.disabled), resolveClassName('date-picker-cells-cell-range'), cell.range && !cell.start && !cell.end)];
1890
+ return [resolveClassName('date-picker-cells-cell'), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, resolveClassName('date-picker-cells-cell-selected'), cell.selected), resolveClassName('date-picker-cells-cell-disabled'), cell.disabled), resolveClassName('date-picker-cells-cell-today'), cell.isCurrent), resolveClassName('date-picker-cells-cell-range'), cell.range && !cell.start && !cell.end)];
1859
1891
  };
1860
1892
  var handleClick = function handleClick(cell) {
1861
1893
  if (cell.disabled || cell.type === 'weekLabel') {
@@ -1873,7 +1905,7 @@ var yearTableProps = {
1873
1905
  return;
1874
1906
  }
1875
1907
  var newDate = cell.date;
1876
- emit('change-range', newDate);
1908
+ emit('changeRange', newDate);
1877
1909
  };
1878
1910
  return {
1879
1911
  cells: cells,
@@ -1942,7 +1974,7 @@ var datePickerProps = {
1942
1974
  type: String,
1943
1975
  "default": 'date',
1944
1976
  validator: function validator(value) {
1945
- var validList = ['year', 'month', 'monthrange', 'date', 'daterange', 'datetime', 'datetimerange', 'time', 'timerange'];
1977
+ var validList = ['year', 'yearrange', 'month', 'monthrange', 'date', 'daterange', 'datetime', 'datetimerange', 'time', 'timerange'];
1946
1978
  if (validList.indexOf(value) < 0) {
1947
1979
  console.error("type property is not valid: '".concat(value, "'"));
1948
1980
  return false;
@@ -3519,6 +3551,7 @@ function date_range_objectSpread(e) { for (var r = 1; r < arguments.length; r++)
3519
3551
 
3520
3552
 
3521
3553
 
3554
+
3522
3555
  // import MonthTable from '../base/month-table';
3523
3556
  // import YearTable from '../base/year-table';
3524
3557
  var dateRangePanelProps = {
@@ -3529,7 +3562,7 @@ var dateRangePanelProps = {
3529
3562
  type: String,
3530
3563
  "default": 'date',
3531
3564
  validator: function validator(value) {
3532
- var validList = ['year', 'month', 'monthrange', 'date', 'daterange', 'datetime', 'datetimerange', 'time', 'timerange'];
3565
+ var validList = ['year', 'yearrange', 'month', 'monthrange', 'date', 'daterange', 'datetime', 'datetimerange', 'time', 'timerange'];
3533
3566
  if (validList.indexOf(value) < 0) {
3534
3567
  console.error("type property is not valid: '".concat(value, "'"));
3535
3568
  return false;
@@ -3617,7 +3650,14 @@ var dateRangePanelProps = {
3617
3650
  minDate = _props$modelValue$map2[0],
3618
3651
  maxDate = _props$modelValue$map2[1];
3619
3652
  var leftPanelDate = props.startDate ? props.startDate : minDate;
3620
- var rightPanelDate = props.type === 'monthrange' ? new Date(leftPanelDate.getFullYear() + 1, leftPanelDate.getMonth(), 1) : new Date(leftPanelDate.getFullYear(), leftPanelDate.getMonth() + 1, 1);
3653
+ var rightPanelDate;
3654
+ if (props.type === 'monthrange') {
3655
+ rightPanelDate = new Date(leftPanelDate.getFullYear() + 1, leftPanelDate.getMonth(), 1);
3656
+ } else if (props.type === 'yearrange') {
3657
+ rightPanelDate = new Date(leftPanelDate.getFullYear() + 10, leftPanelDate.getMonth(), 1);
3658
+ } else {
3659
+ rightPanelDate = new Date(leftPanelDate.getFullYear(), leftPanelDate.getMonth() + 1, 1);
3660
+ }
3621
3661
  var state = (0,external_vue_namespaceObject.reactive)({
3622
3662
  currentView: props.selectionMode || 'date',
3623
3663
  leftPickerTable: "".concat(props.selectionMode, "-table"),
@@ -3673,11 +3713,13 @@ var dateRangePanelProps = {
3673
3713
  }
3674
3714
  if (props.splitPanels) {
3675
3715
  var otherPanel = panel === 'left' ? 'right' : 'left';
3676
- if (panel === 'left' && state.leftPanelDate >= state.rightPanelDate) {
3677
- changePanelDate(otherPanel, type, 1);
3716
+ if (panel === 'left' && (state.leftPanelDate >= state.rightPanelDate || Math.floor(state.leftPanelDate.getFullYear() / 10) * 10 === Math.floor(state.rightPanelDate.getFullYear() / 10) * 10)) {
3717
+ // changePanelDate(otherPanel, type, 1);
3718
+ changePanelDate(otherPanel, type, state.currentView === 'year' ? 10 : 1);
3678
3719
  }
3679
- if (panel === 'right' && state.rightPanelDate <= state.leftPanelDate) {
3680
- changePanelDate(otherPanel, type, -1);
3720
+ if (panel === 'right' && (state.rightPanelDate <= state.leftPanelDate || Math.floor(state.leftPanelDate.getFullYear() / 10) * 10 === Math.floor(state.rightPanelDate.getFullYear() / 10) * 10)) {
3721
+ // changePanelDate(otherPanel, type, -1);
3722
+ changePanelDate(otherPanel, type, state.currentView === 'year' ? -10 : -1);
3681
3723
  }
3682
3724
  } else {
3683
3725
  var _otherPanel = panel === 'left' ? 'right' : 'left';
@@ -3845,7 +3887,15 @@ var dateRangePanelProps = {
3845
3887
  };
3846
3888
  function setPanelDates(leftPanelDate) {
3847
3889
  state.leftPanelDate = leftPanelDate;
3848
- var rightPanelDate = new Date(leftPanelDate.getFullYear(), leftPanelDate.getMonth() + 1, 1);
3890
+ // const rightPanelDate = new Date(leftPanelDate.getFullYear(), leftPanelDate.getMonth() + 1, 1);
3891
+ var rightPanelDate;
3892
+ if (props.type === 'monthrange') {
3893
+ rightPanelDate = new Date(leftPanelDate.getFullYear() + 1, leftPanelDate.getMonth(), 1);
3894
+ } else if (props.type === 'yearrange') {
3895
+ rightPanelDate = new Date(leftPanelDate.getFullYear() + 10, leftPanelDate.getMonth(), 1);
3896
+ } else {
3897
+ rightPanelDate = new Date(leftPanelDate.getFullYear(), leftPanelDate.getMonth() + 1, 1);
3898
+ }
3849
3899
  var splitRightPanelDate = state.dates[1] ? state.dates[1].getTime() : state.dates[1];
3850
3900
  state.rightPanelDate = props.splitPanels ? new Date(Math.max(splitRightPanelDate, rightPanelDate.getTime())) : rightPanelDate;
3851
3901
  }
@@ -4056,12 +4106,12 @@ var dateRangePanelProps = {
4056
4106
  "onClick": function onClick() {
4057
4107
  return _this.leftDatePanelLabel.labels[0].handler;
4058
4108
  }
4059
- }, [this.leftDatePanelLabel.labels[0].label]), [[external_vue_namespaceObject.vShow, this.leftShowLabelFirst]]), this.leftDatePanelView === 'date' ? " ".concat(this.leftDatePanelLabel.separator, " ") : ' ', (0,external_vue_namespaceObject.withDirectives)((0,external_vue_namespaceObject.createVNode)("span", {
4109
+ }, [this.type === 'yearrange' ? "".concat(Math.floor(this.leftDatePanelLabel.labels[0].label / 10) * 10, " - ").concat(Math.ceil(this.leftDatePanelLabel.labels[0].label / 10) * 10 - 1) : this.leftDatePanelLabel.labels[0].label]), [[external_vue_namespaceObject.vShow, this.leftShowLabelFirst]]), this.leftDatePanelView === 'date' ? " ".concat(this.leftDatePanelLabel.separator, " ") : ' ', (0,external_vue_namespaceObject.withDirectives)((0,external_vue_namespaceObject.createVNode)("span", {
4060
4110
  "class": this.resolveClassName('date-picker-header-label'),
4061
4111
  "onClick": function onClick() {
4062
4112
  return _this.leftDatePanelLabel.labels[1].handler;
4063
4113
  }
4064
- }, [this.leftDatePanelLabel.labels[1].label]), [[external_vue_namespaceObject.vShow, this.leftShowLabelSecond]])]) : '', this.splitPanels || this.leftPickerTable !== 'date-table' && this.leftPickerTable !== 'month-table' ? (0,external_vue_namespaceObject.createVNode)("span", {
4114
+ }, [this.leftDatePanelLabel.labels[1].label]), [[external_vue_namespaceObject.vShow, this.leftShowLabelSecond]])]) : '', this.splitPanels || this.leftPickerTable !== 'date-table' && this.leftPickerTable !== 'month-table' && this.leftPickerTable !== 'year-table' ? (0,external_vue_namespaceObject.createVNode)("span", {
4065
4115
  "class": iconBtnCls('next', '-double'),
4066
4116
  "onClick": function onClick() {
4067
4117
  return _this.nextYear('left');
@@ -4107,6 +4157,17 @@ var dateRangePanelProps = {
4107
4157
  "onChangeRange": _this.handleChangeRange,
4108
4158
  "onPick": _this.panelPickerHandlers.left
4109
4159
  }, null);
4160
+ case 'year-table':
4161
+ return (0,external_vue_namespaceObject.createVNode)(year_table, {
4162
+ "selectionMode": "range",
4163
+ "tableDate": _this.leftPanelDate,
4164
+ "disabledDate": _this.disabledDate,
4165
+ "rangeState": _this.rangeState,
4166
+ "modelValue": _this.preSelecting.left ? [_this.dates[0]] : _this.dates,
4167
+ "focusedDate": _this.focusedDate,
4168
+ "onChangeRange": _this.handleChangeRange,
4169
+ "onPick": _this.panelPickerHandlers.left
4170
+ }, null);
4110
4171
  default:
4111
4172
  return null;
4112
4173
  }
@@ -4115,7 +4176,7 @@ var dateRangePanelProps = {
4115
4176
  "style": "width: 261px;"
4116
4177
  }, [(0,external_vue_namespaceObject.withDirectives)((0,external_vue_namespaceObject.createVNode)("div", {
4117
4178
  "class": this.resolveClassName('date-picker-header')
4118
- }, [this.splitPanels || this.rightPickerTable !== 'date-table' && this.rightPickerTable !== 'month-table' ? (0,external_vue_namespaceObject.createVNode)("span", {
4179
+ }, [this.splitPanels || this.rightPickerTable !== 'date-table' && this.rightPickerTable !== 'month-table' && this.rightPickerTable !== 'year-table' ? (0,external_vue_namespaceObject.createVNode)("span", {
4119
4180
  "class": iconBtnCls('prev', '-double'),
4120
4181
  "onClick": function onClick() {
4121
4182
  return _this.prevYear('right');
@@ -4142,7 +4203,7 @@ var dateRangePanelProps = {
4142
4203
  "onClick": function onClick() {
4143
4204
  return _this.rightDatePanelLabel.labels[0].handler;
4144
4205
  }
4145
- }, [this.rightDatePanelLabel.labels[0].label]), [[external_vue_namespaceObject.vShow, this.rightShowLabelFirst]]), this.rightDatePanelView === 'date' ? " ".concat(this.rightDatePanelLabel.separator, " ") : ' ', (0,external_vue_namespaceObject.withDirectives)((0,external_vue_namespaceObject.createVNode)("span", {
4206
+ }, [this.type === 'yearrange' ? "".concat(Math.floor(this.rightDatePanelLabel.labels[0].label / 10) * 10, " - ").concat(Math.ceil(this.rightDatePanelLabel.labels[0].label / 10) * 10 - 1) : this.rightDatePanelLabel.labels[0].label]), [[external_vue_namespaceObject.vShow, this.rightShowLabelFirst]]), this.rightDatePanelView === 'date' ? " ".concat(this.rightDatePanelLabel.separator, " ") : ' ', (0,external_vue_namespaceObject.withDirectives)((0,external_vue_namespaceObject.createVNode)("span", {
4146
4207
  "class": this.resolveClassName('date-picker-header-label'),
4147
4208
  "onClick": function onClick() {
4148
4209
  return _this.rightDatePanelLabel.labels[1].handler;
@@ -4205,6 +4266,17 @@ var dateRangePanelProps = {
4205
4266
  "onChangeRange": _this.handleChangeRange,
4206
4267
  "onPick": _this.panelPickerHandlers.right
4207
4268
  }, null);
4269
+ case 'year-table':
4270
+ return (0,external_vue_namespaceObject.createVNode)(year_table, {
4271
+ "selectionMode": "range",
4272
+ "tableDate": _this.rightPanelDate,
4273
+ "disabledDate": _this.disabledDate,
4274
+ "rangeState": _this.rangeState,
4275
+ "modelValue": _this.preSelecting.right ? [_this.dates[_this.dates.length - 1]] : _this.dates,
4276
+ "focusedDate": _this.focusedDate,
4277
+ "onChangeRange": _this.handleChangeRange,
4278
+ "onPick": _this.panelPickerHandlers.right
4279
+ }, null);
4208
4280
  default:
4209
4281
  return null;
4210
4282
  }
@@ -4336,6 +4408,10 @@ function date_picker_objectSpread(e) { for (var r = 1; r < arguments.length; r++
4336
4408
  if (_type.match(/^month/)) {
4337
4409
  type = 'month';
4338
4410
  }
4411
+ // 增加了 yearrange
4412
+ if (_type.match(/^year/)) {
4413
+ type = 'year';
4414
+ }
4339
4415
  // return ['year', 'month', 'date', 'time'].indexOf(type) > -1 && type;
4340
4416
  state.selectionMode = ['year', 'month', 'date', 'time'].indexOf(type) > -1 && type;
4341
4417
  return state.selectionMode;
@@ -4367,7 +4443,7 @@ function date_picker_objectSpread(e) { for (var r = 1; r < arguments.length; r++
4367
4443
  }) : formatDate(publicVModelValue.value, props.type, props.multiple, props.format);
4368
4444
  });
4369
4445
  var panel = (0,external_vue_namespaceObject.computed)(function () {
4370
- var isRange = props.type === 'daterange' || props.type === 'datetimerange' || props.type === 'monthrange';
4446
+ var isRange = props.type === 'daterange' || props.type === 'datetimerange' || props.type === 'monthrange' || props.type === 'yearrange';
4371
4447
  return isRange ? 'DateRangePanel' : 'DatePanel';
4372
4448
  });
4373
4449
  var opened = (0,external_vue_namespaceObject.computed)(function () {
@@ -5134,10 +5210,9 @@ function time_picker_objectSpread(e) { for (var r = 1; r < arguments.length; r++
5134
5210
  return panel.value === 'RangeTimePickerPanel' ? props.allowCrossDay : false;
5135
5211
  });
5136
5212
  var inputRef = (0,external_vue_namespaceObject.ref)(null);
5137
- var inputFocus = function inputFocus() {
5138
- var _inputRef$value;
5139
- inputRef === null || inputRef === void 0 || (_inputRef$value = inputRef.value) === null || _inputRef$value === void 0 || _inputRef$value.focus();
5140
- };
5213
+ // const inputFocus = () => {
5214
+ // inputRef?.value?.focus();
5215
+ // };
5141
5216
  var _getCurrentInstance = (0,external_vue_namespaceObject.getCurrentInstance)(),
5142
5217
  proxy = _getCurrentInstance.proxy;
5143
5218
  var pickerDropdownRef = (0,external_vue_namespaceObject.ref)(null);
@@ -5205,12 +5280,14 @@ function time_picker_objectSpread(e) { for (var r = 1; r < arguments.length; r++
5205
5280
  state.visible = props.open;
5206
5281
  }
5207
5282
  // this.$on('focus-input', () => this.focus())
5208
- (0,external_vue_namespaceObject.provide)(datePickerKey, {
5209
- props: props,
5210
- focus: function focus() {
5211
- return inputFocus();
5212
- }
5213
- });
5283
+ // provide(datePickerKey, {
5284
+ // props,
5285
+ // focus: () => inputFocus(),
5286
+ // });
5287
+ });
5288
+ (0,external_vue_namespaceObject.provide)(timePickerKey, {
5289
+ panelDate: state.focusedDate,
5290
+ parentName: proxy.$options.name
5214
5291
  });
5215
5292
  var pickerPanelRef = (0,external_vue_namespaceObject.ref)(null);
5216
5293
  var handleClose = function handleClose(e) {
@@ -5238,9 +5315,9 @@ function time_picker_objectSpread(e) { for (var r = 1; r < arguments.length; r++
5238
5315
  state.disableClickOutSide = false;
5239
5316
  };
5240
5317
  var handleIconClick = function handleIconClick() {
5241
- var _inputRef$value2, _inputRef$value3;
5242
- inputRef === null || inputRef === void 0 || (_inputRef$value2 = inputRef.value) === null || _inputRef$value2 === void 0 || _inputRef$value2.focus();
5243
- inputRef === null || inputRef === void 0 || (_inputRef$value3 = inputRef.value) === null || _inputRef$value3 === void 0 || _inputRef$value3.click();
5318
+ var _inputRef$value, _inputRef$value2;
5319
+ inputRef === null || inputRef === void 0 || (_inputRef$value = inputRef.value) === null || _inputRef$value === void 0 || _inputRef$value.focus();
5320
+ inputRef === null || inputRef === void 0 || (_inputRef$value2 = inputRef.value) === null || _inputRef$value2 === void 0 || _inputRef$value2.click();
5244
5321
  };
5245
5322
  var handleInputMouseenter = function handleInputMouseenter() {
5246
5323
  if (props.readonly || props.disabled) {
@@ -5266,8 +5343,8 @@ function time_picker_objectSpread(e) { for (var r = 1; r < arguments.length; r++
5266
5343
  emit('change', publicStringValue.value, type);
5267
5344
  // this.dispatch('bk-form-item', 'form-change');
5268
5345
  if (props.type.indexOf('time') < 0) {
5269
- var _inputRef$value4;
5270
- inputRef === null || inputRef === void 0 || (_inputRef$value4 = inputRef.value) === null || _inputRef$value4 === void 0 || _inputRef$value4.blur();
5346
+ var _inputRef$value3;
5347
+ inputRef === null || inputRef === void 0 || (_inputRef$value3 = inputRef.value) === null || _inputRef$value3 === void 0 || _inputRef$value3.blur();
5271
5348
  }
5272
5349
  });
5273
5350
  };
@@ -5417,14 +5494,14 @@ function time_picker_objectSpread(e) { for (var r = 1; r < arguments.length; r++
5417
5494
  }
5418
5495
  };
5419
5496
  var onPickSuccess = function onPickSuccess() {
5420
- var _inputRef$value5;
5497
+ var _inputRef$value4;
5421
5498
  state.visible = false;
5422
5499
  // 点击 shortcuts 会关闭弹层时,如果不在 nextTick 里触发 pick-success,那么会导致触发 pick-success 的时候,
5423
5500
  // v-model 的值还是之前的值
5424
5501
  (0,external_vue_namespaceObject.nextTick)(function () {
5425
5502
  emit('pick-success');
5426
5503
  });
5427
- inputRef === null || inputRef === void 0 || (_inputRef$value5 = inputRef.value) === null || _inputRef$value5 === void 0 || _inputRef$value5.blur();
5504
+ inputRef === null || inputRef === void 0 || (_inputRef$value4 = inputRef.value) === null || _inputRef$value4 === void 0 || _inputRef$value4.blur();
5428
5505
  reset();
5429
5506
  };
5430
5507
  var onPick = function onPick(_dates) {
@@ -1,7 +1,7 @@
1
1
  import type { ComputedPlacement } from '@popperjs/core';
2
2
  import type { DatePickerProps } from './props';
3
3
  export type DatePickerPlacementType = ComputedPlacement;
4
- export type DatePickerTypeType = 'year' | 'month' | 'monthrange' | 'date' | 'daterange' | 'datetime' | 'datetimerange';
4
+ export type DatePickerTypeType = 'year' | 'yearrange' | 'month' | 'monthrange' | 'date' | 'daterange' | 'datetime' | 'datetimerange';
5
5
  export type TimePickerTypeType = 'time' | 'timerange';
6
6
  export type PickerTypeType = DatePickerTypeType | TimePickerTypeType;
7
7
  export interface IDatePickerShortcut {