{"version":3,"file":"static/js/main.a9c3481c.js","mappings":"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AK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IA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,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,oBACN,GAAM,SACN,GAAM,+CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,oCACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,iCACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,wBACN,GAAM,cACN,GAAM,cACN,GAAM,SACN,GAAM,iBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,6BACN,GAAM,aACN,GAAM,mBACN,GAAM,kBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,gBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,cACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,cACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,OACN,GAAM,mBACN,GAAM,mBACN,GAAM,cACN,GAAM,WACN,GAAM,SACN,GAAM,4BACN,GAAM,WACN,GAAM,cACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,eACN,GAAM,kBACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,YACN,GAAM,eACN,GAAM,WACN,GAAM,yBACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,cACN,GAAM,wBACN,GAAM,cACN,GAAM,eACN,GAAM,QACN,GAAM,YACN,GAAM,mBACN,GAAM,2BACN,GAAM,OACN,GAAM,8BACN,GAAM,OACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,sBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,uCACN,GAAM,gBACN,GAAM,UACN,GAAM,aACN,GAAM,gCACN,GAAM,mCACN,GAAM,YACN,GAAM,0BACN,GAAM,uBACN,GAAM,UACN,GAAM,UACN,GAAM,oBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,WACN,GAAM,iBChQD,IAAMytD,GAAWzoG,GAAAA,MAAgB,CACvCisG,sBAAwBjsG,GAAAA,OAAiBnB,WACzCmrG,UAAYhqG,GAAAA,OAAiBnB,aAGjB24G,GAASx3G,GAAAA,SAAmBA,GAAAA,u2BCNlC,SAASy3G,GAAiBt4G,EAAQD,GASxC,IARA,IAQAsvG,EARIpgE,EAAQ,EAQZqgE,EAAAC,GAAwBxvG,EAAO8B,MAAM,OAArCwtG,EAAAC,KAAAx4E,MAA0C,CAAAu4E,EAAAhzG,QACvB2D,GACjBivC,GAED,CACD,OAAOA,CACP,20BCDc,YAASspE,GACxB,IADkCrc,EAClCl+F,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GADgD,IAAKw6G,EACrDx6G,UAAArC,OAAA,EAAAqC,UAAA,QAAAP,EACC,IAAK86G,EAEJ,OAAO,SAAAl8G,GAAK,MAAK,CAAE4mB,KAAM5mB,EAAb,EAGb,IAAMo8G,EAAyBH,GAAiBpc,EAAaqc,GAE7D,OAAO,SAASl8G,GAEf,IAAKA,EAEJ,MAAO,CAAE4mB,KAAM,GAAIs1F,SAAAA,GAYpB,IATA,IASAlJ,EATIqJ,EAAwB,EACxBC,EAAqB,GAQzBrJ,EAAAC,GAAwBgJ,EAAS12G,MAAM,OAAvCwtG,EAAAC,KAAAx4E,MACA,KADWq4E,EACXE,EAAAhzG,MACC,GAAI8yG,IAAcjT,GAalB,GAPAyc,GAAsBt8G,EAAMq8G,KAC5BA,IAM8Br8G,EAAMV,QAK/BU,EAAMV,OAAS88G,EAElB,WAlBDE,GAAsBxJ,CAqBvB,CAOD,OALIqJ,IAEHG,ECnEY,SAAqBC,EAAmBL,GAStD,IARD,IADiErc,EACjEl+F,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAD+E,IAAK66G,EACpF76G,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GADwG,IAEnG86G,EAAaF,EAAkBj9G,OAK/Bo9G,EAHmBT,GAAiB,IAAKM,GACtBN,GAAiB,IAAKM,GAItCG,EAAkB,GAAKD,EAAaP,EAAS58G,QAEnDi9G,GAAqBL,EAASO,GAAY39G,QAAQ+gG,EAAa2c,GAElC,MAAzBN,EAASO,IAEZC,IAGDD,IAGD,OAAOF,CACP,CD6CuBI,CAAaL,EAAoBJ,IAGhD,CAAEt1F,KAAM01F,EAAoBJ,SAAAA,EACnC,CACD,CExDM,IAAMU,GACb,CACCC,UAAY,EACZC,OAAY,IAwBN,SAASC,GAAiBj5G,EAASk5G,QAGlB57G,IAAnB47G,KAuBL,WAEC,GAAyB,qBAAdvoE,UACV,OAAOwoE,GAA2Bt8G,KAAK8zC,UAAU+yB,UAElD,CAZI01C,GAGHp5G,EAAQq5G,kBAAkBH,EAAgBA,GAFtCrtF,YAAW,kBAAM7rB,EAAQq5G,kBAAkBH,EAAgBA,EAAhD,GAAiE,GAIjF,CASD,IAAMC,GAA6B,WCT5B,SAASG,GAAUj2F,EAAOhT,EAAOkpG,EAAQhM,EAASiM,GAExD,IAAenpG,EDrEAopG,aAAa,YCqE5B,CDvEM,IC2EAC,EDjDA,SAAsBr2F,GAE5B,OAAQA,EAAMhJ,SAEb,KAAKy+F,GAAKC,UACT,MAAO,YAER,KAAKD,GAAKE,OACT,MAAO,SAET,CCuCkBW,CAAat2F,GAC/B,OAAQq2F,GAEP,IAAK,SACL,IAAK,YAEJr2F,EAAMpI,iBAEN,IAAM2+F,ED7EF,SAAsB55G,GAG5B,GAAIA,EAAQgmB,iBAAmBhmB,EAAQimB,aAKvC,MAAO,CAAEH,MAAO9lB,EAAQgmB,eAAgBD,IAAK/lB,EAAQimB,aACrD,CCoEoBG,CAAa/V,GAG/B,OAAIupG,GAEHC,GAAexpG,EAAOupG,GACfE,GAAgBzpG,EAAOkpG,EAAQhM,OAASjwG,EAAWk8G,IAIpDM,GAAgBzpG,EAAOkpG,EAAQhM,EAASmM,EAAWF,GApB3D,CAyBD,CAOD,SAASK,GAAexpG,EAAOupG,GAE9B,IAAI92F,EAAOzS,EAAMnU,MACjB4mB,EAAOA,EAAKpd,MAAM,EAAGk0G,EAAU9zF,OAAShD,EAAKpd,MAAMk0G,EAAU7zF,KAE7D1V,EAAMnU,MAAQ4mB,EACdm2F,GAAiB5oG,EAAOupG,EAAU9zF,MAClC,CAcD,SAASg0F,GAAgBzpG,EAAOkpG,EAAQhM,EAASmM,EAAWF,GAI3D,IAAAO,EC1Gc,SAAej3F,EAAMo2F,EAAgBc,GASnD,IAPA,IAAMhoF,EAAU,CAAC,EAEb91B,EAAQ,GAER+9G,EAAgC,EAEhC1+G,EAAQ,EACLA,EAAQunB,EAAKtnB,QACpB,CACC,IAAMwzG,EAAYgL,EAAgBl3F,EAAKvnB,GAAQW,EAAO81B,QAEpC10B,IAAd0xG,IAEH9yG,GAAS8yG,OAEc1xG,IAAnB47G,IAECA,IAAmB39G,EAEtB0+G,EAAgC/9G,EAAMV,OAAS,EAEvC09G,EAAiB39G,IAEzB0+G,EAAgC/9G,EAAMV,UAKzCD,GACA,CAeD,YAZuB+B,IAAnB47G,IAGHe,EAAgC/9G,EAAMV,QAIvC,CACCU,MAAAA,EACAg+G,MAAQD,EAIT,CD2DuBz7C,CAAMnuD,EAAMnU,MAAwBmU,EDzF5C2V,eCyFoDuzF,GAA7Dr9G,EAAN69G,EAAM79G,MAAOg+G,EAAbH,EAAaG,MAIb,GAAIR,EACJ,CACC,IAAMS,EExHO,SAAcj+G,EAAOg+G,EAAOR,GAE1C,OAAQA,GAEP,IAAK,YAGAQ,EAAQ,IAGXh+G,EAAQA,EAAMwJ,MAAM,EAAGw0G,EAAQ,GAAKh+G,EAAMwJ,MAAMw0G,GAEhDA,KAED,MAED,IAAK,SAEJh+G,EAAQA,EAAMwJ,MAAM,EAAGw0G,GAASh+G,EAAMwJ,MAAMw0G,EAAQ,GAItD,MAAO,CAAEh+G,MAAAA,EAAOg+G,MAAAA,EAChB,CFiG0BE,CAAKl+G,EAAOg+G,EAAOR,GAE5Cx9G,EAAQi+G,EAAiBj+G,MACzBg+G,EAAQC,EAAiBD,KACzB,CAID,IAAMG,EG9GQ,SAAgBn+G,EAAOg+G,EAAOpiB,GAEnB,kBAAdA,IAEVA,EAAYwiB,GAAmBxiB,IAGhC,IAAAjpC,EAAyBipC,EAAU57F,IAAU,CAAC,EAAxC4mB,EAAN+rC,EAAM/rC,KAAMs1F,EAAZvpD,EAAYupD,SAOZ,QALa96G,IAATwlB,IAEFA,EAAO5mB,GAGLk8G,EAEH,QAAc96G,IAAV48G,EAEHA,EAAQp3F,EAAKtnB,WAGd,CAMC,IALA,IAAID,EAAQ,EACRg/G,GAAQ,EAERC,GAAuC,EAEpCj/G,EAAQunB,EAAKtnB,QAAUD,EAAQ68G,EAAS58G,QAC/C,CAEC,GAAIsnB,EAAKvnB,KAAW68G,EAAS78G,GAC7B,CACC,GAAc,IAAV2+G,EACJ,CACCK,GAAQ,EACRL,EAAQ3+G,EACR,KACA,CAEDi/G,EAAsCj/G,EAEtC2+G,GACA,CAED3+G,GACA,CAIIg/G,IAEJL,EAAQM,EAAsC,EAE/C,CAGF,MAAO,CAAE13F,KAAAA,EAAMo3F,MAAAA,EACf,CHqDkBl5C,CAAO9kE,EAAOg+G,EAAO3M,GAEjCzqF,EAAOu3F,EAAUv3F,KACvBo3F,EAAaG,EAAUH,MAMvB7pG,EAAMnU,MAAQ4mB,EAEdm2F,GAAiB5oG,EAAO6pG,GAIxBV,EAAUt9G,EACV,mpBI9ID,SAASyhG,GAAT9uC,EAQG94B,GAAK,IAPP75B,EAOO2yD,EAPP3yD,MACAsiE,EAMO3P,EANP2P,MACAwC,EAKOnS,EALPmS,OACgBy5C,EAIT5rD,EAJP6rD,eACA3hE,EAGO8V,EAHP9V,SACAugE,EAEOzqD,EAFPyqD,UACG9qD,EACImsD,GAAA9rD,EAAA+rD,IACDC,GAAcn+E,EAAAA,EAAAA,UACdo+E,GAAS5+E,EAAAA,EAAAA,cAAY,SAAC/S,GAC3B0xF,EAAYjnG,QAAUuV,EAClB4M,IACgB,oBAARA,EACVA,EAAI5M,GAEJ4M,EAAIniB,QAAUuV,EAGhB,GAAE,CAAC4M,IACEglF,GAAY7+E,EAAAA,EAAAA,cAAY,SAAC7Y,GJW/By2F,GIREe,EAAYjnG,QACZ4qD,EACAwC,OJMsC1jE,EILtCy7C,EAED,GAAE,CAAC8hE,EAAar8C,EAAOwC,EAAQjoB,IAE1BiiE,GAAa9+E,EAAAA,EAAAA,cAAY,SAAC7Y,GAM/B,GALIi2F,GACHA,EAAUj2F,IAIPA,EAAMvI,iBAGV,OAAOmgG,GACN53F,EACAw3F,EAAYjnG,QACZ4qD,EACAwC,EACAjoB,EAED,GAAE,CAAC8hE,EAAar8C,EAAOwC,EAAQjoB,EAAUugE,IAE1C,OACClgE,EAAAA,cAACqhE,EAADS,GAAA,GACK1sD,EADL,CAECz4B,IAAK+kF,EACL5+G,MAAO8kE,EAAOm6C,GAAaj/G,GAAS,GAAKA,GAAO4mB,KAChDw2F,UAAW0B,EACXjiE,SAAUgiE,IAEZ,EAEDpd,GAAQvkD,EAAAA,WAAiBukD,KAEnB5uC,UAAY,CAEjByP,MAAO99D,GAAAA,KAAenB,WAGtByhE,OAAQtgE,GAAAA,KAAenB,WAGvBm7G,eAAgBh6G,GAAAA,YAAsBnB,WAGtCpC,KAAMuD,GAAAA,OAAiBnB,WAGvBrD,MAAOwE,GAAAA,OAGPq4C,SAAUr4C,GAAAA,KAAenB,WAGzB+5G,UAAW54G,GAAAA,KACX06G,MAAO16G,GAAAA,KACP26G,QAAS36G,GAAAA,MAGVi9F,GAAM3sE,aAAe,CAEpB0pF,eAAgB,QAGhBv9G,KAAM,QAGP,YAEA,SAASg+G,GAAaj/G,GACrB,YAAiBoB,IAAVpB,GAAiC,OAAVA,CAC9B,4KCjGoBo/G,GAAAA,WACpB,SAAAA,EAAAzsD,GAAsD,IAAxC0sD,EAAwC1sD,EAAxC0sD,gBAAiBC,EAAuB3sD,EAAvB2sD,iHAAuBrR,CAAA,KAAAmR,GACrD7/G,KAAK8/G,gBAAkBA,EACvB9/G,KAAK+/G,oBAAsBA,CAC3B,6CAED,SAAAl2D,GAAgC,IAAxBi2C,EAAwBj2C,EAAxBi2C,QAAS8P,EAAe/lD,EAAf+lD,YAChB5vG,KAAKggH,eAAgB,EACrBhgH,KAAKigH,aAAc,EACnBjgH,KAAKuwG,eAAY1uG,EACjB7B,KAAK4vG,iBAAc/tG,EACnB7B,KAAKkgH,OAAS,GACdlgH,KAAKmgH,iCACLngH,KAAKogH,0BAA0BtgB,EAAS8P,EACxC,+CAED,WACC5vG,KAAKqgH,0BAA4BrgH,KAAKsgH,oBACtCtgH,KAAKugH,uCAAwC,EAC7CvgH,KAAKyxG,oBAAiB5vG,EACtB7B,KAAK01G,iBAAc7zG,EACnB7B,KAAKwgH,kDAA+C3+G,CACpD,uBAED,SAAO4+G,GACN,IAAK,IAAL7pC,EAAA,EAAA8pC,EAAkB1iH,OAAOc,KAAK2hH,GAA9B7pC,EAAA8pC,EAAA3gH,OAAA62E,IAA2C,CAAtC,IAAMp2E,EAAGkgH,EAAA9pC,GACb52E,KAAKQ,GAAOigH,EAAWjgH,EACvB,CACD,0CAED,SAA0Bs/F,EAAS8P,GAClC5vG,KAAK2gH,WAAW7gB,GAChB9/F,KAAK4gH,eAAehR,EACpB,2BAED,SAAW9P,GACV9/F,KAAK8/F,QAAUA,EACf9/F,KAAK8/G,gBAAgBhgB,EACrB,+BAED,SAAe8P,GACd5vG,KAAK4vG,YAAcA,EACnB5vG,KAAK+/G,oBAAoBnQ,EAAa5vG,KAAK8/F,QAC3C,yCAED,SAAyBA,EAAS8P,GAEjC5vG,KAAKggH,eAAgB,EAIrBhgH,KAAKogH,0BAA0BtgB,EAAS8P,EACxC,6BAED,SAAaiR,GACZ7gH,KAAKkgH,QAAUW,CACf,sDAED,SAAsCA,GACrC7gH,KAAKqgH,2BAA6BQ,CAClC,kCASD,WACC,OAAI7gH,KAAKggH,cACDhgH,KAAKkgH,OAAOj2G,OACjBjK,KAAKuwG,UAAYvwG,KAAKuwG,UAAUxwG,OAAS,IACzCC,KAAK4vG,YAAc5vG,KAAK4vG,YAAY7vG,OAAS,IAGzCC,KAAKkgH,MACZ,oDAED,WACC,OAAIlgH,KAAKggH,eACJhgH,KAAKuwG,UACDvwG,KAAKkgH,OAAOj2G,MAAMjK,KAAKuwG,UAAUxwG,QAGnCC,KAAKkgH,MACZ,wFAtFmBL,60BCjBd,IAAMiB,GAAoB,IAC3BC,GAA4B,IAAI1hH,OAAOyhH,IAqBtC,SAAS18F,GAAOjgB,EAAQw4F,GAC9B,GAAIA,EAAQ,EACX,MAAO,GAGR,IADA,IAAI17F,EAAS,GACN07F,EAAQ,GACF,EAARA,IACH17F,GAAUkD,GAEXw4F,IAAU,EACVx4F,GAAUA,EAEX,OAAOlD,EAASkD,CAChB,CAEM,SAAS68G,GAA2B78G,EAAQ88G,GAIlD,MAH+B,MAA3B98G,EAAO88G,IACVA,IAmBK,SAA8B98G,GACpC,IAAMg5G,EAAiB,GACnB/lE,EAAI,EACR,KAAOA,EAAIjzC,EAAOpE,QACC,MAAdoE,EAAOizC,GACV+lE,EAAgBx6G,KAAKy0C,GAEC,MAAdjzC,EAAOizC,IACf+lE,EAAgBz6G,MAEjB00C,IAED,IAAI/sB,EAAQ,EACR62F,EAAiB,GACrB/D,EAAgBx6G,KAAKwB,EAAOpE,QAC5B,IAAK,IAAL62E,EAAA,EAAAuqC,EAAoBhE,EAApBvmC,EAAAuqC,EAAAphH,OAAA62E,IAAqC,CAAhC,IAAM92E,EAAKqhH,EAAAvqC,GACfsqC,GAAkB/8G,EAAO8F,MAAMogB,EAAOvqB,GACtCuqB,EAAQvqB,EAAQ,CAChB,CACD,OAAOohH,CACP,CArCOE,CAAqBj9G,EAAO8F,MAAM,EAAGg3G,GAC5C,CCvCc,SAASI,GAAqB3nF,EAAO6rC,EAArCnS,GAIZ,IAHFs6C,EAGEt6C,EAHFs6C,SACA4T,EAEEluD,EAFFkuD,sCACAC,EACEnuD,EADFmuD,gCAGA,GADgB,IAAIliH,OAAJ,OAAAkuB,OAAkBg4C,EAAOzkE,UAAzB,OACJM,KAAKs4B,EAAM2mF,2BACtB,OAgBF,SAAwE3mF,EAAO6rC,EAA/E1b,GAIG,IAHF6jD,EAGE7jD,EAHF6jD,SACA4T,EAEEz3D,EAFFy3D,sCACAC,EACE13D,EADF03D,gCASI7nF,EAJH2mF,0BAIG3mF,EAHHsmF,cAGGtmF,EAFH+3E,eAEG/3E,EADHg8E,YAaD,GAAI4L,EAAsC/7C,GAAS,CAClD,IAAM8vC,EAAkBa,GAAqBx8E,EAAO6rC,EAAQ,CAC3Di8C,iCAAiC,EACjCD,gCAAAA,EACA7T,SAAAA,IAED,GAAI2H,EACH,OAAOA,CAER,CAGD,OAAOa,GAAqBx8E,EAAO6rC,EAAQ,CAC1Ci8C,iCAAiC,EACjCD,gCAAAA,EACA7T,SAAAA,GAED,CAzDQ+T,CACN/nF,EACA6rC,EACA,CACCmoC,SAAAA,EACA4T,sCAAAA,EACAC,gCAAAA,GAIH,CAiDD,SAASrL,GAAqBx8E,EAAO6rC,EAArCpb,GAIG,IAHFujD,EAGEvjD,EAHFujD,SACA8T,EAEEr3D,EAFFq3D,gCACAD,EACEp3D,EADFo3D,gCAEIG,EAA0BnM,GAC7B77E,EAAM2mF,0BACN96C,EACA,CACCmwC,YAAah8E,EAAMg8E,YACnBF,uBAAwB97E,EAAMsmF,cAC9BvK,mBAAoB+L,EACpB9T,SAAAA,IAgBF,GAbK8T,IACA9nF,EAAM+3E,eAGTiQ,EAA0BhoF,EAAM+3E,eAC/B8P,EAAgCh8C,GAChCm8C,EACShoF,EAAM8mF,+CAChBkB,EAA0BhoF,EAAM8mF,6CAC/B,IACAkB,IAqCJ,SAAwCA,EAAyBhoF,GAChE,OAAO85E,GAAYkO,KAA6BhoF,EAAM4mF,mBACtD,CApCIqB,CAA+BD,EAAyBhoF,GAC3D,OAAOgoF,CAER,4KCrGoBE,GAAAA,yKACpB,SAAM9gH,GAQL,GAPAd,KAAKu2B,QAAU,CAAC,CACfsrF,IAAI,EACJC,aAAc,KAGf9hH,KAAKm1F,aAAar0F,GAEU,IAAxBd,KAAKu2B,QAAQx2B,OAChB,MAAM,IAAI4D,MAAM,wDAGjB,IAAAo+G,EAAmC/hH,KAAKu2B,QAAQ,GAAxCyrF,EAARD,EAAQC,SAAUF,EAAlBC,EAAkBD,aAElB,GAAIE,EACH,MAAO,CACNC,GAAI,IACJ9/G,KAAM6/G,EAASz0F,OAAO,CACrB20F,GAAyBJ,MAM5B,GAA4B,IAAxBA,EAAa/hH,OAChB,MAAM,IAAI4D,MAAM,uBAGjB,OAA4B,IAAxBm+G,EAAa/hH,OACT+hH,EAAa,GAGdA,CACP,6BAED,SAAavrF,GACZv2B,KAAKu2B,QAAQ5zB,KAAK4zB,EAClB,2BAED,WACCv2B,KAAKu2B,QAAQ7zB,KACb,2BAED,WACC,OAAO1C,KAAKu2B,QAAQv2B,KAAKu2B,QAAQx2B,OAAS,EAC1C,6BAED,SAAae,GACZ,IAAKA,EACJ,MAAM,IAAI6C,MAAM,uBAGjB,IAAMwC,EAAQrF,EAAQqF,MAAMg8G,IAC5B,GAAKh8G,EAAL,CAUA,IAAMi8G,EAAWj8G,EAAM,GACjBk8G,EAASvhH,EAAQmJ,MAAM,EAAG9D,EAAMrG,OAChCwiH,EAAYxhH,EAAQmJ,MAAM9D,EAAMrG,MAAQsiH,EAASriH,QAEvD,OAAQqiH,GACP,IAAK,MACAC,GACHriH,KAAKm1F,aAAaktB,GAEnBriH,KAAKuiH,aAAa,CACjBV,IAAI,EACJC,aAAc,GACdE,SAAU,KAEX,MAED,IAAK,IACJ,IAAKhiH,KAAKwiH,aAAaX,GACtB,MAAM,IAAIl+G,MAAM,mDAKjB,GAHI0+G,GACHriH,KAAKm1F,aAAaktB,GAE2B,IAA1CriH,KAAKwiH,aAAaV,aAAa/hH,OAClC,MAAM,IAAI4D,MAAM,6DAEjB,IAAQq+G,EAAahiH,KAAKwiH,aAAlBR,SACRA,EAASr/G,KACRu/G,GACCliH,KAAKwiH,aAAaV,eAGpB9hH,KAAKyiH,aACLziH,KAAKwiH,aAAaV,aAAan/G,KAAK,CACnCs/G,GAAI,IACJ9/G,KAAM6/G,IAEP,MAED,IAAK,IACJ,IAAKhiH,KAAKwiH,aAAaX,GACtB,MAAM,IAAIl+G,MAAM,oDAMjB,GAJI0+G,GACHriH,KAAKm1F,aAAaktB,IAGdriH,KAAKwiH,aAAaR,SAAU,CAGhC,GAA4B,IAAxBhiH,KAAKu2B,QAAQx2B,OAGhB,MAAM,IAAI4D,MAAM,iDAFhB3D,KAAKwiH,aAAaR,SAAW,EAI9B,CACDhiH,KAAKwiH,aAAaR,SAASr/G,KAC1Bu/G,GACCliH,KAAKwiH,aAAaV,eAGpB9hH,KAAKwiH,aAAaV,aAAe,GACjC,MAED,IAAK,IACAO,GACHriH,KAAKm1F,aAAaktB,GAEnBriH,KAAKuiH,aAAa,CACjBG,UAAU,IAEX,MAED,IAAK,IACJ,IAAK1iH,KAAKwiH,aAAaE,SACtB,MAAM,IAAI/+G,MAAM,iDAEjB3D,KAAKyiH,aACLziH,KAAKwiH,aAAaV,aAAan/G,KAAK,CACnCs/G,GAAI,KACJ9/G,KAAMwgH,GAAcN,KAErB,MAGD,QACC,MAAM,IAAI1+G,MAAJ,qBAAA4pB,OAA+B60F,IAGnCE,GACHtiH,KAAKm1F,aAAamtB,EA5FlB,KARD,CACC,GAAIM,GAAyBxhH,KAAKN,GACjC,MAAM,IAAI6C,MAAJ,0CAAA4pB,OAAoDzsB,IAE3Dd,KAAKwiH,aAAaV,aAAe9hH,KAAKwiH,aAAaV,aAAav0F,OAC/DzsB,EAAQmF,MAAM,IAGf,CA8FD,yFA5JmB27G,GA+JrB,SAASe,GAAc7hH,GAGtB,IAFA,IAAM0gD,EAAS,GACXpK,EAAI,EACDA,EAAIt2C,EAAQf,QAAQ,CAC1B,GAAmB,MAAfe,EAAQs2C,GAAY,CACvB,GAAU,IAANA,GAAWA,IAAMt2C,EAAQf,OAAS,EACrC,MAAM,IAAI4D,MAAJ,wCAAA4pB,OAAkDzsB,IAKzD,IAHA,IAAM+hH,EAAY/hH,EAAQs2C,EAAI,GAAG8jB,WAAW,GAAK,EAC3CuwB,EAAY3qF,EAAQs2C,EAAI,GAAG8jB,WAAW,GAAK,EAC7Cz6D,EAAQoiH,EACLpiH,GAASgrF,GACfjqC,EAAO7+C,KAAKshB,OAAOC,aAAazjB,IAChCA,GAED,MACA+gD,EAAO7+C,KAAK7B,EAAQs2C,IAErBA,GACA,CACD,OAAOoK,CACP,CAED,IAAMohE,GAA2B,mBAE3BT,GAAW,IAAI9iH,OAEpB,+BAsBD,SAAS6iH,GAAyB3hH,GACjC,OAAqB,IAAjBA,EAAMR,OACFQ,EAAM,GAEPA,CACP,s/BCnNoBuiH,GAAAA,WACpB,SAAAA,EAAYhiH,gGAAS4tG,CAAA,KAAAoU,GACpB9iH,KAAK+iH,WAAY,IAAInB,IAAgB7+C,MAAMjiE,EAC3C,4CAED,SAAMqD,GAAgC,IAAtB6+G,GAAsB5gH,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAJ,CAAC,GAAnB4gH,cACf,IAAK7+G,EACJ,MAAM,IAAIR,MAAM,sBAEjB,IAAM1C,EAASgiH,GAAM9+G,EAAO8B,MAAM,IAAKjG,KAAK+iH,WAAW,GAIvD,GAHI9hH,GAAUA,EAAOkF,cACblF,EAAOiiH,cAEXjiH,IAAUA,EAAOwzB,UACfuuF,EAIN,OAAO/hH,CACP,yFAnBmB6hH,GA6BrB,SAASG,GAAME,EAAYC,EAAMl9E,GAOhC,GAAoB,kBAATk9E,EAAmB,CAC7B,IAAMC,EAAkBF,EAAWl8G,KAAK,IACxC,OAAsC,IAAlCm8G,EAAK98G,QAAQ+8G,GAKZF,EAAWpjH,SAAWqjH,EAAKrjH,OACvB,CACNoG,OAAO,EACP+8G,aAAcC,GAOT,CACNG,cAAc,GAIsB,IAAlCD,EAAgB/8G,QAAQ88G,GACvBl9E,GASCi9E,EAAWpjH,OAASqjH,EAAKrjH,OACrB,CACN00B,UAAU,GAIN,CACNtuB,OAAO,EACP+8G,aAAcC,EAAWl5G,MAAM,EAAGm5G,EAAKrjH,cAGzC,CACA,CAED,GAAIzB,MAAMmJ,QAAQ27G,GAAO,CAGxB,IAFA,IAAIG,EAAiBJ,EAAWl5G,QAC5BmtC,EAAI,EACDA,EAAIgsE,EAAKrjH,QAAQ,CACvB,IACMkB,EAASgiH,GAAMM,EADLH,EAAKhsE,GACyBlR,GAASkR,IAAMgsE,EAAKrjH,OAAS,GAC3E,IAAKkB,EACJ,OACM,GAAIA,EAAOwzB,SACjB,OAAOxzB,EACD,IAAIA,EAAOkF,MAgBX,CAEN,GAAIlF,EAAOqiH,aACV,MAAO,CACNA,cAAc,GAIf,MAAM,IAAI3/G,MAAJ,8BAAA4pB,OAAwCgiB,KAAKC,UAAUvuC,EAAQ,KAAM,IAE5E,CAvBA,GAA8B,KAD9BsiH,EAAiBA,EAAet5G,MAAMhJ,EAAOiiH,aAAanjH,SACvCA,OAClB,OAAIq3C,IAAMgsE,EAAKrjH,OAAS,EAChB,CACNoG,OAAO,EACP+8G,aAAcC,GAGR,CACNG,cAAc,GAgBlBlsE,GACA,CAID,OAAIlR,EACI,CACNzR,UAAU,GAGL,CACNtuB,OAAO,EACP+8G,aAAcC,EAAWl5G,MAAM,EAAGk5G,EAAWpjH,OAASwjH,EAAexjH,QAEtE,CAED,OAAQqjH,EAAKnB,IACZ,IAAK,IAEJ,IADA,IAAIqB,EACJ7P,EAAAC,EAAAC,GAAqByP,EAAKjhH,QAA1BsxG,EAAAC,KAAAx4E,MAAgC,KACzBgY,EAAS+vE,GAAME,EADU1P,EAAAhzG,MACUylC,GACzC,GAAIgN,EAAQ,CACX,GAAIA,EAAOze,SACV,OAAOye,EACD,GAAIA,EAAO/sC,MACjB,MAAO,CACNA,OAAO,EACP+8G,aAAchwE,EAAOgwE,cAItB,IAAIhwE,EAAOowE,aAGV,MAAM,IAAI3/G,MAAJ,8BAAA4pB,OAAwCgiB,KAAKC,UAAU0D,EAAQ,KAAM,KAF3EowE,GAAe,CAKjB,CACD,CACD,OAAIA,EACI,CACNA,cAAc,QAKhB,EAED,IAAK,KACJ,IAAK,IAALE,EAAAC,EAAA9P,GAAmByP,EAAKjhH,QAAxBqhH,EAAAC,KAAAvoF,MAA8B,KAAnBwoF,EAAmBF,EAAA/iH,MAC7B,GAAI0iH,EAAW,KAAOO,EACrB,OAA0B,IAAtBP,EAAWpjH,OACP,CACNoG,OAAO,EACP+8G,aAAcC,GAGZj9E,EACI,CACNzR,UAAU,GAGL,CACNtuB,OAAO,EACP+8G,aAAc,CAACQ,GAGjB,CAED,OAGD,QACC,MAAM,IAAI//G,MAAJ,iCAAA4pB,OAA2C61F,IAEnD,k/BC5KD,IAKMO,GAA6Bv/F,GALf,IAEyB,IAOvCw/F,GAAqC,OAYrCC,GAAwE,iBAAM,iBAAN,EAOxEC,GAAyE,iBAAM,mBAAN,EAoCzEC,GAA8B,IAAI1kH,OACvC,IAAMkvG,GAAN,UAKMA,GALN,aAMaA,GANb,SAeoByV,GAAAA,WACpB,SAAAA,EAAA5wD,GAGGA,EAFF15B,MAEE,IADFg0E,EACEt6C,EADFs6C,sGACEgB,CAAA,KAAAsV,GACFhkH,KAAK0tG,SAAWA,EAChB1tG,KAAKikH,aACL,kDAED,WACCjkH,KAAKkkH,kBAAeriH,EACpB7B,KAAK28G,cAAW96G,EAChB7B,KAAKmkH,4BAAyBtiH,EAC9B7B,KAAKokH,qCAAkCviH,EACvC7B,KAAKqkH,yCAA2C,CAChD,sBAED,SAAMnU,EAAex2E,GACpB15B,KAAKikH,cACD/T,GACHlwG,KAAKskH,OAAyC,MAAhCpU,EAAcN,cAC5B5vG,KAAKukH,gBAAkBrU,EAAc7d,UACjC34D,EAAM2mF,2BACTrgH,KAAKwkH,0BAA0B9qF,KAGhC15B,KAAKskH,YAASziH,EACd7B,KAAKukH,gBAAkB,GAExB,uBAQD,SAAO1D,EAAYnnF,GAAO,IAAA+0E,EAAA,KAezB,GHrIK,SAAiC4R,EAA2B3S,GAClE,MAAkE,gBAA3DuG,GAAkBoM,EAA2B3S,EACpD,CGmIK+W,CAAwB/qF,EAAM2mF,0BAA2BrgH,KAAK0tG,UACjE,IAAK,IAAL+F,EAAAC,EAAAC,GAAqB3zG,KAAKukH,mBAA1B9Q,EAAAC,KAAAx4E,MAA2C,KAAhCqqC,EAAgCkuC,EAAAhzG,MACpCikH,EAA0BrD,GAC/B3nF,EACA6rC,EACA,CACCmoC,SAAU1tG,KAAK0tG,SACf4T,sCAAuC,SAAC/7C,GAAD,OAAYkpC,EAAK6S,sCAAsC/7C,EAAQ,CACrGy6C,cAAetmF,EAAMsmF,cACrBvO,eAAgB/3E,EAAM+3E,gBAFgB,EAIvC8P,gCAAiC,SAACh8C,GAAD,OAAYkpC,EAAK8S,gCAAgCh8C,EAAjD,IAGnC,GAAIm/C,EAQH,OAPA1kH,KAAKikH,cACLjkH,KAAKkkH,aAAe3+C,EACpBvlE,KAAK2kH,0BAA0BD,EAAwBnlH,QAAQ,MAAOuhH,IAAoBpnF,GAC1F15B,KAAKokH,gCAAkCM,EAGvC1kH,KAAKqkH,wCAA0CrkH,KAAK28G,SAASiI,YAAY9D,IAClE4D,CAGR,CAIF,OAAO1kH,KAAK6kH,mCAAmChE,EAAYnnF,EAC3D,mDAGD,SAAmCmnF,EAAYnnF,GAC9C,IAAMorF,EAAyB9kH,KAAKkkH,aAG9Ba,EAAoB/kH,KAAKglH,aAAatrF,GAE5C,GAAIqrF,EACH,OAAIA,IAAsBD,EAIlB9kH,KAAKilH,+BAA+BpE,GAMpC7gH,KAAKilH,+BAA+BvrF,EAAM4mF,oBAGnD,0CAED,SAAAz2D,GAIG,IAAAq7D,EAAA,KAHF7E,EAGEx2D,EAHFw2D,0BACA5O,EAEE5nD,EAFF4nD,eACAuO,EACEn2D,EADFm2D,cAEMnP,EAAgBwP,EAclB8E,EAA4BtU,EAAc9wG,OAhId,EAiI5BolH,EAA4B,IAC/BA,EAA4B,GAG7BnlH,KAAKukH,gBAAkBvkH,KAAKukH,gBAAgB5nE,QAC3C,SAAA4oB,GAAM,OAAI2/C,EAAKE,YAAY7/C,EAAQy6C,EAAevO,IAC9CyT,EAAKG,cAAc9/C,EAAQsrC,EAAesU,EADxC,IAWHnlH,KAAKkkH,eAAqE,IAArDlkH,KAAKukH,gBAAgBj+G,QAAQtG,KAAKkkH,eAC1DlkH,KAAKikH,aAEN,4BAED,SAAY1+C,EAAQy6C,EAAevO,GAWlC,QAAIA,IACFlsC,EAAO0sC,uBAEP1sC,EAAOysC,8DAQJgO,IACHvO,GACDlsC,EAAO+/C,0DAIR,8BAED,SAAc//C,EAAQsrC,EAAesU,GACpC,IAAMI,EAA6BhgD,EAAOsxC,wBAAwB92G,OAKlE,GAAmC,IAA/BwlH,EACH,OAAO,EAQRJ,EAA4BprG,KAAK0Q,IAAI06F,EAA2BI,EAA6B,GAC7F,IAAMC,EAAuBjgD,EAAOsxC,wBAAwBsO,GA2B5D,GAAItU,EAAc9wG,OA/Nc,EAoO/B,IACC,YAAkG8B,IAA3F,IAAIihH,GAAe0C,GAAsBr/G,MAAM0qG,EAAe,CAAEmS,eAAe,GACtF,CAAC,MAAO/gF,GAMR,OADAD,QAAQC,MAAMA,IACP,CACP,CASF,OAAO,IAAI5iC,OAAJ,KAAAkuB,OAAgBi4F,EAAhB,MAAyCpkH,KAAKyvG,EACrD,gCAED,SAAgBtrC,EAAQy6C,GACvB,OAAOA,EAAgBz6C,EAAOowC,sBAAwBpwC,EAAOA,QAC7D,6BAED,SAAa7rC,GAgBZ,IAhBmB,IAgBnB8pF,EAhBmBiC,EAAA,KAAAC,EAAA,eAgBRngD,EAhBQi+C,EAAA/iH,MAmBlB,OAAIglH,EAAKvB,eAAiB3+C,EACzB,QAyCIw+C,GAA4B3iH,KAAKqkH,EAAKE,gBAAgBpgD,EAAQ7rC,EAAMsmF,gBAGpEyF,EAAKG,wBAAwBrgD,EAAQ7rC,IAK1C+rF,EAAKvB,aAAe3+C,EACpB,UAJCkgD,EAAKlB,gBAAkBkB,EAAKlB,gBAAgB5nE,QAAO,SAAA0xC,GAAC,OAAIA,IAAM9oB,CAAV,IACpD,YALA,UA9DiB,EAgBnBk+C,EAAA9P,GAAqB3zG,KAAKukH,gBAAgBt6G,WAA1Cu5G,EAAAC,KAAAvoF,MAAmD,KAAA2qF,EAAAH,IAAA,aAAAG,EAsDlD,KACA,CAKD,OAJK7lH,KAAKkkH,cAETlkH,KAAKikH,cAECjkH,KAAKkkH,YACZ,wCAED,SAAwB3+C,EAAQ7rC,GAK/B,KAA0C6rC,EAAOzkE,UAAUwF,QAAQ,MAAQ,GAA3E,CAIA,IAAMq2G,EAAW38G,KAAK8lH,qBAAqBvgD,EAAQ7rC,GAGnD,OAAIijF,GACH38G,KAAK2kH,0BAA0BhI,EAAUjjF,IAClC,QAFR,CALC,CASD,gDAED,SAAgC6rC,GAM/B,OAAIvlE,KAAKskH,QAOL/+C,GACHA,EAAOwsC,gCACP6R,GAAmCxiH,KAAKmkE,EAAOwsC,gCARxC,IAcD,EACP,+DAED,SAAA5nD,EAA2E76C,GAAS,IAAnCihG,EAAmCpmD,EAAnComD,UAAW0P,EAAwB91D,EAAxB81D,YAC3D,OAAI1P,EACIjhG,IAA+B,IAApBA,EAAQy2G,QAAoBxV,EAAYA,EAAY,IAEnE0P,EACI,GAED,GACP,4BAED,SAAYvmF,GACX,GAAK15B,KAAK28G,SAAV,CASA,IAHA,IAAI78G,GAAS,EACTs3C,EAAI,EACF4uE,EAAsBtsF,EAAMsmF,cAAgBhgH,KAAKimH,+CAA+CvsF,EAAO,CAAEqsF,SAAS,IAAW,GAC5H3uE,EAAI4uE,EAAoBjmH,OAAS25B,EAAMwsF,sCAAsCnmH,QACnFD,EAAQE,KAAK28G,SAASr2G,QAAQw6G,GAAmBhhH,EAAQ,GACzDs3C,IAED,OAAO4pE,GAA2BhhH,KAAK28G,SAAU78G,EAAQ,EAXxD,CAYD,0CAED,SAA0B68G,EAAUjjF,GACnC15B,KAAKmkH,uBAAyBxH,EAC9B38G,KAAKokH,gCAAkCzH,EAGvC38G,KAAKqkH,yCAA2C,EAM5C3qF,EAAMsmF,cACThgH,KAAK28G,SACJ38G,KAAKimH,+CAA+CvsF,GAAOn6B,QAAQ,UAAWuhH,IAC9E18F,GAAO08F,GAAmBpnF,EAAMk2E,YAAY7vG,QAC5C,IACA48G,EAED38G,KAAK28G,SAAWA,CAEjB,qCASD,SAAqBp3C,EAArBjW,GAKG,IAJF+wD,EAIE/wD,EAJF+wD,0BACAL,EAGE1wD,EAHF0wD,cACAvO,EAEEniD,EAFFmiD,eACA+O,EACElxD,EADFkxD,6CAEI1/G,EAAUykE,EAAOzkE,UAIpBA,EAAUA,EAERvB,QAAQskH,KAAkC,OAE1CtkH,QAAQukH,KAAmC,OAW9C,IAAI5D,EAASyD,GAA2Bx9G,MAAMrF,GAAS,GAIvD,KAAIu/G,EAA0BtgH,OAASmgH,EAAOngH,QAA9C,CAmCA,IAAMomH,EAAgB,IAAI9mH,OAAO,IAAMyB,EAAU,KAC3CslH,EAA4B/F,EAA0B9gH,QAAQ,MA7jBlD,KAkkBd4mH,EAAc/kH,KAAKglH,KACtBlG,EAASkG,GAGV,IACIC,EADAC,EAAetmH,KAAK2lH,gBAAgBpgD,EAAQy6C,GAUhD,GAAIhgH,KAAKshH,sCAAsC/7C,EAAQ,CAAEy6C,cAAAA,EAAevO,eAAAA,IAAmB,CAC1F,IAAM8U,EAAiCD,EAAa/mH,QACnD+1G,GACA/vC,EAAOwsC,gCAUR,GAAIyB,GAAYjuC,EAAOwsC,mCAAqCN,GAAkB,IAAM+B,GAAY,QAC/F8S,EAAeC,EACfF,GAAmC,EAG/B5U,GAEH,IADA,IAAIr6D,EAAIq6D,EAAe1xG,OAChBq3C,EAAI,GACVkvE,EAAeA,EAAa/mH,QAAQ,KAAMuhH,IAC1C1pE,GAIH,CAGD,IAAIulE,EAAWuD,EAEb3gH,QAAQ,IAAIF,OAAOyB,GAAUwlH,GAE7B/mH,QAAQ,IAAIF,OAjnBI,IAinBgB,KAAMyhH,IAwBxC,OAlBKuF,IACA7F,EAEH7D,EAAWv4F,GAAO08F,GAAmBN,EAA6CzgH,QACjF,IACA48G,EACSlL,IAEVkL,EAAWv4F,GAAO08F,GAAmBrP,EAAe1xG,QACnDC,KAAKuhH,gCAAgCh8C,GACrCo3C,IAICqD,IACHrD,EAAWvH,GAAiCuH,IAGtCA,CA9GN,CA+GD,+CAED,SAA+BuD,GAC9B,IAAMj/G,EJplBD,SAAoC07G,EAAU/gD,EAAUskD,GAM9D,IAAK,IAALsD,EAAAC,EAAA9P,GAAoBuM,EAAOj6G,MAAM,OAAjCu9G,EAAAC,KAAAvoF,MAAsC,KAA3B04E,EAA2B4P,EAAA/iH,MAKrC,GAAIk8G,EAAS1yG,MAAM2xD,EAAW,GAAGz0C,OAAO45F,IAA6B,EACpE,OAEDnlD,EAAW+gD,EAASx1F,OAAO45F,IAC3BpE,EAAWA,EAASp9G,QAAQwhH,GAA2BnN,EACvD,CACD,MAAO,CAAC+I,EAAU/gD,EAClB,CIkkBgB4qD,CACdxmH,KAAKokH,gCACLpkH,KAAKqkH,wCACLnE,GAGD,GAAKj/G,EAUL,OAJAjB,KAAKokH,gCAAkCnjH,EAAO,GAC9CjB,KAAKqkH,wCAA0CpjH,EAAO,GAG/C+/G,GAA2BhhH,KAAKokH,gCAAiCpkH,KAAKqkH,wCAA0C,GARtHrkH,KAAKikH,aAcN,sDAED,SAAsC1+C,EAAtCm2B,GAAiF,IAAjCskB,EAAiCtkB,EAAjCskB,cAAevO,EAAkB/V,EAAlB+V,eAC9D,GAAIlsC,EAAOwsC,+BAAgC,CAI1C,IAAME,EAAqB1sC,EAAO0sC,qBAClC,GAAKA,GAAsBR,IACxBQ,IAAuB+N,EACzB,OAAO,CAER,CACD,yFAhmBmBgE,goCC5FrB,IAMMyC,GAAmD,IAAIpnH,OAAO,KALnE,IACCkvG,GACAD,GACD,MAEoH,IAAK,KAEpHoY,GACL,gBAGEnY,GACAD,GAJF,OAQEC,GACAD,GATF,MAaKqY,GAAwC,IAAItnH,OACjD,KACCkvG,GACAD,GAFD,SAWKsY,GAA0B,YAEXC,GAAAA,WACpB,SAAAA,EAAAzzD,GAKG,IAJF86C,EAIE96C,EAJF86C,eACA6N,EAGE3oD,EAHF2oD,mBACArO,EAEEt6C,EAFFs6C,SACAoZ,EACE1zD,EADF0zD,+HACEpY,CAAA,KAAAmY,GACF7mH,KAAKkuG,eAAiBA,EACtBluG,KAAK+7G,mBAAqBA,EAC1B/7G,KAAK0tG,SAAWA,EAChB1tG,KAAK8mH,kCAAoCA,CACzC,4CAED,SAAMz/F,EAAMqS,GACX,IAGIqtF,EAHJC,EA+aK,SAAuC3/F,GAC7C,IAAA4/F,EAhBD,SAAwC5/F,GAEvC,IAAM6/F,EA9BP,SAAqC7/F,GAEpC,IAOI8/F,EAPE9L,EAAWh0F,EAAKF,OAAOu/F,IAC7B,KAAIrL,EAAW,GAiBf,MAVgB,OAHhBh0F,EAAOA,EAAKpd,MAAMoxG,IAGT,KACR8L,GAAU,EACV9/F,EAAOA,EAAKpd,MAAM,IAGnBod,EAAOA,EAAK9nB,QAAQonH,GAAuC,IAEvDQ,IACH9/F,EAAO,IAAMA,GAEPA,CACP,CASwB+yF,CAA4B/yF,IAAS,GAE7D,MAA2B,MAAvB6/F,EAAgB,GACZ,CAACA,EAAgBj9G,MAAM,IAAa,GAErC,CAACi9G,EACR,CAQiCE,CAA+B//F,GAAhEggG,EAAAzZ,GAAAqZ,EAAA,GAAKK,EAALD,EAAA,GAAsBF,EAAtBE,EAAA,GAOA,OAHKZ,GAAiDrlH,KAAKkmH,KAC1DA,EAAkB,IAEZ,CAACA,EAAiBH,EACzB,CAxboCI,CAA8BlgG,GAAjEmgG,EAAA5Z,GAAAoZ,EAAA,GAAOM,EAAPE,EAAA,GAAwBL,EAAxBK,EAAA,GACMtH,EAAS1M,GAAY8T,GAc3B,OAXIH,IACEztF,EAAMwmF,SACVxmF,EAAM+tF,2BACDvH,IACJ6G,GAAkB,KAIjB7G,GACHlgH,KAAK0nH,YAAYxH,EAAQxmF,GAEnB,CACNwmF,OAAAA,EACA6G,gBAAAA,EAED,4BAOD,SAAYlG,EAAYnnF,GACvB,IAAQwmF,EAAWxmF,EAAXwmF,OACFyH,EAAgCzH,EAAOngH,OAAS,GAAKmgH,EAAOngH,OAAS8gH,EAAW9gH,QAAU,EAuBhG,GApBA25B,EAAMkuF,aAAa/G,GAgBf8G,GACH3nH,KAAK6nH,iBAAiBnuF,GAGnB15B,KAAK8nH,+BAA+BpuF,IACvC,IAAK15B,KAAK84G,0BAA0Bp/E,GACnC,YAGDA,EAAMquF,sCAAsClH,GAQxCnnF,EAAMsmF,eACLhgH,KAAKgoH,uCACThoH,KAAKioH,iCACJvuF,EAAM4mF,qBACN,SAAC4H,GAAD,OAAiBxuF,EAAMyuF,OAAOD,EAA9B,GAIH,+CAED,SAAAr+D,GAA+D,IAA9Bm2D,EAA8Bn2D,EAA9Bm2D,cAAepQ,EAAe/lD,EAAf+lD,YAC/C,OAAOoQ,IAAkBpQ,CACzB,0CAID,SAA0Bl2E,GACzB,IAAAu/E,EAAuCmP,GACtC,IAAM1uF,EAAMwsF,sCACZlmH,KAAKkuG,eACLluG,KAAK+7G,mBACL/7G,KAAK0tG,SAASA,UAJP2E,EAAR4G,EAAQ5G,mBAAoBnuG,EAA5B+0G,EAA4B/0G,OAM5B,GAAImuG,EAKH,OAJA34E,EAAMknF,eAAevO,GACrB34E,EAAMyuF,OAAO,CACZ9H,0BAA2Bn8G,KAErB,CAER,sBAED,SAAMgsG,GACL,GAAIA,EAAe,CAClBlwG,KAAKk8G,0BAA2B,EAChC,IAAMvL,EAA2BT,EAAcsB,4BAC/CxxG,KAAKqoH,qDAAuD1X,GAA4BiW,GAAwBxlH,KAAKuvG,EACrH,MACA3wG,KAAKk8G,8BAA2Br6G,EAChC7B,KAAKqoH,0DAAuDxmH,CAE7D,iDASD,SAAiCymH,EAAgBx1E,GAChD,GAAK9yC,KAAKk8G,yBAAV,CAGA,IAAA5D,EAIIR,GACHwQ,EACAtoH,KAAK0tG,UALL+D,EADD6G,EACC7G,eACAyC,EAFDoE,EAECpE,eACAwB,EAHD4C,EAGC5C,YAKD,GAAIxB,IAAmBoU,EAUvB,OAPAtoH,KAAKuoH,0BACJ9W,EACAiE,EACAxB,EACAoU,EACAx1E,IAEM,CAnBN,CAoBD,wDAOD,SAAwCw1E,EAAgBE,EAA+B11E,GACtF,IAAK9yC,KAAKgoH,sCACT,OAAOhoH,KAAKioH,iCAAiCK,EAAgBx1E,GAE9D,GAAK9yC,KAAKqoH,qDAAV,CAGA,IAAAI,EAII3Q,GACHwQ,EACAtoH,KAAK0tG,UALL+D,EADDgX,EACChX,eACAyC,EAFDuU,EAECvU,eACAwB,EAHD+S,EAGC/S,YAWD,GAAIxB,IAAmBsU,EAUvB,OAPAxoH,KAAKuoH,0BACJ9W,EACAiE,EACAxB,EACAoU,EACAx1E,IAEM,CAzBN,CA0BD,0CAED,SACC2+D,EACAiE,EACA2K,EACAiI,EACAx1E,GAEA,IAAI0tE,EACAD,EAEEmI,EAAiCJ,EAAe1D,YAAYvE,GAMlE,GAAIqI,GAAkC,GACrCA,IAAmCJ,EAAevoH,OAASsgH,EAA0BtgH,OAAQ,CAC7FwgH,GAAwC,EAMxC,IAAMpI,EAA6BmQ,EAAer+G,MAAM,EAAGy+G,GAMvDvQ,IAA+B1G,IAClC+O,EAA+CrI,EAEhD,CACDrlE,EAAS,CACR2+D,eAAAA,EACAiE,YAAAA,EACA2K,0BAAAA,EACAE,sCAAAA,EACAC,6CAAAA,IAIDxgH,KAAKgoH,uCAAwC,EAC7ChoH,KAAK8mH,mCACL,mDAED,SAAmCptF,GAkClC,QAAI15B,KAAK2oH,wCACRjvF,EAAM4mF,oBACN5mF,EAAM2mF,2BACN,SAAC6H,GAAD,OAAiBxuF,EAAMyuF,OAAOD,EAA9B,MAkBGloH,KAAK6nH,iBAAiBnuF,IAWtB15B,KAAK4oH,eAAelvF,IAVvB15B,KAAK6oH,+CAA+CnvF,IAC7C,QASR,EAIA,iCAED,SAAiBA,GAGhB,IACCsmF,EAIGtmF,EAJHsmF,cACAzP,EAGG72E,EAHH62E,UACA2P,EAEGxmF,EAFHwmF,OAGD,GADIxmF,EADH2mF,2BAEGL,IAAiBzP,EAArB,CAOA,IAAMyI,EAAmBrB,GACxBuI,EACAlgH,KAAKkuG,eACLluG,KAAK+7G,mBACL/7G,KAAK0tG,SAASA,UAEf,YAAyB7rG,IAArBm3G,GAAkCA,IAAqBkH,GAG1DxmF,EAAMyuF,OAAO,CACZ5X,UAAW2P,EAAOj2G,MAAM,EAAGi2G,EAAOngH,OAASi5G,EAAiBj5G,UAE7DC,KAAKynH,yBAAyB/tF,EAAO,CACpComE,aAASj+F,EACT+tG,iBAAa/tG,KAEP,QAVR,CAXC,CAuBD,+BAED,SAAe63B,GACd,IAAKA,EAAMsmF,cAAe,CACzB,IAAA8I,EAGInQ,GACHj/E,EAAMwmF,OACNlgH,KAAKkuG,eACLluG,KAAK+7G,mBACL/7G,KAAK0tG,SAASA,UANMqb,EADrBD,EACCzW,mBAQD,GATAyW,EAEC5kH,OAOG6kH,EAQH,OAPArvF,EAAMyuF,OAAO,CACZlI,aAAa,IAEdjgH,KAAKynH,yBAAyB/tF,EAAO,CACpComE,QAASpmE,EAAMomE,QACf8P,YAAamZ,KAEP,CAER,CACD,yCAED,SAAyBrvF,EAAzBywB,GAA0D,IAAxB21C,EAAwB31C,EAAxB21C,QAAS8P,EAAezlD,EAAfylD,YAC1Cl2E,EAAM+tF,yBAAyB3nB,EAAS8P,GAEpCl2E,EAAM2mF,4BACT3mF,EAAMymF,iCACNngH,KAAK8mH,oCACL9mH,KAAKgoH,2CAAwCnmH,EAE9C,+DAED,SAA+C63B,GAC1C15B,KAAK84G,0BAA0Bp/E,IAOlC15B,KAAKioH,iCACJvuF,EAAM4mF,qBACN,SAAC4H,GAAD,OAAiBxuF,EAAMyuF,OAAOD,EAA9B,GAGF,yFA1YmBrB,goCCvCrB,IAEqBmC,GAAAA,WAKpB,SAAAA,EAAYC,EAAyBvb,gGAAUgB,CAAA,KAAAsa,GAC9ChpH,KAAK0tG,SAAW,IAAIsB,GAAStB,GAC7B,IAAAwb,EAAAtb,GAA6C5tG,KAAKmpH,yBAAyBF,GAA3E,GAAO/a,EAAPgb,EAAA,GAAuBnN,EAAvBmN,EAAA,GAIAlpH,KAAKkuG,eAAiBA,EACtBluG,KAAK+7G,mBAAqBA,EAC1B/7G,KAAK0wD,OACL,+DAED,SAAyBu4D,GAExB,IAAI/a,EACA6N,EAqBJ,OAnBIkN,IACCroH,GAASqoH,IACZ/a,EAAiB+a,EAAwB/a,eACzC6N,EAAqBkN,EAAwBlN,oBAE7C7N,EAAiB+a,GAGf/a,IAAmBluG,KAAK0tG,SAASuC,WAAW/B,KAC/CA,OAAiBrsG,GAUX,CAACqsG,EAAgB6N,EACxB,sBAOD,SAAM10F,GACL,IAAA+hG,EAGIppH,KAAK8iE,OAAOluD,MAAMyS,EAAMrnB,KAAK05B,OAFhCwmF,EADDkJ,EACClJ,OAGD,GAJAkJ,EAECrC,gBAGA/mH,KAAKqpH,gBAAkB,SACjB,GAAInJ,EAAQ,CAMlB,IAAIwB,EAIJ,GATA1hH,KAAKspH,8BAEDtpH,KAAK05B,MAAM2mF,2BACdrgH,KAAKq8F,UAAUmoB,0BAA0BxkH,KAAK05B,OAG3C15B,KAAK0tG,SAASwO,6BACjBwF,EAA0B1hH,KAAKq8F,UAAU92B,OAAO26C,EAAQlgH,KAAK05B,aAE9B73B,IAA5B6/G,GAEC1hH,KAAK8iE,OAAOymD,mCAAmCvpH,KAAK05B,OAAQ,CAC/D15B,KAAKspH,8BAEL,IAAMhB,EAAiBtoH,KAAK05B,MAAM4mF,oBAC9BgI,IACH5G,EAA0B1hH,KAAKq8F,UAAU92B,OAAO+iD,EAAgBtoH,KAAK05B,OAEtE,CAEF15B,KAAKqpH,gBAAkB3H,EACpB1hH,KAAKwpH,cAAc9H,GACnB1hH,KAAKypH,uBACR,CACD,OAAOzpH,KAAKqpH,eACZ,sBAED,WAAQ,IAAA5a,EAAA,KAmCP,OAlCAzuG,KAAK05B,MAAQ,IAAImmF,GAAe,CAC/BC,gBAAiB,SAAChgB,GAMjB2O,EAAK3O,QAAUA,CACf,EACDigB,oBAAqB,SAACnQ,EAAa9P,GAClC2O,EAAKf,SAASsC,oBAAoBlQ,EAAS8P,GAC3CnB,EAAKpS,UAAU3rC,MAAM+9C,EAAKf,SAASwC,cAAezB,EAAK/0E,OACvD+0E,EAAK3rC,OAAOpS,MAAM+9C,EAAKf,SAASwC,cAChC,IAEFlwG,KAAKq8F,UAAY,IAAI2nB,GAAmB,CACvCtqF,MAAO15B,KAAK05B,MACZg0E,SAAU1tG,KAAK0tG,WAEhB1tG,KAAK8iE,OAAS,IAAI+jD,GAAgB,CACjC3Y,eAAgBluG,KAAKkuG,eACrB6N,mBAAoB/7G,KAAK+7G,mBACzBrO,SAAU1tG,KAAK0tG,SACfh0E,MAAO15B,KAAK05B,MACZotF,kCAAmC,WAClCrY,EAAK6a,8BACL7a,EAAKpS,UAAU3rC,MAAM+9C,EAAKf,SAASwC,cAAezB,EAAK/0E,MACvD,IAEF15B,KAAK05B,MAAMg3B,MAAM,CAChBovC,QAAS9/F,KAAKkuG,eACd0B,YAAa5vG,KAAK+7G,qBAEnB/7G,KAAKqpH,gBAAkB,GAChBrpH,IACP,gCAOD,WACC,OAAOA,KAAK05B,MAAMsmF,aAClB,+BAQD,WASC,GAAIhgH,KAAK0pH,kBACR,OAAO1pH,KAAK05B,MAAMk2E,WAEnB,sCAGD,WACC,OAAO5vG,KAAK2pH,gBACZ,2BAQD,WAGC,GAFmB3pH,KAAK05B,MAAhBwmF,OAGP,OAAOlgH,KAAK4pH,aAEb,4BAOD,WACC,IAAQ9pB,EAAY9/F,KAAK05B,MAAjBomE,QASR,OAAOA,CACP,4CAED,WAiBM9/F,KAAK05B,MAAMomE,UAAW9/F,KAAK6pH,iCAC/B7pH,KAAK8pH,qBAEN,8BAGD,SAAcpI,GAAyB,IAAAwD,EAAA,KACtC,GAAIllH,KAAK0pH,kBAAmB,CAC3B,IAAMK,EAAS,SAAC1iG,GAAD,OAAU69F,EAAK7oB,UAAU4pB,+CAA+Cf,EAAKxrF,MAAO,CAClGqsF,UAAS1+F,IACLA,CAFU,EAGPuoF,EAAgB5vG,KAAK05B,MAArBk2E,YACR,OAMOma,EANFna,EAGA8R,EAGS,GAADn0F,OAAIqiF,EAAJ,KAAAriF,OAAmBm0F,GAFjB9R,EAHA,GAADriF,OAAIvtB,KAAK05B,MAAMwsF,uCAM7B,CACD,OAAOxE,CACP,wDAED,WACC,IAAAsI,EAIIhqH,KAAK05B,MAHR2mF,EADD2J,EACC3J,0BACAG,EAFDwJ,EAECxJ,6CACA/O,EAHDuY,EAGCvY,eAEGvtG,EAASm8G,EACP0J,EAASvJ,GAAgD/O,EAI/D,OAHIsY,IACH7lH,EAAS6lH,EAAS7lH,GAEZA,CACP,sCAED,WACC,IAAQq8G,EAA0CvgH,KAAK05B,MAA/C6mF,sCACR,OAAOvgH,KAAKwpH,cACXjJ,EACGvgH,KAAKiqH,0CACLjqH,KAAK05B,MAAM4mF,oBAEf,wCAED,WACC,IAAMp8G,EAASlE,KAAKypH,wBACpB,GAAIvlH,EACH,OAAOA,EAAO3E,QAAQ,UAAWuhH,GAElC,8CAED,WACC,IAAQlR,EAAgB5vG,KAAK05B,MAArBk2E,YACFE,EAAe9vG,KAAK0tG,SAASmC,8BAA8BD,GACjE,OAAOE,GAAgBA,EAAa/vG,OAAS,CAC7C,oCAKD,WACCC,KAAK05B,MAAMinF,WAAWlH,GACrBz5G,KAAK0pH,kBAAoB1pH,KAAK05B,MAAMk2E,YAAc5vG,KAAK+7G,mBACvD,CACC7H,eAAgBl0G,KAAK05B,MAAM2mF,0BAC3BnS,eAAgBluG,KAAKkuG,eACrBR,SAAU1tG,KAAK0tG,WAGjB,+BAoBD,WACC,IAAAwc,EAKIlqH,KAAK05B,MAJRwmF,EADDgK,EACChK,OACAtQ,EAFDsa,EAECta,YACA9P,EAHDoqB,EAGCpqB,QACAugB,EAJD6J,EAIC7J,0BAID,GAAKH,EAIL,OAAIlgH,KAAK0pH,kBACJ9Z,EACI,IAAMA,EAAcyQ,EAEpB,IAAMH,EAGVpgB,GAAW8P,EAEP,KADc9P,EAAU9/F,KAAK0tG,SAAS2E,qBAAuBzC,GACxCyQ,OAF7B,CAKD,0BAQD,WACC,IAAA8J,EAIInqH,KAAK05B,MAHR2mF,EADD8J,EACC9J,0BACA3K,EAFDyU,EAECzU,YACA9F,EAHDua,EAGCva,YAMG9P,EAAU9/F,KAAK4pH,cAEnB,GAAKvJ,IAQAvgB,GAAY8P,GAAjB,CAiBA,GAAI9P,GACCA,IAAY9/F,KAAKkuG,eAAgB,CAIpC,IAAMR,EAAW,IAAIsB,GAAShvG,KAAK0tG,SAASA,UAC5CA,EAASsC,oBAAoBlQ,GAC7B,IAAMsqB,EAAc1c,EAASwC,cAAcN,cACrCya,EAAqBrqH,KAAK0tG,SAASmC,8BAA8Bua,GACvE,GAAIC,EAAmBtqH,OAAS,EAAG,CAClC,IAAMi8G,EAAe3C,GAA2BgH,EAA2B,CAC1EpR,UAAWob,EACXnc,eAAgBluG,KAAKkuG,eACrBR,SAAU1tG,KAAK0tG,SAASA,WAErBsO,IACHlc,EAAUkc,EAEX,CACD,CAGF,IAAMvE,EAAc,IAAIT,GACvBlX,GAAW8P,EACXyQ,EACArgH,KAAK0tG,SAASA,UAMf,OAJIgI,IACH+B,EAAY/B,YAAcA,GAGpB+B,CA9CN,CA+CD,2BAOD,WACC,IAAMA,EAAcz3G,KAAKsqH,YACzB,QAAK7S,GAGEA,EAAY8S,YACnB,wBAOD,WACC,IAAM9S,EAAcz3G,KAAKsqH,YACzB,QAAK7S,GAGEA,EAAYx3D,SACnB,kCAOD,WACC,OAAOjgD,KAAK05B,MAAM2mF,yBAClB,yBAMD,WACC,OAAQrgH,KAAK05B,MAAMsmF,cAAgB,IAAM,IAAMhgH,KAAK05B,MAAMwmF,MAC1D,4BAMD,WACC,OAAOlgH,KAAKq8F,UAAUmuB,YAAYxqH,KAAK05B,QAAU15B,KAAKyqH,2BAA6B,EACnF,yFAhcmBzB,GCTd,SAAS0B,GAATt3D,GAKJ,IAJF0sC,EAIE1sC,EAJF0sC,QACAkgB,EAGE5sD,EAHF4sD,cACA2K,EAEEv3D,EAFFu3D,uBACAjd,EACEt6C,EADFs6C,SAEA,OAAO5N,GAAWkgB,IAAkB2K,EAA7B,IAAAp9F,OACF6kF,GAAsBtS,EAAS4N,IACnC,EACD,CAEM,SAASkd,GAAuBnqH,EAAOspH,GAO7C,OANIA,GAEc,OADjBtpH,EAAQA,EAAMwJ,MAAM8/G,EAAOhqH,SACjB,KACTU,EAAQA,EAAMwJ,MAAM,IAGfxJ,CACP,CCRc,SAASoqH,GAA2BtX,EAAWQ,EAAsBx9E,GAenF,IAAIA,IAAWA,EAAQu0F,WAAvB,CAcA,OAAOhX,GAA0BP,EAAWQ,GAV1B,SAACgX,GAClB,GAAIx0F,GAEG,QADEw0F,EAENx0F,EAAQu0F,YAAa,CAIxB,GAVA,CAaD,CCpCc,SAASE,GAAT53D,GAGZ,IAFFyqD,EAEEzqD,EAFFyqD,UACAmC,EACE5sD,EADF4sD,cAEA,OAAOv/E,EAAAA,EAAAA,cAAY,SAAC7Y,GACfA,EAAMhJ,UAAYqsG,IAAsBjL,GAKvCp4F,EAAMnS,kBAAkBy1G,kBACNtjG,EAAMnS,OAoBf8U,iBApB2B4gG,GACtCvjG,EAAMpI,iBAKLq+F,GACHA,EAAUj2F,EAEX,GAAE,CACFi2F,EACAmC,GAED,CAED,IAAMiL,GAAqB,EAQ3B,IAAME,GAAoC,6qBC2F1C,SA1HO,SAAqBC,GAS3B,SAASC,EAATj4D,EAOG94B,GAAK,IANPujF,EAMOzqD,EANPyqD,UACA/d,EAKO1sC,EALP0sC,QACAkgB,EAIO5sD,EAJP4sD,cACA2K,EAGOv3D,EAHPu3D,uBAGOW,EAAAl4D,EAFPs6C,SAAAA,OAEO,IAAA4d,EAFIF,EAEJE,EADJv4D,EACImsD,GAAA9rD,EAAA+rD,IACD55C,GAAS9kC,EAAAA,EAAAA,cAAY,SAAChgC,GAE3B,IAAM47F,EAAY,IAAI2sB,GAAUlpB,EAAS4N,GACnCqc,EAASW,GAAoB,CAClC5qB,QAAAA,EACAkgB,cAAAA,EACA2K,uBAAAA,EACAjd,SAAAA,IAGGrmF,EAAOg1E,EAAUznF,MAAMm1G,EAAStpH,GAChCk8G,EAAWtgB,EAAUmuB,cAQzB,OAPIT,IACH1iG,EAAOujG,GAAuBvjG,EAAM0iG,GAEhCpN,IACHA,EAAWiO,GAAuBjO,EAAUoN,KAGvC,CACN1iG,KAAAA,EACAs1F,SAAAA,EAED,GAAE,CAAC7c,EAAS4N,IAEP6R,EAAayL,GAAuB,CACzCnN,UAAAA,EACAmC,cAAAA,IAGD,OACCriE,EAAAA,cAACukD,GAADud,GAAA,GACK1sD,EADL,CAECz4B,IAAKA,EACLyoC,MAAO+wC,GACPvuC,OAAQA,EACRs4C,UAAW0B,IAEb,CAgED,OA9DA8L,EAAa1tE,EAAAA,WAAiB0tE,IAEnB/3D,UAAY,CAQtB7yD,MAAOwE,GAAAA,OAAiBnB,WAMxBw5C,SAAUr4C,GAAAA,KAAenB,WAMzB+5G,UAAW54G,GAAAA,KAYX66F,QAAS76F,GAAAA,OAYT+6G,cAAe/6G,GAAAA,KAQf0lH,uBAAwB1lH,GAAAA,KAKxByoG,SAAUzoG,GAAAA,QAGJomH,CACP,CAED,stBCwBA,SApJO,SAAqBD,GAY3B,SAASG,EAATn4D,EAUG94B,GAAK,IATP75B,EASO2yD,EATP3yD,MACA68C,EAQO8V,EARP9V,SACAugE,EAOOzqD,EAPPyqD,UACA/d,EAMO1sC,EANP0sC,QACAkgB,EAKO5sD,EALP4sD,cACA2K,EAIOv3D,EAJPu3D,uBAIOW,EAAAl4D,EAHPs6C,SAAAA,OAGO,IAAA4d,EAHIF,EAGJE,EAAAE,EAAAp4D,EAFP6rD,eAAgB/c,OAET,IAAAspB,EAFiB,QAEjBA,EADJz4D,EACImsD,GAAA9rD,EAAA+rD,IACD4K,EAASW,GAAoB,CAClC5qB,QAAAA,EACAkgB,cAAAA,EACA2K,uBAAAA,EACAjd,SAAAA,IAGK4R,GAAY7+E,EAAAA,EAAAA,cAAY,SAAC7Y,GAC9B,IAAIu5B,EAAW0yD,GAA2BjsF,EAAMnS,OAAOhV,OAgBnD0gD,IAAa1gD,IAEsC,IAD5B8kE,GAAOwkD,EAAQ5oE,EAAU2+C,EAAS4N,GACtCpnG,QAAQshB,EAAMnS,OAAOhV,SAE1C0gD,EAAWA,EAASl3C,MAAM,GAAI,KAGhCqzC,EAAS6D,EACT,GAAE,CACF4oE,EACAtpH,EACA68C,EACAwiD,EACA4N,IAGK6R,EAAayL,GAAuB,CACzCnN,UAAAA,EACAmC,cAAAA,IAGD,OACCriE,EAAAA,cAACukD,EAADud,GAAA,GACK1sD,EADL,CAECz4B,IAAKA,EACL75B,MAAO8kE,GAAOwkD,EAAQtpH,EAAOq/F,EAAS4N,GACtCpwD,SAAUgiE,EACVzB,UAAW0B,IAEb,CAqED,OAnEAgM,EAAa5tE,EAAAA,WAAiB4tE,IAEnBj4D,UAAY,CAQtB7yD,MAAOwE,GAAAA,OAAiBnB,WAMxBw5C,SAAUr4C,GAAAA,KAAenB,WAMzB+5G,UAAW54G,GAAAA,KAYX66F,QAAU76F,GAAAA,OAYV+6G,cAAe/6G,GAAAA,KAQf0lH,uBAAwB1lH,GAAAA,KAKxByoG,SAAUzoG,GAAAA,OAKVg6G,eAAgBh6G,GAAAA,aAGVsmH,CACP,CAED,GAEA,SAAShmD,GAAOwkD,EAAQtpH,EAAOq/F,EAAS4N,GACvC,OAAOkd,GCrJO,SAAqCnqH,EAAOwoH,EAAyBvb,GAKnF,OAJKA,IACJA,EAAWub,EACXA,OAA0BpnH,GAEpB,IAAImnH,GAAUC,EAAyBvb,GAAU94F,MAAMnU,EAC9D,CDgJCgrH,CACC1B,EAAStpH,EACTq/F,EACA4N,GAEDqc,EAED,CExJD,SAAS2B,GAA2BC,GACnC,OAAO1nG,OAAO2nG,cAAc,OAAeD,EAAO5hH,cAAcmxD,WAAW,GAC3E,2kDCZc,SAAS2wD,GAATz4D,GAOZ,IANF3yD,EAME2yD,EANF3yD,MACA68C,EAKE8V,EALF9V,SACAhuC,EAIE8jD,EAJF9jD,QACAG,EAGE2jD,EAHF3jD,SACAq8G,EAEE14D,EAFF04D,SACG/4D,EACDmsD,GAAA9rD,EAAA+rD,IACI4M,GAAYtrF,EAAAA,EAAAA,cAAY,SAAC7Y,GAC9B,IAAMnnB,EAAQmnB,EAAMnS,OAAOhV,MAC3B68C,EAAmB,OAAV78C,OAAiBoB,EAAYpB,EACtC,GAAE,CAAC68C,KAEmBvc,EAAAA,EAAAA,UAAQ,WAC9B,OAAOirF,GAAkB18G,EAAS7O,EAClC,GAAE,CAAC6O,EAAS7O,IAIb,OACCk9C,EAAAA,cAAA,SAAA8hE,GAAA,GACK1sD,EADL,CAECtjD,SAAUA,GAAYq8G,EACtBA,SAAUA,EACVrrH,MAAOA,GAAS,KAChB68C,SAAUyuE,IACTz8G,EAAQ/N,KAAI,SAAAsoD,GAAA,IAAGppD,EAAHopD,EAAGppD,MAAOo/E,EAAVh2B,EAAUg2B,MAAOosC,EAAjBpiE,EAAiBoiE,QAAjB,OACZtuE,EAAAA,cAAA,UACCn9C,IAAKyrH,EAAU,IAAMxrH,GAAS,KAC9BA,MAAOwrH,EAAU,IAAMxrH,GAAS,KAChCgP,WAAUw8G,EACVj4G,MAAOi4G,EAAUC,QAAgBrqH,GAChCg+E,EANU,IAWf,CAEDgsC,GAAcv4D,UAAY,CAKzB7yD,MAAOwE,GAAAA,OAMPq4C,SAAUr4C,GAAAA,KAAenB,WAGzBwL,QAASrK,GAAAA,QAAkBA,GAAAA,MAAgB,CAC1CxE,MAAOwE,GAAAA,OACP46E,MAAO56E,GAAAA,OACPgnH,QAAShnH,GAAAA,QACNnB,WAOJ2L,SAAUxK,GAAAA,KACV6mH,SAAU7mH,GAAAA,MAGX,IAAMinH,GAAgB,CACrBC,SAAU,MACVt7B,gBAAiB,eACjBjqE,MAAO,WAGD,SAASwlG,GAATjiE,GASJ,IDlFoC21C,EC0EtCr/F,EAQE0pD,EARF1pD,MACA6O,EAOE66C,EAPF76C,QACA6jD,EAMEhJ,EANFgJ,UACeu5C,EAKbviD,EALFkiE,cAKEC,GAAAniE,EAJFoiE,mBAIEpiE,EAHFqiE,gBAAgBC,OAGd,IAAAH,EAHsBI,GAGtBJ,EAFFK,EAEExiE,EAFFwiE,aACG55D,EACDmsD,GAAA/0D,EAAAyiE,IACIC,GAAiB9rF,EAAAA,EAAAA,UAAQ,WAC9B,OAAOirF,GAAkB18G,EAAS7O,EAClC,GAAE,CAAC6O,EAAS7O,IAEb,OACCk9C,EAAAA,cAAA,OAAKwV,UAAU,qBACdxV,EAAAA,cAACkuE,GAADpM,GAAA,GACK1sD,EADL,CAECtyD,MAAOA,EACP6O,QAASA,EACT6jD,UAAWhb,GAAW,0BAA2Bgb,MAGhDw5D,GAAgBlsH,GACjBk9C,EAAAA,cAAA,OAAKwV,UAAU,gCDhGXu4D,IAD+B5rB,ECkGdr/F,GDjGkB,IAAMirH,GAA2B5rB,EAAQ,OCsG9E6sB,GAAgBlsH,IAClBk9C,EAAAA,cAAC+uD,EAAD,CACC,iBACA5M,QAASr/F,EACTo/E,MAAOgtC,GAAkBA,EAAehtC,MACxC1uE,YAAaw7G,EAAe,OAAI9qH,IAGlC87C,EAAAA,cAAC8uE,EAAD,MAGF,CAaD,SAASC,KACR,OAAO/uE,EAAAA,cAAA,OAAKwV,UAAU,gCACtB,CAED,SAAS64D,GAAkB18G,EAAS7O,GACnC,IAAK,IAALgzG,EAAAC,EAAAC,GAAqBrkG,KAArBmkG,EAAAC,KAAAx4E,MAA8B,KAAnB8pB,EAAmByuD,EAAAhzG,MAC7B,IAAKukD,EAAOinE,SAAWjnE,EAAOvkD,QAAUA,EACvC,OAAOukD,CAER,CACD,CArBDonE,GAAsB94D,UAAY,CAEjC+4D,cAAepnH,GAAAA,YAGfunH,eAAgBvnH,GAAAA,YAGhB0nH,aAAc1nH,GAAAA,qpBC3HA,SAAS6nH,GAAT15D,GAMZ,IALF0sC,EAKE1sC,EALF0sC,QACAitB,EAIE35D,EAJF25D,YACAp1G,EAGEy7C,EAHFz7C,MACAq1G,EAEE55D,EAFF45D,QACGj6D,EACDmsD,GAAA9rD,EAAA+rD,IACF,OAAIxnG,GAASA,EAAMmoF,GACXnoF,EAAMmoF,GAAS,CAAEnZ,MAAOomC,IAG/BpvE,EAAAA,cAAA,MAAA8hE,GAAA,GACK1sD,EADL,CAECqxC,IAAK2oB,EACLx/B,KAAMw/B,OAAclrH,EAAY,eAChCioC,IAAKkjF,EAAQztH,QAAQ,OAAQugG,GAASvgG,QAAQ,OAAQugG,EAAQl2F,iBAEhE,CAEDkjH,GAAcx5D,UAAY,CAGzBwsC,QAAS76F,GAAAA,OAAiBnB,WAG1BipH,YAAa9nH,GAAAA,OAAiBnB,WAS9B6T,MAAO1S,GAAAA,SAAmBA,GAAAA,aAI1B+nH,QAAS/nH,GAAAA,OAAiBnB,ypBC1CZ,SAASmpH,GAAT75D,GAAqD,IAAxBjiD,EAAwBiiD,EAAxBjiD,YAAgB4hD,EAAQmsD,GAAA9rD,EAAA+rD,IACnE,OAAoB,IAAhBhuG,EACIwsC,EAAAA,cAACuvE,GAAyBn6D,GAE1BpV,EAAAA,cAACwvE,GAAyBp6D,EAElC,CAUD,SAASo6D,GAATtjE,GAAkD,IAAlB88B,EAAkB98B,EAAlB88B,MAAU5zB,EAAQmsD,GAAAr1D,EAAA+iE,IACjD,OACCjvE,EAAAA,cAAA,MAAA8hE,GAAA,GACK1sD,EADL,CAECZ,MAAM,6BACNC,QAAQ,cACRzU,EAAAA,cAAA,aAAQgpC,GACRhpC,EAAAA,cAAA,KACCwV,UAAU,mCACVb,OAAO,eACPD,KAAK,OACLz+C,YAAY,IACZF,iBAAiB,MACjBiqC,EAAAA,cAAA,QAAM4U,cAAc,QAAQtpD,EAAE,yDAC9B00C,EAAAA,cAAA,QAAM10C,EAAE,6DACR00C,EAAAA,cAAA,QAAMyvE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,OACjC5vE,EAAAA,cAAA,QAAMyvE,GAAG,KAAKC,GAAG,IAAIC,GAAG,KAAKC,GAAG,OAChC5vE,EAAAA,cAAA,QAAM4U,cAAc,QAAQtpD,EAAE,0GAC9B00C,EAAAA,cAAA,QAAM4U,cAAc,QAAQtpD,EAAE,0HAE/B00C,EAAAA,cAAA,QACCwV,UAAU,mCACVb,OAAO,OACPD,KAAK,eACLppD,EAAE,6LAGL,CASD,SAASikH,GAAT/iE,GAAkD,IAAlBw8B,EAAkBx8B,EAAlBw8B,MAAU5zB,EAAQmsD,GAAA/0D,EAAAqjE,IACjD,OACC7vE,EAAAA,cAAA,MAAA8hE,GAAA,GACK1sD,EADL,CAECZ,MAAM,6BACNC,QAAQ,cACRzU,EAAAA,cAAA,aAAQgpC,GACRhpC,EAAAA,cAAA,KACCwV,UAAU,mCACVb,OAAO,eACPD,KAAK,OACLz+C,YAAY,IACZ2+C,cAAc,SACd5U,EAAAA,cAAA,QAAM10C,EAAE,2CACR00C,EAAAA,cAAA,QAAM10C,EAAE,6HACR00C,EAAAA,cAAA,QAAM10C,EAAE,mEACR00C,EAAAA,cAAA,QAAM10C,EAAE,sEACR00C,EAAAA,cAAA,QAAMyvE,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,UACvC5vE,EAAAA,cAAA,QAAMyvE,GAAG,OAAOC,GAAG,QAAQC,GAAG,QAAQC,GAAG,WAE1C5vE,EAAAA,cAAA,QACCwV,UAAU,mCACVb,OAAO,cACPD,KAAK,eACLppD,EAAE,+MAGL,20BCpBM,SAASwkH,GAA4B3tB,EAAS4N,GACpD,QAAI4E,GAAmBxS,EAAS4N,KAG/B1rE,QAAQC,MAAR,sBAAA1U,OAAoCuyE,KAC7B,EAER,CAEM,SAAS4tB,GAAsBze,EAAWvB,GAOhD,OANIuB,GAEsB,KADzBA,EAAYA,EAAUtyD,QAAO,SAAAmjD,GAAO,OAAI2tB,GAA4B3tB,EAAS4N,EAAzC,KACtB3tG,SACbkvG,OAAYptG,GAGPotG,CACP,CC7Ec,SAAS0e,GAAajgB,GACpC,OAAO,IAAIsB,GAAStB,GAAUigB,cAC9B,CFODV,GAAkB35D,UAAY,CAC7BqzB,MAAO1hF,GAAAA,OAAiBnB,WACxBqN,YAAalM,GAAAA,QAmCdkoH,GAAqB75D,UAAY,CAChCqzB,MAAO1hF,GAAAA,OAAiBnB,YAmCzBopH,GAAqB55D,UAAY,CAChCqzB,MAAO1hF,GAAAA,OAAiBnB,ipBG9ElB,SAAS8pH,GAATx6D,GAKJ,IAJFz7C,EAIEy7C,EAJFz7C,MACAq1G,EAGE55D,EAHF45D,QACeF,EAEb15D,EAFFy6D,cACmBZ,EACjB75D,EADF06D,kBAEA,SAASC,EAATlkE,GAKG,IAJFi2C,EAIEj2C,EAJFi2C,QACAjgB,EAGEh2B,EAHFg2B,MACA1uE,EAEE04C,EAFF14C,YACG4hD,EACDmsD,GAAAr1D,EAAAs1D,IAII6O,EAAef,IAAsBgB,GAA2B98G,OAActP,EACpF,OACC87C,EAAAA,cAAA,MAAA8hE,GAAA,GACK1sD,EADL,CAECI,UAAWhb,GAAW,wBAAyB,CAC9C,gCAAkD,IAAjB61E,EACjC,gCAAiCluB,MAGjCA,EAEAniD,EAAAA,cAACmvE,EAAD,CACChtB,QAASA,EACTitB,YAAaltC,EACbloE,MAAOA,EACPq1G,QAASA,EACT75D,UAAU,6BAEXxV,EAAAA,cAACsvE,EAAD,CACCtmC,MAAO9G,EACP1uE,YAAa68G,EACb76D,UAAU,6BAId,CAQD,OANA46D,EAAYz6D,UAAY,CACvBwsC,QAAS76F,GAAAA,OACT46E,MAAO56E,GAAAA,OAAiBnB,WACxBqN,YAAalM,GAAAA,QAGP8oH,CACP,CAEcH,GAA2B,CAEzCZ,QAAS,uEACTa,cAAeK,GACfJ,kBAAmBG,+0BCpBb,SAASE,GAAaz1F,EAAMj4B,GACjC,IAAK,IAALgzG,EAAAC,EAAAC,GAAkBj7E,KAAlB+6E,EAAAC,KAAAx4E,MAAwB,KAAbZ,EAAam5E,EAAAhzG,MAClB65B,GACF8zF,GAAY9zF,EAAK75B,EAEpB,CACF,CAOD,SAAS2tH,GAAY9zF,EAAK75B,GACL,oBAAR65B,EACTA,EAAI75B,GAEJ65B,EAAIniB,QAAU1X,CAEjB,CCtDc,SAAS4tH,GAAkCvuB,EAAS4N,GAsBlE,MApBa,IAAM0E,GAAsBtS,EAAS4N,EAqBlD,CCgFM,SAASuO,GAAiBx7G,EAAOitG,GACvC,OC5Gc,WACd,IAAA8O,EAAoC/O,GAAmBrrG,WACvD,OAAOksH,GADP9R,EAAQn1F,KAARm1F,EAAcltG,QAAdktG,EAAuB9O,SAEvB,CDyGO4gB,CAAkB7tH,GAAS,GAAIitG,EACtC,CA0BM,SAAS6gB,GAA4BC,EAArCrkE,GAKJ,IAJFskE,EAIEtkE,EAJFskE,YACAC,EAGEvkE,EAHFukE,WACAhhB,EAEEvjD,EAFFujD,SACAihB,EACExkE,EADFwkE,kBAEA,GAAIF,IAAgBC,EACnB,OAAOF,EAKR,IAAKA,EACJ,OAAIG,EACI,GAEHD,EAGIL,GAAkCK,EAAYhhB,GAE/C,GAQT,GAAIghB,GAMH,GAAuB,MAAnBF,EAAY,GAAY,CAG3B,GAAIG,EAeH,OAA+E,IAA3EH,EAAYloH,QAAQ,IAAM8rG,GAAsBsc,EAAYhhB,IA2c7D,SAAiCxpG,EAAQ47F,EAAS4N,GAGxD,GAAI5N,EAAS,CACZ,IAAM8uB,EAA2B,IAAMxc,GAAsBtS,EAAS4N,GAGtE,GAAIxpG,EAAOnE,OAAS6uH,EAAyB7uH,QAC5C,GAAiD,IAA7C6uH,EAAyBtoH,QAAQpC,GACpC,MAAO,QAGR,GAAiD,IAA7CA,EAAOoC,QAAQsoH,GAClB,OAAO1qH,EAAO+F,MAAM2kH,EAAyB7uH,OAG/C,CAID,IAAK,IAAL62E,EAAA,EAAA8pC,EAAmC1iH,OAAOc,KAAK4uG,EAASwD,uBAAxDt6B,EAAA8pC,EAAA3gH,OAAA62E,IAAgF,CAA3E,IAAMi4C,EAAoBnO,EAAA9pC,GAC9B,GAA6C,IAAzC1yE,EAAOoC,QAAQuoH,GAClB,OAAO3qH,EAAO+F,MAAM,EAAa4kH,EAAqB9uH,OAEvD,CAED,MAAO,EACP,CAreW+uH,CAAwBN,EAAaE,EAAYhhB,GAQlD,GAQR,GAAI+gB,EAAa,CAChB,IAAMM,EAAmBV,GAAkCK,EAAYhhB,GACvE,OAA8C,IAA1C8gB,EAAYloH,QAAQyoH,GAChBP,EAEAO,CAER,CACA,IAAMrgH,EAAe2/G,GAAkCK,EAAYhhB,GAGnE,OAA0C,IAAtC8gB,EAAYloH,QAAQoI,GAChB8/G,EAKD9/G,CAcR,OAKD,GAAuB,MAAnB8/G,EAAY,GAiBf,OAAOQ,GAAKR,EAAaC,EAAa/gB,IAAa,GAIrD,OAAO8gB,CACP,CASM,SAASQ,GAAK9qH,EAAQ47F,EAAS4N,GACrC,GAAKxpG,EAAL,CAIA,GAAkB,MAAdA,EAAO,GAAY,CAEtB,GAAe,MAAXA,EACH,OAUD,IAAM+qH,EAAY,IAAIjG,GAAUlpB,EAAS4N,GAIzC,OAHAuhB,EAAUr6G,MAAM1Q,GAGT+qH,EAAUC,gBACjB,CAMD,GAAKpvB,EAAL,CAGA,IAAMqvB,EAAsCC,GAAmClrH,EAAQ47F,EAAS4N,GAc/F,MAAO,IAAPngF,OAAW6kF,GAAsBtS,EAAS4N,IAA1CngF,OAAsD4hG,GAAuC,GAf7F,CA5BA,CA6CD,CAUM,SAASE,GAAWnrH,EAAQ47F,EAAS4N,GAC3C,IAAM4hB,EAAgCF,GAAmClrH,EAAQ47F,EAAS4N,GAC1F,GAAI4hB,EAA+B,CAClC,IAAMC,EAAsBD,EAA8BvvH,OAQ5D,SAA4B+/F,EAAS4N,GAKpC,OAHAA,EAAW,IAAIsB,GAAStB,GACxBA,EAASsC,oBAAoBlQ,GAEtB4N,EAASwC,cAAcQ,kBAAkBhD,EAASwC,cAAcQ,kBAAkB3wG,OAAS,EAClG,CAdoEyvH,CAAmB1vB,EAAS4N,GAC/F,GAAI6hB,EAAsB,EACzB,OAAOrrH,EAAO+F,MAAM,EAAG/F,EAAOnE,OAASwvH,EAExC,CACD,OAAOrrH,CACP,CAoBM,SAASurH,GAA+BC,EAAxCpgE,GAKJ,IAJFwwC,EAIExwC,EAJFwwC,QACAmP,EAGE3/C,EAHF2/C,UACAppD,EAEEyJ,EAFFzJ,SACA6nD,EACEp+C,EADFo+C,SAEA,GAA0B,MAAtBgiB,EAEH,OAAO5vB,EAGR,IAAM6vB,EA+OA,SAAkEzrH,EAAQwpG,GAChF,IAAMrR,EAAY,IAAI2sB,GAAU,KAAMtb,GAOtC,OANArR,EAAUznF,MAAM1Q,GAMTm4F,EAAUuzB,YACjB,CAxPwBC,CAAyDH,EAAmBhiB,GAKpG,OAAIiiB,KAAqB1gB,GAAcA,EAAU3oG,QAAQqpH,IAAoB,GACrEA,GAKC7vB,GACPj6C,GACAiqE,GAA2BJ,EAAmB5vB,EAAS4N,GAKlD5N,OAPF,CAQL,CA+LD,SAASiwB,GAA0Cn7G,EAAOkrF,EAAS4N,GAGlE,GAA4E,IAAxE94F,EAAMtO,QAAQ+nH,GAAkCvuB,EAAS4N,IAAkB,CAE9E,IAAMrR,EAAY,IAAI2sB,GAAUlpB,EAAS4N,GAEzCrR,EAAUznF,MAAMA,GAEhB,IAAM6iG,EAAcpb,EAAUiuB,YAC9B,OAAI7S,EAGIA,EAAYuY,iBAAiBzwH,QAAQ,MAAO,IAE5C,EAER,CAEA,OAAOqV,EAAMrV,QAAQ,MAAO,GAE7B,CA0BM,SAAS0wH,GAAenoH,EAAGC,EAAGmoH,GAMnC,OAAIjsG,OAAO1lB,UAAU4xH,cACZroH,EAAEqoH,cAAcpoH,EAAGmoH,GAGrBpoH,EAAIC,GAAK,EAAKD,EAAIC,EAAI,EAAI,CAClC,CAgDM,SAASqnH,GAAmClrH,EAAQ47F,EAAS4N,GAEnE,IAAMrR,EAAY,IAAI2sB,GAAUlpB,EAAS4N,GAEzCrR,EAAUznF,MAAM1Q,GAEhB,IAAMuzG,EAAcpb,EAAUiuB,YAC9B,OAAO7S,GAAeA,EAAYvD,cAClC,CAQM,SAAS4b,GAA2B5rH,EAAQ47F,EAAS4N,GAG3D,IAFA,IAAM0iB,EAAwB/B,GAAkCvuB,EAAS4N,GACrEt2D,EAAI,EACDA,EAAIlzC,EAAOnE,QAAUq3C,EAAIg5E,EAAsBrwH,QAAQ,CAC7D,GAAImE,EAAOkzC,KAAOg5E,EAAsBh5E,GACvC,OAAO,EAERA,GACA,CACD,OAAO,CACP,CAMM,SAASi5E,GAAT10B,GAOJ,IANFl7F,EAMEk7F,EANFl7F,MACAg3G,EAKE9b,EALF8b,YACAvJ,EAIEvS,EAJFuS,eACA8R,EAGErkB,EAHFqkB,cACA2O,EAEEhzB,EAFFgzB,kBACAjhB,EACE/R,EADF+R,SAQA,QAAuB,IAAlBsS,GAA2B2O,IAAsBlX,GAAeA,EAAY3X,QAlmB3E,SAAsC2X,GAC5C,OAAOA,EAAYuY,iBAAiBzwH,QAAQ,MAAO,GACnD,CAimBQ+wH,CAA6B7Y,IAKhCh3G,GAASu/G,GAAiB9R,EACvBmgB,GAAkCngB,EAAgBR,GAEnDjtG,CACP,8rBEliBD,SAAS8vH,GAAeC,EAAQC,GAoB/B,OANe,OAAXD,IACHA,OAAS3uH,GAEK,OAAX4uH,IACHA,OAAS5uH,GAEH2uH,IAAWC,CAClB,isGClLKC,GAAAA,SAAAA,mTACL,SAAAA,EAAYttH,GAAO,IAAAqrG,+FAAAC,CAAA,KAAAgiB,GAAAC,GAAA9hB,GAClBJ,EAAAE,EAAArvG,KAAA,KAAM8D,IADY,eAsHL,SAACsqB,GACdygG,GAAa,CAAC1f,EAAKrrG,MAAMgjD,SAAUqoD,EAAKroD,UAAW14B,EACnD,IAxHkBijG,GAAA9hB,GAAAJ,GAAA,+BAyKW,SAAC3O,GAE9B,OAAO2tB,GAA4B3tB,EADd2O,EAAKrrG,MAAlBsqG,SAER,IA5KkBijB,GAAA9hB,GAAAJ,GAAA,mBA+KD,SAACigB,GAClB,IAAAkC,EAKIniB,EAAKrrG,MAJR48G,EADD4Q,EACC5Q,cACAtS,EAFDkjB,EAECljB,SACApwD,EAHDszE,EAGCtzE,SACAuzE,EAJDD,EAICC,6BAGD7G,EAGIvb,EAAK/0E,MAKHo3F,EAAiBvC,GARvBvE,EACCwE,YAOmE,CACnEC,YATDzE,EAEClqB,QAQA4uB,WAAAA,EACAhhB,SAAAA,EAGAihB,mBAAoB3O,IAGf7+D,EAAW6tE,GAAK8B,EAAgBpC,EAAYhhB,GAG9CmjB,GACHpiB,EAAKroD,SAASjuC,QAAQwT,QAQvB8iF,EAAK37D,SAAS,CACbgtD,QAAS4uB,EACTqC,yBAAyB,EACzBvC,YAAasC,EACbrwH,MAAO0gD,IAER,WAKC7D,EAAS6D,EACT,GACD,IAjOkBwvE,GAAA9hB,GAAAJ,GAAA,YAwOR,SAACuiB,GACX,IAAAC,EAQIxiB,EAAKrrG,MAPR8qG,EADD+iB,EACC/iB,eACA5wD,EAFD2zE,EAEC3zE,SACA4zE,EAHDD,EAGCC,uBACAlR,EAJDiR,EAICjR,cACAmR,EALDF,EAKCE,eACAC,EANDH,EAMCG,2BACA1jB,EAPDujB,EAOCvjB,SAGDwc,EAIIzb,EAAK/0E,MAHRu1E,EADDib,EACCjb,UAKDoiB,EHmHK,SAA6B7C,EAA7B9yB,GAWJ,IA0GEj7F,EApHJ6wH,EAUE51B,EAVF41B,gBACAxxB,EASEpE,EATFoE,QACAoO,EAQExS,EARFwS,eACAqjB,EAOE71B,EAPF61B,gBACAC,EAME91B,EANF81B,cACAviB,EAKEvT,EALFuT,UACA+Q,EAIEtkB,EAJFskB,cACAmR,EAGEz1B,EAHFy1B,eACAC,EAEE11B,EAFF01B,2BACA1jB,EACEhS,EADFgS,SAEA,GAAIsS,IAAgD,IAA/BoR,GAChBtxB,EAAS,CAGZ,IAIKv7B,EAJCwlD,EAASsE,GAAkCvuB,EAAS4N,GAG1D,GAAoC,IAAhC8gB,EAAYloH,QAAQyjH,GAgCvB,OAbuEyE,GAAkC,MAAnBA,EAAY,GAIjGjqD,EAAQyqD,GADRR,EAAczE,EAASyE,EACG1uB,EAAS4N,GAOnC8gB,EAAczE,EAER,CACNyE,YAAAA,EACA/tH,MAAA8jE,EACAu7B,QAAAA,EAGF,CA6GF,OArGsB,IAAlBkgB,GAA2BlgB,GAAW0uB,GAAkC,MAAnBA,EAAY,KACpEA,EAAcuB,GAA0CvB,EAAa1uB,EAAS4N,IAI3E8gB,GAAe1uB,GAAWqxB,IAC7B3C,EAAca,GAAWb,EAAa1uB,EAAS4N,KAS5C8gB,GAAkC,MAAnBA,EAAY,IAAgB1uB,IAAWkgB,IACzDwO,EAAc,IAAMA,IAqBhBA,GAAe8C,GAA0C,MAAvBA,EAAgB,KAErDxxB,EADGkgB,OACOn+G,EAEAqsG,GAMQ,MAAhBsgB,GAAuB8C,GAA0C,MAAvBA,EAAgB,IAAcA,EAAgBvxH,OAAS,IACpG+/F,OAAUj+F,GAKP2sH,IAGD/tH,EAFqB,MAAnB+tH,EAAY,KACK,MAAhBA,GAEO1uB,GAAyF,IAA9EuuB,GAAkCvuB,EAAS4N,GAAUpnG,QAAQkoH,SAD1E3sH,EAgBDmtH,GAAKR,EAAa1uB,EAAS4N,IAOjCjtG,IACHq/F,EAAU2vB,GAA+BhvH,EAAO,CAC/Cq/F,QAAAA,EACAmP,UAAAA,EACAvB,SAAAA,KAOqB,IAAlBsS,GAA2BlgB,GAAW0uB,GAAkC,MAAnBA,EAAY,KAGpE/tH,EAAQuuH,GAFRR,EAAcuB,GAA0CvB,EAAa1uB,EAAS4N,GAEpD5N,EAAS4N,MAIhC5N,GAAWyxB,IACfzxB,EAAUoO,GAAkBsjB,KAGtB,CAINhD,YAAAA,EACA1uB,QAAAA,EACAr/F,MAAAA,EAED,CGzRKgxH,CAAoBT,EAAc,CACrCM,gBAfDpH,EAECsE,YAcA1uB,QAhBDoqB,EAGCpqB,QAcAyxB,iBAAkBL,EAClBhjB,eAAAA,EACAsjB,cAAe,kBAAM/iB,EAAKijB,yBAAyB,CAAEziB,UAAAA,GAAtC,EACfA,UAAAA,EACA+Q,cAAAA,EACAmR,eAAAA,EACAC,2BAAAA,EACA1jB,SAAAA,IAbA8gB,EALD6C,EAKC7C,YACA1uB,EANDuxB,EAMCvxB,QACAr/F,EAPD4wH,EAOC5wH,MAcKynH,EAAc,CACnBsG,YAAAA,EACA/tH,MAAAA,EACAq/F,QAAAA,IAGkC,IAA/BsxB,IAUE3wH,GAAS+tH,IAAgB/f,EAAK/0E,MAAM80F,cAExCtG,EAAYyJ,cAAgB,CAAC,IAI/BljB,EAAK37D,SACJo1E,GAKA,kBAAM5qE,EAAS78C,EAAf,GAED,IA5SkBkwH,GAAA9hB,GAAAJ,GAAA,YA+SR,kBAAMA,EAAK37D,SAAS,CAAE8+E,WAAW,GAAjC,IA/SQjB,GAAA9hB,GAAAJ,GAAA,WAkTT,kBAAMA,EAAK37D,SAAS,CAAE8+E,WAAW,GAAjC,IAlTSjB,GAAA9hB,GAAAJ,GAAA,WAoTT,SAAC7mF,GACV6mF,EAAKojB,WACL,IAAQpuC,EAAYgrB,EAAKrrG,MAAjBqgF,QACJA,GACHA,EAAQ77D,EAET,IA1TkB+oG,GAAA9hB,GAAAJ,GAAA,UA4TV,SAAC7mF,GACT,IAAQy1B,EAAWoxD,EAAKrrG,MAAhBi6C,OACRoxD,EAAKqjB,UACDz0E,GACHA,EAAOz1B,EAER,IAlUkB+oG,GAAA9hB,GAAAJ,GAAA,kBAoUF,SAAC7mF,GACjB6mF,EAAKojB,WAEL,IAAQE,EAAuBtjB,EAAKrrG,MAA5B2uH,mBACR,GAAIA,EAAoB,CACvB,IAAQtuC,EAAYsuC,EAAZtuC,QACJA,GACHA,EAAQ77D,EAET,CACD,IA9UkB+oG,GAAA9hB,GAAAJ,GAAA,iBAgVH,SAAC7mF,GAChB6mF,EAAKqjB,UAEL,IAAQC,EAAuBtjB,EAAKrrG,MAA5B2uH,mBACR,GAAIA,EAAoB,CACvB,IAAQ10E,EAAW00E,EAAX10E,OACJA,GACHA,EAAOz1B,EAER,CACD,IAvVA6mF,EAAKroD,SAAWzI,EAAAA,YAEhB,IAAAq0E,EAUIvjB,EAAKrrG,MATRmhE,EADDytD,EACCvxH,MAEAwxH,GAHDD,EAECvV,OAFDuV,EAGChS,eACAkS,EAJDF,EAICd,uBAGAiB,EAPDH,EAOCG,iCACAC,EARDJ,EAQCI,mBACAld,EATD8c,EASCtkB,SAGD2kB,EAGI5jB,EAAKrrG,MAFRkvH,EADDD,EACCnkB,eACAqkB,EAFDF,EAECpjB,UAIGqjB,IACE7jB,EAAKgf,4BAA4B6E,KACrCA,OAAiBzwH,IAKnB0wH,EAAY7E,GAAsB6E,EAAWrd,GAE7C,IAAMuC,EAAcwE,GAAiB13C,EAAO2wC,GAE5CzG,EAAKsf,YAAcH,GAA2Bnf,EAAKrrG,OAEnD,IAAMovH,EH9DD,SAAAp/D,GAQJ,IACE0sC,EARJr/F,EAOE2yD,EAPF3yD,MACAg3G,EAMErkD,EANFqkD,YACAvJ,EAKE96C,EALF86C,eACAsjB,EAIEp+D,EAJFo+D,cACAviB,EAGE77C,EAHF67C,UACAppD,EAEEuN,EAFFvN,SACA6nD,EACEt6C,EADFs6C,SA6BA,OAvBI+J,GAAeA,EAAY3X,QAE9BA,EAAU2X,EAAY3X,QACZoO,IACLztG,IAASqvH,GAA2BrvH,EAAOytG,EAAgBR,KAC/D5N,EAAUoO,IAKRe,GAAaA,EAAU3oG,QAAQw5F,GAAW,IAC7CA,OAAUj+F,IAONi+F,GAAWj6C,GAAYopD,GAAaA,EAAUlvG,OAAS,IAC3D+/F,EAAU0xB,KAIJ1xB,CACP,CGyB4B2yB,CAAsB,CAChDhyH,MAAA8jE,EACAkzC,YAAAA,EACAvJ,eAAAokB,EACAzsE,UAAWqsE,EACXjjB,UAAWsjB,GAAa5E,GAAazY,GACrCsc,cAAe,kBAAM/iB,EAAKijB,yBAAyB,CAAEziB,UAAAsjB,GAAtC,EACf7kB,SAAAwH,IA3CiB,OA8ClBzG,EAAK/0E,MAAQ,CAEZt2B,MAAOqrG,EAAKrrG,MAGZ08F,QAAS0yB,EAQTvjB,UAAAsjB,EAYA/D,YAAa6B,GAAsB,CAClC5vH,MAAA8jE,EACAkzC,YAAAA,EACAvJ,eAAAokB,EACAtS,cAAAiS,EACAtD,kBAAmBwD,GAA2D,aAAvBC,EACvD1kB,SAAAwH,IAUDz0G,MAAA8jE,GAvFiBkqC,CAyFlB,8CAED,WACC,IAAQqR,EAAoB9/G,KAAKoD,MAAzB08G,gBACF5R,EAAmBluG,KAAKoD,MAAxB8qG,eACWwkB,EAAoB1yH,KAAK05B,MAAlComE,QACJggB,IACC5R,IACEluG,KAAKytH,4BAA4Bvf,KACrCA,OAAiBrsG,IAGf6wH,IAAoBxkB,GACvB4R,EAAgB4S,GAGlB,mCAED,SAAmBC,EAAWxvB,GAC7B,IAAQ2c,EAAoB9/G,KAAKoD,MAAzB08G,gBACAhgB,EAAY9/F,KAAK05B,MAAjBomE,QAEJggB,GAAmBhgB,IAAYqD,EAAUrD,SAC5CggB,EAAgBhgB,EAEjB,wCAQD,SAAA1sC,GAAuC,IAAb67C,EAAa77C,EAAb67C,UACzB2jB,EAQI5yH,KAAKoD,MAPR48G,EADD4S,EACC5S,cACAoR,EAFDwB,EAECxB,2BACAyB,EAHDD,EAGCC,oBACA3B,EAJD0B,EAIC1B,uBACAzU,EALDmW,EAKCnW,OACAyT,EAND0C,EAMC1C,QACAxiB,EAPDklB,EAOCllB,SAED,OAAO1tG,KAAK8yH,6BAA4B,WACvC,ORrKI,SAA4BxjH,EAASyD,GAC3C,IAAKA,EACJ,OAAOzD,EAKR,IAHA,IAGAmkG,EAHMsf,EAAe,GACfC,EAAkB,GACpBC,EAAWF,EACfrf,EAAAC,GAAsB5gG,KAAtB0gG,EAAAC,KAAAx4E,MAA6B,KAAlB32B,EAAkBkvG,EAAAhzG,MACZ,MAAZ8D,EACH0uH,EAAStwH,KAAK,CAAEspH,SAAS,IACH,QAAZ1nH,GAAiC,WAAZA,EAC/B0uH,EAAWD,EACL,WACN,IAAI3jB,OAAW,EAEdA,EADe,iBAAZ9qG,OACW1C,EAEA0C,EAGf,IAAMzE,EAAQwP,EAAQhJ,QAAQgJ,EAAQqtC,QAAO,SAAAqI,GAAM,OAAIA,EAAOvkD,QAAU4uG,CAArB,IAAkC,IAE/ErqD,EAAS11C,EAAQxP,GAEvBwP,EAAQ9P,OAAOM,EAAO,GAEtBmzH,EAAStwH,KAAKqiD,EAdR,GAgBP,CACD,OAAO+tE,EAAaxlG,OAAOje,GAASie,OAAOylG,EAC3C,CQuISE,CHjHH,SAAArpE,GAQJ,IAPFolD,EAOEplD,EAPFolD,UACAkkB,EAMEtpE,EANFspE,aACAjC,EAKErnE,EALFqnE,uBAGAkC,EAEEvpE,EAFFupE,sBACgBC,EACdxpE,EADFomE,eAGKoD,IACJA,EAAkBpD,IAInB,IAAMqD,EAAuBrkB,EAAU1tG,KAAI,SAACu+F,GAAD,MAAc,CACxDr/F,MAAOq/F,EAOPjgB,MAAOszC,EAAarzB,IAAYA,EARU,IAqB3C,OATAwzB,EAAqB3nC,MAAK,SAAC7jF,EAAGC,GAAJ,OAAUsrH,EAAgBvrH,EAAE+3E,MAAO93E,EAAE83E,MAAOuzC,EAA5C,IAGtBlC,GACHoC,EAAqB7jG,QAAQ,CAC5BowD,MAAOszC,EAAaI,KAIfD,CACP,CG6EGE,CAAwB,CACvBvkB,UAAWA,GAAa0e,GAAajgB,GACrCylB,aAAc1W,EACdyU,yBAAyBlR,IAAgD,IAA/BoR,IAAgDF,EAC1FkC,sBAAuBlD,IR1IrB,SAAoCuD,EAAgB/lB,GAC1D,GAAI+lB,IACHA,EAAiBA,EAAe92E,QAAO,SAACqI,GACvC,OAAQA,GACP,IAAK,eACL,IAAK,IACL,IAAK,MACL,IAAK,SACJ,OAAO,EACR,QACC,OAAOyoE,GAA4BzoE,EAAQ0oD,GAE7C,KACkB3tG,OAAS,EAC3B,OAAO0zH,CAGT,CQ4HGC,CAA2Bb,EAAqBnlB,GAEjD,GAAE,CACFuB,EACA4jB,EACA3B,EACAzU,EACA/O,GAED,4CAED,SAA4BimB,EAAWz9F,GAQtC,OANEl2B,KAAK4zH,sCA6xBT,SAAwB9rH,EAAGC,GAC1B,GAAID,EAAE/H,SAAWgI,EAAEhI,OAClB,OAAO,EAGR,IADA,IAAIq3C,EAAI,EACDA,EAAItvC,EAAE/H,QAAQ,CACpB,GAAI+H,EAAEsvC,KAAOrvC,EAAEqvC,GACd,OAAO,EAERA,GACA,CACD,OAAO,CACP,CAxyBGy8E,CAAe39F,EAAcl2B,KAAK4zH,wCAEnC5zH,KAAK8zH,yBAA2BH,IAChC3zH,KAAK4zH,qCAAuC19F,GAEtCl2B,KAAK8zH,wBACZ,yCAED,SAAAjqE,GAAwC,IAAbolD,EAAaplD,EAAbolD,UAE1B,OADuBjvG,KAAK+zH,wBAAwB,CAAE9kB,UAAAA,IAChC,GAAGxuG,KACzB,uBAmMD,WACC,IAAAuzH,EA+CIh0H,KAAKoD,MA7CRQ,EAFDowH,EAECpwH,KACA6L,EAHDukH,EAGCvkH,SACAq8G,EAJDkI,EAIClI,SACAmI,EALDD,EAKCC,aACAjgH,EANDggH,EAMChgH,MACAm/C,EAPD6gE,EAOC7gE,UAIA8rD,GAXD+U,EAUC5tE,SAVD4tE,EAWC/U,gBACAiV,EAZDF,EAYCE,iBACAC,EAbDH,EAaCG,WAGwBC,EAhBzBJ,EAgBCK,uBACAtC,EAjBDiC,EAiBCjC,mBAGoBuC,EApBrBN,EAoBCO,mBACAC,EArBDR,EAqBCQ,wBAMA/X,GA3BDuX,EAwBC9lB,eAxBD8lB,EAyBC/kB,UAzBD+kB,EA0BCnB,oBA1BDmB,EA2BCvX,QAeA/O,GA1CDsmB,EA4BCr8G,MA5BDq8G,EA6BCnG,cA7BDmG,EA8BChH,QA9BDgH,EA+BC9C,uBA/BD8C,EAgCClG,kBAhCDkG,EAmCC7B,iCAnCD6B,EAoCC5B,mBApCD4B,EAqCClU,gBArCDkU,EAsCC7C,eAtCD6C,EAuCC5C,2BAvCD4C,EAwCCnD,6BAxCDmD,EAyCCtjE,MAzCDsjE,EA0CCtmB,UACAsS,EA3CDgU,EA2CChU,cAGGjtD,GA9CJihE,EA4CC9D,QA5CDhR,GAAA8U,EAAA7U,KAiDAgL,EAKInqH,KAAK05B,MAJRomE,EADDqqB,EACCrqB,QACAmP,EAFDkb,EAEClb,UACAuf,EAHDrE,EAGCqE,YACAoD,EAJDzH,EAICyH,UAGK5S,EAAiBmV,EAAa9I,GAAaE,GAE3C+H,EAAuBtzH,KAAK+zH,wBAAwB,CAAE9kB,UAAAA,IAE5D,OACCtxD,EAAAA,cAAC22E,EAAD7U,GAAA,CACCzrG,MAAOA,EACPm/C,UAAWhb,GAAWgb,EAAW,aAAc,CAC9C,oBAAqBy+D,EACrB,uBAAwBniH,EACxB,uBAAwBq8G,KAErB0I,GAGJ72E,EAAAA,cAACy2E,EAAD3U,GAAA,CACC77G,KAAMA,EAAO,GAAH2pB,OAAM3pB,EAAN,gBAAsB/B,EAChC,aAAY46G,EAAO3c,SACfiyB,EAHL,CAICtxH,MAAOq/F,EACPxwF,QAASgkH,EACTh2E,SAAUt9C,KAAK8/G,gBACfr8B,QAASzjF,KAAKy0H,eACdp3E,OAAQr9C,KAAK00H,cACbjlH,SAAUA,GAAasiH,GAAsBA,EAAmBtiH,SAChEq8G,SAAUA,GAAaiG,GAAsBA,EAAmBjG,SAChEO,cAAersH,KAAK+tH,eAGrBpwE,EAAAA,cAACqhE,EAADS,GAAA,CACCnlF,IAAKt6B,KAAK20H,YACVjzH,KAAK,MACLuyH,aAAcA,GACVC,EACAnhE,EALL,CAMCitD,gBAAeA,QAAuBn+G,EACtC8oH,yBAAwB3K,QAAuBn+G,EAC/C+B,KAAMA,EACN8pG,SAAUA,EACV5N,QAASA,EACTr/F,MAAO+tH,GAAe,GACtBlxE,SAAUt9C,KAAKs9C,SACfmmC,QAASzjF,KAAKyjF,QACdpmC,OAAQr9C,KAAKq9C,OACb5tC,SAAUA,EACVq8G,SAAUA,EACV7M,eAAgBA,EAChB9rD,UAAWhb,GACV,kBACA+7E,GAAoBA,EAAiB/gE,UACrCJ,EAAKI,cAIT,6CAvHD,SAAgC/vD,EAAOs2B,GACtC,OAAAu0E,GAAA,CAEC7qG,MAAAA,GDlYY,SAAyDA,EAAOuvH,EAAWj5F,GACzF,IACCg0E,EAUGtqG,EAVHsqG,SACAuB,EASG7rG,EATH6rG,UACgB2lB,EAQbxxH,EARH8qG,eACO/sD,EAOJ/9C,EAPH3C,MACOo0H,EAMJzxH,EANHstD,MACAsvD,EAKG58G,EALH48G,cAGAmS,EAEG/uH,EAFH+uH,iCACAC,EACGhvH,EADHgvH,mBAIgB0C,EAGbnC,EAHHzkB,eACO2U,EAEJ8P,EAFHlyH,MACOs0H,EACJpC,EADHjiE,MAKAjwD,GAMGi5B,EAPHomE,QAOGpmE,EANHj5B,OAKAswH,EACGr3F,EADHq3F,wBAGKiE,EAAyB,SAACC,GAAD,OAAgB5E,GAAqBpiB,GAAAA,GAAC,CAAC,EAClEgnB,GADgE,IAEnEjV,cAAAA,EACA2O,kBAAmBwD,GAA2D,aAAvBC,EACvD1kB,SAAAA,IAJ8B,EAkB/B,GAAImnB,IAAaE,EAChB,MAAO,CACNvG,YAAawG,EAAuB,CACnCv0H,WAAOoB,EACPqsG,eAAgB0mB,IAEjBn0H,WAAOoB,EACPi+F,QAAS80B,EACT7D,6BAAyBlvH,GAgB3B,GAAI+yH,IAAsBE,EAAoB,CAC7C,IAAMI,GAAgCN,GAAqBnH,GAA4BmH,EAAmBlnB,GACpGynB,GAEJ10H,GAKAu/G,GAAiBv/G,IAAUu0H,EAAuB,CAClDv0H,WAAOoB,EACPqsG,eAAgB4mB,IAMlB,IAAK/D,GAA2BmE,IADD/zE,GAAYg0E,EAE1C,MAAO,CACNr1B,QAAS80B,EAMTpG,YAAawG,EAAuB,CACnCv0H,WAAOoB,EACPqsG,eAAgB0mB,IAGjBn0H,WAAOoB,EAGT,CAaD,IAAK0uH,GAAepvE,EAAU0hE,KAAe0N,GAAepvE,EAAU1gD,GAAQ,CAC7E,IAAIg3G,EACA2d,EAwCAC,EAvCJ,GAAIl0E,EAAU,CACbs2D,EAAcwE,GAAiB96D,EAAUusD,GACzC,IAAM4nB,EAAqB5H,GAAsBze,EAAWvB,GACxD+J,GAAeA,EAAY3X,UAGzBw1B,GAAsBA,EAAmBhvH,QAAQmxG,EAAY3X,UAAY,KAC7Es1B,EAAgB3d,EAAY3X,UAG7Bs1B,EAAgB3F,GAA+BtuE,EAAU,CACxD2+C,aAASj+F,EACTotG,UAAWqmB,EACX5nB,SAAAA,MAkBIknB,GACsF,IAArFzzE,EAAS76C,QAAQ+nH,GAAkCuG,EAAmBlnB,MACzE0nB,EAAgBR,EAKpB,CAQD,OANKzzE,IAEJk0E,EAAgC,CAC/BtE,6BAAyBlvH,IAG3BosG,GAAAA,GAAA,GACIonB,GADJ,IAEC7G,YAAawG,EAAuB,CACnCvd,YAAAA,EACAh3G,MAAO0gD,EACP+sD,eAAgB0mB,IAEjBn0H,MAAO0gD,EACP2+C,QAAS3+C,EAAWi0E,EAAgBR,GAErC,CAOD,CC2MKW,CAAgDnyH,EAAOs2B,EAAMt2B,MAAOs2B,GAExE,yFAxWIg3F,CAA0B/yE,EAAAA,eA6d1B63E,GAAmB73E,EAAAA,YAAiB,SAACv6C,EAAOk3B,GAAR,OACzCqjB,EAAAA,cAAC+yE,GAADjR,GAAA,GA4cD,SAA0Br8G,GAGzB,IAAK,IAAM5C,KAFX4C,EAAK6qG,GAAA,GAAQ7qG,GAEKmyB,QACE1zB,IAAfuB,EAAM5C,KACT4C,EAAM5C,GAAO+0B,GAAa/0B,IAI5B,OAAO4C,CACP,CAtduBqyH,CAAiBryH,GAAxC,CAAgDgjD,SAAU9rB,IADjB,IAI1Ck7F,GAAiBliE,UAAY,CAU5B7yD,MAAOwE,GAAAA,OASPq4C,SAAUr4C,GAAAA,KAAenB,WAMzB2/E,QAASx+E,GAAAA,KAMTo4C,OAAQp4C,GAAAA,KAMRwK,SAAUxK,GAAAA,KAMV6mH,SAAU7mH,GAAAA,KAuBVgvH,aAAchvH,GAAAA,OAsBdmtH,mBAAoBntH,GAAAA,MAAgB,CAAC,aAIrCktH,iCAAkCltH,GAAAA,KASlCipG,eAAgBjpG,GAAAA,OAShBgqG,UAAWhqG,GAAAA,QAAkBA,GAAAA,QAY7Bw3G,OAAQiZ,GAeRxF,QAASjrH,GAAAA,UAAoB,CAC5BA,GAAAA,OACAA,GAAAA,QAAkBA,GAAAA,UA0BnB+nH,QAAS/nH,GAAAA,OAwBT0S,MAAO1S,GAAAA,SAAmBA,GAAAA,aAY1B4oH,cAAe5oH,GAAAA,YAKfisH,uBAAwBjsH,GAAAA,KAUxB6oH,kBAAmB7oH,GAAAA,YAcnB4tH,oBAAqB5tH,GAAAA,QAAkBA,GAAAA,QAKvC+O,MAAO/O,GAAAA,OAKPkuD,UAAWluD,GAAAA,OAmBXovH,uBAAwBpvH,GAAAA,YAOxB8sH,mBAAoB9sH,GAAAA,OAepBg6G,eAAgBh6G,GAAAA,YAKhBivH,iBAAkBjvH,GAAAA,OAUlBsvH,mBAAoBtvH,GAAAA,YAKpBuvH,wBAAyBvvH,GAAAA,OAczBkvH,WAAYlvH,GAAAA,KAOZ+6G,cAAe/6G,GAAAA,KAMfksH,eAAgBlsH,GAAAA,KAOhBmsH,2BAA4BnsH,GAAAA,KAQ5ByoG,SAAUioB,GAcV7V,gBAAiB76G,GAAAA,KAWjB4rH,6BAA8B5rH,GAAAA,MAG/B,IAAMswB,GAAe,CAIpB0+F,aAAc,MAKdI,uBAAwBxI,GAKxBgC,cAAeK,GAMflB,QAAS,uEAKTc,kBAAmBb,GAKnBhO,eAAgB,QAKhBsV,mBAAoB,MAepB7jE,MAAOzrD,GAAAA,IASPkvH,YAAY,EAMZjD,wBAAwB,EAOxBE,4BAA4B,EAW5BP,8BAA8B,GAe/B,qoBCp9BO,SAAS+E,GAAiBxK,GAChC,IAAMyK,EAAoBl4E,EAAAA,YAAiB,SAAAyV,EAIxC94B,GAJwC,IAAAgxF,EAAAl4D,EAC1Cs6C,SAAAA,OAD0C,IAAA4d,EAC/BF,EAD+BE,EAAAwK,EAAA1iE,EAE1CqpD,OAAAA,OAF0C,IAAAqZ,EAEjCC,GAFiCD,EAGvC/iE,EAHuCmsD,GAAA9rD,EAAA+rD,IAAA,OAK1CxhE,EAAAA,cAACq4E,GAADvW,GAAA,GACK1sD,EADL,CAECz4B,IAAKA,EACLozE,SAAUA,EACV+O,OAAQA,IATiC,IAkB3C,OALAoZ,EAAkBviE,UAAY,CAC7Bo6C,SAAUioB,GACVlZ,OAAQiZ,IAGFG,CACP,CAEcD,KCnBf,SAASt2H,GAAKuB,EAAMo1H,GACnB,IAAI9zH,EAAO7D,MAAMC,UAAU0L,MAAM3K,KAAK22H,GAEtC,OADA9zH,EAAKQ,KAAK+qG,IACH7sG,EAAKwB,MAAMrC,KAAMmC,EACzB,CAEA,SAAeyzH,GAAiBloB,ICVhC,MA2VA,GA3VuBwoB,KAAO,IAADC,EAAAC,EAAAC,EAAAC,EAC3B,MAAM,SACJnwB,EAAQ,YACRoE,EAAW,kBACXjH,EAAiB,cACjBnC,EAAa,UACbo1B,EAAS,kBACT/vB,EAAiB,eACjB7C,EAAc,UACd/F,EAAS,mBACT6M,EAAkB,gBAClB+rB,IACE91F,EAAAA,EAAAA,YAAWm9D,KAET,SAAE97C,EAAQ,aAAE6N,EAAY,MAAEhP,EAAK,QAAE7C,EAAO,WAAEyrD,GAC9ChD,GACKiwB,EAAYC,IAAiBx1F,EAAAA,EAAAA,UAAS,CAC3C,CACE/iB,GAAI,EACJva,KAAM,qBACNsrF,MAAMqQ,EAAAA,GAAAA,KAAC6L,GAAW,CAACj4C,UAAU,uBAC7B1yD,MAAO,MACPukG,QAAQ,GAEV,CACE7mF,GAAI,EACJva,KAAM,kBACNsrF,MAAMqQ,EAAAA,GAAAA,KAAC8L,GAAQ,CAACl4C,UAAU,uBAC1B1yD,MAAO,QACPukG,QAAQ,GAEV,CACE7mF,GAAI,EACJva,KAAM,QACNsrF,MAAMqQ,EAAAA,GAAAA,KAAC+L,GAAa,CAACn4C,UAAU,uBAC/B1yD,MAAO,QACPukG,QAAQ,KAIN2xB,EAAgB72H,IACpB,MAAM82H,EAAeH,EAAW32H,GAChC22H,EAAW95E,QAAQ3lC,IACbA,EAAEmH,KAAOy4G,EAAaz4G,GACxBnH,EAAEguF,QAAS,EAEXhuF,EAAEguF,QAAS,CACb,IAEFuF,EAAY,IACPpE,EACHnhD,OAAQ4xE,EAAa5xB,OAAS4xB,EAAan2H,MAAQ,IACnD,GAwEJkgC,EAAAA,EAAAA,YAAU,KAtBiBk2F,MACzB,MAAMC,EAAmB7rB,eAAe8rB,QAAQ,cAChD,GAAID,EAAkB,CACpB,MACME,EADmBznF,KAAKwzB,MAAM+zD,GACOv1H,KAAKyjD,IAAM,IACjDA,EACHkqC,KAAM,MACJ,OAAQlqC,EAAOvkD,OACb,IAAK,MACH,OAAO8+F,EAAAA,GAAAA,KAAC6L,GAAW,CAACj4C,UAAU,uBAChC,IAAK,QACH,OAAOosC,EAAAA,GAAAA,KAAC8L,GAAQ,CAACl4C,UAAU,uBAC7B,QACE,OAAOosC,EAAAA,GAAAA,KAAC+L,GAAa,CAACn4C,UAAU,uBAErC,EATK,OAWRujE,EAAcM,EAChB,GAQAH,GAEA,MAAMI,EAAqBA,KACzBhsB,eAAeC,WAAW,aAAa,EAKzC,OAFAziG,OAAOoO,iBAAiB,eAAgBogH,GAEjC,KAELxuH,OAAOqO,oBAAoB,eAAgBmgH,EAAmB,CAC/D,GACA,IAIHr2E,GAAM,CAACngD,EAAKopD,KAAsB,IAApB,KAAEjmD,EAAI,KAAElC,GAAMmoD,EACb,WAATnoD,GACF6oG,GAAapwD,IAAI,IACZA,EACH,CAACv2C,GAAOnD,EAAMmD,MAElB,KAGF+8B,EAAAA,EAAAA,YAAU,KACR41F,EAAU/sB,EAAW,GACpB,CAACA,EAAY+sB,KAEhB51F,EAAAA,EAAAA,YAAU,KACR81F,EAAWrvH,SAAS4P,IAClBA,EAAEguF,QAAS,CAAK,GAChB,GACD,IAEH,MAAM,OAAE9kD,GAAWZ,EAAa,CAAEvB,QAASA,IAE3C,OACEwhD,EAAAA,GAAAA,KAAA,OAAKpsC,UAAU,mGAAkGvjD,UAC/G2vF,EAAAA,GAAAA,KAAA,OAAKpsC,UAAU,gBAAevjD,UAC5B0vF,EAAAA,GAAAA,MAAA,QACEnsC,UAAU,qBACV5V,SAAUqS,GA5BKpuD,QA4BuBoO,SAAA,EAEtC0vF,EAAAA,GAAAA,MAAA,OAAKnsC,UAAU,oLAAmLvjD,SAAA,EAE9LguF,IACA0B,EAAAA,GAAAA,MAAA,KAAGnsC,UAAU,cAAavjD,SAAA,CAAC,yCAEzB2vF,EAAAA,GAAAA,KAAA,QAAMpsC,UAAU,mHAAkHvjD,SAAC,UAKrIguF,IACA2B,EAAAA,GAAAA,KAAA,OAAKpsC,UAAU,8DAA6DvjD,SACzE6mH,EAAWl1H,KAAI,CAACL,EAAGpB,KAClBw/F,EAAAA,GAAAA,MAAA,OAEEnsC,UAAS,gFAAA5lC,OACO,QAAZrsB,EAAET,OAC2B,eAAd,OAAdkjG,QAAc,IAAdA,OAAc,EAAdA,EAAgB7D,UACa,mBAAd,OAAd6D,QAAc,IAAdA,OAAc,EAAdA,EAAgB7D,UACY,YAAd,OAAd6D,QAAc,IAAdA,OAAc,EAAdA,EAAgB7D,UACY,oBAAd,OAAd6D,QAAc,IAAdA,OAAc,EAAdA,EAAgB7D,SACd,mDACA,GAAE,4BACNlwF,SAAA,EAEJ2vF,EAAAA,GAAAA,KAAA,SACE79F,KAAK,WACLjB,MAAOS,EAAET,MACT2N,QAASlN,EAAE8jG,OACX1nD,SAAUA,IAlJRx9C,KAEpB,MAAM82H,EAAeH,EAAW32H,GAG1Bk3H,EAAoBP,EAAWl1H,KAAI,CAACyV,EAAGxP,KAAG,IAC3CwP,EACHguF,OAAQx9F,IAAQ1H,MAIZo3H,EAAyBF,EAAkBz1H,KAC/C6xD,IAAA,IAAC,GAAEj1C,EAAE,KAAEva,EAAI,MAAEnD,EAAK,OAAEukG,GAAQ5xC,EAAA,MAAM,CAChCj1C,KACAva,OACAnD,QACAukG,SACD,IAIHiG,eAAeksB,QACb,aACA5nF,KAAKC,UAAU0nF,IAIjBR,EAAcM,GAGdzsB,EAAY,IACPpE,EACHnhD,OAAQ4xE,EAAan2H,QAGvBgqG,EAAmBmsB,EAAan2H,MAAM,EA+GJ22H,CAAat3H,MAE/By/F,EAAAA,GAAAA,KAAA,QAAMpsC,UAAU,yBAAwBvjD,SAAE1O,EAAEguF,QAC5CqQ,EAAAA,GAAAA,KAAA,SAAA3vF,SAAQ1O,EAAE0C,SAlBL1C,EAAE0C,WAwBG,OAAjB0/F,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB8E,gBAAmC,IAAlBjH,IACnC7B,EAAAA,GAAAA,MAAA,SAAOnsC,UAAU,cAAavjD,SAAA,EAC5B2vF,EAAAA,GAAAA,KAAA,QAAA3vF,SAAM,aACN2vF,EAAAA,GAAAA,KAAA,QAAMpsC,UAAU,mHAAkHvjD,SAAC,OAGnI2vF,EAAAA,GAAAA,KAAC83B,GAAS,CACRt1E,SAAUA,EACVn+C,KAAK,QACL08F,YAAY,iBAEXk2B,IAAoB54B,GAAcA,KACnC2B,EAAAA,GAAAA,KAAA,KAAGpsC,UAAU,sCAAqCvjD,SACzC,OAANswC,QAAM,IAANA,GAAa,QAAPi2E,EAANj2E,EAAQ+nD,aAAK,IAAAkuB,OAAP,EAANA,EAAev0F,cAKxB09D,EAAAA,GAAAA,MAAA,SAAOnsC,UAAU,cAAavjD,SAAA,EAC5B2vF,EAAAA,GAAAA,KAAA,QAAA3vF,SAAM,YACN2vF,EAAAA,GAAAA,KAAA,QAAMpsC,UAAU,mHAAkHvjD,SAAC,OAInI2vF,EAAAA,GAAAA,KAAC83B,GAAS,CACRt1E,SAAUA,EACVn+C,KAAK,OACL08F,YAAY,gBAGXk2B,IAAoB54B,GAAcA,KACnC2B,EAAAA,GAAAA,KAAA,KAAGpsC,UAAU,sCAAqCvjD,SACzC,OAANswC,QAAM,IAANA,GAAY,QAANk2E,EAANl2E,EAAQt8C,YAAI,IAAAwyH,OAAN,EAANA,EAAcx0F,cAKrB09D,EAAAA,GAAAA,MAAA,SAAOnsC,UAAS,uCAAyCvjD,SAAA,EACvD2vF,EAAAA,GAAAA,KAAA,QAAA3vF,SAAM,aACN2vF,EAAAA,GAAAA,KAAA,QAAMpsC,UAAU,mHAAkHvjD,SAAC,OAInI2vF,EAAAA,GAAAA,KAACn8C,EAAU,CACTrF,QAASA,EACTn6C,KAAK,QACLoJ,OAAQm9C,IAAA,IAAG/H,OAAO,SAAE9E,EAAQ,MAAE78C,IAAS0pD,EAAA,OACrCo1C,EAAAA,GAAAA,KAACy2B,GAAU,CACThW,eAAa,EAEb9R,eAA8B,OAAdvK,QAAc,IAAdA,OAAc,EAAdA,EAAgB2zB,aAChC72H,MAAOA,EACP68C,SAAUA,EAcV6V,UAAU,+UACV,KAIHqjE,IAAoB54B,GAAcA,KACnC2B,EAAAA,GAAAA,KAAA,KAAGpsC,UAAU,sCAAqCvjD,SACzC,OAANswC,QAAM,IAANA,GAAa,QAAPm2E,EAANn2E,EAAQ4oD,aAAK,IAAAutB,OAAP,EAANA,EAAez0F,cAKtB09D,EAAAA,GAAAA,MAAA,SAAOnsC,UAAU,cAAavjD,SAAA,EAC5B2vF,EAAAA,GAAAA,KAAA,QAAA3vF,SAAM,aACN2vF,EAAAA,GAAAA,KAAA,QAAMpsC,UAAU,mHAAkHvjD,SAAC,OAInI2vF,EAAAA,GAAAA,KAAC83B,GAAS,CACRt1E,SAAUA,EACVn+C,KAAK,QACL08F,YAAY,cACZ5+F,KAAK,WAGJ80H,IAAoB54B,GAAcA,KACnC2B,EAAAA,GAAAA,KAAA,KAAGpsC,UAAU,sCAAqCvjD,SACzC,OAANswC,QAAM,IAANA,GAAa,QAAPo2E,EAANp2E,EAAQn5B,aAAK,IAAAuvG,OAAP,EAANA,EAAe10F,iBAMxB09D,EAAAA,GAAAA,MAAA,SAAOnsC,UAAU,oKAAmKvjD,SAAA,EAClL2vF,EAAAA,GAAAA,KAAA,QAAA3vF,SAAM,aACN2vF,EAAAA,GAAAA,KAAA,YACEe,YAAY,qDACZ18F,KAAK,WACDm+C,EAAS,SACboR,UAAU,0TAKbyqC,IACC0B,EAAAA,GAAAA,MAAA,KAAGnsC,UAAU,wDAAuDvjD,SAAA,CAAC,8CAEnE2vF,EAAAA,GAAAA,KAAA,QAAMpsC,UAAU,mIAAkIvjD,SAAC,SAKtJguF,IACC2B,EAAAA,GAAAA,KAAA,OAAKpsC,UAAU,gMAA+LvjD,SAC3M6mH,EAAWl1H,KAAI,CAACsG,EAAG/H,KAClBy/F,EAAAA,GAAAA,KAACg4B,GAAI,CAEHt2D,QAASp5D,EACT6kG,KAAM7kG,EAAEqnF,KACRpvF,MAAOA,EACP2sG,iBAAkBkqB,GAJb9uH,EAAEsW,cAWf,ECzVV,IAAIq5G,IAAO,EAEX,MAAMC,GAAcA,KAClB,MAAM,kBACJn0B,EAAiB,qBACjBG,EAAoB,gBACpB6C,EAAe,iBACflF,EAAgB,SAChBoC,EAAQ,YACRD,EAAW,eACXm0B,EAAc,QACd1gE,EAAO,WACPqvC,EAAU,UACVlD,EAAS,aACTiD,EAAY,cACZjF,EAAa,sBACbw2B,EAAqB,yBACrBC,EAAwB,gBACxBC,EAAe,YACfC,EAAW,eACXC,EAAc,gBACdC,EAAe,oBACfC,EAAmB,uBACnBC,EAAsB,oBACtBC,EAAmB,uBACnBC,EAAsB,cACtBz6B,EAAa,UACbC,EAAS,aACT8D,IACEhhE,EAAAA,EAAAA,YAAWm9D,KAER12E,EAAQ65E,IAAa9/D,EAAAA,EAAAA,UAAS,KAC9Bm3F,EAAgBC,IAAqBp3F,EAAAA,EAAAA,UAAS,KAIrDP,EAAAA,EAAAA,YAAU,KAER,MAAM43F,EAA4BA,KAChC,MAAMC,EAAiB9vH,SAAS2jG,eAAe,mBAC3CmsB,GACFJ,EAAuBI,EAAeC,YACxC,EAIFF,IAGA9vH,OAAOoO,iBAAiB,SAAU0hH,GAgClC,MA9BkB7yE,WAChB,KAAI89C,EAASzjG,OAAS,IAAMy3H,GAA5B,CACAnxB,GAAW,GACX,IACEmxB,IAAO,EACP,MAAM9/E,QAAYkqD,MAAM,GAADr0E,OAtBZ2xE,qCAsBwB,KAAA3xE,OAAI4xE,GAAYxpB,oBAAsB,CACvE3kB,OAAQ,OACRgR,QAAS,CACP,eAAgB,oBAElBzzD,KAAMghC,KAAKC,UAAU,CAAE6vD,GAAI1B,MAEvBn8F,QAAak2C,EAAImqD,OACvB,IAAI62B,EAAgBl3H,EAAKm3H,UAAUp3H,KAAKwmG,GACtCA,EAAS6wB,OAAOj8E,QAAQqrD,GAAUA,EAAM6wB,eAE1C,MAAMC,EAAe,IAAIt3H,EAAKm3H,aAAcD,GAC5Cn1B,EAAYu1B,EAAaC,QACzBrB,EAAeoB,EAAaC,QAC5BT,EAAkBQ,EAAaC,QAC/Bb,EAAuB12H,EAAKw3H,cAC5BhB,EAAgBx2H,EAAKy3H,SACvB,CAAE,MAAOh3F,GACPD,QAAQ7nB,IAAI8nB,EACd,CAAC,QACCs2F,IACAlyB,GAAW,EACb,CA1BwC,CA0BxC,EAEFvE,GACO,IACLr5F,OAAOqO,oBAAoB,SAAUyhH,EAA0B,GAChE,CAACJ,EAAqBh3B,IAEzB,MAAMsL,EAAmBA,CAACysB,EAAc/sB,KACtC,GAAoB,WAAhBA,EAA0B,CAC5B,MAAMtyD,EAAIo+E,EAAoB12H,KAAKyG,IAAC,IAC/BA,EACHg9F,QAAQ,MAEVzB,EAAY1pD,GACZunD,EAAiB,GACjBw2B,EAAyB,IACzBn0B,EAAqB,IAChBH,EACH2E,MAAO,CAAC,EACRhE,SAAU,GACVmE,eAAe,GAEnB,CAEA,IAAIwuB,EAAezvG,EACfkxG,EAAea,GACf11B,EAAS01B,GAsBb,GArBsB,IAAlB/3B,GACFiF,EAAa,IAAKjD,EAAW,CAAChC,GAAgBqC,IAGhDpC,GAAkB+B,IAChB,GAAkB,IAAdA,EAAiB,OAAOA,EAC5B,GAAkB,IAAdA,GAAmByzB,EAAaiC,WAAY,CAC9C,MAAM9wB,EAAmB,OAARvE,QAAQ,IAARA,OAAQ,EAARA,EAAU9kD,MACxBuiB,GAAYA,EAAQikC,MAAQ0xB,EAAa7uB,WAQ5C,OANAtE,EAAqB,IAChBH,EACHyE,WACAC,MAAO4uB,IAETiB,EAAgB,IAAKjB,IACdzzB,EAAY,CACrB,CACE,OAAOA,EAAY,CACrB,IAEc,OAAZyzB,QAAY,IAAZA,GAAAA,EAAcgC,OAEhBn1B,EAAqB,IAAKH,EAAmByE,SAAU6uB,IACvDrzB,EAAYqzB,EAAagC,aACpB,GAAgB,OAAZhC,QAAY,IAAZA,GAAAA,EAAc9rB,OACvBrH,EAAqB,IAAKH,EAAmB0E,MAAO4uB,IAEpDgB,EAAyBhB,EAAa3yB,UACtC8zB,EAAenB,EAAa3yB,UAC5BV,EAAYqzB,EAAa9rB,aACpB,IAAyB,OAArB6sB,QAAqB,IAArBA,OAAqB,EAArBA,EAAuB53H,QAAS,EAAG,CAE5C0jG,EAAqB,IAAKH,EAAmB2E,MAAO2uB,IACpD,MAAMuC,EAAmBrB,EACtBn7E,QAAQqnD,GAAYA,EAAQiE,MAAM/C,MAAQ0xB,EAAa1xB,MACvD3jG,KAAKyG,IAAC,IAAWA,EAAGg9F,QAAQ,MAC/BzB,EAAY41B,GACZvB,EAAyB,GAC3B,KAAO,CACL,MAAM3zB,EAA4B,OAAjBX,QAAiB,IAAjBA,GAAAA,EAAmBW,SACf,OAAjBX,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBW,SACnB,GAEEzjG,EAAkB,OAAZo2H,QAAY,IAAZA,GAAAA,EAAc13H,eAAe,OAAS,MAAQ,KACpDk6H,GACI,OAARn1B,QAAQ,IAARA,OAAQ,EAARA,EAAUlW,WAAWl0C,GAAMA,EAAEr5C,KAASo2H,EAAap2H,OAAS,EAE9D,GAAgB,OAAZo2H,QAAY,IAAZA,GAAAA,EAAc/xB,WAAY,CAC5B,MAAML,EAAoB,OAAZoyB,QAAY,IAAZA,GAAAA,EAAc/xB,WAAW9lD,WAAW,KAClC,OAAZ63E,QAAY,IAAZA,OAAY,EAAZA,EAAc9xB,aACF,OAAZ8xB,QAAY,IAAZA,OAAY,EAAZA,EAAc/xB,WAClB+xB,EAAoB,MAAI9gE,WAAW0uC,EACrC,CAEA,IAAIO,OACgCljG,KAAjB,OAAjByhG,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmByB,aACe,KAAjB,OAAjBzB,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmByB,YACH,OAAZ6xB,QAAY,IAAZA,OAAY,EAAZA,EAAcpyB,OACF,OAAZoyB,QAAY,IAAZA,OAAY,EAAZA,EAAcpyB,QAAyB,OAAjBlB,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmByB,YAI/C,GAFA6xB,EAAqB,SAAiB,OAAZA,QAAY,IAAZA,GAAAA,EAAc5xB,QAEpCo0B,EAAS,CAEX,IAAIr0B,GAA8B,OAAjBzB,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmByB,YAAa6xB,EAAapyB,OAC1Dr6F,MAAM46F,SAA8BljG,IAAfkjG,KACvBA,EAAa,GAEf,MAAMH,EAActB,EAAkBW,SAAStnD,QAC5C90C,GAAMA,EAAErH,KAASo2H,EAAap2H,KAQjC,OANAijG,EAAqB,IAChBH,EACHyB,aACAd,SAAUW,SAEZrB,EAAY,IAAIC,GAElB,EAEK8C,GAAqC,OAAjBhD,QAAiB,IAAjBA,GAAAA,EAAmB2E,OAC1B,OAAZ2uB,QAAY,IAAZA,GAAAA,EAAc3uB,QASlBxE,EAAqB,IAChBH,EACHyB,aACAd,SAAU,IAAIA,EAAU2yB,IAG9B,GAGIyC,EAAsBA,IACrBlyG,EACU,OAARq8E,QAAQ,IAARA,OAAQ,EAARA,EAAU7mD,QAAQ90C,GACvBA,EAAEjE,KAAKgG,cAAckD,SAASqa,EAAOvd,iBAFnB45F,EAehB81B,EACY,IAAlBn4B,EACI,IAAIk4B,KACJ,IACKA,OACC33B,EAAa63B,UAAY,CAAC,CAAE31H,KAAM,SAAUshG,IAAK,WAAc,IAGzE,OACE3F,EAAAA,GAAAA,KAAAW,GAAAA,SAAA,CAAAtwF,UACW,OAAR4zF,QAAQ,IAARA,OAAQ,EAARA,EAAUzjG,QAAS,IAAMi3D,IACxBsoC,EAAAA,GAAAA,MAAA,OACEnsC,UAAS,sBAAA5lC,OACU,OAAjB+1E,QAAiB,IAAjBA,GAAAA,EAAmB2E,MAAQ,mBAAqB,oBAAmB,KAAA16E,QAEnEqwE,GACkB,IAAlBuD,GACkB,OAAjBmC,QAAiB,IAAjBA,GAAAA,EAAmB8E,cAEhB,GADA,gBACE,KACJx4F,SAAA,EAEJ2vF,EAAAA,GAAAA,KAAC2C,GAAK,CACJ5B,YAAW,UAAA/yE,OACgB,kBAAzBimC,GAAM2tC,GACF,SACA3tC,GAAM2tC,IAEZd,YAAY,EACZ5/F,MAAO0mB,EACPo5E,aAvCYr/F,IACpB8/F,EAAU9/F,EAAEuU,OAAOhV,OACnB63H,EACU,OAAR90B,QAAQ,IAARA,OAAQ,EAARA,EAAU7mD,QAAQ90C,GAChBA,EAAEjE,KAAKgG,cAAckD,SAAS5L,EAAEuU,OAAOhV,MAAMmJ,iBAEhD,EAkCOupD,UAAU,wBAGM,OAAjBmmE,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBv5H,QAAS,GAC3Bw/F,EAAAA,GAAAA,KAAA,OACEphF,GAAG,kBACHg1C,UAAS,8KAAA5lC,OACU,OAAjB+1E,QAAiB,IAAjBA,GAAAA,EAAmB2E,MACf,GACA,sCAAqC,sBAAA16E,OAGrB,IAAlB4zE,EAAsB,mBAAqB,oBAAmB,sBAAA5zE,OAG5C,IAAlB4zE,GACkB,IAAlBA,GACkB,IAAlBA,GACkB,IAAlBA,EACI,wDACA,GAAE,sBAENvxF,SAEc,OAAjB0pH,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB/3H,KAAI,CAACsG,EAAG/H,KAC1By/F,EAAAA,GAAAA,KAACg4B,GAAI,CAEHz3H,MAAOA,EACPmhE,QAASp5D,EACT4kG,iBAAkBA,EAClBlJ,YAAaA,EACbvC,UAAWA,GALNn5F,EAAEq9F,KAAOplG,QAUpBy/F,EAAAA,GAAAA,KAAA,OAAKpsC,UAAU,qIAAoIvjD,UACjJ2vF,EAAAA,GAAAA,KAAA,OAAKpsC,UAAU,oFAAmFvjD,SAAC,2BAO1G,EAIP,IAAe6kC,EAAAA,EAAAA,MAAKgjF,IChTP+B,GAAsB,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MACtDC,GAAyB,KAChCC,GAA4B/7E,EAAAA,cAAoB,CACpDg8E,SAAU,CAAC,EACXC,YAAaJ,GACbK,cAAeJ,MAEX,SACJxlF,GAAQ,SACRD,IACE0lF,GAqBG,SAASI,GAAmB/P,EAAQgQ,GACzC,MAAM,SACJJ,IACEj5F,EAAAA,EAAAA,YAAWg5F,IACf,OAAO3P,GAAU4P,EAASI,IAAkBA,CAC9C,CC/BA,SAASx4H,GAAIqO,EAAU/O,GACrB,IAAIf,EAAQ,EACZ,OAAO69C,EAAAA,SAAep8C,IAAIqO,GAAUqI,GAAsB0lC,EAAAA,eAAqB1lC,GAASpX,EAAKoX,EAAOnY,KAAWmY,GACjH,CCLA,MAAM+hH,GAAkB,IA+BxB,SAASC,GAAc55G,EAAKoK,EAAKu7B,GAC/B,MAAMk0E,GAAc75G,EAAMoK,IAAQu7B,EAAMv7B,GAAO,IAC/C,OAAO1Q,KAAKqvD,MAAM8wD,EAAaF,IAAmBA,EACpD,CACA,SAASG,GAAiB/mE,EAavB94B,GAAK,IAbmB,IACzB7P,EAAG,IACHpK,EAAG,IACH2lC,EAAG,MACH65B,EAAK,eACLu6C,EAAc,QACdC,EAAO,SACPC,EAAQ,UACRnnE,EAAS,MACTn/C,EAAK,QACLumH,EAAO,SACPC,KACGp3H,GACJgwD,EACC,OAAoBmsC,EAAAA,GAAAA,KAAK,MAAO,CAC9BjlE,IAAKA,KACFl3B,EACHmqF,KAAM,cACNp6B,UAAWhb,KAAWgb,EAAW,GAAF5lC,OAAKitG,EAAQ,QAAQ,CAClD,CAAC,MAADjtG,OAAOgtG,IAAYA,EACnB,CAAC,GAADhtG,OAAIitG,EAAQ,kBAAkBF,EAC9B,CAAC,GAAD/sG,OAAIitG,EAAQ,iBAAiBF,GAAYD,IAE3CrmH,MAAO,CACLyQ,MAAO,GAAF8I,OAAK0sG,GAAc55G,EAAKoK,EAAKu7B,GAAI,QACnChyC,GAEL,gBAAiBqM,EACjB,gBAAiBoK,EACjB,gBAAiBu7B,EACjBp2C,SAAUwqH,GAA8B76B,EAAAA,GAAAA,KAAK,OAAQ,CACnDpsC,UAAW,kBACXvjD,SAAUiwE,IACPA,GAET,CACA,MAAM46C,GAA2B98E,EAAAA,YAAiB,CAAAkM,EAG/CvvB,KAAQ,IAHwC,QACjDogG,GAAU,KACP3nE,GACJlJ,EACC,MAAMzmD,EAAQ,CACZqnB,IAAK,EACLu7B,IAAK,IACLs0E,UAAU,EACVF,gBAAgB,EAChBC,SAAS,KACNtnE,GAGL,GADA3vD,EAAMo3H,SAAWV,GAAmB12H,EAAMo3H,SAAU,YAChDE,EACF,OAAOP,GAAkB/2H,EAAOk3B,GAElC,MAAM,IACJ7P,EAAG,IACHpK,EAAG,IACH2lC,EAAG,MACH65B,EAAK,eACLu6C,EAAc,QACdC,EAAO,SACPC,EAAQ,SACRE,EAAQ,QACRD,EAAO,UACPpnE,EAAS,SACTvjD,KACG+qH,GACDv3H,EACJ,OAAoBm8F,EAAAA,GAAAA,KAAK,MAAO,CAC9BjlE,IAAKA,KACFqgG,EACHxnE,UAAWhb,KAAWgb,EAAWqnE,GACjC5qH,SAAUA,EAAWrO,GAAIqO,GAAUqI,IAAsB27B,EAAAA,EAAAA,cAAa37B,EAAO,CAC3EyiH,SAAS,MACLP,GAAkB,CACtB1vG,MACApK,MACA2lC,MACA65B,QACAu6C,iBACAC,UACAC,WACAE,WACAD,WACCjgG,IACH,IAEJmgG,GAAY5tH,YAAc,cAC1B,yDC7HA,MAAM5N,GAAWjB,OAAOO,UAAUU,SAC5B27H,GAAgBj3H,MAAMpF,UAAUU,SAChC47H,GAAiBx7H,OAAOd,UAAUU,SAClC67H,GAAmC,qBAAXjwH,OAAyBA,OAAOtM,UAAUU,SAAW,IAAM,GACnF87H,GAAgB,uBAMtB,SAASC,GAAiBl+E,GAA2B,IAAtBm+E,EAAY74H,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,IAAAA,UAAA,GACzC,GAAW,MAAP06C,IAAuB,IAARA,IAAwB,IAARA,EAAe,MAAO,GAAKA,EAC9D,MAAMoyD,SAAgBpyD,EACtB,GAAe,WAAXoyD,EAAqB,OAR3B,SAAqBpyD,GACnB,OAAIA,IAAQA,EAAY,MACO,IAARA,GAAa,EAAIA,EAAM,EACtB,KAAO,GAAKA,CACtC,CAIkCo+E,CAAYp+E,GAC5C,GAAe,WAAXoyD,EAAqB,OAAO+rB,EAAe,IAAH1tG,OAAOuvB,EAAG,KAAMA,EAC5D,GAAe,aAAXoyD,EAAuB,MAAO,cAAgBpyD,EAAIl5C,MAAQ,aAAe,IAC7E,GAAe,WAAXsrG,EAAqB,OAAO4rB,GAAex7H,KAAKw9C,GAAKv9C,QAAQw7H,GAAe,cAChF,MAAMh6H,EAAM9B,GAASK,KAAKw9C,GAAK7yC,MAAM,GAAI,GACzC,MAAY,SAARlJ,EAAuBoJ,MAAM2yC,EAAI+L,WAAa,GAAK/L,EAAMA,EAAIkiB,YAAYliB,GACjE,UAAR/7C,GAAmB+7C,aAAen5C,MAAc,IAAMi3H,GAAct7H,KAAKw9C,GAAO,IACxE,WAAR/7C,EAAyB85H,GAAev7H,KAAKw9C,GAC1C,IACT,CACA,SAASq+E,GAAW16H,EAAOw6H,GACzB,IAAIh6H,EAAS+5H,GAAiBv6H,EAAOw6H,GACrC,OAAe,OAAXh6H,EAAwBA,EACrBsuC,KAAKC,UAAU/uC,GAAO,SAAUD,EAAKC,GAC1C,IAAIQ,EAAS+5H,GAAiBh7H,KAAKQ,GAAMy6H,GACzC,OAAe,OAAXh6H,EAAwBA,EACrBR,CACT,GAAG,EACL,CAEA,SAAS6yC,GAAQ7yC,GACf,OAAgB,MAATA,EAAgB,GAAK,GAAG8sB,OAAO9sB,EACxC,CAEA,IAAI26H,GACAC,GAAS,qBACbD,GAAsBvwH,OAAO4vC,YAC7B,MAAM6gF,WAAwB33H,MAC5B,kBAAO43H,CAAY35F,EAAS49B,GAC1B,MAAMx5D,EAAOw5D,EAAOqgB,OAASrgB,EAAOx5D,MAAQ,OAI5C,OAHIA,IAASw5D,EAAOx5D,OAAMw5D,EAASxhE,OAAOgO,OAAO,CAAC,EAAGwzD,EAAQ,CAC3Dx5D,UAEqB,kBAAZ47B,EAA6BA,EAAQriC,QAAQ87H,IAAQ,CAAChtC,EAAG7tF,IAAQ26H,GAAW37D,EAAOh/D,MACvE,oBAAZohC,EAA+BA,EAAQ49B,GAC3C59B,CACT,CACA,cAAO45F,CAAQ93H,GACb,OAAOA,GAAoB,oBAAbA,EAAIE,IACpB,CACAiK,WAAAA,CAAY4tH,EAAeh7H,EAAO2hD,EAAO1gD,EAAMg6H,GAC7CC,QACA37H,KAAKS,WAAQ,EACbT,KAAKgG,UAAO,EACZhG,KAAK0B,UAAO,EACZ1B,KAAKkgD,YAAS,EACdlgD,KAAKw/D,YAAS,EACdx/D,KAAKiyD,WAAQ,EACbjyD,KAAKo7H,IAAuB,QAC5Bp7H,KAAK4D,KAAO,kBACZ5D,KAAKS,MAAQA,EACbT,KAAKgG,KAAOo8C,EACZpiD,KAAK0B,KAAOA,EACZ1B,KAAKkgD,OAAS,GACdlgD,KAAKiyD,MAAQ,GACb3e,GAAQmoF,GAAer0H,SAAQ1D,IAC7B,GAAI43H,GAAgBE,QAAQ93H,GAAM,CAChC1D,KAAKkgD,OAAOv9C,QAAQe,EAAIw8C,QACxB,MAAM07E,EAAcl4H,EAAIuuD,MAAMlyD,OAAS2D,EAAIuuD,MAAQ,CAACvuD,GACpD1D,KAAKiyD,MAAMtvD,QAAQi5H,EACrB,MACE57H,KAAKkgD,OAAOv9C,KAAKe,EACnB,IAEF1D,KAAK4hC,QAAU5hC,KAAKkgD,OAAOngD,OAAS,EAAI,GAAHwtB,OAAMvtB,KAAKkgD,OAAOngD,OAAM,oBAAqBC,KAAKkgD,OAAO,IACzFw7E,GAAgB/3H,MAAM65D,mBAAmB75D,MAAM65D,kBAAkBx9D,KAAMs7H,GAC9E,EAGF,IAAIO,GAAQ,CACV1oF,QAAS,qBACT0S,SAAU,8BACVi2E,QAAS,0BACTC,QAAS,yBACTn3H,MAAO,yDACPo3H,SAAU,6DACVC,QAAS7oE,IAKH,IALI,KACRptD,EAAI,KACJtE,EAAI,MACJjB,EAAK,cACLy7H,GACD9oE,EACC,MAAM+oE,EAA2B,MAAjBD,GAAyBA,IAAkBz7H,EAAQ,0BAAH8sB,OAA8B4tG,GAAWe,GAAe,GAAK,OAAS,IACtI,MAAgB,UAATx6H,EAAmB,GAAA6rB,OAAGvnB,EAAI,gBAAAunB,OAAgB7rB,EAAI,yCAAA6rB,OAA4C4tG,GAAW16H,GAAO,GAAK,KAAO07H,EAAU,GAAA5uG,OAAGvnB,EAAI,kEAAAunB,OAAoE4tG,GAAW16H,GAAO,GAAK,KAAO07H,CAAO,GAGzPh4H,GAAS,CACXpE,OAAQ,+CACR0qB,IAAK,6CACLu7B,IAAK,4CACLiW,QAAS,+CACTl1C,MAAO,gCACPQ,IAAK,8BACL60G,KAAM,+BACNjwH,KAAM,mCACNkwH,UAAW,qCACXC,UAAW,uCAETp4H,GAAS,CACXumB,IAAK,kDACLu7B,IAAK,+CACLu2E,SAAU,oCACVC,SAAU,uCACVC,SAAU,oCACVC,SAAU,oCACVC,QAAS,8BAEP91G,GAAO,CACT4D,IAAK,0CACLu7B,IAAK,gDAEHgqB,GAAU,CACZ2U,QAAS,kCAEP/iF,GAAS,CACXg7H,UAAW,kDAETr8H,GAAQ,CACVkqB,IAAK,gDACLu7B,IAAK,6DACLjmD,OAAQ,qCAEN88H,GAAQ,CACVZ,QAASz8D,IACP,MAAM,KACJx5D,EAAI,MACJvF,EAAK,KACLq8H,GACEt9D,EACEu9D,EAAUD,EAAKv5E,MAAMxjD,OAC3B,GAAIzB,MAAMmJ,QAAQhH,GAAQ,CACxB,GAAIA,EAAMV,OAASg9H,EAAS,MAAO,GAAPxvG,OAAUvnB,EAAI,yDAAAunB,OAAwDwvG,EAAO,aAAAxvG,OAAY9sB,EAAMV,OAAM,iBAAAwtB,OAAiB4tG,GAAW16H,GAAO,GAAK,KACzK,GAAIA,EAAMV,OAASg9H,EAAS,MAAO,GAAPxvG,OAAUvnB,EAAI,0DAAAunB,OAAyDwvG,EAAO,aAAAxvG,OAAY9sB,EAAMV,OAAM,iBAAAwtB,OAAiB4tG,GAAW16H,GAAO,GAAK,IAC5K,CACA,OAAO66H,GAAgBC,YAAYM,GAAMI,QAASz8D,EAAO,GAGhDxhE,OAAOgO,OAAOhO,OAAOsH,OAAO,MAAO,CAC9Cu2H,SACA13H,UACAD,UACA2iB,QACAjlB,UACArB,SACAyvE,QAAO,GACP6sD,WAGF,MAAMG,GAAWn2H,GAAOA,GAAOA,EAAIo2H,gBAEnC,MAAMC,GACJ,kBAAOC,CAAYzkG,EAAM4kC,GACvB,IAAKA,EAAO1sC,OAAS0sC,EAAO8/D,UAAW,MAAM,IAAIn7H,UAAU,sEAC3D,IAAI,GACFqT,EAAE,KACFsb,EAAI,UACJwsG,GACE9/D,EACA+/D,EAAsB,oBAAP/nH,EAAoBA,EAAK,mBAAAowD,EAAAtjE,UAAArC,OAAIyhD,EAAM,IAAAljD,MAAAonE,GAAAtnB,EAAA,EAAAA,EAAAsnB,EAAAtnB,IAANoD,EAAMpD,GAAAh8C,UAAAg8C,GAAA,OAAKoD,EAAO8D,OAAM7kD,GAASA,IAAU6U,GAAG,EAC9F,OAAO,IAAI4nH,GAAUxkG,GAAM,CAAC8oB,EAAQ+tB,KAClC,IAAI+tD,EACJ,IAAIC,EAASF,KAAS77E,GAAU5wB,EAAOwsG,EACvC,OAA+D,OAAvDE,EAAoB,MAAVC,OAAiB,EAASA,EAAOhuD,IAAmB+tD,EAAU/tD,CAAM,GAE1F,CACA1hE,WAAAA,CAAY6qB,EAAM8kG,GAChBx9H,KAAKu6C,QAAK,EACVv6C,KAAK04B,KAAOA,EACZ14B,KAAK04B,KAAOA,EACZ14B,KAAKu6C,GAAKijF,CACZ,CACA7sG,OAAAA,CAAQrc,EAAMhF,GACZ,IAAIkyC,EAASxhD,KAAK04B,KAAKn3B,KAAI+4B,GAE3BA,EAAIx4B,SAAoB,MAAXwN,OAAkB,EAASA,EAAQ7O,MAAkB,MAAX6O,OAAkB,EAASA,EAAQmuH,OAAmB,MAAXnuH,OAAkB,EAASA,EAAQinB,WACjIg5C,EAASvvE,KAAKu6C,GAAGiH,EAAQltC,EAAMhF,GACnC,QAAezN,IAAX0tE,GAEJA,IAAWj7D,EACT,OAAOA,EAET,IAAK0oH,GAASztD,GAAS,MAAM,IAAIttE,UAAU,0CAC3C,OAAOstE,EAAO5+C,QAAQrhB,EACxB,EAGF,MAAMqqH,GACK,IADLA,GAEG,IAKT,MAAM+D,GACJ7vH,WAAAA,CAAYrN,GAAmB,IAAd8O,EAAOlN,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG,CAAC,EAQ1B,GAPApC,KAAKQ,SAAM,EACXR,KAAK29H,eAAY,EACjB39H,KAAK2kF,aAAU,EACf3kF,KAAK49H,eAAY,EACjB59H,KAAKgG,UAAO,EACZhG,KAAK+G,YAAS,EACd/G,KAAKuB,SAAM,EACQ,kBAARf,EAAkB,MAAM,IAAIyB,UAAU,8BAAgCzB,GAEjF,GADAR,KAAKQ,IAAMA,EAAI2L,OACH,KAAR3L,EAAY,MAAM,IAAIyB,UAAU,kCACpCjC,KAAK29H,UAAY39H,KAAKQ,IAAI,KAAOm5H,GACjC35H,KAAK2kF,QAAU3kF,KAAKQ,IAAI,KAAOm5H,GAC/B35H,KAAK49H,WAAa59H,KAAK29H,YAAc39H,KAAK2kF,QAC1C,IAAIolC,EAAS/pH,KAAK29H,UAAYhE,GAAmB35H,KAAK2kF,QAAUg1C,GAAiB,GACjF35H,KAAKgG,KAAOhG,KAAKQ,IAAIyJ,MAAM8/G,EAAOhqH,QAClCC,KAAK+G,OAAS/G,KAAKgG,OAAQe,EAAAA,GAAAA,QAAO/G,KAAKgG,MAAM,GAC7ChG,KAAKuB,IAAM+N,EAAQ/N,GACrB,CACAO,QAAAA,CAASrB,EAAOg9H,EAAQlnG,GACtB,IAAIt1B,EAASjB,KAAK29H,UAAYpnG,EAAUv2B,KAAK2kF,QAAUlkF,EAAQg9H,EAG/D,OAFIz9H,KAAK+G,SAAQ9F,EAASjB,KAAK+G,OAAO9F,GAAU,CAAC,IAC7CjB,KAAKuB,MAAKN,EAASjB,KAAKuB,IAAIN,IACzBA,CACT,CASA48H,IAAAA,CAAKp9H,EAAO6O,GACV,OAAOtP,KAAK8B,SAASrB,EAAkB,MAAX6O,OAAkB,EAASA,EAAQmuH,OAAmB,MAAXnuH,OAAkB,EAASA,EAAQinB,QAC5G,CACA5F,OAAAA,GACE,OAAO3wB,IACT,CACA89H,QAAAA,GACE,MAAO,CACLp8H,KAAM,MACNlB,IAAKR,KAAKQ,IAEd,CACAvB,QAAAA,GACE,MAAO,OAAPsuB,OAAcvtB,KAAKQ,IAAG,IACxB,CACA,YAAOikF,CAAMhkF,GACX,OAAOA,GAASA,EAAMs9H,UACxB,EAIFL,GAAUn/H,UAAUw/H,YAAa,EAEjC,MAAMC,GAAWv9H,GAAkB,MAATA,EAE1B,SAASw9H,GAAiB3gE,GACxB,SAASrX,EAAQ4D,EAMdq0E,EAAOznG,GAAM,IANE,MAChBh2B,EAAK,KACLuF,EAAO,GAAE,QACTsJ,EAAO,cACP4sH,EAAa,OACb3sD,GACD1lB,EACC,MAAM,KACJjmD,EAAI,KACJxC,EAAI,OACJo+D,EAAM,QACN59B,EAAO,WACPu8F,GACE7gE,EACJ,IAAI,OACFmgE,EAAM,QACNlnG,EAAO,WACP4tB,EAAaorB,EAAOutD,KAAK34E,WAAU,kBACnCi6E,EAAoB7uD,EAAOutD,KAAKsB,mBAC9B9uH,EACJ,SAASqhB,EAAQg3E,GACf,OAAO+1B,GAAUj5C,MAAMkjB,GAAQA,EAAK7lG,SAASrB,EAAOg9H,EAAQlnG,GAAWoxE,CACzE,CACA,SAAS02B,IAA4B,IAAhBC,EAASl8H,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG,CAAC,EAChC,IAAIm8H,EACJ,MAAMC,EAAaxgI,OAAOgO,OAAO,CAC/BvL,QACAy7H,gBACAr8C,MAAOtQ,EAAOutD,KAAKj9C,MACnB75E,KAAMs4H,EAAUt4H,MAAQA,EACxB82H,KAAMvtD,EAAOutD,MACZt9D,EAAQ8+D,EAAU9+D,QACrB,IAAK,MAAMh/D,KAAOxC,OAAOc,KAAK0/H,GAAaA,EAAWh+H,GAAOmwB,EAAQ6tG,EAAWh+H,IAChF,MAAMyhC,EAAQ,IAAIq5F,GAAgBA,GAAgBC,YAAY+C,EAAU18F,SAAWA,EAAS48F,GAAa/9H,EAAO+9H,EAAWx4H,KAAMs4H,EAAU58H,MAAQkC,EAA+D,OAAxD26H,EAAwBD,EAAUF,mBAA6BG,EAAwBH,GAEjP,OADAn8F,EAAMu9B,OAASg/D,EACRv8F,CACT,CACA,MAAMihB,EAAUiB,EAAa+5E,EAAQznG,EACrC,IAAIgoG,EAAM,CACRz4H,OACAy3H,SACA/7H,KAAMkC,EACNo0C,KAAM1oC,EAAQ0oC,KACdqmF,cACA1tG,UACArhB,UACA4sH,gBACA3sD,UAEF,MAAMmvD,EAAeC,IACfrD,GAAgBE,QAAQmD,GAAez7E,EAAQy7E,GAAwBA,EAA0CloG,EAAK,MAAjCysB,EAAQm7E,IAA8B,EAE3HO,EAAcl7H,IACd43H,GAAgBE,QAAQ93H,GAAMw/C,EAAQx/C,GAAUw6H,EAAMx6H,EAAI,EAGhE,GADmBy6H,GAAcH,GAASv9H,GAExC,OAAOi+H,GAAa,GAEtB,IAAIz9H,EACJ,IACE,IAAIiyC,EAEJ,GADAjyC,EAASG,EAAK9B,KAAKm/H,EAAKh+H,EAAOg+H,GACqC,oBAAlC,OAArBvrF,EAAUjyC,QAAkB,EAASiyC,EAAQtiB,MAAsB,CAC9E,GAAIthB,EAAQuvH,KACV,MAAM,IAAIl7H,MAAM,6BAAA4pB,OAA6BkxG,EAAI/8H,KAAI,sHAEvD,OAAO8uB,QAAQG,QAAQ1vB,GAAQ2vB,KAAK8tG,EAAcE,EACpD,CACF,CAAE,MAAOl7H,GAEP,YADAk7H,EAAYl7H,EAEd,CACAg7H,EAAaz9H,EACf,CAEA,OADAglD,EAAS64E,QAAUxhE,EACZrX,CACT,CAEA,SAAS84E,GAAMxvD,EAAQvpE,EAAMvF,GAAwB,IAC/Cg9H,EAAQuB,EAAUC,EADY1oG,EAAOn0B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG3B,EAI5C,OAAKuF,IAKLoB,EAAAA,GAAAA,SAAQpB,GAAM,CAACk5H,EAAOx3H,EAAWD,KAC/B,IAAIvB,EAAOwB,EAAYw3H,EAAMj1H,MAAM,EAAGi1H,EAAMn/H,OAAS,GAAKm/H,EAMtDC,EAA0B,WAL9B5vD,EAASA,EAAO5+C,QAAQ,CACtB4F,UACAknG,SACAh9H,WAEmBiB,KACjB8F,EAAMC,EAAUsuD,SAAS7vD,EAAM,IAAM,EACzC,GAAIqpE,EAAO6vD,WAAaD,EAAS,CAC/B,GAAIA,IAAY13H,EAAS,MAAM,IAAI9D,MAAM,uEAAD4pB,OAAwE0xG,EAAa,wDAAA1xG,OAAuD0xG,EAAa,SACjM,GAAIx+H,GAAS+G,GAAO/G,EAAMV,OACxB,MAAM,IAAI4D,MAAM,oDAAA4pB,OAAoD2xG,EAAK,mBAAA3xG,OAAkBvnB,EAAI,mDAEjGy3H,EAASh9H,EACTA,EAAQA,GAASA,EAAM+G,GACvB+nE,EAAS4vD,EAAU5vD,EAAOutD,KAAKv5E,MAAM/7C,GAAO+nE,EAAO6vD,SACrD,CAMA,IAAK33H,EAAS,CACZ,IAAK8nE,EAAO5sB,SAAW4sB,EAAO5sB,OAAOz8C,GAAO,MAAM,IAAIvC,MAAM,yCAAA4pB,OAAyCvnB,EAAI,qBAAAunB,OAAsB0xG,EAAa,uBAAA1xG,OAAsBgiD,EAAO7tE,KAAI,OAC7K+7H,EAASh9H,EACTA,EAAQA,GAASA,EAAMyF,GACvBqpE,EAASA,EAAO5sB,OAAOz8C,EACzB,CACA84H,EAAW94H,EACX+4H,EAAgBv3H,EAAY,IAAMw3H,EAAQ,IAAM,IAAMA,CAAK,IAEtD,CACL3vD,SACAkuD,SACA4B,WAAYL,IAxCI,CAChBvB,SACA4B,WAAYr5H,EACZupE,SAuCJ,CAKA,MAAM+vD,WAAqBn3H,IACzB21H,QAAAA,GACE,MAAMngE,EAAc,GACpB,IAAK,MAAMgqC,KAAQ3nG,KAAKwhD,SACtBmc,EAAYh7D,KAAK+6H,GAAUj5C,MAAMkjB,GAAQA,EAAKm2B,WAAan2B,GAE7D,OAAOhqC,CACT,CACA4hE,UAAAA,CAAW5uG,GACT,IAAI1vB,EAAS,GACb,IAAK,MAAM0mG,KAAQ3nG,KAAKwhD,SACtBvgD,EAAO0B,KAAKguB,EAAQg3E,IAEtB,OAAO1mG,CACT,CACAu+H,KAAAA,GACE,OAAO,IAAIF,GAAat/H,KAAKwhD,SAC/B,CACAoZ,KAAAA,CAAM6kE,EAAUC,GACd,MAAMjpG,EAAOz2B,KAAKw/H,QAGlB,OAFAC,EAASr4H,SAAQ3G,GAASg2B,EAAKluB,IAAI9H,KACnCi/H,EAAYt4H,SAAQ3G,GAASg2B,EAAKna,OAAO7b,KAClCg2B,CACT,EAIF,SAAS+oG,GAAM11F,GAAuB,IAGhCyS,EAHcojF,EAAIv9H,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG,IAAI3C,IAC7B,GAAIu9H,GAASlzF,KAASA,GAAsB,kBAARA,EAAkB,OAAOA,EAC7D,GAAI61F,EAAKp9H,IAAIunC,GAAM,OAAO61F,EAAKn9H,IAAIsnC,GAEnC,GAAIA,aAAe1pB,KAEjBm8B,EAAO,IAAIn8B,KAAK0pB,EAAI+e,WACpB82E,EAAKx/H,IAAI2pC,EAAKyS,QACT,GAAIzS,aAAezqC,OAExBk9C,EAAO,IAAIl9C,OAAOyqC,GAClB61F,EAAKx/H,IAAI2pC,EAAKyS,QACT,GAAIj+C,MAAMmJ,QAAQqiC,GAAM,CAE7ByS,EAAO,IAAIj+C,MAAMwrC,EAAI/pC,QACrB4/H,EAAKx/H,IAAI2pC,EAAKyS,GACd,IAAK,IAAInF,EAAI,EAAGA,EAAItN,EAAI/pC,OAAQq3C,IAAKmF,EAAKnF,GAAKooF,GAAM11F,EAAIsN,GAAIuoF,EAC/D,MAAO,GAAI71F,aAAerqC,IAAK,CAE7B88C,EAAO,IAAI98C,IACXkgI,EAAKx/H,IAAI2pC,EAAKyS,GACd,IAAK,MAAO3vC,EAAG5D,KAAM8gC,EAAIjqC,UAAW08C,EAAKp8C,IAAIyM,EAAG4yH,GAAMx2H,EAAG22H,GAC3D,MAAO,GAAI71F,aAAe3hC,IAAK,CAE7Bo0C,EAAO,IAAIp0C,IACXw3H,EAAKx/H,IAAI2pC,EAAKyS,GACd,IAAK,MAAMvzC,KAAK8gC,EAAKyS,EAAKh0C,IAAIi3H,GAAMx2H,EAAG22H,GACzC,KAAO,MAAI71F,aAAe9rC,QAMxB,MAAM2F,MAAM,mBAAD4pB,OAAoBuc,IAJ/ByS,EAAO,CAAC,EACRojF,EAAKx/H,IAAI2pC,EAAKyS,GACd,IAAK,MAAO3vC,EAAG5D,KAAMhL,OAAO6B,QAAQiqC,GAAMyS,EAAK3vC,GAAK4yH,GAAMx2H,EAAG22H,EAG/D,CACA,OAAOpjF,CACT,CAIA,MAAMqjF,GACJ/xH,WAAAA,CAAYyB,GACVtP,KAAK0B,UAAO,EACZ1B,KAAKq/B,KAAO,GACZr/B,KAAK6/H,WAAQ,EACb7/H,KAAK8/H,gBAAa,EAClB9/H,KAAK+/H,WAAa,GAClB//H,KAAKggI,aAAU,EACfhgI,KAAKigI,cAAgB,CAAC,EACtBjgI,KAAKkgI,WAAa,IAAIZ,GACtBt/H,KAAKmgI,WAAa,IAAIb,GACtBt/H,KAAKogI,eAAiBpiI,OAAOsH,OAAO,MACpCtF,KAAKqgI,gBAAa,EAClBrgI,KAAK88H,UAAO,EACZ98H,KAAK6/H,MAAQ,GACb7/H,KAAK8/H,WAAa,GAClB9/H,KAAKsgI,cAAa,KAChBtgI,KAAKugI,UAAU1E,GAAMI,QAAQ,IAE/Bj8H,KAAK0B,KAAO4N,EAAQ5N,KACpB1B,KAAKqgI,WAAa/wH,EAAQ+tH,MAC1Br9H,KAAK88H,KAAO9+H,OAAOgO,OAAO,CACxBw0H,OAAO,EACPC,QAAQ,EACRt8E,YAAY,EACZu8E,WAAW,EACXtC,mBAAmB,EACnBuC,UAAU,EACVC,UAAU,EACVC,QAAQ,GACI,MAAXvxH,OAAkB,EAASA,EAAQwtH,MACtC98H,KAAKsgI,cAAazmF,IAChBA,EAAEinF,aAAa,GAEnB,CAGA,SAAI/vB,GACF,OAAO/wG,KAAK0B,IACd,CACA89H,KAAAA,CAAM1C,GACJ,GAAI98H,KAAKggI,QAEP,OADIlD,GAAM9+H,OAAOgO,OAAOhM,KAAK88H,KAAMA,GAC5B98H,KAKT,MAAMy2B,EAAOz4B,OAAOsH,OAAOtH,OAAO+5D,eAAe/3D,OAgBjD,OAbAy2B,EAAK/0B,KAAO1B,KAAK0B,KACjB+0B,EAAK4pG,WAAargI,KAAKqgI,WACvB5pG,EAAKypG,WAAalgI,KAAKkgI,WAAWV,QAClC/oG,EAAK0pG,WAAangI,KAAKmgI,WAAWX,QAClC/oG,EAAKwpG,cAAgBjiI,OAAOgO,OAAO,CAAC,EAAGhM,KAAKigI,eAC5CxpG,EAAK2pG,eAAiBpiI,OAAOgO,OAAO,CAAC,EAAGhM,KAAKogI,gBAG7C3pG,EAAK4I,KAAO,IAAIr/B,KAAKq/B,MACrB5I,EAAKspG,WAAa,IAAI//H,KAAK+/H,YAC3BtpG,EAAKopG,MAAQ,IAAI7/H,KAAK6/H,OACtBppG,EAAKqpG,WAAa,IAAI9/H,KAAK8/H,YAC3BrpG,EAAKqmG,KAAO0C,GAAMxhI,OAAOgO,OAAO,CAAC,EAAGhM,KAAK88H,KAAMA,IACxCrmG,CACT,CACAopD,KAAAA,CAAMA,GACJ,IAAIppD,EAAOz2B,KAAKw/H,QAEhB,OADA/oG,EAAKqmG,KAAKj9C,MAAQA,EACXppD,CACT,CACA1hB,IAAAA,GACE,GAAoB,IAAhB3S,UAAKrC,OAAc,OAAOC,KAAK88H,KAAK/nH,KACxC,IAAI0hB,EAAOz2B,KAAKw/H,QAEhB,OADA/oG,EAAKqmG,KAAK/nH,KAAO/W,OAAOgO,OAAOyqB,EAAKqmG,KAAK/nH,MAAQ,CAAC,EAAC3S,UAAArC,QAAA,OAAA8B,EAAAO,UAAA,IAC5Cq0B,CACT,CACA6pG,YAAAA,CAAa/lF,GACX,IAAI8nE,EAASriH,KAAKggI,QAClBhgI,KAAKggI,SAAU,EACf,IAAI/+H,EAASs5C,EAAGv6C,MAEhB,OADAA,KAAKggI,QAAU3d,EACRphH,CACT,CACAssB,MAAAA,CAAOgiD,GACL,IAAKA,GAAUA,IAAWvvE,KAAM,OAAOA,KACvC,GAAIuvE,EAAO7tE,OAAS1B,KAAK0B,MAAsB,UAAd1B,KAAK0B,KAAkB,MAAM,IAAIO,UAAU,sDAADsrB,OAAyDvtB,KAAK0B,KAAI,SAAA6rB,OAAQgiD,EAAO7tE,OAC5J,IAAI4S,EAAOtU,KACP+gI,EAAWxxD,EAAOiwD,QACtB,MAAMwB,EAAahjI,OAAOgO,OAAO,CAAC,EAAGsI,EAAKwoH,KAAMiE,EAASjE,MAqBzD,OApBAiE,EAASjE,KAAOkE,EAChBD,EAASd,cAAgBjiI,OAAOgO,OAAO,CAAC,EAAGsI,EAAK2rH,cAAec,EAASd,eAIxEc,EAASb,WAAa5rH,EAAK4rH,WAAWtlE,MAAM2U,EAAO2wD,WAAY3wD,EAAO4wD,YACtEY,EAASZ,WAAa7rH,EAAK6rH,WAAWvlE,MAAM2U,EAAO4wD,WAAY5wD,EAAO2wD,YAGtEa,EAASlB,MAAQvrH,EAAKurH,MACtBkB,EAASX,eAAiB9rH,EAAK8rH,eAI/BW,EAAST,cAAa7pG,IACpB84C,EAAOswD,MAAMz4H,SAAQmzC,IACnB9jB,EAAKr1B,KAAKm5C,EAAGukF,QAAQ,GACrB,IAEJiC,EAASjB,WAAa,IAAIxrH,EAAKwrH,cAAeiB,EAASjB,YAChDiB,CACT,CACAE,MAAAA,CAAOj4H,GACL,OAAS,MAALA,KACEhJ,KAAK88H,KAAK6D,UAAkB,OAAN33H,OACtBhJ,KAAK88H,KAAK8D,eAAkB/+H,IAANmH,GAGrBhJ,KAAKqgI,WAAWr3H,EACzB,CACA2nB,OAAAA,CAAQrhB,GACN,IAAIigE,EAASvvE,KACb,GAAIuvE,EAAOwwD,WAAWhgI,OAAQ,CAC5B,IAAIggI,EAAaxwD,EAAOwwD,WACxBxwD,EAASA,EAAOiwD,QAChBjwD,EAAOwwD,WAAa,GACpBxwD,EAASwwD,EAAW54H,QAAO,CAAC+5H,EAAYrgD,IAAcA,EAAUlwD,QAAQuwG,EAAY5xH,IAAUigE,GAC9FA,EAASA,EAAO5+C,QAAQrhB,EAC1B,CACA,OAAOigE,CACT,CACA4xD,cAAAA,CAAe7xH,GACb,IAAI8xH,EAAiBC,EAAqBC,EAAoBC,EAC9D,OAAOvjI,OAAOgO,OAAO,CAAC,EAAGsD,EAAS,CAChC0oC,KAAM1oC,EAAQ0oC,MAAQ,GACtByoF,OAA8C,OAArCW,EAAkB9xH,EAAQmxH,QAAkBW,EAAkBphI,KAAK88H,KAAK2D,OACjFt8E,WAA0D,OAA7Ck9E,EAAsB/xH,EAAQ60C,YAAsBk9E,EAAsBrhI,KAAK88H,KAAK34E,WACjGu8E,UAAuD,OAA3CY,EAAqBhyH,EAAQoxH,WAAqBY,EAAqBthI,KAAK88H,KAAK4D,UAC7FtC,kBAA0E,OAAtDmD,EAAwBjyH,EAAQ8uH,mBAA6BmD,EAAwBvhI,KAAK88H,KAAKsB,mBAEvH,CAMAP,IAAAA,CAAKp9H,GAAqB,IAAd6O,EAAOlN,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG,CAAC,EACjBo/H,EAAiBxhI,KAAK2wB,QAAQ3yB,OAAOgO,OAAO,CAC9CvL,SACC6O,IACCmyH,EAAsC,uBAAnBnyH,EAAQoyH,OAC3BzgI,EAASugI,EAAeG,MAAMlhI,EAAO6O,GACzC,IAAuB,IAAnBA,EAAQoyH,SAAqBF,EAAeP,OAAOhgI,GAAS,CAC9D,GAAIwgI,GAAoBzD,GAAS/8H,GAC/B,OAAOA,EAET,IAAI2gI,EAAiBzG,GAAW16H,GAC5BohI,EAAkB1G,GAAWl6H,GACjC,MAAM,IAAIgB,UAAU,gBAAAsrB,OAAgBje,EAAQtJ,MAAQ,QAAO,sEAAAunB,OAAuEi0G,EAAe9/H,KAAI,WAAY,oBAAH6rB,OAAuBq0G,EAAc,QAASC,IAAoBD,EAAiB,mBAAHr0G,OAAsBs0G,GAAoB,IAC1R,CACA,OAAO5gI,CACT,CACA0gI,KAAAA,CAAM9+D,EAAUvzD,GACd,IAAI7O,OAAqBoB,IAAbghE,EAAyBA,EAAW7iE,KAAK8/H,WAAW34H,QAAO,CAAC07G,EAAWtoE,IAAOA,EAAGj7C,KAAKU,KAAM6iH,EAAWhgD,EAAU7iE,OAAO6iE,GAIpI,YAHchhE,IAAVpB,IACFA,EAAQT,KAAK8hI,WAAWxyH,IAEnB7O,CACT,CACAshI,SAAAA,CAAUx9D,GAAmC,IAA3Bj1D,EAAOlN,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAG87H,EAAK97H,UAAArC,OAAA,EAAAqC,UAAA,QAAAP,EAAE40B,EAAIr0B,UAAArC,OAAA,EAAAqC,UAAA,QAAAP,GACrC,KACFmE,EAAI,cACJk2H,EAAgB33D,EAAM,OACtBk8D,EAASzgI,KAAK88H,KAAK2D,QACjBnxH,EACA7O,EAAQ8jE,EACPk8D,IACHhgI,EAAQT,KAAK2hI,MAAMlhI,EAAOzC,OAAOgO,OAAO,CACtC01H,QAAQ,GACPpyH,KAEL,IAAI0yH,EAAe,GACnB,IAAK,IAAI5gI,KAAQpD,OAAOwjD,OAAOxhD,KAAKigI,eAC9B7+H,GAAM4gI,EAAar/H,KAAKvB,GAE9BpB,KAAKiiI,SAAS,CACZj8H,OACAvF,QACAy7H,gBACA5sH,UACAuwH,MAAOmC,GACN9D,GAAOgE,IAER,GAAIA,EAAcniI,OAChB,OAAO02B,EAAKyrG,EAAezhI,GAE7BT,KAAKiiI,SAAS,CACZj8H,OACAvF,QACAy7H,gBACA5sH,UACAuwH,MAAO7/H,KAAK6/H,OACX3B,EAAOznG,EAAK,GAEnB,CAMAwrG,QAAAA,CAASE,EAAYjE,EAAOznG,GAC1B,IAAI2rG,GAAQ,GACR,MACFvC,EAAK,MACLp/H,EAAK,cACLy7H,EAAa,KACbl2H,EAAI,QACJsJ,GACE6yH,EACAE,EAAYhqF,IACV+pF,IACJA,GAAQ,EACRlE,EAAM7lF,EAAK53C,GAAM,EAEf6hI,EAAWjqF,IACT+pF,IACJA,GAAQ,EACR3rG,EAAK4hB,EAAK53C,GAAM,EAEd4yC,EAAQwsF,EAAM9/H,OACdwiI,EAAe,GACnB,IAAKlvF,EAAO,OAAOivF,EAAS,IAC5B,IAAIngI,EAAO,CACT1B,QACAy7H,gBACAl2H,OACAsJ,UACAigE,OAAQvvE,MAEV,IAAK,IAAIo3C,EAAI,EAAGA,EAAIyoF,EAAM9/H,OAAQq3C,IAAK,EAErCh2C,EADay+H,EAAMzoF,IACdj1C,EAAMkgI,GAAW,SAAuB3+H,GACvCA,IACFpF,MAAMmJ,QAAQ/D,GAAO6+H,EAAa5/H,QAAQe,GAAO6+H,EAAa5/H,KAAKe,MAE/D2vC,GAAS,GACbivF,EAASC,EAEb,GACF,CACF,CACAC,YAAAA,CAAYr4E,GAOT,IAPU,IACX3pD,EAAG,MACHV,EAAK,OACL29H,EAAM,WACN4B,EAAU,eACVoD,EAAc,QACdnzH,GACD66C,EACC,MAAMv9C,EAAW,MAAPpM,EAAcA,EAAMV,EAC9B,GAAS,MAAL8M,EACF,MAAM3K,UAAU,wDAElB,MAAMygI,EAAuB,kBAAN91H,EACvB,IAAInM,EAAQg9H,EAAO7wH,GACnB,MAAM+1H,EAAc3kI,OAAOgO,OAAO,CAAC,EAAGsD,EAAS,CAI7CmxH,QAAQ,EACRhD,SACAh9H,QACAy7H,cAAeuG,EAAe71H,GAG9BpM,SAAKqB,EAEL,CAAC6gI,EAAU,QAAU,OAAQ91H,EAC7B5G,KAAM08H,GAAW91H,EAAEE,SAAS,KAAO,GAAHygB,OAAM8xG,GAAc,GAAE,KAAA9xG,OAAI9sB,EAAQmM,EAAI,IAAH2gB,OAAO3gB,EAAC,KAAG,MAAOyyH,EAAa,GAAH9xG,OAAM8xG,EAAU,KAAM,IAAM7+H,IAE7H,MAAO,CAAC6tF,EAAG6vC,EAAOznG,IAASz2B,KAAK2wB,QAAQgyG,GAAaZ,UAAUthI,EAAOkiI,EAAazE,EAAOznG,EAC5F,CACAwvB,QAAAA,CAASxlD,EAAO6O,GACd,IAAIszH,EACJ,IAAIrzD,EAASvvE,KAAK2wB,QAAQ3yB,OAAOgO,OAAO,CAAC,EAAGsD,EAAS,CACnD7O,WAEE29H,EAAuG,OAAlFwE,EAAoC,MAAXtzH,OAAkB,EAASA,EAAQ8uH,mBAA6BwE,EAAyBrzD,EAAOutD,KAAKsB,kBACvJ,OAAO,IAAI5tG,SAAQ,CAACG,EAASmqB,IAAWy0B,EAAOwyD,UAAUthI,EAAO6O,GAAS,CAAC2yB,EAAO4iC,KAC3Ey2D,GAAgBE,QAAQv5F,KAAQA,EAAMxhC,MAAQokE,GAClD/pB,EAAO7Y,EAAM,IACZ,CAACie,EAAQ2iF,KACN3iF,EAAOngD,OAAQ+6C,EAAO,IAAIwgF,GAAgBp7E,EAAQ2iF,OAAWhhI,OAAWA,EAAWu8H,IAAyBztG,EAAQkyG,EAAU,KAEtI,CACAC,YAAAA,CAAariI,EAAO6O,GAClB,IAAIyzH,EACJ,IAGI9hI,EAHAsuE,EAASvvE,KAAK2wB,QAAQ3yB,OAAOgO,OAAO,CAAC,EAAGsD,EAAS,CACnD7O,WAGE29H,EAAuG,OAAlF2E,EAAoC,MAAXzzH,OAAkB,EAASA,EAAQ8uH,mBAA6B2E,EAAyBxzD,EAAOutD,KAAKsB,kBAUvJ,OATA7uD,EAAOwyD,UAAUthI,EAAOzC,OAAOgO,OAAO,CAAC,EAAGsD,EAAS,CACjDuvH,MAAM,KACJ,CAAC58F,EAAO4iC,KAEV,MADIy2D,GAAgBE,QAAQv5F,KAAQA,EAAMxhC,MAAQokE,GAC5C5iC,CAAK,IACV,CAACie,EAAQ2iF,KACV,GAAI3iF,EAAOngD,OAAQ,MAAM,IAAIu7H,GAAgBp7E,EAAQz/C,OAAOoB,OAAWA,EAAWu8H,GAClFn9H,EAAS4hI,CAAS,IAEb5hI,CACT,CACAg/C,OAAAA,CAAQx/C,EAAO6O,GACb,OAAOtP,KAAKimD,SAASxlD,EAAO6O,GAASshB,MAAK,KAAM,IAAMltB,IACpD,GAAI43H,GAAgBE,QAAQ93H,GAAM,OAAO,EACzC,MAAMA,CAAG,GAEb,CACAs/H,WAAAA,CAAYviI,EAAO6O,GACjB,IAEE,OADAtP,KAAK8iI,aAAariI,EAAO6O,IAClB,CACT,CAAE,MAAO5L,GACP,GAAI43H,GAAgBE,QAAQ93H,GAAM,OAAO,EACzC,MAAMA,CACR,CACF,CACAu/H,WAAAA,CAAY3zH,GACV,IAAIZ,EAAe1O,KAAK88H,KAAK3pF,QAC7B,OAAoB,MAAhBzkC,EACKA,EAEsB,oBAAjBA,EAA8BA,EAAapP,KAAKU,KAAMsP,GAAWkwH,GAAM9wH,EACvF,CACAozH,UAAAA,CAAWxyH,GAIT,OADatP,KAAK2wB,QAAQrhB,GAAW,CAAC,GACxB2zH,YAAY3zH,EAC5B,CACA6jC,QAAQ+vF,GACN,GAAyB,IAArB9gI,UAAUrC,OACZ,OAAOC,KAAKijI,cAKd,OAHWjjI,KAAKw/H,MAAM,CACpBrsF,QAAS+vF,GAGb,CACAzC,MAAAA,GAAwB,IAAjB0C,IAAQ/gI,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,KAAAA,UAAA,GACb,OAAOpC,KAAKw/H,MAAM,CAChBiB,OAAQ0C,GAEZ,CACAC,WAAAA,CAAYzC,EAAU/+F,GACpB,MAAMnL,EAAOz2B,KAAKw/H,MAAM,CACtBmB,aASF,OAPAlqG,EAAKwpG,cAAcU,SAAW1C,GAAiB,CAC7Cr8F,UACAh+B,KAAM,WACNxC,IAAAA,CAAKX,GACH,OAAiB,OAAVA,GAAiBT,KAAKuvE,OAAOutD,KAAK6D,QAC3C,IAEKlqG,CACT,CACA4sG,WAAAA,CAAYzC,EAAUh/F,GACpB,MAAMnL,EAAOz2B,KAAKw/H,MAAM,CACtBoB,aASF,OAPAnqG,EAAKwpG,cAAcoD,YAAcpF,GAAiB,CAChDr8F,UACAh+B,KAAM,cACNxC,IAAAA,CAAKX,GACH,YAAiBoB,IAAVpB,GAAsBT,KAAKuvE,OAAOutD,KAAK8D,QAChD,IAEKnqG,CACT,CACAmqG,QAAAA,GACE,OAAO5gI,KAAKqjI,aAAY,EAC1B,CACAvH,OAAAA,GAAiC,IAAzBl6F,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAGy5H,GAAMC,QACtB,OAAO97H,KAAKqjI,aAAY,EAAOzhG,EACjC,CACA++F,QAAAA,GACE,OAAO3gI,KAAKojI,aAAY,EAC1B,CACAtC,WAAAA,GAAqC,IAAzBl/F,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAGy5H,GAAME,QAC1B,OAAO/7H,KAAKojI,aAAY,EAAOxhG,EACjC,CACAikB,QAAAA,GAAmC,IAA1BjkB,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAGy5H,GAAMh2E,SACvB,OAAO7lD,KAAKw/H,QAAQc,cAAa7pG,GAAQA,EAAKqqG,YAAYl/F,GAASk6F,QAAQl6F,IAC7E,CACA0hG,WAAAA,GACE,OAAOtjI,KAAKw/H,QAAQc,cAAa7pG,GAAQA,EAAKkqG,WAAWC,YAC3D,CACApwC,SAAAA,CAAUj2C,GACR,IAAI9jB,EAAOz2B,KAAKw/H,QAEhB,OADA/oG,EAAKqpG,WAAWn9H,KAAK43C,GACd9jB,CACT,CAgBAr1B,IAAAA,GACE,IAAIguE,EAsBJ,GAnBIA,EAFgB,IAAhBhtE,UAAKrC,OACgB,oBAAnBqC,UAAArC,QAAA,OAAA8B,EAAAO,UAAA,IACK,CACLhB,KAAIgB,UAAArC,QAAA,OAAA8B,EAAAO,UAAA,IAGFA,UAAArC,QAAA,OAAA8B,EAAAO,UAAA,GAEmB,IAAhBA,UAAKrC,OACP,CACL6D,KAAIxB,UAAArC,QAAA,OAAA8B,EAAAO,UAAA,GACJhB,KAAIgB,UAAArC,QAAA,OAAA8B,EAAAO,UAAA,IAGC,CACLwB,KAAIxB,UAAArC,QAAA,OAAA8B,EAAAO,UAAA,GACJw/B,QAAOx/B,UAAArC,QAAA,OAAA8B,EAAAO,UAAA,GACPhB,KAAIgB,UAAArC,QAAA,OAAA8B,EAAAO,UAAA,SAGaP,IAAjButE,EAAKxtC,UAAuBwtC,EAAKxtC,QAAUi6F,GAAM1oF,SAC5B,oBAAdi8B,EAAKhuE,KAAqB,MAAM,IAAIa,UAAU,mCACzD,IAAIw0B,EAAOz2B,KAAKw/H,QACZv5E,EAAWg4E,GAAiB7uD,GAC5Bm0D,EAAcn0D,EAAKo0D,WAAap0D,EAAKxrE,OAA2C,IAAnC6yB,EAAK2pG,eAAehxD,EAAKxrE,MAC1E,GAAIwrE,EAAKo0D,YACFp0D,EAAKxrE,KAAM,MAAM,IAAI3B,UAAU,qEAWtC,OATImtE,EAAKxrE,OAAM6yB,EAAK2pG,eAAehxD,EAAKxrE,QAAUwrE,EAAKo0D,WACvD/sG,EAAKopG,MAAQppG,EAAKopG,MAAMljF,QAAOpC,IAC7B,GAAIA,EAAGukF,QAAQl7H,OAASwrE,EAAKxrE,KAAM,CACjC,GAAI2/H,EAAa,OAAO,EACxB,GAAIhpF,EAAGukF,QAAQ19H,OAAS6kD,EAAS64E,QAAQ19H,KAAM,OAAO,CACxD,CACA,OAAO,CAAI,IAEbq1B,EAAKopG,MAAMl9H,KAAKsjD,GACTxvB,CACT,CACAgtG,IAAAA,CAAK3kI,EAAMwQ,GACJhR,MAAMmJ,QAAQ3I,IAAyB,kBAATA,IACjCwQ,EAAUxQ,EACVA,EAAO,KAET,IAAI23B,EAAOz2B,KAAKw/H,QACZngG,EAAOiU,GAAQx0C,GAAMyC,KAAIf,GAAO,IAAIk9H,GAAUl9H,KAMlD,OALA6+B,EAAKj4B,SAAQs8H,IAEPA,EAAI9F,WAAWnnG,EAAK4I,KAAK18B,KAAK+gI,EAAIljI,IAAI,IAE5Ci2B,EAAKspG,WAAWp9H,KAAwB,oBAAZ2M,EAAyB,IAAI4tH,GAAU79F,EAAM/vB,GAAW4tH,GAAUC,YAAY99F,EAAM/vB,IACzGmnB,CACT,CACA8pG,SAAAA,CAAU3+F,GACR,IAAInL,EAAOz2B,KAAKw/H,QAchB,OAbA/oG,EAAKwpG,cAAcM,UAAYtC,GAAiB,CAC9Cr8F,UACAh+B,KAAM,YACNu6H,YAAY,EACZ/8H,IAAAA,CAAKX,GACH,QAAKT,KAAKuvE,OAAO8wD,WAAW5/H,IAAeT,KAAKq+H,YAAY,CAC1D7+D,OAAQ,CACN99D,KAAM1B,KAAKuvE,OAAO7tE,OAIxB,IAEK+0B,CACT,CACA7xB,KAAAA,CAAM++H,GAA8B,IAAvB/hG,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAGy5H,GAAMj3H,MACvB6xB,EAAOz2B,KAAKw/H,QAoBhB,OAnBAmE,EAAMv8H,SAAQ01C,IACZrmB,EAAKypG,WAAW33H,IAAIu0C,GACpBrmB,EAAK0pG,WAAW7jH,OAAOwgC,EAAI,IAE7BrmB,EAAKwpG,cAAc2D,UAAY3F,GAAiB,CAC9Cr8F,UACAh+B,KAAM,QACNu6H,YAAY,EACZ/8H,IAAAA,CAAKX,GACH,IAAIojI,EAAS7jI,KAAKuvE,OAAO2wD,WACrB4D,EAAWD,EAAOtE,WAAWv/H,KAAK2wB,SACtC,QAAOmzG,EAASh3H,SAASrM,IAAgBT,KAAKq+H,YAAY,CACxD7+D,OAAQ,CACNhe,OAAQljD,MAAM05C,KAAK6rF,GAAQ58H,KAAK,MAChC68H,aAGN,IAEKrtG,CACT,CACAulG,QAAAA,CAAS2H,GAAiC,IAA1B/hG,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAGy5H,GAAMG,SAC1BvlG,EAAOz2B,KAAKw/H,QAoBhB,OAnBAmE,EAAMv8H,SAAQ01C,IACZrmB,EAAK0pG,WAAW53H,IAAIu0C,GACpBrmB,EAAKypG,WAAW5jH,OAAOwgC,EAAI,IAE7BrmB,EAAKwpG,cAAc8D,UAAY9F,GAAiB,CAC9Cr8F,UACAh+B,KAAM,WACNxC,IAAAA,CAAKX,GACH,IAAIujI,EAAWhkI,KAAKuvE,OAAO4wD,WACvB2D,EAAWE,EAASzE,WAAWv/H,KAAK2wB,SACxC,OAAImzG,EAASh3H,SAASrM,IAAeT,KAAKq+H,YAAY,CACpD7+D,OAAQ,CACNhe,OAAQljD,MAAM05C,KAAKgsF,GAAU/8H,KAAK,MAClC68H,aAIN,IAEKrtG,CACT,CACA+pG,KAAAA,GAAoB,IAAdA,IAAKp+H,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,KAAAA,UAAA,GACLq0B,EAAOz2B,KAAKw/H,QAEhB,OADA/oG,EAAKqmG,KAAK0D,MAAQA,EACX/pG,CACT,CAOAqnG,QAAAA,CAASxuH,GACP,MAAMmnB,GAAQnnB,EAAUtP,KAAK2wB,QAAQrhB,GAAWtP,MAAMw/H,SAChD,MACJ3/C,EAAK,KACL9qE,EAAI,SACJ6rH,EAAQ,SACRD,GACElqG,EAAKqmG,KACHn/D,EAAc,CAClB5oD,OACA8qE,QACA+gD,WACAD,WACAxtF,QAAS1c,EAAKqrG,WAAWxyH,GACzB5N,KAAM+0B,EAAK/0B,KACXkD,MAAO6xB,EAAKypG,WAAWpC,WACvB9B,SAAUvlG,EAAK0pG,WAAWrC,WAC1B+B,MAAOppG,EAAKopG,MAAMt+H,KAAIg5C,IAAM,CAC1B32C,KAAM22C,EAAGukF,QAAQl7H,KACjB47D,OAAQjlB,EAAGukF,QAAQt/D,WACjB7iB,QAAO,CAACruB,EAAG9mB,EAAKy8H,IAASA,EAAKl2C,WAAU/lF,GAAKA,EAAEpE,OAAS0qB,EAAE1qB,SAAU4D,KAE1E,OAAOm2D,CACT,EAGFiiE,GAAOrhI,UAAU0+H,iBAAkB,EACnC,IAAK,MAAMjsE,IAAU,CAAC,WAAY,gBAAiB4uE,GAAOrhI,UAAU,GAADgvB,OAAIyjC,EAAM,OAAQ,SAAUhrD,EAAMvF,GAAqB,IAAd6O,EAAOlN,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG,CAAC,EACrH,MAAM,OACJq7H,EAAM,WACN4B,EAAU,OACV9vD,GACEwvD,GAAM/+H,KAAMgG,EAAMvF,EAAO6O,EAAQinB,SACrC,OAAOg5C,EAAOve,GAAQysE,GAAUA,EAAO4B,GAAarhI,OAAOgO,OAAO,CAAC,EAAGsD,EAAS,CAC7EmuH,SACAz3H,SAEJ,EACA,IAAK,MAAMk+H,IAAS,CAAC,SAAU,MAAOtE,GAAOrhI,UAAU2lI,GAAStE,GAAOrhI,UAAUqG,MACjF,IAAK,MAAMs/H,IAAS,CAAC,MAAO,QAAStE,GAAOrhI,UAAU2lI,GAAStE,GAAOrhI,UAAUy9H,SA+FhF,IAAImI,GAEJ,wIACIC,GAEJ,yqCAGIC,GAAQ,sHACRC,GAAY7jI,GAASu9H,GAASv9H,IAAUA,IAAUA,EAAM0L,OACxDo4H,GAAe,CAAC,EAAEtlI,WACtB,SAASulI,KACP,OAAO,IAAIC,EACb,CACA,MAAMA,WAAqB7E,GACzB/xH,WAAAA,GACE8tH,MAAM,CACJj6H,KAAM,SACN27H,MAAM58H,IACAA,aAAiBwjB,SAAQxjB,EAAQA,EAAM8P,WACnB,kBAAV9P,KAGlBT,KAAKsgI,cAAa,KAChBtgI,KAAKwwF,WAAU,CAAC/vF,EAAOikI,EAAMjG,KAC3B,IAAKA,EAAI3B,KAAK+D,QAAUpC,EAAIwC,OAAOxgI,GAAQ,OAAOA,EAGlD,GAAInC,MAAMmJ,QAAQhH,GAAQ,OAAOA,EACjC,MAAMkkI,EAAoB,MAATlkI,GAAiBA,EAAMxB,SAAWwB,EAAMxB,WAAawB,EAGtE,OAAIkkI,IAAaJ,GAAqB9jI,EAC/BkkI,CAAQ,GACf,GAEN,CACA9+E,QAAAA,CAASjkB,GACP,OAAO+5F,MAAM91E,SAASjkB,GAAS0+F,cAAa/wD,GAAUA,EAAOnuE,KAAK,CAChEwgC,QAASA,GAAWi6F,GAAMh2E,SAC1BjiD,KAAM,WACNu6H,YAAY,EACZ/8H,KAAMX,KAAWA,EAAMV,UAE3B,CACAujI,WAAAA,GACE,OAAO3H,MAAM2H,cAAchD,cAAa/wD,IACtCA,EAAOswD,MAAQtwD,EAAOswD,MAAMljF,QAAOpuB,GAAwB,aAAnBA,EAAEuwG,QAAQl7H,OAC3C2rE,IAEX,CACAxvE,MAAAA,CAAOA,GAAiC,IAAzB6hC,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG+B,GAAOpE,OAC9B,OAAOC,KAAKoB,KAAK,CACfwgC,UACAh+B,KAAM,SACN4/H,WAAW,EACXhkE,OAAQ,CACNz/D,UAEFo+H,YAAY,EACZ/8H,IAAAA,CAAKX,GACH,OAAOA,EAAMV,SAAWC,KAAK2wB,QAAQ5wB,EACvC,GAEJ,CACA0qB,GAAAA,CAAIA,GAA2B,IAAtBmX,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG+B,GAAOsmB,IACxB,OAAOzqB,KAAKoB,KAAK,CACfwgC,UACAh+B,KAAM,MACN4/H,WAAW,EACXhkE,OAAQ,CACN/0C,OAEF0zG,YAAY,EACZ/8H,IAAAA,CAAKX,GACH,OAAOA,EAAMV,QAAUC,KAAK2wB,QAAQlG,EACtC,GAEJ,CACAu7B,GAAAA,CAAIA,GAA2B,IAAtBpkB,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG+B,GAAO6hD,IACxB,OAAOhmD,KAAKoB,KAAK,CACfwC,KAAM,MACN4/H,WAAW,EACX5hG,UACA49B,OAAQ,CACNxZ,OAEFm4E,YAAY,EACZ/8H,IAAAA,CAAKX,GACH,OAAOA,EAAMV,QAAUC,KAAK2wB,QAAQq1B,EACtC,GAEJ,CACAiW,OAAAA,CAAQ2oE,EAAOt1H,GACb,IACIsyB,EACAh+B,EAFAihI,GAAqB,EAczB,OAXIv1H,IACqB,kBAAZA,IAEPu1H,sBAAqB,EACrBjjG,UACAh+B,QACE0L,GAEJsyB,EAAUtyB,GAGPtP,KAAKoB,KAAK,CACfwC,KAAMA,GAAQ,UACdg+B,QAASA,GAAWz9B,GAAO83D,QAC3BuD,OAAQ,CACNolE,SAEFzG,YAAY,EACZ/8H,KAAMX,GAAmB,KAAVA,GAAgBokI,IAA+C,IAAzBpkI,EAAM0mB,OAAOy9G,IAEtE,CACA79G,KAAAA,GAA8B,IAAxB6a,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG+B,GAAO4iB,MACrB,OAAO/mB,KAAKi8D,QAAQkoE,GAAQ,CAC1BvgI,KAAM,QACNg+B,UACAijG,oBAAoB,GAExB,CACAt9G,GAAAA,GAA0B,IAAtBqa,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG+B,GAAOojB,IACnB,OAAOvnB,KAAKi8D,QAAQmoE,GAAM,CACxBxgI,KAAM,MACNg+B,UACAijG,oBAAoB,GAExB,CACAzI,IAAAA,GAA4B,IAAvBx6F,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG+B,GAAOi4H,KACpB,OAAOp8H,KAAKi8D,QAAQooE,GAAO,CACzBzgI,KAAM,OACNg+B,UACAijG,oBAAoB,GAExB,CAGAC,MAAAA,GACE,OAAO9kI,KAAKmzC,QAAQ,IAAIq9C,WAAU1zC,GAAe,OAARA,EAAe,GAAKA,GAC/D,CACA3wC,IAAAA,GAA4B,IAAvBy1B,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG+B,GAAOgI,KACpB,OAAOnM,KAAKwwF,WAAU1zC,GAAc,MAAPA,EAAcA,EAAI3wC,OAAS2wC,IAAK17C,KAAK,CAChEwgC,UACAh+B,KAAM,OACNxC,KAAMkjI,IAEV,CACAjI,SAAAA,GAAsC,IAA5Bz6F,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG+B,GAAOk4H,UACzB,OAAOr8H,KAAKwwF,WAAU/vF,GAAUu9H,GAASv9H,GAA+BA,EAAtBA,EAAMmJ,gBAAuBxI,KAAK,CAClFwgC,UACAh+B,KAAM,cACN4/H,WAAW,EACXrF,YAAY,EACZ/8H,KAAMX,GAASu9H,GAASv9H,IAAUA,IAAUA,EAAMmJ,eAEtD,CACA0yH,SAAAA,GAAsC,IAA5B16F,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG+B,GAAOm4H,UACzB,OAAOt8H,KAAKwwF,WAAU/vF,GAAUu9H,GAASv9H,GAA+BA,EAAtBA,EAAMsJ,gBAAuB3I,KAAK,CAClFwgC,UACAh+B,KAAM,cACN4/H,WAAW,EACXrF,YAAY,EACZ/8H,KAAMX,GAASu9H,GAASv9H,IAAUA,IAAUA,EAAMsJ,eAEtD,EAEFy6H,GAASjmI,UAAYkmI,GAAalmI,UAyIlC,MAAMwmI,GAAS,+IACf,SAASC,GAAS3+H,GAAuB,IAAlBqI,EAAYtM,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG,EACpC,OAAOgsD,OAAO/nD,IAAQqI,CACxB,CAmCA,IAAIu2H,GAAc,IAAI7kH,KAAK,IAE3B,SAAS8kH,KACP,OAAO,IAAIC,EACb,CACA,MAAMA,WAAmBvF,GACvB/xH,WAAAA,GACE8tH,MAAM,CACJj6H,KAAM,OACN27H,KAAAA,CAAMr0H,GACJ,OATKnC,EASSmC,EATsC,kBAAxChL,OAAOO,UAAUU,SAASK,KAAKuH,KAStBsD,MAAMnB,EAAE6/C,WATxBhiD,KAUP,IAEF7G,KAAKsgI,cAAa,KAChBtgI,KAAKwwF,WAAU,CAAC/vF,EAAOikI,EAAMjG,KAGtBA,EAAI3B,KAAK+D,QAAUpC,EAAIwC,OAAOxgI,IAAoB,OAAVA,EAAuBA,GACpEA,EApDR,SAAsBomB,GACpB,MAAMu+G,EAAcL,GAAOlmI,KAAKgoB,GAChC,IAAKu+G,EAAa,OAAOhlH,KAAK2iD,MAAQ3iD,KAAK2iD,MAAMl8C,GAAQunC,OAAOrE,IAIhE,MAAMs7E,EAAS,CACbpxE,KAAM+wE,GAASI,EAAY,IAC3Bp+G,MAAOg+G,GAASI,EAAY,GAAI,GAAK,EACrC/wE,IAAK2wE,GAASI,EAAY,GAAI,GAC9BzwE,KAAMqwE,GAASI,EAAY,IAC3BxwE,OAAQowE,GAASI,EAAY,IAC7BE,OAAQN,GAASI,EAAY,IAC7BG,YAAaH,EAAY,GAEzBJ,GAASI,EAAY,GAAGlxH,UAAU,EAAG,IAAM,EAC3CvK,EAAGy7H,EAAY,SAAMvjI,EACrB2jI,UAAWJ,EAAY,SAAMvjI,EAC7B4jI,WAAYT,GAASI,EAAY,KACjCM,aAAcV,GAASI,EAAY,MAIrC,QAAiBvjI,IAAbwjI,EAAO17H,QAAwC9H,IAArBwjI,EAAOG,UACnC,OAAO,IAAIplH,KAAKilH,EAAOpxE,KAAMoxE,EAAOr+G,MAAOq+G,EAAOhxE,IAAKgxE,EAAO1wE,KAAM0wE,EAAOzwE,OAAQywE,EAAOC,OAAQD,EAAOE,aAAah1H,UAExH,IAAIo1H,EAAqB,EAKzB,MAJiB,MAAbN,EAAO17H,QAAkC9H,IAArBwjI,EAAOG,YAC7BG,EAAyC,GAApBN,EAAOI,WAAkBJ,EAAOK,aAC5B,MAArBL,EAAOG,YAAmBG,EAAqB,EAAIA,IAElDvlH,KAAKi2E,IAAIgvC,EAAOpxE,KAAMoxE,EAAOr+G,MAAOq+G,EAAOhxE,IAAKgxE,EAAO1wE,KAAM0wE,EAAOzwE,OAAS+wE,EAAoBN,EAAOC,OAAQD,EAAOE,YAChI,CAoBgBK,CAAanlI,GAGb0J,MAAM1J,GAA2B0kI,GAAWU,aAA7B,IAAIzlH,KAAK3f,KAChC,GAEN,CACAqlI,YAAAA,CAAaxrG,EAAK12B,GAChB,IAAIoR,EACJ,GAAK0oH,GAAUj5C,MAAMnqD,GAKnBtlB,EAAQslB,MALiB,CACzB,IAAIujG,EAAO79H,KAAK69H,KAAKvjG,GACrB,IAAKt6B,KAAKqgI,WAAWxC,GAAO,MAAM,IAAI57H,UAAU,IAADsrB,OAAM3pB,EAAI,+DACzDoR,EAAQ6oH,CACV,CAGA,OAAO7oH,CACT,CACAyV,GAAAA,CAAIA,GAAyB,IAApBmX,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAGykB,GAAK4D,IAClBuhF,EAAQhsG,KAAK8lI,aAAar7G,EAAK,OACnC,OAAOzqB,KAAKoB,KAAK,CACfwgC,UACAh+B,KAAM,MACN4/H,WAAW,EACXhkE,OAAQ,CACN/0C,OAEF0zG,YAAY,EACZ/8H,IAAAA,CAAKX,GACH,OAAOA,GAAST,KAAK2wB,QAAQq7E,EAC/B,GAEJ,CACAhmD,GAAAA,CAAIA,GAAyB,IAApBpkB,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAGykB,GAAKm/B,IAClBgmD,EAAQhsG,KAAK8lI,aAAa9/E,EAAK,OACnC,OAAOhmD,KAAKoB,KAAK,CACfwgC,UACAh+B,KAAM,MACN4/H,WAAW,EACXhkE,OAAQ,CACNxZ,OAEFm4E,YAAY,EACZ/8H,IAAAA,CAAKX,GACH,OAAOA,GAAST,KAAK2wB,QAAQq7E,EAC/B,GAEJ,EAwBF,SAASje,GAAUz2C,EAAK5zC,GACtB,IAAI8D,EAAMojC,IAQV,OAPA0M,EAAIiE,MAAK,CAAC/6C,EAAK89B,KACb,IAAIynG,EACJ,GAA8B,OAAzBA,EAAYriI,EAAIsC,OAAiB+/H,EAAUj5H,SAAStM,GAEvD,OADAgH,EAAM82B,GACC,CACT,IAEK92B,CACT,CACA,SAASw+H,GAAelnI,GACtB,MAAO,CAACgJ,EAAGC,IACFgmF,GAAUjvF,EAAMgJ,GAAKimF,GAAUjvF,EAAMiJ,EAEhD,CArCAo9H,GAAWU,aAAeZ,GAC1BC,GAAS3mI,UAAY4mI,GAAW5mI,UAChC2mI,GAASW,aAAeZ,GAqCxB,MAAMgB,GAAYA,CAACxlI,EAAO4tF,EAAGowC,KAC3B,GAAqB,kBAAVh+H,EACT,OAAOA,EAET,IAAIokE,EAASpkE,EACb,IACEokE,EAASt1B,KAAKwzB,MAAMtiE,EACtB,CAAE,MAAOiD,GACP,CAEF,OAAO+6H,EAAIwC,OAAOp8D,GAAUA,EAASpkE,CAAK,EAI5C,SAASylI,GAAY32D,GACnB,GAAI,WAAYA,EAAQ,CACtB,MAAM42D,EAAU,CAAC,EACjB,IAAK,MAAO3lI,EAAK4lI,KAAgBpoI,OAAO6B,QAAQ0vE,EAAO5sB,QACrDwjF,EAAQ3lI,GAAO0lI,GAAYE,GAE7B,OAAO72D,EAAO82D,UAAUF,EAC1B,CACA,GAAoB,UAAhB52D,EAAO7tE,KAAkB,CAC3B,MAAM4kI,EAAY/2D,EAAOqxD,WAEzB,OADI0F,EAAUlH,YAAWkH,EAAUlH,UAAY8G,GAAYI,EAAUlH,YAC9DkH,CACT,CACA,MAAoB,UAAhB/2D,EAAO7tE,KACF6tE,EAAOqxD,WAAWpB,MAAM,CAC7Bj8E,MAAOgsB,EAAOutD,KAAKv5E,MAAMhiD,IAAI2kI,MAG7B,aAAc32D,EACTA,EAAOqxD,WAETrxD,CACT,CAQA,IAAI3uE,GAAWiG,GAA+C,oBAAxC7I,OAAOO,UAAUU,SAASK,KAAKuH,GAKrD,MAAM0/H,GAAcP,GAAe,IACnC,SAASQ,GAAS1J,GAChB,OAAO,IAAI2J,GAAa3J,EAC1B,CACA,MAAM2J,WAAqB7G,GACzB/xH,WAAAA,CAAYivH,GACVnB,MAAM,CACJj6H,KAAM,SACN27H,MAAM58H,GACGG,GAASH,IAA2B,oBAAVA,IAGrCT,KAAK2iD,OAAS3kD,OAAOsH,OAAO,MAC5BtF,KAAK0mI,YAAcH,GACnBvmI,KAAK2mI,OAAS,GACd3mI,KAAK4mI,eAAiB,GACtB5mI,KAAKsgI,cAAa,KACZxD,GACF98H,KAAK8E,MAAMg4H,EACb,GAEJ,CACA6E,KAAAA,CAAMp9D,GAAsB,IAAdj1D,EAAOlN,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG,CAAC,EACvB,IAAIykI,EACJ,IAAIpmI,EAAQk7H,MAAMgG,MAAMp9D,EAAQj1D,GAGhC,QAAczN,IAAVpB,EAAqB,OAAOT,KAAK8hI,WAAWxyH,GAChD,IAAKtP,KAAKqgI,WAAW5/H,GAAQ,OAAOA,EACpC,IAAIkiD,EAAS3iD,KAAK2iD,OACd69E,EAA0D,OAAjDqG,EAAwBv3H,EAAQw3H,cAAwBD,EAAwB7mI,KAAK88H,KAAKF,UACnGx5H,EAAQ,GAAGmqB,OAAOvtB,KAAK2mI,OAAQ3oI,OAAOc,KAAK2B,GAAOk8C,QAAO3zC,IAAMhJ,KAAK2mI,OAAO75H,SAAS9D,MACpF+9H,EAAoB,CAAC,EACrBC,EAAehpI,OAAOgO,OAAO,CAAC,EAAGsD,EAAS,CAC5CmuH,OAAQsJ,EACRE,aAAc33H,EAAQ23H,eAAgB,IAEpCC,GAAY,EAChB,IAAK,MAAM5tF,KAAQl2C,EAAO,CACxB,IAAIg/C,EAAQO,EAAOrJ,GACf6tF,EAAU7tF,KAAQ74C,EACtB,GAAI2hD,EAAO,CACT,IAAI+J,EACAhG,EAAa1lD,EAAM64C,GAGvB0tF,EAAahhI,MAAQsJ,EAAQtJ,KAAO,GAAHunB,OAAMje,EAAQtJ,KAAI,KAAM,IAAMszC,EAC/D8I,EAAQA,EAAMzxB,QAAQ,CACpBlwB,MAAO0lD,EACP5vB,QAASjnB,EAAQinB,QACjBknG,OAAQsJ,IAEV,IAAIK,EAAYhlF,aAAiBw9E,GAASx9E,EAAM06E,UAAOj7H,EACnD4+H,EAAsB,MAAb2G,OAAoB,EAASA,EAAU3G,OACpD,GAAiB,MAAb2G,GAAqBA,EAAU5G,MAAO,CACxC0G,EAAYA,GAAa5tF,KAAQ74C,EACjC,QACF,CACA0rD,EAAc78C,EAAQ23H,cAAiBxG,EAEChgI,EAAM64C,GAA9C8I,EAAMy7E,KAAKp9H,EAAM64C,GAAO0tF,QACLnlI,IAAfsqD,IACF46E,EAAkBztF,GAAQ6S,EAE9B,MAAWg7E,IAAW3G,IACpBuG,EAAkBztF,GAAQ74C,EAAM64C,IAE9B6tF,IAAW7tF,KAAQytF,GAAqBA,EAAkBztF,KAAU74C,EAAM64C,KAC5E4tF,GAAY,EAEhB,CACA,OAAOA,EAAYH,EAAoBtmI,CACzC,CACAshI,SAAAA,CAAUx9D,GAAmC,IAA3Bj1D,EAAOlN,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAG87H,EAAK97H,UAAArC,OAAA,EAAAqC,UAAA,QAAAP,EAAE40B,EAAIr0B,UAAArC,OAAA,EAAAqC,UAAA,QAAAP,GACrC,KACFm2C,EAAO,GAAE,cACTkkF,EAAgB33D,EAAM,UACtBm8D,EAAY1gI,KAAK88H,KAAK4D,WACpBpxH,EACJA,EAAQ0oC,KAAO,CAAC,CACdu3B,OAAQvvE,KACRS,MAAOy7H,MACHlkF,GAGN1oC,EAAQ23H,cAAe,EACvB33H,EAAQ4sH,cAAgBA,EACxBP,MAAMoG,UAAUx9D,EAAQj1D,EAAS4uH,GAAO,CAACmJ,EAAc5mI,KACrD,IAAKigI,IAAc9/H,GAASH,GAE1B,YADAg2B,EAAK4wG,EAAc5mI,GAGrBy7H,EAAgBA,GAAiBz7H,EACjC,IAAIo/H,EAAQ,GACZ,IAAK,IAAIr/H,KAAOR,KAAK2mI,OAAQ,CAC3B,IAAIvkF,EAAQpiD,KAAK2iD,OAAOniD,GACnB4hD,IAASs7E,GAAUj5C,MAAMriC,IAG9By9E,EAAMl9H,KAAKy/C,EAAMogF,aAAa,CAC5BlzH,UACA9O,MACAi9H,OAAQh9H,EACR4+H,WAAY/vH,EAAQtJ,KACpBy8H,eAAgBvG,IAEpB,CACAl8H,KAAKiiI,SAAS,CACZpC,QACAp/H,QACAy7H,gBACA5sH,WACC4uH,GAAOoJ,IACR7wG,EAAK6wG,EAAY37C,KAAK3rF,KAAK0mI,aAAan5G,OAAO85G,GAAe5mI,EAAM,GACpE,GAEN,CACA++H,KAAAA,CAAM1C,GACJ,MAAMrmG,EAAOklG,MAAM6D,MAAM1C,GAKzB,OAJArmG,EAAKksB,OAAS3kD,OAAOgO,OAAO,CAAC,EAAGhM,KAAK2iD,QACrClsB,EAAKkwG,OAAS3mI,KAAK2mI,OACnBlwG,EAAKmwG,eAAiB5mI,KAAK4mI,eAC3BnwG,EAAKiwG,YAAc1mI,KAAK0mI,YACjBjwG,CACT,CACAlJ,MAAAA,CAAOgiD,GACL,IAAI94C,EAAOklG,MAAMpuG,OAAOgiD,GACpBg4D,EAAa9wG,EAAKksB,OACtB,IAAK,IAAKP,EAAOolF,KAAgBxpI,OAAO6B,QAAQG,KAAK2iD,QAAS,CAC5D,MAAMltC,EAAS8xH,EAAWnlF,GAC1BmlF,EAAWnlF,QAAoBvgD,IAAX4T,EAAuB+xH,EAAc/xH,CAC3D,CACA,OAAOghB,EAAK6pG,cAAazmF,GAEzBA,EAAEwsF,UAAUkB,EAAY,IAAIvnI,KAAK4mI,kBAAmBr3D,EAAOq3D,kBAC7D,CACA3D,WAAAA,CAAY3zH,GACV,GAAI,YAAatP,KAAK88H,KACpB,OAAOnB,MAAMsH,YAAY3zH,GAI3B,IAAKtP,KAAK2mI,OAAO5mI,OACf,OAEF,IAAI0nI,EAAM,CAAC,EAaX,OAZAznI,KAAK2mI,OAAOv/H,SAAQ5G,IAClB,IAAIknI,EACJ,MAAMtlF,EAAQpiD,KAAK2iD,OAAOniD,GAC1B,IAAIwmI,EAAe13H,EACmB,OAAjCo4H,EAAgBV,IAAyBU,EAAcjnI,QAC1DumI,EAAehpI,OAAOgO,OAAO,CAAC,EAAGg7H,EAAc,CAC7CvJ,OAAQuJ,EAAavmI,MACrBA,MAAOumI,EAAavmI,MAAMD,MAG9BinI,EAAIjnI,GAAO4hD,GAAS,eAAgBA,EAAQA,EAAM0/E,WAAWkF,QAAgBnlI,CAAS,IAEjF4lI,CACT,CACApB,SAAAA,CAAUvhI,EAAO6iI,GACf,IAAIlxG,EAAOz2B,KAAKw/H,QAMhB,OALA/oG,EAAKksB,OAAS79C,EACd2xB,EAAKkwG,OAtPT,SAAoBhkF,GAA4B,IAApBglF,EAAavlI,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG,GACtC40C,EAAQ,GACRD,EAAQ,IAAI5uC,IACZy/H,EAAW,IAAIz/H,IAAIw/H,EAAcpmI,KAAI+tD,IAAA,IAAExnD,EAAGC,GAAEunD,EAAA,SAAA/hC,OAAQzlB,EAAC,KAAAylB,OAAIxlB,EAAC,KAC9D,SAAS8/H,EAAQC,EAAStnI,GACxB,IAAIkE,GAAOuB,EAAAA,GAAAA,OAAM6hI,GAAS,GAC1B/wF,EAAMxuC,IAAI7D,GACLkjI,EAASrlI,IAAI,GAADgrB,OAAI/sB,EAAG,KAAA+sB,OAAI7oB,KAASsyC,EAAMr0C,KAAK,CAACnC,EAAKkE,GACxD,CACA,IAAK,MAAMlE,KAAOxC,OAAOc,KAAK6jD,GAAS,CACrC,IAAIliD,EAAQkiD,EAAOniD,GACnBu2C,EAAMxuC,IAAI/H,GACNk9H,GAAUj5C,MAAMhkF,IAAUA,EAAMm9H,UAAWiK,EAAQpnI,EAAMuF,KAAMxF,GAAcw8H,GAASv8H,IAAU,SAAUA,GAAOA,EAAM4+B,KAAKj4B,SAAQpB,GAAQ6hI,EAAQ7hI,EAAMxF,IAChK,CACA,OAAOs2C,KAAAA,MAAex4C,MAAM05C,KAAKjB,GAAQC,GAAO+wF,SAClD,CAuOkBC,CAAWljI,EAAO6iI,GAChClxG,EAAKiwG,YAAcV,GAAehoI,OAAOc,KAAKgG,IAE1C6iI,IAAelxG,EAAKmwG,eAAiBe,GAClClxG,CACT,CACA3xB,KAAAA,CAAMmjI,GAA0B,IAAfL,EAAQxlI,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAG,GAC1B,OAAOpC,KAAKw/H,QAAQc,cAAa7pG,IAC/B,IAAIugB,EAAQvgB,EAAKmwG,eAOjB,OANIgB,EAAS7nI,SACNzB,MAAMmJ,QAAQmgI,EAAS,MAAKA,EAAW,CAACA,IAC7C5wF,EAAQ,IAAIvgB,EAAKmwG,kBAAmBgB,IAI/BnxG,EAAK4vG,UAAUroI,OAAOgO,OAAOyqB,EAAKksB,OAAQslF,GAAYjxF,EAAM,GAEvE,CACAmvF,OAAAA,GACE,MAAMA,EAAU,CAAC,EACjB,IAAK,MAAO3lI,EAAK+uE,KAAWvxE,OAAO6B,QAAQG,KAAK2iD,QAC9CwjF,EAAQ3lI,GAAO,aAAc+uE,GAAUA,EAAOqxD,oBAAoBxiI,SAAWmxE,EAAOqxD,WAAarxD,EAEnG,OAAOvvE,KAAKqmI,UAAUF,EACxB,CACAD,WAAAA,GAEE,OADaA,GAAYlmI,KAE3B,CACAkoI,IAAAA,CAAKppI,GACH,MAAMqpI,EAAS,CAAC,EAChB,IAAK,MAAM3nI,KAAO1B,EACZkB,KAAK2iD,OAAOniD,KAAM2nI,EAAO3nI,GAAOR,KAAK2iD,OAAOniD,IAElD,OAAOR,KAAKqmI,UAAU8B,EAAQnoI,KAAK4mI,eAAejqF,QAAO++C,IAAA,IAAE5zF,EAAGC,GAAE2zF,EAAA,OAAK58F,EAAKgO,SAAShF,IAAMhJ,EAAKgO,SAAS/E,EAAE,IAC3G,CACAqgI,IAAAA,CAAKtpI,GACH,MAAMupI,EAAY,GAClB,IAAK,MAAM7nI,KAAOxC,OAAOc,KAAKkB,KAAK2iD,QAC7B7jD,EAAKgO,SAAStM,IAClB6nI,EAAU1lI,KAAKnC,GAEjB,OAAOR,KAAKkoI,KAAKG,EACnB,CACArwF,IAAAA,CAAKA,EAAM2rC,EAAIugD,GACb,IAAIoE,GAAavhI,EAAAA,GAAAA,QAAOixC,GAAM,GAC9B,OAAOh4C,KAAKwwF,WAAU3pF,IACpB,IAAKA,EAAK,OAAOA,EACjB,IAAI0hI,EAAS1hI,EAMb,MArOU2hI,EAAC3hI,EAAKgB,KACpB,MAAM7B,EAAO,KAAID,EAAAA,GAAAA,eAAc8B,IAC/B,GAAoB,IAAhB7B,EAAKjG,OAAc,OAAOiG,EAAK,KAAMa,EACzC,IAAIq/B,EAAOlgC,EAAKtD,MACZ+6H,GAAS12H,EAAAA,GAAAA,SAAOE,EAAAA,GAAAA,MAAKjB,IAAO,EAAnBe,CAAyBF,GACtC,SAAU42H,KAAUv3F,KAAQu3F,GAAO,EA2N3B+K,CAAQ3hI,EAAKmxC,KACfuwF,EAASvqI,OAAOgO,OAAO,CAAC,EAAGnF,GACtBq9H,UAAcqE,EAAOvwF,GAC1BuwF,EAAO5kD,GAAM2kD,EAAWzhI,IAEnB0hI,CAAM,GAEjB,CAGA1mC,IAAAA,GACE,OAAO7hG,KAAKwwF,UAAUy1C,GACxB,CACArJ,SAAAA,GAAsD,IAA5C6L,IAAOrmI,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,KAAAA,UAAA,GAASw/B,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAGR,GAAOg7H,UAClB,mBAAZ6L,IACT7mG,EAAU6mG,EACVA,GAAU,GAEZ,IAAIhyG,EAAOz2B,KAAKoB,KAAK,CACnBwC,KAAM,YACN4/H,WAAW,EACX5hG,QAASA,EACTxgC,IAAAA,CAAKX,GACH,GAAa,MAATA,EAAe,OAAO,EAC1B,MAAMioI,EAhPd,SAAiBjK,EAAKh+H,GACpB,IAAIkoI,EAAQ3qI,OAAOc,KAAK2/H,EAAI97E,QAC5B,OAAO3kD,OAAOc,KAAK2B,GAAOk8C,QAAOn8C,IAA+B,IAAxBmoI,EAAMriI,QAAQ9F,IACxD,CA6O4BooI,CAAQ5oI,KAAKuvE,OAAQ9uE,GACzC,OAAQgoI,GAAkC,IAAvBC,EAAY3oI,QAAgBC,KAAKq+H,YAAY,CAC9D7+D,OAAQ,CACNopE,QAASF,EAAYzhI,KAAK,QAGhC,IAGF,OADAwvB,EAAKqmG,KAAKF,UAAY6L,EACfhyG,CACT,CACAmyG,OAAAA,GAAkD,IAA1CC,IAAKzmI,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,KAAAA,UAAA,GAASw/B,EAAOx/B,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAAGR,GAAOg7H,UACrC,OAAO58H,KAAK48H,WAAWiM,EAAOjnG,EAChC,CACAknG,aAAAA,CAAcvuF,GACZ,OAAOv6C,KAAKwwF,WAAU3pF,IACpB,IAAKA,EAAK,OAAOA,EACjB,MAAM5F,EAAS,CAAC,EAChB,IAAK,MAAMT,KAAOxC,OAAOc,KAAK+H,GAAM5F,EAAOs5C,EAAG/5C,IAAQqG,EAAIrG,GAC1D,OAAOS,CAAM,GAEjB,CACAs1C,SAAAA,GACE,OAAOv2C,KAAK8oI,cAAcvyF,GAAAA,UAC5B,CACAG,SAAAA,GACE,OAAO12C,KAAK8oI,cAAcpyF,GAAAA,UAC5B,CACAqyF,YAAAA,GACE,OAAO/oI,KAAK8oI,eAActoI,IAAOk2C,EAAAA,GAAAA,WAAUl2C,GAAKuJ,eAClD,CACA+zH,QAAAA,CAASxuH,GACP,MAAMmnB,GAAQnnB,EAAUtP,KAAK2wB,QAAQrhB,GAAWtP,MAAMw/H,QAChDlrH,EAAOqnH,MAAMmC,SAASxuH,GAC5BgF,EAAKquC,OAAS,CAAC,EACf,IAAK,MAAOniD,EAAKC,KAAUzC,OAAO6B,QAAQ42B,EAAKksB,QAAS,CACtD,IAAIqmF,EACJ,IAAIhC,EAAe13H,EACoB,OAAlC05H,EAAiBhC,IAAyBgC,EAAevoI,QAC5DumI,EAAehpI,OAAOgO,OAAO,CAAC,EAAGg7H,EAAc,CAC7CvJ,OAAQuJ,EAAavmI,MACrBA,MAAOumI,EAAavmI,MAAMD,MAG9B8T,EAAKquC,OAAOniD,GAAOC,EAAMq9H,SAASkJ,EACpC,CACA,OAAO1yH,CACT,EAEFkyH,GAASjoI,UAAYkoI,GAAaloI,UCz3DlC,MAAMgxE,GAAS05D,GACL,CACNrlI,KAAMqlI,KAAapjF,SAAS,oBAC5BoiD,MAAOghC,KAAapjF,SAAS,qBAC7B9+B,MAAOkiH,KAAaliH,MAAM,iBAAiB8+B,SAAS,qBACpDijD,MAAOmgC,KAEJpjF,SAAS,4BACTzkD,KAAK,QAAS,wBAAyBX,IAClCA,GPKL,WACN,OAAOnB,GAAK4pI,GAAqB9mI,UAClC,CONiBm6G,CAAmB97G,OAKjColD,WAgsBH,GA7rBmBsjF,KAAO,IAAD3jC,EACvB,MAAM,SACJzjD,EAAQ,aACR6N,EAAY,MACZhP,EAAK,QACL7C,EAAO,MACP2S,EACA5S,WAAaoC,OAAQspD,GAAY,SACjCx7F,GCFY,WAKkC,IAAhD5K,EAAAhB,UAAArC,OAAA,QAAA8B,IAAAO,UAAA,GAAAA,UAAA,GAA8C,CAAC,EAE/C,MAAMgnI,EAAezrF,EAAAA,SAGft4C,EAAUs4C,EAAAA,UACTG,EAAWW,GAAmBd,EAAAA,SAAwC,CAC3EgC,SAAS,EACTK,cAAc,EACdJ,UAAW5+C,EAAWoC,EAAM86C,eAC5B0M,aAAa,EACbQ,cAAc,EACdC,oBAAoB,EACpBpL,SAAS,EACTkL,YAAa,EACbtL,YAAa,CAAC,EACdC,cAAe,CAAC,EAChBC,iBAAkB,CAAC,EACnBG,OAAQ98C,EAAM88C,QAAU,CAAC,EACzBzwC,SAAUrM,EAAMqM,WAAY,EAC5ByuC,cAAel9C,EAAWoC,EAAM86C,oBAC5Br8C,EACAuB,EAAM86C,gBAGPkrF,EAAajxH,UAChBixH,EAAajxH,QAAU,IAClB8yC,GAAkB7nD,GACrB06C,cAIJ,MAAMC,EAAUqrF,EAAajxH,QAAQ4lC,QA4ErC,OA3EAA,EAAQmE,SAAW9+C,EAEnB47C,EAAa,CACXG,QAASpB,EAAQsC,UAAU3mB,MAC3BjD,KACEh2B,IAGE89C,EACE99C,EACAs9C,EAAQM,gBACRN,EAAQqC,kBACR,IAGF3B,EAAgB,IAAKV,EAAQyB,gBAKnC7B,EAAAA,WACE,IAAMI,EAAQyT,aAAapuD,EAAMqM,WACjC,CAACsuC,EAAS36C,EAAMqM,WAGlBkuC,EAAAA,WAAgB,KACd,GAAII,EAAQM,gBAAgBsB,QAAS,CACnC,MAAMA,EAAU5B,EAAQ2O,YACpB/M,IAAY7B,EAAU6B,SACxB5B,EAAQsC,UAAU3mB,MAAMjD,KAAK,CAC3BkpB,eAIL,CAAC5B,EAASD,EAAU6B,UAEvBhC,EAAAA,WAAgB,KACVv6C,EAAMo+C,SAAWkH,GAAUtlD,EAAMo+C,OAAQn8C,EAAQ8S,UACnD4lC,EAAQkS,OAAO7sD,EAAMo+C,OAAQzD,EAAQmE,SAASqP,cAC9ClsD,EAAQ8S,QAAU/U,EAAMo+C,OACxB/C,GAAiB/kB,IAAK,IAAWA,OAEjCqkB,EAAQuT,wBAET,CAACluD,EAAMo+C,OAAQzD,IAElBJ,EAAAA,WAAgB,KACVv6C,EAAM88C,QACRnC,EAAQ2T,WAAWtuD,EAAM88C,UAE1B,CAAC98C,EAAM88C,OAAQnC,IAElBJ,EAAAA,WAAgB,KACTI,EAAQyE,OAAOD,QAClBxE,EAAQuC,eACRvC,EAAQyE,OAAOD,OAAQ,GAGrBxE,EAAQyE,OAAO5B,QACjB7C,EAAQyE,OAAO5B,OAAQ,EACvB7C,EAAQsC,UAAU3mB,MAAMjD,KAAK,IAAKsnB,EAAQyB,cAG5CzB,EAAQ6D,kBAAkB,IAG5BjE,EAAAA,WAAgB,KACdv6C,EAAMk+C,kBACJvD,EAAQsC,UAAUmB,OAAO/qB,KAAK,CAC5B+qB,OAAQzD,EAAQ4D,aAChB,GACH,CAACv+C,EAAMk+C,iBAAkBvD,IAE5BqrF,EAAajxH,QAAQ2lC,UAAYD,EAAkBC,EAAWC,GAEvDqrF,EAAajxH,OACtB,CD/GMkxH,CAAQ,CACVrnI,SAAUsnI,GAAY/5D,OAIjB+zB,EAAmBG,IAAwBviE,EAAAA,EAAAA,UAAS,OACpDwiE,EAAcT,IAAmB/hE,EAAAA,EAAAA,UAAS,YAC1CopE,EAAaotB,IAAkBx2F,EAAAA,EAAAA,UAAS,KACxCigE,EAAeC,IAAoBlgE,EAAAA,EAAAA,UAAS,IAC5CsiE,EAAUD,IAAeriE,EAAAA,EAAAA,UAAS,KAClCilE,EAAUoE,IAAerpE,EAAAA,EAAAA,UAAS,CACvCt9B,KAAM,GACNklG,MAAO,GACP/hF,MAAO,GACPiiF,MAAO,GACPhkD,OAAQ,GACRijD,MAAO,MAEFuC,EAAiBC,IAAsBvpE,EAAAA,EAAAA,UAAS,KAChDo8D,EAAmBC,IAAwBr8D,EAAAA,EAAAA,UAAS,CACzDra,KAAM,GACNwD,MAAO,GACPC,IAAK,MAEA0sC,EAASqvC,IAAcnlE,EAAAA,EAAAA,WAAS,IAChCs8D,EAAkBC,IAAuBv8D,EAAAA,EAAAA,WAAS,IAClDiiE,EAAWiD,IAAgBllE,EAAAA,EAAAA,UAAS,KACpCy2F,EAAuBC,IAA4B12F,EAAAA,EAAAA,UAAS,KAC5DqoG,EAAc1R,IAAmB32F,EAAAA,EAAAA,UAAS,OAC1CggE,EAAsBD,IAA2B//D,EAAAA,EAAAA,UAAS,OAC1D42F,EAAaC,IAAkB72F,EAAAA,EAAAA,UAAS,KACxCwgE,EAAcs2B,IAAmB92F,EAAAA,EAAAA,UAAS,CAAC,IAC3ColE,EAAiBC,IAAsBrlE,EAAAA,EAAAA,UAAS,OAChD+2F,EAAqBC,IAA0Bh3F,EAAAA,EAAAA,UAAS,KACxDy8D,EAAe6rC,IAAoBtoG,EAAAA,EAAAA,UAAS,OAC5CyiE,EAAgBgD,IAAqBzlE,EAAAA,EAAAA,UAAS,OAC9Cgf,GAAQq2E,KAAar1F,EAAAA,EAAAA,UAAS,CACnCt9B,KAAM,GACNklG,MAAO,GACP/hF,MAAO,MAEFy/E,GAAmBijC,KAAwBvoG,EAAAA,EAAAA,UAAS,CACzD6c,QAASA,EACTgE,SAAUA,EACV6N,aAAcA,EACdhP,MAAOA,EACP4oD,WAAYA,EACZ94C,MAAOA,EACP1iD,SAAUA,KAEL0vF,GAAe+I,KAAoBvlE,EAAAA,EAAAA,UAAS,OAC5Cxc,GAAQglH,KAAaxoG,EAAAA,EAAAA,UAASz4B,OAAOkhI,cACrCxR,GAAqBC,KAA0Bl3F,EAAAA,EAAAA,UAAS,IACxDwlE,GAAcjF,KAAmBvgE,EAAAA,EAAAA,UAAS,OAC1CmgE,GAAQC,KAAapgE,EAAAA,EAAAA,WAAS,IAC9BqgE,GAAqBC,KAA0BtgE,EAAAA,EAAAA,UAAS,CAAC,IACzD0oG,GAAcC,KAAmB3oG,EAAAA,EAAAA,WAAS,IAC1CqQ,GAAYu4F,KAAiB5oG,EAAAA,EAAAA,WAAS,IACtC6oG,GAAWC,KAAgB9oG,EAAAA,EAAAA,WAAS,IACpC08D,GAAWqsC,KAAgB/oG,EAAAA,EAAAA,WAAS,IACpCwpE,GAAgBC,KAAqBzpE,EAAAA,EAAAA,WAAS,IAC9Cs1F,GAAiB0T,KAAsBhpG,EAAAA,EAAAA,WAAS,GAEjDipG,IAAoBlpG,EAAAA,EAAAA,QAAO,OAE3B,MAAE+nE,MAAUM,IAAgBnD,GAC5B,MAAE8B,MAAUsB,IAAiBpD,GAC3BjmD,OAAQkqF,IAAgB9qF,EAAa,CAC3CvB,QAASyoD,GAAkBzoD,WAErBkqD,MAAOwB,MAAeC,IAAc0gC,GAGtCC,GAAexjI,IACnB,MAAMyjI,EAAmC,OAAjBhnC,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB8E,cAC3C,MACe,KAAbvhG,EAAIjD,MACU,KAAdiD,EAAIiiG,OACU,KAAdjiG,EAAIkgB,OACW,KAAflgB,EAAIm+C,UACFslF,GAAiC,KAAdzjI,EAAIohG,MAAa,EAKpCsiC,GAAgBA,KACpB,MAAMpjC,EAAc1+F,OAAOs1F,WAC3BisC,GAAa7iC,GAAe,IAAI,EAI5BqjC,GAAgBA,KACpB,MAAMrjC,EAAc1+F,OAAOs1F,WAC3BksC,GAAa9iC,GAAe,IAAI,EAO5BsjC,GAAmBA,KACvBf,GAAUjhI,OAAOkhI,YAAY,EAGzBtpH,IAAM0gB,EAAAA,EAAAA,UACV,KAAQogE,EAAgB,GAAK3tC,GAAMzzD,OAAU,KAC7C,CAACohG,IAIGupC,GAA2BA,KAC/Bz/B,eAAeC,WAAW,cAC1BX,EAAY,CACV3mG,KAAM,GACNklG,MAAO,GACP/hF,MAAO,GACPiiF,MAAO,GACPhkD,OAAQ,GACRijD,MAAO,KAETzB,GAAkB91C,QAClB+5C,EAAmB,GAAG,EAIlBkgC,GAAYjlF,UAChB,GAAqB,OAAjB49C,QAAiB,IAAjBA,GAAAA,EAAmB8E,eAAmC,IAAlBjH,IAAwBuJ,GAQ9D,OALAggC,KACAtpC,EAAiB,GACjB6B,EAAgBxvC,IAChB8vC,EAAY+G,QACZ7G,EAAqB,MAEhB,GAAqB,OAAjBH,QAAiB,IAAjBA,GAAAA,EAAmB8E,eAAmC,IAAlBjH,GAAuBuJ,GAepE,OAVAC,IAAkB,GAClB+/B,KACAtpC,EAAiB,GACjB6B,EAAgBxvC,IAChB8vC,EAAYJ,EAAU,SACtBM,GAAqBN,IAEnB,MAAM,MAAE8E,EAAK,SAAEhE,EAAQ,cAAEmE,KAAkBwiC,GAAiBznC,EAC5D,OAAOynC,CAAY,IAIvB,GAAsB,IAAlBzpC,EAAqB,OACpB,GAAsB,IAAlBA,EACP8B,EAAgBxvC,QACX,IAAsB,IAAlB0tC,EAMT,OALAsF,GAAiB,MACjBxF,EAAwB,MACxBgC,EAAgBxvC,IAChB2tC,EAAiBD,EAAgB,QACjCM,GAAgB,MAEX,GAAsB,IAAlBN,EAUT,OATAK,GAAuB,CAAC,GACxBF,IAAU,GACVG,GAAgB,MAChBL,EAAiBD,EAAgB,QACjC5D,EAAqB,CACnB12E,KAAM,GACNwD,MAAO,GACPC,IAAK,KAGF,GAAsB,IAAlB62E,EAGT,OAFA8B,EAAgBxvC,SAChB2tC,EAAiBD,EAAgB,GAE5B,GAAsB,IAAlBA,EAETupC,KACAnkC,EAAmB,MACnB9C,GAAqBN,IAEnB,MAAM,SAAEc,EAAQ,WAAEc,KAAe6lC,GAAiBznC,EAClD,OAAOynC,CAAY,IAGjBhT,EADJ2R,EAC6B/lC,EACAL,EAAUhC,EAAgB,GAAG,GAAG8C,eACxD,GAAsB,IAAlB9C,EACTsC,GAAqBN,IACnB,MAAM,MAAE6E,KAAU4iC,GAAiBznC,EACnC,OAAOynC,CAAY,QAEhB,IAAsB,IAAlBzpC,GAAuBooC,EAKhC,OAJAnoC,EAAiBD,EAAgB,GACjCoC,EAAYJ,EAAUhC,EAAgB,IACtC02B,EAAgB,WAChBp0B,EAAqB,MAEM,IAAlBtC,GACTsC,EAAqB,KACvB,EACArC,EAAiBD,EAAgB,GACjC,MAAM0pC,EAAU1nC,EAAUhC,EAAgB,GAC1CoC,EAAYsnC,GASZz6G,YAAW,KANuBmoG,MAChC,MAAMC,EAAiB9vH,SAAS2jG,eAAe,mBAC3CmsB,GACFJ,GAAuBI,EAAeC,YACxC,EAGAF,EAA2B,GAC1B,EAAE,EAIDjxB,GAAa5hD,UACjB,GAAmB,iBAAf6hD,EACFd,GAAiB,oBACZ,GAAmB,UAAfc,GAA4C,IAAlBpG,EAAqB,CAKxD,GAHA+oC,IAAmB,IAGdG,GAAYlkC,IAAa50D,GAS5B,OAPA6vD,EAAiB,GACjB6B,EAAgB,aAEhBrzC,GAAa,KAEX5tB,QAAQ7nB,IAAI,oBAAoB,GAFlCy1C,GAOF62C,GAAiB,SACjBrF,EAAiB,EACnB,CACIM,EAAaC,yBACfsB,EAAgBxvC,IAElB,IAAK,IAAD+zC,EAAAC,EAAAC,EACFrB,GAAW,GAEX,MAAMpC,EAA4B,OAAjBX,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBW,SAAS1iG,KAAKomG,IAChD,MAAMnD,EACJmD,EAAK9C,YACsB,kBAApB8C,EAAK9C,YACZ8C,EAAK9C,WAAW9lD,WAAW,KACvB4oD,EAAK7C,aACL6C,EAAK9C,WACX,MAAO,CACL+C,YAAaD,EAAKxpF,GAClBva,KAAM+jG,EAAK/jG,KACX4gG,MAAW,OAAJmD,QAAI,IAAJA,GAAAA,EAAMnD,MAAY,OAAJmD,QAAI,IAAJA,OAAI,EAAJA,EAAMnD,MAAQA,EACpC,IAGGqD,EAAgBh0C,GACH,OAAjBypC,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBz2E,KACF,OAAjBy2E,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBjzE,OAEf7oB,EAAO,CACXsmG,QAAyB,OAAjBxE,QAAiB,IAAjBA,GAA2B,QAAVkE,EAAjBlE,EAAmByE,gBAAQ,IAAAP,OAAV,EAAjBA,EAA6B5jG,OAAQ,GAC7CokG,OAAwB,OAAjB1E,QAAiB,IAAjBA,GAAwB,QAAPmE,EAAjBnE,EAAmB0E,aAAK,IAAAP,OAAP,EAAjBA,EAA0B7jG,OAAQ,SACzCqkG,OACmB,OAAjB3E,QAAiB,IAAjBA,GAAwB,QAAPoE,EAAjBpE,EAAmB2E,aAAK,IAAAP,OAAP,EAAjBA,EAA0B9jG,QACX,OAAf0iG,QAAe,IAAfA,OAAe,EAAfA,EAAiB4B,eACT,OAAR/B,QAAQ,IAARA,OAAQ,EAARA,EAAU8B,OACZE,YAA8B,OAAjB7E,QAAiB,IAAjBA,GAAAA,EAAmB8E,cAAgB,GAAiB,OAAZ1G,QAAY,IAAZA,GAAAA,EAAc2G,SAA4B,OAAjB/E,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmByE,SAASO,eAAkC,OAAjBhF,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB0E,MAAMD,SACpJQ,gBAAkC,OAAjBjF,QAAiB,IAAjBA,GAAAA,EAAmB8E,cAAgB,GAAiB,OAAZ1G,QAAY,IAAZA,GAAAA,EAAc2G,SAA4B,OAAjB/E,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB0E,MAAMQ,mBAAsC,OAAjBlF,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB0E,MAAM9C,IACzJuD,aAA6B,OAAfnC,QAAe,IAAfA,OAAe,EAAfA,EAAiBmC,aAC/B5hF,KAAMghF,GAAiB,GACvB9H,WAC+B,MAAZ,OAAjBzC,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBjzE,OAAgC,OAAjBizE,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBjzE,MAAQ,GAC/D21E,SAAqC,MAAV,OAAjB1C,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBhzE,KAA8B,OAAjBgzE,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBhzE,IAAM,GACnEo+E,OAAQzE,EACR3B,SAAsB,OAAZZ,QAAY,IAAZA,GAAAA,EAAcC,wBACpBT,EAAqBoB,SACrB,GACJC,WAAwB,OAAZb,QAAY,IAAZA,GAAAA,EAAcC,wBACtBT,EAAqBqB,WACrB,GACJoG,cAAexC,EAASviG,KACxBglG,eAAgBzC,EAASp/E,MACzB8hF,mBAAoB1C,EAAS2C,MAC7BC,eAAgB5C,EAAS6C,MACzBC,gBAAyB,OAAR9C,QAAQ,IAARA,OAAQ,EAARA,EAAUnhD,OAC3BkkD,gBAAiB/C,EAASpoC,OAC1BorC,aAA8B,OAAjB7F,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmByB,aAAc,EAC9C1F,GAAI1B,EACJyL,YAAa7B,GAGT8B,EAAenK,qCACfxnD,QAAYkqD,MAAM,GAADr0E,OAClB87E,EAAY,KAAA97E,OAAI4xE,GAAYnpB,eAC/B,CACEhlB,OAAQ,OACRziD,KAAMghC,KAAKC,UAAUhuC,GACrBwgE,QAAS,CACP,eAAgB,qCAItBqkC,GAAW,GAEXpD,EAAgBxvC,UACO/b,EAAImqD,MAC7B,CAAE,MAAO5/D,GACPokE,GAAW,GAEXE,EAAmB,MACnBvkE,QAAQ7nB,IAAI8nB,EACd,GA0DF,OAnDAtB,EAAAA,EAAAA,YAAU,KACRsqE,eAAeC,WAAW,aAAa,GACtC,KAGHvqE,EAAAA,EAAAA,YAAU,KACJwpG,GAAkBhyH,SAAWqrF,EAASzjG,SAExCoqI,GAAkBhyH,QAAQuT,UAAY,EACxC,GACC,CAAC83E,EAAUrC,KAGdxgE,EAAAA,EAAAA,YAAU,KACR4pG,KACAC,KAEA,MAAMM,EAAgC,OAAjBxnC,QAAiB,IAAjBA,GAAAA,EAAmB8E,cACpCgiC,GACA1gC,GACEqhC,EACJD,GAAwC,kBAAjBA,EACnB9sI,OAAOc,KAAKgsI,GAAc/qI,OAC1B,EAEN+pI,GAAciB,GAEd,IAAIxjH,EAAM,IAAIyjH,IAAIviI,OAAOlF,SAASumB,MAE9BmhH,EADS,IAAIpqE,gBAAgBt5C,EAAIJ,QAChB3kB,IAAI,WAEzB,MAAM0oI,EAAYzjE,mBAAmBwjE,GAlCrC,oJAwCA,OALAzB,EAAiB0B,GAEjBziI,OAAOoO,iBAAiB,SAAU4zH,IAClChiI,OAAOoO,iBAAiB,SAAU0zH,IAClC9hI,OAAOoO,iBAAiB,SAAU2zH,IAC3B,KACL/hI,OAAOqO,oBAAoB,SAAU2zH,IACrChiI,OAAOqO,oBAAoB,SAAUyzH,IACrC9hI,OAAOqO,oBAAoB,SAAU0zH,GAAc,CACpD,GACA,CACD7sC,EACAj5E,GACA4+E,EACA8mC,GACA1gC,GACA9L,MAIA0B,EAAAA,GAAAA,MAAAY,GAAAA,SAAA,CAAAtwF,SAAA,EACE0vF,EAAAA,GAAAA,MAAA,OACEnsC,UAAS,aAAA5lC,OACPw8G,KAAc/yE,EAAU,2BAA6B,GAAE,cAAAzpC,OACvDw8G,IAAa/yE,EAAU,uBAAyB,GAAE,mJACmFpnD,SAAA,EAGrIonD,IACAuoC,EAAAA,GAAAA,KAAA,QAAMpsC,UAAU,mBAAmBtsB,QAASA,IAAM8jG,KAAY/6H,SAC3D8jD,GAAe5mD,SAASq0F,IACvBuC,IAAiBjwC,KACf8rC,EAAAA,GAAAA,KAAA,QAAMpsC,UAAU,2CAA0CvjD,UACxD2vF,EAAAA,GAAAA,KAAChsC,GAAa,SAQxB+rC,EAAAA,GAAAA,MAACzB,GAAW7pD,SAAQ,CAClBvzC,MAAO,CACLwiG,kBACA7B,mBACA+E,WACAO,gBACAhJ,iBACA+I,oBACAtF,gBACA7D,oBACAM,aACA+M,qBACA6rB,oBACA5mH,SAAA,CAEDm6H,IACmB,IAAlB5oC,IACE5B,EAAAA,GAAAA,KAACkD,GAAM,CACLp7E,KAAM,WACNq7E,qBAAqB,EACrBG,cAAc,EACdG,gBApUUA,KACtBoD,EAAa,IAAKjD,EAAW,CAAChC,GAAgBqC,GAAW,EAoU7C/zF,WAA4B,OAAjB6zF,QAAiB,IAAjBA,GAA2B,QAAVkC,EAAjBlC,EAAmBW,gBAAQ,IAAAuB,GAA3BA,EAA6BzlG,QAAS,IAGtDgqI,IAA+B,IAAlB5oC,IACZ7B,EAAAA,GAAAA,MAAA,OAAKnsC,UAAU,+CAA8CvjD,SAAA,EAC9C,OAAZ8xF,QAAY,IAAZA,OAAY,EAAZA,EAAckI,wBACbrK,EAAAA,GAAAA,KAACkD,GAAM,CACLp7E,KAAK,sBACLu7E,wBAAwB,EACxBC,cAAc,EACdC,OAAO,EACPC,OAAQA,KAENmnC,IAAmB,IAGdG,GAAYlkC,IAAa50D,IAC5B6vD,EAAiB,GACjB6B,EAAgB,QAEhBrzC,GAAa,KACX5tB,QAAQ7nB,IAAI,oBAAoB,GADlCy1C,IAIA62C,GAAiB,cACnB,KAKO,OAAZ/E,QAAY,IAAZA,OAAY,EAAZA,EAAciI,kBACbpK,EAAAA,GAAAA,KAAA,UACEpsC,UAAU,6EACVtsB,QAASA,KAEPqjG,IAAmB,GAGH,OAAZxoC,QAAY,IAAZA,GAAAA,EAAcC,yBAEX0oC,GAAYlkC,IAAa50D,IAC5B6vD,EAAiB,GACjB6B,EAAgB,QAEhBrzC,GAAa,KACX5tB,QAAQ7nB,IAAI,oBAAoB,GADlCy1C,KAIA62C,GAAiB,SACjBrF,EAAiB,GACjB6B,EAAgB,YAKVjsC,GAA4B,SAAjB0sC,GACnB4D,GAAW,QACb,EACA13F,SACH,iBAMNm6H,IACmB,IAAlB5oC,IACY,OAAZO,QAAY,IAAZA,OAAY,EAAZA,EAAciI,iBACI,UAAlBjM,KACC1mC,GACgB,eAAjB0sC,IACEnE,EAAAA,GAAAA,KAACkD,GAAM,CACLM,OAAQA,IAAMuE,GAAW,SACzBjgF,KAAM,YACNs7E,kBAAkB,EAClBlzF,UAAWi3F,KAGhBqjC,IACmB,IAAlB5oC,IACY,OAAZO,QAAY,IAAZA,OAAY,EAAZA,EAAckI,uBACI,gBAAlBlM,KACC1mC,GACgB,eAAjB0sC,IACEnE,EAAAA,GAAAA,KAACkD,GAAM,CACLM,OAAQA,IAAMuE,GAAW,gBACzBjgF,KAAM,sBACNu7E,wBAAwB,EACxBnzF,UAAW+kD,GAAgB8oC,SAMjCysC,KACAxqC,EAAAA,GAAAA,KAAA,OACEpsC,UAAS,GAAA5lC,OACPypC,GAAW4yE,GAAe,kBAAoB,mBAAkB,KAAAr8G,OAEvC,aAAzBimC,GAAM2tC,GAAgC,mBAAqB,GAAE,kFACkBvxF,WAK9EonD,GAA6B,IAAlBmqC,KAAyB5B,EAAAA,GAAAA,KAAA,OACrCpsC,UAAS,gDAAA5lC,OACkB,aAAzBimC,GAAM2tC,IACmB,oBAAzB3tC,GAAM2tC,GACF,qBACA,IACHvxF,SAEuB,aAAzB4jD,GAAM2tC,GACH,kBACyB,UAAzB3tC,GAAM2tC,GACN,eACyB,UAAzB3tC,GAAM2tC,GACN,eACyB,WAAzB3tC,GAAM2tC,GACN,oDACyB,0BAAzB3tC,GAAM2tC,GACN,0CACiB,eAAjBuC,EACA,GACAlwC,GAAM2tC,WAKlB5B,EAAAA,GAAAA,KAAA,OACEjlE,IAAK6vG,GACLh3E,UAAS,0BAAA5lC,OACP7I,GAAS,IACL,qDACA,IAAM9U,UAEZ0vF,EAAAA,GAAAA,MAAA,OAAKnsC,UAAU,cAAavjD,SAAA,CACzB8zF,IAAiBjwC,KAChB6rC,EAAAA,GAAAA,MAAAY,GAAAA,SAAA,CAAAtwF,SAAA,EACE0vF,EAAAA,GAAAA,MAAA,OAAKnsC,UAAS,GAAA5lC,OAAwB,IAAlB4zE,GAAuBnqC,EAAW,wBAA0B,GAAE,oCAAmCpnD,SAAA,GAEhHonD,GAA6B,IAAlBmqC,KAAyB5B,EAAAA,GAAAA,KAAA,KAAGpsC,UAAU,cAAavjD,SAAE4jD,GAAM2tC,MAEvEnqC,IACAsoC,EAAAA,GAAAA,MAAA,KAAGnsC,UAAU,cAAavjD,SAAA,CACvBuxF,EAAgB,EAAE,QAAI5B,EAAAA,GAAAA,KAAA,QAAA3vF,SAAM,SAIhConD,GAA6B,IAAlBmqC,IACV5B,EAAAA,GAAAA,KAAA,KAAGpsC,UAAU,cAAavjD,SAAC,qBAG/B2vF,EAAAA,GAAAA,KAACk7B,GAAW,CACVtnE,UAAU,yDACV9yC,IAAKA,QAKW,KAAb,OAARmjF,QAAQ,IAARA,OAAQ,EAARA,EAAUzjG,UAAiBi3D,IAC1BuoC,EAAAA,GAAAA,KAAA,OAAKpsC,UAAU,gBAAevjD,UAC5B0vF,EAAAA,GAAAA,MAAA,KAAGnsC,UAAU,mCAAkCvjD,SAAA,CAAC,+BACjB,SAKlConD,IACCuoC,EAAAA,GAAAA,KAAA,OAAKpsC,UAAU,iGAAgGvjD,UAC7G2vF,EAAAA,GAAAA,KAAC0C,GAAU,CAACr7E,MAAO,OAAQowC,QAASA,EAASjwB,KAAM,QAGvDw4D,EAAAA,GAAAA,KAAA,OACEpsC,UAAS,yCAAA5lC,OACW,IAAlB4zE,EAAsB,uBAAyB,GAAE,mBAAA5zE,OAEhC,eAAjBm2E,EACI,6FACA,iBACH9zF,UAEH0vF,EAAAA,GAAAA,MAACzB,GAAW7pD,SAAQ,CAClBvzC,MAAO,CACL6iG,oBACAG,uBACA6C,kBACAC,qBACA/C,WACAD,cACAN,kBACAS,eACAtC,mBACA+E,WACAoE,cACAC,kBACAC,qBACAH,cACAotB,iBACA1gE,UACAqvC,aACAlD,YACAiD,eACAjF,gBACAw2B,wBACAC,2BACAt6B,oBACAC,uBACAC,mBACAC,sBACA8rC,eACA1R,kBACA32B,uBACAD,0BACA62B,cACAC,iBACAr2B,eACAs2B,kBACAC,sBACAC,yBACAv6B,gBACA6rC,mBACAtpF,UACAq2E,aACA/vB,qBACAijC,wBACA/rC,iBACA+I,oBACA0xB,uBACAC,0BACA1xB,gBACAjF,mBACAkC,iBACAgD,oBACAtF,UACAC,aACAC,uBACAC,0BACAooC,gBACAC,mBACAjsC,aACA8M,kBACAC,qBACA6rB,oBACA5mH,SAAA,CAGD8zF,IAAiBjwC,IAA4BkqC,IAC5C4B,EAAAA,GAAAA,KAACk4B,GAAW,IAEb/zB,IAAiBjwC,KAAyB8rC,EAAAA,GAAAA,KAAC22B,GAAc,IACzDxyB,IAAiBjwC,KAA6BuD,IAAWuoC,EAAAA,GAAAA,KAACkB,GAAW,IACrEiD,IAAiBjwC,KAAgCuD,IAAWuoC,EAAAA,GAAAA,KAACyK,GAAU,KACrE1G,IACO,OAARE,QAAQ,IAARA,OAAQ,EAARA,EAAUzjG,SACVohG,GAAiB,GACjBA,GAAiB,GAChBmF,IACS,OAAR9C,QAAQ,IAARA,OAAQ,EAARA,EAAUzjG,SACVohG,GAAiB,GACjBA,GAAiB,IACF,eAAjBuC,IAAkC1sC,IAAWuoC,EAAAA,GAAAA,KAAC4F,GAAI,gBAK3D,EEptBP,SARA,WACE,OACE5F,EAAAA,GAAAA,KAAA,OAAKpsC,UAAU,MAAKvjD,UACnB2vF,EAAAA,GAAAA,KAAC4pC,GAAU,KAGhB,ECEA,GAZwBgC,IAClBA,GAAeA,aAAuB/sI,UACxC,6BAAqBwyB,MAAKwiC,IAAkD,IAAjD,OAAEg4E,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,QAAEC,GAASp4E,EACpEg4E,EAAOD,GACPE,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAQL,EAAY,GAExB,ECHW/+B,EAAAA,WAAoB1jG,SAAS2jG,eAAe,SACpDr/F,QACHuyF,EAAAA,GAAAA,KAAC5hD,EAAAA,WAAgB,CAAA/tC,UACf2vF,EAAAA,GAAAA,KAACksC,GAAG,OAORC","sources":["../node_modules/lodash.memoize/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/property-expr/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/tiny-case/index.js","../node_modules/toposort/index.js","../node_modules/classnames/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/logic/shouldSubscribeByName.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/useFormState.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/useController.ts","../node_modules/react-hook-form/src/useWatch.ts","../node_modules/react-hook-form/src/controller.tsx","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/logic/getValidationModes.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/iterateFieldsByAction.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasTruthyValue.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","../node_modules/@hookform/resolvers/src/validateFieldsNatively.ts","../node_modules/@hookform/resolvers/src/toNestErrors.ts","../node_modules/@hookform/resolvers/yup/src/yup.ts","../node_modules/@tabler/icons-react/src/defaultAttributes.js","../node_modules/@tabler/icons-react/src/createReactComponent.js","../node_modules/@tabler/icons-react/src/icons/IconArrowLeft.js","Context/appContext.js","constants.js","../node_modules/@tabler/icons-react/src/icons/IconMapPin.js","../node_modules/@tabler/icons-react/src/icons/IconClock.js","utils/index.js","../node_modules/react-spinners/esm/helpers/unitConverter.js","../node_modules/react-spinners/esm/helpers/animation.js","../node_modules/react-spinners/esm/ClipLoader.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","services/Url.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/get-user-locale/dist/esm/index.js","../node_modules/@wojtekmaj/date-utils/dist/esm/index.js","../node_modules/react-calendar/dist/esm/shared/const.js","../node_modules/react-calendar/dist/esm/shared/dateFormatter.js","../node_modules/react-calendar/dist/esm/shared/dates.js","../node_modules/react-calendar/dist/esm/Calendar/Navigation.js","../node_modules/react-calendar/dist/esm/Flex.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/react-calendar/dist/esm/shared/utils.js","../node_modules/react-calendar/dist/esm/TileGroup.js","../node_modules/react-calendar/dist/esm/Tile.js","../node_modules/react-calendar/dist/esm/CenturyView/Decade.js","../node_modules/react-calendar/dist/esm/CenturyView/Decades.js","../node_modules/react-calendar/dist/esm/shared/propTypes.js","../node_modules/react-calendar/dist/esm/CenturyView.js","../node_modules/react-calendar/dist/esm/DecadeView/Year.js","../node_modules/react-calendar/dist/esm/DecadeView/Years.js","../node_modules/react-calendar/dist/esm/DecadeView.js","../node_modules/react-calendar/dist/esm/YearView/Month.js","../node_modules/react-calendar/dist/esm/YearView/Months.js","../node_modules/react-calendar/dist/esm/YearView.js","../node_modules/react-calendar/dist/esm/MonthView/Day.js","../node_modules/react-calendar/dist/esm/MonthView/Days.js","../node_modules/react-calendar/dist/esm/MonthView/Weekdays.js","../node_modules/react-calendar/dist/esm/MonthView/WeekNumber.js","../node_modules/react-calendar/dist/esm/MonthView/WeekNumbers.js","../node_modules/react-calendar/dist/esm/MonthView.js","../node_modules/react-calendar/dist/esm/Calendar.js","../node_modules/react-calendar/dist/esm/index.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/goober/dist/goober.modern.js","../node_modules/react-hot-toast/src/core/types.ts","../node_modules/react-hot-toast/src/core/utils.ts","../node_modules/react-hot-toast/src/core/store.ts","../node_modules/react-hot-toast/src/core/toast.ts","../node_modules/react-hot-toast/src/core/use-toaster.ts","../node_modules/react-hot-toast/src/components/error.tsx","../node_modules/react-hot-toast/src/components/loader.tsx","../node_modules/react-hot-toast/src/components/checkmark.tsx","../node_modules/react-hot-toast/src/components/toast-icon.tsx","../node_modules/react-hot-toast/src/components/toast-bar.tsx","../node_modules/react-hot-toast/src/components/toaster.tsx","../node_modules/react-hot-toast/src/index.ts","../node_modules/react-spinners/esm/BeatLoader.js","../node_modules/date-fns/isDate.mjs","../node_modules/date-fns/toDate.mjs","../node_modules/date-fns/isValid.mjs","../node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","../node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","../node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","../node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../node_modules/date-fns/locale/en-US/_lib/localize.mjs","../node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../node_modules/date-fns/locale/en-US/_lib/match.mjs","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../node_modules/date-fns/locale/en-US.mjs","../node_modules/date-fns/_lib/defaultOptions.mjs","../node_modules/date-fns/constants.mjs","../node_modules/date-fns/startOfDay.mjs","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","../node_modules/date-fns/differenceInCalendarDays.mjs","../node_modules/date-fns/constructFrom.mjs","../node_modules/date-fns/startOfYear.mjs","../node_modules/date-fns/getDayOfYear.mjs","../node_modules/date-fns/startOfWeek.mjs","../node_modules/date-fns/startOfISOWeek.mjs","../node_modules/date-fns/getISOWeekYear.mjs","../node_modules/date-fns/startOfISOWeekYear.mjs","../node_modules/date-fns/getISOWeek.mjs","../node_modules/date-fns/getWeekYear.mjs","../node_modules/date-fns/startOfWeekYear.mjs","../node_modules/date-fns/getWeek.mjs","../node_modules/date-fns/_lib/addLeadingZeros.mjs","../node_modules/date-fns/_lib/format/lightFormatters.mjs","../node_modules/date-fns/_lib/format/formatters.mjs","../node_modules/date-fns/_lib/format/longFormatters.mjs","../node_modules/date-fns/_lib/protectedTokens.mjs","../node_modules/date-fns/format.mjs","containers/BookingList/BookingDetails/index.js","../node_modules/@tabler/icons-react/src/icons/IconSearch.js","components/Input/index.js","containers/BookingList/index.js","components/Button/index.js","../node_modules/@tabler/icons-react/src/icons/IconTrash.js","containers/Cart/IssueList/index.js","icons/Chevron-Right.svg","icons/ClipboardText.svg","containers/Cart/index.js","../node_modules/@tabler/icons-react/src/icons/IconCalendar.js","containers/Completion/index.js","../node_modules/@tabler/icons-react/src/icons/IconMessage.js","../node_modules/@tabler/icons-react/src/icons/IconMail.js","../node_modules/@tabler/icons-react/src/icons/IconPhoneCall.js","components/Tooltip/useTooltip.js","components/Tooltip/index.js","components/Card/index.js","components/FormInput.js","../node_modules/libphonenumber-js/metadata.min.json.js","../node_modules/libphonenumber-js/source/helpers/isObject.js","../node_modules/libphonenumber-js/source/normalizeArguments.js","../node_modules/libphonenumber-js/source/constants.js","../node_modules/libphonenumber-js/source/ParseError.js","../node_modules/libphonenumber-js/source/tools/semver-compare.js","../node_modules/libphonenumber-js/source/metadata.js","../node_modules/libphonenumber-js/source/helpers/extension/createExtensionPattern.js","../node_modules/libphonenumber-js/source/helpers/isViablePhoneNumber.js","../node_modules/libphonenumber-js/source/helpers/extension/extractExtension.js","../node_modules/libphonenumber-js/source/helpers/parseDigits.js","../node_modules/libphonenumber-js/source/parseIncompletePhoneNumber.js","../node_modules/libphonenumber-js/source/helpers/checkNumberLength.js","../node_modules/libphonenumber-js/source/helpers/mergeArrays.js","../node_modules/libphonenumber-js/source/isPossible.js","../node_modules/libphonenumber-js/source/helpers/matchesEntirely.js","../node_modules/libphonenumber-js/source/helpers/getNumberType.js","../node_modules/libphonenumber-js/source/helpers/getPossibleCountriesForNumber.js","../node_modules/libphonenumber-js/source/helpers/applyInternationalSeparatorStyle.js","../node_modules/libphonenumber-js/source/helpers/formatNationalNumberUsingFormat.js","../node_modules/libphonenumber-js/source/helpers/getIddPrefix.js","../node_modules/libphonenumber-js/source/format.js","../node_modules/libphonenumber-js/source/helpers/RFC3966.js","../node_modules/libphonenumber-js/source/PhoneNumber.js","../node_modules/libphonenumber-js/source/isValid.js","../node_modules/libphonenumber-js/source/helpers/stripIddPrefix.js","../node_modules/libphonenumber-js/source/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","../node_modules/libphonenumber-js/source/helpers/extractNationalNumber.js","../node_modules/libphonenumber-js/source/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","../node_modules/libphonenumber-js/source/helpers/extractCountryCallingCode.js","../node_modules/libphonenumber-js/source/helpers/getCountryByNationalNumber.js","../node_modules/libphonenumber-js/source/helpers/getCountryByCallingCode.js","../node_modules/libphonenumber-js/source/helpers/extractPhoneContext.js","../node_modules/libphonenumber-js/source/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","../node_modules/libphonenumber-js/source/parse.js","../node_modules/libphonenumber-js/source/parsePhoneNumber_.js","../node_modules/libphonenumber-js/source/parsePhoneNumberWithError_.js","../node_modules/libphonenumber-js/source/isValidPhoneNumber.js","../node_modules/react-phone-number-input/locale/en.json.js","../node_modules/react-phone-number-input/source/PropTypes.js","../node_modules/input-format/source/helpers.js","../node_modules/input-format/source/templateFormatter.js","../node_modules/input-format/source/closeBraces.js","../node_modules/input-format/source/dom.js","../node_modules/input-format/source/inputControl.js","../node_modules/input-format/source/parse.js","../node_modules/input-format/source/edit.js","../node_modules/input-format/source/format.js","../node_modules/input-format/source/react/Input.js","../node_modules/libphonenumber-js/source/AsYouTypeState.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.util.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.complete.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternParser.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternMatcher.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.js","../node_modules/libphonenumber-js/source/AsYouTypeParser.js","../node_modules/libphonenumber-js/source/AsYouType.js","../node_modules/react-phone-number-input/source/helpers/inputValuePrefix.js","../node_modules/react-phone-number-input/source/helpers/parsePhoneNumberCharacter.js","../node_modules/react-phone-number-input/source/useInputKeyDownHandler.js","../node_modules/react-phone-number-input/source/InputSmart.js","../node_modules/react-phone-number-input/source/InputBasic.js","../node_modules/libphonenumber-js/source/formatIncompletePhoneNumber.js","../node_modules/country-flag-icons/source/unicode.js","../node_modules/react-phone-number-input/source/CountrySelect.js","../node_modules/react-phone-number-input/source/Flag.js","../node_modules/react-phone-number-input/source/InternationalIcon.js","../node_modules/react-phone-number-input/source/helpers/countries.js","../node_modules/libphonenumber-js/source/getCountries.js","../node_modules/react-phone-number-input/source/CountryIcon.js","../node_modules/react-phone-number-input/source/useExternalRef.js","../node_modules/react-phone-number-input/source/helpers/getInternationalPhoneNumberPrefix.js","../node_modules/react-phone-number-input/source/helpers/phoneInputHelpers.js","../node_modules/libphonenumber-js/source/parsePhoneNumber.js","../node_modules/react-phone-number-input/source/helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js","../node_modules/react-phone-number-input/source/PhoneInputWithCountry.js","../node_modules/react-phone-number-input/source/PhoneInputWithCountryDefault.js","../node_modules/react-phone-number-input/min/index.js","containers/ContactDetails/index.js","containers/ProductList/index.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/ProgressBar.js","../node_modules/yup/index.esm.js","AppManager.js","../node_modules/react-hook-form/src/useForm.ts","App.js","reportWebVitals.js","index.js"],"sourcesContent":["/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = memoize;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","const reWords = /[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+|(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*/g\n\nconst words = (str) => str.match(reWords) || []\n\nconst upperFirst = (str) => str[0].toUpperCase() + str.slice(1)\n\nconst join = (str, d) => words(str).join(d).toLowerCase()\n\nconst camelCase = (str) =>\n words(str).reduce(\n (acc, next) =>\n `${acc}${\n !acc\n ? next.toLowerCase()\n : next[0].toUpperCase() + next.slice(1).toLowerCase()\n }`,\n '',\n )\n\nconst pascalCase = (str) => upperFirst(camelCase(str))\n\nconst snakeCase = (str) => join(str, '_')\n\nconst kebabCase = (str) => join(str, '-')\n\nconst sentenceCase = (str) => upperFirst(join(str, ' '))\n\nconst titleCase = (str) => words(str).map(upperFirst).join(' ')\n\nmodule.exports = {\n words,\n upperFirst,\n camelCase,\n pascalCase,\n snakeCase,\n kebabCase,\n sentenceCase,\n titleCase,\n}\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"857df130\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"rd-quote-widget:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkrd_quote_widget\"] = self[\"webpackChunkrd_quote_widget\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","export default (value: unknown): value is Date => value instanceof Date;\n","export default (value: unknown): value is null | undefined => value == null;\n","import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown): value is object =>\n typeof value === 'object';\n\nexport default (value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n","import { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set, name: InternalFieldName) =>\n names.has(getNodeParentName(name));\n","export default (name: string) =>\n name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n","import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isWeb from './isWeb';\n\nexport default function cloneObject(data: T): T {\n let copy: any;\n const isArray = Array.isArray(data);\n\n if (data instanceof Date) {\n copy = new Date(data);\n } else if (data instanceof Set) {\n copy = new Set(data);\n } else if (\n !(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))\n ) {\n copy = isArray ? [] : {};\n\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n } else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n } else {\n return data;\n }\n\n return copy;\n}\n","export default (value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","export default (val: unknown): val is undefined => val === undefined;\n","import compact from './compact';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\n\nexport default (object: T, path?: string, defaultValue?: unknown): any => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n\n const result = compact(path.split(/[,[\\].]+?/)).reduce(\n (result, key) =>\n isNullOrUndefined(result) ? result : result[key as keyof {}],\n object,\n );\n\n return isUndefined(result) || result === object\n ? isUndefined(object[path as keyof T])\n ? defaultValue\n : object[path as keyof T]\n : result;\n};\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","export const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n} as const;\n\nexport const VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n} as const;\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n} as const;\n","import React from 'react';\n\nimport { FieldValues, FormProviderProps, UseFormReturn } from './types';\n\nconst HookFormContext = React.createContext(null);\n\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n TContext = any,\n TransformedValues extends FieldValues | undefined = undefined,\n>(): UseFormReturn =>\n React.useContext(HookFormContext) as UseFormReturn<\n TFieldValues,\n TContext,\n TransformedValues\n >;\n\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const FormProvider = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: FormProviderProps,\n) => {\n const { children, ...data } = props;\n return (\n \n {children}\n \n );\n};\n","import { VALIDATION_MODE } from '../constants';\nimport { Control, FieldValues, FormState, ReadFormState } from '../types';\n\nexport default (\n formState: FormState,\n control: Control,\n localProxyFormState?: ReadFormState,\n isRoot = true,\n) => {\n const result = {\n defaultValues: control._defaultValues,\n } as typeof formState;\n\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key as keyof FormState & keyof ReadFormState;\n\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n\n return result;\n};\n","import { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import { VALIDATION_MODE } from '../constants';\nimport {\n Control,\n FieldValues,\n FormState,\n InternalFieldName,\n ReadFormState,\n} from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\n\nexport default (\n formStateData: Partial> & { name?: InternalFieldName },\n _proxyFormState: K,\n updateFormState: Control['_updateFormState'],\n isRoot?: boolean,\n) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n","export default (value: T) => (Array.isArray(value) ? value : [value]);\n","import convertToArrayPayload from '../utils/convertToArrayPayload';\n\nexport default (\n name?: T,\n signalName?: string,\n exact?: boolean,\n) =>\n !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some(\n (currentName) =>\n currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)),\n );\n","import React from 'react';\n\nimport { Subject } from './utils/createSubject';\n\ntype Props = {\n disabled?: boolean;\n subject: Subject;\n next: (value: T) => void;\n};\n\nexport function useSubscribe(props: Props) {\n const _props = React.useRef(props);\n _props.current = props;\n\n React.useEffect(() => {\n const subscription =\n !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n","import React from 'react';\n\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormStateProps,\n UseFormStateReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n *
\n * \n * {dirtyFields.firstName &&

Field is dirty.

}\n * \n *
\n * );\n * }\n * ```\n */\nfunction useFormState(\n props?: UseFormStateProps,\n): UseFormStateReturn {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) =>\n _mounted.current &&\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n value.name,\n exact,\n ) &&\n shouldRenderFormState(\n value,\n _localProxyFormState.current,\n control._updateFormState,\n ) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n\n return getProxyFormState(\n formState,\n control,\n _localProxyFormState.current,\n false,\n );\n}\n\nexport { useFormState };\n","export default (value: unknown): value is string => typeof value === 'string';\n","import { DeepPartial, FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default (\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n defaultValue?: DeepPartial | unknown,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n","export default (value: string) => /^\\w*$/.test(value);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import { FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default (object: FieldValues, path: string, value?: unknown) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n};\n","import React from 'react';\n\nimport getEventValue from './logic/getEventValue';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport cloneObject from './utils/cloneObject';\nimport get from './utils/get';\nimport isBoolean from './utils/isBoolean';\nimport isUndefined from './utils/isUndefined';\nimport { EVENTS } from './constants';\nimport {\n ControllerFieldState,\n Field,\n FieldPath,\n FieldPathValue,\n FieldValues,\n InternalFieldName,\n UseControllerProps,\n UseControllerReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useFormState } from './useFormState';\nimport { useWatch } from './useWatch';\nimport { set } from './utils';\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n *
\n * \n *

{fieldState.isTouched && \"Touched\"}

\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *
\n * );\n * }\n * ```\n */\nexport function useController<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: UseControllerProps,\n): UseControllerReturn {\n const methods = useFormContext();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(\n control._formValues,\n name,\n get(control._defaultValues, name, props.defaultValue),\n ),\n exact: true,\n }) as FieldPathValue;\n const formState = useFormState({\n control,\n name,\n });\n\n const _registerProps = React.useRef(\n control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }),\n );\n\n React.useEffect(() => {\n const _shouldUnregisterField =\n control._options.shouldUnregister || shouldUnregister;\n\n const updateMounted = (name: InternalFieldName, value: boolean) => {\n const field: Field = get(control._fields, name);\n\n if (field) {\n field._f.mount = value;\n }\n };\n\n updateMounted(name, true);\n\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n\n return () => {\n (\n isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField\n )\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n\n React.useEffect(() => {\n if (get(control._fields, name)) {\n control._updateDisabledField({\n disabled,\n fields: control._fields,\n name,\n value: get(control._fields, name)._f.value,\n });\n }\n }, [disabled, name, control]);\n\n return {\n field: {\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange: React.useCallback(\n (event) =>\n _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name as InternalFieldName,\n },\n type: EVENTS.CHANGE,\n }),\n [name],\n ),\n onBlur: React.useCallback(\n () =>\n _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name as InternalFieldName,\n },\n type: EVENTS.BLUR,\n }),\n [name, control],\n ),\n ref: (elm) => {\n const field = get(control._fields, name);\n\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message: string) =>\n elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n },\n formState,\n fieldState: Object.defineProperties(\n {},\n {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n },\n ) as ControllerFieldState,\n };\n}\n","import React from 'react';\n\nimport generateWatchOutput from './logic/generateWatchOutput';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport cloneObject from './utils/cloneObject';\nimport {\n Control,\n DeepPartialSkipArrayKey,\n FieldPath,\n FieldPathValue,\n FieldPathValues,\n FieldValues,\n InternalFieldName,\n UseWatchProps,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Subscribe to the entire form values change and re-render at the hook level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * defaultValue: {\n * name: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(props: {\n defaultValue?: DeepPartialSkipArrayKey;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): DeepPartialSkipArrayKey;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * name: \"fieldA\",\n * defaultValue: \"default value\",\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath = FieldPath,\n>(props: {\n name: TFieldName;\n defaultValue?: FieldPathValue;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValue;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * name: [\"fieldA\", \"fieldB\"],\n * defaultValue: {\n * fieldA: \"data\",\n * fieldB: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldNames extends readonly FieldPath[] = readonly FieldPath[],\n>(props: {\n name: readonly [...TFieldNames];\n defaultValue?: DeepPartialSkipArrayKey;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValues;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * // can skip passing down the control into useWatch if the form is wrapped with the FormProvider\n * const values = useWatch()\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(): DeepPartialSkipArrayKey;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nexport function useWatch(\n props?: UseWatchProps,\n) {\n const methods = useFormContext();\n const {\n control = methods.control,\n name,\n defaultValue,\n disabled,\n exact,\n } = props || {};\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState: { name?: InternalFieldName; values?: FieldValues }) => {\n if (\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n formState.name,\n exact,\n )\n ) {\n updateValue(\n cloneObject(\n generateWatchOutput(\n _name.current as InternalFieldName | InternalFieldName[],\n control._names,\n formState.values || control._formValues,\n false,\n defaultValue,\n ),\n ),\n );\n }\n },\n });\n\n const [value, updateValue] = React.useState(\n control._getWatch(\n name as InternalFieldName,\n defaultValue as DeepPartialSkipArrayKey,\n ),\n );\n\n React.useEffect(() => control._removeUnmounted());\n\n return value;\n}\n","import { ControllerProps, FieldPath, FieldValues } from './types';\nimport { useController } from './useController';\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n *
\n * (\n * <>\n * \n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *

{fieldState.isTouched ? \"touched\" : \"\"}

\n * \n * )}\n * />\n * \n * );\n * }\n * ```\n */\nconst Controller = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: ControllerProps,\n) => props.render(useController(props));\n\nexport { Controller };\n","import {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","import { VALIDATION_MODE } from '../constants';\nimport { Mode, ValidationModeFlags } from '../types';\n\nexport default (mode?: Mode): ValidationModeFlags => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","import { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) =>\n !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some(\n (watchName) =>\n name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length)),\n ));\n","import { FieldRefs, InternalFieldName, Ref } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\n\nconst iterateFieldsByAction = (\n fields: FieldRefs,\n action: (ref: Ref, name: string) => 1 | undefined | void,\n fieldsNames?: Set | InternalFieldName[] | 0,\n abortEarly?: boolean,\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const { _f, ...currentField } = field;\n\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n break;\n } else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n break;\n } else {\n iterateFieldsByAction(currentField, action);\n }\n } else if (isObject(currentField)) {\n iterateFieldsByAction(currentField, action);\n }\n }\n }\n};\n\nexport default iterateFieldsByAction;\n","import {\n FieldError,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport compact from '../utils/compact';\nimport get from '../utils/get';\nimport set from '../utils/set';\n\nexport default (\n errors: FieldErrors,\n error: Partial>,\n name: InternalFieldName,\n): FieldErrors => {\n const fieldArrayErrors = compact(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import isWeb from './isWeb';\n\nexport default (value: unknown): value is HTMLElement => {\n if (!isWeb) {\n return false;\n }\n\n const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n return (\n value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement)\n );\n};\n","import { Message } from '../types';\nimport isString from '../utils/isString';\n\nexport default (value: unknown): value is Message => isString(value);\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldError,\n FieldValues,\n InternalFieldErrors,\n MaxType,\n Message,\n MinType,\n NativeFieldValue,\n} from '../types';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMessage from '../utils/isMessage';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async (\n field: Field,\n formValues: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n isFieldArray?: boolean,\n): Promise => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n disabled,\n } = field._f;\n const inputValue: NativeFieldValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType: MaxType = INPUT_VALIDATION_RULES.maxLength,\n minType: MinType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue as number)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n const convertTimeToDate = (time: unknown) =>\n new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (\n (maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))\n ) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue, formValues),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n setCustomValidity(validateError.message);\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n setCustomValidity(true);\n return error;\n};\n","import isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nfunction isEmptyArray(obj: unknown[]) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\n\nexport default function unset(object: any, path: string | (string | number)[]) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n\n const index = paths.length - 1;\n const key = paths[index];\n\n if (childObject) {\n delete childObject[key];\n }\n\n if (\n index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))\n ) {\n unset(object, paths.slice(0, -1));\n }\n\n return object;\n}\n","import { Noop } from '../types';\n\nexport type Observer = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject = {\n readonly observers: Observer[];\n subscribe: (value: Observer) => Subscription;\n unsubscribe: Noop;\n} & Observer;\n\nexport default (): Subject => {\n let _observers: Observer[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n","import { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isObject from '../utils/isObject';\n\nimport isDateObject from './isDateObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(object1: any, object2: any) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n","import { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import isObject from './isObject';\n\nexport default (value: unknown): value is object =>\n isObject(value) && Object.values(value).some((val) => val);\n","import isFunction from './isFunction';\n\nexport default (data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n","import deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction markFieldsDirty(data: T, fields: Record = {}) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n } else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n\n return fields;\n}\n\nfunction getDirtyFieldsFromDefaultValues(\n data: T,\n formValues: T,\n dirtyFieldsFromValues: Record<\n Extract,\n ReturnType | boolean\n >,\n) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n if (\n isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])\n ) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n } else {\n getDirtyFieldsFromDefaultValues(\n data[key],\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n );\n }\n } else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n\n return dirtyFieldsFromValues;\n}\n\nexport default (defaultValues: T, formValues: T) =>\n getDirtyFieldsFromDefaultValues(\n defaultValues,\n formValues,\n markFieldsDirty(formValues),\n );\n","import { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","import { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n","import {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default (\n fieldsNames: Set | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName[],\n fields,\n shouldUseNativeValidation,\n };\n};\n","import {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n rule?: ValidationRule | ValidationValueMessage,\n) =>\n isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n","import { Field } from '../types';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n","import { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\nimport isKey from '../utils/isKey';\n\nexport default function schemaErrorLookup(\n errors: FieldErrors,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n","import { ValidationModeFlags } from '../types';\n\nexport default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: {\n isOnBlur: boolean;\n isOnChange: boolean;\n },\n mode: Partial,\n) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default (ref: T, name: string) =>\n !compact(get(ref, name)).length && unset(ref, name);\n","import { EVENTS, VALIDATION_MODE } from '../constants';\nimport {\n BatchFieldArrayUpdate,\n ChangeHandler,\n Control,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormState,\n GetIsDirty,\n InternalFieldName,\n Names,\n Path,\n PathValue,\n ReadFormState,\n Ref,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n UseFormClearErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport objectHasTruthyValue from '../utils/objectHasTruthyValue';\nimport set from '../utils/set';\nimport unset from '../utils/unset';\n\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport getValidationModes from './getValidationModes';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport iterateFieldsByAction from './iterateFieldsByAction';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport updateFieldArrayRootError from './updateFieldArrayRootError';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n} as const;\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps = {},\n): Omit, 'formState'> {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState: FormState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields: FieldRefs = {};\n let _defaultValues =\n isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names: Names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback: DelayCallback | null;\n let timer = 0;\n const _proxyFormState: ReadFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects: Subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const debounce =\n (callback: T) =>\n (wait: number) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n\n const _updateValid = async (shouldUpdateValid?: boolean) => {\n if (_proxyFormState.isValid || shouldUpdateValid) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n\n const _updateIsValidating = (isValidating: boolean, names: string[]) => {\n if (!(_proxyFormState.isValidating || _proxyFormState.validatingFields)) {\n return;\n }\n names.forEach((name) => {\n set(_formState.validatingFields, name, isValidating);\n });\n _formState.isValidating = objectHasTruthyValue(_formState.validatingFields);\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: _formState.isValidating,\n });\n };\n\n const _updateFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n if (\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))\n ) {\n const errors = method(\n get(_formState.errors, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n if (\n _proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))\n ) {\n const touchedFields = method(\n get(_formState.touchedFields, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const _setErrors = (errors: FieldErrors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n _state.mount && _updateValid();\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick, 'dirtyFields' | 'isDirty' | 'touchedFields'>\n > => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output: Partial> & { name: string } = {\n name,\n };\n const disabledField = !!(\n get(_fields, name) && get(_fields, name)._f.disabled\n );\n\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n\n const isCurrentFieldPristine =\n disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n\n isPreviousDirty = !!(!disabledField && get(_formState.dirtyFields, name));\n isCurrentFieldPristine || disabledField\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n\n return shouldUpdateField ? output : {};\n };\n\n const shouldRenderByError = (\n name: InternalFieldName,\n isValid?: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean;\n },\n ) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n } else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n\n if (\n (error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n\n _subjects.state.next(updatedFormState);\n }\n\n _updateIsValidating(\n false,\n Object.keys(_formState.validatingFields).filter((key) => key === name),\n );\n };\n\n const _executeSchema = async (name?: InternalFieldName[]) =>\n _options.resolver!(\n _formValues as TFieldValues,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n );\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const { errors } = await _executeSchema(names);\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors;\n }\n\n return errors;\n };\n\n const executeBuiltInValidation = async (\n fields: FieldRefs,\n shouldOnlyCheckValid?: boolean,\n context: {\n valid: boolean;\n } = {\n valid: true,\n },\n ) => {\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f, ...fieldValue } = field;\n\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const fieldError = await validateField(\n field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation && !shouldOnlyCheckValid,\n isFieldArrayRoot,\n );\n\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(\n _formState.errors,\n fieldError,\n _f.name,\n )\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n\n fieldValue &&\n (await executeBuiltInValidation(\n fieldValue,\n shouldOnlyCheckValid,\n context,\n ));\n }\n }\n\n return context.valid;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) => (\n name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues)\n );\n\n const _getWatch: WatchInternal = (\n names,\n defaultValue,\n isGlobal,\n ) =>\n generateWatchOutput(\n names,\n _names,\n {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n },\n isGlobal,\n defaultValue,\n );\n\n const _getFieldArray = (\n name: InternalFieldName,\n ): Partial[] =>\n compact(\n get(\n _state.mount ? _formValues : _defaultValues,\n name,\n props.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue,\n options: SetValueConfig = {},\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (optionRef) =>\n (optionRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(optionRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach(\n (checkboxRef) =>\n (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!(fieldValue as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : fieldValue === checkboxRef.value),\n )\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(\n name,\n fieldValue,\n options.shouldTouch,\n options.shouldDirty,\n true,\n );\n\n options.shouldValidate && trigger(name as Path);\n };\n\n const setValues = <\n T extends InternalFieldName,\n K extends SetFieldValue,\n U extends SetValueConfig,\n >(\n name: T,\n value: K,\n options: U,\n ) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n\n const setValue: UseFormSetValue = (\n name,\n value,\n options = {},\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n\n set(_formValues, name, cloneValue);\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n\n if (\n (_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty\n ) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name: _state.mount ? name : undefined,\n values: { ..._formValues },\n });\n };\n\n const onChange: ChangeHandler = async (event) => {\n const target = event.target;\n let name = target.name as string;\n let isFieldValueUpdated = true;\n const field: Field = get(_fields, name);\n const getCurrentFieldValue = () =>\n target.type ? getFieldValue(field._f) : getEventValue(event);\n const _updateIsFieldValueUpdated = (fieldValue: any): void => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n fieldValue === get(_formValues, name, fieldValue);\n };\n\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation =\n (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n validationModeAfterSubmit,\n validationModeBeforeSubmit,\n );\n const watched = isWatched(name, _names, isBlurEvent);\n\n set(_formValues, name, fieldValue);\n\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n false,\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n\n _updateIsValidating(true, [name]);\n\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n }\n } else {\n error = (\n await validateField(\n field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n )\n )[name];\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n } else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(\n field._f.deps as\n | FieldPath\n | FieldPath[],\n );\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n\n const _focusInput = (ref: Ref, key: string) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n\n const trigger: UseFormTrigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n _updateIsValidating(true, fieldNames);\n\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(\n field && field._f ? { [fieldName]: field } : field,\n );\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n } else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n isValidating: false,\n });\n\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(\n _fields,\n _focusInput,\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues = (\n fieldNames?:\n | FieldPath\n | ReadonlyArray>,\n ) => {\n const values = {\n ..._defaultValues,\n ...(_state.mount ? _formValues : {}),\n };\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n\n const getFieldState: UseFormGetFieldState = (\n name,\n formState,\n ) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n isValidating: !!get((formState || _formState).validatingFields, name),\n error: get((formState || _formState).errors, name),\n });\n\n const clearErrors: UseFormClearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) =>\n unset(_formState.errors, inputName),\n );\n\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n\n const setError: UseFormSetError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n\n set(_formState.errors, name, {\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch = (\n name?:\n | FieldPath\n | ReadonlyArray>\n | WatchObserver,\n defaultValue?: DeepPartial,\n ) =>\n isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) =>\n name(\n _getWatch(undefined, defaultValue),\n payload as {\n name?: FieldPath;\n type?: EventType;\n value?: unknown;\n },\n ),\n })\n : _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue,\n true,\n );\n\n const unregister: UseFormUnregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n\n _subjects.values.next({\n values: { ..._formValues },\n });\n\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n\n !options.keepIsValid && _updateValid();\n };\n\n const _updateDisabledField: Control['_updateDisabledField'] = ({\n disabled,\n name,\n field,\n fields,\n value,\n }) => {\n if (isBoolean(disabled)) {\n const inputValue = disabled\n ? undefined\n : isUndefined(value)\n ? getFieldValue(field ? field._f : get(fields, name)._f)\n : value;\n set(_formValues, name, inputValue);\n updateTouchAndDirty(name, inputValue, false, false, true);\n }\n };\n\n const register: UseFormRegister = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n if (field) {\n _updateDisabledField({\n field,\n disabled: options.disabled,\n name,\n value: options.value,\n });\n } else {\n updateValidAndValue(name, true, options.value);\n }\n\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const _focusError = () =>\n _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n\n const _disableForm = (disabled?: boolean) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(\n _fields,\n (ref, name) => {\n let requiredDisabledState = disabled;\n const currentField = get(_fields, name);\n if (currentField && isBoolean(currentField._f.disabled)) {\n requiredDisabledState ||= currentField._f.disabled;\n }\n\n ref.disabled = requiredDisabledState;\n },\n 0,\n false,\n );\n }\n };\n\n const handleSubmit: UseFormHandleSubmit =\n (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n } else {\n await executeBuiltInValidation(_fields);\n }\n\n unset(_formState.errors, 'root');\n\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues as TFieldValues, e);\n } catch (error) {\n onValidError = error;\n }\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n\n const resetField: UseFormResetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n } else {\n setValue(\n name,\n options.defaultValue as PathValue<\n TFieldValues,\n FieldPath\n >,\n );\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n\n _subjects.state.next({ ..._formState });\n }\n };\n\n const _reset: UseFormReset = (\n formValues,\n keepStateOptions = {},\n ) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(\n fieldName as FieldPath,\n get(values, fieldName),\n );\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n\n _fields = {};\n }\n\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n\n _subjects.array.next({\n values: { ...values },\n });\n\n _subjects.values.next({\n values: { ...values },\n });\n }\n\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues;\n\n _state.watch = !!props.shouldUnregister;\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(\n keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)\n ),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? []\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n\n const reset: UseFormReset = (formValues, keepStateOptions) =>\n _reset(\n isFunction(formValues)\n ? formValues(_formValues as TFieldValues)\n : formValues,\n keepStateOptions,\n );\n\n const setFocus: UseFormSetFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n\n const _updateFormState = (\n updatedFormState: Partial>,\n ) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n\n const _resetDefaultValues = () =>\n isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _disableForm,\n _subjects,\n _proxyFormState,\n _setErrors,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n","import {\n get,\n FieldError,\n ResolverOptions,\n Ref,\n FieldErrors,\n FieldValues,\n} from 'react-hook-form';\n\nconst setCustomValidity = (\n ref: Ref,\n fieldPath: string,\n errors: FieldErrors,\n) => {\n if (ref && 'reportValidity' in ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n ref.setCustomValidity((error && error.message) || '');\n\n ref.reportValidity();\n }\n};\n\n// Native validation (web only)\nexport const validateFieldsNatively = (\n errors: FieldErrors,\n options: ResolverOptions,\n): void => {\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n if (field && field.ref && 'reportValidity' in field.ref) {\n setCustomValidity(field.ref, fieldPath, errors);\n } else if (field.refs) {\n field.refs.forEach((ref: HTMLInputElement) =>\n setCustomValidity(ref, fieldPath, errors),\n );\n }\n }\n};\n","import {\n set,\n get,\n FieldErrors,\n Field,\n ResolverOptions,\n FieldValues,\n InternalFieldName,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestErrors = (\n errors: FieldErrors,\n options: ResolverOptions,\n): FieldErrors => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n const error = Object.assign(errors[path] || {}, {\n ref: field && field.ref,\n });\n\n if (isNameInFieldArray(options.names || Object.keys(errors), path)) {\n const fieldArrayErrors = Object.assign({}, get(fieldErrors, path));\n\n set(fieldArrayErrors, 'root', error);\n set(fieldErrors, path, fieldArrayErrors);\n } else {\n set(fieldErrors, path, error);\n }\n }\n\n return fieldErrors;\n};\n\nconst isNameInFieldArray = (\n names: InternalFieldName[],\n name: InternalFieldName,\n) => names.some((n) => n.startsWith(name + '.'));\n","import * as Yup from 'yup';\nimport { toNestErrors, validateFieldsNatively } from '@hookform/resolvers';\nimport {\n appendErrors,\n FieldError,\n FieldValues,\n Resolver,\n} from 'react-hook-form';\n\n/**\n * Why `path!` ? because it could be `undefined` in some case\n * https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n */\nconst parseErrorSchema = (\n error: Yup.ValidationError,\n validateAllFieldCriteria: boolean,\n) => {\n return (error.inner || []).reduce>(\n (previous, error) => {\n if (!previous[error.path!]) {\n previous[error.path!] = { message: error.message, type: error.type! };\n }\n\n if (validateAllFieldCriteria) {\n const types = previous[error.path!].types;\n const messages = types && types[error.type!];\n\n previous[error.path!] = appendErrors(\n error.path!,\n validateAllFieldCriteria,\n previous,\n error.type!,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n return previous;\n },\n {},\n );\n};\n\nexport function yupResolver(\n schema:\n | Yup.ObjectSchema\n | ReturnType>>,\n schemaOptions: Parameters<(typeof schema)['validate']>[1] = {},\n resolverOptions: {\n /**\n * @default async\n */\n mode?: 'async' | 'sync';\n /**\n * Return the raw input values rather than the parsed values.\n * @default false\n */\n raw?: boolean;\n } = {},\n): Resolver> {\n return async (values, context, options) => {\n try {\n if (schemaOptions.context && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n \"You should not used the yup options context. Please, use the 'useForm' context object instead\",\n );\n }\n\n const result = await schema[\n resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'\n ](\n values,\n Object.assign({ abortEarly: false }, schemaOptions, { context }),\n );\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n values: resolverOptions.raw ? values : result,\n errors: {},\n };\n } catch (e: any) {\n if (!e.inner) {\n throw e;\n }\n\n return {\n values: {},\n errors: toNestErrors(\n parseErrorSchema(\n e,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n}\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { forwardRef, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport defaultAttributes from './defaultAttributes';\n\nexport default (iconName, iconNamePascal, iconNode) => {\n const Component = forwardRef(\n ({ color = 'currentColor', size = 24, stroke = 2, children, ...rest }, ref) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: stroke,\n className: `tabler-icon tabler-icon-${iconName}`,\n ...rest,\n },\n [...iconNode.map(([tag, attrs]) => createElement(tag, attrs)), ...(children || [])],\n ),\n );\n\n Component.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n stroke: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n };\n\n Component.displayName = `${iconNamePascal}`;\n\n return Component;\n};\n","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('arrow-left', 'IconArrowLeft', [\n ['path', { d: 'M5 12l14 0', key: 'svg-0' }],\n ['path', { d: 'M5 12l6 6', key: 'svg-1' }],\n ['path', { d: 'M5 12l6 -6', key: 'svg-2' }],\n]);\n","import {createContext} from 'react';\n\nconst AppContext = createContext();\n\nexport const ComponentAContext = createContext();\n\nexport default AppContext;","export const PAGES = ['Category', 'Brand', 'Model', 'Issues', 'Enter Contact Details', 'Select Store', 'Confirm your Request']\nexport const DISPLAYING_PAGES = {\n PRODUCT:'PRODUCT',\n FORM:'FORM',\n BOOKING:'BOOKING',\n COMPLETION:'COMPLETION'\n}\nexport const PROGRESS_STATE = [1,2,3,4,5,6,7]\n","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('map-pin', 'IconMapPin', [\n ['path', { d: 'M9 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0', key: 'svg-0' }],\n [\n 'path',\n {\n d: 'M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0z',\n key: 'svg-1',\n },\n ],\n]);\n","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('clock', 'IconClock', [\n ['path', { d: 'M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0', key: 'svg-0' }],\n ['path', { d: 'M12 7v5l3 3', key: 'svg-1' }],\n]);\n","export function combineDateWithTime(dateTimeString, anotherTime) {\n if (dateTimeString === '' || anotherTime === '') return ''\n const dateObject = new Date(dateTimeString);\n\n // Extracting date parts (YYYY-MM-DD) from the Date object\n const year = dateObject.getFullYear();\n const month = String(dateObject.getMonth() + 1).padStart(2, \"0\"); // Adding 1 as month index starts from 0\n const day = String(dateObject.getDate()).padStart(2, \"0\");\n\n const formattedDate = `${year}-${month}-${day}`; // Output: \"2024-01-03\"\n const updatedDateAndTime = `${formattedDate}`;\n return updatedDateAndTime\n}\n\nexport const isKeyValueEmpty = (obj) =>\n Object.values(obj).every((value) => value !== \"\");\n\n\n\nexport function hasFalsyValue(obj) {\n return Object.keys(obj).length === 0\n}\n\nexport function findAllEmptyKeys(obj) {\n const emptyKeys = [];\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !obj[key]) {\n emptyKeys.push(key);\n }\n }\n return emptyKeys.length > 0 ? emptyKeys : null;\n}\n\n// Function to convert 24-hour format to 12-hour format\nexport function formatTo12Hour(time24) {\n const [hour, minute] = time24.split(\":\");\n const hour12 = (hour % 12) || 12;\n const ampm = hour >= 12 ? \"PM\" : \"AM\";\n return `${hour12}:${minute} ${ampm}`;\n };\n\n\n","var cssUnit = {\n cm: true,\n mm: true,\n in: true,\n px: true,\n pt: true,\n pc: true,\n em: true,\n ex: true,\n ch: true,\n rem: true,\n vw: true,\n vh: true,\n vmin: true,\n vmax: true,\n \"%\": true,\n};\n/**\n * If size is a number, append px to the value as default unit.\n * If size is a string, validate against list of valid units.\n * If unit is valid, return size as is.\n * If unit is invalid, console warn issue, replace with px as the unit.\n *\n * @param {(number | string)} size\n * @return {LengthObject} LengthObject\n */\nexport function parseLengthAndUnit(size) {\n if (typeof size === \"number\") {\n return {\n value: size,\n unit: \"px\",\n };\n }\n var value;\n var valueString = (size.match(/^[0-9.]*/) || \"\").toString();\n if (valueString.includes(\".\")) {\n value = parseFloat(valueString);\n }\n else {\n value = parseInt(valueString, 10);\n }\n var unit = (size.match(/[^0-9]*$/) || \"\").toString();\n if (cssUnit[unit]) {\n return {\n value: value,\n unit: unit,\n };\n }\n console.warn(\"React Spinners: \".concat(size, \" is not a valid css value. Defaulting to \").concat(value, \"px.\"));\n return {\n value: value,\n unit: \"px\",\n };\n}\n/**\n * Take value as an input and return valid css value\n *\n * @param {(number | string)} value\n * @return {string} valid css value\n */\nexport function cssValue(value) {\n var lengthWithunit = parseLengthAndUnit(value);\n return \"\".concat(lengthWithunit.value).concat(lengthWithunit.unit);\n}\n","export var createAnimation = function (loaderName, frames, suffix) {\n var animationName = \"react-spinners-\".concat(loaderName, \"-\").concat(suffix);\n if (typeof window == \"undefined\" || !window.document) {\n return animationName;\n }\n var styleEl = document.createElement(\"style\");\n document.head.appendChild(styleEl);\n var styleSheet = styleEl.sheet;\n var keyFrames = \"\\n @keyframes \".concat(animationName, \" {\\n \").concat(frames, \"\\n }\\n \");\n if (styleSheet) {\n styleSheet.insertRule(keyFrames, 0);\n }\n return animationName;\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from \"react\";\nimport { cssValue } from \"./helpers/unitConverter\";\nimport { createAnimation } from \"./helpers/animation\";\nvar clip = createAnimation(\"ClipLoader\", \"0% {transform: rotate(0deg) scale(1)} 50% {transform: rotate(180deg) scale(0.8)} 100% {transform: rotate(360deg) scale(1)}\", \"clip\");\nfunction ClipLoader(_a) {\n var _b = _a.loading, loading = _b === void 0 ? true : _b, _c = _a.color, color = _c === void 0 ? \"#000000\" : _c, _d = _a.speedMultiplier, speedMultiplier = _d === void 0 ? 1 : _d, _e = _a.cssOverride, cssOverride = _e === void 0 ? {} : _e, _f = _a.size, size = _f === void 0 ? 35 : _f, additionalprops = __rest(_a, [\"loading\", \"color\", \"speedMultiplier\", \"cssOverride\", \"size\"]);\n var style = __assign({ background: \"transparent !important\", width: cssValue(size), height: cssValue(size), borderRadius: \"100%\", border: \"2px solid\", borderTopColor: color, borderBottomColor: \"transparent\", borderLeftColor: color, borderRightColor: color, display: \"inline-block\", animation: \"\".concat(clip, \" \").concat(0.75 / speedMultiplier, \"s 0s infinite linear\"), animationFillMode: \"both\" }, cssOverride);\n if (!loading) {\n return null;\n }\n return React.createElement(\"span\", __assign({ style: style }, additionalprops));\n}\nexport default ClipLoader;\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.3\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const UrlServices = {\n fetchAllCategories: \"category/all/user-category\",\n rdDeviceDetail: \"settings/rd-device-details\",\n modelServices: \"service/model\",\n getTimes: \"times/get-times\",\n storeInfo: \"settings/store-info\",\n submitRequest: \"lead/save\",\n allStores: \"settings/get-all-stores\",\n};\n\nexport default UrlServices;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t= 2) {\n var hoursString = datePieces[0];\n if (hoursString) {\n var hours = parseInt(hoursString, 10);\n if (!isNaN(hours)) {\n return hours;\n }\n }\n }\n }\n throw new Error(\"Failed to get hours from date: \".concat(date, \".\"));\n}\n/**\n * Gets minutes from a given date.\n *\n * @param {Date | string} date Date to get minutes from\n * @returns {number} Minutes\n */\nexport function getMinutes(date) {\n if (date instanceof Date) {\n return date.getMinutes();\n }\n if (typeof date === 'string') {\n var datePieces = date.split(':');\n if (datePieces.length >= 2) {\n var minutesString = datePieces[1] || '0';\n var minutes = parseInt(minutesString, 10);\n if (!isNaN(minutes)) {\n return minutes;\n }\n }\n }\n throw new Error(\"Failed to get minutes from date: \".concat(date, \".\"));\n}\n/**\n * Gets seconds from a given date.\n *\n * @param {Date | string} date Date to get seconds from\n * @returns {number} Seconds\n */\nexport function getSeconds(date) {\n if (date instanceof Date) {\n return date.getSeconds();\n }\n if (typeof date === 'string') {\n var datePieces = date.split(':');\n if (datePieces.length >= 2) {\n var secondsWithMillisecondsString = datePieces[2] || '0';\n var seconds = parseInt(secondsWithMillisecondsString, 10);\n if (!isNaN(seconds)) {\n return seconds;\n }\n }\n }\n throw new Error(\"Failed to get seconds from date: \".concat(date, \".\"));\n}\n/**\n * Gets milliseconds from a given date.\n *\n * @param {Date | string} date Date to get milliseconds from\n * @returns {number} Milliseconds\n */\nexport function getMilliseconds(date) {\n if (date instanceof Date) {\n return date.getMilliseconds();\n }\n if (typeof date === 'string') {\n var datePieces = date.split(':');\n if (datePieces.length >= 2) {\n var secondsWithMillisecondsString = datePieces[2] || '0';\n var millisecondsString = secondsWithMillisecondsString.split('.')[1] || '0';\n var milliseconds = parseInt(millisecondsString, 10);\n if (!isNaN(milliseconds)) {\n return milliseconds;\n }\n }\n }\n throw new Error(\"Failed to get seconds from date: \".concat(date, \".\"));\n}\n/**\n * Century\n */\n/**\n * Gets century start date from a given date.\n *\n * @param {DateLike} date Date to get century start from\n * @returns {Date} Century start date\n */\nexport function getCenturyStart(date) {\n var year = getYear(date);\n var centuryStartYear = year + ((-year + 1) % 100);\n var centuryStartDate = new Date();\n centuryStartDate.setFullYear(centuryStartYear, 0, 1);\n centuryStartDate.setHours(0, 0, 0, 0);\n return centuryStartDate;\n}\n/**\n * Gets previous century start date from a given date.\n *\n * @param {DateLike} date Date to get previous century start from\n * @returns {Date} Previous century start date\n */\nexport var getPreviousCenturyStart = makeGetEdgeOfNeighbor(getYear, getCenturyStart, -100);\n/**\n * Gets next century start date from a given date.\n *\n * @param {DateLike} date Date to get next century start from\n * @returns {Date} Next century start date\n */\nexport var getNextCenturyStart = makeGetEdgeOfNeighbor(getYear, getCenturyStart, 100);\n/**\n * Gets century end date from a given date.\n *\n * @param {DateLike} date Date to get century end from\n * @returns {Date} Century end date\n */\nexport var getCenturyEnd = makeGetEnd(getNextCenturyStart);\n/**\n * Gets previous century end date from a given date.\n *\n * @param {DateLike} date Date to get previous century end from\n * @returns {Date} Previous century end date\n */\nexport var getPreviousCenturyEnd = makeGetEdgeOfNeighbor(getYear, getCenturyEnd, -100);\n/**\n * Gets next century end date from a given date.\n *\n * @param {DateLike} date Date to get next century end from\n * @returns {Date} Next century end date\n */\nexport var getNextCenturyEnd = makeGetEdgeOfNeighbor(getYear, getCenturyEnd, 100);\n/**\n * Gets century start and end dates from a given date.\n *\n * @param {DateLike} date Date to get century start and end from\n * @returns {[Date, Date]} Century start and end dates\n */\nexport var getCenturyRange = makeGetRange(getCenturyStart, getCenturyEnd);\n/**\n * Decade\n */\n/**\n * Gets decade start date from a given date.\n *\n * @param {DateLike} date Date to get decade start from\n * @returns {Date} Decade start date\n */\nexport function getDecadeStart(date) {\n var year = getYear(date);\n var decadeStartYear = year + ((-year + 1) % 10);\n var decadeStartDate = new Date();\n decadeStartDate.setFullYear(decadeStartYear, 0, 1);\n decadeStartDate.setHours(0, 0, 0, 0);\n return decadeStartDate;\n}\n/**\n * Gets previous decade start date from a given date.\n *\n * @param {DateLike} date Date to get previous decade start from\n * @returns {Date} Previous decade start date\n */\nexport var getPreviousDecadeStart = makeGetEdgeOfNeighbor(getYear, getDecadeStart, -10);\n/**\n * Gets next decade start date from a given date.\n *\n * @param {DateLike} date Date to get next decade start from\n * @returns {Date} Next decade start date\n */\nexport var getNextDecadeStart = makeGetEdgeOfNeighbor(getYear, getDecadeStart, 10);\n/**\n * Gets decade end date from a given date.\n *\n * @param {DateLike} date Date to get decade end from\n * @returns {Date} Decade end date\n */\nexport var getDecadeEnd = makeGetEnd(getNextDecadeStart);\n/**\n * Gets previous decade end date from a given date.\n *\n * @param {DateLike} date Date to get previous decade end from\n * @returns {Date} Previous decade end date\n */\nexport var getPreviousDecadeEnd = makeGetEdgeOfNeighbor(getYear, getDecadeEnd, -10);\n/**\n * Gets next decade end date from a given date.\n *\n * @param {DateLike} date Date to get next decade end from\n * @returns {Date} Next decade end date\n */\nexport var getNextDecadeEnd = makeGetEdgeOfNeighbor(getYear, getDecadeEnd, 10);\n/**\n * Gets decade start and end dates from a given date.\n *\n * @param {DateLike} date Date to get decade start and end from\n * @returns {[Date, Date]} Decade start and end dates\n */\nexport var getDecadeRange = makeGetRange(getDecadeStart, getDecadeEnd);\n/**\n * Year\n */\n/**\n * Gets year start date from a given date.\n *\n * @param {DateLike} date Date to get year start from\n * @returns {Date} Year start date\n */\nexport function getYearStart(date) {\n var year = getYear(date);\n var yearStartDate = new Date();\n yearStartDate.setFullYear(year, 0, 1);\n yearStartDate.setHours(0, 0, 0, 0);\n return yearStartDate;\n}\n/**\n * Gets previous year start date from a given date.\n *\n * @param {DateLike} date Date to get previous year start from\n * @returns {Date} Previous year start date\n */\nexport var getPreviousYearStart = makeGetEdgeOfNeighbor(getYear, getYearStart, -1);\n/**\n * Gets next year start date from a given date.\n *\n * @param {DateLike} date Date to get next year start from\n * @returns {Date} Next year start date\n */\nexport var getNextYearStart = makeGetEdgeOfNeighbor(getYear, getYearStart, 1);\n/**\n * Gets year end date from a given date.\n *\n * @param {DateLike} date Date to get year end from\n * @returns {Date} Year end date\n */\nexport var getYearEnd = makeGetEnd(getNextYearStart);\n/**\n * Gets previous year end date from a given date.\n *\n * @param {DateLike} date Date to get previous year end from\n * @returns {Date} Previous year end date\n */\nexport var getPreviousYearEnd = makeGetEdgeOfNeighbor(getYear, getYearEnd, -1);\n/**\n * Gets next year end date from a given date.\n *\n * @param {DateLike} date Date to get next year end from\n * @returns {Date} Next year end date\n */\nexport var getNextYearEnd = makeGetEdgeOfNeighbor(getYear, getYearEnd, 1);\n/**\n * Gets year start and end dates from a given date.\n *\n * @param {DateLike} date Date to get year start and end from\n * @returns {[Date, Date]} Year start and end dates\n */\nexport var getYearRange = makeGetRange(getYearStart, getYearEnd);\n/**\n * Month\n */\nfunction makeGetEdgeOfNeighborMonth(getEdgeOfPeriod, defaultOffset) {\n return function makeGetEdgeOfNeighborMonthInternal(date, offset) {\n if (offset === void 0) { offset = defaultOffset; }\n var year = getYear(date);\n var month = getMonth(date) + offset;\n var previousPeriod = new Date();\n previousPeriod.setFullYear(year, month, 1);\n previousPeriod.setHours(0, 0, 0, 0);\n return getEdgeOfPeriod(previousPeriod);\n };\n}\n/**\n * Gets month start date from a given date.\n *\n * @param {DateLike} date Date to get month start from\n * @returns {Date} Month start date\n */\nexport function getMonthStart(date) {\n var year = getYear(date);\n var month = getMonth(date);\n var monthStartDate = new Date();\n monthStartDate.setFullYear(year, month, 1);\n monthStartDate.setHours(0, 0, 0, 0);\n return monthStartDate;\n}\n/**\n * Gets previous month start date from a given date.\n *\n * @param {DateLike} date Date to get previous month start from\n * @returns {Date} Previous month start date\n */\nexport var getPreviousMonthStart = makeGetEdgeOfNeighborMonth(getMonthStart, -1);\n/**\n * Gets next month start date from a given date.\n *\n * @param {DateLike} date Date to get next month start from\n * @returns {Date} Next month start date\n */\nexport var getNextMonthStart = makeGetEdgeOfNeighborMonth(getMonthStart, 1);\n/**\n * Gets month end date from a given date.\n *\n * @param {DateLike} date Date to get month end from\n * @returns {Date} Month end date\n */\nexport var getMonthEnd = makeGetEnd(getNextMonthStart);\n/**\n * Gets previous month end date from a given date.\n *\n * @param {DateLike} date Date to get previous month end from\n * @returns {Date} Previous month end date\n */\nexport var getPreviousMonthEnd = makeGetEdgeOfNeighborMonth(getMonthEnd, -1);\n/**\n * Gets next month end date from a given date.\n *\n * @param {DateLike} date Date to get next month end from\n * @returns {Date} Next month end date\n */\nexport var getNextMonthEnd = makeGetEdgeOfNeighborMonth(getMonthEnd, 1);\n/**\n * Gets month start and end dates from a given date.\n *\n * @param {DateLike} date Date to get month start and end from\n * @returns {[Date, Date]} Month start and end dates\n */\nexport var getMonthRange = makeGetRange(getMonthStart, getMonthEnd);\n/**\n * Day\n */\nfunction makeGetEdgeOfNeighborDay(getEdgeOfPeriod, defaultOffset) {\n return function makeGetEdgeOfNeighborDayInternal(date, offset) {\n if (offset === void 0) { offset = defaultOffset; }\n var year = getYear(date);\n var month = getMonth(date);\n var day = getDate(date) + offset;\n var previousPeriod = new Date();\n previousPeriod.setFullYear(year, month, day);\n previousPeriod.setHours(0, 0, 0, 0);\n return getEdgeOfPeriod(previousPeriod);\n };\n}\n/**\n * Gets day start date from a given date.\n *\n * @param {DateLike} date Date to get day start from\n * @returns {Date} Day start date\n */\nexport function getDayStart(date) {\n var year = getYear(date);\n var month = getMonth(date);\n var day = getDate(date);\n var dayStartDate = new Date();\n dayStartDate.setFullYear(year, month, day);\n dayStartDate.setHours(0, 0, 0, 0);\n return dayStartDate;\n}\n/**\n * Gets previous day start date from a given date.\n *\n * @param {DateLike} date Date to get previous day start from\n * @returns {Date} Previous day start date\n */\nexport var getPreviousDayStart = makeGetEdgeOfNeighborDay(getDayStart, -1);\n/**\n * Gets next day start date from a given date.\n *\n * @param {DateLike} date Date to get next day start from\n * @returns {Date} Next day start date\n */\nexport var getNextDayStart = makeGetEdgeOfNeighborDay(getDayStart, 1);\n/**\n * Gets day end date from a given date.\n *\n * @param {DateLike} date Date to get day end from\n * @returns {Date} Day end date\n */\nexport var getDayEnd = makeGetEnd(getNextDayStart);\n/**\n * Gets previous day end date from a given date.\n *\n * @param {DateLike} date Date to get previous day end from\n * @returns {Date} Previous day end date\n */\nexport var getPreviousDayEnd = makeGetEdgeOfNeighborDay(getDayEnd, -1);\n/**\n * Gets next day end date from a given date.\n *\n * @param {DateLike} date Date to get next day end from\n * @returns {Date} Next day end date\n */\nexport var getNextDayEnd = makeGetEdgeOfNeighborDay(getDayEnd, 1);\n/**\n * Gets day start and end dates from a given date.\n *\n * @param {DateLike} date Date to get day start and end from\n * @returns {[Date, Date]} Day start and end dates\n */\nexport var getDayRange = makeGetRange(getDayStart, getDayEnd);\n/**\n * Other\n */\n/**\n * Returns a number of days in a month of a given date.\n *\n * @param {Date} date Date\n * @returns {number} Number of days in a month\n */\nexport function getDaysInMonth(date) {\n return getDate(getMonthEnd(date));\n}\nfunction padStart(num, val) {\n if (val === void 0) { val = 2; }\n var numStr = \"\".concat(num);\n if (numStr.length >= val) {\n return num;\n }\n return \"0000\".concat(numStr).slice(-val);\n}\n/**\n * Returns local hours and minutes (hh:mm).\n *\n * @param {Date | string} date Date to get hours and minutes from\n * @returns {string} Local hours and minutes\n */\nexport function getHoursMinutes(date) {\n var hours = padStart(getHours(date));\n var minutes = padStart(getMinutes(date));\n return \"\".concat(hours, \":\").concat(minutes);\n}\n/**\n * Returns local hours, minutes and seconds (hh:mm:ss).\n *\n * @param {Date | string} date Date to get hours, minutes and seconds from\n * @returns {string} Local hours, minutes and seconds\n */\nexport function getHoursMinutesSeconds(date) {\n var hours = padStart(getHours(date));\n var minutes = padStart(getMinutes(date));\n var seconds = padStart(getSeconds(date));\n return \"\".concat(hours, \":\").concat(minutes, \":\").concat(seconds);\n}\n/**\n * Returns local month in ISO-like format (YYYY-MM).\n *\n * @param {Date} date Date to get month in ISO-like format from\n * @returns {string} Local month in ISO-like format\n */\nexport function getISOLocalMonth(date) {\n var year = padStart(getYear(date), 4);\n var month = padStart(getMonthHuman(date));\n return \"\".concat(year, \"-\").concat(month);\n}\n/**\n * Returns local date in ISO-like format (YYYY-MM-DD).\n *\n * @param {Date} date Date to get date in ISO-like format from\n * @returns {string} Local date in ISO-like format\n */\nexport function getISOLocalDate(date) {\n var year = padStart(getYear(date), 4);\n var month = padStart(getMonthHuman(date));\n var day = padStart(getDate(date));\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n}\n/**\n * Returns local date & time in ISO-like format (YYYY-MM-DDThh:mm:ss).\n *\n * @param {Date} date Date to get date & time in ISO-like format from\n * @returns {string} Local date & time in ISO-like format\n */\nexport function getISOLocalDateTime(date) {\n return \"\".concat(getISOLocalDate(date), \"T\").concat(getHoursMinutesSeconds(date));\n}\n","var _a;\nexport var CALENDAR_TYPES = {\n GREGORY: 'gregory',\n HEBREW: 'hebrew',\n ISLAMIC: 'islamic',\n ISO_8601: 'iso8601',\n};\nexport var DEPRECATED_CALENDAR_TYPES = {\n ARABIC: 'Arabic',\n HEBREW: 'Hebrew',\n ISO_8601: 'ISO 8601',\n US: 'US',\n};\nexport var CALENDAR_TYPE_LOCALES = (_a = {},\n _a[CALENDAR_TYPES.GREGORY] = [\n 'en-CA',\n 'en-US',\n 'es-AR',\n 'es-BO',\n 'es-CL',\n 'es-CO',\n 'es-CR',\n 'es-DO',\n 'es-EC',\n 'es-GT',\n 'es-HN',\n 'es-MX',\n 'es-NI',\n 'es-PA',\n 'es-PE',\n 'es-PR',\n 'es-SV',\n 'es-VE',\n 'pt-BR',\n ],\n _a[CALENDAR_TYPES.HEBREW] = ['he', 'he-IL'],\n _a[CALENDAR_TYPES.ISLAMIC] = [\n // ar-LB, ar-MA intentionally missing\n 'ar',\n 'ar-AE',\n 'ar-BH',\n 'ar-DZ',\n 'ar-EG',\n 'ar-IQ',\n 'ar-JO',\n 'ar-KW',\n 'ar-LY',\n 'ar-OM',\n 'ar-QA',\n 'ar-SA',\n 'ar-SD',\n 'ar-SY',\n 'ar-YE',\n 'dv',\n 'dv-MV',\n 'ps',\n 'ps-AR',\n ],\n _a);\nexport var WEEKDAYS = [0, 1, 2, 3, 4, 5, 6];\n","import getUserLocale from 'get-user-locale';\nvar formatterCache = new Map();\nfunction getFormatter(options) {\n return function formatter(locale, date) {\n var localeWithDefault = locale || getUserLocale();\n if (!formatterCache.has(localeWithDefault)) {\n formatterCache.set(localeWithDefault, new Map());\n }\n var formatterCacheLocale = formatterCache.get(localeWithDefault);\n if (!formatterCacheLocale.has(options)) {\n formatterCacheLocale.set(options, new Intl.DateTimeFormat(localeWithDefault || undefined, options).format);\n }\n return formatterCacheLocale.get(options)(date);\n };\n}\n/**\n * Changes the hour in a Date to ensure right date formatting even if DST is messed up.\n * Workaround for bug in WebKit and Firefox with historical dates.\n * For more details, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=750465\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1385643\n *\n * @param {Date} date Date.\n * @returns {Date} Date with hour set to 12.\n */\nfunction toSafeHour(date) {\n var safeDate = new Date(date);\n return new Date(safeDate.setHours(12));\n}\nfunction getSafeFormatter(options) {\n return function (locale, date) { return getFormatter(options)(locale, toSafeHour(date)); };\n}\nvar formatDateOptions = {\n day: 'numeric',\n month: 'numeric',\n year: 'numeric',\n};\nvar formatDayOptions = { day: 'numeric' };\nvar formatLongDateOptions = {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n};\nvar formatMonthOptions = { month: 'long' };\nvar formatMonthYearOptions = {\n month: 'long',\n year: 'numeric',\n};\nvar formatShortWeekdayOptions = { weekday: 'short' };\nvar formatWeekdayOptions = { weekday: 'long' };\nvar formatYearOptions = { year: 'numeric' };\nexport var formatDate = getSafeFormatter(formatDateOptions);\nexport var formatDay = getSafeFormatter(formatDayOptions);\nexport var formatLongDate = getSafeFormatter(formatLongDateOptions);\nexport var formatMonth = getSafeFormatter(formatMonthOptions);\nexport var formatMonthYear = getSafeFormatter(formatMonthYearOptions);\nexport var formatShortWeekday = getSafeFormatter(formatShortWeekdayOptions);\nexport var formatWeekday = getSafeFormatter(formatWeekdayOptions);\nexport var formatYear = getSafeFormatter(formatYearOptions);\n","import { getYear, getMonth as getMonthIndex, getCenturyStart, getPreviousCenturyStart, getNextCenturyStart, getCenturyEnd, getPreviousCenturyEnd, getCenturyRange, getDecadeStart, getPreviousDecadeStart, getNextDecadeStart, getDecadeEnd, getPreviousDecadeEnd, getDecadeRange, getYearStart, getPreviousYearStart, getNextYearStart, getYearEnd, getPreviousYearEnd, getYearRange, getMonthStart, getPreviousMonthStart, getNextMonthStart, getMonthEnd, getPreviousMonthEnd, getMonthRange, getDayStart, getDayEnd, getDayRange, } from '@wojtekmaj/date-utils';\nimport { CALENDAR_TYPES, WEEKDAYS } from './const.js';\nimport { formatYear as defaultFormatYear } from './dateFormatter.js';\nvar SUNDAY = WEEKDAYS[0];\nvar FRIDAY = WEEKDAYS[5];\nvar SATURDAY = WEEKDAYS[6];\n/* Simple getters - getting a property of a given point in time */\n/**\n * Gets day of the week of a given date.\n * @param {Date} date Date.\n * @param {CalendarType} [calendarType=\"iso8601\"] Calendar type.\n * @returns {number} Day of the week.\n */\nexport function getDayOfWeek(date, calendarType) {\n if (calendarType === void 0) { calendarType = CALENDAR_TYPES.ISO_8601; }\n var weekday = date.getDay();\n switch (calendarType) {\n case CALENDAR_TYPES.ISO_8601:\n // Shifts days of the week so that Monday is 0, Sunday is 6\n return (weekday + 6) % 7;\n case CALENDAR_TYPES.ISLAMIC:\n return (weekday + 1) % 7;\n case CALENDAR_TYPES.HEBREW:\n case CALENDAR_TYPES.GREGORY:\n return weekday;\n default:\n throw new Error('Unsupported calendar type.');\n }\n}\n/**\n * Century\n */\n/**\n * Gets the year of the beginning of a century of a given date.\n * @param {Date} date Date.\n * @returns {number} Year of the beginning of a century.\n */\nexport function getBeginOfCenturyYear(date) {\n var beginOfCentury = getCenturyStart(date);\n return getYear(beginOfCentury);\n}\n/**\n * Decade\n */\n/**\n * Gets the year of the beginning of a decade of a given date.\n * @param {Date} date Date.\n * @returns {number} Year of the beginning of a decade.\n */\nexport function getBeginOfDecadeYear(date) {\n var beginOfDecade = getDecadeStart(date);\n return getYear(beginOfDecade);\n}\n/**\n * Week\n */\n/**\n * Returns the beginning of a given week.\n *\n * @param {Date} date Date.\n * @param {CalendarType} [calendarType=\"iso8601\"] Calendar type.\n * @returns {Date} Beginning of a given week.\n */\nexport function getBeginOfWeek(date, calendarType) {\n if (calendarType === void 0) { calendarType = CALENDAR_TYPES.ISO_8601; }\n var year = getYear(date);\n var monthIndex = getMonthIndex(date);\n var day = date.getDate() - getDayOfWeek(date, calendarType);\n return new Date(year, monthIndex, day);\n}\n/**\n * Gets week number according to ISO 8601 or US standard.\n * In ISO 8601, Arabic and Hebrew week 1 is the one with January 4.\n * In US calendar week 1 is the one with January 1.\n *\n * @param {Date} date Date.\n * @param {CalendarType} [calendarType=\"iso8601\"] Calendar type.\n * @returns {number} Week number.\n */\nexport function getWeekNumber(date, calendarType) {\n if (calendarType === void 0) { calendarType = CALENDAR_TYPES.ISO_8601; }\n var calendarTypeForWeekNumber = calendarType === CALENDAR_TYPES.GREGORY ? CALENDAR_TYPES.GREGORY : CALENDAR_TYPES.ISO_8601;\n var beginOfWeek = getBeginOfWeek(date, calendarType);\n var year = getYear(date) + 1;\n var dayInWeekOne;\n var beginOfFirstWeek;\n // Look for the first week one that does not come after a given date\n do {\n dayInWeekOne = new Date(year, 0, calendarTypeForWeekNumber === CALENDAR_TYPES.ISO_8601 ? 4 : 1);\n beginOfFirstWeek = getBeginOfWeek(dayInWeekOne, calendarType);\n year -= 1;\n } while (date < beginOfFirstWeek);\n return Math.round((beginOfWeek.getTime() - beginOfFirstWeek.getTime()) / (8.64e7 * 7)) + 1;\n}\n/**\n * Others\n */\n/**\n * Returns the beginning of a given range.\n *\n * @param {RangeType} rangeType Range type (e.g. 'day')\n * @param {Date} date Date.\n * @returns {Date} Beginning of a given range.\n */\nexport function getBegin(rangeType, date) {\n switch (rangeType) {\n case 'century':\n return getCenturyStart(date);\n case 'decade':\n return getDecadeStart(date);\n case 'year':\n return getYearStart(date);\n case 'month':\n return getMonthStart(date);\n case 'day':\n return getDayStart(date);\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\n/**\n * Returns the beginning of a previous given range.\n *\n * @param {RangeType} rangeType Range type (e.g. 'day')\n * @param {Date} date Date.\n * @returns {Date} Beginning of a previous given range.\n */\nexport function getBeginPrevious(rangeType, date) {\n switch (rangeType) {\n case 'century':\n return getPreviousCenturyStart(date);\n case 'decade':\n return getPreviousDecadeStart(date);\n case 'year':\n return getPreviousYearStart(date);\n case 'month':\n return getPreviousMonthStart(date);\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\n/**\n * Returns the beginning of a next given range.\n *\n * @param {RangeType} rangeType Range type (e.g. 'day')\n * @param {Date} date Date.\n * @returns {Date} Beginning of a next given range.\n */\nexport function getBeginNext(rangeType, date) {\n switch (rangeType) {\n case 'century':\n return getNextCenturyStart(date);\n case 'decade':\n return getNextDecadeStart(date);\n case 'year':\n return getNextYearStart(date);\n case 'month':\n return getNextMonthStart(date);\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\nexport function getBeginPrevious2(rangeType, date) {\n switch (rangeType) {\n case 'decade':\n return getPreviousDecadeStart(date, -100);\n case 'year':\n return getPreviousYearStart(date, -10);\n case 'month':\n return getPreviousMonthStart(date, -12);\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\nexport function getBeginNext2(rangeType, date) {\n switch (rangeType) {\n case 'decade':\n return getNextDecadeStart(date, 100);\n case 'year':\n return getNextYearStart(date, 10);\n case 'month':\n return getNextMonthStart(date, 12);\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\n/**\n * Returns the end of a given range.\n *\n * @param {RangeType} rangeType Range type (e.g. 'day')\n * @param {Date} date Date.\n * @returns {Date} End of a given range.\n */\nexport function getEnd(rangeType, date) {\n switch (rangeType) {\n case 'century':\n return getCenturyEnd(date);\n case 'decade':\n return getDecadeEnd(date);\n case 'year':\n return getYearEnd(date);\n case 'month':\n return getMonthEnd(date);\n case 'day':\n return getDayEnd(date);\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\n/**\n * Returns the end of a previous given range.\n *\n * @param {RangeType} rangeType Range type (e.g. 'day')\n * @param {Date} date Date.\n * @returns {Date} End of a previous given range.\n */\nexport function getEndPrevious(rangeType, date) {\n switch (rangeType) {\n case 'century':\n return getPreviousCenturyEnd(date);\n case 'decade':\n return getPreviousDecadeEnd(date);\n case 'year':\n return getPreviousYearEnd(date);\n case 'month':\n return getPreviousMonthEnd(date);\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\nexport function getEndPrevious2(rangeType, date) {\n switch (rangeType) {\n case 'decade':\n return getPreviousDecadeEnd(date, -100);\n case 'year':\n return getPreviousYearEnd(date, -10);\n case 'month':\n return getPreviousMonthEnd(date, -12);\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\n/**\n * Returns an array with the beginning and the end of a given range.\n *\n * @param {RangeType} rangeType Range type (e.g. 'day')\n * @param {Date} date Date.\n * @returns {Date[]} Beginning and end of a given range.\n */\nexport function getRange(rangeType, date) {\n switch (rangeType) {\n case 'century':\n return getCenturyRange(date);\n case 'decade':\n return getDecadeRange(date);\n case 'year':\n return getYearRange(date);\n case 'month':\n return getMonthRange(date);\n case 'day':\n return getDayRange(date);\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\n/**\n * Creates a range out of two values, ensuring they are in order and covering entire period ranges.\n *\n * @param {RangeType} rangeType Range type (e.g. 'day')\n * @param {Date} date1 First date.\n * @param {Date} date2 Second date.\n * @returns {Date[]} Beginning and end of a given range.\n */\nexport function getValueRange(rangeType, date1, date2) {\n var rawNextValue = [date1, date2].sort(function (a, b) { return a.getTime() - b.getTime(); });\n return [getBegin(rangeType, rawNextValue[0]), getEnd(rangeType, rawNextValue[1])];\n}\nfunction toYearLabel(locale, formatYear, dates) {\n if (formatYear === void 0) { formatYear = defaultFormatYear; }\n return dates.map(function (date) { return formatYear(locale, date); }).join(' – ');\n}\n/**\n * @callback FormatYear\n * @param {string} locale Locale.\n * @param {Date} date Date.\n * @returns {string} Formatted year.\n */\n/**\n * Returns a string labelling a century of a given date.\n * For example, for 2017 it will return 2001-2100.\n *\n * @param {string} locale Locale.\n * @param {FormatYear} formatYear Function to format a year.\n * @param {Date|string|number} date Date or a year as a string or as a number.\n * @returns {string} String labelling a century of a given date.\n */\nexport function getCenturyLabel(locale, formatYear, date) {\n return toYearLabel(locale, formatYear, getCenturyRange(date));\n}\n/**\n * Returns a string labelling a decade of a given date.\n * For example, for 2017 it will return 2011-2020.\n *\n * @param {string} locale Locale.\n * @param {FormatYear} formatYear Function to format a year.\n * @param {Date|string|number} date Date or a year as a string or as a number.\n * @returns {string} String labelling a decade of a given date.\n */\nexport function getDecadeLabel(locale, formatYear, date) {\n return toYearLabel(locale, formatYear, getDecadeRange(date));\n}\n/**\n * Returns a boolean determining whether a given date is the current day of the week.\n *\n * @param {Date} date Date.\n * @returns {boolean} Whether a given date is the current day of the week.\n */\nexport function isCurrentDayOfWeek(date) {\n return date.getDay() === new Date().getDay();\n}\n/**\n * Returns a boolean determining whether a given date is a weekend day.\n *\n * @param {Date} date Date.\n * @param {CalendarType} [calendarType=\"iso8601\"] Calendar type.\n * @returns {boolean} Whether a given date is a weekend day.\n */\nexport function isWeekend(date, calendarType) {\n if (calendarType === void 0) { calendarType = CALENDAR_TYPES.ISO_8601; }\n var weekday = date.getDay();\n switch (calendarType) {\n case CALENDAR_TYPES.ISLAMIC:\n case CALENDAR_TYPES.HEBREW:\n return weekday === FRIDAY || weekday === SATURDAY;\n case CALENDAR_TYPES.ISO_8601:\n case CALENDAR_TYPES.GREGORY:\n return weekday === SATURDAY || weekday === SUNDAY;\n default:\n throw new Error('Unsupported calendar type.');\n }\n}\n","'use client';\nimport React from 'react';\nimport { getUserLocale } from 'get-user-locale';\nimport { getCenturyLabel, getDecadeLabel, getBeginNext, getBeginNext2, getBeginPrevious, getBeginPrevious2, getEndPrevious, getEndPrevious2, } from '../shared/dates.js';\nimport { formatMonthYear as defaultFormatMonthYear, formatYear as defaultFormatYear, } from '../shared/dateFormatter.js';\nvar className = 'react-calendar__navigation';\nexport default function Navigation(_a) {\n var activeStartDate = _a.activeStartDate, drillUp = _a.drillUp, _b = _a.formatMonthYear, formatMonthYear = _b === void 0 ? defaultFormatMonthYear : _b, _c = _a.formatYear, formatYear = _c === void 0 ? defaultFormatYear : _c, locale = _a.locale, maxDate = _a.maxDate, minDate = _a.minDate, _d = _a.navigationAriaLabel, navigationAriaLabel = _d === void 0 ? '' : _d, navigationAriaLive = _a.navigationAriaLive, navigationLabel = _a.navigationLabel, _e = _a.next2AriaLabel, next2AriaLabel = _e === void 0 ? '' : _e, _f = _a.next2Label, next2Label = _f === void 0 ? '»' : _f, _g = _a.nextAriaLabel, nextAriaLabel = _g === void 0 ? '' : _g, _h = _a.nextLabel, nextLabel = _h === void 0 ? '›' : _h, _j = _a.prev2AriaLabel, prev2AriaLabel = _j === void 0 ? '' : _j, _k = _a.prev2Label, prev2Label = _k === void 0 ? '«' : _k, _l = _a.prevAriaLabel, prevAriaLabel = _l === void 0 ? '' : _l, _m = _a.prevLabel, prevLabel = _m === void 0 ? '‹' : _m, setActiveStartDate = _a.setActiveStartDate, showDoubleView = _a.showDoubleView, view = _a.view, views = _a.views;\n var drillUpAvailable = views.indexOf(view) > 0;\n var shouldShowPrevNext2Buttons = view !== 'century';\n var previousActiveStartDate = getBeginPrevious(view, activeStartDate);\n var previousActiveStartDate2 = shouldShowPrevNext2Buttons\n ? getBeginPrevious2(view, activeStartDate)\n : undefined;\n var nextActiveStartDate = getBeginNext(view, activeStartDate);\n var nextActiveStartDate2 = shouldShowPrevNext2Buttons\n ? getBeginNext2(view, activeStartDate)\n : undefined;\n var prevButtonDisabled = (function () {\n if (previousActiveStartDate.getFullYear() < 0) {\n return true;\n }\n var previousActiveEndDate = getEndPrevious(view, activeStartDate);\n return minDate && minDate >= previousActiveEndDate;\n })();\n var prev2ButtonDisabled = shouldShowPrevNext2Buttons &&\n (function () {\n if (previousActiveStartDate2.getFullYear() < 0) {\n return true;\n }\n var previousActiveEndDate = getEndPrevious2(view, activeStartDate);\n return minDate && minDate >= previousActiveEndDate;\n })();\n var nextButtonDisabled = maxDate && maxDate < nextActiveStartDate;\n var next2ButtonDisabled = shouldShowPrevNext2Buttons && maxDate && maxDate < nextActiveStartDate2;\n function onClickPrevious() {\n setActiveStartDate(previousActiveStartDate, 'prev');\n }\n function onClickPrevious2() {\n setActiveStartDate(previousActiveStartDate2, 'prev2');\n }\n function onClickNext() {\n setActiveStartDate(nextActiveStartDate, 'next');\n }\n function onClickNext2() {\n setActiveStartDate(nextActiveStartDate2, 'next2');\n }\n function renderLabel(date) {\n var label = (function () {\n switch (view) {\n case 'century':\n return getCenturyLabel(locale, formatYear, date);\n case 'decade':\n return getDecadeLabel(locale, formatYear, date);\n case 'year':\n return formatYear(locale, date);\n case 'month':\n return formatMonthYear(locale, date);\n default:\n throw new Error(\"Invalid view: \".concat(view, \".\"));\n }\n })();\n return navigationLabel\n ? navigationLabel({\n date: date,\n label: label,\n locale: locale || getUserLocale() || undefined,\n view: view,\n })\n : label;\n }\n function renderButton() {\n var labelClassName = \"\".concat(className, \"__label\");\n return (React.createElement(\"button\", { \"aria-label\": navigationAriaLabel, \"aria-live\": navigationAriaLive, className: labelClassName, disabled: !drillUpAvailable, onClick: drillUp, style: { flexGrow: 1 }, type: \"button\" },\n React.createElement(\"span\", { className: \"\".concat(labelClassName, \"__labelText \").concat(labelClassName, \"__labelText--from\") }, renderLabel(activeStartDate)),\n showDoubleView ? (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: \"\".concat(labelClassName, \"__divider\") }, \" \\u2013 \"),\n React.createElement(\"span\", { className: \"\".concat(labelClassName, \"__labelText \").concat(labelClassName, \"__labelText--to\") }, renderLabel(nextActiveStartDate)))) : null));\n }\n return (React.createElement(\"div\", { className: className },\n prev2Label !== null && shouldShowPrevNext2Buttons ? (React.createElement(\"button\", { \"aria-label\": prev2AriaLabel, className: \"\".concat(className, \"__arrow \").concat(className, \"__prev2-button\"), disabled: prev2ButtonDisabled, onClick: onClickPrevious2, type: \"button\" }, prev2Label)) : null,\n prevLabel !== null && (React.createElement(\"button\", { \"aria-label\": prevAriaLabel, className: \"\".concat(className, \"__arrow \").concat(className, \"__prev-button\"), disabled: prevButtonDisabled, onClick: onClickPrevious, type: \"button\" }, prevLabel)),\n renderButton(),\n nextLabel !== null && (React.createElement(\"button\", { \"aria-label\": nextAriaLabel, className: \"\".concat(className, \"__arrow \").concat(className, \"__next-button\"), disabled: nextButtonDisabled, onClick: onClickNext, type: \"button\" }, nextLabel)),\n next2Label !== null && shouldShowPrevNext2Buttons ? (React.createElement(\"button\", { \"aria-label\": next2AriaLabel, className: \"\".concat(className, \"__arrow \").concat(className, \"__next2-button\"), disabled: next2ButtonDisabled, onClick: onClickNext2, type: \"button\" }, next2Label)) : null));\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nfunction toPercent(num) {\n return \"\".concat(num, \"%\");\n}\nexport default function Flex(_a) {\n var children = _a.children, className = _a.className, count = _a.count, direction = _a.direction, offset = _a.offset, style = _a.style, wrap = _a.wrap, otherProps = __rest(_a, [\"children\", \"className\", \"count\", \"direction\", \"offset\", \"style\", \"wrap\"]);\n return (React.createElement(\"div\", __assign({ className: className, style: __assign({ display: 'flex', flexDirection: direction, flexWrap: wrap ? 'wrap' : 'nowrap' }, style) }, otherProps), React.Children.map(children, function (child, index) {\n var marginInlineStart = offset && index === 0 ? toPercent((100 * offset) / count) : null;\n return React.cloneElement(child, __assign(__assign({}, child.props), { style: {\n flexBasis: toPercent(100 / count),\n flexShrink: 0,\n flexGrow: 0,\n overflow: 'hidden',\n marginLeft: marginInlineStart,\n marginInlineStart: marginInlineStart,\n marginInlineEnd: 0,\n } }));\n })));\n}\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","var _a;\nimport warning from 'tiny-warning';\nimport { CALENDAR_TYPES, DEPRECATED_CALENDAR_TYPES } from './const.js';\nimport { getRange } from './dates.js';\n/**\n * Returns a value no smaller than min and no larger than max.\n *\n * @param {Date} value Value to return.\n * @param {Date} min Minimum return value.\n * @param {Date} max Maximum return value.\n * @returns {Date} Value between min and max.\n */\nexport function between(value, min, max) {\n if (min && min > value) {\n return min;\n }\n if (max && max < value) {\n return max;\n }\n return value;\n}\nexport function isValueWithinRange(value, range) {\n return range[0] <= value && range[1] >= value;\n}\nexport function isRangeWithinRange(greaterRange, smallerRange) {\n return greaterRange[0] <= smallerRange[0] && greaterRange[1] >= smallerRange[1];\n}\nexport function doRangesOverlap(range1, range2) {\n return isValueWithinRange(range1[0], range2) || isValueWithinRange(range1[1], range2);\n}\nfunction getRangeClassNames(valueRange, dateRange, baseClassName) {\n var isRange = doRangesOverlap(dateRange, valueRange);\n var classes = [];\n if (isRange) {\n classes.push(baseClassName);\n var isRangeStart = isValueWithinRange(valueRange[0], dateRange);\n var isRangeEnd = isValueWithinRange(valueRange[1], dateRange);\n if (isRangeStart) {\n classes.push(\"\".concat(baseClassName, \"Start\"));\n }\n if (isRangeEnd) {\n classes.push(\"\".concat(baseClassName, \"End\"));\n }\n if (isRangeStart && isRangeEnd) {\n classes.push(\"\".concat(baseClassName, \"BothEnds\"));\n }\n }\n return classes;\n}\nfunction isCompleteValue(value) {\n if (Array.isArray(value)) {\n return value[0] !== null && value[1] !== null;\n }\n return value !== null;\n}\nexport function getTileClasses(args) {\n if (!args) {\n throw new Error('args is required');\n }\n var value = args.value, date = args.date, hover = args.hover;\n var className = 'react-calendar__tile';\n var classes = [className];\n if (!date) {\n return classes;\n }\n var now = new Date();\n var dateRange = (function () {\n if (Array.isArray(date)) {\n return date;\n }\n var dateType = args.dateType;\n if (!dateType) {\n throw new Error('dateType is required when date is not an array of two dates');\n }\n return getRange(dateType, date);\n })();\n if (isValueWithinRange(now, dateRange)) {\n classes.push(\"\".concat(className, \"--now\"));\n }\n if (!value || !isCompleteValue(value)) {\n return classes;\n }\n var valueRange = (function () {\n if (Array.isArray(value)) {\n return value;\n }\n var valueType = args.valueType;\n if (!valueType) {\n throw new Error('valueType is required when value is not an array of two dates');\n }\n return getRange(valueType, value);\n })();\n if (isRangeWithinRange(valueRange, dateRange)) {\n classes.push(\"\".concat(className, \"--active\"));\n }\n else if (doRangesOverlap(valueRange, dateRange)) {\n classes.push(\"\".concat(className, \"--hasActive\"));\n }\n var valueRangeClassNames = getRangeClassNames(valueRange, dateRange, \"\".concat(className, \"--range\"));\n classes.push.apply(classes, valueRangeClassNames);\n var valueArray = Array.isArray(value) ? value : [value];\n if (hover && valueArray.length === 1) {\n var hoverRange = hover > valueRange[0] ? [valueRange[0], hover] : [hover, valueRange[0]];\n var hoverRangeClassNames = getRangeClassNames(hoverRange, dateRange, \"\".concat(className, \"--hover\"));\n classes.push.apply(classes, hoverRangeClassNames);\n }\n return classes;\n}\nvar calendarTypeMap = (_a = {},\n _a[DEPRECATED_CALENDAR_TYPES.ARABIC] = CALENDAR_TYPES.ISLAMIC,\n _a[DEPRECATED_CALENDAR_TYPES.HEBREW] = CALENDAR_TYPES.HEBREW,\n _a[DEPRECATED_CALENDAR_TYPES.ISO_8601] = CALENDAR_TYPES.ISO_8601,\n _a[DEPRECATED_CALENDAR_TYPES.US] = CALENDAR_TYPES.GREGORY,\n _a);\nfunction isDeprecatedCalendarType(calendarType) {\n return calendarType !== undefined && calendarType in DEPRECATED_CALENDAR_TYPES;\n}\nvar warned = false;\nexport function mapCalendarType(calendarTypeOrDeprecatedCalendarType) {\n if (isDeprecatedCalendarType(calendarTypeOrDeprecatedCalendarType)) {\n var calendarType = calendarTypeMap[calendarTypeOrDeprecatedCalendarType];\n warning(warned, \"Specifying calendarType=\\\"\".concat(calendarTypeOrDeprecatedCalendarType, \"\\\" is deprecated. Use calendarType=\\\"\").concat(calendarType, \"\\\" instead.\"));\n warned = true;\n return calendarType;\n }\n return calendarTypeOrDeprecatedCalendarType;\n}\n","import React from 'react';\nimport Flex from './Flex.js';\nimport { getTileClasses } from './shared/utils.js';\nexport default function TileGroup(_a) {\n var className = _a.className, _b = _a.count, count = _b === void 0 ? 3 : _b, dateTransform = _a.dateTransform, dateType = _a.dateType, end = _a.end, hover = _a.hover, offset = _a.offset, renderTile = _a.renderTile, start = _a.start, _c = _a.step, step = _c === void 0 ? 1 : _c, value = _a.value, valueType = _a.valueType;\n var tiles = [];\n for (var point = start; point <= end; point += step) {\n var date = dateTransform(point);\n tiles.push(renderTile({\n classes: getTileClasses({\n date: date,\n dateType: dateType,\n hover: hover,\n value: value,\n valueType: valueType,\n }),\n date: date,\n }));\n }\n return (React.createElement(Flex, { className: className, count: count, offset: offset, wrap: true }, tiles));\n}\n","import React, { useMemo } from 'react';\nimport clsx from 'clsx';\nexport default function Tile(props) {\n var activeStartDate = props.activeStartDate, children = props.children, classes = props.classes, date = props.date, formatAbbr = props.formatAbbr, locale = props.locale, maxDate = props.maxDate, maxDateTransform = props.maxDateTransform, minDate = props.minDate, minDateTransform = props.minDateTransform, onClick = props.onClick, onMouseOver = props.onMouseOver, style = props.style, tileClassNameProps = props.tileClassName, tileContentProps = props.tileContent, tileDisabled = props.tileDisabled, view = props.view;\n var tileClassName = useMemo(function () {\n var args = { activeStartDate: activeStartDate, date: date, view: view };\n return typeof tileClassNameProps === 'function' ? tileClassNameProps(args) : tileClassNameProps;\n }, [activeStartDate, date, tileClassNameProps, view]);\n var tileContent = useMemo(function () {\n var args = { activeStartDate: activeStartDate, date: date, view: view };\n return typeof tileContentProps === 'function' ? tileContentProps(args) : tileContentProps;\n }, [activeStartDate, date, tileContentProps, view]);\n return (React.createElement(\"button\", { className: clsx(classes, tileClassName), disabled: (minDate && minDateTransform(minDate) > date) ||\n (maxDate && maxDateTransform(maxDate) < date) ||\n (tileDisabled && tileDisabled({ activeStartDate: activeStartDate, date: date, view: view })), onClick: onClick ? function (event) { return onClick(date, event); } : undefined, onFocus: onMouseOver ? function () { return onMouseOver(date); } : undefined, onMouseOver: onMouseOver ? function () { return onMouseOver(date); } : undefined, style: style, type: \"button\" },\n formatAbbr ? React.createElement(\"abbr\", { \"aria-label\": formatAbbr(locale, date) }, children) : children,\n tileContent));\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport React from 'react';\nimport { getDecadeStart, getDecadeEnd } from '@wojtekmaj/date-utils';\nimport Tile from '../Tile.js';\nimport { getDecadeLabel } from '../shared/dates.js';\nimport { formatYear as defaultFormatYear } from '../shared/dateFormatter.js';\nvar className = 'react-calendar__century-view__decades__decade';\nexport default function Decade(_a) {\n var _b = _a.classes, classes = _b === void 0 ? [] : _b, _c = _a.formatYear, formatYear = _c === void 0 ? defaultFormatYear : _c, otherProps = __rest(_a, [\"classes\", \"formatYear\"]);\n var date = otherProps.date, locale = otherProps.locale;\n return (React.createElement(Tile, __assign({}, otherProps, { classes: __spreadArray(__spreadArray([], classes, true), [className], false), maxDateTransform: getDecadeEnd, minDateTransform: getDecadeStart, view: \"century\" }), getDecadeLabel(locale, formatYear, date)));\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { getDecadeStart } from '@wojtekmaj/date-utils';\nimport TileGroup from '../TileGroup.js';\nimport Decade from './Decade.js';\nimport { getBeginOfCenturyYear } from '../shared/dates.js';\nexport default function Decades(props) {\n var activeStartDate = props.activeStartDate, hover = props.hover, value = props.value, valueType = props.valueType, otherProps = __rest(props, [\"activeStartDate\", \"hover\", \"value\", \"valueType\"]);\n var start = getBeginOfCenturyYear(activeStartDate);\n var end = start + 99;\n return (React.createElement(TileGroup, { className: \"react-calendar__century-view__decades\", dateTransform: getDecadeStart, dateType: \"decade\", end: end, hover: hover, renderTile: function (_a) {\n var date = _a.date, otherTileProps = __rest(_a, [\"date\"]);\n return (React.createElement(Decade, __assign({ key: date.getTime() }, otherProps, otherTileProps, { activeStartDate: activeStartDate, date: date })));\n }, start: start, step: 10, value: value, valueType: valueType }));\n}\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport PropTypes from 'prop-types';\nimport { CALENDAR_TYPES, DEPRECATED_CALENDAR_TYPES } from './const.js';\nvar calendarTypes = Object.values(CALENDAR_TYPES);\nvar deprecatedCalendarTypes = Object.values(DEPRECATED_CALENDAR_TYPES);\nvar allViews = ['century', 'decade', 'year', 'month'];\nexport var isCalendarType = PropTypes.oneOf(__spreadArray(__spreadArray([], calendarTypes, true), deprecatedCalendarTypes, true));\nexport var isClassName = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n]);\nexport var isMinDate = function isMinDate(props, propName, componentName) {\n var _a = props, _b = propName, minDate = _a[_b];\n if (!minDate) {\n return null;\n }\n if (!(minDate instanceof Date)) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of type `\").concat(typeof minDate, \"` supplied to `\").concat(componentName, \"`, expected instance of `Date`.\"));\n }\n var maxDate = props.maxDate;\n if (maxDate && minDate > maxDate) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of type `\").concat(typeof minDate, \"` supplied to `\").concat(componentName, \"`, minDate cannot be larger than maxDate.\"));\n }\n return null;\n};\nexport var isMaxDate = function isMaxDate(props, propName, componentName) {\n var _a = props, _b = propName, maxDate = _a[_b];\n if (!maxDate) {\n return null;\n }\n if (!(maxDate instanceof Date)) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of type `\").concat(typeof maxDate, \"` supplied to `\").concat(componentName, \"`, expected instance of `Date`.\"));\n }\n var minDate = props.minDate;\n if (minDate && maxDate < minDate) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of type `\").concat(typeof maxDate, \"` supplied to `\").concat(componentName, \"`, maxDate cannot be smaller than minDate.\"));\n }\n return null;\n};\nexport var isRef = PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.exact({\n current: PropTypes.any,\n }),\n]);\nvar isRange = PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.oneOf([null])]).isRequired);\nexport var isValue = PropTypes.oneOfType([\n PropTypes.instanceOf(Date),\n PropTypes.oneOf([null]),\n isRange,\n]);\nexport var isViews = PropTypes.arrayOf(PropTypes.oneOf(allViews));\nexport var isView = function isView(props, propName, componentName) {\n var _a = props, _b = propName, view = _a[_b];\n if (view !== undefined && (typeof view !== 'string' || allViews.indexOf(view) === -1)) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of value `\").concat(view, \"` supplied to `\").concat(componentName, \"`, expected one of [\").concat(allViews\n .map(function (a) { return \"\\\"\".concat(a, \"\\\"\"); })\n .join(', '), \"].\"));\n }\n // Everything is fine\n return null;\n};\nisView.isRequired = function isViewIsRequired(props, propName, componentName, location, propFullName) {\n var _a = props, _b = propName, view = _a[_b];\n if (!view) {\n return new Error(\"The prop `\".concat(propName, \"` is marked as required in `\").concat(componentName, \"`, but its value is `\").concat(view, \"`.\"));\n }\n return isView(props, propName, componentName, location, propFullName);\n};\nexport var rangeOf = function (type) {\n return PropTypes.arrayOf(type);\n};\nexport var tileGroupProps = {\n activeStartDate: PropTypes.instanceOf(Date).isRequired,\n hover: PropTypes.instanceOf(Date),\n locale: PropTypes.string,\n maxDate: isMaxDate,\n minDate: isMinDate,\n onClick: PropTypes.func,\n onMouseOver: PropTypes.func,\n tileClassName: PropTypes.oneOfType([PropTypes.func, isClassName]),\n tileContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n value: isValue,\n valueType: PropTypes.oneOf(['century', 'decade', 'year', 'month', 'day']).isRequired,\n};\nexport var tileProps = {\n activeStartDate: PropTypes.instanceOf(Date).isRequired,\n classes: PropTypes.arrayOf(PropTypes.string.isRequired).isRequired,\n date: PropTypes.instanceOf(Date).isRequired,\n locale: PropTypes.string,\n maxDate: isMaxDate,\n minDate: isMinDate,\n onClick: PropTypes.func,\n onMouseOver: PropTypes.func,\n style: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n tileClassName: PropTypes.oneOfType([PropTypes.func, isClassName]),\n tileContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n tileDisabled: PropTypes.func,\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from 'react';\nimport Decades from './CenturyView/Decades.js';\nimport { tileGroupProps } from './shared/propTypes.js';\n/**\n * Displays a given century.\n */\nvar CenturyView = function CenturyView(props) {\n function renderDecades() {\n return React.createElement(Decades, __assign({}, props));\n }\n return React.createElement(\"div\", { className: \"react-calendar__century-view\" }, renderDecades());\n};\nCenturyView.propTypes = __assign({}, tileGroupProps);\nexport default CenturyView;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport React from 'react';\nimport { getYearStart, getYearEnd } from '@wojtekmaj/date-utils';\nimport Tile from '../Tile.js';\nimport { formatYear as defaultFormatYear } from '../shared/dateFormatter.js';\nvar className = 'react-calendar__decade-view__years__year';\nexport default function Year(_a) {\n var _b = _a.classes, classes = _b === void 0 ? [] : _b, _c = _a.formatYear, formatYear = _c === void 0 ? defaultFormatYear : _c, otherProps = __rest(_a, [\"classes\", \"formatYear\"]);\n var date = otherProps.date, locale = otherProps.locale;\n return (React.createElement(Tile, __assign({}, otherProps, { classes: __spreadArray(__spreadArray([], classes, true), [className], false), maxDateTransform: getYearEnd, minDateTransform: getYearStart, view: \"decade\" }), formatYear(locale, date)));\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { getYearStart } from '@wojtekmaj/date-utils';\nimport TileGroup from '../TileGroup.js';\nimport Year from './Year.js';\nimport { getBeginOfDecadeYear } from '../shared/dates.js';\nexport default function Years(props) {\n var activeStartDate = props.activeStartDate, hover = props.hover, value = props.value, valueType = props.valueType, otherProps = __rest(props, [\"activeStartDate\", \"hover\", \"value\", \"valueType\"]);\n var start = getBeginOfDecadeYear(activeStartDate);\n var end = start + 9;\n return (React.createElement(TileGroup, { className: \"react-calendar__decade-view__years\", dateTransform: getYearStart, dateType: \"year\", end: end, hover: hover, renderTile: function (_a) {\n var date = _a.date, otherTileProps = __rest(_a, [\"date\"]);\n return (React.createElement(Year, __assign({ key: date.getTime() }, otherProps, otherTileProps, { activeStartDate: activeStartDate, date: date })));\n }, start: start, value: value, valueType: valueType }));\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from 'react';\nimport Years from './DecadeView/Years.js';\nimport { tileGroupProps } from './shared/propTypes.js';\n/**\n * Displays a given decade.\n */\nvar DecadeView = function DecadeView(props) {\n function renderYears() {\n return React.createElement(Years, __assign({}, props));\n }\n return React.createElement(\"div\", { className: \"react-calendar__decade-view\" }, renderYears());\n};\nDecadeView.propTypes = __assign({}, tileGroupProps);\nexport default DecadeView;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport React from 'react';\nimport { getMonthStart, getMonthEnd } from '@wojtekmaj/date-utils';\nimport Tile from '../Tile.js';\nimport { formatMonth as defaultFormatMonth, formatMonthYear as defaultFormatMonthYear, } from '../shared/dateFormatter.js';\nvar className = 'react-calendar__year-view__months__month';\nexport default function Month(_a) {\n var _b = _a.classes, classes = _b === void 0 ? [] : _b, _c = _a.formatMonth, formatMonth = _c === void 0 ? defaultFormatMonth : _c, _d = _a.formatMonthYear, formatMonthYear = _d === void 0 ? defaultFormatMonthYear : _d, otherProps = __rest(_a, [\"classes\", \"formatMonth\", \"formatMonthYear\"]);\n var date = otherProps.date, locale = otherProps.locale;\n return (React.createElement(Tile, __assign({}, otherProps, { classes: __spreadArray(__spreadArray([], classes, true), [className], false), formatAbbr: formatMonthYear, maxDateTransform: getMonthEnd, minDateTransform: getMonthStart, view: \"year\" }), formatMonth(locale, date)));\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { getMonthStart, getYear } from '@wojtekmaj/date-utils';\nimport TileGroup from '../TileGroup.js';\nimport Month from './Month.js';\nexport default function Months(props) {\n var activeStartDate = props.activeStartDate, hover = props.hover, value = props.value, valueType = props.valueType, otherProps = __rest(props, [\"activeStartDate\", \"hover\", \"value\", \"valueType\"]);\n var start = 0;\n var end = 11;\n var year = getYear(activeStartDate);\n return (React.createElement(TileGroup, { className: \"react-calendar__year-view__months\", dateTransform: function (monthIndex) {\n var date = new Date();\n date.setFullYear(year, monthIndex, 1);\n return getMonthStart(date);\n }, dateType: \"month\", end: end, hover: hover, renderTile: function (_a) {\n var date = _a.date, otherTileProps = __rest(_a, [\"date\"]);\n return (React.createElement(Month, __assign({ key: date.getTime() }, otherProps, otherTileProps, { activeStartDate: activeStartDate, date: date })));\n }, start: start, value: value, valueType: valueType }));\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from 'react';\nimport Months from './YearView/Months.js';\nimport { tileGroupProps } from './shared/propTypes.js';\n/**\n * Displays a given year.\n */\nvar YearView = function YearView(props) {\n function renderMonths() {\n return React.createElement(Months, __assign({}, props));\n }\n return React.createElement(\"div\", { className: \"react-calendar__year-view\" }, renderMonths());\n};\nYearView.propTypes = __assign({}, tileGroupProps);\nexport default YearView;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { getDayStart, getDayEnd } from '@wojtekmaj/date-utils';\nimport Tile from '../Tile.js';\nimport { isWeekend } from '../shared/dates.js';\nimport { formatDay as defaultFormatDay, formatLongDate as defaultFormatLongDate, } from '../shared/dateFormatter.js';\nimport { mapCalendarType } from '../shared/utils.js';\nvar className = 'react-calendar__month-view__days__day';\nexport default function Day(_a) {\n var calendarTypeOrDeprecatedCalendarType = _a.calendarType, _b = _a.classes, classes = _b === void 0 ? [] : _b, currentMonthIndex = _a.currentMonthIndex, _c = _a.formatDay, formatDay = _c === void 0 ? defaultFormatDay : _c, _d = _a.formatLongDate, formatLongDate = _d === void 0 ? defaultFormatLongDate : _d, otherProps = __rest(_a, [\"calendarType\", \"classes\", \"currentMonthIndex\", \"formatDay\", \"formatLongDate\"]);\n var calendarType = mapCalendarType(calendarTypeOrDeprecatedCalendarType);\n var date = otherProps.date, locale = otherProps.locale;\n var classesProps = [];\n if (classes) {\n classesProps.push.apply(classesProps, classes);\n }\n if (className) {\n classesProps.push(className);\n }\n if (isWeekend(date, calendarType)) {\n classesProps.push(\"\".concat(className, \"--weekend\"));\n }\n if (date.getMonth() !== currentMonthIndex) {\n classesProps.push(\"\".concat(className, \"--neighboringMonth\"));\n }\n return (React.createElement(Tile, __assign({}, otherProps, { classes: classesProps, formatAbbr: formatLongDate, maxDateTransform: getDayEnd, minDateTransform: getDayStart, view: \"month\" }), formatDay(locale, date)));\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { getYear, getMonth, getDaysInMonth, getDayStart } from '@wojtekmaj/date-utils';\nimport TileGroup from '../TileGroup.js';\nimport Day from './Day.js';\nimport { getDayOfWeek } from '../shared/dates.js';\nimport { mapCalendarType } from '../shared/utils.js';\nexport default function Days(props) {\n var activeStartDate = props.activeStartDate, calendarTypeOrDeprecatedCalendarType = props.calendarType, hover = props.hover, showFixedNumberOfWeeks = props.showFixedNumberOfWeeks, showNeighboringMonth = props.showNeighboringMonth, value = props.value, valueType = props.valueType, otherProps = __rest(props, [\"activeStartDate\", \"calendarType\", \"hover\", \"showFixedNumberOfWeeks\", \"showNeighboringMonth\", \"value\", \"valueType\"]);\n var calendarType = mapCalendarType(calendarTypeOrDeprecatedCalendarType);\n var year = getYear(activeStartDate);\n var monthIndex = getMonth(activeStartDate);\n var hasFixedNumberOfWeeks = showFixedNumberOfWeeks || showNeighboringMonth;\n var dayOfWeek = getDayOfWeek(activeStartDate, calendarType);\n var offset = hasFixedNumberOfWeeks ? 0 : dayOfWeek;\n /**\n * Defines on which day of the month the grid shall start. If we simply show current\n * month, we obviously start on day one, but if showNeighboringMonth is set to\n * true, we need to find the beginning of the week the first day of the month is in.\n */\n var start = (hasFixedNumberOfWeeks ? -dayOfWeek : 0) + 1;\n /**\n * Defines on which day of the month the grid shall end. If we simply show current\n * month, we need to stop on the last day of the month, but if showNeighboringMonth\n * is set to true, we need to find the end of the week the last day of the month is in.\n */\n var end = (function () {\n if (showFixedNumberOfWeeks) {\n // Always show 6 weeks\n return start + 6 * 7 - 1;\n }\n var daysInMonth = getDaysInMonth(activeStartDate);\n if (showNeighboringMonth) {\n var activeEndDate = new Date();\n activeEndDate.setFullYear(year, monthIndex, daysInMonth);\n activeEndDate.setHours(0, 0, 0, 0);\n var daysUntilEndOfTheWeek = 7 - getDayOfWeek(activeEndDate, calendarType) - 1;\n return daysInMonth + daysUntilEndOfTheWeek;\n }\n return daysInMonth;\n })();\n return (React.createElement(TileGroup, { className: \"react-calendar__month-view__days\", count: 7, dateTransform: function (day) {\n var date = new Date();\n date.setFullYear(year, monthIndex, day);\n return getDayStart(date);\n }, dateType: \"day\", hover: hover, end: end, renderTile: function (_a) {\n var date = _a.date, otherTileProps = __rest(_a, [\"date\"]);\n return (React.createElement(Day, __assign({ key: date.getTime() }, otherProps, otherTileProps, { activeStartDate: activeStartDate, calendarType: calendarTypeOrDeprecatedCalendarType, currentMonthIndex: monthIndex, date: date })));\n }, offset: offset, start: start, value: value, valueType: valueType }));\n}\n","import React from 'react';\nimport clsx from 'clsx';\nimport { getYear, getMonth, getMonthStart } from '@wojtekmaj/date-utils';\nimport Flex from '../Flex.js';\nimport { getDayOfWeek, isCurrentDayOfWeek, isWeekend } from '../shared/dates.js';\nimport { formatShortWeekday as defaultFormatShortWeekday, formatWeekday as defaultFormatWeekday, } from '../shared/dateFormatter.js';\nimport { mapCalendarType } from '../shared/utils.js';\nvar className = 'react-calendar__month-view__weekdays';\nvar weekdayClassName = \"\".concat(className, \"__weekday\");\nexport default function Weekdays(props) {\n var calendarTypeOrDeprecatedCalendarType = props.calendarType, _a = props.formatShortWeekday, formatShortWeekday = _a === void 0 ? defaultFormatShortWeekday : _a, _b = props.formatWeekday, formatWeekday = _b === void 0 ? defaultFormatWeekday : _b, locale = props.locale, onMouseLeave = props.onMouseLeave;\n var calendarType = mapCalendarType(calendarTypeOrDeprecatedCalendarType);\n var anyDate = new Date();\n var beginOfMonth = getMonthStart(anyDate);\n var year = getYear(beginOfMonth);\n var monthIndex = getMonth(beginOfMonth);\n var weekdays = [];\n for (var weekday = 1; weekday <= 7; weekday += 1) {\n var weekdayDate = new Date(year, monthIndex, weekday - getDayOfWeek(beginOfMonth, calendarType));\n var abbr = formatWeekday(locale, weekdayDate);\n weekdays.push(React.createElement(\"div\", { key: weekday, className: clsx(weekdayClassName, isCurrentDayOfWeek(weekdayDate) && \"\".concat(weekdayClassName, \"--current\"), isWeekend(weekdayDate, calendarType) && \"\".concat(weekdayClassName, \"--weekend\")) },\n React.createElement(\"abbr\", { \"aria-label\": abbr, title: abbr }, formatShortWeekday(locale, weekdayDate).replace('.', ''))));\n }\n return (React.createElement(Flex, { className: className, count: 7, onFocus: onMouseLeave, onMouseOver: onMouseLeave }, weekdays));\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nvar className = 'react-calendar__tile';\nexport default function WeekNumber(props) {\n var onClickWeekNumber = props.onClickWeekNumber, weekNumber = props.weekNumber;\n var children = React.createElement(\"span\", null, weekNumber);\n if (onClickWeekNumber) {\n var date_1 = props.date, onClickWeekNumber_1 = props.onClickWeekNumber, weekNumber_1 = props.weekNumber, otherProps = __rest(props, [\"date\", \"onClickWeekNumber\", \"weekNumber\"]);\n return (React.createElement(\"button\", __assign({}, otherProps, { className: className, onClick: function (event) { return onClickWeekNumber_1(weekNumber_1, date_1, event); }, type: \"button\" }), children));\n }\n else {\n var date = props.date, onClickWeekNumber_2 = props.onClickWeekNumber, weekNumber_2 = props.weekNumber, otherProps = __rest(props, [\"date\", \"onClickWeekNumber\", \"weekNumber\"]);\n return (React.createElement(\"div\", __assign({}, otherProps, { className: className }), children));\n }\n}\n","import React from 'react';\nimport { getYear, getMonth, getDate, getDaysInMonth } from '@wojtekmaj/date-utils';\nimport WeekNumber from './WeekNumber.js';\nimport Flex from '../Flex.js';\nimport { getBeginOfWeek, getDayOfWeek, getWeekNumber } from '../shared/dates.js';\nimport { mapCalendarType } from '../shared/utils.js';\nexport default function WeekNumbers(props) {\n var activeStartDate = props.activeStartDate, calendarTypeOrDeprecatedCalendarType = props.calendarType, onClickWeekNumber = props.onClickWeekNumber, onMouseLeave = props.onMouseLeave, showFixedNumberOfWeeks = props.showFixedNumberOfWeeks;\n var calendarType = mapCalendarType(calendarTypeOrDeprecatedCalendarType);\n var numberOfWeeks = (function () {\n if (showFixedNumberOfWeeks) {\n return 6;\n }\n var numberOfDays = getDaysInMonth(activeStartDate);\n var startWeekday = getDayOfWeek(activeStartDate, calendarType);\n var days = numberOfDays - (7 - startWeekday);\n return 1 + Math.ceil(days / 7);\n })();\n var dates = (function () {\n var year = getYear(activeStartDate);\n var monthIndex = getMonth(activeStartDate);\n var day = getDate(activeStartDate);\n var result = [];\n for (var index = 0; index < numberOfWeeks; index += 1) {\n result.push(getBeginOfWeek(new Date(year, monthIndex, day + index * 7), calendarType));\n }\n return result;\n })();\n var weekNumbers = dates.map(function (date) { return getWeekNumber(date, calendarType); });\n return (React.createElement(Flex, { className: \"react-calendar__month-view__weekNumbers\", count: numberOfWeeks, direction: \"column\", onFocus: onMouseLeave, onMouseOver: onMouseLeave, style: { flexBasis: 'calc(100% * (1 / 8)', flexShrink: 0 } }, weekNumbers.map(function (weekNumber, weekIndex) {\n var date = dates[weekIndex];\n if (!date) {\n throw new Error('date is not defined');\n }\n return (React.createElement(WeekNumber, { key: weekNumber, date: date, onClickWeekNumber: onClickWeekNumber, weekNumber: weekNumber }));\n })));\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Days from './MonthView/Days.js';\nimport Weekdays from './MonthView/Weekdays.js';\nimport WeekNumbers from './MonthView/WeekNumbers.js';\nimport { CALENDAR_TYPES, CALENDAR_TYPE_LOCALES } from './shared/const.js';\nimport { isCalendarType, tileGroupProps } from './shared/propTypes.js';\nfunction getCalendarTypeFromLocale(locale) {\n if (locale) {\n for (var _i = 0, _a = Object.entries(CALENDAR_TYPE_LOCALES); _i < _a.length; _i++) {\n var _b = _a[_i], calendarType = _b[0], locales = _b[1];\n if (locales.includes(locale)) {\n return calendarType;\n }\n }\n }\n return CALENDAR_TYPES.ISO_8601;\n}\n/**\n * Displays a given month.\n */\nvar MonthView = function MonthView(props) {\n var activeStartDate = props.activeStartDate, locale = props.locale, onMouseLeave = props.onMouseLeave, showFixedNumberOfWeeks = props.showFixedNumberOfWeeks;\n var _a = props.calendarType, calendarType = _a === void 0 ? getCalendarTypeFromLocale(locale) : _a, formatShortWeekday = props.formatShortWeekday, formatWeekday = props.formatWeekday, onClickWeekNumber = props.onClickWeekNumber, showWeekNumbers = props.showWeekNumbers, childProps = __rest(props, [\"calendarType\", \"formatShortWeekday\", \"formatWeekday\", \"onClickWeekNumber\", \"showWeekNumbers\"]);\n function renderWeekdays() {\n return (React.createElement(Weekdays, { calendarType: calendarType, formatShortWeekday: formatShortWeekday, formatWeekday: formatWeekday, locale: locale, onMouseLeave: onMouseLeave }));\n }\n function renderWeekNumbers() {\n if (!showWeekNumbers) {\n return null;\n }\n return (React.createElement(WeekNumbers, { activeStartDate: activeStartDate, calendarType: calendarType, onClickWeekNumber: onClickWeekNumber, onMouseLeave: onMouseLeave, showFixedNumberOfWeeks: showFixedNumberOfWeeks }));\n }\n function renderDays() {\n return React.createElement(Days, __assign({ calendarType: calendarType }, childProps));\n }\n var className = 'react-calendar__month-view';\n return (React.createElement(\"div\", { className: clsx(className, showWeekNumbers ? \"\".concat(className, \"--weekNumbers\") : '') },\n React.createElement(\"div\", { style: {\n display: 'flex',\n alignItems: 'flex-end',\n } },\n renderWeekNumbers(),\n React.createElement(\"div\", { style: {\n flexGrow: 1,\n width: '100%',\n } },\n renderWeekdays(),\n renderDays()))));\n};\nMonthView.propTypes = __assign(__assign({}, tileGroupProps), { calendarType: isCalendarType, formatDay: PropTypes.func, formatLongDate: PropTypes.func, formatShortWeekday: PropTypes.func, formatWeekday: PropTypes.func, onClickWeekNumber: PropTypes.func, onMouseLeave: PropTypes.func, showFixedNumberOfWeeks: PropTypes.bool, showNeighboringMonth: PropTypes.bool, showWeekNumbers: PropTypes.bool });\nexport default MonthView;\n","'use client';\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { forwardRef, useCallback, useImperativeHandle, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Navigation from './Calendar/Navigation.js';\nimport CenturyView from './CenturyView.js';\nimport DecadeView from './DecadeView.js';\nimport YearView from './YearView.js';\nimport MonthView from './MonthView.js';\nimport { getBegin, getBeginNext, getEnd, getValueRange } from './shared/dates.js';\nimport { isCalendarType, isClassName, isMaxDate, isMinDate, isRef, isView, rangeOf, } from './shared/propTypes.js';\nimport { between } from './shared/utils.js';\nvar baseClassName = 'react-calendar';\nvar allViews = ['century', 'decade', 'year', 'month'];\nvar allValueTypes = ['decade', 'year', 'month', 'day'];\nvar defaultMinDate = new Date();\ndefaultMinDate.setFullYear(1, 0, 1);\ndefaultMinDate.setHours(0, 0, 0, 0);\nvar defaultMaxDate = new Date(8.64e15);\nfunction toDate(value) {\n if (value instanceof Date) {\n return value;\n }\n return new Date(value);\n}\n/**\n * Returns views array with disallowed values cut off.\n */\nfunction getLimitedViews(minDetail, maxDetail) {\n return allViews.slice(allViews.indexOf(minDetail), allViews.indexOf(maxDetail) + 1);\n}\n/**\n * Determines whether a given view is allowed with currently applied settings.\n */\nfunction isViewAllowed(view, minDetail, maxDetail) {\n var views = getLimitedViews(minDetail, maxDetail);\n return views.indexOf(view) !== -1;\n}\n/**\n * Gets either provided view if allowed by minDetail and maxDetail, or gets\n * the default view if not allowed.\n */\nfunction getView(view, minDetail, maxDetail) {\n if (!view) {\n return maxDetail;\n }\n if (isViewAllowed(view, minDetail, maxDetail)) {\n return view;\n }\n return maxDetail;\n}\n/**\n * Returns value type that can be returned with currently applied settings.\n */\nfunction getValueType(view) {\n var index = allViews.indexOf(view);\n return allValueTypes[index];\n}\nfunction getValue(value, index) {\n var rawValue = Array.isArray(value) ? value[index] : value;\n if (!rawValue) {\n return null;\n }\n var valueDate = toDate(rawValue);\n if (isNaN(valueDate.getTime())) {\n throw new Error(\"Invalid date: \".concat(value));\n }\n return valueDate;\n}\nfunction getDetailValue(_a, index) {\n var value = _a.value, minDate = _a.minDate, maxDate = _a.maxDate, maxDetail = _a.maxDetail;\n var valuePiece = getValue(value, index);\n if (!valuePiece) {\n return null;\n }\n var valueType = getValueType(maxDetail);\n var detailValueFrom = (function () {\n switch (index) {\n case 0:\n return getBegin(valueType, valuePiece);\n case 1:\n return getEnd(valueType, valuePiece);\n default:\n throw new Error(\"Invalid index value: \".concat(index));\n }\n })();\n return between(detailValueFrom, minDate, maxDate);\n}\nvar getDetailValueFrom = function (args) { return getDetailValue(args, 0); };\nvar getDetailValueTo = function (args) { return getDetailValue(args, 1); };\nvar getDetailValueArray = function (args) {\n return [getDetailValueFrom, getDetailValueTo].map(function (fn) { return fn(args); });\n};\nfunction getActiveStartDate(_a) {\n var maxDate = _a.maxDate, maxDetail = _a.maxDetail, minDate = _a.minDate, minDetail = _a.minDetail, value = _a.value, view = _a.view;\n var rangeType = getView(view, minDetail, maxDetail);\n var valueFrom = getDetailValueFrom({\n value: value,\n minDate: minDate,\n maxDate: maxDate,\n maxDetail: maxDetail,\n }) || new Date();\n return getBegin(rangeType, valueFrom);\n}\nfunction getInitialActiveStartDate(_a) {\n var activeStartDate = _a.activeStartDate, defaultActiveStartDate = _a.defaultActiveStartDate, defaultValue = _a.defaultValue, defaultView = _a.defaultView, maxDate = _a.maxDate, maxDetail = _a.maxDetail, minDate = _a.minDate, minDetail = _a.minDetail, value = _a.value, view = _a.view;\n var rangeType = getView(view, minDetail, maxDetail);\n var valueFrom = activeStartDate || defaultActiveStartDate;\n if (valueFrom) {\n return getBegin(rangeType, valueFrom);\n }\n return getActiveStartDate({\n maxDate: maxDate,\n maxDetail: maxDetail,\n minDate: minDate,\n minDetail: minDetail,\n value: value || defaultValue,\n view: view || defaultView,\n });\n}\nfunction getIsSingleValue(value) {\n return value && (!Array.isArray(value) || value.length === 1);\n}\nfunction areDatesEqual(date1, date2) {\n return date1 instanceof Date && date2 instanceof Date && date1.getTime() === date2.getTime();\n}\nvar Calendar = forwardRef(function Calendar(props, ref) {\n var activeStartDateProps = props.activeStartDate, allowPartialRange = props.allowPartialRange, calendarType = props.calendarType, className = props.className, defaultActiveStartDate = props.defaultActiveStartDate, defaultValue = props.defaultValue, defaultView = props.defaultView, formatDay = props.formatDay, formatLongDate = props.formatLongDate, formatMonth = props.formatMonth, formatMonthYear = props.formatMonthYear, formatShortWeekday = props.formatShortWeekday, formatWeekday = props.formatWeekday, formatYear = props.formatYear, _a = props.goToRangeStartOnSelect, goToRangeStartOnSelect = _a === void 0 ? true : _a, inputRef = props.inputRef, locale = props.locale, _b = props.maxDate, maxDate = _b === void 0 ? defaultMaxDate : _b, _c = props.maxDetail, maxDetail = _c === void 0 ? 'month' : _c, _d = props.minDate, minDate = _d === void 0 ? defaultMinDate : _d, _e = props.minDetail, minDetail = _e === void 0 ? 'century' : _e, navigationAriaLabel = props.navigationAriaLabel, navigationAriaLive = props.navigationAriaLive, navigationLabel = props.navigationLabel, next2AriaLabel = props.next2AriaLabel, next2Label = props.next2Label, nextAriaLabel = props.nextAriaLabel, nextLabel = props.nextLabel, onActiveStartDateChange = props.onActiveStartDateChange, onChangeProps = props.onChange, onClickDay = props.onClickDay, onClickDecade = props.onClickDecade, onClickMonth = props.onClickMonth, onClickWeekNumber = props.onClickWeekNumber, onClickYear = props.onClickYear, onDrillDown = props.onDrillDown, onDrillUp = props.onDrillUp, onViewChange = props.onViewChange, prev2AriaLabel = props.prev2AriaLabel, prev2Label = props.prev2Label, prevAriaLabel = props.prevAriaLabel, prevLabel = props.prevLabel, _f = props.returnValue, returnValue = _f === void 0 ? 'start' : _f, selectRange = props.selectRange, showDoubleView = props.showDoubleView, showFixedNumberOfWeeks = props.showFixedNumberOfWeeks, _g = props.showNavigation, showNavigation = _g === void 0 ? true : _g, _h = props.showNeighboringMonth, showNeighboringMonth = _h === void 0 ? true : _h, showWeekNumbers = props.showWeekNumbers, tileClassName = props.tileClassName, tileContent = props.tileContent, tileDisabled = props.tileDisabled, valueProps = props.value, viewProps = props.view;\n var _j = useState(defaultActiveStartDate), activeStartDateState = _j[0], setActiveStartDateState = _j[1];\n var _k = useState(null), hoverState = _k[0], setHoverState = _k[1];\n var _l = useState(Array.isArray(defaultValue)\n ? defaultValue.map(function (el) { return (el !== null ? toDate(el) : null); })\n : defaultValue !== null && defaultValue !== undefined\n ? toDate(defaultValue)\n : null), valueState = _l[0], setValueState = _l[1];\n var _m = useState(defaultView), viewState = _m[0], setViewState = _m[1];\n var activeStartDate = activeStartDateProps ||\n activeStartDateState ||\n getInitialActiveStartDate({\n activeStartDate: activeStartDateProps,\n defaultActiveStartDate: defaultActiveStartDate,\n defaultValue: defaultValue,\n defaultView: defaultView,\n maxDate: maxDate,\n maxDetail: maxDetail,\n minDate: minDate,\n minDetail: minDetail,\n value: valueProps,\n view: viewProps,\n });\n var value = (function () {\n var rawValue = (function () {\n // In the middle of range selection, use value from state\n if (selectRange && getIsSingleValue(valueState)) {\n return valueState;\n }\n return valueProps !== undefined ? valueProps : valueState;\n })();\n if (!rawValue) {\n return null;\n }\n return Array.isArray(rawValue)\n ? rawValue.map(function (el) { return (el !== null ? toDate(el) : null); })\n : rawValue !== null\n ? toDate(rawValue)\n : null;\n })();\n var valueType = getValueType(maxDetail);\n var view = getView(viewProps || viewState, minDetail, maxDetail);\n var views = getLimitedViews(minDetail, maxDetail);\n var hover = selectRange ? hoverState : null;\n var drillDownAvailable = views.indexOf(view) < views.length - 1;\n var drillUpAvailable = views.indexOf(view) > 0;\n var getProcessedValue = useCallback(function (value) {\n var processFunction = (function () {\n switch (returnValue) {\n case 'start':\n return getDetailValueFrom;\n case 'end':\n return getDetailValueTo;\n case 'range':\n return getDetailValueArray;\n default:\n throw new Error('Invalid returnValue.');\n }\n })();\n return processFunction({\n maxDate: maxDate,\n maxDetail: maxDetail,\n minDate: minDate,\n value: value,\n });\n }, [maxDate, maxDetail, minDate, returnValue]);\n var setActiveStartDate = useCallback(function (nextActiveStartDate, action) {\n setActiveStartDateState(nextActiveStartDate);\n var args = {\n action: action,\n activeStartDate: nextActiveStartDate,\n value: value,\n view: view,\n };\n if (onActiveStartDateChange && !areDatesEqual(activeStartDate, nextActiveStartDate)) {\n onActiveStartDateChange(args);\n }\n }, [activeStartDate, onActiveStartDateChange, value, view]);\n var onClickTile = useCallback(function (value, event) {\n var callback = (function () {\n switch (view) {\n case 'century':\n return onClickDecade;\n case 'decade':\n return onClickYear;\n case 'year':\n return onClickMonth;\n case 'month':\n return onClickDay;\n default:\n throw new Error(\"Invalid view: \".concat(view, \".\"));\n }\n })();\n if (callback)\n callback(value, event);\n }, [onClickDay, onClickDecade, onClickMonth, onClickYear, view]);\n var drillDown = useCallback(function (nextActiveStartDate, event) {\n if (!drillDownAvailable) {\n return;\n }\n onClickTile(nextActiveStartDate, event);\n var nextView = views[views.indexOf(view) + 1];\n if (!nextView) {\n throw new Error('Attempted to drill down from the lowest view.');\n }\n setActiveStartDateState(nextActiveStartDate);\n setViewState(nextView);\n var args = {\n action: 'drillDown',\n activeStartDate: nextActiveStartDate,\n value: value,\n view: nextView,\n };\n if (onActiveStartDateChange && !areDatesEqual(activeStartDate, nextActiveStartDate)) {\n onActiveStartDateChange(args);\n }\n if (onViewChange && view !== nextView) {\n onViewChange(args);\n }\n if (onDrillDown) {\n onDrillDown(args);\n }\n }, [\n activeStartDate,\n drillDownAvailable,\n onActiveStartDateChange,\n onClickTile,\n onDrillDown,\n onViewChange,\n value,\n view,\n views,\n ]);\n var drillUp = useCallback(function () {\n if (!drillUpAvailable) {\n return;\n }\n var nextView = views[views.indexOf(view) - 1];\n if (!nextView) {\n throw new Error('Attempted to drill up from the highest view.');\n }\n var nextActiveStartDate = getBegin(nextView, activeStartDate);\n setActiveStartDateState(nextActiveStartDate);\n setViewState(nextView);\n var args = {\n action: 'drillUp',\n activeStartDate: nextActiveStartDate,\n value: value,\n view: nextView,\n };\n if (onActiveStartDateChange && !areDatesEqual(activeStartDate, nextActiveStartDate)) {\n onActiveStartDateChange(args);\n }\n if (onViewChange && view !== nextView) {\n onViewChange(args);\n }\n if (onDrillUp) {\n onDrillUp(args);\n }\n }, [\n activeStartDate,\n drillUpAvailable,\n onActiveStartDateChange,\n onDrillUp,\n onViewChange,\n value,\n view,\n views,\n ]);\n var onChange = useCallback(function (rawNextValue, event) {\n var previousValue = value;\n onClickTile(rawNextValue, event);\n var isFirstValueInRange = selectRange && !getIsSingleValue(previousValue);\n var nextValue;\n if (selectRange) {\n // Range selection turned on\n if (isFirstValueInRange) {\n // Value has 0 or 2 elements - either way we're starting a new array\n // First value\n nextValue = getBegin(valueType, rawNextValue);\n }\n else {\n if (!previousValue) {\n throw new Error('previousValue is required');\n }\n if (Array.isArray(previousValue)) {\n throw new Error('previousValue must not be an array');\n }\n // Second value\n nextValue = getValueRange(valueType, previousValue, rawNextValue);\n }\n }\n else {\n // Range selection turned off\n nextValue = getProcessedValue(rawNextValue);\n }\n var nextActiveStartDate = \n // Range selection turned off\n !selectRange ||\n // Range selection turned on, first value\n isFirstValueInRange ||\n // Range selection turned on, second value, goToRangeStartOnSelect toggled on\n goToRangeStartOnSelect\n ? getActiveStartDate({\n maxDate: maxDate,\n maxDetail: maxDetail,\n minDate: minDate,\n minDetail: minDetail,\n value: nextValue,\n view: view,\n })\n : null;\n event.persist();\n setActiveStartDateState(nextActiveStartDate);\n setValueState(nextValue);\n var args = {\n action: 'onChange',\n activeStartDate: nextActiveStartDate,\n value: nextValue,\n view: view,\n };\n if (onActiveStartDateChange && !areDatesEqual(activeStartDate, nextActiveStartDate)) {\n onActiveStartDateChange(args);\n }\n if (onChangeProps) {\n if (selectRange) {\n var isSingleValue = getIsSingleValue(nextValue);\n if (!isSingleValue) {\n onChangeProps(nextValue || null, event);\n }\n else if (allowPartialRange) {\n if (Array.isArray(nextValue)) {\n throw new Error('value must not be an array');\n }\n onChangeProps([nextValue || null, null], event);\n }\n }\n else {\n onChangeProps(nextValue || null, event);\n }\n }\n }, [\n activeStartDate,\n allowPartialRange,\n getProcessedValue,\n goToRangeStartOnSelect,\n maxDate,\n maxDetail,\n minDate,\n minDetail,\n onActiveStartDateChange,\n onChangeProps,\n onClickTile,\n selectRange,\n value,\n valueType,\n view,\n ]);\n function onMouseOver(nextHover) {\n setHoverState(nextHover);\n }\n function onMouseLeave() {\n setHoverState(null);\n }\n useImperativeHandle(ref, function () { return ({\n activeStartDate: activeStartDate,\n drillDown: drillDown,\n drillUp: drillUp,\n onChange: onChange,\n setActiveStartDate: setActiveStartDate,\n value: value,\n view: view,\n }); }, [activeStartDate, drillDown, drillUp, onChange, setActiveStartDate, value, view]);\n function renderContent(next) {\n var currentActiveStartDate = next\n ? getBeginNext(view, activeStartDate)\n : getBegin(view, activeStartDate);\n var onClick = drillDownAvailable ? drillDown : onChange;\n var commonProps = {\n activeStartDate: currentActiveStartDate,\n hover: hover,\n locale: locale,\n maxDate: maxDate,\n minDate: minDate,\n onClick: onClick,\n onMouseOver: selectRange ? onMouseOver : undefined,\n tileClassName: tileClassName,\n tileContent: tileContent,\n tileDisabled: tileDisabled,\n value: value,\n valueType: valueType,\n };\n switch (view) {\n case 'century': {\n return React.createElement(CenturyView, __assign({ formatYear: formatYear }, commonProps));\n }\n case 'decade': {\n return React.createElement(DecadeView, __assign({ formatYear: formatYear }, commonProps));\n }\n case 'year': {\n return (React.createElement(YearView, __assign({ formatMonth: formatMonth, formatMonthYear: formatMonthYear }, commonProps)));\n }\n case 'month': {\n return (React.createElement(MonthView, __assign({ calendarType: calendarType, formatDay: formatDay, formatLongDate: formatLongDate, formatShortWeekday: formatShortWeekday, formatWeekday: formatWeekday, onClickWeekNumber: onClickWeekNumber, onMouseLeave: selectRange ? onMouseLeave : undefined, showFixedNumberOfWeeks: typeof showFixedNumberOfWeeks !== 'undefined'\n ? showFixedNumberOfWeeks\n : showDoubleView, showNeighboringMonth: showNeighboringMonth, showWeekNumbers: showWeekNumbers }, commonProps)));\n }\n default:\n throw new Error(\"Invalid view: \".concat(view, \".\"));\n }\n }\n function renderNavigation() {\n if (!showNavigation) {\n return null;\n }\n return (React.createElement(Navigation, { activeStartDate: activeStartDate, drillUp: drillUp, formatMonthYear: formatMonthYear, formatYear: formatYear, locale: locale, maxDate: maxDate, minDate: minDate, navigationAriaLabel: navigationAriaLabel, navigationAriaLive: navigationAriaLive, navigationLabel: navigationLabel, next2AriaLabel: next2AriaLabel, next2Label: next2Label, nextAriaLabel: nextAriaLabel, nextLabel: nextLabel, prev2AriaLabel: prev2AriaLabel, prev2Label: prev2Label, prevAriaLabel: prevAriaLabel, prevLabel: prevLabel, setActiveStartDate: setActiveStartDate, showDoubleView: showDoubleView, view: view, views: views }));\n }\n var valueArray = Array.isArray(value) ? value : [value];\n return (React.createElement(\"div\", { className: clsx(baseClassName, selectRange && valueArray.length === 1 && \"\".concat(baseClassName, \"--selectRange\"), showDoubleView && \"\".concat(baseClassName, \"--doubleView\"), className), ref: inputRef },\n renderNavigation(),\n React.createElement(\"div\", { className: \"\".concat(baseClassName, \"__viewContainer\"), onBlur: selectRange ? onMouseLeave : undefined, onMouseLeave: selectRange ? onMouseLeave : undefined },\n renderContent(),\n showDoubleView ? renderContent(true) : null)));\n});\nvar isActiveStartDate = PropTypes.instanceOf(Date);\nvar isValue = PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(Date)]);\nvar isValueOrValueArray = PropTypes.oneOfType([isValue, rangeOf(isValue)]);\nCalendar.propTypes = {\n activeStartDate: isActiveStartDate,\n allowPartialRange: PropTypes.bool,\n calendarType: isCalendarType,\n className: isClassName,\n defaultActiveStartDate: isActiveStartDate,\n defaultValue: isValueOrValueArray,\n defaultView: isView,\n formatDay: PropTypes.func,\n formatLongDate: PropTypes.func,\n formatMonth: PropTypes.func,\n formatMonthYear: PropTypes.func,\n formatShortWeekday: PropTypes.func,\n formatWeekday: PropTypes.func,\n formatYear: PropTypes.func,\n goToRangeStartOnSelect: PropTypes.bool,\n inputRef: isRef,\n locale: PropTypes.string,\n maxDate: isMaxDate,\n maxDetail: PropTypes.oneOf(allViews),\n minDate: isMinDate,\n minDetail: PropTypes.oneOf(allViews),\n navigationAriaLabel: PropTypes.string,\n navigationAriaLive: PropTypes.oneOf(['off', 'polite', 'assertive']),\n navigationLabel: PropTypes.func,\n next2AriaLabel: PropTypes.string,\n next2Label: PropTypes.node,\n nextAriaLabel: PropTypes.string,\n nextLabel: PropTypes.node,\n onActiveStartDateChange: PropTypes.func,\n onChange: PropTypes.func,\n onClickDay: PropTypes.func,\n onClickDecade: PropTypes.func,\n onClickMonth: PropTypes.func,\n onClickWeekNumber: PropTypes.func,\n onClickYear: PropTypes.func,\n onDrillDown: PropTypes.func,\n onDrillUp: PropTypes.func,\n onViewChange: PropTypes.func,\n prev2AriaLabel: PropTypes.string,\n prev2Label: PropTypes.node,\n prevAriaLabel: PropTypes.string,\n prevLabel: PropTypes.node,\n returnValue: PropTypes.oneOf(['start', 'end', 'range']),\n selectRange: PropTypes.bool,\n showDoubleView: PropTypes.bool,\n showFixedNumberOfWeeks: PropTypes.bool,\n showNavigation: PropTypes.bool,\n showNeighboringMonth: PropTypes.bool,\n showWeekNumbers: PropTypes.bool,\n tileClassName: PropTypes.oneOfType([PropTypes.func, isClassName]),\n tileContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n tileDisabled: PropTypes.func,\n value: isValueOrValueArray,\n view: isView,\n};\nexport default Calendar;\n","import Calendar from './Calendar.js';\nimport CenturyView from './CenturyView.js';\nimport DecadeView from './DecadeView.js';\nimport MonthView from './MonthView.js';\nimport Navigation from './Calendar/Navigation.js';\nimport YearView from './YearView.js';\nexport { Calendar, CenturyView, DecadeView, MonthView, Navigation, YearView };\nexport default Calendar;\n","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","let e={data:\"\"},t=t=>\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data=\"\",l},l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,a=/\\/\\*[^]*?\\*\\/| +/g,n=/\\n+/g,o=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let c=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+c+\";\":l+=\"f\"==n[1]?o(c,n):n+\"{\"+o(c,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=o.p?o.p(n,c):n+\":\"+c+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},c={},s=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t>>0;return\"go\"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]?o.shift():t[3]?(r=t[3].replace(n,\" \").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n,\" \").trim();return o[0]})(e);c[d]=o(p?{[\"@keyframes \"+d]:t}:t,r?\"\":\".\"+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=u.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}export{u as css,r as extractCss,b as glob,h as keyframes,m as setup,j as styled};\n","import { CSSProperties } from 'react';\n\nexport type ToastType = 'success' | 'error' | 'loading' | 'blank' | 'custom';\nexport type ToastPosition =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right';\n\nexport type Renderable = JSX.Element | string | null;\n\nexport interface IconTheme {\n primary: string;\n secondary: string;\n}\n\nexport type ValueFunction = (arg: TArg) => TValue;\nexport type ValueOrFunction =\n | TValue\n | ValueFunction;\n\nconst isFunction = (\n valOrFunction: ValueOrFunction\n): valOrFunction is ValueFunction =>\n typeof valOrFunction === 'function';\n\nexport const resolveValue = (\n valOrFunction: ValueOrFunction,\n arg: TArg\n): TValue => (isFunction(valOrFunction) ? valOrFunction(arg) : valOrFunction);\n\nexport interface Toast {\n type: ToastType;\n id: string;\n message: ValueOrFunction;\n icon?: Renderable;\n duration?: number;\n pauseDuration: number;\n position?: ToastPosition;\n\n ariaProps: {\n role: 'status' | 'alert';\n 'aria-live': 'assertive' | 'off' | 'polite';\n };\n\n style?: CSSProperties;\n className?: string;\n iconTheme?: IconTheme;\n\n createdAt: number;\n visible: boolean;\n height?: number;\n}\n\nexport type ToastOptions = Partial<\n Pick<\n Toast,\n | 'id'\n | 'icon'\n | 'duration'\n | 'ariaProps'\n | 'className'\n | 'style'\n | 'position'\n | 'iconTheme'\n >\n>;\n\nexport type DefaultToastOptions = ToastOptions & {\n [key in ToastType]?: ToastOptions;\n};\n\nexport interface ToasterProps {\n position?: ToastPosition;\n toastOptions?: DefaultToastOptions;\n reverseOrder?: boolean;\n gutter?: number;\n containerStyle?: React.CSSProperties;\n containerClassName?: string;\n children?: (toast: Toast) => JSX.Element;\n}\n\nexport interface ToastWrapperProps {\n id: string;\n className?: string;\n style?: React.CSSProperties;\n onHeightUpdate: (id: string, height: number) => void;\n children?: React.ReactNode;\n}\n","export const genId = (() => {\n let count = 0;\n return () => {\n return (++count).toString();\n };\n})();\n\nexport const prefersReducedMotion = (() => {\n // Cache result\n let shouldReduceMotion: boolean | undefined = undefined;\n\n return () => {\n if (shouldReduceMotion === undefined && typeof window !== 'undefined') {\n const mediaQuery = matchMedia('(prefers-reduced-motion: reduce)');\n shouldReduceMotion = !mediaQuery || mediaQuery.matches;\n }\n return shouldReduceMotion;\n };\n})();\n","import { useEffect, useState } from 'react';\nimport { DefaultToastOptions, Toast, ToastType } from './types';\n\nconst TOAST_LIMIT = 20;\n\nexport enum ActionType {\n ADD_TOAST,\n UPDATE_TOAST,\n UPSERT_TOAST,\n DISMISS_TOAST,\n REMOVE_TOAST,\n START_PAUSE,\n END_PAUSE,\n}\n\ntype Action =\n | {\n type: ActionType.ADD_TOAST;\n toast: Toast;\n }\n | {\n type: ActionType.UPSERT_TOAST;\n toast: Toast;\n }\n | {\n type: ActionType.UPDATE_TOAST;\n toast: Partial;\n }\n | {\n type: ActionType.DISMISS_TOAST;\n toastId?: string;\n }\n | {\n type: ActionType.REMOVE_TOAST;\n toastId?: string;\n }\n | {\n type: ActionType.START_PAUSE;\n time: number;\n }\n | {\n type: ActionType.END_PAUSE;\n time: number;\n };\n\ninterface State {\n toasts: Toast[];\n pausedAt: number | undefined;\n}\n\nconst toastTimeouts = new Map>();\n\nexport const TOAST_EXPIRE_DISMISS_DELAY = 1000;\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: ActionType.REMOVE_TOAST,\n toastId: toastId,\n });\n }, TOAST_EXPIRE_DISMISS_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nconst clearFromRemoveQueue = (toastId: string) => {\n const timeout = toastTimeouts.get(toastId);\n if (timeout) {\n clearTimeout(timeout);\n }\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case ActionType.ADD_TOAST:\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case ActionType.UPDATE_TOAST:\n // ! Side effects !\n if (action.toast.id) {\n clearFromRemoveQueue(action.toast.id);\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n };\n\n case ActionType.UPSERT_TOAST:\n const { toast } = action;\n return state.toasts.find((t) => t.id === toast.id)\n ? reducer(state, { type: ActionType.UPDATE_TOAST, toast })\n : reducer(state, { type: ActionType.ADD_TOAST, toast });\n\n case ActionType.DISMISS_TOAST:\n const { toastId } = action;\n\n // ! Side effects ! - This could be execrated into a dismissToast() action, but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n visible: false,\n }\n : t\n ),\n };\n case ActionType.REMOVE_TOAST:\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n\n case ActionType.START_PAUSE:\n return {\n ...state,\n pausedAt: action.time,\n };\n\n case ActionType.END_PAUSE:\n const diff = action.time - (state.pausedAt || 0);\n\n return {\n ...state,\n pausedAt: undefined,\n toasts: state.toasts.map((t) => ({\n ...t,\n pauseDuration: t.pauseDuration + diff,\n })),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [], pausedAt: undefined };\n\nexport const dispatch = (action: Action) => {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n};\n\nexport const defaultTimeouts: {\n [key in ToastType]: number;\n} = {\n blank: 4000,\n error: 4000,\n success: 2000,\n loading: Infinity,\n custom: 4000,\n};\n\nexport const useStore = (toastOptions: DefaultToastOptions = {}): State => {\n const [state, setState] = useState(memoryState);\n useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n const mergedToasts = state.toasts.map((t) => ({\n ...toastOptions,\n ...toastOptions[t.type],\n ...t,\n duration:\n t.duration ||\n toastOptions[t.type]?.duration ||\n toastOptions?.duration ||\n defaultTimeouts[t.type],\n style: {\n ...toastOptions.style,\n ...toastOptions[t.type]?.style,\n ...t.style,\n },\n }));\n\n return {\n ...state,\n toasts: mergedToasts,\n };\n};\n","import {\n Renderable,\n Toast,\n ToastOptions,\n ToastType,\n DefaultToastOptions,\n ValueOrFunction,\n resolveValue,\n} from './types';\nimport { genId } from './utils';\nimport { dispatch, ActionType } from './store';\n\ntype Message = ValueOrFunction;\n\ntype ToastHandler = (message: Message, options?: ToastOptions) => string;\n\nconst createToast = (\n message: Message,\n type: ToastType = 'blank',\n opts?: ToastOptions\n): Toast => ({\n createdAt: Date.now(),\n visible: true,\n type,\n ariaProps: {\n role: 'status',\n 'aria-live': 'polite',\n },\n message,\n pauseDuration: 0,\n ...opts,\n id: opts?.id || genId(),\n});\n\nconst createHandler =\n (type?: ToastType): ToastHandler =>\n (message, options) => {\n const toast = createToast(message, type, options);\n dispatch({ type: ActionType.UPSERT_TOAST, toast });\n return toast.id;\n };\n\nconst toast = (message: Message, opts?: ToastOptions) =>\n createHandler('blank')(message, opts);\n\ntoast.error = createHandler('error');\ntoast.success = createHandler('success');\ntoast.loading = createHandler('loading');\ntoast.custom = createHandler('custom');\n\ntoast.dismiss = (toastId?: string) => {\n dispatch({\n type: ActionType.DISMISS_TOAST,\n toastId,\n });\n};\n\ntoast.remove = (toastId?: string) =>\n dispatch({ type: ActionType.REMOVE_TOAST, toastId });\n\ntoast.promise = (\n promise: Promise,\n msgs: {\n loading: Renderable;\n success: ValueOrFunction;\n error: ValueOrFunction;\n },\n opts?: DefaultToastOptions\n) => {\n const id = toast.loading(msgs.loading, { ...opts, ...opts?.loading });\n\n promise\n .then((p) => {\n toast.success(resolveValue(msgs.success, p), {\n id,\n ...opts,\n ...opts?.success,\n });\n return p;\n })\n .catch((e) => {\n toast.error(resolveValue(msgs.error, e), {\n id,\n ...opts,\n ...opts?.error,\n });\n });\n\n return promise;\n};\n\nexport { toast };\n","import { useEffect, useCallback } from 'react';\nimport { dispatch, ActionType, useStore } from './store';\nimport { toast } from './toast';\nimport { DefaultToastOptions, Toast, ToastPosition } from './types';\n\nconst updateHeight = (toastId: string, height: number) => {\n dispatch({\n type: ActionType.UPDATE_TOAST,\n toast: { id: toastId, height },\n });\n};\nconst startPause = () => {\n dispatch({\n type: ActionType.START_PAUSE,\n time: Date.now(),\n });\n};\n\nexport const useToaster = (toastOptions?: DefaultToastOptions) => {\n const { toasts, pausedAt } = useStore(toastOptions);\n\n useEffect(() => {\n if (pausedAt) {\n return;\n }\n\n const now = Date.now();\n const timeouts = toasts.map((t) => {\n if (t.duration === Infinity) {\n return;\n }\n\n const durationLeft =\n (t.duration || 0) + t.pauseDuration - (now - t.createdAt);\n\n if (durationLeft < 0) {\n if (t.visible) {\n toast.dismiss(t.id);\n }\n return;\n }\n return setTimeout(() => toast.dismiss(t.id), durationLeft);\n });\n\n return () => {\n timeouts.forEach((timeout) => timeout && clearTimeout(timeout));\n };\n }, [toasts, pausedAt]);\n\n const endPause = useCallback(() => {\n if (pausedAt) {\n dispatch({ type: ActionType.END_PAUSE, time: Date.now() });\n }\n }, [pausedAt]);\n\n const calculateOffset = useCallback(\n (\n toast: Toast,\n opts?: {\n reverseOrder?: boolean;\n gutter?: number;\n defaultPosition?: ToastPosition;\n }\n ) => {\n const { reverseOrder = false, gutter = 8, defaultPosition } = opts || {};\n\n const relevantToasts = toasts.filter(\n (t) =>\n (t.position || defaultPosition) ===\n (toast.position || defaultPosition) && t.height\n );\n const toastIndex = relevantToasts.findIndex((t) => t.id === toast.id);\n const toastsBefore = relevantToasts.filter(\n (toast, i) => i < toastIndex && toast.visible\n ).length;\n\n const offset = relevantToasts\n .filter((t) => t.visible)\n .slice(...(reverseOrder ? [toastsBefore + 1] : [0, toastsBefore]))\n .reduce((acc, t) => acc + (t.height || 0) + gutter, 0);\n\n return offset;\n },\n [toasts]\n );\n\n return {\n toasts,\n handlers: {\n updateHeight,\n startPause,\n endPause,\n calculateOffset,\n },\n };\n};\n","import { styled, keyframes } from 'goober';\n\nconst circleAnimation = keyframes`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n opacity: 1;\n}`;\n\nconst firstLineAnimation = keyframes`\nfrom {\n transform: scale(0);\n opacity: 0;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`;\n\nconst secondLineAnimation = keyframes`\nfrom {\n transform: scale(0) rotate(90deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(90deg);\n\topacity: 1;\n}`;\n\nexport interface ErrorTheme {\n primary?: string;\n secondary?: string;\n}\n\nexport const ErrorIcon = styled('div')`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${(p) => p.primary || '#ff4b4b'};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${circleAnimation} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n\n &:after,\n &:before {\n content: '';\n animation: ${firstLineAnimation} 0.15s ease-out forwards;\n animation-delay: 150ms;\n position: absolute;\n border-radius: 3px;\n opacity: 0;\n background: ${(p) => p.secondary || '#fff'};\n bottom: 9px;\n left: 4px;\n height: 2px;\n width: 12px;\n }\n\n &:before {\n animation: ${secondLineAnimation} 0.15s ease-out forwards;\n animation-delay: 180ms;\n transform: rotate(90deg);\n }\n`;\n","import { styled, keyframes } from 'goober';\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`;\n\nexport interface LoaderTheme {\n primary?: string;\n secondary?: string;\n}\n\nexport const LoaderIcon = styled('div')`\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n border: 2px solid;\n border-radius: 100%;\n border-color: ${(p) => p.secondary || '#e0e0e0'};\n border-right-color: ${(p) => p.primary || '#616161'};\n animation: ${rotate} 1s linear infinite;\n`;\n","import { styled, keyframes } from 'goober';\n\nconst circleAnimation = keyframes`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n\topacity: 1;\n}`;\n\nconst checkmarkAnimation = keyframes`\n0% {\n\theight: 0;\n\twidth: 0;\n\topacity: 0;\n}\n40% {\n height: 0;\n\twidth: 6px;\n\topacity: 1;\n}\n100% {\n opacity: 1;\n height: 10px;\n}`;\n\nexport interface CheckmarkTheme {\n primary?: string;\n secondary?: string;\n}\n\nexport const CheckmarkIcon = styled('div')`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${(p) => p.primary || '#61d345'};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${circleAnimation} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n &:after {\n content: '';\n box-sizing: border-box;\n animation: ${checkmarkAnimation} 0.2s ease-out forwards;\n opacity: 0;\n animation-delay: 200ms;\n position: absolute;\n border-right: 2px solid;\n border-bottom: 2px solid;\n border-color: ${(p) => p.secondary || '#fff'};\n bottom: 6px;\n left: 6px;\n height: 10px;\n width: 6px;\n }\n`;\n","import * as React from 'react';\nimport { styled, keyframes } from 'goober';\n\nimport { Toast } from '../core/types';\nimport { ErrorIcon, ErrorTheme } from './error';\nimport { LoaderIcon, LoaderTheme } from './loader';\nimport { CheckmarkIcon, CheckmarkTheme } from './checkmark';\n\nconst StatusWrapper = styled('div')`\n position: absolute;\n`;\n\nconst IndicatorWrapper = styled('div')`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 20px;\n min-height: 20px;\n`;\n\nconst enter = keyframes`\nfrom {\n transform: scale(0.6);\n opacity: 0.4;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`;\n\nexport const AnimatedIconWrapper = styled('div')`\n position: relative;\n transform: scale(0.6);\n opacity: 0.4;\n min-width: 20px;\n animation: ${enter} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n`;\n\nexport type IconThemes = Partial<{\n success: CheckmarkTheme;\n error: ErrorTheme;\n loading: LoaderTheme;\n}>;\n\nexport const ToastIcon: React.FC<{\n toast: Toast;\n}> = ({ toast }) => {\n const { icon, type, iconTheme } = toast;\n if (icon !== undefined) {\n if (typeof icon === 'string') {\n return {icon};\n } else {\n return icon;\n }\n }\n\n if (type === 'blank') {\n return null;\n }\n\n return (\n \n \n {type !== 'loading' && (\n \n {type === 'error' ? (\n \n ) : (\n \n )}\n \n )}\n \n );\n};\n","import * as React from 'react';\nimport { styled, keyframes } from 'goober';\n\nimport { Toast, ToastPosition, resolveValue, Renderable } from '../core/types';\nimport { ToastIcon } from './toast-icon';\nimport { prefersReducedMotion } from '../core/utils';\n\nconst enterAnimation = (factor: number) => `\n0% {transform: translate3d(0,${factor * -200}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`;\n\nconst exitAnimation = (factor: number) => `\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${factor * -150}%,-1px) scale(.6); opacity:0;}\n`;\n\nconst fadeInAnimation = `0%{opacity:0;} 100%{opacity:1;}`;\nconst fadeOutAnimation = `0%{opacity:1;} 100%{opacity:0;}`;\n\nconst ToastBarBase = styled('div')`\n display: flex;\n align-items: center;\n background: #fff;\n color: #363636;\n line-height: 1.3;\n will-change: transform;\n box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05);\n max-width: 350px;\n pointer-events: auto;\n padding: 8px 10px;\n border-radius: 8px;\n`;\n\nconst Message = styled('div')`\n display: flex;\n justify-content: center;\n margin: 4px 10px;\n color: inherit;\n flex: 1 1 auto;\n white-space: pre-line;\n`;\n\ninterface ToastBarProps {\n toast: Toast;\n position?: ToastPosition;\n style?: React.CSSProperties;\n children?: (components: {\n icon: Renderable;\n message: Renderable;\n }) => Renderable;\n}\n\nconst getAnimationStyle = (\n position: ToastPosition,\n visible: boolean\n): React.CSSProperties => {\n const top = position.includes('top');\n const factor = top ? 1 : -1;\n\n const [enter, exit] = prefersReducedMotion()\n ? [fadeInAnimation, fadeOutAnimation]\n : [enterAnimation(factor), exitAnimation(factor)];\n\n return {\n animation: visible\n ? `${keyframes(enter)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`\n : `${keyframes(exit)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`,\n };\n};\n\nexport const ToastBar: React.FC = React.memo(\n ({ toast, position, style, children }) => {\n const animationStyle: React.CSSProperties = toast.height\n ? getAnimationStyle(\n toast.position || position || 'top-center',\n toast.visible\n )\n : { opacity: 0 };\n\n const icon = ;\n const message = (\n \n {resolveValue(toast.message, toast)}\n \n );\n\n return (\n \n {typeof children === 'function' ? (\n children({\n icon,\n message,\n })\n ) : (\n <>\n {icon}\n {message}\n \n )}\n \n );\n }\n);\n","import { css, setup } from 'goober';\nimport * as React from 'react';\nimport {\n resolveValue,\n ToasterProps,\n ToastPosition,\n ToastWrapperProps,\n} from '../core/types';\nimport { useToaster } from '../core/use-toaster';\nimport { prefersReducedMotion } from '../core/utils';\nimport { ToastBar } from './toast-bar';\n\nsetup(React.createElement);\n\nconst ToastWrapper = ({\n id,\n className,\n style,\n onHeightUpdate,\n children,\n}: ToastWrapperProps) => {\n const ref = React.useCallback(\n (el: HTMLElement | null) => {\n if (el) {\n const updateHeight = () => {\n const height = el.getBoundingClientRect().height;\n onHeightUpdate(id, height);\n };\n updateHeight();\n new MutationObserver(updateHeight).observe(el, {\n subtree: true,\n childList: true,\n characterData: true,\n });\n }\n },\n [id, onHeightUpdate]\n );\n\n return (\n
\n {children}\n
\n );\n};\n\nconst getPositionStyle = (\n position: ToastPosition,\n offset: number\n): React.CSSProperties => {\n const top = position.includes('top');\n const verticalStyle: React.CSSProperties = top ? { top: 0 } : { bottom: 0 };\n const horizontalStyle: React.CSSProperties = position.includes('center')\n ? {\n justifyContent: 'center',\n }\n : position.includes('right')\n ? {\n justifyContent: 'flex-end',\n }\n : {};\n return {\n left: 0,\n right: 0,\n display: 'flex',\n position: 'absolute',\n transition: prefersReducedMotion()\n ? undefined\n : `all 230ms cubic-bezier(.21,1.02,.73,1)`,\n transform: `translateY(${offset * (top ? 1 : -1)}px)`,\n ...verticalStyle,\n ...horizontalStyle,\n };\n};\n\nconst activeClass = css`\n z-index: 9999;\n > * {\n pointer-events: auto;\n }\n`;\n\nconst DEFAULT_OFFSET = 16;\n\nexport const Toaster: React.FC = ({\n reverseOrder,\n position = 'top-center',\n toastOptions,\n gutter,\n children,\n containerStyle,\n containerClassName,\n}) => {\n const { toasts, handlers } = useToaster(toastOptions);\n\n return (\n \n {toasts.map((t) => {\n const toastPosition = t.position || position;\n const offset = handlers.calculateOffset(t, {\n reverseOrder,\n gutter,\n defaultPosition: position,\n });\n const positionStyle = getPositionStyle(toastPosition, offset);\n\n return (\n \n {t.type === 'custom' ? (\n resolveValue(t.message, t)\n ) : children ? (\n children(t)\n ) : (\n \n )}\n \n );\n })}\n \n );\n};\n","import { toast } from './core/toast';\n\nexport * from './headless';\n\nexport { ToastBar } from './components/toast-bar';\nexport { ToastIcon } from './components/toast-icon';\nexport { Toaster } from './components/toaster';\nexport { CheckmarkIcon } from './components/checkmark';\nexport { ErrorIcon } from './components/error';\nexport { LoaderIcon } from './components/loader';\n\nexport { toast };\nexport default toast;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from \"react\";\nimport { cssValue } from \"./helpers/unitConverter\";\nimport { createAnimation } from \"./helpers/animation\";\nvar beat = createAnimation(\"BeatLoader\", \"50% {transform: scale(0.75);opacity: 0.2} 100% {transform: scale(1);opacity: 1}\", \"beat\");\nfunction BeatLoader(_a) {\n var _b = _a.loading, loading = _b === void 0 ? true : _b, _c = _a.color, color = _c === void 0 ? \"#000000\" : _c, _d = _a.speedMultiplier, speedMultiplier = _d === void 0 ? 1 : _d, _e = _a.cssOverride, cssOverride = _e === void 0 ? {} : _e, _f = _a.size, size = _f === void 0 ? 15 : _f, _g = _a.margin, margin = _g === void 0 ? 2 : _g, additionalprops = __rest(_a, [\"loading\", \"color\", \"speedMultiplier\", \"cssOverride\", \"size\", \"margin\"]);\n var wrapper = __assign({ display: \"inherit\" }, cssOverride);\n var style = function (i) {\n return {\n display: \"inline-block\",\n backgroundColor: color,\n width: cssValue(size),\n height: cssValue(size),\n margin: cssValue(margin),\n borderRadius: \"100%\",\n animation: \"\".concat(beat, \" \").concat(0.7 / speedMultiplier, \"s \").concat(i % 2 ? \"0s\" : \"\".concat(0.35 / speedMultiplier, \"s\"), \" infinite linear\"),\n animationFillMode: \"both\",\n };\n };\n if (!loading) {\n return null;\n }\n return (React.createElement(\"span\", __assign({ style: wrapper }, additionalprops),\n React.createElement(\"span\", { style: style(1) }),\n React.createElement(\"span\", { style: style(2) }),\n React.createElement(\"span\", { style: style(3) })));\n}\nexport default BeatLoader;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\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 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 *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { isDate } from \"./isDate.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n if (!isDate(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = toDate(date);\n return !isNaN(Number(_date));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.mjs\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/* eslint-disable no-unused-vars */\n\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.mjs\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.mjs\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.mjs\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.mjs\";\nimport { formatLong } from \"./en-US/_lib/formatLong.mjs\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.mjs\";\nimport { localize } from \"./en-US/_lib/localize.mjs\";\nimport { match } from \"./en-US/_lib/match.mjs\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date) {\n const _date = toDate(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\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(\n Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}\n","import { millisecondsInDay } from \"./constants.mjs\";\nimport { startOfDay } from \"./startOfDay.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = startOfDay(dateLeft);\n const startOfDayRight = startOfDay(dateRight);\n\n const timestampLeft =\n startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n const timestampRight =\n startOfDayRight.getTime() -\n getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date) {\n const cleanDate = toDate(date);\n const _date = constructFrom(date, 0);\n _date.setFullYear(cleanDate.getFullYear(), 0, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.mjs\";\nimport { startOfYear } from \"./startOfYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date) {\n const _date = toDate(date);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.mjs\";\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date) {\n return startOfWeek(date, { weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { getISOWeekYear } from \"./getISOWeekYear.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date) {\n const year = getISOWeekYear(date);\n const fourthOfJanuary = constructFrom(date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date) {\n const _date = toDate(date);\n const diff =\n startOfISOWeek(_date).getTime() - startOfISOWeekYear(_date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getWeekYear } from \"./getWeekYear.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { startOfWeekYear } from \"./startOfWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport function getWeek(date, options) {\n const _date = toDate(date);\n const diff =\n startOfWeek(_date, options).getTime() -\n startOfWeekYear(_date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.floor(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.mjs\";\nimport { getISOWeek } from \"../../getISOWeek.mjs\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.mjs\";\nimport { getWeek } from \"../../getWeek.mjs\";\nimport { getWeekYear } from \"../../getWeekYear.mjs\";\nimport { addLeadingZeros } from \"../addLeadingZeros.mjs\";\nimport { lightFormatters } from \"./lightFormatters.mjs\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\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 u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n const originalDate = options._originalDate || date;\n const timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\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 `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\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 `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n const originalDate = options._originalDate || date;\n const timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\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 `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\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 `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n const originalDate = options._originalDate || date;\n const timezoneOffset = originalDate.getTimezoneOffset();\n\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\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n const originalDate = options._originalDate || date;\n const timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n const originalDate = options._originalDate || date;\n const timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n const originalDate = options._originalDate || date;\n const timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n },\n};\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\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}\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(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const protectedDayOfYearTokens = [\"D\", \"DD\"];\nconst protectedWeekYearTokens = [\"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\n\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\n\nexport function throwProtectedError(token, format, input) {\n if (token === \"YYYY\") {\n throw new RangeError(\n `Use \\`yyyy\\` instead of \\`YYYY\\` (in \\`${format}\\`) for formatting years to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`,\n );\n } else if (token === \"YY\") {\n throw new RangeError(\n `Use \\`yy\\` instead of \\`YY\\` (in \\`${format}\\`) for formatting years to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`,\n );\n } else if (token === \"D\") {\n throw new RangeError(\n `Use \\`d\\` instead of \\`D\\` (in \\`${format}\\`) for formatting days of the month to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`,\n );\n } else if (token === \"DD\") {\n throw new RangeError(\n `Use \\`dd\\` instead of \\`DD\\` (in \\`${format}\\`) for formatting days of the month to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`,\n );\n }\n}\n","import { isValid } from \"./isValid.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\nimport { formatters } from \"./_lib/format/formatters.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n throwProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * The {@link format} function options.\n */\n\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 vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\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 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\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, ..., Sun | 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, Sa, Su | 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, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\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, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | 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 | 01, 02, ..., 11, 00 | |\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, 001, ..., 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 | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 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 | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 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 | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 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](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\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. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\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 const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate,\n };\n\n const result = formatStr\n .match(longFormattingTokensRegExp)\n .map(function (substring) {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n const formatter = formatters[firstCharacter];\n if (formatter) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(substring)\n ) {\n throwProtectedError(substring, formatStr, String(date));\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(substring)\n ) {\n throwProtectedError(substring, formatStr, String(date));\n }\n return formatter(\n originalDate,\n substring,\n locale.localize,\n formatterOptions,\n );\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return substring;\n })\n .join(\"\");\n\n return result;\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { IconClock, IconMapPin } from \"@tabler/icons-react\";\nimport AppContext from \"Context/appContext\";\nimport axios from \"axios\";\nimport UrlServices from \"../../../services/Url\";\nimport \"containers/BookingList/BookingDetails/index.css\";\nimport { useContext, useEffect, useState, useRef } from \"react\";\nimport Calendar from \"react-calendar\";\nimport \"react-calendar/dist/Calendar.css\";\nimport toast, { Toaster } from \"react-hot-toast\";\nimport { formatTo12Hour } from \"utils\";\nimport { BeatLoader } from \"react-spinners\";\nimport \"slick-carousel/slick/slick-theme.css\";\nimport \"slick-carousel/slick/slick.css\";\nimport { format } from \"date-fns\";\n\nconst BookingDetails = (props) => {\n const { bookingDetail, getStoreTime } = props;\n const [value, setValue] = useState(new Date());\n const [times, setTimes] = useState([]);\n const [selectedDate, setSelectedDate] = useState([]);\n const [filteredTime, setFilteredTime] = useState([]);\n const [isToastVisible, setIsToastVisible] = useState(false);\n const [width, setWidth] = useState(300);\n const timesSectionRef = useRef(null);\n const isInitialRender = useRef(true);\n const {\n appointmentDetail,\n setAppointmentDetail,\n fetchTimeLoading,\n setFetchTimeLoading,\n buttonClicked,\n encryptionKey,\n isWebView,\n } = useContext(AppContext);\n\n const key = \"AIzaSyBlqrSdiC-YtE8DGNRJXRGXyoFQiHGsER4\";\n\n // Function to open Google Maps in a new tab on mobile\n const handleViewMap = () => {\n const mapsUrl = `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(\n bookingDetail.address\n )}`;\n window.open(mapsUrl, \"_blank\"); // Open Google Maps in a new tab\n };\n\n // Function to scroll to the times section and adjust vertical scroll if necessary\n const scrollToTimesSection = (skipScrollAdjustment = false) => {\n\n const fullUrl = window.location.href;\n const containsDevOrMaster = fullUrl.includes(\"dev.\") || fullUrl.includes(\"master.\") || fullUrl.includes(\"localhost:3000\");\n\n if (timesSectionRef.current) {\n // Scroll vertically to the times section\n timesSectionRef.current.scrollIntoView({\n behavior: \"smooth\",\n block: \"start\", // Aligns the times section to the top of the viewport\n });\n\n // Skip this block on first render\n if (containsDevOrMaster && !skipScrollAdjustment) {\n // Adjust vertical scroll after 500ms delay to ensure initial scroll finishes\n setTimeout(() => {\n const newScrollY = window.scrollY + 450;\n window.scrollTo({ top: newScrollY, left: window.scrollX, behavior: \"smooth\" });\n }, 500); // Keep 500ms delay to allow initial scroll to complete\n }\n } else {\n // Fallback for older browsers or if the timesSectionRef is null\n const yOffset = window.pageYOffset + window.scrollY - 20; // Adjust the offset as needed\n window.scrollTo({ top: yOffset, behavior: \"smooth\" });\n\n // Skip this block on first render\n if (containsDevOrMaster && !skipScrollAdjustment) {\n setTimeout(() => {\n const newScrollY = window.scrollY + 450;\n window.scrollTo({ top: newScrollY, left: window.scrollX, behavior: \"smooth\" });\n }, 500); // Keep 500ms delay for fallback scroll\n }\n }\n };\n\n \n\n // Combined useEffect to handle both initial and subsequent scrolls\n useEffect(() => {\n // Set the width for iframe Google map\n const updateWidth = () => {\n if (window.innerWidth <= 768) {\n setWidth(\"100%\");\n } else {\n setWidth(300); // Set default width for larger screens\n }\n };\n\n // Initial width update and event listener\n updateWidth();\n window.addEventListener(\"resize\", updateWidth);\n\n const date = new Date();\n const day = date.getDay();\n setAppointmentDetail({ date, start: \"\", end: \"\" });\n setFetchTimeLoading(true);\n\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\"); // getMonth() returns 0-based index, so adding 1\n const newDay = String(date.getDate()).padStart(2, \"0\"); // getDate() returns the day of the month\n const formattedDate = `${year}-${month}-${newDay}`;\n setSelectedDate(formattedDate);\n if (buttonClicked === 'appointment') {\n fetchTimes(day, formattedDate);\n }\n setFetchTimeLoading(false);\n\n // Cleanup the event listener on component unmount\n return () => {\n window.removeEventListener(\"resize\", updateWidth);\n };\n }, []);\n\n // Handle scrolling when times change or on first render\n useEffect(() => {\n if (!isWebView && times.length > 0) {\n // Call the scrollToTimesSection function\n scrollToTimesSection(isInitialRender.current);\n\n // Mark that the initial render is complete\n isInitialRender.current = false;\n }\n }, [times]);\n\n const onChangeDate = async (e) => {\n const now = new Date();\n const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n\n const selectedDate = new Date(e);\n selectedDate.setHours(0, 0, 0, 0);\n\n if (selectedDate < today) {\n // Check if a toast is currently visible\n if (!isToastVisible) {\n setIsToastVisible(true);\n toast.error(\"Please select today's date or a future date\");\n // Reset the flag after the toast is hidden\n setTimeout(() => {\n setIsToastVisible(false);\n }, 3000);\n }\n return;\n }\n \n setValue(e);\n const date = new Date(e);\n setAppointmentDetail({ date, start: \"\", end: \"\" });\n setTimes([]);\n setFilteredTime([]);\n const day = date.getDay();\n setFetchTimeLoading(true);\n\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\"); // getMonth() returns 0-based index, so adding 1\n const newDay = String(date.getDate()).padStart(2, \"0\"); // getDate() returns the day of the month\n const formattedDate = `${year}-${month}-${newDay}`;\n\n setSelectedDate(formattedDate);\n if (buttonClicked === 'appointment') {\n await fetchTimes(day, formattedDate);\n }\n setFetchTimeLoading(false);\n };\n\n const onTimeHandler = (time) => {\n setAppointmentDetail({\n date: appointmentDetail?.date,\n start: time?.start,\n end: time?.end,\n });\n };\n\n const fetchTimes = async (day, date) => {\n try {\n const { data } = await axios.post(\n `${process.env.REACT_APP_APPOINTMENT_PRO_API_URL}/${UrlServices.getTimes}`,\n {\n index: day,\n calendar_date: date,\n q_: encryptionKey,\n }\n );\n setTimes(data?.times || []);\n setFilteredTime(\n data?.times?.filter((t, index) => index >= 0 && index <= 4)\n );\n } catch (e) {\n console.log(e);\n }\n };\n\n return (\n \n \n
\n
\n \n {bookingDetail.name}\n {!isWebView && (\n \n View on map\n \n )}\n
\n\n {/* for mobile */}\n {!isWebView && buttonClicked === \"appointment\" && (\n
\n Select a Date\n
\n )}\n\n {/* for tablet and laptop screen */}\n {(isWebView || buttonClicked === \"quote\") && (\n
\n \n {\" \"}\n \n \n
\n {bookingDetail.address !== \"\"\n ? bookingDetail.address.concat(\", \")\n : \"\"}\n {bookingDetail.city}\n {bookingDetail.state}\n {bookingDetail.postcode !== \"\"\n ? bookingDetail.country !== \"\"\n ? bookingDetail.postcode.concat(\", \")\n : bookingDetail.postcode\n : \"\"}\n {bookingDetail.country}\n
\n
\n )}\n\n {/* for tablet and laptop screen */}\n {(isWebView || buttonClicked === \"quote\") && (\n
\n \n \n {getStoreTime(bookingDetail.start_time, bookingDetail.end_time)\n ? \"Open\"\n : \"Closed\"}\n \n -\n
\n {/* Closed at {bookingDetail.end_time.substring(0, 5)}pm */}\n Closed at{\" \"}\n {bookingDetail?.end_time &&\n formatTo12Hour(bookingDetail.end_time)}\n
\n
\n )}\n
\n\n {/* for tablet and laptop screen */}\n {isWebView && (\n
\n \n
\n )}\n \n {buttonClicked === \"appointment\" && (\n \n \n {fetchTimeLoading ? (\n <>\n
\n \n
\n \n ) : (\n <>\n {filteredTime?.length === 0 ? (\n
\n {buttonClicked === \"appointment\" && (\n
\n No time available\n
\n )}\n
\n ) : // for laptop screens\n isWebView ? (\n \n
\n {format(new Date(selectedDate), \"eee, LLL dd, yyyy\")}\n
\n {buttonClicked === \"appointment\" && (\n
\n {times?.map((time) => (\n onTimeHandler(time)}\n >\n \n {time?.start && formatTo12Hour(time.start)}\n
\n \n ))}\n \n )}\n \n ) : (\n // for mobile screens\n !isWebView && (\n
\n
\n Select a time\n \n {format(new Date(selectedDate), \"eeee, LLL dd, yyyy\")}\n \n
\n
\n {times?.map((time) => (\n onTimeHandler(time)}\n >\n {time?.start && formatTo12Hour(time.start)}\n \n ))}\n
\n
\n )\n )}\n \n )}\n \n )}\n \n );\n};\n\nexport default BookingDetails;\n","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('search', 'IconSearch', [\n ['path', { d: 'M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0', key: 'svg-0' }],\n ['path', { d: 'M21 21l-6 -6', key: 'svg-1' }],\n]);\n","import { IconSearch } from \"@tabler/icons-react\";\n\nconst Input = (props) => {\n const {isShowIcon, placeholder, type, value, handleChange,name,handleBlur} = props\n\n return (\n
\n {isShowIcon && }\n \n
\n );\n};\n\nexport default Input;\n","import { IconClock, IconMapPin } from \"@tabler/icons-react\";\nimport { formatTo12Hour } from \"utils\";\nimport AppContext from \"Context/appContext\";\nimport \"containers/BookingList/index.css\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { ClipLoader } from \"react-spinners\";\nimport BookingDetails from \"./BookingDetails\";\nimport Input from \"components/Input\";\nimport UrlServices from \"../../services/Url\";\n\nconst Bookinglist = () => {\n const [bookingList, setBookingList] = useState([]);\n const [filteredBookingList, setFilteredBookingList] = useState([]);\n const [loader, setLoader] = useState(false);\n const [width, setWidth] = useState(300);\n const [search, setSearch] = useState(\"\");\n const {\n setSelectedStoreDetails,\n selectedStoreDetails,\n progressState,\n setProgressState,\n toggle,\n setToggle,\n selectedBookingPage,\n setSelectedBookingPage,\n encryptionKey,\n setDefaultStore,\n isWebView,\n userSettings,\n buttonClicked,\n loading\n } = useContext(AppContext);\n\n const key = \"AIzaSyBlqrSdiC-YtE8DGNRJXRGXyoFQiHGsER4\";\n\n // set width for iframe google map\n const updateWidth = () => {\n // Set the width to 200 for screens with a width less than 600px\n if (window.innerWidth <= 768) {\n setWidth(\"100%\");\n } else {\n setWidth(300); // Set the default width for larger screens\n }\n };\n\n // Function to open Google Maps in a new tab on mobile\n const handleViewMap = (el) => {\n const mapsUrl = `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(\n el.address\n )}`;\n window.open(mapsUrl, \"_blank\"); // Open Google Maps in a new tab\n };\n\n useEffect(() => {\n // Initial width update\n updateWidth();\n window.addEventListener(\"resize\", updateWidth);\n\n // Cleanup the event listener on component unmount\n return () => {\n window.removeEventListener(\"resize\", updateWidth);\n };\n }, []);\n\n const fetchData = async () => {\n if (!userSettings?.isQuoteLocationsEnabled && buttonClicked === \"quote\") {\n setProgressState(6);\n return;\n }\n\n try {\n setLoader(true);\n const response = await fetch(\n `${process.env.REACT_APP_APPOINTMENT_PRO_API_URL}/${UrlServices.allStores}`,\n {\n method: \"POST\",\n body: JSON.stringify({\n q_: encryptionKey,\n }),\n headers: {\n \"Content-type\": \"application/json; charset=UTF-8\",\n },\n }\n );\n const data = await response.json();\n setBookingList(data.stores);\n setFilteredBookingList(data.stores); // Initialize filtered list with all data\n setLoader(false);\n } catch (error) {\n console.log(error);\n }\n };\n\n useEffect(() => {\n fetchData();\n }, []);\n\n // Search handler to filter booking list based on user input\n const handleChange = (event) => {\n const query = event.target.value.toLowerCase();\n setSearch(query);\n\n const filteredList = bookingList.filter(\n (b) =>\n b.name.toLowerCase().includes(query) ||\n b.address.toLowerCase().includes(query) ||\n b.city.toLowerCase().includes(query) ||\n b.state.toLowerCase().includes(query) ||\n b.postcode.toLowerCase().includes(query) ||\n b.country.toLowerCase().includes(query)\n );\n setFilteredBookingList(filteredList);\n };\n\n const toggleBookingDetail = (bookingDetail) => {\n setProgressState(6);\n setSelectedBookingPage(bookingDetail);\n setToggle(true);\n setDefaultStore(true);\n setSelectedStoreDetails({\n store_id: bookingDetail.store_id,\n store_name: bookingDetail.name,\n });\n };\n\n const isStoreOpen = (startTime, endTime) => {\n const now = new Date();\n const start = new Date().setHours(...startTime?.split(\":\"));\n const end = new Date().setHours(...endTime?.split(\":\"));\n\n return start < end\n ? now >= start && now <= end\n : !(now < end || now > start);\n };\n\n if (loader) {\n return (\n
\n \n
\n );\n }\n\n return (\n
\n {progressState === 5 && (\n \n )}\n {!toggle && (\n \n {filteredBookingList.length > 0 ? (\n filteredBookingList.map((b, index) => (\n toggleBookingDetail(b)}\n key={b.id}\n className={`quote-booking-card rd-quote-border rd-quote-rounded-md rd-quote-border-gray-300 rd-quote-shadow\n ${\n selectedStoreDetails?.store_id === b?.store_id ||\n (!selectedStoreDetails?.store_id && index === 0)\n ? \"rd-quote-border rd-quote-border-teal-600\"\n : \"\"\n }\n `}\n >\n
\n
\n
\n {b.name}\n {/* For Mobile only */}\n {!isWebView && (\n {\n event.stopPropagation(); // Prevents parent click\n handleViewMap(b);\n }}\n >\n View on map\n \n )}\n
\n
\n \n
\n {b.address !== \"\" ? b.address.concat(\", \") : \"\"}\n {b.city}\n {b.state}\n {b.postcode !== \"\"\n ? b.country !== \"\"\n ? b.postcode.concat(\", \")\n : b.postcode\n : \"\"}\n {b.country}\n
\n
\n
\n \n \n {isStoreOpen(b.start_time, b.end_time)\n ? \"Open\"\n : \"Closed\"}\n \n -\n
\n Closed at {b?.end_time && formatTo12Hour(b.end_time)}\n
\n
\n
\n {/* for tablet and laptop screen only */}\n {isWebView && (\n
\n \n
\n )}\n
\n
\n ))\n ) : (\n
\n
\n No Results Found\n
\n
\n )}\n \n )}\n\n {toggle && selectedBookingPage && !loading && (\n \n )}\n \n );\n};\n\nexport default Bookinglist;\n","import AppContext from \"Context/appContext\";\nimport { useContext, memo } from \"react\";\nimport { DISPLAYING_PAGES } from \"constants\";\n\nconst Button = (props) => {\n const { disabled, text, continueButtonWidth, quoteButtonWidth, appointmentButtonWidth, buttonHeight, setWidth, typeA, submit, setServiceArray } = props;\n const { setCurrentState, setProgressState } = useContext(AppContext)\n\n \n const toggleState = ()=> {\n switch(text){\n case 'Continue':\n return DISPLAYING_PAGES.FORM\n case 'Get Quote':\n return DISPLAYING_PAGES.BOOKING\n case 'Book an Appointment':\n return DISPLAYING_PAGES.BOOKING\n default:\n return DISPLAYING_PAGES.PRODUCT\n }\n }\n\n const handleSubmission = ()=>{\n if(submit !== undefined){\n submit()\n }\n } \n\n const handleState = ()=> {\n if(setServiceArray !== undefined){\n setServiceArray()\n }\n }\n\n return (\n \n );\n};\n\nexport default memo(Button);\n","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('trash', 'IconTrash', [\n ['path', { d: 'M4 7l16 0', key: 'svg-0' }],\n ['path', { d: 'M10 11l0 6', key: 'svg-1' }],\n ['path', { d: 'M14 11l0 6', key: 'svg-2' }],\n [\n 'path',\n { d: 'M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12', key: 'svg-3' },\n ],\n ['path', { d: 'M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3', key: 'svg-4' }],\n]);\n","import { IconTrash } from \"@tabler/icons-react\";\nimport AppContext from \"Context/appContext\";\nimport { DISPLAYING_PAGES } from \"constants\";\nimport { useContext, useState } from \"react\";\n\nconst IssueList = () => {\n const {\n productCartDetail,\n setProducts,\n products,\n setProductCartDetail,\n currentState,\n userSettings,\n countryDetails,\n } = useContext(AppContext);\n\n // State is now local to each component instance\n const [isExpanded, setExpandedId] = useState(null);\n\n const toggleDescription = (id) => {\n setExpandedId((prevId) => {\n // If the clicked ID matches the current expandedId, collapse it\n // Otherwise, expand the clicked ID\n if (prevId === id) {\n return null; // Collapse the description\n }\n \n return id; // Expand the description\n });\n \n const service = productCartDetail.services.find(service => service.id === id);\n if (service) {\n // You can modify the service state here based on its expanded/collapsed status\n service['isExpanded'] = service['isExpanded'] ? false : true; // Toggle visibility\n }\n };\n \n\n\n const deleteAndUpdatePrice = (product) => {\n const updatedList = productCartDetail.services.filter((p) => {\n const key = p?.hasOwnProperty(\"_id\") ? \"_id\" : \"id\";\n return p[key] !== product[key];\n });\n const price = product?.sale_price?.startsWith(\"0\")\n ? product?.retail_price\n : product?.sale_price;\n let totalPrice =\n productCartDetail?.totalPrice - (product?.price ? product?.price : price);\n if (isNaN(totalPrice) || totalPrice === undefined) {\n totalPrice = 0;\n }\n if (updatedList)\n setProductCartDetail({\n ...productCartDetail,\n totalPrice,\n services: updatedList,\n });\n const findIndex = products.findIndex((p) => {\n const key = p?.hasOwnProperty(\"_id\") ? \"_id\" : \"id\";\n return p[key] === product[key];\n });\n if (findIndex !== -1) {\n products[findIndex].active = false;\n // products[findIndex].active = !product.active;\n setProducts(products);\n }\n };\n\n return productCartDetail?.services.map((s, idx) => (\n \n
\n {s.picture && (\n \"P\"\n )}\n
\n
\n {s.name}\n
\n {userSettings.showDescription && s.item_description && ( \n
\n {s.isExpanded ? (\n <>\n {s.item_description}{\" \"}\n toggleDescription(s.id)}\n className=\"rd-quote-text-teal-700 rd-quote-cursor-pointer\"\n >\n Show less\n \n \n ) : (\n <>\n {s.item_description.slice(0, 60)}{\" \"}\n {s.item_description.length > 60 && (\n toggleDescription(s.id)}\n className=\"rd-quote-text-teal-700 rd-quote-cursor-pointer\"\n >\n Show more\n \n )}\n \n )}\n
\n )}\n
\n
\n
\n {userSettings?.isPricesEnabled && (\n
\n
\n {s.price ? `${countryDetails?.currency_symbol || \"$\"}` + s.price?.toFixed(2) : \"\"}\n
\n
\n )}\n\n deleteAndUpdatePrice(s)}\n className=\"rd-quote-ml-2 rd-quote-text-gray-500 hover:rd-quote-text-red-600 rd-quote-cursor-pointer\"\n >\n {currentState === DISPLAYING_PAGES.PRODUCT && (\n \n )}\n \n
\n \n ));\n};\n\nexport default IssueList;\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgChevronRight(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 4L10 8L6 12\",\n stroke: \"#0D9488\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronRight);\nexport default __webpack_public_path__ + \"static/media/Chevron-Right.e443602bf741f7a97b93565bd29d6b8b.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgClipboardText(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_4630_570)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.49984 4.16797H5.83317C5.39114 4.16797 4.96722 4.34356 4.65466 4.65612C4.3421 4.96868 4.1665 5.39261 4.1665 5.83464V15.8346C4.1665 16.2767 4.3421 16.7006 4.65466 17.0131C4.96722 17.3257 5.39114 17.5013 5.83317 17.5013H14.1665C14.6085 17.5013 15.0325 17.3257 15.345 17.0131C15.6576 16.7006 15.8332 16.2767 15.8332 15.8346V5.83464C15.8332 5.39261 15.6576 4.96868 15.345 4.65612C15.0325 4.34356 14.6085 4.16797 14.1665 4.16797H12.4998\",\n stroke: \"#0D9488\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 4.16667C7.5 3.72464 7.6756 3.30072 7.98816 2.98816C8.30072 2.67559 8.72464 2.5 9.16667 2.5H10.8333C11.2754 2.5 11.6993 2.67559 12.0118 2.98816C12.3244 3.30072 12.5 3.72464 12.5 4.16667C12.5 4.60869 12.3244 5.03262 12.0118 5.34518C11.6993 5.65774 11.2754 5.83333 10.8333 5.83333H9.16667C8.72464 5.83333 8.30072 5.65774 7.98816 5.34518C7.6756 5.03262 7.5 4.60869 7.5 4.16667Z\",\n stroke: \"#0D9488\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 10H12.5\",\n stroke: \"#0D9488\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 13.332H12.5\",\n stroke: \"#0D9488\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_4630_570\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 20,\n height: 20,\n fill: \"white\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgClipboardText);\nexport default __webpack_public_path__ + \"static/media/ClipboardText.ed9d061307b2fb64ffc3c02fd2461c21.svg\";\nexport { ForwardRef as ReactComponent };","import { IconArrowLeft } from \"@tabler/icons-react\";\nimport AppContext from \"Context/appContext\";\nimport Button from \"components/Button\";\nimport { DISPLAYING_PAGES } from \"constants\";\nimport \"containers/Cart/index.css\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { useFormState } from \"react-hook-form\";\nimport { combineDateWithTime, isKeyValueEmpty } from \"utils\";\nimport IssueList from \"./IssueList\";\nimport ChevronRight from \"../../icons/Chevron-Right.svg\";\nimport ClipboardText from \"../../icons/ClipboardText.svg\";\n// import Accordion from \"react-bootstrap/Accordion\";\nimport axios from \"axios\";\nimport UrlServices from \"../../services/Url\";\n\nconst Cart = () => {\n const {\n productCartDetail,\n currentState,\n formdata,\n setPrevState,\n products,\n progressState,\n setProgressState,\n prevState,\n appointmentDetail,\n loading,\n setLoading,\n setCurrentState,\n userSettings,\n productCartData,\n setProductCartData,\n encryptionKey,\n reactHookFormData,\n buttonClicked,\n setButtonClicked,\n defaultStore,\n selectedStoreDetails,\n setCountryDetails,\n countryDetails,\n // buttonLoader,\n // setButtonLoader\n } = useContext(AppContext);\n const [isMobileOrTablet, setIsMobileOrTablet] = useState(false);\n const [isViewOpen, setIsViewOpen] = useState(false);\n const [activeKey, setActiveKey] = useState(\"0\");\n\n const handleSelect = () => {\n setActiveKey((prevKey) => (prevKey === \"0\" ? \"1\" : \"0\"));\n };\n\n // Set previous state\n const setServiceArray = () => {\n setPrevState({ ...prevState, [progressState]: products });\n };\n\n // Function to detect if the user is on mobile or tablet\n const detectMobileOrTablet = () => {\n const screenWidth = window.innerWidth;\n setIsMobileOrTablet(screenWidth <= 768); // Adjust breakpoint as needed\n };\n\n // Toggle visibility of modal\n const toggleModal = () => {\n setIsViewOpen(!isViewOpen);\n };\n\n // Detect mobile or tablet on component mount\n useEffect(() => {\n fetchCountryDetails();\n detectMobileOrTablet();\n window.addEventListener(\"resize\", detectMobileOrTablet);\n\n return () => {\n window.removeEventListener(\"resize\", detectMobileOrTablet);\n };\n }, []);\n\n const fetchCountryDetails = async () => {\n const { data } = await axios.post(\n `${process.env.REACT_APP_APPOINTMENT_PRO_API_URL}/${UrlServices.storeInfo}`,\n {\n q_: encryptionKey,\n }\n );\n setCountryDetails(data?.data);\n };\n\n const submitForm = async (clickedKey) => {\n if (clickedKey === \"appointments\") {\n setButtonClicked(\"appointment\");\n clickedKey = \"appointments\";\n } else {\n setButtonClicked(\"quote\");\n clickedKey = \"quote\";\n setProgressState(6);\n }\n setCurrentState(DISPLAYING_PAGES.BOOKING);\n try {\n setLoading(true);\n // setButtonLoader(true);\n const services = productCartDetail?.services.map((item) => {\n const price =\n item.sale_price &&\n typeof item.sale_price === \"string\" &&\n item.sale_price.startsWith(\"0\")\n ? item.retail_price\n : item.sale_price;\n return {\n rd_issue_id: item.id,\n name: item.name,\n price: item?.price ? item?.price : price,\n };\n });\n\n const formattedTime = combineDateWithTime(\n appointmentDetail?.date,\n appointmentDetail?.start\n );\n const data = {\n device: productCartDetail?.category?.name || \"\",\n brand: productCartDetail?.brand?.name || \"others\",\n model:\n productCartDetail?.model?.name ||\n productCartData?.device_name ||\n formdata?.model,\n category_id: productCartDetail?.skipForOthers ? \"\" : userSettings?.isRDSync ? productCartDetail?.category.rd_category_id : productCartDetail?.brand.category,\n manufacturer_id: productCartDetail?.skipForOthers ? \"\" : userSettings?.isRDSync ? productCartDetail?.brand.rd_manufacturer_id : productCartDetail?.brand._id,\n rd_device_id: productCartData?.rd_device_id,\n date: formattedTime || \"\",\n start_time:\n appointmentDetail?.start !== \"\" ? appointmentDetail?.start : \"\",\n end_time: appointmentDetail?.end !== \"\" ? appointmentDetail?.end : \"\",\n issues: services,\n store_id: userSettings?.isQuoteLocationsEnabled\n ? selectedStoreDetails.store_id\n : \"\",\n store_name: userSettings?.isQuoteLocationsEnabled\n ? selectedStoreDetails.store_name\n : \"\",\n customer_name: formdata.name,\n customer_email: formdata.email,\n customer_telephone: formdata.phone,\n customer_notes: formdata.notes,\n delivery_option: formdata?.option,\n delivery_status: formdata.status,\n total_price: productCartDetail?.totalPrice || 0,\n q_: encryptionKey,\n config_type: clickedKey,\n };\n // console.log(data);\n const API_BASE_URL = process.env.REACT_APP_APPOINTMENT_PRO_API_URL;\n const res = await fetch(\n `${API_BASE_URL}/${UrlServices.submitRequest}`,\n {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n \"Content-type\": \"application/json; charset=UTF-8\",\n },\n }\n );\n setLoading(false);\n // setButtonLoader(false);\n setCurrentState(DISPLAYING_PAGES.COMPLETION);\n const response = await res.json();\n // console.log(response);\n // setLoading(false);\n // setFormData({\n // name: '',\n // phone: '',\n // email: '',\n // notes: '',\n // option: '',\n // model: '',\n // })\n // reactHookFormData.reset()\n } catch (error) {\n setLoading(false);\n // setButtonLoader(false);\n setProductCartData(null);\n console.log(error);\n }\n };\n\n const { notes, ...formDataObj } = formdata;\n\n const { model, ...modifiedData } = formDataObj;\n\n const { errors: formErrors } = useFormState({\n control: reactHookFormData.control,\n });\n const { model: modelError, ...restErors } = formErrors;\n\n const isDisabled =\n Object.keys(productCartDetail?.skipForOthers ? formErrors : restErors)\n .length > 0;\n\n return (\n <>\n {/* Render the component normally on larger screens */}\n {!isMobileOrTablet && (\n \n
\n
Details
\n {/* Item */}\n
\n
\n {productCartDetail?.brand?.picture && (\n
\n \n
\n )}\n
\n
\n {productCartDetail?.brand?.name}\n
\n
\n {productCartDetail?.model?.name ||\n productCartData?.device_name ||\n formdata?.model}\n
\n
\n
\n
\n {/* issues header */}\n {productCartDetail?.services && (\n <>\n
\n
\n Issues({productCartDetail?.services?.length})\n
\n {/*
\n View Issues\n
*/}\n
\n \n \n
\n \n )}\n \n {/* bottom */}\n
\n {/* {currentState === \"FORM\" && (\n
\n \n \n \n

\n {userSettings?.promotionalText}\n

\n
\n )} */}\n {userSettings?.isPricesEnabled && (\n \n

\n Sub Total\n

\n

\n {/* $ */}\n {countryDetails?.currency_symbol}\n {productCartDetail?.totalPrice === undefined\n ? 0\n : productCartDetail?.totalPrice?.toFixed(2)}\n

\n
\n )}\n\n {currentState === DISPLAYING_PAGES.PRODUCT && !loading && (\n 0}\n text={\"Continue\"}\n setServiceArray={setServiceArray}\n />\n )}\n {(currentState === DISPLAYING_PAGES.FORM ||\n currentState === DISPLAYING_PAGES.BOOKING) &&\n ((userSettings?.isQuoteEnabled && buttonClicked === \"quote\") ||\n (!userSettings?.isQuoteLocationsEnabled &&\n progressState === 4 && userSettings?.isQuoteEnabled)) &&\n progressState > 3 &&\n !loading && (\n submitForm(\"quote\")}\n text={\"Get Quote\"}\n setWidth={true}\n disabled={\n (!defaultStore && userSettings?.isQuoteLocationsEnabled) ||\n (!isKeyValueEmpty(modifiedData) &&\n currentState === DISPLAYING_PAGES.FORM) ||\n isDisabled\n }\n />\n )}\n {(currentState === DISPLAYING_PAGES.FORM ||\n currentState === DISPLAYING_PAGES.BOOKING) &&\n userSettings?.isAppointmentEnabled &&\n currentState === DISPLAYING_PAGES.BOOKING &&\n buttonClicked === \"appointment\" &&\n !loading && (\n submitForm(\"appointments\")}\n text={\n progressState === 5 || progressState === 6\n ? \"Confirm Appointment\"\n : \"Book an Appointment\"\n }\n setWidth={\n currentState === DISPLAYING_PAGES.BOOKING ? false : true\n }\n disabled={\n (!isKeyValueEmpty(modifiedData) &&\n currentState === DISPLAYING_PAGES.FORM) ||\n (!isKeyValueEmpty(appointmentDetail) &&\n currentState === DISPLAYING_PAGES.BOOKING) ||\n isDisabled\n }\n />\n )}\n {loading && \n \"Chevron\n \n \n\n
\n {/* {currentState === \"FORM\" && (\n
\n \n \n \n

\n Get{\" \"}\n \n 10%\n {\" \"}\n discount when you book online\n

\n
\n )} */}\n {userSettings?.isPricesEnabled && (\n \n

\n Sub Total\n

\n

\n {countryDetails?.currency_symbol}\n {productCartDetail?.totalPrice === undefined\n ? 0\n : productCartDetail?.totalPrice?.toFixed(2)}\n

\n
\n )}\n \n \n )}\n\n {isMobileOrTablet && isViewOpen && (\n
\n
\n
\n
\n {/* for mobile and tablet */}\n {!isViewOpen && (\n toggleModal()}\n >\n Hide\n \n )}\n {isViewOpen && (\n toggleModal()}\n >\n \n \n )}\n
{\" \"}\n {/* Item */}\n
\n
\n {productCartDetail?.model?.picture && (\n
\n \n
\n )}\n
\n
\n {productCartDetail?.brand?.name}\n
\n
\n {productCartDetail?.model?.name ||\n productCartData?.device_name ||\n formdata?.model}\n
\n
\n
\n
\n {/* issues header */}\n {productCartDetail?.services && (\n <>\n
\n
\n
\n
\n Issues({productCartDetail?.services?.length})\n
\n
\n
\n \n
\n
\n
\n \n )}\n
\n {/* bottom */}\n
\n {/* {currentState === \"FORM\" && (\n
\n \n \n \n

\n {userSettings?.promotionalText}\n

\n
\n )} */}\n {userSettings?.isPricesEnabled && (\n \n

\n Sub Total\n

\n

\n {/* $ */}\n {countryDetails?.currency_symbol}\n {productCartDetail?.totalPrice === undefined\n ? 0\n : productCartDetail?.totalPrice?.toFixed(2)}\n

\n
\n )}\n {currentState === DISPLAYING_PAGES.PRODUCT && !loading && (\n
setIsViewOpen(false)}>\n 0}\n text={\"Continue\"}\n setServiceArray={setServiceArray}\n />\n
\n )}\n
\n {(currentState === DISPLAYING_PAGES.FORM ||\n currentState === DISPLAYING_PAGES.BOOKING) && progressState !== 5 &&\n ((userSettings?.isQuoteEnabled && buttonClicked === \"quote\") ||\n (!userSettings?.isQuoteLocationsEnabled &&\n progressState === 4 && userSettings?.isQuoteEnabled)) &&\n progressState > 3 &&\n !loading && (\n
setIsViewOpen(false)} className=\"rd-quote-w-full\">\n submitForm(\"quote\")}\n text={\"Get Quote\"}\n setWidth={true}\n disabled={\n (!defaultStore && userSettings?.isQuoteLocationsEnabled) ||\n (!isKeyValueEmpty(modifiedData) &&\n currentState === DISPLAYING_PAGES.FORM) ||\n isDisabled\n }\n />\n
\n )}\n {(currentState === DISPLAYING_PAGES.FORM ||\n currentState === DISPLAYING_PAGES.BOOKING) &&\n userSettings?.isAppointmentEnabled &&\n currentState === DISPLAYING_PAGES.BOOKING &&\n progressState !== 5 &&\n buttonClicked === \"appointment\" &&\n !loading && (\n
setIsViewOpen(false)} className=\"rd-quote-w-full\">\n submitForm(\"appointments\")}\n text={\"Confirm Appointment\"}\n setWidth={\n currentState === DISPLAYING_PAGES.BOOKING ? false : true\n }\n disabled={\n (!isKeyValueEmpty(modifiedData) &&\n currentState === DISPLAYING_PAGES.FORM) ||\n (!isKeyValueEmpty(appointmentDetail) &&\n currentState === DISPLAYING_PAGES.BOOKING) ||\n isDisabled\n }\n />\n
\n )}\n {loading && (\n
\n
\n
\n \n )}\n \n );\n};\n\nexport default Cart;\n","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('calendar', 'IconCalendar', [\n [\n 'path',\n {\n d: 'M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z',\n key: 'svg-0',\n },\n ],\n ['path', { d: 'M16 3v4', key: 'svg-1' }],\n ['path', { d: 'M8 3v4', key: 'svg-2' }],\n ['path', { d: 'M4 11h16', key: 'svg-3' }],\n ['path', { d: 'M11 15h1', key: 'svg-4' }],\n ['path', { d: 'M12 15v3', key: 'svg-5' }],\n]);\n","import { IconCalendar } from \"@tabler/icons-react\";\nimport AppContext from \"Context/appContext\";\nimport { format } from \"date-fns\";\nimport { useContext } from \"react\";\n\nimport Button from \"components/Button\";\nimport IssueList from \"containers/Cart/IssueList\";\nimport \"containers/Completion/index.css\";\nimport { isKeyValueEmpty, formatTo12Hour } from \"utils\";\n\nconst Completion = () => {\n const {\n productCartDetail,\n setProducts,\n allProducts,\n setProgressState,\n setFormData,\n setProductCartDetail,\n appointmentDetail,\n formdata,\n notificationWay,\n setNotificationWay,\n productCartData,\n setProductCartData,\n buttonClicked,\n reactHookFormData,\n setDefaultStore,\n setSelectedStoreDetails,\n setSelectedBookingPage,\n setToggle,\n setAppointmentDetail,\n isWebView,\n setButtonClicked,\n othersWorkflow,\n setOthersWorkflow\n } = useContext(AppContext);\n\n let m_id = null;\n let model = null;\n\n if (productCartData && productCartData?.device_name) {\n m_id = String(productCartDetail?.services[0]?.device_id);\n model = productCartDetail?.brand?.models.find((ele) => ele.rd_device_id === m_id);\n } else if (!productCartData) {\n m_id = String(productCartDetail?.services[0]?.model);\n model = productCartDetail?.brand?.models.find((ele) => ele._id === m_id);\n }\n\n const resetStates = () => {\n setProducts(allProducts);\n setProgressState(0);\n setFormData({ name: \"\", phone: \"\", email: \"\", notes: \"\", option: \"\", model: \"\" });\n setProductCartDetail(null);\n setProductCartData(null);\n setDefaultStore(null);\n setNotificationWay('');\n setSelectedStoreDetails(null);\n reactHookFormData.reset()\n setSelectedBookingPage({});\n setToggle(false);\n setButtonClicked(null);\n setOthersWorkflow(false);\n\n setAppointmentDetail({\n date: \"\",\n start: \"\",\n end: \"\",\n })\n sessionStorage.removeItem('menuOption');\n };\n\n return (\n <>\n
\n
\n
\n \n \n \n
\n {(buttonClicked === 'appointment' ? 'Thank you for booking an Appointment with us.' : 'Thank you for requesting a Quote!')}\n
\n
\n \n {(buttonClicked === 'appointment' && (notificationWay === 'sms' || notificationWay === 'email'))\n ? `Your appointment has been confirmed! We're excited to fix your device and make it brand-new.`\n : (buttonClicked === 'quote' && (notificationWay === 'sms' || notificationWay === 'email'))\n ? `Your quote is on its way to your inbox!`\n : `Our team will be in touch shortly to provide you with the details of the ${buttonClicked}.`\n }\n
\n
\n
Information
\n {/* Item */}\n
\n {((!formdata.model || othersWorkflow) &&\n
\n
\n {productCartDetail?.brand?.picture && (\n
{\n productCartDetail?.brand?.picture && \n }\n\n
\n )}\n
\n
Brand
\n
\n {\" \"}\n {productCartDetail?.brand?.name || productCartDetail?.services[0]?.manufacturer_name || formdata.model || 'Others'}\n
\n
\n\n
\n
\n )}\n\n
\n
\n {(productCartDetail?.model?.picture || model?.picture) &&\n
\n \n
}\n
\n
Model
\n
\n {productCartDetail?.model?.name || productCartDetail?.services[0]?.device_name || formdata?.model || model?.name || 'Others'}\n
\n
\n
\n
\n
\n {isKeyValueEmpty(appointmentDetail) && (\n
\n
\n
\n \n
\n
\n
Appointment Date & Time
\n
\n {format(new Date(appointmentDetail?.date), \"MM-dd-yyyy\")},{\" \"}\n {appointmentDetail?.start && formatTo12Hour(appointmentDetail.start)} - {appointmentDetail?.end && formatTo12Hour(appointmentDetail.end)}\n
\n
\n
\n
\n )}\n {/* issues header */}\n {productCartDetail?.services && (\n <>\n
\n
\n Issues({productCartDetail?.services?.length})\n
\n
\n
\n \n
\n \n )}\n
\n {/* bottom */}\n {isWebView &&
\n {/*
\n

\n Sub Total\n

\n

\n ${productCartDetail?.totalPrice === undefined ? 0 : productCartDetail?.totalPrice}\n

\n
*/}\n
}\n
\n {!isWebView &&\n
\n
}\n \n );\n};\n\nexport default Completion;\n","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('message', 'IconMessage', [\n ['path', { d: 'M8 9h8', key: 'svg-0' }],\n ['path', { d: 'M8 13h6', key: 'svg-1' }],\n [\n 'path',\n {\n d: 'M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z',\n key: 'svg-2',\n },\n ],\n]);\n","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('mail', 'IconMail', [\n [\n 'path',\n {\n d: 'M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10z',\n key: 'svg-0',\n },\n ],\n ['path', { d: 'M3 7l9 6l9 -6', key: 'svg-1' }],\n]);\n","import createReactComponent from '../createReactComponent';\nexport default createReactComponent('phone-call', 'IconPhoneCall', [\n [\n 'path',\n {\n d: 'M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5l1.5 -2.5l5 2v4a2 2 0 0 1 -2 2a16 16 0 0 1 -15 -15a2 2 0 0 1 2 -2',\n key: 'svg-0',\n },\n ],\n ['path', { d: 'M15 7a2 2 0 0 1 2 2', key: 'svg-1' }],\n ['path', { d: 'M15 3a6 6 0 0 1 6 6', key: 'svg-2' }],\n]);\n","import { useState, useEffect } from \"react\";\n\nconst useTooltip = (product, isWebView) => {\n const [wasTruncated, setWasTruncated] = useState(false);\n const [truncatedText, setTruncatedText] = useState(\"\");\n const [showTooltip, setShowTooltip] = useState(false);\n const [tooltipPosition, setTooltipPosition] = useState({ top: 0, left: 0 });\n\n useEffect(() => {\n if (product?.name) {\n const limit = !isWebView ? ((!product.picture || !product.image) ? 22 : 30) : ((!product.picture || !product.image) ? 25 : 33);\n const truncated = product.name.length > limit;\n setWasTruncated(truncated);\n setTruncatedText(truncated ? product.name.slice(0, limit) + \"...\" : product.name);\n }\n }, [product, isWebView]);\n\n return {\n wasTruncated,\n truncatedText,\n showTooltip,\n setShowTooltip,\n tooltipPosition,\n setTooltipPosition\n };\n};\n\nexport default useTooltip;\n","import ReactDOM from \"react-dom\";\n\n// Portal Concept of React for Tooltip\nconst Tooltip = ({ productName, position }) => {\n return ReactDOM.createPortal(\n
\n {productName}\n
,\n document.getElementById('tooltip-root') // Make sure this exists in your HTML\n );\n};\n\nexport default Tooltip;\n","// This is a global component used for handling cards and its actions(click) across the entire system.\n// There are 3 types of scenarios handled in this card component,\n// on First three screens, the cards shown are from user-category API, i.e. all categories, all brands and all models\n// on Forth screen, an API is loaded and the above mentioned 3 types of scenarios are given below,\n// 1. Data(cards) shown, comes from RepairDesk database\n// 2. Data(cards) shown, comes from Our Own system database\n// 3. Data(cards) shown, comes from Others case flow\n\nimport AppContext from \"Context/appContext\";\nimport axios from \"axios\";\nimport UrlServices from \"../../services/Url\";\nimport \"components/Card/index.css\";\nimport useTooltip from \"components/Tooltip/useTooltip\";\nimport Tooltip from \"components/Tooltip/index\";\nimport { useContext, useState } from \"react\";\n\nconst Card = (props) => {\n const api_base_url = process.env.REACT_APP_APPOINTMENT_PRO_API_URL;\n \n const {\n index,\n product,\n filteredProducts,\n Icon,\n setSearch,\n setProducts\n } = props;\n\n const {\n currentState,\n setLoading,\n setProductCartData,\n progressState,\n productCartDetail,\n encryptionKey,\n setFormData,\n formdata,\n notificationWay,\n setNotificationWay,\n reactHookFormData,\n isWebView,\n othersWorkflow,\n setOthersWorkflow,\n countryDetails\n } = useContext(AppContext);\n\n const {\n wasTruncated,\n truncatedText,\n showTooltip,\n setShowTooltip,\n tooltipPosition,\n setTooltipPosition\n } = useTooltip(product, isWebView);\n\n const [imageLoaded, setImageLoaded] = useState(true);\n\n const getDataFromRD = async () => {\n setLoading(true);\n try {\n const { data, status } = await axios.post(\n `${api_base_url}/${UrlServices.rdDeviceDetail}`,\n {\n bzy_d: product?.rd_device_id,\n bzy_c: product?.rd_category_id,\n q_: encryptionKey,\n }\n );\n if (status === 200) {\n const item = data.data[0];\n const price = item?.sale_price?.startsWith(\"0\")\n ? item?.retail_price\n : item?.sale_price;\n // setProducts(data?.data?.length > 0 ? data : allServicesForSubId);\n\n // in case, if there are NO AVAILABLE SERVICES FOUND, so go with \"Others\" workflow\n if (data.data.length === 0) {\n // others case flow\n goWithOthersFlow(\"Others\");\n setLoading(false);\n setOthersWorkflow(true);\n setFormData({ ...formdata, model: product.name });\n return;\n }\n\n setProducts(data?.data);\n setProductCartData({\n name: item.name,\n device_name: item.device_name,\n rd_device_id: product.rd_device_id,\n price: price,\n });\n setLoading(false);\n }\n } catch (error) {\n setLoading(false);\n }\n };\n\n const getModelServices = async () => {\n setLoading(true);\n try {\n const { data, status } = await axios.post(\n `${api_base_url}/${UrlServices.modelServices}`,\n {\n Id: product._id,\n q_: encryptionKey,\n }\n );\n if (status === 200) {\n // setProducts(data.length > 0 ? data : allServicesForSubId);\n \n // in case, if there are NO AVAILABLE SERVICES FOUND, so go with \"Others\" workflow\n if (data.length === 0) {\n // others case flow\n goWithOthersFlow(\"Others\");\n setLoading(false);\n setOthersWorkflow(true);\n setFormData({ ...formdata, model: product.name });\n return;\n }\n \n setProducts(data);\n setFormData({ ...formdata, model: product.name });\n setLoading(false);\n }\n } catch (error) {\n setLoading(false);\n }\n };\n\n // Tooltip for Desktop (Mouse Hover)\n const handleDesktopMouseEnter = (e) => {\n const rect = e.currentTarget.getBoundingClientRect()\n const topOffset = 50; // Use desktop offset\n setTooltipPosition({ top: rect.top + topOffset, left: rect.left + rect.width / 2 });\n setShowTooltip(true); // Show tooltip on hover\n };\n\n // Tooltip for Mobile (Touch)\n const handleMobileTouchStart = (e) => {\n const rect = e.currentTarget.getBoundingClientRect();\n const topOffset = 35; // Use mobile offset (smaller)\n setTooltipPosition({ top: rect.top + topOffset, left: rect.left + rect.width / 2 });\n setShowTooltip(true); // Show tooltip on touch\n };\n\n const updateValue = () => {\n currentState === \"PRODUCT\" && progressState !== 3 && setSearch(\"\");\n if (index !== undefined) filteredProducts(index, product?.name);\n\n if (progressState === 4) {\n setNotificationWay(product?.value);\n }\n\n // 3 Gates Type Scenarios for Card Click Event,\n // As this is a global component used for handling card and its actions across the entire system.\n if (productCartDetail?.skipForOthers && !othersWorkflow) {\n // others case flow\n goWithOthersFlow();\n } else if (product.brand && product.isRD) {\n // repairdesk database case flow\n getDataFromRD();\n } else if (product.brand && !product?.isRD && !product.model) {\n // our database case flow\n getModelServices();\n }\n };\n\n const goWithOthersFlow = (key) => {\n // others case flow\n product.active = !product.active;\n filteredProducts(index, key ? key : product?.name);\n if (progressState === 3) {\n setProductCartData(null);\n setFormData({ ...formdata, model: \"\" });\n reactHookFormData.setValue(\"model\", \"\");\n }\n }\n\n const handleImageError = (e) => {\n e.target.style.display = 'none'; // Hide the image when it fails to load\n setImageLoaded(false);\n };\n\n return (\n (product.name !== \"Others\" || progressState !== 3) && (\n setShowTooltip(false)}\n onTouchStart={handleMobileTouchStart}\n onTouchEnd={() => setShowTooltip(false)}\n className={`rd-quote-cursor-pointer quote-product-card quote-product-card-width-mob rd-quote-pt-[0px] rd-quote-tooltip\n ${progressState === 3 && product.active ? \"rd-quote-border-2 rd-quote-rounded-md rd-quote-border-teal-600\" : \"\"}\n ${progressState === 4 && product?.value === 'sms' && \n (countryDetails?.country !== 'Australia' && \n countryDetails?.country !== 'United States' && \n countryDetails?.country !== 'Canada' && \n countryDetails?.country !== 'United Kingdom') \n ? 'rd-quote-pointer-events-none rd-quote-opacity-50' \n : ''\n }\n ${\n product?.model?.name\n ? \"rd-quote-rounded-md\"\n : product?.value === \"sms\" ||\n product?.value === \"email\" ||\n product?.value === \"phone\"\n ? \"xs:rd-quote-h-[98px] lg:rd-quote-h-[112px] rd-quote-rounded-md\"\n : progressState === 1 || progressState === 2\n ? \"rd-quote-h-[112px] xs:rd-quote-w-[48%] lg:rd-quote-w-[183.6px] rd-quote-rounded-md lg:hover:rd-quote-border-2 lg:hover:rd-quote-border-teal-600\"\n : progressState === 3\n ? \"rd-quote-h-[102px] xs:rd-quote-w-[48%] lg:rd-quote-w-[160px] rd-quote-rounded-md lg:hover:rd-quote-border-2 lg:hover:rd-quote-border-teal-600\"\n : \"quote-card-width-mobile rd-quote-h-[166px] rd-quote-w-[242px] -rd-quote-mb-[10px] hover:rd-quote-border-2 hover:rd-quote-border-teal-600\"\n }\n ${product?.value === notificationWay && progressState === 4 ? \"rd-quote-border-2 rd-quote-border-teal-600\" : \"\"}\n `}\n >\n {/* Tooltip */}\n {showTooltip && wasTruncated && (\n \n )}\n \n \n \n )\n );\n \n};\n\nexport default Card;\n","import { IconSearch } from '@tabler/icons-react';\nimport AppContext from \"Context/appContext\";\nimport { useContext } from \"react\";\n\nconst FormInput = (props) => {\n const { isShowIcon, placeholder, register, name, type = 'text' } = props;\n const { formdata } = useContext(AppContext);\n\n return (\n \n {isShowIcon && }\n \n \n );\n};\n\nexport default FormInput;\n","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90)))\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|3\\\\d\\\\d)|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",[9]],[\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[0-36-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|22\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"[24-689]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]]]],\"BL\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[23]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"(?:[2-8]\\\\d|90)\\\\d{8}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|90[25])[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[0-36-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"[189]\\\\d{8}|[1-68]\\\\d{6}\",[7,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]\",\"(?:10|2[0-57-9])(?:10|9[56])\",\"10(?:10|9[56])|2[0-57-9](?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:60\\\\d\\\\d|9101)\\\\d{6}|(?:1\\\\d|3)\\\\d{9}\",[10,11],[[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[0-36-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|31)\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:1[3-79]|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0235])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-2]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"[56]94\\\\d{6}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[56]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],0,0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],\"0\",0,\"(000[259]\\\\d{6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[013-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[245]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-4]|5[01]|8[0-3]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"596\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"1(?:(?:22|44|7[27]|87|9[69])[1-9]|65[0-689])\\\\d{7}|(?:1(?:[01]\\\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-689]|8[1-69]|9[1-578])|[2-9]\\\\d)\\\\d{8}\",[10,11],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"],0,1],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 $3 $4\",[\"1(?:33|5[56]|81)\"],0,1],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 $3 $4\",[\"1\"],0,1]],\"01\",0,\"0(?:[12]|4[45])|1\",0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[047]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"2[0-24-9]\\\\d{8}|[78]\\\\d{10,13}|[7-9]\\\\d{9}|[1-9]\\\\d{7}|[124-7]\\\\d{6}\",[7,8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"78\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|9(?:0[3-9]|[1-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-6]|7(?:0[0-689]|[1-79])|8[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|80\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2689]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-5]|76(?:2[27]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"800\\\\d{4}|(?:[249]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|77|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[69]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2679]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"[0-57-9]\\\\d{8}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3[1-5]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:5056(?:[0-35-9]\\\\d|4[468])|7302[0-4]\\\\d)\\\\d{4}|(?:472[24]|505[2-57-9]|7306|983[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[013569]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[6,7,8,9,10,11,12,13],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"810\",\"(?:20|33|[5-79]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72)\\\\d{4}|8\\\\d{5}(?:\\\\d{3})?\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[478]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[35-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[35-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,0,0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","const objectConstructor = {}.constructor;\r\n\r\nexport default function isObject(object) {\r\n return object !== undefined && object !== null && object.constructor === objectConstructor;\r\n}\r\n","import isObject from './helpers/isObject.js'\r\n\r\n// Extracts the following properties from function arguments:\r\n// * input `text`\r\n// * `options` object\r\n// * `metadata` JSON\r\nexport default function normalizeArguments(args) {\r\n\tconst [arg_1, arg_2, arg_3, arg_4] = Array.prototype.slice.call(args)\r\n\r\n\tlet text\r\n\tlet options\r\n\tlet metadata\r\n\r\n\t// If the phone number is passed as a string.\r\n\t// `parsePhoneNumber('88005553535', ...)`.\r\n\tif (typeof arg_1 === 'string') {\r\n\t\ttext = arg_1\r\n\t}\r\n\telse throw new TypeError('A text for parsing must be a string.')\r\n\r\n\t// If \"default country\" argument is being passed then move it to `options`.\r\n\t// `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\r\n\tif (!arg_2 || typeof arg_2 === 'string')\r\n\t{\r\n\t\tif (arg_4) {\r\n\t\t\toptions = arg_3\r\n\t\t\tmetadata = arg_4\r\n\t\t} else {\r\n\t\t\toptions = undefined\r\n\t\t\tmetadata = arg_3\r\n\t\t}\r\n\r\n\t\tif (arg_2) {\r\n\t\t\toptions = { defaultCountry: arg_2, ...options }\r\n\t\t}\r\n\t}\r\n\t// `defaultCountry` is not passed.\r\n\t// Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\r\n\telse if (isObject(arg_2))\r\n\t{\r\n\t\tif (arg_3) {\r\n\t\t\toptions = arg_2\r\n\t\t\tmetadata = arg_3\r\n\t\t} else {\r\n\t\t\tmetadata = arg_2\r\n\t\t}\r\n\t}\r\n\telse throw new Error(`Invalid second argument: ${arg_2}`)\r\n\r\n\treturn {\r\n\t\ttext,\r\n\t\toptions,\r\n\t\tmetadata\r\n\t}\r\n}","// The minimum length of the national significant number.\r\nexport const MIN_LENGTH_FOR_NSN = 2\r\n\r\n// The ITU says the maximum length should be 15,\r\n// but one can find longer numbers in Germany.\r\nexport const MAX_LENGTH_FOR_NSN = 17\r\n\r\n// The maximum length of the country calling code.\r\nexport const MAX_LENGTH_COUNTRY_CODE = 3\r\n\r\n// Digits accepted in phone numbers\r\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\r\nexport const VALID_DIGITS = '0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9'\r\n\r\n// `DASHES` will be right after the opening square bracket of the \"character class\"\r\nconst DASHES = '-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D'\r\nconst SLASHES = '\\uFF0F/'\r\nconst DOTS = '\\uFF0E.'\r\nexport const WHITESPACE = ' \\u00A0\\u00AD\\u200B\\u2060\\u3000'\r\nconst BRACKETS = '()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]'\r\n// export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\r\nconst TILDES = '~\\u2053\\u223C\\uFF5E'\r\n\r\n// Regular expression of acceptable punctuation found in phone numbers. This\r\n// excludes punctuation found as a leading character only. This consists of dash\r\n// characters, white space characters, full stops, slashes, square brackets,\r\n// parentheses and tildes. Full-width variants are also present.\r\nexport const VALID_PUNCTUATION = `${DASHES}${SLASHES}${DOTS}${WHITESPACE}${BRACKETS}${TILDES}`\r\n\r\nexport const PLUS_CHARS = '+\\uFF0B'\r\n// const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')","// https://stackoverflow.com/a/46971044/970769\r\n// \"Breaking changes in Typescript 2.1\"\r\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\r\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\r\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\nexport default class ParseError extends Error {\r\n constructor(code) {\r\n super(code)\r\n // Set the prototype explicitly.\r\n // Any subclass of FooError will have to manually set the prototype as well.\r\n Object.setPrototypeOf(this, ParseError.prototype)\r\n this.name = this.constructor.name\r\n }\r\n}","// Copy-pasted from:\r\n// https://github.com/substack/semver-compare/blob/master/index.js\r\n//\r\n// Inlining this function because some users reported issues with\r\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\r\n//\r\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\r\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\r\nexport default function(a, b) {\r\n a = a.split('-')\r\n b = b.split('-')\r\n var pa = a[0].split('.')\r\n var pb = b[0].split('.')\r\n for (var i = 0; i < 3; i++) {\r\n var na = Number(pa[i])\r\n var nb = Number(pb[i])\r\n if (na > nb) return 1\r\n if (nb > na) return -1\r\n if (!isNaN(na) && isNaN(nb)) return 1\r\n if (isNaN(na) && !isNaN(nb)) return -1\r\n }\r\n if (a[1] && b[1]) {\r\n return a[1] > b[1] ? 1 : (a[1] < b[1] ? -1 : 0)\r\n }\r\n return !a[1] && b[1] ? 1 : (a[1] && !b[1] ? -1 : 0)\r\n}","import compare from './tools/semver-compare.js'\r\nimport isObject from './helpers/isObject.js'\r\n\r\n// Added \"possibleLengths\" and renamed\r\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\r\nconst V2 = '1.0.18'\r\n\r\n// Added \"idd_prefix\" and \"default_idd_prefix\".\r\nconst V3 = '1.2.0'\r\n\r\n// Moved `001` country code to \"nonGeographic\" section of metadata.\r\nconst V4 = '1.7.35'\r\n\r\nconst DEFAULT_EXT_PREFIX = ' ext. '\r\n\r\nconst CALLING_CODE_REG_EXP = /^\\d+$/\r\n\r\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\r\nexport default class Metadata {\r\n\tconstructor(metadata) {\r\n\t\tvalidateMetadata(metadata)\r\n\t\tthis.metadata = metadata\r\n\t\tsetVersion.call(this, metadata)\r\n\t}\r\n\r\n\tgetCountries() {\r\n\t\treturn Object.keys(this.metadata.countries).filter(_ => _ !== '001')\r\n\t}\r\n\r\n\tgetCountryMetadata(countryCode) {\r\n\t\treturn this.metadata.countries[countryCode]\r\n\t}\r\n\r\n\tnonGeographic() {\r\n\t\tif (this.v1 || this.v2 || this.v3) return\r\n\t\t// `nonGeographical` was a typo.\r\n\t\t// It's present in metadata generated from `1.7.35` to `1.7.37`.\r\n\t\t// The test case could be found by searching for \"nonGeographical\".\r\n\t\treturn this.metadata.nonGeographic || this.metadata.nonGeographical\r\n\t}\r\n\r\n\thasCountry(country) {\r\n\t\treturn this.getCountryMetadata(country) !== undefined\r\n\t}\r\n\r\n\thasCallingCode(callingCode) {\r\n\t\tif (this.getCountryCodesForCallingCode(callingCode)) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\tif (this.nonGeographic()[callingCode]) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\r\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisNonGeographicCallingCode(callingCode) {\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\treturn this.nonGeographic()[callingCode] ? true : false\r\n\t\t} else {\r\n\t\t\treturn this.getCountryCodesForCallingCode(callingCode) ? false : true\r\n\t\t}\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tcountry(countryCode) {\r\n\t\treturn this.selectNumberingPlan(countryCode)\r\n\t}\r\n\r\n\tselectNumberingPlan(countryCode, callingCode) {\r\n\t\t// Supports just passing `callingCode` as the first argument.\r\n\t\tif (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\r\n\t\t\tcallingCode = countryCode\r\n\t\t\tcountryCode = null\r\n\t\t}\r\n\t\tif (countryCode && countryCode !== '001') {\r\n\t\t\tif (!this.hasCountry(countryCode)) {\r\n\t\t\t\tthrow new Error(`Unknown country: ${countryCode}`)\r\n\t\t\t}\r\n\t\t\tthis.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this)\r\n\t\t} else if (callingCode) {\r\n\t\t\tif (!this.hasCallingCode(callingCode)) {\r\n\t\t\t\tthrow new Error(`Unknown calling code: ${callingCode}`)\r\n\t\t\t}\r\n\t\t\tthis.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this)\r\n\t\t} else {\r\n\t\t\tthis.numberingPlan = undefined\r\n\t\t}\r\n\t\treturn this\r\n\t}\r\n\r\n\tgetCountryCodesForCallingCode(callingCode) {\r\n\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\tif (countryCodes) {\r\n\t\t\t// Metadata before V4 included \"non-geographic entity\" calling codes\r\n\t\t\t// inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\r\n\t\t\t// Now the semantics of `country_calling_codes` has changed:\r\n\t\t\t// it's specifically for \"countries\" now.\r\n\t\t\t// Older versions of custom metadata will simply skip parsing\r\n\t\t\t// \"non-geographic entity\" phone numbers with new versions\r\n\t\t\t// of this library: it's not considered a bug,\r\n\t\t\t// because such numbers are extremely rare,\r\n\t\t\t// and developers extremely rarely use custom metadata.\r\n\t\t\tif (countryCodes.length === 1 && countryCodes[0].length === 3) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\treturn countryCodes\r\n\t\t}\r\n\t}\r\n\r\n\tgetCountryCodeForCallingCode(callingCode) {\r\n\t\tconst countryCodes = this.getCountryCodesForCallingCode(callingCode)\r\n\t\tif (countryCodes) {\r\n\t\t\treturn countryCodes[0]\r\n\t\t}\r\n\t}\r\n\r\n\tgetNumberingPlanMetadata(callingCode) {\r\n\t\tconst countryCode = this.getCountryCodeForCallingCode(callingCode)\r\n\t\tif (countryCode) {\r\n\t\t\treturn this.getCountryMetadata(countryCode)\r\n\t\t}\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\tconst metadata = this.nonGeographic()[callingCode]\r\n\t\t\tif (metadata) {\r\n\t\t\t\treturn metadata\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\r\n\t\t\t// In that metadata, there was no concept of \"non-geographic\" metadata\r\n\t\t\t// so metadata for `001` country code was stored along with other countries.\r\n\t\t\t// The test case can be found by searching for:\r\n\t\t\t// \"should work around `nonGeographic` metadata not existing\".\r\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\r\n\t\t\t\treturn this.metadata.countries['001']\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tcountryCallingCode() {\r\n\t\treturn this.numberingPlan.callingCode()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tIDDPrefix() {\r\n\t\treturn this.numberingPlan.IDDPrefix()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tdefaultIDDPrefix() {\r\n\t\treturn this.numberingPlan.defaultIDDPrefix()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalNumberPattern() {\r\n\t\treturn this.numberingPlan.nationalNumberPattern()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tpossibleLengths() {\r\n\t\treturn this.numberingPlan.possibleLengths()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tformats() {\r\n\t\treturn this.numberingPlan.formats()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalPrefixForParsing() {\r\n\t\treturn this.numberingPlan.nationalPrefixForParsing()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalPrefixTransformRule() {\r\n\t\treturn this.numberingPlan.nationalPrefixTransformRule()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tleadingDigits() {\r\n\t\treturn this.numberingPlan.leadingDigits()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\thasTypes() {\r\n\t\treturn this.numberingPlan.hasTypes()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\ttype(type) {\r\n\t\treturn this.numberingPlan.type(type)\r\n\t}\r\n\r\n\t// Deprecated.\r\n\text() {\r\n\t\treturn this.numberingPlan.ext()\r\n\t}\r\n\r\n\tcountryCallingCodes() {\r\n\t\tif (this.v1) return this.metadata.country_phone_code_to_countries\r\n\t\treturn this.metadata.country_calling_codes\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tchooseCountryByCountryCallingCode(callingCode) {\r\n\t\treturn this.selectNumberingPlan(callingCode)\r\n\t}\r\n\r\n\thasSelectedNumberingPlan() {\r\n\t\treturn this.numberingPlan !== undefined\r\n\t}\r\n}\r\n\r\nclass NumberingPlan {\r\n\tconstructor(metadata, globalMetadataObject) {\r\n\t\tthis.globalMetadataObject = globalMetadataObject\r\n\t\tthis.metadata = metadata\r\n\t\tsetVersion.call(this, globalMetadataObject.metadata)\r\n\t}\r\n\r\n\tcallingCode() {\r\n\t\treturn this.metadata[0]\r\n\t}\r\n\r\n\t// Formatting information for regions which share\r\n\t// a country calling code is contained by only one region\r\n\t// for performance reasons. For example, for NANPA region\r\n\t// (\"North American Numbering Plan Administration\",\r\n\t// which includes USA, Canada, Cayman Islands, Bahamas, etc)\r\n\t// it will be contained in the metadata for `US`.\r\n\tgetDefaultCountryMetadataForRegion() {\r\n\t\treturn this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode())\r\n\t}\r\n\r\n\t// Is always present.\r\n\tIDDPrefix() {\r\n\t\tif (this.v1 || this.v2) return\r\n\t\treturn this.metadata[1]\r\n\t}\r\n\r\n\t// Is only present when a country supports multiple IDD prefixes.\r\n\tdefaultIDDPrefix() {\r\n\t\tif (this.v1 || this.v2) return\r\n\t\treturn this.metadata[12]\r\n\t}\r\n\r\n\tnationalNumberPattern() {\r\n\t\tif (this.v1 || this.v2) return this.metadata[1]\r\n\t\treturn this.metadata[2]\r\n\t}\r\n\r\n\t// \"possible length\" data is always present in Google's metadata.\r\n\tpossibleLengths() {\r\n\t\tif (this.v1) return\r\n\t\treturn this.metadata[this.v2 ? 2 : 3]\r\n\t}\r\n\r\n\t_getFormats(metadata) {\r\n\t\treturn metadata[this.v1 ? 2 : this.v2 ? 3 : 4]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// formats are all stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tformats() {\r\n\t\tconst formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || []\r\n\t\treturn formats.map(_ => new Format(_, this))\r\n\t}\r\n\r\n\tnationalPrefix() {\r\n\t\treturn this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5]\r\n\t}\r\n\r\n\t_getNationalPrefixFormattingRule(metadata) {\r\n\t\treturn metadata[this.v1 ? 4 : this.v2 ? 5 : 6]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// national prefix formatting rule is stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tnationalPrefixFormattingRule() {\r\n\t\treturn this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion())\r\n\t}\r\n\r\n\t_nationalPrefixForParsing() {\r\n\t\treturn this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7]\r\n\t}\r\n\r\n\tnationalPrefixForParsing() {\r\n\t\t// If `national_prefix_for_parsing` is not set explicitly,\r\n\t\t// then infer it from `national_prefix` (if any)\r\n\t\treturn this._nationalPrefixForParsing() || this.nationalPrefix()\r\n\t}\r\n\r\n\tnationalPrefixTransformRule() {\r\n\t\treturn this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8]\r\n\t}\r\n\r\n\t_getNationalPrefixIsOptionalWhenFormatting() {\r\n\t\treturn !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// \"national prefix is optional when formatting\" flag is\r\n\t// stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\r\n\t\treturn this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) ||\r\n\t\t\tthis._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion())\r\n\t}\r\n\r\n\tleadingDigits() {\r\n\t\treturn this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10]\r\n\t}\r\n\r\n\ttypes() {\r\n\t\treturn this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11]\r\n\t}\r\n\r\n\thasTypes() {\r\n\t\t// Versions 1.2.0 - 1.2.4: can be `[]`.\r\n\t\t/* istanbul ignore next */\r\n\t\tif (this.types() && this.types().length === 0) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\t// Versions <= 1.2.4: can be `undefined`.\r\n\t\t// Version >= 1.2.5: can be `0`.\r\n\t\treturn !!this.types()\r\n\t}\r\n\r\n\ttype(type) {\r\n\t\tif (this.hasTypes() && getType(this.types(), type)) {\r\n\t\t\treturn new Type(getType(this.types(), type), this)\r\n\t\t}\r\n\t}\r\n\r\n\text() {\r\n\t\tif (this.v1 || this.v2) return DEFAULT_EXT_PREFIX\r\n\t\treturn this.metadata[13] || DEFAULT_EXT_PREFIX\r\n\t}\r\n}\r\n\r\nclass Format {\r\n\tconstructor(format, metadata) {\r\n\t\tthis._format = format\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tpattern() {\r\n\t\treturn this._format[0]\r\n\t}\r\n\r\n\tformat() {\r\n\t\treturn this._format[1]\r\n\t}\r\n\r\n\tleadingDigitsPatterns() {\r\n\t\treturn this._format[2] || []\r\n\t}\r\n\r\n\tnationalPrefixFormattingRule() {\r\n\t\treturn this._format[3] || this.metadata.nationalPrefixFormattingRule()\r\n\t}\r\n\r\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\r\n\t\treturn !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\r\n\t}\r\n\r\n\tnationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\r\n\t\t// National prefix is omitted if there's no national prefix formatting rule\r\n\t\t// set for this country, or when the national prefix formatting rule\r\n\t\t// contains no national prefix itself, or when this rule is set but\r\n\t\t// national prefix is optional for this phone number format\r\n\t\t// (and it is not enforced explicitly)\r\n\t\treturn this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\r\n\t}\r\n\r\n\t// Checks whether national prefix formatting rule contains national prefix.\r\n\tusesNationalPrefix() {\r\n\t\treturn this.nationalPrefixFormattingRule() &&\r\n\t\t\t// Check that national prefix formatting rule is not a \"dummy\" one.\r\n\t\t\t!FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule())\r\n\t\t\t// In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\r\n\t\t\t// when `national_prefix_formatting_rule` is not present.\r\n\t\t\t// So, `true` or `false` are returned explicitly here, so that\r\n\t\t\t// `0` number isn't returned.\r\n\t\t\t? true\r\n\t\t\t: false\r\n\t}\r\n\r\n\tinternationalFormat() {\r\n\t\treturn this._format[5] || this.format()\r\n\t}\r\n}\r\n\r\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\r\nconst FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/\r\n\r\nclass Type {\r\n\tconstructor(type, metadata) {\r\n\t\tthis.type = type\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tpattern() {\r\n\t\tif (this.metadata.v1) return this.type\r\n\t\treturn this.type[0]\r\n\t}\r\n\r\n\tpossibleLengths() {\r\n\t\tif (this.metadata.v1) return\r\n\t\treturn this.type[1] || this.metadata.possibleLengths()\r\n\t}\r\n}\r\n\r\nfunction getType(types, type) {\r\n\tswitch (type) {\r\n\t\tcase 'FIXED_LINE':\r\n\t\t\treturn types[0]\r\n\t\tcase 'MOBILE':\r\n\t\t\treturn types[1]\r\n\t\tcase 'TOLL_FREE':\r\n\t\t\treturn types[2]\r\n\t\tcase 'PREMIUM_RATE':\r\n\t\t\treturn types[3]\r\n\t\tcase 'PERSONAL_NUMBER':\r\n\t\t\treturn types[4]\r\n\t\tcase 'VOICEMAIL':\r\n\t\t\treturn types[5]\r\n\t\tcase 'UAN':\r\n\t\t\treturn types[6]\r\n\t\tcase 'PAGER':\r\n\t\t\treturn types[7]\r\n\t\tcase 'VOIP':\r\n\t\t\treturn types[8]\r\n\t\tcase 'SHARED_COST':\r\n\t\t\treturn types[9]\r\n\t}\r\n}\r\n\r\nexport function validateMetadata(metadata) {\r\n\tif (!metadata) {\r\n\t\tthrow new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.')\r\n\t}\r\n\r\n\t// `country_phone_code_to_countries` was renamed to\r\n\t// `country_calling_codes` in `1.0.18`.\r\n\tif (!isObject(metadata) || !isObject(metadata.countries)) {\r\n\t\tthrow new Error(`[libphonenumber-js] \\`metadata\\` argument was passed but it's not a valid metadata. Must be an object having \\`.countries\\` child object property. Got ${isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata}.`)\r\n\t}\r\n}\r\n\r\n// Babel transforms `typeof` into some \"branches\"\r\n// so istanbul will show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst typeOf = _ => typeof _\r\n\r\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\r\nexport function getExtPrefix(country, metadata) {\r\n\tmetadata = new Metadata(metadata)\r\n\tif (metadata.hasCountry(country)) {\r\n\t\treturn metadata.country(country).ext()\r\n\t}\r\n\treturn DEFAULT_EXT_PREFIX\r\n}\r\n\r\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\r\nexport function getCountryCallingCode(country, metadata) {\r\n\tmetadata = new Metadata(metadata)\r\n\tif (metadata.hasCountry(country)) {\r\n\t\treturn metadata.country(country).countryCallingCode()\r\n\t}\r\n\tthrow new Error(`Unknown country: ${country}`)\r\n}\r\n\r\nexport function isSupportedCountry(country, metadata) {\r\n\t// metadata = new Metadata(metadata)\r\n\t// return metadata.hasCountry(country)\r\n\treturn metadata.countries.hasOwnProperty(country)\r\n}\r\n\r\nfunction setVersion(metadata) {\r\n\tconst { version } = metadata\r\n\tif (typeof version === 'number') {\r\n\t\tthis.v1 = version === 1\r\n\t\tthis.v2 = version === 2\r\n\t\tthis.v3 = version === 3\r\n\t\tthis.v4 = version === 4\r\n\t} else {\r\n\t\tif (!version) {\r\n\t\t\tthis.v1 = true\r\n\t\t} else if (compare(version, V3) === -1) {\r\n\t\t\tthis.v2 = true\r\n\t\t} else if (compare(version, V4) === -1) {\r\n\t\t\tthis.v3 = true\r\n\t\t} else {\r\n\t\t\tthis.v4 = true\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\r\n// function isCountryCode(countryCode) {\r\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\r\n// }","import { VALID_DIGITS } from '../../constants.js'\r\n\r\n// The RFC 3966 format for extensions.\r\nconst RFC3966_EXTN_PREFIX = ';ext='\r\n\r\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\r\nconst getExtensionDigitsPattern = (maxLength) => `([${VALID_DIGITS}]{1,${maxLength}})`\r\n\r\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\r\nexport default function createExtensionPattern(purpose) {\r\n\t// We cap the maximum length of an extension based on the ambiguity of the way\r\n\t// the extension is prefixed. As per ITU, the officially allowed length for\r\n\t// extensions is actually 40, but we don't support this since we haven't seen real\r\n\t// examples and this introduces many false interpretations as the extension labels\r\n\t// are not standardized.\r\n\t/** @type {string} */\r\n\tvar extLimitAfterExplicitLabel = '20';\r\n\t/** @type {string} */\r\n\tvar extLimitAfterLikelyLabel = '15';\r\n\t/** @type {string} */\r\n\tvar extLimitAfterAmbiguousChar = '9';\r\n\t/** @type {string} */\r\n\tvar extLimitWhenNotSure = '6';\r\n\r\n\t/** @type {string} */\r\n\tvar possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\u00A0\\\\t,]*\";\r\n\t// Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\r\n\t/** @type {string} */\r\n\tvar possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\u00A0\\\\t,-]*\";\r\n\t/** @type {string} */\r\n\tvar optionalExtnSuffix = \"#?\";\r\n\r\n\t// Here the extension is called out in more explicit way, i.e mentioning it obvious\r\n\t// patterns like \"ext.\".\r\n\t/** @type {string} */\r\n\tvar explicitExtLabels =\r\n\t \"(?:e?xt(?:ensi(?:o\\u0301?|\\u00F3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\";\r\n\t// One-character symbols that can be used to indicate an extension, and less\r\n\t// commonly used or more ambiguous extension labels.\r\n\t/** @type {string} */\r\n\tvar ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\";\r\n\t// When extension is not separated clearly.\r\n\t/** @type {string} */\r\n\tvar ambiguousSeparator = \"[- ]+\";\r\n\t// This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\r\n\t// comma as extension label may have it.\r\n\t/** @type {string} */\r\n\tvar possibleSeparatorsNumberExtLabelNoComma = \"[ \\u00A0\\\\t]*\";\r\n\t// \",,\" is commonly used for auto dialling the extension when connected. First\r\n\t// comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\r\n\t// not repeat it here. Semi-colon works in Iphone and Android also to pop up a\r\n\t// button with the extension number following.\r\n\t/** @type {string} */\r\n\tvar autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\r\n\r\n\t/** @type {string} */\r\n\tvar rfcExtn = RFC3966_EXTN_PREFIX\r\n\t + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\r\n\t/** @type {string} */\r\n\tvar explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels\r\n\t + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterExplicitLabel)\r\n\t + optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels\r\n\t + possibleCharsAfterExtLabel\r\n\t+ getExtensionDigitsPattern(extLimitAfterAmbiguousChar)\r\n\t+ optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar americanStyleExtnWithSuffix = ambiguousSeparator\r\n\t+ getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\r\n\r\n\t/** @type {string} */\r\n\tvar autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma\r\n\t + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterLikelyLabel)\r\n\t+ optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma\r\n\t + \"(?:,)+\" + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterAmbiguousChar)\r\n\t + optionalExtnSuffix;\r\n\r\n\t// The first regular expression covers RFC 3966 format, where the extension is added\r\n\t// using \";ext=\". The second more generic where extension is mentioned with explicit\r\n\t// labels like \"ext:\". In both the above cases we allow more numbers in extension than\r\n\t// any other extension labels. The third one captures when single character extension\r\n\t// labels or less commonly used labels are used. In such cases we capture fewer\r\n\t// extension digits in order to reduce the chance of falsely interpreting two\r\n\t// numbers beside each other as a number + extension. The fourth one covers the\r\n\t// special case of American numbers where the extension is written with a hash\r\n\t// at the end, such as \"- 503#\". The fifth one is exclusively for extension\r\n\t// autodialling formats which are used when dialling and in this case we accept longer\r\n\t// extensions. The last one is more liberal on the number of commas that acts as\r\n\t// extension labels, so we have a strict cap on the number of digits in such extensions.\r\n\treturn rfcExtn + \"|\"\r\n\t + explicitExtn + \"|\"\r\n\t + ambiguousExtn + \"|\"\r\n\t + americanStyleExtnWithSuffix + \"|\"\r\n\t + autoDiallingExtn + \"|\"\r\n\t + onlyCommasExtn;\r\n}","import {\r\n\tMIN_LENGTH_FOR_NSN,\r\n\tVALID_DIGITS,\r\n\tVALID_PUNCTUATION,\r\n\tPLUS_CHARS\r\n} from '../constants.js'\r\n\r\nimport createExtensionPattern from './extension/createExtensionPattern.js'\r\n\r\n// Regular expression of viable phone numbers. This is location independent.\r\n// Checks we have at least three leading digits, and only valid punctuation,\r\n// alpha characters and digits in the phone number. Does not include extension\r\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\r\n// used as a placeholder for carrier codes, for example in Brazilian phone\r\n// numbers. We also allow multiple '+' characters at the start.\r\n//\r\n// Corresponds to the following:\r\n// [digits]{minLengthNsn}|\r\n// plus_sign*\r\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\r\n//\r\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\r\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\r\n// The second expression restricts the number of digits to three or more, but\r\n// then allows them to be in international form, and to have alpha-characters\r\n// and punctuation. We split up the two reg-exes here and combine them when\r\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\r\n// with ^ and append $ to each branch.\r\n//\r\n// \"Note VALID_PUNCTUATION starts with a -,\r\n// so must be the first in the range\" (c) Google devs.\r\n// (wtf did they mean by saying that; probably nothing)\r\n//\r\nconst MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'\r\n//\r\n// And this is the second reg-exp:\r\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\r\n//\r\nexport const VALID_PHONE_NUMBER =\r\n\t'[' + PLUS_CHARS + ']{0,1}' +\r\n\t'(?:' +\r\n\t\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t\t'[' + VALID_DIGITS + ']' +\r\n\t'){3,}' +\r\n\t'[' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']*'\r\n\r\n// This regular expression isn't present in Google's `libphonenumber`\r\n// and is only used to determine whether the phone number being input\r\n// is too short for it to even consider it a \"valid\" number.\r\n// This is just a way to differentiate between a really invalid phone\r\n// number like \"abcde\" and a valid phone number that a user has just\r\n// started inputting, like \"+1\" or \"1\": both these cases would be\r\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\r\n// library can provide a more detailed error message — whether it's\r\n// really \"not a number\", or is it just a start of a valid phone number.\r\nconst VALID_PHONE_NUMBER_START_REG_EXP = new RegExp(\r\n\t'^' +\r\n\t'[' + PLUS_CHARS + ']{0,1}' +\r\n\t'(?:' +\r\n\t\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t\t'[' + VALID_DIGITS + ']' +\r\n\t'){1,2}' +\r\n\t'$'\r\n, 'i')\r\n\r\nexport const VALID_PHONE_NUMBER_WITH_EXTENSION =\r\n\tVALID_PHONE_NUMBER +\r\n\t// Phone number extensions\r\n\t'(?:' + createExtensionPattern() + ')?'\r\n\r\n// The combined regular expression for valid phone numbers:\r\n//\r\nconst VALID_PHONE_NUMBER_PATTERN = new RegExp(\r\n\t// Either a short two-digit-only phone number\r\n\t'^' +\r\n\t\tMIN_LENGTH_PHONE_NUMBER_PATTERN +\r\n\t'$' +\r\n\t'|' +\r\n\t// Or a longer fully parsed phone number (min 3 characters)\r\n\t'^' +\r\n\t\tVALID_PHONE_NUMBER_WITH_EXTENSION +\r\n\t'$'\r\n, 'i')\r\n\r\n// Checks to see if the string of characters could possibly be a phone number at\r\n// all. At the moment, checks to see that the string begins with at least 2\r\n// digits, ignoring any punctuation commonly found in phone numbers. This method\r\n// does not require the number to be normalized in advance - but does assume\r\n// that leading non-number symbols have been removed, such as by the method\r\n// `extract_possible_number`.\r\n//\r\nexport default function isViablePhoneNumber(number) {\r\n\treturn number.length >= MIN_LENGTH_FOR_NSN &&\r\n\t\tVALID_PHONE_NUMBER_PATTERN.test(number)\r\n}\r\n\r\n// This is just a way to differentiate between a really invalid phone\r\n// number like \"abcde\" and a valid phone number that a user has just\r\n// started inputting, like \"+1\" or \"1\": both these cases would be\r\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\r\n// library can provide a more detailed error message — whether it's\r\n// really \"not a number\", or is it just a start of a valid phone number.\r\nexport function isViablePhoneNumberStart(number) {\r\n\treturn VALID_PHONE_NUMBER_START_REG_EXP.test(number)\r\n}","import createExtensionPattern from './createExtensionPattern.js'\r\n\r\n// Regexp of all known extension prefixes used by different regions followed by\r\n// 1 or more valid digits, for use when parsing.\r\nconst EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i')\r\n\r\n// Strips any extension (as in, the part of the number dialled after the call is\r\n// connected, usually indicated with extn, ext, x or similar) from the end of\r\n// the number, and returns it.\r\nexport default function extractExtension(number) {\r\n\tconst start = number.search(EXTN_PATTERN)\r\n\tif (start < 0) {\r\n\t\treturn {}\r\n\t}\r\n\t// If we find a potential extension, and the number preceding this is a viable\r\n\t// number, we assume it is an extension.\r\n\tconst numberWithoutExtension = number.slice(0, start)\r\n\tconst matches = number.match(EXTN_PATTERN)\r\n\tlet i = 1\r\n\twhile (i < matches.length) {\r\n\t\tif (matches[i]) {\r\n\t\t\treturn {\r\n\t\t\t\tnumber: numberWithoutExtension,\r\n\t\t\t\text: matches[i]\r\n\t\t\t}\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}","// These mappings map a character (key) to a specific digit that should\r\n// replace it for normalization purposes. Non-European digits that\r\n// may be used in phone numbers are mapped to a European equivalent.\r\n//\r\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n//\r\nexport const DIGITS = {\r\n\t'0': '0',\r\n\t'1': '1',\r\n\t'2': '2',\r\n\t'3': '3',\r\n\t'4': '4',\r\n\t'5': '5',\r\n\t'6': '6',\r\n\t'7': '7',\r\n\t'8': '8',\r\n\t'9': '9',\r\n\t'\\uFF10': '0', // Fullwidth digit 0\r\n\t'\\uFF11': '1', // Fullwidth digit 1\r\n\t'\\uFF12': '2', // Fullwidth digit 2\r\n\t'\\uFF13': '3', // Fullwidth digit 3\r\n\t'\\uFF14': '4', // Fullwidth digit 4\r\n\t'\\uFF15': '5', // Fullwidth digit 5\r\n\t'\\uFF16': '6', // Fullwidth digit 6\r\n\t'\\uFF17': '7', // Fullwidth digit 7\r\n\t'\\uFF18': '8', // Fullwidth digit 8\r\n\t'\\uFF19': '9', // Fullwidth digit 9\r\n\t'\\u0660': '0', // Arabic-indic digit 0\r\n\t'\\u0661': '1', // Arabic-indic digit 1\r\n\t'\\u0662': '2', // Arabic-indic digit 2\r\n\t'\\u0663': '3', // Arabic-indic digit 3\r\n\t'\\u0664': '4', // Arabic-indic digit 4\r\n\t'\\u0665': '5', // Arabic-indic digit 5\r\n\t'\\u0666': '6', // Arabic-indic digit 6\r\n\t'\\u0667': '7', // Arabic-indic digit 7\r\n\t'\\u0668': '8', // Arabic-indic digit 8\r\n\t'\\u0669': '9', // Arabic-indic digit 9\r\n\t'\\u06F0': '0', // Eastern-Arabic digit 0\r\n\t'\\u06F1': '1', // Eastern-Arabic digit 1\r\n\t'\\u06F2': '2', // Eastern-Arabic digit 2\r\n\t'\\u06F3': '3', // Eastern-Arabic digit 3\r\n\t'\\u06F4': '4', // Eastern-Arabic digit 4\r\n\t'\\u06F5': '5', // Eastern-Arabic digit 5\r\n\t'\\u06F6': '6', // Eastern-Arabic digit 6\r\n\t'\\u06F7': '7', // Eastern-Arabic digit 7\r\n\t'\\u06F8': '8', // Eastern-Arabic digit 8\r\n\t'\\u06F9': '9' // Eastern-Arabic digit 9\r\n}\r\n\r\nexport function parseDigit(character) {\r\n\treturn DIGITS[character]\r\n}\r\n\r\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\r\nexport default function parseDigits(string) {\r\n\tlet result = ''\r\n\t// Using `.split('')` here instead of normal `for ... of`\r\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t// (the ones consisting of four bytes) but digits\r\n\t// (including non-European ones) don't fall into that range\r\n\t// so such \"exotic\" characters would be discarded anyway.\r\n\tfor (const character of string.split('')) {\r\n\t\tconst digit = parseDigit(character)\r\n\t\tif (digit) {\r\n\t\t\tresult += digit\r\n\t\t}\r\n\t}\r\n\treturn result\r\n}","import { parseDigit } from './helpers/parseDigits.js'\r\n\r\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\r\nexport default function parseIncompletePhoneNumber(string) {\r\n\tlet result = ''\r\n\t// Using `.split('')` here instead of normal `for ... of`\r\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t// (the ones consisting of four bytes) but digits\r\n\t// (including non-European ones) don't fall into that range\r\n\t// so such \"exotic\" characters would be discarded anyway.\r\n\tfor (const character of string.split('')) {\r\n\t\tresult += parsePhoneNumberCharacter(character, result) || ''\r\n\t}\r\n\treturn result\r\n}\r\n\r\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {function?} emitEvent - An optional \"emit event\" function.\r\n * @return {string?} The parsed character.\r\n */\r\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent) {\r\n\t// Only allow a leading `+`.\r\n\tif (character === '+') {\r\n\t\t// If this `+` is not the first parsed character\r\n\t\t// then discard it.\r\n\t\tif (prevParsedCharacters) {\r\n\t\t\t// `emitEvent` argument was added to this `export`ed function on Dec 26th, 2023.\r\n\t\t\t// Any 3rd-party code that used to `import` and call this function before that\r\n\t\t\t// won't be passing any `emitEvent` argument.\r\n\t\t\t//\r\n\t\t\t// The addition of the `emitEvent` argument was to fix the slightly-weird behavior\r\n\t\t\t// of parsing an input string when the user inputs something like `\"2+7\"\r\n\t\t\t// https://github.com/catamphetamine/react-phone-number-input/issues/437\r\n\t\t\t//\r\n\t\t\t// If the parser encounters an unexpected `+` in a string being parsed\r\n\t\t\t// then it simply discards that out-of-place `+` and any following characters.\r\n\t\t\t//\r\n\t\t\tif (typeof emitEvent === 'function') {\r\n\t\t\t\temitEvent('end')\r\n\t\t\t}\r\n\t\t\treturn\r\n\t\t}\r\n\t\treturn '+'\r\n\t}\r\n\t// Allow digits.\r\n\treturn parseDigit(character)\r\n}","import mergeArrays from './mergeArrays.js'\r\n\r\nexport default function checkNumberLength(nationalNumber, metadata) {\r\n\treturn checkNumberLengthForType(nationalNumber, undefined, metadata)\r\n}\r\n\r\n// Checks whether a number is possible for the country based on its length.\r\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\r\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\r\n\tconst type_info = metadata.type(type)\r\n\r\n\t// There should always be \"\" set for every type element.\r\n\t// This is declared in the XML schema.\r\n\t// For size efficiency, where a sub-description (e.g. fixed-line)\r\n\t// has the same \"\" as the \"general description\", this is missing,\r\n\t// so we fall back to the \"general description\". Where no numbers of the type\r\n\t// exist at all, there is one possible length (-1) which is guaranteed\r\n\t// not to match the length of any real phone number.\r\n\tlet possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths()\r\n\t// let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\r\n\r\n\t// Metadata before version `1.0.18` didn't contain `possible_lengths`.\r\n\tif (!possible_lengths) {\r\n\t\treturn 'IS_POSSIBLE'\r\n\t}\r\n\r\n\tif (type === 'FIXED_LINE_OR_MOBILE') {\r\n\t\t// No such country in metadata.\r\n\t\t/* istanbul ignore next */\r\n\t\tif (!metadata.type('FIXED_LINE')) {\r\n\t\t\t// The rare case has been encountered where no fixedLine data is available\r\n\t\t\t// (true for some non-geographic entities), so we just check mobile.\r\n\t\t\treturn checkNumberLengthForType(nationalNumber, 'MOBILE', metadata)\r\n\t\t}\r\n\r\n\t\tconst mobile_type = metadata.type('MOBILE')\r\n\t\tif (mobile_type) {\r\n\t\t\t// Merge the mobile data in if there was any. \"Concat\" creates a new\r\n\t\t\t// array, it doesn't edit possible_lengths in place, so we don't need a copy.\r\n\t\t\t// Note that when adding the possible lengths from mobile, we have\r\n\t\t\t// to again check they aren't empty since if they are this indicates\r\n\t\t\t// they are the same as the general desc and should be obtained from there.\r\n\t\t\tpossible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths())\r\n\t\t\t// The current list is sorted; we need to merge in the new list and\r\n\t\t\t// re-sort (duplicates are okay). Sorting isn't so expensive because\r\n\t\t\t// the lists are very small.\r\n\r\n\t\t\t// if (local_lengths) {\r\n\t\t\t// \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\r\n\t\t\t// } else {\r\n\t\t\t// \tlocal_lengths = mobile_type.possibleLengthsLocal()\r\n\t\t\t// }\r\n\t\t}\r\n\t}\r\n\t// If the type doesn't exist then return 'INVALID_LENGTH'.\r\n\telse if (type && !type_info) {\r\n\t\treturn 'INVALID_LENGTH'\r\n\t}\r\n\r\n\tconst actual_length = nationalNumber.length\r\n\r\n\t// In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\r\n\t// // This is safe because there is never an overlap beween the possible lengths\r\n\t// // and the local-only lengths; this is checked at build time.\r\n\t// if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\r\n\t// {\r\n\t// \treturn 'IS_POSSIBLE_LOCAL_ONLY'\r\n\t// }\r\n\r\n\tconst minimum_length = possible_lengths[0]\r\n\r\n\tif (minimum_length === actual_length) {\r\n\t\treturn 'IS_POSSIBLE'\r\n\t}\r\n\r\n\tif (minimum_length > actual_length) {\r\n\t\treturn 'TOO_SHORT'\r\n\t}\r\n\r\n\tif (possible_lengths[possible_lengths.length - 1] < actual_length) {\r\n\t\treturn 'TOO_LONG'\r\n\t}\r\n\r\n\t// We skip the first element since we've already checked it.\r\n\treturn possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH'\r\n}","/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\r\nexport default function mergeArrays(a, b) {\r\n\tconst merged = a.slice()\r\n\r\n\tfor (const element of b) {\r\n\t\tif (a.indexOf(element) < 0) {\r\n\t\t\tmerged.push(element)\r\n\t\t}\r\n\t}\r\n\r\n\treturn merged.sort((a, b) => a - b)\r\n\r\n\t// ES6 version, requires Set polyfill.\r\n\t// let merged = new Set(a)\r\n\t// for (const element of b) {\r\n\t// \tmerged.add(i)\r\n\t// }\r\n\t// return Array.from(merged).sort((a, b) => a - b)\r\n}","import Metadata from './metadata.js'\r\nimport checkNumberLength from './helpers/checkNumberLength.js'\r\n\r\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\r\nexport default function isPossiblePhoneNumber(input, options, metadata) {\r\n\t/* istanbul ignore if */\r\n\tif (options === undefined) {\r\n\t\toptions = {}\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tif (options.v2) {\r\n\t\tif (!input.countryCallingCode) {\r\n\t\t\tthrow new Error('Invalid phone number object passed')\r\n\t\t}\r\n\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t} else {\r\n\t\tif (!input.phone) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\tif (input.country) {\r\n\t\t\tif (!metadata.hasCountry(input.country)) {\r\n\t\t\t\tthrow new Error(`Unknown country: ${input.country}`)\r\n\t\t\t}\r\n\t\t\tmetadata.country(input.country)\r\n\t\t} else {\r\n\t\t\tif (!input.countryCallingCode) {\r\n\t\t\t\tthrow new Error('Invalid phone number object passed')\r\n\t\t\t}\r\n\t\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t\t}\r\n\t}\r\n\r\n\t// Old metadata (< 1.0.18) had no \"possible length\" data.\r\n\tif (metadata.possibleLengths()) {\r\n\t\treturn isPossibleNumber(input.phone || input.nationalNumber, metadata)\r\n\t} else {\r\n\t\t// There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\r\n\t\t// were missing for \"non-geographical\" numbering plans.\r\n\t\t// Just assume the number is possible in such cases:\r\n\t\t// it's unlikely that anyone generated their custom metadata\r\n\t\t// in that short period of time (one day).\r\n\t\t// This code can be removed in some future major version update.\r\n\t\tif (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\r\n\t\t\t// \"Non-geographic entities\" did't have `possibleLengths`\r\n\t\t\t// due to a bug in metadata generation process.\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\tthrow new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function isPossibleNumber(nationalNumber, metadata) { //, isInternational) {\r\n\tswitch (checkNumberLength(nationalNumber, metadata)) {\r\n\t\tcase 'IS_POSSIBLE':\r\n\t\t\treturn true\r\n\t\t// This library ignores \"local-only\" phone numbers (for simplicity).\r\n\t\t// See the readme for more info on what are \"local-only\" phone numbers.\r\n\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\r\n\t\t// \treturn !isInternational\r\n\t\tdefault:\r\n\t\t\treturn false\r\n\t}\r\n}","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\r\nexport default function matchesEntirely(text, regular_expression) {\r\n\t// If assigning the `''` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\ttext = text || ''\r\n\treturn new RegExp('^(?:' + regular_expression + ')$').test(text)\r\n}","import Metadata from '../metadata.js'\r\nimport matchesEntirely from './matchesEntirely.js'\r\n\r\nconst NON_FIXED_LINE_PHONE_TYPES = [\r\n\t'MOBILE',\r\n\t'PREMIUM_RATE',\r\n\t'TOLL_FREE',\r\n\t'SHARED_COST',\r\n\t'VOIP',\r\n\t'PERSONAL_NUMBER',\r\n\t'PAGER',\r\n\t'UAN',\r\n\t'VOICEMAIL'\r\n]\r\n\r\n// Finds out national phone number type (fixed line, mobile, etc)\r\nexport default function getNumberType(input, options, metadata)\r\n{\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\t// When `parse()` returns an empty object — `{}` —\r\n\t// that means that the phone number is malformed,\r\n\t// so it can't possibly be valid.\r\n\tif (!input.country && !input.countryCallingCode) {\r\n\t\treturn\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tmetadata.selectNumberingPlan(input.country, input.countryCallingCode)\r\n\r\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\r\n\t// The following is copy-pasted from the original function:\r\n\t// https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\r\n\r\n\t// Is this national number even valid for this country\r\n\tif (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\r\n\t\treturn\r\n\t}\r\n\r\n\t// Is it fixed line number\r\n\tif (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\r\n\t\t// Because duplicate regular expressions are removed\r\n\t\t// to reduce metadata size, if \"mobile\" pattern is \"\"\r\n\t\t// then it means it was removed due to being a duplicate of the fixed-line pattern.\r\n\t\t//\r\n\t\tif (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\t// `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\r\n\t\t// For example, for \"US\" country.\r\n\t\t// Old metadata (< `1.0.18`) had a specific \"types\" data structure\r\n\t\t// that happened to be `undefined` for `MOBILE` in that case.\r\n\t\t// Newer metadata (>= `1.0.18`) has another data structure that is\r\n\t\t// not `undefined` for `MOBILE` in that case (it's just an empty array).\r\n\t\t// So this `if` is just for backwards compatibility with old metadata.\r\n\t\tif (!metadata.type('MOBILE')) {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\t// Check if the number happens to qualify as both fixed line and mobile.\r\n\t\t// (no such country in the minimal metadata set)\r\n\t\t/* istanbul ignore if */\r\n\t\tif (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\treturn 'FIXED_LINE'\r\n\t}\r\n\r\n\tfor (const type of NON_FIXED_LINE_PHONE_TYPES) {\r\n\t\tif (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\r\n\t\t\treturn type\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\r\n\ttype = metadata.type(type)\r\n\tif (!type || !type.pattern()) {\r\n\t\treturn false\r\n\t}\r\n\t// Check if any possible number lengths are present;\r\n\t// if so, we use them to avoid checking\r\n\t// the validation pattern if they don't match.\r\n\t// If they are absent, this means they match\r\n\t// the general description, which we have\r\n\t// already checked before a specific number type.\r\n\tif (type.possibleLengths() &&\r\n\t\ttype.possibleLengths().indexOf(nationalNumber.length) < 0) {\r\n\t\treturn false\r\n\t}\r\n\treturn matchesEntirely(nationalNumber, type.pattern())\r\n}","import Metadata from '../metadata.js'\r\n\r\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\r\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\r\n\tconst _metadata = new Metadata(metadata)\r\n\tlet possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode)\r\n\tif (!possibleCountries) {\r\n\t\treturn []\r\n\t}\r\n\treturn possibleCountries.filter((country) => {\r\n\t\treturn couldNationalNumberBelongToCountry(nationalNumber, country, metadata)\r\n\t})\r\n}\r\n\r\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\r\n\tconst _metadata = new Metadata(metadata)\r\n\t_metadata.selectNumberingPlan(country)\r\n\tif (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\r\n\t\treturn true\r\n\t}\r\n\treturn false\r\n}","import { VALID_PUNCTUATION } from '../constants.js'\r\n\r\n// Removes brackets and replaces dashes with spaces.\r\n//\r\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\r\n//\r\n// For some reason Google's metadata contains ``s with brackets and dashes.\r\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\r\n//\r\n// For example, Google's `` for USA is `+1 213-373-4253`.\r\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\r\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\r\n//\r\n// \"The country calling code for all countries participating in the NANP is 1.\r\n// In international format, an NANP number should be listed as +1 301 555 01 00,\r\n// where 301 is an area code (Maryland).\"\r\n//\r\n// I personally prefer the international format without any punctuation.\r\n// For example, brackets are remnants of the old age, meaning that the\r\n// phone number part in brackets (so called \"area code\") can be omitted\r\n// if dialing within the same \"area\".\r\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\r\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\r\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\r\n// He has a couple of seconds to memorize that number until it passes by.\r\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\r\n// but with hyphens instead of spaces the grouping is more explicit.\r\n// I personally think that hyphens introduce visual clutter,\r\n// so I prefer replacing them with spaces in international numbers.\r\n// In the modern age all output is done on displays where spaces are clearly distinguishable\r\n// so hyphens can be safely replaced with spaces without losing any legibility.\r\n//\r\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\r\n\treturn formattedNumber.replace(new RegExp(`[${VALID_PUNCTUATION}]+`, 'g'), ' ').trim()\r\n}","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'\r\n\r\n// This was originally set to $1 but there are some countries for which the\r\n// first group is not used in the national pattern (e.g. Argentina) so the $1\r\n// group does not match correctly. Therefore, we use `\\d`, so that the first\r\n// group actually used in the pattern will be matched.\r\nexport const FIRST_GROUP_PATTERN = /(\\$\\d)/\r\n\r\nexport default function formatNationalNumberUsingFormat(\r\n\tnumber,\r\n\tformat,\r\n\t{\r\n\t\tuseInternationalFormat,\r\n\t\twithNationalPrefix,\r\n\t\tcarrierCode,\r\n\t\tmetadata\r\n\t}\r\n) {\r\n\tconst formattedNumber = number.replace(\r\n\t\tnew RegExp(format.pattern()),\r\n\t\tuseInternationalFormat\r\n\t\t\t? format.internationalFormat()\r\n\t\t\t: (\r\n\t\t\t\t// This library doesn't use `domestic_carrier_code_formatting_rule`,\r\n\t\t\t\t// because that one is only used when formatting phone numbers\r\n\t\t\t\t// for dialing from a mobile phone, and this is not a dialing library.\r\n\t\t\t\t// carrierCode && format.domesticCarrierCodeFormattingRule()\r\n\t\t\t\t// \t// First, replace the $CC in the formatting rule with the desired carrier code.\r\n\t\t\t\t// \t// Then, replace the $FG in the formatting rule with the first group\r\n\t\t\t\t// \t// and the carrier code combined in the appropriate way.\r\n\t\t\t\t// \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\r\n\t\t\t\t// \t: (\r\n\t\t\t\t// \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\r\n\t\t\t\t// \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\r\n\t\t\t\t// \t\t\t: format.format()\r\n\t\t\t\t// \t)\r\n\t\t\t\twithNationalPrefix && format.nationalPrefixFormattingRule()\r\n\t\t\t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\r\n\t\t\t\t\t: format.format()\r\n\t\t\t)\r\n\t)\r\n\tif (useInternationalFormat) {\r\n\t\treturn applyInternationalSeparatorStyle(formattedNumber)\r\n\t}\r\n\treturn formattedNumber\r\n}","import Metadata from '../metadata.js'\r\n\r\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\r\nconst SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/\r\n\r\n// For regions that have multiple IDD prefixes\r\n// a preferred IDD prefix is returned.\r\nexport default function getIddPrefix(country, callingCode, metadata) {\r\n\tconst countryMetadata = new Metadata(metadata)\r\n\tcountryMetadata.selectNumberingPlan(country, callingCode)\r\n\tif (countryMetadata.defaultIDDPrefix()) {\r\n\t\treturn countryMetadata.defaultIDDPrefix()\r\n\t}\r\n\tif (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\r\n\t\treturn countryMetadata.IDDPrefix()\r\n\t}\r\n}\r\n","// This is a port of Google Android `libphonenumber`'s\r\n// `phonenumberutil.js` of December 31th, 2018.\r\n//\r\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\r\n\r\nimport matchesEntirely from './helpers/matchesEntirely.js'\r\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js'\r\nimport Metadata, { getCountryCallingCode } from './metadata.js'\r\nimport getIddPrefix from './helpers/getIddPrefix.js'\r\nimport { formatRFC3966 } from './helpers/RFC3966.js'\r\n\r\nconst DEFAULT_OPTIONS = {\r\n\tformatExtension: (formattedNumber, extension, metadata) => `${formattedNumber}${metadata.ext()}${extension}`\r\n}\r\n\r\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\r\nexport default function formatNumber(input, format, options, metadata) {\r\n\t// Apply default options.\r\n\tif (options) {\r\n\t\toptions = { ...DEFAULT_OPTIONS, ...options }\r\n\t} else {\r\n\t\toptions = DEFAULT_OPTIONS\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tif (input.country && input.country !== '001') {\r\n\t\t// Validate `input.country`.\r\n\t\tif (!metadata.hasCountry(input.country)) {\r\n\t\t\tthrow new Error(`Unknown country: ${input.country}`)\r\n\t\t}\r\n\t\tmetadata.country(input.country)\r\n\t}\r\n\telse if (input.countryCallingCode) {\r\n\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t}\r\n\telse return input.phone || ''\r\n\r\n\tconst countryCallingCode = metadata.countryCallingCode()\r\n\r\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\r\n\t// This variable should have been declared inside `case`s\r\n\t// but Babel has a bug and it says \"duplicate variable declaration\".\r\n\tlet number\r\n\r\n\tswitch (format) {\r\n\t\tcase 'NATIONAL':\r\n\t\t\t// Legacy argument support.\r\n\t\t\t// (`{ country: ..., phone: '' }`)\r\n\t\t\tif (!nationalNumber) {\r\n\t\t\t\treturn ''\r\n\t\t\t}\r\n\t\t\tnumber = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options)\r\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tcase 'INTERNATIONAL':\r\n\t\t\t// Legacy argument support.\r\n\t\t\t// (`{ country: ..., phone: '' }`)\r\n\t\t\tif (!nationalNumber) {\r\n\t\t\t\treturn `+${countryCallingCode}`\r\n\t\t\t}\r\n\t\t\tnumber = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options)\r\n\t\t\tnumber = `+${countryCallingCode} ${number}`\r\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tcase 'E.164':\r\n\t\t\t// `E.164` doesn't define \"phone number extensions\".\r\n\t\t\treturn `+${countryCallingCode}${nationalNumber}`\r\n\r\n\t\tcase 'RFC3966':\r\n\t\t\treturn formatRFC3966({\r\n\t\t\t\tnumber: `+${countryCallingCode}${nationalNumber}`,\r\n\t\t\t\text: input.ext\r\n\t\t\t})\r\n\r\n\t\t// For reference, here's Google's IDD formatter:\r\n\t\t// https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\r\n\t\t// Not saying that this IDD formatter replicates it 1:1, but it seems to work.\r\n\t\t// Who would even need to format phone numbers in IDD format anyway?\r\n\t\tcase 'IDD':\r\n\t\t\tif (!options.fromCountry) {\r\n\t\t\t\treturn\r\n\t\t\t\t// throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\r\n\t\t\t}\r\n\t\t\tconst formattedNumber = formatIDD(\r\n\t\t\t\tnationalNumber,\r\n\t\t\t\tinput.carrierCode,\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\toptions.fromCountry,\r\n\t\t\t\tmetadata\r\n\t\t\t)\r\n\t\t\treturn addExtension(formattedNumber, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tdefault:\r\n\t\t\tthrow new Error(`Unknown \"format\" argument passed to \"formatNumber()\": \"${format}\"`)\r\n\t}\r\n}\r\n\r\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\r\n\tconst format = chooseFormatForNumber(metadata.formats(), number)\r\n\tif (!format) {\r\n\t\treturn number\r\n\t}\r\n\treturn formatNationalNumberUsingFormat(\r\n\t\tnumber,\r\n\t\tformat,\r\n\t\t{\r\n\t\t\tuseInternationalFormat: formatAs === 'INTERNATIONAL',\r\n\t\t\twithNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && (options && options.nationalPrefix === false) ? false : true,\r\n\t\t\tcarrierCode,\r\n\t\t\tmetadata\r\n\t\t}\r\n\t)\r\n}\r\n\r\nexport function chooseFormatForNumber(availableFormats, nationalNnumber) {\r\n\tfor (const format of availableFormats) {\r\n\t\t// Validate leading digits.\r\n\t\t// The test case for \"else path\" could be found by searching for\r\n\t\t// \"format.leadingDigitsPatterns().length === 0\".\r\n\t\tif (format.leadingDigitsPatterns().length > 0) {\r\n\t\t\t// The last leading_digits_pattern is used here, as it is the most detailed\r\n\t\t\tconst lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]\r\n\t\t\t// If leading digits don't match then move on to the next phone number format\r\n\t\t\tif (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Check that the national number matches the phone number format regular expression\r\n\t\tif (matchesEntirely(nationalNnumber, format.pattern())) {\r\n\t\t\treturn format\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\r\n\treturn ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber\r\n}\r\n\r\nfunction formatIDD(\r\n\tnationalNumber,\r\n\tcarrierCode,\r\n\tcountryCallingCode,\r\n\tfromCountry,\r\n\tmetadata\r\n) {\r\n\tconst fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata)\r\n\t// When calling within the same country calling code.\r\n\tif (fromCountryCallingCode === countryCallingCode) {\r\n\t\tconst formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata)\r\n\t\t// For NANPA regions, return the national format for these regions\r\n\t\t// but prefix it with the country calling code.\r\n\t\tif (countryCallingCode === '1') {\r\n\t\t\treturn countryCallingCode + ' ' + formattedNumber\r\n\t\t}\r\n\t\t// If regions share a country calling code, the country calling code need\r\n\t\t// not be dialled. This also applies when dialling within a region, so this\r\n\t\t// if clause covers both these cases. Technically this is the case for\r\n\t\t// dialling from La Reunion to other overseas departments of France (French\r\n\t\t// Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\r\n\t\t// this edge case for now and for those cases return the version including\r\n\t\t// country calling code. Details here:\r\n\t\t// http://www.petitfute.com/voyage/225-info-pratiques-reunion\r\n\t\t//\r\n\t\treturn formattedNumber\r\n\t}\r\n\tconst iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata)\r\n\tif (iddPrefix) {\r\n\t\treturn `${iddPrefix} ${countryCallingCode} ${formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata)}`\r\n\t}\r\n}","import isViablePhoneNumber from './isViablePhoneNumber.js'\r\n\r\n// https://www.ietf.org/rfc/rfc3966.txt\r\n\r\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\r\nexport function parseRFC3966(text) {\r\n\tlet number\r\n\tlet ext\r\n\r\n\t// Replace \"tel:\" with \"tel=\" for parsing convenience.\r\n\ttext = text.replace(/^tel:/, 'tel=')\r\n\r\n\tfor (const part of text.split(';')) {\r\n\t\tconst [name, value] = part.split('=')\r\n\t\tswitch (name) {\r\n\t\t\tcase 'tel':\r\n\t\t\t\tnumber = value\r\n\t\t\t\tbreak\r\n\t\t\tcase 'ext':\r\n\t\t\t\text = value\r\n\t\t\t\tbreak\r\n\t\t\tcase 'phone-context':\r\n\t\t\t\t// Only \"country contexts\" are supported.\r\n\t\t\t\t// \"Domain contexts\" are ignored.\r\n\t\t\t\tif (value[0] === '+') {\r\n\t\t\t\t\tnumber = value + number\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n\t\t}\r\n\t}\r\n\r\n\t// If the phone number is not viable, then abort.\r\n\tif (!isViablePhoneNumber(number)) {\r\n\t\treturn {}\r\n\t}\r\n\r\n\tconst result = { number }\r\n\tif (ext) {\r\n\t\tresult.ext = ext\r\n\t}\r\n\treturn result\r\n}\r\n\r\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\r\nexport function formatRFC3966({ number, ext }) {\r\n\tif (!number) {\r\n\t\treturn ''\r\n\t}\r\n\tif (number[0] !== '+') {\r\n\t\tthrow new Error(`\"formatRFC3966()\" expects \"number\" to be in E.164 format.`)\r\n\t}\r\n\treturn `tel:${number}${ext ? ';ext=' + ext : ''}`\r\n}","import Metadata from './metadata.js'\r\nimport isPossibleNumber from './isPossible.js'\r\nimport isValidNumber from './isValid.js'\r\n// import checkNumberLength from './helpers/checkNumberLength.js'\r\nimport getNumberType from './helpers/getNumberType.js'\r\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js'\r\nimport formatNumber from './format.js'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default class PhoneNumber {\r\n\t/**\r\n\t * @param {string} countryOrCountryCallingCode\r\n\t * @param {string} nationalNumber\r\n\t * @param {object} metadata — Metadata JSON\r\n\t * @return {PhoneNumber}\r\n\t */\r\n\tconstructor(countryOrCountryCallingCode, nationalNumber, metadata) {\r\n\t\tif (!countryOrCountryCallingCode) {\r\n\t\t\tthrow new TypeError('`country` or `countryCallingCode` not passed')\r\n\t\t}\r\n\t\tif (!nationalNumber) {\r\n\t\t\tthrow new TypeError('`nationalNumber` not passed')\r\n\t\t}\r\n\t\tif (!metadata) {\r\n\t\t\tthrow new TypeError('`metadata` not passed')\r\n\t\t}\r\n\t\tconst { country, countryCallingCode } = getCountryAndCountryCallingCode(\r\n\t\t\tcountryOrCountryCallingCode,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\tthis.country = country\r\n\t\tthis.countryCallingCode = countryCallingCode\r\n\t\tthis.nationalNumber = nationalNumber\r\n\t\tthis.number = '+' + this.countryCallingCode + this.nationalNumber\r\n\t\t// Exclude `metadata` property output from `PhoneNumber.toString()`\r\n\t\t// so that it doesn't clutter the console output of Node.js.\r\n\t\t// Previously, when Node.js did `console.log(new PhoneNumber(...))`,\r\n\t\t// it would output the whole internal structure of the `metadata` object.\r\n\t\tthis.getMetadata = () => metadata\r\n\t}\r\n\r\n\tsetExt(ext) {\r\n\t\tthis.ext = ext\r\n\t}\r\n\r\n\tgetPossibleCountries() {\r\n\t\tif (this.country) {\r\n\t\t\treturn [this.country]\r\n\t\t}\r\n\t\treturn getPossibleCountriesForNumber(\r\n\t\t\tthis.countryCallingCode,\r\n\t\t\tthis.nationalNumber,\r\n\t\t\tthis.getMetadata()\r\n\t\t)\r\n\t}\r\n\r\n\tisPossible() {\r\n\t\treturn isPossibleNumber(this, { v2: true }, this.getMetadata())\r\n\t}\r\n\r\n\tisValid() {\r\n\t\treturn isValidNumber(this, { v2: true }, this.getMetadata())\r\n\t}\r\n\r\n\tisNonGeographic() {\r\n\t\tconst metadata = new Metadata(this.getMetadata())\r\n\t\treturn metadata.isNonGeographicCallingCode(this.countryCallingCode)\r\n\t}\r\n\r\n\tisEqual(phoneNumber) {\r\n\t\treturn this.number === phoneNumber.number && this.ext === phoneNumber.ext\r\n\t}\r\n\r\n\t// This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\r\n\t// but later it was found out that it doesn't include the possible `TOO_SHORT` result\r\n\t// returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\r\n\t// so eventually I simply commented out this method from the `PhoneNumber` class\r\n\t// and just left the `validatePhoneNumberLength()` function, even though that one would require\r\n\t// and additional step to also validate the actual country / calling code of the phone number.\r\n\t// validateLength() {\r\n\t// \tconst metadata = new Metadata(this.getMetadata())\r\n\t// \tmetadata.selectNumberingPlan(this.countryCallingCode)\r\n\t// \tconst result = checkNumberLength(this.nationalNumber, metadata)\r\n\t// \tif (result !== 'IS_POSSIBLE') {\r\n\t// \t\treturn result\r\n\t// \t}\r\n\t// }\r\n\r\n\tgetType() {\r\n\t\treturn getNumberType(this, { v2: true }, this.getMetadata())\r\n\t}\r\n\r\n\tformat(format, options) {\r\n\t\treturn formatNumber(\r\n\t\t\tthis,\r\n\t\t\tformat,\r\n\t\t\toptions ? { ...options, v2: true } : { v2: true },\r\n\t\t\tthis.getMetadata()\r\n\t\t)\r\n\t}\r\n\r\n\tformatNational(options) {\r\n\t\treturn this.format('NATIONAL', options)\r\n\t}\r\n\r\n\tformatInternational(options) {\r\n\t\treturn this.format('INTERNATIONAL', options)\r\n\t}\r\n\r\n\tgetURI(options) {\r\n\t\treturn this.format('RFC3966', options)\r\n\t}\r\n}\r\n\r\nconst isCountryCode = (value) => /^[A-Z]{2}$/.test(value)\r\n\r\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\r\n\tlet country\r\n\tlet countryCallingCode\r\n\r\n\tconst metadata = new Metadata(metadataJson)\r\n\t// If country code is passed then derive `countryCallingCode` from it.\r\n\t// Also store the country code as `.country`.\r\n\tif (isCountryCode(countryOrCountryCallingCode)) {\r\n\t\tcountry = countryOrCountryCallingCode\r\n\t\tmetadata.selectNumberingPlan(country)\r\n\t\tcountryCallingCode = metadata.countryCallingCode()\r\n\t} else {\r\n\t\tcountryCallingCode = countryOrCountryCallingCode\r\n\t\t/* istanbul ignore if */\r\n\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\tif (metadata.isNonGeographicCallingCode(countryCallingCode)) {\r\n\t\t\t\tcountry = '001'\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode\r\n\t}\r\n}","import Metadata from './metadata.js'\r\nimport matchesEntirely from './helpers/matchesEntirely.js'\r\nimport getNumberType from './helpers/getNumberType.js'\r\n\r\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\r\nexport default function isValidNumber(input, options, metadata)\r\n{\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\r\n\r\n\tmetadata.selectNumberingPlan(input.country, input.countryCallingCode)\r\n\r\n\t// By default, countries only have type regexps when it's required for\r\n\t// distinguishing different countries having the same `countryCallingCode`.\r\n\tif (metadata.hasTypes()) {\r\n\t\treturn getNumberType(input, options, metadata.metadata) !== undefined\r\n\t}\r\n\r\n\t// If there are no type regexps for this country in metadata then use\r\n\t// `nationalNumberPattern` as a \"better than nothing\" replacement.\r\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\treturn matchesEntirely(nationalNumber, metadata.nationalNumberPattern())\r\n}","import Metadata from '../metadata.js'\r\nimport { VALID_DIGITS } from '../constants.js'\r\n\r\nconst CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])')\r\n\r\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\r\n\tif (!country) {\r\n\t\treturn\r\n\t}\r\n\t// Check if the number is IDD-prefixed.\r\n\tconst countryMetadata = new Metadata(metadata)\r\n\tcountryMetadata.selectNumberingPlan(country, callingCode)\r\n\tconst IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix())\r\n\tif (number.search(IDDPrefixPattern) !== 0) {\r\n\t\treturn\r\n\t}\r\n\t// Strip IDD prefix.\r\n\tnumber = number.slice(number.match(IDDPrefixPattern)[0].length)\r\n\t// If there're any digits after an IDD prefix,\r\n\t// then those digits are a country calling code.\r\n\t// Since no country code starts with a `0`,\r\n\t// the code below validates that the next digit (if present) is not `0`.\r\n\tconst matchedGroups = number.match(CAPTURING_DIGIT_PATTERN)\r\n\tif (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\r\n\t\tif (matchedGroups[1] === '0') {\r\n\t\t\treturn\r\n\t\t}\r\n\t}\r\n\treturn number\r\n}","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\r\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\r\n\tif (number && metadata.numberingPlan.nationalPrefixForParsing()) {\r\n\t\t// See METADATA.md for the description of\r\n\t\t// `national_prefix_for_parsing` and `national_prefix_transform_rule`.\r\n\t\t// Attempt to parse the first digits as a national prefix.\r\n\t\tconst prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')')\r\n\t\tconst prefixMatch = prefixPattern.exec(number)\r\n\t\tif (prefixMatch) {\r\n\t\t\tlet nationalNumber\r\n\t\t\tlet carrierCode\r\n\t\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\r\n\t\t\t// If a `national_prefix_for_parsing` has any \"capturing groups\"\r\n\t\t\t// then it means that the national (significant) number is equal to\r\n\t\t\t// those \"capturing groups\" transformed via `national_prefix_transform_rule`,\r\n\t\t\t// and nothing could be said about the actual national prefix:\r\n\t\t\t// what is it and was it even there.\r\n\t\t\t// If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\r\n\t\t\t// then everything it matches is a national prefix.\r\n\t\t\t// To determine whether `national_prefix_for_parsing` matched any\r\n\t\t\t// \"capturing groups\", the value of the result of calling `.exec()`\r\n\t\t\t// is looked at, and if it has non-undefined values where there're\r\n\t\t\t// \"capturing groups\" in the regular expression, then it means\r\n\t\t\t// that \"capturing groups\" have been matched.\r\n\t\t\t// It's not possible to tell whether there'll be any \"capturing gropus\"\r\n\t\t\t// before the matching process, because a `national_prefix_for_parsing`\r\n\t\t\t// could exhibit both behaviors.\r\n\t\t\tconst capturedGroupsCount = prefixMatch.length - 1\r\n\t\t\tconst hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount]\r\n\t\t\tif (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\r\n\t\t\t\tnationalNumber = number.replace(\r\n\t\t\t\t\tprefixPattern,\r\n\t\t\t\t\tmetadata.nationalPrefixTransformRule()\r\n\t\t\t\t)\r\n\t\t\t\t// If there's more than one captured group,\r\n\t\t\t\t// then carrier code is the second one.\r\n\t\t\t\tif (capturedGroupsCount > 1) {\r\n\t\t\t\t\tcarrierCode = prefixMatch[1]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If there're no \"capturing groups\",\r\n\t\t\t// or if there're \"capturing groups\" but no\r\n\t\t\t// `national_prefix_transform_rule`,\r\n\t\t\t// then just strip the national prefix from the number,\r\n\t\t\t// and possibly a carrier code.\r\n\t\t\t// Seems like there could be more.\r\n\t\t\telse {\r\n\t\t\t\t// `prefixBeforeNationalNumber` is the whole substring matched by\r\n\t\t\t\t// the `national_prefix_for_parsing` regular expression.\r\n\t\t\t\t// There seem to be no guarantees that it's just a national prefix.\r\n\t\t\t\t// For example, if there's a carrier code, it's gonna be a\r\n\t\t\t\t// part of `prefixBeforeNationalNumber` too.\r\n\t\t\t\tconst prefixBeforeNationalNumber = prefixMatch[0]\r\n\t\t\t\tnationalNumber = number.slice(prefixBeforeNationalNumber.length)\r\n\t\t\t\t// If there's at least one captured group,\r\n\t\t\t\t// then carrier code is the first one.\r\n\t\t\t\tif (hasCapturedGroups) {\r\n\t\t\t\t\tcarrierCode = prefixMatch[1]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Tries to guess whether a national prefix was present in the input.\r\n\t\t\t// This is not something copy-pasted from Google's library:\r\n\t\t\t// they don't seem to have an equivalent for that.\r\n\t\t\t// So this isn't an \"officially approved\" way of doing something like that.\r\n\t\t\t// But since there seems no other existing method, this library uses it.\r\n\t\t\tlet nationalPrefix\r\n\t\t\tif (hasCapturedGroups) {\r\n\t\t\t\tconst possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1])\r\n\t\t\t\tconst possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup)\r\n\t\t\t\t// Example: an Argentinian (AR) phone number `0111523456789`.\r\n\t\t\t\t// `prefixMatch[0]` is `01115`, and `$1` is `11`,\r\n\t\t\t\t// and the rest of the phone number is `23456789`.\r\n\t\t\t\t// The national number is transformed via `9$1` to `91123456789`.\r\n\t\t\t\t// National prefix `0` is detected being present at the start.\r\n\t\t\t\t// if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\r\n\t\t\t\tif (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\r\n\t\t\t\t\tnationalPrefix = metadata.numberingPlan.nationalPrefix()\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tnationalPrefix = prefixMatch[0]\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tnationalNumber,\r\n\t\t\t\tnationalPrefix,\r\n\t\t\t\tcarrierCode\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n return {\r\n \tnationalNumber: number\r\n }\r\n}","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js'\r\nimport matchesEntirely from './matchesEntirely.js'\r\nimport checkNumberLength from './checkNumberLength.js'\r\n\r\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\r\nexport default function extractNationalNumber(number, metadata) {\r\n\t// Parsing national prefixes and carrier codes\r\n\t// is only required for local phone numbers\r\n\t// but some people don't understand that\r\n\t// and sometimes write international phone numbers\r\n\t// with national prefixes (or maybe even carrier codes).\r\n\t// http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\r\n\t// Google's original library forgives such mistakes\r\n\t// and so does this library, because it has been requested:\r\n\t// https://github.com/catamphetamine/libphonenumber-js/issues/127\r\n\tconst {\r\n\t\tcarrierCode,\r\n\t\tnationalNumber\r\n\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\tnumber,\r\n\t\tmetadata\r\n\t)\r\n\r\n\tif (nationalNumber !== number) {\r\n\t\tif (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\r\n\t\t\t// Don't strip the national prefix.\r\n\t\t\treturn { nationalNumber: number }\r\n\t\t}\r\n\t\t// Check the national (significant) number length after extracting national prefix and carrier code.\r\n\t\t// Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\r\n\t\tif (metadata.possibleLengths()) {\r\n\t\t\t// The number remaining after stripping the national prefix and carrier code\r\n\t\t\t// should be long enough to have a possible length for the country.\r\n\t\t\t// Otherwise, don't strip the national prefix and carrier code,\r\n\t\t\t// since the original number could be a valid number.\r\n\t\t\t// This check has been copy-pasted \"as is\" from Google's original library:\r\n\t\t\t// https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\r\n\t\t\t// It doesn't check for the \"possibility\" of the original `number`.\r\n\t\t\t// I guess it's fine not checking that one. It works as is anyway.\r\n\t\t\tif (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\r\n\t\t\t\t// Don't strip the national prefix.\r\n\t\t\t\treturn { nationalNumber: number }\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn { nationalNumber, carrierCode }\r\n}\r\n\r\n// In some countries, the same digit could be a national prefix\r\n// or a leading digit of a valid phone number.\r\n// For example, in Russia, national prefix is `8`,\r\n// and also `800 555 35 35` is a valid number\r\n// in which `8` is not a national prefix, but the first digit\r\n// of a national (significant) number.\r\n// Same's with Belarus:\r\n// `82004910060` is a valid national (significant) number,\r\n// but `2004910060` is not.\r\n// To support such cases (to prevent the code from always stripping\r\n// national prefix), a condition is imposed: a national prefix\r\n// is not extracted when the original number is \"viable\" and the\r\n// resultant number is not, a \"viable\" national number being the one\r\n// that matches `national_number_pattern`.\r\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\r\n\t// The equivalent in Google's code is:\r\n\t// https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\r\n\tif (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) &&\r\n\t\t!matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\r\n\t\treturn false\r\n\t}\r\n\t// This \"is possible\" national number (length) check has been commented out\r\n\t// because it's superceded by the (effectively) same check done in the\r\n\t// `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\r\n\t// In other words, why run the same check twice if it could only be run once.\r\n\t// // Check the national (significant) number length after extracting national prefix and carrier code.\r\n\t// // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\r\n\t// // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\r\n\t// if (metadata.possibleLengths()) {\r\n\t// \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\r\n\t// \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\r\n\t// \t\treturn false\r\n\t// \t}\r\n\t// }\r\n\treturn true\r\n}\r\n\r\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\r\n\tswitch (checkNumberLength(nationalNumber, metadata)) {\r\n\t\tcase 'TOO_SHORT':\r\n\t\tcase 'INVALID_LENGTH':\r\n\t\t// This library ignores \"local-only\" phone numbers (for simplicity).\r\n\t\t// See the readme for more info on what are \"local-only\" phone numbers.\r\n\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\r\n\t\t\treturn false\r\n\t\tdefault:\r\n\t\t\treturn true\r\n\t}\r\n}","import Metadata from '../metadata.js'\r\nimport matchesEntirely from './matchesEntirely.js'\r\nimport extractNationalNumber from './extractNationalNumber.js'\r\nimport checkNumberLength from './checkNumberLength.js'\r\nimport getCountryCallingCode from '../getCountryCallingCode.js'\r\n\r\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\r\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\tnumber,\r\n\tcountry,\r\n\tcallingCode,\r\n\tmetadata\r\n) {\r\n\tconst countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode\r\n\tif (number.indexOf(countryCallingCode) === 0) {\r\n\t\tmetadata = new Metadata(metadata)\r\n\t\tmetadata.selectNumberingPlan(country, callingCode)\r\n\t\tconst possibleShorterNumber = number.slice(countryCallingCode.length)\r\n\t\tconst {\r\n\t\t\tnationalNumber: possibleShorterNationalNumber,\r\n\t\t} = extractNationalNumber(\r\n\t\t\tpossibleShorterNumber,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\tconst {\r\n\t\t\tnationalNumber\r\n\t\t} = extractNationalNumber(\r\n\t\t\tnumber,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\t// If the number was not valid before but is valid now,\r\n\t\t// or if it was too long before, we consider the number\r\n\t\t// with the country calling code stripped to be a better result\r\n\t\t// and keep that instead.\r\n\t\t// For example, in Germany (+49), `49` is a valid area code,\r\n\t\t// so if a number starts with `49`, it could be both a valid\r\n\t\t// national German number or an international number without\r\n\t\t// a leading `+`.\r\n\t\tif (\r\n\t\t\t(\r\n\t\t\t\t!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())\r\n\t\t\t\t&&\r\n\t\t\t\tmatchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern())\r\n\t\t\t)\r\n\t\t\t||\r\n\t\t\tcheckNumberLength(nationalNumber, metadata) === 'TOO_LONG'\r\n\t\t) {\r\n\t\t\treturn {\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\tnumber: possibleShorterNumber\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn { number }\r\n}","import stripIddPrefix from './stripIddPrefix.js'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js'\r\nimport Metadata from '../metadata.js'\r\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js'\r\n\r\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\r\nexport default function extractCountryCallingCode(\r\n\tnumber,\r\n\tcountry,\r\n\tcallingCode,\r\n\tmetadata\r\n) {\r\n\tif (!number) {\r\n\t\treturn {}\r\n\t}\r\n\r\n\tlet isNumberWithIddPrefix\r\n\r\n\t// If this is not an international phone number,\r\n\t// then either extract an \"IDD\" prefix, or extract a\r\n\t// country calling code from a number by autocorrecting it\r\n\t// by prepending a leading `+` in cases when it starts\r\n\t// with the country calling code.\r\n\t// https://wikitravel.org/en/International_dialling_prefix\r\n\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\tif (number[0] !== '+') {\r\n\t\t// Convert an \"out-of-country\" dialing phone number\r\n\t\t// to a proper international phone number.\r\n\t\tconst numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata)\r\n\t\t// If an IDD prefix was stripped then\r\n\t\t// convert the number to international one\r\n\t\t// for subsequent parsing.\r\n\t\tif (numberWithoutIDD && numberWithoutIDD !== number) {\r\n\t\t\tisNumberWithIddPrefix = true\r\n\t\t\tnumber = '+' + numberWithoutIDD\r\n\t\t} else {\r\n\t\t\t// Check to see if the number starts with the country calling code\r\n\t\t\t// for the default country. If so, we remove the country calling code,\r\n\t\t\t// and do some checks on the validity of the number before and after.\r\n\t\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\t\t\tif (country || callingCode) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tcountryCallingCode,\r\n\t\t\t\t\tnumber: shorterNumber\r\n\t\t\t\t} = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\t\t\t\t\tnumber,\r\n\t\t\t\t\tcountry,\r\n\t\t\t\t\tcallingCode,\r\n\t\t\t\t\tmetadata\r\n\t\t\t\t)\r\n\t\t\t\tif (countryCallingCode) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tcountryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\r\n\t\t\t\t\t\tcountryCallingCode,\r\n\t\t\t\t\t\tnumber: shorterNumber\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\t// No need to set it to `UNSPECIFIED`. It can be just `undefined`.\r\n\t\t\t\t// countryCallingCodeSource: 'UNSPECIFIED',\r\n\t\t\t\tnumber\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Fast abortion: country codes do not begin with a '0'\r\n\tif (number[1] === '0') {\r\n\t\treturn {}\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// The thing with country phone codes\r\n\t// is that they are orthogonal to each other\r\n\t// i.e. there's no such country phone code A\r\n\t// for which country phone code B exists\r\n\t// where B starts with A.\r\n\t// Therefore, while scanning digits,\r\n\t// if a valid country code is found,\r\n\t// that means that it is the country code.\r\n\t//\r\n\tlet i = 2\r\n\twhile (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\r\n\t\tconst countryCallingCode = number.slice(1, i)\r\n\t\tif (metadata.hasCallingCode(countryCallingCode)) {\r\n\t\t\tmetadata.selectNumberingPlan(countryCallingCode)\r\n\t\t\treturn {\r\n\t\t\t\tcountryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\tnumber: number.slice(i)\r\n\t\t\t}\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\r\n\treturn {}\r\n}\r\n\r\n// The possible values for the returned `countryCallingCodeSource` are:\r\n//\r\n// Copy-pasted from:\r\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\r\n//\r\n// // The source from which the country_code is derived. This is not set in the\r\n// // general parsing method, but in the method that parses and keeps raw_input.\r\n// // New fields could be added upon request.\r\n// enum CountryCodeSource {\r\n// // Default value returned if this is not set, because the phone number was\r\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\r\n// // return false if this is the case.\r\n// UNSPECIFIED = 0;\r\n//\r\n// // The country_code is derived based on a phone number with a leading \"+\",\r\n// // e.g. the French number \"+33 1 42 68 53 00\".\r\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\r\n//\r\n// // The country_code is derived based on a phone number with a leading IDD,\r\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\r\n// FROM_NUMBER_WITH_IDD = 5;\r\n//\r\n// // The country_code is derived based on a phone number without a leading\r\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\r\n// // supplied as France.\r\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\r\n//\r\n// // The country_code is derived NOT based on the phone number itself, but\r\n// // from the defaultCountry parameter provided in the parsing function by the\r\n// // clients. This happens mostly for numbers written in the national format\r\n// // (without country code). For example, this would be set when parsing the\r\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\r\n// // France.\r\n// FROM_DEFAULT_COUNTRY = 20;\r\n// }","import Metadata from '../metadata.js'\r\nimport getNumberType from './getNumberType.js'\r\n\r\nexport default function getCountryByNationalNumber(nationalPhoneNumber, {\r\n\tcountries,\r\n\tdefaultCountry,\r\n\tmetadata\r\n}) {\r\n\t// Re-create `metadata` because it will be selecting a `country`.\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tconst matchingCountries = []\r\n\r\n\tfor (const country of countries) {\r\n\t\tmetadata.country(country)\r\n\t\t// \"Leading digits\" patterns are only defined for about 20% of all countries.\r\n\t\t// By definition, matching \"leading digits\" is a sufficient but not a necessary\r\n\t\t// condition for a phone number to belong to a country.\r\n\t\t// The point of \"leading digits\" check is that it's the fastest one to get a match.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\r\n\t\t// I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\r\n\t\t// because of the intended use of that feature.\r\n\t\tif (metadata.leadingDigits()) {\r\n\t\t\tif (nationalPhoneNumber &&\r\n\t\t\t\tnationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\r\n\t\t\t\treturn country\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Else perform full validation with all of those\r\n\t\t// fixed-line/mobile/etc regular expressions.\r\n\t\telse if (getNumberType({ phone: nationalPhoneNumber, country }, undefined, metadata.metadata)) {\r\n\t\t\t// If the `defaultCountry` is among the `matchingCountries` then return it.\r\n\t\t\tif (defaultCountry) {\r\n\t\t\t\tif (country === defaultCountry) {\r\n\t\t\t\t\treturn country\r\n\t\t\t\t}\r\n\t\t\t\tmatchingCountries.push(country)\r\n\t\t\t} else {\r\n\t\t\t\treturn country\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Return the first (\"main\") one of the `matchingCountries`.\r\n\tif (matchingCountries.length > 0) {\r\n\t\treturn matchingCountries[0]\r\n\t}\r\n}","import getCountryByNationalNumber from './getCountryByNationalNumber.js'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default function getCountryByCallingCode(callingCode, {\r\n\tnationalNumber: nationalPhoneNumber,\r\n\tdefaultCountry,\r\n\tmetadata\r\n}) {\r\n\t/* istanbul ignore if */\r\n\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\tif (metadata.isNonGeographicCallingCode(callingCode)) {\r\n\t\t\treturn '001'\r\n\t\t}\r\n\t}\r\n\tconst possibleCountries = metadata.getCountryCodesForCallingCode(callingCode)\r\n\tif (!possibleCountries) {\r\n\t\treturn\r\n\t}\r\n\t// If there's just one country corresponding to the country code,\r\n\t// then just return it, without further phone number digits validation.\r\n\tif (possibleCountries.length === 1) {\r\n\t\treturn possibleCountries[0]\r\n\t}\r\n\treturn getCountryByNationalNumber(nationalPhoneNumber, {\r\n\t\tcountries: possibleCountries,\r\n\t\tdefaultCountry,\r\n\t\tmetadata: metadata.metadata\r\n\t})\r\n}","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\r\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\r\n// Example: `\"tel:12133734253;phone-context=+1\"`.\r\n// This function parses the full phone number from the local number and the `phone-context`\r\n// when the `phone-context` contains a `+` sign.\r\n\r\nimport {\r\n VALID_DIGITS,\r\n // PLUS_CHARS\r\n} from '../constants.js'\r\n\r\nexport const PLUS_SIGN = '+'\r\n\r\nconst RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?'\r\n\r\nconst RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')'\r\n\r\nconst RFC3966_GLOBAL_NUMBER_DIGITS_ =\r\n\t'^' +\r\n\t'\\\\' +\r\n\tPLUS_SIGN +\r\n\tRFC3966_PHONE_DIGIT_ +\r\n\t'*' +\r\n\t'[' + VALID_DIGITS + ']' +\r\n\tRFC3966_PHONE_DIGIT_ +\r\n\t'*' +\r\n\t'$'\r\n\r\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\r\nconst RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g')\r\n\r\n// In this port of Google's library, we don't accept alpha characters in phone numbers.\r\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\r\nconst ALPHANUM_ = VALID_DIGITS\r\n\r\nconst RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*'\r\n\r\nconst VALID_ALPHA_ = 'a-zA-Z'\r\nconst RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*'\r\n\r\nconst RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$'\r\n\r\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\r\nconst RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g')\r\n\r\nexport const RFC3966_PREFIX_ = 'tel:'\r\nexport const RFC3966_PHONE_CONTEXT_ = ';phone-context='\r\nexport const RFC3966_ISDN_SUBADDRESS_ = ';isub='\r\n\r\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\r\nexport default function extractPhoneContext(numberToExtractFrom) {\r\n\tconst indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_)\r\n\t// If no phone-context parameter is present\r\n\tif (indexOfPhoneContext < 0) {\r\n\t\treturn null\r\n\t}\r\n\r\n\tconst phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length\r\n\t// If phone-context parameter is empty\r\n\tif (phoneContextStart >= numberToExtractFrom.length) {\r\n\t\treturn ''\r\n\t}\r\n\r\n\tconst phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart)\r\n\t// If phone-context is not the last parameter\r\n\tif (phoneContextEnd >= 0) {\r\n\t\treturn numberToExtractFrom.substring(phoneContextStart, phoneContextEnd)\r\n\t} else {\r\n\t\treturn numberToExtractFrom.substring(phoneContextStart)\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\r\nexport function isPhoneContextValid(phoneContext) {\r\n\tif (phoneContext === null) {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (phoneContext.length === 0) {\r\n\t\treturn false\r\n\t}\r\n\r\n\t// Does phone-context value match pattern of global-number-digits or domainname.\r\n\treturn RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) ||\r\n\t\tRFC3966_DOMAINNAME_PATTERN_.test(phoneContext)\r\n}","import extractPhoneContext, {\r\n\tisPhoneContextValid,\r\n\tPLUS_SIGN,\r\n\tRFC3966_PREFIX_,\r\n\tRFC3966_PHONE_CONTEXT_,\r\n\tRFC3966_ISDN_SUBADDRESS_\r\n} from './extractPhoneContext.js'\r\n\r\nimport ParseError from '../ParseError.js'\r\n\r\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\r\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, {\r\n\textractFormattedPhoneNumber\r\n}) {\r\n\tconst phoneContext = extractPhoneContext(numberToParse)\r\n\tif (!isPhoneContextValid(phoneContext)) {\r\n\t\tthrow new ParseError('NOT_A_NUMBER')\r\n\t}\r\n\r\n\tlet phoneNumberString\r\n\r\n\tif (phoneContext === null) {\r\n\t\t// Extract a possible number from the string passed in.\r\n\t\t// (this strips leading characters that could not be the start of a phone number)\r\n\t\tphoneNumberString = extractFormattedPhoneNumber(numberToParse) || ''\r\n\t} else {\r\n\t\tphoneNumberString = ''\r\n\r\n\t\t// If the phone context contains a phone number prefix, we need to capture\r\n\t\t// it, whereas domains will be ignored.\r\n\t\tif (phoneContext.charAt(0) === PLUS_SIGN) {\r\n\t\t\tphoneNumberString += phoneContext\r\n\t\t}\r\n\r\n\t\t// Now append everything between the \"tel:\" prefix and the phone-context.\r\n\t\t// This should include the national number, an optional extension or\r\n\t\t// isdn-subaddress component. Note we also handle the case when \"tel:\" is\r\n\t\t// missing, as we have seen in some of the phone number inputs.\r\n\t\t// In that case, we append everything from the beginning.\r\n\t\tconst indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_)\r\n\t\tlet indexOfNationalNumber\r\n\t\t// RFC 3966 \"tel:\" prefix is preset at this stage because\r\n\t\t// `isPhoneContextValid()` requires it to be present.\r\n\t\t/* istanbul ignore else */\r\n\t\tif (indexOfRfc3966Prefix >= 0) {\r\n\t\t\tindexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length\r\n\t\t} else {\r\n\t\t\tindexOfNationalNumber = 0\r\n\t\t}\r\n\t\tconst indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_)\r\n\t\tphoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext)\r\n\t}\r\n\r\n\t// Delete the isdn-subaddress and everything after it if it is present.\r\n\t// Note extension won't appear at the same time with isdn-subaddress\r\n\t// according to paragraph 5.3 of the RFC3966 spec.\r\n\tconst indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_)\r\n\tif (indexOfIsdn > 0) {\r\n\t\tphoneNumberString = phoneNumberString.substring(0, indexOfIsdn)\r\n\t}\r\n\t// If both phone context and isdn-subaddress are absent but other\r\n\t// parameters are present, the parameters are left in nationalNumber.\r\n\t// This is because we are concerned about deleting content from a potential\r\n\t// number string when there is no strong evidence that the number is\r\n\t// actually written in RFC3966.\r\n\r\n\tif (phoneNumberString !== '') {\r\n\t\treturn phoneNumberString\r\n\t}\r\n}","// This is a port of Google Android `libphonenumber`'s\r\n// `phonenumberutil.js` of December 31th, 2018.\r\n//\r\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\r\n\r\nimport {\r\n\tVALID_DIGITS,\r\n\tPLUS_CHARS,\r\n\tMIN_LENGTH_FOR_NSN,\r\n\tMAX_LENGTH_FOR_NSN\r\n} from './constants.js'\r\n\r\nimport ParseError from './ParseError.js'\r\nimport Metadata from './metadata.js'\r\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js'\r\nimport extractExtension from './helpers/extension/extractExtension.js'\r\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js'\r\nimport getCountryCallingCode from './getCountryCallingCode.js'\r\nimport { isPossibleNumber } from './isPossible.js'\r\n// import { parseRFC3966 } from './helpers/RFC3966.js'\r\nimport PhoneNumber from './PhoneNumber.js'\r\nimport matchesEntirely from './helpers/matchesEntirely.js'\r\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js'\r\nimport extractNationalNumber from './helpers/extractNationalNumber.js'\r\nimport stripIddPrefix from './helpers/stripIddPrefix.js'\r\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js'\r\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'\r\n\r\n// We don't allow input strings for parsing to be longer than 250 chars.\r\n// This prevents malicious input from consuming CPU.\r\nconst MAX_INPUT_STRING_LENGTH = 250\r\n\r\n// This consists of the plus symbol, digits, and arabic-indic digits.\r\nconst PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']')\r\n\r\n// Regular expression of trailing characters that we want to remove.\r\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\r\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\r\nconst AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$')\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\n// Examples:\r\n//\r\n// ```js\r\n// parse('8 (800) 555-35-35', 'RU')\r\n// parse('8 (800) 555-35-35', 'RU', metadata)\r\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\r\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\r\n// parse('+7 800 555 35 35')\r\n// parse('+7 800 555 35 35', metadata)\r\n// ```\r\n//\r\n\r\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\r\nexport default function parse(text, options, metadata) {\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// Validate `defaultCountry`.\r\n\tif (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('INVALID_COUNTRY')\r\n\t\t}\r\n\t\tthrow new Error(`Unknown country: ${options.defaultCountry}`)\r\n\t}\r\n\r\n\t// Parse the phone number.\r\n\tconst { number: formattedPhoneNumber, ext, error } = parseInput(text, options.v2, options.extract)\r\n\r\n\t// If the phone number is not viable then return nothing.\r\n\tif (!formattedPhoneNumber) {\r\n\t\tif (options.v2) {\r\n\t\t\tif (error === 'TOO_SHORT') {\r\n\t\t\t\tthrow new ParseError('TOO_SHORT')\r\n\t\t\t}\r\n\t\t\tthrow new ParseError('NOT_A_NUMBER')\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\r\n\tconst {\r\n\t\tcountry,\r\n\t\tnationalNumber,\r\n\t\tcountryCallingCode,\r\n\t\tcountryCallingCodeSource,\r\n\t\tcarrierCode\r\n\t} = parsePhoneNumber(\r\n\t\tformattedPhoneNumber,\r\n\t\toptions.defaultCountry,\r\n\t\toptions.defaultCallingCode,\r\n\t\tmetadata\r\n\t)\r\n\r\n\tif (!metadata.hasSelectedNumberingPlan()) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('INVALID_COUNTRY')\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\r\n\t// Validate national (significant) number length.\r\n\tif (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\r\n\t\t// Won't throw here because the regexp already demands length > 1.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('TOO_SHORT')\r\n\t\t}\r\n\t\t// Google's demo just throws an error in this case.\r\n\t\treturn {}\r\n\t}\r\n\r\n\t// Validate national (significant) number length.\r\n\t//\r\n\t// A sidenote:\r\n\t//\r\n\t// They say that sometimes national (significant) numbers\r\n\t// can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\r\n\t// https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\r\n\t// Such numbers will just be discarded.\r\n\t//\r\n\tif (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('TOO_LONG')\r\n\t\t}\r\n\t\t// Google's demo just throws an error in this case.\r\n\t\treturn {}\r\n\t}\r\n\r\n\tif (options.v2) {\r\n\t\tconst phoneNumber = new PhoneNumber(\r\n\t\t\tcountryCallingCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tmetadata.metadata\r\n\t\t)\r\n\t\tif (country) {\r\n\t\t\tphoneNumber.country = country\r\n\t\t}\r\n\t\tif (carrierCode) {\r\n\t\t\tphoneNumber.carrierCode = carrierCode\r\n\t\t}\r\n\t\tif (ext) {\r\n\t\t\tphoneNumber.ext = ext\r\n\t\t}\r\n\t\tphoneNumber.__countryCallingCodeSource = countryCallingCodeSource\r\n\t\treturn phoneNumber\r\n\t}\r\n\r\n\t// Check if national phone number pattern matches the number.\r\n\t// National number pattern is different for each country,\r\n\t// even for those ones which are part of the \"NANPA\" group.\r\n\tconst valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ?\r\n\t\tmatchesEntirely(nationalNumber, metadata.nationalNumberPattern()) :\r\n\t\tfalse\r\n\r\n\tif (!options.extended) {\r\n\t\treturn valid ? result(country, nationalNumber, ext) : {}\r\n\t}\r\n\r\n\t// isInternational: countryCallingCode !== undefined\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode,\r\n\t\tcarrierCode,\r\n\t\tvalid,\r\n\t\tpossible: valid ? true : (\r\n\t\t\toptions.extended === true &&\r\n\t\t\tmetadata.possibleLengths() &&\r\n\t\t\tisPossibleNumber(nationalNumber, metadata) ? true : false\r\n\t\t),\r\n\t\tphone: nationalNumber,\r\n\t\text\r\n\t}\r\n}\r\n\r\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\r\nfunction extractFormattedPhoneNumber(text, extract, throwOnError) {\r\n\tif (!text) {\r\n\t\treturn\r\n\t}\r\n\tif (text.length > MAX_INPUT_STRING_LENGTH) {\r\n\t\tif (throwOnError) {\r\n\t\t\tthrow new ParseError('TOO_LONG')\r\n\t\t}\r\n\t\treturn\r\n\t}\r\n\tif (extract === false) {\r\n\t\treturn text\r\n\t}\r\n\t// Attempt to extract a possible number from the string passed in\r\n\tconst startsAt = text.search(PHONE_NUMBER_START_PATTERN)\r\n\tif (startsAt < 0) {\r\n\t\treturn\r\n\t}\r\n\treturn text\r\n\t\t// Trim everything to the left of the phone number\r\n\t\t.slice(startsAt)\r\n\t\t// Remove trailing non-numerical characters\r\n\t\t.replace(AFTER_PHONE_NUMBER_END_PATTERN, '')\r\n}\r\n\r\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\r\nfunction parseInput(text, v2, extract) {\r\n\t// // Parse RFC 3966 phone number URI.\r\n\t// if (text && text.indexOf('tel:') === 0) {\r\n\t// \treturn parseRFC3966(text)\r\n\t// }\r\n\t// let number = extractFormattedPhoneNumber(text, extract, v2)\r\n\tlet number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\r\n\t\textractFormattedPhoneNumber: (text) => extractFormattedPhoneNumber(text, extract, v2)\r\n\t})\r\n\t// If the phone number is not viable, then abort.\r\n\tif (!number) {\r\n\t\treturn {}\r\n\t}\r\n\tif (!isViablePhoneNumber(number)) {\r\n\t\tif (isViablePhoneNumberStart(number)) {\r\n\t\t\treturn { error: 'TOO_SHORT' }\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\t// Attempt to parse extension first, since it doesn't require region-specific\r\n\t// data and we want to have the non-normalised number here.\r\n\tconst withExtensionStripped = extractExtension(number)\r\n\tif (withExtensionStripped.ext) {\r\n\t\treturn withExtensionStripped\r\n\t}\r\n\treturn { number }\r\n}\r\n\r\n/**\r\n * Creates `parse()` result object.\r\n */\r\nfunction result(country, nationalNumber, ext) {\r\n\tconst result = {\r\n\t\tcountry,\r\n\t\tphone: nationalNumber\r\n\t}\r\n\tif (ext) {\r\n\t\tresult.ext = ext\r\n\t}\r\n\treturn result\r\n}\r\n\r\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\r\nfunction parsePhoneNumber(\r\n\tformattedPhoneNumber,\r\n\tdefaultCountry,\r\n\tdefaultCallingCode,\r\n\tmetadata\r\n) {\r\n\t// Extract calling code from phone number.\r\n\tlet { countryCallingCodeSource, countryCallingCode, number } = extractCountryCallingCode(\r\n\t\tparseIncompletePhoneNumber(formattedPhoneNumber),\r\n\t\tdefaultCountry,\r\n\t\tdefaultCallingCode,\r\n\t\tmetadata.metadata\r\n\t)\r\n\r\n\t// Choose a country by `countryCallingCode`.\r\n\tlet country\r\n\tif (countryCallingCode) {\r\n\t\tmetadata.selectNumberingPlan(countryCallingCode)\r\n\t}\r\n\t// If `formattedPhoneNumber` is passed in \"national\" format\r\n\t// then `number` is defined and `countryCallingCode` is `undefined`.\r\n\telse if (number && (defaultCountry || defaultCallingCode)) {\r\n\t\tmetadata.selectNumberingPlan(defaultCountry, defaultCallingCode)\r\n\t\tif (defaultCountry) {\r\n\t\t\tcountry = defaultCountry\r\n\t\t} else {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t\tif (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\r\n\t\t\t\t\tcountry = '001'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tcountryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata)\r\n\t}\r\n\telse return {}\r\n\r\n\tif (!number) {\r\n\t\treturn {\r\n\t\t\tcountryCallingCodeSource,\r\n\t\t\tcountryCallingCode\r\n\t\t}\r\n\t}\r\n\r\n\tconst {\r\n\t\tnationalNumber,\r\n\t\tcarrierCode\r\n\t} = extractNationalNumber(\r\n\t\tparseIncompletePhoneNumber(number),\r\n\t\tmetadata\r\n\t)\r\n\r\n\t// Sometimes there are several countries\r\n\t// corresponding to the same country phone code\r\n\t// (e.g. NANPA countries all having `1` country phone code).\r\n\t// Therefore, to reliably determine the exact country,\r\n\t// national (significant) number should have been parsed first.\r\n\t//\r\n\t// When `metadata.json` is generated, all \"ambiguous\" country phone codes\r\n\t// get their countries populated with the full set of\r\n\t// \"phone number type\" regular expressions.\r\n\t//\r\n\tconst exactCountry = getCountryByCallingCode(countryCallingCode, {\r\n\t\tnationalNumber,\r\n\t\tdefaultCountry,\r\n\t\tmetadata\r\n\t})\r\n\tif (exactCountry) {\r\n\t\tcountry = exactCountry\r\n\t\t/* istanbul ignore if */\r\n\t\tif (exactCountry === '001') {\r\n\t\t\t// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\r\n\t\t\t// If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\r\n\t\t\t// then remove the \"istanbul ignore if\".\r\n\t\t} else {\r\n\t\t\tmetadata.country(country)\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode,\r\n\t\tcountryCallingCodeSource,\r\n\t\tnationalNumber,\r\n\t\tcarrierCode\r\n\t}\r\n}","import parsePhoneNumberWithError from './parsePhoneNumberWithError_.js'\r\nimport ParseError from './ParseError.js'\r\nimport { isSupportedCountry } from './metadata.js'\r\n\r\nexport default function parsePhoneNumber(text, options, metadata) {\r\n\t// Validate `defaultCountry`.\r\n\tif (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\r\n\t\toptions = {\r\n\t\t\t...options,\r\n\t\t\tdefaultCountry: undefined\r\n\t\t}\r\n\t}\r\n\t// Parse phone number.\r\n\ttry {\r\n\t\treturn parsePhoneNumberWithError(text, options, metadata)\r\n\t} catch (error) {\r\n\t\t/* istanbul ignore else */\r\n\t\tif (error instanceof ParseError) {\r\n\t\t\t//\r\n\t\t} else {\r\n\t\t\tthrow error\r\n\t\t}\r\n\t}\r\n}\r\n","import parse from './parse.js'\r\n\r\nexport default function parsePhoneNumberWithError(text, options, metadata) {\r\n\treturn parse(text, { ...options, v2: true }, metadata)\r\n}","import normalizeArguments from './normalizeArguments.js'\r\nimport parsePhoneNumber from './parsePhoneNumber_.js'\r\n\r\nexport default function isValidPhoneNumber() {\r\n\tlet { text, options, metadata } = normalizeArguments(arguments)\r\n\toptions = {\r\n\t\t...options,\r\n\t\textract: false\r\n\t}\r\n\tconst phoneNumber = parsePhoneNumber(text, options, metadata)\r\n\treturn phoneNumber && phoneNumber.isValid() || false\r\n}","export default {\n \"ext\": \"ext.\",\n \"country\": \"Phone number country\",\n \"phone\": \"Phone\",\n \"AB\": \"Abkhazia\",\n \"AC\": \"Ascension Island\",\n \"AD\": \"Andorra\",\n \"AE\": \"United Arab Emirates\",\n \"AF\": \"Afghanistan\",\n \"AG\": \"Antigua and Barbuda\",\n \"AI\": \"Anguilla\",\n \"AL\": \"Albania\",\n \"AM\": \"Armenia\",\n \"AO\": \"Angola\",\n \"AQ\": \"Antarctica\",\n \"AR\": \"Argentina\",\n \"AS\": \"American Samoa\",\n \"AT\": \"Austria\",\n \"AU\": \"Australia\",\n \"AW\": \"Aruba\",\n \"AX\": \"Åland Islands\",\n \"AZ\": \"Azerbaijan\",\n \"BA\": \"Bosnia and Herzegovina\",\n \"BB\": \"Barbados\",\n \"BD\": \"Bangladesh\",\n \"BE\": \"Belgium\",\n \"BF\": \"Burkina Faso\",\n \"BG\": \"Bulgaria\",\n \"BH\": \"Bahrain\",\n \"BI\": \"Burundi\",\n \"BJ\": \"Benin\",\n \"BL\": \"Saint Barthélemy\",\n \"BM\": \"Bermuda\",\n \"BN\": \"Brunei Darussalam\",\n \"BO\": \"Bolivia\",\n \"BQ\": \"Bonaire, Sint Eustatius and Saba\",\n \"BR\": \"Brazil\",\n \"BS\": \"Bahamas\",\n \"BT\": \"Bhutan\",\n \"BV\": \"Bouvet Island\",\n \"BW\": \"Botswana\",\n \"BY\": \"Belarus\",\n \"BZ\": \"Belize\",\n \"CA\": \"Canada\",\n \"CC\": \"Cocos (Keeling) Islands\",\n \"CD\": \"Congo, Democratic Republic of the\",\n \"CF\": \"Central African Republic\",\n \"CG\": \"Congo\",\n \"CH\": \"Switzerland\",\n \"CI\": \"Cote d'Ivoire\",\n \"CK\": \"Cook Islands\",\n \"CL\": \"Chile\",\n \"CM\": \"Cameroon\",\n \"CN\": \"China\",\n \"CO\": \"Colombia\",\n \"CR\": \"Costa Rica\",\n \"CU\": \"Cuba\",\n \"CV\": \"Cape Verde\",\n \"CW\": \"Curaçao\",\n \"CX\": \"Christmas Island\",\n \"CY\": \"Cyprus\",\n \"CZ\": \"Czech Republic\",\n \"DE\": \"Germany\",\n \"DJ\": \"Djibouti\",\n \"DK\": \"Denmark\",\n \"DM\": \"Dominica\",\n \"DO\": \"Dominican Republic\",\n \"DZ\": \"Algeria\",\n \"EC\": \"Ecuador\",\n \"EE\": \"Estonia\",\n \"EG\": \"Egypt\",\n \"EH\": \"Western Sahara\",\n \"ER\": \"Eritrea\",\n \"ES\": \"Spain\",\n \"ET\": \"Ethiopia\",\n \"FI\": \"Finland\",\n \"FJ\": \"Fiji\",\n \"FK\": \"Falkland Islands\",\n \"FM\": \"Federated States of Micronesia\",\n \"FO\": \"Faroe Islands\",\n \"FR\": \"France\",\n \"GA\": \"Gabon\",\n \"GB\": \"United Kingdom\",\n \"GD\": \"Grenada\",\n \"GE\": \"Georgia\",\n \"GF\": \"French Guiana\",\n \"GG\": \"Guernsey\",\n \"GH\": \"Ghana\",\n \"GI\": \"Gibraltar\",\n \"GL\": \"Greenland\",\n \"GM\": \"Gambia\",\n \"GN\": \"Guinea\",\n \"GP\": \"Guadeloupe\",\n \"GQ\": \"Equatorial Guinea\",\n \"GR\": \"Greece\",\n \"GS\": \"South Georgia and the South Sandwich Islands\",\n \"GT\": \"Guatemala\",\n \"GU\": \"Guam\",\n \"GW\": \"Guinea-Bissau\",\n \"GY\": \"Guyana\",\n \"HK\": \"Hong Kong\",\n \"HM\": \"Heard Island and McDonald Islands\",\n \"HN\": \"Honduras\",\n \"HR\": \"Croatia\",\n \"HT\": \"Haiti\",\n \"HU\": \"Hungary\",\n \"ID\": \"Indonesia\",\n \"IE\": \"Ireland\",\n \"IL\": \"Israel\",\n \"IM\": \"Isle of Man\",\n \"IN\": \"India\",\n \"IO\": \"British Indian Ocean Territory\",\n \"IQ\": \"Iraq\",\n \"IR\": \"Iran\",\n \"IS\": \"Iceland\",\n \"IT\": \"Italy\",\n \"JE\": \"Jersey\",\n \"JM\": \"Jamaica\",\n \"JO\": \"Jordan\",\n \"JP\": \"Japan\",\n \"KE\": \"Kenya\",\n \"KG\": \"Kyrgyzstan\",\n \"KH\": \"Cambodia\",\n \"KI\": \"Kiribati\",\n \"KM\": \"Comoros\",\n \"KN\": \"Saint Kitts and Nevis\",\n \"KP\": \"North Korea\",\n \"KR\": \"South Korea\",\n \"KW\": \"Kuwait\",\n \"KY\": \"Cayman Islands\",\n \"KZ\": \"Kazakhstan\",\n \"LA\": \"Laos\",\n \"LB\": \"Lebanon\",\n \"LC\": \"Saint Lucia\",\n \"LI\": \"Liechtenstein\",\n \"LK\": \"Sri Lanka\",\n \"LR\": \"Liberia\",\n \"LS\": \"Lesotho\",\n \"LT\": \"Lithuania\",\n \"LU\": \"Luxembourg\",\n \"LV\": \"Latvia\",\n \"LY\": \"Libya\",\n \"MA\": \"Morocco\",\n \"MC\": \"Monaco\",\n \"MD\": \"Moldova\",\n \"ME\": \"Montenegro\",\n \"MF\": \"Saint Martin (French Part)\",\n \"MG\": \"Madagascar\",\n \"MH\": \"Marshall Islands\",\n \"MK\": \"North Macedonia\",\n \"ML\": \"Mali\",\n \"MM\": \"Myanmar\",\n \"MN\": \"Mongolia\",\n \"MO\": \"Macao\",\n \"MP\": \"Northern Mariana Islands\",\n \"MQ\": \"Martinique\",\n \"MR\": \"Mauritania\",\n \"MS\": \"Montserrat\",\n \"MT\": \"Malta\",\n \"MU\": \"Mauritius\",\n \"MV\": \"Maldives\",\n \"MW\": \"Malawi\",\n \"MX\": \"Mexico\",\n \"MY\": \"Malaysia\",\n \"MZ\": \"Mozambique\",\n \"NA\": \"Namibia\",\n \"NC\": \"New Caledonia\",\n \"NE\": \"Niger\",\n \"NF\": \"Norfolk Island\",\n \"NG\": \"Nigeria\",\n \"NI\": \"Nicaragua\",\n \"NL\": \"Netherlands\",\n \"NO\": \"Norway\",\n \"NP\": \"Nepal\",\n \"NR\": \"Nauru\",\n \"NU\": \"Niue\",\n \"NZ\": \"New Zealand\",\n \"OM\": \"Oman\",\n \"OS\": \"South Ossetia\",\n \"PA\": \"Panama\",\n \"PE\": \"Peru\",\n \"PF\": \"French Polynesia\",\n \"PG\": \"Papua New Guinea\",\n \"PH\": \"Philippines\",\n \"PK\": \"Pakistan\",\n \"PL\": \"Poland\",\n \"PM\": \"Saint Pierre and Miquelon\",\n \"PN\": \"Pitcairn\",\n \"PR\": \"Puerto Rico\",\n \"PS\": \"Palestine\",\n \"PT\": \"Portugal\",\n \"PW\": \"Palau\",\n \"PY\": \"Paraguay\",\n \"QA\": \"Qatar\",\n \"RE\": \"Reunion\",\n \"RO\": \"Romania\",\n \"RS\": \"Serbia\",\n \"RU\": \"Russia\",\n \"RW\": \"Rwanda\",\n \"SA\": \"Saudi Arabia\",\n \"SB\": \"Solomon Islands\",\n \"SC\": \"Seychelles\",\n \"SD\": \"Sudan\",\n \"SE\": \"Sweden\",\n \"SG\": \"Singapore\",\n \"SH\": \"Saint Helena\",\n \"SI\": \"Slovenia\",\n \"SJ\": \"Svalbard and Jan Mayen\",\n \"SK\": \"Slovakia\",\n \"SL\": \"Sierra Leone\",\n \"SM\": \"San Marino\",\n \"SN\": \"Senegal\",\n \"SO\": \"Somalia\",\n \"SR\": \"Suriname\",\n \"SS\": \"South Sudan\",\n \"ST\": \"Sao Tome and Principe\",\n \"SV\": \"El Salvador\",\n \"SX\": \"Sint Maarten\",\n \"SY\": \"Syria\",\n \"SZ\": \"Swaziland\",\n \"TA\": \"Tristan da Cunha\",\n \"TC\": \"Turks and Caicos Islands\",\n \"TD\": \"Chad\",\n \"TF\": \"French Southern Territories\",\n \"TG\": \"Togo\",\n \"TH\": \"Thailand\",\n \"TJ\": \"Tajikistan\",\n \"TK\": \"Tokelau\",\n \"TL\": \"Timor-Leste\",\n \"TM\": \"Turkmenistan\",\n \"TN\": \"Tunisia\",\n \"TO\": \"Tonga\",\n \"TR\": \"Turkey\",\n \"TT\": \"Trinidad and Tobago\",\n \"TV\": \"Tuvalu\",\n \"TW\": \"Taiwan\",\n \"TZ\": \"Tanzania\",\n \"UA\": \"Ukraine\",\n \"UG\": \"Uganda\",\n \"UM\": \"United States Minor Outlying Islands\",\n \"US\": \"United States\",\n \"UY\": \"Uruguay\",\n \"UZ\": \"Uzbekistan\",\n \"VA\": \"Holy See (Vatican City State)\",\n \"VC\": \"Saint Vincent and the Grenadines\",\n \"VE\": \"Venezuela\",\n \"VG\": \"Virgin Islands, British\",\n \"VI\": \"Virgin Islands, U.S.\",\n \"VN\": \"Vietnam\",\n \"VU\": \"Vanuatu\",\n \"WF\": \"Wallis and Futuna\",\n \"WS\": \"Samoa\",\n \"XK\": \"Kosovo\",\n \"YE\": \"Yemen\",\n \"YT\": \"Mayotte\",\n \"ZA\": \"South Africa\",\n \"ZM\": \"Zambia\",\n \"ZW\": \"Zimbabwe\",\n \"ZZ\": \"International\"\n}","import PropTypes from 'prop-types'\r\n\r\nexport const metadata = PropTypes.shape({\r\n\tcountry_calling_codes : PropTypes.object.isRequired,\r\n\tcountries : PropTypes.object.isRequired\r\n})\r\n\r\nexport const labels = PropTypes.objectOf(PropTypes.string)","// Counts all occurences of a symbol in a string\r\nexport function count_occurences(symbol, string) {\r\n\tlet count = 0\r\n\t// Using `.split('')` here instead of normal `for ... of`\r\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t// (the ones consisting of four bytes)\r\n\t// but template placeholder characters don't fall into that range\r\n\t// so skipping such miscellaneous \"exotic\" characters\r\n\t// won't matter here for just counting placeholder character occurrences.\r\n\tfor (const character of string.split('')) {\r\n\t\tif (character === symbol) {\r\n\t\t\tcount++\r\n\t\t}\r\n\t}\r\n\treturn count\r\n}","import { count_occurences } from './helpers.js'\r\nimport close_braces from './closeBraces.js'\r\n\r\n// Takes a `template` where character placeholders\r\n// are denoted by 'x'es (e.g. 'x (xxx) xxx-xx-xx').\r\n//\r\n// Returns a function which takes `value` characters\r\n// and returns the `template` filled with those characters.\r\n// If the `template` can only be partially filled\r\n// then it is cut off.\r\n//\r\n// If `should_close_braces` is `true`,\r\n// then it will also make sure all dangling braces are closed,\r\n// e.g. \"8 (8\" -> \"8 (8 )\" (iPhone style phone number input).\r\n//\r\nexport default function(template, placeholder = 'x', should_close_braces)\r\n{\r\n\tif (!template)\r\n\t{\r\n\t\treturn value => ({ text: value })\r\n\t}\r\n\r\n\tconst characters_in_template = count_occurences(placeholder, template)\r\n\r\n\treturn function(value)\r\n\t{\r\n\t\tif (!value)\r\n\t\t{\r\n\t\t\treturn { text: '', template }\r\n\t\t}\r\n\r\n\t\tlet value_character_index = 0\r\n\t\tlet filled_in_template = ''\r\n\r\n\t\t// Using `.split('')` here instead of normal `for ... of`\r\n\t\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t\t// (the ones consisting of four bytes)\r\n\t\t// but template placeholder characters don't fall into that range\r\n\t\t// and appending UTF-8 characters to a string in parts still works.\r\n\t\tfor (const character of template.split(''))\r\n\t\t{\r\n\t\t\tif (character !== placeholder)\r\n\t\t\t{\r\n\t\t\t\tfilled_in_template += character\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tfilled_in_template += value[value_character_index]\r\n\t\t\tvalue_character_index++\r\n\r\n\t\t\t// If the last available value character has been filled in,\r\n\t\t\t// then return the filled in template\r\n\t\t\t// (either trim the right part or retain it,\r\n\t\t\t// if no more character placeholders in there)\r\n\t\t\tif (value_character_index === value.length)\r\n\t\t\t{\r\n\t\t\t\t// If there are more character placeholders\r\n\t\t\t\t// in the right part of the template\r\n\t\t\t\t// then simply trim it.\r\n\t\t\t\tif (value.length < characters_in_template)\r\n\t\t\t\t{\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (should_close_braces)\r\n\t\t{\r\n\t\t\tfilled_in_template = close_braces(filled_in_template, template)\r\n\t\t}\r\n\r\n\t\treturn { text: filled_in_template, template }\r\n\t}\r\n}","import { count_occurences } from './helpers.js'\r\n\r\nexport default function closeBraces(retained_template, template, placeholder = 'x', empty_placeholder = ' ')\r\n{\r\n\tlet cut_before = retained_template.length\r\n\r\n\tconst opening_braces = count_occurences('(', retained_template)\r\n\tconst closing_braces = count_occurences(')', retained_template)\r\n\r\n\tlet dangling_braces = opening_braces - closing_braces\r\n\r\n\twhile (dangling_braces > 0 && cut_before < template.length)\r\n\t{\r\n\t\tretained_template += template[cut_before].replace(placeholder, empty_placeholder)\r\n\r\n\t\tif (template[cut_before] === ')')\r\n\t\t{\r\n\t\t\tdangling_braces--\r\n\t\t}\r\n\r\n\t\tcut_before++\r\n\t}\r\n\r\n\treturn retained_template\r\n}\r\n","export function isReadOnly(element)\r\n{\r\n\treturn element.hasAttribute('readonly')\r\n}\r\n\r\n// Gets selection bounds\r\nexport function getSelection(element)\r\n{\r\n\t// If no selection, return nothing\r\n\tif (element.selectionStart === element.selectionEnd)\r\n\t{\r\n\t\treturn\r\n\t}\r\n\r\n\treturn { start: element.selectionStart, end: element.selectionEnd }\r\n}\r\n\r\n// Key codes\r\nexport const Keys =\r\n{\r\n\tBackspace : 8,\r\n\tDelete : 46\r\n}\r\n\r\n// Finds out the operation to be intercepted and performed\r\n// based on the key down event `keyCode`.\r\nexport function getOperation(event)\r\n{\r\n\tswitch (event.keyCode)\r\n\t{\r\n\t\tcase Keys.Backspace:\r\n\t\t\treturn 'Backspace'\r\n\r\n\t\tcase Keys.Delete:\r\n\t\t\treturn 'Delete'\r\n\t}\r\n}\r\n\r\n// Gets caret position\r\nexport function getCaretPosition(element)\r\n{\r\n\treturn element.selectionStart\r\n}\r\n\r\n// Sets caret position\r\nexport function setCaretPosition(element, caret_position)\r\n{\r\n\t// Sanity check\r\n\tif (caret_position === undefined)\r\n\t{\r\n\t\treturn\r\n\t}\r\n\r\n\t// Set caret position.\r\n\t// There has been an issue with caret positioning on Android devices.\r\n\t// https://github.com/catamphetamine/input-format/issues/2\r\n\t// I was revisiting this issue and looked for similar issues in other libraries.\r\n\t// For example, there's [`text-mask`](https://github.com/text-mask/text-mask) library.\r\n\t// They've had exactly the same issue when the caret seemingly refused to be repositioned programmatically.\r\n\t// The symptoms were the same: whenever the caret passed through a non-digit character of a mask (a whitespace, a bracket, a dash, etc), it looked as if it placed itself one character before its correct position.\r\n\t// https://github.com/text-mask/text-mask/issues/300\r\n\t// They seem to have found a basic fix for it: calling `input.setSelectionRange()` in a timeout rather than instantly for Android devices.\r\n\t// https://github.com/text-mask/text-mask/pull/400/files\r\n\t// I've implemented the same workaround here.\r\n\tif (isAndroid()) {\r\n setTimeout(() => element.setSelectionRange(caret_position, caret_position), 0)\r\n\t} else {\r\n\t\telement.setSelectionRange(caret_position, caret_position)\r\n\t}\r\n}\r\n\r\nfunction isAndroid() {\r\n\t// `navigator` is not defined when running mocha tests.\r\n\tif (typeof navigator !== 'undefined') {\r\n\t\treturn ANDROID_USER_AGENT_REG_EXP.test(navigator.userAgent)\r\n\t}\r\n}\r\n\r\nconst ANDROID_USER_AGENT_REG_EXP = /Android/i","import edit from './edit.js'\r\nimport parse from './parse.js'\r\nimport format from './format.js'\r\n\r\nimport\r\n{\r\n\tisReadOnly,\r\n\tgetOperation,\r\n\tgetSelection,\r\n\tgetCaretPosition,\r\n\tsetCaretPosition\r\n}\r\nfrom './dom.js'\r\n\r\n// Deprecated.\r\n// I don't know why this function exists.\r\nexport function onCut(event, input, _parse, _format, on_change)\r\n{\r\n\tif (isReadOnly(input)) {\r\n\t\treturn\r\n\t}\r\n\r\n\t// The actual cut hasn't happened just yet hence the timeout.\r\n\tsetTimeout(() => formatInputText(input, _parse, _format, undefined, on_change), 0)\r\n}\r\n\r\n// Deprecated.\r\n// I don't know why this function exists.\r\nexport function onPaste(event, input, _parse, _format, on_change)\r\n{\r\n\tif (isReadOnly(input)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tconst selection = getSelection(input)\r\n\r\n\t// If selection is made,\r\n\t// just erase the selected text\r\n\t// prior to pasting\r\n\tif (selection)\r\n\t{\r\n\t\teraseSelection(input, selection)\r\n\t}\r\n\r\n\tformatInputText(input, _parse, _format, undefined, on_change)\r\n}\r\n\r\nexport function onChange(event, input, _parse, _format, on_change)\r\n{\r\n\tformatInputText(input, _parse, _format, undefined, on_change)\r\n}\r\n\r\n// \"Delete\" and \"Backspace\" keys are special\r\n// in a way that they're not handled by the regular `onChange()` handler\r\n// and instead are intercepted and re-applied manually.\r\n// The reason is that normally hitting \"Backspace\" or \"Delete\"\r\n// results in erasing a character, but that character might be any character,\r\n// while it would be a better \"user experience\" if it erased not just any character\r\n// but the closest \"meaningful\" character.\r\n// For example, if a template is `(xxx) xxx-xxxx`,\r\n// and the `` value is `(111) 222-3333`,\r\n// then, if a user begins erasing the `3333` part via \"Backspace\"\r\n// and reaches the \"-\" character, then it would just erase the \"-\" character.\r\n// Nothing wrong with that, but it would be a better \"user experience\"\r\n// if hitting \"Backspace\" at that position would erase the closest \"meaningful\"\r\n// character, which would be the rightmost `2`.\r\n// So, what this `onKeyDown()` handler does is it intercepts\r\n// \"Backspace\" and \"Delete\" keys and re-applies those operations manually\r\n// following the logic described above.\r\nexport function onKeyDown(event, input, _parse, _format, on_change)\r\n{\r\n\tif (isReadOnly(input)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tconst operation = getOperation(event)\r\n\tswitch (operation)\r\n\t{\r\n\t\tcase 'Delete':\r\n\t\tcase 'Backspace':\r\n\t\t\t// Intercept this operation and perform it manually.\r\n\t\t\tevent.preventDefault()\r\n\r\n\t\t\tconst selection = getSelection(input)\r\n\r\n\t\t\t// If a selection is made, just erase the selected text.\r\n\t\t\tif (selection)\r\n\t\t\t{\r\n\t\t\t\teraseSelection(input, selection)\r\n\t\t\t\treturn formatInputText(input, _parse, _format, undefined, on_change)\r\n\t\t\t}\r\n\r\n\t\t\t// Else, perform the (character erasing) operation manually.\r\n\t\t\treturn formatInputText(input, _parse, _format, operation, on_change)\r\n\r\n\t\tdefault:\r\n\t\t\t// Will be handled normally as part of the `onChange` handler.\r\n\t}\r\n}\r\n\r\n/**\r\n * Erases the selected text inside an ``.\r\n * @param {DOMElement} input\r\n * @param {Selection} selection\r\n */\r\nfunction eraseSelection(input, selection)\r\n{\r\n\tlet text = input.value\r\n\ttext = text.slice(0, selection.start) + text.slice(selection.end)\r\n\r\n\tinput.value = text\r\n\tsetCaretPosition(input, selection.start)\r\n}\r\n\r\n/**\r\n * Parses and re-formats `` textual value.\r\n * E.g. when a user enters something into the ``\r\n * that raw input must first be parsed and the re-formatted properly.\r\n * Is called either after some user input (e.g. entered a character, pasted something)\r\n * or after the user performed an `operation` (e.g. \"Backspace\", \"Delete\").\r\n * @param {DOMElement} input\r\n * @param {Function} parse\r\n * @param {Function} format\r\n * @param {string} [operation] - The operation that triggered `` textual value change. E.g. \"Backspace\", \"Delete\".\r\n * @param {Function} onChange\r\n */\r\nfunction formatInputText(input, _parse, _format, operation, on_change)\r\n{\r\n\t// Parse `` textual value.\r\n\t// Get the `value` and `caret` position.\r\n\tlet { value, caret } = parse(input.value, getCaretPosition(input), _parse)\r\n\r\n\t// If a user performed an operation (\"Backspace\", \"Delete\")\r\n\t// then apply that operation and get the new `value` and `caret` position.\r\n\tif (operation)\r\n\t{\r\n\t\tconst newValueAndCaret = edit(value, caret, operation)\r\n\r\n\t\tvalue = newValueAndCaret.value\r\n\t\tcaret = newValueAndCaret.caret\r\n\t}\r\n\r\n\t// Format the `value`.\r\n\t// (and reposition the caret accordingly)\r\n\tconst formatted = format(value, caret, _format)\r\n\r\n\tconst text = formatted.text\r\n\tcaret = formatted.caret\r\n\r\n\t// Set `` textual value manually\r\n\t// to prevent React from resetting the caret position\r\n\t// later inside a subsequent `render()`.\r\n\t// Doesn't work for custom `inputComponent`s for some reason.\r\n\tinput.value = text\r\n\t// Position the caret properly.\r\n\tsetCaretPosition(input, caret)\r\n\r\n\t// If the `` textual value did change,\r\n\t// then the parsed `value` may have changed too.\r\n\ton_change(value)\r\n}","// Parses the `text`.\r\n//\r\n// Returns `{ value, caret }` where `caret` is\r\n// the caret position inside `value`\r\n// corresponding to the `caret_position` inside `text`.\r\n//\r\n// The `text` is parsed by feeding each character sequentially to\r\n// `parse_character(character, value, context)` function\r\n// and appending the result (if it's not `undefined`) to `value`.\r\n//\r\n// `context` argument is just a utility empty object that is shared within the bounds\r\n// of parsing a single input string. The `_parse()` function could use that object\r\n// to store any kind of \"flags\" in it in order to alter its behavior based when\r\n// parsing next characters within the same string. Or it could completely ignore it.\r\n//\r\n// Example:\r\n//\r\n// `text` is `8 (800) 555-35-35`,\r\n// `caret_position` is `4` (before the first `0`).\r\n// `parse_character` is `(character, value) =>\r\n// if (character >= '0' && character <= '9') { return character }`.\r\n//\r\n// then `parse()` outputs `{ value: '88005553535', caret: 2 }`.\r\n//\r\nexport default function parse(text, caret_position, parse_character)\r\n{\r\n\tconst context = {}\r\n\r\n\tlet value = ''\r\n\r\n\tlet focused_input_character_index = 0\r\n\r\n\tlet index = 0\r\n\twhile (index < text.length)\r\n\t{\r\n\t\tconst character = parse_character(text[index], value, context)\r\n\r\n\t\tif (character !== undefined)\r\n\t\t{\r\n\t\t\tvalue += character\r\n\r\n\t\t\tif (caret_position !== undefined)\r\n\t\t\t{\r\n\t\t\t\tif (caret_position === index)\r\n\t\t\t\t{\r\n\t\t\t\t\tfocused_input_character_index = value.length - 1;\r\n\t\t\t\t}\r\n\t\t\t\telse if (caret_position > index)\r\n\t\t\t\t{\r\n\t\t\t\t\tfocused_input_character_index = value.length\r\n\t\t\t\t}\r\n\t\t\t }\r\n\t\t}\r\n\r\n\t\tindex++\r\n\t}\r\n\r\n\t// If caret position wasn't specified\r\n\tif (caret_position === undefined)\r\n\t{\r\n\t\t// Then set caret position to \"after the last input character\"\r\n\t\tfocused_input_character_index = value.length\r\n\t}\r\n\r\n\tconst result =\r\n\t{\r\n\t\tvalue,\r\n\t\tcaret : focused_input_character_index\r\n\t}\r\n\r\n\treturn result\r\n}","// Edits text `value` (if `operation` is passed) and repositions the `caret` if needed.\r\n//\r\n// Example:\r\n//\r\n// value - '88005553535'\r\n// caret - 2 // starting from 0; is positioned before the first zero\r\n// operation - 'Backspace'\r\n//\r\n// Returns\r\n// {\r\n// \tvalue: '8005553535'\r\n// \tcaret: 1\r\n// }\r\n//\r\n// Currently supports just 'Delete' and 'Backspace' operations\r\n//\r\nexport default function edit(value, caret, operation)\r\n{\r\n\tswitch (operation)\r\n\t{\r\n\t\tcase 'Backspace':\r\n\t\t\t// If there exists the previous character,\r\n\t\t\t// then erase it and reposition the caret.\r\n\t\t\tif (caret > 0)\r\n\t\t\t{\r\n\t\t\t\t// Remove the previous character\r\n\t\t\t\tvalue = value.slice(0, caret - 1) + value.slice(caret)\r\n\t\t\t\t// Position the caret where the previous (erased) character was\r\n\t\t\t\tcaret--\r\n\t\t\t}\r\n\t\t\tbreak\r\n\r\n\t\tcase 'Delete':\r\n\t\t\t// Remove current digit (if any)\r\n\t\t\tvalue = value.slice(0, caret) + value.slice(caret + 1)\r\n\t\t\tbreak\r\n\t}\r\n\r\n\treturn { value, caret }\r\n}","import template_formatter from './templateFormatter.js'\r\n\r\n// Formats `value` value preserving `caret` at the same character.\r\n//\r\n// `{ value, caret }` attribute is the result of `parse()` function call.\r\n//\r\n// Returns `{ text, caret }` where the new `caret` is the caret position\r\n// inside `text` text corresponding to the original `caret` position inside `value`.\r\n//\r\n// `formatter(value)` is a function returning `{ text, template }`.\r\n//\r\n// `text` is the `value` value formatted using `template`.\r\n// It may either cut off the non-filled right part of the `template`\r\n// or it may fill the non-filled character placeholders\r\n// in the right part of the `template` with `spacer`\r\n// which is a space (' ') character by default.\r\n//\r\n// `template` is the template used to format the `value`.\r\n// It can be either a full-length template or a partial template.\r\n//\r\n// `formatter` can also be a string — a `template`\r\n// where character placeholders are denoted by 'x'es.\r\n// In this case `formatter` function is automatically created.\r\n//\r\n// Example:\r\n//\r\n// `value` is '880',\r\n// `caret` is `2` (before the first `0`)\r\n//\r\n// `formatter` is `'880' =>\r\n// { text: '8 (80 )', template: 'x (xxx) xxx-xx-xx' }`\r\n//\r\n// The result is `{ text: '8 (80 )', caret: 4 }`.\r\n//\r\nexport default function format(value, caret, formatter)\r\n{\r\n\tif (typeof formatter === 'string')\r\n\t{\r\n\t\tformatter = template_formatter(formatter)\r\n\t}\r\n\r\n\tlet { text, template } = formatter(value) || {}\r\n\r\n\tif (text === undefined)\r\n\t{\r\n\t\t text = value\r\n\t}\r\n\r\n\tif (template)\r\n\t{\r\n\t\tif (caret === undefined)\r\n\t\t{\r\n\t\t\tcaret = text.length\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tlet index = 0\r\n\t\t\tlet found = false\r\n\r\n\t\t\tlet possibly_last_input_character_index = -1\r\n\r\n\t\t\twhile (index < text.length && index < template.length)\r\n\t\t\t{\r\n\t\t\t\t// Character placeholder found\r\n\t\t\t\tif (text[index] !== template[index])\r\n\t\t\t\t{\r\n\t\t\t\t\tif (caret === 0)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = true\r\n\t\t\t\t\t\tcaret = index\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tpossibly_last_input_character_index = index\r\n\r\n\t\t\t\t\tcaret--\r\n\t\t\t\t}\r\n\r\n\t\t\t\tindex++\r\n\t\t\t}\r\n\r\n\t\t\t// If the caret was positioned after last input character,\r\n\t\t\t// then the text caret index is just after the last input character.\r\n\t\t\tif (!found)\r\n\t\t\t{\r\n\t\t\t\tcaret = possibly_last_input_character_index + 1\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn { text, caret }\r\n}","// This is just `./ReactInput.js` rewritten in Hooks.\r\n\r\nimport React, { useCallback, useRef } from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport {\r\n\tonChange as onInputChange,\r\n\tonKeyDown as onInputKeyDown\r\n} from '../inputControl.js'\r\n\r\n// Usage:\r\n//\r\n// this.setState({ phone })}\r\n// \tparse={character => character}\r\n// \tformat={value => ({ text: value, template: 'xxxxxxxx' })}/>\r\n//\r\nfunction Input({\r\n\tvalue,\r\n\tparse,\r\n\tformat,\r\n\tinputComponent: InputComponent,\r\n\tonChange,\r\n\tonKeyDown,\r\n\t...rest\r\n}, ref) {\r\n\tconst internalRef = useRef();\r\n\tconst setRef = useCallback((instance) => {\r\n\t\tinternalRef.current = instance;\r\n\t\tif (ref) {\r\n\t\t\tif (typeof ref === 'function') {\r\n\t\t\t\tref(instance)\r\n\t\t\t} else {\r\n\t\t\t\tref.current = instance\r\n\t\t\t}\r\n\t\t}\r\n\t}, [ref]);\r\n\tconst _onChange = useCallback((event) => {\r\n\t\treturn onInputChange(\r\n\t\t\tevent,\r\n\t\t\tinternalRef.current,\r\n\t\t\tparse,\r\n\t\t\tformat,\r\n\t\t\tonChange\r\n\t\t)\r\n\t}, [internalRef, parse, format, onChange])\r\n\r\n\tconst _onKeyDown = useCallback((event) => {\r\n\t\tif (onKeyDown) {\r\n\t\t\tonKeyDown(event)\r\n\t\t}\r\n\t\t// If `onKeyDown()` handler above has called `event.preventDefault()`\r\n\t\t// then ignore this `keydown` event.\r\n\t\tif (event.defaultPrevented) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\treturn onInputKeyDown(\r\n\t\t\tevent,\r\n\t\t\tinternalRef.current,\r\n\t\t\tparse,\r\n\t\t\tformat,\r\n\t\t\tonChange\r\n\t\t)\r\n\t}, [internalRef, parse, format, onChange, onKeyDown])\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nInput = React.forwardRef(Input)\r\n\r\nInput.propTypes = {\r\n\t// Parses a single characher of `` text.\r\n\tparse: PropTypes.func.isRequired,\r\n\r\n\t// Formats `value` into `` text.\r\n\tformat: PropTypes.func.isRequired,\r\n\r\n\t// Renders `` by default.\r\n\tinputComponent: PropTypes.elementType.isRequired,\r\n\r\n\t// `` `type` attribute.\r\n\ttype: PropTypes.string.isRequired,\r\n\r\n\t// Is parsed from text.\r\n\tvalue: PropTypes.string,\r\n\r\n\t// This handler is called each time `` text is changed.\r\n\tonChange: PropTypes.func.isRequired,\r\n\r\n\t// Passthrough\r\n\tonKeyDown: PropTypes.func,\r\n\tonCut: PropTypes.func,\r\n\tonPaste: PropTypes.func\r\n}\r\n\r\nInput.defaultProps = {\r\n\t// Renders `` by default.\r\n\tinputComponent: 'input',\r\n\r\n\t// `` `type` attribute.\r\n\ttype: 'text'\r\n}\r\n\r\nexport default Input\r\n\r\nfunction isEmptyValue(value) {\r\n\treturn value === undefined || value === null\r\n}","// This \"state\" object simply holds the state of the \"AsYouType\" parser:\r\n//\r\n// * `country?: string`\r\n// * `callingCode?: string`\r\n// * `digits: string`\r\n// * `international: boolean`\r\n// * `missingPlus: boolean`\r\n// * `IDDPrefix?: string`\r\n// * `carrierCode?: string`\r\n// * `nationalPrefix?: string`\r\n// * `nationalSignificantNumber?: string`\r\n// * `nationalSignificantNumberMatchesInput: boolean`\r\n// * `complexPrefixBeforeNationalSignificantNumber?: string`\r\n//\r\n// `state.country` and `state.callingCode` aren't required to be in sync.\r\n// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\r\n// So `state.country` and `state.callingCode` are totally independent.\r\n//\r\nexport default class AsYouTypeState {\r\n\tconstructor({ onCountryChange, onCallingCodeChange }) {\r\n\t\tthis.onCountryChange = onCountryChange\r\n\t\tthis.onCallingCodeChange = onCallingCodeChange\r\n\t}\r\n\r\n\treset({ country, callingCode }) {\r\n\t\tthis.international = false\r\n\t\tthis.missingPlus = false\r\n\t\tthis.IDDPrefix = undefined\r\n\t\tthis.callingCode = undefined\r\n\t\tthis.digits = ''\r\n\t\tthis.resetNationalSignificantNumber()\r\n\t\tthis.initCountryAndCallingCode(country, callingCode)\r\n\t}\r\n\r\n\tresetNationalSignificantNumber() {\r\n\t\tthis.nationalSignificantNumber = this.getNationalDigits()\r\n\t\tthis.nationalSignificantNumberMatchesInput = true\r\n\t\tthis.nationalPrefix = undefined\r\n\t\tthis.carrierCode = undefined\r\n\t\tthis.complexPrefixBeforeNationalSignificantNumber = undefined\r\n\t}\r\n\r\n\tupdate(properties) {\r\n\t\tfor (const key of Object.keys(properties)) {\r\n\t\t\tthis[key] = properties[key]\r\n\t\t}\r\n\t}\r\n\r\n\tinitCountryAndCallingCode(country, callingCode) {\r\n\t\tthis.setCountry(country)\r\n\t\tthis.setCallingCode(callingCode)\r\n\t}\r\n\r\n\tsetCountry(country) {\r\n\t\tthis.country = country\r\n\t\tthis.onCountryChange(country)\r\n\t}\r\n\r\n\tsetCallingCode(callingCode) {\r\n\t\tthis.callingCode = callingCode\r\n\t\tthis.onCallingCodeChange(callingCode, this.country)\r\n\t}\r\n\r\n\tstartInternationalNumber(country, callingCode) {\r\n\t\t// Prepend the `+` to parsed input.\r\n\t\tthis.international = true\r\n\t\t// If a default country was set then reset it\r\n\t\t// because an explicitly international phone\r\n\t\t// number is being entered.\r\n\t\tthis.initCountryAndCallingCode(country, callingCode)\r\n\t}\r\n\r\n\tappendDigits(nextDigits) {\r\n\t\tthis.digits += nextDigits\r\n\t}\r\n\r\n\tappendNationalSignificantNumberDigits(nextDigits) {\r\n\t\tthis.nationalSignificantNumber += nextDigits\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the part of `this.digits` that corresponds to the national number.\r\n\t * Basically, all digits that have been input by the user, except for the\r\n\t * international prefix and the country calling code part\r\n\t * (if the number is an international one).\r\n\t * @return {string}\r\n\t */\r\n\tgetNationalDigits() {\r\n\t\tif (this.international) {\r\n\t\t\treturn this.digits.slice(\r\n\t\t\t\t(this.IDDPrefix ? this.IDDPrefix.length : 0) +\r\n\t\t\t\t(this.callingCode ? this.callingCode.length : 0)\r\n\t\t\t)\r\n\t\t}\r\n\t\treturn this.digits\r\n\t}\r\n\r\n\tgetDigitsWithoutInternationalPrefix() {\r\n\t\tif (this.international) {\r\n\t\t\tif (this.IDDPrefix) {\r\n\t\t\t\treturn this.digits.slice(this.IDDPrefix.length)\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.digits\r\n\t}\r\n}","// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\r\nexport const DIGIT_PLACEHOLDER = 'x' // '\\u2008' (punctuation space)\r\nconst DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER)\r\n\r\n// Counts all occurences of a symbol in a string.\r\n// Unicode-unsafe (because using `.split()`).\r\nexport function countOccurences(symbol, string) {\r\n\tlet count = 0\r\n\t// Using `.split('')` to iterate through a string here\r\n\t// to avoid requiring `Symbol.iterator` polyfill.\r\n\t// `.split('')` is generally not safe for Unicode,\r\n\t// but in this particular case for counting brackets it is safe.\r\n\t// for (const character of string)\r\n\tfor (const character of string.split('')) {\r\n\t\tif (character === symbol) {\r\n\t\t\tcount++\r\n\t\t}\r\n\t}\r\n\treturn count\r\n}\r\n\r\n// Repeats a string (or a symbol) N times.\r\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\r\nexport function repeat(string, times) {\r\n\tif (times < 1) {\r\n\t\treturn ''\r\n\t}\r\n\tlet result = ''\r\n\twhile (times > 1) {\r\n\t\tif (times & 1) {\r\n\t\t\tresult += string\r\n\t\t}\r\n\t\ttimes >>= 1\r\n\t\tstring += string\r\n\t}\r\n\treturn result + string\r\n}\r\n\r\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\r\n\tif (string[cutBeforeIndex] === ')') {\r\n\t\tcutBeforeIndex++\r\n\t}\r\n\treturn stripNonPairedParens(string.slice(0, cutBeforeIndex))\r\n}\r\n\r\nexport function closeNonPairedParens(template, cut_before) {\r\n\tconst retained_template = template.slice(0, cut_before)\r\n\tconst opening_braces = countOccurences('(', retained_template)\r\n\tconst closing_braces = countOccurences(')', retained_template)\r\n\tlet dangling_braces = opening_braces - closing_braces\r\n\twhile (dangling_braces > 0 && cut_before < template.length) {\r\n\t\tif (template[cut_before] === ')') {\r\n\t\t\tdangling_braces--\r\n\t\t}\r\n\t\tcut_before++\r\n\t}\r\n\treturn template.slice(0, cut_before)\r\n}\r\n\r\nexport function stripNonPairedParens(string) {\r\n\tconst dangling_braces =[]\r\n\tlet i = 0\r\n\twhile (i < string.length) {\r\n\t\tif (string[i] === '(') {\r\n\t\t\tdangling_braces.push(i)\r\n\t\t}\r\n\t\telse if (string[i] === ')') {\r\n\t\t\tdangling_braces.pop()\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\tlet start = 0\r\n\tlet cleared_string = ''\r\n\tdangling_braces.push(string.length)\r\n\tfor (const index of dangling_braces) {\r\n\t\tcleared_string += string.slice(start, index)\r\n\t\tstart = index + 1\r\n\t}\r\n\treturn cleared_string\r\n}\r\n\r\nexport function populateTemplateWithDigits(template, position, digits) {\r\n\t// Using `.split('')` to iterate through a string here\r\n\t// to avoid requiring `Symbol.iterator` polyfill.\r\n\t// `.split('')` is generally not safe for Unicode,\r\n\t// but in this particular case for `digits` it is safe.\r\n\t// for (const digit of digits)\r\n\tfor (const digit of digits.split('')) {\r\n\t\t// If there is room for more digits in current `template`,\r\n\t\t// then set the next digit in the `template`,\r\n\t\t// and return the formatted digits so far.\r\n\t\t// If more digits are entered than the current format could handle.\r\n\t\tif (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tposition = template.search(DIGIT_PLACEHOLDER_MATCHER)\r\n\t\ttemplate = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit)\r\n\t}\r\n\treturn [template, position]\r\n}","import checkNumberLength from './helpers/checkNumberLength.js'\r\nimport parseDigits from './helpers/parseDigits.js'\r\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js'\r\n\r\nexport default function formatCompleteNumber(state, format, {\r\n\tmetadata,\r\n\tshouldTryNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\tconst matcher = new RegExp(`^(?:${format.pattern()})$`)\r\n\tif (matcher.test(state.nationalSignificantNumber)) {\r\n\t\treturn formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(\r\n\t\t\tstate,\r\n\t\t\tformat,\r\n\t\t\t{\r\n\t\t\t\tmetadata,\r\n\t\t\t\tshouldTryNationalPrefixFormattingRule,\r\n\t\t\t\tgetSeparatorAfterNationalPrefix\r\n\t\t\t}\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\r\n\treturn checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE'\r\n}\r\n\r\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\r\n\tmetadata,\r\n\tshouldTryNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\t// `format` has already been checked for `nationalPrefix` requirement.\r\n\r\n\tconst {\r\n\t\tnationalSignificantNumber,\r\n\t\tinternational,\r\n\t\tnationalPrefix,\r\n\t\tcarrierCode\r\n\t} = state\r\n\r\n\t// Format the number with using `national_prefix_formatting_rule`.\r\n\t// If the resulting formatted number is a valid formatted number, then return it.\r\n\t//\r\n\t// Google's AsYouType formatter is different in a way that it doesn't try\r\n\t// to format using the \"national prefix formatting rule\", and instead it\r\n\t// simply prepends a national prefix followed by a \" \" character.\r\n\t// This code does that too, but as a fallback.\r\n\t// The reason is that \"national prefix formatting rule\" may use parentheses,\r\n\t// which wouldn't be included has it used the simpler Google's way.\r\n\t//\r\n\tif (shouldTryNationalPrefixFormattingRule(format)) {\r\n\t\tconst formattedNumber = formatNationalNumber(state, format, {\r\n\t\t\tuseNationalPrefixFormattingRule: true,\r\n\t\t\tgetSeparatorAfterNationalPrefix,\r\n\t\t\tmetadata\r\n\t\t})\r\n\t\tif (formattedNumber) {\r\n\t\t\treturn formattedNumber\r\n\t\t}\r\n\t}\r\n\r\n\t// Format the number without using `national_prefix_formatting_rule`.\r\n\treturn formatNationalNumber(state, format, {\r\n\t\tuseNationalPrefixFormattingRule: false,\r\n\t\tgetSeparatorAfterNationalPrefix,\r\n\t\tmetadata\r\n\t})\r\n}\r\n\r\nfunction formatNationalNumber(state, format, {\r\n\tmetadata,\r\n\tuseNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\tlet formattedNationalNumber = formatNationalNumberUsingFormat(\r\n\t\tstate.nationalSignificantNumber,\r\n\t\tformat,\r\n\t\t{\r\n\t\t\tcarrierCode: state.carrierCode,\r\n\t\t\tuseInternationalFormat: state.international,\r\n\t\t\twithNationalPrefix: useNationalPrefixFormattingRule,\r\n\t\t\tmetadata\r\n\t\t}\r\n\t)\r\n\tif (!useNationalPrefixFormattingRule) {\r\n\t\tif (state.nationalPrefix) {\r\n\t\t\t// If a national prefix was extracted, then just prepend it,\r\n\t\t\t// followed by a \" \" character.\r\n\t\t\tformattedNationalNumber = state.nationalPrefix +\r\n\t\t\t\tgetSeparatorAfterNationalPrefix(format) +\r\n\t\t\t\tformattedNationalNumber\r\n\t\t} else if (state.complexPrefixBeforeNationalSignificantNumber) {\r\n\t\t\tformattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber +\r\n\t\t\t\t' ' +\r\n\t\t\t\tformattedNationalNumber\r\n\t\t}\r\n\t}\r\n\tif (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\r\n\t\treturn formattedNationalNumber\r\n\t}\r\n}\r\n\r\n// Check that the formatted phone number contains exactly\r\n// the same digits that have been input by the user.\r\n// For example, when \"0111523456789\" is input for `AR` country,\r\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\r\n// which means that the national part of `this.digits` isn't simply equal to\r\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\r\n//\r\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\r\n// being formatted via `metadata[country].national_prefix_transform_rule`.\r\n// For example, for `VI` country, it prepends `340` to the national number,\r\n// and if this check hasn't been implemented, then there would be a bug\r\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\r\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\r\n//\r\n// So, all these \"gotchas\" are filtered out.\r\n//\r\n// In the original Google's code, the comments say:\r\n// \"Check that we didn't remove nor add any extra digits when we matched\r\n// this formatting pattern. This usually happens after we entered the last\r\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\r\n// formatted but AYTF should retain all the number entered and not change\r\n// in order to match a format (of same leading digits and length) display\r\n// in that way.\"\r\n// \"If it's the same (i.e entered number and format is same), then it's\r\n// safe to return this in formatted number as nothing is lost / added.\"\r\n// Otherwise, don't use this format.\r\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\r\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\r\n//\r\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\r\n\treturn parseDigits(formattedNationalNumber) === state.getNationalDigits()\r\n}","export default class PatternParser {\r\n\tparse(pattern) {\r\n\t\tthis.context = [{\r\n\t\t\tor: true,\r\n\t\t\tinstructions: []\r\n\t\t}]\r\n\r\n\t\tthis.parsePattern(pattern)\r\n\r\n\t\tif (this.context.length !== 1) {\r\n\t\t\tthrow new Error('Non-finalized contexts left when pattern parse ended')\r\n\t\t}\r\n\r\n\t\tconst { branches, instructions } = this.context[0]\r\n\r\n\t\tif (branches) {\r\n\t\t\treturn {\r\n\t\t\t\top: '|',\r\n\t\t\t\targs: branches.concat([\r\n\t\t\t\t\texpandSingleElementArray(instructions)\r\n\t\t\t\t])\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/* istanbul ignore if */\r\n\t\tif (instructions.length === 0) {\r\n\t\t\tthrow new Error('Pattern is required')\r\n\t\t}\r\n\r\n\t\tif (instructions.length === 1) {\r\n\t\t\treturn instructions[0]\r\n\t\t}\r\n\r\n\t\treturn instructions\r\n\t}\r\n\r\n\tstartContext(context) {\r\n\t\tthis.context.push(context)\r\n\t}\r\n\r\n\tendContext() {\r\n\t\tthis.context.pop()\r\n\t}\r\n\r\n\tgetContext() {\r\n\t\treturn this.context[this.context.length - 1]\r\n\t}\r\n\r\n\tparsePattern(pattern) {\r\n\t\tif (!pattern) {\r\n\t\t\tthrow new Error('Pattern is required')\r\n\t\t}\r\n\r\n\t\tconst match = pattern.match(OPERATOR)\r\n\t\tif (!match) {\r\n\t\t\tif (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\r\n\t\t\t\tthrow new Error(`Illegal characters found in a pattern: ${pattern}`)\r\n\t\t\t}\r\n\t\t\tthis.getContext().instructions = this.getContext().instructions.concat(\r\n\t\t\t\tpattern.split('')\r\n\t\t\t)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst operator = match[1]\r\n\t\tconst before = pattern.slice(0, match.index)\r\n\t\tconst rightPart = pattern.slice(match.index + operator.length)\r\n\r\n\t\tswitch (operator) {\r\n\t\t\tcase '(?:':\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tthis.startContext({\r\n\t\t\t\t\tor: true,\r\n\t\t\t\t\tinstructions: [],\r\n\t\t\t\t\tbranches: []\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase ')':\r\n\t\t\t\tif (!this.getContext().or) {\r\n\t\t\t\t\tthrow new Error('\")\" operator must be preceded by \"(?:\" operator')\r\n\t\t\t\t}\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tif (this.getContext().instructions.length === 0) {\r\n\t\t\t\t\tthrow new Error('No instructions found after \"|\" operator in an \"or\" group')\r\n\t\t\t\t}\r\n\t\t\t\tconst { branches } = this.getContext()\r\n\t\t\t\tbranches.push(\r\n\t\t\t\t\texpandSingleElementArray(\r\n\t\t\t\t\t\tthis.getContext().instructions\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\tthis.endContext()\r\n\t\t\t\tthis.getContext().instructions.push({\r\n\t\t\t\t\top: '|',\r\n\t\t\t\t\targs: branches\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase '|':\r\n\t\t\t\tif (!this.getContext().or) {\r\n\t\t\t\t\tthrow new Error('\"|\" operator can only be used inside \"or\" groups')\r\n\t\t\t\t}\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\t// The top-level is an implicit \"or\" group, if required.\r\n\t\t\t\tif (!this.getContext().branches) {\r\n\t\t\t\t\t// `branches` are not defined only for the root implicit \"or\" operator.\r\n\t\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\t\tif (this.context.length === 1) {\r\n\t\t\t\t\t\tthis.getContext().branches = []\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow new Error('\"branches\" not found in an \"or\" group context')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.getContext().branches.push(\r\n\t\t\t\t\texpandSingleElementArray(\r\n\t\t\t\t\t\tthis.getContext().instructions\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\tthis.getContext().instructions = []\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase '[':\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tthis.startContext({\r\n\t\t\t\t\toneOfSet: true\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase ']':\r\n\t\t\t\tif (!this.getContext().oneOfSet) {\r\n\t\t\t\t\tthrow new Error('\"]\" operator must be preceded by \"[\" operator')\r\n\t\t\t\t}\r\n\t\t\t\tthis.endContext()\r\n\t\t\t\tthis.getContext().instructions.push({\r\n\t\t\t\t\top: '[]',\r\n\t\t\t\t\targs: parseOneOfSet(before)\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(`Unknown operator: ${operator}`)\r\n\t\t}\r\n\r\n\t\tif (rightPart) {\r\n\t\t\tthis.parsePattern(rightPart)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction parseOneOfSet(pattern) {\r\n\tconst values = []\r\n\tlet i = 0\r\n\twhile (i < pattern.length) {\r\n\t\tif (pattern[i] === '-') {\r\n\t\t\tif (i === 0 || i === pattern.length - 1) {\r\n\t\t\t\tthrow new Error(`Couldn't parse a one-of set pattern: ${pattern}`)\r\n\t\t\t}\r\n\t\t\tconst prevValue = pattern[i - 1].charCodeAt(0) + 1\r\n\t\t\tconst nextValue = pattern[i + 1].charCodeAt(0) - 1\r\n\t\t\tlet value = prevValue\r\n\t\t\twhile (value <= nextValue) {\r\n\t\t\t\tvalues.push(String.fromCharCode(value))\r\n\t\t\t\tvalue++\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalues.push(pattern[i])\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn values\r\n}\r\n\r\nconst ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/\r\n\r\nconst OPERATOR = new RegExp(\r\n\t// any of:\r\n\t'(' +\r\n\t\t// or operator\r\n\t\t'\\\\|' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// or group start\r\n\t\t'\\\\(\\\\?\\\\:' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// or group end\r\n\t\t'\\\\)' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// one-of set start\r\n\t\t'\\\\[' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// one-of set end\r\n\t\t'\\\\]' +\r\n\t')'\r\n)\r\n\r\nfunction expandSingleElementArray(array) {\r\n\tif (array.length === 1) {\r\n\t\treturn array[0]\r\n\t}\r\n\treturn array\r\n}","import PatternParser from './AsYouTypeFormatter.PatternParser.js'\r\n\r\nexport default class PatternMatcher {\r\n\tconstructor(pattern) {\r\n\t\tthis.matchTree = new PatternParser().parse(pattern)\r\n\t}\r\n\r\n\tmatch(string, { allowOverflow } = {}) {\r\n\t\tif (!string) {\r\n\t\t\tthrow new Error('String is required')\r\n\t\t}\r\n\t\tconst result = match(string.split(''), this.matchTree, true)\r\n\t\tif (result && result.match) {\r\n\t\t\tdelete result.matchedChars\r\n\t\t}\r\n\t\tif (result && result.overflow) {\r\n\t\t\tif (!allowOverflow) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result\r\n\t}\r\n}\r\n\r\n/**\r\n * Matches `characters` against a pattern compiled into a `tree`.\r\n * @param {string[]} characters\r\n * @param {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\r\n * @param {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\r\n * @return {object} See the `*.d.ts` file for the description of the result object.\r\n */\r\nfunction match(characters, tree, last) {\r\n\t// If `tree` is a string, then `tree` is a single character.\r\n\t// That's because when a pattern is parsed, multi-character-string parts\r\n\t// of a pattern are compiled into arrays of single characters.\r\n\t// I still wrote this piece of code for a \"general\" hypothetical case\r\n\t// when `tree` could be a string of several characters, even though\r\n\t// such case is not possible with the current implementation.\r\n\tif (typeof tree === 'string') {\r\n\t\tconst characterString = characters.join('')\r\n\t\tif (tree.indexOf(characterString) === 0) {\r\n\t\t\t// `tree` is always a single character.\r\n\t\t\t// If `tree.indexOf(characterString) === 0`\r\n\t\t\t// then `characters.length === tree.length`.\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (characters.length === tree.length) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tmatch: true,\r\n\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// `tree` is always a single character.\r\n\t\t\t// If `tree.indexOf(characterString) === 0`\r\n\t\t\t// then `characters.length === tree.length`.\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\treturn {\r\n\t\t\t\tpartialMatch: true,\r\n\t\t\t\t// matchedChars: characters\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (characterString.indexOf(tree) === 0) {\r\n\t\t\tif (last) {\r\n\t\t\t\t// The `else` path is not possible because `tree` is always a single character.\r\n\t\t\t\t// The `else` case for `characters.length > tree.length` would be\r\n\t\t\t\t// `characters.length <= tree.length` which means `characters.length <= 1`.\r\n\t\t\t\t// `characters` array can't be empty, so that means `characters === [tree]`,\r\n\t\t\t\t// which would also mean `tree.indexOf(characterString) === 0` and that'd mean\r\n\t\t\t\t// that the `if (tree.indexOf(characterString) === 0)` condition before this\r\n\t\t\t\t// `if` condition would be entered, and returned from there, not reaching this code.\r\n\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\tif (characters.length > tree.length) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\toverflow: true\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tmatch: true,\r\n\t\t\t\tmatchedChars: characters.slice(0, tree.length)\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn\r\n\t}\r\n\r\n\tif (Array.isArray(tree)) {\r\n\t\tlet restCharacters = characters.slice()\r\n\t\tlet i = 0\r\n\t\twhile (i < tree.length) {\r\n\t\t\tconst subtree = tree[i]\r\n\t\t\tconst result = match(restCharacters, subtree, last && (i === tree.length - 1))\r\n\t\t\tif (!result) {\r\n\t\t\t\treturn\r\n\t\t\t} else if (result.overflow) {\r\n\t\t\t\treturn result\r\n\t\t\t} else if (result.match) {\r\n\t\t\t\t// Continue with the next subtree with the rest of the characters.\r\n\t\t\t\trestCharacters = restCharacters.slice(result.matchedChars.length)\r\n\t\t\t\tif (restCharacters.length === 0) {\r\n\t\t\t\t\tif (i === tree.length - 1) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t\t\t// matchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\tif (result.partialMatch) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t\t// matchedChars: characters\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow new Error(`Unsupported match result:\\n${JSON.stringify(result, null, 2)}`)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ti++\r\n\t\t}\r\n\t\t// If `last` then overflow has already been checked\r\n\t\t// by the last element of the `tree` array.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (last) {\r\n\t\t\treturn {\r\n\t\t\t\toverflow: true\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tmatch: true,\r\n\t\t\tmatchedChars: characters.slice(0, characters.length - restCharacters.length)\r\n\t\t}\r\n\t}\r\n\r\n\tswitch (tree.op) {\r\n\t\tcase '|':\r\n\t\t\tlet partialMatch\r\n\t\t\tfor (const branch of tree.args) {\r\n\t\t\t\tconst result = match(characters, branch, last)\r\n\t\t\t\tif (result) {\r\n\t\t\t\t\tif (result.overflow) {\r\n\t\t\t\t\t\treturn result\r\n\t\t\t\t\t} else if (result.match) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: result.matchedChars\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\t\t\tif (result.partialMatch) {\r\n\t\t\t\t\t\t\tpartialMatch = true\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthrow new Error(`Unsupported match result:\\n${JSON.stringify(result, null, 2)}`)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (partialMatch) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t// matchedChars: ...\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Not even a partial match.\r\n\t\t\treturn\r\n\r\n\t\tcase '[]':\r\n\t\t\tfor (const char of tree.args) {\r\n\t\t\t\tif (characters[0] === char) {\r\n\t\t\t\t\tif (characters.length === 1) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (last) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\toverflow: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\tmatchedChars: [char]\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// No character matches.\r\n\t\t\treturn\r\n\r\n\t\t/* istanbul ignore next */\r\n\t\tdefault:\r\n\t\t\tthrow new Error(`Unsupported instruction tree: ${tree}`)\r\n\t}\r\n}","import {\r\n\tDIGIT_PLACEHOLDER,\r\n\tcountOccurences,\r\n\trepeat,\r\n\tcutAndStripNonPairedParens,\r\n\tcloseNonPairedParens,\r\n\tstripNonPairedParens,\r\n\tpopulateTemplateWithDigits\r\n} from './AsYouTypeFormatter.util.js'\r\n\r\nimport formatCompleteNumber, {\r\n\tcanFormatCompleteNumber\r\n} from './AsYouTypeFormatter.complete.js'\r\n\r\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js'\r\n\r\nimport parseDigits from './helpers/parseDigits.js'\r\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util.js'\r\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat.js'\r\nimport { VALID_PUNCTUATION } from './constants.js'\r\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle.js'\r\n\r\n// Used in phone number format template creation.\r\n// Could be any digit, I guess.\r\nconst DUMMY_DIGIT = '9'\r\n// I don't know why is it exactly `15`\r\nconst LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15\r\n// Create a phone number consisting only of the digit 9 that matches the\r\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\r\nconst LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH)\r\n\r\n// A set of characters that, if found in a national prefix formatting rules, are an indicator to\r\n// us that we should separate the national prefix from the number when formatting.\r\nconst NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/\r\n\r\n// Deprecated: Google has removed some formatting pattern related code from their repo.\r\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\r\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\r\n// Because this library supports generating custom metadata\r\n// some users may still be using old metadata so the relevant\r\n// code seems to stay until some next major version update.\r\nconst SUPPORT_LEGACY_FORMATTING_PATTERNS = true\r\n\r\n// A pattern that is used to match character classes in regular expressions.\r\n// An example of a character class is \"[1-4]\".\r\nconst CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && (() => /\\[([^\\[\\]])*\\]/g)\r\n\r\n// Any digit in a regular expression that actually denotes a digit. For\r\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\r\n// (8 and 0) are standalone digits, but the rest are not.\r\n// Two look-aheads are needed because the number following \\\\d could be a\r\n// two-digit number, since the phone number can be as long as 15 digits.\r\nconst CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && (() => /\\d(?=[^,}][^,}])/g)\r\n\r\n// A regular expression that is used to determine if a `format` is\r\n// suitable to be used in the \"as you type formatter\".\r\n// A `format` is suitable when the resulting formatted number has\r\n// the same digits as the user has entered.\r\n//\r\n// In the simplest case, that would mean that the format\r\n// doesn't add any additional digits when formatting a number.\r\n// Google says that it also shouldn't add \"star\" (`*`) characters,\r\n// like it does in some Israeli formats.\r\n// Such basic format would only contain \"valid punctuation\"\r\n// and \"captured group\" identifiers ($1, $2, etc).\r\n//\r\n// An example of a format that adds additional digits:\r\n//\r\n// Country: `AR` (Argentina).\r\n// Format:\r\n// {\r\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\r\n// \"leading_digits_patterns\": [\"91\"],\r\n// \"national_prefix_formatting_rule\": \"0$1\",\r\n// \"format\": \"$2 15-$3-$4\",\r\n// \"international_format\": \"$1 $2 $3-$4\"\r\n// }\r\n//\r\n// In the format above, the `format` adds `15` to the digits when formatting a number.\r\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\r\n// has previously removed `15` from a national number, so re-adding `15` in `format`\r\n// doesn't actually result in any extra digits added to user's input.\r\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\r\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\r\n//\r\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\r\n// `libphonenumber` code.\r\n//\r\nconst NON_ALTERING_FORMAT_REG_EXP = new RegExp(\r\n\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t// Google developers say:\r\n\t// \"We require that the first matching group is present in the\r\n\t// output pattern to ensure no data is lost while formatting.\"\r\n\t'\\\\$1' +\r\n\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t'(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)*' +\r\n\t'$'\r\n)\r\n\r\n// This is the minimum length of the leading digits of a phone number\r\n// to guarantee the first \"leading digits pattern\" for a phone number format\r\n// to be preemptive.\r\nconst MIN_LEADING_DIGITS_LENGTH = 3\r\n\r\nexport default class AsYouTypeFormatter {\r\n\tconstructor({\r\n\t\tstate,\r\n\t\tmetadata\r\n\t}) {\r\n\t\tthis.metadata = metadata\r\n\t\tthis.resetFormat()\r\n\t}\r\n\r\n\tresetFormat() {\r\n\t\tthis.chosenFormat = undefined\r\n\t\tthis.template = undefined\r\n\t\tthis.nationalNumberTemplate = undefined\r\n\t\tthis.populatedNationalNumberTemplate = undefined\r\n\t\tthis.populatedNationalNumberTemplatePosition = -1\r\n\t}\r\n\r\n\treset(numberingPlan, state) {\r\n\t\tthis.resetFormat()\r\n\t\tif (numberingPlan) {\r\n\t\t\tthis.isNANP = numberingPlan.callingCode() === '1'\r\n\t\t\tthis.matchingFormats = numberingPlan.formats()\r\n\t\t\tif (state.nationalSignificantNumber) {\r\n\t\t\t\tthis.narrowDownMatchingFormats(state)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.isNANP = undefined\r\n\t\t\tthis.matchingFormats = []\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Formats an updated phone number.\r\n\t * @param {string} nextDigits — Additional phone number digits.\r\n\t * @param {object} state — `AsYouType` state.\r\n\t * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n\t */\r\n\tformat(nextDigits, state) {\r\n\t\t// See if the phone number digits can be formatted as a complete phone number.\r\n\t\t// If not, use the results from `formatNationalNumberWithNextDigits()`,\r\n\t\t// which formats based on the chosen formatting pattern.\r\n\t\t//\r\n\t\t// Attempting to format complete phone number first is how it's done\r\n\t\t// in Google's `libphonenumber`, so this library just follows it.\r\n\t\t// Google's `libphonenumber` code doesn't explain in detail why does it\r\n\t\t// attempt to format digits as a complete phone number\r\n\t\t// instead of just going with a previoulsy (or newly) chosen `format`:\r\n\t\t//\r\n\t\t// \"Checks to see if there is an exact pattern match for these digits.\r\n\t\t// If so, we should use this instead of any other formatting template\r\n\t\t// whose leadingDigitsPattern also matches the input.\"\r\n\t\t//\r\n\t\tif (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\r\n\t\t\tfor (const format of this.matchingFormats) {\r\n\t\t\t\tconst formattedCompleteNumber = formatCompleteNumber(\r\n\t\t\t\t\tstate,\r\n\t\t\t\t\tformat,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmetadata: this.metadata,\r\n\t\t\t\t\t\tshouldTryNationalPrefixFormattingRule: (format) => this.shouldTryNationalPrefixFormattingRule(format, {\r\n\t\t\t\t\t\t\tinternational: state.international,\r\n\t\t\t\t\t\t\tnationalPrefix: state.nationalPrefix\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tgetSeparatorAfterNationalPrefix: (format) => this.getSeparatorAfterNationalPrefix(format)\r\n\t\t\t\t\t}\r\n\t\t\t\t)\r\n\t\t\t\tif (formattedCompleteNumber) {\r\n\t\t\t\t\tthis.resetFormat()\r\n\t\t\t\t\tthis.chosenFormat = format\r\n\t\t\t\t\tthis.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state)\r\n\t\t\t\t\tthis.populatedNationalNumberTemplate = formattedCompleteNumber\r\n\t\t\t\t\t// With a new formatting template, the matched position\r\n\t\t\t\t\t// using the old template needs to be reset.\r\n\t\t\t\t\tthis.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER)\r\n\t\t\t\t\treturn formattedCompleteNumber\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Format the digits as a partial (incomplete) phone number\r\n\t\t// using the previously chosen formatting pattern (or a newly chosen one).\r\n\t\treturn this.formatNationalNumberWithNextDigits(nextDigits, state)\r\n\t}\r\n\r\n\t// Formats the next phone number digits.\r\n\tformatNationalNumberWithNextDigits(nextDigits, state) {\r\n\t\tconst previouslyChosenFormat = this.chosenFormat\r\n\r\n\t\t// Choose a format from the list of matching ones.\r\n\t\tconst newlyChosenFormat = this.chooseFormat(state)\r\n\r\n\t\tif (newlyChosenFormat) {\r\n\t\t\tif (newlyChosenFormat === previouslyChosenFormat) {\r\n\t\t\t\t// If it can format the next (current) digits\r\n\t\t\t\t// using the previously chosen phone number format\r\n\t\t\t\t// then return the updated formatted number.\r\n\t\t\t\treturn this.formatNextNationalNumberDigits(nextDigits)\r\n\t\t\t} else {\r\n\t\t\t\t// If a more appropriate phone number format\r\n\t\t\t\t// has been chosen for these \"leading digits\",\r\n\t\t\t\t// then re-format the national phone number part\r\n\t\t\t\t// using the newly selected format.\r\n\t\t\t\treturn this.formatNextNationalNumberDigits(state.getNationalDigits())\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tnarrowDownMatchingFormats({\r\n\t\tnationalSignificantNumber,\r\n\t\tnationalPrefix,\r\n\t\tinternational\r\n\t}) {\r\n\t\tconst leadingDigits = nationalSignificantNumber\r\n\r\n\t\t// \"leading digits\" pattern list starts with a\r\n\t\t// \"leading digits\" pattern fitting a maximum of 3 leading digits.\r\n\t\t// So, after a user inputs 3 digits of a national (significant) phone number\r\n\t\t// this national (significant) number can already be formatted.\r\n\t\t// The next \"leading digits\" pattern is for 4 leading digits max,\r\n\t\t// and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\r\n\r\n\t\t// This implementation is different from Google's\r\n\t\t// in that it searches for a fitting format\r\n\t\t// even if the user has entered less than\r\n\t\t// `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\r\n\t\t// Because some leading digit patterns already match for a single first digit.\r\n\t\tlet leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH\r\n\t\tif (leadingDigitsPatternIndex < 0) {\r\n\t\t\tleadingDigitsPatternIndex = 0\r\n\t\t}\r\n\r\n\t\tthis.matchingFormats = this.matchingFormats.filter(\r\n\t\t\tformat => this.formatSuits(format, international, nationalPrefix)\r\n\t\t\t\t&& this.formatMatches(format, leadingDigits, leadingDigitsPatternIndex)\r\n\t\t)\r\n\r\n\t\t// If there was a phone number format chosen\r\n\t\t// and it no longer holds given the new leading digits then reset it.\r\n\t\t// The test for this `if` condition is marked as:\r\n\t\t// \"Reset a chosen format when it no longer holds given the new leading digits\".\r\n\t\t// To construct a valid test case for this one can find a country\r\n\t\t// in `PhoneNumberMetadata.xml` yielding one format for 3 ``\r\n\t\t// and yielding another format for 4 `` (Australia in this case).\r\n\t\tif (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\r\n\t\t\tthis.resetFormat()\r\n\t\t}\r\n\t}\r\n\r\n\tformatSuits(format, international, nationalPrefix) {\r\n\t\t// When a prefix before a national (significant) number is\r\n\t\t// simply a national prefix, then it's parsed as `this.nationalPrefix`.\r\n\t\t// In more complex cases, a prefix before national (significant) number\r\n\t\t// could include a national prefix as well as some \"capturing groups\",\r\n\t\t// and in that case there's no info whether a national prefix has been parsed.\r\n\t\t// If national prefix is not used when formatting a phone number\r\n\t\t// using this format, but a national prefix has been entered by the user,\r\n\t\t// and was extracted, then discard such phone number format.\r\n\t\t// In Google's \"AsYouType\" formatter code, the equivalent would be this part:\r\n\t\t// https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\r\n\t\tif (nationalPrefix &&\r\n\t\t\t!format.usesNationalPrefix() &&\r\n\t\t\t// !format.domesticCarrierCodeFormattingRule() &&\r\n\t\t\t!format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\t// If national prefix is mandatory for this phone number format\r\n\t\t// and there're no guarantees that a national prefix is present in user input\r\n\t\t// then discard this phone number format as not suitable.\r\n\t\t// In Google's \"AsYouType\" formatter code, the equivalent would be this part:\r\n\t\t// https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\r\n\t\tif (!international &&\r\n\t\t\t!nationalPrefix &&\r\n\t\t\tformat.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn true\r\n\t}\r\n\r\n\tformatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\r\n\t\tconst leadingDigitsPatternsCount = format.leadingDigitsPatterns().length\r\n\r\n\t\t// If this format is not restricted to a certain\r\n\t\t// leading digits pattern then it fits.\r\n\t\t// The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\r\n\t\tif (leadingDigitsPatternsCount === 0) {\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\t// Start narrowing down the list of possible formats based on the leading digits.\r\n\t\t// (only previously matched formats take part in the narrowing down process)\r\n\r\n\t\t// `leading_digits_patterns` start with 3 digits min\r\n\t\t// and then go up from there one digit at a time.\r\n\t\tleadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1)\r\n\t\tconst leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]\r\n\r\n\t\t// Google imposes a requirement on the leading digits\r\n\t\t// to be minimum 3 digits long in order to be eligible\r\n\t\t// for checking those with a leading digits pattern.\r\n\t\t//\r\n\t\t// Since `leading_digits_patterns` start with 3 digits min,\r\n\t\t// Google's original `libphonenumber` library only starts\r\n\t\t// excluding any non-matching formats only when the\r\n\t\t// national number entered so far is at least 3 digits long,\r\n\t\t// otherwise format matching would give false negatives.\r\n\t\t//\r\n\t\t// For example, when the digits entered so far are `2`\r\n\t\t// and the leading digits pattern is `21` –\r\n\t\t// it's quite obvious in this case that the format could be the one\r\n\t\t// but due to the absence of further digits it would give false negative.\r\n\t\t//\r\n\t\t// Also, `leading_digits_patterns` doesn't always correspond to a single\r\n\t\t// digits count. For example, `60|8` pattern would already match `8`\r\n\t\t// but the `60` part would require having at least two leading digits,\r\n\t\t// so the whole pattern would require inputting two digits first in order to\r\n\t\t// decide on whether it matches the input, even when the input is \"80\".\r\n\t\t//\r\n\t\t// This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\r\n\t\t// even when there's only 1 or 2 digits of the national (significant) number.\r\n\t\t// To do that, it uses a non-strict pattern matcher written specifically for that.\r\n\t\t//\r\n\t\tif (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\r\n\t\t\t// Before leading digits < 3 matching was implemented:\r\n\t\t\t// return true\r\n\t\t\t//\r\n\t\t\t// After leading digits < 3 matching was implemented:\r\n\t\t\ttry {\r\n\t\t\t\treturn new PatternMatcher(leadingDigitsPattern).match(leadingDigits, { allowOverflow: true }) !== undefined\r\n\t\t\t} catch (error) /* istanbul ignore next */ {\r\n\t\t\t\t// There's a slight possibility that there could be some undiscovered bug\r\n\t\t\t\t// in the pattern matcher code. Since the \"leading digits < 3 matching\"\r\n\t\t\t\t// feature is not \"essential\" for operation, it can fall back to the old way\r\n\t\t\t\t// in case of any issues rather than halting the application's execution.\r\n\t\t\t\tconsole.error(error)\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\r\n\t\t// available then use the usual regular expression matching.\r\n\t\t//\r\n\t\t// The whole pattern is wrapped in round brackets (`()`) because\r\n\t\t// the pattern can use \"or\" operator (`|`) at the top level of the pattern.\r\n\t\t//\r\n\t\treturn new RegExp(`^(${leadingDigitsPattern})`).test(leadingDigits)\r\n\t}\r\n\r\n\tgetFormatFormat(format, international) {\r\n\t\treturn international ? format.internationalFormat() : format.format()\r\n\t}\r\n\r\n\tchooseFormat(state) {\r\n\t\t// When there are multiple available formats, the formatter uses the first\r\n\t\t// format where a formatting template could be created.\r\n\t\t//\r\n\t\t// For some weird reason, `istanbul` says \"else path not taken\"\r\n\t\t// for the `for of` line below. Supposedly that means that\r\n\t\t// the loop doesn't ever go over the last element in the list.\r\n\t\t// That's true because there always is `this.chosenFormat`\r\n\t\t// when `this.matchingFormats` is non-empty.\r\n\t\t// And, for some weird reason, it doesn't think that the case\r\n\t\t// with empty `this.matchingFormats` qualifies for a valid \"else\" path.\r\n\t\t// So simply muting this `istanbul` warning.\r\n\t\t// It doesn't skip the contents of the `for of` loop,\r\n\t\t// it just skips the `for of` line.\r\n\t\t//\r\n\t\t/* istanbul ignore next */\r\n\t\tfor (const format of this.matchingFormats.slice()) {\r\n\t\t\t// If this format is currently being used\r\n\t\t\t// and is still suitable, then stick to it.\r\n\t\t\tif (this.chosenFormat === format) {\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t\t// Sometimes, a formatting rule inserts additional digits in a phone number,\r\n\t\t\t// and \"as you type\" formatter can't do that: it should only use the digits\r\n\t\t\t// that the user has input.\r\n\t\t\t//\r\n\t\t\t// For example, in Argentina, there's a format for mobile phone numbers:\r\n\t\t\t//\r\n\t\t\t// {\r\n\t\t\t// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\r\n\t\t\t// \"leading_digits_patterns\": [\"91\"],\r\n\t\t\t// \"national_prefix_formatting_rule\": \"0$1\",\r\n\t\t\t// \"format\": \"$2 15-$3-$4\",\r\n\t\t\t// \"international_format\": \"$1 $2 $3-$4\"\r\n\t\t\t// }\r\n\t\t\t//\r\n\t\t\t// In that format, `international_format` is used instead of `format`\r\n\t\t\t// because `format` inserts `15` in the formatted number,\r\n\t\t\t// and `AsYouType` formatter should only use the digits\r\n\t\t\t// the user has actually input, without adding any extra digits.\r\n\t\t\t// In this case, it wouldn't make a difference, because the `15`\r\n\t\t\t// is first stripped when applying `national_prefix_for_parsing`\r\n\t\t\t// and then re-added when using `format`, so in reality it doesn't\r\n\t\t\t// add any new digits to the number, but to detect that, the code\r\n\t\t\t// would have to be more complex: it would have to try formatting\r\n\t\t\t// the digits using the format and then see if any digits have\r\n\t\t\t// actually been added or removed, and then, every time a new digit\r\n\t\t\t// is input, it should re-check whether the chosen format doesn't\r\n\t\t\t// alter the digits.\r\n\t\t\t//\r\n\t\t\t// Google's code doesn't go that far, and so does this library:\r\n\t\t\t// it simply requires that a `format` doesn't add any additonal\r\n\t\t\t// digits to user's input.\r\n\t\t\t//\r\n\t\t\t// Also, people in general should move from inputting phone numbers\r\n\t\t\t// in national format (possibly with national prefixes)\r\n\t\t\t// and use international phone number format instead:\r\n\t\t\t// it's a logical thing in the modern age of mobile phones,\r\n\t\t\t// globalization and the internet.\r\n\t\t\t//\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (!NON_ALTERING_FORMAT_REG_EXP.test(this.getFormatFormat(format, state.international))) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tif (!this.createTemplateForFormat(format, state)) {\r\n\t\t\t\t// Remove the format if it can't generate a template.\r\n\t\t\t\tthis.matchingFormats = this.matchingFormats.filter(_ => _ !== format)\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tthis.chosenFormat = format\r\n\t\t\tbreak\r\n\t\t}\r\n\t\tif (!this.chosenFormat) {\r\n\t\t\t// No format matches the national (significant) phone number.\r\n\t\t\tthis.resetFormat()\r\n\t\t}\r\n\t\treturn this.chosenFormat\r\n\t}\r\n\r\n\tcreateTemplateForFormat(format, state) {\r\n\t\t// The formatter doesn't format numbers when numberPattern contains '|', e.g.\r\n\t\t// (20|3)\\d{4}. In those cases we quickly return.\r\n\t\t// (Though there's no such format in current metadata)\r\n\t\t/* istanbul ignore if */\r\n\t\tif (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// Get formatting template for this phone number format\r\n\t\tconst template = this.getTemplateForFormat(format, state)\r\n\t\t// If the national number entered is too long\r\n\t\t// for any phone number format, then abort.\r\n\t\tif (template) {\r\n\t\t\tthis.setNationalNumberTemplate(template, state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\tgetSeparatorAfterNationalPrefix(format) {\r\n\t\t// `US` metadata doesn't have a `national_prefix_formatting_rule`,\r\n\t\t// so the `if` condition below doesn't apply to `US`,\r\n\t\t// but in reality there shoudl be a separator\r\n\t\t// between a national prefix and a national (significant) number.\r\n\t\t// So `US` national prefix separator is a \"special\" \"hardcoded\" case.\r\n\t\tif (this.isNANP) {\r\n\t\t\treturn ' '\r\n\t\t}\r\n\t\t// If a `format` has a `national_prefix_formatting_rule`\r\n\t\t// and that rule has a separator after a national prefix,\r\n\t\t// then it means that there should be a separator\r\n\t\t// between a national prefix and a national (significant) number.\r\n\t\tif (format &&\r\n\t\t\tformat.nationalPrefixFormattingRule() &&\r\n\t\t\tNATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\r\n\t\t\treturn ' '\r\n\t\t}\r\n\t\t// At this point, there seems to be no clear evidence that\r\n\t\t// there should be a separator between a national prefix\r\n\t\t// and a national (significant) number. So don't insert one.\r\n\t\treturn ''\r\n\t}\r\n\r\n\tgetInternationalPrefixBeforeCountryCallingCode({ IDDPrefix, missingPlus }, options) {\r\n\t\tif (IDDPrefix) {\r\n\t\t\treturn options && options.spacing === false ? IDDPrefix : IDDPrefix + ' '\r\n\t\t}\r\n\t\tif (missingPlus) {\r\n\t\t\treturn ''\r\n\t\t}\r\n\t\treturn '+'\r\n\t}\r\n\r\n\tgetTemplate(state) {\r\n\t\tif (!this.template) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// `this.template` holds the template for a \"complete\" phone number.\r\n\t\t// The currently entered phone number is most likely not \"complete\",\r\n\t\t// so trim all non-populated digits.\r\n\t\tlet index = -1\r\n\t\tlet i = 0\r\n\t\tconst internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, { spacing: false }) : ''\r\n\t\twhile (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\r\n\t\t\tindex = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1)\r\n\t\t\ti++\r\n\t\t}\r\n\t\treturn cutAndStripNonPairedParens(this.template, index + 1)\r\n\t}\r\n\r\n\tsetNationalNumberTemplate(template, state) {\r\n\t\tthis.nationalNumberTemplate = template\r\n\t\tthis.populatedNationalNumberTemplate = template\r\n\t\t// With a new formatting template, the matched position\r\n\t\t// using the old template needs to be reset.\r\n\t\tthis.populatedNationalNumberTemplatePosition = -1\r\n\t\t// For convenience, the public `.template` property\r\n\t\t// contains the whole international number\r\n\t\t// if the phone number being input is international:\r\n\t\t// 'x' for the '+' sign, 'x'es for the country phone code,\r\n\t\t// a spacebar and then the template for the formatted national number.\r\n\t\tif (state.international) {\r\n\t\t\tthis.template =\r\n\t\t\t\tthis.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) +\r\n\t\t\t\trepeat(DIGIT_PLACEHOLDER, state.callingCode.length) +\r\n\t\t\t\t' ' +\r\n\t\t\t\ttemplate\r\n\t\t} else {\r\n\t\t\tthis.template = template\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Generates formatting template for a national phone number,\r\n\t * optionally containing a national prefix, for a format.\r\n\t * @param {Format} format\r\n\t * @param {string} nationalPrefix\r\n\t * @return {string}\r\n\t */\r\n\tgetTemplateForFormat(format, {\r\n\t\tnationalSignificantNumber,\r\n\t\tinternational,\r\n\t\tnationalPrefix,\r\n\t\tcomplexPrefixBeforeNationalSignificantNumber\r\n\t}) {\r\n\t\tlet pattern = format.pattern()\r\n\r\n\t\t/* istanbul ignore else */\r\n\t\tif (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\r\n\t\t\tpattern = pattern\r\n\t\t\t\t// Replace anything in the form of [..] with \\d\r\n\t\t\t\t.replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d')\r\n\t\t\t\t// Replace any standalone digit (not the one in `{}`) with \\d\r\n\t\t\t\t.replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d')\r\n\t\t}\r\n\r\n\t\t// Generate a dummy national number (consisting of `9`s)\r\n\t\t// that fits this format's `pattern`.\r\n\t\t//\r\n\t\t// This match will always succeed,\r\n\t\t// because the \"longest dummy phone number\"\r\n\t\t// has enough length to accomodate any possible\r\n\t\t// national phone number format pattern.\r\n\t\t//\r\n\t\tlet digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]\r\n\r\n\t\t// If the national number entered is too long\r\n\t\t// for any phone number format, then abort.\r\n\t\tif (nationalSignificantNumber.length > digits.length) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// Get a formatting template which can be used to efficiently format\r\n\t\t// a partial number where digits are added one by one.\r\n\r\n\t\t// Below `strictPattern` is used for the\r\n\t\t// regular expression (with `^` and `$`).\r\n\t\t// This wasn't originally in Google's `libphonenumber`\r\n\t\t// and I guess they don't really need it\r\n\t\t// because they're not using \"templates\" to format phone numbers\r\n\t\t// but I added `strictPattern` after encountering\r\n\t\t// South Korean phone number formatting bug.\r\n\t\t//\r\n\t\t// Non-strict regular expression bug demonstration:\r\n\t\t//\r\n\t\t// this.nationalSignificantNumber : `111111111` (9 digits)\r\n\t\t//\r\n\t\t// pattern : (\\d{2})(\\d{3,4})(\\d{4})\r\n\t\t// format : `$1 $2 $3`\r\n\t\t// digits : `9999999999` (10 digits)\r\n\t\t//\r\n\t\t// '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\r\n\t\t//\r\n\t\t// template : xx xxxx xxxx\r\n\t\t//\r\n\t\t// But the correct template in this case is `xx xxx xxxx`.\r\n\t\t// The template was generated incorrectly because of the\r\n\t\t// `{3,4}` variability in the `pattern`.\r\n\t\t//\r\n\t\t// The fix is, if `this.nationalSignificantNumber` has already sufficient length\r\n\t\t// to satisfy the `pattern` completely then `this.nationalSignificantNumber`\r\n\t\t// is used instead of `digits`.\r\n\r\n\t\tconst strictPattern = new RegExp('^' + pattern + '$')\r\n\t\tconst nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT)\r\n\r\n\t\t// If `this.nationalSignificantNumber` has already sufficient length\r\n\t\t// to satisfy the `pattern` completely then use it\r\n\t\t// instead of `digits`.\r\n\t\tif (strictPattern.test(nationalNumberDummyDigits)) {\r\n\t\t\tdigits = nationalNumberDummyDigits\r\n\t\t}\r\n\r\n\t\tlet numberFormat = this.getFormatFormat(format, international)\r\n\t\tlet nationalPrefixIncludedInTemplate\r\n\r\n\t\t// If a user did input a national prefix (and that's guaranteed),\r\n\t\t// and if a `format` does have a national prefix formatting rule,\r\n\t\t// then see if that national prefix formatting rule\r\n\t\t// prepends exactly the same national prefix the user has input.\r\n\t\t// If that's the case, then use the `format` with the national prefix formatting rule.\r\n\t\t// Otherwise, use the `format` without the national prefix formatting rule,\r\n\t\t// and prepend a national prefix manually to it.\r\n\t\tif (this.shouldTryNationalPrefixFormattingRule(format, { international, nationalPrefix })) {\r\n\t\t\tconst numberFormatWithNationalPrefix = numberFormat.replace(\r\n\t\t\t\tFIRST_GROUP_PATTERN,\r\n\t\t\t\tformat.nationalPrefixFormattingRule()\r\n\t\t\t)\r\n\t\t\t// If `national_prefix_formatting_rule` of a `format` simply prepends\r\n\t\t\t// national prefix at the start of a national (significant) number,\r\n\t\t\t// then such formatting can be used with `AsYouType` formatter.\r\n\t\t\t// There seems to be no `else` case: everywhere in metadata,\r\n\t\t\t// national prefix formatting rule is national prefix + $1,\r\n\t\t\t// or `($1)`, in which case such format isn't even considered\r\n\t\t\t// when the user has input a national prefix.\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\r\n\t\t\t\tnumberFormat = numberFormatWithNationalPrefix\r\n\t\t\t\tnationalPrefixIncludedInTemplate = true\r\n\t\t\t\t// Replace all digits of the national prefix in the formatting template\r\n\t\t\t\t// with `DIGIT_PLACEHOLDER`s.\r\n\t\t\t\tif (nationalPrefix) {\r\n\t\t\t\t\tlet i = nationalPrefix.length\r\n\t\t\t\t\twhile (i > 0) {\r\n\t\t\t\t\t\tnumberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER)\r\n\t\t\t\t\t\ti--\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Generate formatting template for this phone number format.\r\n\t\tlet template = digits\r\n\t\t\t// Format the dummy phone number according to the format.\r\n\t\t\t.replace(new RegExp(pattern), numberFormat)\r\n\t\t\t// Replace each dummy digit with a DIGIT_PLACEHOLDER.\r\n\t\t\t.replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER)\r\n\r\n\t\t// If a prefix of a national (significant) number is not as simple\r\n\t\t// as just a basic national prefix, then just prepend such prefix\r\n\t\t// before the national (significant) number, optionally spacing\r\n\t\t// the two with a whitespace.\r\n\t\tif (!nationalPrefixIncludedInTemplate) {\r\n\t\t\tif (complexPrefixBeforeNationalSignificantNumber) {\r\n\t\t\t\t// Prepend the prefix to the template manually.\r\n\t\t\t\ttemplate = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) +\r\n\t\t\t\t\t' ' +\r\n\t\t\t\t\ttemplate\r\n\t\t\t} else if (nationalPrefix) {\r\n\t\t\t\t// Prepend national prefix to the template manually.\r\n\t\t\t\ttemplate = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) +\r\n\t\t\t\t\tthis.getSeparatorAfterNationalPrefix(format) +\r\n\t\t\t\t\ttemplate\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (international) {\r\n\t\t\ttemplate = applyInternationalSeparatorStyle(template)\r\n\t\t}\r\n\r\n\t\treturn template\r\n\t}\r\n\r\n\tformatNextNationalNumberDigits(digits) {\r\n\t\tconst result = populateTemplateWithDigits(\r\n\t\t\tthis.populatedNationalNumberTemplate,\r\n\t\t\tthis.populatedNationalNumberTemplatePosition,\r\n\t\t\tdigits\r\n\t\t)\r\n\r\n\t\tif (!result) {\r\n\t\t\t// Reset the format.\r\n\t\t\tthis.resetFormat()\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.populatedNationalNumberTemplate = result[0]\r\n\t\tthis.populatedNationalNumberTemplatePosition = result[1]\r\n\r\n\t\t// Return the formatted phone number so far.\r\n\t\treturn cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\r\n\r\n\t\t// The old way which was good for `input-format` but is not so good\r\n\t\t// for `react-phone-number-input`'s default input (`InputBasic`).\r\n\t\t// return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\r\n\t\t// \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\r\n\t}\r\n\r\n\tshouldTryNationalPrefixFormattingRule(format, { international, nationalPrefix }) {\r\n\t\tif (format.nationalPrefixFormattingRule()) {\r\n\t\t\t// In some countries, `national_prefix_formatting_rule` is `($1)`,\r\n\t\t\t// so it applies even if the user hasn't input a national prefix.\r\n\t\t\t// `format.usesNationalPrefix()` detects such cases.\r\n\t\t\tconst usesNationalPrefix = format.usesNationalPrefix()\r\n\t\t\tif ((usesNationalPrefix && nationalPrefix) ||\r\n\t\t\t\t(!usesNationalPrefix && !international)) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}","import extractCountryCallingCode from './helpers/extractCountryCallingCode.js'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js'\r\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber.js'\r\nimport stripIddPrefix from './helpers/stripIddPrefix.js'\r\nimport parseDigits from './helpers/parseDigits.js'\r\n\r\nimport {\r\n\tVALID_DIGITS,\r\n\tVALID_PUNCTUATION,\r\n\tPLUS_CHARS\r\n} from './constants.js'\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART =\r\n\t'[' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']+'\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i')\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_PART =\r\n\t'(?:' +\r\n\t\t'[' + PLUS_CHARS + ']' +\r\n\t\t'[' +\r\n\t\t\tVALID_PUNCTUATION +\r\n\t\t\tVALID_DIGITS +\r\n\t\t']*' +\r\n\t\t'|' +\r\n\t\t'[' +\r\n\t\t\tVALID_PUNCTUATION +\r\n\t\t\tVALID_DIGITS +\r\n\t\t']+' +\r\n\t')'\r\n\r\nconst AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp(\r\n\t'[^' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']+' +\r\n\t'.*' +\r\n\t'$'\r\n)\r\n\r\n// Tests whether `national_prefix_for_parsing` could match\r\n// different national prefixes.\r\n// Matches anything that's not a digit or a square bracket.\r\nconst COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/\r\n\r\nexport default class AsYouTypeParser {\r\n\tconstructor({\r\n\t\tdefaultCountry,\r\n\t\tdefaultCallingCode,\r\n\t\tmetadata,\r\n\t\tonNationalSignificantNumberChange\r\n\t}) {\r\n\t\tthis.defaultCountry = defaultCountry\r\n\t\tthis.defaultCallingCode = defaultCallingCode\r\n\t\tthis.metadata = metadata\r\n\t\tthis.onNationalSignificantNumberChange = onNationalSignificantNumberChange\r\n\t}\r\n\r\n\tinput(text, state) {\r\n\t\tconst [formattedDigits, hasPlus] = extractFormattedDigitsAndPlus(text)\r\n\t\tconst digits = parseDigits(formattedDigits)\r\n\t\t// Checks for a special case: just a leading `+` has been entered.\r\n\t\tlet justLeadingPlus\r\n\t\tif (hasPlus) {\r\n\t\t\tif (!state.digits) {\r\n\t\t\t\tstate.startInternationalNumber()\r\n\t\t\t\tif (!digits) {\r\n\t\t\t\t\tjustLeadingPlus = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (digits) {\r\n\t\t\tthis.inputDigits(digits, state)\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tdigits,\r\n\t\t\tjustLeadingPlus\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Inputs \"next\" phone number digits.\r\n\t * @param {string} digits\r\n\t * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n\t */\r\n\tinputDigits(nextDigits, state) {\r\n\t\tconst { digits } = state\r\n\t\tconst hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3\r\n\r\n\t\t// Append phone number digits.\r\n\t\tstate.appendDigits(nextDigits)\r\n\r\n\t\t// Attempt to extract IDD prefix:\r\n\t\t// Some users input their phone number in international format,\r\n\t\t// but in an \"out-of-country\" dialing format instead of using the leading `+`.\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/185\r\n\t\t// Detect such numbers as soon as there're at least 3 digits.\r\n\t\t// Google's library attempts to extract IDD prefix at 3 digits,\r\n\t\t// so this library just copies that behavior.\r\n\t\t// I guess that's because the most commot IDD prefixes are\r\n\t\t// `00` (Europe) and `011` (US).\r\n\t\t// There exist really long IDD prefixes too:\r\n\t\t// for example, in Australia the default IDD prefix is `0011`,\r\n\t\t// and it could even be as long as `14880011`.\r\n\t\t// An IDD prefix is extracted here, and then every time when\r\n\t\t// there's a new digit and the number couldn't be formatted.\r\n\t\tif (hasReceivedThreeLeadingDigits) {\r\n\t\t\tthis.extractIddPrefix(state)\r\n\t\t}\r\n\r\n\t\tif (this.isWaitingForCountryCallingCode(state)) {\r\n\t\t\tif (!this.extractCountryCallingCode(state)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tstate.appendNationalSignificantNumberDigits(nextDigits)\r\n\t\t}\r\n\r\n\t\t// If a phone number is being input in international format,\r\n\t\t// then it's not valid for it to have a national prefix.\r\n\t\t// Still, some people incorrectly input such numbers with a national prefix.\r\n\t\t// In such cases, only attempt to strip a national prefix if the number becomes too long.\r\n\t\t// (but that is done later, not here)\r\n\t\tif (!state.international) {\r\n\t\t\tif (!this.hasExtractedNationalSignificantNumber) {\r\n\t\t\t\tthis.extractNationalSignificantNumber(\r\n\t\t\t\t\tstate.getNationalDigits(),\r\n\t\t\t\t\t(stateUpdate) => state.update(stateUpdate)\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisWaitingForCountryCallingCode({ international, callingCode }) {\r\n\t\treturn international && !callingCode\r\n\t}\r\n\r\n\t// Extracts a country calling code from a number\r\n\t// being entered in internatonal format.\r\n\textractCountryCallingCode(state) {\r\n\t\tconst { countryCallingCode, number } = extractCountryCallingCode(\r\n\t\t\t'+' + state.getDigitsWithoutInternationalPrefix(),\r\n\t\t\tthis.defaultCountry,\r\n\t\t\tthis.defaultCallingCode,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (countryCallingCode) {\r\n\t\t\tstate.setCallingCode(countryCallingCode)\r\n\t\t\tstate.update({\r\n\t\t\t\tnationalSignificantNumber: number\r\n\t\t\t})\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\treset(numberingPlan) {\r\n\t\tif (numberingPlan) {\r\n\t\t\tthis.hasSelectedNumberingPlan = true\r\n\t\t\tconst nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing()\r\n\t\t\tthis.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing)\r\n\t\t} else {\r\n\t\t\tthis.hasSelectedNumberingPlan = undefined\r\n\t\t\tthis.couldPossiblyExtractAnotherNationalSignificantNumber = undefined\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Extracts a national (significant) number from user input.\r\n\t * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n\t * and doesn't apply `national_prefix_transform_rule` after that.\r\n\t * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n\t * @return {boolean} [extracted]\r\n\t */\r\n\textractNationalSignificantNumber(nationalDigits, setState) {\r\n\t\tif (!this.hasSelectedNumberingPlan) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tconst {\r\n\t\t\tnationalPrefix,\r\n\t\t\tnationalNumber,\r\n\t\t\tcarrierCode\r\n\t\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\t\tnationalDigits,\r\n\t\t\tthis.metadata\r\n\t\t)\r\n\t\tif (nationalNumber === nationalDigits) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.onExtractedNationalNumber(\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tnationalDigits,\r\n\t\t\tsetState\r\n\t\t)\r\n\t\treturn true\r\n\t}\r\n\r\n\t/**\r\n\t * In Google's code this function is called \"attempt to extract longer NDD\".\r\n\t * \"Some national prefixes are a substring of others\", they say.\r\n\t * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n\t */\r\n\textractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\r\n\t\tif (!this.hasExtractedNationalSignificantNumber) {\r\n\t\t\treturn this.extractNationalSignificantNumber(nationalDigits, setState)\r\n\t\t}\r\n\t\tif (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tconst {\r\n\t\t\tnationalPrefix,\r\n\t\t\tnationalNumber,\r\n\t\t\tcarrierCode\r\n\t\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\t\tnationalDigits,\r\n\t\t\tthis.metadata\r\n\t\t)\r\n\t\t// If a national prefix has been extracted previously,\r\n\t\t// then it's always extracted as additional digits are added.\r\n\t\t// That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\r\n\t\t// doesn't do anything different from what it currently does.\r\n\t\t// So, just in case, here's this check, though it doesn't occur.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (nationalNumber === prevNationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.onExtractedNationalNumber(\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tnationalDigits,\r\n\t\t\tsetState\r\n\t\t)\r\n\t\treturn true\r\n\t}\r\n\r\n\tonExtractedNationalNumber(\r\n\t\tnationalPrefix,\r\n\t\tcarrierCode,\r\n\t\tnationalSignificantNumber,\r\n\t\tnationalDigits,\r\n\t\tsetState\r\n\t) {\r\n\t\tlet complexPrefixBeforeNationalSignificantNumber\r\n\t\tlet nationalSignificantNumberMatchesInput\r\n\t\t// This check also works with empty `this.nationalSignificantNumber`.\r\n\t\tconst nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber)\r\n\t\t// If the extracted national (significant) number is the\r\n\t\t// last substring of the `digits`, then it means that it hasn't been altered:\r\n\t\t// no digits have been removed from the national (significant) number\r\n\t\t// while applying `national_prefix_transform_rule`.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\r\n\t\tif (nationalSignificantNumberIndex >= 0 &&\r\n\t\t\tnationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\r\n\t\t\tnationalSignificantNumberMatchesInput = true\r\n\t\t\t// If a prefix of a national (significant) number is not as simple\r\n\t\t\t// as just a basic national prefix, then such prefix is stored in\r\n\t\t\t// `this.complexPrefixBeforeNationalSignificantNumber` property and will be\r\n\t\t\t// prepended \"as is\" to the national (significant) number to produce\r\n\t\t\t// a formatted result.\r\n\t\t\tconst prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex)\r\n\t\t\t// `prefixBeforeNationalNumber` is always non-empty,\r\n\t\t\t// because `onExtractedNationalNumber()` isn't called\r\n\t\t\t// when a national (significant) number hasn't been actually \"extracted\":\r\n\t\t\t// when a national (significant) number is equal to the national part of `digits`,\r\n\t\t\t// then `onExtractedNationalNumber()` doesn't get called.\r\n\t\t\tif (prefixBeforeNationalNumber !== nationalPrefix) {\r\n\t\t\t\tcomplexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber\r\n\t\t\t}\r\n\t\t}\r\n\t\tsetState({\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tnationalSignificantNumberMatchesInput,\r\n\t\t\tcomplexPrefixBeforeNationalSignificantNumber\r\n\t\t})\r\n\t\t// `onExtractedNationalNumber()` is only called when\r\n\t\t// the national (significant) number actually did change.\r\n\t\tthis.hasExtractedNationalSignificantNumber = true\r\n\t\tthis.onNationalSignificantNumberChange()\r\n\t}\r\n\r\n\treExtractNationalSignificantNumber(state) {\r\n\t\t// Attempt to extract a national prefix.\r\n\t\t//\r\n\t\t// Some people incorrectly input national prefix\r\n\t\t// in an international phone number.\r\n\t\t// For example, some people write British phone numbers as `+44(0)...`.\r\n\t\t//\r\n\t\t// Also, in some rare cases, it is valid for a national prefix\r\n\t\t// to be a part of an international phone number.\r\n\t\t// For example, mobile phone numbers in Mexico are supposed to be\r\n\t\t// dialled internationally using a `1` national prefix,\r\n\t\t// so the national prefix will be part of an international number.\r\n\t\t//\r\n\t\t// Quote from:\r\n\t\t// https://www.mexperience.com/dialing-cell-phones-in-mexico/\r\n\t\t//\r\n\t\t// \"Dialing a Mexican cell phone from abroad\r\n\t\t// When you are calling a cell phone number in Mexico from outside Mexico,\r\n\t\t// it’s necessary to dial an additional “1” after Mexico’s country code\r\n\t\t// (which is “52”) and before the area code.\r\n\t\t// You also ignore the 045, and simply dial the area code and the\r\n\t\t// cell phone’s number.\r\n\t\t//\r\n\t\t// If you don’t add the “1”, you’ll receive a recorded announcement\r\n\t\t// asking you to redial using it.\r\n\t\t//\r\n\t\t// For example, if you are calling from the USA to a cell phone\r\n\t\t// in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\r\n\t\t// (Note that this is different to calling a land line in Mexico City\r\n\t\t// from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\r\n\t\t//\r\n\t\t// Google's demo output:\r\n\t\t// https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\r\n\t\t//\r\n\t\tif (this.extractAnotherNationalSignificantNumber(\r\n\t\t\tstate.getNationalDigits(),\r\n\t\t\tstate.nationalSignificantNumber,\r\n\t\t\t(stateUpdate) => state.update(stateUpdate)\r\n\t\t)) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\t// If no format matches the phone number, then it could be\r\n\t\t// \"a really long IDD\" (quote from a comment in Google's library).\r\n\t\t// An IDD prefix is first extracted when the user has entered at least 3 digits,\r\n\t\t// and then here — every time when there's a new digit and the number\r\n\t\t// couldn't be formatted.\r\n\t\t// For example, in Australia the default IDD prefix is `0011`,\r\n\t\t// and it could even be as long as `14880011`.\r\n\t\t//\r\n\t\t// Could also check `!hasReceivedThreeLeadingDigits` here\r\n\t\t// to filter out the case when this check duplicates the one\r\n\t\t// already performed when there're 3 leading digits,\r\n\t\t// but it's not a big deal, and in most cases there\r\n\t\t// will be a suitable `format` when there're 3 leading digits.\r\n\t\t//\r\n\t\tif (this.extractIddPrefix(state)) {\r\n\t\t\tthis.extractCallingCodeAndNationalSignificantNumber(state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t\t// Google's AsYouType formatter supports sort of an \"autocorrection\" feature\r\n\t\t// when it \"autocorrects\" numbers that have been input for a country\r\n\t\t// with that country's calling code.\r\n\t\t// Such \"autocorrection\" feature looks weird, but different people have been requesting it:\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/375\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/316\r\n\t\tif (this.fixMissingPlus(state)) {\r\n\t\t\tthis.extractCallingCodeAndNationalSignificantNumber(state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\textractIddPrefix(state) {\r\n\t\t// An IDD prefix can't be present in a number written with a `+`.\r\n\t\t// Also, don't re-extract an IDD prefix if has already been extracted.\r\n\t\tconst {\r\n\t\t\tinternational,\r\n\t\t\tIDDPrefix,\r\n\t\t\tdigits,\r\n\t\t\tnationalSignificantNumber\r\n\t\t} = state\r\n\t\tif (international || IDDPrefix) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// Some users input their phone number in \"out-of-country\"\r\n\t\t// dialing format instead of using the leading `+`.\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/185\r\n\t\t// Detect such numbers.\r\n\t\tconst numberWithoutIDD = stripIddPrefix(\r\n\t\t\tdigits,\r\n\t\t\tthis.defaultCountry,\r\n\t\t\tthis.defaultCallingCode,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\r\n\t\t\t// If an IDD prefix was stripped then convert the IDD-prefixed number\r\n\t\t\t// to international number for subsequent parsing.\r\n\t\t\tstate.update({\r\n\t\t\t\tIDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\r\n\t\t\t})\r\n\t\t\tthis.startInternationalNumber(state, {\r\n\t\t\t\tcountry: undefined,\r\n\t\t\t\tcallingCode: undefined\r\n\t\t\t})\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\tfixMissingPlus(state) {\r\n\t\tif (!state.international) {\r\n\t\t\tconst {\r\n\t\t\t\tcountryCallingCode: newCallingCode,\r\n\t\t\t\tnumber\r\n\t\t\t} = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\t\t\t\tstate.digits,\r\n\t\t\t\tthis.defaultCountry,\r\n\t\t\t\tthis.defaultCallingCode,\r\n\t\t\t\tthis.metadata.metadata\r\n\t\t\t)\r\n\t\t\tif (newCallingCode) {\r\n\t\t\t\tstate.update({\r\n\t\t\t\t\tmissingPlus: true\r\n\t\t\t\t})\r\n\t\t\t\tthis.startInternationalNumber(state, {\r\n\t\t\t\t\tcountry: state.country,\r\n\t\t\t\t\tcallingCode: newCallingCode\r\n\t\t\t\t})\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstartInternationalNumber(state, { country, callingCode }) {\r\n\t\tstate.startInternationalNumber(country, callingCode)\r\n\t\t// If a national (significant) number has been extracted before, reset it.\r\n\t\tif (state.nationalSignificantNumber) {\r\n\t\t\tstate.resetNationalSignificantNumber()\r\n\t\t\tthis.onNationalSignificantNumberChange()\r\n\t\t\tthis.hasExtractedNationalSignificantNumber = undefined\r\n\t\t}\r\n\t}\r\n\r\n\textractCallingCodeAndNationalSignificantNumber(state) {\r\n\t\tif (this.extractCountryCallingCode(state)) {\r\n\t\t\t// `this.extractCallingCode()` is currently called when the number\r\n\t\t\t// couldn't be formatted during the standard procedure.\r\n\t\t\t// Normally, the national prefix would be re-extracted\r\n\t\t\t// for an international number if such number couldn't be formatted,\r\n\t\t\t// but since it's already not able to be formatted,\r\n\t\t\t// there won't be yet another retry, so also extract national prefix here.\r\n\t\t\tthis.extractNationalSignificantNumber(\r\n\t\t\t\tstate.getNationalDigits(),\r\n\t\t\t\t(stateUpdate) => state.update(stateUpdate)\r\n\t\t\t)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\r\nfunction extractFormattedPhoneNumber(text) {\r\n\t// Attempt to extract a possible number from the string passed in.\r\n\tconst startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART)\r\n\tif (startsAt < 0) {\r\n\t\treturn\r\n\t}\r\n\t// Trim everything to the left of the phone number.\r\n\ttext = text.slice(startsAt)\r\n\t// Trim the `+`.\r\n\tlet hasPlus\r\n\tif (text[0] === '+') {\r\n\t\thasPlus = true\r\n\t\ttext = text.slice('+'.length)\r\n\t}\r\n\t// Trim everything to the right of the phone number.\r\n\ttext = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, '')\r\n\t// Re-add the previously trimmed `+`.\r\n\tif (hasPlus) {\r\n\t\ttext = '+' + text\r\n\t}\r\n\treturn text\r\n}\r\n\r\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\r\nfunction _extractFormattedDigitsAndPlus(text) {\r\n\t// Extract a formatted phone number part from text.\r\n\tconst extractedNumber = extractFormattedPhoneNumber(text) || ''\r\n\t// Trim a `+`.\r\n\tif (extractedNumber[0] === '+') {\r\n\t\treturn [extractedNumber.slice('+'.length), true]\r\n\t}\r\n\treturn [extractedNumber]\r\n}\r\n\r\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\r\nexport function extractFormattedDigitsAndPlus(text) {\r\n\tlet [formattedDigits, hasPlus] = _extractFormattedDigitsAndPlus(text)\r\n\t// If the extracted phone number part\r\n\t// can possibly be a part of some valid phone number\r\n\t// then parse phone number characters from a formatted phone number.\r\n\tif (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\r\n\t\tformattedDigits = ''\r\n\t}\r\n\treturn [formattedDigits, hasPlus]\r\n}","import Metadata from './metadata.js'\r\nimport PhoneNumber from './PhoneNumber.js'\r\nimport AsYouTypeState from './AsYouTypeState.js'\r\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.js'\r\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser.js'\r\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js'\r\nimport getCountryByNationalNumber from './helpers/getCountryByNationalNumber.js'\r\nimport isObject from './helpers/isObject.js'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default class AsYouType {\r\n\t/**\r\n\t * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n\t * @param {Object} metadata\r\n\t */\r\n\tconstructor(optionsOrDefaultCountry, metadata) {\r\n\t\tthis.metadata = new Metadata(metadata)\r\n\t\tconst [defaultCountry, defaultCallingCode] = this.getCountryAndCallingCode(optionsOrDefaultCountry)\r\n\t\t// `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\r\n\t\t// For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\r\n\t\t// So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\r\n\t\tthis.defaultCountry = defaultCountry\r\n\t\tthis.defaultCallingCode = defaultCallingCode\r\n\t\tthis.reset()\r\n\t}\r\n\r\n\tgetCountryAndCallingCode(optionsOrDefaultCountry) {\r\n\t\t// Set `defaultCountry` and `defaultCallingCode` options.\r\n\t\tlet defaultCountry\r\n\t\tlet defaultCallingCode\r\n\t\t// Turns out `null` also has type \"object\". Weird.\r\n\t\tif (optionsOrDefaultCountry) {\r\n\t\t\tif (isObject(optionsOrDefaultCountry)) {\r\n\t\t\t\tdefaultCountry = optionsOrDefaultCountry.defaultCountry\r\n\t\t\t\tdefaultCallingCode = optionsOrDefaultCountry.defaultCallingCode\r\n\t\t\t} else {\r\n\t\t\t\tdefaultCountry = optionsOrDefaultCountry\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\r\n\t\t\tdefaultCountry = undefined\r\n\t\t}\r\n\t\tif (defaultCallingCode) {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t\tif (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\r\n\t\t\t\t\tdefaultCountry = '001'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn [defaultCountry, defaultCallingCode]\r\n\t}\r\n\r\n\t/**\r\n\t * Inputs \"next\" phone number characters.\r\n\t * @param {string} text\r\n\t * @return {string} Formatted phone number characters that have been input so far.\r\n\t */\r\n\tinput(text) {\r\n\t\tconst {\r\n\t\t\tdigits,\r\n\t\t\tjustLeadingPlus\r\n\t\t} = this.parser.input(text, this.state)\r\n\t\tif (justLeadingPlus) {\r\n\t\t\tthis.formattedOutput = '+'\r\n\t\t} else if (digits) {\r\n\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t// Match the available formats by the currently available leading digits.\r\n\t\t\tif (this.state.nationalSignificantNumber) {\r\n\t\t\t\tthis.formatter.narrowDownMatchingFormats(this.state)\r\n\t\t\t}\r\n\t\t\tlet formattedNationalNumber\r\n\t\t\tif (this.metadata.hasSelectedNumberingPlan()) {\r\n\t\t\t\tformattedNationalNumber = this.formatter.format(digits, this.state)\r\n\t\t\t}\r\n\t\t\tif (formattedNationalNumber === undefined) {\r\n\t\t\t\t// See if another national (significant) number could be re-extracted.\r\n\t\t\t\tif (this.parser.reExtractNationalSignificantNumber(this.state)) {\r\n\t\t\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t\t\t// If it could, then re-try formatting the new national (significant) number.\r\n\t\t\t\t\tconst nationalDigits = this.state.getNationalDigits()\r\n\t\t\t\t\tif (nationalDigits) {\r\n\t\t\t\t\t\tformattedNationalNumber = this.formatter.format(nationalDigits, this.state)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.formattedOutput = formattedNationalNumber\r\n\t\t\t\t? this.getFullNumber(formattedNationalNumber)\r\n\t\t\t\t: this.getNonFormattedNumber()\r\n\t\t}\r\n\t\treturn this.formattedOutput\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis.state = new AsYouTypeState({\r\n\t\t\tonCountryChange: (country) => {\r\n\t\t\t\t// Before version `1.6.0`, the official `AsYouType` formatter API\r\n\t\t\t\t// included the `.country` property of an `AsYouType` instance.\r\n\t\t\t\t// Since that property (along with the others) have been moved to\r\n\t\t\t\t// `this.state`, `this.country` property is emulated for compatibility\r\n\t\t\t\t// with the old versions.\r\n\t\t\t\tthis.country = country\r\n\t\t\t},\r\n\t\t\tonCallingCodeChange: (callingCode, country) => {\r\n\t\t\t\tthis.metadata.selectNumberingPlan(country, callingCode)\r\n\t\t\t\tthis.formatter.reset(this.metadata.numberingPlan, this.state)\r\n\t\t\t\tthis.parser.reset(this.metadata.numberingPlan)\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.formatter = new AsYouTypeFormatter({\r\n\t\t\tstate: this.state,\r\n\t\t\tmetadata: this.metadata\r\n\t\t})\r\n\t\tthis.parser = new AsYouTypeParser({\r\n\t\t\tdefaultCountry: this.defaultCountry,\r\n\t\t\tdefaultCallingCode: this.defaultCallingCode,\r\n\t\t\tmetadata: this.metadata,\r\n\t\t\tstate: this.state,\r\n\t\t\tonNationalSignificantNumberChange: () => {\r\n\t\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t\tthis.formatter.reset(this.metadata.numberingPlan, this.state)\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.state.reset({\r\n\t\t\tcountry: this.defaultCountry,\r\n\t\t\tcallingCode: this.defaultCallingCode\r\n\t\t})\r\n\t\tthis.formattedOutput = ''\r\n\t\treturn this\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is being input in international format.\r\n\t * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisInternational() {\r\n\t\treturn this.state.international\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the \"calling code\" part of the phone number when it's being input\r\n\t * in an international format.\r\n\t * If no valid calling code has been entered so far, returns `undefined`.\r\n\t * @return {string} [callingCode]\r\n\t */\r\n\tgetCallingCode() {\r\n\t\t // If the number is being input in national format and some \"default calling code\"\r\n\t\t // has been passed to `AsYouType` constructor, then `this.state.callingCode`\r\n\t\t // is equal to that \"default calling code\".\r\n\t\t //\r\n\t\t // If the number is being input in national format and no \"default calling code\"\r\n\t\t // has been passed to `AsYouType` constructor, then returns `undefined`,\r\n\t\t // even if a \"default country\" has been passed to `AsYouType` constructor.\r\n\t\t //\r\n\t\tif (this.isInternational()) {\r\n\t\t\treturn this.state.callingCode\r\n\t\t}\r\n\t}\r\n\r\n\t// A legacy alias.\r\n\tgetCountryCallingCode() {\r\n\t\treturn this.getCallingCode()\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a two-letter country code of the phone number.\r\n\t * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n\t * Returns `undefined` if no phone number has been input yet.\r\n\t * @return {string} [country]\r\n\t */\r\n\tgetCountry() {\r\n\t\tconst { digits } = this.state\r\n\t\t// Return `undefined` if no digits have been input yet.\r\n\t\tif (digits) {\r\n\t\t\treturn this._getCountry()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a two-letter country code of the phone number.\r\n\t * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n\t * @return {string} [country]\r\n\t */\r\n\t_getCountry() {\r\n\t\tconst { country } = this.state\r\n\t\t/* istanbul ignore if */\r\n\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t// `AsYouType.getCountry()` returns `undefined`\r\n\t\t\t// for \"non-geographic\" phone numbering plans.\r\n\t\t\tif (country === '001') {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn country\r\n\t}\r\n\r\n\tdetermineTheCountryIfNeeded() {\r\n\t\t// Suppose a user enters a phone number in international format,\r\n\t\t// and there're several countries corresponding to that country calling code,\r\n\t\t// and a country has been derived from the number, and then\r\n\t\t// a user enters one more digit and the number is no longer\r\n\t\t// valid for the derived country, so the country should be re-derived\r\n\t\t// on every new digit in those cases.\r\n\t\t//\r\n\t\t// If the phone number is being input in national format,\r\n\t\t// then it could be a case when `defaultCountry` wasn't specified\r\n\t\t// when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\r\n\t\t// and that \"calling code\" could correspond to a \"non-geographic entity\",\r\n\t\t// or there could be several countries corresponding to that country calling code.\r\n\t\t// In those cases, `this.country` is `undefined` and should be derived\r\n\t\t// from the number. Again, if country calling code is ambiguous, then\r\n\t\t// `this.country` should be re-derived with each new digit.\r\n\t\t//\r\n\t\tif (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\r\n\t\t\tthis.determineTheCountry()\r\n\t\t}\r\n\t}\r\n\r\n\t// Prepends `+CountryCode ` in case of an international phone number\r\n\tgetFullNumber(formattedNationalNumber) {\r\n\t\tif (this.isInternational()) {\r\n\t\t\tconst prefix = (text) => this.formatter.getInternationalPrefixBeforeCountryCallingCode(this.state, {\r\n\t\t\t\tspacing: text ? true : false\r\n\t\t\t}) + text\r\n\t\t\tconst { callingCode } = this.state\r\n\t\t\tif (!callingCode) {\r\n\t\t\t\treturn prefix(`${this.state.getDigitsWithoutInternationalPrefix()}`)\r\n\t\t\t}\r\n\t\t\tif (!formattedNationalNumber) {\r\n\t\t\t\treturn prefix(callingCode)\r\n\t\t\t}\r\n\t\t\treturn prefix(`${callingCode} ${formattedNationalNumber}`)\r\n\t\t}\r\n\t\treturn formattedNationalNumber\r\n\t}\r\n\r\n\tgetNonFormattedNationalNumberWithPrefix() {\r\n\t\tconst {\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tcomplexPrefixBeforeNationalSignificantNumber,\r\n\t\t\tnationalPrefix\r\n\t\t} = this.state\r\n\t\tlet number = nationalSignificantNumber\r\n\t\tconst prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix\r\n\t\tif (prefix) {\r\n\t\t\tnumber = prefix + number\r\n\t\t}\r\n\t\treturn number\r\n\t}\r\n\r\n\tgetNonFormattedNumber() {\r\n\t\tconst { nationalSignificantNumberMatchesInput } = this.state\r\n\t\treturn this.getFullNumber(\r\n\t\t\tnationalSignificantNumberMatchesInput\r\n\t\t\t\t? this.getNonFormattedNationalNumberWithPrefix()\r\n\t\t\t\t: this.state.getNationalDigits()\r\n\t\t)\r\n\t}\r\n\r\n\tgetNonFormattedTemplate() {\r\n\t\tconst number = this.getNonFormattedNumber()\r\n\t\tif (number) {\r\n\t\t\treturn number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER)\r\n\t\t}\r\n\t}\r\n\r\n\tisCountryCallingCodeAmbiguous() {\r\n\t\tconst { callingCode } = this.state\r\n\t\tconst countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode)\r\n\t\treturn countryCodes && countryCodes.length > 1\r\n\t}\r\n\r\n\t// Determines the country of the phone number\r\n\t// entered so far based on the country phone code\r\n\t// and the national phone number.\r\n\tdetermineTheCountry() {\r\n\t\tthis.state.setCountry(getCountryByCallingCode(\r\n\t\t\tthis.isInternational() ? this.state.callingCode : this.defaultCallingCode,\r\n\t\t\t{\r\n\t\t\t\tnationalNumber: this.state.nationalSignificantNumber,\r\n\t\t\t\tdefaultCountry: this.defaultCountry,\r\n\t\t\t\tmetadata: this.metadata\r\n\t\t\t}\r\n\t\t))\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a E.164 phone number value for the user's input.\r\n\t *\r\n\t * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n\t * it will return `\"+12223334444\"`.\r\n\t *\r\n\t * For international phone number input, it will also auto-correct\r\n\t * some minor errors such as using a national prefix when writing\r\n\t * an international phone number. For example, if the user inputs\r\n\t * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n\t * `\"+447400000000\"` phone number value.\r\n\t *\r\n\t * Will return `undefined` if no digits have been input,\r\n\t * or when inputting a phone number in national format and no\r\n\t * default country or default \"country calling code\" have been set.\r\n\t *\r\n\t * @return {string} [value]\r\n\t */\r\n\tgetNumberValue() {\r\n\t\tconst {\r\n\t\t\tdigits,\r\n\t\t\tcallingCode,\r\n\t\t\tcountry,\r\n\t\t\tnationalSignificantNumber\r\n\t\t} = this.state\r\n\r\n\t \t// Will return `undefined` if no digits have been input.\r\n\t\tif (!digits) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (this.isInternational()) {\r\n\t\t\tif (callingCode) {\r\n\t\t\t\treturn '+' + callingCode + nationalSignificantNumber\r\n\t\t\t} else {\r\n\t\t\t\treturn '+' + digits\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (country || callingCode) {\r\n\t\t\t\tconst callingCode_ = country ? this.metadata.countryCallingCode() : callingCode\r\n\t\t\t\treturn '+' + callingCode_ + nationalSignificantNumber\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an instance of `PhoneNumber` class.\r\n\t * Will return `undefined` if no national (significant) number\r\n\t * digits have been entered so far, or if no `defaultCountry` has been\r\n\t * set and the user enters a phone number not in international format.\r\n\t */\r\n\tgetNumber() {\r\n\t\tconst {\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tcarrierCode,\r\n\t\t\tcallingCode\r\n\t\t} = this.state\r\n\r\n\t\t// `this._getCountry()` is basically same as `this.state.country`\r\n\t\t// with the only change that it return `undefined` in case of a\r\n\t\t// \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\r\n\t\tlet country = this._getCountry()\r\n\r\n\t\tif (!nationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// `state.country` and `state.callingCode` aren't required to be in sync.\r\n\t\t// For example, `country` could be `\"AR\"` and `callingCode` could be `undefined`.\r\n\t\t// So `country` and `callingCode` are totally independent.\r\n\r\n\t\tif (!country && !callingCode) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// By default, if `defaultCountry` parameter was passed when\r\n\t\t// creating `AsYouType` instance, `state.country` is gonna be\r\n\t\t// that `defaultCountry`, which doesn't entirely conform with\r\n\t\t// `parsePhoneNumber()`'s behavior where it attempts to determine\r\n\t\t// the country more precisely in cases when multiple countries\r\n\t\t// could correspond to the same `countryCallingCode`.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\r\n\t\t//\r\n\t\t// Because `AsYouType.getNumber()` method is supposed to be a 1:1\r\n\t\t// equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\r\n\t\t// then it should also behave accordingly in cases of `country` ambiguity.\r\n\t\t// That's how users of this library would expect it to behave anyway.\r\n\t\t//\r\n\t\tif (country) {\r\n\t\t\tif (country === this.defaultCountry) {\r\n\t\t\t\t// `state.country` and `state.callingCode` aren't required to be in sync.\r\n\t\t\t\t// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\r\n\t\t\t\t// So `state.country` and `state.callingCode` are totally independent.\r\n\t\t\t\tconst metadata = new Metadata(this.metadata.metadata)\r\n\t\t\t\tmetadata.selectNumberingPlan(country)\r\n\t\t\t\tconst callingCode = metadata.numberingPlan.callingCode()\r\n\t\t\t\tconst ambiguousCountries = this.metadata.getCountryCodesForCallingCode(callingCode)\r\n\t\t\t\tif (ambiguousCountries.length > 1) {\r\n\t\t\t\t\tconst exactCountry = getCountryByNationalNumber(nationalSignificantNumber, {\r\n\t\t\t\t\t\tcountries: ambiguousCountries,\r\n\t\t\t\t\t\tdefaultCountry: this.defaultCountry,\r\n\t\t\t\t\t\tmetadata: this.metadata.metadata\r\n\t\t\t\t\t})\r\n\t\t\t\t\tif (exactCountry) {\r\n\t\t\t\t\t\tcountry = exactCountry\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst phoneNumber = new PhoneNumber(\r\n\t\t\tcountry || callingCode,\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (carrierCode) {\r\n\t\t\tphoneNumber.carrierCode = carrierCode\r\n\t\t}\r\n\t\t// Phone number extensions are not supported by \"As You Type\" formatter.\r\n\t\treturn phoneNumber\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is \"possible\".\r\n\t * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisPossible() {\r\n\t\tconst phoneNumber = this.getNumber()\r\n\t\tif (!phoneNumber) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn phoneNumber.isPossible()\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is \"valid\".\r\n\t * Is just a shortcut for `PhoneNumber.isValid()`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisValid() {\r\n\t\tconst phoneNumber = this.getNumber()\r\n\t\tif (!phoneNumber) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn phoneNumber.isValid()\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated\r\n\t * This method is used in `react-phone-number-input/source/input-control.js`\r\n\t * in versions before `3.0.16`.\r\n\t */\r\n\tgetNationalNumber() {\r\n\t\treturn this.state.nationalSignificantNumber\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the phone number characters entered by the user.\r\n\t * @return {string}\r\n\t */\r\n\tgetChars() {\r\n\t\treturn (this.state.international ? '+' : '') + this.state.digits\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the template for the formatted phone number.\r\n\t * @return {string}\r\n\t */\r\n\tgetTemplate() {\r\n\t\treturn this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || ''\r\n\t}\r\n}","import { getCountryCallingCode } from 'libphonenumber-js/core'\r\n\r\nexport function getInputValuePrefix({\r\n\tcountry,\r\n\tinternational,\r\n\twithCountryCallingCode,\r\n\tmetadata\r\n}) {\r\n\treturn country && international && !withCountryCallingCode ?\r\n\t\t`+${getCountryCallingCode(country, metadata)}` :\r\n\t\t''\r\n}\r\n\r\nexport function removeInputValuePrefix(value, prefix) {\r\n\tif (prefix) {\r\n\t\tvalue = value.slice(prefix.length)\r\n\t\tif (value[0] === ' ') {\r\n\t\t\tvalue = value.slice(1)\r\n\t\t}\r\n\t}\r\n\treturn value\r\n}","import { parsePhoneNumberCharacter } from 'libphonenumber-js/core'\r\n\r\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {object?} context - An optional object that could be used by this function to set arbitrary \"flags\". The object should be shared within the parsing of the whole string.\r\n * @return {string?} The parsed character.\r\n */\r\nexport default function parsePhoneNumberCharacter_(character, prevParsedCharacters, context) {\r\n\t// `context` argument was added as a third argument of `parse()` function\r\n\t// in `input-format` package on Dec 26th, 2023. So it could potentially be\r\n\t// `undefined` here if a 3rd-party app somehow ends up with this newer version\r\n\t// of `react-phone-number-input` and an older version of `input-format`.\r\n\t// Dunno how, but just in case, it could be `undefined` here and it wouldn't break.\r\n\t// Maybe it's not required to handle `undefined` case here.\r\n\t//\r\n\t// The addition of the `context` argument was to fix the slightly-weird behavior\r\n\t// of parsing an input string when the user inputs something like `\"2+7\"\r\n\t// https://github.com/catamphetamine/react-phone-number-input/issues/437\r\n\t//\r\n\t// If the parser encounters an unexpected `+` in a string being parsed\r\n\t// then it simply discards that out-of-place `+` and any following characters.\r\n\t//\r\n\tif (context && context.ignoreRest) {\r\n\t\treturn\r\n\t}\r\n\r\n\tconst emitEvent = (eventName) => {\r\n\t\tif (context) {\r\n\t\t\tswitch (eventName) {\r\n\t\t\t\tcase 'end':\r\n\t\t\t\t\tcontext.ignoreRest = true\r\n\t\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent)\r\n}","import { useCallback } from 'react'\r\n\r\n// Returns a custom `onKeyDown` handler that works around a Backspace keypress edge case:\r\n// * ``\r\n// * When placing the caret before the leading plus character and pressing Backspace,\r\n// it duplicates the country calling code in the ``.\r\n// https://github.com/catamphetamine/react-phone-number-input/issues/442\r\nexport default function useInputKeyDownHandler({\r\n\tonKeyDown,\r\n\tinternational\r\n}) {\r\n\treturn useCallback((event) => {\r\n\t\tif (event.keyCode === BACKSPACE_KEY_CODE && international) {\r\n\t\t\t// It checks `event.target` here for being an `` element\r\n\t\t\t// because \"keydown\" events may bubble from arbitrary child elements\r\n\t\t\t// so there's no guarantee that `event.target` represents an `` element.\r\n\t\t\t// Also, since `inputComponent` is not neceesarily an ``, this check is required too.\r\n\t\t\tif (event.target instanceof HTMLInputElement) {\r\n\t\t\t\tif (getCaretPosition(event.target) === AFTER_LEADING_PLUS_CARET_POSITION) {\r\n\t\t\t\t\tevent.preventDefault()\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (onKeyDown) {\r\n\t\t\tonKeyDown(event)\r\n\t\t}\r\n\t}, [\r\n\t\tonKeyDown,\r\n\t\tinternational\r\n\t])\r\n}\r\n\r\nconst BACKSPACE_KEY_CODE = 8\r\n\r\n// Gets the caret position in an `` field.\r\n// The caret position starts with `0` which means \"before the first character\".\r\nfunction getCaretPosition(element) {\r\n\treturn element.selectionStart\r\n}\r\n\r\nconst AFTER_LEADING_PLUS_CARET_POSITION = '+'.length","import React, { useCallback } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport Input from 'input-format/react'\r\nimport { AsYouType } from 'libphonenumber-js/core'\r\n\r\nimport { getInputValuePrefix, removeInputValuePrefix } from './helpers/inputValuePrefix.js'\r\nimport parsePhoneNumberCharacter from './helpers/parsePhoneNumberCharacter.js'\r\n\r\nimport useInputKeyDownHandler from './useInputKeyDownHandler.js'\r\n\r\nexport function createInput(defaultMetadata)\r\n{\r\n\t/**\r\n\t * `InputSmart` is a \"smarter\" implementation of a `Component`\r\n\t * that can be passed to ``. It parses and formats\r\n\t * the user's and maintains the caret's position in the process.\r\n\t * The caret positioning is maintained using `input-format` library.\r\n\t * Relies on being run in a DOM environment for calling caret positioning functions.\r\n\t */\r\n\tfunction InputSmart({\r\n\t\tonKeyDown,\r\n\t\tcountry,\r\n\t\tinternational,\r\n\t\twithCountryCallingCode,\r\n\t\tmetadata = defaultMetadata,\r\n\t\t...rest\r\n\t}, ref) {\r\n\t\tconst format = useCallback((value) => {\r\n\t\t\t// \"As you type\" formatter.\r\n\t\t\tconst formatter = new AsYouType(country, metadata)\r\n\t\t\tconst prefix = getInputValuePrefix({\r\n\t\t\t\tcountry,\r\n\t\t\t\tinternational,\r\n\t\t\t\twithCountryCallingCode,\r\n\t\t\t\tmetadata\r\n\t\t\t})\r\n\t\t\t// Format the number.\r\n\t\t\tlet text = formatter.input(prefix + value)\r\n\t\t\tlet template = formatter.getTemplate()\r\n\t\t\tif (prefix) {\r\n\t\t\t\ttext = removeInputValuePrefix(text, prefix)\r\n\t\t\t\t// `AsYouType.getTemplate()` can be `undefined`.\r\n\t\t\t\tif (template) {\r\n\t\t\t\t\ttemplate = removeInputValuePrefix(template, prefix)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\ttext,\r\n\t\t\t\ttemplate\r\n\t\t\t}\r\n\t\t}, [country, metadata])\r\n\r\n\t\tconst _onKeyDown = useInputKeyDownHandler({\r\n\t\t\tonKeyDown,\r\n\t\t\tinternational\r\n\t\t})\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\tInputSmart = React.forwardRef(InputSmart)\r\n\r\n\tInputSmart.propTypes = {\r\n\t\t/**\r\n\t\t * The parsed phone number.\r\n\t\t * \"Parsed\" not in a sense of \"E.164\"\r\n\t\t * but rather in a sense of \"having only\r\n\t\t * digits and possibly a leading plus character\".\r\n\t\t * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n\t\t */\r\n\t\tvalue: PropTypes.string.isRequired,\r\n\r\n\t\t/**\r\n\t\t * A function of `value: string`.\r\n\t\t * Updates the `value` property.\r\n\t\t */\r\n\t\tonChange: PropTypes.func.isRequired,\r\n\r\n\t\t/**\r\n\t\t * A function of `event: Event`.\r\n\t\t * Handles `keydown` events.\r\n\t\t */\r\n\t\tonKeyDown: PropTypes.func,\r\n\r\n\t\t/**\r\n\t\t * A two-letter country code for formatting `value`\r\n\t\t * as a national phone number (e.g. `(800) 555 35 35`).\r\n\t\t * E.g. \"US\", \"RU\", etc.\r\n\t\t * If no `country` is passed then `value`\r\n\t\t * is formatted as an international phone number.\r\n\t\t * (e.g. `+7 800 555 35 35`)\r\n\t\t * Perhaps the `country` property should have been called `defaultCountry`\r\n\t\t * because if `value` is an international number then `country` is ignored.\r\n\t\t */\r\n\t\tcountry: PropTypes.string,\r\n\r\n\t\t/**\r\n\t\t * If `country` property is passed along with `international={true}` property\r\n\t\t * then the phone number will be input in \"international\" format for that `country`\r\n\t\t * (without \"country calling code\").\r\n\t\t * For example, if `country=\"US\"` property is passed to \"without country select\" input\r\n\t\t * then the phone number will be input in the \"national\" format for `US` (`(213) 373-4253`).\r\n\t\t * But if both `country=\"US\"` and `international={true}` properties are passed then\r\n\t\t * the phone number will be input in the \"international\" format for `US` (`213 373 4253`)\r\n\t\t * (without \"country calling code\" `+1`).\r\n\t\t */\r\n\t\tinternational: PropTypes.bool,\r\n\r\n\t\t/**\r\n\t\t * If `country` and `international` properties are set,\r\n\t\t * then by default it won't include \"country calling code\" in the input field.\r\n\t\t * To change that, pass `withCountryCallingCode` property,\r\n\t\t * and it will include \"country calling code\" in the input field.\r\n\t\t */\r\n\t\twithCountryCallingCode: PropTypes.bool,\r\n\r\n\t\t/**\r\n\t\t * `libphonenumber-js` metadata.\r\n\t\t */\r\n\t\tmetadata: PropTypes.object\r\n\t}\r\n\r\n\treturn InputSmart\r\n}\r\n\r\nexport default createInput()","import React, { useCallback } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { parseIncompletePhoneNumber, formatIncompletePhoneNumber } from 'libphonenumber-js/core'\r\n\r\nimport { getInputValuePrefix, removeInputValuePrefix } from './helpers/inputValuePrefix.js'\r\n\r\nimport useInputKeyDownHandler from './useInputKeyDownHandler.js'\r\n\r\nexport function createInput(defaultMetadata) {\r\n\t/**\r\n\t * `InputBasic` is the most basic implementation of a `Component`\r\n\t * that can be passed to ``. It parses and formats\r\n\t * the user's input but doesn't control the caret in the process:\r\n\t * when erasing or inserting digits in the middle of a phone number\r\n\t * the caret usually jumps to the end (this is the expected behavior).\r\n\t * Why does `InputBasic` exist when there's `InputSmart`?\r\n\t * One reason is working around the [Samsung Galaxy smart caret positioning bug]\r\n\t * (https://github.com/catamphetamine/react-phone-number-input/issues/75).\r\n\t * Another reason is that, unlike `InputSmart`, it doesn't require DOM environment.\r\n\t */\r\n\tfunction InputBasic({\r\n\t\tvalue,\r\n\t\tonChange,\r\n\t\tonKeyDown,\r\n\t\tcountry,\r\n\t\tinternational,\r\n\t\twithCountryCallingCode,\r\n\t\tmetadata = defaultMetadata,\r\n\t\tinputComponent: Input = 'input',\r\n\t\t...rest\r\n\t}, ref) {\r\n\t\tconst prefix = getInputValuePrefix({\r\n\t\t\tcountry,\r\n\t\t\tinternational,\r\n\t\t\twithCountryCallingCode,\r\n\t\t\tmetadata\r\n\t\t})\r\n\r\n\t\tconst _onChange = useCallback((event) => {\r\n\t\t\tlet newValue = parseIncompletePhoneNumber(event.target.value)\r\n\t\t\t// By default, if a value is something like `\"(123)\"`\r\n\t\t\t// then Backspace would only erase the rightmost brace\r\n\t\t\t// becoming something like `\"(123\"`\r\n\t\t\t// which would give the same `\"123\"` value\r\n\t\t\t// which would then be formatted back to `\"(123)\"`\r\n\t\t\t// and so a user wouldn't be able to erase the phone number.\r\n\t\t\t//\r\n\t\t\t// This issue is worked around with this simple hack:\r\n\t\t\t// when \"old\" and \"new\" parsed values are the same,\r\n\t\t\t// it checks if the \"new\" formatted value could be obtained\r\n\t\t\t// from the \"old\" formatted value by erasing some (or no) characters at the right side.\r\n\t\t\t// If it could then it's likely that the user has hit a Backspace key\r\n\t\t\t// and what they really intended was to erase a rightmost digit rather than\r\n\t\t\t// a rightmost punctuation character.\r\n\t\t\t//\r\n\t\t\tif (newValue === value) {\r\n\t\t\t\tconst newValueFormatted = format(prefix, newValue, country, metadata)\r\n\t\t\t\tif (newValueFormatted.indexOf(event.target.value) === 0) {\r\n\t\t\t\t\t// Trim the last digit (or plus sign).\r\n\t\t\t\t\tnewValue = newValue.slice(0, -1)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tonChange(newValue)\r\n\t\t}, [\r\n\t\t\tprefix,\r\n\t\t\tvalue,\r\n\t\t\tonChange,\r\n\t\t\tcountry,\r\n\t\t\tmetadata\r\n\t\t])\r\n\r\n\t\tconst _onKeyDown = useInputKeyDownHandler({\r\n\t\t\tonKeyDown,\r\n\t\t\tinternational\r\n\t\t})\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\tInputBasic = React.forwardRef(InputBasic)\r\n\r\n\tInputBasic.propTypes = {\r\n\t\t/**\r\n\t\t * The parsed phone number.\r\n\t\t * \"Parsed\" not in a sense of \"E.164\"\r\n\t\t * but rather in a sense of \"having only\r\n\t\t * digits and possibly a leading plus character\".\r\n\t\t * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n\t\t */\r\n\t\tvalue: PropTypes.string.isRequired,\r\n\r\n\t\t/**\r\n\t\t * A function of `value: string`.\r\n\t\t * Updates the `value` property.\r\n\t\t */\r\n\t\tonChange: PropTypes.func.isRequired,\r\n\r\n\t\t/**\r\n\t\t * A function of `event: Event`.\r\n\t\t * Handles `keydown` events.\r\n\t\t */\r\n\t\tonKeyDown: PropTypes.func,\r\n\r\n\t\t/**\r\n\t\t * A two-letter country code for formatting `value`\r\n\t\t * as a national phone number (e.g. `(800) 555 35 35`).\r\n\t\t * E.g. \"US\", \"RU\", etc.\r\n\t\t * If no `country` is passed then `value`\r\n\t\t * is formatted as an international phone number.\r\n\t\t * (e.g. `+7 800 555 35 35`)\r\n\t\t * Perhaps the `country` property should have been called `defaultCountry`\r\n\t\t * because if `value` is an international number then `country` is ignored.\r\n\t\t */\r\n\t\tcountry : PropTypes.string,\r\n\r\n\t\t/**\r\n\t\t * If `country` property is passed along with `international={true}` property\r\n\t\t * then the phone number will be input in \"international\" format for that `country`\r\n\t\t * (without \"country calling code\").\r\n\t\t * For example, if `country=\"US\"` property is passed to \"without country select\" input\r\n\t\t * then the phone number will be input in the \"national\" format for `US` (`(213) 373-4253`).\r\n\t\t * But if both `country=\"US\"` and `international={true}` properties are passed then\r\n\t\t * the phone number will be input in the \"international\" format for `US` (`213 373 4253`)\r\n\t\t * (without \"country calling code\" `+1`).\r\n\t\t */\r\n\t\tinternational: PropTypes.bool,\r\n\r\n\t\t/**\r\n\t\t * If `country` and `international` properties are set,\r\n\t\t * then by default it won't include \"country calling code\" in the input field.\r\n\t\t * To change that, pass `withCountryCallingCode` property,\r\n\t\t * and it will include \"country calling code\" in the input field.\r\n\t\t */\r\n\t\twithCountryCallingCode: PropTypes.bool,\r\n\r\n\t\t/**\r\n\t\t * `libphonenumber-js` metadata.\r\n\t\t */\r\n\t\tmetadata: PropTypes.object,\r\n\r\n\t\t/**\r\n\t\t * The `` component.\r\n\t\t */\r\n\t\tinputComponent: PropTypes.elementType\r\n\t}\r\n\r\n\treturn InputBasic\r\n}\r\n\r\nexport default createInput()\r\n\r\nfunction format(prefix, value, country, metadata) {\r\n\treturn removeInputValuePrefix(\r\n\t\tformatIncompletePhoneNumber(\r\n\t\t\tprefix + value,\r\n\t\t\tcountry,\r\n\t\t\tmetadata\r\n\t\t),\r\n\t\tprefix\r\n\t)\r\n}","import AsYouType from './AsYouType.js'\r\n\r\n/**\r\n * Formats a (possibly incomplete) phone number.\r\n * The phone number can be either in E.164 format\r\n * or in a form of national number digits.\r\n * @param {string} value - A possibly incomplete phone number. Either in E.164 format or in a form of national number digits.\r\n * @param {string|object} [optionsOrDefaultCountry] - A two-letter (\"ISO 3166-1 alpha-2\") country code, or an object of shape `{ defaultCountry?: string, defaultCallingCode?: string }`.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\r\nexport default function formatIncompletePhoneNumber(value, optionsOrDefaultCountry, metadata) {\r\n\tif (!metadata) {\r\n\t\tmetadata = optionsOrDefaultCountry\r\n\t\toptionsOrDefaultCountry = undefined\r\n\t}\r\n\treturn new AsYouType(optionsOrDefaultCountry, metadata).input(value)\r\n}","/**\r\n * Creates Unicode flag from a two-letter ISO country code.\r\n * https://stackoverflow.com/questions/24050671/how-to-put-japan-flag-character-in-a-string\r\n * @param {string} country — A two-letter ISO country code (case-insensitive).\r\n * @return {string}\r\n */\r\nexport default function getCountryFlag(country) {\r\n\treturn getRegionalIndicatorSymbol(country[0]) + getRegionalIndicatorSymbol(country[1])\r\n}\r\n\r\n/**\r\n * Converts a letter to a Regional Indicator Symbol.\r\n * @param {string} letter\r\n * @return {string}\r\n */\r\nfunction getRegionalIndicatorSymbol(letter) {\r\n\treturn String.fromCodePoint(0x1F1E6 - 65 + letter.toUpperCase().charCodeAt(0))\r\n}","import React, { useCallback, useMemo } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport classNames from 'classnames'\r\nimport getUnicodeFlagIcon from 'country-flag-icons/unicode'\r\n\r\nexport default function CountrySelect({\r\n\tvalue,\r\n\tonChange,\r\n\toptions,\r\n\tdisabled,\r\n\treadOnly,\r\n\t...rest\r\n}) {\r\n\tconst onChange_ = useCallback((event) => {\r\n\t\tconst value = event.target.value\r\n\t\tonChange(value === 'ZZ' ? undefined : value)\r\n\t}, [onChange])\r\n\r\n\tconst selectedOption = useMemo(() => {\r\n\t\treturn getSelectedOption(options, value)\r\n\t}, [options, value])\r\n\r\n\t// \"ZZ\" means \"International\".\r\n\t// (HTML requires each `\r\n\t\t\t))}\r\n\t\t\r\n\t)\r\n}\r\n\r\nCountrySelect.propTypes = {\r\n\t/**\r\n\t * A two-letter country code.\r\n\t * Example: \"US\", \"RU\", etc.\r\n\t */\r\n\tvalue: PropTypes.string,\r\n\r\n\t/**\r\n\t * A function of `value: string`.\r\n\t * Updates the `value` property.\r\n\t */\r\n\tonChange: PropTypes.func.isRequired,\r\n\r\n\t// ``.\r\n\t// https://github.com/catamphetamine/react-phone-number-input/issues/419#issuecomment-1764384480\r\n\t// https://www.delftstack.com/howto/html/html-select-readonly/\r\n\t// To work around that, if `readOnly: true` property is passed\r\n\t// to this component, it behaves analogous to `disabled: true`.\r\n\tdisabled: PropTypes.bool,\r\n\treadOnly: PropTypes.bool\r\n}\r\n\r\nconst DIVIDER_STYLE = {\r\n\tfontSize: '1px',\r\n\tbackgroundColor: 'currentColor',\r\n\tcolor: 'inherit'\r\n}\r\n\r\nexport function CountrySelectWithIcon({\r\n\tvalue,\r\n\toptions,\r\n\tclassName,\r\n\ticonComponent: Icon,\r\n\tgetIconAspectRatio,\r\n\tarrowComponent: Arrow = DefaultArrowComponent,\r\n\tunicodeFlags,\r\n\t...rest\r\n}) {\r\n\tconst selectedOption = useMemo(() => {\r\n\t\treturn getSelectedOption(options, value)\r\n\t}, [options, value])\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\r\n\t\t\t{/* Either a Unicode flag icon. */}\r\n\t\t\t{(unicodeFlags && value) &&\r\n\t\t\t\t
\r\n\t\t\t\t\t{getUnicodeFlagIcon(value)}\r\n\t\t\t\t
\r\n\t\t\t}\r\n\r\n\t\t\t{/* Or an SVG flag icon. */}\r\n\t\t\t{!(unicodeFlags && value) &&\r\n\t\t\t\t\r\n\t\t\t}\r\n\r\n\t\t\t\r\n\t\t
\r\n\t)\r\n}\r\n\r\nCountrySelectWithIcon.propTypes = {\r\n\t// Country flag component.\r\n\ticonComponent: PropTypes.elementType,\r\n\r\n\t// Select arrow component.\r\n\tarrowComponent: PropTypes.elementType,\r\n\r\n\t// Set to `true` to render Unicode flag icons instead of SVG images.\r\n\tunicodeFlags: PropTypes.bool\r\n}\r\n\r\nfunction DefaultArrowComponent() {\r\n\treturn
\r\n}\r\n\r\nfunction getSelectedOption(options, value) {\r\n\tfor (const option of options) {\r\n\t\tif (!option.divider && option.value === value) {\r\n\t\t\treturn option\r\n\t\t}\r\n\t}\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport classNames from 'classnames'\r\n\r\n// Default country flag icon.\r\n// `` is wrapped in a `
` to prevent SVGs from exploding in size in IE 11.\r\n// https://github.com/catamphetamine/react-phone-number-input/issues/111\r\nexport default function FlagComponent({\r\n\tcountry,\r\n\tcountryName,\r\n\tflags,\r\n\tflagUrl,\r\n\t...rest\r\n}) {\r\n\tif (flags && flags[country]) {\r\n\t\treturn flags[country]({ title: countryName })\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nFlagComponent.propTypes = {\r\n\t// The country to be selected by default.\r\n\t// Two-letter country code (\"ISO 3166-1 alpha-2\").\r\n\tcountry: PropTypes.string.isRequired,\r\n\r\n\t// Will be HTML `title` attribute of the ``.\r\n\tcountryName: PropTypes.string.isRequired,\r\n\r\n\t// Country flag icon components.\r\n\t// By default flag icons are inserted as ``s\r\n\t// with their `src` pointed to `country-flag-icons` gitlab pages website.\r\n\t// There might be cases (e.g. an offline application)\r\n\t// where having a large (3 megabyte) `` flags\r\n\t// bundle is more appropriate.\r\n\t// `import flags from 'react-phone-number-input/flags'`.\r\n\tflags: PropTypes.objectOf(PropTypes.elementType),\r\n\r\n\t// A URL for a country flag icon.\r\n\t// By default it points to `country-flag-icons` gitlab pages website.\r\n\tflagUrl: PropTypes.string.isRequired\r\n}\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nexport default function InternationalIcon({ aspectRatio, ...rest }) {\r\n\tif (aspectRatio === 1) {\r\n\t\treturn \r\n\t} else {\r\n\t\treturn \r\n\t}\r\n}\r\n\r\nInternationalIcon.propTypes = {\r\n\ttitle: PropTypes.string.isRequired,\r\n\taspectRatio: PropTypes.number\r\n}\r\n\r\n// 3x2.\r\n// Using `` in `<svg/>`s:\r\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title\r\nfunction InternationalIcon3x2({ title, ...rest }) {\r\n\treturn (\r\n\t\t<svg\r\n\t\t\t{...rest}\r\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\tviewBox=\"0 0 75 50\">\r\n\t\t\t<title>{title}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nInternationalIcon3x2.propTypes = {\r\n\ttitle: PropTypes.string.isRequired\r\n}\r\n\r\n// 1x1.\r\n// Using `` in `<svg/>`s:\r\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title\r\nfunction InternationalIcon1x1({ title, ...rest }) {\r\n\treturn (\r\n\t\t<svg\r\n\t\t\t{...rest}\r\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\tviewBox=\"0 0 50 50\">\r\n\t\t\t<title>{title}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nInternationalIcon1x1.propTypes = {\r\n\ttitle: PropTypes.string.isRequired\r\n}\r\n","import { isSupportedCountry } from 'libphonenumber-js/core'\r\nexport { getCountries } from 'libphonenumber-js/core'\r\n\r\n/**\r\n * Sorts country `` options\r\n * to the top of the list, for example.\r\n * @param {object[]} countryOptions — Country `` options order. Example: `[\"US\", \"CA\", \"AU\", \"|\", \"...\"]`.\r\n * @return {object[]}\r\n */\r\nexport function sortCountryOptions(options, order) {\r\n\tif (!order) {\r\n\t\treturn options\r\n\t}\r\n\tconst optionsOnTop = []\r\n\tconst optionsOnBottom = []\r\n\tlet appendTo = optionsOnTop\r\n\tfor (const element of order) {\r\n\t\tif (element === '|') {\r\n\t\t\tappendTo.push({ divider: true })\r\n\t\t} else if (element === '...' || element === '…') {\r\n\t\t\tappendTo = optionsOnBottom\r\n\t\t} else {\r\n\t\t\tlet countryCode\r\n\t\t\tif (element === '🌐') {\r\n\t\t\t\tcountryCode = undefined\r\n\t\t\t} else {\r\n\t\t\t\tcountryCode = element\r\n\t\t\t}\r\n\t\t\t// Find the position of the option.\r\n\t\t\tconst index = options.indexOf(options.filter(option => option.value === countryCode)[0])\r\n\t\t\t// Get the option.\r\n\t\t\tconst option = options[index]\r\n\t\t\t// Remove the option from its default position.\r\n\t\t\toptions.splice(index, 1)\r\n\t\t\t// Add the option on top.\r\n\t\t\tappendTo.push(option)\r\n\t\t}\r\n\t}\r\n\treturn optionsOnTop.concat(options).concat(optionsOnBottom)\r\n}\r\n\r\nexport function getSupportedCountryOptions(countryOptions, metadata) {\r\n\tif (countryOptions) {\r\n\t\tcountryOptions = countryOptions.filter((option) => {\r\n\t\t\tswitch (option) {\r\n\t\t\t\tcase '🌐':\r\n\t\t\t\tcase '|':\r\n\t\t\t\tcase '...':\r\n\t\t\t\tcase '…':\r\n\t\t\t\t\treturn true\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn isCountrySupportedWithError(option, metadata)\r\n\t\t\t}\r\n\t\t})\r\n\t\tif (countryOptions.length > 0) {\r\n\t\t\treturn countryOptions\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function isCountrySupportedWithError(country, metadata) {\r\n\tif (isSupportedCountry(country, metadata)) {\r\n\t\treturn true\r\n\t} else {\r\n\t\tconsole.error(`Country not found: ${country}`)\r\n\t\treturn false\r\n\t}\r\n}\r\n\r\nexport function getSupportedCountries(countries, metadata) {\r\n\tif (countries) {\r\n\t\tcountries = countries.filter(country => isCountrySupportedWithError(country, metadata))\r\n\t\tif (countries.length === 0) {\r\n\t\t\tcountries = undefined\r\n\t\t}\r\n\t}\r\n\treturn countries\r\n}","import Metadata from './metadata.js'\r\n\r\nexport default function getCountries(metadata) {\r\n\treturn new Metadata(metadata).getCountries()\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport classNames from 'classnames'\r\n\r\nimport DefaultInternationalIcon from './InternationalIcon.js'\r\nimport Flag from './Flag.js'\r\n\r\nexport function createCountryIconComponent({\r\n\tflags,\r\n\tflagUrl,\r\n\tflagComponent: FlagComponent,\r\n\tinternationalIcon: InternationalIcon\r\n}) {\r\n\tfunction CountryIcon({\r\n\t\tcountry,\r\n\t\tlabel,\r\n\t\taspectRatio,\r\n\t\t...rest\r\n\t}) {\r\n\t\t// `aspectRatio` is currently a hack for the default \"International\" icon\r\n\t\t// to render it as a square when Unicode flag icons are used.\r\n\t\t// So `aspectRatio` property is only used with the default \"International\" icon.\r\n\t\tconst _aspectRatio = InternationalIcon === DefaultInternationalIcon ? aspectRatio : undefined\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{\r\n\t\t\t\t\tcountry\r\n\t\t\t\t\t?\r\n\t\t\t\t\t\r\n\t\t\t\t\t:\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n\r\n\tCountryIcon.propTypes = {\r\n\t\tcountry: PropTypes.string,\r\n\t\tlabel: PropTypes.string.isRequired,\r\n\t\taspectRatio: PropTypes.number\r\n\t}\r\n\r\n\treturn CountryIcon\r\n}\r\n\r\nexport default createCountryIconComponent({\r\n\t// Must be equal to `defaultProps.flagUrl` in `./PhoneInputWithCountry.js`.\r\n\tflagUrl: 'https://purecatamphetamine.github.io/country-flag-icons/3x2/{XX}.svg',\r\n\tflagComponent: Flag,\r\n\tinternationalIcon: DefaultInternationalIcon\r\n})","import { useRef, useCallback } from 'react'\r\n\r\n/**\r\n * This hook creates an internal copy of a `ref`\r\n * and returns a new `ref`-alike setter function\r\n * that updates both `ref` and the internal copy of it.\r\n * That `ref`-alike setter function could then be passed\r\n * to child elements instead of the original `ref`.\r\n *\r\n * The internal copy of the `ref` can then be used to\r\n * call instance methods like `.focus()`, etc.\r\n *\r\n * One may ask: why create a copy of `ref` for \"internal\" use\r\n * when the code could use the original `ref` for that.\r\n * The answer is: the code would have to dance around the original `ref` anyway\r\n * to figure out whether it exists and to find out the internal implementation of it\r\n * in order to read its value correctly. This hook encapsulates all that \"boilerplate\" code.\r\n * The returned copy of the `ref` is guaranteed to exist and functions as a proper ref \"object\".\r\n * The returned `ref`-alike setter function must be used instead of the original `ref`\r\n * when passing it to child elements.\r\n *\r\n * @param {(object|function)} [externalRef] — The original `ref` that may have any internal implementation and might not even exist.\r\n * @return {any[]} Returns an array of two elements: a copy of the `ref` for \"internal\" use and a `ref`-alike setter function that should be used in-place of the original `ref` when passing it to child elements.\r\n */\r\nexport default function useExternalRef(externalRef) {\r\n // Create a copy of the original `ref` (which might not exist).\r\n // Both refs will point to the same value.\r\n const refCopy = useRef()\r\n\r\n // Updates both `ref`s with the same `value`.\r\n const refSetter = useCallback((value) => {\r\n setRefsValue([externalRef, refCopy], value)\r\n }, [\r\n externalRef,\r\n refCopy\r\n ])\r\n\r\n return [refCopy, refSetter]\r\n}\r\n\r\n// Sets the same `value` of all `ref`s.\r\n// Some of the `ref`s may not exist in which case they'll be skipped.\r\nexport function setRefsValue(refs, value) {\r\n for (const ref of refs) {\r\n if (ref) {\r\n setRefValue(ref, value)\r\n }\r\n }\r\n}\r\n\r\n// Sets the value of a `ref`.\r\n// Before React Hooks were introduced, `ref`s used to be functions.\r\n// After React Hooks were introduces, `ref`s became objects with `.current` property.\r\n// This function sets a `ref`'s value regardless of its internal implementation,\r\n// so it supports both types of `ref`s.\r\nfunction setRefValue(ref, value) {\r\n if (typeof ref === 'function') {\r\n ref(value)\r\n } else {\r\n ref.current = value\r\n }\r\n}","import {\r\n\tgetCountryCallingCode,\r\n\tMetadata\r\n} from 'libphonenumber-js/core'\r\n\r\nconst ONLY_DIGITS_REGEXP = /^\\d+$/\r\n\r\nexport default function getInternationalPhoneNumberPrefix(country, metadata) {\r\n\t// Standard international phone number prefix: \"+\" and \"country calling code\".\r\n\tlet prefix = '+' + getCountryCallingCode(country, metadata)\r\n\r\n\t// \"Leading digits\" can't be used to rule out any countries.\r\n\t// So the \"pre-fill with leading digits on country selection\" feature had to be reverted.\r\n\t// https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/10#note_1231042367\r\n\t// // Get \"leading digits\" for a phone number of the country.\r\n\t// // If there're \"leading digits\" then they can be part of the prefix too.\r\n\t// // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/10\r\n\t// metadata = new Metadata(metadata)\r\n\t// metadata.selectNumberingPlan(country)\r\n\t// // \"Leading digits\" patterns are only defined for about 20% of all countries.\r\n\t// // By definition, matching \"leading digits\" is a sufficient but not a necessary\r\n\t// // condition for a phone number to belong to a country.\r\n\t// // The point of \"leading digits\" check is that it's the fastest one to get a match.\r\n\t// // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\r\n\t// const leadingDigits = metadata.numberingPlan.leadingDigits()\r\n\t// if (leadingDigits && ONLY_DIGITS_REGEXP.test(leadingDigits)) {\r\n\t// \tprefix += leadingDigits\r\n\t// }\r\n\r\n\treturn prefix\r\n}","import parsePhoneNumber_, {\r\n\tgetCountryCallingCode,\r\n\tAsYouType,\r\n\tMetadata\r\n} from 'libphonenumber-js/core'\r\n\r\nimport getInternationalPhoneNumberPrefix from './getInternationalPhoneNumberPrefix.js'\r\n\r\n/**\r\n * Decides which country should be pre-selected\r\n * when the phone number input component is first mounted.\r\n * @param {object?} phoneNumber - An instance of `PhoneNumber` class.\r\n * @param {string?} country - Pre-defined country (two-letter code).\r\n * @param {string[]?} countries - A list of countries available.\r\n * @param {object} metadata - `libphonenumber-js` metadata\r\n * @return {string?}\r\n */\r\nexport function getPreSelectedCountry({\r\n\tvalue,\r\n\tphoneNumber,\r\n\tdefaultCountry,\r\n\tgetAnyCountry,\r\n\tcountries,\r\n\trequired,\r\n\tmetadata\r\n}) {\r\n\tlet country\r\n\r\n\t// If can get country from E.164 phone number\r\n\t// then it overrides the `country` passed (or not passed).\r\n\tif (phoneNumber && phoneNumber.country) {\r\n\t\t// `country` will be left `undefined` in case of non-detection.\r\n\t\tcountry = phoneNumber.country\r\n\t} else if (defaultCountry) {\r\n\t\tif (!value || couldNumberBelongToCountry(value, defaultCountry, metadata)) {\r\n\t\t\tcountry = defaultCountry\r\n\t\t}\r\n\t}\r\n\r\n\t// Only pre-select a country if it's in the available `countries` list.\r\n\tif (countries && countries.indexOf(country) < 0) {\r\n\t\tcountry = undefined\r\n\t}\r\n\r\n\t// If there will be no \"International\" option\r\n\t// then some `country` must be selected.\r\n\t// It will still be the wrong country though.\r\n\t// But still country `` options.\r\n * @param {string[]} countries - A list of two-letter (\"ISO 3166-1 alpha-2\") country codes.\r\n * @param {object} labels - Custom country labels. E.g. `{ RU: 'Россия', US: 'США', ... }`.\r\n * @param {boolean} addInternationalOption - Whether should include \"International\" option at the top of the list.\r\n * @return {object[]} A list of objects having shape `{ value : string, label : string }`.\r\n */\r\nexport function getCountrySelectOptions({\r\n\tcountries,\r\n\tcountryNames,\r\n\taddInternationalOption,\r\n\t// `locales` are only used in country name comparator:\r\n\t// depending on locale, string sorting order could be different.\r\n\tcompareStringsLocales,\r\n\tcompareStrings: _compareStrings\r\n}) {\r\n\t// Default country name comparator uses `String.localeCompare()`.\r\n\tif (!_compareStrings) {\r\n\t\t_compareStrings = compareStrings\r\n\t}\r\n\r\n\t// Generates a `` `value` for the newly selected `country`.\r\n * @param {string?} phoneDigits - Phone number digits (and `+`) parsed from phone number `` (it's not the same as the `value` property).\r\n * @param {string?} prevCountry - Previously selected country.\r\n * @param {string?} newCountry - Newly selected country. Can't be same as previously selected country.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @param {boolean} useNationalFormat - whether should attempt to convert from international to national number for the new country.\r\n * @return {string?}\r\n */\r\nexport function getPhoneDigitsForNewCountry(phoneDigits, {\r\n\tprevCountry,\r\n\tnewCountry,\r\n\tmetadata,\r\n\tuseNationalFormat\r\n}) {\r\n\tif (prevCountry === newCountry) {\r\n\t\treturn phoneDigits\r\n\t}\r\n\r\n\t// If `parsed_input` is empty\r\n\t// then no need to migrate anything.\r\n\tif (!phoneDigits) {\r\n\t\tif (useNationalFormat) {\r\n\t\t\treturn ''\r\n\t\t} else {\r\n\t\t\tif (newCountry) {\r\n\t\t\t\t// If `phoneDigits` is empty then set `phoneDigits` to\r\n\t\t\t\t// `+{getCountryCallingCode(newCountry)}`.\r\n\t\t\t\treturn getInternationalPhoneNumberPrefix(newCountry, metadata)\r\n\t\t\t}\r\n\t\t\treturn ''\r\n\t\t}\r\n\t}\r\n\r\n\t// If switching to some country.\r\n\t// (from \"International\" or another country)\r\n\t// If switching from \"International\" then `phoneDigits` starts with a `+`.\r\n\t// Otherwise it may or may not start with a `+`.\r\n\tif (newCountry) {\r\n\t\t// If the phone number was entered in international format\r\n\t\t// then migrate it to the newly selected country.\r\n\t\t// The phone number may be incomplete.\r\n\t\t// The phone number entered not necessarily starts with\r\n\t\t// the previously selected country phone prefix.\r\n\t\tif (phoneDigits[0] === '+') {\r\n\t\t\t// If the international phone number is for the new country\r\n\t\t\t// then convert it to local if required.\r\n\t\t\tif (useNationalFormat) {\r\n\t\t\t\t// // If a phone number is being input in international form\r\n\t\t\t\t// // and the country can already be derived from it,\r\n\t\t\t\t// // and if it is the new country, then format as a national number.\r\n\t\t\t\t// const derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(phoneDigits, metadata)\r\n\t\t\t\t// if (derived_country === newCountry) {\r\n\t\t\t\t// \treturn stripCountryCallingCode(phoneDigits, derived_country, metadata)\r\n\t\t\t\t// }\r\n\r\n\t\t\t\t// Actually, the two countries don't necessarily need to match:\r\n\t\t\t\t// the condition could be looser here, because several countries\r\n\t\t\t\t// might share the same international phone number format\r\n\t\t\t\t// (for example, \"NANPA\" countries like US, Canada, etc).\r\n\t\t\t\t// The looser condition would be just \"same nternational phone number format\"\r\n\t\t\t\t// which would mean \"same country calling code\" in the context of `libphonenumber-js`.\r\n\t\t\t\tif (phoneDigits.indexOf('+' + getCountryCallingCode(newCountry, metadata)) === 0) {\r\n\t\t\t\t\treturn stripCountryCallingCode(phoneDigits, newCountry, metadata)\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Simply discard the previously entered international phone number,\r\n\t\t\t\t// because otherwise any \"smart\" transformation like getting the\r\n\t\t\t\t// \"national (significant) number\" part and then prepending the\r\n\t\t\t\t// newly selected country's \"country calling code\" to it\r\n\t\t\t\t// would just be confusing for a user without being actually useful.\r\n\t\t\t\treturn ''\r\n\r\n\t\t\t\t// // Simply strip the leading `+` character\r\n\t\t\t\t// // therefore simply converting all digits into a \"local\" phone number.\r\n\t\t\t\t// // https://github.com/catamphetamine/react-phone-number-input/issues/287\r\n\t\t\t\t// return phoneDigits.slice(1)\r\n\t\t\t}\r\n\r\n\t\t\tif (prevCountry) {\r\n\t\t\t\tconst newCountryPrefix = getInternationalPhoneNumberPrefix(newCountry, metadata)\r\n\t\t\t\tif (phoneDigits.indexOf(newCountryPrefix) === 0) {\r\n\t\t\t\t\treturn phoneDigits\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn newCountryPrefix\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst defaultValue = getInternationalPhoneNumberPrefix(newCountry, metadata)\r\n\t\t\t\t// If `phoneDigits`'s country calling code part is the same\r\n\t\t\t\t// as for the new `country`, then leave `phoneDigits` as is.\r\n\t\t\t\tif (phoneDigits.indexOf(defaultValue) === 0) {\r\n\t\t\t\t\treturn phoneDigits\r\n\t\t\t\t}\r\n\t\t\t\t// If `phoneDigits`'s country calling code part is not the same\r\n\t\t\t\t// as for the new `country`, then set `phoneDigits` to\r\n\t\t\t\t// `+{getCountryCallingCode(newCountry)}`.\r\n\t\t\t\treturn defaultValue\r\n\t\t\t}\r\n\r\n\t\t\t// // If the international phone number already contains\r\n\t\t\t// // any country calling code then trim the country calling code part.\r\n\t\t\t// // (that could also be the newly selected country phone code prefix as well)\r\n\t\t\t// // `phoneDigits` doesn't neccessarily belong to `prevCountry`.\r\n\t\t\t// // (e.g. if a user enters an international number\r\n\t\t\t// // not belonging to any of the reduced `countries` list).\r\n\t\t\t// phoneDigits = stripCountryCallingCode(phoneDigits, prevCountry, metadata)\r\n\r\n\t\t\t// // Prepend country calling code prefix\r\n\t\t\t// // for the newly selected country.\r\n\t\t\t// return e164(phoneDigits, newCountry, metadata) || `+${getCountryCallingCode(newCountry, metadata)}`\r\n\t\t}\r\n\t}\r\n\t// If switching to \"International\" from a country.\r\n\telse {\r\n\t\t// If the phone number was entered in national format.\r\n\t\tif (phoneDigits[0] !== '+') {\r\n\t\t\t// Format the national phone number as an international one.\r\n\t\t\t// The phone number entered not necessarily even starts with\r\n\t\t\t// the previously selected country phone prefix.\r\n\t\t\t// Even if the phone number belongs to whole another country\r\n\t\t\t// it will still be parsed into some national phone number.\r\n\t\t\t//\r\n\t\t\t// Ignore the now-uncovered `|| ''` code branch:\r\n\t\t\t// previously `e164()` function could return an empty string\r\n\t\t\t// even when `phoneDigits` were not empty.\r\n\t\t\t// Now it always returns some `value` when there're any `phoneDigits`.\r\n\t\t\t// Still, didn't remove the `|| ''` code branch just in case\r\n\t\t\t// that logic changes somehow in some future, so there're no\r\n\t\t\t// possible bugs related to that.\r\n\t\t\t//\r\n\t\t\t// (ignore the `|| ''` code branch)\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\treturn e164(phoneDigits, prevCountry, metadata) || ''\r\n\t\t}\r\n\t}\r\n\r\n\treturn phoneDigits\r\n}\r\n\r\n/**\r\n * Converts phone number digits to a (possibly incomplete) E.164 phone number.\r\n * @param {string?} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param {string?} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\r\nexport function e164(number, country, metadata) {\r\n\tif (!number) {\r\n\t\treturn\r\n\t}\r\n\t// If the phone number is being input in international format.\r\n\tif (number[0] === '+') {\r\n\t\t// If it's just the `+` sign then return nothing.\r\n\t\tif (number === '+') {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// Return a E.164 phone number.\r\n\t\t//\r\n\t\t// Could return `number` \"as is\" here, but there's a possibility\r\n\t\t// that some user might incorrectly input an international number\r\n\t\t// with a \"national prefix\". Such numbers aren't considered valid,\r\n\t\t// but `libphonenumber-js` is \"forgiving\" when it comes to parsing\r\n\t\t// user's input, and this input component follows that behavior.\r\n\t\t//\r\n\t\tconst asYouType = new AsYouType(country, metadata)\r\n\t\tasYouType.input(number)\r\n\t\t// This function would return `undefined` only when `number` is `\"+\"`,\r\n\t\t// but at this point it is known that `number` is not `\"+\"`.\r\n\t\treturn asYouType.getNumberValue()\r\n\t}\r\n\t// For non-international phone numbers\r\n\t// an accompanying country code is required.\r\n\t// The situation when `country` is `undefined`\r\n\t// and a non-international phone number is passed\r\n\t// to this function shouldn't happen.\r\n\tif (!country) {\r\n\t\treturn\r\n\t}\r\n\tconst partial_national_significant_number = getNationalSignificantNumberDigits(number, country, metadata)\r\n\t//\r\n\t// Even if no \"national (significant) number\" digits have been input,\r\n\t// still return a non-`undefined` value.\r\n\t// https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/113\r\n\t//\r\n\t// For example, if the user has selected country `US` and entered `\"1\"`\r\n\t// then that `\"1\"` is just a \"national prefix\" and no \"national (significant) number\"\r\n\t// digits have been input yet. Still, return `\"+1\"` as `value` in such cases,\r\n\t// because otherwise the app would think that the input is empty and mark it as such\r\n\t// while in reality it isn't empty, which might be thought of as a \"bug\", or just\r\n\t// a \"weird\" behavior.\r\n\t//\r\n\t// if (partial_national_significant_number) {\r\n\t\treturn `+${getCountryCallingCode(country, metadata)}${partial_national_significant_number || ''}`\r\n\t// }\r\n}\r\n\r\n/**\r\n * Trims phone number digits if they exceed the maximum possible length\r\n * for a national (significant) number for the country.\r\n * @param {string} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param {string} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} Can be empty.\r\n */\r\nexport function trimNumber(number, country, metadata) {\r\n\tconst nationalSignificantNumberPart = getNationalSignificantNumberDigits(number, country, metadata)\r\n\tif (nationalSignificantNumberPart) {\r\n\t\tconst overflowDigitsCount = nationalSignificantNumberPart.length - getMaxNumberLength(country, metadata)\r\n\t\tif (overflowDigitsCount > 0) {\r\n\t\t\treturn number.slice(0, number.length - overflowDigitsCount)\r\n\t\t}\r\n\t}\r\n\treturn number\r\n}\r\n\r\nfunction getMaxNumberLength(country, metadata) {\r\n\t// Get \"possible lengths\" for a phone number of the country.\r\n\tmetadata = new Metadata(metadata)\r\n\tmetadata.selectNumberingPlan(country)\r\n\t// Return the last \"possible length\".\r\n\treturn metadata.numberingPlan.possibleLengths()[metadata.numberingPlan.possibleLengths().length - 1]\r\n}\r\n\r\n// If the phone number being input is an international one\r\n// then tries to derive the country from the phone number.\r\n// (regardless of whether there's any country currently selected)\r\n/**\r\n * @param {string} partialE164Number - A possibly incomplete E.164 phone number.\r\n * @param {string?} country - Currently selected country.\r\n * @param {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\r\nexport function getCountryForPartialE164Number(partialE164Number, {\r\n\tcountry,\r\n\tcountries,\r\n\trequired,\r\n\tmetadata\r\n}) {\r\n\tif (partialE164Number === '+') {\r\n\t\t// Don't change the currently selected country yet.\r\n\t\treturn country\r\n\t}\r\n\r\n\tconst derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(partialE164Number, metadata)\r\n\r\n\t// If a phone number is being input in international form\r\n\t// and the country can already be derived from it,\r\n\t// then select that country.\r\n\tif (derived_country && (!countries || (countries.indexOf(derived_country) >= 0))) {\r\n\t\treturn derived_country\r\n\t}\r\n\t// If \"International\" country option has not been disabled\r\n\t// and the international phone number entered doesn't correspond\r\n\t// to the currently selected country then reset the currently selected country.\r\n\telse if (country &&\r\n\t\t!required &&\r\n\t\t!couldNumberBelongToCountry(partialE164Number, country, metadata)) {\r\n\t\treturn undefined\r\n\t}\r\n\r\n\t// Don't change the currently selected country.\r\n\treturn country\r\n}\r\n\r\n/**\r\n * Parses `` value. Derives `country` from `input`. Derives an E.164 `value`.\r\n * @param {string?} phoneDigits — Parsed `` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param {string?} prevPhoneDigits — Previous parsed `` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param {string?} country - Currently selected country.\r\n * @param {boolean} countryRequired - Is selecting some country required.\r\n * @param {function} getAnyCountry - Can be used to get any country when selecting some country required.\r\n * @param {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param {boolean} international - Set to `true` to force international phone number format (leading `+`). Set to `false` to force \"national\" phone number format. Is `undefined` by default.\r\n * @param {boolean} limitMaxLength — Whether to enable limiting phone number max length.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {object} An object of shape `{ phoneDigits, country, value }`. `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`. The returned `phoneDigits` shouldn't be used anywhere except for passing it as `prevPhoneDigits` parameter to this same function on next input change event.\r\n */\r\nexport function onPhoneDigitsChange(phoneDigits, {\r\n\tprevPhoneDigits,\r\n\tcountry,\r\n\tdefaultCountry,\r\n\tcountryRequired,\r\n\tgetAnyCountry,\r\n\tcountries,\r\n\tinternational,\r\n\tlimitMaxLength,\r\n\tcountryCallingCodeEditable,\r\n\tmetadata\r\n}) {\r\n\tif (international && countryCallingCodeEditable === false) {\r\n\t\tif (country) {\r\n\t\t\t// For international phone numbers written with non-editable country calling code,\r\n\t\t\t// the `` value must always start with that non-editable country calling code.\r\n\t\t\tconst prefix = getInternationalPhoneNumberPrefix(country, metadata)\r\n\t\t\t// If the input value doesn't start with the non-editable country calling code,\r\n\t\t\t// it should be fixed.\r\n\t\t\tif (phoneDigits.indexOf(prefix) !== 0) {\r\n\t\t\t\tlet value\r\n\t\t\t\t// If a phone number input is declared as\r\n\t\t\t\t// `international: true` and `countryCallingCodeEditable: false`,\r\n\t\t\t\t// then the value of the `` is gonna be non-empty at all times,\r\n\t\t\t\t// even before the user has started to input any digits in the input field,\r\n\t\t\t\t// because the country calling code is always there by design.\r\n\t\t\t\t//\r\n\t\t\t\t// The fact that the input value is always non-empty results in a side effect:\r\n\t\t\t\t// whenever a user tabs into such input field, its value gets automatically selected.\r\n\t\t\t\t// If at that moment in time the user starts typing in the national digits of the phone number,\r\n\t\t\t\t// the selected `` value gets automatically replaced by those typed-in digits\r\n\t\t\t\t// so the value changes from `+xxx` to `y`, because inputting anything while having\r\n\t\t\t\t// the `` value selected results in erasing that `` value.\r\n\t\t\t\t//\r\n\t\t\t\t// This component handles such cases by restoring the `` value to what\r\n\t\t\t\t// it should be in such cases: `+xxxy`.\r\n\t\t\t\t// https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/43\r\n\t\t\t\t//\r\n\t\t\t\tconst hasStartedTypingInNationalNumberDigitsHavingInputValueSelected = phoneDigits && phoneDigits[0] !== '+'\r\n\t\t\t\tif (hasStartedTypingInNationalNumberDigitsHavingInputValueSelected) {\r\n\t\t\t\t\t// Fix the input value to what it should be: `y` → `+xxxy`.\r\n\t\t\t\t\tphoneDigits = prefix + phoneDigits\r\n\t\t\t\t\tvalue = e164(phoneDigits, country, metadata)\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// In other cases, simply reset the `` value, because there're only two\r\n\t\t\t\t\t// possible cases:\r\n\t\t\t\t\t// * The user has selected the `` value and then hit Delete/Backspace to erase it.\r\n\t\t\t\t\t// * The user has pasted an international phone number for another country calling code,\r\n\t\t\t\t\t// which is considered a non-valid value.\r\n\t\t\t\t\tphoneDigits = prefix\r\n\t\t\t\t}\r\n\t\t\t\treturn {\r\n\t\t\t\t\tphoneDigits,\r\n\t\t\t\t\tvalue,\r\n\t\t\t\t\tcountry\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// If `international` property is `false`, then it means\r\n\t// \"enforce national-only format during input\",\r\n\t// so, if that's the case, then remove all `+` characters,\r\n\t// but only if some country is currently selected.\r\n\t// (not if \"International\" country is selected).\r\n\tif (international === false && country && phoneDigits && phoneDigits[0] === '+') {\r\n\t\tphoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata)\r\n\t}\r\n\r\n\t// Trim the input to not exceed the maximum possible number length.\r\n\tif (phoneDigits && country && limitMaxLength) {\r\n\t\tphoneDigits = trimNumber(phoneDigits, country, metadata)\r\n\t}\r\n\r\n\t// If this `onChange()` event was triggered\r\n\t// as a result of selecting \"International\" country,\r\n\t// then force-prepend a `+` sign if the phone number\r\n\t// `` value isn't in international format.\r\n\t// Also, force-prepend a `+` sign if international\r\n\t// phone number input format is set.\r\n\tif (phoneDigits && phoneDigits[0] !== '+' && (!country || international)) {\r\n\t\tphoneDigits = '+' + phoneDigits\r\n\t}\r\n\r\n\t// If the previously entered phone number\r\n\t// has been entered in international format\r\n\t// and the user decides to erase it,\r\n\t// then also reset the `country`\r\n\t// because it was most likely automatically selected\r\n\t// while the user was typing in the phone number\r\n\t// in international format.\r\n\t// This fixes the issue when a user is presented\r\n\t// with a phone number input with no country selected\r\n\t// and then types in their local phone number\r\n\t// then discovers that the input's messed up\r\n\t// (a `+` has been prepended at the start of their input\r\n\t// and a random country has been selected),\r\n\t// decides to undo it all by erasing everything\r\n\t// and then types in their local phone number again\r\n\t// resulting in a seemingly correct phone number\r\n\t// but in reality that phone number has incorrect country.\r\n\t// https://github.com/catamphetamine/react-phone-number-input/issues/273\r\n\tif (!phoneDigits && prevPhoneDigits && prevPhoneDigits[0] === '+') {\r\n\t\tif (international) {\r\n\t\t\tcountry = undefined\r\n\t\t} else {\r\n\t\t\tcountry = defaultCountry\r\n\t\t}\r\n\t}\r\n\t// Also resets such \"randomly\" selected country\r\n\t// as soon as the user erases the number\r\n\t// digit-by-digit up to the leading `+` sign.\r\n\tif (phoneDigits === '+' && prevPhoneDigits && prevPhoneDigits[0] === '+' && prevPhoneDigits.length > '+'.length) {\r\n\t\tcountry = undefined\r\n\t}\r\n\r\n\t// Generate the new `value` property.\r\n\tlet value\r\n\tif (phoneDigits) {\r\n\t\tif (phoneDigits[0] === '+') {\r\n\t\t\tif (phoneDigits === '+') {\r\n\t\t\t\tvalue = undefined\r\n\t\t\t} else if (country && getInternationalPhoneNumberPrefix(country, metadata).indexOf(phoneDigits) === 0) {\r\n\t\t\t\t// Selected a `country` and started inputting an\r\n\t\t\t\t// international phone number for this country\r\n\t\t\t\t// but hasn't input any \"national (significant) number\" digits yet.\r\n\t\t\t\t// In that case, assume `value` be `undefined`.\r\n\t\t\t\t//\r\n\t\t\t\t// For example, if selected `country` `\"US\"`\r\n\t\t\t\t// and started inputting phone number `\"+1\"`\r\n\t\t\t\t// then `value` `undefined` will be returned from this function.\r\n\t\t\t\t//\r\n\t\t\t\tvalue = undefined\r\n\t\t\t} else {\r\n\t\t\t\tvalue = e164(phoneDigits, country, metadata)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalue = e164(phoneDigits, country, metadata)\r\n\t\t}\r\n\t}\r\n\r\n\t// Derive the country from the phone number.\r\n\t// (regardless of whether there's any country currently selected,\r\n\t// because there could be several countries corresponding to one country calling code)\r\n\tif (value) {\r\n\t\tcountry = getCountryForPartialE164Number(value, {\r\n\t\t\tcountry,\r\n\t\t\tcountries,\r\n\t\t\tmetadata\r\n\t\t})\r\n\t\t// If `international` property is `false`, then it means\r\n\t\t// \"enforce national-only format during input\",\r\n\t\t// so, if that's the case, then remove all `+` characters,\r\n\t\t// but only if some country is currently selected.\r\n\t\t// (not if \"International\" country is selected).\r\n\t\tif (international === false && country && phoneDigits && phoneDigits[0] === '+') {\r\n\t\t\tphoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata)\r\n\t\t\t// Re-calculate `value` because `phoneDigits` has changed.\r\n\t\t\tvalue = e164(phoneDigits, country, metadata)\r\n\t\t}\r\n\t}\r\n\r\n\tif (!country && countryRequired) {\r\n\t\tcountry = defaultCountry || getAnyCountry()\r\n\t}\r\n\r\n\treturn {\r\n\t\t// `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`.\r\n\t\t// The returned `phoneDigits` shouldn't be used anywhere except for passing it as\r\n\t\t// `prevPhoneDigits` parameter to this same function on next input change event.\r\n\t\tphoneDigits,\r\n\t\tcountry,\r\n\t\tvalue\r\n\t}\r\n}\r\n\r\nfunction convertInternationalPhoneDigitsToNational(input, country, metadata) {\r\n\t// Handle the case when a user might have pasted\r\n\t// a phone number in international format.\r\n\tif (input.indexOf(getInternationalPhoneNumberPrefix(country, metadata)) === 0) {\r\n\t\t// Create \"as you type\" formatter.\r\n\t\tconst formatter = new AsYouType(country, metadata)\r\n\t\t// Input partial national phone number.\r\n\t\tformatter.input(input)\r\n\t\t// Return the parsed partial national phone number.\r\n\t\tconst phoneNumber = formatter.getNumber()\r\n\t\tif (phoneNumber) {\r\n\t\t\t// Transform the number to a national one,\r\n\t\t\t// and remove all non-digits.\r\n\t\t\treturn phoneNumber.formatNational().replace(/\\D/g, '')\r\n\t\t} else {\r\n\t\t\treturn ''\r\n\t\t}\r\n\t} else {\r\n\t\t// Just remove the `+` sign.\r\n\t\treturn input.replace(/\\D/g, '')\r\n\t}\r\n}\r\n\r\n/**\r\n * Determines the country for a given (possibly incomplete) E.164 phone number.\r\n * @param {string} number - A possibly incomplete E.164 phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\r\nexport function getCountryFromPossiblyIncompleteInternationalPhoneNumber(number, metadata) {\r\n\tconst formatter = new AsYouType(null, metadata)\r\n\tformatter.input(number)\r\n\t// // `001` is a special \"non-geograpical entity\" code\r\n\t// // in Google's `libphonenumber` library.\r\n\t// if (formatter.getCountry() === '001') {\r\n\t// \treturn\r\n\t// }\r\n\treturn formatter.getCountry()\r\n}\r\n\r\n/**\r\n * Compares two strings.\r\n * A helper for `Array.sort()`.\r\n * @param {string} a — First string.\r\n * @param {string} b — Second string.\r\n * @param {(string[]|string)} [locales] — The `locales` argument of `String.localeCompare`.\r\n */\r\nexport function compareStrings(a, b, locales) {\r\n // Use `String.localeCompare` if it's available.\r\n // https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\r\n // Which means everyone except IE <= 10 and Safari <= 10.\r\n // `localeCompare()` is available in latest Node.js versions.\r\n /* istanbul ignore else */\r\n if (String.prototype.localeCompare) {\r\n return a.localeCompare(b, locales);\r\n }\r\n /* istanbul ignore next */\r\n return a < b ? -1 : (a > b ? 1 : 0);\r\n}\r\n\r\n/**\r\n * Strips `+${countryCallingCode}` prefix from an E.164 phone number.\r\n * @param {string} number - (possibly incomplete) E.164 phone number.\r\n * @param {string?} country - A possible country for this phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string}\r\n */\r\nexport function stripCountryCallingCode(number, country, metadata) {\r\n\t// Just an optimization, so that it\r\n\t// doesn't have to iterate through all country calling codes.\r\n\tif (country) {\r\n\t\tconst countryCallingCodePrefix = '+' + getCountryCallingCode(country, metadata)\r\n\r\n\t\t// If `country` fits the actual `number`.\r\n\t\tif (number.length < countryCallingCodePrefix.length) {\r\n\t\t\tif (countryCallingCodePrefix.indexOf(number) === 0) {\r\n\t\t\t\treturn ''\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (number.indexOf(countryCallingCodePrefix) === 0) {\r\n\t\t\t\treturn number.slice(countryCallingCodePrefix.length)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// If `country` doesn't fit the actual `number`.\r\n\t// Try all available country calling codes.\r\n\tfor (const country_calling_code of Object.keys(metadata.country_calling_codes)) {\r\n\t\tif (number.indexOf(country_calling_code) === '+'.length) {\r\n\t\t\treturn number.slice('+'.length + country_calling_code.length)\r\n\t\t}\r\n\t}\r\n\r\n\treturn ''\r\n}\r\n\r\n/**\r\n * Parses a partially entered national phone number digits\r\n * (or a partially entered E.164 international phone number)\r\n * and returns the national significant number part.\r\n * National significant number returned doesn't come with a national prefix.\r\n * @param {string} number - National number digits. Or possibly incomplete E.164 phone number.\r\n * @param {string?} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} [result]\r\n */\r\nexport function getNationalSignificantNumberDigits(number, country, metadata) {\r\n\t// Create \"as you type\" formatter.\r\n\tconst formatter = new AsYouType(country, metadata)\r\n\t// Input partial national phone number.\r\n\tformatter.input(number)\r\n\t// Return the parsed partial national phone number.\r\n\tconst phoneNumber = formatter.getNumber()\r\n\treturn phoneNumber && phoneNumber.nationalNumber\r\n}\r\n\r\n/**\r\n * Checks if a partially entered E.164 phone number could belong to a country.\r\n * @param {string} number\r\n * @param {string} country\r\n * @return {boolean}\r\n */\r\nexport function couldNumberBelongToCountry(number, country, metadata) {\r\n\tconst intlPhoneNumberPrefix = getInternationalPhoneNumberPrefix(country, metadata)\r\n\tlet i = 0\r\n\twhile (i < number.length && i < intlPhoneNumberPrefix.length) {\r\n\t\tif (number[i] !== intlPhoneNumberPrefix[i]) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn true\r\n}\r\n\r\n/**\r\n * Gets initial \"phone digits\" (including `+`, if using international format).\r\n * @return {string} [phoneDigits] Returns `undefined` if there should be no initial \"phone digits\".\r\n */\r\nexport function getInitialPhoneDigits({\r\n\tvalue,\r\n\tphoneNumber,\r\n\tdefaultCountry,\r\n\tinternational,\r\n\tuseNationalFormat,\r\n\tmetadata\r\n}) {\r\n\t// If the `value` (E.164 phone number)\r\n\t// belongs to the currently selected country\r\n\t// and `useNationalFormat` is `true`\r\n\t// then convert `value` (E.164 phone number)\r\n\t// to a local phone number digits.\r\n\t// E.g. '+78005553535' -> '88005553535'.\r\n\tif ((international === false || useNationalFormat) && phoneNumber && phoneNumber.country) {\r\n\t\treturn generateNationalNumberDigits(phoneNumber)\r\n\t}\r\n\t// If `international` property is `true`,\r\n\t// meaning \"enforce international phone number format\",\r\n\t// then always show country calling code in the input field.\r\n\tif (!value && international && defaultCountry) {\r\n\t\treturn getInternationalPhoneNumberPrefix(defaultCountry, metadata)\r\n\t}\r\n\treturn value\r\n}","import normalizeArguments from './normalizeArguments.js'\r\nimport parsePhoneNumber_ from './parsePhoneNumber_.js'\r\n\r\nexport default function parsePhoneNumber() {\r\n\tconst { text, options, metadata } = normalizeArguments(arguments)\r\n\treturn parsePhoneNumber_(text, options, metadata)\r\n}\r\n","import {\r\n\tgetInitialPhoneDigits,\r\n\tgetCountryForPartialE164Number,\r\n\tparsePhoneNumber\r\n} from './phoneInputHelpers.js'\r\n\r\nimport getInternationalPhoneNumberPrefix from './getInternationalPhoneNumberPrefix.js'\r\n\r\nimport {\r\n\tisCountrySupportedWithError,\r\n\tgetSupportedCountries\r\n} from './countries.js'\r\n\r\nexport default function getPhoneInputWithCountryStateUpdateFromNewProps(props, prevProps, state) {\r\n\tconst {\r\n\t\tmetadata,\r\n\t\tcountries,\r\n\t\tdefaultCountry: newDefaultCountry,\r\n\t\tvalue: newValue,\r\n\t\treset: newReset,\r\n\t\tinternational,\r\n\t\t// `displayInitialValueAsLocalNumber` property has been\r\n\t\t// superceded by `initialValueFormat` property.\r\n\t\tdisplayInitialValueAsLocalNumber,\r\n\t\tinitialValueFormat\r\n\t} = props\r\n\r\n\tconst {\r\n\t\tdefaultCountry: prevDefaultCountry,\r\n\t\tvalue: prevValue,\r\n\t\treset: prevReset\r\n\t} = prevProps\r\n\r\n\tconst {\r\n\t\tcountry,\r\n\t\tvalue,\r\n\t\t// If the user has already manually selected a country\r\n\t\t// then don't override that already selected country\r\n\t\t// if the `defaultCountry` property changes.\r\n\t\t// That's what `hasUserSelectedACountry` flag is for.\r\n\t\thasUserSelectedACountry\r\n\t} = state\r\n\r\n\tconst _getInitialPhoneDigits = (parameters) => getInitialPhoneDigits({\r\n\t\t...parameters,\r\n\t\tinternational,\r\n\t\tuseNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\r\n\t\tmetadata\r\n\t})\r\n\r\n\t// Some users requested a way to reset the component\r\n\t// (both number `` and country ``\r\n\t// and country ``.\r\n\t// It's also not replaced with just resetting `country` on\r\n\t// external `value` reset, because a user could select a country\r\n\t// and then not input any `value`, and so the selected country\r\n\t// would be \"stuck\", if not using this `reset` property.\r\n\t// https://github.com/catamphetamine/react-phone-number-input/issues/300\r\n\tif (newReset !== prevReset) {\r\n\t\treturn {\r\n\t\t\tphoneDigits: _getInitialPhoneDigits({\r\n\t\t\t\tvalue: undefined,\r\n\t\t\t\tdefaultCountry: newDefaultCountry\r\n\t\t\t}),\r\n\t\t\tvalue: undefined,\r\n\t\t\tcountry: newDefaultCountry,\r\n\t\t\thasUserSelectedACountry: undefined\r\n\t\t}\r\n\t}\r\n\r\n\t// `value` is the value currently shown in the component:\r\n\t// it's stored in the component's `state`, and it's not the `value` property.\r\n\t// `prevValue` is \"previous `value` property\".\r\n\t// `newValue` is \"new `value` property\".\r\n\r\n\t// If the default country changed\r\n\t// (e.g. in case of ajax GeoIP detection after page loaded)\r\n\t// then select it, but only if the user hasn't already manually\r\n\t// selected a country, and no phone number has been manually entered so far.\r\n\t// Because if the user has already started inputting a phone number\r\n\t// then they're okay with no country being selected at all (\"International\")\r\n\t// and they don't want to be disturbed, don't want their input to be screwed, etc.\r\n\tif (newDefaultCountry !== prevDefaultCountry) {\r\n\t\tconst isNewDefaultCountrySupported = !newDefaultCountry || isCountrySupportedWithError(newDefaultCountry, metadata)\r\n\t\tconst noValueHasBeenEnteredByTheUser = (\r\n\t\t\t// By default, \"no value has been entered\" means `value` is `undefined`.\r\n\t\t\t!value ||\r\n\t\t\t// When `international` is `true`, and some country has been pre-selected,\r\n\t\t\t// then the `` contains a pre-filled value of `+${countryCallingCode}${leadingDigits}`,\r\n\t\t\t// so in case of `international` being `true`, \"the user hasn't entered anything\" situation\r\n\t\t\t// doesn't just mean `value` is `undefined`, but could also mean `value` is `+${countryCallingCode}`.\r\n\t\t\t(international && value === _getInitialPhoneDigits({\r\n\t\t\t\tvalue: undefined,\r\n\t\t\t\tdefaultCountry: prevDefaultCountry\r\n\t\t\t}))\r\n\t\t)\r\n\t\t// Only update the `defaultCountry` property if no phone number\r\n\t\t// has been entered by the user or pre-set by the application.\r\n\t\tconst noValueHasBeenEntered = !newValue && noValueHasBeenEnteredByTheUser\r\n\t\tif (!hasUserSelectedACountry && isNewDefaultCountrySupported && noValueHasBeenEntered) {\r\n\t\t\treturn {\r\n\t\t\t\tcountry: newDefaultCountry,\r\n\t\t\t\t// If `phoneDigits` is empty, then automatically select the new `country`\r\n\t\t\t\t// and set `phoneDigits` to `+{getCountryCallingCode(newCountry)}`.\r\n\t\t\t\t// The code assumes that \"no phone number has been entered by the user\",\r\n\t\t\t\t// and no `value` property has been passed, so the `phoneNumber` parameter\r\n\t\t\t\t// of `_getInitialPhoneDigits({ value, phoneNumber, ... })` is `undefined`.\r\n\t\t\t\tphoneDigits: _getInitialPhoneDigits({\r\n\t\t\t\t\tvalue: undefined,\r\n\t\t\t\t\tdefaultCountry: newDefaultCountry\r\n\t\t\t\t}),\r\n\t\t\t\t// `value` is `undefined` and it stays so.\r\n\t\t\t\tvalue: undefined\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// If a new `value` is set externally.\r\n\t// (e.g. as a result of an ajax API request\r\n\t// to get user's phone after page loaded)\r\n\t// The first part — `newValue !== prevValue` —\r\n\t// is basically `props.value !== prevProps.value`\r\n\t// so it means \"if value property was changed externally\".\r\n\t// The second part — `newValue !== value` —\r\n\t// is for ignoring the `getDerivedStateFromProps()` call\r\n\t// which happens in `this.onChange()` right after `this.setState()`.\r\n\t// If this `getDerivedStateFromProps()` call isn't ignored\r\n\t// then the country flag would reset on each input.\r\n\tif (!valuesAreEqual(newValue, prevValue) && !valuesAreEqual(newValue, value)) {\r\n\t\tlet phoneNumber\r\n\t\tlet parsedCountry\r\n\t\tif (newValue) {\r\n\t\t\tphoneNumber = parsePhoneNumber(newValue, metadata)\r\n\t\t\tconst supportedCountries = getSupportedCountries(countries, metadata)\r\n\t\t\tif (phoneNumber && phoneNumber.country) {\r\n\t\t\t\t// Ignore `else` because all countries are supported in metadata.\r\n\t\t\t\t/* istanbul ignore next */\r\n\t\t\t\tif (!supportedCountries || supportedCountries.indexOf(phoneNumber.country) >= 0) {\r\n\t\t\t\t\tparsedCountry = phoneNumber.country\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tparsedCountry = getCountryForPartialE164Number(newValue, {\r\n\t\t\t\t\tcountry: undefined,\r\n\t\t\t\t\tcountries: supportedCountries,\r\n\t\t\t\t\tmetadata\r\n\t\t\t\t})\r\n\t\t\t\t// In cases when multiple countries correspond to the same country calling code,\r\n\t\t\t\t// the phone number digits of `newValue` have to be matched against country-specific\r\n\t\t\t\t// regular expressions in order to determine the exact country.\r\n\t\t\t\t// Sometimes, that algorithm can't decide for sure which country does the phone number belong to,\r\n\t\t\t\t// for example when the digits of `newValue` don't match any of those regular expressions.\r\n\t\t\t\t// and the country of the phone number couldn't be determined.\r\n\t\t\t\t// In those cases, people prefer the component to show the flag of the `defaultCountry`\r\n\t\t\t\t// if the phone number could potentially belong to that `defaultCountry`.\r\n\t\t\t\t// At least that's how the component behaves when a user pastes an international\r\n\t\t\t\t// phone number into the input field: for example, when `defaultCountry` is `\"US\"`\r\n\t\t\t\t// and the user pastes value \"+1 555 555 5555\" into the input field, it keep showing \"US\" flag.\r\n\t\t\t\t// So when setting new `value` property externally, the component should behave the same way:\r\n\t\t\t\t// it should select the `defaultCountry` when the new `value` could potentially belong\r\n\t\t\t\t// to that country in cases when the exact country can't be determined.\r\n\t\t\t\t// https://github.com/catamphetamine/react-phone-number-input/issues/413#issuecomment-1536219404\r\n\t\t\t\tif (!parsedCountry) {\r\n\t\t\t\t\tif (newDefaultCountry) {\r\n\t\t\t\t\t\tif (newValue.indexOf(getInternationalPhoneNumberPrefix(newDefaultCountry, metadata)) === 0) {\r\n\t\t\t\t\t\t\tparsedCountry = newDefaultCountry\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tlet hasUserSelectedACountryUpdate\r\n\t\tif (!newValue) {\r\n\t\t\t// Reset `hasUserSelectedACountry` flag in `state`.\r\n\t\t\thasUserSelectedACountryUpdate = {\r\n\t\t\t\thasUserSelectedACountry: undefined\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {\r\n\t\t\t...hasUserSelectedACountryUpdate,\r\n\t\t\tphoneDigits: _getInitialPhoneDigits({\r\n\t\t\t\tphoneNumber,\r\n\t\t\t\tvalue: newValue,\r\n\t\t\t\tdefaultCountry: newDefaultCountry\r\n\t\t\t}),\r\n\t\t\tvalue: newValue,\r\n\t\t\tcountry: newValue ? parsedCountry : newDefaultCountry\r\n\t\t}\r\n\t}\r\n\r\n\t// `defaultCountry` didn't change.\r\n\t// `value` didn't change.\r\n\t// `phoneDigits` didn't change, because `value` didn't change.\r\n\t//\r\n\t// So no need to update state.\r\n}\r\n\r\nfunction valuesAreEqual(value1, value2) {\r\n\t// If `value` has been set to `null` externally then convert it to `undefined`.\r\n\t//\r\n\t// For example, `react-hook-form` sets `value` to `null` when the user clears the input.\r\n\t// https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/164\r\n\t// In that case, without this conversion of `null` to `undefined`, it would reset\r\n\t// the selected country to `defaultCountry` because in that case `newValue !== value`\r\n\t// because `null !== undefined`.\r\n\t//\r\n\t// Historically, empty `value` is encoded as `undefined`.\r\n\t// Perhaps empty `value` would be better encoded as `null` instead.\r\n\t// But because that would be a potentially breaking change for some people,\r\n\t// it's left as is for the current \"major\" version of this library.\r\n\t//\r\n\tif (value1 === null) {\r\n\t\tvalue1 = undefined\r\n\t}\r\n\tif (value2 === null) {\r\n\t\tvalue2 = undefined\r\n\t}\r\n\treturn value1 === value2\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport classNames from 'classnames'\r\n\r\nimport InputSmart from './InputSmart.js'\r\nimport InputBasic from './InputBasic.js'\r\n\r\nimport { CountrySelectWithIcon as CountrySelect } from './CountrySelect.js'\r\n\r\nimport Flag from './Flag.js'\r\nimport InternationalIcon from './InternationalIcon.js'\r\n\r\nimport {\r\n\tsortCountryOptions,\r\n\tisCountrySupportedWithError,\r\n\tgetSupportedCountries,\r\n\tgetSupportedCountryOptions,\r\n\tgetCountries\r\n} from './helpers/countries.js'\r\n\r\nimport { createCountryIconComponent } from './CountryIcon.js'\r\n\r\nimport { setRefsValue } from './useExternalRef.js'\r\n\r\nimport {\r\n\tmetadata as metadataPropType,\r\n\tlabels as labelsPropType\r\n} from './PropTypes.js'\r\n\r\nimport {\r\n\tgetPreSelectedCountry,\r\n\tgetCountrySelectOptions,\r\n\tparsePhoneNumber,\r\n\tgenerateNationalNumberDigits,\r\n\tgetPhoneDigitsForNewCountry,\r\n\tgetInitialPhoneDigits,\r\n\tonPhoneDigitsChange,\r\n\te164\r\n} from './helpers/phoneInputHelpers.js'\r\n\r\nimport getPhoneInputWithCountryStateUpdateFromNewProps from './helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js'\r\n\r\nclass PhoneNumberInput_ extends React.PureComponent {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\r\n\t\tthis.inputRef = React.createRef()\r\n\r\n\t\tconst {\r\n\t\t\tvalue,\r\n\t\t\tlabels,\r\n\t\t\tinternational,\r\n\t\t\taddInternationalOption,\r\n\t\t\t// `displayInitialValueAsLocalNumber` property has been\r\n\t\t\t// superceded by `initialValueFormat` property.\r\n\t\t\tdisplayInitialValueAsLocalNumber,\r\n\t\t\tinitialValueFormat,\r\n\t\t\tmetadata\r\n\t\t} = this.props\r\n\r\n\t\tlet {\r\n\t\t\tdefaultCountry,\r\n\t\t\tcountries\r\n\t\t} = this.props\r\n\r\n\t\t// Validate `defaultCountry`.\r\n\t\tif (defaultCountry) {\r\n\t\t\tif (!this.isCountrySupportedWithError(defaultCountry)) {\r\n\t\t\t\tdefaultCountry = undefined\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Validate `countries`.\r\n\t\tcountries = getSupportedCountries(countries, metadata)\r\n\r\n\t\tconst phoneNumber = parsePhoneNumber(value, metadata)\r\n\r\n\t\tthis.CountryIcon = createCountryIconComponent(this.props)\r\n\r\n\t\tconst preSelectedCountry = getPreSelectedCountry({\r\n\t\t\tvalue,\r\n\t\t\tphoneNumber,\r\n\t\t\tdefaultCountry,\r\n\t\t\trequired: !addInternationalOption,\r\n\t\t\tcountries: countries || getCountries(metadata),\r\n\t\t\tgetAnyCountry: () => this.getFirstSupportedCountry({ countries }),\r\n\t\t\tmetadata\r\n\t\t})\r\n\r\n\t\tthis.state = {\r\n\t\t\t// Workaround for `this.props` inside `getDerivedStateFromProps()`.\r\n\t\t\tprops: this.props,\r\n\r\n\t\t\t// The country selected.\r\n\t\t\tcountry: preSelectedCountry,\r\n\r\n\t\t\t// `countries` are stored in `this.state` because they're filtered.\r\n\t\t\t// For example, a developer might theoretically pass some unsupported\r\n\t\t\t// countries as part of the `countries` property, and because of that\r\n\t\t\t// the component uses `this.state.countries` (which are filtered)\r\n\t\t\t// instead of `this.props.countries`\r\n\t\t\t// (which could potentially contain unsupported countries).\r\n\t\t\tcountries,\r\n\r\n\t\t\t// `phoneDigits` state property holds non-formatted user's input.\r\n\t\t\t// The reason is that there's no way of finding out\r\n\t\t\t// in which form should `value` be displayed: international or national.\r\n\t\t\t// E.g. if `value` is `+78005553535` then it could be input\r\n\t\t\t// by a user both as `8 (800) 555-35-35` and `+7 800 555 35 35`.\r\n\t\t\t// Hence storing just `value` is not sufficient for correct formatting.\r\n\t\t\t// E.g. if a user entered `8 (800) 555-35-35`\r\n\t\t\t// then value is `+78005553535` and `phoneDigits` are `88005553535`\r\n\t\t\t// and if a user entered `+7 800 555 35 35`\r\n\t\t\t// then value is `+78005553535` and `phoneDigits` are `+78005553535`.\r\n\t\t\tphoneDigits: getInitialPhoneDigits({\r\n\t\t\t\tvalue,\r\n\t\t\t\tphoneNumber,\r\n\t\t\t\tdefaultCountry,\r\n\t\t\t\tinternational,\r\n\t\t\t\tuseNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\r\n\t\t\t\tmetadata\r\n\t\t\t}),\r\n\r\n\t\t\t// `value` property is duplicated in state.\r\n\t\t\t// The reason is that `getDerivedStateFromProps()`\r\n\t\t\t// needs this `value` to compare to the new `value` property\r\n\t\t\t// to find out if `phoneDigits` needs updating:\r\n\t\t\t// If the `value` property was changed externally\r\n\t\t\t// then it won't be equal to `state.value`\r\n\t\t\t// in which case `phoneDigits` and `country` should be updated.\r\n\t\t\tvalue\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tconst { onCountryChange } = this.props\r\n\t\tlet { defaultCountry } = this.props\r\n\t\tconst { country: selectedCountry } = this.state\r\n\t\tif (onCountryChange) {\r\n\t\t\tif (defaultCountry) {\r\n\t\t\t\tif (!this.isCountrySupportedWithError(defaultCountry)) {\r\n\t\t\t\t\tdefaultCountry = undefined\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (selectedCountry !== defaultCountry) {\r\n\t\t\t\tonCountryChange(selectedCountry)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidUpdate(prevProps, prevState) {\r\n\t\tconst { onCountryChange } = this.props\r\n\t\tconst { country } = this.state\r\n\t\t// Call `onCountryChange` when user selects another country.\r\n\t\tif (onCountryChange && country !== prevState.country) {\r\n\t\t\tonCountryChange(country)\r\n\t\t}\r\n\t}\r\n\r\n\t// This function mimicks `refSetter` function returned from `useExternalRef()` hook\r\n\t// because this class-like React component can't use the `useExternalRef()` hook.\r\n\tsetInputRef = (instance) => {\r\n\t\tsetRefsValue([this.props.inputRef, this.inputRef], instance)\r\n\t}\r\n\r\n\tgetCountrySelectOptions({ countries }) {\r\n\t\tconst {\r\n\t\t\tinternational,\r\n\t\t\tcountryCallingCodeEditable,\r\n\t\t\tcountryOptionsOrder,\r\n\t\t\taddInternationalOption,\r\n\t\t\tlabels,\r\n\t\t\tlocales,\r\n\t\t\tmetadata\r\n\t\t} = this.props\r\n\t\treturn this.useMemoCountrySelectOptions(() => {\r\n\t\t\treturn sortCountryOptions(\r\n\t\t\t\tgetCountrySelectOptions({\r\n\t\t\t\t\tcountries: countries || getCountries(metadata),\r\n\t\t\t\t\tcountryNames: labels,\r\n\t\t\t\t\taddInternationalOption: (international && countryCallingCodeEditable === false) ? false : addInternationalOption,\r\n\t\t\t\t\tcompareStringsLocales: locales,\r\n\t\t\t\t\t// compareStrings\r\n\t\t\t\t}),\r\n\t\t\t\tgetSupportedCountryOptions(countryOptionsOrder, metadata)\r\n\t\t\t)\r\n\t\t}, [\r\n\t\t\tcountries,\r\n\t\t\tcountryOptionsOrder,\r\n\t\t\taddInternationalOption,\r\n\t\t\tlabels,\r\n\t\t\tmetadata\r\n\t\t])\r\n\t}\r\n\r\n\tuseMemoCountrySelectOptions(generator, dependencies) {\r\n\t\tif (\r\n\t\t\t!this.countrySelectOptionsMemoDependencies ||\r\n\t\t\t!areEqualArrays(dependencies, this.countrySelectOptionsMemoDependencies)\r\n\t\t) {\r\n\t\t\tthis.countrySelectOptionsMemo = generator()\r\n\t\t\tthis.countrySelectOptionsMemoDependencies = dependencies\r\n\t\t}\r\n\t\treturn this.countrySelectOptionsMemo\r\n\t}\r\n\r\n\tgetFirstSupportedCountry({ countries }) {\r\n\t\tconst countryOptions = this.getCountrySelectOptions({ countries })\r\n\t\treturn countryOptions[0].value\r\n\t}\r\n\r\n\t// A shorthand for not passing `metadata` as a second argument.\r\n\tisCountrySupportedWithError = (country) => {\r\n\t\tconst { metadata } = this.props\r\n\t\treturn isCountrySupportedWithError(country, metadata)\r\n\t}\r\n\r\n\t// Country `` holds any digits\r\n\t\t// then migrate those digits for the new `country`.\r\n\t\tconst newPhoneDigits = getPhoneDigitsForNewCountry(prevPhoneDigits, {\r\n\t\t\tprevCountry,\r\n\t\t\tnewCountry,\r\n\t\t\tmetadata,\r\n\t\t\t// Convert the phone number to \"national\" format\r\n\t\t\t// when the user changes the selected country by hand.\r\n\t\t\tuseNationalFormat: !international\r\n\t\t})\r\n\r\n\t\tconst newValue = e164(newPhoneDigits, newCountry, metadata)\r\n\r\n\t\t// Focus phone number `` upon country selection.\r\n\t\tif (focusInputOnCountrySelection) {\r\n\t\t\tthis.inputRef.current.focus()\r\n\t\t}\r\n\r\n\t\t// If the user has already manually selected a country\r\n\t\t// then don't override that already selected country\r\n\t\t// if the `defaultCountry` property changes.\r\n\t\t// That's what `hasUserSelectedACountry` flag is for.\r\n\r\n\t\tthis.setState({\r\n\t\t\tcountry: newCountry,\r\n\t\t\thasUserSelectedACountry: true,\r\n\t\t\tphoneDigits: newPhoneDigits,\r\n\t\t\tvalue: newValue\r\n\t\t},\r\n\t\t() => {\r\n\t\t\t// Update the new `value` property.\r\n\t\t\t// Doing it after the `state` has been updated\r\n\t\t\t// because `onChange()` will trigger `getDerivedStateFromProps()`\r\n\t\t\t// with the new `value` which will be compared to `state.value` there.\r\n\t\t\tonChange(newValue)\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * `` `onChange()` handler.\r\n\t * Updates `value` property accordingly (so that they are kept in sync).\r\n\t * @param {string?} input — Either a parsed phone number or an empty string. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n\t */\r\n\tonChange = (_phoneDigits) => {\r\n\t\tconst {\r\n\t\t\tdefaultCountry,\r\n\t\t\tonChange,\r\n\t\t\taddInternationalOption,\r\n\t\t\tinternational,\r\n\t\t\tlimitMaxLength,\r\n\t\t\tcountryCallingCodeEditable,\r\n\t\t\tmetadata\r\n\t\t} = this.props\r\n\r\n\t\tconst {\r\n\t\t\tcountries,\r\n\t\t\tphoneDigits: prevPhoneDigits,\r\n\t\t\tcountry: currentlySelectedCountry\r\n\t\t} = this.state\r\n\r\n\t\tconst {\r\n\t\t\t// `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`.\r\n\t\t\t// The returned `phoneDigits` shouldn't be used anywhere except for passing it as\r\n\t\t\t// `prevPhoneDigits` parameter to the same `onPhoneDigitsChange()` function\r\n\t\t\t// on next input change event.\r\n\t\t\tphoneDigits,\r\n\t\t\tcountry,\r\n\t\t\tvalue\r\n\t\t} = onPhoneDigitsChange(_phoneDigits, {\r\n\t\t\tprevPhoneDigits,\r\n\t\t\tcountry: currentlySelectedCountry,\r\n\t\t\tcountryRequired: !addInternationalOption,\r\n\t\t\tdefaultCountry,\r\n\t\t\tgetAnyCountry: () => this.getFirstSupportedCountry({ countries }),\r\n\t\t\tcountries,\r\n\t\t\tinternational,\r\n\t\t\tlimitMaxLength,\r\n\t\t\tcountryCallingCodeEditable,\r\n\t\t\tmetadata\r\n\t\t})\r\n\r\n\t\tconst stateUpdate = {\r\n\t\t\tphoneDigits,\r\n\t\t\tvalue,\r\n\t\t\tcountry\r\n\t\t}\r\n\r\n\t\tif (countryCallingCodeEditable === false) {\r\n\t\t\t// If it simply did `setState({ phoneDigits: intlPrefix })` here,\r\n\t\t\t// then it would have no effect when erasing an inital international prefix\r\n\t\t\t// via Backspace, because `phoneDigits` in `state` wouldn't change\r\n\t\t\t// as a result, because it was `prefix` and it became `prefix`,\r\n\t\t\t// so the component wouldn't rerender, and the user would be able\r\n\t\t\t// to erase the country calling code part, and that part is\r\n\t\t\t// assumed to be non-eraseable. That's why the component is\r\n\t\t\t// forcefully rerendered here.\r\n\t\t\t// https://github.com/catamphetamine/react-phone-number-input/issues/367#issuecomment-721703501\r\n\t\t\tif (!value && phoneDigits === this.state.phoneDigits) {\r\n\t\t\t\t// Force a re-render of the `` in order to reset its value.\r\n\t\t\t\tstateUpdate.forceRerender = {}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.setState(\r\n\t\t\tstateUpdate,\r\n\t\t\t// Update the new `value` property.\r\n\t\t\t// Doing it after the `state` has been updated\r\n\t\t\t// because `onChange()` will trigger `getDerivedStateFromProps()`\r\n\t\t\t// with the new `value` which will be compared to `state.value` there.\r\n\t\t\t() => onChange(value)\r\n\t\t)\r\n\t}\r\n\r\n\t// Toggles the `--focus` CSS class.\r\n\t_onFocus = () => this.setState({ isFocused: true })\r\n\r\n\t// Toggles the `--focus` CSS class.\r\n\t_onBlur = () => this.setState({ isFocused: false })\r\n\r\n\tonFocus = (event) => {\r\n\t\tthis._onFocus()\r\n\t\tconst { onFocus } = this.props\r\n\t\tif (onFocus) {\r\n\t\t\tonFocus(event)\r\n\t\t}\r\n\t}\r\n\r\n\tonBlur = (event) => {\r\n\t\tconst { onBlur } = this.props\r\n\t\tthis._onBlur()\r\n\t\tif (onBlur) {\r\n\t\t\tonBlur(event)\r\n\t\t}\r\n\t}\r\n\r\n\tonCountryFocus = (event) => {\r\n\t\tthis._onFocus()\r\n\t\t// this.setState({ countrySelectFocused: true })\r\n\t\tconst { countrySelectProps } = this.props\r\n\t\tif (countrySelectProps) {\r\n\t\t\tconst { onFocus } = countrySelectProps\r\n\t\t\tif (onFocus) {\r\n\t\t\t\tonFocus(event)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonCountryBlur = (event) => {\r\n\t\tthis._onBlur()\r\n\t\t// this.setState({ countrySelectFocused: false })\r\n\t\tconst { countrySelectProps } = this.props\r\n\t\tif (countrySelectProps) {\r\n\t\t\tconst { onBlur } = countrySelectProps\r\n\t\t\tif (onBlur) {\r\n\t\t\t\tonBlur(event)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// `state` holds previous props as `props`, and also:\r\n\t// * `country` — The currently selected country, e.g. `\"RU\"`.\r\n\t// * `value` — The currently entered phone number (E.164), e.g. `+78005553535`.\r\n\t// * `phoneDigits` — The parsed `` value, e.g. `8005553535`.\r\n\t// (and a couple of other less significant properties)\r\n\tstatic getDerivedStateFromProps(props, state) {\r\n\t\treturn {\r\n\t\t\t// Emulate `prevProps` via `state.props`.\r\n\t\t\tprops,\r\n\t\t\t...getPhoneInputWithCountryStateUpdateFromNewProps(props, state.props, state)\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\t// Generic HTML attributes.\r\n\t\t\tname,\r\n\t\t\tdisabled,\r\n\t\t\treadOnly,\r\n\t\t\tautoComplete,\r\n\t\t\tstyle,\r\n\t\t\tclassName,\r\n\r\n\t\t\t// Number `` properties.\r\n\t\t\tinputRef,\r\n\t\t\tinputComponent,\r\n\t\t\tnumberInputProps,\r\n\t\t\tsmartCaret,\r\n\r\n\t\t\t// Country ``).\r\n\t\t\tdefaultCountry,\r\n\t\t\tcountries: countriesProperty,\r\n\t\t\tcountryOptionsOrder,\r\n\t\t\tlabels,\r\n\t\t\tflags,\r\n\t\t\tflagComponent,\r\n\t\t\tflagUrl,\r\n\t\t\taddInternationalOption,\r\n\t\t\tinternationalIcon,\r\n\t\t\t// `displayInitialValueAsLocalNumber` property has been\r\n\t\t\t// superceded by `initialValueFormat` property.\r\n\t\t\tdisplayInitialValueAsLocalNumber,\r\n\t\t\tinitialValueFormat,\r\n\t\t\tonCountryChange,\r\n\t\t\tlimitMaxLength,\r\n\t\t\tcountryCallingCodeEditable,\r\n\t\t\tfocusInputOnCountrySelection,\r\n\t\t\treset,\r\n\t\t\tmetadata,\r\n\t\t\tinternational,\r\n\t\t\tlocales,\r\n\t\t\t// compareStrings,\r\n\t\t\t...rest\r\n\t\t} = this.props\r\n\r\n\t\tconst {\r\n\t\t\tcountry,\r\n\t\t\tcountries,\r\n\t\t\tphoneDigits,\r\n\t\t\tisFocused\r\n\t\t} = this.state\r\n\r\n\t\tconst InputComponent = smartCaret ? InputSmart : InputBasic\r\n\r\n\t\tconst countrySelectOptions = this.getCountrySelectOptions({ countries })\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\r\n\t\t\t\t{/* Country `` */}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n}\r\n\r\n// This wrapper is only to `.forwardRef()` to the ``.\r\nconst PhoneNumberInput = React.forwardRef((props, ref) => (\r\n\t\r\n))\r\n\r\nPhoneNumberInput.propTypes = {\r\n\t/**\r\n\t * Phone number in `E.164` format.\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `\"+12223333333\"`\r\n\t *\r\n\t * Any \"falsy\" value like `undefined`, `null` or an empty string `\"\"` is treated like \"empty\".\r\n\t */\r\n\tvalue: PropTypes.string,\r\n\r\n\t/**\r\n\t * A function of `value: string?`.\r\n\t *\r\n\t * Updates the `value` property as the user inputs a phone number.\r\n\t *\r\n\t * If the user erases the input value, the argument is `undefined`.\r\n\t */\r\n\tonChange: PropTypes.func.isRequired,\r\n\r\n\t/**\r\n\t * Toggles the `--focus` CSS class.\r\n\t * @ignore\r\n\t */\r\n\tonFocus: PropTypes.func,\r\n\r\n\t/**\r\n\t * `onBlur` is usually passed by `redux-form`.\r\n\t * @ignore\r\n\t */\r\n\tonBlur: PropTypes.func,\r\n\r\n\t/**\r\n\t * Set to `true` to mark both the phone number ``\r\n\t * and the country ``\r\n\t * and the country ``.\r\n\t *\r\n\t * Web browser's \"autocomplete\" feature\r\n\t * remembers the phone number being input\r\n\t * and can also autofill the ``\r\n\t * with previously remembered phone numbers.\r\n\t *\r\n\t * https://developers.google.com\r\n\t * /web/updates/2015/06/checkout-faster-with-autofill\r\n\t *\r\n\t * For example, can be used to turn it off:\r\n\t *\r\n\t * \"So when should you use `autocomplete=\"off\"`?\r\n\t * One example is when you've implemented your own version\r\n\t * of autocomplete for search. Another example is any form field\r\n\t * where users will input and submit different kinds of information\r\n\t * where it would not be useful to have the browser remember\r\n\t * what was submitted previously\".\r\n\t */\r\n\t// (is `\"tel\"` by default)\r\n\tautoComplete: PropTypes.string,\r\n\r\n\t/**\r\n\t * Set to `\"national\"` to show the initial `value` in\r\n\t * \"national\" format rather than \"international\".\r\n\t *\r\n\t * For example, if `initialValueFormat` is `\"national\"`\r\n\t * and the initial `value=\"+12133734253\"` is passed\r\n\t * then the `` value will be `\"(213) 373-4253\"`.\r\n\t *\r\n\t * By default, `initialValueFormat` is `undefined`,\r\n\t * meaning that if the initial `value=\"+12133734253\"` is passed\r\n\t * then the `` value will be `\"+1 213 373 4253\"`.\r\n\t *\r\n\t * The reason for such default behaviour is that\r\n\t * the newer generation grows up when there are no stationary phones\r\n\t * and therefore everyone inputs phone numbers in international format\r\n\t * in their smartphones so people gradually get more accustomed to\r\n\t * writing phone numbers in international format rather than in local format.\r\n\t * Future people won't be using \"national\" format, only \"international\".\r\n\t */\r\n\t// (is `undefined` by default)\r\n\tinitialValueFormat: PropTypes.oneOf(['national']),\r\n\r\n\t// `displayInitialValueAsLocalNumber` property has been\r\n\t// superceded by `initialValueFormat` property.\r\n\tdisplayInitialValueAsLocalNumber: PropTypes.bool,\r\n\r\n\t/**\r\n\t * The country to be selected by default.\r\n\t * For example, can be set after a GeoIP lookup.\r\n\t *\r\n\t * Example: `\"US\"`.\r\n\t */\r\n\t// A two-letter country code (\"ISO 3166-1 alpha-2\").\r\n\tdefaultCountry: PropTypes.string,\r\n\r\n\t/**\r\n\t * If specified, only these countries will be available for selection.\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `[\"RU\", \"UA\", \"KZ\"]`\r\n\t */\r\n\tcountries: PropTypes.arrayOf(PropTypes.string),\r\n\r\n\t/**\r\n\t * Custom country `` `aria-label`.\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `{ \"ZZ\": \"Международный\", RU: \"Россия\", US: \"США\", ... }`\r\n\t *\r\n\t * See the `locales` directory for examples.\r\n\t */\r\n\tlabels: labelsPropType,\r\n\r\n\t/**\r\n\t * Country `` options sorting function.\r\n\t * The default one uses `a.localeCompare(b)`, and,\r\n\t * if that's not available, falls back to simple `a > b`/`a < b`.\r\n\t * There have been requests to add custom sorter for cases\r\n\t * like Chinese language and \"pinyin\" (non-default) sorting order.\r\n\t * https://stackoverflow.com/questions/22907288/chinese-sorting-by-pinyin-in-javascript-with-localecompare\r\n\tcompareStrings: PropTypes.func,\r\n\t */\r\n\r\n\t/**\r\n\t * A URL template of a country flag, where\r\n\t * \"{XX}\" is a two-letter country code in upper case,\r\n\t * or where \"{xx}\" is a two-letter country code in lower case.\r\n\t * By default it points to `country-flag-icons` gitlab pages website.\r\n\t * I imagine someone might want to download those country flag icons\r\n\t * and host them on their own servers instead\r\n\t * (all flags are available in the `country-flag-icons` library).\r\n\t * There's a catch though: new countries may be added in future,\r\n\t * so when hosting country flag icons on your own server\r\n\t * one should check the `CHANGELOG.md` every time before updating this library,\r\n\t * otherwise there's a possibility that some new country flag would be missing.\r\n\t */\r\n\tflagUrl: PropTypes.string,\r\n\r\n\t/**\r\n\t * Custom country flag icon components.\r\n\t * These flags will be used instead of the default ones.\r\n\t * The the \"Flags\" section of the readme for more info.\r\n\t *\r\n\t * The shape is an object where keys are country codes\r\n\t * and values are flag icon components.\r\n\t * Flag icon components receive the same properties\r\n\t * as `flagComponent` (see below).\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `{ \"RU\": (props) => }`\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `import flags from 'country-flag-icons/react/3x2'`\r\n\t *\r\n\t * `import PhoneInput from 'react-phone-number-input'`\r\n\t *\r\n\t * ``\r\n\t */\r\n\tflags: PropTypes.objectOf(PropTypes.elementType),\r\n\r\n\t/**\r\n\t * Country flag icon component.\r\n\t *\r\n\t * Takes properties:\r\n\t *\r\n\t * * `country: string` — The country code.\r\n\t * * `countryName: string` — The country name.\r\n\t * * `flagUrl: string` — The `flagUrl` property (see above).\r\n\t * * `flags: object` — The `flags` property (see above).\r\n\t */\r\n\tflagComponent: PropTypes.elementType,\r\n\r\n\t/**\r\n\t * Set to `false` to remove the \"International\" option from country `` options.\r\n\t *\r\n\t * * `\"XX\"` — inserts an option for \"XX\" country.\r\n\t * * `\"🌐\"` — inserts \"International\" option.\r\n\t * * `\"|\"` — inserts a separator.\r\n\t * * `\"...\"` — inserts options for the rest of the countries (can be omitted, in which case it will be automatically added at the end).\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `[\"US\", \"CA\", \"AU\", \"|\", \"...\"]`\r\n\t */\r\n\tcountryOptionsOrder: PropTypes.arrayOf(PropTypes.string),\r\n\r\n\t/**\r\n\t * `` component CSS style object.\r\n\t */\r\n\tstyle: PropTypes.object,\r\n\r\n\t/**\r\n\t * `` component CSS class.\r\n\t */\r\n\tclassName: PropTypes.string,\r\n\r\n\t/**\r\n\t * Country `` component props.\r\n\t * Along with the usual DOM properties such as `aria-label` and `tabIndex`,\r\n\t * some custom properties are supported, such as `arrowComponent` and `unicodeFlags`.\r\n\t */\r\n\tcountrySelectProps: PropTypes.object,\r\n\r\n\t/**\r\n\t * Phone number `` component.\r\n\t *\r\n\t * Receives properties:\r\n\t *\r\n\t * * `value: string` — The formatted `value`.\r\n\t * * `onChange(event: Event)` — Updates the formatted `value` from `event.target.value`.\r\n\t * * `onFocus()` — Is used to toggle the `--focus` CSS class.\r\n\t * * `onBlur()` — Is used to toggle the `--focus` CSS class.\r\n\t * * Other properties like `type=\"tel\"` or `autoComplete=\"tel\"` that should be passed through to the DOM ``.\r\n\t *\r\n\t * Must also either use `React.forwardRef()` to \"forward\" `ref` to the `` or implement `.focus()` method.\r\n\t */\r\n\tinputComponent: PropTypes.elementType,\r\n\r\n\t/**\r\n\t * Phone number `` component props.\r\n\t */\r\n\tnumberInputProps: PropTypes.object,\r\n\r\n\t/**\r\n\t * Wrapping `
` component.\r\n\t *\r\n\t * Receives properties:\r\n\t *\r\n\t * * `style: object` — A component CSS style object.\r\n\t * * `className: string` — Classes to attach to the component, typically changes when component focuses or blurs.\r\n\t */\r\n\tcontainerComponent: PropTypes.elementType,\r\n\r\n\t/**\r\n\t * Wrapping `
` component props.\r\n\t */\r\n\tcontainerComponentProps: PropTypes.object,\r\n\r\n\t/**\r\n\t * When the user attempts to insert a digit somewhere in the middle of a phone number,\r\n\t * the caret position is moved right before the next available digit skipping\r\n\t * any punctuation in between. This is called \"smart\" caret positioning.\r\n\t * Another case would be the phone number format changing as a result of\r\n\t * the user inserting the digit somewhere in the middle, which would require\r\n\t * re-positioning the caret because all digit positions have changed.\r\n\t * This \"smart\" caret positioning feature can be turned off by passing\r\n\t * `smartCaret={false}` property: use it in case of any possible issues\r\n\t * with caret position during phone number input.\r\n\t */\r\n\t// Is `true` by default.\r\n\tsmartCaret: PropTypes.bool,\r\n\r\n\t/**\r\n\t * Set to `true` to force \"international\" phone number format.\r\n\t * Set to `false` to force \"national\" phone number format.\r\n\t * By default it's `undefined` meaning that it doesn't enforce any phone number format.\r\n\t */\r\n\tinternational: PropTypes.bool,\r\n\r\n\t/**\r\n\t * If set to `true`, the phone number input will get trimmed\r\n\t * if it exceeds the maximum length for the country.\r\n\t */\r\n\tlimitMaxLength: PropTypes.bool,\r\n\r\n\t/**\r\n\t * If set to `false`, and `international` is `true`, then\r\n\t * users won't be able to erase the \"country calling part\"\r\n\t * of a phone number in the ``.\r\n\t */\r\n\tcountryCallingCodeEditable: PropTypes.bool,\r\n\r\n\t/**\r\n\t * `libphonenumber-js` metadata.\r\n\t *\r\n\t * Can be used to pass custom `libphonenumber-js` metadata\r\n\t * to reduce the overall bundle size for those who compile \"custom\" metadata.\r\n\t */\r\n\tmetadata: metadataPropType,\r\n\r\n\t/**\r\n\t * Is called every time the selected country changes:\r\n\t * either programmatically or when user selects it manually from the list.\r\n\t */\r\n\t// People have been asking for a way to get the selected country.\r\n\t// @see https://github.com/catamphetamine/react-phone-number-input/issues/128\r\n\t// For some it's just a \"business requirement\".\r\n\t// I guess it's about gathering as much info on the user as a website can\r\n\t// without introducing any addional fields that would complicate the form\r\n\t// therefore reducing \"conversion\" (that's a marketing term).\r\n\t// Assuming that the phone number's country is the user's country\r\n\t// is not 100% correct but in most cases I guess it's valid.\r\n\tonCountryChange: PropTypes.func,\r\n\r\n\t/**\r\n\t * If set to `false`, will not focus the `` component\r\n\t * when the user selects a country from the list of countries.\r\n\t * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n\t * Quote:\r\n\t * \"On input: Changing the setting of any user interface component\r\n\t * does not automatically cause a change of context unless the user\r\n\t * has been advised of the behaviour before using the component.\"\r\n\t */\r\n\tfocusInputOnCountrySelection: PropTypes.bool\r\n}\r\n\r\nconst defaultProps = {\r\n\t/**\r\n\t * Remember (and autofill) the value as a phone number.\r\n\t */\r\n\tautoComplete: 'tel',\r\n\r\n\t/**\r\n\t * Country `` option icon.\r\n\t */\r\n\tinternationalIcon: InternationalIcon,\r\n\r\n\t/**\r\n\t * Phone number `` component.\r\n\t */\r\n\tinputComponent: 'input',\r\n\r\n\t/**\r\n\t * Wrapping `
` component.\r\n\t */\r\n\tcontainerComponent: 'div',\r\n\r\n\t/**\r\n\t * Some users requested a way to reset the component:\r\n\t * both number `` and country ``\r\n\t * and country ``.\r\n\t * It's also not replaced with just resetting `country` on\r\n\t * external `value` reset, because a user could select a country\r\n\t * and then not input any `value`, and so the selected country\r\n\t * would be \"stuck\", if not using this `reset` property.\r\n\t */\r\n\t// https://github.com/catamphetamine/react-phone-number-input/issues/300\r\n\treset: PropTypes.any,\r\n\r\n\t/**\r\n\t *\r\n\t */\r\n\r\n\t/**\r\n\t * Set to `false` to use \"basic\" caret instead of the \"smart\" one.\r\n\t */\r\n\tsmartCaret: true,\r\n\r\n\t/**\r\n\t * Whether to add the \"International\" option\r\n\t * to the list of countries.\r\n\t */\r\n\taddInternationalOption: true,\r\n\r\n\t/**\r\n\t * If set to `false`, and `international` is `true`, then\r\n\t * users won't be able to erase the \"country calling part\"\r\n\t * of a phone number in the ``.\r\n\t */\r\n\tcountryCallingCodeEditable: true,\r\n\r\n\t/**\r\n\t * If set to `false`, will not focus the `` component\r\n\t * when the user selects a country from the list of countries.\r\n\t * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n\t * Quote:\r\n\t * \"On input: Changing the setting of any user interface component\r\n\t * does not automatically cause a change of context unless the user\r\n\t * has been advised of the behaviour before using the component.\"\r\n\t */\r\n\tfocusInputOnCountrySelection: true\r\n}\r\n\r\nfunction withDefaultProps(props) {\r\n\tprops = { ...props }\r\n\r\n\tfor (const key in defaultProps) {\r\n\t\tif (props[key] === undefined) {\r\n\t\t\tprops[key] = defaultProps[key]\r\n\t\t}\r\n\t}\r\n\r\n\treturn props\r\n}\r\n\r\nexport default PhoneNumberInput\r\n\r\nfunction areEqualArrays(a, b) {\r\n\tif (a.length !== b.length) {\r\n\t\treturn false\r\n\t}\r\n\tlet i = 0\r\n\twhile (i < a.length) {\r\n\t\tif (a[i] !== b[i]) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn true\r\n}\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport defaultLabels from '../locale/en.json.js'\r\n\r\nimport {\r\n\tmetadata as metadataPropType,\r\n\tlabels as labelsPropType\r\n} from './PropTypes.js'\r\n\r\nimport PhoneInput from './PhoneInputWithCountry.js'\r\n\r\nexport function createPhoneInput(defaultMetadata) {\r\n\tconst PhoneInputDefault = React.forwardRef(({\r\n\t\tmetadata = defaultMetadata,\r\n\t\tlabels = defaultLabels,\r\n\t\t...rest\r\n\t}, ref) => (\r\n\t\t\r\n\t))\r\n\r\n\tPhoneInputDefault.propTypes = {\r\n\t\tmetadata: metadataPropType,\r\n\t\tlabels: labelsPropType\r\n\t}\r\n\r\n\treturn PhoneInputDefault\r\n}\r\n\r\nexport default createPhoneInput()","import metadata from 'libphonenumber-js/min/metadata'\r\n\r\nimport {\r\n\tparsePhoneNumber as _parsePhoneNumber,\r\n\tformatPhoneNumber as _formatPhoneNumber,\r\n\tformatPhoneNumberIntl as _formatPhoneNumberIntl,\r\n\tisValidPhoneNumber as _isValidPhoneNumber,\r\n\tisPossiblePhoneNumber as _isPossiblePhoneNumber,\r\n\tgetCountries as _getCountries,\r\n\tgetCountryCallingCode as _getCountryCallingCode,\r\n\tisSupportedCountry as _isSupportedCountry\r\n} from '../core/index.js'\r\n\r\nimport { createPhoneInput } from '../modules/PhoneInputWithCountryDefault.js'\r\n\r\nfunction call(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}\r\n\r\nexport default createPhoneInput(metadata)\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn call(_parsePhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumber() {\r\n\treturn call(_formatPhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumberIntl() {\r\n\treturn call(_formatPhoneNumberIntl, arguments)\r\n}\r\n\r\nexport function isValidPhoneNumber() {\r\n\treturn call(_isValidPhoneNumber, arguments)\r\n}\r\n\r\nexport function isPossiblePhoneNumber() {\r\n\treturn call(_isPossiblePhoneNumber, arguments)\r\n}\r\n\r\nexport function getCountries() {\r\n\treturn call(_getCountries, arguments)\r\n}\r\n\r\nexport function getCountryCallingCode() {\r\n\treturn call(_getCountryCallingCode, arguments)\r\n}\r\n\r\nexport function isSupportedCountry() {\r\n\treturn call(_isSupportedCountry, arguments)\r\n}","import { IconMail, IconMessage, IconPhoneCall } from \"@tabler/icons-react\";\nimport AppContext from \"Context/appContext\";\nimport Card from \"components/Card\";\nimport FormInput from \"components/FormInput\";\nimport \"containers/ContactDetails\";\nimport \"containers/ContactDetails/index.css\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { Controller, useFormState } from \"react-hook-form\";\nimport PhoneInput from \"react-phone-number-input\";\nimport \"react-phone-number-input/style.css\";\n\nconst ContactDeatils = () => {\n const {\n formdata,\n setFormData,\n productCartDetail,\n progressState,\n setErrors,\n reactHookFormData,\n countryDetails,\n isWebView,\n setNotificationWay,\n isButtonClicked\n } = useContext(AppContext);\n\n const { register, handleSubmit, watch, control, formErrors } =\n reactHookFormData;\n const [menuOption, setMenuOption] = useState([\n {\n id: 1,\n name: \"SMS Text (Instant)\",\n icon: ,\n value: \"sms\",\n active: false,\n },\n {\n id: 2,\n name: \"Email (Instant)\",\n icon: ,\n value: \"email\",\n active: false,\n },\n {\n id: 3,\n name: \"Phone\",\n icon: ,\n value: \"phone\",\n active: false,\n },\n ]);\n\n const updateStatus = (index) => {\n const selectedItem = menuOption[index];\n menuOption.filter((m) => {\n if (m.id === selectedItem.id) {\n m.active = true;\n } else {\n m.active = false;\n }\n });\n setFormData({\n ...formdata,\n option: selectedItem.active ? selectedItem.value : \"\",\n });\n };\n\n const updateFields = (index) => {\n // Update checkbox state immediately, before validation\n const selectedItem = menuOption[index];\n\n // Create a new array to update the checkbox state\n const updatedMenuOption = menuOption.map((m, idx) => ({\n ...m,\n active: idx === index, // Set active to true only for the clicked item\n }));\n\n // Filter out any non-serializable data (like React components) before storing\n const serializableMenuOption = updatedMenuOption.map(\n ({ id, name, value, active }) => ({\n id,\n name,\n value,\n active, // Only keep serializable data\n })\n );\n\n // Save the serializable version of the state in localStorage\n sessionStorage.setItem(\n \"menuOption\",\n JSON.stringify(serializableMenuOption)\n );\n\n // Update the checkbox state first\n setMenuOption(updatedMenuOption);\n\n // Update the form data to reflect the selected option\n setFormData({\n ...formdata,\n option: selectedItem.value,\n });\n\n setNotificationWay(selectedItem.value);\n\n // No validation triggered here; it's deferred to the button click event\n\n // Now trigger validation (this will show errors, but not stop checkbox update)\n // handleSubmit(() => {\n // // Validation logic here\n // console.log(\"Validation passed\");\n // })(); // Immediately invoke handleSubmit to trigger validation\n };\n\n // Manually add the `icon` back if needed after loading from storage\n const restoreOptionField = () => {\n const storedMenuOption = sessionStorage.getItem(\"menuOption\");\n if (storedMenuOption) {\n const parsedMenuOption = JSON.parse(storedMenuOption);\n const updatedMenuOption = parsedMenuOption.map((option) => ({\n ...option,\n icon: (() => {\n switch (option.value) {\n case \"sms\":\n return ;\n case \"email\":\n return ;\n default:\n return ;\n }\n })(),\n }));\n setMenuOption(updatedMenuOption); // Restore state from sessionStorage\n }\n };\n\n // Detect web view on component mount\n useEffect(() => {\n // handleSubmit(() => {})(); // Immediately invoke handleSubmit to trigger validation\n\n // Only restore state when the component mounts (i.e., on tab reopen)\n restoreOptionField();\n\n const handleBeforeUnload = () => {\n sessionStorage.removeItem(\"menuOption\"); // Clear only when the tab is closed or refreshed\n };\n\n window.addEventListener(\"beforeunload\", handleBeforeUnload);\n\n return () => {\n // Optionally clear sessionStorage on component unmount\n window.removeEventListener(\"beforeunload\", handleBeforeUnload); // Clean up the event listener\n };\n }, []);\n\n const submitHandler = (data) => {};\n\n watch((value, { name, type }) => {\n if (type === \"change\") {\n setFormData((prev) => ({\n ...prev,\n [name]: value[name],\n }));\n }\n });\n\n useEffect(() => {\n setErrors(formErrors);\n }, [formErrors, setErrors]);\n\n useEffect(() => {\n menuOption.forEach((m) => {\n m.active = false;\n });\n }, []);\n\n const { errors } = useFormState({ control: control });\n\n return (\n
\n
\n \n
\n {/* for mobile screens */}\n {!isWebView && (\n

\n How do you want your quote delivered?\n \n *\n \n

\n )}\n {!isWebView && (\n
\n {menuOption.map((e, index) => (\n \n updateFields(index)}\n />\n {e.icon}\n \n
\n ))}\n
\n )}\n\n {productCartDetail?.skipForOthers && progressState === 4 && (\n \n )}\n \n\n \n\n \n
\n\n \n\n {/* for screens (tablet and laptop) */}\n {isWebView && (\n

\n How would you like us to share the update?\n \n *\n \n

\n )}\n {isWebView && (\n
\n {menuOption.map((p, index) => (\n \n ))}\n
\n )}\n \n
\n
\n );\n};\n\nexport default ContactDeatils;\n","import AppContext from \"Context/appContext\";\nimport { fetchSettingsForSubId } from \"api\";\nimport UrlServices from \"../../services/Url\";\nimport Card from \"components/Card\";\nimport Input from \"components/Input\";\nimport \"containers/ProductList/index.css\";\nimport { PAGES } from \"constants\";\nimport { memo, useContext, useEffect, useState } from \"react\";\n\nlet load = true;\n\nconst ProductList = () => {\n const {\n productCartDetail,\n setProductCartDetail,\n productCartData,\n setProgressState,\n products,\n setProducts,\n setAllProducts,\n loading,\n setLoading,\n prevState,\n setPrevState,\n progressState,\n currentModelsServices,\n setCurrentModelsServices,\n setIsMissedItem,\n allServices,\n setAllServices,\n setUserSettings,\n allServicesForSubId,\n setAllServicesForSubId,\n widthProductSection,\n setWidthProductSection,\n encryptionKey,\n isWebView,\n userSettings\n } = useContext(AppContext);\n\n const [search, setSearch] = useState(\"\");\n const [searchProducts, setSearchProducts] = useState([]);\n\n const base_url = process.env.REACT_APP_APPOINTMENT_PRO_API_URL;\n\n useEffect(() => {\n // Function to update width of product section\n const updateWidthProductSection = () => {\n const productSection = document.getElementById(\"product-section\");\n if (productSection) {\n setWidthProductSection(productSection.offsetWidth);\n }\n };\n\n // Initial call to set div width\n updateWidthProductSection();\n\n // Event listener for window resize\n window.addEventListener(\"resize\", updateWidthProductSection);\n\n const fetchData = async () => {\n if (products.length > 0 || !load) return;\n setLoading(true);\n try {\n load = false;\n const res = await fetch(`${base_url}/${UrlServices.fetchAllCategories}`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ q_: encryptionKey }),\n });\n const data = await res.json();\n let newCategories = data.user_data.map((category) =>\n category.brands.filter((brand) => brand.isFavorite)\n );\n const filteredData = [...data.user_data, ...newCategories];\n setProducts(filteredData.flat());\n setAllProducts(filteredData.flat());\n setSearchProducts(filteredData.flat());\n setAllServicesForSubId(data.default_data);\n setUserSettings(data.settings);\n } catch (error) {\n console.log(error);\n } finally {\n updateWidthProductSection();\n setLoading(false);\n }\n };\n fetchData();\n return () =>\n window.removeEventListener(\"resize\", updateWidthProductSection);\n }, [widthProductSection, progressState]);\n\n const filteredProducts = (currentIndex, productName) => {\n if (productName === \"Others\") {\n const s = allServicesForSubId.map((c) => ({\n ...c,\n active: false,\n }));\n setProducts(s);\n setProgressState(3);\n setCurrentModelsServices([]);\n setProductCartDetail({\n ...productCartDetail,\n model: {},\n services: [],\n skipForOthers: true,\n });\n }\n\n let selectedItem = search\n ? searchProducts[currentIndex]\n : products[currentIndex];\n if (progressState !== 3) {\n setPrevState({ ...prevState, [progressState]: products });\n }\n\n setProgressState((prevState) => {\n if (prevState === 3) return prevState;\n if (prevState === 0 && selectedItem.isFavorite) {\n const category = products?.find(\n (product) => product._id === selectedItem.category\n );\n setProductCartDetail({\n ...productCartDetail,\n category,\n brand: selectedItem,\n });\n setIsMissedItem({ ...selectedItem });\n return prevState + 2;\n } else {\n return prevState + 1;\n }\n });\n if (selectedItem?.brands) {\n // If brands exist, return the brands array\n setProductCartDetail({ ...productCartDetail, category: selectedItem });\n setProducts(selectedItem.brands);\n } else if (selectedItem?.models) {\n setProductCartDetail({ ...productCartDetail, brand: selectedItem });\n // If models exist, return the models array\n setCurrentModelsServices(selectedItem.services);\n setAllServices(selectedItem.services);\n setProducts(selectedItem.models);\n } else if (currentModelsServices?.length > 0) {\n // If services exist, return the services array\n setProductCartDetail({ ...productCartDetail, model: selectedItem });\n const filteredServices = allServices\n .filter((service) => service.model._id === selectedItem._id)\n .map((c) => ({ ...c, active: false }));\n setProducts(filteredServices);\n setCurrentModelsServices([]);\n } else {\n const services = productCartDetail?.services\n ? productCartDetail?.services\n : [];\n\n const key = selectedItem?.hasOwnProperty(\"_id\") ? \"_id\" : \"id\";\n const newItem =\n services?.findIndex((s) => s[key] === selectedItem[key]) >= 0;\n\n if (selectedItem?.sale_price) {\n const price = selectedItem?.sale_price.startsWith(\"0\")\n ? selectedItem?.retail_price\n : selectedItem?.sale_price;\n selectedItem[\"price\"] = parseFloat(price);\n }\n\n let totalPrice =\n productCartDetail?.totalPrice === undefined ||\n productCartDetail?.totalPrice === 0\n ? selectedItem?.price\n : selectedItem?.price + productCartDetail?.totalPrice;\n\n selectedItem[\"active\"] = !selectedItem?.active;\n\n if (newItem) {\n //if the item is already existed\n let totalPrice = productCartDetail?.totalPrice - selectedItem.price;\n if (isNaN(totalPrice) || totalPrice === undefined) {\n totalPrice = 0;\n }\n const updatedList = productCartDetail.services.filter(\n (p) => p[key] !== selectedItem[key]\n );\n setProductCartDetail({\n ...productCartDetail,\n totalPrice,\n services: updatedList,\n });\n setProducts([...products]);\n return;\n }\n // data will get from our database\n if (!productCartData && !productCartDetail?.model) {\n if (selectedItem?.model) {\n setProductCartDetail({\n ...productCartDetail,\n totalPrice,\n services: [...services, selectedItem],\n });\n }\n } else {\n // data will get from our repairdesk database\n setProductCartDetail({\n ...productCartDetail,\n totalPrice,\n services: [...services, selectedItem],\n });\n }\n }\n };\n\n const getFilteredProducts = () => {\n if (!search) return products;\n return products?.filter((p) =>\n p.name.toLowerCase().includes(search.toLowerCase())\n );\n };\n\n const handleChange = (e) => {\n setSearch(e.target.value);\n setSearchProducts(\n products?.filter((p) =>\n p.name.toLowerCase().includes(e.target.value.toLowerCase())\n )\n );\n };\n\n const displayedProducts =\n progressState === 3\n ? [...getFilteredProducts()]\n : [\n ...getFilteredProducts(),\n ...(userSettings.showOther ? [{ name: \"Others\", _id: \"others\" }] : [])\n ];\n\n return (\n <>\n {products?.length > 0 && !loading && (\n \n \n\n {displayedProducts?.length > 0 ? (\n \n {displayedProducts?.map((p, index) => (\n \n ))}\n
\n ) : (\n
\n
\n No Results Found\n
\n
\n )}\n
\n )}\n \n );\n};\n\nexport default memo(ProductList);\n","\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: {\n ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent;\n // If it's a functional component make sure we don't break it with a ref\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({\n ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import * as React from 'react';\n\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\nfunction map(children, func) {\n let index = 0;\n return React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) ? func(child, index++) : child);\n}\n\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\nfunction forEach(children, func) {\n let index = 0;\n React.Children.forEach(children, child => {\n if ( /*#__PURE__*/React.isValidElement(child)) func(child, index++);\n });\n}\n\n/**\n * Finds whether a component's `children` prop includes a React element of the\n * specified type.\n */\nfunction hasChildOfType(children, type) {\n return React.Children.toArray(children).some(child => /*#__PURE__*/React.isValidElement(child) && child.type === type);\n}\nexport { map, forEach, hasChildOfType };","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { cloneElement } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { map } from './ElementChildren';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ROUND_PRECISION = 1000;\n\n/**\n * Validate that children, if any, are instances of `ProgressBar`.\n */\nfunction onlyProgressBar(props, propName, componentName) {\n const children = props[propName];\n if (!children) {\n return null;\n }\n let error = null;\n React.Children.forEach(children, child => {\n if (error) {\n return;\n }\n\n /**\n * Compare types in a way that works with libraries that patch and proxy\n * components like react-hot-loader.\n *\n * see https://github.com/gaearon/react-hot-loader#checking-element-types\n */\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const element = /*#__PURE__*/_jsx(ProgressBar, {});\n if (child.type === element.type) return;\n const childType = child.type;\n const childIdentifier = /*#__PURE__*/React.isValidElement(child) ? childType.displayName || childType.name || childType : child;\n error = new Error(`Children of ${componentName} can contain only ProgressBar ` + `components. Found ${childIdentifier}.`);\n });\n return error;\n}\nfunction getPercentage(now, min, max) {\n const percentage = (now - min) / (max - min) * 100;\n return Math.round(percentage * ROUND_PRECISION) / ROUND_PRECISION;\n}\nfunction renderProgressBar({\n min,\n now,\n max,\n label,\n visuallyHidden,\n striped,\n animated,\n className,\n style,\n variant,\n bsPrefix,\n ...props\n}, ref) {\n return /*#__PURE__*/_jsx(\"div\", {\n ref: ref,\n ...props,\n role: \"progressbar\",\n className: classNames(className, `${bsPrefix}-bar`, {\n [`bg-${variant}`]: variant,\n [`${bsPrefix}-bar-animated`]: animated,\n [`${bsPrefix}-bar-striped`]: animated || striped\n }),\n style: {\n width: `${getPercentage(now, min, max)}%`,\n ...style\n },\n \"aria-valuenow\": now,\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n children: visuallyHidden ? /*#__PURE__*/_jsx(\"span\", {\n className: \"visually-hidden\",\n children: label\n }) : label\n });\n}\nconst ProgressBar = /*#__PURE__*/React.forwardRef(({\n isChild = false,\n ...rest\n}, ref) => {\n const props = {\n min: 0,\n max: 100,\n animated: false,\n visuallyHidden: false,\n striped: false,\n ...rest\n };\n props.bsPrefix = useBootstrapPrefix(props.bsPrefix, 'progress');\n if (isChild) {\n return renderProgressBar(props, ref);\n }\n const {\n min,\n now,\n max,\n label,\n visuallyHidden,\n striped,\n animated,\n bsPrefix,\n variant,\n className,\n children,\n ...wrapperProps\n } = props;\n return /*#__PURE__*/_jsx(\"div\", {\n ref: ref,\n ...wrapperProps,\n className: classNames(className, bsPrefix),\n children: children ? map(children, child => /*#__PURE__*/cloneElement(child, {\n isChild: true\n })) : renderProgressBar({\n min,\n now,\n max,\n label,\n visuallyHidden,\n striped,\n animated,\n bsPrefix,\n variant\n }, ref)\n });\n});\nProgressBar.displayName = 'ProgressBar';\nexport default ProgressBar;","import { getter, forEach, split, normalizePath, join } from 'property-expr';\nimport { camelCase, snakeCase } from 'tiny-case';\nimport toposort from 'toposort';\n\nconst toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\nfunction printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}\n\nfunction toArray(value) {\n return value == null ? [] : [].concat(value);\n}\n\nlet _Symbol$toStringTag;\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\n_Symbol$toStringTag = Symbol.toStringTag;\nclass ValidationError extends Error {\n static formatError(message, params) {\n const path = params.label || params.path || 'this';\n if (path !== params.path) params = Object.assign({}, params, {\n path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n constructor(errorOrErrors, value, field, type, disableStack) {\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.errors = void 0;\n this.params = void 0;\n this.inner = void 0;\n this[_Symbol$toStringTag] = 'Error';\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n const innerErrors = err.inner.length ? err.inner : [err];\n this.inner.push(...innerErrors);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n if (!disableStack && Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n }\n}\n\nlet mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n defined: '${path} must be defined',\n notNull: '${path} cannot be null',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n const castMsg = originalValue != null && originalValue !== value ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.';\n return type !== 'mixed' ? `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + castMsg : `${path} must match the configured type. ` + `The validated value was: \\`${printValue(value, true)}\\`` + castMsg;\n }\n};\nlet string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nlet number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nlet date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nlet boolean = {\n isValue: '${path} field must be ${value}'\n};\nlet object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nlet array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nlet tuple = {\n notType: params => {\n const {\n path,\n value,\n spec\n } = params;\n const typeLen = spec.types.length;\n if (Array.isArray(value)) {\n if (value.length < typeLen) return `${path} tuple value has too few items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n if (value.length > typeLen) return `${path} tuple value has too many items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n }\n return ValidationError.formatError(mixed.notType, params);\n }\n};\nvar locale = Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean,\n tuple\n});\n\nconst isSchema = obj => obj && obj.__isYupSchema__;\n\nclass Condition {\n static fromOptions(refs, config) {\n if (!config.then && !config.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = config;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n return new Condition(refs, (values, schema) => {\n var _branch;\n let branch = check(...values) ? then : otherwise;\n return (_branch = branch == null ? void 0 : branch(schema)) != null ? _branch : schema;\n });\n }\n constructor(refs, builder) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n this.fn = builder;\n }\n resolve(base, options) {\n let values = this.refs.map(ref =>\n // TODO: ? operator here?\n ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn(values, base, options);\n if (schema === undefined ||\n // @ts-ignore this can be base\n schema === base) {\n return base;\n }\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n}\n\nconst prefixes = {\n context: '$',\n value: '.'\n};\nfunction create$9(key, options) {\n return new Reference(key, options);\n}\nclass Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n resolve() {\n return this;\n }\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n toString() {\n return `Ref(${this.key})`;\n }\n static isRef(value) {\n return value && value.__isYupRef;\n }\n}\n\n// @ts-ignore\nReference.prototype.__isYupRef = true;\n\nconst isAbsent = value => value == null;\n\nfunction createValidation(config) {\n function validate({\n value,\n path = '',\n options,\n originalValue,\n schema\n }, panic, next) {\n const {\n name,\n test,\n params,\n message,\n skipAbsent\n } = config;\n let {\n parent,\n context,\n abortEarly = schema.spec.abortEarly,\n disableStackTrace = schema.spec.disableStackTrace\n } = options;\n function resolve(item) {\n return Reference.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n function createError(overrides = {}) {\n var _overrides$disableSta;\n const nextParams = Object.assign({\n value,\n originalValue,\n label: schema.spec.label,\n path: overrides.path || path,\n spec: schema.spec\n }, params, overrides.params);\n for (const key of Object.keys(nextParams)) nextParams[key] = resolve(nextParams[key]);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name, (_overrides$disableSta = overrides.disableStackTrace) != null ? _overrides$disableSta : disableStackTrace);\n error.params = nextParams;\n return error;\n }\n const invalid = abortEarly ? panic : next;\n let ctx = {\n path,\n parent,\n type: name,\n from: options.from,\n createError,\n resolve,\n options,\n originalValue,\n schema\n };\n const handleResult = validOrError => {\n if (ValidationError.isError(validOrError)) invalid(validOrError);else if (!validOrError) invalid(createError());else next(null);\n };\n const handleError = err => {\n if (ValidationError.isError(err)) invalid(err);else panic(err);\n };\n const shouldSkip = skipAbsent && isAbsent(value);\n if (shouldSkip) {\n return handleResult(true);\n }\n let result;\n try {\n var _result;\n result = test.call(ctx, value, ctx);\n if (typeof ((_result = result) == null ? void 0 : _result.then) === 'function') {\n if (options.sync) {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n return Promise.resolve(result).then(handleResult, handleError);\n }\n } catch (err) {\n handleError(err);\n return;\n }\n handleResult(result);\n }\n validate.OPTIONS = config;\n return validate;\n}\n\nfunction getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug;\n\n // root path: ''\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? _part.slice(1, _part.length - 1) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n let isTuple = schema.type === 'tuple';\n let idx = isArray ? parseInt(part, 10) : 0;\n if (schema.innerType || isTuple) {\n if (isTuple && !isArray) throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part \"${lastPartDebug}\" must contain an index to the tuple element, e.g. \"${lastPartDebug}[0]\"`);\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n parent = value;\n value = value && value[idx];\n schema = isTuple ? schema.spec.types[idx] : schema.innerType;\n }\n\n // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema.type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\nfunction reach(obj, path, value, context) {\n return getIn(obj, path, value, context).schema;\n}\n\nclass ReferenceSet extends Set {\n describe() {\n const description = [];\n for (const item of this.values()) {\n description.push(Reference.isRef(item) ? item.describe() : item);\n }\n return description;\n }\n resolveAll(resolve) {\n let result = [];\n for (const item of this.values()) {\n result.push(resolve(item));\n }\n return result;\n }\n clone() {\n return new ReferenceSet(this.values());\n }\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.forEach(value => next.add(value));\n removeItems.forEach(value => next.delete(value));\n return next;\n }\n}\n\n// tweaked from https://github.com/Kelin2025/nanoclone/blob/0abeb7635bda9b68ef2277093f76dbe3bf3948e1/src/index.js\nfunction clone(src, seen = new Map()) {\n if (isSchema(src) || !src || typeof src !== 'object') return src;\n if (seen.has(src)) return seen.get(src);\n let copy;\n if (src instanceof Date) {\n // Date\n copy = new Date(src.getTime());\n seen.set(src, copy);\n } else if (src instanceof RegExp) {\n // RegExp\n copy = new RegExp(src);\n seen.set(src, copy);\n } else if (Array.isArray(src)) {\n // Array\n copy = new Array(src.length);\n seen.set(src, copy);\n for (let i = 0; i < src.length; i++) copy[i] = clone(src[i], seen);\n } else if (src instanceof Map) {\n // Map\n copy = new Map();\n seen.set(src, copy);\n for (const [k, v] of src.entries()) copy.set(k, clone(v, seen));\n } else if (src instanceof Set) {\n // Set\n copy = new Set();\n seen.set(src, copy);\n for (const v of src) copy.add(clone(v, seen));\n } else if (src instanceof Object) {\n // Object\n copy = {};\n seen.set(src, copy);\n for (const [k, v] of Object.entries(src)) copy[k] = clone(v, seen);\n } else {\n throw Error(`Unable to clone ${src}`);\n }\n return copy;\n}\n\n// If `CustomSchemaMeta` isn't extended with any keys, we'll fall back to a\n// loose Record definition allowing free form usage.\nclass Schema {\n constructor(options) {\n this.type = void 0;\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this.internalTests = {};\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this._typeCheck = void 0;\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(mixed.notType);\n });\n this.type = options.type;\n this._typeCheck = options.check;\n this.spec = Object.assign({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n disableStackTrace: false,\n nullable: false,\n optional: true,\n coerce: true\n }, options == null ? void 0 : options.spec);\n this.withMutation(s => {\n s.nonNullable();\n });\n }\n\n // TODO: remove\n get _type() {\n return this.type;\n }\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n }\n\n // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n const next = Object.create(Object.getPrototypeOf(this));\n\n // @ts-expect-error this is readonly\n next.type = this.type;\n next._typeCheck = this._typeCheck;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.internalTests = Object.assign({}, this.internalTests);\n next.exclusiveTests = Object.assign({}, this.exclusiveTests);\n\n // @ts-expect-error this is readonly\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = clone(Object.assign({}, this.spec, spec));\n return next;\n }\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n const mergedSpec = Object.assign({}, base.spec, combined.spec);\n combined.spec = mergedSpec;\n combined.internalTests = Object.assign({}, base.internalTests, combined.internalTests);\n\n // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist);\n\n // start with the current tests\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests;\n\n // manually add the new tests to ensure\n // the deduping logic is consistent\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n isType(v) {\n if (v == null) {\n if (this.spec.nullable && v === null) return true;\n if (this.spec.optional && v === undefined) return true;\n return false;\n }\n return this._typeCheck(v);\n }\n resolve(options) {\n let schema = this;\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((prevSchema, condition) => condition.resolve(prevSchema, options), schema);\n schema = schema.resolve(options);\n }\n return schema;\n }\n resolveOptions(options) {\n var _options$strict, _options$abortEarly, _options$recursive, _options$disableStack;\n return Object.assign({}, options, {\n from: options.from || [],\n strict: (_options$strict = options.strict) != null ? _options$strict : this.spec.strict,\n abortEarly: (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly,\n recursive: (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive,\n disableStackTrace: (_options$disableStack = options.disableStackTrace) != null ? _options$disableStack : this.spec.disableStackTrace\n });\n }\n\n /**\n * Run the configured transform pipeline over an input value.\n */\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(Object.assign({\n value\n }, options));\n let allowOptionality = options.assert === 'ignore-optionality';\n let result = resolvedSchema._cast(value, options);\n if (options.assert !== false && !resolvedSchema.isType(result)) {\n if (allowOptionality && isAbsent(result)) {\n return result;\n }\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema.type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n return result;\n }\n _cast(rawValue, options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((prevValue, fn) => fn.call(this, prevValue, rawValue, this), rawValue);\n if (value === undefined) {\n value = this.getDefault(options);\n }\n return value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n path,\n originalValue = _value,\n strict = this.spec.strict\n } = options;\n let value = _value;\n if (!strict) {\n value = this._cast(value, Object.assign({\n assert: false\n }, options));\n }\n let initialTests = [];\n for (let test of Object.values(this.internalTests)) {\n if (test) initialTests.push(test);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: initialTests\n }, panic, initialErrors => {\n // even if we aren't ending early we can't proceed further if the types aren't correct\n if (initialErrors.length) {\n return next(initialErrors, value);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: this.tests\n }, panic, next);\n });\n }\n\n /**\n * Executes a set of validations, either schema, produced Tests or a nested\n * schema validate result.\n */\n runTests(runOptions, panic, next) {\n let fired = false;\n let {\n tests,\n value,\n originalValue,\n path,\n options\n } = runOptions;\n let panicOnce = arg => {\n if (fired) return;\n fired = true;\n panic(arg, value);\n };\n let nextOnce = arg => {\n if (fired) return;\n fired = true;\n next(arg, value);\n };\n let count = tests.length;\n let nestedErrors = [];\n if (!count) return nextOnce([]);\n let args = {\n value,\n originalValue,\n path,\n options,\n schema: this\n };\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, panicOnce, function finishTestRun(err) {\n if (err) {\n Array.isArray(err) ? nestedErrors.push(...err) : nestedErrors.push(err);\n }\n if (--count <= 0) {\n nextOnce(nestedErrors);\n }\n });\n }\n }\n asNestedTest({\n key,\n index,\n parent,\n parentPath,\n originalParent,\n options\n }) {\n const k = key != null ? key : index;\n if (k == null) {\n throw TypeError('Must include `key` or `index` for nested validations');\n }\n const isIndex = typeof k === 'number';\n let value = parent[k];\n const testOptions = Object.assign({}, options, {\n // Nested validations fields are always strict:\n // 1. parent isn't strict so the casting will also have cast inner values\n // 2. parent is strict in which case the nested values weren't cast either\n strict: true,\n parent,\n value,\n originalValue: originalParent[k],\n // FIXME: tests depend on `index` being passed around deeply,\n // we should not let the options.key/index bleed through\n key: undefined,\n // index: undefined,\n [isIndex ? 'index' : 'key']: k,\n path: isIndex || k.includes('.') ? `${parentPath || ''}[${value ? k : `\"${k}\"`}]` : (parentPath ? `${parentPath}.` : '') + key\n });\n return (_, panic, next) => this.resolve(testOptions)._validate(value, testOptions, panic, next);\n }\n validate(value, options) {\n var _options$disableStack2;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let disableStackTrace = (_options$disableStack2 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack2 : schema.spec.disableStackTrace;\n return new Promise((resolve, reject) => schema._validate(value, options, (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n reject(error);\n }, (errors, validated) => {\n if (errors.length) reject(new ValidationError(errors, validated, undefined, undefined, disableStackTrace));else resolve(validated);\n }));\n }\n validateSync(value, options) {\n var _options$disableStack3;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let result;\n let disableStackTrace = (_options$disableStack3 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack3 : schema.spec.disableStackTrace;\n schema._validate(value, Object.assign({}, options, {\n sync: true\n }), (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n throw error;\n }, (errors, validated) => {\n if (errors.length) throw new ValidationError(errors, value, undefined, undefined, disableStackTrace);\n result = validated;\n });\n return result;\n }\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n _getDefault(options) {\n let defaultValue = this.spec.default;\n if (defaultValue == null) {\n return defaultValue;\n }\n return typeof defaultValue === 'function' ? defaultValue.call(this, options) : clone(defaultValue);\n }\n getDefault(options\n // If schema is defaulted we know it's at least not undefined\n ) {\n let schema = this.resolve(options || {});\n return schema._getDefault(options);\n }\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n let next = this.clone({\n default: def\n });\n return next;\n }\n strict(isStrict = true) {\n return this.clone({\n strict: isStrict\n });\n }\n nullability(nullable, message) {\n const next = this.clone({\n nullable\n });\n next.internalTests.nullable = createValidation({\n message,\n name: 'nullable',\n test(value) {\n return value === null ? this.schema.spec.nullable : true;\n }\n });\n return next;\n }\n optionality(optional, message) {\n const next = this.clone({\n optional\n });\n next.internalTests.optionality = createValidation({\n message,\n name: 'optionality',\n test(value) {\n return value === undefined ? this.schema.spec.optional : true;\n }\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n defined(message = mixed.defined) {\n return this.optionality(false, message);\n }\n nullable() {\n return this.nullability(true);\n }\n nonNullable(message = mixed.notNull) {\n return this.nullability(false, message);\n }\n required(message = mixed.required) {\n return this.clone().withMutation(next => next.nonNullable(message).defined(message));\n }\n notRequired() {\n return this.clone().withMutation(next => next.nullable().optional());\n }\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n test(...args) {\n let opts;\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n if (opts.message === undefined) opts.message = mixed.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n let next = this.clone();\n let deps = toArray(keys).map(key => new Reference(key));\n deps.forEach(dep => {\n // @ts-ignore readonly array\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(typeof options === 'function' ? new Condition(deps, options) : Condition.fromOptions(deps, options));\n return next;\n }\n typeError(message) {\n let next = this.clone();\n next.internalTests.typeError = createValidation({\n message,\n name: 'typeError',\n skipAbsent: true,\n test(value) {\n if (!this.schema._typeCheck(value)) return this.createError({\n params: {\n type: this.schema.type\n }\n });\n return true;\n }\n });\n return next;\n }\n oneOf(enums, message = mixed.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n next._blacklist.delete(val);\n });\n next.internalTests.whiteList = createValidation({\n message,\n name: 'oneOf',\n skipAbsent: true,\n test(value) {\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: Array.from(valids).join(', '),\n resolved\n }\n });\n }\n });\n return next;\n }\n notOneOf(enums, message = mixed.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n next._whitelist.delete(val);\n });\n next.internalTests.blacklist = createValidation({\n message,\n name: 'notOneOf',\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: Array.from(invalids).join(', '),\n resolved\n }\n });\n return true;\n }\n });\n return next;\n }\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n /**\n * Return a serialized description of the schema including validations, flags, types etc.\n *\n * @param options Provide any needed context for resolving runtime schema alterations (lazy, when conditions, etc).\n */\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const {\n label,\n meta,\n optional,\n nullable\n } = next.spec;\n const description = {\n meta,\n label,\n optional,\n nullable,\n default: next.getDefault(options),\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n}\n// @ts-expect-error\nSchema.prototype.__isYupSchema__ = true;\nfor (const method of ['validate', 'validateSync']) Schema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], Object.assign({}, options, {\n parent,\n path\n }));\n};\nfor (const alias of ['equals', 'is']) Schema.prototype[alias] = Schema.prototype.oneOf;\nfor (const alias of ['not', 'nope']) Schema.prototype[alias] = Schema.prototype.notOneOf;\n\nconst returnsTrue = () => true;\nfunction create$8(spec) {\n return new MixedSchema(spec);\n}\nclass MixedSchema extends Schema {\n constructor(spec) {\n super(typeof spec === 'function' ? {\n type: 'mixed',\n check: spec\n } : Object.assign({\n type: 'mixed',\n check: returnsTrue\n }, spec));\n }\n}\ncreate$8.prototype = MixedSchema.prototype;\n\nfunction create$7() {\n return new BooleanSchema();\n}\nclass BooleanSchema extends Schema {\n constructor() {\n super({\n type: 'boolean',\n check(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (ctx.spec.coerce && !ctx.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n return value;\n });\n });\n }\n isTrue(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n test(value) {\n return isAbsent(value) || value === true;\n }\n });\n }\n isFalse(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n test(value) {\n return isAbsent(value) || value === false;\n }\n });\n }\n default(def) {\n return super.default(def);\n }\n defined(msg) {\n return super.defined(msg);\n }\n optional() {\n return super.optional();\n }\n required(msg) {\n return super.required(msg);\n }\n notRequired() {\n return super.notRequired();\n }\n nullable() {\n return super.nullable();\n }\n nonNullable(msg) {\n return super.nonNullable(msg);\n }\n strip(v) {\n return super.strip(v);\n }\n}\ncreate$7.prototype = BooleanSchema.prototype;\n\n// Taken from HTML spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\nlet rEmail =\n// eslint-disable-next-line\n/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\nlet rUrl =\n// eslint-disable-next-line\n/^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i;\n\n// eslint-disable-next-line\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\nlet objStringTag = {}.toString();\nfunction create$6() {\n return new StringSchema();\n}\nclass StringSchema extends Schema {\n constructor() {\n super({\n type: 'string',\n check(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce || ctx.isType(value)) return value;\n\n // don't ever convert arrays\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n\n // no one wants plain objects converted to [Object object]\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n required(message) {\n return super.required(message).withMutation(schema => schema.test({\n message: message || mixed.required,\n name: 'required',\n skipAbsent: true,\n test: value => !!value.length\n }));\n }\n notRequired() {\n return super.notRequired().withMutation(schema => {\n schema.tests = schema.tests.filter(t => t.OPTIONS.name !== 'required');\n return schema;\n });\n }\n length(length, message = string.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message = string.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message = string.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n return this.test({\n name: name || 'matches',\n message: message || string.matches,\n params: {\n regex\n },\n skipAbsent: true,\n test: value => value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n email(message = string.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n url(message = string.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n uuid(message = string.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n }\n\n //-- transforms --\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n trim(message = string.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n lowercase(message = string.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n uppercase(message = string.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n}\ncreate$6.prototype = StringSchema.prototype;\n\n//\n// String Interfaces\n//\n\nlet isNaN$1 = value => value != +value;\nfunction create$5() {\n return new NumberSchema();\n}\nclass NumberSchema extends Schema {\n constructor() {\n super({\n type: 'number',\n check(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN$1(value);\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce) return value;\n let parsed = value;\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN;\n // don't use parseFloat to avoid positives on alpha-numeric strings\n parsed = +parsed;\n }\n\n // null -> NaN isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (ctx.isType(parsed) || parsed === null) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n min(min, message = number.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(min);\n }\n });\n }\n max(max, message = number.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(max);\n }\n });\n }\n lessThan(less, message = number.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n skipAbsent: true,\n test(value) {\n return value < this.resolve(less);\n }\n });\n }\n moreThan(more, message = number.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n skipAbsent: true,\n test(value) {\n return value > this.resolve(more);\n }\n });\n }\n positive(msg = number.positive) {\n return this.moreThan(0, msg);\n }\n negative(msg = number.negative) {\n return this.lessThan(0, msg);\n }\n integer(message = number.integer) {\n return this.test({\n name: 'integer',\n message,\n skipAbsent: true,\n test: val => Number.isInteger(val)\n });\n }\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n round(method) {\n var _method;\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round';\n\n // this exists for symemtry with the new Math.trunc\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n}\ncreate$5.prototype = NumberSchema.prototype;\n\n//\n// Number Interfaces\n//\n\n/**\n * This file is a modified version of the file from the following repository:\n * Date.parse with progressive enhancement for ISO 8601 \n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover \n * Released under MIT license.\n */\n\n// prettier-ignore\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nconst isoReg = /^(\\d{4}|[+-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,.](\\d{1,}))?)?(?:(Z)|([+-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nfunction toNumber(str, defaultValue = 0) {\n return Number(str) || defaultValue;\n}\nfunction parseIsoDate(date) {\n const regexResult = isoReg.exec(date);\n if (!regexResult) return Date.parse ? Date.parse(date) : Number.NaN;\n\n // use of toNumber() avoids NaN timestamps caused by “undefined”\n // values being passed to Date constructor\n const struct = {\n year: toNumber(regexResult[1]),\n month: toNumber(regexResult[2], 1) - 1,\n day: toNumber(regexResult[3], 1),\n hour: toNumber(regexResult[4]),\n minute: toNumber(regexResult[5]),\n second: toNumber(regexResult[6]),\n millisecond: regexResult[7] ?\n // allow arbitrary sub-second precision beyond milliseconds\n toNumber(regexResult[7].substring(0, 3)) : 0,\n z: regexResult[8] || undefined,\n plusMinus: regexResult[9] || undefined,\n hourOffset: toNumber(regexResult[10]),\n minuteOffset: toNumber(regexResult[11])\n };\n\n // timestamps without timezone identifiers should be considered local time\n if (struct.z === undefined && struct.plusMinus === undefined) {\n return new Date(struct.year, struct.month, struct.day, struct.hour, struct.minute, struct.second, struct.millisecond).valueOf();\n }\n let totalMinutesOffset = 0;\n if (struct.z !== 'Z' && struct.plusMinus !== undefined) {\n totalMinutesOffset = struct.hourOffset * 60 + struct.minuteOffset;\n if (struct.plusMinus === '+') totalMinutesOffset = 0 - totalMinutesOffset;\n }\n return Date.UTC(struct.year, struct.month, struct.day, struct.hour, struct.minute + totalMinutesOffset, struct.second, struct.millisecond);\n}\n\nlet invalidDate = new Date('');\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\nfunction create$4() {\n return new DateSchema();\n}\nclass DateSchema extends Schema {\n constructor() {\n super({\n type: 'date',\n check(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n // null -> InvalidDate isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (!ctx.spec.coerce || ctx.isType(value) || value === null) return value;\n value = parseIsoDate(value);\n\n // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n return !isNaN(value) ? new Date(value) : DateSchema.INVALID_DATE;\n });\n });\n }\n prepareParam(ref, name) {\n let param;\n if (!Reference.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n return param;\n }\n min(min, message = date.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(limit);\n }\n });\n }\n max(max, message = date.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(limit);\n }\n });\n }\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate$4.prototype = DateSchema.prototype;\ncreate$4.INVALID_DATE = invalidDate;\n\n// @ts-expect-error\nfunction sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n for (const key of Object.keys(fields)) {\n let value = fields[key];\n nodes.add(key);\n if (Reference.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n return toposort.array(Array.from(nodes), edges).reverse();\n}\n\nfunction findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n if ((_err$path = err.path) != null && _err$path.includes(key)) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\nfunction sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}\n\nconst parseJson = (value, _, ctx) => {\n if (typeof value !== 'string') {\n return value;\n }\n let parsed = value;\n try {\n parsed = JSON.parse(value);\n } catch (err) {\n /* */\n }\n return ctx.isType(parsed) ? parsed : value;\n};\n\n// @ts-ignore\nfunction deepPartial(schema) {\n if ('fields' in schema) {\n const partial = {};\n for (const [key, fieldSchema] of Object.entries(schema.fields)) {\n partial[key] = deepPartial(fieldSchema);\n }\n return schema.setFields(partial);\n }\n if (schema.type === 'array') {\n const nextArray = schema.optional();\n if (nextArray.innerType) nextArray.innerType = deepPartial(nextArray.innerType);\n return nextArray;\n }\n if (schema.type === 'tuple') {\n return schema.optional().clone({\n types: schema.spec.types.map(deepPartial)\n });\n }\n if ('optional' in schema) {\n return schema.optional();\n }\n return schema;\n}\nconst deepHas = (obj, p) => {\n const path = [...normalizePath(p)];\n if (path.length === 1) return path[0] in obj;\n let last = path.pop();\n let parent = getter(join(path), true)(obj);\n return !!(parent && last in parent);\n};\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\nconst defaultSort = sortByKeyOrder([]);\nfunction create$3(spec) {\n return new ObjectSchema(spec);\n}\nclass ObjectSchema extends Schema {\n constructor(spec) {\n super({\n type: 'object',\n check(value) {\n return isObject(value) || typeof value === 'function';\n }\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n if (spec) {\n this.shape(spec);\n }\n });\n }\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n let value = super._cast(_value, options);\n\n //should ignore nulls here\n if (value === undefined) return this.getDefault(options);\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n let props = [].concat(this._nodes, Object.keys(value).filter(v => !this._nodes.includes(v)));\n let intermediateValue = {}; // is filled during the transform below\n let innerOptions = Object.assign({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n let isChanged = false;\n for (const prop of props) {\n let field = fields[prop];\n let exists = (prop in value);\n if (field) {\n let fieldValue;\n let inputValue = value[prop];\n\n // safe to mutate since this is fired in sequence\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop;\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = field instanceof Schema ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n if (fieldSpec != null && fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n fieldValue = !options.__validating || !strict ?\n // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n if (exists !== prop in intermediateValue || intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n return isChanged ? intermediateValue : value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n from = [],\n originalValue = _value,\n recursive = this.spec.recursive\n } = options;\n options.from = [{\n schema: this,\n value: originalValue\n }, ...from];\n // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n options.__validating = true;\n options.originalValue = originalValue;\n super._validate(_value, options, panic, (objectErrors, value) => {\n if (!recursive || !isObject(value)) {\n next(objectErrors, value);\n return;\n }\n originalValue = originalValue || value;\n let tests = [];\n for (let key of this._nodes) {\n let field = this.fields[key];\n if (!field || Reference.isRef(field)) {\n continue;\n }\n tests.push(field.asNestedTest({\n options,\n key,\n parent: value,\n parentPath: options.path,\n originalParent: originalValue\n }));\n }\n this.runTests({\n tests,\n value,\n originalValue,\n options\n }, panic, fieldErrors => {\n next(fieldErrors.sort(this._sortErrors).concat(objectErrors), value);\n });\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n next.fields = Object.assign({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n nextFields[field] = target === undefined ? schemaOrRef : target;\n }\n return next.withMutation(s =>\n // XXX: excludes here is wrong\n s.setFields(nextFields, [...this._excludedEdges, ...schema._excludedEdges]));\n }\n _getDefault(options) {\n if ('default' in this.spec) {\n return super._getDefault(options);\n }\n\n // if there is no default set invent one\n if (!this._nodes.length) {\n return undefined;\n }\n let dft = {};\n this._nodes.forEach(key => {\n var _innerOptions;\n const field = this.fields[key];\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n dft[key] = field && 'getDefault' in field ? field.getDefault(innerOptions) : undefined;\n });\n return dft;\n }\n setFields(shape, excludedEdges) {\n let next = this.clone();\n next.fields = shape;\n next._nodes = sortFields(shape, excludedEdges);\n next._sortErrors = sortByKeyOrder(Object.keys(shape));\n // XXX: this carries over edges which may not be what you want\n if (excludedEdges) next._excludedEdges = excludedEdges;\n return next;\n }\n shape(additions, excludes = []) {\n return this.clone().withMutation(next => {\n let edges = next._excludedEdges;\n if (excludes.length) {\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n edges = [...next._excludedEdges, ...excludes];\n }\n\n // XXX: excludes here is wrong\n return next.setFields(Object.assign(next.fields, additions), edges);\n });\n }\n partial() {\n const partial = {};\n for (const [key, schema] of Object.entries(this.fields)) {\n partial[key] = 'optional' in schema && schema.optional instanceof Function ? schema.optional() : schema;\n }\n return this.setFields(partial);\n }\n deepPartial() {\n const next = deepPartial(this);\n return next;\n }\n pick(keys) {\n const picked = {};\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n return this.setFields(picked, this._excludedEdges.filter(([a, b]) => keys.includes(a) && keys.includes(b)));\n }\n omit(keys) {\n const remaining = [];\n for (const key of Object.keys(this.fields)) {\n if (keys.includes(key)) continue;\n remaining.push(key);\n }\n return this.pick(remaining);\n }\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (!obj) return obj;\n let newObj = obj;\n if (deepHas(obj, from)) {\n newObj = Object.assign({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n return newObj;\n });\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n noUnknown(noAllow = true, message = object.noUnknown) {\n if (typeof noAllow !== 'boolean') {\n message = noAllow;\n noAllow = true;\n }\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n unknown(allow = true, message = object.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n transformKeys(fn) {\n return this.transform(obj => {\n if (!obj) return obj;\n const result = {};\n for (const key of Object.keys(obj)) result[fn(key)] = obj[key];\n return result;\n });\n }\n camelCase() {\n return this.transformKeys(camelCase);\n }\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.fields = {};\n for (const [key, value] of Object.entries(next.fields)) {\n var _innerOptions2;\n let innerOptions = options;\n if ((_innerOptions2 = innerOptions) != null && _innerOptions2.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n base.fields[key] = value.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$3.prototype = ObjectSchema.prototype;\n\nfunction create$2(type) {\n return new ArraySchema(type);\n}\nclass ArraySchema extends Schema {\n constructor(type) {\n super({\n type: 'array',\n spec: {\n types: type\n },\n check(v) {\n return Array.isArray(v);\n }\n });\n\n // `undefined` specifically means uninitialized, as opposed to \"no subtype\"\n this.innerType = void 0;\n this.innerType = type;\n }\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts);\n\n // should ignore nulls here\n if (!this._typeCheck(value) || !this.innerType) {\n return value;\n }\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, Object.assign({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`\n }));\n if (castElement !== v) {\n isChanged = true;\n }\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n var _options$recursive;\n // let sync = options.sync;\n // let path = options.path;\n let innerType = this.innerType;\n // let endEarly = options.abortEarly ?? this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n options.originalValue != null ? options.originalValue : _value;\n super._validate(_value, options, panic, (arrayErrors, value) => {\n var _options$originalValu2;\n if (!recursive || !innerType || !this._typeCheck(value)) {\n next(arrayErrors, value);\n return;\n }\n\n // #950 Ensure that sparse array empty slots are validated\n let tests = new Array(value.length);\n for (let index = 0; index < value.length; index++) {\n var _options$originalValu;\n tests[index] = innerType.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(arrayErrors), value));\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n return next;\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n concat(schema) {\n let next = super.concat(schema);\n\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n if (schema.innerType)\n // @ts-expect-error readonly\n next.innerType = next.innerType ?\n // @ts-expect-error Lazy doesn't have concat and will break\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema));\n\n // @ts-expect-error readonly\n next.innerType = schema;\n next.spec = Object.assign({}, next.spec, {\n types: schema\n });\n return next;\n }\n length(length, message = array.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message) {\n message = message || array.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n // FIXME(ts): Array\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message) {\n message = message || array.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n if (next.innerType) {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[0]\n });\n }\n base.innerType = next.innerType.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$2.prototype = ArraySchema.prototype;\n\n// @ts-ignore\nfunction create$1(schemas) {\n return new TupleSchema(schemas);\n}\nclass TupleSchema extends Schema {\n constructor(schemas) {\n super({\n type: 'tuple',\n spec: {\n types: schemas\n },\n check(v) {\n const types = this.spec.types;\n return Array.isArray(v) && v.length === types.length;\n }\n });\n this.withMutation(() => {\n this.typeError(tuple.notType);\n });\n }\n _cast(inputValue, options) {\n const {\n types\n } = this.spec;\n const value = super._cast(inputValue, options);\n if (!this._typeCheck(value)) {\n return value;\n }\n let isChanged = false;\n const castArray = types.map((type, idx) => {\n const castElement = type.cast(value[idx], Object.assign({}, options, {\n path: `${options.path || ''}[${idx}]`\n }));\n if (castElement !== value[idx]) isChanged = true;\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n let itemTypes = this.spec.types;\n super._validate(_value, options, panic, (tupleErrors, value) => {\n var _options$originalValu2;\n // intentionally not respecting recursive\n if (!this._typeCheck(value)) {\n next(tupleErrors, value);\n return;\n }\n let tests = [];\n for (let [index, itemSchema] of itemTypes.entries()) {\n var _options$originalValu;\n tests[index] = itemSchema.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(tupleErrors), value));\n });\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.innerType = next.spec.types.map((schema, index) => {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[index]\n });\n }\n return schema.describe(innerOptions);\n });\n return base;\n }\n}\ncreate$1.prototype = TupleSchema.prototype;\n\nfunction create(builder) {\n return new Lazy(builder);\n}\nclass Lazy {\n constructor(builder) {\n this.type = 'lazy';\n this.__isYupSchema__ = true;\n this.spec = void 0;\n this._resolve = (value, options = {}) => {\n let schema = this.builder(value, options);\n if (!isSchema(schema)) throw new TypeError('lazy() functions must return a valid schema');\n if (this.spec.optional) schema = schema.optional();\n return schema.resolve(options);\n };\n this.builder = builder;\n this.spec = {\n meta: undefined,\n optional: false\n };\n }\n clone(spec) {\n const next = new Lazy(this.builder);\n next.spec = Object.assign({}, this.spec, spec);\n return next;\n }\n optionality(optional) {\n const next = this.clone({\n optional\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n resolve(options) {\n return this._resolve(options.value, options);\n }\n cast(value, options) {\n return this._resolve(value, options).cast(value, options);\n }\n asNestedTest(config) {\n let {\n key,\n index,\n parent,\n options\n } = config;\n let value = parent[index != null ? index : key];\n return this._resolve(value, Object.assign({}, options, {\n value,\n parent\n })).asNestedTest(config);\n }\n validate(value, options) {\n return this._resolve(value, options).validate(value, options);\n }\n validateSync(value, options) {\n return this._resolve(value, options).validateSync(value, options);\n }\n validateAt(path, value, options) {\n return this._resolve(value, options).validateAt(path, value, options);\n }\n validateSyncAt(path, value, options) {\n return this._resolve(value, options).validateSyncAt(path, value, options);\n }\n isValid(value, options) {\n return this._resolve(value, options).isValid(value, options);\n }\n isValidSync(value, options) {\n return this._resolve(value, options).isValidSync(value, options);\n }\n describe(options) {\n return options ? this.resolve(options).describe(options) : {\n type: 'lazy',\n meta: this.spec.meta,\n label: undefined\n };\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n}\n\nfunction setLocale(custom) {\n Object.keys(custom).forEach(type => {\n // @ts-ignore\n Object.keys(custom[type]).forEach(method => {\n // @ts-ignore\n locale[type][method] = custom[type][method];\n });\n });\n}\n\nfunction addMethod(schemaType, name, fn) {\n if (!schemaType || !isSchema(schemaType.prototype)) throw new TypeError('You must provide a yup schema constructor function');\n if (typeof name !== 'string') throw new TypeError('A Method name must be provided');\n if (typeof fn !== 'function') throw new TypeError('Method function must be provided');\n schemaType.prototype[name] = fn;\n}\n\nexport { ArraySchema, BooleanSchema, DateSchema, MixedSchema, NumberSchema, ObjectSchema, Schema, StringSchema, TupleSchema, ValidationError, addMethod, create$2 as array, create$7 as bool, create$7 as boolean, create$4 as date, locale as defaultLocale, getIn, isSchema, create as lazy, create$8 as mixed, create$5 as number, create$3 as object, printValue, reach, create$9 as ref, setLocale, create$6 as string, create$1 as tuple };\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport { IconArrowLeft } from \"@tabler/icons-react\";\nimport AppContext from \"Context/appContext\";\nimport { DISPLAYING_PAGES, PAGES, PROGRESS_STATE } from \"constants\";\nimport Bookinglist from \"containers/BookingList\";\nimport Cart from \"containers/Cart\";\nimport Completion from \"containers/Completion\";\nimport ContactDeatils from \"containers/ContactDetails\";\nimport ProductList from \"containers/ProductList\";\nimport { useEffect, useMemo, useState, useRef } from \"react\";\nimport { ProgressBar } from \"react-bootstrap\";\nimport { isValidPhoneNumber } from \"react-phone-number-input\";\nimport { ClipLoader } from \"react-spinners\";\nimport Button from \"components/Button\";\nimport { combineDateWithTime, isKeyValueEmpty } from \"utils\";\nimport { useFormState } from \"react-hook-form\";\nimport { useForm } from \"react-hook-form\";\nimport UrlServices from \"./services/Url\";\nimport * as yup from \"yup\";\n\n// field validations schema\nconst schema = yup\n .object({\n name: yup.string().required(\"Name is Required\"),\n model: yup.string().required(\"Model is Required\"),\n email: yup.string().email(\"Invalid Email\").required(\"Email is Required\"),\n phone: yup\n .string()\n .required(\"Phone Number is Required\")\n .test(\"phone\", \"Invalid Phone Number\", (value) => {\n if (value) {\n return isValidPhoneNumber(value);\n }\n return true;\n }),\n })\n .required();\n\n\nconst AppManager = () => {\n const {\n register,\n handleSubmit,\n watch,\n control,\n reset,\n formState: { errors: formErrors },\n setValue,\n } = useForm({\n resolver: yupResolver(schema),\n });\n\n // States\n const [productCartDetail, setProductCartDetail] = useState(null);\n const [currentState, setCurrentState] = useState(\"PRODUCT\");\n const [allProducts, setAllProducts] = useState([]);\n const [progressState, setProgressState] = useState(0);\n const [products, setProducts] = useState([]);\n const [formdata, setFormData] = useState({\n name: \"\",\n phone: \"\",\n email: \"\",\n notes: \"\",\n option: \"\",\n model: \"\",\n });\n const [notificationWay, setNotificationWay] = useState(\"\");\n const [appointmentDetail, setAppointmentDetail] = useState({\n date: \"\",\n start: \"\",\n end: \"\",\n });\n const [loading, setLoading] = useState(true);\n const [fetchTimeLoading, setFetchTimeLoading] = useState(true);\n const [prevState, setPrevState] = useState([]);\n const [currentModelsServices, setCurrentModelsServices] = useState([]);\n const [isMissedItem, setIsMissedItem] = useState(null);\n const [selectedStoreDetails, setSelectedStoreDetails] = useState(null);\n const [allServices, setAllServices] = useState([]);\n const [userSettings, setUserSettings] = useState({});\n const [productCartData, setProductCartData] = useState(null);\n const [allServicesForSubId, setAllServicesForSubId] = useState([]);\n const [encryptionKey, setEncryptionKey] = useState(null);\n const [countryDetails, setCountryDetails] = useState(null);\n const [errors, setErrors] = useState({\n name: \"\",\n phone: \"\",\n email: \"\",\n });\n const [reactHookFormData, setReactHookFormData] = useState({\n control: control,\n register: register,\n handleSubmit: handleSubmit,\n watch: watch,\n formErrors: formErrors,\n reset: reset,\n setValue: setValue,\n });\n const [buttonClicked, setButtonClicked] = useState(null);\n const [height, setHeight] = useState(window.innerHeight);\n const [widthProductSection, setWidthProductSection] = useState(0);\n const [defaultStore, setDefaultStore] = useState(null);\n const [toggle, setToggle] = useState(false);\n const [selectedBookingPage, setSelectedBookingPage] = useState({});\n const [buttonLoader, setButtonLoader] = useState(false);\n const [isDisabled, setIsDisabled] = useState(false);\n const [isMobView, setIsMobView] = useState(false);\n const [isWebView, setIsWebView] = useState(false);\n const [othersWorkflow, setOthersWorkflow] = useState(false);\n const [isButtonClicked, setIsButtonClicked] = useState(false);\n\n const productSectionRef = useRef(null);\n\n const { notes, ...formDataObj } = formdata;\n const { model, ...modifiedData } = formdata;\n const { errors: formErrorss } = useFormState({\n control: reactHookFormData.control,\n });\n const { model: modelError, ...restErors } = formErrorss;\n\n // Function to check either form fields are valid or not\n const isFormValid = (obj) => {\n const isModelRequired = productCartDetail?.skipForOthers;\n return (\n obj.name !== \"\" &&\n obj.phone !== \"\" &&\n obj.email !== \"\" &&\n obj.option !== \"\" &&\n (!isModelRequired || obj.model !== \"\")\n );\n };\n\n // Function to detect if the user is on mobile view\n const detectMobView = () => {\n const screenWidth = window.innerWidth;\n setIsMobView(screenWidth <= 768); // Adjust breakpoint as needed\n };\n\n // Function to detect if the user is on web view\n const detectWebView = () => {\n const screenWidth = window.innerWidth;\n setIsWebView(screenWidth >= 768); // Adjust breakpoint as needed\n };\n\n const setServiceArray = () => {\n setPrevState({ ...prevState, [progressState]: products });\n };\n\n const updateDimensions = () => {\n setHeight(window.innerHeight);\n };\n\n const now = useMemo(\n () => ((progressState + 1) / PAGES.length) * 100,\n [progressState]\n );\n\n // Function to reset the fields of contact detail page\n const resetContactDetailFields = () => {\n sessionStorage.removeItem(\"menuOption\");\n setFormData({\n name: \"\",\n phone: \"\",\n email: \"\",\n notes: \"\",\n option: \"\",\n model: \"\",\n });\n reactHookFormData.reset();\n setNotificationWay(\"\");\n }\n\n // Function which saves the state while going Back\n const saveState = async () => {\n if (productCartDetail?.skipForOthers && progressState === 3 && !othersWorkflow) {\n // direct click of 'Others' Card\n // contact details page fields are reset while full back to the category page\n resetContactDetailFields();\n setProgressState(0);\n setCurrentState(DISPLAYING_PAGES.PRODUCT);\n setProducts(allProducts);\n setProductCartDetail(null);\n return;\n } else if (productCartDetail?.skipForOthers && progressState === 3 && othersWorkflow) {\n // if 'No Services Available Found against a MODEL' go with 'Others' workflow scenario\n // check this scenario in the 'Card.js' Component for understanding\n\n // contact details page fields are reset while full back to the category page\n setOthersWorkflow(false);\n resetContactDetailFields();\n setProgressState(2);\n setCurrentState(DISPLAYING_PAGES.PRODUCT);\n setProducts(prevState[2]);\n setProductCartDetail(prevState => {\n // Destructure model, services, and skipForOthers, and keep the rest of the keys (category, brand, etc.)\n const { model, services, skipForOthers, ...updatedState } = prevState;\n return updatedState; // Return the updated state without model, services, and skipForOthers\n });\n return;\n }\n if (progressState === 0) return;\n else if (progressState === 4) {\n setCurrentState(DISPLAYING_PAGES.PRODUCT);\n } else if (progressState === 5) {\n setButtonClicked(null);\n setSelectedStoreDetails(null);\n setCurrentState(DISPLAYING_PAGES.FORM);\n setProgressState(progressState - 1);\n setDefaultStore(null);\n return;\n } else if (progressState === 6) {\n setSelectedBookingPage({});\n setToggle(false);\n setDefaultStore(null);\n setProgressState(progressState - 1);\n setAppointmentDetail({\n date: \"\",\n start: \"\",\n end: \"\",\n });\n return;\n } else if (progressState === 7) {\n setCurrentState(DISPLAYING_PAGES.BOOKING);\n setProgressState(progressState - 1);\n return;\n } else if (progressState === 3) {\n // contact details page fields are reset while back to the models page\n resetContactDetailFields();\n setProductCartData(null);\n setProductCartDetail(prevState => {\n // Destructure services and totalPrice, and keep the rest (category, brand)\n const { services, totalPrice, ...updatedState } = prevState;\n return updatedState; // Return the updated state without services and totalPrice\n });\n isMissedItem\n ? setCurrentModelsServices(products)\n : setCurrentModelsServices(prevState[progressState - 2][0].services);\n } else if (progressState === 2) {\n setProductCartDetail(prevState => {\n const { brand, ...updatedState } = prevState;\n return updatedState; // Return the updated state without 'brand'\n });\n } else if (progressState === 2 && isMissedItem) {\n setProgressState(progressState - 2);\n setProducts(prevState[progressState - 2]);\n setIsMissedItem(null);\n setProductCartDetail(null);\n return;\n } else if (progressState === 1) {\n setProductCartDetail(null);\n }\n setProgressState(progressState - 1);\n const getData = prevState[progressState - 1];\n setProducts(getData);\n\n // Function to update width of product section\n const updateWidthProductSection = () => {\n const productSection = document.getElementById(\"product-section\");\n if (productSection) {\n setWidthProductSection(productSection.offsetWidth);\n }\n };\n setTimeout(() => {\n updateWidthProductSection();\n }, 1);\n };\n\n // Function which finalize and submit the request of appointments and quotes\n const submitForm = async (clickedKey) => {\n if (clickedKey === \"appointments\") {\n setButtonClicked(\"appointment\");\n } else if (clickedKey === \"quote\" && progressState === 4) {\n // Mark button as clicked\n setIsButtonClicked(true);\n\n // Validate form\n if (!isFormValid(formdata) || isDisabled) {\n // Now trigger validation (this will show errors, but not stop checkbox update)\n setProgressState(4);\n setCurrentState('FORM');\n\n handleSubmit(() => {\n // Validation logic here\n console.log(\"Validation passed\");\n })(); // Immediately invoke handleSubmit to trigger validation\n return;\n }\n // and if the Form is Valid, proceed\n setButtonClicked(\"quote\");\n setProgressState(6);\n }\n if (userSettings.isQuoteLocationsEnabled) {\n setCurrentState(DISPLAYING_PAGES.BOOKING);\n }\n try {\n setLoading(true);\n // setButtonLoader(true);\n const services = productCartDetail?.services.map((item) => {\n const price =\n item.sale_price &&\n typeof item.sale_price === \"string\" &&\n item.sale_price.startsWith(\"0\")\n ? item.retail_price\n : item.sale_price;\n return {\n rd_issue_id: item.id,\n name: item.name,\n price: item?.price ? item?.price : price,\n };\n });\n\n const formattedTime = combineDateWithTime(\n appointmentDetail?.date,\n appointmentDetail?.start\n );\n const data = {\n device: productCartDetail?.category?.name || \"\",\n brand: productCartDetail?.brand?.name || \"others\",\n model:\n productCartDetail?.model?.name ||\n productCartData?.device_name ||\n formdata?.model,\n category_id: productCartDetail?.skipForOthers ? \"\" : userSettings?.isRDSync ? productCartDetail?.category.rd_category_id : productCartDetail?.brand.category,\n manufacturer_id: productCartDetail?.skipForOthers ? \"\" : userSettings?.isRDSync ? productCartDetail?.brand.rd_manufacturer_id : productCartDetail?.brand._id,\n rd_device_id: productCartData?.rd_device_id,\n date: formattedTime || \"\",\n start_time:\n appointmentDetail?.start !== \"\" ? appointmentDetail?.start : \"\",\n end_time: appointmentDetail?.end !== \"\" ? appointmentDetail?.end : \"\",\n issues: services,\n store_id: userSettings?.isQuoteLocationsEnabled\n ? selectedStoreDetails.store_id\n : \"\",\n store_name: userSettings?.isQuoteLocationsEnabled\n ? selectedStoreDetails.store_name\n : \"\",\n customer_name: formdata.name,\n customer_email: formdata.email,\n customer_telephone: formdata.phone,\n customer_notes: formdata.notes,\n delivery_option: formdata?.option,\n delivery_status: formdata.status,\n total_price: productCartDetail?.totalPrice || 0,\n q_: encryptionKey,\n config_type: clickedKey,\n };\n // console.log(data);\n const API_BASE_URL = process.env.REACT_APP_APPOINTMENT_PRO_API_URL;\n const res = await fetch(\n `${API_BASE_URL}/${UrlServices.submitRequest}`,\n {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n \"Content-type\": \"application/json; charset=UTF-8\",\n },\n }\n );\n setLoading(false);\n // setButtonLoader(false);\n setCurrentState(DISPLAYING_PAGES.COMPLETION);\n const response = await res.json();\n } catch (error) {\n setLoading(false);\n // setButtonLoader(false);\n setProductCartData(null);\n console.log(error);\n }\n };\n\n const defaultFrameId =\n \"My9TWjljRjY1V3F6c2xkZkxTRkkrazVYazNka1hITXBwSHVENXhSUjJ2YUtrWE5wb2s4SzNVZnpRWVg5SnZUUUJoRFN3QS9vZTJmeERWTXNjR3BZbHd5U3JTU3EwVVpyR0d3Mjg1L3hpY0U9\";\n \n // Hook\n useEffect(() => {\n sessionStorage.removeItem(\"menuOption\");\n }, []);\n \n // Hook\n useEffect(() => {\n if (productSectionRef.current && products.length) {\n // Scroll to the top when products change or progressState changes\n productSectionRef.current.scrollTop = 0;\n }\n }, [products, progressState]);\n\n // Hook\n useEffect(() => {\n detectMobView();\n detectWebView();\n\n const targetObject = productCartDetail?.skipForOthers\n ? formErrorss\n : restErors;\n const propertiesLength =\n targetObject && typeof targetObject === \"object\"\n ? Object.keys(targetObject).length\n : 0;\n\n setIsDisabled(propertiesLength);\n\n var url = new URL(window.location.href);\n var params = new URLSearchParams(url.search);\n var frameId = params.get(\"frameId\");\n\n const encrypted = decodeURIComponent(frameId ? frameId : defaultFrameId);\n setEncryptionKey(encrypted);\n\n window.addEventListener(\"resize\", updateDimensions);\n window.addEventListener(\"resize\", detectMobView);\n window.addEventListener(\"resize\", detectWebView);\n return () => {\n window.removeEventListener(\"resize\", updateDimensions);\n window.removeEventListener(\"resize\", detectMobView);\n window.removeEventListener(\"resize\", detectWebView);\n };\n }, [\n encryptionKey,\n height,\n productCartDetail,\n formErrorss,\n restErors,\n isWebView,\n ]);\n\n return (\n <>\n \n {/* Back Button */}\n {!loading && (\n saveState()}>\n {PROGRESS_STATE.includes(progressState) &&\n currentState !== DISPLAYING_PAGES.COMPLETION && (\n \n \n \n )}\n \n )}\n\n {/* for MOBILE SCREEN only */}\n {/* (Continue), (Get Quote), (Book an Appointment) (Confirm Appointment) buttons */}\n \n {isMobView &&\n progressState === 3 && (\n 0}\n />\n )}\n {isMobView && progressState === 4 && (\n
\n {userSettings?.isAppointmentEnabled && (\n {\n // Mark button as clicked\n setIsButtonClicked(true);\n\n // Validate form\n if (!isFormValid(formdata) || isDisabled) {\n setProgressState(4);\n setCurrentState('FORM');\n \n handleSubmit(() => {\n console.log(\"Validation passed\");\n })(); // Immediately invoke handleSubmit to trigger validation\n } else {\n setButtonClicked(\"appointment\");\n }\n }}\n />\n )}\n \n {userSettings?.isQuoteEnabled && (\n {\n // Mark button as clicked\n setIsButtonClicked(true);\n\n // CASE 1: If 'Enable Location on Quote Request' switch is ON\n if (userSettings?.isQuoteLocationsEnabled) {\n // Validate form\n if (!isFormValid(formdata) || isDisabled) {\n setProgressState(4);\n setCurrentState('FORM');\n\n handleSubmit(() => {\n console.log(\"Validation passed\");\n })(); // Immediately invoke handleSubmit to trigger validation\n } else {\n setButtonClicked(\"quote\");\n setProgressState(5);\n setCurrentState('BOOKING');\n }\n } \n \n // CASE 2: If 'Enable Location on Quote Request' switch is OFF\n else if (!loading && currentState === \"FORM\") {\n submitForm(\"quote\");\n }\n }}\n >\n Get Quote\n \n )}\n
\n )}\n {isMobView &&\n progressState === 6 &&\n userSettings?.isQuoteEnabled &&\n buttonClicked === \"quote\" &&\n !loading &&\n currentState !== \"COMPLETION\" && (\n submitForm(\"quote\")}\n text={\"Get Quote\"}\n quoteButtonWidth={true}\n disabled={!defaultStore}\n />\n )}\n {isMobView &&\n progressState === 6 &&\n userSettings?.isAppointmentEnabled &&\n buttonClicked === \"appointment\" &&\n !loading &&\n currentState !== \"COMPLETION\" && (\n submitForm(\"appointments\")}\n text={\"Confirm Appointment\"}\n appointmentButtonWidth={true}\n disabled={!isKeyValueEmpty(appointmentDetail)}\n />\n )}\n \n\n {/* Top Heading only for Web view */}\n {!isMobView && (\n \n {/*
\n Get Instant Price Quote\n
*/}\n {(!loading || progressState !== 6) && (\n {PAGES[progressState] === \"Category\"\n ? \"Select Category\"\n : PAGES[progressState] === \"Brand\"\n ? \"Select Brand\"\n : PAGES[progressState] === \"Model\"\n ? \"Select Model\"\n : PAGES[progressState] === \"Issues\"\n ? \"Select the issues you are facing with your device\"\n : PAGES[progressState] === \"Enter Contact Details\"\n ? \"Please provide your Contact Information\"\n : currentState === \"COMPLETION\"\n ? \"\"\n : PAGES[progressState]}\n
)}\n \n )}\n \n \n
\n {currentState !== DISPLAYING_PAGES.COMPLETION && (\n <>\n
\n {/* Left Side Heading */}\n {(!loading || progressState !== 6) && (

{PAGES[progressState]}

)}\n {/* Right Side Progress Status */}\n {!loading && (\n

\n {progressState + 1} of 7\n

\n )}\n {/* Processing Status on Finalizing Request */}\n {loading && progressState === 6 && (\n

Processing..

\n )}\n
\n \n \n )}\n {/* If there is no any service available from Backend */}\n {products?.length === 0 && !loading && (\n
\n

\n No available services found.{\" \"}\n

\n
\n )}\n {/* Center Circular Loader */}\n {loading && (\n
\n \n
\n )}\n \n \n {/* Show dynamic pages */}\n {currentState === DISPLAYING_PAGES.PRODUCT && encryptionKey && (\n \n )}\n {currentState === DISPLAYING_PAGES.FORM && }\n {currentState === DISPLAYING_PAGES.BOOKING && !loading && }\n {currentState === DISPLAYING_PAGES.COMPLETION && !loading && }\n {((productCartDetail &&\n products?.length &&\n progressState >= 3 &&\n progressState <= 6) ||\n (productCartData &&\n products?.length &&\n progressState >= 3 &&\n progressState <= 6)) &&\n currentState !== \"COMPLETION\" && !loading && }\n \n
\n \n \n \n );\n};\n\nexport default AppManager;\n","import React from 'react';\n\nimport { createFormControl } from './logic/createFormControl';\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport deepEqual from './utils/deepEqual';\nimport isFunction from './utils/isFunction';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormProps,\n UseFormReturn,\n} from './types';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n *
\n * \n * \n * {errors.exampleRequired && This field is required}\n * \n *
\n * );\n * }\n * ```\n */\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: UseFormProps = {},\n): UseFormReturn {\n const _formControl = React.useRef<\n UseFormReturn | undefined\n >();\n const _values = React.useRef();\n const [formState, updateFormState] = React.useState>({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props),\n formState,\n };\n }\n\n const control = _formControl.current.control;\n control._options = props;\n\n useSubscribe({\n subject: control._subjects.state,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) => {\n if (\n shouldRenderFormState(\n value,\n control._proxyFormState,\n control._updateFormState,\n true,\n )\n ) {\n updateFormState({ ...control._formState });\n }\n },\n });\n\n React.useEffect(\n () => control._disableForm(props.disabled),\n [control, props.disabled],\n );\n\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n } else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n }\n }, [props.errors, control]);\n\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n\n control._removeUnmounted();\n });\n\n React.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.values.next({\n values: control._getWatch(),\n });\n }, [props.shouldUnregister, control]);\n\n _formControl.current.formState = getProxyFormState(formState, control);\n\n return _formControl.current;\n}\n","import './App.css';\nimport AppManager from './AppManager';\nimport 'bootstrap/dist/css/bootstrap.min.css';\n\nfunction App() {\n return (\n
\n \n
\n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n \n \n \n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["HASH_UNDEFINED","funcTag","genTag","reIsHostCtor","freeGlobal","global","Object","freeSelf","self","root","Function","arrayProto","Array","prototype","funcProto","objectProto","coreJsData","maskSrcKey","uid","exec","keys","IE_PROTO","funcToString","toString","hasOwnProperty","objectToString","reIsNative","RegExp","call","replace","splice","Map","getNative","nativeCreate","Hash","entries","index","length","this","clear","entry","set","ListCache","MapCache","assocIndexOf","array","key","value","other","baseIsNative","isObject","func","pattern","tag","isFunction","result","e","isHostObject","test","toSource","getMapData","map","data","__data__","type","isKeyable","object","undefined","getValue","memoize","resolver","TypeError","memoized","args","arguments","apply","cache","has","get","Cache","pop","push","module","exports","ReactPropTypesSecret","require","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","err","Error","name","getShim","isRequired","ReactPropTypes","bigint","bool","number","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","maxSize","_maxSize","_size","_values","create","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","pathCache","setCache","getCache","normalizePath","path","split","part","match","isQuoted","str","indexOf","charAt","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","setter","parts","obj","len","getter","safe","join","segments","reduce","forEach","cb","thisArg","iter","idx","isArray","isBracket","aa","ca","p","a","b","c","encodeURIComponent","da","Set","ea","fa","ha","add","ia","window","document","createElement","ja","ka","la","ma","v","d","f","g","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","z","toLowerCase","ra","sa","toUpperCase","ta","slice","pa","isNaN","qa","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","Symbol","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","A","assign","Ma","stack","trim","Na","Oa","prepareStackTrace","defineProperty","Reflect","construct","l","h","k","displayName","includes","Pa","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","constructor","configurable","enumerable","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","ownerDocument","eb","fb","options","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","children","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","setProperty","substring","tb","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr","ub","vb","is","wb","xb","target","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","m","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","Math","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","shift","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","id","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","String","fromCharCode","code","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","password","range","search","tel","text","time","url","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","offset","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","start","end","selectionStart","selectionEnd","min","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","concat","nf","Ub","instance","listener","D","of","pf","qf","rf","random","sf","bind","capture","passive","n","t","J","x","u","w","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","setTimeout","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","context","memoizedValue","next","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","payload","callback","dh","K","eh","fh","gh","q","r","y","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","state","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","message","digest","Li","Mi","console","error","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","S","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","size","createElementNS","autoFocus","createTextNode","T","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","insertBefore","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","src","Wk","mk","ceil","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","pendingSuspenseBoundaries","el","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","querySelectorAll","JSON","stringify","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","version","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","__self","__source","Fragment","jsx","jsxs","setState","forceUpdate","escape","_status","_result","default","Children","count","toArray","only","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","reWords","words","upperFirst","camelCase","acc","pascalCase","snakeCase","kebabCase","sentenceCase","titleCase","toposort","nodes","edges","cursor","sorted","visited","i","outgoingEdges","arr","edge","makeOutgoingEdges","nodesHash","res","makeNodesHash","visit","predecessors","nodeRep","outgoing","from","uniqueNodes","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__esModule","definition","o","chunkId","all","promises","miniCssF","globalThis","prop","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","timeout","nc","onScriptComplete","prev","onerror","onload","doneFns","fn","head","toStringTag","installedChunks","j","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","isCheckBoxInput","isDateObject","isNullOrUndefined","isObjectType","getEventValue","isNameInFieldArray","names","getNodeParentName","isPlainObject","tempObject","prototypeCopy","isWeb","HTMLElement","cloneObject","copy","Blob","FileList","compact","filter","Boolean","isUndefined","val","isBoolean","EVENTS","BLUR","FOCUS_OUT","CHANGE","VALIDATION_MODE","onBlur","onChange","onSubmit","onTouched","INPUT_VALIDATION_RULES","HookFormContext","React","useFormContext","getProxyFormState","formState","control","localProxyFormState","isRoot","defaultValues","_defaultValues","_key","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","find","convertToArrayPayload","shouldSubscribeByName","signalName","currentName","startsWith","useSubscribe","_props","subscription","subject","subscribe","unsubscribe","useFormState","methods","_formState","_mounted","_localProxyFormState","isDirty","isLoading","dirtyFields","touchedFields","validatingFields","isValidating","isValid","errors","_name","_updateFormState","_subjects","_updateValid","isString","generateWatchOutput","_names","formValues","isGlobal","watch","fieldName","watchAll","isKey","stringToPath","tempPath","lastIndex","newValue","objValue","useController","shouldUnregister","isArrayField","values","updateValue","_formValues","_getWatch","_removeUnmounted","useWatch","_registerProps","register","rules","_shouldUnregisterField","_options","updateMounted","field","_fields","_f","mount","_state","unregister","_updateDisabledField","fields","elm","select","setCustomValidity","reportValidity","fieldState","defineProperties","invalid","isTouched","Controller","appendErrors","validateAllFieldCriteria","types","getValidationModes","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","watchName","iterateFieldsByAction","fieldsNames","abortEarly","currentField","updateFieldArrayRootError","fieldArrayErrors","isFileInput","isHTMLElement","owner","isMessage","isRadioInput","isRegex","defaultResult","validResult","getCheckboxValue","option","attributes","defaultReturn","getRadioValue","previous","getValidateError","every","getValueAndMessage","validationData","validateField","async","shouldUseNativeValidation","isFieldArray","required","maxLength","minLength","max","validate","valueAsNumber","inputValue","inputRef","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueAsDate","convertTimeToDate","toDateString","isTime","isWeek","valueNumber","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","unset","paths","childObject","updatePath","baseGet","isEmptyArray","createSubject","_observers","observers","observer","isPrimitive","deepEqual","object1","object2","getTime","keys1","keys2","val1","val2","isMultipleSelect","live","isConnected","objectHasTruthyValue","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","_ref2","setValueAs","NaN","getFieldValue","files","selectedOptions","_ref3","getResolverOptions","criteriaMode","getRuleValue","rule","hasValidation","schemaErrorLookup","foundError","skipValidation","isSubmitted","reValidateMode","unsetEmptyArray","defaultOptions","shouldFocusError","createFormControl","delayErrorCallback","submitCount","isSubmitting","isSubmitSuccessful","unMount","timer","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","shouldUpdateValid","_executeSchema","executeBuiltInValidation","_updateIsValidating","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","output","disabledField","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","previousFieldError","delayError","updateErrors","wait","updatedFormState","shouldOnlyCheckValid","valid","isFieldArrayRoot","fieldError","getValues","fieldReference","optionRef","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","setValues","fieldKey","cloneValue","isFieldValueUpdated","_updateIsFieldValueUpdated","Number","shouldSkipValidation","watched","previousErrorLookupResult","errorLookupResult","_focusInput","fieldNames","executeSchemaAndUpdateState","shouldFocus","getFieldState","setError","keepValue","keepError","keepDirty","keepTouched","keepIsValidating","keepDefaultValue","keepIsValid","_ref4","disabledIsDefined","progressive","fieldRef","radioOrCheckbox","_focusError","handleSubmit","onValid","onInvalid","onValidError","fieldValues","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","keepDefaultValues","keepValues","keepDirtyValues","closest","reset","keepSubmitCount","keepIsSubmitted","keepErrors","keepIsSubmitSuccessful","_updateFieldArray","method","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","_getFieldArray","_resetDefaultValues","resetOptions","_disableForm","requiredDisabledState","_setErrors","resetField","clearErrors","inputName","setFocus","shouldSelect","raw","inner","defaultAttributes","xmlns","viewBox","fill","stroke","strokeLinecap","strokeLinejoin","createReactComponent","iconName","iconNamePascal","iconNode","_a","_b","rest","__objRest","__spreadValues","__spreadProps","className","_ref","attrs","propTypes","IconArrowLeft","PAGES","DISPLAYING_PAGES","PROGRESS_STATE","IconMapPin","IconClock","combineDateWithTime","dateTimeString","anotherTime","dateObject","year","getFullYear","getMonth","padStart","day","getDate","formattedDate","isKeyValueEmpty","formatTo12Hour","time24","hour","minute","ampm","cssUnit","cm","mm","in","px","pt","em","ex","rem","vw","vmin","vmax","cssValue","lengthWithunit","unit","valueString","parseFloat","parseInt","warn","parseLengthAndUnit","createAnimation","loaderName","frames","suffix","styleEl","styleSheet","sheet","keyFrames","insertRule","__assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","clip","loading","_c","_d","speedMultiplier","_e","cssOverride","additionalprops","background","borderRadius","border","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","animationFillMode","getPrototypeOf","kindOf","thing","kindOfTest","typeOfTest","isArrayBuffer","isNumber","isDate","isFile","isBlob","isFileList","isURLSearchParams","allOwnKeys","getOwnPropertyNames","findKey","_global","isContextDefined","isTypedArray","TypedArray","Uint8Array","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","ret","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","isBuffer","isFormData","kind","FormData","append","isArrayBufferView","ArrayBuffer","isView","buffer","isStream","pipe","merge","caseless","assignValue","targetKey","stripBOM","content","charCodeAt","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","position","forEachEntry","pair","matchAll","regExp","matches","hasOwnProp","freezeMethods","writable","toObjectSet","arrayOrString","delimiter","define","toCamelCase","p1","p2","noop","toFiniteNumber","isFinite","generateString","alphabet","isSpecCompliantForm","toJSONObject","reducedValue","isThenable","AxiosError","config","response","captureStackTrace","utils","toJSON","description","fileName","lineNumber","columnNumber","status","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","token","predicates","formData","metaTokens","indexes","visitor","defaultVisitor","useBlob","convertValue","toISOString","Buffer","isFlatArray","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","params","_pairs","toFormData","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","URLSearchParams","protocols","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","platform","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","defaults","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","parseHeaders","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","normalize","format","normalized","formatHeader","_len","targets","asStrings","first","computed","_len2","_key2","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","write","expires","domain","secure","cookie","toGMTString","read","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","userAgent","urlParsingNode","originURL","resolveURL","protocol","host","hash","hostname","port","pathname","requestURL","samplesCount","bytes","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","round","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","XMLHttpRequest","requestData","requestHeaders","onCanceled","withXSRFToken","cancelToken","signal","auth","username","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","settle","responseText","statusText","open","paramsSerializer","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","isURLSameOrigin","xsrfValue","cookies","setRequestHeader","withCredentials","onDownloadProgress","onUploadProgress","upload","cancel","abort","aborted","parseProtocol","send","knownAdapters","http","xhr","xhrAdapter","renderReason","reason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","VERSION","validators","deprecatedWarnings","validator","formatMessage","opt","desc","opts","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","Cancel","spread","isAxiosError","formToJSON","getAdapter","fetchAllCategories","rdDeviceDetail","modelServices","getTimes","storeInfo","submitRequest","allStores","isUnique","fixCommas","normalizeLocale","splitEl1","splitEl2","getUserLocales","useFallbackLocale","fallbackLocale","languageList","languages","_i","rawLanguages_1","rawLanguagesItem","rawLanguage","language","getUserLocale","makeGetEdgeOfNeighbor","getPeriod","getEdgeOfPeriod","defaultOffset","previousPeriod","makeGetEnd","getBeginOfNextPeriod","makeGetRange","getStart","getEnd","getYear","getCenturyStart","centuryStartYear","centuryStartDate","setFullYear","setHours","getPreviousCenturyStart","getNextCenturyStart","getCenturyEnd","getPreviousCenturyEnd","getCenturyRange","getDecadeStart","decadeStartYear","decadeStartDate","getPreviousDecadeStart","getNextDecadeStart","getDecadeEnd","getPreviousDecadeEnd","getDecadeRange","getYearStart","yearStartDate","getPreviousYearStart","getNextYearStart","getYearEnd","getPreviousYearEnd","getYearRange","makeGetEdgeOfNeighborMonth","getMonthStart","monthStartDate","getPreviousMonthStart","getNextMonthStart","getMonthEnd","getPreviousMonthEnd","getMonthRange","makeGetEdgeOfNeighborDay","getDayStart","dayStartDate","getDayEnd","getDayRange","getDaysInMonth","CALENDAR_TYPES","GREGORY","HEBREW","ISLAMIC","ISO_8601","DEPRECATED_CALENDAR_TYPES","ARABIC","US","CALENDAR_TYPE_LOCALES","WEEKDAYS","formatterCache","getSafeFormatter","localeWithDefault","formatterCacheLocale","Intl","DateTimeFormat","getFormatter","safeDate","toSafeHour","formatDay","formatLongDate","formatMonth","formatMonthYear","formatShortWeekday","weekday","formatWeekday","formatYear","SUNDAY","FRIDAY","SATURDAY","getDayOfWeek","calendarType","getDay","getBeginOfWeek","monthIndex","getMonthIndex","getBegin","rangeType","getBeginNext","getRange","toYearLabel","dates","defaultFormatYear","getDecadeLabel","isCurrentDayOfWeek","isWeekend","Navigation","activeStartDate","drillUp","defaultFormatMonthYear","maxDate","minDate","navigationAriaLabel","navigationAriaLive","navigationLabel","next2AriaLabel","next2Label","_g","nextAriaLabel","_h","nextLabel","_j","prev2AriaLabel","_k","prev2Label","_l","prevAriaLabel","_m","prevLabel","setActiveStartDate","showDoubleView","drillUpAvailable","views","shouldShowPrevNext2Buttons","previousActiveStartDate","getBeginPrevious","previousActiveStartDate2","getBeginPrevious2","nextActiveStartDate","nextActiveStartDate2","getBeginNext2","prevButtonDisabled","previousActiveEndDate","getEndPrevious","prev2ButtonDisabled","getEndPrevious2","nextButtonDisabled","next2ButtonDisabled","renderLabel","label","getCenturyLabel","labelClassName","renderButton","toPercent","num","Flex","direction","wrap","otherProps","flexDirection","flexWrap","marginInlineStart","flexBasis","marginLeft","marginInlineEnd","condition","isValueWithinRange","doRangesOverlap","range1","range2","getRangeClassNames","valueRange","dateRange","baseClassName","isRangeStart","isRangeEnd","getTileClasses","hover","dateType","isCompleteValue","greaterRange","smallerRange","valueType","valueRangeClassNames","valueArray","hoverRangeClassNames","calendarTypeMap","warned","mapCalendarType","calendarTypeOrDeprecatedCalendarType","isDeprecatedCalendarType","warning","TileGroup","dateTransform","renderTile","step","tiles","point","Tile","formatAbbr","maxDateTransform","minDateTransform","onMouseOver","tileClassNameProps","tileClassName","tileContentProps","tileContent","tileDisabled","clsx","onFocus","__spreadArray","to","pack","ar","Decade","Decades","getBeginOfCenturyYear","otherTileProps","calendarTypes","deprecatedCalendarTypes","allViews","isCalendarType","isClassName","isMinDate","isMaxDate","isRef","isRange","isValue","tileGroupProps","CenturyView","Year","Years","getBeginOfDecadeYear","DecadeView","Month","defaultFormatMonth","Months","YearView","Day","currentMonthIndex","defaultFormatDay","defaultFormatLongDate","classesProps","Days","showFixedNumberOfWeeks","showNeighboringMonth","hasFixedNumberOfWeeks","dayOfWeek","daysInMonth","activeEndDate","weekdayClassName","Weekdays","defaultFormatShortWeekday","defaultFormatWeekday","onMouseLeave","beginOfMonth","weekdays","weekdayDate","abbr","title","WeekNumber","onClickWeekNumber","weekNumber","date_1","onClickWeekNumber_1","weekNumber_1","WeekNumbers","numberOfWeeks","days","weekNumbers","beginOfFirstWeek","calendarTypeForWeekNumber","beginOfWeek","getWeekNumber","weekIndex","MonthView","getCalendarTypeFromLocale","showWeekNumbers","childProps","alignItems","allValueTypes","defaultMinDate","defaultMaxDate","toDate","getLimitedViews","minDetail","maxDetail","getView","isViewAllowed","getValueType","getDetailValue","valuePiece","between","getDetailValueFrom","getDetailValueTo","getDetailValueArray","getActiveStartDate","getIsSingleValue","areDatesEqual","date1","date2","Calendar","activeStartDateProps","allowPartialRange","defaultActiveStartDate","goToRangeStartOnSelect","onActiveStartDateChange","onChangeProps","onClickDay","onClickDecade","onClickMonth","onClickYear","onDrillDown","onDrillUp","onViewChange","selectRange","showNavigation","valueProps","viewProps","activeStartDateState","setActiveStartDateState","hoverState","setHoverState","valueState","setValueState","viewState","setViewState","valueFrom","getInitialActiveStartDate","drillDownAvailable","getProcessedValue","processFunction","onClickTile","drillDown","nextView","rawNextValue","previousValue","nextValue","isFirstValueInRange","sort","getValueRange","nextHover","renderContent","commonProps","isActiveStartDate","isValueOrValueArray","_taggedTemplateLiteral","strings","freeze","querySelector","_goober","theme","as","resolveValue","matchMedia","$","toastId","toasts","toast","visible","pausedAt","pauseDuration","blank","success","custom","createdAt","ariaProps","role","dismiss","updateHeight","startPause","duration","reverseOrder","gutter","defaultPosition","findIndex","endPause","calculateOffset","_templateObject","_templateObject2","_templateObject3","_","_templateObject4","primary","secondary","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","icon","iconTheme","_templateObject14","_templateObject15","getAnimationStyle","onHeightUpdate","getBoundingClientRect","MutationObserver","observe","subtree","childList","characterData","_templateObject16","toastOptions","containerStyle","containerClassName","right","bottom","pointerEvents","onMouseEnter","getPositionStyle","justifyContent","transform","_t","beat","margin","wrapper","backgroundColor","argument","argStr","_date","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","formatLong","full","long","medium","short","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","formattingValues","defaultFormattingWidth","argumentCallback","localize","ordinalNumber","dirtyNumber","rem100","era","narrow","abbreviated","wide","quarter","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","predicate","valueCallback","parsePattern","parseResult","enUS","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_baseDate","weekStartsOn","firstWeekContainsDate","getDefaultOptions","pow","millisecondsInWeek","millisecondsInDay","startOfDay","getTimezoneOffsetInMilliseconds","utcDate","UTC","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","differenceInCalendarDays","dateLeft","dateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","constructFrom","startOfYear","cleanDate","getDayOfYear","startOfWeek","_options$weekStartsOn","_options$locale","_defaultOptions$local","diff","setDate","startOfISOWeek","getISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfISOWeekYear","fourthOfJanuary","getISOWeek","getWeekYear","_options$firstWeekCon","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","targetLength","abs","lightFormatters","signedYear","dayPeriodEnumValue","numberOfDigits","milliseconds","dayPeriodEnum","formatters","signedWeekYear","weekYear","isoWeek","dayOfYear","localDayOfWeek","isoDayOfWeek","hours","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","originalDate","sign","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","RangeError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","_options$locale2","_ref5","_ref6","_ref7","_options$locale3","_defaultOptions$local2","defaultLocale","formatterOptions","firstCharacter","longFormatter","matched","cleanEscapedString","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","bookingDetail","getStoreTime","times","setTimes","selectedDate","setSelectedDate","filteredTime","setFilteredTime","isToastVisible","setIsToastVisible","setWidth","timesSectionRef","isInitialRender","appointmentDetail","setAppointmentDetail","fetchTimeLoading","setFetchTimeLoading","buttonClicked","encryptionKey","isWebView","AppContext","updateWidth","innerWidth","newDay","fetchTimes","skipScrollAdjustment","fullUrl","containsDevOrMaster","scrollIntoView","behavior","block","newScrollY","scrollY","scrollTo","scrollX","yOffset","pageYOffset","scrollToTimesSection","onTimeHandler","_data$times","post","process","UrlServices","calendar_date","q_","_jsxs","_jsx","Toaster","handleViewMap","mapsUrl","address","city","postcode","country","start_time","end_time","allowFullScreen","_Fragment","BeatLoader","IconSearch","isShowIcon","placeholder","handleChange","handleBlur","Bookinglist","bookingList","setBookingList","filteredBookingList","setFilteredBookingList","loader","setLoader","setSearch","setSelectedStoreDetails","selectedStoreDetails","progressState","setProgressState","toggle","setToggle","selectedBookingPage","setSelectedBookingPage","setDefaultStore","userSettings","isQuoteLocationsEnabled","fetch","json","fetchData","isStoreOpen","endTime","ClipLoader","Input","query","filteredList","toggleBookingDetail","store_id","store_name","BookingDetails","Button","continueButtonWidth","quoteButtonWidth","appointmentButtonWidth","buttonHeight","typeA","submit","setServiceArray","setCurrentState","toggleState","prevState","IconTrash","IssueList","productCartDetail","setProducts","products","setProductCartDetail","currentState","countryDetails","isExpanded","setExpandedId","toggleDescription","prevId","service","services","_s$price","picture","alt","showDescription","item_description","isPricesEnabled","price","currency_symbol","toFixed","_product$sale_price","updatedList","sale_price","retail_price","totalPrice","active","deleteAndUpdatePrice","_id","Cart","_productCartDetail$br2","_productCartDetail$br3","_productCartDetail$br4","_productCartDetail$mo2","_productCartDetail$se","_productCartDetail$to","_productCartDetail$se2","_productCartDetail$to2","_productCartDetail$mo3","_productCartDetail$mo4","_productCartDetail$br5","_productCartDetail$mo5","_productCartDetail$se3","_productCartDetail$to3","_productCartDetail$se4","formdata","setPrevState","setLoading","productCartData","setProductCartData","reactHookFormData","setButtonClicked","defaultStore","setCountryDetails","isMobileOrTablet","setIsMobileOrTablet","isViewOpen","setIsViewOpen","activeKey","setActiveKey","detectMobileOrTablet","screenWidth","toggleModal","fetchCountryDetails","submitForm","clickedKey","_productCartDetail$ca","_productCartDetail$br","_productCartDetail$mo","item","rd_issue_id","formattedTime","device","category","brand","model","device_name","category_id","skipForOthers","isRDSync","rd_category_id","manufacturer_id","rd_manufacturer_id","rd_device_id","issues","customer_name","customer_email","customer_telephone","phone","customer_notes","notes","delivery_option","delivery_status","total_price","config_type","API_BASE_URL","formDataObj","modifiedData","formErrors","modelError","restErors","isQuoteEnabled","isAppointmentEnabled","ClipboardText","ChevronRight","IconCalendar","Completion","_productCartDetail$br6","_model","_model2","_model3","_productCartDetail$se5","allProducts","setFormData","notificationWay","setNotificationWay","othersWorkflow","setOthersWorkflow","m_id","device_id","models","ele","resetStates","sessionStorage","removeItem","manufacturer_name","IconMessage","IconMail","IconPhoneCall","useTooltip","wasTruncated","setWasTruncated","truncatedText","setTruncatedText","showTooltip","setShowTooltip","tooltipPosition","setTooltipPosition","limit","image","truncated","productName","ReactDOM","getElementById","_product$model","_product$model2","api_base_url","filteredProducts","Icon","imageLoaded","setImageLoaded","goWithOthersFlow","isRD","bzy_d","bzy_c","_item$sale_price","getDataFromRD","getModelServices","rect","onTouchStart","onTouchEnd","Tooltip","objectConstructor","normalizeArguments","metadata","_Array$prototype$slic2","_slicedToArray","arg_1","arg_2","arg_3","arg_4","_objectSpread","defaultCountry","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","VALID_PUNCTUATION","ParseError","_this","_classCallCheck","_super","setPrototypeOf","_assertThisInitialized","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","countries","typeOf","validateMetadata","setVersion","countryCode","v1","v2","v3","nonGeographic","nonGeographical","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","selectNumberingPlan","hasCountry","numberingPlan","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","_type","ext","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","_type2","getType","Type","_format","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","_typeof","getCountryCallingCode","countryCallingCode","isSupportedCountry","v4","getExtensionDigitsPattern","createExtensionPattern","purpose","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","possibleSeparatorsNumberExtLabelNoComma","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","EXTN_PATTERN","DIGITS","parseDigit","character","parseDigits","_step","_iterator","_createForOfIteratorHelperLoose","digit","parseIncompletePhoneNumber","parsePhoneNumberCharacter","prevParsedCharacters","emitEvent","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","mergeArrays","actual_length","minimum_length","isPossibleNumber","matchesEntirely","regular_expression","NON_FIXED_LINE_PHONE_TYPES","getNumberType","isNumberTypeEqualTo","getPossibleCountriesForNumber","possibleCountries","_metadata","couldNationalNumberBelongToCountry","applyInternationalSeparatorStyle","formattedNumber","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","carrierCode","internationalFormat","SINGLE_IDD_PREFIX_REG_EXP","DEFAULT_OPTIONS","formatExtension","extension","formatNumber","addExtension","formatNationalNumber","formatRFC3966","fromCountry","fromCountryCallingCode","iddPrefix","countryMetadata","getIddPrefix","formatIDD","formatAs","availableFormats","nationalNnumber","leadingDigitsPatterns","lastLeadingDigitsPattern","chooseFormatForNumber","PhoneNumber","countryOrCountryCallingCode","_getCountryAndCountry","metadataJson","isCountryCode","getCountryAndCountryCallingCode","getMetadata","isNonGeographicCallingCode","isValidNumber","phoneNumber","CAPTURING_DIGIT_PATTERN","stripIddPrefix","IDDPrefixPattern","matchedGroups","extractNationalNumberFromPossiblyIncompleteNumber","prefixPattern","prefixMatch","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","extractNationalNumber","_extractNationalNumbe","nationalNumberBefore","nationalNumberAfter","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","possibleShorterNumber","possibleShorterNationalNumber","extractCountryCallingCode","isNumberWithIddPrefix","numberWithoutIDD","_extractCountryCallin","shorterNumber","countryCallingCodeSource","_countryCallingCode","getCountryByNationalNumber","nationalPhoneNumber","matchingCountries","USE_NON_GEOGRAPHIC_COUNTRY_CODE","getCountryByCallingCode","PLUS_SIGN","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","RFC3966_ISDN_SUBADDRESS_","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","numberToParse","phoneNumberString","extractFormattedPhoneNumber","phoneContext","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","extractPhoneContext","isPhoneContextValid","indexOfNationalNumber","indexOfRfc3966Prefix","indexOfIsdn","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_parseInput","extract","throwOnError","startsAt","_extractFormattedPhoneNumber","isViablePhoneNumber","isViablePhoneNumberStart","withExtensionStripped","numberWithoutExtension","extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","defaultCallingCode","exactCountry","parsePhoneNumber","hasSelectedNumberingPlan","__countryCallingCodeSource","extended","possible","parsePhoneNumberWithError","isValidPhoneNumber","_normalizeArguments","labels","count_occurences","template","should_close_braces","characters_in_template","value_character_index","filled_in_template","retained_template","empty_placeholder","cut_before","dangling_braces","close_braces","Keys","Backspace","Delete","setCaretPosition","caret_position","ANDROID_USER_AGENT_REG_EXP","isAndroid","setSelectionRange","onKeyDown","_parse","on_change","hasAttribute","operation","getOperation","selection","eraseSelection","formatInputText","_parse2","parse_character","focused_input_character_index","caret","newValueAndCaret","edit","formatted","template_formatter","found","possibly_last_input_character_index","InputComponent","inputComponent","_objectWithoutProperties","_excluded","internalRef","setRef","_onChange","_onKeyDown","onInputKeyDown","_extends","isEmptyValue","onCut","onPaste","AsYouTypeState","onCountryChange","onCallingCodeChange","international","missingPlus","digits","resetNationalSignificantNumber","initCountryAndCallingCode","nationalSignificantNumber","getNationalDigits","nationalSignificantNumberMatchesInput","complexPrefixBeforeNationalSignificantNumber","properties","_Object$keys","setCountry","setCallingCode","nextDigits","DIGIT_PLACEHOLDER","DIGIT_PLACEHOLDER_MATCHER","cutAndStripNonPairedParens","cutBeforeIndex","cleared_string","_dangling_braces","stripNonPairedParens","formatCompleteNumber","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","formattedNationalNumber","isValidFormattedNationalNumber","PatternParser","or","instructions","_this$context$","branches","op","expandSingleElementArray","OPERATOR","operator","before","rightPart","startContext","getContext","endContext","oneOfSet","parseOneOfSet","ILLEGAL_CHARACTER_REGEXP","prevValue","PatternMatcher","matchTree","allowOverflow","_match","matchedChars","characters","tree","characterString","partialMatch","restCharacters","_step2","_iterator2","_char","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","AsYouTypeFormatter","resetFormat","chosenFormat","nationalNumberTemplate","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","isNANP","matchingFormats","narrowDownMatchingFormats","canFormatCompleteNumber","formattedCompleteNumber","setNationalNumberTemplate","lastIndexOf","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","_this2","leadingDigitsPatternIndex","formatSuits","formatMatches","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","leadingDigitsPatternsCount","leadingDigitsPattern","_this3","_loop","getFormatFormat","createTemplateForFormat","_ret","getTemplateForFormat","spacing","internationalPrefix","getInternationalPrefixBeforeCountryCallingCode","getDigitsWithoutInternationalPrefix","strictPattern","nationalNumberDummyDigits","nationalPrefixIncludedInTemplate","numberFormat","numberFormatWithNationalPrefix","populateTemplateWithDigits","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","onNationalSignificantNumberChange","justLeadingPlus","_extractFormattedDigi","_extractFormattedDigi3","extractedNumber","hasPlus","_extractFormattedDigitsAndPlus","_extractFormattedDigi4","formattedDigits","extractFormattedDigitsAndPlus","_extractFormattedDigi2","startInternationalNumber","inputDigits","hasReceivedThreeLeadingDigits","appendDigits","extractIddPrefix","isWaitingForCountryCallingCode","appendNationalSignificantNumberDigits","hasExtractedNationalSignificantNumber","extractNationalSignificantNumber","stateUpdate","update","_extractCountryCallingCode","couldPossiblyExtractAnotherNationalSignificantNumber","nationalDigits","onExtractedNationalNumber","prevNationalSignificantNumber","_extractNationalNumbe2","nationalSignificantNumberIndex","extractAnotherNationalSignificantNumber","fixMissingPlus","extractCallingCodeAndNationalSignificantNumber","_extractCountryCallin2","newCallingCode","AsYouType","optionsOrDefaultCountry","_this$getCountryAndCa2","getCountryAndCallingCode","_this$parser$input","formattedOutput","determineTheCountryIfNeeded","reExtractNationalSignificantNumber","getFullNumber","getNonFormattedNumber","isInternational","getCallingCode","_getCountry","isCountryCallingCodeAmbiguous","determineTheCountry","prefix","_this$state","getNonFormattedNationalNumberWithPrefix","_this$state2","_this$state3","_callingCode","ambiguousCountries","getNumber","isPossible","getTemplate","getNonFormattedTemplate","getInputValuePrefix","withCountryCallingCode","removeInputValuePrefix","parsePhoneNumberCharacter_","ignoreRest","eventName","useInputKeyDownHandler","BACKSPACE_KEY_CODE","HTMLInputElement","AFTER_LEADING_PLUS_CARET_POSITION","defaultMetadata","InputSmart","_ref$metadata","InputBasic","_ref$inputComponent","formatIncompletePhoneNumber","getRegionalIndicatorSymbol","letter","fromCodePoint","CountrySelect","readOnly","onChange_","getSelectedOption","divider","DIVIDER_STYLE","fontSize","CountrySelectWithIcon","iconComponent","_ref3$arrowComponent","getIconAspectRatio","arrowComponent","Arrow","DefaultArrowComponent","unicodeFlags","_excluded2","selectedOption","FlagComponent","countryName","flagUrl","InternationalIcon","InternationalIcon1x1","InternationalIcon3x2","x1","y1","x2","y2","_excluded3","isCountrySupportedWithError","getSupportedCountries","getCountries","createCountryIconComponent","flagComponent","internationalIcon","CountryIcon","_aspectRatio","DefaultInternationalIcon","Flag","setRefsValue","setRefValue","getInternationalPhoneNumberPrefix","parsePhoneNumber_","getPhoneDigitsForNewCountry","phoneDigits","prevCountry","newCountry","useNationalFormat","countryCallingCodePrefix","country_calling_code","stripCountryCallingCode","newCountryPrefix","e164","asYouType","getNumberValue","partial_national_significant_number","getNationalSignificantNumberDigits","trimNumber","nationalSignificantNumberPart","overflowDigitsCount","getMaxNumberLength","getCountryForPartialE164Number","partialE164Number","derived_country","getCountry","getCountryFromPossiblyIncompleteInternationalPhoneNumber","couldNumberBelongToCountry","convertInternationalPhoneDigitsToNational","formatNational","compareStrings","locales","localeCompare","intlPhoneNumberPrefix","getInitialPhoneDigits","generateNationalNumberDigits","valuesAreEqual","value1","value2","PhoneNumberInput_","_defineProperty","_this$props","focusInputOnCountrySelection","newPhoneDigits","hasUserSelectedACountry","_phoneDigits","_this$props2","addInternationalOption","limitMaxLength","countryCallingCodeEditable","_onPhoneDigitsChange","prevPhoneDigits","countryRequired","getAnyCountry","onPhoneDigitsChange","getFirstSupportedCountry","forceRerender","isFocused","_onFocus","_onBlur","countrySelectProps","_this$props3","_international","_addInternationalOption","displayInitialValueAsLocalNumber","initialValueFormat","_this$props4","_defaultCountry","_countries","preSelectedCountry","getPreSelectedCountry","selectedCountry","prevProps","_this$props5","countryOptionsOrder","useMemoCountrySelectOptions","optionsOnTop","optionsOnBottom","appendTo","sortCountryOptions","countryNames","compareStringsLocales","_compareStrings","countrySelectOptions","ZZ","_getCountrySelectOptions","countryOptions","getSupportedCountryOptions","generator","countrySelectOptionsMemoDependencies","areEqualArrays","countrySelectOptionsMemo","getCountrySelectOptions","_this$props6","autoComplete","numberInputProps","smartCaret","CountrySelectComponent","countrySelectComponent","ContainerComponent","containerComponent","containerComponentProps","onCountryFocus","onCountryBlur","setInputRef","newDefaultCountry","newReset","prevDefaultCountry","prevReset","_getInitialPhoneDigits","parameters","isNewDefaultCountrySupported","noValueHasBeenEnteredByTheUser","parsedCountry","hasUserSelectedACountryUpdate","supportedCountries","getPhoneInputWithCountryStateUpdateFromNewProps","PhoneNumberInput","withDefaultProps","labelsPropType","metadataPropType","createPhoneInput","PhoneInputDefault","_ref$labels","defaultLabels","PhoneInput","_arguments","ContactDeatils","_errors$model","_errors$name","_errors$phone","_errors$email","setErrors","isButtonClicked","menuOption","setMenuOption","updateStatus","selectedItem","restoreOptionField","storedMenuOption","getItem","updatedMenuOption","handleBeforeUnload","serializableMenuOption","setItem","updateFields","FormInput","country_code","Card","load","ProductList","setAllProducts","currentModelsServices","setCurrentModelsServices","setIsMissedItem","allServices","setAllServices","setUserSettings","allServicesForSubId","setAllServicesForSubId","widthProductSection","setWidthProductSection","searchProducts","setSearchProducts","updateWidthProductSection","productSection","offsetWidth","newCategories","user_data","brands","isFavorite","filteredData","flat","default_data","settings","currentIndex","filteredServices","newItem","getFilteredProducts","displayedProducts","showOther","DEFAULT_BREAKPOINTS","DEFAULT_MIN_BREAKPOINT","ThemeContext","prefixes","breakpoints","minBreakpoint","useBootstrapPrefix","defaultPrefix","ROUND_PRECISION","getPercentage","percentage","renderProgressBar","visuallyHidden","striped","animated","variant","bsPrefix","ProgressBar","isChild","wrapperProps","errorToString","regExpToString","symbolToString","SYMBOL_REGEXP","printSimpleValue","quoteStrings","printNumber","printValue","_Symbol$toStringTag","strReg","ValidationError","formatError","isError","errorOrErrors","disableStack","super","innerErrors","mixed","defined","notNull","notOneOf","notType","originalValue","castMsg","uuid","lowercase","uppercase","lessThan","moreThan","positive","negative","integer","noUnknown","tuple","spec","typeLen","isSchema","__isYupSchema__","Condition","fromOptions","otherwise","check","_branch","branch","builder","parent","Reference","isContext","isSibling","cast","describe","__isYupRef","isAbsent","createValidation","panic","skipAbsent","disableStackTrace","createError","overrides","_overrides$disableSta","nextParams","ctx","handleResult","validOrError","handleError","sync","OPTIONS","getIn","lastPart","lastPartDebug","_part","isTuple","innerType","parentPath","ReferenceSet","resolveAll","clone","newItems","removeItems","seen","Schema","tests","transforms","conditions","_mutate","internalTests","_whitelist","_blacklist","exclusiveTests","_typeCheck","withMutation","typeError","strip","strict","recursive","nullable","optional","coerce","nonNullable","combined","mergedSpec","isType","prevSchema","resolveOptions","_options$strict","_options$abortEarly","_options$recursive","_options$disableStack","resolvedSchema","allowOptionality","assert","_cast","formattedValue","formattedResult","getDefault","_validate","initialTests","runTests","initialErrors","runOptions","fired","panicOnce","nextOnce","nestedErrors","asNestedTest","originalParent","isIndex","testOptions","_options$disableStack2","validated","validateSync","_options$disableStack3","isValidSync","_getDefault","def","isStrict","nullability","optionality","notRequired","isExclusive","exclusive","when","dep","enums","whiteList","valids","resolved","blacklist","invalids","list","alias","rEmail","rUrl","rUUID","isTrimmed","objStringTag","create$6","StringSchema","_raw","strValue","regex","excludeEmptyString","ensure","isoReg","toNumber","invalidDate","create$4","DateSchema","regexResult","struct","second","millisecond","plusMinus","hourOffset","minuteOffset","totalMinutesOffset","parseIsoDate","INVALID_DATE","prepareParam","_err$path","sortByKeyOrder","parseJson","deepPartial","partial","fieldSchema","setFields","nextArray","defaultSort","create$3","ObjectSchema","_sortErrors","_nodes","_excludedEdges","_options$stripUnknown","stripUnknown","intermediateValue","innerOptions","__validating","isChanged","exists","fieldSpec","objectErrors","fieldErrors","nextFields","schemaOrRef","dft","_innerOptions","excludedEdges","excludes","addNode","depPath","reverse","sortFields","additions","pick","picked","omit","remaining","fromGetter","newObj","deepHas","noAllow","unknownKeys","known","unknown","allow","transformKeys","constantCase","_innerOptions2","yup","_isValidPhoneNumber","AppManager","_formControl","useForm","yupResolver","isMissedItem","setEncryptionKey","setReactHookFormData","setHeight","innerHeight","buttonLoader","setButtonLoader","setIsDisabled","isMobView","setIsMobView","setIsWebView","setIsButtonClicked","productSectionRef","formErrorss","isFormValid","isModelRequired","detectMobView","detectWebView","updateDimensions","resetContactDetailFields","saveState","updatedState","getData","targetObject","propertiesLength","URL","frameId","encrypted","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","App","reportWebVitals"],"sourceRoot":""}