{"version":3,"file":"js/6188-728a44110771e5f48fea.js","mappings":"oKAKO,SAASA,EAAmBC,EAAQC,EAAMC,GAC7C,MAAMC,EAmBV,SAAgBH,EAAQI,EAAUC,GAC9B,OAAO,IAAIC,KAAKC,eAAeF,EAAS,CAACA,EAAOG,KAAM,cAAWC,EAAW,CACxEL,SAAUA,EACVM,aAAcV,GAEtB,CAxBgBW,CAAOX,EAAQE,EAAQE,SAAUF,EAAQG,QACrD,MAAO,kBAAmBF,EAE9B,SAAuBA,EAAKF,GACxB,MAAMW,EAAYT,EAAIU,cAAcZ,GACpC,IAAK,IAAIa,EAAIF,EAAUZ,OAAS,EAAGc,GAAK,IAAKA,EACzC,GAA0B,iBAAtBF,EAAUE,GAAGC,KACb,OAAOH,EAAUE,GAAGE,MAG5B,MACJ,CAVoCC,CAAcd,EAAKF,GAWvD,SAAuBE,EAAKF,GACxB,MAAMW,EAAYT,EAAIe,OAAOjB,GAAMkB,QAAQ,UAAW,IAChDC,EAAc,aAAaC,KAAKT,GACtC,OAAOQ,EAAcA,EAAY,GAAGE,OAAO,GAAK,EACpD,CAf+DC,CAAcpB,EAAKF,EAClF,CCJO,SAASuB,EAAevB,EAAMG,GACjC,MAAMD,EAiDV,SAA2BC,GACvB,IAAKqB,EAASrB,GAAW,CAErB,MAAMsB,EAAoB,IAAIpB,KAAKC,eAAe,QAAS,CACvDoB,UAAW,MACXvB,SAAU,mBACVwB,KAAM,UACNC,MAAO,UACPC,IAAK,UACLC,KAAM,UACNC,OAAQ,UACRC,OAAQ,YACTf,OAAO,IAAIgB,KAAK,6BACbC,EAA2C,yBAAtBT,GACD,mCAAtBA,EACJD,EAASrB,GAAY+B,EACf,IAAI7B,KAAKC,eAAe,QAAS,CAC/BoB,UAAW,MACXvB,SAAUA,EACVwB,KAAM,UACNC,MAAO,UACPC,IAAK,UACLC,KAAM,UACNC,OAAQ,UACRC,OAAQ,YAEV,IAAI3B,KAAKC,eAAe,QAAS,CAC/B6B,QAAQ,EACRhC,SAAUA,EACVwB,KAAM,UACNC,MAAO,UACPC,IAAK,UACLC,KAAM,UACNC,OAAQ,UACRC,OAAQ,WAEpB,CACA,OAAOR,EAASrB,EACpB,CAvFgBiC,CAAkBjC,GAC9B,MAAO,kBAAmBD,EAU9B,SAAqBA,EAAKF,GACtB,IACI,MAAMW,EAAYT,EAAIU,cAAcZ,GAC9BqC,EAAS,GACf,IAAK,IAAIxB,EAAI,EAAGA,EAAIF,EAAUZ,OAAQc,IAAK,CACvC,MAAMyB,EAAMC,EAAU5B,EAAUE,GAAGC,WACvBN,IAAR8B,IACAD,EAAOC,GAAOE,SAAS7B,EAAUE,GAAGE,MAAO,IAEnD,CACA,OAAOsB,CACX,CACA,MAAOI,GACH,GAAIA,aAAiBC,WACjB,MAAO,CAACC,KAEZ,MAAMF,CACV,CACJ,CA5BoCG,CAAY1C,EAAKF,GA6BrD,SAAqBE,EAAKF,GACtB,MAAMW,EAAYT,EAAIe,OAAOjB,GAEvB6C,EAAS,0CAA0CzB,KAAKT,GAG9D,MAAO,CACH6B,SAASK,EAAO,GAAI,IACpBL,SAASK,EAAO,GAAI,IACpBL,SAASK,EAAO,GAAI,IACpBL,SAASK,EAAO,GAAI,IACpBL,SAASK,EAAO,GAAI,IACpBL,SAASK,EAAO,GAAI,IAE5B,CA3C6DC,CAAY5C,EAAKF,EAC9E,CACA,MAAMuC,EAAY,CACdZ,KAAM,EACNC,MAAO,EACPC,IAAK,EACLC,KAAM,EACNC,OAAQ,EACRC,OAAQ,GAuCZ,MAAMR,EAAW,CAAC,EC9CX,SAAS,EAAWuB,EAAUnB,EAAOC,EAAKC,EAAMC,EAAQC,EAAQgB,GACnE,MAAMC,EAAU,IAAIhB,KAAK,GAGzB,OAFAgB,EAAQC,eAAeH,EAAUnB,EAAOC,GACxCoB,EAAQE,YAAYrB,EAAMC,EAAQC,EAAQgB,GACnCC,CACX,CCVA,MAAMG,EAAuB,KACvBC,EAAyB,IACzBC,EAAW,CACbC,SAAU,aACVC,UAAW,QACXC,WAAY,gBACZC,aAAc,4BAGX,SAAS,EAAgBC,EAAgB3D,EAAM4D,GAElD,IAAKD,EACD,OAAO,EAGX,IAIIE,EACAC,EALAC,EAAQT,EAASE,UAAUpC,KAAKuC,GACpC,GAAII,EACA,OAAO,EAMX,GADAA,EAAQT,EAASG,WAAWrC,KAAKuC,GAC7BI,EAEA,OADAF,EAAQrB,SAASuB,EAAM,GAAI,IACtBC,EAAiBH,IAGbA,EAAQT,EAFNT,IAMf,GADAoB,EAAQT,EAASI,aAAatC,KAAKuC,GAC/BI,EAAO,CACPF,EAAQrB,SAASuB,EAAM,GAAI,IAC3B,MAAME,EAAUzB,SAASuB,EAAM,GAAI,IACnC,OAAKC,EAAiBH,EAAOI,IAG7BH,EAAiBI,KAAKC,IAAIN,GAAST,EAAuBa,EAAUZ,EAChD,MAAbU,EAAM,IAAcD,EAAiBA,GAHjCnB,GAIf,CAEA,GA6CJ,SAAmCyB,GAC/B,GAAIC,EAAuBD,GACvB,OAAO,EACX,IAGI,OAFA,IAAI/D,KAAKC,oBAAeE,EAAW,CAAEL,SAAUiE,IAC/CC,EAAuBD,IAAkB,GAClC,CACX,CACA,MAAO3B,GACH,OAAO,CACX,CACJ,CAxDQ6B,CAA0BX,GAAiB,CAC3C3D,EAAO,IAAIiC,KAAKjC,GAAQiC,KAAKsC,OAC7B,MAAMtB,EAAUW,EAAY5D,EAOpC,SAAmBA,GACf,OAAO,EAAWA,EAAKwE,cAAexE,EAAKyE,WAAYzE,EAAK0E,UAAW1E,EAAK2E,WAAY3E,EAAK4E,aAAc5E,EAAK6E,aAAc7E,EAAK8E,kBACvI,CAT2CC,CAAU/E,GACvCgF,EAASC,EAAWhC,EAASU,GAC7BuB,EAActB,EAAYoB,EAiBxC,SAAmBhF,EAAMgF,EAAQrB,GAC7B,MAAMwB,EAAUnF,EAAKoF,UAErB,IAAIC,EAAWF,EAAUH,EAEzB,MAAMM,EAAKL,EAAW,IAAIhD,KAAKoD,GAAW1B,GAE1C,GAAIqB,IAAWM,EACX,OAAON,EAGXK,GAAYC,EAAKN,EAEjB,MAAMO,EAAKN,EAAW,IAAIhD,KAAKoD,GAAW1B,GAC1C,GAAI2B,IAAOC,EACP,OAAOD,EAGX,OAAOpB,KAAKsB,IAAIF,EAAIC,EACxB,CApCiDE,CAAUzF,EAAMgF,EAAQrB,GACjE,OAAQuB,CACZ,CACA,OAAOvC,GACX,CAIA,SAASsC,EAAWjF,EAAM2D,GACtB,MAAM+B,EAASnE,EAAevB,EAAM2D,GAE9BgC,EAAQ,EAAWD,EAAO,GAAIA,EAAO,GAAK,EAAGA,EAAO,GAAIA,EAAO,GAAK,GAAIA,EAAO,GAAIA,EAAO,GAAI,GAAGN,UACvG,IAAIQ,EAAO5F,EAAKoF,UAChB,MAAMS,EAAOD,EAAO,IAEpB,OADAA,GAAQC,GAAQ,EAAIA,EAAO,IAAOA,EAC3BF,EAAQC,CACnB,CAqBA,SAAS5B,EAAiBH,EAAOI,GAC7B,OAAQ,IAAMJ,GAASA,GAAS,KAAkB,MAAXI,GAAoB,GAAKA,GAAWA,GAAW,GAC1F,CACA,MAAMI,EAAyB,CAAC,ECtFhC,MACayB,EAAa,CAEtBC,EAAG,SAAU/F,EAAM+D,EAAO9D,GACtB,MAAM+F,EAAiBC,EAAkBhG,EAAQE,SAAUH,GAC3D,GAAuB,IAAnBgG,EACA,MAAO,IAEX,OAAQjC,GAEJ,IAAK,IACD,OAAOmC,EAAkCF,GAI7C,IAAK,OACL,IAAK,KACD,OAAOG,EAAeH,GAM1B,QACI,OAAOG,EAAeH,EAAgB,KAElD,EAEAI,EAAG,SAAUpG,EAAM+D,EAAO9D,GACtB,MAAM+F,EAAiBC,EAAkBhG,EAAQE,SAAUH,GAC3D,OAAQ+D,GAEJ,IAAK,IACD,OAAOmC,EAAkCF,GAI7C,IAAK,OACL,IAAK,KACD,OAAOG,EAAeH,GAM1B,QACI,OAAOG,EAAeH,EAAgB,KAElD,EAEAK,EAAG,SAAUrG,EAAM+D,EAAO9D,GACtB,MAAM+F,EAAiBC,EAAkBhG,EAAQE,SAAUH,GAC3D,OAAQ+D,GAEJ,IAAK,IACL,IAAK,KACL,IAAK,MACD,MAAO,MAqDvB,SAA6BiB,EAAQsB,EAAY,IAC7C,MAAMC,EAAOvB,EAAS,EAAI,IAAM,IAC1BwB,EAAYtC,KAAKC,IAAIa,GACrBnB,EAAQK,KAAKuC,MAAMD,EAAY,IAC/BvC,EAAUuC,EAAY,GAC5B,GAAgB,IAAZvC,EACA,OAAOsC,EAAOG,OAAO7C,GAEzB,OAAO0C,EAAOG,OAAO7C,GAASyC,EAAYK,EAAgB1C,EAAS,EACvE,CA9D+B2C,CAAoBZ,EAAgB,KAGvD,QACI,MAAO,MAAQG,EAAeH,EAAgB,KAE1D,EAEAa,EAAG,SAAU7G,EAAM+D,EAAO9D,GACtB,OAAQ8D,GAEJ,IAAK,IACL,IAAK,KACL,IAAK,MACD,OAAOjE,EAAmB,QAASE,EAAMC,GAG7C,QACI,OAAOH,EAAmB,OAAQE,EAAMC,GAEpD,GAEJ,SAASgG,EAAkB9F,EAAU2G,GACjC,MAAMC,EAAiB5G,EACjB,EAAgBA,EAAU2G,GAAc,GAjFnB,IAkFrBA,GAAcE,qBAAuB,EAC3C,GAAIC,OAAOC,MAAMH,GACb,MAAM,IAAIrE,WAAW,gCAAkCvC,GAE3D,OAAO4G,CACX,CACA,SAASJ,EAAgBQ,EAAQC,GAC7B,MAAMb,EAAOY,EAAS,EAAI,IAAM,GAChC,IAAIE,EAASnD,KAAKC,IAAIgD,GAAQG,WAC9B,KAAOD,EAAOtH,OAASqH,GACnBC,EAAS,IAAMA,EAEnB,OAAOd,EAAOc,CAClB,CACA,SAASlB,EAAenB,EAAQsB,EAAY,IACxC,MAAMC,EAAOvB,EAAS,EAAI,IAAM,IAC1BwB,EAAYtC,KAAKC,IAAIa,GAG3B,OAAOuB,EAFOI,EAAgBzC,KAAKuC,MAAMD,EAAY,IAAK,GAEpCF,EADNK,EAAgBzC,KAAKuC,MAAMD,EAAY,IAAK,EAEhE,CACA,SAASN,EAAkClB,EAAQsB,GAC/C,GAAItB,EAAS,IAAO,EAAG,CAEnB,OADaA,EAAS,EAAI,IAAM,KAClB2B,EAAgBzC,KAAKC,IAAIa,GAAU,GAAI,EACzD,CACA,OAAOmB,EAAenB,EAAQsB,EAClC,CCpGO,SAASiB,EAAgCvH,GAC5C,MAAMiD,EAAU,IAAIhB,KAAKA,KAAKuF,IAAIxH,EAAKwE,cAAexE,EAAKyE,WAAYzE,EAAK0E,UAAW1E,EAAK2E,WAAY3E,EAAK4E,aAAc5E,EAAK6E,aAAc7E,EAAK8E,oBAEnJ,OADA7B,EAAQC,eAAelD,EAAKwE,gBACpBxE,GAAQiD,CACpB,CCdO,MCED,EAAuB,KACvB,EAAyB,IACzBwE,EAA4B,EAC5B,EAAW,CACbC,gBAAiB,wBACjBC,YAAa,mBACbC,UAAW,IAEXC,GAAI,YACJC,IAAK,CACD,gBACA,gBACA,iBAEJC,KAAM,WACNC,MAAO,CACH,eACA,eACA,gBAGJC,GAAI,aACJC,IAAK,cACLC,KAAM,uBACNC,IAAK,eACLC,KAAM,wBACNC,GAAI,sBACJC,KAAM,+BACNC,OAAQ,wCAERrI,SDhCqB,2EC4ElB,SAAS,EAAOsI,EAAUxI,EAAU,CAAC,GACxC,GAAIyI,UAAU3I,OAAS,EACnB,MAAM,IAAI4I,UAAU,iCAAmCD,UAAU3I,OAAS,YAE9E,GAAiB,OAAb0I,EACA,OAAO,IAAIxG,KAAKU,KAEpB,MAAMiG,EAA+C,MAA5B3I,EAAQ2I,iBAA2BnB,EAA4BR,OAAOhH,EAAQ2I,kBACvG,GAAyB,IAArBA,GAA+C,IAArBA,GAA+C,IAArBA,EACpD,MAAM,IAAIlG,WAAW,sCAGzB,GAAI+F,aAAoBxG,MACC,iBAAbwG,GAAsE,kBAA7CI,OAAOC,UAAUxB,SAASyB,KAAKN,GAEhE,OAAO,IAAIxG,KAAKwG,EAASrD,WAExB,GAAwB,iBAAbqD,GACiC,oBAA7CI,OAAOC,UAAUxB,SAASyB,KAAKN,GAC/B,OAAO,IAAIxG,KAAKwG,GAEf,GAAmD,oBAA7CI,OAAOC,UAAUxB,SAASyB,KAAKN,GACtC,OAAO,IAAIxG,KAAKU,KAEpB,MAAMqG,EAiCV,SAAyBC,GACrB,MAAMD,EAAc,CAAC,EACrB,IACIE,EADAC,EAAQ,EAASzB,gBAAgBtG,KAAK6H,GAErCE,GAYDH,EAAYhJ,KAAOmJ,EAAM,GACzBD,EAAaC,EAAM,KAZnBA,EAAQ,EAASxB,YAAYvG,KAAK6H,GAC9BE,GACAH,EAAYhJ,KAAOmJ,EAAM,GACzBD,EAAaC,EAAM,KAGnBH,EAAYhJ,KAAO,KACnBkJ,EAAaD,IAOrB,GAAIC,EAAY,CACZ,MAAMnF,EAAQ,EAAS5D,SAASiB,KAAK8H,GACjCnF,GACAiF,EAAYI,KAAOF,EAAWhI,QAAQ6C,EAAM,GAAI,IAChDiF,EAAY7I,SAAW4D,EAAM,GAAGsF,QAGhCL,EAAYI,KAAOF,CAE3B,CACA,OAAOF,CACX,CA/DwBM,CAAgBb,IAC9B,KAAE9G,EAAI,eAAE4H,GA+DlB,SAAmBN,EAAYL,GAC3B,GAAIK,EAAY,CACZ,MAAMO,EAAa,EAAS1B,IAAIc,GAC1Ba,EAAe,EAASzB,MAAMY,GAEpC,IAAI7E,EAAQ,EAASgE,KAAK3G,KAAK6H,IAAeQ,EAAarI,KAAK6H,GAChE,GAAIlF,EAAO,CACP,MAAM2F,EAAa3F,EAAM,GACzB,MAAO,CACHpC,KAAMa,SAASkH,EAAY,IAC3BH,eAAgBN,EAAWU,MAAMD,EAAW3J,QAEpD,CAGA,GADAgE,EAAQ,EAAS8D,GAAGzG,KAAK6H,IAAeO,EAAWpI,KAAK6H,GACpDlF,EAAO,CACP,MAAM6F,EAAgB7F,EAAM,GAC5B,MAAO,CACHpC,KAAoC,IAA9Ba,SAASoH,EAAe,IAC9BL,eAAgBN,EAAWU,MAAMC,EAAc7J,QAEvD,CACJ,CAEA,MAAO,CACH4B,KAAM,KAEd,CA1FqCkI,CAAUb,EAAYhJ,KAAM4I,GACvD5I,EA0FV,SAAmBiJ,EAAYtH,GAE3B,GAAa,OAATA,EACA,OAAO,KAEX,IAAI3B,EACA4B,EACAkI,EAEJ,IAAKb,IAAeA,EAAWlJ,OAG3B,OAFAC,EAAO,IAAIiC,KAAK,GAChBjC,EAAKkD,eAAevB,GACb3B,EAGX,IAAI+D,EAAQ,EAASkE,GAAG7G,KAAK6H,GAC7B,GAAIlF,EAGA,OAFA/D,EAAO,IAAIiC,KAAK,GAChBL,EAAQY,SAASuB,EAAM,GAAI,IAAM,EAC5BgG,EAAapI,EAAMC,IAGxB5B,EAAKkD,eAAevB,EAAMC,GACnB5B,GAHI,IAAIiC,KAAKU,KAOxB,GADAoB,EAAQ,EAASmE,IAAI9G,KAAK6H,GACtBlF,EAAO,CACP/D,EAAO,IAAIiC,KAAK,GAChB,MAAM+H,EAAYxH,SAASuB,EAAM,GAAI,IACrC,OA8GR,SAA+BpC,EAAMqI,GACjC,GAAIA,EAAY,EACZ,OAAO,EAEX,MAAMC,EAAaC,EAAgBvI,GACnC,GAAIsI,GAAcD,EAAY,IAC1B,OAAO,EAEX,IAAKC,GAAcD,EAAY,IAC3B,OAAO,EAEX,OAAO,CACX,CA1HaG,CAAsBxI,EAAMqI,IAGjChK,EAAKkD,eAAevB,EAAM,EAAGqI,GACtBhK,GAHI,IAAIiC,KAAKU,IAIxB,CAGA,GADAoB,EAAQ,EAASoE,KAAK/G,KAAK6H,GACvBlF,EAAO,CACP/D,EAAO,IAAIiC,KAAK,GAChBL,EAAQY,SAASuB,EAAM,GAAI,IAAM,EACjC,MAAMlC,EAAMW,SAASuB,EAAM,GAAI,IAC/B,OAAKgG,EAAapI,EAAMC,EAAOC,IAG/B7B,EAAKkD,eAAevB,EAAMC,EAAOC,GAC1B7B,GAHI,IAAIiC,KAAKU,IAIxB,CAGA,GADAoB,EAAQ,EAASqE,IAAIhH,KAAK6H,GACtBlF,EAEA,OADA+F,EAAOtH,SAASuB,EAAM,GAAI,IAAM,EAC3BqG,EAAiBN,GAGfO,EAAiB1I,EAAMmI,GAFnB,IAAI7H,KAAKU,KAMxB,GADAoB,EAAQ,EAASsE,KAAKjH,KAAK6H,GACvBlF,EAAO,CACP+F,EAAOtH,SAASuB,EAAM,GAAI,IAAM,EAChC,MAAMuG,EAAY9H,SAASuB,EAAM,GAAI,IAAM,EAC3C,OAAKqG,EAAiBN,EAAMQ,GAGrBD,EAAiB1I,EAAMmI,EAAMQ,GAFzB,IAAIrI,KAAKU,IAGxB,CAEA,OAAO,IACX,CA/JiB4H,CAAUhB,EAAgB5H,GACvC,GAAa,OAAT3B,GAAiBkH,MAAMlH,EAAKoF,WAC5B,OAAO,IAAInD,KAAKU,KAEpB,GAAI3C,EAAM,CACN,MAAMwK,EAAYxK,EAAKoF,UACvB,IACIJ,EADAoE,EAAO,EAEX,GAAIJ,EAAYI,OACZA,EAuJZ,SAAmBF,GACf,IAAIrF,EACAI,EAEAF,EAAQ,EAASuE,GAAGlH,KAAK8H,GAC7B,GAAInF,EAEA,OADAF,EAAQ4G,WAAW1G,EAAM,GAAG7C,QAAQ,IAAK,MACpCwJ,EAAa7G,GAGVA,EAAQ,GAAM,EAFXlB,IAMf,GADAoB,EAAQ,EAASwE,KAAKnH,KAAK8H,GACvBnF,EAGA,OAFAF,EAAQrB,SAASuB,EAAM,GAAI,IAC3BE,EAAUwG,WAAW1G,EAAM,GAAG7C,QAAQ,IAAK,MACtCwJ,EAAa7G,EAAOI,GAGjBJ,EAAQ,GAAM,EAAuBI,EAAU,EAF5CtB,IAMf,GADAoB,EAAQ,EAASyE,OAAOpH,KAAK8H,GACzBnF,EAAO,CACPF,EAAQrB,SAASuB,EAAM,GAAI,IAC3BE,EAAUzB,SAASuB,EAAM,GAAI,IAC7B,MAAM4G,EAAUF,WAAW1G,EAAM,GAAG7C,QAAQ,IAAK,MACjD,OAAKwJ,EAAa7G,EAAOI,EAAS0G,GAG1B9G,EAAQ,GAAM,EAAuBI,EAAU,EAAmC,IAAV0G,EAFrEhI,GAGf,CAEA,OAAO,IACX,CA1LmBiI,CAAU5B,EAAYI,MAChB,OAATA,GAAiBlC,MAAMkC,IACvB,OAAO,IAAInH,KAAKU,KAGxB,GAAIqG,EAAY7I,UAAYF,EAAQE,UAEhC,GADA6E,EAAS,EAAgBgE,EAAY7I,UAAYF,EAAQE,SAAU,IAAI8B,KAAKuI,EAAYpB,IACpFlC,MAAMlC,GACN,OAAO,IAAI/C,KAAKU,UAKpBqC,EAASuC,EAAgC,IAAItF,KAAKuI,EAAYpB,IAC9DpE,EAASuC,EAAgC,IAAItF,KAAKuI,EAAYpB,EAAOpE,IAEzE,OAAO,IAAI/C,KAAKuI,EAAYpB,EAAOpE,EACvC,CAEI,OAAO,IAAI/C,KAAKU,IAExB,CAsKA,SAAS0H,EAAiBQ,EAAaf,EAAMjI,GACzCiI,EAAOA,GAAQ,EACfjI,EAAMA,GAAO,EACb,MAAM7B,EAAO,IAAIiC,KAAK,GACtBjC,EAAKkD,eAAe2H,EAAa,EAAG,GACpC,MACMC,EAAc,EAAPhB,EAAWjI,EAAM,GADH7B,EAAK+K,aAAe,GAG/C,OADA/K,EAAKgL,WAAWhL,EAAKiL,aAAeH,GAC7B9K,CACX,CAEA,MAAMkL,EAAgB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC7DC,EAA0B,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC7E,SAASjB,EAAgBvI,GACrB,OAAOA,EAAO,KAAQ,GAAMA,EAAO,GAAM,GAAKA,EAAO,KAAQ,CACjE,CACA,SAASoI,EAAapI,EAAMC,EAAO5B,GAC/B,GAAI4B,EAAQ,GAAKA,EAAQ,GACrB,OAAO,EAEX,GAAY,MAAR5B,EAAc,CACd,GAAIA,EAAO,EACP,OAAO,EAEX,MAAMiK,EAAaC,EAAgBvI,GACnC,GAAIsI,GAAcjK,EAAOmL,EAAwBvJ,GAC7C,OAAO,EAEX,IAAKqI,GAAcjK,EAAOkL,EAActJ,GACpC,OAAO,CAEf,CACA,OAAO,CACX,CAcA,SAASwI,EAAiBN,EAAMjI,GAC5B,QAAIiI,EAAO,GAAKA,EAAO,MAGZ,MAAPjI,KAAgBA,EAAM,GAAKA,EAAM,GAIzC,CACA,SAAS6I,EAAa7G,EAAOI,EAAS0G,GAClC,QAAI9G,EAAQ,GAAKA,GAAS,OAGX,MAAXI,KAAoBA,EAAU,GAAKA,GAAW,OAGnC,MAAX0G,KAAoBA,EAAU,GAAKA,GAAW,KAItD,CC3WA,MAAMS,EAA2B,iCAwT1B,SAAS,EAAOpL,EAAMqL,EAAWpL,EAAU,CAAC,GAE/C,MAAMqL,GADND,EAAY3E,OAAO2E,IACOE,MAAMH,GAChC,GAAIE,EAAS,CACT,MAAME,EAAI,EAAOvL,EAAQ6G,cAAgB9G,EAAMC,GAG/CoL,EAAYC,EAAQG,QAAO,SAAUC,EAAQ3H,GACzC,GAAiB,MAAbA,EAAM,GACN,OAAO2H,EAEX,MAAMpJ,EAAMoJ,EAAOC,QAAQ5H,GACrB6H,EAA8C,MAApBF,EAAOpJ,EAAM,GACvCuJ,EAAWH,EAAOxK,QAAQ6C,EAAO,IAAM+B,EAAW/B,EAAM,IAAIyH,EAAGzH,EAAO9D,GAAW,KAGvF,OAAO2L,EACDC,EAASC,UAAU,EAAGxJ,EAAM,GAAKuJ,EAASC,UAAUxJ,EAAM,GAC1DuJ,CACV,GAAGR,EACP,CACA,OAAO,QAAcrL,EAAMqL,EAAWpL,EAC1C,CCvTO,SAAS,EAAYD,EAAMG,EAAUF,GAExC,MAAM8L,EAAqB,EAAgB5L,EAD3CH,EAAO,EAAOA,EAAMC,IACuC,GACrDuL,EAAI,IAAIvJ,KAAKjC,EAAKoF,UAAY2G,GAC9BC,EAAa,IAAI/J,KAAK,GAG5B,OAFA+J,EAAWC,YAAYT,EAAEU,iBAAkBV,EAAEW,cAAeX,EAAEP,cAC9De,EAAWI,SAASZ,EAAEa,cAAeb,EAAEc,gBAAiBd,EAAEe,gBAAiBf,EAAEgB,sBACtER,CACX,CCPO,SAAShF,EAAkB7G,EAAUH,GACxC,OAAQ,EAAgBG,EAAUH,EACtC,C","sources":["webpack://printivity/./node_modules/date-fns-tz/dist/esm/_lib/tzIntlTimeZoneName/index.js","webpack://printivity/./node_modules/date-fns-tz/dist/esm/_lib/tzTokenizeDate/index.js","webpack://printivity/./node_modules/date-fns-tz/dist/esm/_lib/newDateUTC/index.js","webpack://printivity/./node_modules/date-fns-tz/dist/esm/_lib/tzParseTimezone/index.js","webpack://printivity/./node_modules/date-fns-tz/dist/esm/format/formatters/index.js","webpack://printivity/./node_modules/date-fns-tz/dist/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://printivity/./node_modules/date-fns-tz/dist/esm/_lib/tzPattern/index.js","webpack://printivity/./node_modules/date-fns-tz/dist/esm/toDate/index.js","webpack://printivity/./node_modules/date-fns-tz/dist/esm/format/index.js","webpack://printivity/./node_modules/date-fns-tz/dist/esm/toZonedTime/index.js","webpack://printivity/./node_modules/date-fns-tz/dist/esm/getTimezoneOffset/index.js"],"sourcesContent":["/**\n * Returns the formatted time zone name of the provided `timeZone` or the current\n * system time zone if omitted, accounting for DST according to the UTC value of\n * the date.\n */\nexport function tzIntlTimeZoneName(length, date, options) {\n const dtf = getDTF(length, options.timeZone, options.locale);\n return 'formatToParts' in dtf ? partsTimeZone(dtf, date) : hackyTimeZone(dtf, date);\n}\nfunction partsTimeZone(dtf, date) {\n const formatted = dtf.formatToParts(date);\n for (let i = formatted.length - 1; i >= 0; --i) {\n if (formatted[i].type === 'timeZoneName') {\n return formatted[i].value;\n }\n }\n return undefined;\n}\nfunction hackyTimeZone(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, '');\n const tzNameMatch = / [\\w-+ ]+$/.exec(formatted);\n return tzNameMatch ? tzNameMatch[0].substr(1) : '';\n}\n// If a locale has been provided `en-US` is used as a fallback in case it is an\n// invalid locale, otherwise the locale is left undefined to use the system locale.\nfunction getDTF(length, timeZone, locale) {\n return new Intl.DateTimeFormat(locale ? [locale.code, 'en-US'] : undefined, {\n timeZone: timeZone,\n timeZoneName: length,\n });\n}\n","/**\n * Returns the [year, month, day, hour, minute, seconds] tokens of the provided\n * `date` as it will be rendered in the `timeZone`.\n */\nexport function tzTokenizeDate(date, timeZone) {\n const dtf = getDateTimeFormat(timeZone);\n return 'formatToParts' in dtf ? partsOffset(dtf, date) : hackyOffset(dtf, date);\n}\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5,\n};\nfunction partsOffset(dtf, date) {\n try {\n const formatted = dtf.formatToParts(date);\n const filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const pos = typeToPos[formatted[i].type];\n if (pos !== undefined) {\n filled[pos] = parseInt(formatted[i].value, 10);\n }\n }\n return filled;\n }\n catch (error) {\n if (error instanceof RangeError) {\n return [NaN];\n }\n throw error;\n }\n}\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted);\n // const [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed\n // return [fYear, fMonth, fDay, fHour, fMinute, fSecond]\n return [\n parseInt(parsed[3], 10),\n parseInt(parsed[1], 10),\n parseInt(parsed[2], 10),\n parseInt(parsed[4], 10),\n parseInt(parsed[5], 10),\n parseInt(parsed[6], 10),\n ];\n}\n// Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used\n// to get deterministic local date/time output according to the `en-US` locale which\n// can be used to extract local time parts as necessary.\nconst dtfCache = {};\nfunction getDateTimeFormat(timeZone) {\n if (!dtfCache[timeZone]) {\n // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`\n const testDateFormatted = new Intl.DateTimeFormat('en-US', {\n hourCycle: 'h23',\n timeZone: 'America/New_York',\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n }).format(new Date('2014-06-25T04:00:00.123Z'));\n const hourCycleSupported = testDateFormatted === '06/25/2014, 00:00:00' ||\n testDateFormatted === '‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00';\n dtfCache[timeZone] = hourCycleSupported\n ? new Intl.DateTimeFormat('en-US', {\n hourCycle: 'h23',\n timeZone: timeZone,\n year: 'numeric',\n month: 'numeric',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n })\n : new Intl.DateTimeFormat('en-US', {\n hour12: false,\n timeZone: timeZone,\n year: 'numeric',\n month: 'numeric',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n });\n }\n return dtfCache[timeZone];\n}\n","/**\n * Use instead of `new Date(Date.UTC(...))` to support years below 100 which doesn't work\n * otherwise due to the nature of the\n * [`Date` constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#interpretation_of_two-digit_years.\n *\n * For `Date.UTC(...)`, use `newDateUTC(...).getTime()`.\n */\nexport function newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {\n const utcDate = new Date(0);\n utcDate.setUTCFullYear(fullYear, month, day);\n utcDate.setUTCHours(hour, minute, second, millisecond);\n return utcDate;\n}\n","import { tzTokenizeDate } from '../tzTokenizeDate/index.js';\nimport { newDateUTC } from '../newDateUTC/index.js';\nconst MILLISECONDS_IN_HOUR = 3600000;\nconst MILLISECONDS_IN_MINUTE = 60000;\nconst patterns = {\n timezone: /([Z+-].*)$/,\n timezoneZ: /^(Z)$/,\n timezoneHH: /^([+-]\\d{2})$/,\n timezoneHHMM: /^([+-])(\\d{2}):?(\\d{2})$/,\n};\n// Parse constious time zone offset formats to an offset in milliseconds\nexport function tzParseTimezone(timezoneString, date, isUtcDate) {\n // Empty string\n if (!timezoneString) {\n return 0;\n }\n // Z\n let token = patterns.timezoneZ.exec(timezoneString);\n if (token) {\n return 0;\n }\n let hours;\n let absoluteOffset;\n // ±hh\n token = patterns.timezoneHH.exec(timezoneString);\n if (token) {\n hours = parseInt(token[1], 10);\n if (!validateTimezone(hours)) {\n return NaN;\n }\n return -(hours * MILLISECONDS_IN_HOUR);\n }\n // ±hh:mm or ±hhmm\n token = patterns.timezoneHHMM.exec(timezoneString);\n if (token) {\n hours = parseInt(token[2], 10);\n const minutes = parseInt(token[3], 10);\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n absoluteOffset = Math.abs(hours) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;\n return token[1] === '+' ? -absoluteOffset : absoluteOffset;\n }\n // IANA time zone\n if (isValidTimezoneIANAString(timezoneString)) {\n date = new Date(date || Date.now());\n const utcDate = isUtcDate ? date : toUtcDate(date);\n const offset = calcOffset(utcDate, timezoneString);\n const fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString);\n return -fixedOffset;\n }\n return NaN;\n}\nfunction toUtcDate(date) {\n return newDateUTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n}\nfunction calcOffset(date, timezoneString) {\n const tokens = tzTokenizeDate(date, timezoneString);\n // ms dropped because it's not provided by tzTokenizeDate\n const asUTC = newDateUTC(tokens[0], tokens[1] - 1, tokens[2], tokens[3] % 24, tokens[4], tokens[5], 0).getTime();\n let asTS = date.getTime();\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return asUTC - asTS;\n}\nfunction fixOffset(date, offset, timezoneString) {\n const localTS = date.getTime();\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - offset;\n // Test whether the zone matches the offset for this ts\n const o2 = calcOffset(new Date(utcGuess), timezoneString);\n // If so, offset didn't change, and we're done\n if (offset === o2) {\n return offset;\n }\n // If not, change the ts by the difference in the offset\n utcGuess -= o2 - offset;\n // If that gives us the local time we want, we're done\n const o3 = calcOffset(new Date(utcGuess), timezoneString);\n if (o2 === o3) {\n return o2;\n }\n // If it's different, we're in a hole time. The offset has changed, but we don't adjust the time\n return Math.max(o2, o3);\n}\nfunction validateTimezone(hours, minutes) {\n return -23 <= hours && hours <= 23 && (minutes == null || (0 <= minutes && minutes <= 59));\n}\nconst validIANATimezoneCache = {};\nfunction isValidTimezoneIANAString(timeZoneString) {\n if (validIANATimezoneCache[timeZoneString])\n return true;\n try {\n new Intl.DateTimeFormat(undefined, { timeZone: timeZoneString });\n validIANATimezoneCache[timeZoneString] = true;\n return true;\n }\n catch (error) {\n return false;\n }\n}\n","import { tzIntlTimeZoneName } from '../../_lib/tzIntlTimeZoneName/index.js';\nimport { tzParseTimezone } from '../../_lib/tzParseTimezone/index.js';\nconst MILLISECONDS_IN_MINUTE = 60 * 1000;\nexport const formatters = {\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, options) {\n const timezoneOffset = getTimeZoneOffset(options.timeZone, date);\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX': // Hours and minutes without `:` delimeter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimeter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, options) {\n const timezoneOffset = getTimeZoneOffset(options.timeZone, date);\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx': // Hours and minutes without `:` delimeter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimeter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, options) {\n const timezoneOffset = getTimeZoneOffset(options.timeZone, date);\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, options) {\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return tzIntlTimeZoneName('short', date, options);\n // Long\n case 'zzzz':\n default:\n return tzIntlTimeZoneName('long', date, options);\n }\n },\n};\nfunction getTimeZoneOffset(timeZone, originalDate) {\n const timeZoneOffset = timeZone\n ? tzParseTimezone(timeZone, originalDate, true) / MILLISECONDS_IN_MINUTE\n : originalDate?.getTimezoneOffset() ?? 0;\n if (Number.isNaN(timeZoneOffset)) {\n throw new RangeError('Invalid time zone specified: ' + timeZone);\n }\n return timeZoneOffset;\n}\nfunction addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? '-' : '';\n let output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}\nfunction formatTimezone(offset, delimiter = '') {\n const sign = offset > 0 ? '-' : '+';\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n const minutes = addLeadingZeros(Math.floor(absOffset % 60), 2);\n return sign + hours + delimiter + minutes;\n}\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\nfunction formatTimezoneShort(offset, delimiter = '') {\n const sign = offset > 0 ? '-' : '+';\n const absOffset = Math.abs(offset);\n const hours = Math.floor(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return +date - +utcDate;\n}\n","/** Regex to identify the presence of a time zone specifier in a date string */\nexport const tzPattern = /(Z|[+-]\\d{2}(?::?\\d{2})?| UTC| [a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?)$/;\n","import { getTimezoneOffsetInMilliseconds } from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { tzParseTimezone } from '../_lib/tzParseTimezone/index.js';\nimport { tzPattern } from '../_lib/tzPattern/index.js';\nconst MILLISECONDS_IN_HOUR = 3600000;\nconst MILLISECONDS_IN_MINUTE = 60000;\nconst DEFAULT_ADDITIONAL_DIGITS = 2;\nconst patterns = {\n dateTimePattern: /^([0-9W+-]+)(T| )(.*)/,\n datePattern: /^([0-9W+-]+)(.*)/,\n plainTime: /:/,\n // year tokens\n YY: /^(\\d{2})$/,\n YYY: [\n /^([+-]\\d{2})$/, // 0 additional digits\n /^([+-]\\d{3})$/, // 1 additional digit\n /^([+-]\\d{4})$/, // 2 additional digits\n ],\n YYYY: /^(\\d{4})/,\n YYYYY: [\n /^([+-]\\d{4})/, // 0 additional digits\n /^([+-]\\d{5})/, // 1 additional digit\n /^([+-]\\d{6})/, // 2 additional digits\n ],\n // date tokens\n MM: /^-(\\d{2})$/,\n DDD: /^-?(\\d{3})$/,\n MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n Www: /^-?W(\\d{2})$/,\n WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n HH: /^(\\d{2}([.,]\\d*)?)$/,\n HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n // time zone tokens (to identify the presence of a tz)\n timeZone: tzPattern,\n};\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n * If the function cannot parse the string or the values are invalid, it returns Invalid Date.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n * All *date-fns* functions will throw `RangeError` if `options.additionalDigits` is not 0, 1, 2 or undefined.\n *\n * @param argument the value to convert\n * @param options the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @param {string} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n *\n * @returns the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = toDate('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = toDate('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport function toDate(argument, options = {}) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n if (argument === null) {\n return new Date(NaN);\n }\n const additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : Number(options.additionalDigits);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n // Clone the date\n if (argument instanceof Date ||\n (typeof argument === 'object' && Object.prototype.toString.call(argument) === '[object Date]')) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n }\n else if (typeof argument === 'number' ||\n Object.prototype.toString.call(argument) === '[object Number]') {\n return new Date(argument);\n }\n else if (!(Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n const dateStrings = splitDateString(argument);\n const { year, restDateString } = parseYear(dateStrings.date, additionalDigits);\n const date = parseDate(restDateString, year);\n if (date === null || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n if (date) {\n const timestamp = date.getTime();\n let time = 0;\n let offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (time === null || isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timeZone || options.timeZone) {\n offset = tzParseTimezone(dateStrings.timeZone || options.timeZone, new Date(timestamp + time));\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n }\n else {\n // get offset accurate to hour in time zones that change offset\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time));\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time + offset));\n }\n return new Date(timestamp + time + offset);\n }\n else {\n return new Date(NaN);\n }\n}\nfunction splitDateString(dateString) {\n const dateStrings = {};\n let parts = patterns.dateTimePattern.exec(dateString);\n let timeString;\n if (!parts) {\n parts = patterns.datePattern.exec(dateString);\n if (parts) {\n dateStrings.date = parts[1];\n timeString = parts[2];\n }\n else {\n dateStrings.date = null;\n timeString = dateString;\n }\n }\n else {\n dateStrings.date = parts[1];\n timeString = parts[3];\n }\n if (timeString) {\n const token = patterns.timeZone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timeZone = token[1].trim();\n }\n else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n if (dateString) {\n const patternYYY = patterns.YYY[additionalDigits];\n const patternYYYYY = patterns.YYYYY[additionalDigits];\n // YYYY or ±YYYYY\n let token = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString);\n if (token) {\n const yearString = token[1];\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length),\n };\n }\n // YY or ±YYY\n token = patterns.YY.exec(dateString) || patternYYY.exec(dateString);\n if (token) {\n const centuryString = token[1];\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length),\n };\n }\n }\n // Invalid ISO-formatted year\n return {\n year: null,\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null;\n }\n let date;\n let month;\n let week;\n // YYYY\n if (!dateString || !dateString.length) {\n date = new Date(0);\n date.setUTCFullYear(year);\n return date;\n }\n // YYYY-MM\n let token = patterns.MM.exec(dateString);\n if (token) {\n date = new Date(0);\n month = parseInt(token[1], 10) - 1;\n if (!validateDate(year, month)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month);\n return date;\n }\n // YYYY-DDD or YYYYDDD\n token = patterns.DDD.exec(dateString);\n if (token) {\n date = new Date(0);\n const dayOfYear = parseInt(token[1], 10);\n if (!validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, 0, dayOfYear);\n return date;\n }\n // yyyy-MM-dd or YYYYMMDD\n token = patterns.MMDD.exec(dateString);\n if (token) {\n date = new Date(0);\n month = parseInt(token[1], 10) - 1;\n const day = parseInt(token[2], 10);\n if (!validateDate(year, month, day)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, day);\n return date;\n }\n // YYYY-Www or YYYYWww\n token = patterns.Www.exec(dateString);\n if (token) {\n week = parseInt(token[1], 10) - 1;\n if (!validateWeekDate(week)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week);\n }\n // YYYY-Www-D or YYYYWwwD\n token = patterns.WwwD.exec(dateString);\n if (token) {\n week = parseInt(token[1], 10) - 1;\n const dayOfWeek = parseInt(token[2], 10) - 1;\n if (!validateWeekDate(week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n }\n // Invalid ISO-formatted date\n return null;\n}\nfunction parseTime(timeString) {\n let hours;\n let minutes;\n // hh\n let token = patterns.HH.exec(timeString);\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'));\n if (!validateTime(hours)) {\n return NaN;\n }\n return (hours % 24) * MILLISECONDS_IN_HOUR;\n }\n // hh:mm or hhmm\n token = patterns.HHMM.exec(timeString);\n if (token) {\n hours = parseInt(token[1], 10);\n minutes = parseFloat(token[2].replace(',', '.'));\n if (!validateTime(hours, minutes)) {\n return NaN;\n }\n return (hours % 24) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;\n }\n // hh:mm:ss or hhmmss\n token = patterns.HHMMSS.exec(timeString);\n if (token) {\n hours = parseInt(token[1], 10);\n minutes = parseInt(token[2], 10);\n const seconds = parseFloat(token[3].replace(',', '.'));\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return (hours % 24) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000;\n }\n // Invalid ISO-formatted time\n return null;\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n week = week || 0;\n day = day || 0;\n const date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n const fourthOfJanuaryDay = date.getUTCDay() || 7;\n const diff = week * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n// Validation functions\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\nfunction validateDate(year, month, date) {\n if (month < 0 || month > 11) {\n return false;\n }\n if (date != null) {\n if (date < 1) {\n return false;\n }\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {\n return false;\n }\n if (!isLeapYear && date > DAYS_IN_MONTH[month]) {\n return false;\n }\n }\n return true;\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n if (dayOfYear < 1) {\n return false;\n }\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && dayOfYear > 366) {\n return false;\n }\n if (!isLeapYear && dayOfYear > 365) {\n return false;\n }\n return true;\n}\nfunction validateWeekDate(week, day) {\n if (week < 0 || week > 52) {\n return false;\n }\n if (day != null && (day < 0 || day > 6)) {\n return false;\n }\n return true;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours < 0 || hours >= 25) {\n return false;\n }\n if (minutes != null && (minutes < 0 || minutes >= 60)) {\n return false;\n }\n if (seconds != null && (seconds < 0 || seconds >= 60)) {\n return false;\n }\n return true;\n}\n","import { format as dateFnsFormat } from 'date-fns/format';\nimport { formatters } from './formatters/index.js';\nimport { toDate } from '../toDate/index.js';\nconst tzFormattingTokensRegExp = /([xXOz]+)|''|'(''|[^'])+('|$)/g;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may consty by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 8 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 8 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Su | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Su | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | PDT, EST, CEST | 6 |\n * | | zzzz | Pacific Daylight Time | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are created using the Intl browser API. The output is determined by the\n * preferred standard of the current locale (en-US by default) which may not always give the expected result.\n * For this reason it is recommended to supply a `locale` in the format options when formatting a time zone name.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. These tokens are often confused with others. See: https://git.io/fxCyr\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole\n * library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard\n * #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table). See [this\n * post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param date the original date\n * @param formatStr the string of tokens\n * @param options the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link\n * https://date-fns.org/docs/toDate}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See\n * [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {Boolean} [options.awareOfUnicodeTokens=false] - if true, allows usage of Unicode tokens causes confusion:\n * - Some of the day of year tokens (`D`, `DD`) that are confused with the day of month tokens (`d`, `dd`).\n * - Some of the local week-numbering year tokens (`YY`, `YYYY`) that are confused with the calendar year tokens\n * (`yy`, `yyyy`). See: https://git.io/fxCyr\n * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n * @param {Date|Number} [options.originalDate] - can be used to pass the original unmodified date to `format` to\n * improve correctness of the replaced timezone token close to the DST threshold.\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.awareOfUnicodeTokens` must be set to `true` to use `XX` token; see:\n * https://git.io/fxCyr\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options = {}) {\n formatStr = String(formatStr);\n const matches = formatStr.match(tzFormattingTokensRegExp);\n if (matches) {\n const d = toDate(options.originalDate || date, options);\n // Work through each match and replace the tz token in the format string with the quoted\n // formatted time zone so the remaining tokens can be filled in by date-fns#format.\n formatStr = matches.reduce(function (result, token) {\n if (token[0] === \"'\") {\n return result; // This is a quoted portion, matched only to ensure we don't match inside it\n }\n const pos = result.indexOf(token);\n const precededByQuotedSection = result[pos - 1] === \"'\";\n const replaced = result.replace(token, \"'\" + formatters[token[0]](d, token, options) + \"'\");\n // If the replacement results in two adjoining quoted strings, the back to back quotes\n // are removed, so it doesn't look like an escaped quote.\n return precededByQuotedSection\n ? replaced.substring(0, pos - 1) + replaced.substring(pos + 1)\n : replaced;\n }, formatStr);\n }\n return dateFnsFormat(date, formatStr, options);\n}\n","import { tzParseTimezone } from '../_lib/tzParseTimezone/index.js';\nimport { toDate } from '../toDate/index.js';\n/**\n * @name toZonedTime\n * @category Time Zone Helpers\n * @summary Get a date/time representing local time in a given time zone from the UTC date\n *\n * @description\n * Returns a date instance with values representing the local time in the time zone\n * specified of the UTC time from the date provided. In other words, when the new date\n * is formatted it will show the equivalent hours in the target time zone regardless\n * of the current system time zone.\n *\n * @param date the date with the relevant UTC time\n * @param timeZone the time zone to get local time for, can be an offset or IANA time zone\n * @param options the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n *\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // In June 10am UTC is 6am in New York (-04:00)\n * const result = toZonedTime('2014-06-25T10:00:00.000Z', 'America/New_York')\n * //=> Jun 25 2014 06:00:00\n */\nexport function toZonedTime(date, timeZone, options) {\n date = toDate(date, options);\n const offsetMilliseconds = tzParseTimezone(timeZone, date, true);\n const d = new Date(date.getTime() - offsetMilliseconds);\n const resultDate = new Date(0);\n resultDate.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());\n resultDate.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());\n return resultDate;\n}\n","import { tzParseTimezone } from '../_lib/tzParseTimezone/index.js';\n/**\n * @name getTimezoneOffset\n * @category Time Zone Helpers\n * @summary Gets the offset in milliseconds between the time zone and Universal Coordinated Time (UTC)\n *\n * @description\n * Returns the time zone offset from UTC time in milliseconds for IANA time zones as well\n * as other time zone offset string formats.\n *\n * For time zones where daylight savings time is applicable a `Date` should be passed on\n * the second parameter to ensure the offset correctly accounts for DST at that time of\n * year. When omitted, the current date is used.\n *\n * @param timeZone the time zone of this local time, can be an offset or IANA time zone\n * @param date the date with values representing the local time\n *\n * @example\n * const result = getTimezoneOffset('-07:00')\n * //=> -18000000 (-7 * 60 * 60 * 1000)\n * const result = getTimezoneOffset('Africa/Johannesburg')\n * //=> 7200000 (2 * 60 * 60 * 1000)\n * const result = getTimezoneOffset('America/New_York', new Date(2016, 0, 1))\n * //=> -18000000 (-5 * 60 * 60 * 1000)\n * const result = getTimezoneOffset('America/New_York', new Date(2016, 6, 1))\n * //=> -14400000 (-4 * 60 * 60 * 1000)\n */\nexport function getTimezoneOffset(timeZone, date) {\n return -tzParseTimezone(timeZone, date);\n}\n"],"names":["tzIntlTimeZoneName","length","date","options","dtf","timeZone","locale","Intl","DateTimeFormat","code","undefined","timeZoneName","getDTF","formatted","formatToParts","i","type","value","partsTimeZone","format","replace","tzNameMatch","exec","substr","hackyTimeZone","tzTokenizeDate","dtfCache","testDateFormatted","hourCycle","year","month","day","hour","minute","second","Date","hourCycleSupported","hour12","getDateTimeFormat","filled","pos","typeToPos","parseInt","error","RangeError","NaN","partsOffset","parsed","hackyOffset","fullYear","millisecond","utcDate","setUTCFullYear","setUTCHours","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","patterns","timezone","timezoneZ","timezoneHH","timezoneHHMM","timezoneString","isUtcDate","hours","absoluteOffset","token","validateTimezone","minutes","Math","abs","timeZoneString","validIANATimezoneCache","isValidTimezoneIANAString","now","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","toUtcDate","offset","calcOffset","fixedOffset","localTS","getTime","utcGuess","o2","o3","max","fixOffset","tokens","asUTC","asTS","over","formatters","X","timezoneOffset","getTimeZoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","delimiter","sign","absOffset","floor","String","addLeadingZeros","formatTimezoneShort","z","originalDate","timeZoneOffset","getTimezoneOffset","Number","isNaN","number","targetLength","output","toString","getTimezoneOffsetInMilliseconds","UTC","DEFAULT_ADDITIONAL_DIGITS","dateTimePattern","datePattern","plainTime","YY","YYY","YYYY","YYYYY","MM","DDD","MMDD","Www","WwwD","HH","HHMM","HHMMSS","argument","arguments","TypeError","additionalDigits","Object","prototype","call","dateStrings","dateString","timeString","parts","time","trim","splitDateString","restDateString","patternYYY","patternYYYYY","yearString","slice","centuryString","parseYear","week","validateDate","dayOfYear","isLeapYear","isLeapYearIndex","validateDayOfYearDate","validateWeekDate","dayOfISOWeekYear","dayOfWeek","parseDate","timestamp","parseFloat","validateTime","seconds","parseTime","isoWeekYear","diff","getUTCDay","setUTCDate","getUTCDate","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","tzFormattingTokensRegExp","formatStr","matches","match","d","reduce","result","indexOf","precededByQuotedSection","replaced","substring","offsetMilliseconds","resultDate","setFullYear","getUTCFullYear","getUTCMonth","setHours","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds"],"sourceRoot":""}