You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

vue-datetime3

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue-datetime3 - npm Package Compare versions

Comparing version

to
1.0.11

dist/composables/KeyPress.d.ts

236

dist/DateTime.vue.d.ts

@@ -1,43 +0,61 @@

import { PropType } from 'vue';
import type { Actions } from './util';
import type { PropType as __PropType } from 'vue';
import { WeekdayNumbers } from 'luxon';
import { FlowStep, FlowType } from './flow/namespace';
import type { Actions } from './namespace';
import { calculateWeekStart } from './utils/datetime';
declare const _sfc_main: import("vue").DefineComponent<{
modelValue: {
type: StringConstructor;
type: __PropType<string | undefined>;
required: false;
default: string;
};
valueZone: {
type: StringConstructor;
type: __PropType<string | undefined>;
required: false;
default: string;
};
inputId: {
type: StringConstructor;
default: null;
type: __PropType<string | undefined>;
required: false;
default: undefined;
};
inputClass: {
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
type: __PropType<string | object | any[] | undefined>;
required: false;
default: string;
};
inputStyle: {
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
type: __PropType<string | object | any[] | undefined>;
required: false;
default: string;
};
hiddenName: {
type: StringConstructor;
type: __PropType<string | undefined>;
required: false;
default: string;
};
zone: {
type: StringConstructor;
type: __PropType<string | undefined>;
required: false;
default: string;
};
format: {
type: (StringConstructor | ObjectConstructor)[];
default: null;
type: __PropType<string | Object | undefined>;
required: false;
default: undefined;
};
type: {
type: StringConstructor;
type: __PropType<FlowType | undefined>;
required: false;
default: string;
};
color: {
type: __PropType<string | undefined>;
required: false;
default: string;
};
phrases: {
type: PropType<Actions>;
default(): {
type: __PropType<Actions | undefined>;
required: false;
default: () => {
cancel: string;

@@ -48,85 +66,121 @@ ok: string;

use12Hour: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
hourStep: {
type: NumberConstructor;
type: __PropType<number | undefined>;
required: false;
default: number;
};
minuteStep: {
type: NumberConstructor;
type: __PropType<number | undefined>;
required: false;
default: number;
};
minDatetime: {
type: StringConstructor;
default: null;
type: __PropType<string | undefined>;
required: false;
default: undefined;
};
maxDatetime: {
type: StringConstructor;
default: null;
type: __PropType<string | undefined>;
required: false;
default: undefined;
};
auto: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
weekStart: {
type: NumberConstructor;
default(): 1 | 2 | 3 | 4 | 5 | 6 | 7;
type: __PropType<WeekdayNumbers | undefined>;
required: false;
default: typeof calculateWeekStart;
};
flow: {
type: ArrayConstructor;
default: null;
type: __PropType<FlowStep[] | undefined>;
required: false;
default: undefined;
};
title: {
type: StringConstructor;
type: __PropType<string | undefined>;
required: false;
default: string;
};
hideBackdrop: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
backdropClick: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
fixedDate: {
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
fixedTime: {
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("input" | "close" | "update:modelValue")[], "input" | "close" | "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
modelValue: {
type: StringConstructor;
type: __PropType<string | undefined>;
required: false;
default: string;
};
valueZone: {
type: StringConstructor;
type: __PropType<string | undefined>;
required: false;
default: string;
};
inputId: {
type: StringConstructor;
default: null;
type: __PropType<string | undefined>;
required: false;
default: undefined;
};
inputClass: {
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
type: __PropType<string | object | any[] | undefined>;
required: false;
default: string;
};
inputStyle: {
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
type: __PropType<string | object | any[] | undefined>;
required: false;
default: string;
};
hiddenName: {
type: StringConstructor;
type: __PropType<string | undefined>;
required: false;
default: string;
};
zone: {
type: StringConstructor;
type: __PropType<string | undefined>;
required: false;
default: string;
};
format: {
type: (StringConstructor | ObjectConstructor)[];
default: null;
type: __PropType<string | Object | undefined>;
required: false;
default: undefined;
};
type: {
type: StringConstructor;
type: __PropType<FlowType | undefined>;
required: false;
default: string;
};
color: {
type: __PropType<string | undefined>;
required: false;
default: string;
};
phrases: {
type: PropType<Actions>;
default(): {
type: __PropType<Actions | undefined>;
required: false;
default: () => {
cancel: string;

@@ -137,45 +191,66 @@ ok: string;

use12Hour: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
hourStep: {
type: NumberConstructor;
type: __PropType<number | undefined>;
required: false;
default: number;
};
minuteStep: {
type: NumberConstructor;
type: __PropType<number | undefined>;
required: false;
default: number;
};
minDatetime: {
type: StringConstructor;
default: null;
type: __PropType<string | undefined>;
required: false;
default: undefined;
};
maxDatetime: {
type: StringConstructor;
default: null;
type: __PropType<string | undefined>;
required: false;
default: undefined;
};
auto: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
weekStart: {
type: NumberConstructor;
default(): 1 | 2 | 3 | 4 | 5 | 6 | 7;
type: __PropType<WeekdayNumbers | undefined>;
required: false;
default: typeof calculateWeekStart;
};
flow: {
type: ArrayConstructor;
default: null;
type: __PropType<FlowStep[] | undefined>;
required: false;
default: undefined;
};
title: {
type: StringConstructor;
type: __PropType<string | undefined>;
required: false;
default: string;
};
hideBackdrop: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
backdropClick: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
fixedDate: {
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
fixedTime: {
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
}>> & {

@@ -186,24 +261,27 @@ onInput?: ((...args: any[]) => any) | undefined;

}, {
modelValue: string;
valueZone: string;
inputId: string;
inputClass: string | unknown[] | Record<string, any>;
inputStyle: string | unknown[] | Record<string, any>;
hiddenName: string;
zone: string;
format: string | Record<string, any>;
type: string;
phrases: Actions;
use12Hour: boolean;
hourStep: number;
minuteStep: number;
minDatetime: string;
maxDatetime: string;
auto: boolean;
weekStart: number;
flow: unknown[];
title: string;
hideBackdrop: boolean;
backdropClick: boolean;
modelValue: string | undefined;
valueZone: string | undefined;
inputId: string | undefined;
inputClass: string | object | any[] | undefined;
inputStyle: string | object | any[] | undefined;
hiddenName: string | undefined;
zone: string | undefined;
format: string | Object | undefined;
type: FlowType | undefined;
color: string | undefined;
phrases: Actions | undefined;
use12Hour: boolean | undefined;
hourStep: number | undefined;
minuteStep: number | undefined;
minDatetime: string | undefined;
maxDatetime: string | undefined;
auto: boolean | undefined;
weekStart: WeekdayNumbers | undefined;
flow: FlowStep[] | undefined;
title: string | undefined;
hideBackdrop: boolean | undefined;
backdropClick: boolean | undefined;
fixedDate: boolean | undefined;
fixedTime: boolean | undefined;
}>;
export default _sfc_main;

@@ -1,30 +0,35 @@

import { DateTime } from 'luxon';
import { PropType } from 'vue';
import type { PropType as __PropType } from 'vue';
import { DateTime, WeekdayNumbers } from 'luxon';
declare const _sfc_main: import("vue").DefineComponent<{
year: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
month: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
day: {
type: NumberConstructor;
default: null;
type: __PropType<number | undefined>;
required: false;
default: undefined;
};
disabled: {
type: ArrayConstructor;
type: __PropType<number[] | undefined>;
required: false;
default: () => never[];
};
minDate: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
default: undefined;
};
maxDate: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
default: undefined;
};
weekStart: {
type: NumberConstructor;
type: __PropType<WeekdayNumbers | undefined>;
required: false;
default: number;

@@ -34,27 +39,32 @@ };

year: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
month: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
day: {
type: NumberConstructor;
default: null;
type: __PropType<number | undefined>;
required: false;
default: undefined;
};
disabled: {
type: ArrayConstructor;
type: __PropType<number[] | undefined>;
required: false;
default: () => never[];
};
minDate: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
default: undefined;
};
maxDate: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
default: undefined;
};
weekStart: {
type: NumberConstructor;
type: __PropType<WeekdayNumbers | undefined>;
required: false;
default: number;

@@ -65,8 +75,8 @@ };

}, {
weekStart: number;
day: number;
disabled: unknown[];
minDate: DateTime;
maxDate: DateTime;
weekStart: WeekdayNumbers | undefined;
day: number | undefined;
disabled: number[] | undefined;
minDate: DateTime | undefined;
maxDate: DateTime | undefined;
}>;
export default _sfc_main;

@@ -0,43 +1,40 @@

import type { PropType as __PropType } from 'vue';
import { DateTime } from 'luxon';
import { PropType } from 'vue';
declare const _sfc_main: import("vue").DefineComponent<{
year: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
month: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
minDate: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
};
maxDate: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
};
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "change"[], "change", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
year: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
month: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
minDate: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
};
maxDate: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
};
}>> & {
onChange?: ((...args: any[]) => any) | undefined;
}, {
minDate: DateTime;
maxDate: DateTime;
}>;
}, {}>;
export default _sfc_main;

@@ -1,12 +0,14 @@

import { DateTime } from 'luxon';
import { PropType } from 'vue';
import type { Actions } from './util';
import type { PropType as __PropType } from 'vue';
import { DateTime, WeekdayNumbers } from 'luxon';
import { FlowStep, FlowType } from './flow/namespace';
import type { Actions } from './namespace';
declare const _sfc_main: import("vue").DefineComponent<{
datetime: {
type: PropType<DateTime>;
type: __PropType<DateTime>;
required: true;
};
phrases: {
type: PropType<Actions>;
default(): {
type: __PropType<Actions | undefined>;
required: false;
default: () => {
cancel: string;

@@ -17,39 +19,49 @@ ok: string;

type: {
type: StringConstructor;
type: __PropType<FlowType | undefined>;
required: false;
default: string;
};
use12Hour: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
hourStep: {
type: NumberConstructor;
type: __PropType<number | undefined>;
required: false;
default: number;
};
minuteStep: {
type: NumberConstructor;
type: __PropType<number | undefined>;
required: false;
default: number;
};
minDatetime: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
default: undefined;
};
maxDatetime: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
default: undefined;
};
auto: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
weekStart: {
type: NumberConstructor;
type: __PropType<WeekdayNumbers | undefined>;
required: false;
default: number;
};
flow: {
type: ArrayConstructor;
default: null;
type: __PropType<FlowStep[] | undefined>;
required: false;
default: undefined;
};
title: {
type: StringConstructor;
type: __PropType<string | undefined>;
required: false;
default: string;

@@ -59,8 +71,9 @@ };

datetime: {
type: PropType<DateTime>;
type: __PropType<DateTime>;
required: true;
};
phrases: {
type: PropType<Actions>;
default(): {
type: __PropType<Actions | undefined>;
required: false;
default: () => {
cancel: string;

@@ -71,39 +84,49 @@ ok: string;

type: {
type: StringConstructor;
type: __PropType<FlowType | undefined>;
required: false;
default: string;
};
use12Hour: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
hourStep: {
type: NumberConstructor;
type: __PropType<number | undefined>;
required: false;
default: number;
};
minuteStep: {
type: NumberConstructor;
type: __PropType<number | undefined>;
required: false;
default: number;
};
minDatetime: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
default: undefined;
};
maxDatetime: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
default: undefined;
};
auto: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
weekStart: {
type: NumberConstructor;
type: __PropType<WeekdayNumbers | undefined>;
required: false;
default: number;
};
flow: {
type: ArrayConstructor;
default: null;
type: __PropType<FlowStep[] | undefined>;
required: false;
default: undefined;
};
title: {
type: StringConstructor;
type: __PropType<string | undefined>;
required: false;
default: string;

@@ -115,14 +138,14 @@ };

}, {
type: string;
phrases: Actions;
use12Hour: boolean;
hourStep: number;
minuteStep: number;
minDatetime: DateTime;
maxDatetime: DateTime;
auto: boolean;
weekStart: number;
flow: unknown[];
title: string;
type: FlowType | undefined;
phrases: Actions | undefined;
use12Hour: boolean | undefined;
hourStep: number | undefined;
minuteStep: number | undefined;
minDatetime: DateTime | undefined;
maxDatetime: DateTime | undefined;
auto: boolean | undefined;
weekStart: WeekdayNumbers | undefined;
flow: FlowStep[] | undefined;
title: string | undefined;
}>;
export default _sfc_main;

@@ -0,58 +1,69 @@

import type { PropType as __PropType } from 'vue';
declare const _sfc_main: import("vue").DefineComponent<{
hour: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
minute: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
use12Hour: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
hourStep: {
type: NumberConstructor;
type: __PropType<number | undefined>;
required: false;
default: number;
};
minuteStep: {
type: NumberConstructor;
type: __PropType<number | undefined>;
required: false;
default: number;
};
minTime: {
type: StringConstructor;
default: null;
type: __PropType<string | undefined>;
required: false;
default: undefined;
};
maxTime: {
type: StringConstructor;
default: null;
type: __PropType<string | undefined>;
required: false;
default: undefined;
};
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "change"[], "change", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
hour: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
minute: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
use12Hour: {
type: BooleanConstructor;
type: __PropType<boolean | undefined>;
required: false;
default: boolean;
};
hourStep: {
type: NumberConstructor;
type: __PropType<number | undefined>;
required: false;
default: number;
};
minuteStep: {
type: NumberConstructor;
type: __PropType<number | undefined>;
required: false;
default: number;
};
minTime: {
type: StringConstructor;
default: null;
type: __PropType<string | undefined>;
required: false;
default: undefined;
};
maxTime: {
type: StringConstructor;
default: null;
type: __PropType<string | undefined>;
required: false;
default: undefined;
};

@@ -62,8 +73,8 @@ }>> & {

}, {
use12Hour: boolean;
hourStep: number;
minuteStep: number;
minTime: string;
maxTime: string;
use12Hour: boolean | undefined;
hourStep: number | undefined;
minuteStep: number | undefined;
minTime: string | undefined;
maxTime: string | undefined;
}>;
export default _sfc_main;

@@ -0,35 +1,32 @@

import type { PropType as __PropType } from 'vue';
import { DateTime } from 'luxon';
import { PropType } from 'vue';
declare const _sfc_main: import("vue").DefineComponent<{
year: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
minDate: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
};
maxDate: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
};
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "change"[], "change", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
year: {
type: NumberConstructor;
type: __PropType<number>;
required: true;
};
minDate: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
};
maxDate: {
type: PropType<DateTime>;
default: null;
type: __PropType<DateTime | undefined>;
required: false;
};
}>> & {
onChange?: ((...args: any[]) => any) | undefined;
}, {
minDate: DateTime;
maxDate: DateTime;
}>;
}, {}>;
export default _sfc_main;

