v-calendar-3 1.0.1 → 1.1.1
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/README.md +22 -2
- package/dist/cjs/index.css +11 -5
- package/dist/cjs/index.js +80 -25
- package/dist/cjs/index.js.map +1 -1
- package/dist/es/index.js +113 -55
- package/dist/es/index.js.map +1 -1
- package/dist/es/style.css +11 -5
- package/dist/iife/index.js +1 -1
- package/dist/iife/index.js.map +1 -1
- package/dist/mjs/index.mjs +113 -55
- package/dist/mjs/index.mjs.map +1 -1
- package/dist/mjs/style.css +11 -5
- package/dist/style.css +11 -5
- package/dist/types/components/Calendar/Calendar.vue.d.ts +9 -0
- package/dist/types/components/Calendar/CalendarHeader.vue.d.ts +1 -0
- package/dist/types/components/DatePicker/DatePicker.vue.d.ts +139 -3
- package/dist/types/components/DatePicker/TimePicker.vue.d.ts +32 -0
- package/dist/types/index.d.cts +313 -40
- package/dist/types/index.d.mts +313 -40
- package/dist/types/index.d.ts +313 -40
- package/dist/types/use/calendar.d.ts +51 -3
- package/dist/types/use/calendarGrid.d.ts +14 -0
- package/dist/types/use/datePicker.d.ts +109 -6
- package/dist/types/use/timePicker.d.ts +32 -0
- package/package.json +6 -3
- package/src/components/Calendar/Calendar.vue +2 -2
- package/src/components/Calendar/CalendarDay.vue +4 -5
- package/src/components/Calendar/CalendarHeader.vue +37 -8
- package/src/components/Calendar/CalendarPage.vue +7 -2
- package/src/components/DatePicker/DatePicker.vue +20 -4
- package/src/index.ts +11 -0
- package/src/styles/theme.css +1 -0
- package/src/use/calendar.ts +53 -12
- package/src/use/datePicker.ts +18 -5
- package/web-types.json +273 -0
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ A maintained Vue 3 calendar and date picker with TypeScript declarations,
|
|
|
4
4
|
timezone support, keyboard navigation, touch interaction, and responsive theme
|
|
5
5
|
handling.
|
|
6
6
|
|
|
7
|
-
Current version: `1.
|
|
7
|
+
Current version: `1.1.1`
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
@@ -17,6 +17,7 @@ Current version: `1.0.1`
|
|
|
17
17
|
- Keyboard navigation, Escape handling, Pointer Events, and touch support
|
|
18
18
|
- SSR-safe browser access and iframe-aware theme/popover handling
|
|
19
19
|
- ESM, Node ESM, CommonJS, IIFE, CSS, and TypeScript declaration builds
|
|
20
|
+
- Vue component metadata for PhpStorm and other JetBrains IDEs
|
|
20
21
|
|
|
21
22
|
## Requirements
|
|
22
23
|
|
|
@@ -75,6 +76,10 @@ const selectedDate = ref<Date | null>(new Date());
|
|
|
75
76
|
```
|
|
76
77
|
|
|
77
78
|
The component prefix defaults to `V` and can be changed during plugin setup.
|
|
79
|
+
The package publishes global component types for the default `VCalendar`,
|
|
80
|
+
`VDatePicker`, `VPopover`, and `VPopoverRow` names. Custom prefixes are runtime
|
|
81
|
+
configuration and must be declared in the consuming application's
|
|
82
|
+
`GlobalComponents` interface if template autocomplete is required.
|
|
78
83
|
|
|
79
84
|
```ts
|
|
80
85
|
app.use(VCalendar, {
|
|
@@ -112,7 +117,7 @@ const attributes = [
|
|
|
112
117
|
<template>
|
|
113
118
|
<Calendar :attributes="attributes" />
|
|
114
119
|
<DatePicker v-model="selectedDate" />
|
|
115
|
-
<DatePicker v-model.range="range" />
|
|
120
|
+
<DatePicker v-model.range="range" :rows="2" />
|
|
116
121
|
</template>
|
|
117
122
|
```
|
|
118
123
|
|
|
@@ -127,6 +132,13 @@ app.use(setupCalendar, {
|
|
|
127
132
|
});
|
|
128
133
|
```
|
|
129
134
|
|
|
135
|
+
The package ships both Vue TypeScript declarations and JetBrains Web Types.
|
|
136
|
+
PhpStorm can therefore complete component props and navigate from imported
|
|
137
|
+
`Calendar` and `DatePicker` tags to their declarations without application-side
|
|
138
|
+
shims. After changing between local `file:` package versions, let the package
|
|
139
|
+
manager refresh the link and ask PhpStorm to reload the project indexes if it
|
|
140
|
+
still shows cached generic Vue metadata.
|
|
141
|
+
|
|
130
142
|
## Date picker modes
|
|
131
143
|
|
|
132
144
|
The default model is a JavaScript `Date`. Use the `range` modifier for date
|
|
@@ -139,6 +151,13 @@ ranges and the `mode` prop when time selection is required.
|
|
|
139
151
|
<DatePicker v-model="time" mode="time" is24hr />
|
|
140
152
|
```
|
|
141
153
|
|
|
154
|
+
`rows="2"` with the default `columns="1"` is the two-month period layout. It
|
|
155
|
+
renders both months horizontally with a complete navigation header and a
|
|
156
|
+
month/year picker on each pane. The displayed months remain consecutive, and
|
|
157
|
+
each pane includes muted leading and trailing dates from adjacent months so its
|
|
158
|
+
week rows are complete. With `trim-weeks`, both period panes are balanced to the
|
|
159
|
+
larger visible week count.
|
|
160
|
+
|
|
142
161
|
The `string` and `number` model modifiers are also supported. Numeric values use
|
|
143
162
|
JavaScript timestamp milliseconds.
|
|
144
163
|
|
|
@@ -234,6 +253,7 @@ styles to internal selectors.
|
|
|
234
253
|
--vc-day-min-height: 1.75rem;
|
|
235
254
|
--vc-day-content-width: 1.75rem;
|
|
236
255
|
--vc-day-content-height: 1.75rem;
|
|
256
|
+
--vc-day-content-outside-month-opacity: 0.6;
|
|
237
257
|
--vc-highlight-width: 1.75rem;
|
|
238
258
|
--vc-highlight-height: 1.75rem;
|
|
239
259
|
--vc-header-margin-top: 0;
|
package/dist/cjs/index.css
CHANGED
|
@@ -163,6 +163,8 @@
|
|
|
163
163
|
|
|
164
164
|
.vc-header {
|
|
165
165
|
display: grid;
|
|
166
|
+
width: 100%;
|
|
167
|
+
min-width: 0;
|
|
166
168
|
grid-gap: var(--vc-header-gap);
|
|
167
169
|
align-items: center;
|
|
168
170
|
height: var(--vc-header-height);
|
|
@@ -181,6 +183,8 @@
|
|
|
181
183
|
.vc-header .vc-title-wrapper {
|
|
182
184
|
grid-row: 1;
|
|
183
185
|
grid-column: title;
|
|
186
|
+
min-width: 0;
|
|
187
|
+
justify-self: center;
|
|
184
188
|
}
|
|
185
189
|
.vc-header .vc-prev {
|
|
186
190
|
grid-row: 1;
|
|
@@ -208,6 +212,9 @@
|
|
|
208
212
|
font-weight: var(--vc-font-semibold);
|
|
209
213
|
text-transform: var(--vc-header-title-text-transform);
|
|
210
214
|
white-space: nowrap;
|
|
215
|
+
max-width: 100%;
|
|
216
|
+
overflow: hidden;
|
|
217
|
+
text-overflow: ellipsis;
|
|
211
218
|
padding: var(--vc-header-title-padding);
|
|
212
219
|
margin: 0;
|
|
213
220
|
line-height: var(--vc-header-title-line-height);
|
|
@@ -303,15 +310,13 @@
|
|
|
303
310
|
position: relative;
|
|
304
311
|
min-height: var(--vc-day-min-height);
|
|
305
312
|
z-index: 1;
|
|
306
|
-
/* &.is-not-in-month * {
|
|
307
|
-
opacity: 0;
|
|
308
|
-
pointer-events: none;
|
|
309
|
-
} */
|
|
310
313
|
}
|
|
311
314
|
.vc-monthly .is-not-in-month * {
|
|
312
|
-
opacity: 0;
|
|
313
315
|
pointer-events: none;
|
|
314
316
|
}
|
|
317
|
+
.vc-monthly .is-not-in-month .vc-day-content {
|
|
318
|
+
opacity: var(--vc-day-content-outside-month-opacity);
|
|
319
|
+
}
|
|
315
320
|
.vc-day-layer {
|
|
316
321
|
position: absolute;
|
|
317
322
|
left: 0;
|
|
@@ -855,6 +860,7 @@
|
|
|
855
860
|
--vc-day-content-width: 28px;
|
|
856
861
|
--vc-day-content-height: 28px;
|
|
857
862
|
--vc-day-content-line-height: 28px;
|
|
863
|
+
--vc-day-content-outside-month-opacity: 0.6;
|
|
858
864
|
--vc-highlight-width: var(--vc-day-content-width);
|
|
859
865
|
--vc-highlight-height: var(--vc-day-content-height);
|
|
860
866
|
|
package/dist/cjs/index.js
CHANGED
|
@@ -7929,8 +7929,7 @@ function useSlot(slotKey) {
|
|
|
7929
7929
|
}
|
|
7930
7930
|
//#endregion
|
|
7931
7931
|
//#region src/use/calendar.ts
|
|
7932
|
-
var
|
|
7933
|
-
...propsDef$2,
|
|
7932
|
+
var calendarPropsDef = {
|
|
7934
7933
|
view: {
|
|
7935
7934
|
type: String,
|
|
7936
7935
|
default: "monthly",
|
|
@@ -7976,6 +7975,10 @@ var propsDef$1 = {
|
|
|
7976
7975
|
trimWeeks: Boolean,
|
|
7977
7976
|
disablePageSwipe: Boolean
|
|
7978
7977
|
};
|
|
7978
|
+
var propsDef$1 = {
|
|
7979
|
+
...propsDef$2,
|
|
7980
|
+
...calendarPropsDef
|
|
7981
|
+
};
|
|
7979
7982
|
var emitsDef = [
|
|
7980
7983
|
"dayclick",
|
|
7981
7984
|
"daymouseenter",
|
|
@@ -8007,6 +8010,9 @@ function createCalendar(props, { slots, emit }) {
|
|
|
8007
8010
|
provideSlots(slots);
|
|
8008
8011
|
const { theme, color, displayMode, locale, masks, minDate, maxDate, normalizedMinDate, normalizedMaxDate, disabledAttribute, disabledDates } = useOrCreateBase(props);
|
|
8009
8012
|
const count = (0, vue.computed)(() => props.rows * props.columns);
|
|
8013
|
+
const isPeriodLayout = (0, vue.computed)(() => props.rows === 2 && props.columns === 1);
|
|
8014
|
+
const layoutRows = (0, vue.computed)(() => isPeriodLayout.value ? 1 : props.rows);
|
|
8015
|
+
const layoutColumns = (0, vue.computed)(() => isPeriodLayout.value ? 2 : props.columns);
|
|
8010
8016
|
const step = (0, vue.computed)(() => props.step || count.value);
|
|
8011
8017
|
const firstPage = (0, vue.computed)(() => (0, import_head.default)(_pages.value) ?? null);
|
|
8012
8018
|
const lastPage = (0, vue.computed)(() => (0, import_last.default)(_pages.value) ?? null);
|
|
@@ -8139,10 +8145,10 @@ function createCalendar(props, { slots, emit }) {
|
|
|
8139
8145
|
for (let i = 0; i < count.value; i++) {
|
|
8140
8146
|
const newPage = addPages$1(fromPage, i);
|
|
8141
8147
|
const position = i + 1;
|
|
8142
|
-
const row = Math.ceil(position /
|
|
8143
|
-
const rowFromEnd =
|
|
8144
|
-
const column = position %
|
|
8145
|
-
const columnFromEnd =
|
|
8148
|
+
const row = Math.ceil(position / layoutColumns.value);
|
|
8149
|
+
const rowFromEnd = layoutRows.value - row + 1;
|
|
8150
|
+
const column = position % layoutColumns.value || layoutColumns.value;
|
|
8151
|
+
const columnFromEnd = layoutColumns.value - column + 1;
|
|
8146
8152
|
const weeknumberPosition = getWeeknumberPosition(column, columnFromEnd);
|
|
8147
8153
|
pages.push(locale.value.getPage({
|
|
8148
8154
|
...newPage,
|
|
@@ -8159,6 +8165,12 @@ function createCalendar(props, { slots, emit }) {
|
|
|
8159
8165
|
weeknumberPosition
|
|
8160
8166
|
}));
|
|
8161
8167
|
}
|
|
8168
|
+
if (isPeriodLayout.value && isMonthly.value) {
|
|
8169
|
+
const weekCount = Math.max(...pages.map((currentPage) => currentPage.viewWeeks.length));
|
|
8170
|
+
pages.forEach((currentPage) => {
|
|
8171
|
+
currentPage.viewWeeks = currentPage.weeks.slice(0, weekCount);
|
|
8172
|
+
});
|
|
8173
|
+
}
|
|
8162
8174
|
transitionName.value = getPageTransition(_pages.value[0], pages[0], transition);
|
|
8163
8175
|
_pages.value = pages;
|
|
8164
8176
|
if (transitionName.value && transitionName.value !== "none") transitionPromise = {
|
|
@@ -8216,6 +8228,14 @@ function createCalendar(props, { slots, emit }) {
|
|
|
8216
8228
|
const moveNext = () => {
|
|
8217
8229
|
return moveBy(step.value);
|
|
8218
8230
|
};
|
|
8231
|
+
const canMovePeriodPrev = (0, vue.computed)(() => canMoveBy(-1));
|
|
8232
|
+
const canMovePeriodNext = (0, vue.computed)(() => canMoveBy(1));
|
|
8233
|
+
const movePeriodPrev = () => {
|
|
8234
|
+
return moveBy(-1);
|
|
8235
|
+
};
|
|
8236
|
+
const movePeriodNext = () => {
|
|
8237
|
+
return moveBy(1);
|
|
8238
|
+
};
|
|
8219
8239
|
const tryFocusDate = (date) => {
|
|
8220
8240
|
const inMonth = isMonthly.value ? ".in-month" : "";
|
|
8221
8241
|
const daySelector = `.id-${locale.value.getDayId(date)}${inMonth}`;
|
|
@@ -8317,7 +8337,11 @@ function createCalendar(props, { slots, emit }) {
|
|
|
8317
8337
|
(0, vue.watch)(() => locale.value, () => {
|
|
8318
8338
|
refreshPages();
|
|
8319
8339
|
});
|
|
8320
|
-
(0, vue.watch)(
|
|
8340
|
+
(0, vue.watch)([
|
|
8341
|
+
count,
|
|
8342
|
+
layoutRows,
|
|
8343
|
+
layoutColumns
|
|
8344
|
+
], () => refreshPages());
|
|
8321
8345
|
(0, vue.watch)(() => props.view, () => _view.value = props.view);
|
|
8322
8346
|
(0, vue.watch)(() => _view.value, () => {
|
|
8323
8347
|
handleWatcher("view", () => {
|
|
@@ -8358,6 +8382,9 @@ function createCalendar(props, { slots, emit }) {
|
|
|
8358
8382
|
dayCells,
|
|
8359
8383
|
count,
|
|
8360
8384
|
step,
|
|
8385
|
+
isPeriodLayout,
|
|
8386
|
+
layoutRows,
|
|
8387
|
+
layoutColumns,
|
|
8361
8388
|
firstPage,
|
|
8362
8389
|
lastPage,
|
|
8363
8390
|
canMovePrev,
|
|
@@ -8377,6 +8404,10 @@ function createCalendar(props, { slots, emit }) {
|
|
|
8377
8404
|
moveBy,
|
|
8378
8405
|
movePrev,
|
|
8379
8406
|
moveNext,
|
|
8407
|
+
canMovePeriodPrev,
|
|
8408
|
+
canMovePeriodNext,
|
|
8409
|
+
movePeriodPrev,
|
|
8410
|
+
movePeriodNext,
|
|
8380
8411
|
onTransitionBeforeEnter,
|
|
8381
8412
|
onTransitionAfterEnter,
|
|
8382
8413
|
tryFocusDate,
|
|
@@ -8940,11 +8971,16 @@ var CalendarHeader_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
8940
8971
|
isXl: { type: Boolean },
|
|
8941
8972
|
is2xl: { type: Boolean },
|
|
8942
8973
|
hideTitle: { type: Boolean },
|
|
8943
|
-
hideArrows: { type: Boolean }
|
|
8974
|
+
hideArrows: { type: Boolean },
|
|
8975
|
+
periodNavigation: { type: Boolean }
|
|
8944
8976
|
},
|
|
8945
8977
|
setup(__props) {
|
|
8946
8978
|
const props = __props;
|
|
8947
|
-
const { navPopoverId, navVisibility, canMovePrev, movePrev, canMoveNext, moveNext } = useCalendar();
|
|
8979
|
+
const { navPopoverId, navVisibility, canMovePrev, movePrev, canMoveNext, moveNext, canMovePeriodPrev, canMovePeriodNext, movePeriodPrev, movePeriodNext } = useCalendar();
|
|
8980
|
+
const canMovePrev_ = (0, vue.computed)(() => props.periodNavigation ? canMovePeriodPrev.value : canMovePrev.value);
|
|
8981
|
+
const canMoveNext_ = (0, vue.computed)(() => props.periodNavigation ? canMovePeriodNext.value : canMoveNext.value);
|
|
8982
|
+
const movePrev_ = () => props.periodNavigation ? movePeriodPrev() : movePrev();
|
|
8983
|
+
const moveNext_ = () => props.periodNavigation ? movePeriodNext() : moveNext();
|
|
8948
8984
|
const navPlacement = (0, vue.computed)(() => {
|
|
8949
8985
|
switch (props.page.titlePosition) {
|
|
8950
8986
|
case "left": return "bottom-start";
|
|
@@ -8982,6 +9018,7 @@ var CalendarHeader_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
8982
9018
|
};
|
|
8983
9019
|
});
|
|
8984
9020
|
const gridStyle = (0, vue.computed)(() => {
|
|
9021
|
+
if (props.periodNavigation && !props.layout) return { gridTemplateColumns: "[prev] auto [title] minmax(0, 1fr) [next] auto" };
|
|
8985
9022
|
return { gridTemplateColumns: layout_.value.split("").map((l) => {
|
|
8986
9023
|
switch (l) {
|
|
8987
9024
|
case "p": return "[prev] auto";
|
|
@@ -9005,12 +9042,12 @@ var CalendarHeader_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
9005
9042
|
key: 0,
|
|
9006
9043
|
type: "button",
|
|
9007
9044
|
class: "vc-arrow vc-prev vc-focus",
|
|
9008
|
-
disabled: !
|
|
9009
|
-
onClick:
|
|
9010
|
-
onKeydown:
|
|
9045
|
+
disabled: !canMovePrev_.value,
|
|
9046
|
+
onClick: movePrev_,
|
|
9047
|
+
onKeydown: (0, vue.withKeys)(movePrev_, ["space", "enter"])
|
|
9011
9048
|
}, [(0, vue.createVNode)(CalendarSlot_default, {
|
|
9012
9049
|
name: "header-prev-button",
|
|
9013
|
-
disabled: !
|
|
9050
|
+
disabled: !canMovePrev_.value
|
|
9014
9051
|
}, {
|
|
9015
9052
|
default: (0, vue.withCtx)(() => [(0, vue.createVNode)(BaseIcon_default, {
|
|
9016
9053
|
name: "ChevronLeft",
|
|
@@ -9032,12 +9069,12 @@ var CalendarHeader_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
9032
9069
|
key: 2,
|
|
9033
9070
|
type: "button",
|
|
9034
9071
|
class: "vc-arrow vc-next vc-focus",
|
|
9035
|
-
disabled: !
|
|
9036
|
-
onClick:
|
|
9037
|
-
onKeydown:
|
|
9072
|
+
disabled: !canMoveNext_.value,
|
|
9073
|
+
onClick: moveNext_,
|
|
9074
|
+
onKeydown: (0, vue.withKeys)(moveNext_, ["space", "enter"])
|
|
9038
9075
|
}, [(0, vue.createVNode)(CalendarSlot_default, {
|
|
9039
9076
|
name: "header-next-button",
|
|
9040
|
-
disabled: !
|
|
9077
|
+
disabled: !canMoveNext_.value
|
|
9041
9078
|
}, {
|
|
9042
9079
|
default: (0, vue.withCtx)(() => [(0, vue.createVNode)(BaseIcon_default, {
|
|
9043
9080
|
name: "ChevronRight",
|
|
@@ -9524,7 +9561,7 @@ var CalendarPage_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
9524
9561
|
__name: "CalendarPage",
|
|
9525
9562
|
setup(__props) {
|
|
9526
9563
|
const { page } = usePage();
|
|
9527
|
-
const { onWeeknumberClick } = useCalendar();
|
|
9564
|
+
const { isPeriodLayout, onWeeknumberClick } = useCalendar();
|
|
9528
9565
|
return (_ctx, _cache) => {
|
|
9529
9566
|
return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
9530
9567
|
class: (0, vue.normalizeClass)([
|
|
@@ -9538,8 +9575,13 @@ var CalendarPage_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
9538
9575
|
}, [(0, vue.createVNode)(CalendarHeader_default, {
|
|
9539
9576
|
page: (0, vue.unref)(page),
|
|
9540
9577
|
"is-lg": "",
|
|
9541
|
-
"hide-arrows":
|
|
9542
|
-
|
|
9578
|
+
"hide-arrows": !(0, vue.unref)(isPeriodLayout),
|
|
9579
|
+
"period-navigation": (0, vue.unref)(isPeriodLayout)
|
|
9580
|
+
}, null, 8, [
|
|
9581
|
+
"page",
|
|
9582
|
+
"hide-arrows",
|
|
9583
|
+
"period-navigation"
|
|
9584
|
+
]), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(["vc-weeks", { [`vc-show-weeknumbers-${(0, vue.unref)(page).weeknumberPosition}`]: (0, vue.unref)(page).weeknumberPosition }]) }, [(0, vue.createElementVNode)("div", _hoisted_1$3, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(page).weekdays, ({ weekday, label }, i) => {
|
|
9543
9585
|
return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
9544
9586
|
key: i,
|
|
9545
9587
|
class: (0, vue.normalizeClass)(`vc-weekday vc-weekday-${weekday}`)
|
|
@@ -9586,7 +9628,10 @@ var Calendar_vue_vue_type_script_lang_default = (0, vue.defineComponent)({
|
|
|
9586
9628
|
});
|
|
9587
9629
|
//#endregion
|
|
9588
9630
|
//#region src/components/Calendar/Calendar.vue
|
|
9589
|
-
var _hoisted_1$2 = {
|
|
9631
|
+
var _hoisted_1$2 = {
|
|
9632
|
+
key: 0,
|
|
9633
|
+
class: "vc-pane-header-wrapper"
|
|
9634
|
+
};
|
|
9590
9635
|
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9591
9636
|
const _component_CalendarHeader = (0, vue.resolveComponent)("CalendarHeader");
|
|
9592
9637
|
const _component_CalendarPage = (0, vue.resolveComponent)("CalendarPage");
|
|
@@ -9610,12 +9655,12 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9610
9655
|
onMouseup: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["prevent"])),
|
|
9611
9656
|
ref: "containerRef"
|
|
9612
9657
|
}), [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(["vc-pane-container", { "in-transition": _ctx.inTransition }]) }, [
|
|
9613
|
-
(0, vue.
|
|
9658
|
+
!_ctx.isPeriodLayout ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_1$2, [_ctx.firstPage ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_CalendarHeader, {
|
|
9614
9659
|
key: 0,
|
|
9615
9660
|
page: _ctx.firstPage,
|
|
9616
9661
|
"is-lg": "",
|
|
9617
9662
|
"hide-title": ""
|
|
9618
|
-
}, null, 8, ["page"])) : (0, vue.createCommentVNode)("", true)]),
|
|
9663
|
+
}, null, 8, ["page"])) : (0, vue.createCommentVNode)("", true)])) : (0, vue.createCommentVNode)("", true),
|
|
9619
9664
|
(0, vue.createVNode)(vue.Transition, {
|
|
9620
9665
|
name: `vc-${_ctx.transitionName}`,
|
|
9621
9666
|
onBeforeEnter: _ctx.onTransitionBeforeEnter,
|
|
@@ -9624,7 +9669,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9624
9669
|
default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
9625
9670
|
key: _ctx.pages[0].id,
|
|
9626
9671
|
class: "vc-pane-layout",
|
|
9627
|
-
style: (0, vue.normalizeStyle)({ gridTemplateColumns: `repeat(${_ctx.
|
|
9672
|
+
style: (0, vue.normalizeStyle)({ gridTemplateColumns: `repeat(${_ctx.layoutColumns}, 1fr)` })
|
|
9628
9673
|
}, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.pages, (page) => {
|
|
9629
9674
|
return (0, vue.openBlock)(), (0, vue.createBlock)(_component_CalendarPageProvider, {
|
|
9630
9675
|
key: page.id,
|
|
@@ -9658,6 +9703,7 @@ var Calendar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Calendar_
|
|
|
9658
9703
|
var contextKey = Symbol("__vc_date_picker_context__");
|
|
9659
9704
|
var propsDef = {
|
|
9660
9705
|
...propsDef$2,
|
|
9706
|
+
...calendarPropsDef,
|
|
9661
9707
|
mode: {
|
|
9662
9708
|
type: String,
|
|
9663
9709
|
default: "date"
|
|
@@ -10639,6 +10685,7 @@ var DatePickerPopover_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
10639
10685
|
});
|
|
10640
10686
|
//#endregion
|
|
10641
10687
|
//#region src/components/DatePicker/DatePicker.vue?vue&type=script&lang.ts
|
|
10688
|
+
var forwardedCalendarPropNames = Object.keys(calendarPropsDef).filter((name) => name !== "attributes");
|
|
10642
10689
|
var DatePicker_vue_vue_type_script_lang_default = (0, vue.defineComponent)({
|
|
10643
10690
|
inheritAttrs: false,
|
|
10644
10691
|
emits,
|
|
@@ -10650,8 +10697,10 @@ var DatePicker_vue_vue_type_script_lang_default = (0, vue.defineComponent)({
|
|
|
10650
10697
|
setup(props, ctx) {
|
|
10651
10698
|
const datePicker = createDatePicker(props, ctx);
|
|
10652
10699
|
const slotCtx = (0, vue.reactive)(omit(datePicker, "calendarRef", "popoverRef"));
|
|
10700
|
+
const forwardedCalendarProps = (0, vue.computed)(() => Object.fromEntries(forwardedCalendarPropNames.map((name) => [name, props[name]])));
|
|
10653
10701
|
return {
|
|
10654
10702
|
...datePicker,
|
|
10703
|
+
forwardedCalendarProps,
|
|
10655
10704
|
slotCtx
|
|
10656
10705
|
};
|
|
10657
10706
|
}
|
|
@@ -10661,7 +10710,13 @@ var DatePicker_vue_vue_type_script_lang_default = (0, vue.defineComponent)({
|
|
|
10661
10710
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10662
10711
|
const _component_DatePickerPopover = (0, vue.resolveComponent)("DatePickerPopover");
|
|
10663
10712
|
const _component_DatePickerBase = (0, vue.resolveComponent)("DatePickerBase");
|
|
10664
|
-
return _ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.renderSlot)(_ctx.$slots, "default", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(_ctx.slotCtx))), (0, vue.createVNode)(_component_DatePickerPopover, (0, vue.normalizeProps)((0, vue.guardReactiveProps)(
|
|
10713
|
+
return _ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.renderSlot)(_ctx.$slots, "default", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(_ctx.slotCtx))), (0, vue.createVNode)(_component_DatePickerPopover, (0, vue.normalizeProps)((0, vue.guardReactiveProps)({
|
|
10714
|
+
..._ctx.forwardedCalendarProps,
|
|
10715
|
+
..._ctx.$attrs
|
|
10716
|
+
})), null, 16)], 64)) : ((0, vue.openBlock)(), (0, vue.createBlock)(_component_DatePickerBase, (0, vue.normalizeProps)((0, vue.mergeProps)({ key: 1 }, {
|
|
10717
|
+
..._ctx.forwardedCalendarProps,
|
|
10718
|
+
..._ctx.$attrs
|
|
10719
|
+
})), null, 16));
|
|
10665
10720
|
}
|
|
10666
10721
|
var DatePicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(DatePicker_vue_vue_type_script_lang_default, [["render", _sfc_render]]);
|
|
10667
10722
|
//#endregion
|