UNPKG

@vue-js-cron/core

Version:
9 lines (8 loc) 37 kB
(function(h,x){typeof exports=="object"&&typeof module<"u"?x(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],x):(h=typeof globalThis<"u"?globalThis:h||self,x(h.CronCore={},h.Vue))})(this,function(h,x){"use strict";var ze=Object.defineProperty;var Be=(h,x,w)=>x in h?ze(h,x,{enumerable:!0,configurable:!0,writable:!0,value:w}):h[x]=w;var m=(h,x,w)=>(Be(h,typeof x!="symbol"?x+"":x,w),w);var w=(a=>(a.Any="any",a.Value="value",a.Range="range",a.Step="step",a.RangeStep="rangeStep",a.Combined="combined",a.NoSpecific="noSpecific",a))(w||{}),M=(a=>(a.Prefix="prefix",a.Suffix="suffix",a.Text="text",a))(M||{});class _{constructor(e){m(this,"field");m(this,"itemMap");this.field=e,this.itemMap=this.field.items.reduce((t,n)=>(t[n.value]=n,t),{})}get id(){return this.field.id}get items(){return this.field.items}get onChange(){return this.field.onChange}get segmentFactories(){return this.field.segmentFactories}get min(){return this.items[0].value}get max(){return this.items[this.items.length-1].value}getItem(e){return this.itemMap[e]}}function me(a,e,t=1){const n=[];for(let r=a;r<=e;r+=t)n.push(r);return n}class ye{constructor(e,t,n=1){m(this,"start");m(this,"end");m(this,"step");return this.start=e,this.end=t,this.step=n,new Proxy(this,{get:function(r,i){const s=typeof i=="string"?parseInt(i):i;return typeof s=="number"&&s>=0&&s<=r.length?r.start+r.step*s:Reflect.get(r,i)}})}get length(){return(this.end-this.start)/this.step+1}[Symbol.iterator](){let e=-1;return{next:()=>({value:this[++e],done:this[e+1]===void 0})}}}function I(a,e,t=r=>r+"",n=r=>r+""){const r=[];for(const i of new ye(a,e))r.push({text:t(i),alt:n(i),value:i});return r}function ee(a,e="crontab"){const t=(r,i=!1)=>new Date(2021,r-1,1).toLocaleDateString(a,{month:i?"short":"long"}),n=(r,i=!1)=>new Date(2021,0,3+r).toLocaleDateString(a,{weekday:i?"short":"long"});return{secondItems:I(0,59,r=>B(r,2)),minuteItems:I(0,59,r=>B(r,2)),hourItems:I(0,23,r=>B(r,2)),dayItems:I(1,31),monthItems:I(1,12,t,r=>t(r,!0)),dayOfWeekItems:e==="quartz"?I(1,7,r=>n(r-1),r=>n(r-1,!0)):I(0,6,n,r=>n(r,!0))}}function B(a,e){const t=a+"";return t.length<e?new Array(e-t.length).fill("0").join("")+a:t}function J(a){return a&&typeof a=="object"&&!Array.isArray(a)}function Y(a,...e){if(!J(a)||e.length===0)return;const t=e.shift();if(J(t))for(const[n,r]of Object.entries(t))J(r)?(J(a[n])||(a[n]={}),Y(a[n],t[n])):a[n]=t[n];return e.length>0&&Y(a,...e),a}function te(a,...e){if(e.length===0)return a;for(const t of e[0])if(t in a){const n=te(a[t],...e.slice(1));if(n!==void 0)return n}}function ve(a){for(let e=1;e<a.length;e++)if(a[e-1]+1!==a[e])return!1;return!0}function ge(){throw new Error("not implemented")}function ne(a,e,t=!0){const n=[];for(let r=0;r<a.length;r+=e){const i=a.slice(r,r+e);for(;t&&i.length<e;)i.push(null);n.push(i)}return n}class Q{constructor(e){m(this,"field");m(this,"type",w.NoSpecific);this.field=e}toCron(){return"?"}toArray(){return[]}get items(){return{}}static fromString(e,t){return e!=="?"?null:new Q(t)}}class T{constructor(e){m(this,"field");m(this,"type",w.Any);this.field=e}toCron(){return"*"}toArray(){return[]}get items(){return{}}static fromString(e,t){return e!=="*"?null:new T(t)}static fromArray(e,t){const{items:n}=t;if(e.length===0)return new T(t);if(e.length!==n.length)return null;for(const r of n)if(!e.includes(r.value))return null;return ve(n.map(r=>r.value))?new T(t):null}}const z=class z{constructor(e,t,n){m(this,"field");m(this,"type",w.Range);m(this,"start");m(this,"end");this.field=e,this.start=t,this.end=n}toCron(){return`${this.start}-${this.end}`}toArray(){const e=this.start,t=this.end;return me(e,t)}get items(){return{start:this.field.itemMap[this.start],end:this.field.itemMap[this.end]}}static fromString(e,t){if(!z.re.test(e))return null;const{min:n,max:r}=t,i=e.split("-"),s=parseInt(i[0]),l=parseInt(i[1]);return s>l||s<n||l>r?null:new z(t,s,l)}};m(z,"re",/^\d+-\d+$/);let j=z;function re(a,e,t){const n=[];for(let r=e;r<=t;r+=a)n.push(r);return n}const D=class D{constructor(e,t,n,r){m(this,"field");m(this,"step");m(this,"start");m(this,"end");this.field=e,this.step=t,this.start=n??e.min,this.end=r??e.max}get type(){const{min:e,max:t}=this.field;return this.start!==e||t-this.end>=this.step?w.RangeStep:w.Step}toCron(){return this.type==w.RangeStep?`${this.start}-${this.end}/${this.step}`:`*/${this.step}`}toArray(){return re(this.step,this.start,this.end)}get items(){return{step:this.field.itemMap[this.step],start:this.field.itemMap[this.start],end:this.field.itemMap[this.end]}}static fromString(e,t){if(!D.re.test(e))return null;const[n,r]=e.split("/"),i=parseInt(r);if(i>t.items.length)return null;const s=e.split("-").map(c=>parseInt(c)),l=n=="*"?t.min:s[0],u=n=="*"?t.max:s[1];return re(i,l,u).length==0?null:new D(t,i,l,u)}static fromArray(e,t){if(e.length<3)return null;const n=e[1]-e[0];if(n<=1)return null;for(let r=2;r<e.length;r++)if(e[r]-e[r-1]!=n)return null;return new D(t,n,e[0],e[e.length-1])}};m(D,"re",/^(\*|\d+-\d+)\/\d+$/);let E=D;class R{constructor(e,t){m(this,"field");m(this,"type",w.Value);m(this,"value");this.field=e,this.value=t}toCron(){return`${this.value}`}toArray(){return[this.value]}get items(){return{value:this.field.itemMap[this.value]}}static fromString(e,t){const{min:n,max:r}=t,i=parseInt(e);return String(i)===e&&i>=n&&i<=r?new R(t,i):null}static fromArray(e,t){const{min:n,max:r}=t;if(e.length!=1)return null;const i=e[0];return i<n||i>r?null:i}}const F=class F{constructor(e,t=[]){m(this,"field");m(this,"segments");this.field=e,this.segments=t}get type(){return this.segments.length==1?this.segments[0].type:w.Range}addSegment(e){this.segments.push(e)}toCron(){return this.segments.map(e=>e.toCron()).join(",")}toArray(){const e=new Set;for(const t of this.segments)t.toArray().forEach(n=>e.add(n));return Array.from(e)}get items(){return ge()}static fromString(e,t){const n=t.segmentFactories??F.segmentFactories;let r=[];for(const i of e.split(",")){if(i==="*"){r=[new T(t)];break}let s=null;for(const l of n)if(s=l(i,t),s!==null)break;if(s===null)return null;r.push(s)}return new F(t,r)}static fromArray(e,t){const{min:n,max:r}=t,i=e[0],s=e[e.length-1];if(i<n||s>r)return null;const l=[];let u=0;for(let c=0;c<e.length;c++)(e[c+1]===void 0||e[c+1]-e[c]>1)&&(c===u?l.push(new R(t,e[u])):l.push(new j(t,e[u],e[c])),u=c+1);return new F(t,l)}};m(F,"segmentFactories",[T.fromString,E.fromString,j.fromString,R.fromString]);let H=F;function ae(a,e){return H.fromString(a,e)}function Se(a,e){for(const t of[T.fromArray,E.fromArray,H.fromArray]){const n=t(a,e);if(n!=null)return n}return null}/*! * mustache.js - Logic-less {{mustache}} templates with JavaScript * http://github.com/janl/mustache.js */var we=Object.prototype.toString,P=Array.isArray||function(e){return we.call(e)==="[object Array]"};function G(a){return typeof a=="function"}function ke(a){return P(a)?"array":typeof a}function X(a){return a.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function ie(a,e){return a!=null&&typeof a=="object"&&e in a}function Ce(a,e){return a!=null&&typeof a!="object"&&a.hasOwnProperty&&a.hasOwnProperty(e)}var be=RegExp.prototype.test;function Oe(a,e){return be.call(a,e)}var qe=/\S/;function Ae(a){return!Oe(qe,a)}var We={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;","`":"&#x60;","=":"&#x3D;"};function Te(a){return String(a).replace(/[&<>"'`=\/]/g,function(t){return We[t]})}var $e=/\s*/,Me=/\s+/,se=/\s*=/,Ie=/\s*\}/,Ve=/#|\^|\/|>|\{|&|=|!/;function je(a,e){if(!a)return[];var t=!1,n=[],r=[],i=[],s=!1,l=!1,u="",c=0;function y(){if(s&&!l)for(;i.length;)delete r[i.pop()];else i=[];s=!1,l=!1}var p,S,$;function W(A){if(typeof A=="string"&&(A=A.split(Me,2)),!P(A)||A.length!==2)throw new Error("Invalid tags: "+A);p=new RegExp(X(A[0])+"\\s*"),S=new RegExp("\\s*"+X(A[1])),$=new RegExp("\\s*"+X("}"+A[1]))}W(e||O.tags);for(var o=new L(a),v,f,g,q,V,d;!o.eos();){if(v=o.pos,g=o.scanUntil(p),g)for(var k=0,b=g.length;k<b;++k)q=g.charAt(k),Ae(q)?(i.push(r.length),u+=q):(l=!0,t=!0,u+=" "),r.push(["text",q,v,v+1]),v+=1,q===` `&&(y(),u="",c=0,t=!1);if(!o.scan(p))break;if(s=!0,f=o.scan(Ve)||"name",o.scan($e),f==="="?(g=o.scanUntil(se),o.scan(se),o.scanUntil(S)):f==="{"?(g=o.scanUntil($),o.scan(Ie),o.scanUntil(S),f="&"):g=o.scanUntil(S),!o.scan(S))throw new Error("Unclosed tag at "+o.pos);if(f==">"?V=[f,g,v,o.pos,u,c,t]:V=[f,g,v,o.pos],c++,r.push(V),f==="#"||f==="^")n.push(V);else if(f==="/"){if(d=n.pop(),!d)throw new Error('Unopened section "'+g+'" at '+v);if(d[1]!==g)throw new Error('Unclosed section "'+d[1]+'" at '+v)}else f==="name"||f==="{"||f==="&"?l=!0:f==="="&&W(g)}if(y(),d=n.pop(),d)throw new Error('Unclosed section "'+d[1]+'" at '+o.pos);return Re(Ee(r))}function Ee(a){for(var e=[],t,n,r=0,i=a.length;r<i;++r)t=a[r],t&&(t[0]==="text"&&n&&n[0]==="text"?(n[1]+=t[1],n[3]=t[3]):(e.push(t),n=t));return e}function Re(a){for(var e=[],t=e,n=[],r,i,s=0,l=a.length;s<l;++s)switch(r=a[s],r[0]){case"#":case"^":t.push(r),n.push(r),t=r[4]=[];break;case"/":i=n.pop(),i[5]=r[2],t=n.length>0?n[n.length-1][4]:e;break;default:t.push(r)}return e}function L(a){this.string=a,this.tail=a,this.pos=0}L.prototype.eos=function(){return this.tail===""},L.prototype.scan=function(e){var t=this.tail.match(e);if(!t||t.index!==0)return"";var n=t[0];return this.tail=this.tail.substring(n.length),this.pos+=n.length,n},L.prototype.scanUntil=function(e){var t=this.tail.search(e),n;switch(t){case-1:n=this.tail,this.tail="";break;case 0:n="";break;default:n=this.tail.substring(0,t),this.tail=this.tail.substring(t)}return this.pos+=n.length,n};function U(a,e){this.view=a,this.cache={".":this.view},this.parent=e}U.prototype.push=function(e){return new U(e,this)},U.prototype.lookup=function(e){var t=this.cache,n;if(t.hasOwnProperty(e))n=t[e];else{for(var r=this,i,s,l,u=!1;r;){if(e.indexOf(".")>0)for(i=r.view,s=e.split("."),l=0;i!=null&&l<s.length;)l===s.length-1&&(u=ie(i,s[l])||Ce(i,s[l])),i=i[s[l++]];else i=r.view[e],u=ie(r.view,e);if(u){n=i;break}r=r.parent}t[e]=n}return G(n)&&(n=n.call(this.view)),n};function C(){this.templateCache={_cache:{},set:function(e,t){this._cache[e]=t},get:function(e){return this._cache[e]},clear:function(){this._cache={}}}}C.prototype.clearCache=function(){typeof this.templateCache<"u"&&this.templateCache.clear()},C.prototype.parse=function(e,t){var n=this.templateCache,r=e+":"+(t||O.tags).join(":"),i=typeof n<"u",s=i?n.get(r):void 0;return s==null&&(s=je(e,t),i&&n.set(r,s)),s},C.prototype.render=function(e,t,n,r){var i=this.getConfigTags(r),s=this.parse(e,i),l=t instanceof U?t:new U(t,void 0);return this.renderTokens(s,l,n,e,r)},C.prototype.renderTokens=function(e,t,n,r,i){for(var s="",l,u,c,y=0,p=e.length;y<p;++y)c=void 0,l=e[y],u=l[0],u==="#"?c=this.renderSection(l,t,n,r,i):u==="^"?c=this.renderInverted(l,t,n,r,i):u===">"?c=this.renderPartial(l,t,n,i):u==="&"?c=this.unescapedValue(l,t):u==="name"?c=this.escapedValue(l,t,i):u==="text"&&(c=this.rawValue(l)),c!==void 0&&(s+=c);return s},C.prototype.renderSection=function(e,t,n,r,i){var s=this,l="",u=t.lookup(e[1]);function c(S){return s.render(S,t,n,i)}if(u){if(P(u))for(var y=0,p=u.length;y<p;++y)l+=this.renderTokens(e[4],t.push(u[y]),n,r,i);else if(typeof u=="object"||typeof u=="string"||typeof u=="number")l+=this.renderTokens(e[4],t.push(u),n,r,i);else if(G(u)){if(typeof r!="string")throw new Error("Cannot use higher-order sections without the original template");u=u.call(t.view,r.slice(e[3],e[5]),c),u!=null&&(l+=u)}else l+=this.renderTokens(e[4],t,n,r,i);return l}},C.prototype.renderInverted=function(e,t,n,r,i){var s=t.lookup(e[1]);if(!s||P(s)&&s.length===0)return this.renderTokens(e[4],t,n,r,i)},C.prototype.indentPartial=function(e,t,n){for(var r=t.replace(/[^ \t]/g,""),i=e.split(` `),s=0;s<i.length;s++)i[s].length&&(s>0||!n)&&(i[s]=r+i[s]);return i.join(` `)},C.prototype.renderPartial=function(e,t,n,r){if(n){var i=this.getConfigTags(r),s=G(n)?n(e[1]):n[e[1]];if(s!=null){var l=e[6],u=e[5],c=e[4],y=s;u==0&&c&&(y=this.indentPartial(s,c,l));var p=this.parse(y,i);return this.renderTokens(p,t,n,y,r)}}},C.prototype.unescapedValue=function(e,t){var n=t.lookup(e[1]);if(n!=null)return n},C.prototype.escapedValue=function(e,t,n){var r=this.getConfigEscape(n)||O.escape,i=t.lookup(e[1]);if(i!=null)return typeof i=="number"&&r===O.escape?String(i):r(i)},C.prototype.rawValue=function(e){return e[1]},C.prototype.getConfigTags=function(e){return P(e)?e:e&&typeof e=="object"?e.tags:void 0},C.prototype.getConfigEscape=function(e){if(e&&typeof e=="object"&&!P(e))return e.escape};var O={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(a){N.templateCache=a},get templateCache(){return N.templateCache}},N=new C;O.clearCache=function(){return N.clearCache()},O.parse=function(e,t){return N.parse(e,t)},O.render=function(e,t,n,r){if(typeof e!="string")throw new TypeError('Invalid template! Template should be a "string" but "'+ke(e)+'" was given as the first argument for mustache#render(template, view, partials)');return N.render(e,t,n,r)},O.escape=Te,O.Scanner=L,O.Context=U,O.Writer=C;const K={empty:{},en:{"*":{prefix:"Every",suffix:"",text:"Unknown","*":{any:{text:"every {{field.id}}"},value:{text:"{{value.text}}"},range:{text:"{{start.text}}-{{end.text}}"},step:{text:"every {{step.value}}"},rangeStep:{text:"{{start.text}}-{{end.text}}/{{step.value}}"}},month:{"*":{prefix:"in"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"},rangeStep:{text:"{{start.alt}}-{{end.alt}}/{{step.value}}"}},day:{"*":{prefix:"on"},noSpecific:{text:"no specific day"}},dayOfWeek:{"*":{prefix:"on"},any:{text:"every day of the week"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"},rangeStep:{text:"{{start.alt}}-{{end.alt}}/{{step.value}}"},noSpecific:{text:"no specific day of the week"}},hour:{"*":{prefix:"at"}},minute:{"*":{prefix:":"}},second:{"*":{prefix:":"}}},minute:{text:"Minute"},hour:{text:"Hour",minute:{"*":{prefix:"at",suffix:"minute(s)"},any:{text:"every"}}},day:{text:"Day"},week:{text:"Week"},month:{text:"Month",dayOfWeek:{"*":{prefix:"and"}}},year:{text:"Year",dayOfWeek:{"*":{prefix:"and"}}},"q-second":{text:"Second"},"q-minute":{text:"Minute",second:{"*":{prefix:"at",suffix:"second(s)"},any:{text:"every"}}},"q-hour":{text:"Hour",minute:{"*":{prefix:"at"}}}},de:{"*":{prefix:"Jede",suffix:"",text:"Unknown","*":{value:{text:"{{value.text}}"},range:{text:"{{start.text}}-{{end.text}}"},step:{text:"alle {{step.value}}"}},month:{"*":{prefix:"im"},any:{prefix:"in",text:"jedem Monat"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"}},day:{"*":{prefix:"den"},any:{prefix:"an",text:"jedem Tag"},step:{prefix:"",text:"alle {{step.value}} Tage"},noSpecific:{prefix:"an",text:"keinem bestimmten Tag"}},dayOfWeek:{"*":{prefix:"am"},any:{prefix:"an",text:"jedem Wochentag"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"},noSpecific:{prefix:"und",text:"keinem bestimmten Wochentag"}},hour:{"*":{prefix:"um"},any:{prefix:"zu",text:"jeder Stunde"},step:{prefix:"",text:"alle {{step.value}} Stunden"}},minute:{"*":{prefix:":"},any:{text:"jede Minute"},step:{prefix:"",text:"alle {{step.value}} Minuten"}},second:{"*":{prefix:":"},any:{text:"jede Sekunde"},step:{prefix:"",text:"alle {{step.value}} Sekunden"}}},minute:{text:"Minute"},hour:{text:"Stunde",minute:{"*":{prefix:"zu",suffix:"Minute(n)"},any:{text:"jeder"}}},day:{prefix:"Jeden",text:"Tag"},week:{text:"Woche"},month:{prefix:"Jedes",text:"Monat"},year:{prefix:"Jedes",text:"Jahr"},"q-second":{text:"Sekunde"},"q-minute":{text:"Minute",second:{"*":{prefix:"und"}}},"q-hour":{text:"Stunde",minute:{"*":{prefix:"und"}},second:{"*":{prefix:"und"}}}},pt:{"*":{prefix:"Todo(a)",suffix:"",text:"Desconhecido","*":{any:{text:"todo {{field.id}}"},value:{text:"{{value.text}}"},range:{text:"{{start.text}}-{{end.text}}"},step:{text:"todo {{step.value}}"}},month:{"*":{prefix:"de"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"},any:{text:"todo mês"}},day:{"*":{prefix:"no(s) dia(s)"},any:{text:"todos"}},dayOfWeek:{"*":{prefix:"de"},any:{text:"todos dias da semana"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"}},hour:{"*":{prefix:"às"},any:{text:"cada hora"}},minute:{"*":{prefix:":"},any:{text:"cada minuto"}}},minute:{text:"Minuto"},hour:{text:"Hora",minute:{"*":{prefix:"e",suffix:"minuto(s)"},any:{text:"cada"}}},day:{text:"Dia"},week:{text:"Semana"},month:{text:"Mês",dayOfWeek:{"*":{prefix:"e de"}}},year:{text:"Ano",dayOfWeek:{"*":{prefix:"e de"}}}},es:{"*":{prefix:"todos los",suffix:"",text:"Desconocido","*":{any:{text:"todos los {{ field.id }}"},value:{text:"{{ value.text }}"},range:{text:"{{ start.text }}-{{ end.text }}"},step:{text:"todos/as {{ step.value }}"}},month:{"*":{prefix:"en"},any:{text:"todos los meses"},value:{text:"{{ value.alt }}"},range:{text:"{{ start.alt }}-{{ end.alt }}"}},day:{"*":{prefix:"en"},any:{text:"todos los días"},value:{text:"los días {{ value.alt }}"}},dayOfWeek:{"*":{prefix:"de"},any:{text:"todos los días de la semana"},value:{text:"los {{ value.alt }}"},range:{text:"{{ start.alt }}-{{ end.alt }}"}},hour:{"*":{prefix:"a"},any:{text:"todas las horas"},value:{text:"las {{ value.text }}"}},minute:{"*":{prefix:":"},any:{text:"todos los minutos"}}},minute:{prefix:"todos los",text:"minutos"},hour:{prefix:"todas las",text:"horas",minute:{"*":{prefix:"a los",suffix:"minutos"},any:{text:"todos",prefix:"a",suffix:"los minutos"}}},day:{text:"Días"},week:{text:"Semanas"},month:{text:"Meses",dayOfWeek:{"*":{prefix:"y"}}},year:{text:"años",dayOfWeek:{"*":{prefix:"y"}}}},da:{"*":{prefix:"Hver",suffix:"",text:"Ukendt","*":{value:{text:"{{value.text}}"},range:{text:"{{start.text}}-{{end.text}}"},step:{text:"hver {{step.value}}"}},month:{"*":{prefix:"i"},any:{text:"hver måned"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"}},day:{"*":{prefix:"og"},any:{text:"hver dag i måneden"},value:{text:"{{value.alt}}."},range:{text:"{{start.alt}}.-{{end.alt}}."},noSpecific:{text:"ingen specifik dag"}},dayOfWeek:{"*":{prefix:"på"},any:{text:"hver dag i ugen"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"},noSpecific:{text:"ingen specifik dag i ugen"}},hour:{"*":{prefix:"klokken"},any:{text:"hver time"}},minute:{"*":{prefix:":"},any:{text:"hvert minut"}},second:{"*":{prefix:":"},any:{text:"hvert sekund"}}},second:{prefix:"Hvert"},minute:{prefix:"Hvert",text:"Minut"},hour:{text:"Time",minute:{"*":{prefix:"ved",suffix:"minutter"},any:{text:"alle"}}},day:{text:"Dag"},week:{text:"Uge"},month:{text:"Måned",dayOfWeek:{"*":{prefix:"og"}}},year:{prefix:"Hvert",text:"År",dayOfWeek:{"*":{prefix:"og"}}},"q-second":{text:"Sekund"},"q-minute":{text:"Minut",second:{"*":{suffix:"sekund(er)"},any:{text:"hvert"}}},"q-hour":{text:"Time",minute:{"*":{prefix:"på"}}}},zh:{"*":{prefix:"每",suffix:"",text:"未知","*":{any:{text:"每 {{field.id}}"},value:{text:"{{value.text}}"},range:{text:"{{start.text}}-{{end.text}}"},step:{text:"每 {{step.value}}"}},month:{"*":{prefix:"的"},any:{text:"每月"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"}},day:{"*":{prefix:"的"},any:{text:"每日"},value:{text:"{{value.alt}}号"},range:{text:"{{start.alt}}号-{{end.alt}}号"},noSpecific:{text:"无特定日期"}},dayOfWeek:{"*":{prefix:"的"},any:{text:"一周的每一天"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"},noSpecific:{text:"无特定星期几"}},hour:{"*":{prefix:"的"},any:{text:"每小时"}},minute:{"*":{prefix:":"},any:{text:"每分钟"}},second:{"*":{prefix:":"},any:{text:"每秒"}}},minute:{text:"分"},hour:{text:"小时",minute:{"*":{prefix:":",suffix:"分钟"},any:{text:"每"}}},day:{text:"天"},week:{text:"周",dayOfWeek:{"*":{prefix:"的"},any:{text:"每天"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"}}},month:{text:"月",dayOfWeek:{"*":{prefix:"和"}},day:{"*":{prefix:"的"}}},year:{text:"年",dayOfWeek:{"*":{prefix:"和"}}},"q-second":{text:"秒"},"q-minute":{text:"分钟",second:{"*":{prefix:":",suffix:"秒"},any:{text:"每"}}},"q-hour":{text:"小时",minute:{"*":{prefix:":"}}}},he:{"*":{prefix:"בכל",suffix:"",text:"לא ידוע","*":{value:{text:"{{value.text}}"},range:{text:"{{start.text}}-{{end.text}}"},step:{text:"כל {{step.value}}"}},month:{"*":{prefix:"ב"},any:{text:"כל חודש"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"}},day:{"*":{prefix:"ב"},any:{text:"כל יום"},value:{text:"יום {{value.alt}} לחודש"},noSpecific:{text:"ללא יום מוגדר"}},dayOfWeek:{"*":{prefix:"ב"},any:{text:"כל יום מימות השבוע"},value:{text:"ימי {{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"},noSpecific:{text:"ללא יום בשבוע מוגדר"}},hour:{"*":{prefix:"ב"},any:{text:"כל שעה"},value:{text:"שעה {{value.text}}"}},minute:{"*":{prefix:":"},any:{text:"כל דקה"}},second:{"*":{prefix:":"},any:{text:"כל שניה"}}},minute:{text:"דקה"},hour:{text:"שעה",minute:{"*":{prefix:"ב",suffix:"דקות"},any:{text:"כל"}}},day:{text:"יום"},week:{text:"שבוע"},month:{text:"חודש",dayOfWeek:{"*":{prefix:"ו"}}},year:{text:"שנה",dayOfWeek:{"*":{prefix:"ו"}}},"q-second":{text:"שניה"},"q-minute":{text:"דקה",second:{"*":{prefix:"ב",suffix:"שניות"},any:{text:"כל"}}},"q-hour":{text:"שעה",minute:{"*":{prefix:"ב"}}}},ru:{"*":{prefix:"Каждый",suffix:"",text:"Неизвестно","*":{value:{text:"{{value.text}}"},range:{text:"{{start.text}}-{{end.text}}"},step:{text:"каждый {{step.value}}"}},month:{"*":{prefix:"в"},any:{prefix:"в",text:"каждом месяце"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"}},day:{"*":{prefix:"в"},any:{prefix:"в",text:"каждый день"},step:{prefix:"",text:"каждые {{step.value}} дня"},noSpecific:{prefix:"в",text:"нет определенного дня"}},dayOfWeek:{"*":{prefix:"по"},any:{prefix:"по",text:"каждому дню недели"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"},noSpecific:{prefix:"и",text:"нет определенного дня недели"}},hour:{"*":{prefix:"в"},any:{prefix:"в",text:"каждый час"},step:{prefix:"",text:"каждые {{step.value}} часа"}},minute:{"*":{prefix:":"},any:{text:"каждую минуту"},step:{prefix:"",text:"каждые {{step.value}} минуты"}},second:{"*":{prefix:":"},any:{text:"каждую секунду"},step:{prefix:"",text:"каждые {{step.value}} секунды"}}},minute:{text:"Минута"},hour:{text:"Час",minute:{"*":{prefix:"в",suffix:"минут(а/ы)"},any:{text:"каждый"}}},day:{prefix:"Каждый",text:"День"},week:{text:"Неделя"},month:{prefix:"Каждый",text:"Месяц"},year:{prefix:"Каждый",text:"Год"},"q-second":{text:"Секунда"},"q-minute":{text:"Минута",second:{"*":{prefix:"и"}}},"q-hour":{text:"Час",minute:{"*":{prefix:"и"}},second:{"*":{prefix:"и"}}}},fr:{"*":{prefix:"Toutes",suffix:"",text:"Inconnu","*":{value:{text:"{{value.text}}"},range:{text:"{{start.text}}-{{end.text}}"},step:{text:"tous les {{step.value}}"}},month:{"*":{prefix:"en"},any:{prefix:"en",text:"tous les mois"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"}},day:{"*":{prefix:"le"},any:{prefix:"à",text:"tous les jours"},step:{prefix:"",text:"tous les {{step.value}} jours"},noSpecific:{prefix:"à",text:"aucun jour particulier"}},dayOfWeek:{"*":{prefix:"le"},any:{prefix:"à",text:"tous les jours de la semaine"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"},noSpecific:{prefix:"et",text:"aucun jour de la semaine particulier"}},hour:{"*":{prefix:"à"},any:{prefix:"à",text:"toutes les heures"},step:{prefix:"",text:"toutes les {{step.value}} heures"}},minute:{"*":{prefix:":"},any:{text:"toutes les minutes"},step:{prefix:"",text:"toutes les {{step.value}} minutes"}},second:{"*":{prefix:":"},any:{text:"toutes les secondes"},step:{prefix:"",text:"toutes les {{step.value}} secondes"}}},minute:{text:"Minute"},hour:{text:"Heure",minute:{"*":{prefix:"à",suffix:"minute(s)"},any:{text:"toutes"}}},day:{prefix:"Tous",text:"Jour"},week:{text:"Semaine"},month:{prefix:"Tous",text:"Mois"},year:{prefix:"Tous",text:"Année"},"q-second":{text:"Seconde"},"q-minute":{text:"Minute",second:{"*":{prefix:"et"}}},"q-hour":{text:"Heure",minute:{"*":{prefix:"et"}},second:{"*":{prefix:"et"}}}},hi:{"*":{prefix:"हर",suffix:"",text:"अज्ञात","*":{value:{text:"{{value.text}}"},range:{text:"{{start.text}}-{{end.text}}"},step:{text:"{{step.value}} हर"}},month:{"*":{prefix:"में"},any:{prefix:"के",text:"हर महीने"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"}},day:{"*":{prefix:"के"},any:{prefix:"पर",text:"हर दिन"},step:{prefix:"",text:"{{step.value}} दिन हर"},noSpecific:{prefix:"पर",text:"कोई विशेष दिन नहीं"}},dayOfWeek:{"*":{prefix:"पर"},any:{prefix:"पर",text:"हर सप्ताह"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"},noSpecific:{prefix:"और",text:"कोई विशेष सप्ताह नहीं"}},hour:{"*":{prefix:"को"},any:{prefix:"पर",text:"हर घंटे"},step:{prefix:"",text:"{{step.value}} घंटे हर"}},minute:{"*":{prefix:":"},any:{text:"हर मिनट"},step:{prefix:"",text:"{{step.value}} मिनट हर"}},second:{"*":{prefix:":"},any:{text:"हर सेकंड"},step:{prefix:"",text:"{{step.value}} सेकंड हर"}}},minute:{text:"मिनट"},hour:{text:"घंटा",minute:{"*":{prefix:"पर",suffix:"मिनट"},any:{text:"हर"}}},day:{prefix:"हर",text:"दिन"},week:{text:"सप्ताह"},month:{prefix:"हर",text:"महीना"},year:{prefix:"हर",text:"साल"},"q-second":{text:"सेकंड"},"q-minute":{text:"मिनट",second:{"*":{prefix:"और"}}},"q-hour":{text:"घंटा",minute:{"*":{prefix:"और"}},second:{"*":{prefix:"और"}}}},ja:{"*":{prefix:"毎",suffix:"",text:"不明","*":{value:{text:"{{value.text}}"},range:{text:"{{start.text}}-{{end.text}}"},step:{text:"{{step.value}}ごとに"}},month:{"*":{prefix:"に"},any:{prefix:"の",text:"毎月"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"}},day:{"*":{prefix:"の"},any:{prefix:"に",text:"毎日"},step:{prefix:"",text:"{{step.value}}日ごとに"},noSpecific:{prefix:"に",text:"特定の日はなし"}},dayOfWeek:{"*":{prefix:"の"},any:{prefix:"に",text:"毎週"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"},noSpecific:{prefix:"と",text:"特定の曜日はなし"}},hour:{"*":{prefix:"の"},any:{prefix:"に",text:"毎時"},step:{prefix:"",text:"{{step.value}}時間ごとに"}},minute:{"*":{prefix:":"},any:{text:"毎分"},step:{prefix:"",text:"{{step.value}}分ごとに"}},second:{"*":{prefix:":"},any:{text:"毎秒"},step:{prefix:"",text:"{{step.value}}秒ごとに"}}},minute:{text:"分"},hour:{text:"時",minute:{"*":{prefix:"に",suffix:"分"},any:{text:"毎"}}},day:{prefix:"毎",text:"日"},week:{text:"週"},month:{prefix:"毎",text:"月"},year:{prefix:"毎",text:"年"},"q-second":{text:"秒"},"q-minute":{text:"分",second:{"*":{prefix:"と"}}},"q-hour":{text:"時",minute:{"*":{prefix:"と"}},second:{"*":{prefix:"と"}}}},ko:{"*":{prefix:"매",suffix:"",text:"알 수 없음","*":{value:{text:"{{value.text}}"},range:{text:"{{start.text}}-{{end.text}}"},step:{text:"{{step.value}}마다"}},month:{"*":{prefix:"에"},any:{prefix:"의",text:"매월"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"}},day:{"*":{prefix:"의"},any:{prefix:"에",text:"매일"},step:{prefix:"",text:"{{step.value}}일마다"},noSpecific:{prefix:"에",text:"특정한 날 없음"}},dayOfWeek:{"*":{prefix:"의"},any:{prefix:"에",text:"매주"},value:{text:"{{value.alt}}"},range:{text:"{{start.alt}}-{{end.alt}}"},noSpecific:{prefix:"과",text:"특정한 요일 없음"}},hour:{"*":{prefix:"의"},any:{prefix:"에",text:"매시"},step:{prefix:"",text:"{{step.value}}시간마다"}},minute:{"*":{prefix:":"},any:{text:"매분"},step:{prefix:"",text:"{{step.value}}분마다"}},second:{"*":{prefix:":"},any:{text:"매초"},step:{prefix:"",text:"{{step.value}}초마다"}}},minute:{text:"분"},hour:{text:"시",minute:{"*":{prefix:"에",suffix:"분"},any:{text:"매"}}},day:{prefix:"매",text:"일"},week:{text:"주"},month:{prefix:"매",text:"월"},year:{prefix:"매",text:"년"},"q-second":{text:"초"},"q-minute":{text:"분",second:{"*":{prefix:"와"}}},"q-hour":{text:"시",minute:{"*":{prefix:"와"}},second:{"*":{prefix:"와"}}}}};class le{constructor(e){m(this,"dict");this.dict=e}getTemplate(...e){const t=e.map(n=>[n,"*"]);return te(this.dict,...t)||""}render(e,t,n,r,i){const s=this.getTemplate(e,t,n,r);return O.render(s,i||{})}}function ue(a,e){const[t]=a.split("-"),n=K[a.toLowerCase()]||K[t.toLowerCase()]||K.en,r=Y({},K.en,n,e||{});return new le(r)}function Pe(a){const{period:e,field:t,initialCron:n="*",l10n:r}=a,i=x.ref(n),s=x.ref(""),l=x.ref([]),u=x.ref(""),c=x.ref(""),y=x.ref(""),p=o=>{const v=o instanceof H?o.segments:[o];u.value=v.map(f=>r.render(e.value.id,t.id,f.type,M.Text,{field:t,...f.items})).join(","),c.value=r.getTemplate(e.value.id,t.id,o.type,M.Prefix),y.value=r.getTemplate(e.value.id,t.id,o.type,M.Suffix)},S=o=>{const v=ae(o,t);v!=null?(l.value=v.toArray(),p(v)):s.value=`${o} is not a valid cron segment (${t.id})`},$=o=>{if(i.value=="?"&&o.length==0)return;const v=Se(o,t);v!=null?(i.value=v.toCron(),p(v)):s.value=`failed to convert ${o} to cron (${t.id})`};S(n);const W=o=>{const v=Array.from(o).sort((f,g)=>f>g?1:-1);l.value=v};return x.watch(i,o=>{S(o)}),x.watch(l,o=>{$(o)}),x.watch(e,()=>{const o=ae(i.value,t);o!=null&&p(o)}),{id:t.id,items:t.items,cron:i,selected:l,error:s,select:W,text:u,prefix:c,suffix:y}}function oe(a,e="*"){return new Array(a).fill(e).join(" ")}function Ue(a){return a!==void 0}class De{constructor(){m(this,"locale","en");m(this,"format","crontab")}initialValue(e,t="*"){return oe(e,t)}fields(e,t){const n=e=="quartz"||e=="spring",r=ee(t,e),i=s=>(l,{segmentMap:u})=>{if(l.cron.value=="?")return;const c=u.get(s);c&&(c.cron.value="?")};return[...n?[{id:"second",items:r.secondItems}]:[],{id:"minute",items:r.minuteItems},{id:"hour",items:r.hourItems},{id:"day",items:r.dayItems,onChange:n?i("dayOfWeek"):void 0,segmentFactories:n?[T.fromString,Q.fromString,E.fromString,j.fromString,R.fromString]:void 0},{id:"month",items:r.monthItems},{id:"dayOfWeek",items:r.dayOfWeekItems,onChange:n?i("day"):void 0,segmentFactories:n?[T.fromString,Q.fromString,E.fromString,j.fromString,R.fromString]:void 0}]}periods(e){const t=e=="quartz"||e=="spring",n=t?[{id:"q-second",value:[]}]:[],r=t?["second"]:[],i=t?"q-":"";return[...n,{id:i+"minute",value:[...r]},{id:i+"hour",value:["minute",...r]},{id:"day",value:["hour","minute",...r]},{id:"week",value:["dayOfWeek","hour","minute",...r]},{id:"month",value:["day","dayOfWeek","hour","minute",...r]},{id:"year",value:["month","day","dayOfWeek","hour","minute",...r]}]}}function Fe(a,e,t){const n=e.split(" ");if(n.length!==t.length)return;const r=t.filter((i,s)=>!["*","?"].includes(n[s])).map(i=>i.id);return a.find(i=>{const s=new Set(i.value);return r.every(l=>s.has(l))})}function fe(a){const e=new De,t=a.locale??e.locale,n=a.format??e.format,{customLocale:r,fields:i=e.fields(n,t)}=a,s=a.initialValue??e.initialValue(i.length),l=ue(t,r),u=(a.periods??e.periods(n)).map(d=>({...d,text:d.text??l.getTemplate(d.id,M.Text)})),c=(a.initialPeriod?u.find(d=>d.id==a.initialPeriod):void 0)??Fe([...u].reverse(),s,i)??u[u.length-1],y=x.ref(s),p=x.ref(""),S=x.ref(c),$=x.ref(""),W=x.ref(""),o=i.map(d=>Pe({field:new _(d),l10n:l,period:S})),v=new Map(o.map(d=>[d.id,d])),f=x.computed(()=>S.value.value.map(d=>{const k=v.get(d);if(Ue(k))return k;throw Error("${fieldId} not found")})),g=d=>{if(!d){y.value=oe(i.length);return}const k=d.split(" ");if(k.length!==i.length){p.value="invalid pattern";return}for(let b=0;b<k.length;b++)o[b].cron.value!=k[b]&&(o[b].cron.value=k[b]);p.value=""};g(s);const q=()=>{y.value=o.map(d=>S.value.value.includes(d.id)||d.cron.value=="?"?d.cron.value:"*").join(" ")},V=()=>{$.value=l.getTemplate(S.value.id,M.Prefix),W.value=l.getTemplate(S.value.id,M.Suffix)};return V(),x.watch(y,g),x.watch(S,()=>{q(),V()}),o.forEach((d,k)=>{x.watch(d.cron,()=>{var b,A;(A=(b=i[k]).onChange)==null||A.call(b,d,{segmentMap:v}),q()}),x.watch(d.error,b=>{p.value=b})}),{cron:y,error:p,segments:o,selected:f,period:{select:d=>{const k=u.map(b=>b.id).indexOf(d);k!=-1&&(S.value=u[k])},selected:S,items:u,prefix:$,suffix:W}}}function xe(a,{emit:e}){const t={...a,initialValue:a.modelValue,initialPeriod:a.period},n=fe(t);return x.watch(()=>a.modelValue,r=>{r&&(n.cron.value=r)}),x.watch(()=>a.period,r=>{r&&n.period.select(r)}),x.watch(n.cron,r=>{e("update:model-value",r)}),x.watch(n.period.selected,r=>{e("update:period",r.id)}),x.watch(n.error,r=>{e("error",r)}),n}const ce=()=>({modelValue:{type:String},period:{type:String},format:{type:String},locale:{type:String},fields:{type:Array},periods:{type:Array},customLocale:{type:Object},cols:{type:Object,default:()=>({second:5,minute:5,hour:4,day:4})},disabled:{type:Boolean,default:!1}}),pe=x.defineComponent({name:"VueCronCore",props:ce(),emits:["update:model-value","update:period","error"],setup(a,e){const{error:t,selected:n,period:r}=xe(a,e);return()=>{var s,l;const i={error:t,fields:n.value.map(u=>({id:u.id,items:u.items,cron:u.cron.value,selectedStr:u.text.value,events:{"update:model-value":u.select},attrs:{modelValue:u.selected.value},prefix:u.prefix.value,suffix:u.suffix.value})),period:{attrs:{modelValue:r.selected.value.id},events:{"update:model-value":r.select},items:r.items,prefix:r.prefix.value,suffix:r.suffix.value}};return(l=(s=e.slots).default)==null?void 0:l.call(s,i)}}});function He(a){const{items:e}=a,t=new Set,n=x.ref(0),r=()=>{n.value=n.value+1},i=p=>{e.indexOf(p)!=-1&&(t.add(p),r())},s=p=>t.has(p),l=p=>{t.delete(p)&&r()};return{values:t,add:i,toggle:p=>{s(p)?l(p):i(p)},remove:l,clear:()=>{t.clear(),r()},updated:n,equals:p=>{if(p.length!=t.size)return!1;for(const S of p)if(!t.has(S))return!1;return!0}}}function de(){return{modelValue:{type:[String,Number,Array]},selection:{type:String},clearable:{type:Boolean,default:!1},items:{type:Array,default:()=>[]},multiple:{type:Boolean,default:!1},cols:{type:Number,default:1},itemText:{type:[String,Function],default:"text"},itemValue:{type:[String,Function],default:"value"},disabled:{type:Boolean,default:!1}}}function Z(a){const{items:e,cols:t=1,multiple:n=!1,itemText:r="text",itemValue:i="value"}=a,s=He(a),l=n?x.ref([]):x.ref(null),u=x.ref(""),c=f=>{n?s.toggle(f):(s.clear(),s.add(f))},y=f=>{if(f===null)return!1;const g=p(f);return Array.isArray(l.value)?l.value.includes(g):l.value===g},p=f=>typeof i=="function"?i(f):f[i],S=f=>typeof r=="function"?r(f):f[r],$=new Map(e.map(f=>[p(f),f])),W=f=>{s.equals(f)||(s.clear(),f.forEach(g=>c(g)))},o=f=>{f=Array.isArray(f)?f:[f];const g=f.map(q=>$.get(q)).filter(q=>!!q);W(g)};x.watch(s.updated,()=>{const f=Array.from(s.values);l.value=n?f.map(p):p(f[0]),u.value=f.map(S).join(",")});const v=x.computed(()=>n?!Array.isArray(l.value)||l.value.length==0:!!l.value);return{...s,select:c,selected:l,selectedStr:u,itemRows:ne(e,t),setItems:W,setValues:o,isEmpty:v,has:y}}function Le(a,e,{emit:t}){const n=Z(a);return x.watch(n.selected,()=>{t("update:model-value",n.selected.value)}),x.watch(e,r=>{r&&n.setValues(r)},{immediate:!0}),n}const Ne=x.defineComponent({name:"RenderlessSelect",props:{...de(),modelValue:{type:[String,Number,Array]},selection:{type:String},clearable:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(a,{emit:e,slots:t}){const n=Z(a);return x.watch(n.selected,()=>{e("update:modelValue",n.selected.value)}),x.watch(()=>a.modelValue,r=>{r&&n.setValues(r)},{immediate:!0}),()=>{var i;const r={selectedStr:a.selection||n.selectedStr.value,modelValue:a.modelValue,items:a.items,select:n.select,isSelected:n.has,clearable:a.clearable&&!n.isEmpty.value,clear:n.clear,cols:a.cols,rows:n.itemRows.length,itemRows:n.itemRows,multiple:a.multiple,itemText:a.itemText,itemValue:a.itemValue};return(i=t.default)==null?void 0:i.call(t,r)}}}),he={install:a=>{a.component("CronCore",pe)}};h.CronCore=pe,h.CronCorePlugin=he,h.FieldPattern=w,h.FieldWrapper=_,h.L10nEngine=le,h.RenderlessSelect=Ne,h.TextPosition=M,h.createL10n=ue,h.cronCoreProps=ce,h.default=he,h.defaultItems=ee,h.genItems=I,h.pad=B,h.selectProps=de,h.setupCron=xe,h.setupSelect=Le,h.splitArray=ne,h.useCron=fe,h.useSelect=Z,Object.defineProperties(h,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}); //# sourceMappingURL=core.umd.cjs.map