vue-cal 5.0.1-rc.10 → 5.0.1-rc.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.
package/dist/vue-cal.css CHANGED
@@ -1 +1 @@
1
- .vuecal__header{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vuecal__views-bar{display:flex;gap:4px;align-items:center;justify-content:center}.vuecal__title-bar{display:flex}.vuecal__header .vuecal__transition-wrap{position:relative;flex-grow:1;min-height:1px}.vuecal__header .vuecal__transition-wrap>div{position:absolute;top:0;right:0;bottom:0;left:0;white-space:nowrap;display:flex;flex-grow:1;align-items:center;justify-content:center}.vuecal__title{position:relative;justify-content:center;margin:auto;display:flex;align-items:center;gap:6px;font-family:inherit;font-weight:700;font-size:1.05em}.vuecal__title small{display:inline-flex;padding:2px 6px;border-radius:4px;font-weight:400;font-size:.8em;background:#00000026}.vuecal__header nav{background-color:#fff3}.vuecal__nav{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center}.vuecal__nav--today{position:relative;align-items:center;display:flex}.vuecal__nav--today[disabled]{cursor:default}.vuecal__nav--today.vuecal__nav--default{text-transform:uppercase}.vuecal__nav--prev.vuecal__nav--default:before,.vuecal__nav--next.vuecal__nav--default:before{content:"";border:solid currentColor;border-width:0 2px 2px 0;padding:.25em;transform:translate(-1px) rotate(-45deg)}.vuecal__nav--prev.vuecal__nav--default:before{border-width:2px 0 0 2px;transform:translate(1px) rotate(-45deg)}.vuecal__headings{position:sticky;top:0;display:flex;flex-direction:column;flex-shrink:0;z-index:2;height:var(--vuecal-headings-bar-height);white-space:nowrap;background-color:var(--vuecal-secondary-color)}.vuecal__weekdays-headings{display:flex}.vuecal__weekday{flex:1 1 0;align-items:center;background-color:inherit}.vuecal__scrollable--days-view .vuecal__weekday,.vuecal__scrollable--week-view .vuecal__weekday{min-width:var(--vuecal-min-cell-width, 0)}.vuecal__schedule-heading{height:12px}.vuecal__time-column{display:flex;flex-direction:column;align-self:flex-start;padding-top:var(--vuecal-headings-bar-height);background-color:var(--vuecal-secondary-color);position:sticky;left:0;z-index:3;border-right:.5px solid var(--vuecal-border-color);transition:padding-top .3s ease-in-out}.vuecal__scrollable--day-view .vuecal__time-column{padding-top:0}.vuecal--has-schedules .vuecal__scrollable--day-view .vuecal__time-column{padding-top:var(--vuecal-headings-bar-height)}.vuecal__time-cell{position:relative;display:flex;flex:1 0 auto;font-size:.85em;height:var(--vuecal-time-cell-height)}.vuecal__time-cell:before{content:"";position:absolute;right:0;width:5px;top:.5px;border-top:.5px solid var(--vuecal-border-color)}.vuecal__time-cell label{opacity:.5;padding-left:4px;padding-right:8px;line-height:0}.vuecal__scrollable--day-view:not(.vuecal__scrollable--has-schedules) .vuecal__time-cell:first-child label{margin-top:.6em;font-size:.9em;opacity:.4}.vuecal__event{position:absolute;left:0;right:0}.vuecal__event--resizing,.vuecal__event--dragging-ghost{z-index:100}.vuecal__event--dragging-original{opacity:0;transition:opacity .1s}.vuecal__scrollable--month-view .vuecal__event{position:relative}.vuecal__event--resizing{z-index:100}.vuecal__event-resizer{position:absolute;inset:auto 0 0;height:8px;background-color:#fff;opacity:.1;transition:.25s;cursor:ns-resize}.vuecal__event-resizer:hover{opacity:.25}.vuecal-delete-btn-enter-active{transition:.35s cubic-bezier(.175,.885,.32,1.275)}.vuecal-delete-btn-enter-from{transform:scale(0) rotate(-90deg)}.vuecal-delete-btn-enter-to{transform:scale(1)}.vuecal-delete-btn-leave-active{transition:.3s ease-in-out;transform:scale(0)}.vuecal__cell{position:relative;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.vuecal__scrollable--days-view .vuecal__cell,.vuecal__scrollable--week-view .vuecal__cell{min-width:var(--vuecal-min-cell-width, 0)}.vuecal__cell--has-schedules{align-items:stretch}.vuecal__cell--out-of-range{opacity:.4}.vuecal__cell--disabled{cursor:not-allowed}.vuecal--view-has-time .vuecal__cell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(0deg,var(--vuecal-border-color) 0,transparent 1px var(--vuecal-time-cell-height)) 0 1px;background-size:100% var(--vuecal-time-cell-height)}.vuecal__special-hours{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;left:0;right:0;pointer-events:none}.vuecal__now-line{position:absolute;left:0;width:100%;height:0;border-top:1px solid;border-color:#f009;z-index:1}.vuecal__now-line:before{content:"";position:absolute;top:-6px;left:0;border:5px solid transparent;border-left-color:inherit}.vuecal__now-line span{position:absolute;right:1px;font-size:10px;opacity:.7;pointer-events:none}.vuecal__scrollable--day-view .vuecal__cell--today:before,.vuecal__scrollable--day-view .vuecal__cell--selected:before{display:none}.vuecal__event-placeholder{background-color:#23b5b5;position:absolute;left:0;right:0;padding-top:2px;padding-left:4px;border-radius:4px;font-size:11px;line-height:1}.vuecal__body{position:relative;display:grid;grid-template-columns:repeat(var(--vuecal-grid-columns),1fr);grid-template-rows:repeat(var(--vuecal-grid-rows),1fr);height:100%}.vuecal__time-at-cursor{position:absolute;left:0;right:0;border-top:1px dashed var(--vuecal-border-color);pointer-events:none;z-index:10}.vuecal__time-at-cursor label{display:block;position:absolute;top:0;right:100%;transform:translateY(-50%);margin-right:4px;padding:0 3px;font-size:.7rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:99em}.vuecal{--vuecal-grid-columns: 7;--vuecal-grid-rows: 6;--vuecal-headings-bar-height: 1.7rem;--vuecal-time-cell-height: 50px;--vuecal-min-cell-width: 0;--vuecal-transition-duration: .25s;display:flex;flex-direction:column;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:0}.vuecal--date-picker{--vuecal-headings-bar-height: 1.3rem}.vuecal--has-schedules{--vuecal-headings-bar-height: 2.4rem}.vuecal--has-schedules .vuecal__scrollable--day-view{--vuecal-headings-bar-height: 1.3rem}.vuecal,.vuecal *,.vuecal :before,.vuecal :after{box-sizing:border-box}.vuecal .grow{flex-grow:1}.vuecal__body-wrap{display:flex;flex-direction:column;flex-grow:1;min-width:0}.vuecal__scrollable-wrap{position:relative;flex:1;display:flex;min-height:1px}.vuecal__scrollable{position:relative;overflow:auto;flex:1;display:flex;flex-direction:column}.vuecal__scrollable--row,.vuecal__scrollable--has-week-numbers{flex-direction:row}.vuecal__week-numbers{display:flex;flex-direction:column;padding-top:var(--vuecal-headings-bar-height)}.vuecal__week-number{display:flex;flex-grow:1;align-items:center;justify-content:center;width:1.4em}.vuecal__schedule{position:relative;display:flex;flex-grow:1;flex-basis:0;justify-content:center;overflow:hidden}.vuecal__scrollable--days-view .vuecal__schedule,.vuecal__scrollable--week-view .vuecal__schedule{min-width:var(--vuecal-min-schedule-width, 0)}.vuecal__schedules-headings{display:flex}.vuecal__schedule--heading{font-size:12px;align-items:center}.vuecal__scrollable--has-schedules.vuecal__scrollable--day-view .vuecal__schedule--heading{height:var(--vuecal-headings-bar-height)}.vuecal-slide-fade--left-enter-active,.vuecal-slide-fade--left-leave-active,.vuecal-slide-fade--right-enter-active,.vuecal-slide-fade--right-leave-active{transition:var(--vuecal-transition-duration) ease-in-out}.vuecal-slide-fade--left-enter-from,.vuecal-slide-fade--right-leave-to{transform:translate(-12px);opacity:0}.vuecal-slide-fade--left-leave-to,.vuecal-slide-fade--right-enter-from{transform:translate(12px);opacity:0}.vuecal-slide-fade--left-enter-active,.vuecal-slide-fade--right-enter-active,.vuecal-slide-fade--left-leave-active~.vuecal-slide-fade--left-leave-active,.vuecal-slide-fade--right-leave-active~.vuecal-slide-fade--right-leave-active{position:absolute!important;top:0;right:0;bottom:0;left:0}.vuecal-event-delete-leave-active{transition:.15s ease-out}.vuecal-event-delete-leave-to{opacity:0;transform:translateY(.5rem)}.vuecal-shrink-enter-active,.vuecal-shrink-leave-active{transition:transform .2s,opacity .2s}.vuecal-shrink-enter-from,.vuecal-shrink-leave-to{opacity:0}.vuecal--default-theme{--vuecal-primary-color: #1976D2;--vuecal-secondary-color: #fff;--vuecal-base-color: #000;--vuecal-contrast-color: #fff;--vuecal-border-color: color-mix(in srgb, var(--vuecal-base-color) 8%, transparent);--vuecal-header-color: var(--vuecal-secondary-color);--vuecal-event-color: var(--vuecal-contrast-color);--vuecal-event-border-color: currentColor;--vuecal-border-radius: 6px;--vuecal-height: 500px;--vuecal-min-schedule-width: 0;--vuecal-min-cell-width: 1em;position:relative;border-radius:var(--vuecal-border-radius);color:var(--vuecal-base-color);height:var(--vuecal-height)}.vuecal--default-theme.vuecal--dragging-event{cursor:grabbing}.vuecal--default-theme.vuecal--resizing-event{cursor:ns-resize}.vuecal--default-theme.vuecal--dark{--vuecal-primary-color: #316191;--vuecal-secondary-color: #2e2e2e;--vuecal-base-color: #fff;--vuecal-contrast-color: #000;--vuecal-border-color: color-mix(in srgb, var(--vuecal-base-color) 8%, transparent);--vuecal-header-color: var(--vuecal-base-color);--vuecal-event-color: var(--vuecal-base-color);--vuecal-event-border-color: color-mix(in srgb, var(--vuecal-base-color) 50%, transparent)}.vuecal--default-theme .vuecal__header{background-color:var(--vuecal-primary-color);color:var(--vuecal-header-color);border-top-left-radius:var(--vuecal-border-radius);border-top-right-radius:var(--vuecal-border-radius)}.vuecal--default-theme .vuecal__views-bar,.vuecal--default-theme .vuecal__title-bar{padding-top:4px;padding-bottom:4px}.vuecal--default-theme .vuecal__title-bar{position:relative;background-color:var(--vuecal-primary-color);padding-left:.6em;padding-right:.6em;background-color:color-mix(in srgb,var(--vuecal-secondary-color) 20%,transparent)}.vuecal--default-theme .vuecal__view-button,.vuecal--default-theme .vuecal__nav,.vuecal--default-theme button.vuecal__title{background:none;border:none;color:inherit}.vuecal--default-theme .vuecal__view-button:not([disabled]),.vuecal--default-theme .vuecal__nav:not([disabled]),.vuecal--default-theme button.vuecal__title:not([disabled]){cursor:pointer}.vuecal--default-theme .vuecal__view-button{text-transform:uppercase;font-size:.9em}.vuecal--default-theme .vuecal__view-button,.vuecal--default-theme .vuecal__nav,.vuecal--default-theme button.vuecal__title,.vuecal--default-theme .vuecal__nav--today{transition:.3s;border:1px solid transparent;padding:2px 12px;border-radius:4px;align-self:center}.vuecal--default-theme .vuecal__view-button:hover,.vuecal--default-theme .vuecal__nav:hover,.vuecal--default-theme button.vuecal__title:hover,.vuecal--default-theme .vuecal__nav--today:hover{background-color:#ffffff1f}.vuecal--default-theme .vuecal__view-button--active,.vuecal--default-theme .vuecal__view-button--active:hover,.vuecal--default-theme .vuecal__nav--active,.vuecal--default-theme .vuecal__nav--active:hover,.vuecal--default-theme button.vuecal__title--active,.vuecal--default-theme button.vuecal__title--active:hover,.vuecal--default-theme .vuecal__nav--today--active,.vuecal--default-theme .vuecal__nav--today--active:hover,.vuecal--default-theme .vuecal__view-button:active,.vuecal--default-theme .vuecal__nav:active,.vuecal--default-theme button.vuecal__title:active,.vuecal--default-theme .vuecal__nav--today:active{background-color:#ffffff40}.vuecal--default-theme .vuecal__view-button:focus-visible,.vuecal--default-theme .vuecal__nav:focus-visible,.vuecal--default-theme button.vuecal__title:focus-visible,.vuecal--default-theme .vuecal__nav--today:focus-visible{border-color:#ffffffbf}.vuecal--default-theme .vuecal__nav--prev,.vuecal--default-theme .vuecal__nav--next{width:2em;aspect-ratio:1;border-radius:99em}.vuecal--default-theme .vuecal__nav--today{padding-left:8px;padding-right:8px;margin-right:3px;font-size:.85em}.vuecal--default-theme .vuecal__scrollable-wrap{background-color:color-mix(in srgb,var(--vuecal-primary-color) 4%,transparent);border:1px solid var(--vuecal-border-color);border-top:none;border-bottom-left-radius:var(--vuecal-border-radius);border-bottom-right-radius:var(--vuecal-border-radius);overflow:hidden}.vuecal--default-theme .vuecal__scrollable-wrap:first-child{border-top-left-radius:var(--vuecal-border-radius);border-top-right-radius:var(--vuecal-border-radius)}.vuecal--default-theme .vuecal__scrollable{display:grid;grid-template-columns:1fr 0fr}.vuecal--default-theme .vuecal__scrollable--row{grid-template-columns:0fr 1fr}.vuecal--default-theme .vuecal__week-number small{width:1.4em;display:flex;justify-content:center;align-items:center;aspect-ratio:1;font-size:.8em;background-color:color-mix(in srgb,var(--vuecal-base-color) 8%,transparent);color:color-mix(in srgb,var(--vuecal-base-color) 70%,transparent);border-radius:4px}.vuecal--default-theme .vuecal__weekday{display:flex;justify-content:center;padding:2px 1px;overflow:hidden;letter-spacing:-.03em;text-overflow:ellipsis;gap:4px;font-size:.95em;background-color:var(--vuecal-secondary-color)}.vuecal--default-theme .vuecal__weekday--today{font-weight:700}.vuecal--default-theme .vuecal__weekday-day{display:inline-block;overflow:hidden;text-overflow:ellipsis;opacity:.8}.vuecal--default-theme .vuecal__weekday-date{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:color-mix(in srgb,var(--vuecal-base-color) 15%,transparent);aspect-ratio:1;width:1.7em;border-radius:99em;overflow:hidden;line-height:1;font-size:.9em;letter-spacing:-.1em;text-indent:-.15em}.vuecal--default-theme .vuecal__weekday--today .vuecal__weekday-date{background-color:color-mix(in srgb,var(--vuecal-primary-color) 80%,transparent);color:#fff}.vuecal--default-theme.vuecal--light .vuecal__weekday:not(.vuecal__weekday--today) .vuecal__weekday-date{background-color:color-mix(in srgb,var(--vuecal-primary-color) 20%,transparent)}.vuecal--default-theme .vuecal__scrollable--has-schedules .vuecal__weekday{padding:0}.vuecal--default-theme .vuecal__scrollable--has-schedules .vuecal__weekday-date{width:1.5em}.vuecal--default-theme .vuecal__cell{overflow:hidden;box-shadow:0 0 0 .5px var(--vuecal-border-color) inset}.vuecal--default-theme.vuecal--lg .vuecal__scrollable--month-view .vuecal__cell{justify-content:flex-end;align-items:flex-start}.vuecal--default-theme .vuecal__cell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.vuecal--default-theme.vuecal--light .vuecal__cell:before{filter:saturate(2)}.vuecal--default-theme .vuecal__cell--today:before,.vuecal--default-theme .vuecal__cell--current-month:before,.vuecal--default-theme .vuecal__cell--current-year:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 10%,transparent)}.vuecal--default-theme .vuecal__cell--selected:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 25%,transparent)}.vuecal--default-theme.vuecal--light .vuecal__cell--today:before,.vuecal--default-theme.vuecal--light .vuecal__cell--current-month:before,.vuecal--default-theme.vuecal--light .vuecal__cell--current-year:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 5%,transparent)}.vuecal--default-theme.vuecal--light .vuecal__cell--selected:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 10%,transparent)}.vuecal--default-theme .vuecal__cell-date{position:sticky;top:0;font-weight:700}.vuecal--default-theme .vuecal__cell--disabled .vuecal__cell-date{opacity:.5}.vuecal--default-theme:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell:before{display:none}.vuecal--default-theme:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell-date{padding:4px;border-radius:99em;width:2em;aspect-ratio:1;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin:4px;font-size:13px;letter-spacing:-.5px;background-color:color-mix(in srgb,var(--vuecal-primary-color) 25%,transparent)}.vuecal--default-theme:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell--today .vuecal__cell-date{background-color:color-mix(in srgb,var(--vuecal-primary-color) 60%,transparent)}.vuecal--default-theme:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell--selected .vuecal__cell-date{background-color:var(--vuecal-primary-color)}.vuecal--default-theme.vuecal--light:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell-date{background-color:color-mix(in srgb,var(--vuecal-primary-color) 8%,transparent)}.vuecal--default-theme.vuecal--light:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell--today .vuecal__cell-date{background-color:color-mix(in srgb,var(--vuecal-primary-color) 22%,transparent)}.vuecal--default-theme.vuecal--light:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell--selected .vuecal__cell-date{background-color:color-mix(in srgb,var(--vuecal-primary-color) 40%,transparent)}.vuecal--default-theme .vuecal__cell--out-of-scope .vuecal__cell-date{opacity:.4}.vuecal--default-theme .vuecal__scrollable--month-view .vuecal__cell-events{overflow:hidden;flex-grow:1}.vuecal--default-theme.vuecal--timeless .vuecal__cell-events{display:flex;width:100%;height:100%;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:4px;gap:4px}.vuecal--default-theme .vuecal__scrollable--no-schedules.vuecal__scrollable--day-view .vuecal__cell-events,.vuecal--default-theme .vuecal__scrollable--no-schedules.vuecal__scrollable--days-view .vuecal__cell-events,.vuecal--default-theme .vuecal__scrollable--no-schedules.vuecal__scrollable--week-view .vuecal__cell-events{position:absolute;top:0;right:8px;bottom:0;left:0}.vuecal--default-theme .vuecal__time-cell{display:flex;justify-content:flex-end}.vuecal--default-theme .vuecal__time-cell-label{font-size:11px;letter-spacing:-.5px;color:#00000080;margin-top:-7.5px;background:#fff;width:98%;z-index:1;padding-right:2px;align-self:flex-start}.vuecal--default-theme .vuecal__time-cell:nth-child(1) .vuecal__time-cell-label{margin-top:-1px;font-size:10px;background:none}.vuecal--default-theme .vuecal__event{background-color:var(--vuecal-primary-color);color:var(--vuecal-event-color);border:1px solid var(--vuecal-event-border-color);border-radius:4px;line-height:1;width:90%;display:flex;z-index:1}.vuecal--default-theme .vuecal__event--background{border:none;border-radius:0;overflow:visible;width:100%;z-index:0}.vuecal--default-theme .vuecal__event--cut-top{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.vuecal--default-theme .vuecal__event--cut-bottom{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.vuecal--default-theme .vuecal__event:not(.vuecal__event--background):hover{z-index:10}.vuecal--default-theme .vuecal__event-details{flex-grow:1;overflow:hidden;padding:2px;font-size:12px}.vuecal--default-theme .vuecal__event-time{white-space:nowrap;line-height:1;letter-spacing:-.5px;font-size:11px}.vuecal--default-theme .vuecal__event-resizer{inset:auto -1px -1px;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.vuecal--default-theme .vuecal__event-delete{position:absolute;top:-5px;right:-5px;padding:2px;font-size:.8em;cursor:pointer;background-color:#ff4242;border:1px solid rgba(255,255,255,.5);color:transparent;border-radius:99em;aspect-ratio:1;width:1.5em}.vuecal--default-theme .vuecal__event-delete:before,.vuecal--default-theme .vuecal__event-delete:after{content:"";position:absolute;border-radius:99em;top:50%;height:2px;left:20%;right:20%;background-color:var(--vuecal-event-color)}.vuecal--default-theme .vuecal__event-delete:before{transform:translateY(-50%) rotate(45deg)}.vuecal--default-theme .vuecal__event-delete:after{transform:translateY(-50%) rotate(-45deg)}.vuecal--default-theme.vuecal--timeless .vuecal__event{position:relative;width:100%}.vuecal--default-theme .vuecal__scrollable--month-view .vuecal__event{padding-top:1px;padding-bottom:1px;width:100%}.vuecal--default-theme.vuecal--sm .vuecal__view-button,.vuecal--default-theme.vuecal--sm .vuecal__nav,.vuecal--default-theme.vuecal--sm .vuecal__title button,.vuecal--default-theme.vuecal--sm .vuecal__nav--today{padding-left:8px;padding-right:8px}.vuecal--default-theme.vuecal--xs{width:350px;height:250px}.vuecal--default-theme.vuecal--xs .vuecal__view-button,.vuecal--default-theme.vuecal--xs .vuecal__nav,.vuecal--default-theme.vuecal--xs .vuecal__title button,.vuecal--default-theme.vuecal--xs .vuecal__nav--today{padding-left:4px;padding-right:4px}.vuecal--default-theme.vuecal--xs .vuecal__title{gap:4px}.vuecal--default-theme.vuecal--xs .vuecal__title small{padding-left:3px;padding-right:3px}.vuecal--default-theme.vuecal--xs .vuecal__body{width:100%}.vuecal--default-theme.vuecal--xs .vuecal__scrollable--year-view .vuecal__body,.vuecal--default-theme.vuecal--xs .vuecal__scrollable--years-view .vuecal__body{margin:auto}.vuecal--default-theme.vuecal--date-picker{font-size:12px;width:210px}.vuecal--default-theme.vuecal--date-picker:has(.vuecal__views-bar){height:260px}.vuecal--default-theme.vuecal--date-picker .vuecal__views-bar,.vuecal--default-theme.vuecal--date-picker .vuecal__title-bar{padding-top:2px;padding-bottom:2px;height:2em}.vuecal--default-theme.vuecal--date-picker .vuecal__title-bar{padding-left:.3em;padding-right:.3em}.vuecal--default-theme.vuecal--date-picker .vuecal__nav--today,.vuecal--default-theme.vuecal--date-picker .vuecal__view-button{font-size:.9em}.vuecal--default-theme.vuecal--date-picker .vuecal__nav--prev,.vuecal--default-theme.vuecal--date-picker .vuecal__nav--next{width:1.6em}.vuecal--default-theme.vuecal--date-picker .vuecal__nav--prev:before,.vuecal--default-theme.vuecal--date-picker .vuecal__nav--next:before{padding:.22em}.vuecal--default-theme.vuecal--date-picker .vuecal__weekday{font-size:.95em}.vuecal--default-theme.vuecal--date-picker .vuecal__body{padding:2px;gap:2px}.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--year-view .vuecal__body{padding:.6em;gap:.8em}.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--month-view .vuecal__body,.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--year-view .vuecal__body,.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--years-view .vuecal__body{align-items:center}.vuecal--default-theme.vuecal--date-picker .vuecal__cell{aspect-ratio:1;border-radius:99em;font-weight:700;font-size:1em;box-shadow:none}.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--day-view .vuecal__cell,.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--days-view .vuecal__cell,.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--week-view .vuecal__cell{aspect-ratio:initial;border-radius:0;font-weight:400}.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--years-view .vuecal__cell{padding:6px}.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--month-view .vuecal__cell,.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--years-view .vuecal__cell{font-size:.9em}.vuecal--default-theme.vuecal--date-picker .vuecal__cell-date{font-weight:700}.vuecal--default-theme.vuecal--date-picker.vuecal--dark .vuecal__cell--today:before,.vuecal--default-theme.vuecal--date-picker.vuecal--dark .vuecal__cell--current-month:before,.vuecal--default-theme.vuecal--date-picker.vuecal--dark .vuecal__cell--current-year:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 50%,transparent)}.vuecal--default-theme.vuecal--date-picker.vuecal--dark .vuecal__scrollable--month-view .vuecal__cell--selected:before,.vuecal--default-theme.vuecal--date-picker.vuecal--dark .vuecal__scrollable--year-view .vuecal__cell--selected:before,.vuecal--default-theme.vuecal--date-picker.vuecal--dark .vuecal__scrollable--years-view .vuecal__cell--selected:before{background-color:var(--vuecal-primary-color)}.vuecal--default-theme.vuecal--date-picker.vuecal--light .vuecal__cell--today:before,.vuecal--default-theme.vuecal--date-picker.vuecal--light .vuecal__cell--current-month:before,.vuecal--default-theme.vuecal--date-picker.vuecal--light .vuecal__cell--current-year:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 12%,transparent)}.vuecal--default-theme.vuecal--date-picker.vuecal--light .vuecal--dark .vuecal__scrollable--month-view .vuecal__cell--selected:before,.vuecal--default-theme.vuecal--date-picker.vuecal--light .vuecal--dark .vuecal__scrollable--year-view .vuecal__cell--selected:before,.vuecal--default-theme.vuecal--date-picker.vuecal--light .vuecal--dark .vuecal__scrollable--years-view .vuecal__cell--selected:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 28%,transparent)}
1
+ .vuecal__header{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vuecal__views-bar{display:flex;gap:4px;align-items:center;justify-content:center}.vuecal__title-bar{display:flex}.vuecal__header .vuecal__transition-wrap{position:relative;flex-grow:1;min-height:1px}.vuecal__header .vuecal__transition-wrap>div{position:absolute;top:0;right:0;bottom:0;left:0;white-space:nowrap;display:flex;flex-grow:1;align-items:center;justify-content:center}.vuecal__title{position:relative;justify-content:center;margin:auto;display:flex;align-items:center;gap:6px;font-family:inherit;font-weight:700;font-size:1.05em}.vuecal__title small{display:inline-flex;padding:2px 6px;border-radius:4px;font-weight:400;font-size:.8em;background:#00000026}.vuecal__header nav{background-color:#fff3}.vuecal__nav{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center}.vuecal__nav--today{position:relative;align-items:center;display:flex}.vuecal__nav--today[disabled]{cursor:default}.vuecal__nav--today.vuecal__nav--default{text-transform:uppercase}.vuecal__nav--prev.vuecal__nav--default:before,.vuecal__nav--next.vuecal__nav--default:before{content:"";border:solid currentColor;border-width:0 2px 2px 0;padding:.25em;transform:translate(-1px) rotate(-45deg)}.vuecal__nav--prev.vuecal__nav--default:before{border-width:2px 0 0 2px;transform:translate(1px) rotate(-45deg)}.vuecal__headings{position:sticky;top:0;display:flex;flex-direction:column;flex-shrink:0;z-index:4;height:var(--vuecal-headings-bar-height);white-space:nowrap;background-color:var(--vuecal-secondary-color)}.vuecal__weekdays-headings{display:flex}.vuecal__weekday{flex:1 1 0;align-items:center;background-color:inherit}.vuecal__scrollable--days-view .vuecal__weekday,.vuecal__scrollable--week-view .vuecal__weekday{min-width:var(--vuecal-min-cell-width, 0)}.vuecal__schedule-heading{height:12px}.vuecal__time-column{display:flex;flex-direction:column;align-self:flex-start;padding-top:var(--vuecal-headings-bar-height);background-color:var(--vuecal-secondary-color);position:sticky;left:0;z-index:5;border-right:.5px solid var(--vuecal-border-color);transition:padding-top .3s ease-in-out}.vuecal__scrollable--day-view .vuecal__time-column{padding-top:0}.vuecal--has-schedules .vuecal__scrollable--day-view .vuecal__time-column{padding-top:var(--vuecal-headings-bar-height)}.vuecal__time-cell{position:relative;display:flex;flex:1 0 auto;font-size:.85em;height:var(--vuecal-time-cell-height)}.vuecal__time-cell:before{content:"";position:absolute;right:0;width:5px;top:.5px;border-top:.5px solid var(--vuecal-border-color)}.vuecal__time-cell label{opacity:.5;padding-left:4px;padding-right:8px;line-height:0}.vuecal__scrollable--day-view:not(.vuecal__scrollable--has-schedules) .vuecal__time-cell:first-child label{margin-top:.6em;font-size:.9em;opacity:.4}.vuecal__event{position:absolute;left:0;right:0}.vuecal__event--resizing,.vuecal__event--dragging-ghost{z-index:100}.vuecal__event--dragging-original{opacity:0;transition:opacity .1s}.vuecal__scrollable--month-view .vuecal__event{position:relative}.vuecal__event--resizing{z-index:100}.vuecal__event-resizer{position:absolute;inset:auto 0 0;height:8px;background-color:#fff;opacity:.1;transition:.25s;cursor:ns-resize}.vuecal__event-resizer:hover{opacity:.25}.vuecal-delete-btn-enter-active{transition:.35s cubic-bezier(.175,.885,.32,1.275)}.vuecal-delete-btn-enter-from{transform:scale(0) rotate(-90deg)}.vuecal-delete-btn-enter-to{transform:scale(1)}.vuecal-delete-btn-leave-active{transition:.3s ease-in-out;transform:scale(0)}.vuecal__cell{position:relative;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.vuecal__scrollable--days-view .vuecal__cell,.vuecal__scrollable--week-view .vuecal__cell{min-width:var(--vuecal-min-cell-width, 0)}.vuecal__cell--has-schedules{align-items:stretch}.vuecal__cell--out-of-range{opacity:.4}.vuecal__cell--disabled{cursor:not-allowed}.vuecal--view-has-time .vuecal__cell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(0deg,var(--vuecal-border-color) 0,transparent 1px var(--vuecal-time-cell-height)) 0 1px;background-size:100% var(--vuecal-time-cell-height)}.vuecal__special-hours{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;left:0;right:0;pointer-events:none}.vuecal__now-line{position:absolute;left:0;width:100%;height:0;border-top:1px solid;border-color:#f009;z-index:1}.vuecal__now-line:before{content:"";position:absolute;top:-6px;left:0;border:5px solid transparent;border-left-color:inherit}.vuecal__now-line span{position:absolute;right:1px;font-size:10px;opacity:.7;pointer-events:none}.vuecal__scrollable--day-view .vuecal__cell--today:before,.vuecal__scrollable--day-view .vuecal__cell--selected:before{display:none}.vuecal__event-placeholder{background-color:#23b5b5;position:absolute;left:0;right:0;padding-top:2px;padding-left:4px;border-radius:4px;font-size:11px;line-height:1}.vuecal__body{position:relative;display:grid;grid-template-columns:repeat(var(--vuecal-grid-columns),1fr);grid-template-rows:repeat(var(--vuecal-grid-rows),1fr);height:100%}.vuecal__time-at-cursor{position:absolute;left:0;right:0;border-top:1px dashed var(--vuecal-border-color);pointer-events:none;z-index:10}.vuecal__time-at-cursor label{display:block;position:absolute;top:0;right:100%;transform:translateY(-50%);margin-right:4px;padding:0 3px;font-size:.7rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:99em}.vuecal{--vuecal-grid-columns: 7;--vuecal-grid-rows: 6;--vuecal-headings-bar-height: 1.7rem;--vuecal-time-cell-height: 50px;--vuecal-min-cell-width: 0;--vuecal-transition-duration: .25s;display:flex;flex-direction:column;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:0}.vuecal--date-picker{--vuecal-headings-bar-height: 1.3rem}.vuecal--has-schedules{--vuecal-headings-bar-height: 2.4rem}.vuecal--has-schedules .vuecal__scrollable--day-view{--vuecal-headings-bar-height: 1.3rem}.vuecal,.vuecal *,.vuecal :before,.vuecal :after{box-sizing:border-box}.vuecal .grow{flex-grow:1}.vuecal__body-wrap{display:flex;flex-direction:column;flex-grow:1;min-width:0}.vuecal__scrollable-wrap{position:relative;flex:1;display:flex;min-height:1px}.vuecal__scrollable{position:relative;overflow:auto;flex:1;display:flex;flex-direction:column}.vuecal__scrollable--row,.vuecal__scrollable--has-week-numbers{flex-direction:row}.vuecal__week-numbers{display:flex;flex-direction:column;padding-top:var(--vuecal-headings-bar-height)}.vuecal__week-number{display:flex;flex-grow:1;align-items:center;justify-content:center;width:1.4em}.vuecal__schedule{position:relative;display:flex;flex-grow:1;flex-basis:0;justify-content:center;overflow:hidden}.vuecal__scrollable--days-view .vuecal__schedule,.vuecal__scrollable--week-view .vuecal__schedule{min-width:var(--vuecal-min-schedule-width, 0)}.vuecal__schedules-headings{display:flex}.vuecal__schedule--heading{font-size:12px;align-items:center}.vuecal__scrollable--has-schedules.vuecal__scrollable--day-view .vuecal__schedule--heading{height:var(--vuecal-headings-bar-height)}.vuecal-slide-fade--left-enter-active,.vuecal-slide-fade--left-leave-active,.vuecal-slide-fade--right-enter-active,.vuecal-slide-fade--right-leave-active{transition:var(--vuecal-transition-duration) ease-in-out}.vuecal-slide-fade--left-enter-from,.vuecal-slide-fade--right-leave-to{transform:translate(-12px);opacity:0}.vuecal-slide-fade--left-leave-to,.vuecal-slide-fade--right-enter-from{transform:translate(12px);opacity:0}.vuecal-slide-fade--left-enter-active,.vuecal-slide-fade--right-enter-active,.vuecal-slide-fade--left-leave-active~.vuecal-slide-fade--left-leave-active,.vuecal-slide-fade--right-leave-active~.vuecal-slide-fade--right-leave-active{position:absolute!important;top:0;right:0;bottom:0;left:0}.vuecal-event-delete-leave-active{transition:.15s ease-out}.vuecal-event-delete-leave-to{opacity:0;transform:translateY(.5rem)}.vuecal-shrink-enter-active,.vuecal-shrink-leave-active{transition:transform .2s,opacity .2s}.vuecal-shrink-enter-from,.vuecal-shrink-leave-to{opacity:0}.vuecal--default-theme{--vuecal-primary-color: #1976D2;--vuecal-secondary-color: #fff;--vuecal-base-color: #000;--vuecal-contrast-color: #fff;--vuecal-border-color: color-mix(in srgb, var(--vuecal-base-color) 8%, transparent);--vuecal-header-color: var(--vuecal-secondary-color);--vuecal-event-color: var(--vuecal-contrast-color);--vuecal-event-border-color: currentColor;--vuecal-border-radius: 6px;--vuecal-height: 500px;--vuecal-min-schedule-width: 0;--vuecal-min-cell-width: 1em;position:relative;border-radius:var(--vuecal-border-radius);color:var(--vuecal-base-color);height:var(--vuecal-height)}.vuecal--default-theme.vuecal--dragging-event{cursor:grabbing}.vuecal--default-theme.vuecal--resizing-event{cursor:ns-resize}.vuecal--default-theme.vuecal--dark{--vuecal-primary-color: #316191;--vuecal-secondary-color: #2e2e2e;--vuecal-base-color: #fff;--vuecal-contrast-color: #000;--vuecal-border-color: color-mix(in srgb, var(--vuecal-base-color) 8%, transparent);--vuecal-header-color: var(--vuecal-base-color);--vuecal-event-color: var(--vuecal-base-color);--vuecal-event-border-color: color-mix(in srgb, var(--vuecal-base-color) 50%, transparent)}.vuecal--default-theme .vuecal__header{background-color:var(--vuecal-primary-color);color:var(--vuecal-header-color);border-top-left-radius:var(--vuecal-border-radius);border-top-right-radius:var(--vuecal-border-radius)}.vuecal--default-theme .vuecal__views-bar,.vuecal--default-theme .vuecal__title-bar{padding-top:4px;padding-bottom:4px}.vuecal--default-theme .vuecal__title-bar{position:relative;background-color:var(--vuecal-primary-color);padding-left:.6em;padding-right:.6em;background-color:color-mix(in srgb,var(--vuecal-secondary-color) 20%,transparent)}.vuecal--default-theme .vuecal__view-button,.vuecal--default-theme .vuecal__nav,.vuecal--default-theme button.vuecal__title{background:none;border:none;color:inherit}.vuecal--default-theme .vuecal__view-button:not([disabled]),.vuecal--default-theme .vuecal__nav:not([disabled]),.vuecal--default-theme button.vuecal__title:not([disabled]){cursor:pointer}.vuecal--default-theme .vuecal__view-button{text-transform:uppercase;font-size:.9em}.vuecal--default-theme .vuecal__view-button,.vuecal--default-theme .vuecal__nav,.vuecal--default-theme button.vuecal__title,.vuecal--default-theme .vuecal__nav--today{transition:.3s;border:1px solid transparent;padding:2px 12px;border-radius:4px;align-self:center}.vuecal--default-theme .vuecal__view-button:hover,.vuecal--default-theme .vuecal__nav:hover,.vuecal--default-theme button.vuecal__title:hover,.vuecal--default-theme .vuecal__nav--today:hover{background-color:#ffffff1f}.vuecal--default-theme .vuecal__view-button--active,.vuecal--default-theme .vuecal__view-button--active:hover,.vuecal--default-theme .vuecal__nav--active,.vuecal--default-theme .vuecal__nav--active:hover,.vuecal--default-theme button.vuecal__title--active,.vuecal--default-theme button.vuecal__title--active:hover,.vuecal--default-theme .vuecal__nav--today--active,.vuecal--default-theme .vuecal__nav--today--active:hover,.vuecal--default-theme .vuecal__view-button:active,.vuecal--default-theme .vuecal__nav:active,.vuecal--default-theme button.vuecal__title:active,.vuecal--default-theme .vuecal__nav--today:active{background-color:#ffffff40}.vuecal--default-theme .vuecal__view-button:focus-visible,.vuecal--default-theme .vuecal__nav:focus-visible,.vuecal--default-theme button.vuecal__title:focus-visible,.vuecal--default-theme .vuecal__nav--today:focus-visible{border-color:#ffffffbf}.vuecal--default-theme .vuecal__nav--prev,.vuecal--default-theme .vuecal__nav--next{width:2em;aspect-ratio:1;border-radius:99em}.vuecal--default-theme .vuecal__nav--today{padding-left:8px;padding-right:8px;margin-right:3px;font-size:.85em}.vuecal--default-theme .vuecal__scrollable-wrap{background-color:color-mix(in srgb,var(--vuecal-primary-color) 4%,transparent);border:1px solid var(--vuecal-border-color);border-top:none;border-bottom-left-radius:var(--vuecal-border-radius);border-bottom-right-radius:var(--vuecal-border-radius);overflow:hidden}.vuecal--default-theme .vuecal__scrollable-wrap:first-child{border-top-left-radius:var(--vuecal-border-radius);border-top-right-radius:var(--vuecal-border-radius)}.vuecal--default-theme .vuecal__scrollable{display:grid;grid-template-columns:1fr 0fr}.vuecal--default-theme .vuecal__scrollable--row{grid-template-columns:0fr 1fr}.vuecal--default-theme .vuecal__week-number small{width:1.4em;display:flex;justify-content:center;align-items:center;aspect-ratio:1;font-size:.8em;background-color:color-mix(in srgb,var(--vuecal-base-color) 8%,transparent);color:color-mix(in srgb,var(--vuecal-base-color) 70%,transparent);border-radius:4px}.vuecal--default-theme .vuecal__weekday{display:flex;justify-content:center;padding:2px 1px;overflow:hidden;letter-spacing:-.03em;text-overflow:ellipsis;gap:4px;font-size:.95em;background-color:var(--vuecal-secondary-color)}.vuecal--default-theme .vuecal__weekday--today{font-weight:700}.vuecal--default-theme .vuecal__weekday-day{display:inline-block;overflow:hidden;text-overflow:ellipsis;opacity:.8}.vuecal--default-theme .vuecal__weekday-date{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:color-mix(in srgb,var(--vuecal-base-color) 15%,transparent);aspect-ratio:1;width:1.7em;border-radius:99em;overflow:hidden;line-height:1;font-size:.9em;letter-spacing:-.1em;text-indent:-.15em}.vuecal--default-theme .vuecal__weekday--today .vuecal__weekday-date{background-color:color-mix(in srgb,var(--vuecal-primary-color) 80%,transparent);color:#fff}.vuecal--default-theme.vuecal--light .vuecal__weekday:not(.vuecal__weekday--today) .vuecal__weekday-date{background-color:color-mix(in srgb,var(--vuecal-primary-color) 20%,transparent)}.vuecal--default-theme .vuecal__scrollable--has-schedules .vuecal__weekday{padding:0}.vuecal--default-theme .vuecal__scrollable--has-schedules .vuecal__weekday-date{width:1.5em}.vuecal--default-theme .vuecal__cell{overflow:hidden;box-shadow:0 0 0 .5px var(--vuecal-border-color) inset}.vuecal--default-theme.vuecal--lg .vuecal__scrollable--month-view .vuecal__cell{justify-content:flex-end;align-items:flex-start}.vuecal--default-theme .vuecal__cell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.vuecal--default-theme.vuecal--light .vuecal__cell:before{filter:saturate(2)}.vuecal--default-theme .vuecal__cell--today:before,.vuecal--default-theme .vuecal__cell--current-month:before,.vuecal--default-theme .vuecal__cell--current-year:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 10%,transparent)}.vuecal--default-theme .vuecal__cell--selected:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 25%,transparent)}.vuecal--default-theme.vuecal--light .vuecal__cell--today:before,.vuecal--default-theme.vuecal--light .vuecal__cell--current-month:before,.vuecal--default-theme.vuecal--light .vuecal__cell--current-year:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 5%,transparent)}.vuecal--default-theme.vuecal--light .vuecal__cell--selected:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 10%,transparent)}.vuecal--default-theme .vuecal__cell-date{position:sticky;top:0;font-weight:700}.vuecal--default-theme .vuecal__cell--disabled .vuecal__cell-date{opacity:.5}.vuecal--default-theme:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell:before{display:none}.vuecal--default-theme:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell-date{padding:4px;border-radius:99em;width:2em;aspect-ratio:1;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin:4px;font-size:13px;letter-spacing:-.5px;background-color:color-mix(in srgb,var(--vuecal-primary-color) 25%,transparent)}.vuecal--default-theme:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell--today .vuecal__cell-date{background-color:color-mix(in srgb,var(--vuecal-primary-color) 60%,transparent)}.vuecal--default-theme:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell--selected .vuecal__cell-date{background-color:var(--vuecal-primary-color)}.vuecal--default-theme.vuecal--light:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell-date{background-color:color-mix(in srgb,var(--vuecal-primary-color) 8%,transparent)}.vuecal--default-theme.vuecal--light:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell--today .vuecal__cell-date{background-color:color-mix(in srgb,var(--vuecal-primary-color) 22%,transparent)}.vuecal--default-theme.vuecal--light:is(.vuecal--sm,.vuecal--lg) .vuecal__scrollable--month-view .vuecal__cell--selected .vuecal__cell-date{background-color:color-mix(in srgb,var(--vuecal-primary-color) 40%,transparent)}.vuecal--default-theme .vuecal__cell--out-of-scope .vuecal__cell-date{opacity:.4}.vuecal--default-theme .vuecal__scrollable--month-view .vuecal__cell-events{overflow:hidden;flex-grow:1}.vuecal--default-theme.vuecal--timeless .vuecal__cell-events{display:flex;width:100%;height:100%;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:4px;gap:4px}.vuecal--default-theme .vuecal__scrollable--no-schedules.vuecal__scrollable--day-view .vuecal__cell-events,.vuecal--default-theme .vuecal__scrollable--no-schedules.vuecal__scrollable--days-view .vuecal__cell-events,.vuecal--default-theme .vuecal__scrollable--no-schedules.vuecal__scrollable--week-view .vuecal__cell-events{position:absolute;top:0;right:8px;bottom:0;left:0}.vuecal--default-theme .vuecal__time-cell{display:flex;justify-content:flex-end}.vuecal--default-theme .vuecal__time-cell-label{font-size:11px;letter-spacing:-.5px;color:#00000080;margin-top:-7.5px;background:#fff;width:98%;z-index:1;padding-right:2px;align-self:flex-start}.vuecal--default-theme .vuecal__time-cell:nth-child(1) .vuecal__time-cell-label{margin-top:-1px;font-size:10px;background:none}.vuecal--default-theme .vuecal__event{background-color:var(--vuecal-primary-color);color:var(--vuecal-event-color);border:1px solid var(--vuecal-event-border-color);border-radius:4px;line-height:1;width:90%;display:flex;z-index:1}.vuecal--default-theme .vuecal__event--background{border:none;border-radius:0;overflow:visible;width:100%;z-index:0}.vuecal--default-theme .vuecal__event--cut-top{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.vuecal--default-theme .vuecal__event--cut-bottom{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.vuecal--default-theme .vuecal__event:not(.vuecal__event--background):hover{z-index:3}.vuecal--default-theme .vuecal__event-details{flex-grow:1;overflow:hidden;padding:2px;font-size:12px}.vuecal--default-theme .vuecal__event-time{white-space:nowrap;line-height:1;letter-spacing:-.5px;font-size:11px}.vuecal--default-theme .vuecal__event-resizer{inset:auto -1px -1px;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.vuecal--default-theme .vuecal__event-delete{position:absolute;top:-5px;right:-5px;padding:2px;font-size:.8em;cursor:pointer;background-color:#ff4242;border:1px solid rgba(255,255,255,.5);color:transparent;border-radius:99em;aspect-ratio:1;width:1.5em}.vuecal--default-theme .vuecal__event-delete:before,.vuecal--default-theme .vuecal__event-delete:after{content:"";position:absolute;border-radius:99em;top:50%;height:2px;left:20%;right:20%;background-color:var(--vuecal-event-color)}.vuecal--default-theme .vuecal__event-delete:before{transform:translateY(-50%) rotate(45deg)}.vuecal--default-theme .vuecal__event-delete:after{transform:translateY(-50%) rotate(-45deg)}.vuecal--default-theme.vuecal--timeless .vuecal__event{position:relative;width:100%}.vuecal--default-theme .vuecal__scrollable--month-view .vuecal__event{padding-top:1px;padding-bottom:1px;width:100%}.vuecal--default-theme.vuecal--sm .vuecal__view-button,.vuecal--default-theme.vuecal--sm .vuecal__nav,.vuecal--default-theme.vuecal--sm .vuecal__title button,.vuecal--default-theme.vuecal--sm .vuecal__nav--today{padding-left:8px;padding-right:8px}.vuecal--default-theme.vuecal--xs{width:350px;height:250px}.vuecal--default-theme.vuecal--xs .vuecal__view-button,.vuecal--default-theme.vuecal--xs .vuecal__nav,.vuecal--default-theme.vuecal--xs .vuecal__title button,.vuecal--default-theme.vuecal--xs .vuecal__nav--today{padding-left:4px;padding-right:4px}.vuecal--default-theme.vuecal--xs .vuecal__title{gap:4px}.vuecal--default-theme.vuecal--xs .vuecal__title small{padding-left:3px;padding-right:3px}.vuecal--default-theme.vuecal--xs .vuecal__body{width:100%}.vuecal--default-theme.vuecal--xs .vuecal__scrollable--year-view .vuecal__body,.vuecal--default-theme.vuecal--xs .vuecal__scrollable--years-view .vuecal__body{margin:auto}.vuecal--default-theme.vuecal--date-picker{font-size:12px;width:210px}.vuecal--default-theme.vuecal--date-picker:has(.vuecal__views-bar){height:260px}.vuecal--default-theme.vuecal--date-picker .vuecal__views-bar,.vuecal--default-theme.vuecal--date-picker .vuecal__title-bar{padding-top:2px;padding-bottom:2px;height:2em}.vuecal--default-theme.vuecal--date-picker .vuecal__title-bar{padding-left:.3em;padding-right:.3em}.vuecal--default-theme.vuecal--date-picker .vuecal__nav--today,.vuecal--default-theme.vuecal--date-picker .vuecal__view-button{font-size:.9em}.vuecal--default-theme.vuecal--date-picker .vuecal__nav--prev,.vuecal--default-theme.vuecal--date-picker .vuecal__nav--next{width:1.6em}.vuecal--default-theme.vuecal--date-picker .vuecal__nav--prev:before,.vuecal--default-theme.vuecal--date-picker .vuecal__nav--next:before{padding:.22em}.vuecal--default-theme.vuecal--date-picker .vuecal__weekday{font-size:.95em}.vuecal--default-theme.vuecal--date-picker .vuecal__body{padding:2px;gap:2px}.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--year-view .vuecal__body{padding:.6em;gap:.8em}.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--month-view .vuecal__body,.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--year-view .vuecal__body,.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--years-view .vuecal__body{align-items:center}.vuecal--default-theme.vuecal--date-picker .vuecal__cell{aspect-ratio:1;border-radius:99em;font-weight:700;font-size:1em;box-shadow:none}.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--day-view .vuecal__cell,.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--days-view .vuecal__cell,.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--week-view .vuecal__cell{aspect-ratio:initial;border-radius:0;font-weight:400}.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--years-view .vuecal__cell{padding:6px}.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--month-view .vuecal__cell,.vuecal--default-theme.vuecal--date-picker .vuecal__scrollable--years-view .vuecal__cell{font-size:.9em}.vuecal--default-theme.vuecal--date-picker .vuecal__cell-date{font-weight:700}.vuecal--default-theme.vuecal--date-picker.vuecal--dark .vuecal__cell--today:before,.vuecal--default-theme.vuecal--date-picker.vuecal--dark .vuecal__cell--current-month:before,.vuecal--default-theme.vuecal--date-picker.vuecal--dark .vuecal__cell--current-year:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 50%,transparent)}.vuecal--default-theme.vuecal--date-picker.vuecal--dark .vuecal__scrollable--month-view .vuecal__cell--selected:before,.vuecal--default-theme.vuecal--date-picker.vuecal--dark .vuecal__scrollable--year-view .vuecal__cell--selected:before,.vuecal--default-theme.vuecal--date-picker.vuecal--dark .vuecal__scrollable--years-view .vuecal__cell--selected:before{background-color:var(--vuecal-primary-color)}.vuecal--default-theme.vuecal--date-picker.vuecal--light .vuecal__cell--today:before,.vuecal--default-theme.vuecal--date-picker.vuecal--light .vuecal__cell--current-month:before,.vuecal--default-theme.vuecal--date-picker.vuecal--light .vuecal__cell--current-year:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 12%,transparent)}.vuecal--default-theme.vuecal--date-picker.vuecal--light .vuecal--dark .vuecal__scrollable--month-view .vuecal__cell--selected:before,.vuecal--default-theme.vuecal--date-picker.vuecal--light .vuecal--dark .vuecal__scrollable--year-view .vuecal__cell--selected:before,.vuecal--default-theme.vuecal--date-picker.vuecal--light .vuecal--dark .vuecal__scrollable--years-view .vuecal__cell--selected:before{background-color:color-mix(in srgb,var(--vuecal-primary-color) 28%,transparent)}
@@ -1,7 +1,7 @@
1
1
  import { computed as T, reactive as $e, watch as me, toRefs as rt, ref as ie, onBeforeUnmount as Xe, inject as Ne, createElementBlock as j, openBlock as E, renderSlot as F, createCommentVNode as Z, unref as O, Fragment as te, renderList as we, normalizeClass as _e, createElementVNode as ge, createVNode as Oe, Transition as Ge, withCtx as J, createBlock as Se, resolveDynamicComponent as Ke, mergeProps as De, toHandlers as Ie, normalizeProps as ne, guardReactiveProps as se, toDisplayString as le, onMounted as Ze, withModifiers as Qe, nextTick as Ue, normalizeStyle as Te, createTextVNode as xe, TransitionGroup as et, createSlots as je, useTemplateRef as ot, useId as it, useAttrs as ut, provide as ct } from "vue";
2
2
  import nt from "./i18n/en-us.json";
3
3
  /**
4
- * vue-cal v5.0.1-rc.10
4
+ * vue-cal v5.0.1-rc.11
5
5
  * (c) 2024-2025 Antoni Andre <antoniandre.web@gmail.com>
6
6
  * @license MIT
7
7
  */
@@ -1,5 +1,5 @@
1
1
  (function(H,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("./i18n/en-us.json")):typeof define=="function"&&define.amd?define(["exports","vue","./i18n/en-us.json"],e):(H=typeof globalThis<"u"?globalThis:H||self,e(H.vuecal={},H.Vue,H.EnUs))})(this,function(H,e,Me){"use strict";/**
2
- * vue-cal v5.0.1-rc.10
2
+ * vue-cal v5.0.1-rc.11
3
3
  * (c) 2024-2025 Antoni Andre <antoniandre.web@gmail.com>
4
4
  * @license MIT
5
5
  */const te={texts:{weekDays:Array(7).fill(""),weekDaysShort:[],months:Array(12).fill(""),years:"",year:"",month:"",week:"",day:"",today:"",noEvent:"",allDay:"",deleteEvent:"",createEvent:"",dateFormat:"dddd MMMM D, YYYY",am:"am",pm:"pm",truncations:!0},availableViews:{day:{cols:1,rows:1},days:{cols:10,rows:1},week:{cols:7,rows:1},month:{cols:7,rows:6},year:{cols:4,rows:3},years:{cols:5,rows:5}}},Ce=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],we=["sun","mon","tue","wed","thu","fri","sat"],Be=we.reduce((D,s,o)=>(D[s]=o||7,D),{}),Ve=(D,s,o)=>{const{dateUtils:y}=D,w=!1,T=e.computed(()=>{if(O.value[s.view])return s.view;const l=s.datePicker?"month":"week",r=s.view||l;return O.value[r]?r:(console.warn(`Vue Cal: the provided or default view \`${r}\` is either invalid or not in the list of available views. The first available view will be chosen: \`${Object.keys(O.value)[0]}\`.`),Object.keys(O.value)[0])}),P=e.computed(()=>s.sm&&!s.xs),f=e.computed(()=>s.xs||s.datePicker),C=e.computed(()=>s.clickToNavigate||s.datePicker&&s.clickToNavigate!==!1),c=e.computed(()=>{const l={cell:{},event:{}},r=_=>_.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();for(const[_,a]of Object.entries(o)){const[B,Y,X]=_.match(/^on(Cell|Event)(.+)$/)||[];B&&(l[Y.toLowerCase()][r(X).replace(/^-+|-+$/g,"")]=a)}return l}),g=e.computed(()=>{var r;const l={};return s.hideWeekends&&(l[6]=!0)&&(l[7]=!0),(r=s.hideWeekdays)!=null&&r.length&&s.hideWeekdays.forEach(_=>l[Be[_]]=!0),l}),M=e.computed(()=>s.hideWeekends||g.value[6]&&g.value[7]),O=e.computed(()=>{const l=s.datePicker;let r=0,_={};const a=s.views;return l&&!a?{month:{...te.availableViews.month},year:{...te.availableViews.year},years:{...te.availableViews.years}}:(a?(Array.isArray(a)?_=a.reduce((B,Y)=>(typeof Y=="string"&&te.availableViews[Y]?B[Y]=te.availableViews[Y]:r++,B),{}):typeof a=="object"&&(_=Object.entries(a).reduce((B,[Y,X])=>{const{cols:G,rows:x}=te.availableViews[Y];return B[Y]={cols:X.cols||G,rows:X.rows||x},B},{})),r&&console.warn("Vue Cal: the provided `views` prop contains invalid views that will be ignored."),Object.keys(_).length||(console.warn("Vue Cal: No valid view in the provided `views` prop. Falling back to default views."),_={...te.availableViews})):_={...te.availableViews},_)}),A=e.computed(()=>s.datePicker?"month":O.value.week?"week":Object.keys(O.value)[0]),i=e.computed(()=>{if(typeof s.selectedDate=="string")return y.stringToDate(s.selectedDate);if(s.selectedDate instanceof Date)return s.selectedDate;s.selectedDate?console.warn("Vue Cal: The provided selected date is invalid:",s.selectedDate):console.log("Vue Cal: Info - The provided selected date is undefined.")}),d=e.computed(()=>{if(!s.disableDays)return[];const l=[];if(Array.isArray(s.disableDays))for(let r of s.disableDays){let _=r;typeof r=="string"?_=y.stringToDate(r):r instanceof Date&&(r=y.formatDate(r,"YYYY-MM-DD")),_ instanceof Date&&!isNaN(_.getTime())?l.push(r):console.warn("Vue Cal: The provided `disableDays` prop contains an invalid date:",r)}else console.warn("Vue Cal: The provided `disableDays` prop is invalid:",s.disableDays);return l}),t=e.computed(()=>{let l=null;return s.minDate&&typeof s.minDate=="string"?l=y.stringToDate(s.minDate):s.minDate&&s.minDate instanceof Date&&(l=s.minDate),(l==null?void 0:l.getTime())||null}),m=e.computed(()=>{let l=null;return s.maxDate&&typeof s.maxDate=="string"?l=y.stringToDate(s.maxDate):s.maxDate&&s.maxDate instanceof Date&&(l=s.maxDate),(l==null?void 0:l.getTime())||null}),h=e.computed(()=>{var _;const{view:l}=D;return s.schedules.length&&(l.isDay||l.isDays||l.isWeek)&&((_=s.schedules)==null?void 0:_.map((a,B)=>({...a,id:a.id??B+1})))||void 0}),$=e.computed(()=>{const l={drag:!0,resize:!0,delete:!0,create:!0};return s.editableEvents===!0?l:s.editableEvents===!1?Object.keys(l).map(r=>l[r]=!1):{...l,...s.editableEvents}}),V=async l=>{var _;let r=Object.assign({"../i18n/ar.json":()=>import("./i18n/ar.json").then(a=>a.default),"../i18n/bg.json":()=>import("./i18n/bg.json").then(a=>a.default),"../i18n/bn.json":()=>import("./i18n/bn.json").then(a=>a.default),"../i18n/bs.json":()=>import("./i18n/bs.json").then(a=>a.default),"../i18n/ca.json":()=>import("./i18n/ca.json").then(a=>a.default),"../i18n/cs.json":()=>import("./i18n/cs.json").then(a=>a.default),"../i18n/da.json":()=>import("./i18n/da.json").then(a=>a.default),"../i18n/de.json":()=>import("./i18n/de.json").then(a=>a.default),"../i18n/el.json":()=>import("./i18n/el.json").then(a=>a.default),"../i18n/en-gb.json":()=>import("./i18n/en-gb.json").then(a=>a.default),"../i18n/en-us.json":()=>import("./i18n/en-us.json").then(a=>a.default),"../i18n/es.json":()=>import("./i18n/es.json").then(a=>a.default),"../i18n/et.json":()=>import("./i18n/et.json").then(a=>a.default),"../i18n/fa.json":()=>import("./i18n/fa.json").then(a=>a.default),"../i18n/fi.json":()=>import("./i18n/fi.json").then(a=>a.default),"../i18n/fr.json":()=>import("./i18n/fr.json").then(a=>a.default),"../i18n/he.json":()=>import("./i18n/he.json").then(a=>a.default),"../i18n/hr.json":()=>import("./i18n/hr.json").then(a=>a.default),"../i18n/hu.json":()=>import("./i18n/hu.json").then(a=>a.default),"../i18n/id.json":()=>import("./i18n/id.json").then(a=>a.default),"../i18n/is.json":()=>import("./i18n/is.json").then(a=>a.default),"../i18n/it.json":()=>import("./i18n/it.json").then(a=>a.default),"../i18n/ja.json":()=>import("./i18n/ja.json").then(a=>a.default),"../i18n/ka.json":()=>import("./i18n/ka.json").then(a=>a.default),"../i18n/ko.json":()=>import("./i18n/ko.json").then(a=>a.default),"../i18n/lt.json":()=>import("./i18n/lt.json").then(a=>a.default),"../i18n/mn.json":()=>import("./i18n/mn.json").then(a=>a.default),"../i18n/nl.json":()=>import("./i18n/nl.json").then(a=>a.default),"../i18n/no.json":()=>import("./i18n/no.json").then(a=>a.default),"../i18n/pl.json":()=>import("./i18n/pl.json").then(a=>a.default),"../i18n/pt-br.json":()=>import("./i18n/pt-br.json").then(a=>a.default),"../i18n/pt-pt.json":()=>import("./i18n/pt-pt.json").then(a=>a.default),"../i18n/ro.json":()=>import("./i18n/ro.json").then(a=>a.default),"../i18n/ru.json":()=>import("./i18n/ru.json").then(a=>a.default),"../i18n/sk.json":()=>import("./i18n/sk.json").then(a=>a.default),"../i18n/sl.json":()=>import("./i18n/sl.json").then(a=>a.default),"../i18n/sq.json":()=>import("./i18n/sq.json").then(a=>a.default),"../i18n/sr.json":()=>import("./i18n/sr.json").then(a=>a.default),"../i18n/sv.json":()=>import("./i18n/sv.json").then(a=>a.default),"../i18n/tr.json":()=>import("./i18n/tr.json").then(a=>a.default),"../i18n/uk.json":()=>import("./i18n/uk.json").then(a=>a.default),"../i18n/vi.json":()=>import("./i18n/vi.json").then(a=>a.default),"../i18n/zh-cn.json":()=>import("./i18n/zh-cn.json").then(a=>a.default),"../i18n/zh-hk.json":()=>import("./i18n/zh-hk.json").then(a=>a.default)});{if(!r[`../i18n/${l}.json`]){console.warn(`Vue Cal: the locale \`${l}\` does not exist. Falling back to \`en-us\`.`),l="en-us";return}r=await((_=r[`../i18n/${l}.json`])==null?void 0:_.call(r))}D.texts=Object.assign(D.texts,Object.assign({...te.texts},r)),y.updateTexts(D.texts)},j=e.reactive(s.events||[]);return e.watch(()=>s.events,l=>j.splice(0,j.length,...l)),e.watch(()=>s.locale,l=>V(l||"en-us")),(s.locale||!D.texts.today)&&V(s.locale||"en-us"),{...e.toRefs(s),events:j,eventListeners:c,defaultView:A,availableViews:O,disableDays:d,ready:w,sm:P,xs:f,clickToNavigate:C,hideWeekdays:g,hideWeekends:M,minTimestamp:t,maxTimestamp:m,schedules:h,selectedDate:i,editableEvents:$,view:T,get hasHiddenDays(){return Object.keys(g.value).length},get size(){return f.value?"xs":P.value?"sm":"lg"},loadTexts:V}},me=(D,s)=>{const o=s.timeTo-s.timeFrom;return(D-s.timeFrom)*100/o},fe=(D,s)=>{const o=s.timeTo-s.timeFrom;return~~(D*o/100+s.timeFrom)},be=(D,s)=>{const o=s.clientHeight;return D*100/o},ke=e.reactive({id:null,date:null});let $e=!1,Te=!0;const re=e.reactive({el:null,cell:null,timeout:null}),oe=e.reactive({eventId:null,fromVueCal:null,toVueCal:null});function Ye(D){const{config:s,view:o,eventsManager:y,emit:w,uid:T,dateUtils:P}=D,f=t=>{var r;const{timeStep:m,timeCellHeight:h,timeFrom:$}=s,V=(((r=t.touches)==null?void 0:r[0])||t).clientY,{top:j}=t.currentTarget.getBoundingClientRect(),l=V-j-~~t.dataTransfer.getData("cursor-grab-at");return fe(be(l,t.currentTarget),s)},C=(t,m,h)=>{const $=m.duration||c(m.start,m.end)||s.timeStep;let V=Math.max(f(t),0);if(s.snapToInterval){const _=V+s.snapToInterval/2;V=_-_%s.snapToInterval}const j=new Date(new Date(h).setMinutes(V)),l=Math.min(V+$,24*60),r=new Date(new Date(h).setMinutes(l));return{start:j,end:r}},c=(t,m)=>Math.round((m-t)/6e4);return{eventDragStart:(t,m)=>{if(t.target.nodeType===3||D.touch.isResizingEvent)return t.preventDefault();t.dataTransfer.effectAllowed="move",t.dataTransfer.dropEffect="move";const h={...m,_:{id:m._.id,duration:c(m.start,m.end)}};try{t.dataTransfer.setData("text/plain",""),t.dataTransfer.setData("event",JSON.stringify(h)),t.dataTransfer.setData("cursor-grab-at",t.offsetY)}catch(V){return console.warn("Vue Cal: Failed to set drag data:",V),t.preventDefault()}oe.eventId=m._.id,oe.fromVueCal=T;const $=t.target.closest(".vuecal__event");$.classList.add("vuecal__event--dragging-ghost"),setTimeout(()=>{$.classList.add("vuecal__event--dragging-original"),$.classList.remove("vuecal__event--dragging-ghost")},0),$e=!1,Object.assign(ke,{id:o.id,date:o.firstCellDate}),Te=!0,D.touch.isDraggingEvent=!0},eventDragEnd:(t,m)=>{oe.eventId=null,t.target.closest(".vuecal__event").classList.remove("vuecal__event--dragging-original");const{fromVueCal:h,toVueCal:$}=oe;$&&h!==$&&y.deleteEvent(m._.id,3),oe.fromVueCal=null,oe.toVueCal=null,$e&&Te&&ke.id&&o.switchView(ke.id,ke.date,!0),D.touch.isDraggingEvent=!1},cellDragEnter:(t,m)=>{const{start:h}=m,$=t.currentTarget;if(!t.currentTarget.contains(t.relatedTarget)){if($===re.el||!$.className.includes("vuecal__cell-content"))return!1;re.el&&(re.cell.highlighted=!1),Object.assign(re,{el:$,cell:m,timeout:clearTimeout(re.timeout)}),m.highlighted=!0,["years","year","month"].includes(o.id)&&(re.timeout=setTimeout(()=>D.switchToNarrowerView(h),2e3))}},cellDragOver:(t,m)=>{const{start:h,schedule:$}=m;t.preventDefault(),m.highlighted=!0,($||$===0)&&(m.highlightedSchedule=$)},cellDragLeave:(t,m)=>{t.preventDefault(),!t.currentTarget.contains(t.relatedTarget)&&(m.highlightedSchedule=!1,re.cell===m&&(clearTimeout(re.timeout),Object.assign(re,{el:null,cell:null,timeout:null}),m.highlighted=!1))},cellDragDrop:async(t,m)=>{var B,Y,X;t.preventDefault(),clearTimeout(re.timeout),Object.assign(re,{el:null,cell:null,timeout:null});const h=JSON.parse(t.dataTransfer.getData("event")||"{}");h.start&&(h.start=new Date(h.start)),h.end&&(h.end=new Date(h.end));let $;const{start:V,end:j}=C(t,h,m.start),{schedule:l}=((B=t.target.closest("[data-schedule]"))==null?void 0:B.dataset)||{};let r=()=>{};oe.fromVueCal===T?($=y.getEvent(h._.id),$&&($._.dragging=!1,r=()=>{$.start=V,$.end=j,l!==void 0&&($.schedule=~~l)})):($={...h,start:V,end:j,...l!==void 0&&{schedule:~~l},_:{id:((Y=h._)==null?void 0:Y.id)||h.id,duration:c(V,j)},getOverlappingEvents:()=>y.getEventsInRange(y.getEventsByDate(P.formatDate(V),!0),{start:V,end:j},{schedule:~~l})},r=()=>{$=y.createEvent($)});let _=!0;const{drop:a}=(X=s.eventListeners)==null?void 0:X.event;a&&(_=await a({e:t,event:{...$,start:V,end:j,schedule:~~l},overlaps:$.getOverlappingEvents({start:V,end:j,schedule:~~l}),cell:m,external:oe.fromVueCal!==T})),_!==!1&&r(),m.highlighted=!1,m.highlightedSchedule=null,Te=!1,oe.toVueCal=T,w("event-dropped",{e:t,cell:m,event:$,originalEvent:h,external:oe.fromVueCal!==T})}}}const Se=(D,s)=>{let o,y,w,T={},P={};const f=e.ref(D),C=()=>{f.value.today||(f.value=s),Date.prototype.addDays=function(n){return O(this,n||0)},Date.prototype.subtractDays=function(n){return A(this,n||0)},Date.prototype.addHours=function(n){return i(this,n||0)},Date.prototype.subtractHours=function(n){return d(this,n||0)},Date.prototype.addMinutes=function(n){return t(this,n||0)},Date.prototype.subtractMinutes=function(n){return m(this,n||0)},Date.prototype.getWeek=function(){return $(this)},Date.prototype.isToday=function(){return V(this)},Date.prototype.isLeapYear=function(){return r(this)},Date.prototype.format=function(n="YYYY-MM-DD"){return x(this,n)},Date.prototype.formatTime=function(n="HH:mm"){return K(this,n)}},c=()=>{delete Date.prototype.addDays,delete Date.prototype.subtractDays,delete Date.prototype.addHours,delete Date.prototype.subtractHours,delete Date.prototype.addMinutes,delete Date.prototype.subtractMinutes,delete Date.prototype.getWeek,delete Date.prototype.isToday,delete Date.prototype.isLeapYear,delete Date.prototype.format,delete Date.prototype.formatTime},g=n=>{f.value=n,Date.prototype.subtractDays&&C()},M=()=>(y!==new Date().getDate()&&(o=new Date,y=o.getDate(),w=`${o.getFullYear()}-${o.getMonth()}-${o.getDate()}`),w),O=(n,b)=>{const v=new Date(n.valueOf());return v.setDate(v.getDate()+b),v},A=(n,b)=>{const v=new Date(n.valueOf());return v.setDate(v.getDate()-b),v},i=(n,b)=>{const v=new Date(n.valueOf());return v.setHours(v.getHours()+b),v},d=(n,b)=>{const v=new Date(n.valueOf());return v.setHours(v.getHours()-b),v},t=(n,b)=>{const v=new Date(n.valueOf());return v.setMinutes(v.getMinutes()+b),v},m=(n,b)=>{const v=new Date(n.valueOf());return v.setMinutes(v.getMinutes()-b),v},h=(n,b)=>{const v=F=>{const q=F%b;return q!==0&&(F+=q>=b/2?b-q:-q),F};if(typeof n=="number")return v(n);if(n instanceof Date){let F=v(n.getMinutes());F>=60&&(n.setHours(n.getHours()+1),F=0),n.setMinutes(F,0,0)}},$=(n,b=!1)=>{const v=new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate())),F=v.getUTCDay()||7;v.setUTCDate(v.getUTCDate()+4-F);const q=new Date(Date.UTC(v.getUTCFullYear(),0,1));return Math.ceil(((v-q)/864e5+1)/7)+(b?1:0)},V=n=>`${n.getFullYear()}-${n.getMonth()}-${n.getDate()}`===M(),j=(n,b)=>{if(!n||!b)return console.warn(`Vue Cal: missing date${n?"2":"1"} parameter for comparison with \`isSameDate(date1, date2)\`.`);if(G(n)){if(!G(b))return console.warn(`Vue Cal: invalid date2 provided for comparison with \`isSameDate(date1, date2)\`: \`${b}\`.`)}else return console.warn(`Vue Cal: invalid date1 provided for comparison with \`isSameDate(date1, date2)\`: \`${n}\`.`);return n.getFullYear()===b.getFullYear()&&n.getMonth()===b.getMonth()&&n.getDate()===b.getDate()},l=(n,b,v)=>G(n)?n.getTime()>=b&&n.getTime()<=v:console.warn(`Vue Cal: invalid date provided to \`isInRange(date, rangeStart, rangeEnd)\`: \`${n}\`.`),r=n=>{const b=n.getFullYear();return!(b%400)||b%100&&!(b%4)},_=(n=null,b)=>{const v=n&&new Date(n.valueOf())||new Date,F=b?7:6;return v.setDate(v.getDate()-(v.getDay()+F)%7),v},a=n=>n instanceof Date?n:(n.length===10&&(n+=" 00:00"),new Date(n.replace(/-/g,"/"))),B=n=>n.getHours()*60+n.getMinutes(),Y=(n,b)=>{typeof n=="string"&&(n=n.replace(/-/g,"/")),typeof b=="string"&&(b=b.replace(/-/g,"/")),n=new Date(n).setHours(0,0,0,0),b=new Date(b).setHours(0,0,1,0);const v=(new Date(b).getTimezoneOffset()-new Date(n).getTimezoneOffset())*60*1e3;return Math.ceil((b-n-v)/(24*3600*1e3))},X=(n,b,v)=>Math.abs(n.getTime()-b.getTime())<=v*60*1e3,G=n=>n&&n instanceof Date&&!isNaN(n),x=(n,b="YYYY-MM-DD",v=null)=>{if(v||(v=f.value),b||(b="YYYY-MM-DD"),b==="YYYY-MM-DD")return J(n);T={},P={};const F={YYYY:()=>Z(n,v).YYYY,YY:()=>Z(n,v).YY(),M:()=>Z(n,v).M,MM:()=>Z(n,v).MM(),MMM:()=>Z(n,v).MMM(),MMMM:()=>Z(n,v).MMMM(),MMMMG:()=>Z(n,v).MMMMG(),D:()=>Z(n,v).D,DD:()=>Z(n,v).DD(),S:()=>Z(n,v).S(),d:()=>Z(n,v).d,dd:()=>Z(n,v).dd(),ddd:()=>Z(n,v).ddd(),dddd:()=>Z(n,v).dddd(),HH:()=>Q(n,v).HH,H:()=>Q(n,v).H,hh:()=>Q(n,v).hh,h:()=>Q(n,v).h,am:()=>Q(n,v).am,AM:()=>Q(n,v).AM,mm:()=>Q(n,v).mm,m:()=>Q(n,v).m,s:()=>Q(n,v).s};return b.replace(/(\{[a-zA-Z]+\}|[a-zA-Z]+)/g,(q,u)=>{const k=F[u.replace(/\{|\}/g,"")];return k!==void 0?k():u})},J=n=>{const b=n.getMonth()+1,v=n.getDate();return`${n.getFullYear()}-${b<10?"0":""}${b}-${v<10?"0":""}${v}`},K=(n,b="HH:mm",v=null,F=!1)=>{let q=!1;if(F){const[E,S,N]=[n.getHours(),n.getMinutes(),n.getSeconds()];E+S+N===141&&(q=!0)}if(n instanceof Date&&b==="HH:mm")return q?"24:00":se(n);P={},v||(v=f.value);const u=Q(n,v),k=b.replace(/(\{[a-zA-Z]+\}|[a-zA-Z]+)/g,(E,S)=>{const N=u[S.replace(/\{|\}/g,"")];return N!==void 0?N:S});return q?k.replace("23:59","24:00"):k},se=n=>{const b=n.getHours(),v=n.getMinutes();return`${(b<10?"0":"")+b}:${(v<10?"0":"")+v}`},I=n=>{const b=Math.floor(n/60).toString().padStart(2,0),v=(n%60).toString().padStart(2,0);return`${b}:${v}`},ee=n=>{if(n>3&&n<21)return"th";switch(n%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},Z=(n,b)=>{if(T.D)return T;const v=n.getFullYear(),F=n.getMonth()+1,q=n.getDate(),k=(n.getDay()-1+7)%7;return T={YYYY:v,YY:()=>v.toString().substring(2),M:F,MM:()=>F.toString().padStart(2,0),MMM:()=>b.months[F-1].substring(0,3),MMMM:()=>b.months[F-1],MMMMG:()=>(b.monthsGenitive||b.months)[F-1],D:q,DD:()=>q.toString().padStart(2,0),S:()=>ee(q),d:k+1,dd:()=>b.weekDaysShort.length?b.weekDaysShort[k]:b.weekDays[k][0],ddd:()=>b.weekDaysShort.length?b.weekDaysShort[k]:b.weekDays[k].substr(0,3),dddd:()=>b.weekDays[k]},T},Q=(n,b)=>{if(P.am)return P;let v,F,q;n instanceof Date?(v=n.getHours(),F=n.getMinutes(),q=n.getSeconds()):(v=Math.floor(n/60),F=Math.floor(n%60));const u=v%12?v%12:12,k=(b||{am:"am",pm:"pm"})[v===24||v<12?"am":"pm"];return P={H:v,h:u,HH:v.toString().padStart(2,0),hh:u.toString().padStart(2,0),am:k,AM:k.toUpperCase(),m:F,mm:F.toString().padStart(2,0),s:q},P};return{addDatePrototypes:C,removeDatePrototypes:c,updateTexts:g,addDays:O,subtractDays:A,addHours:i,subtractHours:d,addMinutes:t,subtractMinutes:m,snapToInterval:h,getWeek:$,isToday:V,isSameDate:j,isInRange:l,isLeapYear:r,getPreviousFirstDayOfWeek:_,stringToDate:a,dateToMinutes:B,countDays:Y,datesInSameTimeStep:X,isValid:G,formatDate:x,formatDateLite:J,formatTime:K,formatTimeLite:se,formatMinutes:I}},Pe=D=>{const{dateUtils:s,config:o}=D;let y=0;const w=e.computed(()=>{const i={byDate:{},recurring:[],multiday:[],byId:{}},d=o.events.sort((t,m)=>t.start-m.start<0?-1:1);for(const t of d)T(t),t._||(t._={}),t._.id=t._.id||++y,t.delete||(t.delete=m=>g(t._.id,m)),t._.deleting=!1,t._.deleted=!1,t.isOverlapping=(m=null)=>t.getOverlappingEvents(m).length,t.getOverlappingEvents=(m=null)=>{var h;return O(f(s.formatDate((m==null?void 0:m.start)||t.start),!0),{start:(m==null?void 0:m.start)||t.start,end:(m==null?void 0:m.end)||t.end},{excludeIds:[t._.id],schedule:(h=o.schedules)!=null&&h.length?~~((m==null?void 0:m.schedule)||t.schedule):null})},t._.register=m=>{t._.$el=m,t._.fireCreated&&(D.emit("event-created",t),delete t._.fireCreated)},t._.unregister=()=>{t._.$el=null,t._.register=null,t.isOverlapping=null,t.getOverlappingEvents=null,t.delete=null},i.byId[t._.id]=t,t.recurring?i.recurring.push(t._.id):t._.multiday?(i.multiday.push(t._.id),i.byDate[t._.startFormatted]||(i.byDate[t._.startFormatted]=[]),i.byDate[t._.startFormatted].push(t._.id)):(i.byDate[t._.startFormatted]||(i.byDate[t._.startFormatted]=[]),i.byDate[t._.startFormatted].push(t._.id));return i}),T=i=>{if(typeof i.start=="string"&&(i.start=s.stringToDate(i.start)),typeof i.end=="string"&&(i.end=s.stringToDate(i.end)),i.start.setSeconds(0,0),i.end.setSeconds(0,0),isNaN(i.start)||isNaN(i.end)){isNaN(i.start)?console.error(`Vue Cal: invalid start date for event "${i.title}".`,i.start):console.error(`Vue Cal: invalid end date for event "${i.title}".`,i.end);return}else i.end.getTime()<i.start.getTime()&&console.error(`Vue Cal: invalid event dates for event "${i.title}". The event ends before it starts.`,i.start,i.end);i._||(i._={}),i._.multiday=!s.isSameDate(i.start,new Date(i.end.getTime()-1)),i._.startFormatted=s.formatDate(i.start),i._.startMinutes=~~s.dateToMinutes(i.start),i._.endMinutes=~~s.dateToMinutes(i.end);const d=i.start.getHours(),t=i.start.getMinutes().toString().padStart(2,0),m=i.end.getHours(),h=i.end.getMinutes().toString().padStart(2,0);i._.startTimeFormatted24=`${d.toString().padStart(2,0)}:${t}`,i._.startTimeFormatted12=`${d%12||12}${t?`:${t}`:""} ${d<12?"AM":"PM"}`,i._.endTimeFormatted24=`${m.toString().padStart(2,0)}:${h}`,i._.endTimeFormatted12=`${m%12||12}${h?`:${h}`:""} ${m<12?"AM":"PM"}`,i._.duration=Math.abs(~~((i.end-i.start)/6e4))},P=i=>w.value.byId[i],f=(i,d=!1,t=!1)=>{let m=w.value.byDate[i]||[];return m=d||t?m.map(P):m,t||(m=m.filter(h=>!h.background&&!h._.deleted),d||(m=m.map(h=>h._.id))),m},C=i=>{const d={};for(const{startFormatted:t}of i){d[t]=[];const m=f(t,!1,!0);m.length&&d[t].push(...m)}return d},c=i=>{if(!i.start||!i.end){console.error("Vue Cal: Cannot create an event without valid start and end dates.");return}return o.snapToInterval&&(s.snapToInterval(i.start,o.snapToInterval),s.snapToInterval(i.end,o.snapToInterval)),i={...i},i._||(i._={}),i._.id=++y,i._.fireCreated=!0,o.events.push(i),i},g=async(i,d=0)=>{var V,j;if(!i)return console.warn("Vue Cal: Cannot delete event without its ID or criteria.");let t=typeof i=="string"||!isNaN(i)?i:null;const m=typeof i=="object"?Object.entries(i):null;if(m){const[l,r]=m[0];t=(V=o.events.find(_=>_[l]===r))==null?void 0:V._.id}if(!o.editableEvents.delete)return console.info("Vue Cal: Event deletion is disabled. Enable it with the `editable-events` props.");if(!t)return console.warn("Vue Cal: Cannot delete event without its ID.");const h=o.events.findIndex(l=>l._.id===t);if(h===-1)return console.warn(`Vue Cal: Cannot delete unknown event \`${t}\`.`);const $=o.events[h];if($.deletable===!1)return console.warn(`Vue Cal: Can't delete event \`${t}\` since it was explicitely set to \`delete: false\`.`);switch(d){case 0:$._.deleting?o.events.splice(h,1):$._.deleting=!0;break;case 1:$._.deleting=!0;break;case 2:$._.deleted=!0,o.events[h]._.deleted=!0,(j=$._.$el)==null||j.dispatchEvent(new CustomEvent("event-deleted",{detail:$._.id}));break;case 3:o.events.splice(h,1),D.emit("update:events",o.events),D.emit("event-delete",$);break}return!0},M=i=>{const d=f(i,!0);if(!d.length)return{cellOverlaps:{},longestStreak:0};const t={};let m=[],h=0;d.sort(($,V)=>$.start-V.start||$.end-$.start-(V.end-V.start));for(const $ of d){const V=$._.id;t[V]||(t[V]={overlaps:new Set,maxConcurrent:1,position:0}),m=m.filter(a=>a.end>$.start);let j=m.filter(a=>{var Y;return(!((Y=o.schedules)!=null&&Y.length)||$.schedule===a.schedule)&&a.start<$.end}),l=new Set(j.map(a=>{var B;return((B=t[a._.id])==null?void 0:B.position)??0})),r=0;for(;l.has(r);)r++;t[V].position=r,m.push($);let _=Math.max(1,...j.map(a=>{var B;return((B=t[a._.id])==null?void 0:B.maxConcurrent)??1}));t[V].maxConcurrent=Math.max(j.length+1,_);for(const a of j)t[a._.id].overlaps.add(V),t[V].overlaps.add(a._.id),t[a._.id].maxConcurrent=t[V].maxConcurrent;h=Math.max(h,t[V].maxConcurrent)}for(const $ in t)t[$].overlaps=[...t[$].overlaps];return{cellOverlaps:t,longestStreak:h}},O=(i=[],{start:d,end:t},{excludeIds:m=[],schedule:h=null})=>{var j;const $=new Set(m),V=[];for(const l of i)!$.has((j=l._)==null?void 0:j.id)&&(h===null||h===l.schedule)&&A(l,d,t)&&V.push(l);return V},A=(i,d,t)=>{const m=i.allDay||!o.time,h=m?new Date(i.start).setHours(0,0,0,0):i.start.getTime(),$=m?new Date(i.end).setHours(23,59,59,999):i.end.getTime(),V=m?new Date(d).setHours(0,0,0,0):d.getTime(),j=m?new Date(t).setHours(23,59,59,999):t.getTime();return $>V&&h<j};return{events:w,getEvent:P,getEventsByDate:f,getViewEvents:C,getCellOverlappingEvents:M,getEventsInRange:O,createEvent:c,deleteEvent:g,isEventInRange:A}},ze=({config:D,dateUtils:s,emit:o,texts:y,eventsManager:w},T)=>{const{availableViews:P}=D,f=e.ref(D.view&&P[D.view]?D.view:D.defaultView),C=e.ref(D.selectedDate||null),c=e.ref(new Date),g=e.ref(new Date(D.viewDate||c.value));g.value.setHours(0,0,0,0);const M=e.ref(new Date(g));let O=null;const A=e.computed(()=>f.value==="month"?M.value:r.value),i=e.computed(()=>f.value==="month"?new Date(M.value.getFullYear(),M.value.getMonth()+1,0,23,59,59,999):a.value),d=e.computed(()=>f.value==="week"?s.getPreviousFirstDayOfWeek(r.value,D.startWeekOnSunday):f.value==="month"?r.value:A.value),t=e.computed(()=>{if(f.value==="week"){const p=s.addDays(d.value,7);return p.setMilliseconds(-1),p}return f.value==="month"?a.value:i.value}),m=e.computed(()=>{const p=c.value.getTime();if(f.value==="week")return d.value.getTime()<=p&&p<=t.value.getTime();const z=r.value.getTime(),W=a.value.getTime();return z<=p&&p<=W});function h(){c.value=new Date,O=setTimeout(h,60*1e3)}function $(){O=setTimeout(h,(60-new Date().getSeconds())*1e3),h()}const V=e.computed(()=>{if(!D.availableViews[f.value])return 1;let p=D.availableViews[f.value].cols;return D.hasHiddenDays&&["week","month"].includes(f.value)&&(p-=D.hasHiddenDays),p}),j=e.computed(()=>{var p;return((p=D.availableViews[f.value])==null?void 0:p.rows)||1}),l=e.computed(()=>V.value*j.value),r=e.computed(()=>{if(f.value==="month"){let p=M.value.getDay()||7;return D.startWeekOnSunday&&!D.hideWeekdays[7]&&(p+=1),D.viewDayOffset&&(p-=D.viewDayOffset),s.subtractDays(M.value,p-1)}if(f.value==="week"){const p="1234567".split("").filter(W=>!Object.keys(D.hideWeekdays).includes(W));let z=Math.min(...p);return D.startWeekOnSunday&&!D.hideWeekdays[7]&&(z=1),D.viewDayOffset&&(z+=D.viewDayOffset),s.addDays(M.value,z-1)}return M.value}),_=e.computed(()=>{const p=[],z=["days","week","month"].includes(f.value);let W=0;for(let R=0;R<l.value+W;R++)switch(f.value){case"day":case"days":case"week":case"month":{const ne=s.addDays(r.value,R),De=ne.getDay()||7;if(z&&D.hasHiddenDays&&D.hideWeekdays[De]){W++;continue}const ge=new Date(ne);ge.setHours(23,59,59,999),p.push({start:ne,startFormatted:s.formatDate(ne),end:ge});break}case"year":p.push({start:new Date(r.value.getFullYear(),R,1,0,0,0,0),end:new Date(r.value.getFullYear(),R+1,0,23,59,59,999)});break;case"years":p.push({start:new Date(r.value.getFullYear()+R,0,1,0,0,0,0),end:new Date(r.value.getFullYear()+R+1,0,0,23,59,59,999)});break}return p}),a=e.computed(()=>_.value[_.value.length-1].end),B=e.ref("right"),Y=e.computed(()=>{const p=Object.keys(D.availableViews);return p[p.indexOf(f.value)+1]}),X=e.computed(()=>{const p=Object.keys(D.availableViews);return p[p.indexOf(f.value)-1]});function G(p,z,W=!1){if(!z||!z[p])return p+1;const R=z[p];return W&&typeof R=="string"?R.substring(0,3):R}function x(p,z,W){const{monthsArray:R,monthBeforeDay:ne,canTruncate:De,xs:ge}=W,ce=p.getMonth(),de=p.getFullYear(),ue=z.getMonth(),pe=z.getFullYear(),_e=ce!==ue,Jt=de!==pe,ie=De&&(ge||_e),ye=p.getDate(),ve=z.getDate();return Jt?ne?`${G(ce,R,ie)} ${ye}, ${de} - ${G(ue,R,ie)} ${ve}, ${pe}`:`${ye} ${G(ce,R,ie)} ${de} - ${ve} ${G(ue,R,ie)} ${pe}`:_e?ne?`${G(ce,R,ie)} ${ye} - ${G(ue,R,ie)} ${ve}, ${de}`:`${ye} ${G(ce,R,ie)} - ${ve} ${G(ue,R,ie)} ${de}`:ne?`${G(ce,R,ie)} ${ye}-${ve}, ${de}`:`${ye}-${ve} ${G(ce,R,ie)} ${de}`}const J=e.computed(()=>{const{dateFormat:p,months:z,monthsGenitive:W,week:R,truncations:ne}=y,De=D.locale,ge=ne!==!1,ce=p.indexOf("M")<p.indexOf("D"),de=W&&De==="el"?W:z;switch(f.value){case"day":return s.formatDate(r.value,p);case"days":case"week":{const ue={monthsArray:de,monthBeforeDay:ce,canTruncate:ge,xs:D.xs};let pe=x(r.value,a.value,ue);if(f.value==="week"){const _e=s.getWeek(r.value,D.startWeekOnSunday&&!D.hideWeekdays[7]);pe+=` <small>${R} ${_e}</small>`}return pe}case"month":{const ue=`${D.xs&&ge?"MMM":"MMMM"} YYYY`;return s.formatDate(A.value,ue)}case"year":return r.value.getFullYear();case"years":return`${r.value.getFullYear()} - ${i.value.getFullYear()}`}});function K(){switch(M.value=new Date(g.value||c.value),M.value.setHours(0,0,0,0),f.value){case"day":break;case"days":break;case"week":M.value=s.getPreviousFirstDayOfWeek(M.value,D.startWeekOnSunday&&!D.hideWeekdays[7]);break;case"month":M.value=new Date(M.value.getFullYear(),M.value.getMonth(),1,0,0,0,0);break;case"year":M.value=new Date(M.value.getFullYear(),0,1,0,0,0,0);break;case"years":M.value=new Date(M.value.getFullYear()-M.value.getFullYear()%l.value,0,1,0,0,0,0);break}D.ready&&o("view-change",{id:f.value,title:J.value,start:A.value,end:i.value,extendedStart:d.value,extendedEnd:t.value,cellDates:_.value,containsToday:m.value,events:U.value}),c.value=new Date}function se(p){const z=f.value,W=D.availableViews[z];p[z]&&JSON.stringify(p[z])===JSON.stringify(W)||K()}function I(p,z=!0){const W=Object.keys(D.availableViews);f.value!==p&&(W.includes(p)?(B.value=W.indexOf(p)<W.indexOf(f.value)?"left":"right",f.value=p,o("update:view",p),K()):console.warn(`Vue Cal: the \`${p}\` view is not available.`))}function ee(){Y.value?I(Y.value):console.warn("Vue Cal: no broader view is available.")}function Z(){X.value?I(X.value):console.warn("Vue Cal: no narrower view is available.")}function Q(){b(!1)}function n(){b(!0)}function b(p=!0){let z=new Date(g.value);switch(f.value){case"day":case"days":p?z=s.addDays(a.value,1):z=s.subtractDays(r.value,l.value);break;case"week":{p?(z=s.addDays(t.value,1),z.setHours(0,0,0,0)):z=s.subtractDays(d.value,l.value);break}case"month":{const W=p?1:-1;z=new Date(z.getFullYear(),z.getMonth()+W,1,0,0,0,0);break}case"year":{const W=p?1:-1;z=new Date(z.getFullYear()+W,1,1,0,0,0,0);break}case"years":{const W=p?l.value:-l.value;z=new Date(z.getFullYear()+W,1,1,0,0,0,0);break}}F(z)}function v(){const p=new Date;p.setHours(0,0,0,0),F(p)}function F(p,z=!0,W=!1){if(!s.isValid(p))return console.warn("Vue Cal: can't navigate to the given date: invalid date provided to `updateViewDate(date)`.");let[R,ne]=[r.value,a.value];f.value==="month"&&([R,ne]=[A.value,i.value]),(!s.isInRange(p,R,ne)||W)&&(p.setHours(0,0,0,0),B.value=p.getTime()<R.getTime()?"left":"right",g.value=p,z&&o("update:viewDate",p),K())}function q(p,z=!0){if(!s.isValid(p))return console.warn("Vue Cal: can't update the selected date: invalid date provided to `updateSelectedDate(date)`.");const{isValid:W,isSameDate:R}=s;(!C.value||!W(C.value)||!R(p,C.value))&&(p.setHours(0,0,0,0),C.value=p,z&&o("update:selectedDate",p))}function u(p){!p&&!M.value.getDay()?F(s.addDays(M.value,1),!0,!0):(B.value="left",K())}function k(p){p&&D.startWeekOnSunday&&!M.value.getDay()?F(s.addDays(M.value,1),!0,!0):!p&&D.startWeekOnSunday&&M.value.getDay()===1&&F(s.subtractDays(M.value,1),!0,!0)}function E(){console.log("toggling weekdays",D.hideWeekdays)}function S(p){var R;const z=(R=T.value)==null?void 0:R.querySelector(".vuecal__scrollable"),W=p?p*D.timeCellHeight/D.timeStep:0;z==null||z.scrollTo({top:W,behavior:"smooth"})}function N(){const p=new Date;S(p.getHours()*60+p.getMinutes())}function L(){S(0)}const U=e.computed(()=>w.getViewEvents(_.value)),ae=w.createEvent,le=w.deleteEvent;return e.watch(()=>D.view,p=>I(p,!1)),e.watch(()=>D.availableViews,se),e.watch(()=>D.datePicker,()=>I("month",!1)),e.watch(()=>D.viewDate,p=>F(p,!1)),e.watch(()=>D.selectedDate,p=>q(p,!1)),e.watch(()=>D.startWeekOnSunday,p=>u(p)),e.watch(()=>D.hideWeekends,p=>k(p)),e.watch(()=>D.hideWeekdays,E),e.watch(()=>l.value,()=>{l.value>90&&console.warn("Vue Cal: high cell count detected. Performance may degrade when interactions are enabled.")}),e.watch(()=>D.watchRealTime,p=>{p&&D.time?$():O=clearTimeout(O)}),K(),D.time&&D.watchRealTime&&$(),e.onBeforeUnmount(()=>O=clearTimeout(O)),{now:c,id:f,broaderView:Y,narrowerView:X,title:J,viewDate:g,start:A,end:i,extendedStart:d,extendedEnd:t,firstCellDate:r,lastCellDate:a,containsToday:m,selectedDate:C,cellDates:_,cols:V,rows:j,events:U,transitionDirection:B,switch:I,broader:ee,narrower:Z,previous:Q,next:n,navigate:b,goToToday:v,updateViewDate:F,updateSelectedDate:q,scrollToCurrentTime:N,scrollToTime:S,scrollTop:L,createEvent:ae,deleteEvent:le,get isDay(){return f.value==="day"},get isDays(){return f.value==="days"},get isWeek(){return f.value==="week"},get isMonth(){return f.value==="month"},get isYear(){return f.value==="year"},get isYears(){return f.value==="years"}}},he=e.reactive({texts:{...te.texts},dateUtils:Se(te.texts,Me)}),Ne=({props:D,emit:s,attrs:o,vuecalEl:y,uid:w})=>{const T=e.reactive({uid:w,emit:s,texts:{...he.texts},dateUtils:{...he.dateUtils},now:new Date,config:{},eventsManager:{},view:{},dnd:{},touch:{isDraggingCell:!1,isDraggingEvent:!1,isResizingEvent:!1}});return T.dateUtils=Se(Object.assign(te.texts,T.texts),Me),T.config=Ve(T,D,o),T.eventsManager=Pe(T),T.view=ze(T,y),T.dnd=Ye(T),T},Oe=24*60,je={allDayEvents:{type:[Boolean,String],default:!1},clickToNavigate:{type:Boolean,default:void 0},dark:{type:Boolean,default:!1},datePicker:{type:Boolean,default:!1},disableDays:{type:Array,default:()=>[]},editableEvents:{type:[Boolean,Object],default:!1},eventCreateMinDrag:{type:Number,default:15},events:{type:Array,default:()=>[]},eventCount:{type:Boolean,default:!1},eventsOnMonthView:{type:Boolean,default:!1},hideWeekdays:{type:Array,default:()=>[]},hideWeekends:{type:Boolean,default:!1},locale:{type:String,default:""},maxDate:{type:[String,Date],default:""},minDate:{type:[String,Date],default:""},selectedDate:{type:[String,Date],default:""},sm:{type:Boolean,default:!1},specialHours:{type:Object,default:()=>({})},schedules:{type:Array,default:()=>[]},snapToInterval:{type:Number,default:0},startWeekOnSunday:{type:Boolean,default:!1},theme:{type:[String,Boolean],default:"default"},time:{type:Boolean,default:!0},timeAtCursor:{type:Boolean,default:!1},timeCellHeight:{type:Number,default:40},timeFormat:{type:String,default:""},timeFrom:{type:Number,default:0},timeStep:{type:Number,default:60},timeTo:{type:Number,default:Oe},titleBar:{type:Boolean,default:!0},todayButton:{type:Boolean,default:!0},twelveHour:{type:Boolean,default:!1},view:{type:String,default:""},viewDate:{type:[String,Date],default:""},viewDayOffset:{type:Number,default:0},views:{type:[Array,Object]},viewsBar:{type:Boolean,default:!0},watchRealTime:{type:Boolean,default:!1},weekNumbers:{type:Boolean,default:!1},xs:{type:Boolean,default:!1}},Fe={class:"vuecal__header"},Le={key:0,class:"vuecal__views-bar"},He=["onClick","innerHTML"],We={key:1,class:"vuecal__title-bar"},Re={class:"vuecal__transition-wrap"},Ae=["disabled","innerHTML"],Ie={__name:"header",setup(D){const s=e.inject("vuecal"),{view:o,config:y}=s,w=()=>{y.clickToNavigate&&o.broader()},T=e.computed(()=>y.clickToNavigate?{click:w}:{});return(P,f)=>(e.openBlock(),e.createElementBlock("div",Fe,[e.renderSlot(P.$slots,"header",{view:e.unref(o),availableViews:e.unref(y).availableViews,vuecal:e.unref(s)}),P.$slots.header?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.unref(y).viewsBar?(e.openBlock(),e.createElementBlock("div",Le,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y).availableViews,(C,c)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["vuecal__view-button",{"vuecal__view-button--active":e.unref(o).id===c}]),onClick:g=>e.unref(o).switch(c),innerHTML:e.unref(s).texts[c],type:"button"},null,10,He))),256))])):e.createCommentVNode("",!0),e.unref(y).titleBar?(e.openBlock(),e.createElementBlock("nav",We,[e.createElementVNode("button",{class:e.normalizeClass(["vuecal__nav vuecal__nav--prev",{"vuecal__nav--default":!P.$slots["previous-button"]}]),onClick:f[0]||(f[0]=(...C)=>e.unref(o).previous&&e.unref(o).previous(...C)),type:"button"},[e.renderSlot(P.$slots,"previous-button")],2),e.createElementVNode("div",Re,[e.createVNode(e.Transition,{name:`vuecal-slide-fade--${e.unref(o).transitionDirection}`},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("div",{key:e.unref(o).id+e.unref(o).start.getTime()},[P.$slots.title?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(y).clickToNavigate&&e.unref(o).broaderView?"button":"div"),e.mergeProps({key:0,class:"vuecal__title"},e.toHandlers(T.value)),{default:e.withCtx(()=>[e.renderSlot(P.$slots,"title",e.normalizeProps(e.guardReactiveProps(e.unref(o))))]),_:3},16)):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(y).clickToNavigate&&e.unref(o).broaderView?"button":"div"),e.mergeProps({key:1,class:"vuecal__title"},e.toHandlers(T.value),{innerHTML:e.unref(o).title}),null,16,["innerHTML"]))]))]),_:3},8,["name"])]),e.unref(y).todayButton?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[P.$slots["today-button"]?e.renderSlot(P.$slots,"today-button",{key:0,navigate:()=>!e.unref(o).containsToday&&e.unref(o).goToToday(),active:e.unref(o).containsToday}):(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vuecal__nav vuecal__nav--today vuecal__nav--default",{"vuecal__nav--active":e.unref(o).containsToday}]),onClick:f[1]||(f[1]=C=>!e.unref(o).containsToday&&e.unref(o).goToToday()),disabled:!!e.unref(o).containsToday,type:"button",innerHTML:e.unref(s).texts.today},null,10,Ae))],64)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:e.normalizeClass(["vuecal__nav vuecal__nav--next",{"vuecal__nav--default":!P.$slots["next-button"]}]),onClick:f[2]||(f[2]=(...C)=>e.unref(o).next&&e.unref(o).next(...C)),type:"button"},[e.renderSlot(P.$slots,"next-button")],2)])):e.createCommentVNode("",!0)],64))]))}},Xe={key:0,class:"vuecal__headings"},Ge={key:0,class:"vuecal__weekdays-headings"},qe=["onClick"],Ue={class:"vuecal__weekday-day"},Ze={key:0,class:"vuecal__weekday-date"},Je={key:1,class:"vuecal__schedules-headings w-flex grow"},Ke=["innerHTML"],Qe={__name:"headings-bar",setup(D){const s=e.inject("vuecal"),{view:o,config:y,dateUtils:w}=s,T=e.computed(()=>y.xs?"day-xs":y.sm||o.isDays||o.isMonth?"day-sm":"day"),P=e.computed(()=>(o.isDay||o.isDays||o.isWeek||o.isMonth)&&!(o.isDay&&!y.schedules)),f=e.computed(()=>o.cellDates.slice(0,o.cols).map(({start:c})=>({id:we[c.getDay()],date:c,dateNumber:c.getDate(),day:w.formatDate(c,"dddd"),"day-sm":w.formatDate(c,"ddd"),"day-xs":w.formatDate(c,"dd"),isToday:w.isToday(c)}))),C={click:c=>{(o.isDays||o.isWeek)&&o.updateSelectedDate(c)}};return(c,g)=>P.value?(e.openBlock(),e.createElementBlock("div",Xe,[e.unref(o).isDay?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ge,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(M,O)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vuecal__weekday",{"vuecal__weekday--today":M.isToday}]),key:O,onClick:A=>C.click(M.date)},[e.renderSlot(c.$slots,"weekday-heading",{label:M[T.value],id:M.id,date:M.date},()=>[e.createElementVNode("span",Ue,e.toDisplayString(M[T.value]),1),e.unref(o).isMonth?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("strong",Ze,e.toDisplayString(M.dateNumber),1))])],10,qe))),128))])),e.unref(y).schedules?(e.openBlock(),e.createElementBlock("div",Je,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(M,O)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:O},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y).schedules,(A,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:i},[c.$slots["schedule-heading"]?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["vuecal__schedule vuecal__schedule--heading",A.class])},[e.renderSlot(c.$slots,"schedule-heading",{schedule:A,view:e.unref(o)})],2)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["vuecal__schedule vuecal__schedule--heading",A.class]),innerHTML:A.label},null,10,Ke))],64))),128))],64))),128))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}},xe={class:"vuecal__time-column"},et={__name:"time-column",setup(D){const s=e.inject("vuecal"),{config:o,texts:y}=s,w=e.computed(()=>{const T=[];for(let f=o.timeFrom;f<o.timeTo;f+=o.timeStep){const C=~~(f/60),c=f%60,g=y[f<720?"am":"pm"];T.push({minutesSum:f,hours:C,minutes:c,formatted12:`${C%12?C%12:12}${c?":"+c.toString().padStart(2,0):""}${g}`,formatted24:`${C.toString().padStart(2,0)}:${c.toString().padStart(2,0)}`})}return T});return(T,P)=>(e.openBlock(),e.createElementBlock("div",xe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,(f,C)=>(e.openBlock(),e.createElementBlock("div",{class:"vuecal__time-cell",key:C},[e.renderSlot(T.$slots,"time-cell",{index:C,minutes:f.minutes,hours:f.hours,minutesSum:f.minutesSum,format12:f.formatted12,format24:f.formatted24},()=>[e.createElementVNode("label",null,e.toDisplayString(e.unref(o).twelveHour?f.formatted12:f.formatted24),1)])]))),128))]))}},tt=["draggable"],at={class:"vuecal__event-details"},nt={class:"vuecal__event-title"},st={key:0,class:"vuecal__event-time"},lt=["innerHTML"],Ee={__name:"event",props:{event:{type:Object,required:!0}},emits:["event-drag-start","event-drag-end","event-resize-start","event-resize-end"],setup(D,{emit:s}){const{config:o,view:y,dnd:w,touch:T,dateUtils:P}=e.inject("vuecal"),f=D,C=e.ref(null),c=e.reactive(f.event),g=e.reactive({dragging:!1,resizing:!1,fromResizer:!1,holding:!1,holdTimer:null,startX:0,startY:0,startPercentageX:0,startPercentageY:0,moveX:0,moveY:0,movePercentageX:0,movePercentageY:0,resizeStartDate:null,resizingOriginalEvent:null,resizingLastAcceptedEvent:null,cellEl:null,schedule:null}),M=e.computed(()=>o.editableEvents.drag&&c.draggable!==!1&&!c.background),O=e.computed(()=>o.time&&o.editableEvents.resize&&c.resizable!==!1&&!c.background);e.computed(()=>o.editableEvents.delete&&c.deletable!==!1&&!c.background);const A=e.computed(()=>{var l,r,_;return{[`vuecal__event--${c._.id}`]:!0,[c.class]:!!c.class,"vuecal__event--recurring":!!c.recurring,"vuecal__event--background":!!c.background,"vuecal__event--multiday":!!((l=c._)!=null&&l.multiday),"vuecal__event--cut-top":((r=c._)==null?void 0:r.startMinutes)<o.timeFrom,"vuecal__event--cut-bottom":((_=c._)==null?void 0:_.endMinutes)>o.timeTo||c.end.getDate()!==c.start.getDate(),"vuecal__event--dragging":!c._.draggingGhost&&c._.dragging,"vuecal__event--dragging-ghost":c._.draggingGhost,"vuecal__event--resizing":g.resizing}}),i=e.computed(()=>{const l=(y.isDay||y.isDays||y.isWeek)&&o.time;if(!l&&!c.backgroundColor&&!c.color)return!1;const r={backgroundColor:c.backgroundColor||null,color:c.color||null};if(l){const _=Math.max(o.timeFrom,c._.startMinutes),a=Math.min(o.timeTo,c._.endMinutes),B=me(_,o),Y=me(a,o)-B;r.top=`${B}%`,r.height=`${Y}%`}return r}),d=e.computed(()=>{const l={...o.eventListeners.event};Object.entries(l).forEach(([a,B])=>{["resize-end"].includes(a)||(l[a]=Y=>{Y.type!=="drop"&&B(Y.type?{e:Y,event:c}:Y)})});const r={...l};l.touchstart=a=>{var B;a.stopPropagation(),t(a),(B=r.touchstart)==null||B.call(r,{e:a,event:c})},l.mousedown=a=>{var B;a.stopPropagation(),t(a),(B=r.mousedown)==null||B.call(r,{e:a,event:c})};let _=null;return l.click=a=>{var B;(B=r.click)==null||B.call(r,{e:a,event:c}),_?_=clearTimeout(_):_=setTimeout(()=>{var Y;_=null,(Y=r["delayed-click"])==null||Y.call(r,{e:a,event:c})},400)},l.dblclick=a=>{r.dblclick?r.dblclick({e:a,event:c}):c.delete(1)},l}),t=l=>{var a,B,Y;const r=((a=l.touches)==null?void 0:a[0])||l;g.fromResizer=r.target.matches(".vuecal__event-resizer, .vuecal__event-resizer *");const _=C.value.getBoundingClientRect();g.startX=(((B=l.touches)==null?void 0:B[0])||l).clientX-_.left,g.startY=(((Y=l.touches)==null?void 0:Y[0])||l).clientY-_.top,g.startPercentageX=g.startX*100/_.width,g.startPercentageY=g.startY*100/_.height,g.cellEl=C.value.closest(".vuecal__cell"),g.resizeStartDate=c.start,j(l.type==="touchstart"?"touchmove":"mousemove",m),j(l.type==="touchstart"?"touchend":"mouseup",h,{once:!0}),g.holdTimer=setTimeout(()=>{var X,G;g.holding=!0,(G=(X=d.value).hold)==null||G.call(X,{e:l,event:c})},1e3)},m=async l=>{var _,a,B,Y;const r=((_=l.touches)==null?void 0:_[0])||l;if(g.fromResizer&&!g.resizing&&(g.resizing=!0,g.resizingOriginalEvent={...c,_:{...c._}},T.isResizingEvent=!0,(B=(a=d.value).resizeStart)==null||B.call(a,{e:l,event:c})),g.holdTimer=clearTimeout(g.holdTimer),g.holding=!1,g.cellEl){const{top:X,left:G,width:x,height:J}=g.cellEl.getBoundingClientRect();g.moveX=r.clientX-G,g.moveY=r.clientY-X,g.movePercentageX=g.moveX*100/x,g.movePercentageY=g.moveY*100/J}if(g.fromResizer){const{newStart:X,newEnd:G}=$(c);let x=!0;const{resize:J}=(Y=o.eventListeners)==null?void 0:Y.event;J&&(x=await J({e:l,event:{...c,start:X,end:G},overlaps:c.getOverlappingEvents({start:X,end:G})})),x!==!1?(c.start=X,c.end=G,g.resizingLastAcceptedEvent&&(g.resizingLastAcceptedEvent=null)):J&&(g.resizingLastAcceptedEvent={...c,_:{...c._}})}},h=async l=>{var r,_;if(g.holdTimer=clearTimeout(g.holdTimer),g.holding=!1,g.resizing){const{newStart:a,newEnd:B}=$(c);let Y=!0;const X=d.value["resize-end"];X&&(Y=await X({e:l,event:c,original:g.resizingOriginalEvent,overlaps:c.getOverlappingEvents({start:a,end:B})})),c.start=Y===!1?(g.resizingLastAcceptedEvent||g.resizingOriginalEvent).start:((r=g.resizingLastAcceptedEvent)==null?void 0:r.start)||a,c.end=Y===!1?(g.resizingLastAcceptedEvent||g.resizingOriginalEvent).end:((_=g.resizingLastAcceptedEvent)==null?void 0:_.end)||B,c._.duration<1&&(c.start=g.resizingOriginalEvent.start,c.end=g.resizingOriginalEvent.end),T.isResizingEvent=!1}document.removeEventListener(l.type==="touchend"?"touchmove":"mousemove",m),g.resizing=!1,g.fromResizer=!1,g.dragging=!1,g.startX=0,g.startY=0,g.moveX=0,g.moveY=0,g.startPercentageX=0,g.startPercentageY=0,g.movePercentageX=0,g.movePercentageY=0,g.cellEl=null,g.resizeStartDate=null,g.resizingOriginalEvent=null,g.resizingLastAcceptedEvent=null,g.schedule=null},$=l=>{const r=new Date(l.start.getFullYear(),l.start.getMonth(),l.start.getDate());new Date(r).setDate(r.getDate()+1);let a=fe(g.movePercentageY,o);if(a=Math.max(0,Math.min(a,24*60)),o.snapToInterval){const X=a+o.snapToInterval/2;a=X-X%o.snapToInterval}let B=l.start,Y=new Date(r.getTime()+a*6e4);return Y<g.resizeStartDate&&(B=Y,Y=g.resizeStartDate),{newStart:B,newEnd:Y}};e.onMounted(()=>c._.register(C.value));const V=[],j=(l,r,_)=>{document.addEventListener(l,r,_),V.push({event:l,handler:r,options:_})};return e.onBeforeUnmount(()=>{c._.unregister(),V.forEach(({event:l,handler:r,options:_})=>{document.removeEventListener(l,r,_)})}),(l,r)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({class:"vuecal__event"},e.toHandlers(d.value,!0),{ref_key:"eventEl",ref:C,class:A.value,style:i.value,draggable:M.value?"true":void 0,onDragstart:r[2]||(r[2]=_=>M.value&&e.unref(w).eventDragStart(_,c)),onDragend:r[3]||(r[3]=_=>M.value&&e.unref(w).eventDragEnd(_,c))}),[e.createElementVNode("div",at,[e.renderSlot(l.$slots,"event",{event:c},()=>[e.createElementVNode("div",nt,e.toDisplayString(c.title),1),e.unref(o).time?(e.openBlock(),e.createElementBlock("div",st,e.toDisplayString(c._[`startTimeFormatted${e.unref(o).twelveHour?12:24}`])+`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue-cal",
3
- "version": "5.0.1-rc.10",
3
+ "version": "5.0.1-rc.11",
4
4
  "description": "A Vue JS full calendar, no dependency, no BS. :metal:",
5
5
  "author": "Antoni Andre <antoniandre.web@gmail.com>",
6
6
  "homepage": "https://antoniandre.github.io/vue-cal",