@@ -1,1 +0,1 @@

(function(u,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue"),require("luxon"),require("weekstart")):typeof define=="function"&&define.amd?define(["exports","vue","luxon","weekstart"],e):(u=typeof globalThis!="undefined"?globalThis:u||self,e((u["vue-datetime"]=u["vue-datetime"]||{},u["vue-datetime"]["[name]"]={}),u.vue,u.luxon,u.weekstart))})(this,function(u,e,c,Z){"use strict";var $e=Object.defineProperty,Ie=Object.defineProperties;var Le=Object.getOwnPropertyDescriptors;var P=Object.getOwnPropertySymbols;var ze=Object.prototype.hasOwnProperty,je=Object.prototype.propertyIsEnumerable;var V=(u,e,c)=>e in u?$e(u,e,{enumerable:!0,configurable:!0,writable:!0,value:c}):u[e]=c,A=(u,e)=>{for(var c in e||(e={}))ze.call(e,c)&&V(u,c,e[c]);if(P)for(var c of P(e))je.call(e,c)&&V(u,c,e[c]);return u},q=(u,e)=>Ie(u,Le(e));var w=(u,e,c)=>(V(u,typeof e!="symbol"?e+"":e,c),c);function U(a){e.onMounted(()=>{document.addEventListener("keydown",a)}),e.onUnmounted(()=>{document.removeEventListener("keydown",a)})}class x{constructor(n=[],t=""){w(this,"flow");w(this,"endStatus");w(this,"diversionNext");this.flow=n,this.endStatus=t,this.diversionNext=null}step(n){return this.flow.length>n?this.flow[n]:this.endStatus}first(){return this.step(0)}next(n){if(this.diversionNext){const t=this.diversionNext;return this.diversionNext=null,t}return this.step(this.flow.indexOf(n)+1)}diversion(n){this.diversionNext=n}}function E(a){return a.charAt(0).toUpperCase()+a.slice(1)}function N(a){const n=c.DateTime.fromISO(a).toUTC();return n.isValid?n:null}function T(a){return a.startOf("day")}function Y(a,n,t,l,i){const d=c.DateTime.fromObject({year:t,month:l,day:i},{zone:"UTC"}),r=a?T(a.setZone("UTC",{keepLocalTime:!0})):null,m=n?T(n.setZone("UTC",{keepLocalTime:!0})):null;return!!(r&&d<=r||m&&d>=m)}function G(a,n,t){var m,p;const l=c.DateTime.local(a,n,1);let i=l.weekday-t;const d=(m=l.daysInMonth)!=null?m:0;i<0&&(i+=7);let r=(t-l.weekday-d)%7;return r<0&&(r+=7),(p=[...Array(d+i+r)].map((y,f)=>f+1<=i||f>=i+d?null:f+1-i))!=null?p:[]}function W(a,n,t,l){var i;return a&&a>c.DateTime.utc(t,l,(i=c.DateTime.utc(t,l).daysInMonth)!=null?i:0)||n&&n<c.DateTime.utc(t,l,1)}function K(a,n,t){const l=a?a.year:null,i=n?n.year:null;return!!l&&t<l||!!i&&t>i}function M(a,n,t){return a!==null&&t<a||n!==null&&t>n}function R(a){let n=a;--n<0&&(n=6);let t=c.Info.weekdays("short").map(l=>E(l));return t=t.concat(t.splice(0,n)),t}function $(){return[...c.Info.months().map(a=>E(a))]}function J(a){return[...Array(Math.ceil(24/a))].map((n,t)=>t*a)}function Q(a){return[...Array(Math.ceil(60/a))].map((n,t)=>t*a)}function X(a){return[...Array(201)].map((n,t)=>a-100+t)}function I(a){return String(a).padStart(2,"0")}function ee(a){return new x(a,"end")}function te(a){let n;switch(a){case"datetime":n=["date","time"];break;case"time":n=["time"];break;default:n=["date"]}return new x(n,"end")}function ae(){const a=Z.getWeekStartByLocale(c.Settings.defaultLocale);return a===0?7:a}const ne={class:"vdatetime-calendar"},ie={class:"vdatetime-calendar__navigation"},oe=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 61.3 102.8"},[e.createElementVNode("path",{fill:"none",stroke:"#444","stroke-width":"14","stroke-miterlimit":"10",d:"M56.3 97.8L9.9 51.4 56.3 5"})],-1)],le={class:"vdatetime-calendar__current--month"},re=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 61.3 102.8"},[e.createElementVNode("path",{fill:"none",stroke:"#444","stroke-width":"14","stroke-miterlimit":"10",d:"M56.3 97.8L9.9 51.4 56.3 5"})],-1)],se={class:"vdatetime-calendar__month"},ce=["onClick"],me=e.defineComponent({__name:"DatetimeCalendar",props:{year:{type:Number,required:!0},month:{type:Number,required:!0},day:{type:Number,default:null},disabled:{type:Array,default:()=>[]},minDate:{type:Object,default:null},maxDate:{type:Object,default:null},weekStart:{type:Number,default:1}},emits:["change"],setup(a,{emit:n}){const t=a,l=e.ref(c.DateTime.fromObject({year:t.year.valueOf(),month:t.month.valueOf()},{zone:"UTC"})),i=R(t.weekStart.valueOf()),d=$(),r=e.computed(()=>l.value.year),m=e.computed(()=>l.value.month),p=e.computed(()=>d[m.value-1]),y=e.computed(()=>G(r.value,m.value,t.weekStart.valueOf()).map(k=>{var D;return{number:k!=null?k:void 0,selected:!!k&&t.year.valueOf()===r.value&&t.month.valueOf()===m.value&&((D=t.day)==null?void 0:D.valueOf())===k,disabled:!k||Y(t.minDate,t.maxDate,r.value,m.value,k)}})),f=k=>{k.disabled||n("change",r.value,m.value,k.number)},h=()=>{l.value=l.value.minus({month:1})},b=()=>{l.value=l.value.plus({month:1})};return(k,D)=>(e.openBlock(),e.createElementBlock("div",ne,[e.createElementVNode("div",ie,[e.createElementVNode("div",{class:"vdatetime-calendar__navigation--previous",onClick:h},oe),e.createElementVNode("div",le,e.toDisplayString(e.unref(p))+" "+e.toDisplayString(e.unref(r)),1),e.createElementVNode("div",{class:"vdatetime-calendar__navigation--next",onClick:b},re)]),e.createElementVNode("div",se,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),s=>(e.openBlock(),e.createElementBlock("div",{key:s,class:"vdatetime-calendar__month__weekday"},e.toDisplayString(s),1))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),s=>(e.openBlock(),e.createElementBlock("div",{key:s.number,class:e.normalizeClass(["vdatetime-calendar__month__day",{"vdatetime-calendar__month__day--selected":s.selected,"vdatetime-calendar__month__day--disabled":s.disabled}]),onClick:g=>f(s)},[e.createElementVNode("span",null,[e.createElementVNode("span",null,e.toDisplayString(s.number),1)])],10,ce))),128))])]))}}),Pe="";function B(a,n){const t=()=>{var l;if(a.value){const i=(l=a.value)==null?void 0:l.querySelector(n);a.value.scrollTo({top:i?i.offsetTop-250:0,behavior:"auto"})}};return e.onMounted(t),e.onUpdated(t),t}const de={class:"vdatetime-month-picker"},ue=["onClick"],pe=e.defineComponent({__name:"DatetimeMonthPicker",props:{year:{type:Number,required:!0},month:{type:Number,required:!0},minDate:{type:Object,default:null},maxDate:{type:Object,default:null}},emits:["change"],setup(a,{emit:n}){const t=a,l=e.computed(()=>$().map((r,m)=>({number:++m,label:r,selected:m===t.month.valueOf(),disabled:!(m+1)||W(t.minDate,t.maxDate,t.year.valueOf(),m)}))),i=e.ref(null);B(i,".vdatetime-month-picker__item--selected");const d=r=>{r.disabled||n("change",r.number,10)};return(r,m)=>(e.openBlock(),e.createElementBlock("div",de,[e.createElementVNode("div",{ref_key:"monthList",ref:i,class:"vdatetime-month-picker__list vdatetime-month-picker__list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),p=>(e.openBlock(),e.createElementBlock("div",{key:p.number,class:e.normalizeClass(["vdatetime-month-picker__item",{"vdatetime-month-picker__item--selected":p.selected,"vdatetime-month-picker__item--disabled":p.disabled}]),onClick:y=>d(p)},e.toDisplayString(p.label),11,ue))),128))],512)]))}}),Ae="",fe=["onClick"],ke=["onClick"],_e={key:0,ref:"suffixList",class:"vdatetime-time-picker__list vdatetime-time-picker__list--suffix"},ye=e.defineComponent({__name:"DatetimeTimePicker",props:{hour:{type:Number,required:!0},minute:{type:Number,required:!0},use12Hour:{type:Boolean,default:!1},hourStep:{type:Number,default:1},minuteStep:{type:Number,default:1},minTime:{type:String,default:null},maxTime:{type:String,default:null}},emits:["change"],setup(a,{emit:n}){const t=a,l=e.computed(()=>t.minTime?parseInt(t.minTime.split(":")[0],10):null),i=e.computed(()=>t.maxTime?parseInt(t.maxTime.split(":")[0],10):null),d=e.computed(()=>J(t.hourStep).filter(s=>t.use12Hour?t.hour<12?s<12:s>=12:!0).map(s=>({number:s,label:I(s),selected:s===t.hour.valueOf(),disabled:M(l.value,i.value,s)}))),r=e.computed(()=>t.minTime&&l.value===t.hour.valueOf()?parseInt(t.minTime.split(":")[1],10):null),m=e.computed(()=>t.maxTime&&i.value===t.hour.valueOf()?parseInt(t.maxTime.split(":")[1],10):null),p=e.computed(()=>Q(t.minuteStep).map(s=>({number:s,label:I(s),selected:s===t.minute.valueOf(),disabled:M(r.value,m.value,s)}))),y=e.ref(null),f=e.ref(null);B(y,".vdatetime-time-picker__item--selected"),B(f,".vdatetime-time-picker__item--selected");const h=s=>{s.disabled||n("change",{hour:s.number})},b=s=>{s.disabled||n("change",{minute:s.number})},k=s=>{s==="am"&&t.hour>=12&&n("change",{hour:t.hour-12,suffixTouched:!0}),s==="pm"&&t.hour<12&&n("change",{hour:t.hour+12,suffixTouched:!0})},D=s=>t.use12Hour?s%12?s%12:12:s;return(s,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"vdatetime-time-picker":!0,"vdatetime-time-picker__with-suffix":a.use12Hour})},[e.createElementVNode("div",{ref_key:"hourList",ref:y,class:"vdatetime-time-picker__list vdatetime-time-picker__list--hours"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(d),o=>{var S;return e.openBlock(),e.createElementBlock("div",{key:o.number,class:e.normalizeClass(["vdatetime-time-picker__item",{"vdatetime-time-picker__item--selected":o.selected,"vdatetime-time-picker__item--disabled":o.disabled}]),onClick:F=>h(o)},e.toDisplayString(D((S=o.number)!=null?S:0)),11,fe)}),128))],512),e.createElementVNode("div",{ref_key:"minuteList",ref:f,class:"vdatetime-time-picker__list vdatetime-time-picker__list--minutes"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),o=>(e.openBlock(),e.createElementBlock("div",{key:o.number,class:e.normalizeClass(["vdatetime-time-picker__item",{"vdatetime-time-picker__item--selected":o.selected,"vdatetime-time-picker__item--disabled":o.disabled}]),onClick:S=>b(o)},e.toDisplayString(o.number),11,ke))),128))],512),a.use12Hour?(e.openBlock(),e.createElementBlock("div",_e,[e.createElementVNode("div",{class:e.normalizeClass(["vdatetime-time-picker__item",{"vdatetime-time-picker__item--selected":a.hour<12}]),onClick:g[0]||(g[0]=o=>k("am"))}," am ",2),e.createElementVNode("div",{class:e.normalizeClass(["vdatetime-time-picker__item",{"vdatetime-time-picker__item--selected":a.hour>=12}]),onClick:g[1]||(g[1]=o=>k("pm"))}," pm ",2)],512)):e.createCommentVNode("",!0)],2))}}),qe="",he={class:"vdatetime-year-picker"},be=["onClick"],De=e.defineComponent({__name:"DatetimeYearPicker",props:{year:{type:Number,required:!0},minDate:{type:Object,default:null},maxDate:{type:Object,default:null}},emits:["change"],setup(a,{emit:n}){const t=a,l=e.computed(()=>X(t.year.valueOf()).map(r=>({number:r,selected:r===t.year.valueOf(),disabled:!r||K(t.minDate,t.maxDate,r)}))),i=e.ref(null);B(i,".vdatetime-year-picker__item--selected");const d=r=>{r.disabled||n("change",r.number,10)};return(r,m)=>(e.openBlock(),e.createElementBlock("div",he,[e.createElementVNode("div",{ref_key:"yearList",ref:i,class:"vdatetime-year-picker__list vdatetime-year-picker__list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),p=>(e.openBlock(),e.createElementBlock("div",{key:p.number,class:e.normalizeClass(["vdatetime-year-picker__item",{"vdatetime-year-picker__item--selected":p.selected,"vdatetime-year-picker__item--disabled":p.disabled}]),onClick:y=>d(p)},e.toDisplayString(p.number),11,be))),128))],512)]))}}),Ze="",ge={class:"vdatetime-popup"},Se={class:"vdatetime-popup__header"},Ce={key:0,class:"vdatetime-popup__title"},Be={class:"vdatetime-popup__body"},we={class:"vdatetime-popup__actions"},v=e.defineComponent({__name:"DatetimePopup",props:{datetime:{type:Object,required:!0},phrases:{type:Object,default(){return{cancel:"Cancel",ok:"Ok"}}},type:{type:String,default:"date"},use12Hour:{type:Boolean,default:!1},hourStep:{type:Number,default:1},minuteStep:{type:Number,default:1},minDatetime:{type:Object,default:null},maxDatetime:{type:Object,default:null},auto:{type:Boolean,default:!1},weekStart:{type:Number,default:1},flow:{type:Array,default:null},title:{type:String,default:""}},emits:["cancel","confirm"],setup(a,{emit:n}){var H;const t=a,l=t.flow?ee(t.flow):te(t.type.valueOf()),i=e.ref((H=t.datetime)!=null?H:c.DateTime.now()),d=e.ref(l.first());let r={};const m=()=>{d.value=l.next(d.value),r={},d.value==="end"&&n("confirm",i.value)},p=()=>{m()},y=()=>{n("cancel")};U(_=>{switch(_.key){case"Escape":case"Tab":y();break;case"Enter":m();break}});const f=e.computed(()=>i.value.year),h=e.computed(()=>i.value.month),b=e.computed(()=>i.value.day),k=e.computed(()=>i.value.hour),D=e.computed(()=>i.value.minute),s=e.computed(()=>i.value.toLocaleString({month:"long",day:"numeric"})),g=e.computed(()=>t.minDatetime&&t.minDatetime.year===f.value&&t.minDatetime.month===h.value&&t.minDatetime.day===b.value?t.minDatetime.toFormat("HH:mm"):void 0),o=e.computed(()=>t.maxDatetime&&t.maxDatetime.year===f.value&&t.maxDatetime.month===h.value&&t.maxDatetime.day===b.value?t.maxDatetime.toFormat("HH:mm"):void 0),S=()=>{d.value="year",l.diversion("date")},F=()=>{d.value="month",l.diversion("date")},Ve=_=>{i.value=i.value.set({year:_}),t.auto.valueOf()&&m()},xe=_=>{i.value=i.value.set({month:_}),t.auto&&m()},Ee=(_,C,O)=>{i.value=i.value.set({year:_,month:C,day:O}),t.auto.valueOf()&&m()},Me=({hour:_,minute:C,suffixTouched:O})=>{O&&(r.suffix=!0),Number.isInteger(_)&&(i.value=i.value.set({hour:_}),r.hour=!0),Number.isInteger(C)&&(i.value=i.value.set({minute:C}),r.minutes=!0)};return(_,C)=>(e.openBlock(),e.createElementBlock("div",ge,[e.createElementVNode("div",Se,[a.title?(e.openBlock(),e.createElementBlock("div",Ce,e.toDisplayString(a.title),1)):e.createCommentVNode("",!0),a.type!=="time"?(e.openBlock(),e.createElementBlock("div",{key:1,class:"vdatetime-popup__year",onClick:S},e.toDisplayString(e.unref(f)),1)):e.createCommentVNode("",!0),a.type!=="time"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"vdatetime-popup__date",onClick:F},e.toDisplayString(e.unref(s)),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Be,[d.value==="year"?(e.openBlock(),e.createBlock(De,{key:0,"min-date":a.minDatetime,"max-date":a.maxDatetime,year:e.unref(f),onChange:Ve},null,8,["min-date","max-date","year"])):e.createCommentVNode("",!0),d.value==="month"?(e.openBlock(),e.createBlock(pe,{key:1,"min-date":a.minDatetime,"max-date":a.maxDatetime,year:e.unref(f),month:e.unref(h),onChange:xe},null,8,["min-date","max-date","year","month"])):e.createCommentVNode("",!0),d.value==="date"?(e.openBlock(),e.createBlock(me,{key:2,year:e.unref(f),month:e.unref(h),day:e.unref(b),"min-date":a.minDatetime,"max-date":a.maxDatetime,"week-start":a.weekStart,onChange:Ee},null,8,["year","month","day","min-date","max-date","week-start"])):e.createCommentVNode("",!0),d.value==="time"?(e.openBlock(),e.createBlock(ye,{key:3,hour:e.unref(k),minute:e.unref(D),"use12-hour":a.use12Hour,"hour-step":a.hourStep,"minute-step":a.minuteStep,"min-time":e.unref(g),"max-time":e.unref(o),onChange:Me},null,8,["hour","minute","use12-hour","hour-step","minute-step","min-time","max-time"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",we,[e.createElementVNode("div",{class:"vdatetime-popup__actions__button vdatetime-popup__actions__button--cancel",onClick:y},[e.renderSlot(_.$slots,"button-cancel__internal",{step:d.value},()=>[e.createTextVNode(e.toDisplayString(a.phrases.cancel),1)])]),e.createElementVNode("div",{class:"vdatetime-popup__actions__button vdatetime-popup__actions__button--confirm",onClick:p},[e.renderSlot(_.$slots,"button-confirm__internal",{step:d.value},()=>[e.createTextVNode(e.toDisplayString(a.phrases.ok),1)])])])]))}}),Ue="",Ne=["id","value"],Te=["name","value"],ve=["onClick"],Oe={inheritAttrs:!1},L=e.defineComponent(q(A({},Oe),{__name:"DateTime",props:{modelValue:{type:String,default:""},valueZone:{type:String,default:"UTC"},inputId:{type:String,default:null},inputClass:{type:[Object,Array,String],default:""},inputStyle:{type:[Object,Array,String],default:""},hiddenName:{type:String,default:""},zone:{type:String,default:"local"},format:{type:[Object,String],default:null},type:{type:String,default:"date"},phrases:{type:Object,default(){return{cancel:"Cancel",ok:"Ok"}}},use12Hour:{type:Boolean,default:!1},hourStep:{type:Number,default:1},minuteStep:{type:Number,default:1},minDatetime:{type:String,default:null},maxDatetime:{type:String,default:null},auto:{type:Boolean,default:!1},weekStart:{type:Number,default(){return ae()}},flow:{type:Array,default:null},title:{type:String,default:""},hideBackdrop:{type:Boolean,default:!1},backdropClick:{type:Boolean,default:!0}},emits:["input","close","update:modelValue"],setup(a,{emit:n}){const t=a,l=e.ref(!1),i=e.computed({get(){return N(t.modelValue)},set(o){o&&n("update:modelValue",o.toISO())}}),d=e.computed(()=>{let o=t.format;if(!o)switch(t.type){case"date":o=c.DateTime.DATE_MED;break;case"time":o=c.DateTime.TIME_24_SIMPLE;break;case"datetime":case"default":o=c.DateTime.DATETIME_MED;break}return typeof o=="string"?i.value?c.DateTime.fromISO(t.modelValue).setZone(t.zone).toFormat(o):"":i.value?i.value.setZone(t.zone).toLocaleString(o):""}),r=e.computed(()=>t.minDatetime?c.DateTime.fromISO(t.minDatetime).setZone(t.zone):void 0),m=e.computed(()=>t.maxDatetime?c.DateTime.fromISO(t.maxDatetime).setZone(t.zone):void 0),p=()=>{let o=c.DateTime.utc().setZone(t.zone).set({second:0,millisecond:0});if(r.value&&o<r.value&&(o=r.value.set({second:0,millisecond:0})),m.value&&o>m.value&&(o=m.value.set({second:0,millisecond:0})),t.minuteStep===1)return o;const S=Math.round(o.minute/t.minuteStep)*t.minuteStep;return S===60?o.plus({hours:1}).set({minute:0}):o.set({minute:S})},y=e.computed(()=>i.value?i.value.setZone(t.zone):p()),f=()=>{let o=i.value?i.value.setZone(t.valueZone):null;o&&t.type==="date"&&(o=T(o)),n("input",o?o.toISO():"")};e.onMounted(()=>{f()});const h=o=>{o.target.blur(),l.value=!0},b=()=>{l.value=!1,n("close")},k=o=>{i.value=o.toUTC(),f(),b()},D=()=>{b()},s=()=>{t.backdropClick===!0&&D()},g=o=>{i.value=N(o.target.value),f()};return e.watch(()=>t.modelValue,o=>{i.value=N(o)}),(o,S)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vdatetime",o.$attrs.class])},[e.renderSlot(o.$slots,"before"),e.createElementVNode("input",e.mergeProps({id:a.inputId,class:["vdatetime-input",a.inputClass],style:a.inputStyle,type:"text",value:e.unref(d)},o.$attrs,{onClick:h,onFocus:h}),null,16,Ne),a.hiddenName?(e.openBlock(),e.createElementBlock("input",{key:0,type:"hidden",name:a.hiddenName,value:a.modelValue,onInput:g},null,40,Te)):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"after"),e.createVNode(e.TransitionGroup,{name:"vdatetime-fade",tag:"div"},{default:e.withCtx(()=>[l.value&&!a.hideBackdrop?(e.openBlock(),e.createElementBlock("div",{key:"overlay",class:"vdatetime-overlay",onClick:e.withModifiers(s,["self"])},null,8,ve)):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(v,{key:"popup",type:a.type,datetime:e.unref(y),phrases:a.phrases,"use12-hour":a.use12Hour,"hour-step":a.hourStep,"minute-step":a.minuteStep,"min-datetime":e.unref(r),"max-datetime":e.unref(m),auto:a.auto,"week-start":a.weekStart,flow:a.flow,title:a.title,onConfirm:k,onCancel:D},null,8,["type","datetime","phrases","use12-hour","hour-step","minute-step","min-datetime","max-datetime","auto","week-start","flow","title"])):e.createCommentVNode("",!0)]),_:1})],2))}})),Ye="";function z(){return{install:n=>{n.component("DateTime",L),n.component("DateTimePopup",v)}}}const j="__VERSION__";z.version=j,u.Datetime=L,u.DatetimePopup=v,u.default=z,u.version=j,Object.defineProperties(u,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
(function(p,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue"),require("luxon"),require("weekstart")):typeof define=="function"&&define.amd?define(["exports","vue","luxon","weekstart"],e):(p=typeof globalThis!="undefined"?globalThis:p||self,e((p["vue-datetime"]=p["vue-datetime"]||{},p["vue-datetime"]["[name]"]={}),p.vue,p.luxon,p.weekstart))})(this,function(p,e,u,R){"use strict";var Fe=Object.defineProperty,ze=Object.defineProperties;var He=Object.getOwnPropertyDescriptors;var U=Object.getOwnPropertySymbols;var Pe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable;var M=(p,e,u)=>e in p?Fe(p,e,{enumerable:!0,configurable:!0,writable:!0,value:u}):p[e]=u,Y=(p,e)=>{for(var u in e||(e={}))Pe.call(e,u)&&M(p,u,e[u]);if(U)for(var u of U(e))Ze.call(e,u)&&M(p,u,e[u]);return p},G=(p,e)=>ze(p,He(e));var N=(p,e,u)=>(M(p,typeof e!="symbol"?e+"":e,u),u);function q(n){e.onMounted(()=>{document.addEventListener("keydown",n)}),e.onUnmounted(()=>{document.removeEventListener("keydown",n)})}function V(n){const a=u.DateTime.fromISO(n).toUTC();return a.isValid?a:null}const j=n=>n==null?void 0:n.startOf("day");function W(n,a){return!n||!a||n<=a}function x(n,a,t){const s=n==null?void 0:n.year,l=a==null?void 0:a.year;return!W(n,a)||!!s&&t<s||!!l&&t>l}function $(n,a,t,s){const l=n==null?void 0:n.month,c=a==null?void 0:a.month;return x(n,a,t)||!!l&&s<l||!!c&&s>c}function K(n,a,t,s,l){const c=n==null?void 0:n.day,o=a==null?void 0:a.day;return $(n,a,t,s)||!!c&&l<c||!!o&&l>o}function I(n,a,t){return!!n&&t<n||!!a&&t>a}function J(n,a,t){const s=u.DateTime.local(n,a,1);if(!s.isValid)return[];const c=7*(6-1),o=(7-s.weekday+t)%7,d=(7-o)%7,m=s.daysInMonth,k=c-(m-o-(o?0:7)),w=s.minus({month:1}).daysInMonth,C=s.minus({month:1}),B=s.plus({month:1});return[...Array(m+d+k)].map((f,_)=>_+1<=d?{year:C.year,month:C.month,day:w+(_+1-d)}:_>=d+m?{year:B.year,month:B.month,day:_+1-(d+m)}:{year:n,month:a,day:_+1-d})}function Q(){return R.getWeekStartByLocale(u.Settings.defaultLocale)||7}function L(n){return n.charAt(0).toUpperCase()+n.slice(1)}function O(n){return String(n).padStart(2,"0")}function X(n){let a=n;--a<0&&(a=6);let t=u.Info.weekdays("short").map(s=>L(s));return t=t.concat(t.splice(0,a)),t}function F(){return[...u.Info.months().map(n=>L(n))]}function ee(n){return[...Array(Math.ceil(24/n))].map((a,t)=>t*n)}function te(n){return[...Array(Math.ceil(60/n))].map((a,t)=>t*n)}function ne(n){return[...Array(201)].map((a,t)=>n-100+t)}const ae={class:"vdatetime-calendar"},oe={class:"vdatetime-calendar__navigation"},ie=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 61.3 102.8"},[e.createElementVNode("path",{fill:"none",stroke:"#444","stroke-width":"14","stroke-miterlimit":"10",d:"M56.3 97.8L9.9 51.4 56.3 5"})],-1)],le={class:"vdatetime-calendar__current--month"},re=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 61.3 102.8"},[e.createElementVNode("path",{fill:"none",stroke:"#444","stroke-width":"14","stroke-miterlimit":"10",d:"M56.3 97.8L9.9 51.4 56.3 5"})],-1)],se={class:"vdatetime-calendar__month"},ce=["onClick"],me=e.defineComponent({__name:"DatetimeCalendar",props:{year:null,month:null,day:{default:void 0},disabled:{default:()=>[]},minDate:{default:void 0},maxDate:{default:void 0},weekStart:{default:1}},emits:["change"],setup(n,{emit:a}){const t=n,s=e.ref(u.DateTime.fromObject({year:t.year.valueOf(),month:t.month.valueOf()},{zone:"UTC"})),l=X(t.weekStart),c=F(),o=e.computed(()=>s.value.year),d=e.computed(()=>s.value.month),m=e.computed(()=>c[d.value-1]),k=e.computed(()=>J(o.value,d.value,t.weekStart).map((f,_)=>({key:_,number:f.day,selected:t.year===f.year&&t.month===f.month&&t.day===f.day,disabled:f.month!==d.value||K(t.minDate,t.maxDate,o.value,d.value,f.day)}))),w=f=>{f.disabled||a("change",o.value,d.value,f.number)},C=()=>{s.value=s.value.minus({month:1})},B=()=>{s.value=s.value.plus({month:1})};return(f,_)=>(e.openBlock(),e.createElementBlock("div",ae,[e.createElementVNode("div",oe,[e.createElementVNode("div",{class:"vdatetime-calendar__navigation--previous",onClick:C},ie),e.createElementVNode("div",le,e.toDisplayString(e.unref(m))+" "+e.toDisplayString(e.unref(o)),1),e.createElementVNode("div",{class:"vdatetime-calendar__navigation--next",onClick:B},re)]),e.createElementVNode("div",se,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),r=>(e.openBlock(),e.createElementBlock("div",{key:r,class:"vdatetime-calendar__month__weekday"},e.toDisplayString(r),1))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(k),r=>(e.openBlock(),e.createElementBlock("div",{key:r.key,class:e.normalizeClass(["vdatetime-calendar__month__day",{"vdatetime-calendar__month__day--selected":r.selected,"vdatetime-calendar__month__day--disabled":r.disabled}]),onClick:D=>w(r)},[e.createElementVNode("span",null,[e.createElementVNode("span",null,e.toDisplayString(r.number),1)])],10,ce))),128))])]))}}),Ye="";function T(n,a){const t=()=>{var s;if(n.value){const l=(s=n.value)==null?void 0:s.querySelector(a);n.value.scrollTo({top:l?l.offsetTop-250:0,behavior:"auto"})}};return e.onMounted(t),e.onUpdated(t),t}const de={class:"vdatetime-month-picker"},ue=["onClick"],pe=e.defineComponent({__name:"DatetimeMonthPicker",props:{year:null,month:null,minDate:null,maxDate:null},emits:["change"],setup(n,{emit:a}){const t=n,s=e.computed(()=>F().map((o,d)=>({key:d,number:++d,label:o,selected:d===t.month,disabled:!(d+1)||$(t.minDate,t.maxDate,t.year,d)}))),l=e.ref(null);T(l,".vdatetime-month-picker__item--selected");const c=o=>{o.disabled||a("change",o.number,10)};return(o,d)=>(e.openBlock(),e.createElementBlock("div",de,[e.createElementVNode("div",{ref_key:"monthList",ref:l,class:"vdatetime-month-picker__list vdatetime-month-picker__list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),m=>(e.openBlock(),e.createElementBlock("div",{key:m.key,class:e.normalizeClass(["vdatetime-month-picker__item",{"vdatetime-month-picker__item--selected":m.selected,"vdatetime-month-picker__item--disabled":m.disabled}]),onClick:k=>c(m)},e.toDisplayString(m.label),11,ue))),128))],512)]))}}),Ge="",fe=["onClick"],ke=["onClick"],he={key:0,ref:"suffixList",class:"vdatetime-time-picker__list vdatetime-time-picker__list--suffix"},_e=e.defineComponent({__name:"DatetimeTimePicker",props:{hour:null,minute:null,use12Hour:{type:Boolean,default:!1},hourStep:{default:1},minuteStep:{default:1},minTime:{default:void 0},maxTime:{default:void 0}},emits:["change"],setup(n,{emit:a}){const t=n,s=e.computed(()=>t.minTime?parseInt(t.minTime.split(":")[0],10):null),l=e.computed(()=>t.maxTime?parseInt(t.maxTime.split(":")[0],10):null),c=e.computed(()=>ee(t.hourStep).filter(r=>t.use12Hour?t.hour<12?r<12:r>=12:!0).map(r=>({key:r,number:r,label:O(r),selected:r===t.hour.valueOf(),disabled:I(s.value,l.value,r)}))),o=e.computed(()=>t.minTime&&s.value===t.hour.valueOf()?parseInt(t.minTime.split(":")[1],10):null),d=e.computed(()=>t.maxTime&&l.value===t.hour.valueOf()?parseInt(t.maxTime.split(":")[1],10):null),m=e.computed(()=>te(t.minuteStep).map(r=>({key:r,number:r,label:O(r),selected:r===t.minute.valueOf(),disabled:I(o.value,d.value,r)}))),k=e.ref(null),w=e.ref(null);T(k,".vdatetime-time-picker__item--selected"),T(w,".vdatetime-time-picker__item--selected");const C=r=>{r.disabled||a("change",{hour:r.number})},B=r=>{r.disabled||a("change",{minute:r.number})},f=r=>{r==="am"&&t.hour>=12&&a("change",{hour:t.hour-12,suffixTouched:!0}),r==="pm"&&t.hour<12&&a("change",{hour:t.hour+12,suffixTouched:!0})},_=r=>t.use12Hour?r%12?r%12:12:r;return(r,D)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"vdatetime-time-picker":!0,"vdatetime-time-picker__with-suffix":n.use12Hour})},[e.createElementVNode("div",{ref_key:"hourList",ref:k,class:"vdatetime-time-picker__list vdatetime-time-picker__list--hours"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c),h=>{var i;return e.openBlock(),e.createElementBlock("div",{key:h.key,class:e.normalizeClass(["vdatetime-time-picker__item",{"vdatetime-time-picker__item--selected":h.selected,"vdatetime-time-picker__item--disabled":h.disabled}]),onClick:S=>C(h)},e.toDisplayString(_((i=h.number)!=null?i:0)),11,fe)}),128))],512),e.createElementVNode("div",{ref_key:"minuteList",ref:w,class:"vdatetime-time-picker__list vdatetime-time-picker__list--minutes"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m),h=>(e.openBlock(),e.createElementBlock("div",{key:h.key,class:e.normalizeClass(["vdatetime-time-picker__item",{"vdatetime-time-picker__item--selected":h.selected,"vdatetime-time-picker__item--disabled":h.disabled}]),onClick:i=>B(h)},e.toDisplayString(h.number),11,ke))),128))],512),n.use12Hour?(e.openBlock(),e.createElementBlock("div",he,[e.createElementVNode("div",{class:e.normalizeClass(["vdatetime-time-picker__item",{"vdatetime-time-picker__item--selected":n.hour<12}]),onClick:D[0]||(D[0]=h=>f("am"))}," am ",2),e.createElementVNode("div",{class:e.normalizeClass(["vdatetime-time-picker__item",{"vdatetime-time-picker__item--selected":n.hour>=12}]),onClick:D[1]||(D[1]=h=>f("pm"))}," pm ",2)],512)):e.createCommentVNode("",!0)],2))}}),Re="",ye={class:"vdatetime-year-picker"},we=["onClick"],Be=e.defineComponent({__name:"DatetimeYearPicker",props:{year:null,minDate:null,maxDate:null},emits:["change"],setup(n,{emit:a}){const t=n,s=e.computed(()=>ne(t.year.valueOf()).map(o=>({key:o,number:o,selected:o===t.year.valueOf(),disabled:!o||x(t.minDate,t.maxDate,o)}))),l=e.ref(null);T(l,".vdatetime-year-picker__item--selected");const c=o=>{o.disabled||a("change",o.number,10)};return(o,d)=>(e.openBlock(),e.createElementBlock("div",ye,[e.createElementVNode("div",{ref_key:"yearList",ref:l,class:"vdatetime-year-picker__list vdatetime-year-picker__list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),m=>(e.openBlock(),e.createElementBlock("div",{key:m.key,class:e.normalizeClass(["vdatetime-year-picker__item",{"vdatetime-year-picker__item--selected":m.selected,"vdatetime-year-picker__item--disabled":m.disabled}]),onClick:k=>c(m)},e.toDisplayString(m.number),11,we))),128))],512)]))}}),qe="",Ce=["time"],De=["date"],ge=["date","time"],z="end";class v{constructor(a=[]){N(this,"flow");N(this,"endStatus",z);N(this,"diversionNext");this.flow=a,this.diversionNext=null}step(a){return a>=0&&this.flow.length>a?this.flow[a]:this.endStatus}first(){return this.step(0)}next(a){if(this.diversionNext){const t=this.diversionNext;return this.diversionNext=null,t}return this.step(this.flow.indexOf(a)+1)}diversion(a){this.diversionNext=a}}const Se=n=>new v(n),be=n=>{switch(n){case"datetime":return new v(ge);case"date":return new v(De);case"time":return new v(Ce);default:throw new TypeError(`Cannot create flow type of ${n}`)}},Te={class:"vdatetime-popup"},ve={class:"vdatetime-popup__header"},Ne={key:0,class:"vdatetime-popup__title"},Ve={class:"vdatetime-popup__body"},Ee={class:"vdatetime-popup__actions"},E=e.defineComponent({__name:"DatetimePopup",props:{datetime:null,phrases:{default:()=>({cancel:"Cancel",ok:"Ok"})},type:{default:"date"},use12Hour:{type:Boolean,default:!1},hourStep:{default:1},minuteStep:{default:1},minDatetime:{default:void 0},maxDatetime:{default:void 0},auto:{type:Boolean,default:!1},weekStart:{default:1},flow:{default:void 0},title:{default:""}},emits:["cancel","confirm"],setup(n,{emit:a}){var A;const t=n,s=t.flow?Se(t.flow):be(t.type),l=e.ref((A=t.datetime)!=null?A:u.DateTime.now()),c=e.ref(s.first());let o={};const d=()=>{c.value=s.next(c.value),o={},c.value===z&&a("confirm",l.value)};q(y=>{switch(y.key){case"Escape":case"Tab":a("cancel");break;case"Enter":d();break}});const m=e.computed(()=>l.value.year),k=e.computed(()=>l.value.month),w=e.computed(()=>l.value.day),C=e.computed(()=>l.value.hour),B=e.computed(()=>l.value.minute),f=e.computed(()=>l.value.toLocaleString({month:"long",day:"numeric"})),_=e.computed(()=>t.minDatetime&&t.minDatetime.year===m.value&&t.minDatetime.month===k.value&&t.minDatetime.day===w.value?t.minDatetime.toFormat("HH:mm"):void 0),r=e.computed(()=>t.maxDatetime&&t.maxDatetime.year===m.value&&t.maxDatetime.month===k.value&&t.maxDatetime.day===w.value?t.maxDatetime.toFormat("HH:mm"):void 0),D=()=>{c.value="year",s.diversion("date")},h=()=>{c.value="month",s.diversion("date")},i=y=>{l.value=l.value.set({year:y}),t.auto&&d()},S=y=>{l.value=l.value.set({month:y}),t.auto&&d()},Le=(y,g,b)=>{l.value=l.value.set({year:y,month:g,day:b}),t.auto&&d()},Oe=({hour:y,minute:g,suffixTouched:b})=>{b&&(o.suffix=!0),Number.isInteger(y)&&(l.value=l.value.set({hour:y}),o.hour=!0),Number.isInteger(g)&&(l.value=l.value.set({minute:g}),o.minutes=!0)};return(y,g)=>(e.openBlock(),e.createElementBlock("div",Te,[e.createElementVNode("div",ve,[n.title?(e.openBlock(),e.createElementBlock("div",Ne,e.toDisplayString(n.title),1)):e.createCommentVNode("",!0),n.type!=="time"?(e.openBlock(),e.createElementBlock("div",{key:1,class:"vdatetime-popup__year",onClick:D},e.toDisplayString(e.unref(m)),1)):e.createCommentVNode("",!0),n.type!=="time"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"vdatetime-popup__date",onClick:h},e.toDisplayString(e.unref(f)),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ve,[c.value==="year"?(e.openBlock(),e.createBlock(Be,{key:0,"min-date":n.minDatetime,"max-date":n.maxDatetime,year:e.unref(m),onChange:i},null,8,["min-date","max-date","year"])):e.createCommentVNode("",!0),c.value==="month"?(e.openBlock(),e.createBlock(pe,{key:1,"min-date":n.minDatetime,"max-date":n.maxDatetime,year:e.unref(m),month:e.unref(k),onChange:S},null,8,["min-date","max-date","year","month"])):e.createCommentVNode("",!0),c.value==="date"?(e.openBlock(),e.createBlock(me,{key:2,year:e.unref(m),month:e.unref(k),day:e.unref(w),"min-date":n.minDatetime,"max-date":n.maxDatetime,"week-start":n.weekStart,onChange:Le},null,8,["year","month","day","min-date","max-date","week-start"])):e.createCommentVNode("",!0),c.value==="time"?(e.openBlock(),e.createBlock(_e,{key:3,hour:e.unref(C),minute:e.unref(B),"use12-hour":n.use12Hour,"hour-step":n.hourStep,"minute-step":n.minuteStep,"min-time":e.unref(_),"max-time":e.unref(r),onChange:Oe},null,8,["hour","minute","use12-hour","hour-step","minute-step","min-time","max-time"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ee,[e.createElementVNode("div",{class:"vdatetime-popup__actions__button vdatetime-popup__actions__button--cancel",onClick:g[0]||(g[0]=b=>a("cancel"))},[e.renderSlot(y.$slots,"button-cancel__internal",{step:c.value},()=>[e.createTextVNode(e.toDisplayString(n.phrases.cancel),1)])]),e.createElementVNode("div",{class:"vdatetime-popup__actions__button vdatetime-popup__actions__button--confirm",onClick:g[1]||(g[1]=b=>d())},[e.renderSlot(y.$slots,"button-confirm__internal",{step:c.value},()=>[e.createTextVNode(e.toDisplayString(n.phrases.ok),1)])])])]))}}),je="",Me=["id","value"],xe=["name","value"],$e=["onClick"],Ie={inheritAttrs:!1},H=e.defineComponent(G(Y({},Ie),{__name:"DateTime",props:{modelValue:{default:""},valueZone:{default:"UTC"},inputId:{default:void 0},inputClass:{default:""},inputStyle:{default:""},hiddenName:{default:""},zone:{default:"local"},format:{default:void 0},type:{default:"date"},color:{default:"#3f51b5"},phrases:{default:()=>({cancel:"Cancel",ok:"Ok"})},use12Hour:{type:Boolean,default:!1},hourStep:{default:1},minuteStep:{default:1},minDatetime:{default:void 0},maxDatetime:{default:void 0},auto:{type:Boolean,default:!1},weekStart:{default:Q},flow:{default:void 0},title:{default:""},hideBackdrop:{type:Boolean,default:!1},backdropClick:{type:Boolean,default:!0},fixedDate:{type:Boolean,default:!1},fixedTime:{type:Boolean,default:!1}},emits:["input","close","update:modelValue"],setup(n,{emit:a}){const t=n,s=e.computed(()=>({"--primary-color":t.color})),l=e.computed(()=>{if(t.type==="datetime"){if(t.fixedDate)return"time";if(t.fixedTime)return"date"}return t.type}),c=e.ref(!1),o=e.computed({get(){return V(t.modelValue)},set(i){i&&a("update:modelValue",i.toISO())}}),d=e.computed(()=>{let i=t.format;if(!i)switch(t.type){case"date":i=u.DateTime.DATE_MED;break;case"time":i=u.DateTime.TIME_24_SIMPLE;break;case"datetime":i=u.DateTime.DATETIME_MED;break}return typeof i=="string"?o.value?u.DateTime.fromISO(t.modelValue).setZone(t.zone).toFormat(i):"":o.value?o.value.setZone(t.zone).toLocaleString(i):""}),m=e.computed(()=>t.minDatetime?u.DateTime.fromISO(t.minDatetime).setZone(t.zone):void 0),k=e.computed(()=>t.maxDatetime?u.DateTime.fromISO(t.maxDatetime).setZone(t.zone):void 0),w=()=>{let i=u.DateTime.utc().setZone(t.zone).set({second:0,millisecond:0});if(m.value&&i<m.value&&(i=m.value.set({second:0,millisecond:0})),k.value&&i>k.value&&(i=k.value.set({second:0,millisecond:0})),t.minuteStep===1)return i;const S=Math.round(i.minute/t.minuteStep)*t.minuteStep;return S===60?i.plus({hours:1}).set({minute:0}):i.set({minute:S})},C=e.computed(()=>o.value?o.value.setZone(t.zone):w()),B=()=>{let i=o.value?o.value.setZone(t.valueZone):void 0;i&&t.type==="date"&&(i=j(i)),a("input",i?i.toISO():"")};e.onMounted(()=>{B()});const f=i=>{i.target.blur(),c.value=!0},_=()=>{c.value=!1,a("close")},r=i=>{o.value=i.toUTC(),B(),_()},D=()=>{t.backdropClick&&_()},h=i=>{o.value=V(i.target.value),B()};return e.watch(()=>t.modelValue,i=>{o.value=V(i)}),(i,S)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vdatetime",i.$attrs.class]),style:e.normalizeStyle(e.unref(s))},[e.renderSlot(i.$slots,"before"),e.createElementVNode("input",e.mergeProps({id:n.inputId,class:["vdatetime-input",n.inputClass],style:n.inputStyle,type:"text",value:e.unref(d)},i.$attrs,{onClick:f,onFocus:f}),null,16,Me),n.hiddenName?(e.openBlock(),e.createElementBlock("input",{key:0,type:"hidden",name:n.hiddenName,value:n.modelValue,onInput:h},null,40,xe)):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"after"),e.createVNode(e.TransitionGroup,{name:"vdatetime-fade",tag:"div"},{default:e.withCtx(()=>[c.value&&!n.hideBackdrop?(e.openBlock(),e.createElementBlock("div",{key:"overlay",class:"vdatetime-overlay",onClick:e.withModifiers(D,["self"])},null,8,$e)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createBlock(E,{key:"popup",type:e.unref(l),datetime:e.unref(C),phrases:n.phrases,"use12-hour":n.use12Hour,"hour-step":n.hourStep,"minute-step":n.minuteStep,"min-datetime":e.unref(m),"max-datetime":e.unref(k),auto:n.auto,"week-start":n.weekStart,flow:n.flow,title:n.title,onConfirm:r,onCancel:_},null,8,["type","datetime","phrases","use12-hour","hour-step","minute-step","min-datetime","max-datetime","auto","week-start","flow","title"])):e.createCommentVNode("",!0)]),_:1})],6))}})),We="";function P(){return{install:a=>{a.component("DateTime",H),a.component("DateTimePopup",E)}}}const Z="__VERSION__";P.version=Z,p.Datetime=H,p.DatetimePopup=E,p.default=P,p.version=Z,Object.defineProperties(p,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
{
"name": "vue-datetime3",
"version": "1.0.10",
"version": "1.0.11",
"description": "Mobile friendly datetime picker for Vue. Supports date, datetime and time modes, i18n and disabling dates.",

@@ -36,2 +36,3 @@ "keywords": [

"devDependencies": {
"@types/jest": "^29.2.5",
"@types/luxon": "^3.2.0",

@@ -38,0 +39,0 @@ "@types/node": "^18.15.11",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet