bkui-vue 1.0.3-beta.38 → 1.0.3-beta.39

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.
@@ -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;
@@ -1087,6 +1087,10 @@ var typeValueResolver = {
1087
1087
  return src_fecha.parse(text, format || 'yyyy-MM-dd');
1088
1088
  }
1089
1089
  },
1090
+ monthrange: {
1091
+ formatter: rangeFormatter,
1092
+ parser: rangeParser
1093
+ },
1090
1094
  year: {
1091
1095
  formatter: function formatter(value, format) {
1092
1096
  return dateFormat(value, format);
@@ -1187,6 +1191,7 @@ var extractTime = function extractTime(date) {
1187
1191
  var DEFAULT_FORMATS = {
1188
1192
  date: 'yyyy-MM-dd',
1189
1193
  month: 'yyyy-MM',
1194
+ monthrange: 'yyyy-MM',
1190
1195
  year: 'yyyy',
1191
1196
  datetime: 'yyyy-MM-dd HH:mm:ss',
1192
1197
  time: 'HH:mm:ss',
@@ -1563,6 +1568,7 @@ var dateTableProps = {
1563
1568
  ;// CONCATENATED MODULE: ../../packages/date-picker/src/base/month-table.tsx
1564
1569
 
1565
1570
 
1571
+
1566
1572
  /*
1567
1573
  * Tencent is pleased to support the open source community by making
1568
1574
  * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
@@ -1635,7 +1641,7 @@ var monthTableProps = {
1635
1641
  /* harmony default export */ const month_table = ((0,external_vue_namespaceObject.defineComponent)({
1636
1642
  name: 'MonthTable',
1637
1643
  props: monthTableProps,
1638
- emits: ['pick', 'pick-click', 'change-range'],
1644
+ emits: ['pick', 'pick-click', 'changeRange'],
1639
1645
  setup: function setup(props, _ref) {
1640
1646
  var emit = _ref.emit;
1641
1647
  var dates = (0,external_vue_namespaceObject.computed)(function () {
@@ -1645,6 +1651,7 @@ var monthTableProps = {
1645
1651
  var rangeSelecting = selectionMode === 'range' && rangeState.selecting;
1646
1652
  return rangeSelecting ? [rangeState.from] : modelValue;
1647
1653
  });
1654
+ var isRange = props.selectionMode === 'range';
1648
1655
  var cells = (0,external_vue_namespaceObject.computed)(function () {
1649
1656
  var cells = [];
1650
1657
  var cellTmpl = {
@@ -1657,13 +1664,23 @@ var monthTableProps = {
1657
1664
  return clearHours(new Date(date.getFullYear(), date.getMonth(), 1));
1658
1665
  });
1659
1666
  var focusedDate = clearHours(new Date(props.focusedDate.getFullYear(), props.focusedDate.getMonth(), 1));
1667
+ var _dates$value$map = dates.value.map(clearHours),
1668
+ _dates$value$map2 = _slicedToArray(_dates$value$map, 2),
1669
+ minDay = _dates$value$map2[0],
1670
+ maxDay = _dates$value$map2[1];
1671
+ var rangeStart = props.rangeState.from && clearHours(props.rangeState.from);
1672
+ var rangeEnd = props.rangeState.to && clearHours(props.rangeState.to);
1660
1673
  for (var i = 0; i < 12; i++) {
1661
1674
  var cell = JSON.parse(JSON.stringify(cellTmpl));
1662
1675
  cell.date = new Date(tableYear, i, 1);
1663
1676
  cell.text = tCell(i + 1);
1664
1677
  var day = clearHours(cell.date);
1678
+ var time = cell.date && clearHours(cell.date);
1665
1679
  cell.disabled = typeof props.disabledDate === 'function' && props.disabledDate(cell.date) && props.selectionMode === 'month';
1666
1680
  cell.selected = selectedDays.includes(day);
1681
+ cell.range = isRange && isInRange(time, rangeStart, rangeEnd);
1682
+ cell.start = isRange && time === minDay;
1683
+ cell.end = isRange && time === maxDay;
1667
1684
  cell.focused = day === focusedDate;
1668
1685
  cells.push(cell);
1669
1686
  }
@@ -1675,7 +1692,12 @@ var monthTableProps = {
1675
1692
  var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
1676
1693
  resolveClassName = _usePrefix.resolveClassName;
1677
1694
  var getCellCls = function getCellCls(cell) {
1678
- 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)];
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'),
1696
+ // {
1697
+ // [resolveClassName('date-picker-cells-cell-today')]: cell.type === 'today',
1698
+ // [resolveClassName('date-picker-cells-cell-range')]: cell.range && !cell.start && !cell.end,
1699
+ // },
1700
+ ];
1679
1701
  };
1680
1702
  var handleClick = function handleClick(cell) {
1681
1703
  if (cell.disabled || cell.type === 'weekLabel') {
@@ -1693,7 +1715,7 @@ var monthTableProps = {
1693
1715
  return;
1694
1716
  }
1695
1717
  var newDate = cell.date;
1696
- emit('change-range', newDate);
1718
+ emit('changeRange', newDate);
1697
1719
  };
1698
1720
  return {
1699
1721
  cells: cells,
@@ -1920,7 +1942,7 @@ var datePickerProps = {
1920
1942
  type: String,
1921
1943
  "default": 'date',
1922
1944
  validator: function validator(value) {
1923
- var validList = ['year', 'month', 'date', 'daterange', 'datetime', 'datetimerange', 'time', 'timerange'];
1945
+ var validList = ['year', 'month', 'monthrange', 'date', 'daterange', 'datetime', 'datetimerange', 'time', 'timerange'];
1924
1946
  if (validList.indexOf(value) < 0) {
1925
1947
  console.error("type property is not valid: '".concat(value, "'"));
1926
1948
  return false;
@@ -3496,6 +3518,7 @@ function date_range_objectSpread(e) { for (var r = 1; r < arguments.length; r++)
3496
3518
 
3497
3519
 
3498
3520
 
3521
+
3499
3522
  // import MonthTable from '../base/month-table';
3500
3523
  // import YearTable from '../base/year-table';
3501
3524
  var dateRangePanelProps = {
@@ -3506,7 +3529,7 @@ var dateRangePanelProps = {
3506
3529
  type: String,
3507
3530
  "default": 'date',
3508
3531
  validator: function validator(value) {
3509
- var validList = ['year', 'month', 'date', 'daterange', 'datetime', 'datetimerange', 'time', 'timerange'];
3532
+ var validList = ['year', 'month', 'monthrange', 'date', 'daterange', 'datetime', 'datetimerange', 'time', 'timerange'];
3510
3533
  if (validList.indexOf(value) < 0) {
3511
3534
  console.error("type property is not valid: '".concat(value, "'"));
3512
3535
  return false;
@@ -3594,12 +3617,13 @@ var dateRangePanelProps = {
3594
3617
  minDate = _props$modelValue$map2[0],
3595
3618
  maxDate = _props$modelValue$map2[1];
3596
3619
  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);
3597
3621
  var state = (0,external_vue_namespaceObject.reactive)({
3598
3622
  currentView: props.selectionMode || 'date',
3599
3623
  leftPickerTable: "".concat(props.selectionMode, "-table"),
3600
3624
  rightPickerTable: "".concat(props.selectionMode, "-table"),
3601
3625
  leftPanelDate: leftPanelDate,
3602
- rightPanelDate: new Date(leftPanelDate.getFullYear(), leftPanelDate.getMonth() + 1, 1),
3626
+ rightPanelDate: rightPanelDate,
3603
3627
  rangeState: {
3604
3628
  from: props.modelValue[0],
3605
3629
  to: props.modelValue[1],
@@ -4037,7 +4061,7 @@ var dateRangePanelProps = {
4037
4061
  "onClick": function onClick() {
4038
4062
  return _this.leftDatePanelLabel.labels[1].handler;
4039
4063
  }
4040
- }, [this.leftDatePanelLabel.labels[1].label]), [[external_vue_namespaceObject.vShow, this.leftShowLabelSecond]])]) : '', this.splitPanels || this.leftPickerTable !== 'date-table' ? (0,external_vue_namespaceObject.createVNode)("span", {
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", {
4041
4065
  "class": iconBtnCls('next', '-double'),
4042
4066
  "onClick": function onClick() {
4043
4067
  return _this.nextYear('left');
@@ -4072,6 +4096,17 @@ var dateRangePanelProps = {
4072
4096
  "onChangeRange": _this.handleChangeRange,
4073
4097
  "onPick": _this.panelPickerHandlers.left
4074
4098
  }, null);
4099
+ case 'month-table':
4100
+ return (0,external_vue_namespaceObject.createVNode)(month_table, {
4101
+ "selectionMode": "range",
4102
+ "tableDate": _this.leftPanelDate,
4103
+ "disabledDate": _this.disabledDate,
4104
+ "rangeState": _this.rangeState,
4105
+ "modelValue": _this.preSelecting.left ? [_this.dates[0]] : _this.dates,
4106
+ "focusedDate": _this.focusedDate,
4107
+ "onChangeRange": _this.handleChangeRange,
4108
+ "onPick": _this.panelPickerHandlers.left
4109
+ }, null);
4075
4110
  default:
4076
4111
  return null;
4077
4112
  }
@@ -4080,7 +4115,7 @@ var dateRangePanelProps = {
4080
4115
  "style": "width: 261px;"
4081
4116
  }, [(0,external_vue_namespaceObject.withDirectives)((0,external_vue_namespaceObject.createVNode)("div", {
4082
4117
  "class": this.resolveClassName('date-picker-header')
4083
- }, [this.splitPanels || this.rightPickerTable !== 'date-table' ? (0,external_vue_namespaceObject.createVNode)("span", {
4118
+ }, [this.splitPanels || this.rightPickerTable !== 'date-table' && this.rightPickerTable !== 'month-table' ? (0,external_vue_namespaceObject.createVNode)("span", {
4084
4119
  "class": iconBtnCls('prev', '-double'),
4085
4120
  "onClick": function onClick() {
4086
4121
  return _this.prevYear('right');
@@ -4159,6 +4194,17 @@ var dateRangePanelProps = {
4159
4194
  "onChangeRange": _this.handleChangeRange,
4160
4195
  "onPick": _this.panelPickerHandlers.right
4161
4196
  }, null);
4197
+ case 'month-table':
4198
+ return (0,external_vue_namespaceObject.createVNode)(month_table, {
4199
+ "selectionMode": "range",
4200
+ "tableDate": _this.rightPanelDate,
4201
+ "disabledDate": _this.disabledDate,
4202
+ "rangeState": _this.rangeState,
4203
+ "modelValue": _this.preSelecting.right ? [_this.dates[_this.dates.length - 1]] : _this.dates,
4204
+ "focusedDate": _this.focusedDate,
4205
+ "onChangeRange": _this.handleChangeRange,
4206
+ "onPick": _this.panelPickerHandlers.right
4207
+ }, null);
4162
4208
  default:
4163
4209
  return null;
4164
4210
  }
@@ -4286,6 +4332,10 @@ function date_picker_objectSpread(e) { for (var r = 1; r < arguments.length; r++
4286
4332
  if (_type.match(/^date/)) {
4287
4333
  type = 'date';
4288
4334
  }
4335
+ // 增加了 monthrange
4336
+ if (_type.match(/^month/)) {
4337
+ type = 'month';
4338
+ }
4289
4339
  // return ['year', 'month', 'date', 'time'].indexOf(type) > -1 && type;
4290
4340
  state.selectionMode = ['year', 'month', 'date', 'time'].indexOf(type) > -1 && type;
4291
4341
  return state.selectionMode;
@@ -4317,7 +4367,7 @@ function date_picker_objectSpread(e) { for (var r = 1; r < arguments.length; r++
4317
4367
  }) : formatDate(publicVModelValue.value, props.type, props.multiple, props.format);
4318
4368
  });
4319
4369
  var panel = (0,external_vue_namespaceObject.computed)(function () {
4320
- var isRange = props.type === 'daterange' || props.type === 'datetimerange';
4370
+ var isRange = props.type === 'daterange' || props.type === 'datetimerange' || props.type === 'monthrange';
4321
4371
  return isRange ? 'DateRangePanel' : 'DatePanel';
4322
4372
  });
4323
4373
  var opened = (0,external_vue_namespaceObject.computed)(function () {
@@ -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' | 'date' | 'daterange' | 'datetime' | 'datetimerange';
4
+ export type DatePickerTypeType = 'year' | '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 {
@@ -34,6 +34,10 @@ export declare const typeValueResolver: {
34
34
  formatter: (value: any, format: any) => string;
35
35
  parser: (text: any, format: any) => any;
36
36
  };
37
+ monthrange: {
38
+ formatter: (value: any, format: any) => string;
39
+ parser: (text: any, format: any) => any[];
40
+ };
37
41
  year: {
38
42
  formatter: (value: any, format: any) => string;
39
43
  parser: (text: any, format: any) => any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bkui-vue",
3
- "version": "1.0.3-beta.38",
3
+ "version": "1.0.3-beta.39",
4
4
  "workspaces": {
5
5
  "packages": [
6
6
  "packages/!(**.bak)*",