zartui 3.0.7 → 3.0.8
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/es/calendar/Calendar.d.ts +23 -33
- package/es/calendar/Calendar.mjs +124 -31
- package/es/calendar/CalendarDay.mjs +1 -1
- package/es/calendar/CalendarHeader.d.ts +15 -1
- package/es/calendar/CalendarHeader.mjs +106 -4
- package/es/calendar/CalendarMonth.d.ts +23 -24
- package/es/calendar/CalendarMonth.mjs +49 -8
- package/es/calendar/index.css +1 -1
- package/es/calendar/index.d.ts +15 -22
- package/es/calendar/types.d.ts +3 -1
- package/es/calendar/utils.d.ts +4 -1
- package/es/calendar/utils.mjs +23 -3
- package/es/cascader/Cascader.mjs +1 -1
- package/es/dialog/Dialog.d.ts +4 -0
- package/es/dialog/Dialog.mjs +24 -9
- package/es/dialog/index.css +1 -1
- package/es/dialog/index.d.ts +3 -0
- package/es/dialog/types.d.ts +1 -0
- package/es/field/Field.d.ts +3 -0
- package/es/field/Field.mjs +2 -1
- package/es/field/index.d.ts +2 -0
- package/es/icon/config.mjs +2 -1
- package/es/icon/index.css +1 -1
- package/es/overlay/index.d.ts +1 -1
- package/es/popover/Popover.mjs +14 -6
- package/es/swipe-cell/index.d.ts +1 -1
- package/es/table/Table.d.ts +8 -3
- package/es/table/Table.mjs +122 -31
- package/es/table/index.css +1 -1
- package/es/table/index.d.ts +4 -2
- package/es/table/style/index.mjs +2 -0
- package/es/table/types.d.ts +5 -0
- package/es/table/types.mjs +8 -0
- package/es/tag/Tag.d.ts +3 -0
- package/es/tag/Tag.mjs +24 -16
- package/es/tag/index.css +1 -1
- package/es/tag/index.d.ts +2 -0
- package/es/tag/style/index.mjs +1 -0
- package/es/uploader/UploaderPreviewItem.d.ts +1 -1
- package/lib/calendar/Calendar.d.ts +23 -33
- package/lib/calendar/Calendar.js +123 -30
- package/lib/calendar/CalendarDay.js +1 -1
- package/lib/calendar/CalendarHeader.d.ts +15 -1
- package/lib/calendar/CalendarHeader.js +106 -4
- package/lib/calendar/CalendarMonth.d.ts +23 -24
- package/lib/calendar/CalendarMonth.js +48 -7
- package/lib/calendar/index.css +1 -1
- package/lib/calendar/index.d.ts +15 -22
- package/lib/calendar/types.d.ts +3 -1
- package/lib/calendar/utils.d.ts +4 -1
- package/lib/calendar/utils.js +23 -3
- package/lib/cascader/Cascader.js +1 -1
- package/lib/dialog/Dialog.d.ts +4 -0
- package/lib/dialog/Dialog.js +24 -9
- package/lib/dialog/index.css +1 -1
- package/lib/dialog/index.d.ts +3 -0
- package/lib/dialog/types.d.ts +1 -0
- package/lib/field/Field.d.ts +3 -0
- package/lib/field/Field.js +2 -1
- package/lib/field/index.d.ts +2 -0
- package/lib/icon/config.js +2 -1
- package/lib/icon/index.css +1 -1
- package/lib/index.css +1 -1
- package/lib/overlay/index.d.ts +1 -1
- package/lib/popover/Popover.js +14 -6
- package/lib/swipe-cell/index.d.ts +1 -1
- package/lib/table/Table.d.ts +8 -3
- package/lib/table/Table.js +122 -31
- package/lib/table/index.css +1 -1
- package/lib/table/index.d.ts +4 -2
- package/lib/table/style/index.js +2 -0
- package/lib/table/types.d.ts +5 -0
- package/lib/table/types.js +27 -0
- package/lib/tag/Tag.d.ts +3 -0
- package/lib/tag/Tag.js +34 -16
- package/lib/tag/index.css +1 -1
- package/lib/tag/index.d.ts +2 -0
- package/lib/tag/style/index.js +1 -0
- package/lib/uploader/UploaderPreviewItem.d.ts +1 -1
- package/lib/web-types.json +1 -1
- package/lib/zartui.cjs.js +487 -109
- package/lib/zartui.es.js +487 -109
- package/lib/zartui.js +487 -109
- package/lib/zartui.min.js +1 -1
- package/package.json +7 -7
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { PropType, ExtractPropTypes } from 'vue';
|
|
2
2
|
import { PopupPosition } from '../popup';
|
|
3
|
-
import type { CalendarType, CalendarDayItem } from './types';
|
|
3
|
+
import type { CalendarType, CalendarDayItem, CalendarShowType } from './types';
|
|
4
4
|
export declare const calendarProps: {
|
|
5
5
|
show: BooleanConstructor;
|
|
6
|
+
showType: {
|
|
7
|
+
type: PropType<CalendarShowType>;
|
|
8
|
+
default: CalendarShowType;
|
|
9
|
+
};
|
|
6
10
|
type: {
|
|
7
11
|
type: PropType<CalendarType>;
|
|
8
12
|
default: CalendarType;
|
|
@@ -74,25 +78,22 @@ export declare const calendarProps: {
|
|
|
74
78
|
type: BooleanConstructor;
|
|
75
79
|
default: true;
|
|
76
80
|
};
|
|
77
|
-
minDate:
|
|
78
|
-
|
|
79
|
-
validator: (val: unknown) => val is Date;
|
|
80
|
-
default: () => Date;
|
|
81
|
-
};
|
|
82
|
-
maxDate: {
|
|
83
|
-
type: DateConstructor;
|
|
84
|
-
validator: (val: unknown) => val is Date;
|
|
85
|
-
default: () => Date;
|
|
86
|
-
};
|
|
81
|
+
minDate: DateConstructor;
|
|
82
|
+
maxDate: DateConstructor;
|
|
87
83
|
firstDayOfWeek: {
|
|
88
84
|
type: (NumberConstructor | StringConstructor)[];
|
|
89
85
|
default: number;
|
|
90
86
|
validator: (val: number) => boolean;
|
|
91
87
|
};
|
|
88
|
+
disabledDate: PropType<(date: Date) => boolean>;
|
|
92
89
|
};
|
|
93
90
|
export declare type CalendarProps = ExtractPropTypes<typeof calendarProps>;
|
|
94
91
|
declare const _default: import("vue").DefineComponent<{
|
|
95
92
|
show: BooleanConstructor;
|
|
93
|
+
showType: {
|
|
94
|
+
type: PropType<CalendarShowType>;
|
|
95
|
+
default: CalendarShowType;
|
|
96
|
+
};
|
|
96
97
|
type: {
|
|
97
98
|
type: PropType<CalendarType>;
|
|
98
99
|
default: CalendarType;
|
|
@@ -164,23 +165,20 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
164
165
|
type: BooleanConstructor;
|
|
165
166
|
default: true;
|
|
166
167
|
};
|
|
167
|
-
minDate:
|
|
168
|
-
|
|
169
|
-
validator: (val: unknown) => val is Date;
|
|
170
|
-
default: () => Date;
|
|
171
|
-
};
|
|
172
|
-
maxDate: {
|
|
173
|
-
type: DateConstructor;
|
|
174
|
-
validator: (val: unknown) => val is Date;
|
|
175
|
-
default: () => Date;
|
|
176
|
-
};
|
|
168
|
+
minDate: DateConstructor;
|
|
169
|
+
maxDate: DateConstructor;
|
|
177
170
|
firstDayOfWeek: {
|
|
178
171
|
type: (NumberConstructor | StringConstructor)[];
|
|
179
172
|
default: number;
|
|
180
173
|
validator: (val: number) => boolean;
|
|
181
174
|
};
|
|
175
|
+
disabledDate: PropType<(date: Date) => boolean>;
|
|
182
176
|
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "update:show" | "cancel" | "clickSubtitle" | "confirm" | "unselect" | "monthShow" | "overRange")[], "select" | "update:show" | "cancel" | "clickSubtitle" | "confirm" | "unselect" | "monthShow" | "overRange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
|
183
177
|
show: BooleanConstructor;
|
|
178
|
+
showType: {
|
|
179
|
+
type: PropType<CalendarShowType>;
|
|
180
|
+
default: CalendarShowType;
|
|
181
|
+
};
|
|
184
182
|
type: {
|
|
185
183
|
type: PropType<CalendarType>;
|
|
186
184
|
default: CalendarType;
|
|
@@ -252,21 +250,14 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
252
250
|
type: BooleanConstructor;
|
|
253
251
|
default: true;
|
|
254
252
|
};
|
|
255
|
-
minDate:
|
|
256
|
-
|
|
257
|
-
validator: (val: unknown) => val is Date;
|
|
258
|
-
default: () => Date;
|
|
259
|
-
};
|
|
260
|
-
maxDate: {
|
|
261
|
-
type: DateConstructor;
|
|
262
|
-
validator: (val: unknown) => val is Date;
|
|
263
|
-
default: () => Date;
|
|
264
|
-
};
|
|
253
|
+
minDate: DateConstructor;
|
|
254
|
+
maxDate: DateConstructor;
|
|
265
255
|
firstDayOfWeek: {
|
|
266
256
|
type: (NumberConstructor | StringConstructor)[];
|
|
267
257
|
default: number;
|
|
268
258
|
validator: (val: number) => boolean;
|
|
269
259
|
};
|
|
260
|
+
disabledDate: PropType<(date: Date) => boolean>;
|
|
270
261
|
}>> & {
|
|
271
262
|
onSelect?: ((...args: any[]) => any) | undefined;
|
|
272
263
|
"onUpdate:show"?: ((...args: any[]) => any) | undefined;
|
|
@@ -288,6 +279,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
288
279
|
safeAreaInsetTop: boolean;
|
|
289
280
|
safeAreaInsetBottom: boolean;
|
|
290
281
|
popup: boolean;
|
|
282
|
+
showType: CalendarShowType;
|
|
291
283
|
maxRange: string | number;
|
|
292
284
|
showMark: boolean;
|
|
293
285
|
showTitle: boolean;
|
|
@@ -295,8 +287,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
295
287
|
allowSameDay: boolean;
|
|
296
288
|
showSubtitle: boolean;
|
|
297
289
|
showRangePrompt: boolean;
|
|
298
|
-
minDate: Date;
|
|
299
|
-
maxDate: Date;
|
|
300
290
|
firstDayOfWeek: string | number;
|
|
301
291
|
}>;
|
|
302
292
|
export default _default;
|
package/es/calendar/Calendar.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
|
|
2
2
|
import { ref, watch, computed, defineComponent } from "vue";
|
|
3
3
|
import { pick, isDate, truthProp, numericProp, getScrollTop, makeStringProp, makeNumericProp } from "../utils/index.mjs";
|
|
4
|
-
import { t, bem, name, getToday, cloneDate, cloneDates, getPrevDay, getNextDay, compareDay, calcDateNum, compareMonth, getDayByOffset } from "./utils.mjs";
|
|
4
|
+
import { t, bem, name, getToday, cloneDate, cloneDates, getPrevDay, getNextDay, getPrevDate, getNextDate, compareDay, calcDateNum, compareMonth, getDayByOffset, getFirstDate, formatMonthTitle } from "./utils.mjs";
|
|
5
5
|
import { raf, useRect, onMountedOrActivated } from "@zartui/use";
|
|
6
6
|
import { useRefs } from "../composables/use-refs.mjs";
|
|
7
7
|
import { useExpose } from "../composables/use-expose.mjs";
|
|
@@ -12,6 +12,7 @@ import CalendarMonth from "./CalendarMonth.mjs";
|
|
|
12
12
|
import CalendarHeader from "./CalendarHeader.mjs";
|
|
13
13
|
const calendarProps = {
|
|
14
14
|
show: Boolean,
|
|
15
|
+
showType: makeStringProp("inline"),
|
|
15
16
|
type: makeStringProp("single"),
|
|
16
17
|
title: String,
|
|
17
18
|
color: String,
|
|
@@ -38,24 +39,14 @@ const calendarProps = {
|
|
|
38
39
|
closeOnClickOverlay: truthProp,
|
|
39
40
|
safeAreaInsetTop: Boolean,
|
|
40
41
|
safeAreaInsetBottom: truthProp,
|
|
41
|
-
minDate:
|
|
42
|
-
|
|
43
|
-
validator: isDate,
|
|
44
|
-
default: getToday
|
|
45
|
-
},
|
|
46
|
-
maxDate: {
|
|
47
|
-
type: Date,
|
|
48
|
-
validator: isDate,
|
|
49
|
-
default: () => {
|
|
50
|
-
const now = getToday();
|
|
51
|
-
return new Date(now.getFullYear(), now.getMonth() + 6, now.getDate());
|
|
52
|
-
}
|
|
53
|
-
},
|
|
42
|
+
minDate: Date,
|
|
43
|
+
maxDate: Date,
|
|
54
44
|
firstDayOfWeek: {
|
|
55
45
|
type: numericProp,
|
|
56
|
-
default:
|
|
46
|
+
default: 1,
|
|
57
47
|
validator: (val) => val >= 0 && val <= 6
|
|
58
|
-
}
|
|
48
|
+
},
|
|
49
|
+
disabledDate: Function
|
|
59
50
|
};
|
|
60
51
|
var stdin_default = defineComponent({
|
|
61
52
|
name,
|
|
@@ -65,11 +56,19 @@ var stdin_default = defineComponent({
|
|
|
65
56
|
emit,
|
|
66
57
|
slots
|
|
67
58
|
}) {
|
|
68
|
-
const
|
|
69
|
-
|
|
59
|
+
const lastMinDate = computed(() => {
|
|
60
|
+
const now = new Date();
|
|
61
|
+
return props.showType !== "inline" && !props.minDate ? new Date(now.getFullYear(), now.getMonth() - 3, now.getDate()) : props.minDate;
|
|
62
|
+
});
|
|
63
|
+
const lastMaxDate = computed(() => {
|
|
64
|
+
const now = new Date();
|
|
65
|
+
return props.showType !== "inline" && !props.maxDate ? new Date(now.getFullYear(), now.getMonth() + 6, now.getDate()) : props.maxDate;
|
|
66
|
+
});
|
|
67
|
+
const limitDateRange = (date, minDate = lastMinDate.value, maxDate = lastMaxDate.value) => {
|
|
68
|
+
if (minDate && compareDay(date, minDate) === -1) {
|
|
70
69
|
return minDate;
|
|
71
70
|
}
|
|
72
|
-
if (compareDay(date, maxDate) === 1) {
|
|
71
|
+
if (maxDate && compareDay(date, maxDate) === 1) {
|
|
73
72
|
return maxDate;
|
|
74
73
|
}
|
|
75
74
|
return date;
|
|
@@ -77,10 +76,10 @@ var stdin_default = defineComponent({
|
|
|
77
76
|
const getInitialDate = (defaultDate = props.defaultDate) => {
|
|
78
77
|
const {
|
|
79
78
|
type,
|
|
80
|
-
minDate,
|
|
81
|
-
maxDate,
|
|
82
79
|
allowSameDay
|
|
83
80
|
} = props;
|
|
81
|
+
const minDate = lastMinDate.value;
|
|
82
|
+
const maxDate = lastMaxDate.value;
|
|
84
83
|
if (defaultDate === null) {
|
|
85
84
|
return defaultDate;
|
|
86
85
|
}
|
|
@@ -89,8 +88,8 @@ var stdin_default = defineComponent({
|
|
|
89
88
|
if (!Array.isArray(defaultDate)) {
|
|
90
89
|
defaultDate = [];
|
|
91
90
|
}
|
|
92
|
-
const start = limitDateRange(defaultDate[0] || now, minDate, allowSameDay ? maxDate : getPrevDay(maxDate));
|
|
93
|
-
const end = limitDateRange(defaultDate[1] || now, allowSameDay ? minDate : getNextDay(minDate));
|
|
91
|
+
const start = limitDateRange(defaultDate[0] || now, minDate, allowSameDay ? maxDate : maxDate && getPrevDay(maxDate));
|
|
92
|
+
const end = limitDateRange(defaultDate[1] || now, allowSameDay ? minDate : minDate && getNextDay(minDate));
|
|
94
93
|
return [start, end];
|
|
95
94
|
}
|
|
96
95
|
if (type === "multiple") {
|
|
@@ -104,20 +103,40 @@ var stdin_default = defineComponent({
|
|
|
104
103
|
}
|
|
105
104
|
return limitDateRange(defaultDate);
|
|
106
105
|
};
|
|
106
|
+
const getInitialTitleDate = (defaultDate = props.defaultDate) => {
|
|
107
|
+
const initTitleDate = getInitialDate(defaultDate);
|
|
108
|
+
const now = getToday();
|
|
109
|
+
if (Array.isArray(initTitleDate)) {
|
|
110
|
+
return initTitleDate[0] || now;
|
|
111
|
+
} else {
|
|
112
|
+
return initTitleDate || now;
|
|
113
|
+
}
|
|
114
|
+
};
|
|
107
115
|
let bodyHeight;
|
|
108
116
|
const bodyRef = ref();
|
|
109
117
|
const subtitle = ref("");
|
|
110
118
|
const currentDate = ref(getInitialDate());
|
|
119
|
+
const titleDate = ref(getInitialTitleDate());
|
|
111
120
|
const [monthRefs, setMonthRefs] = useRefs();
|
|
112
121
|
const dayOffset = computed(() => props.firstDayOfWeek ? +props.firstDayOfWeek % 7 : 0);
|
|
113
122
|
const months = computed(() => {
|
|
123
|
+
var _a;
|
|
114
124
|
const months2 = [];
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
125
|
+
if (props.showType !== "inline" && lastMinDate.value && lastMaxDate.value) {
|
|
126
|
+
const cursor = new Date(lastMinDate.value);
|
|
127
|
+
cursor.setDate(1);
|
|
128
|
+
do {
|
|
129
|
+
months2.push(new Date(cursor));
|
|
130
|
+
cursor.setMonth(cursor.getMonth() + 1);
|
|
131
|
+
} while (compareMonth(cursor, lastMaxDate.value) !== 1);
|
|
132
|
+
} else if (props.showType === "inline") {
|
|
133
|
+
const temp = (_a = titleDate.value) != null ? _a : cloneDates(titleDate.value);
|
|
134
|
+
if (!Array.isArray(temp)) {
|
|
135
|
+
months2.push(getFirstDate(temp));
|
|
136
|
+
} else {
|
|
137
|
+
months2.push(getFirstDate(temp[0]));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
121
140
|
return months2;
|
|
122
141
|
});
|
|
123
142
|
const buttonDisabled = computed(() => {
|
|
@@ -168,6 +187,7 @@ var stdin_default = defineComponent({
|
|
|
168
187
|
});
|
|
169
188
|
if (currentMonth) {
|
|
170
189
|
subtitle.value = currentMonth.getTitle();
|
|
190
|
+
titleDate.value = currentMonth.getDate();
|
|
171
191
|
}
|
|
172
192
|
};
|
|
173
193
|
const scrollToDate = (targetDate) => {
|
|
@@ -208,6 +228,7 @@ var stdin_default = defineComponent({
|
|
|
208
228
|
};
|
|
209
229
|
const reset = (date = getInitialDate()) => {
|
|
210
230
|
currentDate.value = date;
|
|
231
|
+
titleDate.value = getInitialTitleDate(date);
|
|
211
232
|
scrollToCurrentDate();
|
|
212
233
|
};
|
|
213
234
|
const checkRange = (date) => {
|
|
@@ -269,6 +290,9 @@ var stdin_default = defineComponent({
|
|
|
269
290
|
const {
|
|
270
291
|
type
|
|
271
292
|
} = props;
|
|
293
|
+
if (item.type === "preview") {
|
|
294
|
+
titleDate.value = date;
|
|
295
|
+
}
|
|
272
296
|
if (type === "range") {
|
|
273
297
|
if (!currentDate.value) {
|
|
274
298
|
select([date]);
|
|
@@ -316,6 +340,64 @@ var stdin_default = defineComponent({
|
|
|
316
340
|
select(date, true);
|
|
317
341
|
}
|
|
318
342
|
};
|
|
343
|
+
const yearPreEnable = computed(() => {
|
|
344
|
+
if (!lastMinDate.value) {
|
|
345
|
+
return true;
|
|
346
|
+
}
|
|
347
|
+
return titleDate.value.getFullYear() > lastMinDate.value.getFullYear();
|
|
348
|
+
});
|
|
349
|
+
const monthPreEnable = computed(() => {
|
|
350
|
+
if (!lastMinDate.value) {
|
|
351
|
+
return true;
|
|
352
|
+
}
|
|
353
|
+
const targetDate = titleDate.value;
|
|
354
|
+
const targetYearMonth = getFirstDate(targetDate);
|
|
355
|
+
const minDateYearMonth = getFirstDate(lastMinDate.value);
|
|
356
|
+
return compareDay(targetYearMonth, minDateYearMonth) === 1;
|
|
357
|
+
});
|
|
358
|
+
const yearNextEnable = computed(() => {
|
|
359
|
+
if (!lastMaxDate.value) {
|
|
360
|
+
return true;
|
|
361
|
+
}
|
|
362
|
+
return titleDate.value.getFullYear() < lastMaxDate.value.getFullYear();
|
|
363
|
+
});
|
|
364
|
+
const monthNextEnable = computed(() => {
|
|
365
|
+
if (!lastMaxDate.value) {
|
|
366
|
+
return true;
|
|
367
|
+
}
|
|
368
|
+
const targetDate = titleDate.value;
|
|
369
|
+
const targetYearMonth = getFirstDate(targetDate);
|
|
370
|
+
const maxDateYearMonth = getFirstDate(lastMaxDate.value);
|
|
371
|
+
return compareDay(maxDateYearMonth, targetYearMonth) === 1;
|
|
372
|
+
});
|
|
373
|
+
const onClickTitleIcon = (isPreFlag, isMonth, isYear) => {
|
|
374
|
+
const curTitleDate = titleDate.value;
|
|
375
|
+
if (curTitleDate) {
|
|
376
|
+
let targetDate = isPreFlag ? getPrevDate(curTitleDate, isMonth, isYear) : getNextDate(curTitleDate, isMonth, isYear);
|
|
377
|
+
if (!isDate(targetDate)) {
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
let hasCompared = false;
|
|
381
|
+
const compareDate = isPreFlag ? lastMinDate.value : lastMaxDate.value;
|
|
382
|
+
const compareValue = isPreFlag ? 1 : -1;
|
|
383
|
+
if (compareDate && compareDay(compareDate, targetDate) === compareValue && compareMonth(compareDate, targetDate) === 0) {
|
|
384
|
+
targetDate = compareDate;
|
|
385
|
+
hasCompared = true;
|
|
386
|
+
}
|
|
387
|
+
if (hasCompared || !compareDate || compareDate && compareDay(compareDate, targetDate) !== compareValue) {
|
|
388
|
+
scrollToDate(targetDate);
|
|
389
|
+
titleDate.value = targetDate;
|
|
390
|
+
}
|
|
391
|
+
} else {
|
|
392
|
+
raf(onScroll);
|
|
393
|
+
}
|
|
394
|
+
};
|
|
395
|
+
const onClickPreIcon = (isMonth, isYear) => {
|
|
396
|
+
onClickTitleIcon(true, isMonth, isYear);
|
|
397
|
+
};
|
|
398
|
+
const onClickNextIcon = (isMonth, isYear) => {
|
|
399
|
+
onClickTitleIcon(false, isMonth, isYear);
|
|
400
|
+
};
|
|
319
401
|
const updateShow = (value) => emit("update:show", value);
|
|
320
402
|
const renderMonth = (date, index) => {
|
|
321
403
|
const showMonthTitle = index !== 0 || !props.showSubtitle;
|
|
@@ -325,7 +407,7 @@ var stdin_default = defineComponent({
|
|
|
325
407
|
"currentDate": currentDate.value,
|
|
326
408
|
"showMonthTitle": showMonthTitle,
|
|
327
409
|
"firstDayOfWeek": dayOffset.value
|
|
328
|
-
}, pick(props, ["type", "color", "minDate", "maxDate", "showMark", "formatter", "rowHeight", "lazyRender", "showSubtitle", "allowSameDay"]), {
|
|
410
|
+
}, pick(props, ["showType", "type", "color", "minDate", "maxDate", "showMark", "formatter", "rowHeight", "lazyRender", "showSubtitle", "allowSameDay", "disabledDate"]), {
|
|
329
411
|
"onClick": onClickDay
|
|
330
412
|
}), pick(slots, ["top-info", "bottom-info"]));
|
|
331
413
|
};
|
|
@@ -375,7 +457,13 @@ var stdin_default = defineComponent({
|
|
|
375
457
|
"showTitle": props.showTitle,
|
|
376
458
|
"showSubtitle": props.showSubtitle,
|
|
377
459
|
"firstDayOfWeek": dayOffset.value,
|
|
378
|
-
"onClickSubtitle": (event) => emit("clickSubtitle", event)
|
|
460
|
+
"onClickSubtitle": (event) => emit("clickSubtitle", event),
|
|
461
|
+
"onClickPreIcon": onClickPreIcon,
|
|
462
|
+
"onClickNextIcon": onClickNextIcon,
|
|
463
|
+
"yearPreEnable": yearPreEnable.value,
|
|
464
|
+
"monthPreEnable": monthPreEnable.value,
|
|
465
|
+
"yearNextEnable": yearNextEnable.value,
|
|
466
|
+
"monthNextEnable": monthNextEnable.value
|
|
379
467
|
}, pick(slots, ["title", "subtitle"])), _createVNode("div", {
|
|
380
468
|
"ref": bodyRef,
|
|
381
469
|
"class": bem("body"),
|
|
@@ -387,6 +475,11 @@ var stdin_default = defineComponent({
|
|
|
387
475
|
currentDate.value = value;
|
|
388
476
|
scrollToCurrentDate();
|
|
389
477
|
});
|
|
478
|
+
watch(titleDate, (newValue) => {
|
|
479
|
+
if (props.showType === "inline" && newValue) {
|
|
480
|
+
subtitle.value = formatMonthTitle(newValue);
|
|
481
|
+
}
|
|
482
|
+
});
|
|
390
483
|
useExpose({
|
|
391
484
|
reset,
|
|
392
485
|
scrollToDate,
|
|
@@ -7,7 +7,11 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
7
7
|
type: NumberConstructor;
|
|
8
8
|
default: number;
|
|
9
9
|
};
|
|
10
|
-
|
|
10
|
+
yearPreEnable: BooleanConstructor;
|
|
11
|
+
monthPreEnable: BooleanConstructor;
|
|
12
|
+
yearNextEnable: BooleanConstructor;
|
|
13
|
+
monthNextEnable: BooleanConstructor;
|
|
14
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("clickSubtitle" | "clickPreIcon" | "clickNextIcon")[], "clickSubtitle" | "clickPreIcon" | "clickNextIcon", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
11
15
|
title: StringConstructor;
|
|
12
16
|
subtitle: StringConstructor;
|
|
13
17
|
showTitle: BooleanConstructor;
|
|
@@ -16,11 +20,21 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
16
20
|
type: NumberConstructor;
|
|
17
21
|
default: number;
|
|
18
22
|
};
|
|
23
|
+
yearPreEnable: BooleanConstructor;
|
|
24
|
+
monthPreEnable: BooleanConstructor;
|
|
25
|
+
yearNextEnable: BooleanConstructor;
|
|
26
|
+
monthNextEnable: BooleanConstructor;
|
|
19
27
|
}>> & {
|
|
20
28
|
onClickSubtitle?: ((...args: any[]) => any) | undefined;
|
|
29
|
+
onClickPreIcon?: ((...args: any[]) => any) | undefined;
|
|
30
|
+
onClickNextIcon?: ((...args: any[]) => any) | undefined;
|
|
21
31
|
}, {
|
|
22
32
|
showTitle: boolean;
|
|
23
33
|
showSubtitle: boolean;
|
|
24
34
|
firstDayOfWeek: number;
|
|
35
|
+
yearPreEnable: boolean;
|
|
36
|
+
monthPreEnable: boolean;
|
|
37
|
+
yearNextEnable: boolean;
|
|
38
|
+
monthNextEnable: boolean;
|
|
25
39
|
}>;
|
|
26
40
|
export default _default;
|
|
@@ -10,9 +10,13 @@ var stdin_default = defineComponent({
|
|
|
10
10
|
subtitle: String,
|
|
11
11
|
showTitle: Boolean,
|
|
12
12
|
showSubtitle: Boolean,
|
|
13
|
-
firstDayOfWeek: makeNumberProp(1)
|
|
13
|
+
firstDayOfWeek: makeNumberProp(1),
|
|
14
|
+
yearPreEnable: Boolean,
|
|
15
|
+
monthPreEnable: Boolean,
|
|
16
|
+
yearNextEnable: Boolean,
|
|
17
|
+
monthNextEnable: Boolean
|
|
14
18
|
},
|
|
15
|
-
emits: ["clickSubtitle"],
|
|
19
|
+
emits: ["clickSubtitle", "clickPreIcon", "clickNextIcon"],
|
|
16
20
|
setup(props, {
|
|
17
21
|
slots,
|
|
18
22
|
emit
|
|
@@ -27,13 +31,111 @@ var stdin_default = defineComponent({
|
|
|
27
31
|
}
|
|
28
32
|
};
|
|
29
33
|
const onClickSubtitle = (event) => emit("clickSubtitle", event);
|
|
34
|
+
const onClickPreIcon = (isMonth, isYear) => () => {
|
|
35
|
+
if (isMonth && !props.monthPreEnable || isYear && !props.yearPreEnable) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
emit("clickPreIcon", isMonth, isYear);
|
|
39
|
+
};
|
|
40
|
+
const onClickNextIcon = (isMonth, isYear) => () => {
|
|
41
|
+
if (isMonth && !props.monthNextEnable || isYear && !props.yearNextEnable) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
emit("clickNextIcon", isMonth, isYear);
|
|
45
|
+
};
|
|
46
|
+
const fastForwardImg = () => _createVNode("svg", {
|
|
47
|
+
"xmlns": "http://www.w3.org/2000/svg",
|
|
48
|
+
"width": "16px",
|
|
49
|
+
"height": "16px",
|
|
50
|
+
"viewBox": "0 0 16 16",
|
|
51
|
+
"version": "1.1"
|
|
52
|
+
}, [_createVNode("g", {
|
|
53
|
+
"stroke": "none",
|
|
54
|
+
"stroke-width": "1",
|
|
55
|
+
"fill": "none",
|
|
56
|
+
"fill-rule": "evenodd"
|
|
57
|
+
}, [_createVNode("g", {
|
|
58
|
+
"transform": "translate(-32.000000, -320.000000)",
|
|
59
|
+
"fill": "#0091FA",
|
|
60
|
+
"fill-rule": "nonzero"
|
|
61
|
+
}, [_createVNode("g", {
|
|
62
|
+
"transform": "translate(0.000000, 70.000000)"
|
|
63
|
+
}, [_createVNode("g", {
|
|
64
|
+
"transform": "translate(0.000000, 236.000000)"
|
|
65
|
+
}, [_createVNode("g", {
|
|
66
|
+
"transform": "translate(32.000000, 12.000000)"
|
|
67
|
+
}, [_createVNode("g", {
|
|
68
|
+
"transform": "translate(8.000000, 10.000000) scale(-1, 1) translate(-8.000000, -10.000000) translate(0.000000, 2.000000)"
|
|
69
|
+
}, [_createVNode("g", {
|
|
70
|
+
"transform": "translate(0.500000, 2.000000)"
|
|
71
|
+
}, [_createVNode("path", {
|
|
72
|
+
"d": "M6.79659726,4.25543258 L3.35183004,7.88886609 C3.14952477,8.10225141 2.77635057,8.13960837 2.51832213,7.9723052 C2.48075622,7.94794782 2.4468797,7.91993249 2.41742642,7.88886609 L-1.02734079,4.25543258 C-1.22964607,4.04204726 -1.18447352,3.73343826 -0.926445085,3.56613509 C-0.821927664,3.49836699 -0.69295109,3.46153846 -0.560138985,3.46153846 L6.32939545,3.46153846 C6.65727667,3.46153846 6.92307692,3.68135095 6.92307692,3.95250339 C6.92307692,4.06233684 6.87854337,4.16899837 6.79659726,4.25543258 Z",
|
|
73
|
+
"opacity": "0.3",
|
|
74
|
+
"transform": "translate(2.884615, 5.769231) rotate(-90.000000) translate(-2.884615, -5.769231) "
|
|
75
|
+
}, null), _createVNode("path", {
|
|
76
|
+
"d": "M12.5116225,3.49853348 L7.59052644,8.94868375 C7.3015189,9.26876173 6.7684129,9.32479717 6.39980085,9.07384242 C6.34613526,9.03730635 6.29774023,8.99528335 6.25566412,8.94868375 L1.3345681,3.49853348 C1.04556056,3.1784555 1.11009277,2.715542 1.47870482,2.46458724 C1.62801542,2.3629351 1.81226767,2.30769231 2.00199925,2.30769231 L11.8441913,2.30769231 C12.3125931,2.30769231 12.6923077,2.63741103 12.6923077,3.0441397 C12.6923077,3.20888987 12.6286883,3.36888217 12.5116225,3.49853348 Z",
|
|
77
|
+
"opacity": "0.8",
|
|
78
|
+
"transform": "translate(6.923077, 5.769231) rotate(-90.000000) translate(-6.923077, -5.769231) "
|
|
79
|
+
}, null), _createVNode("path", {
|
|
80
|
+
"d": "M17.1270071,3.49853348 L12.2059111,8.94868375 C11.9169035,9.26876173 11.3837975,9.32479717 11.0151855,9.07384242 C10.9615199,9.03730635 10.9131248,8.99528335 10.8710487,8.94868375 L5.94995271,3.49853348 C5.66094518,3.1784555 5.72547739,2.715542 6.09408944,2.46458724 C6.24340004,2.3629351 6.42765229,2.30769231 6.61738387,2.30769231 L16.4595759,2.30769231 C16.9279777,2.30769231 17.3076923,2.63741103 17.3076923,3.0441397 C17.3076923,3.20888987 17.2440729,3.36888217 17.1270071,3.49853348 Z",
|
|
81
|
+
"opacity": "0.8",
|
|
82
|
+
"transform": "translate(11.538462, 5.769231) rotate(-90.000000) translate(-11.538462, -5.769231) "
|
|
83
|
+
}, null)])])])])])])])]);
|
|
84
|
+
const slowForward = () => _createVNode("svg", {
|
|
85
|
+
"xmlns": "http://www.w3.org/2000/svg",
|
|
86
|
+
"width": "16px",
|
|
87
|
+
"height": "16px",
|
|
88
|
+
"viewBox": "0 0 16 16",
|
|
89
|
+
"version": "1.1"
|
|
90
|
+
}, [_createVNode("g", {
|
|
91
|
+
"stroke": "none",
|
|
92
|
+
"stroke-width": "1",
|
|
93
|
+
"fill": "none",
|
|
94
|
+
"fill-rule": "evenodd"
|
|
95
|
+
}, [_createVNode("g", {
|
|
96
|
+
"transform": "translate(-80.000000, -320.000000)",
|
|
97
|
+
"fill": "#0091FA",
|
|
98
|
+
"fill-rule": "nonzero"
|
|
99
|
+
}, [_createVNode("g", {
|
|
100
|
+
"transform": "translate(0.000000, 70.000000)"
|
|
101
|
+
}, [_createVNode("g", {
|
|
102
|
+
"transform": "translate(0.000000, 236.000000)"
|
|
103
|
+
}, [_createVNode("g", {
|
|
104
|
+
"transform": "translate(32.000000, 12.000000)"
|
|
105
|
+
}, [_createVNode("g", {
|
|
106
|
+
"transform": "translate(56.000000, 10.000000) scale(-1, 1) translate(-56.000000, -10.000000) translate(48.000000, 2.000000)"
|
|
107
|
+
}, [_createVNode("g", {
|
|
108
|
+
"transform": "translate(3.000000, 2.000000)"
|
|
109
|
+
}, [_createVNode("path", {
|
|
110
|
+
"d": "M7.06846115,4.42564988 L3.48590324,8.20442073 C3.27550576,8.42634147 2.88740459,8.46519271 2.61905502,8.29119741 C2.57998647,8.26586573 2.54475489,8.23672979 2.51412348,8.20442073 L-1.06843443,4.42564988 C-1.27883191,4.20372915 -1.23185246,3.88277579 -0.963502888,3.70878049 C-0.854804771,3.63830167 -0.720669133,3.6 -0.582544544,3.6 L6.58257127,3.6 C6.92356774,3.6 7.2,3.82860498 7.2,4.11060352 C7.2,4.22483031 7.1536851,4.3357583 7.06846115,4.42564988 Z",
|
|
111
|
+
"opacity": "0.3",
|
|
112
|
+
"transform": "translate(3.000000, 6.000000) rotate(-90.000000) translate(-3.000000, -6.000000) "
|
|
113
|
+
}, null), _createVNode("path", {
|
|
114
|
+
"d": "M13.0120874,3.63847482 L7.89414749,9.3066311 C7.59357966,9.6395122 7.03914942,9.69778906 6.65579288,9.43679611 C6.59998067,9.3987986 6.54964984,9.35509469 6.50589069,9.3066311 L1.38795082,3.63847482 C1.08738299,3.30559372 1.15449649,2.82416368 1.53785302,2.56317073 C1.69313604,2.4574525 1.88475838,2.4 2.08207922,2.4 L12.317959,2.4 C12.8050968,2.4 13.2,2.74290748 13.2,3.16590528 C13.2,3.33724547 13.1338359,3.50363746 13.0120874,3.63847482 Z",
|
|
115
|
+
"opacity": "0.8",
|
|
116
|
+
"transform": "translate(7.200000, 6.000000) rotate(-90.000000) translate(-7.200000, -6.000000) "
|
|
117
|
+
}, null)])])])])])])])]);
|
|
30
118
|
const renderSubtitle = () => {
|
|
31
119
|
if (props.showSubtitle) {
|
|
32
120
|
const title = slots.subtitle ? slots.subtitle() : props.subtitle;
|
|
33
121
|
return _createVNode("div", {
|
|
34
|
-
"class": bem("header-subtitle")
|
|
122
|
+
"class": bem("header-subtitle")
|
|
123
|
+
}, [_createVNode("div", {
|
|
124
|
+
"class": bem("header-subtitle", ["opt", props.yearPreEnable ? "enable" : "unenable"]),
|
|
125
|
+
"onClick": onClickPreIcon(false, true)
|
|
126
|
+
}, [fastForwardImg()]), _createVNode("div", {
|
|
127
|
+
"class": bem("header-subtitle", ["opt", props.monthPreEnable ? "enable" : "unenable"]),
|
|
128
|
+
"onClick": onClickPreIcon(true, false)
|
|
129
|
+
}, [slowForward()]), _createVNode("label", {
|
|
130
|
+
"class": bem("header-subtitle-text"),
|
|
35
131
|
"onClick": onClickSubtitle
|
|
36
|
-
}, [title])
|
|
132
|
+
}, [title]), _createVNode("div", {
|
|
133
|
+
"class": bem("header-subtitle", ["opt", "right", [props.monthNextEnable ? "enable" : "unenable"]]),
|
|
134
|
+
"onClick": onClickNextIcon(true, false)
|
|
135
|
+
}, [slowForward()]), _createVNode("div", {
|
|
136
|
+
"class": bem("header-subtitle", ["opt", "right", [props.yearNextEnable ? "enable" : "unenable"]]),
|
|
137
|
+
"onClick": onClickNextIcon(false, true)
|
|
138
|
+
}, [fastForwardImg()])]);
|
|
37
139
|
}
|
|
38
140
|
};
|
|
39
141
|
const renderWeekDays = () => {
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import type { PropType, ExtractPropTypes } from 'vue';
|
|
2
2
|
import type { CalendarType, CalendarDayItem } from './types';
|
|
3
|
+
import { CalendarShowType } from './types';
|
|
3
4
|
declare const calendarMonthProps: {
|
|
4
5
|
date: {
|
|
5
6
|
type: DateConstructor;
|
|
6
7
|
required: true;
|
|
7
8
|
};
|
|
9
|
+
showType: {
|
|
10
|
+
type: PropType<CalendarShowType>;
|
|
11
|
+
default: CalendarShowType;
|
|
12
|
+
};
|
|
8
13
|
type: PropType<CalendarType>;
|
|
9
14
|
color: StringConstructor;
|
|
10
|
-
minDate:
|
|
11
|
-
|
|
12
|
-
required: true;
|
|
13
|
-
};
|
|
14
|
-
maxDate: {
|
|
15
|
-
type: DateConstructor;
|
|
16
|
-
required: true;
|
|
17
|
-
};
|
|
15
|
+
minDate: DateConstructor;
|
|
16
|
+
maxDate: DateConstructor;
|
|
18
17
|
showMark: BooleanConstructor;
|
|
19
18
|
rowHeight: (NumberConstructor | StringConstructor)[];
|
|
20
19
|
formatter: PropType<(item: CalendarDayItem) => CalendarDayItem>;
|
|
@@ -24,6 +23,7 @@ declare const calendarMonthProps: {
|
|
|
24
23
|
showSubtitle: BooleanConstructor;
|
|
25
24
|
showMonthTitle: BooleanConstructor;
|
|
26
25
|
firstDayOfWeek: NumberConstructor;
|
|
26
|
+
disabledDate: PropType<(date: Date) => boolean>;
|
|
27
27
|
};
|
|
28
28
|
export declare type CalendarMonthProps = ExtractPropTypes<typeof calendarMonthProps>;
|
|
29
29
|
declare const _default: import("vue").DefineComponent<{
|
|
@@ -31,16 +31,14 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
31
31
|
type: DateConstructor;
|
|
32
32
|
required: true;
|
|
33
33
|
};
|
|
34
|
+
showType: {
|
|
35
|
+
type: PropType<CalendarShowType>;
|
|
36
|
+
default: CalendarShowType;
|
|
37
|
+
};
|
|
34
38
|
type: PropType<CalendarType>;
|
|
35
39
|
color: StringConstructor;
|
|
36
|
-
minDate:
|
|
37
|
-
|
|
38
|
-
required: true;
|
|
39
|
-
};
|
|
40
|
-
maxDate: {
|
|
41
|
-
type: DateConstructor;
|
|
42
|
-
required: true;
|
|
43
|
-
};
|
|
40
|
+
minDate: DateConstructor;
|
|
41
|
+
maxDate: DateConstructor;
|
|
44
42
|
showMark: BooleanConstructor;
|
|
45
43
|
rowHeight: (NumberConstructor | StringConstructor)[];
|
|
46
44
|
formatter: PropType<(item: CalendarDayItem) => CalendarDayItem>;
|
|
@@ -50,21 +48,20 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
50
48
|
showSubtitle: BooleanConstructor;
|
|
51
49
|
showMonthTitle: BooleanConstructor;
|
|
52
50
|
firstDayOfWeek: NumberConstructor;
|
|
51
|
+
disabledDate: PropType<(date: Date) => boolean>;
|
|
53
52
|
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click"[], "click", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
|
54
53
|
date: {
|
|
55
54
|
type: DateConstructor;
|
|
56
55
|
required: true;
|
|
57
56
|
};
|
|
57
|
+
showType: {
|
|
58
|
+
type: PropType<CalendarShowType>;
|
|
59
|
+
default: CalendarShowType;
|
|
60
|
+
};
|
|
58
61
|
type: PropType<CalendarType>;
|
|
59
62
|
color: StringConstructor;
|
|
60
|
-
minDate:
|
|
61
|
-
|
|
62
|
-
required: true;
|
|
63
|
-
};
|
|
64
|
-
maxDate: {
|
|
65
|
-
type: DateConstructor;
|
|
66
|
-
required: true;
|
|
67
|
-
};
|
|
63
|
+
minDate: DateConstructor;
|
|
64
|
+
maxDate: DateConstructor;
|
|
68
65
|
showMark: BooleanConstructor;
|
|
69
66
|
rowHeight: (NumberConstructor | StringConstructor)[];
|
|
70
67
|
formatter: PropType<(item: CalendarDayItem) => CalendarDayItem>;
|
|
@@ -74,10 +71,12 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
74
71
|
showSubtitle: BooleanConstructor;
|
|
75
72
|
showMonthTitle: BooleanConstructor;
|
|
76
73
|
firstDayOfWeek: NumberConstructor;
|
|
74
|
+
disabledDate: PropType<(date: Date) => boolean>;
|
|
77
75
|
}>> & {
|
|
78
76
|
onClick?: ((...args: any[]) => any) | undefined;
|
|
79
77
|
}, {
|
|
80
78
|
lazyRender: boolean;
|
|
79
|
+
showType: CalendarShowType;
|
|
81
80
|
showMark: boolean;
|
|
82
81
|
allowSameDay: boolean;
|
|
83
82
|
showSubtitle: boolean;
|