{"version":3,"sources":["../../../../src/components/VCalendar/util/timestamp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACO,IAAM,WAAW,GAAW,8EAA5B;;AACA,IAAM,UAAU,GAAW,+BAA3B;;AAEA,IAAM,aAAa,GAAa,CAAC,CAAD,EAAI,EAAJ,EAAQ,EAAR,EAAY,EAAZ,EAAgB,EAAhB,EAAoB,EAApB,EAAwB,EAAxB,EAA4B,EAA5B,EAAgC,EAAhC,EAAoC,EAApC,EAAwC,EAAxC,EAA4C,EAA5C,EAAgD,EAAhD,CAAhC;;AACA,IAAM,kBAAkB,GAAa,CAAC,CAAD,EAAI,EAAJ,EAAQ,EAAR,EAAY,EAAZ,EAAgB,EAAhB,EAAoB,EAApB,EAAwB,EAAxB,EAA4B,EAA5B,EAAgC,EAAhC,EAAoC,EAApC,EAAwC,EAAxC,EAA4C,EAA5C,EAAgD,EAAhD,CAArC;;AACA,IAAM,iBAAiB,GAAG,EAA1B;;AACA,IAAM,iBAAiB,GAAG,EAA1B;;AACA,IAAM,SAAS,GAAG,EAAlB;;AACA,IAAM,SAAS,GAAG,CAAlB;;AACA,IAAM,OAAO,GAAG,CAAhB;;AACA,IAAM,YAAY,GAAG,CAArB;;AACA,IAAM,eAAe,GAAG,EAAxB;;AACA,IAAM,YAAY,GAAG,EAArB;;AACA,IAAM,UAAU,GAAG,CAAnB;;;AA+BD,SAAU,cAAV,CAA0B,SAA1B,EAAiD,QAAjD,EAAqE,KAArE,EAAuF;AAC3F,MAAM,KAAK,GAAG,aAAa,CAAC,SAAD,CAA3B;AACA,EAAA,WAAW,CAAC,KAAD,EAAQ,QAAQ,CAAC,CAAD,CAAhB,EAAqB,OAArB,CAAX;AACA,EAAA,eAAe,CAAC,KAAD,CAAf;;AACA,MAAI,KAAJ,EAAW;AACT,IAAA,cAAc,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAK,CAAC,OAArB,CAAd;AACD;;AACD,SAAO,KAAP;AACD;;AAEK,SAAU,YAAV,CAAwB,SAAxB,EAA+C,QAA/C,EAAmE,KAAnE,EAAqF;AACzF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAD,CAAzB;AACA,EAAA,WAAW,CAAC,GAAD,EAAM,QAAQ,CAAC,QAAQ,CAAC,MAAT,GAAkB,CAAnB,CAAd,CAAX;AACA,EAAA,eAAe,CAAC,GAAD,CAAf;;AACA,MAAI,KAAJ,EAAW;AACT,IAAA,cAAc,CAAC,GAAD,EAAM,KAAN,EAAa,GAAG,CAAC,OAAjB,CAAd;AACD;;AACD,SAAO,GAAP;AACD;;AAEK,SAAU,eAAV,CAA2B,SAA3B,EAAgD;AACpD,MAAM,KAAK,GAAG,aAAa,CAAC,SAAD,CAA3B;AACA,EAAA,KAAK,CAAC,GAAN,GAAY,OAAZ;AACA,EAAA,aAAa,CAAC,KAAD,CAAb;AACA,EAAA,eAAe,CAAC,KAAD,CAAf;AACA,SAAO,KAAP;AACD;;AAEK,SAAU,aAAV,CAAyB,SAAzB,EAA8C;AAClD,MAAM,GAAG,GAAG,aAAa,CAAC,SAAD,CAAzB;AACA,EAAA,GAAG,CAAC,GAAJ,GAAU,WAAW,CAAC,GAAG,CAAC,IAAL,EAAW,GAAG,CAAC,KAAf,CAArB;AACA,EAAA,aAAa,CAAC,GAAD,CAAb;AACA,EAAA,eAAe,CAAC,GAAD,CAAf;AACA,SAAO,GAAP;AACD;;AAEK,SAAU,SAAV,CAAqB,KAArB,EAA+B;AACnC,MAAI,OAAO,KAAP,KAAiB,QAArB,EAA+B;AAC7B;AACA,WAAO,KAAP;AACD,GAHD,MAGO,IAAI,OAAO,KAAP,KAAiB,QAArB,EAA+B;AACpC;AACA,QAAM,KAAK,GAAG,UAAU,CAAC,IAAX,CAAgB,KAAhB,CAAd;;AACA,QAAI,CAAC,KAAL,EAAY;AACV,aAAO,KAAP;AACD;;AACD,WAAO,QAAQ,CAAC,KAAK,CAAC,CAAD,CAAN,CAAR,GAAqB,EAArB,GAA0B,QAAQ,CAAC,KAAK,CAAC,CAAD,CAAL,IAAY,CAAb,CAAzC;AACD,GAPM,MAOA,IAAI,QAAO,KAAP,MAAiB,QAArB,EAA+B;AACpC;AACA,QAAI,OAAO,KAAK,CAAC,IAAb,KAAsB,QAAtB,IAAkC,OAAO,KAAK,CAAC,MAAb,KAAwB,QAA9D,EAAwE;AACtE,aAAO,KAAP;AACD;;AACD,WAAO,KAAK,CAAC,IAAN,GAAa,EAAb,GAAkB,KAAK,CAAC,MAA/B;AACD,GANM,MAMA;AACL;AACA,WAAO,KAAP;AACD;AACF;;AAEK,SAAU,iBAAV,CAA6B,KAA7B,EAAuC;AAC3C,SAAO,CAAC,CAAC,WAAW,CAAC,IAAZ,CAAiB,KAAjB,CAAT;AACD;;AAEK,SAAU,cAAV,CAA0B,KAA1B,EAAyC,GAAzC,EAAyD;AAC7D;AACA,MAAM,KAAK,GAAG,WAAW,CAAC,IAAZ,CAAiB,KAAjB,CAAd;AAEA,MAAI,CAAC,KAAL,EAAY,OAAO,IAAP;AAEZ,MAAM,SAAS,GAAe;AAC5B,IAAA,IAAI,EAAE,KADsB;AAE5B,IAAA,IAAI,EAAE,EAFsB;AAG5B,IAAA,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAD,CAAN,CAHc;AAI5B,IAAA,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAD,CAAN,CAJa;AAK5B,IAAA,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAD,CAAN,CAAR,IAAsB,CALC;AAM5B,IAAA,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAD,CAAN,CAAR,IAAsB,CANA;AAO5B,IAAA,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAD,CAAN,CAAR,IAAsB,CAPF;AAQ5B,IAAA,OAAO,EAAE,CARmB;AAS5B,IAAA,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAD,CATa;AAU5B,IAAA,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAD,CAAL,IAAY,KAAK,CAAC,CAAD,CAAnB,CAVkB;AAW5B,IAAA,IAAI,EAAE,KAXsB;AAY5B,IAAA,OAAO,EAAE,KAZmB;AAa5B,IAAA,MAAM,EAAE;AAboB,GAA9B;AAgBA,EAAA,aAAa,CAAC,SAAD,CAAb;AACA,EAAA,eAAe,CAAC,SAAD,CAAf;;AAEA,MAAI,GAAJ,EAAS;AACP,IAAA,cAAc,CAAC,SAAD,EAAY,GAAZ,EAAiB,SAAS,CAAC,OAA3B,CAAd;AACD;;AAED,SAAO,SAAP;AACD;;AAEK,SAAU,SAAV,CAAqB,IAArB,EAA+B;AACnC,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,EADe;AAErB,IAAA,IAAI,EAAE,EAFe;AAGrB,IAAA,IAAI,EAAE,IAAI,CAAC,WAAL,EAHe;AAIrB,IAAA,KAAK,EAAE,IAAI,CAAC,QAAL,KAAkB,CAJJ;AAKrB,IAAA,GAAG,EAAE,IAAI,CAAC,OAAL,EALgB;AAMrB,IAAA,OAAO,EAAE,IAAI,CAAC,MAAL,EANY;AAOrB,IAAA,IAAI,EAAE,IAAI,CAAC,QAAL,EAPe;AAQrB,IAAA,MAAM,EAAE,IAAI,CAAC,UAAL,EARa;AASrB,IAAA,MAAM,EAAE,IATa;AAUrB,IAAA,OAAO,EAAE,IAVY;AAWrB,IAAA,IAAI,EAAE,KAXe;AAYrB,IAAA,OAAO,EAAE,IAZY;AAarB,IAAA,MAAM,EAAE;AAba,GAAD,CAAtB;AAeD;;AAEK,SAAU,gBAAV,CAA4B,SAA5B,EAAiD;AACrD,SAAO,SAAS,CAAC,IAAV,GAAiB,KAAjB,GAAyB,SAAS,CAAC,KAAV,GAAkB,GAA3C,GAAiD,SAAS,CAAC,GAAlE;AACD;;AAEK,SAAU,iBAAV,CAA6B,SAA7B,EAAkD;AACtD,SAAO,SAAS,CAAC,IAAV,GAAiB,GAAjB,GAAuB,SAAS,CAAC,MAAxC;AACD;;AAEK,SAAU,sBAAV,CAAkC,SAAlC,EAAuD;AAC3D,SAAO,gBAAgB,CAAC,SAAD,CAAhB,GAA8B,KAA9B,GAAsC,iBAAiB,CAAC,SAAD,CAA9D;AACD;;AAEK,SAAU,cAAV,CAA0B,SAA1B,EAAiD,GAAjD,EAA8E;AAAA,MAAZ,IAAY,uEAAL,KAAK;AAClF,MAAI,CAAC,GAAG,gBAAgB,CAAC,GAAD,CAAxB;AACA,MAAI,CAAC,GAAG,gBAAgB,CAAC,SAAD,CAAxB;AACA,MAAI,OAAO,GAAG,CAAC,KAAK,CAApB;;AAEA,MAAI,SAAS,CAAC,OAAV,IAAqB,IAArB,IAA6B,OAAjC,EAA0C;AACxC,IAAA,CAAC,GAAG,iBAAiB,CAAC,GAAD,CAArB;AACA,IAAA,CAAC,GAAG,iBAAiB,CAAC,SAAD,CAArB;AACA,IAAA,OAAO,GAAG,CAAC,KAAK,CAAhB;AACD;;AAED,EAAA,SAAS,CAAC,IAAV,GAAiB,CAAC,GAAG,CAArB;AACA,EAAA,SAAS,CAAC,OAAV,GAAoB,OAApB;AACA,EAAA,SAAS,CAAC,MAAV,GAAmB,CAAC,GAAG,CAAvB;AAEA,SAAO,SAAP;AACD;;AAEK,SAAU,aAAV,CAAyB,SAAzB,EAAgD,OAAhD,EAAiE,GAAjE,EAAiF;AACrF,EAAA,SAAS,CAAC,OAAV,GAAoB,IAApB;AACA,EAAA,SAAS,CAAC,IAAV,GAAiB,IAAI,CAAC,KAAL,CAAW,OAAO,GAAG,eAArB,CAAjB;AACA,EAAA,SAAS,CAAC,MAAV,GAAmB,OAAO,GAAG,eAA7B;AACA,EAAA,SAAS,CAAC,IAAV,GAAiB,OAAO,CAAC,SAAD,CAAxB;;AACA,MAAI,GAAJ,EAAS;AACP,IAAA,cAAc,CAAC,SAAD,EAAY,GAAZ,EAAiB,IAAjB,CAAd;AACD;;AAED,SAAO,SAAP;AACD;;AAEK,SAAU,aAAV,CAAyB,SAAzB,EAA8C;AAClD,EAAA,SAAS,CAAC,OAAV,GAAoB,UAAU,CAAC,SAAD,CAA9B;AAEA,SAAO,SAAP;AACD;;AAEK,SAAU,eAAV,CAA2B,SAA3B,EAAgD;AACpD,EAAA,SAAS,CAAC,IAAV,GAAiB,OAAO,CAAC,SAAD,CAAxB;AACA,EAAA,SAAS,CAAC,IAAV,GAAiB,OAAO,CAAC,SAAD,CAAxB;AAEA,SAAO,SAAP;AACD;;AAEK,SAAU,UAAV,CAAsB,SAAtB,EAA2C;AAC/C,MAAI,SAAS,CAAC,MAAd,EAAsB;AACpB,QAAM,CAAC,GAAG,IAAI,CAAC,KAAf;AACA,QAAM,CAAC,GAAG,SAAS,CAAC,GAApB;AACA,QAAM,CAAC,GAAI,CAAC,SAAS,CAAC,KAAV,GAAkB,CAAnB,IAAwB,SAAzB,GAAsC,CAAhD;;AACA,QAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAV,GAAiB,GAAlB,CAAX;;AACA,QAAM,CAAC,GAAI,SAAS,CAAC,IAAV,GAAiB,GAAlB,IAA0B,SAAS,CAAC,KAAV,IAAmB,CAAnB,GAAuB,CAAvB,GAA2B,CAArD,CAAV;AAEA,WAAO,CAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAN,GAAU,GAAX,CAAL,GAAuB,IAAI,CAA3B,GAA+B,CAA/B,GAAmC,CAAC,CAAC,CAAC,GAAG,CAAL,CAApC,GAA8C,CAAC,CAAC,CAAC,GAAG,CAAL,CAAhD,IAA2D,CAA5D,GAAiE,CAAlE,IAAuE,CAA9E;AACD;;AAED,SAAO,SAAS,CAAC,OAAjB;AACD;;AAEK,SAAU,UAAV,CAAsB,IAAtB,EAAkC;AACtC,SAAS,IAAI,GAAG,CAAP,KAAa,CAAd,IAAqB,IAAI,GAAG,GAAP,KAAe,CAArC,IAA6C,IAAI,GAAG,GAAP,KAAe,CAAnE;AACD;;AAEK,SAAU,WAAV,CAAuB,IAAvB,EAAqC,KAArC,EAAkD;AACtD,SAAO,UAAU,CAAC,IAAD,CAAV,GAAmB,kBAAkB,CAAC,KAAD,CAArC,GAA+C,aAAa,CAAC,KAAD,CAAnE;AACD;;AAEK,SAAU,aAAV,CAAyB,SAAzB,EAA8C;AAAA,MAC1C,IAD0C,GACsD,SADtD,CAC1C,IAD0C;AAAA,MACpC,IADoC,GACsD,SADtD,CACpC,IADoC;AAAA,MAC9B,IAD8B,GACsD,SADtD,CAC9B,IAD8B;AAAA,MACxB,KADwB,GACsD,SADtD,CACxB,KADwB;AAAA,MACjB,GADiB,GACsD,SADtD,CACjB,GADiB;AAAA,MACZ,OADY,GACsD,SADtD,CACZ,OADY;AAAA,MACH,IADG,GACsD,SADtD,CACH,IADG;AAAA,MACG,MADH,GACsD,SADtD,CACG,MADH;AAAA,MACW,MADX,GACsD,SADtD,CACW,MADX;AAAA,MACmB,OADnB,GACsD,SADtD,CACmB,OADnB;AAAA,MAC4B,IAD5B,GACsD,SADtD,CAC4B,IAD5B;AAAA,MACkC,OADlC,GACsD,SADtD,CACkC,OADlC;AAAA,MAC2C,MAD3C,GACsD,SADtD,CAC2C,MAD3C;AAGlD,SAAO;AAAE,IAAA,IAAI,EAAJ,IAAF;AAAQ,IAAA,IAAI,EAAJ,IAAR;AAAc,IAAA,IAAI,EAAJ,IAAd;AAAoB,IAAA,KAAK,EAAL,KAApB;AAA2B,IAAA,GAAG,EAAH,GAA3B;AAAgC,IAAA,OAAO,EAAP,OAAhC;AAAyC,IAAA,IAAI,EAAJ,IAAzC;AAA+C,IAAA,MAAM,EAAN,MAA/C;AAAuD,IAAA,MAAM,EAAN,MAAvD;AAA+D,IAAA,OAAO,EAAP,OAA/D;AAAwE,IAAA,IAAI,EAAJ,IAAxE;AAA8E,IAAA,OAAO,EAAP,OAA9E;AAAuF,IAAA,MAAM,EAAN;AAAvF,GAAP;AACD;;AAEK,SAAU,SAAV,CAAqB,CAArB,EAAgC,MAAhC,EAA8C;AAClD,MAAI,MAAM,GAAG,MAAM,CAAC,CAAD,CAAnB;;AACA,SAAO,MAAM,CAAC,MAAP,GAAgB,MAAvB,EAA+B;AAC7B,IAAA,MAAM,GAAG,MAAM,MAAf;AACD;;AAED,SAAO,MAAP;AACD;;AAEK,SAAU,OAAV,CAAmB,SAAnB,EAAwC;AAC5C,MAAI,GAAG,aAAM,SAAS,CAAC,SAAS,CAAC,IAAX,EAAiB,CAAjB,CAAf,cAAsC,SAAS,CAAC,SAAS,CAAC,KAAX,EAAkB,CAAlB,CAA/C,CAAP;AAEA,MAAI,SAAS,CAAC,MAAd,EAAsB,GAAG,eAAQ,SAAS,CAAC,SAAS,CAAC,GAAX,EAAgB,CAAhB,CAAjB,CAAH;AAEtB,SAAO,GAAP;AACD;;AAEK,SAAU,OAAV,CAAmB,SAAnB,EAAwC;AAC5C,MAAI,CAAC,SAAS,CAAC,OAAf,EAAwB;AACtB,WAAO,EAAP;AACD;;AAED,mBAAU,SAAS,CAAC,SAAS,CAAC,IAAX,EAAiB,CAAjB,CAAnB,cAA0C,SAAS,CAAC,SAAS,CAAC,MAAX,EAAmB,CAAnB,CAAnD;AACD;;AAEK,SAAU,WAAV,CAAuB,SAAvB,EAA8C,OAA9C,EAA6D;AACjE,EAAA,SAAS,CAAC,MAAV,IAAoB,OAApB;;AACA,SAAO,SAAS,CAAC,MAAV,GAAmB,eAA1B,EAA2C;AACzC,IAAA,SAAS,CAAC,MAAV,IAAoB,eAApB;AACA,IAAA,SAAS,CAAC,IAAV;;AACA,QAAI,SAAS,CAAC,IAAV,IAAkB,YAAtB,EAAoC;AAClC,MAAA,OAAO,CAAC,SAAD,CAAP;AACA,MAAA,SAAS,CAAC,IAAV,GAAiB,UAAjB;AACD;AACF;;AAED,SAAO,SAAP;AACD;;AAEK,SAAU,OAAV,CAAmB,SAAnB,EAAwC;AAC5C,EAAA,SAAS,CAAC,GAAV;AACA,EAAA,SAAS,CAAC,OAAV,GAAoB,CAAC,SAAS,CAAC,OAAV,GAAoB,CAArB,IAA0B,YAA9C;;AACA,MAAI,SAAS,CAAC,GAAV,GAAgB,iBAAhB,IAAqC,SAAS,CAAC,GAAV,GAAgB,WAAW,CAAC,SAAS,CAAC,IAAX,EAAiB,SAAS,CAAC,KAA3B,CAApE,EAAuG;AACrG,IAAA,SAAS,CAAC,GAAV,GAAgB,OAAhB;AACA,IAAA,SAAS,CAAC,KAAV;;AACA,QAAI,SAAS,CAAC,KAAV,GAAkB,SAAtB,EAAiC;AAC/B,MAAA,SAAS,CAAC,KAAV,GAAkB,SAAlB;AACA,MAAA,SAAS,CAAC,IAAV;AACD;AACF;;AAED,SAAO,SAAP;AACD;;AAEK,SAAU,OAAV,CAAmB,SAAnB,EAAwC;AAC5C,EAAA,SAAS,CAAC,GAAV;AACA,EAAA,SAAS,CAAC,OAAV,GAAoB,CAAC,SAAS,CAAC,OAAV,GAAoB,CAArB,IAA0B,YAA9C;;AACA,MAAI,SAAS,CAAC,GAAV,GAAgB,OAApB,EAA6B;AAC3B,IAAA,SAAS,CAAC,KAAV;;AACA,QAAI,SAAS,CAAC,KAAV,GAAkB,SAAtB,EAAiC;AAC/B,MAAA,SAAS,CAAC,IAAV;AACA,MAAA,SAAS,CAAC,KAAV,GAAkB,SAAlB;AACD;;AACD,IAAA,SAAS,CAAC,GAAV,GAAgB,WAAW,CAAC,SAAS,CAAC,IAAX,EAAiB,SAAS,CAAC,KAA3B,CAA3B;AACD;;AAED,SAAO,SAAP;AACD;;AAEK,SAAU,YAAV,CACJ,SADI,EAGI;AAAA,MADR,KACQ,uEADqB,OACrB;AAAA,MAAR,IAAQ,uEAAD,CAAC;;AAER,SAAO,EAAE,IAAF,IAAU,CAAjB;AAAoB,IAAA,KAAK,CAAC,SAAD,CAAL;AAApB;;AACA,SAAO,SAAP;AACD;;AAEK,SAAU,WAAV,CAAuB,SAAvB,EAA8C,OAA9C,EAC6C;AAAA,MAAjD,KAAiD,uEAApB,OAAoB;AAAA,MAAX,OAAW,uEAAD,CAAC;;AACjD,SAAO,SAAS,CAAC,OAAV,KAAsB,OAAtB,IAAiC,EAAE,OAAF,IAAa,CAArD;AAAwD,IAAA,KAAK,CAAC,SAAD,CAAL;AAAxD;;AAEA,SAAO,SAAP;AACD;;AAEK,SAAU,eAAV,CAA2B,QAA3B,EAA6C;AACjD,MAAM,KAAK,GAAa,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,CAAxB;AACA,MAAM,MAAM,GAAa,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,CAAzB;;AACA,OAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,QAAQ,CAAC,MAA7B,EAAqC,CAAC,EAAtC,EAA0C;AACxC,IAAA,MAAM,CAAC,QAAQ,CAAC,CAAD,CAAT,CAAN,GAAsB,CAAtB;AACD;;AACD,OAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,YAApB,EAAkC,CAAC,EAAnC,EAAuC;AACrC,QAAI,IAAI,GAAG,CAAX;;AACA,SAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,YAApB,EAAkC,CAAC,EAAnC,EAAuC;AACrC,UAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAL,IAAU,YAAvB;;AACA,UAAI,MAAM,CAAC,IAAD,CAAV,EAAkB;AAChB;AACD;;AACD,MAAA,IAAI;AACL;;AACD,IAAA,KAAK,CAAC,CAAD,CAAL,GAAW,MAAM,CAAC,CAAD,CAAN,GAAY,IAAvB;AACD;;AAED,SAAO,KAAP;AACD;;AAEK,SAAU,aAAV,CACJ,KADI,EAEJ,GAFI,EAGJ,GAHI,EAIJ,YAJI,EAMG;AAAA,MADP,GACO,uEADD,EACC;AAAA,MAAP,GAAO,uEAAD,CAAC;AAEP,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAD,CAA7B;AACA,MAAM,IAAI,GAAiB,EAA3B;AACA,MAAI,OAAO,GAAG,aAAa,CAAC,KAAD,CAA3B;AACA,MAAI,iBAAiB,GAAG,CAAxB;AACA,MAAI,OAAO,GAAG,iBAAiB,KAAK,IAApC;;AAEA,MAAI,IAAI,GAAG,gBAAgB,CAAC,KAAD,CAA3B,EAAoC;AAClC,UAAM,IAAI,KAAJ,CAAU,sCAAV,CAAN;AACD;;AAED,SAAO,CAAC,CAAC,OAAD,IAAY,IAAI,CAAC,MAAL,GAAc,GAA3B,KAAmC,IAAI,CAAC,MAAL,GAAc,GAAxD,EAA6D;AAC3D,IAAA,iBAAiB,GAAG,gBAAgB,CAAC,OAAD,CAApC;AACA,IAAA,OAAO,GAAG,OAAO,IAAI,iBAAiB,KAAK,IAA3C;;AACA,QAAI,YAAY,CAAC,OAAO,CAAC,OAAT,CAAZ,KAAkC,CAAtC,EAAyC;AACvC,MAAA,OAAO,GAAG,OAAO,CAAC,OAAD,CAAjB;AACA;AACD;;AACD,QAAM,GAAG,GAAG,aAAa,CAAC,OAAD,CAAzB;AACA,IAAA,eAAe,CAAC,GAAD,CAAf;AACA,IAAA,cAAc,CAAC,GAAD,EAAM,GAAN,CAAd;AACA,IAAA,IAAI,CAAC,IAAL,CAAU,GAAV;AACA,IAAA,OAAO,GAAG,YAAY,CAAC,OAAD,EAAU,OAAV,EAAmB,YAAY,CAAC,OAAO,CAAC,OAAT,CAA/B,CAAtB;AACD;;AAED,MAAI,CAAC,IAAI,CAAC,MAAV,EAAkB,MAAM,IAAI,KAAJ,CAAU,oEAAV,CAAN;AAElB,SAAO,IAAP;AACD;;AAEK,SAAU,kBAAV,CAA8B,SAA9B,EAAqD,KAArD,EACJ,OADI,EACa,KADb,EAC4B,GAD5B,EAC4C;AAChD,MAAM,SAAS,GAAiB,EAAhC;;AAEA,OAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,KAApB,EAA2B,CAAC,EAA5B,EAAgC;AAC9B,QAAM,IAAI,GAAG,CAAC,KAAK,GAAG,CAAT,IAAc,OAA3B;AACA,QAAM,GAAG,GAAG,aAAa,CAAC,SAAD,CAAzB;AACA,IAAA,SAAS,CAAC,IAAV,CAAe,aAAa,CAAC,GAAD,EAAM,IAAN,EAAY,GAAZ,CAA5B;AACD;;AAED,SAAO,SAAP;AACD;;AAEK,SAAU,2BAAV,CAAuC,MAAvC,EAAuD,UAAvD,EAA0F;AAC9F,MAAM,cAAc,GAAwB,SAAtC,cAAsC,CAAC,EAAD,EAAK,EAAL;AAAA,WAAY,EAAZ;AAAA,GAA5C;;AAEA,MAAI,OAAO,IAAP,KAAgB,WAAhB,IAA+B,OAAO,IAAI,CAAC,cAAZ,KAA+B,WAAlE,EAA+E;AAC7E,WAAO,cAAP;AACD;;AAED,SAAO,UAAC,SAAD,EAAY,KAAZ,EAAqB;AAC1B,QAAI;AACF,UAAM,aAAa,GAAG,IAAI,IAAI,CAAC,cAAT,CAAwB,MAAM,IAAI,SAAlC,EAA6C,UAAU,CAAC,SAAD,EAAY,KAAZ,CAAvD,CAAtB;AACA,UAAM,IAAI,aAAM,SAAS,CAAC,SAAS,CAAC,IAAX,EAAiB,CAAjB,CAAf,cAAsC,SAAS,CAAC,SAAS,CAAC,MAAX,EAAmB,CAAnB,CAA/C,CAAV;AACA,UAAM,IAAI,GAAG,SAAS,CAAC,IAAvB;AACA,aAAO,aAAa,CAAC,MAAd,CAAqB,IAAI,IAAJ,WAAY,IAAZ,cAAoB,IAApB,eAArB,CAAP;AACD,KALD,CAKE,OAAO,CAAP,EAAU;AACV,aAAO,EAAP;AACD;AACF,GATD;AAUD","sourcesContent":["\nexport const PARSE_REGEX: RegExp = /^(\\d{4})-(\\d{1,2})(-(\\d{1,2}))?([^\\d]+(\\d{1,2}))?(:(\\d{1,2}))?(:(\\d{1,2}))?$/\nexport const PARSE_TIME: RegExp = /(\\d\\d?)(:(\\d\\d?)|)(:(\\d\\d?)|)/\n\nexport const DAYS_IN_MONTH: number[] = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nexport const DAYS_IN_MONTH_LEAP: number[] = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nexport const DAYS_IN_MONTH_MIN = 28\nexport const DAYS_IN_MONTH_MAX = 31\nexport const MONTH_MAX = 12\nexport const MONTH_MIN = 1\nexport const DAY_MIN = 1\nexport const DAYS_IN_WEEK = 7\nexport const MINUTES_IN_HOUR = 60\nexport const HOURS_IN_DAY = 24\nexport const FIRST_HOUR = 0\n\nexport interface VTimestamp {\n date: string\n time: string\n year: number\n month: number\n day: number\n weekday: number\n hour: number\n minute: number\n hasDay: boolean\n hasTime: boolean\n past: boolean\n present: boolean\n future: boolean\n}\n\nexport interface VTimeObject {\n hour: number\n minute: number\n}\n\nexport type VTime = number | string | VTimeObject\n\nexport type VTimestampFormatter = (timestamp: VTimestamp, short: boolean) => string\n\nexport type VTimestampFormatOptions = (timestamp: VTimestamp, short: boolean) => object\n\nexport type VTimestampOperation = (timestamp: VTimestamp) => VTimestamp\n\nexport function getStartOfWeek (timestamp: VTimestamp, weekdays: number[], today?: VTimestamp): VTimestamp {\n const start = copyTimestamp(timestamp)\n findWeekday(start, weekdays[0], prevDay)\n updateFormatted(start)\n if (today) {\n updateRelative(start, today, start.hasTime)\n }\n return start\n}\n\nexport function getEndOfWeek (timestamp: VTimestamp, weekdays: number[], today?: VTimestamp): VTimestamp {\n const end = copyTimestamp(timestamp)\n findWeekday(end, weekdays[weekdays.length - 1])\n updateFormatted(end)\n if (today) {\n updateRelative(end, today, end.hasTime)\n }\n return end\n}\n\nexport function getStartOfMonth (timestamp: VTimestamp): VTimestamp {\n const start = copyTimestamp(timestamp)\n start.day = DAY_MIN\n updateWeekday(start)\n updateFormatted(start)\n return start\n}\n\nexport function getEndOfMonth (timestamp: VTimestamp): VTimestamp {\n const end = copyTimestamp(timestamp)\n end.day = daysInMonth(end.year, end.month)\n updateWeekday(end)\n updateFormatted(end)\n return end\n}\n\nexport function parseTime (input: any): number | false {\n if (typeof input === 'number') {\n // when a number is given, it's minutes since 12:00am\n return input\n } else if (typeof input === 'string') {\n // when a string is given, it's a hh:mm:ss format where seconds are optional\n const parts = PARSE_TIME.exec(input)\n if (!parts) {\n return false\n }\n return parseInt(parts[1]) * 60 + parseInt(parts[3] || 0)\n } else if (typeof input === 'object') {\n // when an object is given, it must have hour and minute\n if (typeof input.hour !== 'number' || typeof input.minute !== 'number') {\n return false\n }\n return input.hour * 60 + input.minute\n } else {\n // unsupported type\n return false\n }\n}\n\nexport function validateTimestamp (input: any): boolean {\n return !!PARSE_REGEX.exec(input)\n}\n\nexport function parseTimestamp (input: string, now?: VTimestamp): VTimestamp | null {\n // YYYY-MM-DD hh:mm:ss\n const parts = PARSE_REGEX.exec(input)\n\n if (!parts) return null\n\n const timestamp: VTimestamp = {\n date: input,\n time: '',\n year: parseInt(parts[1]),\n month: parseInt(parts[2]),\n day: parseInt(parts[4]) || 1,\n hour: parseInt(parts[6]) || 0,\n minute: parseInt(parts[8]) || 0,\n weekday: 0,\n hasDay: !!parts[4],\n hasTime: !!(parts[6] && parts[8]),\n past: false,\n present: false,\n future: false,\n }\n\n updateWeekday(timestamp)\n updateFormatted(timestamp)\n\n if (now) {\n updateRelative(timestamp, now, timestamp.hasTime)\n }\n\n return timestamp\n}\n\nexport function parseDate (date: Date): VTimestamp {\n return updateFormatted({\n date: '',\n time: '',\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate(),\n weekday: date.getDay(),\n hour: date.getHours(),\n minute: date.getMinutes(),\n hasDay: true,\n hasTime: true,\n past: false,\n present: true,\n future: false,\n })\n}\n\nexport function getDayIdentifier (timestamp: VTimestamp): number {\n return timestamp.year * 10000 + timestamp.month * 100 + timestamp.day\n}\n\nexport function getTimeIdentifier (timestamp: VTimestamp): number {\n return timestamp.hour * 100 + timestamp.minute\n}\n\nexport function getTimestampIdentifier (timestamp: VTimestamp): number {\n return getDayIdentifier(timestamp) * 10000 + getTimeIdentifier(timestamp)\n}\n\nexport function updateRelative (timestamp: VTimestamp, now: VTimestamp, time = false): VTimestamp {\n let a = getDayIdentifier(now)\n let b = getDayIdentifier(timestamp)\n let present = a === b\n\n if (timestamp.hasTime && time && present) {\n a = getTimeIdentifier(now)\n b = getTimeIdentifier(timestamp)\n present = a === b\n }\n\n timestamp.past = b < a\n timestamp.present = present\n timestamp.future = b > a\n\n return timestamp\n}\n\nexport function updateMinutes (timestamp: VTimestamp, minutes: number, now?: VTimestamp): VTimestamp {\n timestamp.hasTime = true\n timestamp.hour = Math.floor(minutes / MINUTES_IN_HOUR)\n timestamp.minute = minutes % MINUTES_IN_HOUR\n timestamp.time = getTime(timestamp)\n if (now) {\n updateRelative(timestamp, now, true)\n }\n\n return timestamp\n}\n\nexport function updateWeekday (timestamp: VTimestamp): VTimestamp {\n timestamp.weekday = getWeekday(timestamp)\n\n return timestamp\n}\n\nexport function updateFormatted (timestamp: VTimestamp): VTimestamp {\n timestamp.time = getTime(timestamp)\n timestamp.date = getDate(timestamp)\n\n return timestamp\n}\n\nexport function getWeekday (timestamp: VTimestamp): number {\n if (timestamp.hasDay) {\n const _ = Math.floor\n const k = timestamp.day\n const m = ((timestamp.month + 9) % MONTH_MAX) + 1\n const C = _(timestamp.year / 100)\n const Y = (timestamp.year % 100) - (timestamp.month <= 2 ? 1 : 0)\n\n return (((k + _(2.6 * m - 0.2) - 2 * C + Y + _(Y / 4) + _(C / 4)) % 7) + 7) % 7\n }\n\n return timestamp.weekday\n}\n\nexport function isLeapYear (year: number): boolean {\n return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)\n}\n\nexport function daysInMonth (year: number, month: number) {\n return isLeapYear(year) ? DAYS_IN_MONTH_LEAP[month] : DAYS_IN_MONTH[month]\n}\n\nexport function copyTimestamp (timestamp: VTimestamp): VTimestamp {\n const { date, time, year, month, day, weekday, hour, minute, hasDay, hasTime, past, present, future } = timestamp\n\n return { date, time, year, month, day, weekday, hour, minute, hasDay, hasTime, past, present, future }\n}\n\nexport function padNumber (x: number, length: number): string {\n let padded = String(x)\n while (padded.length < length) {\n padded = '0' + padded\n }\n\n return padded\n}\n\nexport function getDate (timestamp: VTimestamp): string {\n let str = `${padNumber(timestamp.year, 4)}-${padNumber(timestamp.month, 2)}`\n\n if (timestamp.hasDay) str += `-${padNumber(timestamp.day, 2)}`\n\n return str\n}\n\nexport function getTime (timestamp: VTimestamp): string {\n if (!timestamp.hasTime) {\n return ''\n }\n\n return `${padNumber(timestamp.hour, 2)}:${padNumber(timestamp.minute, 2)}`\n}\n\nexport function nextMinutes (timestamp: VTimestamp, minutes: number): VTimestamp {\n timestamp.minute += minutes\n while (timestamp.minute > MINUTES_IN_HOUR) {\n timestamp.minute -= MINUTES_IN_HOUR\n timestamp.hour++\n if (timestamp.hour >= HOURS_IN_DAY) {\n nextDay(timestamp)\n timestamp.hour = FIRST_HOUR\n }\n }\n\n return timestamp\n}\n\nexport function nextDay (timestamp: VTimestamp): VTimestamp {\n timestamp.day++\n timestamp.weekday = (timestamp.weekday + 1) % DAYS_IN_WEEK\n if (timestamp.day > DAYS_IN_MONTH_MIN && timestamp.day > daysInMonth(timestamp.year, timestamp.month)) {\n timestamp.day = DAY_MIN\n timestamp.month++\n if (timestamp.month > MONTH_MAX) {\n timestamp.month = MONTH_MIN\n timestamp.year++\n }\n }\n\n return timestamp\n}\n\nexport function prevDay (timestamp: VTimestamp): VTimestamp {\n timestamp.day--\n timestamp.weekday = (timestamp.weekday + 6) % DAYS_IN_WEEK\n if (timestamp.day < DAY_MIN) {\n timestamp.month--\n if (timestamp.month < MONTH_MIN) {\n timestamp.year--\n timestamp.month = MONTH_MAX\n }\n timestamp.day = daysInMonth(timestamp.year, timestamp.month)\n }\n\n return timestamp\n}\n\nexport function relativeDays (\n timestamp: VTimestamp,\n mover: VTimestampOperation = nextDay,\n days = 1\n): VTimestamp {\n while (--days >= 0) mover(timestamp)\n return timestamp\n}\n\nexport function findWeekday (timestamp: VTimestamp, weekday: number,\n mover: VTimestampOperation = nextDay, maxDays = 6): VTimestamp {\n while (timestamp.weekday !== weekday && --maxDays >= 0) mover(timestamp)\n\n return timestamp\n}\n\nexport function getWeekdaySkips (weekdays: number[]): number[] {\n const skips: number[] = [1, 1, 1, 1, 1, 1, 1]\n const filled: number[] = [0, 0, 0, 0, 0, 0, 0]\n for (let i = 0; i < weekdays.length; i++) {\n filled[weekdays[i]] = 1\n }\n for (let k = 0; k < DAYS_IN_WEEK; k++) {\n let skip = 1\n for (let j = 1; j < DAYS_IN_WEEK; j++) {\n const next = (k + j) % DAYS_IN_WEEK\n if (filled[next]) {\n break\n }\n skip++\n }\n skips[k] = filled[k] * skip\n }\n\n return skips\n}\n\nexport function createDayList (\n start: VTimestamp,\n end: VTimestamp,\n now: VTimestamp,\n weekdaySkips: number[],\n max = 42,\n min = 0\n): VTimestamp[] {\n const stop = getDayIdentifier(end)\n const days: VTimestamp[] = []\n let current = copyTimestamp(start)\n let currentIdentifier = 0\n let stopped = currentIdentifier === stop\n\n if (stop < getDayIdentifier(start)) {\n throw new Error('End date is earlier than start date.')\n }\n\n while ((!stopped || days.length < min) && days.length < max) {\n currentIdentifier = getDayIdentifier(current)\n stopped = stopped || currentIdentifier === stop\n if (weekdaySkips[current.weekday] === 0) {\n current = nextDay(current)\n continue\n }\n const day = copyTimestamp(current)\n updateFormatted(day)\n updateRelative(day, now)\n days.push(day)\n current = relativeDays(current, nextDay, weekdaySkips[current.weekday])\n }\n\n if (!days.length) throw new Error('No dates found using specified start date, end date, and weekdays.')\n\n return days\n}\n\nexport function createIntervalList (timestamp: VTimestamp, first: number,\n minutes: number, count: number, now?: VTimestamp): VTimestamp[] {\n const intervals: VTimestamp[] = []\n\n for (let i = 0; i < count; i++) {\n const mins = (first + i) * minutes\n const int = copyTimestamp(timestamp)\n intervals.push(updateMinutes(int, mins, now))\n }\n\n return intervals\n}\n\nexport function createNativeLocaleFormatter (locale: string, getOptions: VTimestampFormatOptions): VTimestampFormatter {\n const emptyFormatter: VTimestampFormatter = (_t, _s) => ''\n\n if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat === 'undefined') {\n return emptyFormatter\n }\n\n return (timestamp, short) => {\n try {\n const intlFormatter = new Intl.DateTimeFormat(locale || undefined, getOptions(timestamp, short))\n const time = `${padNumber(timestamp.hour, 2)}:${padNumber(timestamp.minute, 2)}`\n const date = timestamp.date\n return intlFormatter.format(new Date(`${date}T${time}:00+00:00`))\n } catch (e) {\n return ''\n }\n }\n}\n"],"sourceRoot":"","file":"timestamp.js"}