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.
- package/dist/index.cjs.js +39 -39
- package/dist/index.esm.js +7364 -7328
- package/dist/index.umd.js +36 -36
- package/lib/date-picker/base/month-table.d.ts +2 -2
- package/lib/date-picker/index.js +59 -9
- package/lib/date-picker/interface.d.ts +1 -1
- package/lib/date-picker/utils.d.ts +4 -0
- package/package.json +1 -1
@@ -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" | "
|
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
|
-
|
113
|
+
onChangeRange?: (...args: any[]) => any;
|
114
114
|
}, {
|
115
115
|
readonly rangeState: Record<string, any>;
|
116
116
|
readonly cellClass: Function;
|
package/lib/date-picker/index.js
CHANGED
@@ -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', '
|
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('
|
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:
|
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;
|