{"version":3,"file":"js/4802-f971ab580349605722b3.chunk.js","mappings":";wEAIA,MAAM,eAACA,EAAc,QAAEC,GAAW,EAAQ,OAE1CC,EAAOC,QAAU,MAAMC,EACrB,UAAOC,CAAIC,EAAOC,GAChB,OAAO,IAAIH,GAAUC,IAAIC,EAAOC,EAClC,CAEA,WAAOC,CAAKC,EAASH,EAAOC,GAC1B,OAAO,IAAIH,GAAUI,KAAKC,EAASH,EAAOC,EAC5C,CAEA,WAAAG,GACEC,KAAKC,IAAM,KACXD,KAAKE,OAAS,IAChB,CAEA,MAAIC,GACF,OAAOH,KAAKC,GACd,CAEA,SAAIN,GACF,OAAOK,KAAKE,MACd,CAEA,GAAAR,CAAIC,EAAOC,EAAe,IACxB,OAAO,IAAIQ,SAAQ,CAACC,EAASC,KAC3BN,KAAKO,QACL,MAAMC,EAAKZ,EAAe,IAAMU,EAAOhB,EAAQM,IAAiBS,EAChEL,KAAKC,IAAMQ,WAAWD,EAAIb,GAC1BK,KAAKE,OAASP,CAAK,GAEvB,CAEA,IAAAE,CAAKC,EAASH,EAAOC,EAAe,IAClC,MAAMc,EAAiBrB,EAAeS,GAAS,IAAME,KAAKO,UACpDI,EAAQX,KAAKN,IAAIC,EAAOC,GAC9B,OAAOQ,QAAQQ,KAAK,CAClBF,EACAC,GAEJ,CAEA,KAAAJ,GACMP,KAAKC,KACPY,aAAab,KAAKC,IAEtB,kBClDFT,EAAQH,eAAiB,CAACS,EAASU,IAS1BJ,QAAQC,QAAQP,GAASgB,MARhBC,IACdP,IACOO,KAEKC,IACZR,IACOJ,QAAQE,OAAOU,MAU1BxB,EAAQF,QAAU2B,GAEQ,kBADxBA,EAAyB,oBAAVA,EAAuBA,IAAUA,GACb,IAAIC,MAAMD,GAASA,6rDCXxD,SAAeE,EAAAA,EAAAA,IAAKC,EAAAA,EAAAA,IAAcC,EAAA,SAAAC,GAAA,SAAAC,IAAA,IAAAC,+FAAAC,CAAC,KAADF,GAAA,QAAAG,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAkI/B,OAlI+BC,EAAAR,EAAAS,EAAC,KAADV,EAAA,GAAAW,OAAAL,IAAA,qBA0HZ,SAACb,GACnBA,EAAEmB,iBACFX,EAAKY,SAAS,CAACC,UAAU,GAC3B,IAACL,EAAAR,EAAA,mBAEiB,SAACR,GACjBA,EAAEmB,iBACFX,EAAKY,SAAS,CAACC,UAAU,GAC3B,IAACb,CAAA,6RAAAc,CAAAf,EAAAD,6GAAAiB,CAAAhB,EAAA,EAAAiB,IAAA,QAAAvB,MA1GD,WACEjB,KAAKyC,SAAUC,EAAAA,EAAAA,UAEf1C,KAAK2C,UAAU,CACbN,SAAUrC,KAAK4C,MAAMC,iBAEzB,GAAC,CAAAL,IAAA,SAAAvB,MAED,WACE,IAAA6B,EAcI9C,KAAK4C,MAbPH,EAAOK,EAAPL,QACAM,EAAQD,EAARC,SACAC,EAASF,EAATE,UACAC,EAAQH,EAARG,SAEAC,GADeJ,EAAfD,gBACUC,EAAVI,YACAC,EAAcL,EAAdK,eACAC,EAAMN,EAANM,OACAC,EAAMP,EAANO,OAGAC,GAFeR,EAAfS,gBACOT,EAAPU,QACKV,EAALQ,OACGG,uWAASC,CAAAZ,EAAAa,GAEPtB,GAAYuB,EAAAA,EAAAA,IAAK5D,KAAK6D,MAAO,YAA7BxB,SACDyB,EAAkB,CAACC,QAAS,QAC5BC,EAAevB,GAAWzC,KAAKyC,QAIrC,OAFKJ,IAAUyB,EAA8B,aAAI,KAG/CG,EAAAC,cAAA,MAAAC,OAAAC,OAAA,CACEpB,UAAWqB,IAAW,2BAA4B,OAAQ,eAAgBrB,GAC1E,kBAAiBsB,QAAQlB,GACzBmB,IAAKP,GACDP,IAEFR,GAAYC,GAAcG,IAC1BY,EAAAC,cAAA,OAAKlB,UAAU,cAAcwB,MAAOV,GAClCG,EAAAC,cAAA,OAAKlB,UAAU,oBAAoBwB,MAAO,CAACC,UAAW,SAAUC,YAAa,SAC1ErB,IAEDJ,GAAYC,IACZe,EAAAC,cAAA,OAAKlB,UAAU,sBAAsBwB,MAAO,CAACC,UAAW,WACrDxB,EACAC,GAAcb,GACb4B,EAAAC,cAAA,KAAGlB,UAAU,kCAAkC2B,KAAK,IAAIC,SAASC,EAAAA,EAAAA,IAAK7E,KAAM,sBAC1EiE,EAAAC,cAAA,KAAGlB,UAAU,oBAGhBE,IAAeb,GACd4B,EAAAC,cAAA,KAAGlB,UAAU,gCAAgC2B,KAAK,IAAIC,SAASC,EAAAA,EAAAA,IAAK7E,KAAM,oBACxEiE,EAAAC,cAAA,KAAGlB,UAAU,yBAOvBX,GAAYc,IACZc,EAAAC,cAAA,OAAKlB,UAAWhD,KAAK8E,kBAClBxB,GACCW,EAAAC,cAAA,SAAOlB,UAAWhD,KAAK+E,mBACpBhC,IAGHO,GAASP,GAGdK,GACCa,EAAAC,cAAA,OAAKlB,UAAU,eACZI,GAKX,GAAC,CAAAZ,IAAA,iBAAAvB,MAED,WACE,IAAA+D,GAAiDpB,EAAAA,EAAAA,IAAK5D,KAAK4C,MAAO,iBAAkB,kBAAmB,SAAhGO,EAAc6B,EAAd7B,eAAgBI,EAAeyB,EAAfzB,gBAAiBD,EAAK0B,EAAL1B,MAElCe,EAAa,CAAC,aAcpB,QAfmBT,EAAAA,EAAAA,IAAK5D,KAAK6D,MAAO,YAA7BxB,UAGUc,GACfkB,EAAWY,KAAK,UAGd3B,IACEC,GACFc,EAAWY,KAAK,oBAGlBZ,EAAWY,KAAK,QAGXZ,EAAWa,KAAK,IACzB,GAAC,CAAA1C,IAAA,kBAAAvB,MAYD,WACE,IAAMoD,EAAa,CAAC,QAAS,cAAe,OAAQ,SAKpD,OAHIrE,KAAK4C,MAAMY,SACba,EAAWY,KAAK,iBAEXZ,EAAWa,KAAK,IACzB,IAAC,CA3I+B,CAAqCC,EAAAA,GAAanD,EAAAX,EAAA,eAC5D,CACpBwB,iBAAiB,EACjBK,YAAY,EACZC,gBAAgB,EAChBI,iBAAiB,EACjBD,OAAO,IACRtB,EAAAX,EAAA,YAEkB,CACjBoB,QAAS2C,IAAAA,OACTpC,UAAWoC,IAAAA,OACXrC,SAAUqC,IAAAA,KACVnC,SAAUmC,IAAAA,KACVvC,gBAAiBuC,IAAAA,KAAeC,WAChCnC,WAAYkC,IAAAA,KAAeC,WAC3BlC,eAAgBiC,IAAAA,KAAeC,WAC/BjC,OAAQgC,IAAAA,KACR/B,OAAQ+B,IAAAA,KACR5B,QAAS4B,IAAAA,KACT7B,gBAAiB6B,IAAAA,KAAeC,WAChC/B,MAAO8B,IAAAA,KAAeC,aACvBhE,kiECrBH,IAAMiE,GAAyBnE,EAAAA,EAAAA,IAAKC,EAAAA,EAAAA,IAAcmE,EAAA,SAAAC,GAAA,SAAAF,IAAA,mGAAA7D,CAAC,KAAD6D,GAAArD,EAAC,KAADqD,EAAA3D,UAAA,6RAAAW,CAAAgD,EAAAE,6GAAAjD,CAAA+C,EAAA,EAAA9C,IAAA,SAAAvB,MAuBhD,WACE,IAAA6B,EAuBI9C,KAAK4C,MAtBP6C,EAAM3C,EAAN2C,OACAC,EAAU5C,EAAV4C,WACAC,EAAS7C,EAAT6C,UAIAC,GAHS9C,EAATE,UACoBF,EAApB+C,qBACY/C,EAAZgD,aACIhD,EAAJ8C,MACAG,EAAUjD,EAAViD,WAGAC,GAFElD,EAAF3C,GACc2C,EAAdmD,eACUnD,EAAVkD,YAIAE,GAHQpD,EAARqD,SACKrD,EAALsD,MACctD,EAAduD,eACKvD,EAALoD,OAEAI,GADIxD,EAAJyD,KACOzD,EAAPwD,SACAE,EAAW1D,EAAX0D,YACAC,EAAI3D,EAAJ2D,KAEAC,GADgB5D,EAAhB6D,iBACW7D,EAAX4D,aACGjD,EAASC,EAAAZ,EAAAa,GAECiD,GAAuBZ,EAA/BzB,IAA2Bb,EAAIsC,EAAUa,IACzCC,GAAUlD,EAAAA,EAAAA,IAAK8C,EAAa,UAA5BI,OAEP,OACE7C,EAAAC,cAAA,OAAKlB,UAAWhD,KAAK2G,mBAAoBpC,IAAKvE,KAAK4C,MAAMmE,YACtDL,EAAYN,OACXnC,EAAAC,cAAA,SAAOlB,UAAWhD,KAAKqG,iBAAkBW,QAAShB,EAAW7F,IAC1DuG,EAAYN,OAGhBR,GACC3B,EAAAC,cAAA,QAAMlB,UAAU,+CACb4C,GAGI,SAARa,GACCxC,EAAAC,cAAC+C,EAAAA,EAAK9C,OAAAC,OAAA,CACJmC,KAAMP,EAAWO,KACjBvD,UAAWhD,KAAKiG,iBAChB1B,IAAKvE,KAAK4C,MAAMsE,UACZlH,KAAKmH,eAGJ,SAARV,GACCxC,EAAAC,cAAA,OAAKlB,UAAU,gBACXsD,GAAWE,IACXvC,EAAAC,cAAA,OAAKlB,UAAU,uBACZwD,GACCvC,EAAAC,cAAA,QAAMlB,UAAU,oBACbwD,GAGJF,GAGLrC,EAAAC,cAACkD,EAAAA,EAAKjD,OAAAC,OAAA,CACJuB,UAAWA,EACX3C,UAAWhD,KAAKiG,iBAChBD,WAAYA,EACZE,MAAOA,EACPQ,YAAaA,GACTE,EACAnD,KAEJgC,GAAUC,IACVzB,EAAAC,cAAA,OAAKlB,UAAU,sBACZ0C,GACCzB,EAAAC,cAAA,QAAMlB,UAAU,oBACb0C,GAGJD,GAGJqB,EAAOlF,OAAS,GAAKqC,EAAAC,cAACmD,EAAAA,EAAe,CAACP,OAAQA,KAGlDf,GACC9B,EAAAC,cAAA,QAAMlB,UAAU,+CACb+C,GAKX,GAAC,CAAAvD,IAAA,iBAAAvB,MAED,WACE,IAAMoD,EAAa,CAAC,gBAQpB,OANIrE,KAAK4C,MAAMI,WACbqB,EAAWY,KAAKjF,KAAK4C,MAAMI,WAEzBhD,KAAK4C,MAAM8D,YAAYI,OAAOlF,OAAS,GACzCyC,EAAWY,KAAK,cAEXZ,EAAWa,KAAK,IACzB,GAAC,CAAA1C,IAAA,iBAAAvB,MAED,WACE,IAAMoD,EAAa,GAKnB,OAHIrE,KAAK4C,MAAMyD,gBACbhC,EAAWY,KAAKjF,KAAK4C,MAAMyD,gBAEtBhC,EAAWa,KAAK,IACzB,GAAC,CAAA1C,IAAA,aAAAvB,MAED,WAIE,IAHA,IAAMkG,EAAa,CAAC,EAGpBG,EAAA,EAAAC,EAFuB,CAAC,YAAa,uBAAwB,eAAgB,QAAS,WAAY,cAAe,SAEvED,EAAAC,EAAA3F,OAAA0F,IAAE,CAAvC,IAAME,EAAaD,EAAAD,GAClBE,KAAiBxH,KAAK4C,QAAOuE,EAAWK,GAAiBxH,KAAK4C,MAAM4E,GAC1E,CAIA,IAFA,IAEAC,EAAA,EAAAC,EAF4B,CAAC,gBAEuBD,EAAAC,EAAA9F,OAAA6F,IAAE,CAAjD,IAAME,EAAkBD,EAAAD,GACvBE,KAAsB3H,KAAK4C,MAAMoD,aAAYmB,EAAWQ,GAAsB3H,KAAK4C,MAAMoD,WAAW2B,GAC1G,CAEA,OAAOR,CACT,GAAC,CAAA3E,IAAA,mBAAAvB,MAED,WACE,IAAMoD,EAAa,CAAC,aAAc,oCAKlC,OAHIrE,KAAK4C,MAAM+D,kBACbtC,EAAWY,KAAKjF,KAAK4C,MAAM+D,kBAEtBtC,EAAWa,KAAK,IACzB,IAAC,CA/J+C,CAAsC0C,EAAAA,sHAAc5F,CAAAuD,EAAA,YACjF,CACjBE,OAAQL,IAAAA,KACRM,WAAYN,IAAAA,KACZO,UAAWP,IAAAA,OACXpC,UAAWoC,IAAAA,OACXS,qBAAsBT,IAAAA,MACtBU,aAAcV,IAAAA,OACdQ,KAAMR,IAAAA,KACNW,WAAYX,IAAAA,KACZjF,GAAIiF,IAAAA,OACJgB,MAAOhB,IAAAA,KACPiB,eAAgBjB,IAAAA,OAChBc,MAAOd,IAAAA,OACPmB,KAAMnB,IAAAA,OACNyC,YAAazC,IAAAA,KACbkB,QAASlB,IAAAA,KACToB,YAAapB,IAAAA,KACb0C,MAAO1C,IAAAA,KACPqB,KAAMrB,IAAAA,OACNuB,iBAAkBvB,IAAAA,SACnBG,KA6IH,SAAewC,EAAAA,EAAAA,GAAazC,20ECxKH,IAEJ0C,EAAgC,SAAAC,GAAA,SAAAD,IAAA,mGAAAvG,CAAA,KAAAuG,GAAA/F,EAAA,KAAA+F,EAAArG,UAAA,6RAAAW,CAAA0F,EAAAC,6GAAA1F,CAAAyF,EAAA,EAAAxF,IAAA,SAAAvB,MAKnD,WACE,OACEgD,EAAAA,cAAA,OAAKjB,UAAU,oBACZhD,KAAKkI,gBAAgBhD,KAAK,MAGjC,GAAC,CAAA1C,IAAA,gBAAAvB,MAED,WACE,IAG0BkH,EAFpBD,EAAgB,GAAEE,EAAAC,GADPzE,EAAAA,EAAAA,IAAK5D,KAAK4C,MAAO,UAA3BkE,QAGmB,IAA1B,IAAAsB,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAA4B,KACyBC,EADrCC,EAAAL,EAAAF,EAAAlH,MACmB0H,oBAAkB,IAAnD,IAAAD,EAAAJ,MAAAG,EAAAC,EAAAH,KAAAC,MAAqD,KAA1CI,EAAYH,EAAAxH,MACrBiH,EAAcjD,KAAK2D,EACrB,CAAC,OAAAC,GAAAH,EAAA1H,EAAA6H,EAAA,SAAAH,EAAAI,GAAA,CACH,CAAC,OAAAD,GAAAT,EAAApH,EAAA6H,EAAA,SAAAT,EAAAU,GAAA,CAED,OAAOZ,CACT,IAAC,CAxBkD,CAASjE,EAAAA,mLCA9D,MAsDA,EAtDgC,CAACiC,EAAO6C,EAAWnG,EAAQ,CAAC,KAC1D,MAAM,OAACoG,GAAS,EAAI,SAAEC,EAAQ,YAAEC,KAAgBzF,GAAab,EAE7D,GAAIuB,OAAOgF,KAAK1F,GAAW7B,OAAS,EAClC,MAAM,IAAIV,MAAM,2CAA2CiD,OAAOgF,KAAK1F,GAAWyB,KAAK,SAGzF,MAAMoD,GAAI,QAAS,CAACU,SAAQC,WAAU/C,QAAO6C,cAEvCK,GAAmB,IAAAC,UAAQ,IACR,iBAAZJ,EACF,EAAiBX,EAAEgB,EAAEP,UAAWE,GAEhC,EAAiBX,EAAEgB,EAAEP,YAE7B,CAACE,IAEJX,EAAEiB,WAAW,CAACH,qBAEd,MAAMI,GAAoB,IAAAC,cAAY,IAAI5H,KACnCyG,EAAEgB,EAAEN,SAILV,EAAEgB,EAAEL,SACNX,EAAEoB,EAAEN,oBAAoBvH,GAExByG,EAAEgB,EAAEP,aAAalH,GACnB,GACC,KAEH,IAAA8H,kBAAgB,KACd,IAAIC,EAAgBC,EAUpB,OARI3D,IACF0D,EAAiB,IAAYA,eAAe1D,EAAOsD,GAE/CN,IACFW,EAAsBD,EAAeE,OAAOC,YAAY,YAAab,KAIlE,KACDW,GACFD,EAAeE,OAAOE,eAAe,YAAad,GAGhDU,GACFA,EAAeK,aACjB,CACF,GACC,CAAC/D,GAAO/F,MAAK,0yCCjDlB,SAAegB,EAAAA,EAAAA,IAAKC,EAAAA,EAAAA,uHAA+DY,CAAjDkI,EAAA,SAAA5I,GAAA,SAAA6I,IAAA,mGAAA1I,CAAC,KAAD0I,GAAAlI,EAAC,KAADkI,EAAAxI,UAAA,6RAAAW,CAAA6H,EAAA7I,6GAAAiB,CAAA4H,EAAA,EAAA3H,IAAA,SAAAvB,MAYhC,WACE,IAAA6B,EAAyC9C,KAAK4C,MAAvCsD,EAAKpD,EAALoD,MAAO6C,EAASjG,EAATiG,UAActF,uWAASC,CAAAZ,EAAAa,GAIrC,OAFAyG,EAAgBlE,EAAO6C,EAAWtF,GAE3B,IACT,IAAC,CAlB+B,CAAoC0B,EAAAA,GAAa,YAC9DkF,IAAe,CAChCrB,OAAQ5D,IAAAA,KACR6D,SAAU7D,IAAAA,UAAoB,CAC5BA,IAAAA,KACAA,IAAAA,SAEFc,MAAOd,IAAAA,OAAiBC,WACxB6D,YAAa9D,IAAAA,KACb2D,UAAW3D,IAAAA,KAAeC,cAC1B6E,qzDCTJ,IAAMI,GAAcC,EAAAA,EAAAA,eAAc,MAE5BC,EAAU,WAIb,OAAAjI,GAHD,SAAAiI,EAAY5H,GAAOnB,EAAA,KAAA+I,GACjBxK,KAAKyK,OAAS,CAAC,EACfzK,KAAK0K,SAAgB,OAAL9H,QAAK,IAALA,OAAK,EAALA,EAAO8H,QACzB,GAAC,EAAAlI,IAAA,WAAAvB,MAED,WACE,IAAMF,EAAS,CAAC,EACV4J,EAAqB,IAAIC,KAE/B,IAAI,IAAMpI,KAAOxC,KAAKyK,OAAQ,CAC5B,IAAMxJ,EAAQjB,KAAKyK,OAAOjI,GAE1BmI,EAAmBE,aAAarI,EAAKvB,EAAOF,EAC9C,CAEA,OAAOA,CACT,GAAC,CAAAyB,IAAA,WAAAvB,MAED,SAASsF,EAAMtF,GACb,IAAKsF,EAAM,MAAM,IAAIrF,MAAM,sBAE3BlB,KAAKyK,OAAOlE,GAAQtF,CACtB,GAAC,CAAAuB,IAAA,qBAAAvB,MAED,SAAmBsF,EAAMtF,GAGvB,GAFAjB,KAAK8K,SAASvE,EAAMtF,GAED,OAAf8J,IAAAA,GACF,OAAO9G,EAAAC,cAAA,SAAOqC,KAAMA,EAAME,KAAK,SAASxF,MAAiB,OAAVA,QAA4B+J,IAAV/J,EAAsBA,EAAQ,IAEnG,GAAC,CAAAuB,IAAA,SAAAvB,MAED,WACMjB,KAAK0K,UACP1K,KAAK0K,UAET,IAAC,CArCa,GAwCVO,GAAO9J,EAAAA,EAAAA,IAAKC,EAAAA,EAAAA,IAAc8J,EAAA,SAAA5J,GAAA,SAAA2J,IAAA,IAAAzJ,EAAAC,EAAC,KAADwJ,GAAA,QAAAvJ,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAoC7B,OApC6BC,EAAAR,EAAAS,EAAC,KAADgJ,EAAA,GAAA/I,OAAAL,IAAA,gBA8Bf,SAACb,GACdA,EAAEmB,iBAEEX,EAAKoB,MAAM8H,UACblJ,EAAKoB,MAAM8H,UAEf,IAAClJ,CAAA,6RAAAc,CAAA2I,EAAA3J,GAAAiB,EAAA0I,EAAA,EAAAzI,IAAA,SAAAvB,MA5BD,WACE,IAAA6B,EAA6D9C,KAAK4C,MAA3DG,EAAQD,EAARC,SAAUoI,EAAOrI,EAAPqI,QAAST,EAAQ5H,EAAR4H,SAAUU,EAAOtI,EAAPsI,QAAY3H,uWAASC,CAAAZ,EAAAa,GACnD0H,GAAOhC,EAAAA,EAAAA,UAAQ,kBAAM,IAAImB,EAAW,CAACE,SAAAA,GAAU,GAAE,IAQvD,OANArB,EAAAA,EAAAA,UAAQ,WACF+B,GACFA,EAAQC,EAEZ,GAAG,CAACD,IAGFnH,EAAAC,cAACoG,EAAYgB,SAAQ,CAACrK,MAAOoK,GACX,OAAfN,IAAAA,IACC9G,EAAAC,cAAA,OAAAC,OAAAC,OAAA,CAAMG,IAAK4G,EAAST,SAAU1K,KAAKuL,GAAGC,cAAkB/H,GACrDV,GAGW,OAAfgI,IAAAA,IAAwB/K,KAAK4C,MAAMG,SAG1C,IAAC,CA5B6B,CAAoBoC,EAAAA,GAAanD,EAAAkJ,EAAA,YAC5C,CACjBnI,SAAUqC,IAAAA,KACV+F,QAAS/F,IAAAA,OACTsF,SAAUtF,IAAAA,KACVgG,QAAShG,IAAAA,OACV8F,KAiCGO,EAAU,WAAH,OAASC,EAAAA,EAAAA,YAAWpB,EAAY,2EC3E7C,QAZqB,SAACqB,GAAqB,IAAEC,EAAcjK,UAAAC,OAAA,QAAAoJ,IAAArJ,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK,SAACiB,GACpE,IAAAiJ,GAA6CC,EAAAA,EAAAA,GAAS,CAAClJ,MAAAA,EAAOgJ,eAAAA,IAAvD5F,EAAU6F,EAAV7F,WAAYvC,EAASoI,EAATpI,UAAWiD,EAAWmF,EAAXnF,YAE9B,OACEzC,EAAAC,cAACyH,EAAqBxH,OAAAC,OAAA,CACpB4B,WAAYA,EACZU,YAAaA,GACTjD,GAGV,CAAC,isECED,IAAMsI,GAAsB5K,EAAAA,EAAAA,IAAKC,EAAAA,EAAAA,IAAc4K,EAAA,SAAA1K,GAAA,SAAAyK,IAAA,IAAAvK,+FAAAC,CAAC,KAADsK,GAAA,QAAArK,EAAAC,UAAAC,OAAAqK,EAAA,IAAAnK,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAkK,EAAAlK,GAAAJ,UAAAI,GA2N5C,OA3N4CC,EAAAR,EAAAS,EAAC,KAAD8J,EAAA,GAAA7J,OAAA+J,IAAA,cAwIhC,kBAAM,IAAIC,EAAAA,EAAW,CAACC,UAAS3K,IAAS4K,YAAY,IAAApK,EAAAR,EAAA,kBA8ChD,kBAAMqD,EAAAA,EAAAA,IAAIrD,EAAO,QAAS,aAAc,MAAM,IAAAQ,EAAAR,EAAA,kBAE9C,SAACK,GAChB,IAAMsE,EAAW3E,EAAK6K,iBAEtB,GAAKlG,EAASmG,QAAd,CAKA,IAAO3G,GAAa/B,EAAAA,EAAAA,IAAKpC,EAAKoB,MAAO,aAA9B+C,UACD4G,GAAW1H,EAAAA,EAAAA,IAAKhD,EAAM,SACtB2K,GAAe3H,EAAAA,EAAAA,IAAKsB,EAAU,UAAW,SACzCsG,EAAWF,EAASG,cAAc/G,GAClCgH,EAAoBnL,EAAKoL,YAAYH,GAEvCD,GAAgBG,IAClBxG,EAASmG,QAAQrL,MAAQ0L,EAT3B,CAWF,IAAC3K,EAAAR,EAAA,kBAEgB,SAACR,GAChB,IAAOqK,EAAQ7J,EAAK+J,GAAbF,KACPvI,EAA6DtB,EAAKoB,MAA3D+C,EAAS7C,EAAT6C,UAAWyG,EAAUtJ,EAAVsJ,WAAYpG,EAAUlD,EAAVkD,WAAYE,EAAKpD,EAALoD,MAAO2G,EAAQ/J,EAAR+J,SAC1CC,GAAmBlJ,EAAAA,EAAAA,IAAKpC,EAAKoB,MAAO,mBAApCkK,gBACAvG,EAAQP,EAARO,KAEHuG,IAAiBtL,EAAK6K,iBAAiBC,QAAQrL,MAAQO,EAAKuL,aAAYlI,EAAAA,EAAAA,IAAK7D,EAAG,YAEhF2E,GAAayG,GAAclG,GAAO1E,EAAKwL,kBACX,SAA5BnI,EAAAA,EAAAA,IAAKmB,EAAY,SAAmBxE,EAAKY,SAAS,CAAC6K,eAAgBzL,EAAK0L,sBAExE7B,GAAQ9E,GACV8E,EAAKP,SAASvE,EAAMvF,EAAEmM,OAAOlM,OAG3B4L,GAAUA,EAAS7L,EACzB,IAACQ,CAAA,6RAAAc,CAAAyJ,EAAAzK,6GAAAiB,CAAAwJ,EAAA,EAAAvJ,IAAA,QAAAvB,MArMD,WAAQ,IAAAmM,EAAA,KACCpH,EAAchG,KAAKsJ,EAAnBtD,WACAqH,EAAsBrH,EAAtBqH,aAAc9G,EAAQP,EAARO,KAErBvG,KAAKqL,MAAOI,EAAAA,EAAAA,MACZzL,KAAKsN,iBAAkB5K,EAAAA,EAAAA,UAEvB1C,KAAK2C,UAAU,CACbsK,eAA4C,SAA5BpI,EAAAA,EAAAA,IAAKmB,EAAY,WAEnCqD,EAAAA,EAAAA,UAAQ,WACI,IAAAkE,EAANhH,IACU,QAAZgH,EAAAH,EAAK7B,GAAGF,YAAI,IAAAkC,GAAZA,EAAczC,SAASvE,EAAM8G,GAEjC,GAAG,GACL,GAAC,CAAA7K,IAAA,SAAAvB,MAED,WACE,IAAAuM,EAkBIxN,KAAK4C,MAjBP+C,EAAS6H,EAAT7H,UACA8H,EAAWD,EAAXC,YAEAJ,GADUG,EAAVpB,WACYoB,EAAZH,cAGArH,GAFWwH,EAAXZ,YACEY,EAAFrN,GACUqN,EAAVxH,YAEA8G,GADQU,EAARrH,SACeqH,EAAfV,iBACA5G,EAAKsH,EAALtH,MAKAO,GAJI+G,EAAJjH,KACQiH,EAARX,SACQW,EAARE,SACsBF,EAAtBG,uBACIH,EAAJ/G,MAEGhD,GADQ+J,EAAX9G,YACYhD,EAAA8J,EAAA7J,IAGRiK,EAAc,CAClBzN,GAAI2M,EAAkB,KAAO9G,EAAW7F,GACxCoG,KAAMuG,EAAkB,KAAO9G,EAAWO,MAEtChC,EAAMuI,EAAkB9M,KAAKsN,gBAAkBtN,KAAKqM,iBAC5BwB,GAAwB7H,EAA/CzB,IAA2Cb,EAAIsC,EAAUa,IAEhE,OACE5C,EAAAC,cAAAD,EAAA6J,SAAA,KACGL,GAAevH,GACdjC,EAAAC,cAAC6J,EAAAA,EAAY,CAAC7H,MAAOA,EAAO6C,UAAW/I,KAAKgO,iBAE7ClB,GACC7I,EAAAC,cAAA,SACEmJ,aAAcA,EACdlN,GAAI6F,EAAW7F,GACfoG,KAAMvG,KAAKiO,YACX1J,IAAKvE,KAAKqM,iBACV5F,KAAK,WAGA,SAARA,GACCxC,EAAAC,cAAC+C,EAAAA,EAAK9C,OAAAC,OAAA,CACJuB,UAAWA,EACX0H,aAAcrN,KAAKkO,6BACnB/H,SAAUnG,KAAKqM,iBACfnG,MAAOA,EACP2G,SAAU7M,KAAKmO,gBACXN,EACAD,EACAnK,IAGC,YAARgD,GACCxC,EAAAC,cAAA,WAAAC,OAAAC,OAAA,CACEiJ,aAAcrN,KAAKkO,6BACnBrB,SAAU7M,KAAKmO,eACf5J,IAAKA,GACDsJ,EACAD,EACAnK,IAGC,SAARgD,GAA2B,YAARA,GAClBxC,EAAAC,cAAA,QAAAC,OAAAC,OAAA,CACEiJ,aAAcrN,KAAKkO,6BACnBrB,SAAU7M,KAAKmO,eACf5J,IAAKA,GACDsJ,EACAD,EAAW,CACfrH,KAAMuG,EAAkB,KAAO9M,KAAKiO,aAChCxK,IAKd,GAAC,CAAAjB,IAAA,cAAAvB,MAED,SAAamN,GACX,IAAOtB,GAAmBlJ,EAAAA,EAAAA,IAAK5D,KAAK4C,MAAO,mBAApCkK,gBACD7L,GAAQ4D,EAAAA,EAAAA,IAAKuJ,EAAc,SAEjC,GAAItB,EAAiB,CACnB,IAAMuB,EAAUC,EAAKC,EAAE,oCACjBC,EAAmBF,EAAKC,EAAE,oCAE5BE,EAAcC,IAAWF,EAAkB,GAAIvN,GAInD,OAFAwN,EAAcC,IAAWL,EAAS,IAAKI,EAGzC,CAEA,OAAOxN,CACT,GAAC,CAAAuB,IAAA,cAAAvB,MAID,SAAaA,GACX,IAAA0N,EAA4B3O,KAAK4C,MAA1BgK,EAAW+B,EAAX/B,YAAanG,EAAIkI,EAAJlI,KAEpB,GAAImG,EACF,OAAOA,EAAY3L,GACd,GAAIA,aAAiB2N,OAASC,MAAM5N,EAAM6N,WAAY,CAE3D,GAAY,kBAARrI,EACF,OAAOsI,IAAS,oBAAqB9N,GAChC,GAAY,QAARwF,EACT,OAAOsI,IAAS,WAAY9N,EAEhC,CAEA,OAAOA,CACT,GAAC,CAAAuB,IAAA,6BAAAvB,MAED,WACE,IAAOoM,EAAgBrN,KAAK4C,MAArByK,aAGP,IAF0BzJ,EAAAA,EAAAA,IAAK5D,KAAK4C,MAAO,mBAApCkK,iBAEiC,OAAjBO,QAA0CrC,IAAjBqC,EAA4B,CAC1E,IAAM2B,EAAYV,EAAKC,EAAE,oCACnBU,EAAYX,EAAKC,EAAE,oCAErBW,EAAY,GAAHhN,OAAMmL,GAOnB,OALA6B,EAAYR,IAAW,IAAK,gBAAiBQ,GAC7CA,EAAYR,IAAW,IAAK,gBAAiBQ,GAC7CA,EAAYR,IAAW,gBAAiBM,EAAWE,GACnDA,EAAYR,IAAW,gBAAiBO,EAAWC,EAGrD,CAEA,OAAO7B,CACT,GAAC,CAAA7K,IAAA,YAAAvB,MAED,WACE,OAAIjB,KAAK6D,MAAMoJ,eAAuB,GAE/BjN,KAAK4C,MAAMoD,WAAWO,IAC/B,GAAC,CAAA/D,IAAA,kBAAAvB,MAyCD,WACMjB,KAAKmP,wBACPtO,aAAab,KAAKmP,wBAGpBnP,KAAKmP,uBAAyB1O,WAAWT,KAAKoM,WAAY,IAC5D,GAEA,CAAA5J,IAAA,oBAAAvB,MACA,WACE,IAAMA,GAAQmO,EAAAA,EAAAA,IAAIpP,KAAKqM,iBAAkB,UAAW,SAEpD,GAAkC,QAA9BrM,KAAK4C,MAAMoD,WAAWS,MAA2B,IAATxF,EAC1C,OAAO,CACX,IAAC,CA3O4C,CAAmCkE,EAAAA,GAAanD,EAAAgK,EAAA,eACvE,CACpByB,aAAa,EACbrB,YAAY,EACZU,iBAAiB,IAClB9K,EAAAgK,EAAA,YAEkB,CACjBrG,UAAWP,IAAAA,OACXqI,YAAarI,IAAAA,KAAeC,WAC5B+G,WAAYhH,IAAAA,KAAeC,WAC3BrC,UAAWoC,IAAAA,OACXwH,YAAaxH,IAAAA,KACbjF,GAAIiF,IAAAA,OACJ0H,gBAAiB1H,IAAAA,KAAeC,WAChCa,MAAOd,IAAAA,OACPmB,KAAMnB,IAAAA,OACNyH,SAAUzH,IAAAA,KACVuI,uBAAwBvI,IAAAA,KACxBqB,KAAMrB,IAAAA,SACP4G,KA2NH,SAAejE,EAAAA,EAAAA,GAAagE,4lDCjP5B,SAAe5K,EAAAA,EAAAA,IAAKC,EAAAA,EAAAA,IAAciO,EAAA,SAAA7J,GAAA,SAAA8J,IAAA,IAAA9N,+FAAAC,CAAC,KAAD6N,GAAA,QAAA5N,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GA6K/B,OA7K+BC,EAAAR,EAAAS,EAAC,KAADqN,EAAA,GAAApN,OAAAL,IAAA,qBA4IZ,WACdL,EAAKoB,MAAMiK,UACbrL,EAAKoB,MAAMiK,UACf,IAAC7K,EAAAR,EAAA,aAEW,WACV,IAAM+N,EAAe/N,EAAKgO,cAAclD,QAExC,GAAKiD,EAAatO,OAA+B,IAAtBsO,EAAatO,MAEjC,CACL,IAAMwO,EAAQC,WAAWH,EAAatO,OAChCiO,EAAYS,EAAAA,EAAeC,UAAU,CAACC,OAAQJ,EAAOK,SAAUtO,EAAKuO,sBAAuB,CAACC,SAAU,EAAGC,iBAAiB,IAAOC,WAEvI1O,EAAK2O,SAAS7D,QAAQrL,MAAQiO,CAChC,MANE1N,EAAK2O,SAAS7D,QAAQrL,MAAQ,EAOlC,IAACe,EAAAR,EAAA,YAEU,WACT,IAAM+N,EAAe/N,EAAKgO,cAAclD,QAEpC8D,EAAQT,EAAAA,EAAeU,cAAc7O,EAAK2O,SAAS7D,QAAQrL,OAC3DwO,EAAQa,SAAiB,IAARF,EAAa,IAC9BG,EAAWD,SAASf,EAAatO,MAAO,IAG1CsO,EAAatO,MADK,iBAATwO,EACYA,EAEA,GAGnBjO,EAAKoB,MAAMiK,UAAY0D,GAAYd,GACrCjO,EAAKoB,MAAMiK,UACf,IAACrL,CAAA,6RAAAc,CAAAgN,EAAA9J,6GAAAjD,CAAA+M,EAAA,EAAA9M,IAAA,QAAAvB,MAjJD,WACEjB,KAAKmG,UAAWzD,EAAAA,EAAAA,UAChB1C,KAAKwQ,mBAAoB9N,EAAAA,EAAAA,UACzB1C,KAAKyQ,YAAczQ,KAAK4C,MAAM6N,aAAezQ,KAAKwQ,kBAClDxQ,KAAK0Q,gBAAiBhO,EAAAA,EAAAA,UACtB1C,KAAKmQ,SAAWnQ,KAAK4C,MAAMuN,UAAYnQ,KAAK0Q,cAC9C,GAAC,CAAAlO,IAAA,cAAAvB,MAED,WACE,OAAOjB,KAAK4C,MAAMuD,UAAYnG,KAAKmG,QACrC,GAAC,CAAA3D,IAAA,SAAAvB,MAED,WAAU,IAAAmM,EAAA,KACRtK,EAAqE9C,KAAK4C,MAAnE+C,EAAS7C,EAAT6C,UAAW3C,EAASF,EAATE,UAAW2N,EAAQ7N,EAAR6N,SAAUzK,EAAKpD,EAALoD,MAAO0K,EAAmB9N,EAAnB8N,oBACzC/K,EAAwB7F,KAAK4C,MAA7BiD,qBAIL,OAFKA,IAAsBA,EAAuBgL,EAAAA,EAAOC,2BAGvD7M,EAAAC,cAAA,OAAKlB,UAAU,yBAAyB,iBAAgB2C,EAAW,gBAAoB,OAALO,QAAK,IAALA,OAAK,EAALA,EAAO/F,MACvF8D,EAAAC,cAAA,SAAOmJ,aAAcrN,KAAK+Q,yBAA0B5Q,GAAIH,KAAKgR,eAAgBzK,KAAMvG,KAAKiR,iBAAkB1M,IAAKvE,KAAKwP,cAAe/I,KAAK,WACxIxC,EAAAC,cAAA,SACElB,UAAWqB,IAAW,cAAerB,GACrCqK,aAAcrN,KAAKkR,oBACnBP,SAAUA,EACVxQ,GAAIH,KAAKmR,UACTC,QAAQvM,EAAAA,EAAAA,IAAK7E,KAAM,aACnB6M,UAAUhI,EAAAA,EAAAA,IAAK7E,KAAM,YACrBqR,SAASxM,EAAAA,EAAAA,IAAK7E,KAAM,YACpB6H,YAAa7H,KAAK4C,MAAMiF,YACxBtD,IAAKvE,KAAKmQ,SACV1J,KAAK,SAENmK,GACC3M,EAAAC,cAAA,UACElB,UAAU,iBACVqK,aAAcrN,KAAK+P,qBACnBY,SAAUA,EACVxQ,GAAIH,KAAKsR,kBACT/K,KAAMvG,KAAKuR,oBACX1E,UAAUhI,EAAAA,EAAAA,IAAK7E,KAAM,qBACrBuE,IAAKvE,KAAKyQ,aAEVxM,EAAAC,cAAA,eACC2B,EAAqB2L,KAAI,SAACC,GAAM,OAC/BxN,EAAAC,cAAA,UAAQ1B,IAAG,iBAAAN,OAAmBuP,EAAO,IAAMxQ,MAAOwQ,EAAO,IACtDrE,EAAKxK,MAAMkF,OAAS2J,EAAO,IAC1BrE,EAAKxK,MAAMkF,OAAS2J,EAAO,GACtB,KAMrB,GAAC,CAAAjP,IAAA,kBAAAvB,MAED,WACE,MAAO,GAAPiB,OAAUlC,KAAKmR,UAAS,YAC1B,GAAC,CAAA3O,IAAA,oBAAAvB,MAED,WACE,MAAI,iBAAkBjB,KAAK4C,MAClB5C,KAAK4C,MAAMkD,aAEb,GAAP5D,OAAUlC,KAAK4C,MAAMsD,MAAMwL,iBAAiBC,SAAQ,KAAAzP,OAAI0P,EAAAA,WAAsB5R,KAAK4C,MAAM+C,WAAU,aACrG,GAAC,CAAAnD,IAAA,qBAAAvB,MAED,WACE,IAAOoM,EAAgBrN,KAAK4C,MAArByK,aAEP,OAAIA,EACKsC,EAAAA,EAAekC,kBAAkBxE,GAAcyE,KAE/C,KAEX,GAAC,CAAAtP,IAAA,oBAAAvB,MAED,WACE,IAAOoM,EAAgBrN,KAAK4C,MAArByK,aAEP,OAAIA,EACKsC,EAAAA,EAAeC,UAAU,CAACC,OAAQxC,EAAawC,OAAQC,SAAU9P,KAAK+P,sBAAuB,CAACC,SAAU,EAAGC,iBAAiB,IAAOC,WAEnI,EAEX,GAAC,CAAA1N,IAAA,yBAAAvB,MAED,WACE,IAAOoM,EAAgBrN,KAAK4C,MAArByK,aAEP,OAAIrN,KAAKwP,cAAclD,SACdzH,EAAAA,EAAAA,IAAK7E,KAAKwP,cAAe,UAAW,SAClCnC,EACFsC,EAAAA,EAAeoC,gBAAgB1E,QADjC,CAGT,GAAC,CAAA7K,IAAA,eAAAvB,MAED,WACE,MAAO,GAAPiB,OAAUlC,KAAKmR,UAAS,SAC1B,GAAC,CAAA3O,IAAA,iBAAAvB,MAED,WACE,MAAI,SAAUjB,KAAK4C,MACV5C,KAAK4C,MAAM2D,KAEb,GAAPrE,OAAUlC,KAAK4C,MAAMsD,MAAMwL,iBAAiBC,SAAQ,KAAAzP,OAAI0P,EAAAA,WAAsB5R,KAAK4C,MAAM+C,WAAU,UACrG,GAAC,CAAAnD,IAAA,UAAAvB,MAED,WACE,OAAO+Q,EAAAA,EAAAA,GAAehS,KACxB,IAAC,CA1I+B,CAAmC4H,EAAAA,GAAc5F,EAAAqN,EAAA,eAC3D,CACpBsB,UAAU,EACVC,qBAAqB,IACtB5O,EAAAqN,EAAA,YAEkB4C,IAAe,CAChCtM,UAAWP,IAAAA,OACX8M,eAAgB9M,IAAAA,OAChBpC,UAAWoC,IAAAA,OACXS,qBAAsBT,IAAAA,MACtBU,aAAcV,IAAAA,OACdqL,YAAarL,IAAAA,OACbiI,aAAcjI,IAAAA,OACduL,SAAUvL,IAAAA,KAAeC,WACzBlF,GAAIiF,IAAAA,OACJe,SAAUf,IAAAA,OACVgB,MAAOhB,IAAAA,KACPc,MAAOd,IAAAA,OACPmB,KAAMnB,IAAAA,OACNyH,SAAUzH,IAAAA,KACVyC,YAAazC,IAAAA,KACbwL,oBAAqBxL,IAAAA,KACrB0C,MAAO1C,IAAAA,KACPqB,KAAMrB,IAAAA,OACN+K,SAAU/K,IAAAA,UACViK,20EC/BJ,SAAelO,EAAAA,EAAAA,IAAKC,EAAAA,EAAAA,IAAc+Q,EAAA,SAAA7Q,GAAA,SAAA8Q,IAAA,IAAA5Q,+FAAAC,CAAC,KAAD2Q,GAAA,QAAA1Q,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAyD/B,OAzD+BC,EAAAR,EAAAS,EAAC,KAADmQ,EAAA,GAAAlQ,OAAAL,IAAA,iBAmBhB,SAACb,GACsB,IAArC,IAAA8B,EAA2BtB,EAAKoB,MAAzBgC,EAAO9B,EAAP8B,QAASyN,EAAOvP,EAAPuP,QAAqBC,EAAA3Q,UAAAC,OADhB2Q,EAAQ,IAAAzQ,MAAAwQ,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAARD,EAAQC,EAAA,GAAA7Q,UAAA6Q,GAGzB5N,GACFA,EAAO6N,WAAC,EAAD,CAACzR,GAACkB,OAAKqQ,IAGZF,GACFA,EAAOI,WAAC,EAAD,CAACzR,GAACkB,OAAKqQ,IAGXvR,EAAE0R,kBAAqB1R,EAAE2R,SAAY3R,EAAE4R,UAC1C5R,EAAEmB,iBAEFX,EAAKqR,WAET,IAAC7Q,EAAAR,EAAA,WAES,WACR,IAAAgM,EAA2BhM,EAAKoB,MAAzBgC,EAAO4I,EAAP5I,QAASyN,EAAO7E,EAAP6E,QAEZzN,GACFA,EAAO6N,WAAC,EAAD,CAACzR,GAACkB,OAAA4Q,EAAKP,YAGZF,GACFA,EAAOI,WAAC,EAAD,CAACzR,GAACkB,OAAA4Q,EAAKP,YAGhB/Q,EAAKqR,UACP,IAAC7Q,EAAAR,EAAA,YAEU,WAAM,IAAAuR,EACTC,EAAyC,QAAlCD,EAAGE,WAAWC,4BAAoB,IAAAH,OAAA,EAA/BA,EAAiCC,QAEjD,IAAKA,EAAS,MAAM,IAAI9R,MAAM,0DAE9B8R,EAAQ/N,KAAKzD,EAAKoB,MAAMuQ,GAC1B,IAAC3R,CAAA,6RAAAc,CAAA8P,EAAA9Q,6GAAAiB,CAAA6P,EAAA,EAAA5P,IAAA,SAAAvB,MApDD,WACE,IAAA0N,EAAoE3O,KAAK4C,MAAlEwQ,EAAOzE,EAAPyE,QAASD,EAAExE,EAAFwE,GAAsBE,GAAX1E,EAAP/J,QAAgB+J,EAAP0D,QAAqB1D,EAAZ0E,cAAiB5P,uWAASC,CAAAiL,EAAAhL,GAEhE,MAAmB,OAAfoH,IAAAA,IAAyBsI,EAO3BpP,EAAAC,cAACoP,IAASnP,OAAAC,OAAA,CAACgP,QAASA,EAASf,QAASrS,KAAKuL,GAAG8G,SAAa5O,IALzDQ,EAAAC,cAAA,IAAAC,OAAAC,OAAA,GCfO,SAA6BgP,GAC1C,MAAMrS,EAAS,CAAC,EAEhB,IAAK,MAAMyB,KAAO4Q,EAGhBrS,EAFsB,QAAQ6Q,EAAW2B,UAAU3B,EAAW4B,WAAWhR,OAEjD4Q,EAAQ5Q,GAGlC,OAAOzB,CACT,CDKe0S,CAAoBL,GAAQ,CAAEzO,KAAMwO,GAAQ1P,EAAS,CAAEmB,QAAS5E,KAAKuL,GAAGmI,gBAOrF,IAAC,CAjB+B,CAA4BvO,EAAAA,GAAanD,EAAAmQ,EAAA,YACtD,CACjBkB,aAAcjO,IAAAA,OACf+M,gBEVH,SAASlJ,EAAS0K,EAAWC,EAAO,IAAKC,EAAU,CAAC,GACnD,GAAyB,oBAAdF,EACV,MAAM,IAAIG,UAAU,+DAA+DH,QAGpF,GAAIC,EAAO,EACV,MAAM,IAAIG,WAAW,gCAItB,MAAM,UAACC,GAAgC,mBAAZH,EAAwB,CAACG,UAAWH,GAAWA,EAE1E,IAAII,EACAC,EACAC,EACAC,EACArT,EAEJ,SAASsT,IACR,MAAMC,EAAO1F,KAAK2F,MAAQH,EAE1B,GAAIE,EAAOV,GAAQU,GAAQ,EAC1BH,EAAY1T,WAAW4T,EAAOT,EAAOU,QAIrC,GAFAH,OAAYnJ,GAEPgJ,EAAW,CACf,MAAMQ,EAAcP,EACdQ,EAAgBP,EACtBD,OAAgBjJ,EAChBkJ,OAAkBlJ,EAClBjK,EAAS4S,EAAUlB,MAAM+B,EAAaC,EACvC,CAEF,CAEA,MAAMC,EAAY,YAAaC,GAC9B,GAAIV,GAAiBjU,OAASiU,EAC7B,MAAM,IAAI/S,MAAM,oDAGjB+S,EAAgBjU,KAChBkU,EAAkBS,EAClBP,EAAYxF,KAAK2F,MAEjB,MAAMK,EAAUZ,IAAcG,EAM9B,GAJKA,IACJA,EAAY1T,WAAW4T,EAAOT,IAG3BgB,EAAS,CACZ,MAAMJ,EAAcP,EACdQ,EAAgBP,EACtBD,OAAgBjJ,EAChBkJ,OAAkBlJ,EAClBjK,EAAS4S,EAAUlB,MAAM+B,EAAaC,EACvC,CAEA,OAAO1T,CACR,EA0BA,OAxBA2T,EAAUnU,MAAQ,KACZ4T,IAILtT,aAAasT,GACbA,OAAYnJ,EAAS,EAGtB0J,EAAUG,MAAQ,KACjB,IAAKV,EACJ,OAGD,MAAMK,EAAcP,EACdQ,EAAgBP,EACtBD,OAAgBjJ,EAChBkJ,OAAkBlJ,EAClBjK,EAAS4S,EAAUlB,MAAM+B,EAAaC,GAEtC5T,aAAasT,GACbA,OAAYnJ,CAAS,EAGf0J,CACR,CAGAnV,EAAOC,QAAQyJ,SAAWA,EAE1B1J,EAAOC,QAAUyJ,aCxFjB,SAAS6L,EAAUjB,GAajB,IAZAA,EAAUA,GAAW,CAAC,GASdkB,aAAelB,EAAQkB,eAAsC,MAArBlB,EAAQmB,SAAmB,QAAU,QAG3C,kBAA/BnB,EAAQoB,mBACjB,OAAQpB,EAAQkB,cACd,IAAK,OACHlB,EAAQoB,mBAAqB,IAC7B,MACF,IAAK,WACHpB,EAAQoB,mBAAqB,IAC7B,MACF,QACEpB,EAAQoB,mBAAqB,GAGnC,GAA2C,kBAAhCpB,EAAQqB,oBACjB,OAAQrB,EAAQkB,cACd,IAAK,QACHlB,EAAQqB,oBAAsB,IAC9B,MACF,IAAK,WACHrB,EAAQqB,oBAAsB,IAC9B,MACF,QACErB,EAAQqB,oBAAsB,GA4BpC,SAASC,EAAOC,EAAQC,GAGtB,GAFAA,EAAkBA,GAAmB,CAAC,GAElCD,GAAqB,IAAXA,EAGZ,MAAO,GAIT,IAAIE,EAAS,GACTN,EAAgC,OAPlCI,EAAS,GAAKA,GAOMG,OAAO,GAwC7B,OAvCAH,EAASA,EAAOI,QAAQ,OAAQ,IAG3B3B,EAAQ4B,iBAAoBJ,EAAgBK,SAC/CJ,EAAOrQ,KAAK4O,EAAQ8B,QAElBX,GACFM,EAAOrQ,KAAK4O,EAAQoB,oBAElBpB,EAAQ4B,kBAAoBJ,EAAgBK,SAC9CJ,EAAOrQ,KAAK4O,EAAQ8B,QAItBP,EAASA,EAAOQ,MAAM,KACD,MAAjB/B,EAAQgC,OA0IhB,SAAeT,EAAQU,GACrB,GAAIV,EAAO,IAAMU,GAAU,GAAKV,EAAO,GAAGxT,OAASkU,EAAQ,CAEzD,IAAIC,EAAQX,EAAO,GAAGY,MAAM,EAAGF,GAE/B,IAAMV,EAAO,GAAGa,OAAOH,EAAQ,IAAO,EAAG,CAGvC,IADA,IAAII,EAAe,GACM,MAAlBH,EAAMR,OAAO,IAClBW,GAA8B,IAC9BH,EAAQA,EAAME,OAAO,IAIvBF,EAAQG,GADRH,GAAUA,EAAQ,EAAK,KAEbnU,OAASkU,IAEjBV,EAAO,IAAOA,EAAO,KAAKW,EAAMR,OAAO,GAAM,GAC7CQ,EAAQA,EAAMI,UAAU,GAE5B,CACAf,EAAO,GAAKW,CACd,CAEF,CAlK+BF,CAAMT,EAAQvB,EAAQgC,OACzB,MAApBhC,EAAQuC,WAAkBhB,EAAO,GA6HzC,SAAkBiB,EAAGzU,GACfyU,IACFA,GAAK,IAEP,OAAIA,GAAKA,EAAEzU,OAASA,EACXyU,EAAEJ,OAAO,EAAGrU,GAEZyU,CAEX,CAtI8CD,CAAShB,EAAO,GAAIvB,EAAQuC,WAClEvC,EAAQyC,QAAU,IAAGlB,EAAO,GAsGpC,SAAiBiB,EAAGE,GAClBF,GAAQ,GACR,IAAIG,EAAM,GACV,KAAOA,EAAI5U,OAASyU,EAAEzU,OAAS2U,GAC7BC,EAAIvR,KAAK,KAEX,OAAOuR,EAAItR,KAAK,IAAMmR,CACxB,CA7GyCC,CAAQlB,EAAO,GAAIvB,EAAQyC,UAC5DzC,EAAQ4C,SAAW,IAAGrB,EAAO,GA+GrC,SAAkBiB,EAAGE,GACfF,EACFA,GAAK,GAELA,EAAI,GAEN,IAAIG,EAAM,GACV,KAAOA,EAAI5U,OAASyU,EAAEzU,OAAS2U,GAC7BC,EAAIvR,KAAK,KAEX,OAAOoR,EAAIG,EAAItR,KAAK,GACtB,CA1H0CuR,CAASrB,EAAO,GAAIvB,EAAQ4C,YAC7DpB,EAAgBqB,aAAetB,EAAO,KAAIA,EAAO,GAyF1D,SAA8BiB,EAAGrH,GAE/B,GADAqH,GAAK,IACArH,EAAW,OAAOqH,EACvB,IAAIM,EAAM,eACV,KAAOA,EAAIC,KAAKP,IACdA,EAAIA,EAAEb,QAAQmB,EAAK,KAAO3H,EAAY,MAExC,OAAOqH,CACT,CAjG+DQ,CAAqBzB,EAAO,GAAIvB,EAAQiD,qBAC9FzB,EAAgBqB,aAAetB,EAAO,KAAIA,EAAO,GA6E1D,SAA8BiB,EAAGrH,GAE/B,GADAqH,GAAK,IACArH,EAAW,OAAOqH,EACvB,IAAIM,EAAM,eACV,KAAOA,EAAIC,KAAKP,IACdA,EAAIA,EAAEb,QAAQmB,EAAK,KAAO3H,EAAY,MAExC,OAAOqH,CACT,CArF+DU,CAAqB3B,EAAO,GAAIvB,EAAQrF,mBACnG8G,EAAOrQ,KAAKmQ,EAAO,IACfA,EAAO,KACTE,EAAOrQ,KAAK4O,EAAQxF,SACpBiH,EAAOrQ,KAAKmQ,EAAO,KAIjBvB,EAAQmD,mBAAqB3B,EAAgBK,SAC/CJ,EAAOrQ,KAAK4O,EAAQoD,QAElBjC,GACFM,EAAOrQ,KAAK4O,EAAQqB,qBAEjBrB,EAAQmD,kBAAqB3B,EAAgBK,SAChDJ,EAAOrQ,KAAK4O,EAAQoD,QAIf3B,EAAOpQ,KAAK,GACrB,CAoBA,SAASgS,EAAS9B,EAAQ+B,GACxBA,EAAoBA,GAAqB,GACrCtD,EAAQsD,mBACVtD,EAAQsD,kBAAkBC,SAAQ,SAAU9O,GAAK6O,EAAkBlS,KAAMqD,EAAI,IAE/E6O,EAAkBlS,KAAK4O,EAAQrF,kBAC/B2I,EAAkBlS,KAAK4O,EAAQiD,mBAG/B,IAAIO,EADJjC,GADAA,EAASA,EAAOI,QAAQ3B,EAAQ8B,OAAQ,KACxBH,QAAQ3B,EAAQoD,OAAQ,IAExC,EAAG,CACD7B,EAASiC,EACT,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAAkBvV,OAAQ0V,IAC5CD,EAAYA,EAAU7B,QAAQ2B,EAAkBG,GAAI,GAExD,OAASD,GAAajC,GACtB,OAAOA,CACT,CAgBA,MA/HuC,mBAA5BvB,EAAQ4B,kBACjB5B,EAAQ4B,iBAA2C,IAAxB5B,EAAQ0D,aAEG,mBAA7B1D,EAAQmD,mBACjBnD,EAAQmD,kBAA4C,IAAxBnD,EAAQ0D,aAItC1D,EAAQ8B,OAAS9B,EAAQ8B,QAAU,GACnC9B,EAAQoD,OAASpD,EAAQoD,QAAU,GAGK,kBAA7BpD,EAAQrF,mBACjBqF,EAAQrF,iBAAiD,kBAAtBqF,EAAQ7E,UAAyB6E,EAAQ7E,UAAY,KAE1F6E,EAAQiD,kBAAyD,kBAA9BjD,EAAQiD,kBAAiCjD,EAAQiD,kBAAoB,GACxGjD,EAAQxF,QAAUwF,EAAQxF,SAAW,IAGrCwF,EAAQyC,QAAUzC,EAAQyC,UAAY,EACtCzC,EAAQ4C,SAAW5C,EAAQ4C,WAAa,EAwDxCtB,EAAOH,SAAWnB,EAAQmB,SAC1BG,EAAOoC,YAAc1D,EAAQ0D,YAC7BpC,EAAOJ,aAAelB,EAAQkB,aAC9BI,EAAOM,gBAAkB5B,EAAQ4B,gBACjCN,EAAOF,mBAAqBpB,EAAQoB,mBACpCE,EAAO6B,iBAAmBnD,EAAQmD,iBAClC7B,EAAOD,oBAAsBrB,EAAQqB,oBACrCC,EAAOQ,OAAS9B,EAAQ8B,OACxBR,EAAO8B,OAASpD,EAAQoD,OACxB9B,EAAOqC,SAAW3D,EAAQ2D,SAC1BrC,EAAO3G,iBAAmBqF,EAAQrF,iBAClC2G,EAAO2B,kBAAoBjD,EAAQiD,kBACnC3B,EAAO9G,QAAUwF,EAAQxF,QACzB8G,EAAOmB,QAAUzC,EAAQyC,QACzBnB,EAAOsB,SAAW5C,EAAQ4C,SAC1BtB,EAAOiB,SAAWvC,EAAQuC,SAC1BjB,EAAOU,MAAQhC,EAAQgC,MAoBvBV,EAAO+B,SAAWA,EAeX/B,CACT,CA3KA5V,EAAOC,QAAUsV,EACjBvV,EAAOC,QAAP,QAAyBsV,6BCAzB3Q,OAAOsT,eAAejY,EAAS,aAAc,CACzCyB,OAAO,IA8BXzB,EAAA,QAxBA,SAAoBkY,GAChB,IAL6BC,EAKzBxX,EAAKuX,EAAKvX,GACVyX,EAAqBF,EAAKG,cAC1BA,OAAuC7M,IAAvB4M,EAAmC,YAAcA,EACjEE,EAAwBJ,EAAKK,iBAC7BA,OAA6C/M,IAA1B8M,EAAsC,CAAC,EAAIA,EAC9DE,EAAcN,EAAKO,OACnBA,OAAyBjN,IAAhBgN,EAA4B,GAAKA,EAC1CE,EAAmBR,EAAKQ,iBAE5B,QAAWlN,IAAP7K,EACA,MAAM,IAAIe,MAAM,sBAOpB,MAAO,CACHiX,OALS,0BAA4BF,EAAS,yCAA2C9X,EAAK,uFAM9FiY,OAJS,4HApBgBT,EAoByII,EAnB/JM,KAAKC,UAAUX,GAAK3B,MAAM,GAAI,GAmBqJ,4IAAoJiC,EAAS,6DAAgEC,EAAmB,KAAOA,EAAmB,IAAM,IAAM,wFAA6FL,EAAgB,MAAU1X,EAAK,MAMhlB,gCCzBA,IAEIoY,EAAgBC,EAFD,EAAQ,OAMvBC,EAAUD,EAFD,EAAQ,QAIrB,SAASA,EAAuBb,GAAO,OAAOA,GAAOA,EAAIe,WAAaf,EAAM,CAAEgB,QAAShB,EAAO,CA6B9FnY,EAAQ,EA3BR,SAAkBqC,GACd,IAAI+W,GAAQ,EAAIL,EAAcI,SAAS9W,GAkBvC,MAAO,CACHgX,gBAjBJ,WACI,OAAOJ,EAAQE,QAAQzU,cAAc,WAAY,CAAE4U,wBAAyB,CAAEC,OAAQH,EAAMT,SAChG,EAgBIa,eAdJ,WACI,MAAO,aAAeJ,EAAMT,OAAS,aACzC,EAaIc,cAXJ,WACI,OAAOR,EAAQE,QAAQzU,cAAc,SAAU,CAAE4U,wBAAyB,CAAEC,OAAQH,EAAMR,SAC9F,EAUIc,aARJ,WACI,MAAO,WAAaN,EAAMR,OAAS,YACvC,EAQJ,8BCvCA5Y,EAAQkZ,YAAa,EACrBlZ,EAAA,aAAkB,EAWlB,IAAIuL,EAAW,CACboO,GAAI,MACJC,OAAQzB,GAAO,QAASA,EAAMA,EAAI0B,IAAM1B,EAAIgB,QAC5C,aAAIW,GAIF,OAAO,CACT,GAEa9Z,EAAA,QAAkBuL,EACjCxL,EAAOC,QAAUA,EAAQmZ,uBCrBzB,IAAIjK,EAAW,SAAS6K,EAAEC,EAAEC,GAAG,OAAOD,EAAEA,EAAEhE,QAAQ,MAAM,QAAQiE,EAAEjE,QAAQ,IAAIkE,OAAOH,EAAE/D,QAAQ,gDAAgD,QAAQ,KAAKgE,EAAE,EAA4Dja,EAAOC,UAAUA,EAAQD,EAAOC,QAAQkP,GAAYlP,EAAQkP,WAAWA,2ECDlR,MAAMiL,EACnB,WAAA5Z,EAAa,UAACoM,IACZnM,KAAKmM,UAAYA,CACnB,CAEA,UAAAC,GACE,MAAM,UAACzG,EAAS,MAAEO,GAASlG,KAAKmM,UAAUvJ,MAEpCgX,EAAe,CAAC,EAEtBA,EAH4B,aAAsBjU,IAGd3F,KAAKiB,QAEzCiF,EAAM2T,OAAOD,EACf,CAEA,KAAA3Y,GACE,MAAMkF,EAAWnG,KAAKmM,UAAUvJ,MAAMuD,UAAYnG,KAAKmM,UAAUvJ,MAAMoD,YAAYzB,KAAOvE,KAAKmM,UAAUnG,YAAYzB,KAAOvE,KAAKmM,UAAUhG,SACrI2T,GAAQ,QAAK3T,EAAU,WAE7B,MAAkB,YAAd2T,EAAMrT,KACJqT,EAAMC,aACY/O,IAAhB8O,EAAM7Y,MACD6Y,EAAM7Y,MAEN,EAGF,GAIJ,QAAK6Y,EAAO,QACrB,iECjCa,SAASE,EAAuB7N,GAC7C,GAAI,OAAQA,EAAUvJ,MACpB,OAAOuJ,EAAUvJ,MAAMzC,GAClB,GAAIgM,EAAUvJ,MAAM+C,WAAawG,EAAUvJ,MAAMsD,MACtD,MAAO,GAAGiG,EAAUvJ,MAAMsD,MAAMwL,iBAAiBC,YAAY,aAAsBxF,EAAUvJ,MAAM+C,aAC9F,GAAIwG,EAAU8N,iBACnB,OAAO9N,EAAU8N,iBACZ,CACL,MAAMA,EAAmBC,KAAKC,SAASjK,SAAS,IAAIiG,UAAU,EAAG,IAAM+D,KAAKC,SAASjK,SAAS,IAAIiG,UAAU,EAAG,IAE/G,OADAhK,EAAU8N,iBAAmBA,EACtBA,CACT,CACF,iDCdA,IAAIG,EAAW,CACbC,OAA2B,qBAAZC,QAA0BA,aAAUtP,EACnDuP,UAAgC,qBAAdA,UAA4BA,eAAYvP,GAGxDqP,EAAS,CACX,GAAAG,IAAOC,GACDza,KAAK0a,UACPD,EAASxV,KAAK2J,KAAK2F,OACnB6F,EAASC,OAAOG,IAAI,mBAAoBC,GAE5C,GAGF,MAAMlG,EAAM,KAAM,IAAK3F,MAAME,UAEvB6L,EAAeC,IAASrG,IAAQqG,GAAQ,IAE9C,MAAMC,EACJ,WAAA9a,CAAY+a,GACV9a,KAAK+a,oBAAsB/a,KAAK+a,oBAAoBC,KAAKhb,MACzDA,KAAK8a,WAAaA,EAClB9a,KAAKib,kBAAoB,CAC3B,CACA,KAAAC,GACOlb,KAAKmb,cACRnb,KAAKob,UAAY7G,WACVvU,KAAKqb,UACZrb,KAAKsb,eACLC,iBAAiB,mBAAoBvb,KAAK+a,qBAC1CV,EAAOG,IAAI,gDAAgDxa,KAAKD,YAAYyb,oBAEhF,CACA,IAAAC,GACMzb,KAAKmb,cACPnb,KAAKqb,UAAY9G,IACjBvU,KAAK0b,cACLC,oBAAoB,mBAAoB3b,KAAK+a,qBAC7CV,EAAOG,IAAI,6BAEf,CACA,SAAAW,GACE,OAAOnb,KAAKob,YAAcpb,KAAKqb,SACjC,CACA,aAAAO,GACE5b,KAAK6b,SAAWtH,GAClB,CACA,aAAAuH,GACE9b,KAAKib,kBAAoB,SAClBjb,KAAK+b,eACZ1B,EAAOG,IAAI,qCACb,CACA,gBAAAwB,GACEhc,KAAK+b,eAAiBxH,IACtB8F,EAAOG,IAAI,wCACb,CACA,YAAAc,GACEtb,KAAK0b,cACL1b,KAAKic,MACP,CACA,WAAAP,GACE7a,aAAab,KAAKkc,YACpB,CACA,IAAAD,GACEjc,KAAKkc,YAAczb,YAAW,KAC5BT,KAAKmc,mBACLnc,KAAKic,MACN,GAAGjc,KAAKoc,kBACX,CACA,eAAAA,GACE,MAAOZ,eAAgBA,EAAgBa,wBAAyBA,GAA2Brc,KAAKD,YAIhG,OAAwB,IAAjByb,EAHStB,KAAKoC,IAAI,EAAID,EAAyBnC,KAAKqC,IAAIvc,KAAKib,kBAAmB,MAG9C,GAFI,IAA3Bjb,KAAKib,kBAA0B,EAAIoB,GAC1BnC,KAAKC,SAElC,CACA,gBAAAgC,GACMnc,KAAKwc,sBACPnC,EAAOG,IAAI,oEAAoExa,KAAKib,mCAAmCN,EAAa3a,KAAKyc,qCAAqCzc,KAAKD,YAAYyb,oBAC/Lxb,KAAKib,oBACDjb,KAAK0c,uBACPrC,EAAOG,IAAI,+EAA+EG,EAAa3a,KAAK+b,sBAE5G1B,EAAOG,IAAI,+BACXxa,KAAK8a,WAAW6B,UAGtB,CACA,eAAIF,GACF,OAAOzc,KAAK6b,SAAW7b,KAAK6b,SAAW7b,KAAKob,SAC9C,CACA,iBAAAoB,GACE,OAAO7B,EAAa3a,KAAKyc,aAAezc,KAAKD,YAAYyb,cAC3D,CACA,oBAAAkB,GACE,OAAO1c,KAAK+b,gBAAkBpB,EAAa3a,KAAK+b,gBAAkB/b,KAAKD,YAAYyb,cACrF,CACA,mBAAAT,GACmC,YAA7B6B,SAASC,iBACXpc,YAAW,MACLT,KAAKwc,qBAAwBxc,KAAK8a,WAAWgC,WAC/CzC,EAAOG,IAAI,uFAAuFoC,SAASC,mBAC3G7c,KAAK8a,WAAW6B,SAEnB,GAAG,IAER,EAGF9B,EAAkBW,eAAiB,EAEnCX,EAAkBwB,wBAA0B,IAE5C,IAAIU,EAAW,CACbC,cAAe,CACbC,QAAS,UACTC,WAAY,aACZC,KAAM,OACNC,aAAc,uBACdC,UAAW,uBAEbC,mBAAoB,CAClBC,aAAc,eACdC,gBAAiB,kBACjBC,eAAgB,iBAChBC,OAAQ,UAEVC,mBAAoB,SACpBC,UAAW,CAAE,sBAAuB,4BAGtC,MAAOZ,cAAeA,EAAeY,UAAWA,GAAab,EAEvDc,EAAqBD,EAAU5H,MAAM,EAAG4H,EAAUhc,OAAS,GAE3Dkc,EAAU,GAAGA,QAEnB,MAAMC,EACJ,WAAAhe,CAAYie,GACVhe,KAAKie,KAAOje,KAAKie,KAAKjD,KAAKhb,MAC3BA,KAAKge,SAAWA,EAChBhe,KAAKke,cAAgBle,KAAKge,SAASE,cACnCle,KAAKme,QAAU,IAAItD,EAAkB7a,MACrCA,KAAKoe,cAAe,CACtB,CACA,IAAAC,CAAKC,GACH,QAAIte,KAAK8c,WACP9c,KAAKue,UAAUF,KAAKhG,KAAKC,UAAUgG,KAC5B,EAIX,CACA,IAAAL,GACE,GAAIje,KAAKwe,WAEP,OADAnE,EAAOG,IAAI,uDAAuDxa,KAAKye,eAChE,EACF,CACL,MAAMC,EAAkB,IAAKd,KAAc5d,KAAKge,SAASW,cAAgB,IAQzE,OAPAtE,EAAOG,IAAI,uCAAuCxa,KAAKye,6BAA6BC,KAChF1e,KAAKue,WACPve,KAAK4e,yBAEP5e,KAAKue,UAAY,IAAInE,EAASG,UAAUva,KAAKge,SAASa,IAAKH,GAC3D1e,KAAK8e,uBACL9e,KAAKme,QAAQjD,SACN,CACT,CACF,CACA,KAAA6D,EAAOC,eAAgBA,GAAkB,CACvCA,gBAAgB,IAKhB,GAHKA,GACHhf,KAAKme,QAAQ1C,OAEXzb,KAAK8c,SACP,OAAO9c,KAAKue,UAAUQ,OAE1B,CACA,MAAApC,GAEE,GADAtC,EAAOG,IAAI,yCAAyCxa,KAAKye,eACrDze,KAAKwe,WAUP,OAAOxe,KAAKie,OATZ,IACE,OAAOje,KAAK+e,OACd,CAAE,MAAOE,GACP5E,EAAOG,IAAI,6BAA8ByE,EAC3C,CAAE,QACA5E,EAAOG,IAAI,0BAA0Bxa,KAAKD,YAAYmf,iBACtDze,WAAWT,KAAKie,KAAMje,KAAKD,YAAYmf,YACzC,CAIJ,CACA,WAAAC,GACE,GAAInf,KAAKue,UACP,OAAOve,KAAKue,UAAUa,QAE1B,CACA,MAAAtC,GACE,OAAO9c,KAAKqf,QAAQ,OACtB,CACA,QAAAb,GACE,OAAOxe,KAAKqf,QAAQ,OAAQ,aAC9B,CACA,gBAAAC,GACE,OAAOtf,KAAKme,QAAQlD,kBAAoB,CAC1C,CACA,mBAAAsE,GACE,OAAOzB,EAAQ0B,KAAK3B,EAAoB7d,KAAKmf,gBAAkB,CACjE,CACA,OAAAE,IAAWI,GACT,OAAO3B,EAAQ0B,KAAKC,EAAQzf,KAAKye,aAAe,CAClD,CACA,QAAAA,GACE,GAAIze,KAAKue,UACP,IAAK,IAAI1a,KAASuW,EAASG,UACzB,GAAIH,EAASG,UAAU1W,KAAW7D,KAAKue,UAAUmB,WAC/C,OAAO7b,EAAM8b,cAInB,OAAO,IACT,CACA,oBAAAb,GACE,IAAK,IAAIc,KAAa5f,KAAK8J,OAAQ,CACjC,MAAM+V,EAAU7f,KAAK8J,OAAO8V,GAAW5E,KAAKhb,MAC5CA,KAAKue,UAAU,KAAKqB,KAAeC,CACrC,CACF,CACA,sBAAAjB,GACE,IAAK,IAAIgB,KAAa5f,KAAK8J,OACzB9J,KAAKue,UAAU,KAAKqB,KAAe,WAAY,CAEnD,EAGF7B,EAAWmB,YAAc,IAEzBnB,EAAW+B,UAAUhW,OAAS,CAC5B,OAAAiW,CAAQC,GACN,IAAKhgB,KAAKuf,sBACR,OAEF,MAAOU,WAAYA,EAAYF,QAASA,EAASG,OAAQA,EAAQC,UAAWA,EAAW1Z,KAAMA,GAAQ4R,KAAK+H,MAAMJ,EAAM1B,MAEtH,OADAte,KAAKme,QAAQvC,gBACLnV,GACP,KAAKuW,EAAcC,QAKlB,OAJIjd,KAAKsf,qBACPtf,KAAKqgB,oBAAqB,GAE5BrgB,KAAKme,QAAQrC,gBACN9b,KAAKke,cAAcoC,SAE3B,KAAKtD,EAAcE,WAElB,OADA7C,EAAOG,IAAI,0BAA0B0F,KAC9BlgB,KAAK+e,MAAM,CAChBC,eAAgBmB,IAGnB,KAAKnD,EAAcG,KAClB,OAAO,KAER,KAAKH,EAAcI,aAElB,OADApd,KAAKke,cAAcqC,oBAAoBN,GACnCjgB,KAAKqgB,oBACPrgB,KAAKqgB,oBAAqB,EACnBrgB,KAAKke,cAAcsC,OAAOP,EAAY,YAAa,CACxDQ,aAAa,KAGRzgB,KAAKke,cAAcsC,OAAOP,EAAY,YAAa,CACxDQ,aAAa,IAIlB,KAAKzD,EAAcK,UAClB,OAAOrd,KAAKke,cAAc5d,OAAO2f,GAElC,QACC,OAAOjgB,KAAKke,cAAcsC,OAAOP,EAAY,WAAYF,GAE7D,EACA,IAAA9B,GAGE,GAFA5D,EAAOG,IAAI,kCAAkCxa,KAAKmf,8BAClDnf,KAAKoe,cAAe,GACfpe,KAAKuf,sBAER,OADAlF,EAAOG,IAAI,gEACJxa,KAAK+e,MAAM,CAChBC,gBAAgB,GAGtB,EACA,KAAAD,CAAMiB,GAEJ,GADA3F,EAAOG,IAAI,4BACPxa,KAAKoe,aAKT,OAFApe,KAAKoe,cAAe,EACpBpe,KAAKme,QAAQnC,mBACNhc,KAAKke,cAAcwC,UAAU,eAAgB,CAClDC,qBAAsB3gB,KAAKme,QAAQhD,aAEvC,EACA,KAAA8D,GACE5E,EAAOG,IAAI,0BACb,GAaF,MAAMoG,EACJ,WAAA7gB,CAAYie,EAAU6C,EAAS,CAAC,EAAGC,GACjC9gB,KAAKge,SAAWA,EAChBhe,KAAKigB,WAAa5H,KAAKC,UAAUuI,GAbtB,SAASE,EAAQC,GAC9B,GAAkB,MAAdA,EACF,IAAK,IAAIxe,KAAOwe,EAAY,CAC1B,MAAM/f,EAAQ+f,EAAWxe,GACzBue,EAAOve,GAAOvB,CAChB,CAGJ,CAMIggB,CAAOjhB,KAAM8gB,EACf,CACA,OAAAI,CAAQC,EAAQ7C,EAAO,CAAC,GAEtB,OADAA,EAAK6C,OAASA,EACPnhB,KAAKqe,KAAKC,EACnB,CACA,IAAAD,CAAKC,GACH,OAAOte,KAAKge,SAASK,KAAK,CACxB+C,QAAS,UACTnB,WAAYjgB,KAAKigB,WACjB3B,KAAMjG,KAAKC,UAAUgG,IAEzB,CACA,WAAArU,GACE,OAAOjK,KAAKge,SAASE,cAAcmD,OAAOrhB,KAC5C,EAGF,MAAMshB,EACJ,WAAAvhB,CAAYme,GACVle,KAAKke,cAAgBA,EACrBle,KAAKuhB,qBAAuB,EAC9B,CACA,SAAAC,CAAUC,IACgD,GAApDzhB,KAAKuhB,qBAAqBzD,QAAQ2D,IACpCpH,EAAOG,IAAI,sCAAsCiH,EAAaxB,cAC9DjgB,KAAKuhB,qBAAqBtc,KAAKwc,IAE/BpH,EAAOG,IAAI,8CAA8CiH,EAAaxB,cAExEjgB,KAAK0hB,mBACP,CACA,MAAAC,CAAOF,GACLpH,EAAOG,IAAI,oCAAoCiH,EAAaxB,cAC5DjgB,KAAKuhB,qBAAuBvhB,KAAKuhB,qBAAqBK,QAAQtZ,GAAKA,IAAMmZ,GAC3E,CACA,iBAAAC,GACE1hB,KAAK6hB,mBACL7hB,KAAK8hB,kBACP,CACA,gBAAAD,GACEhhB,aAAab,KAAK+hB,aACpB,CACA,gBAAAD,GACE9hB,KAAK+hB,aAAethB,YAAW,KACzBT,KAAKke,eAAyD,oBAAjCle,KAAKke,cAAc8D,WAClDhiB,KAAKuhB,qBAAqB/P,KAAKiQ,IAC7BpH,EAAOG,IAAI,uCAAuCiH,EAAaxB,cAC/DjgB,KAAKke,cAAc8D,UAAUP,EAC9B,GAEJ,GAAG,IACN,EAGF,MAAMQ,EACJ,WAAAliB,CAAYie,GACVhe,KAAKge,SAAWA,EAChBhe,KAAKkiB,UAAY,IAAIZ,EAAsBthB,MAC3CA,KAAKke,cAAgB,EACvB,CACA,MAAAiE,CAAOC,EAAatB,GAClB,MACMD,EAA4B,kBADlBuB,IACuC,CACrDC,QAFcD,GAIVX,EAAe,IAAIb,EAAa5gB,KAAKge,SAAU6C,EAAQC,GAC7D,OAAO9gB,KAAKsiB,IAAIb,EAClB,CACA,GAAAa,CAAIb,GAKF,OAJAzhB,KAAKke,cAAcjZ,KAAKwc,GACxBzhB,KAAKge,SAASuE,yBACdviB,KAAKwgB,OAAOiB,EAAc,eAC1BzhB,KAAKgiB,UAAUP,GACRA,CACT,CACA,MAAAJ,CAAOI,GAKL,OAJAzhB,KAAK2hB,OAAOF,GACPzhB,KAAKwiB,QAAQf,EAAaxB,YAAYre,QACzC5B,KAAKyiB,YAAYhB,EAAc,eAE1BA,CACT,CACA,MAAAnhB,CAAO2f,GACL,OAAOjgB,KAAKwiB,QAAQvC,GAAYzO,KAAKiQ,IACnCzhB,KAAK2hB,OAAOF,GACZzhB,KAAKwgB,OAAOiB,EAAc,YACnBA,IAEX,CACA,MAAAE,CAAOF,GAGL,OAFAzhB,KAAKkiB,UAAUP,OAAOF,GACtBzhB,KAAKke,cAAgBle,KAAKke,cAAc0D,QAAQtZ,GAAKA,IAAMmZ,IACpDA,CACT,CACA,OAAAe,CAAQvC,GACN,OAAOjgB,KAAKke,cAAc0D,QAAQtZ,GAAKA,EAAE2X,aAAeA,GAC1D,CACA,MAAAK,GACE,OAAOtgB,KAAKke,cAAc1M,KAAKiQ,GAAgBzhB,KAAKgiB,UAAUP,IAChE,CACA,SAAAf,CAAUgC,KAAiB7gB,GACzB,OAAO7B,KAAKke,cAAc1M,KAAKiQ,GAAgBzhB,KAAKwgB,OAAOiB,EAAciB,KAAiB7gB,IAC5F,CACA,MAAA2e,CAAOiB,EAAciB,KAAiB7gB,GACpC,IAAIqc,EAMJ,OAJEA,EAD0B,kBAAjBuD,EACOzhB,KAAKwiB,QAAQf,GAEb,CAAEA,GAEbvD,EAAc1M,KAAKiQ,GAAsD,oBAA/BA,EAAaiB,GAA+BjB,EAAaiB,MAAiB7gB,QAAQmJ,GACrI,CACA,SAAAgX,CAAUP,GACJzhB,KAAKyiB,YAAYhB,EAAc,cACjCzhB,KAAKkiB,UAAUV,UAAUC,EAE7B,CACA,mBAAAlB,CAAoBN,GAClB5F,EAAOG,IAAI,0BAA0ByF,KACrCjgB,KAAKwiB,QAAQvC,GAAYzO,KAAKiQ,GAAgBzhB,KAAKkiB,UAAUP,OAAOF,IACtE,CACA,WAAAgB,CAAYhB,EAAcL,GACxB,MAAOnB,WAAYA,GAAcwB,EACjC,OAAOzhB,KAAKge,SAASK,KAAK,CACxB+C,QAASA,EACTnB,WAAYA,GAEhB,EAGF,MAAM0C,EACJ,WAAA5iB,CAAY8e,GACV7e,KAAK4iB,KAAO/D,EACZ7e,KAAKke,cAAgB,IAAI+D,EAAcjiB,MACvCA,KAAK8a,WAAa,IAAIiD,EAAW/d,MACjCA,KAAK2e,aAAe,EACtB,CACA,OAAIE,GACF,OAuBJ,SAA4BA,GACP,oBAARA,IACTA,EAAMA,KAER,GAAIA,IAAQ,UAAUjI,KAAKiI,GAAM,CAC/B,MAAMtF,EAAIqD,SAAS1Y,cAAc,KAIjC,OAHAqV,EAAE5U,KAAOka,EACTtF,EAAE5U,KAAO4U,EAAE5U,KACX4U,EAAE6F,SAAW7F,EAAE6F,SAAS5J,QAAQ,OAAQ,MACjC+D,EAAE5U,IACX,CACE,OAAOka,CAEX,CApCWgE,CAAmB7iB,KAAK4iB,KACjC,CACA,IAAAvE,CAAKC,GACH,OAAOte,KAAK8a,WAAWuD,KAAKC,EAC9B,CACA,OAAAwE,GACE,OAAO9iB,KAAK8a,WAAWmD,MACzB,CACA,UAAAf,GACE,OAAOld,KAAK8a,WAAWiE,MAAM,CAC3BC,gBAAgB,GAEpB,CACA,sBAAAuD,GACE,IAAKviB,KAAK8a,WAAW0D,WACnB,OAAOxe,KAAK8a,WAAWmD,MAE3B,CACA,cAAA8E,CAAeC,GACbhjB,KAAK2e,aAAe,IAAK3e,KAAK2e,aAAcqE,EAC9C,ECheF,QDkfA,SAAwBnE,EAIxB,SAAmBtY,GACjB,MAAM0c,EAAUrG,SAASsG,KAAKC,cAAc,2BAA2B5c,OACvE,GAAI0c,EACF,OAAOA,EAAQG,aAAa,UAEhC,CAT8BC,CAAU,QAAUtG,EAASY,oBACzD,OAAO,IAAIgF,EAAS9D,EACtB,CCpfA,8DCKA,MAAM,EAAS,IAAI,IAAO,CAACtY,KAAM,qCAElB,MAAM+c,EACnB,WAAAvjB,GACEC,KAAKujB,oBAAsB,EAC3BvjB,KAAKwjB,WAAY,CACnB,CAEA,OAAAV,CAASW,GACP,MAAMC,EAAa,IAAapX,UAAUqX,kBAE1C,EAAOC,OAAM,IAAM,CAAC,wBAAyB,CAACH,uBAE9CzjB,KAAKyhB,aAAe,EAAiBvD,cAAciE,OACjD,CACEE,QAAS,iCACTwB,OAAQH,EACRI,kBAAmBL,GAErB,CACED,UAAWxjB,KAAKkJ,YAChB6a,SAAU/jB,KAAKgkB,WACfC,WAAYjkB,KAAKkkB,eAGrBlkB,KAAKwjB,WAAY,CACnB,CAEA,mBAAAW,CAAqBC,GACnB,MAAMC,EAAe,CAAC,WAAY,WAC5BnG,GAAgB,QAAKle,KAAM,iBAEjC,IAAK,MAAMskB,KAAapG,EAAe,CACrC,IAAK,MAAMqG,KAAeF,EACxB,GAAInG,EAAcoG,GAAWC,GAC3B,IAAK,MAAMC,KAAWtG,EAAcoG,GAAWC,GAC7C,IAAK,MAAM9C,KAAgBvD,EAAcoG,GAAWC,GAAaC,GAC/DJ,EAAS,CAACK,KAAMF,EAAaC,UAASF,YAAW7C,iBAMzD,GAAIvD,EAAcoG,GAAWI,QAC3B,IAAK,MAAMjD,KAAgBvD,EAAcoG,GAAWI,QAClDN,EAAS,CAACK,KAAM,UAAWH,YAAW7C,iBAI1C,GAAIvD,EAAcoG,GAAWK,mBAC3B,IAAK,MAAM/E,KAAa1B,EAAcoG,GAAWK,mBAC/C,IAAK,MAAMlD,KAAgBvD,EAAcoG,GAAWK,mBAAmB/E,GACrEwE,EAAS,CAACxE,YAAW6E,KAAM,qBAAsBH,YAAW7C,iBAKlE,GAAIvD,EAAcoG,GAAWxa,OAC3B,IAAK,MAAM0a,KAAWtG,EAAcoG,GAAWxa,OAC7C,IAAK,MAAM8V,KAAa1B,EAAcoG,GAAWxa,OAAO0a,GACtD,IAAK,MAAM/C,KAAgBvD,EAAcoG,GAAWxa,OAAO0a,GAAS5E,GAClEwE,EAAS,CAACxE,YAAW6E,KAAM,UAAWD,UAASF,YAAW7C,gBAKpE,CACF,CAEAmD,YAAc,KAAM,QAAK5kB,KAAM,aAE/BkJ,YAAc,KACZlJ,KAAKmkB,qBAAoB,EAAE1C,mBACzBA,EAAa3X,OAAO+a,KAAK,YAAW,GACrC,EAGHb,WAAcc,IACZ,MAAMxG,EAAO,IAAa8B,MAAM0E,IACzBvL,EAAG1X,EAAMb,EAAG4e,EAAWlW,EAAGxD,EAAO6e,GAAIP,EAASQ,GAAIC,EAAW1W,EAAG9H,GAAQ6X,EACzEJ,GAAgB,QAAKle,KAAM,iBAEjC,IAAIskB,EASJ,GALEA,EADEpe,GACU,QAAKA,EAAMwL,iBAAkB,QAE7BE,EAAWsT,SAAStT,EAAWuT,YAAYF,IAG7C,KAARxe,EACF,IAAK,MAAMgb,KAAgBvD,EAAcoG,GAAWc,QAAQZ,GAC1D/C,EAAa3X,OAAO+a,KAAK,WAAY,CAAC3e,eAEnC,GAAY,KAARO,EACT,IAAK,MAAMgb,KAAgBvD,EAAcoG,GAAWI,QAClDjD,EAAa3X,OAAO+a,KAAK,WAAY,CAAC3e,eAEnC,GAAY,KAARO,EAAa,CACtB,MAAM4e,GAAuB,QAAKnH,EAAeoG,EAAW,WAAYE,GAExE,IAAK,MAAM/C,KAAgB4D,EACzB5D,EAAa3X,OAAO+a,KAAK,WAAY,CAAC3e,SAE1C,MAAO,GAAY,KAARO,EAAa,CACtB,MAAM6e,GAAqB,QAAKpH,EAAeoG,EAAW,SAAU1E,EAAW4E,GAE/E,IAAK,MAAM/C,KAAgB6D,EACzB7D,EAAa3X,OAAO+a,KAAK,WAAY,CAAChjB,OAAM+d,YAAW1Z,SAE3D,KAAO,IAAY,OAARO,EAOT,MAAM,IAAIvF,MAAM,iBAAiBod,EAAK7X,QAPd,CACxB,MAAM8e,GAA+B,QAAKrH,EAAeoG,EAAW,qBAAsB1E,GAE1F,IAAK,MAAM6B,KAAgB8D,EACzB9D,EAAa3X,OAAO+a,KAAK,WAAY,CAAChjB,OAAM+d,aAEhD,CAEA,GAGFsE,aAAe,KACb,EAAON,MAAM,eAAc,EAG7B,aAAA4B,GACE,EAAO5B,OAAM,IAAM,qCAAqC5jB,KAAKujB,wBAC7DvjB,KAAKujB,qBAAuB,EAC5B,EAAOK,OAAM,IAAM,oCAAoC5jB,KAAKujB,wBAExDvjB,KAAKujB,qBAAuB,IAC9B,EAAOK,MAAM,6CACb5jB,KAAKyhB,aAAaxX,cAClBjK,KAAKwjB,WAAY,EAErB,CAEA,qBAAAiC,CAAuBvH,GACrBle,KAAKke,cAAgBA,EAErB,EAAO0F,OAAM,IAAM,CAAC,wBAAyB,CAAC1F,oBAE9C,IAAK,MAAMoG,KAAapG,EAAe,CACrC,GAAIA,EAAcoG,GAAWI,QAC3B,IAAK,MAAMjD,KAAgBvD,EAAcoG,GAAWI,QAClD1kB,KAAK0lB,qCAAqCjE,GAI9C,GAAIvD,EAAcoG,GAAWxa,OAC3B,IAAK,MAAM8V,KAAa1B,EAAcoG,GAAWxa,OAC/C,IAAK,MAAM0a,KAAWtG,EAAcoG,GAAWxa,OAAO8V,GACpD,IAAK,MAAM6B,KAAgBvD,EAAcoG,GAAWxa,OAAO8V,GAAW4E,GACpExkB,KAAK0lB,qCAAqCjE,GAMlD,GAAIvD,EAAcoG,GAAWc,QAC3B,IAAK,MAAMZ,KAAWtG,EAAcoG,GAAWc,QAC7C,IAAK,MAAM3D,KAAgBvD,EAAcoG,GAAWc,QAAQZ,GAC1DxkB,KAAK0lB,qCAAqCjE,EAIlD,CACF,CAEA,oCAAAiE,CAAsCjE,GACpC,EAAOmC,OAAM,IAAM,CAAC,4CAA6C,CAACnC,mBAElEzhB,KAAKujB,qBAAuB,EAE5B9B,EAAa3X,OAAOC,YAAY,gBAAgB,KAC9C,EAAO6Z,MAAM,8BAEb5jB,KAAKwlB,cAAc/D,EAAY,GAEnC,iBCxLF,MAAM,EAAS,IAAI,IAAO,CAAClb,KAAM,iCAElB,MAAMof,EACnB,WAAA5lB,GACEC,KAAK8J,OAAS,IAAI,EAClB9J,KAAKikB,YAAa,CACpB,CAEA,WAAAha,GACOjK,KAAKikB,YAKV,EAAOL,MAAM,uCAEb5jB,KAAKikB,YAAa,EAClBjkB,KAAK8J,OAAO+a,KAAK,iBAPf,EAAOjB,MAAM,8BAQjB,iBChBF,MAAMgC,EAAS,CAAC,EAED,MAAMC,EACnBC,uBAAyB,GACzBC,YAAc,CAAC,EACfC,yBAA2B,CAAC,EAC5BC,sBAAwB,CAAC,EAEzB,cAAO3Z,GAGL,OAFKsZ,EAAOM,8BAA6BN,EAAOM,4BAA8B,IAAIL,GAE3ED,EAAOM,2BAChB,CAEA,kCAAAC,EAAoC,KAACC,EAAI,aAAE3E,EAAY,MAAExgB,IACvD,IAAK,MAAMolB,KAAyBrmB,KAAK8lB,uBAAwB,CAC/D,IAAKO,EAAsBzB,cACzB,SAGF,IAAI0B,EAQJ,GALEA,GADY,IAAVrlB,GACsB,QAAIolB,EAAsBnI,iBAAkBkI,IAE5C,QAAIC,EAAsBnI,iBAAkBkI,EAAMnlB,QAG9C+J,IAA1Bsb,EAAqC,CACvC,IAAKxkB,MAAMykB,QAAQD,GACjB,MAAM,IAAIplB,MAAM,iDAAiDolB,OAA0B,QAAIA,EAAuB,cAAe,YAMvI,OAHAA,EAAsBrhB,KAAKwc,GAC3B4E,EAAsBX,qCAAqCjE,IAEpD,CACT,CACF,CAEA,OAAO,CACT,CAEA,iBAAA+E,EAAmB,SAACpC,EAAQ,KAAEgC,EAAI,MAAEnlB,IAClC,MAAMwgB,EAAe,IAAI,EAIzB,GAFAA,EAAa3X,OAAOC,YAAY,WAAYqa,GAExCpkB,KAAKmmB,mCAAmC,CAACC,OAAM3E,eAAcxgB,UAE/D,OAAOwgB,EAGT,IAAIgF,EAA0BzmB,KAAKgmB,yBAC/BU,EAAsB1mB,KAAKimB,sBAE/B,IAAK,IAAI3O,EAAI,EAAGA,EAAI8O,EAAKxkB,OAAQ0V,IAAK,CACpC,MAAMqP,EAAWP,EAAK9O,GAEhBqP,KAAYF,IACZnP,GAAK8O,EAAKxkB,OAAS,EACrB6kB,EAAwBE,GAAY,GAEpCF,EAAwBE,GAAY,CAAC,GAIzCF,EAA0BA,EAAwBE,GAE5CA,KAAYD,KACF,IAAVzlB,GAAkBqW,GAAK8O,EAAKxkB,OAAS,EACvC8kB,EAAoBC,GAAY,GAEhCD,EAAoBC,GAAY,CAAC,GAIrCD,EAAsBA,EAAoBC,EAC5C,CAkBA,OAhBKF,EAAwBG,SAAS3lB,IACpCwlB,EAAwBxhB,KAAKhE,IAGjB,IAAVA,EACFylB,EAAoBzhB,KAAKwc,IAEnBxgB,KAASylB,IACbA,EAAoBzlB,GAAS,IAG/BylB,EAAoBzlB,GAAOgE,KAAKwc,IAGlCzhB,KAAK6mB,+BAA+BC,QAE7BrF,CACT,CAEAsF,eAAiB,CAACzC,EAAWF,IAAapkB,KAAKwmB,kBAAkB,CAACpC,WAAUnjB,OAAO,EAAMmlB,KAAM,CAAC9B,EAAW,aAC3G0C,aAAe,CAAC1C,EAAWE,EAAS5E,EAAWwE,IAAapkB,KAAKwmB,kBAAkB,CAACpC,WAAUnjB,MAAOujB,EAAS4B,KAAM,CAAC9B,EAAW,SAAU1E,KAC1IqH,iBAAmB,CAAC3C,EAAWE,EAASJ,IAAapkB,KAAKwmB,kBAAkB,CAACpC,WAAUnjB,MAAOujB,EAAS4B,KAAM,CAAC9B,EAAW,cACzH4C,uBAAyB,CAAC5C,EAAW1E,EAAWwE,IAAapkB,KAAKwmB,kBAAkB,CAACpC,WAAUnjB,MAAO2e,EAAWwG,KAAM,CAAC9B,EAAW,wBACnI6C,cAAgB,CAAC7C,EAAWE,EAASJ,IAAapkB,KAAKwmB,kBAAkB,CAACpC,WAAUnjB,MAAOujB,EAAS4B,KAAM,CAAC9B,EAAW,aAEtH8C,gBAAkB,KAChB,MAAM3D,EAAmBzjB,KAAKgmB,yBACxB9H,EAAgBle,KAAKimB,sBAE3BjmB,KAAKgmB,yBAA2B,CAAC,EACjChmB,KAAKimB,sBAAwB,CAAC,EAE9B,MAAMI,EAAwB,IAAI,EAElCA,EAAsBZ,sBAAsBvH,GAC5CmI,EAAsBvD,QAAQW,GAE9BzjB,KAAK8lB,uBAAuB7gB,KAAKohB,EAAqB,EAGxDQ,+BAAiC,IAAI,IAAQ7mB,KAAKonB,iBC1HrC,MAAMC,EACnB,cAAOvE,CAAS5c,EAAO0Z,EAAWwE,GAChC,MAAMkD,GAAiB,QAAKphB,EAAMwL,iBAAkB,QAGpD,OAF0B,EAAoBpF,UAAU0a,aAAaM,EAAgBphB,EAAMqhB,aAAc3H,EAAWwE,EAGtH,CAEA,wBAAOoD,CAAmBC,EAAY7H,EAAWwE,GAC/C,MAAMkD,GAAiB,QAAKG,EAAW/V,iBAAkB,QAGzD,OAF0B,EAAoBpF,UAAU4a,uBAAuBI,EAAgB1H,EAAWwE,EAG5G,CAEA,qBAAO2C,CAAgBU,EAAYrD,GACjC,MAAMkD,GAAiB,QAAKG,EAAW/V,iBAAkB,QAGzD,OAF0B,EAAoBpF,UAAUya,eAAeO,EAAgBlD,EAGzF,CAEA,uBAAO6C,CAAkB/gB,EAAOke,GAC9B,MAAMkD,GAAiB,QAAKphB,EAAMwL,iBAAkB,QAGpD,OAF0B,EAAoBpF,UAAU2a,iBAAiBK,EAAgBphB,EAAMqhB,aAAcnD,EAG/G,CAEA,qBAAOxa,CAAgB1D,EAAOke,GAC5B,MAAMkD,GAAiB,QAAKphB,EAAMwL,iBAAkB,QAGpD,OAF0B,EAAoBpF,UAAU6a,cAAcG,EAAgBphB,EAAMqhB,aAAcnD,EAG5G,oGCjCa,MAAMzU,EACnB,gBAAOC,CAAW8X,EAAO7lB,EAAO,CAAC,GAC/B,OAAO,IAAI8N,EAAe+X,EAAO7lB,EACnC,CAEA,aAAOsT,CAAQuS,EAAO7lB,EAAO,CAAC,GAC5B,OAAO8N,EAAeC,UAAU8X,EAAO7lB,GAAMqO,UAC/C,CAEA,oBAAOG,CAAesX,GACpB,IAAIlZ,EAAc,EAAWH,EAAKC,EAAE,oCAAqC,GAAIoZ,GAE7ElZ,EAAc,EAAWH,EAAKC,EAAE,oCAAqC,IAAKE,GAG1E,OAFciB,WAAWjB,EAG3B,CAEA,sBAAOsD,CAAiB2V,GACtB,GAAI,WAAYA,EACd,OAAOhY,WAAWgY,EAAM7X,QACnB,GAAI,eAAgB6X,EACzB,OAAOhY,WAAWgY,EAAME,YAG1B,MAAM,IAAI1mB,MAAM,oCAAoCmX,KAAKC,UAAUoP,EAAO,KAAM,KAClF,CAEA,wBAAO7V,CAAmB6V,GACxB,IAAIG,EAEJ,GAA6B,iBAAlBH,EAAM5X,SACf+X,EAAiBH,EAAM5X,cAClB,GAAgC,iBAArB4X,EAAM5X,SAAS3P,GAC/B0nB,EAAiBH,EAAM5X,SAAS3P,QAC3B,GAAsC,iBAA3BunB,EAAM5X,SAASgY,SAC/BD,EAAiBH,EAAM5X,SAASgY,aAC3B,IAAkC,iBAAvBJ,EAAM5X,SAASgC,KAG/B,MAAM,IAAI5Q,MAAM,sCAAsCmX,KAAKC,UAAUoP,EAAO,KAAM,MAFlFG,EAAiBH,EAAM5X,SAASgC,IAGlC,CAEA,MAAMiW,EAAgB,EAAMF,EAAeG,eAE3C,IAAKD,EACH,MAAM,IAAI7mB,MAAM,2BAA2BmX,KAAKC,UAAUoP,EAAO,KAAM,MAGzE,OAAOK,CACT,CAEA,cAAOE,CAAQhnB,GACb,OAAIA,aAAiB,MAED,iBAATA,GAAqBA,GAAsC,GAA7BkD,OAAOgF,KAAKlI,GAAOW,QAAe,WAAYX,GAAS,aAAcA,EAIhH,CAEA,WAAAlB,CAAa2nB,EAAO7lB,EAAO,CAAC,GAC1B7B,KAAK6B,KAAOA,EACZ7B,KAAK0nB,MAAQA,EACb1nB,KAAK6P,OAASF,EAAeoC,gBAAgB2V,GAC7C1nB,KAAK8P,SAAWH,EAAekC,kBAAkB6V,EACnD,CAEA,QAAAxX,GACE,MAAML,GAAU7P,KAAK6P,OAAS,KAAKqY,QAAQloB,KAAKmoB,iBAC1CC,EAAgB,CACpBzS,OAAQ3V,KAAK2V,SACbtH,QAASC,EAAKC,EAAE,oCAChBC,iBAAkBF,EAAKC,EAAE,qCAG3B,OAAO,EAAa6Z,EAAb,CAA4BvY,EACrC,CAEA,aAAAsY,GACE,OAA2B,OAAvBnoB,KAAK6B,KAAKmO,SACLhQ,KAAK6B,KAAKmO,SAGZhQ,KAAK8P,SAASuY,cACvB,CAEA,MAAA1S,GACE,OAAI3V,KAAK6B,KAAKoO,gBACL,GAGF,GAAGjQ,KAAK8P,SAASgC,OAC1B,iEC/FF,MAYA,EAZgC,CAAChI,EAAQkW,EAAOsI,MAC9C,IAAA3e,kBAAgB,KACd,GAAIG,EAGF,OAFAA,EAAOC,YAAYiW,EAAOsI,GAEnB,KACLxe,EAAOE,eAAegW,EAAOsI,EAAQ,CAEzC,GACC,CAACxe,EAAQkW,EAAOsI,GAAS,8ICN9B,MA2BA,EA3B6BlE,IAC3B,MAAM9b,GAAI,QAAS,CAAC8b,aAEpB9b,EAAE3F,UAAU,CAAC4lB,iBAAkB,KAE/B,MAAMC,GAAqB,IAAA/e,cAAa8e,IACtC,MAAME,EAA0B,GAEhC,IAAK,MAAMC,KAAmBH,EAAiBI,sBACzCrgB,EAAEgB,EAAE8a,SAASsE,KACfA,EAAgBE,aAChBH,EAAwBxjB,KAAKyjB,IAIjCpgB,EAAE5I,IAAI,CACJ6oB,iBAAkBE,GACnB,GACA,IAIH,OAFA,OAAgB3e,EAAA,EAAQ,qBAAsB0e,GAEvC,CACLD,iBAAkBjgB,EAAEA,EAAEigB,iBACxB,iBCrBF,MAyJA,EAzJiB,EAAE3lB,QAAOgJ,oBAAmBid,MAC3C,MAAMC,EAAwB3kB,OAAOgF,KAAK0f,GAE1C,GAAIC,EAAsBlnB,OAAS,EACjC,MAAM,IAAIV,MAAM,oCAAoC4nB,EAAsB5jB,KAAK,SAGjF,MAAMoD,GAAI,QAAS1F,GAEnB0F,EAAE3F,UAAU,CACV0I,UAAML,KAGR,IAAA+d,YAAU,KACR3d,GAAQ,GACP,CAAC9C,EAAE1F,MAAMuD,UAAUmG,UAEtBhE,EAAE0gB,KAAKC,cAAgB,CAACrmB,SACxB0F,EAAE0gB,KAAKE,WAA2B,YAAdtmB,EAAM6D,MAA8C,YAAxBmF,GAAgBnF,KAChE6B,EAAE0gB,KAAKG,SAAmC,UAAxBvd,GAAgBnF,KAElC,MAAMmG,GAAc,IAAAnD,cAAaxI,IAC/B,MAAM,YAAC2L,GAAetE,EAAE1F,MAExB,GAAIgK,EACF,OAAOA,EAAY3L,GACd,GAAIA,aAAiB2N,OAASC,MAAM5N,EAAM6N,WAAY,CAE3D,GAAmB,kBAAfsa,IACF,OAAOra,EAAS,oBAAqB9N,GAChC,GAAmB,QAAfmoB,IACT,OAAOra,EAAS,WAAY9N,EAEhC,CAEA,OAAOA,IACN,IAEGooB,GAAsB,IAAA5f,cAAY,KACtC,GAAI,mBAAoBnB,EAAE1F,MACxB,OAAO0F,EAAE1F,MAAM0mB,eACV,GAAIhhB,EAAE1F,MAAMsD,MAAO,CACxB,IAAKoC,EAAE1F,MAAMsD,MAAMoC,EAAE1F,MAAM+C,WACzB,MAAM,IAAIzE,MAAM,sBAAsBoH,EAAE1F,MAAM+C,aAEhD,OAAO2C,EAAE1F,MAAMsD,MAAMoC,EAAE1F,MAAM+C,YAC/B,IACC,IAEGuL,GAAoB,IAAAzH,cAAY,KACpC,GAAI,iBAAkBnB,EAAE1F,MACtB,OAAOgK,EAAYtE,EAAE1F,MAAMyK,cACtB,GAAI/E,EAAE1F,MAAMsD,OAASoC,EAAE1F,MAAM+C,UAAW,CAC7C,IAAK2C,EAAE1F,MAAMsD,MAAMoC,EAAE1F,MAAM+C,WACzB,MAAM,IAAIzE,MAAM,2CAA0C,QAAKoH,EAAE1F,MAAMsD,MAAMwL,iBAAkB,WAAWpJ,EAAE1F,MAAM+C,aAGpH,OAAOiH,EAAYtE,EAAE1F,MAAMsD,MAAMoC,EAAE1F,MAAM+C,aAC3C,IACC,IAEG4jB,GAAiB,IAAA9f,cAAY,KAC5BnB,EAAE0gB,KAAKQ,kBAAiBlhB,EAAE0gB,KAAKQ,gBAAkBvlB,EAAMwlB,aAErDnhB,EAAE0gB,KAAKQ,kBACb,IAEGrjB,GAAW,IAAAsD,cAAY,IAAMnB,EAAE1F,MAAMuD,UAAYojB,MAEjDH,GAAY,IAAA3f,cAAY,IACxB,SAAUnB,EAAE1F,MACP0F,EAAE1F,MAAM6D,KACN6B,EAAEoB,EAAEwf,WACN,WAEA,QAER,IAEG9iB,GAAQ,IAAAqD,cAAY,IACpB,UAAWnB,EAAE1F,MACR0F,EAAE1F,MAAMwD,MACNkC,EAAE1F,MAAM+C,WAAa2C,EAAE1F,MAAMsD,MAC/BoC,EAAE1F,MAAMsD,MAAMuhB,aAAaiC,mBAAmBphB,EAAE1F,MAAM+C,gBADxD,GAGN,IAEGyF,GAAU,IAAA3B,cAAY,KAC1B,MAAM8F,EAAepJ,IAAWmG,QAEhC,IAAIjB,EAEAkE,IAAclE,GAAO,QAAIkE,EAAc,SACvClE,GAAQA,GAAQ/C,EAAEA,EAAE+C,MAAM/C,EAAE5I,IAAI,CAAC2L,QAAK,GACzC,IAEGse,GAAQ,IAAAlgB,cAAY,KAAM,OAAenB,EAAEoB,EAAEuf,gBAAgB,IAC7DW,GAAU,IAAAngB,cAAY,ICvGf,SAAmC0C,GAChD,GAAI,SAAUA,EAAUvJ,MACtB,OAAOuJ,EAAUvJ,MAAM2D,KAClB,GAAI4F,EAAUvJ,MAAM+C,WAAawG,EAAUvJ,MAAMsD,MAAO,CAC7D,IAAI2jB,EAAgBjY,EAAW4B,WAAWrH,EAAUvJ,MAAM+C,WAM1D,MAJ4B,SAAxBwG,EAAUvJ,MAAM6D,OAClBojB,GAAiB,UAGZ,GAAG1d,EAAUvJ,MAAMsD,MAAMwL,iBAAiBC,YAAYkY,IAC/D,CACF,CD2FoC,CAAiBvhB,EAAEoB,EAAEuf,gBAAgB,IAEjEa,GAAgB,IAAArgB,cAAY,KAChC,MAAMsgB,EAAkBzhB,EAAE1F,MAAMoD,YAAc,CAAC,EACzCA,EAAa7B,OAAOC,OACxB,CACEjE,GAAIwpB,IACJpjB,KAAMqjB,IACNrlB,IAAK4B,KAEP4jB,GAiBF,OAdIzhB,EAAEoB,EAAEwf,YACF,YAAa5gB,EAAE1F,QACjBoD,EAAW+T,QAAUzR,EAAE1F,MAAMmX,UAG3B,mBAAoBzR,EAAE1F,OAAU0F,EAAE1F,MAAM+C,WAAa2C,EAAE1F,MAAMsD,SAC/DF,EAAWsjB,eAAiBD,MAErB,UAAW/gB,EAAE1F,MACtBoD,EAAW/E,MAAQqH,EAAE1F,MAAM3B,MAChB,UAAWqH,EAAE1F,QACxBoD,EAAWqH,aAAe6D,KAGrBlL,IACN,KAEIA,WAAYgkB,EAAetjB,YAAaujB,KAAmBxmB,GAAab,EACzE6D,EAAO2iB,IAKb,GAHA9gB,EAAE0gB,KAAKhjB,WAAa8jB,IACpBxhB,EAAE0gB,KAAKkB,oBAAqB,IAAA7gB,UAAQ,IAAMf,EAAEoB,EAAE1D,WAAWO,MAAMiP,QAAQ,eAAgB,SAAS,CAAClN,EAAEoB,EAAE1D,WAAWO,QAE3G+B,EAAEoB,EAAE1D,WAAWzB,IAAK,MAAM,IAAIrD,MAAM,iBACpCoH,EAAEoB,EAAEyf,WAAU7gB,EAAEoB,EAAE1D,WAAWS,KAAOA,GAEzC,MAAM,iBAAC8hB,GAAoB,GAAqBG,GAC9CA,EAAgBza,WAAa3F,EAAEoB,EAAE1D,WAAWO,MAAQmiB,EAAgBza,WAAa3F,EAAEoB,EAAEwgB,qBAGjFxjB,EAAc,CAClBI,OAAQyhB,EACRld,KAAM/C,EAAEA,EAAE+C,KACVjF,MAAOA,KAGT,MAAO,CACLJ,WAAYsC,EAAEoB,EAAE1D,WAChBU,cACAjD,YACF,0EE5Ja,SAAS0mB,EAAsBhe,EAAWie,EAAWC,GAClE,OAAIlmB,OAAOgF,KAAKihB,GAAWxoB,QAAUuC,OAAOgF,KAAKgD,EAAUvJ,OAAOhB,YAI9DuK,EAAUtI,OAASM,OAAOgF,KAAKkhB,GAAWzoB,QAAUuC,OAAOgF,KAAKgD,EAAUtI,OAAOjC,aAIjF0oB,EAAAA,EAAAA,IAA4BF,EAAWje,EAAUvJ,YAIjDynB,GAAcle,EAAUtI,SAIrBymB,EAAAA,EAAAA,IAA4BD,EAAWle,EAAUtI,SAC1D","sources":["webpack:///./node_modules/await-timeout/src/index.js","webpack:///./node_modules/await-timeout/src/utils.js","webpack:///./node_modules/@kaspernj/api-maker/src/bootstrap/card.jsx","webpack:///./node_modules/@kaspernj/api-maker/src/bootstrap/input.jsx","webpack:///./node_modules/@kaspernj/api-maker/src/bootstrap/invalid-feedback.jsx","webpack:///./node_modules/@kaspernj/api-maker/src/use-updated-event.mjs","webpack:///./node_modules/@kaspernj/api-maker/src/event-updated.jsx","webpack:///./node_modules/@kaspernj/api-maker/src/form.jsx","webpack:///./node_modules/@kaspernj/api-maker/src/inputs/input-wrapper.jsx","webpack:///./node_modules/@kaspernj/api-maker/src/inputs/input.jsx","webpack:///./node_modules/@kaspernj/api-maker/src/inputs/money.jsx","webpack:///./node_modules/@kaspernj/api-maker/src/link.jsx","webpack:///./node_modules/@kaspernj/api-maker/src/data-set-to-attributes.mjs","webpack:///./node_modules/debounce/index.js","webpack:///./node_modules/format-number/index.js","webpack:///./node_modules/react-google-tag-manager/lib/build_parts.js","webpack:///./node_modules/react-google-tag-manager/lib/index.js","webpack:///./node_modules/react-native-web/dist/cjs/exports/Platform/index.js","webpack:///./node_modules/replaceall/replaceall.min.js","webpack:///./node_modules/@kaspernj/api-maker/src/inputs/auto-submit.mjs","webpack:///./node_modules/@kaspernj/api-maker/src/inputs/id-for-component.mjs","webpack:///./node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js","webpack:///./node_modules/@kaspernj/api-maker/src/channels-consumer.mjs","webpack:///./node_modules/@kaspernj/api-maker/src/cable-subscription-pool.mjs","webpack:///./node_modules/@kaspernj/api-maker/src/cable-subscription.mjs","webpack:///./node_modules/@kaspernj/api-maker/src/cable-connection-pool.mjs","webpack:///./node_modules/@kaspernj/api-maker/src/model-events.mjs","webpack:///./node_modules/@kaspernj/api-maker/src/money-formatter.mjs","webpack:///./node_modules/@kaspernj/api-maker/src/use-event-emitter.mjs","webpack:///./node_modules/@kaspernj/api-maker/src/use-validation-errors.mjs","webpack:///./node_modules/@kaspernj/api-maker/src/use-input.mjs","webpack:///./node_modules/@kaspernj/api-maker/src/inputs/name-for-component.mjs","webpack:///./node_modules/set-state-compare/src/should-component-update.js"],"sourcesContent":["/**\n * Promise-based replacement for setTimeout / clearTimeout.\n */\n\nconst {promiseFinally, toError} = require('./utils');\n\nmodule.exports = class Timeout {\n static set(delay, rejectReason) {\n return new Timeout().set(delay, rejectReason);\n }\n\n static wrap(promise, delay, rejectReason) {\n return new Timeout().wrap(promise, delay, rejectReason);\n }\n\n constructor() {\n this._id = null;\n this._delay = null;\n }\n\n get id() {\n return this._id;\n }\n\n get delay() {\n return this._delay;\n }\n\n set(delay, rejectReason = '') {\n return new Promise((resolve, reject) => {\n this.clear();\n const fn = rejectReason ? () => reject(toError(rejectReason)) : resolve;\n this._id = setTimeout(fn, delay);\n this._delay = delay;\n });\n }\n\n wrap(promise, delay, rejectReason = '') {\n const wrappedPromise = promiseFinally(promise, () => this.clear());\n const timer = this.set(delay, rejectReason);\n return Promise.race([\n wrappedPromise,\n timer\n ]);\n }\n\n clear() {\n if (this._id) {\n clearTimeout(this._id);\n }\n }\n};\n","exports.promiseFinally = (promise, fn) => {\n const success = result => {\n fn();\n return result;\n };\n const error = e => {\n fn();\n return Promise.reject(e);\n };\n return Promise.resolve(promise).then(success, error);\n};\n\n/**\n * Converts any value to Error.\n * @param {*} value\n * @returns {Error}\n */\nexports.toError = value => {\n value = typeof value === 'function' ? value() : value;\n return typeof value === 'string' ? new Error(value) : value;\n};\n","import BaseComponent from \"../base-component\"\nimport classNames from \"classnames\"\nimport {digg, digs} from \"diggerize\"\nimport memo from \"set-state-compare/src/memo\"\nimport PropTypes from \"prop-types\"\nimport {useRef} from \"react\"\nimport {shapeComponent} from \"set-state-compare/src/shape-component.js\"\n\nexport default memo(shapeComponent(class ApiMakerBootstrapCard extends BaseComponent {\n static defaultProps = {\n defaultExpanded: true,\n expandable: false,\n expandableHide: false,\n responsiveTable: true,\n table: false\n }\n\n static propTypes = {\n cardRef: PropTypes.object,\n className: PropTypes.string,\n children: PropTypes.node,\n controls: PropTypes.node,\n defaultExpanded: PropTypes.bool.isRequired,\n expandable: PropTypes.bool.isRequired,\n expandableHide: PropTypes.bool.isRequired,\n footer: PropTypes.node,\n header: PropTypes.node,\n striped: PropTypes.bool,\n responsiveTable: PropTypes.bool.isRequired,\n table: PropTypes.bool.isRequired\n }\n\n setup() {\n this.cardRef = useRef()\n\n this.useStates({\n expanded: this.props.defaultExpanded\n })\n }\n\n render () {\n const {\n cardRef,\n children,\n className,\n controls,\n defaultExpanded,\n expandable,\n expandableHide,\n footer,\n header,\n responsiveTable,\n striped,\n table,\n ...restProps\n } = this.props\n const {expanded} = digs(this.state, \"expanded\")\n const cardHeaderStyle = {display: \"flex\"}\n const cardRefToUse = cardRef || this.cardRef\n\n if (!expanded) cardHeaderStyle[\"borderBottom\"] = \"0\"\n\n return (\n \n {(controls || expandable || header) &&\n
\n
\n {header}\n
\n {(controls || expandable) &&\n
\n {controls}\n {expandable && expanded &&\n \n \n \n }\n {expandable && !expanded &&\n \n \n \n }\n
\n }\n
\n }\n {(expanded || expandableHide) &&\n
\n {table &&\n \n {children}\n
\n }\n {!table && children}\n
\n }\n {footer &&\n
\n {footer}\n
\n }\n \n )\n }\n\n bodyClassNames () {\n const {expandableHide, responsiveTable, table} = digs(this.props, \"expandableHide\", \"responsiveTable\", \"table\")\n const {expanded} = digs(this.state, \"expanded\")\n const classNames = [\"card-body\"]\n\n if (!expanded && expandableHide) {\n classNames.push(\"d-none\")\n }\n\n if (table) {\n if (responsiveTable){\n classNames.push(\"table-responsive\")\n }\n\n classNames.push(\"p-0\")\n }\n\n return classNames.join(\" \")\n }\n\n onCollapseClicked = (e) => {\n e.preventDefault()\n this.setState({expanded: false})\n }\n\n onExpandClicked = (e) => {\n e.preventDefault()\n this.setState({expanded: true})\n }\n\n tableClassNames () {\n const classNames = [\"table\", \"table-hover\", \"mb-0\", \"w-100\"]\n\n if (this.props.striped)\n classNames.push(\"table-striped\")\n\n return classNames.join(\" \")\n }\n}))\n","import {digs} from \"diggerize\"\nimport inputWrapper from \"../inputs/input-wrapper\"\nimport {Input} from \"../inputs/input\"\nimport InvalidFeedback from \"./invalid-feedback\"\nimport Money from \"../inputs/money\"\nimport PropTypes from \"prop-types\"\nimport memo from \"set-state-compare/src/memo\"\nimport {shapeComponent, ShapeComponent} from \"set-state-compare/src/shape-component.js\"\n\nconst ApiMakerBootstrapInput = memo(shapeComponent(class ApiMakerBootstrapInput extends ShapeComponent {\n static propTypes = {\n append: PropTypes.node,\n appendText: PropTypes.node,\n attribute: PropTypes.string,\n className: PropTypes.string,\n currenciesCollection: PropTypes.array,\n currencyName: PropTypes.string,\n hint: PropTypes.node,\n hintBottom: PropTypes.node,\n id: PropTypes.string,\n label: PropTypes.node,\n labelClassName: PropTypes.string,\n model: PropTypes.object,\n name: PropTypes.string,\n placeholder: PropTypes.node,\n prepend: PropTypes.node,\n prependText: PropTypes.node,\n small: PropTypes.bool,\n type: PropTypes.string,\n wrapperClassName: PropTypes.string\n }\n\n render () {\n const {\n append,\n appendText,\n attribute,\n className,\n currenciesCollection,\n currencyName,\n hint,\n hintBottom,\n id,\n inputClassName,\n inputProps,\n inputRef,\n label,\n labelClassName,\n model,\n name,\n prepend,\n prependText,\n type,\n wrapperClassName,\n wrapperOpts,\n ...restProps\n } = this.props\n const {ref, ...forwardedInputProps} = inputProps\n const {errors} = digs(wrapperOpts, \"errors\")\n\n return (\n
\n {wrapperOpts.label &&\n \n }\n {hint &&\n \n {hint}\n \n }\n {type == \"money\" &&\n \n }\n {type != \"money\" &&\n
\n {(prepend || prependText) &&\n
\n {prependText &&\n \n {prependText}\n \n }\n {prepend}\n
\n }\n \n {(append || appendText) &&\n
\n {appendText &&\n \n {appendText}\n \n }\n {append}\n
\n }\n {errors.length > 0 && }\n
\n }\n {hintBottom &&\n \n {hintBottom}\n \n }\n
\n )\n }\n\n inputClassName () {\n const classNames = [\"form-control\"]\n\n if (this.props.className)\n classNames.push(this.props.className)\n\n if (this.props.wrapperOpts.errors.length > 0)\n classNames.push(\"is-invalid\")\n\n return classNames.join(\" \")\n }\n\n labelClassName () {\n const classNames = []\n\n if (this.props.labelClassName)\n classNames.push(this.props.labelClassName)\n\n return classNames.join(\" \")\n }\n\n moneyProps() {\n const moneyProps = {}\n const forwardedProps = [\"attribute\", \"currenciesCollection\", \"currencyName\", \"model\", \"onChange\", \"placeholder\", \"small\"]\n\n for (const forwardedProp of forwardedProps) {\n if (forwardedProp in this.props) moneyProps[forwardedProp] = this.props[forwardedProp]\n }\n\n const forwardedInputProps = [\"defaultValue\"]\n\n for (const forwardedInputProp of forwardedInputProps) {\n if (forwardedInputProp in this.props.inputProps) moneyProps[forwardedInputProp] = this.props.inputProps[forwardedInputProp]\n }\n\n return moneyProps\n }\n\n wrapperClassName () {\n const classNames = [\"form-group\", \"component-bootstrap-string-input\"]\n\n if (this.props.wrapperClassName)\n classNames.push(this.props.wrapperClassName)\n\n return classNames.join(\" \")\n }\n}))\n\nexport default inputWrapper(ApiMakerBootstrapInput)\n","import {digs} from \"diggerize\"\nimport PropTypes from \"prop-types\"\nimport propTypesExact from \"prop-types-exact\"\nimport React from \"react\"\n\nexport default class ApiMakerBootstrapInvalidFeedback extends React.PureComponent {\n static propTypes = propTypesExact({\n errors: PropTypes.array.isRequired\n })\n\n render () {\n return (\n
\n {this.errorMessages().join(\". \")}\n
\n )\n }\n\n errorMessages () {\n const {errors} = digs(this.props, \"errors\")\n const errorMessages = []\n\n for (const error of errors) {\n for (const errorMessage of error.getErrorMessages()) {\n errorMessages.push(errorMessage)\n }\n }\n\n return errorMessages\n }\n}\n","import {useCallback, useLayoutEffect, useMemo} from \"react\"\nimport debounceFunction from \"debounce\"\nimport ModelEvents from \"./model-events.mjs\"\nimport useShape from \"set-state-compare/src/use-shape.js\"\n\nconst apiMakerUseUpdatedEvent = (model, onUpdated, props = {}) => {\n const {active = true, debounce, onConnected, ...restProps} = props\n\n if (Object.keys(restProps).length > 0) {\n throw new Error(`Unknown props given to useUpdatedEvent: ${Object.keys(restProps).join(\", \")}`)\n }\n\n const s = useShape({active, debounce, model, onUpdated})\n\n const debounceCallback = useMemo(() => {\n if (typeof debounce == \"number\") {\n return debounceFunction(s.p.onUpdated, debounce)\n } else {\n return debounceFunction(s.p.onUpdated)\n }\n }, [debounce])\n\n s.updateMeta({debounceCallback})\n\n const onUpdatedCallback = useCallback((...args) => {\n if (!s.p.active) {\n return\n }\n\n if (s.p.debounce) {\n s.m.debounceCallback(...args)\n } else {\n s.p.onUpdated(...args)\n }\n }, [])\n\n useLayoutEffect(() => {\n let connectUpdated, onConnectedListener\n\n if (model) {\n connectUpdated = ModelEvents.connectUpdated(model, onUpdatedCallback)\n\n if (onConnected) {\n onConnectedListener = connectUpdated.events.addListener(\"connected\", onConnected)\n }\n }\n\n return () => {\n if (onConnectedListener) {\n connectUpdated.events.removeListener(\"connected\", onConnected)\n }\n\n if (connectUpdated) {\n connectUpdated.unsubscribe()\n }\n }\n }, [model?.id()])\n}\n\nexport default apiMakerUseUpdatedEvent\n","import BaseComponent from \"./base-component\"\nimport memo from \"set-state-compare/src/memo\"\nimport PropTypes from \"prop-types\"\nimport propTypesExact from \"prop-types-exact\"\nimport {shapeComponent} from \"set-state-compare/src/shape-component.js\"\nimport useUpdatedEvent from \"./use-updated-event.mjs\"\n\nexport default memo(shapeComponent(class ApiMakerEventUpdated extends BaseComponent {\n static propTypes = propTypesExact({\n active: PropTypes.bool,\n debounce: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.number\n ]),\n model: PropTypes.object.isRequired,\n onConnected: PropTypes.func,\n onUpdated: PropTypes.func.isRequired\n })\n\n render() {\n const {model, onUpdated, ...restProps} = this.props\n\n useUpdatedEvent(model, onUpdated, restProps)\n\n return null\n }\n}))\n","import {createContext, useContext, useMemo} from \"react\"\nimport BaseComponent from \"./base-component\"\nimport FormDataObjectizer from \"form-data-objectizer\"\nimport memo from \"set-state-compare/src/memo\"\nimport {Platform} from \"react-native\"\nimport PropTypes from \"prop-types\"\nimport {shapeComponent} from \"set-state-compare/src/shape-component.js\"\n\nconst FormContext = createContext(null)\n\nclass FormInputs {\n constructor(props) {\n this.inputs = {}\n this.onSubmit = props?.onSubmit\n }\n\n asObject() {\n const result = {}\n const formDataObjectizer = new FormDataObjectizer()\n\n for(const key in this.inputs) {\n const value = this.inputs[key]\n\n formDataObjectizer.treatInitial(key, value, result)\n }\n\n return result\n }\n\n setValue(name, value) {\n if (!name) throw new Error(\"'name' is required\")\n\n this.inputs[name] = value\n }\n\n setValueWithHidden(name, value) {\n this.setValue(name, value)\n\n if (Platform.OS == \"web\") {\n return \n }\n }\n\n submit() {\n if (this.onSubmit) {\n this.onSubmit()\n }\n }\n}\n\nconst Form = memo(shapeComponent(class Form extends BaseComponent {\n static propTypes = {\n children: PropTypes.node,\n formRef: PropTypes.object,\n onSubmit: PropTypes.func,\n setForm: PropTypes.func\n }\n\n render() {\n const {children, formRef, onSubmit, setForm, ...restProps} = this.props\n const form = useMemo(() => new FormInputs({onSubmit}), [])\n\n useMemo(() => {\n if (setForm) {\n setForm(form)\n }\n }, [setForm])\n\n return (\n \n {Platform.OS == \"web\" &&\n
\n {children}\n
\n }\n {Platform.OS != \"web\" && this.props.children}\n
\n )\n }\n\n onFormSubmit = (e) => {\n e.preventDefault()\n\n if (this.props.onSubmit) {\n this.props.onSubmit()\n }\n }\n}))\n\nconst useForm = () => useContext(FormContext)\n\nexport {Form, FormContext, FormInputs, useForm}\n","import useInput from \"../use-input.mjs\"\n\nconst inputWrapper = (WrapperComponentClass, wrapperOptions = {}) => (props) => {\n const {inputProps, restProps, wrapperOpts} = useInput({props, wrapperOptions})\n\n return (\n \n )\n}\n\nexport default inputWrapper\n","import AutoSubmit from \"./auto-submit.mjs\"\nimport BaseComponent from \"../base-component\"\nimport {dig, digg, digs} from \"diggerize\"\nimport EventUpdated from \"../event-updated\"\nimport inputWrapper from \"./input-wrapper\"\nimport memo from \"set-state-compare/src/memo\"\nimport Money from \"./money\"\nimport PropTypes from \"prop-types\"\nimport {useMemo, useRef} from \"react\"\nimport replaceall from \"replaceall\"\nimport {shapeComponent} from \"set-state-compare/src/shape-component.js\"\nimport strftime from \"strftime\"\nimport {useForm} from \"../form\"\n\nconst ApiMakerInputsInput = memo(shapeComponent(class ApiMakerInputsInput extends BaseComponent {\n static defaultProps = {\n autoRefresh: false,\n autoSubmit: false,\n localizedNumber: false\n }\n\n static propTypes = {\n attribute: PropTypes.string,\n autoRefresh: PropTypes.bool.isRequired,\n autoSubmit: PropTypes.bool.isRequired,\n className: PropTypes.string,\n formatValue: PropTypes.func,\n id: PropTypes.string,\n localizedNumber: PropTypes.bool.isRequired,\n model: PropTypes.object,\n name: PropTypes.string,\n onChange: PropTypes.func,\n onMatchValidationError: PropTypes.func,\n type: PropTypes.string\n }\n\n setup() {\n const {inputProps} = this.p\n const {defaultValue, name} = inputProps\n\n this.form = useForm()\n this.visibleInputRef = useRef()\n\n this.useStates({\n blankInputName: digg(inputProps, \"type\") == \"file\"\n })\n useMemo(() => {\n if (name) {\n this.tt.form?.setValue(name, defaultValue)\n }\n }, [])\n }\n\n render () {\n const {\n attribute,\n autoRefresh,\n autoSubmit,\n defaultValue,\n formatValue,\n id,\n inputProps,\n inputRef,\n localizedNumber,\n model,\n name,\n onChange,\n onErrors,\n onMatchValidationError,\n type,\n wrapperOpts,\n ...restProps\n } = this.props\n\n const sharedProps = {\n id: localizedNumber ? null : inputProps.id,\n name: localizedNumber ? null : inputProps.name,\n }\n const ref = localizedNumber ? this.visibleInputRef : this.inputReference()\n const {ref: inputPropsRef, ...inputPropsWithoutRef} = inputProps\n\n return (\n <>\n {autoRefresh && model &&\n \n }\n {localizedNumber &&\n \n }\n {type == \"money\" &&\n \n }\n {type == \"textarea\" &&\n \n }\n {type != \"money\" && type != \"textarea\" &&\n \n }\n \n )\n }\n\n actualValue (visibleInput) {\n const {localizedNumber} = digs(this.props, \"localizedNumber\")\n const value = digg(visibleInput, \"value\")\n\n if (localizedNumber) {\n const decimal = I18n.t(\"number.currency.format.separator\")\n const integerSeparator = I18n.t(\"number.currency.format.delimiter\")\n\n let unformatted = replaceall(integerSeparator, \"\", value)\n\n unformatted = replaceall(decimal, \".\", unformatted)\n\n return unformatted\n }\n\n return value\n }\n\n autoSubmit = () => new AutoSubmit({component: this}).autoSubmit()\n\n formatValue (value) {\n const {formatValue, type} = this.props\n\n if (formatValue) {\n return formatValue(value)\n } else if (value instanceof Date && !isNaN(value.getTime())) {\n // We need to use a certain format for datetime-local\n if (type == \"datetime-local\") {\n return strftime(\"%Y-%m-%dT%H:%M:%S\", value)\n } else if (type == \"date\") {\n return strftime(\"%Y-%m-%d\", value)\n }\n }\n\n return value\n }\n\n inputDefaultValueLocalized () {\n const {defaultValue} = this.props\n const {localizedNumber} = digs(this.props, \"localizedNumber\")\n\n if (localizedNumber && defaultValue !== null && defaultValue !== undefined) {\n const separator = I18n.t(\"number.currency.format.separator\")\n const delimiter = I18n.t(\"number.currency.format.delimiter\")\n\n let formatted = `${defaultValue}`\n\n formatted = replaceall(\".\", \"{{separator}}\", formatted)\n formatted = replaceall(\",\", \"{{delimiter}}\", formatted)\n formatted = replaceall(\"{{separator}}\", separator, formatted)\n formatted = replaceall(\"{{delimiter}}\", delimiter, formatted)\n\n return formatted\n }\n\n return defaultValue\n }\n\n inputName () {\n if (this.state.blankInputName) return \"\"\n\n return this.props.inputProps.name\n }\n\n inputReference = () => digg(this, \"props\", \"inputProps\", \"ref\")\n\n onModelUpdated = (args) => {\n const inputRef = this.inputReference()\n\n if (!inputRef.current) {\n // This can happen if the component is being unmounted\n return\n }\n\n const {attribute} = digs(this.props, \"attribute\")\n const newModel = digg(args, \"model\")\n const currentValue = digg(inputRef, \"current\", \"value\")\n const newValue = newModel.readAttribute(attribute)\n const newFormattedValue = this.formatValue(newValue)\n\n if (currentValue != newFormattedValue) {\n inputRef.current.value = newFormattedValue\n }\n }\n\n onInputChanged = (e) => {\n const {form} = this.tt\n const {attribute, autoSubmit, inputProps, model, onChange} = this.props\n const {localizedNumber} = digs(this.props, \"localizedNumber\")\n const {name} = inputProps\n\n if (localizedNumber) this.inputReference().current.value = this.actualValue(digg(e, \"target\"))\n\n if (attribute && autoSubmit && model) this.delayAutoSubmit()\n if (digg(inputProps, \"type\") == \"file\") this.setState({blankInputName: this.getBlankInputName()})\n\n if (form && name) {\n form.setValue(name, e.target.value)\n }\n\n if (onChange) onChange(e)\n }\n\n delayAutoSubmit () {\n if (this.delayAutoSubmitTimeout) {\n clearTimeout(this.delayAutoSubmitTimeout)\n }\n\n this.delayAutoSubmitTimeout = setTimeout(this.autoSubmit, 200)\n }\n\n // This fixes an issue in Firefox and ActiveStorage, where uploads would be a blank string if a file wasn't chosen\n getBlankInputName () {\n const value = dig(this.inputReference(), \"current\", \"value\")\n\n if (this.props.inputProps.type == \"file\" && value == \"\")\n return true\n }\n}))\n\nexport {ApiMakerInputsInput as Input}\nexport default inputWrapper(ApiMakerInputsInput)\n","import classNames from \"classnames\"\nimport Config from \"../config.mjs\"\nimport {digg} from \"diggerize\"\nimport idForComponent from \"./id-for-component.mjs\"\nimport * as inflection from \"inflection\"\nimport memo from \"set-state-compare/src/memo\"\nimport MoneyFormatter from \"../money-formatter\"\nimport PropTypes from \"prop-types\"\nimport PropTypesExact from \"prop-types-exact\"\nimport {useRef} from \"react\"\nimport {shapeComponent, ShapeComponent} from \"set-state-compare/src/shape-component.js\"\n\nexport default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeComponent {\n static defaultProps = {\n disabled: false,\n showCurrencyOptions: true\n }\n\n static propTypes = PropTypesExact({\n attribute: PropTypes.string,\n centsInputName: PropTypes.string,\n className: PropTypes.string,\n currenciesCollection: PropTypes.array,\n currencyName: PropTypes.string,\n currencyRef: PropTypes.object,\n defaultValue: PropTypes.object,\n disabled: PropTypes.bool.isRequired,\n id: PropTypes.string,\n inputRef: PropTypes.object,\n label: PropTypes.node,\n model: PropTypes.object,\n name: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.node,\n showCurrencyOptions: PropTypes.bool,\n small: PropTypes.bool,\n type: PropTypes.string,\n wholeRef: PropTypes.object\n })\n\n setup() {\n this.inputRef = useRef()\n this.currencyRefBackup = useRef()\n this.currencyRef = this.props.currencyRef || this.currencyRefBackup\n this.wholeRefBackup = useRef()\n this.wholeRef = this.props.wholeRef || this.wholeRefBackup\n }\n\n getInputRef () {\n return this.props.inputRef || this.inputRef\n }\n\n render () {\n const {attribute, className, disabled, model, showCurrencyOptions} = this.props\n let {currenciesCollection} = this.props\n\n if (!currenciesCollection) currenciesCollection = Config.getCurrenciesCollection()\n\n return (\n
\n \n \n {showCurrencyOptions &&\n \n \n {currenciesCollection.map((option) => (\n \n ))}\n \n }\n
\n )\n }\n\n inputCurrencyId () {\n return `${this.inputId()}_currency`\n }\n\n inputCurrencyName () {\n if (\"currencyName\" in this.props)\n return this.props.currencyName\n\n return `${this.props.model.modelClassData().paramKey}[${inflection.underscore(this.props.attribute)}_currency]`\n }\n\n inputCurrencyValue () {\n const {defaultValue} = this.props\n\n if (defaultValue) {\n return MoneyFormatter.currencyFromMoney(defaultValue).code\n } else {\n return \"DKK\"\n }\n }\n\n inputDefaultValue () {\n const {defaultValue} = this.props\n\n if (defaultValue) {\n return MoneyFormatter.fromMoney({amount: defaultValue.amount, currency: this.inputCurrencyValue()}, {decimals: 2, excludeCurrency: true}).toString()\n } else {\n return \"\"\n }\n }\n\n inputDefaultCentsValue () {\n const {defaultValue} = this.props\n\n if (this.getInputRef().current) {\n return digg(this.getInputRef(), \"current\", \"value\")\n } else if (defaultValue) {\n return MoneyFormatter.amountFromMoney(defaultValue)\n }\n }\n\n inputCentsId () {\n return `${this.inputId()}_cents`\n }\n\n inputCentsName () {\n if (\"name\" in this.props)\n return this.props.name\n\n return `${this.props.model.modelClassData().paramKey}[${inflection.underscore(this.props.attribute)}_cents]`\n }\n\n inputId () {\n return idForComponent(this)\n }\n\n onCurrencyChanged = () => {\n if (this.props.onChange)\n this.props.onChange()\n }\n\n setAmount = () => {\n const inputElement = this.getInputRef().current\n\n if (!inputElement.value && inputElement.value == \"\") {\n this.wholeRef.current.value = \"\"\n } else {\n const cents = parseFloat(inputElement.value)\n const formatted = MoneyFormatter.fromMoney({amount: cents, currency: this.inputCurrencyValue()}, {decimals: 2, excludeCurrency: true}).toString()\n\n this.wholeRef.current.value = formatted\n }\n }\n\n setCents = () => {\n const inputElement = this.getInputRef().current\n\n let whole = MoneyFormatter.stringToFloat(this.wholeRef.current.value)\n let cents = parseInt(whole * 100, 10)\n let oldCents = parseInt(inputElement.value, 10)\n\n if (typeof cents == \"number\") {\n inputElement.value = cents\n } else {\n inputElement.value = ''\n }\n\n if (this.props.onChange && oldCents != cents)\n this.props.onChange()\n }\n}))\n","import {Platform, Pressable} from \"react-native\"\nimport BaseComponent from \"./base-component\"\nimport dataSetToAttributes from \"./data-set-to-attributes.mjs\"\nimport memo from \"set-state-compare/src/memo\"\nimport PropTypes from \"prop-types\"\nimport {shapeComponent} from \"set-state-compare/src/shape-component.js\"\n\nexport default memo(shapeComponent(class ApiMakerLink extends BaseComponent {\n static propTypes = {\n usePressable: PropTypes.bool\n }\n\n render() {\n const {dataSet, to, onClick, onPress, usePressable, ...restProps} = this.props\n\n if (Platform.OS == \"web\" && !usePressable) {\n return (\n \n )\n }\n\n return (\n \n )\n }\n\n onLinkClicked = (e, ...restArgs) => {\n const {onClick, onPress} = this.props\n\n if (onClick) {\n onClick(e, ...restArgs)\n }\n\n if (onPress) {\n onPress(e, ...restArgs)\n }\n\n if (!e.defaultPrevented && !e.ctrlKey && !e.metaKey) {\n e.preventDefault()\n\n this.redirect()\n }\n }\n\n onPress = () => {\n const {onClick, onPress} = this.props\n\n if (onClick) {\n onClick(e, ...restArgs)\n }\n\n if (onPress) {\n onPress(e, ...restArgs)\n }\n\n this.redirect()\n }\n\n redirect = () => {\n const history = globalThis.apiMakerConfigGlobal?.history\n\n if (!history) throw new Error(\"History hasn't been set in the API maker configuration\")\n\n history.push(this.props.to)\n }\n}))\n","import * as inflection from \"inflection\"\n\nexport default function dataSetToAttributes(dataSet) {\n const result = {}\n\n for (const key in dataSet) {\n const dasherizedKey = `data-${inflection.dasherize(inflection.underscore(key))}`\n\n result[dasherizedKey] = dataSet[key]\n }\n\n return result\n}\n","function debounce(function_, wait = 100, options = {}) {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError(`Expected the first parameter to be a function, got \\`${typeof function_}\\`.`);\n\t}\n\n\tif (wait < 0) {\n\t\tthrow new RangeError('`wait` must not be negative.');\n\t}\n\n\t// TODO: Deprecate the boolean parameter at some point.\n\tconst {immediate} = typeof options === 'boolean' ? {immediate: options} : options;\n\n\tlet storedContext;\n\tlet storedArguments;\n\tlet timeoutId;\n\tlet timestamp;\n\tlet result;\n\n\tfunction later() {\n\t\tconst last = Date.now() - timestamp;\n\n\t\tif (last < wait && last >= 0) {\n\t\t\ttimeoutId = setTimeout(later, wait - last);\n\t\t} else {\n\t\t\ttimeoutId = undefined;\n\n\t\t\tif (!immediate) {\n\t\t\t\tconst callContext = storedContext;\n\t\t\t\tconst callArguments = storedArguments;\n\t\t\t\tstoredContext = undefined;\n\t\t\t\tstoredArguments = undefined;\n\t\t\t\tresult = function_.apply(callContext, callArguments);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst debounced = function (...arguments_) {\n\t\tif (storedContext && this !== storedContext) {\n\t\t\tthrow new Error('Debounced method called with different contexts.');\n\t\t}\n\n\t\tstoredContext = this; // eslint-disable-line unicorn/no-this-assignment\n\t\tstoredArguments = arguments_;\n\t\ttimestamp = Date.now();\n\n\t\tconst callNow = immediate && !timeoutId;\n\n\t\tif (!timeoutId) {\n\t\t\ttimeoutId = setTimeout(later, wait);\n\t\t}\n\n\t\tif (callNow) {\n\t\t\tconst callContext = storedContext;\n\t\t\tconst callArguments = storedArguments;\n\t\t\tstoredContext = undefined;\n\t\t\tstoredArguments = undefined;\n\t\t\tresult = function_.apply(callContext, callArguments);\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tdebounced.clear = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = undefined;\n\t};\n\n\tdebounced.flush = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst callContext = storedContext;\n\t\tconst callArguments = storedArguments;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t\tresult = function_.apply(callContext, callArguments);\n\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = undefined;\n\t};\n\n\treturn debounced;\n}\n\n// Adds compatibility for ES modules\nmodule.exports.debounce = debounce;\n\nmodule.exports = debounce;\n","\nmodule.exports = formatter;\nmodule.exports.default = formatter;\n\nfunction formatter(options) {\n options = options || {};\n\n\n // *********************************************************************************************\n // Set defaults for negatives\n // options.negative, options.negativeOut, options.separator retained for backward compatibility\n // *********************************************************************************************\n\n // type of negative; default left\n options.negativeType = options.negativeType || (options.negative === 'R' ? 'right' : 'left')\n\n // negative symbols '-' or '()'\n if (typeof options.negativeLeftSymbol !== 'string') {\n switch (options.negativeType) {\n case 'left':\n options.negativeLeftSymbol = '-';\n break;\n case 'brackets':\n options.negativeLeftSymbol = '(';\n break;\n default:\n options.negativeLeftSymbol = '';\n }\n }\n if (typeof options.negativeRightSymbol !== 'string') {\n switch (options.negativeType) {\n case 'right':\n options.negativeRightSymbol = '-';\n break;\n case 'brackets':\n options.negativeRightSymbol = ')';\n break;\n default:\n options.negativeRightSymbol = '';\n }\n }\n\n // whether negative symbol should be inside/outside prefix and suffix\n\n if (typeof options.negativeLeftOut !== \"boolean\") {\n options.negativeLeftOut = (options.negativeOut === false ? false : true);\n }\n if (typeof options.negativeRightOut !== \"boolean\") {\n options.negativeRightOut = (options.negativeOut === false ? false : true);\n }\n\n //prefix and suffix\n options.prefix = options.prefix || '';\n options.suffix = options.suffix || '';\n\n //separators\n if (typeof options.integerSeparator !== 'string') {\n options.integerSeparator = (typeof options.separator === 'string' ? options.separator : ',');\n }\n options.decimalsSeparator = typeof options.decimalsSeparator === 'string' ? options.decimalsSeparator : '';\n options.decimal = options.decimal || '.';\n\n //padders\n options.padLeft = options.padLeft || -1 //default no padding\n options.padRight = options.padRight || -1 //default no padding\n\n function format(number, overrideOptions) {\n overrideOptions = overrideOptions || {};\n\n if (number || number === 0) {\n number = '' + number;//convert number to string if it isn't already\n } else {\n return '';\n }\n\n //identify a negative number and make it absolute\n var output = [];\n var negative = number.charAt(0) === '-';\n number = number.replace(/^\\-/g, '');\n\n //Prepare output with left hand negative and/or prefix\n if (!options.negativeLeftOut && !overrideOptions.noUnits) {\n output.push(options.prefix);\n }\n if (negative) {\n output.push(options.negativeLeftSymbol);\n }\n if (options.negativeLeftOut && !overrideOptions.noUnits) {\n output.push(options.prefix);\n }\n\n //Format core number\n number = number.split('.');\n if (options.round != null) round(number, options.round);\n if (options.truncate != null) number[1] = truncate(number[1], options.truncate);\n if (options.padLeft > 0) number[0] = padLeft(number[0], options.padLeft);\n if (options.padRight > 0) number[1] = padRight(number[1], options.padRight);\n if (!overrideOptions.noSeparator && number[1]) number[1] = addDecimalSeparators(number[1], options.decimalsSeparator);\n if (!overrideOptions.noSeparator && number[0]) number[0] = addIntegerSeparators(number[0], options.integerSeparator);\n output.push(number[0]);\n if (number[1]) {\n output.push(options.decimal);\n output.push(number[1]);\n }\n\n //Prepare output with right hand negative and/or prefix\n if (options.negativeRightOut && !overrideOptions.noUnits) {\n output.push(options.suffix);\n }\n if (negative) {\n output.push(options.negativeRightSymbol);\n }\n if (!options.negativeRightOut && !overrideOptions.noUnits) {\n output.push(options.suffix);\n }\n\n //join output and return\n return output.join('');\n }\n\n format.negative = options.negative;\n format.negativeOut = options.negativeOut;\n format.negativeType = options.negativeType;\n format.negativeLeftOut = options.negativeLeftOut;\n format.negativeLeftSymbol = options.negativeLeftSymbol;\n format.negativeRightOut = options.negativeRightOut;\n format.negativeRightSymbol = options.negativeRightSymbol;\n format.prefix = options.prefix;\n format.suffix = options.suffix;\n format.separate = options.separate;\n format.integerSeparator = options.integerSeparator;\n format.decimalsSeparator = options.decimalsSeparator;\n format.decimal = options.decimal;\n format.padLeft = options.padLeft;\n format.padRight = options.padRight;\n format.truncate = options.truncate;\n format.round = options.round;\n\n function unformat(number, allowedSeparators) {\n allowedSeparators = allowedSeparators || [];\n if (options.allowedSeparators) {\n options.allowedSeparators.forEach(function (s) { allowedSeparators.push (s); });\n }\n allowedSeparators.push(options.integerSeparator);\n allowedSeparators.push(options.decimalsSeparator);\n number = number.replace(options.prefix, '');\n number = number.replace(options.suffix, '');\n var newNumber = number;\n do {\n number = newNumber;\n for (var i = 0; i < allowedSeparators.length; i++) {\n newNumber = newNumber.replace(allowedSeparators[i], '');\n }\n } while (newNumber != number);\n return number;\n }\n format.unformat = unformat;\n\n function validate(number, allowedSeparators) {\n number = unformat(number, allowedSeparators);\n number = number.split(options.decimal);\n if (number.length > 2) {\n return false;\n } else if (options.truncate != null && number[1] && number[1].length > options.truncate) {\n return false;\n } else if (options.round != null && number[1] && number[1].length > options.round) {\n return false;\n } else {\n return /^-?\\d+\\.?\\d*$/.test(number);\n }\n }\n return format;\n}\n\n//where x is already the integer part of the number\nfunction addIntegerSeparators(x, separator) {\n x += '';\n if (!separator) return x;\n var rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x)) {\n x = x.replace(rgx, '$1' + separator + '$2');\n }\n return x;\n}\n\n//where x is already the decimal part of the number\nfunction addDecimalSeparators(x, separator) {\n x += '';\n if (!separator) return x;\n var rgx = /(\\d{3})(\\d+)/;\n while (rgx.test(x)) {\n x = x.replace(rgx, '$1' + separator + '$2');\n }\n return x;\n}\n\n//where x is the integer part of the number\nfunction padLeft(x, padding) {\n x = x + '';\n var buf = [];\n while (buf.length + x.length < padding) {\n buf.push('0');\n }\n return buf.join('') + x;\n}\n\n//where x is the decimals part of the number\nfunction padRight(x, padding) {\n if (x) {\n x += '';\n } else {\n x = '';\n }\n var buf = [];\n while (buf.length + x.length < padding) {\n buf.push('0');\n }\n return x + buf.join('');\n}\nfunction truncate(x, length) {\n if (x) {\n x += '';\n }\n if (x && x.length > length) {\n return x.substr(0, length);\n } else {\n return x;\n }\n}\n\n//where number is an array with 0th item as integer string and 1st item as decimal string (no negatives)\nfunction round(number, places) {\n if (number[1] && places >= 0 && number[1].length > places) {\n //truncate to correct number of decimal places\n var decim = number[1].slice(0, places);\n //if next digit was >= 5 we need to round up\n if (+(number[1].substr(places, 1)) >= 5) {\n //But first count leading zeros as converting to a number will loose them\n var leadingzeros = \"\";\n while (decim.charAt(0)===\"0\") {\n leadingzeros = leadingzeros + \"0\";\n decim = decim.substr(1);\n }\n //Then we can change decim to a number and add 1 before replacing leading zeros\n decim = (+decim + 1) + '';\n decim = leadingzeros + decim;\n if (decim.length > places) {\n //adding one has made it longer\n number[0] = (+number[0]+ +decim.charAt(0)) + ''; //add value of firstchar to the integer part\n decim = decim.substring(1); //ignore the 1st char at the beginning which is the carry to the integer part\n }\n }\n number[1] = decim;\n }\n return number;\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction convertToKeyValueString(obj) {\n return JSON.stringify(obj).slice(1, -1);\n}\n\nfunction buildParts(_ref) {\n var id = _ref.id,\n _ref$dataLayerName = _ref.dataLayerName,\n dataLayerName = _ref$dataLayerName === undefined ? 'dataLayer' : _ref$dataLayerName,\n _ref$additionalEvents = _ref.additionalEvents,\n additionalEvents = _ref$additionalEvents === undefined ? {} : _ref$additionalEvents,\n _ref$scheme = _ref.scheme,\n scheme = _ref$scheme === undefined ? '' : _ref$scheme,\n previewVariables = _ref.previewVariables;\n\n if (id === undefined) {\n throw new Error('No GTM id provided');\n }\n\n var iframe = '\\n ';\n\n var script = '\\n (function(w,d,s,l,i){w[l]=w[l]||[];\\n w[l].push({\\'gtm.start\\': new Date().getTime(),event:\\'gtm.js\\', ' + convertToKeyValueString(additionalEvents) + '});\\n var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!=\\'dataLayer\\'?\\'&l=\\'+l:\\'\\';\\n j.async=true;j.src=\\'' + scheme + '//www.googletagmanager.com/gtm.js?id=\\'+i+dl\\n ' + (previewVariables ? '+\"' + previewVariables + '\"' : '') + ';\\n f.parentNode.insertBefore(j,f);\\n })(window,document,\\'script\\',\\'' + dataLayerName + '\\',\\'' + id + '\\');';\n\n return {\n iframe: iframe,\n script: script\n };\n}\n\nexports.default = buildParts;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _build_parts = require('./build_parts');\n\nvar _build_parts2 = _interopRequireDefault(_build_parts);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction GTMParts(args) {\n var parts = (0, _build_parts2.default)(args);\n\n function noScriptAsReact() {\n return _react2.default.createElement('noscript', { dangerouslySetInnerHTML: { __html: parts.iframe } });\n }\n\n function noScriptAsHTML() {\n return '';\n }\n\n function scriptAsReact() {\n return _react2.default.createElement('script', { dangerouslySetInnerHTML: { __html: parts.script } });\n }\n\n function scriptAsHTML() {\n return '';\n }\n\n return {\n noScriptAsReact: noScriptAsReact,\n noScriptAsHTML: noScriptAsHTML,\n scriptAsReact: scriptAsReact,\n scriptAsHTML: scriptAsHTML\n };\n}\n\nexports.default = GTMParts;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nvar Platform = {\n OS: 'web',\n select: obj => 'web' in obj ? obj.web : obj.default,\n get isTesting() {\n if (process.env.NODE_ENV === 'test') {\n return true;\n }\n return false;\n }\n};\nvar _default = exports.default = Platform;\nmodule.exports = exports.default;","/*!\n replaceall (v0.1.6) 23-04-2015\n (c) Lee Crossley (http://ilee.co.uk/)\n*/\nvar replaceall=function(a,b,c){return b=b.replace(/\\$/g,\"$$$$\"),c.replace(new RegExp(a.replace(/([\\/\\,\\!\\\\\\^\\$\\{\\}\\[\\]\\(\\)\\.\\*\\+\\?\\|<>\\-\\&])/g,\"\\\\$&\"),\"g\"),b)};\"undefined\"!=typeof exports&&(\"undefined\"!=typeof module&&module.exports&&(exports=module.exports=replaceall),exports.replaceall=replaceall);","import {digg} from \"diggerize\"\nimport * as inflection from \"inflection\"\n\nexport default class ApiMakerInputsAutoSubmit {\n constructor ({component}) {\n this.component = component\n }\n\n autoSubmit () {\n const {attribute, model} = this.component.props\n const updateAttributeName = inflection.underscore(attribute)\n const updateParams = {}\n\n updateParams[updateAttributeName] = this.value()\n\n model.update(updateParams)\n }\n\n value () {\n const inputRef = this.component.props.inputRef || this.component.props.inputProps?.ref || this.component.inputProps?.ref || this.component.inputRef\n const input = digg(inputRef, \"current\")\n\n if (input.type == \"checkbox\") {\n if (input.checked) {\n if (input.value !== undefined) {\n return input.value\n } else {\n return 1\n }\n } else {\n return 0\n }\n }\n\n return digg(input, \"value\")\n }\n}\n","import * as inflection from \"inflection\"\n\nexport default function apiMakerIdForComponent(component) {\n if (\"id\" in component.props) {\n return component.props.id\n } else if (component.props.attribute && component.props.model) {\n return `${component.props.model.modelClassData().paramKey}_${inflection.underscore(component.props.attribute)}`\n } else if (component.generatedInputId) {\n return component.generatedInputId\n } else {\n const generatedInputId = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15)\n component.generatedInputId = generatedInputId\n return generatedInputId\n }\n}\n","var adapters = {\n logger: typeof console !== \"undefined\" ? console : undefined,\n WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined\n};\n\nvar logger = {\n log(...messages) {\n if (this.enabled) {\n messages.push(Date.now());\n adapters.logger.log(\"[ActionCable]\", ...messages);\n }\n }\n};\n\nconst now = () => (new Date).getTime();\n\nconst secondsSince = time => (now() - time) / 1e3;\n\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`);\n }\n }\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n }\n isRunning() {\n return this.startedAt && !this.stoppedAt;\n }\n recordMessage() {\n this.pingedAt = now();\n }\n recordConnect() {\n this.reconnectAttempts = 0;\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n }\n recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n }\n startPolling() {\n this.stopPolling();\n this.poll();\n }\n stopPolling() {\n clearTimeout(this.pollTimeout);\n }\n poll() {\n this.pollTimeout = setTimeout((() => {\n this.reconnectIfStale();\n this.poll();\n }), this.getPollInterval());\n }\n getPollInterval() {\n const {staleThreshold: staleThreshold, reconnectionBackoffRate: reconnectionBackoffRate} = this.constructor;\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));\n const jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;\n const jitter = jitterMax * Math.random();\n return staleThreshold * 1e3 * backoff * (1 + jitter);\n }\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`);\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`);\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n }\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt;\n }\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;\n }\n disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n }\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout((() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`);\n this.connection.reopen();\n }\n }), 200);\n }\n }\n}\n\nConnectionMonitor.staleThreshold = 6;\n\nConnectionMonitor.reconnectionBackoffRate = .15;\n\nvar INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\",\n remote: \"remote\"\n },\n default_mount_path: \"/cable\",\n protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n};\n\nconst {message_types: message_types, protocols: protocols} = INTERNAL;\n\nconst supportedProtocols = protocols.slice(0, protocols.length - 1);\n\nconst indexOf = [].indexOf;\n\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n }\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`);\n return false;\n } else {\n const socketProtocols = [ ...protocols, ...this.consumer.subprotocols || [] ];\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n }\n close({allowReconnect: allowReconnect} = {\n allowReconnect: true\n }) {\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isOpen()) {\n return this.webSocket.close();\n }\n }\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`);\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`);\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n }\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n }\n isOpen() {\n return this.isState(\"open\");\n }\n isActive() {\n return this.isState(\"open\", \"connecting\");\n }\n triedToReconnect() {\n return this.monitor.reconnectAttempts > 0;\n }\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n }\n isState(...states) {\n return indexOf.call(states, this.getState()) >= 0;\n }\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n }\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this);\n this.webSocket[`on${eventName}`] = handler;\n }\n }\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function() {};\n }\n }\n}\n\nConnection.reopenDelay = 500;\n\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n const {identifier: identifier, message: message, reason: reason, reconnect: reconnect, type: type} = JSON.parse(event.data);\n this.monitor.recordMessage();\n switch (type) {\n case message_types.welcome:\n if (this.triedToReconnect()) {\n this.reconnectAttempted = true;\n }\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return null;\n\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n if (this.reconnectAttempted) {\n this.reconnectAttempted = false;\n return this.subscriptions.notify(identifier, \"connected\", {\n reconnected: true\n });\n } else {\n return this.subscriptions.notify(identifier, \"connected\", {\n reconnected: false\n });\n }\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`);\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error() {\n logger.log(\"WebSocket onerror event\");\n }\n};\n\nconst extend = function(object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key];\n object[key] = value;\n }\n }\n return object;\n};\n\nclass Subscription {\n constructor(consumer, params = {}, mixin) {\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n perform(action, data = {}) {\n data.action = action;\n return this.send(data);\n }\n send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n }\n unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n }\n}\n\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`);\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`);\n }\n this.startGuaranteeing();\n }\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`);\n this.pendingSubscriptions = this.pendingSubscriptions.filter((s => s !== subscription));\n }\n startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n }\n stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n }\n retrySubscribing() {\n this.retryTimeout = setTimeout((() => {\n if (this.subscriptions && typeof this.subscriptions.subscribe === \"function\") {\n this.pendingSubscriptions.map((subscription => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`);\n this.subscriptions.subscribe(subscription);\n }));\n }\n }), 500);\n }\n}\n\nclass Subscriptions {\n constructor(consumer) {\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n create(channelName, mixin) {\n const channel = channelName;\n const params = typeof channel === \"object\" ? channel : {\n channel: channel\n };\n const subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n }\n add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n }\n remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n }\n reject(identifier) {\n return this.findAll(identifier).map((subscription => {\n this.forget(subscription);\n this.notify(subscription, \"rejected\");\n return subscription;\n }));\n }\n forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter((s => s !== subscription));\n return subscription;\n }\n findAll(identifier) {\n return this.subscriptions.filter((s => s.identifier === identifier));\n }\n reload() {\n return this.subscriptions.map((subscription => this.subscribe(subscription)));\n }\n notifyAll(callbackName, ...args) {\n return this.subscriptions.map((subscription => this.notify(subscription, callbackName, ...args)));\n }\n notify(subscription, callbackName, ...args) {\n let subscriptions;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [ subscription ];\n }\n return subscriptions.map((subscription => typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined));\n }\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n }\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`);\n this.findAll(identifier).map((subscription => this.guarantor.forget(subscription)));\n }\n sendCommand(subscription, command) {\n const {identifier: identifier} = subscription;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n }\n}\n\nclass Consumer {\n constructor(url) {\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n this.subprotocols = [];\n }\n get url() {\n return createWebSocketURL(this._url);\n }\n send(data) {\n return this.connection.send(data);\n }\n connect() {\n return this.connection.open();\n }\n disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n }\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n }\n addSubProtocol(subprotocol) {\n this.subprotocols = [ ...this.subprotocols, subprotocol ];\n }\n}\n\nfunction createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n}\n\nfunction createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n return new Consumer(url);\n}\n\nfunction getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\n\nexport { Connection, ConnectionMonitor, Consumer, INTERNAL, Subscription, SubscriptionGuarantor, Subscriptions, adapters, createConsumer, createWebSocketURL, getConfig, logger };\n","import {createConsumer} from \"@rails/actioncable\"\n\nexport default createConsumer()\n","import ChannelsConsumer from \"./channels-consumer.mjs\"\nimport CommandsPool from \"./commands-pool.mjs\"\nimport Deserializer from \"./deserializer.mjs\"\nimport {digg} from \"diggerize\"\nimport * as inflection from \"inflection\"\nimport Logger from \"./logger.mjs\"\n\nconst logger = new Logger({name: \"ApiMaker / CableSubscriptionPool\"})\n\nexport default class ApiMakerCableSubscriptionPool {\n constructor () {\n this.activeSubscriptions = 0\n this.connected = false\n }\n\n connect (subscriptionData) {\n const globalData = CommandsPool.current().globalRequestData\n\n logger.debug(() => [\"Creating subscription\", {subscriptionData}])\n\n this.subscription = ChannelsConsumer.subscriptions.create(\n {\n channel: \"ApiMaker::SubscriptionsChannel\",\n global: globalData,\n subscription_data: subscriptionData\n },\n {\n connected: this.onConnected,\n received: this.onReceived,\n subscribed: this.onSubscribed\n }\n )\n this.connected = true\n }\n\n forEachSubscription (callback) {\n const modelIdModes = [\"destroys\", \"updates\"]\n const subscriptions = digg(this, \"subscriptions\")\n\n for (const modelName in subscriptions) {\n for (const modelIdMode of modelIdModes) {\n if (subscriptions[modelName][modelIdMode]) {\n for (const modelId in subscriptions[modelName][modelIdMode]) {\n for (const subscription of subscriptions[modelName][modelIdMode][modelId]) {\n callback({mode: modelIdMode, modelId, modelName, subscription})\n }\n }\n }\n }\n\n if (subscriptions[modelName].creates) {\n for (const subscription of subscriptions[modelName].creates) {\n callback({mode: \"creates\", modelName, subscription})\n }\n }\n\n if (subscriptions[modelName].model_class_events) {\n for (const eventName in subscriptions[modelName].model_class_events) {\n for (const subscription of subscriptions[modelName].model_class_events[eventName]) {\n callback({eventName, mode: \"model_class_events\", modelName, subscription})\n }\n }\n }\n\n if (subscriptions[modelName].events) {\n for (const modelId in subscriptions[modelName].events) {\n for (const eventName in subscriptions[modelName].events[modelId]) {\n for (const subscription of subscriptions[modelName].events[modelId][eventName]) {\n callback({eventName, mode: \"updates\", modelId, modelName, subscription})\n }\n }\n }\n }\n }\n }\n\n isConnected = () => digg(this, \"connected\")\n\n onConnected = () => {\n this.forEachSubscription(({subscription}) => {\n subscription.events.emit(\"connected\")\n })\n }\n\n onReceived = (rawData) => {\n const data = Deserializer.parse(rawData)\n const {a: args, e: eventName, m: model, mi: modelId, mt: modelType, t: type} = data\n const subscriptions = digg(this, \"subscriptions\")\n\n let modelName\n\n // This is more effective if it is an option\n if (model) {\n modelName = digg(model.modelClassData(), \"name\")\n } else {\n modelName = inflection.camelize(inflection.singularize(modelType))\n }\n\n if (type == \"u\") {\n for (const subscription of subscriptions[modelName].updates[modelId]) {\n subscription.events.emit(\"received\", {model})\n }\n } else if (type == \"c\") {\n for (const subscription of subscriptions[modelName].creates) {\n subscription.events.emit(\"received\", {model})\n }\n } else if (type == \"d\") {\n const destroySubscriptions = digg(subscriptions, modelName, \"destroys\", modelId)\n\n for (const subscription of destroySubscriptions) {\n subscription.events.emit(\"received\", {model})\n }\n } else if (type == \"e\") {\n const eventSubscriptions = digg(subscriptions, modelName, \"events\", eventName, modelId)\n\n for (const subscription of eventSubscriptions) {\n subscription.events.emit(\"received\", {args, eventName, model})\n }\n } else if (type == \"mce\") {\n const modelClassEventSubscriptions = digg(subscriptions, modelName, \"model_class_events\", eventName)\n\n for (const subscription of modelClassEventSubscriptions) {\n subscription.events.emit(\"received\", {args, eventName})\n }\n } else {\n throw new Error(`Unknown type: ${data.type}`)\n }\n }\n\n onSubscribed = () => {\n logger.debug(\"onSubscribed\")\n }\n\n onUnsubscribe () {\n logger.debug(() => `activeSubscriptions before unsub: ${this.activeSubscriptions}`)\n this.activeSubscriptions -= 1\n logger.debug(() => `activeSubscriptions after unsub: ${this.activeSubscriptions}`)\n\n if (this.activeSubscriptions <= 0) {\n logger.debug(\"Unsubscribe from ActionCable subscription\")\n this.subscription.unsubscribe()\n this.connected = false\n }\n }\n\n registerSubscriptions (subscriptions) {\n this.subscriptions = subscriptions\n\n logger.debug(() => [\"registerSubscriptions\", {subscriptions}])\n\n for (const modelName in subscriptions) {\n if (subscriptions[modelName].creates) {\n for (const subscription of subscriptions[modelName].creates) {\n this.connectUnsubscriptionForSubscription(subscription)\n }\n }\n\n if (subscriptions[modelName].events) {\n for (const eventName in subscriptions[modelName].events) {\n for (const modelId in subscriptions[modelName].events[eventName]) {\n for (const subscription of subscriptions[modelName].events[eventName][modelId]) {\n this.connectUnsubscriptionForSubscription(subscription)\n }\n }\n }\n }\n\n if (subscriptions[modelName].updates) {\n for (const modelId in subscriptions[modelName].updates) {\n for (const subscription of subscriptions[modelName].updates[modelId]) {\n this.connectUnsubscriptionForSubscription(subscription)\n }\n }\n }\n }\n }\n\n connectUnsubscriptionForSubscription (subscription) {\n logger.debug(() => [\"Connecting to unsubscribe on subscription\", {subscription}])\n\n this.activeSubscriptions += 1\n\n subscription.events.addListener(\"unsubscribed\", () => {\n logger.debug(\"Call onUnsubscribe on self\")\n\n this.onUnsubscribe(subscription)\n })\n }\n}\n","import EventEmitter from \"events\"\nimport Logger from \"./logger.mjs\"\n\nconst logger = new Logger({name: \"ApiMaker / CableSubscription\"})\n\nexport default class ApiMakerCableSubscription {\n constructor () {\n this.events = new EventEmitter()\n this.subscribed = true\n }\n\n unsubscribe () {\n if (!this.subscribed) {\n logger.debug(\"Unsubscribed already called\")\n return\n }\n\n logger.debug(\"Unsubscribe called for subscription\")\n\n this.subscribed = false\n this.events.emit(\"unsubscribed\")\n }\n}\n","import CableSubscriptionPool from \"./cable-subscription-pool.mjs\"\nimport CableSubscription from \"./cable-subscription.mjs\"\nimport {dig} from \"diggerize\"\nimport RunLast from \"./run-last.mjs\"\n\nconst shared = {}\n\nexport default class ApiMakerCableConnectionPool {\n cableSubscriptionPools = []\n connections = {}\n upcomingSubscriptionData = {}\n upcomingSubscriptions = {}\n\n static current () {\n if (!shared.apiMakerCableConnectionPool) shared.apiMakerCableConnectionPool = new ApiMakerCableConnectionPool()\n\n return shared.apiMakerCableConnectionPool\n }\n\n connectEventToExistingSubscription ({path, subscription, value}) {\n for (const cableSubscriptionPool of this.cableSubscriptionPools) {\n if (!cableSubscriptionPool.isConnected()) {\n continue\n }\n\n let existingSubscriptions\n\n if (value === true) {\n existingSubscriptions = dig(cableSubscriptionPool.subscriptions, ...path)\n } else {\n existingSubscriptions = dig(cableSubscriptionPool.subscriptions, ...path, value)\n }\n\n if (existingSubscriptions !== undefined) {\n if (!Array.isArray(existingSubscriptions)) {\n throw new Error(`existingSubscriptions wasn't an array: ${typeof existingSubscriptions} (${dig(existingSubscriptions, \"constructor\", \"name\")})`)\n }\n\n existingSubscriptions.push(subscription)\n cableSubscriptionPool.connectUnsubscriptionForSubscription(subscription)\n\n return true\n }\n }\n\n return false\n }\n\n connectModelEvent ({callback, path, value}) {\n const subscription = new CableSubscription()\n\n subscription.events.addListener(\"received\", callback)\n\n if (this.connectEventToExistingSubscription({path, subscription, value})) {\n // Managed to connect to existing connection\n return subscription\n }\n\n let currentSubscriptionData = this.upcomingSubscriptionData\n let currentSubscription = this.upcomingSubscriptions\n\n for (let i = 0; i < path.length; i++) {\n const pathPart = path[i]\n\n if (!(pathPart in currentSubscriptionData)) {\n if (i == path.length - 1) {\n currentSubscriptionData[pathPart] = []\n } else {\n currentSubscriptionData[pathPart] = {}\n }\n }\n\n currentSubscriptionData = currentSubscriptionData[pathPart]\n\n if (!(pathPart in currentSubscription)) {\n if (value === true && i == path.length - 1) {\n currentSubscription[pathPart] = []\n } else {\n currentSubscription[pathPart] = {}\n }\n }\n\n currentSubscription = currentSubscription[pathPart]\n }\n\n if (!currentSubscriptionData.includes(value)) {\n currentSubscriptionData.push(value)\n }\n\n if (value === true) {\n currentSubscription.push(subscription)\n } else {\n if (!(value in currentSubscription)) {\n currentSubscription[value] = []\n }\n\n currentSubscription[value].push(subscription)\n }\n\n this.scheduleConnectUpcomingRunLast.queue()\n\n return subscription\n }\n\n connectCreated = (modelName, callback) => this.connectModelEvent({callback, value: true, path: [modelName, \"creates\"]})\n connectEvent = (modelName, modelId, eventName, callback) => this.connectModelEvent({callback, value: modelId, path: [modelName, \"events\", eventName]})\n connectDestroyed = (modelName, modelId, callback) => this.connectModelEvent({callback, value: modelId, path: [modelName, \"destroys\"]})\n connectModelClassEvent = (modelName, eventName, callback) => this.connectModelEvent({callback, value: eventName, path: [modelName, \"model_class_events\"]})\n connectUpdate = (modelName, modelId, callback) => this.connectModelEvent({callback, value: modelId, path: [modelName, \"updates\"]})\n\n connectUpcoming = () => {\n const subscriptionData = this.upcomingSubscriptionData\n const subscriptions = this.upcomingSubscriptions\n\n this.upcomingSubscriptionData = {}\n this.upcomingSubscriptions = {}\n\n const cableSubscriptionPool = new CableSubscriptionPool()\n\n cableSubscriptionPool.registerSubscriptions(subscriptions)\n cableSubscriptionPool.connect(subscriptionData)\n\n this.cableSubscriptionPools.push(cableSubscriptionPool)\n }\n\n scheduleConnectUpcomingRunLast = new RunLast(this.connectUpcoming)\n}\n","import CableConnectionPool from \"./cable-connection-pool.mjs\"\nimport {digg} from \"diggerize\"\n\nexport default class ModelEvents {\n static connect (model, eventName, callback) {\n const modelClassName = digg(model.modelClassData(), \"name\")\n const cableSubscription = CableConnectionPool.current().connectEvent(modelClassName, model.primaryKey(), eventName, callback)\n\n return cableSubscription\n }\n\n static connectModelClass (modelClass, eventName, callback) {\n const modelClassName = digg(modelClass.modelClassData(), \"name\")\n const cableSubscription = CableConnectionPool.current().connectModelClassEvent(modelClassName, eventName, callback)\n\n return cableSubscription\n }\n\n static connectCreated (modelClass, callback) {\n const modelClassName = digg(modelClass.modelClassData(), \"name\")\n const cableSubscription = CableConnectionPool.current().connectCreated(modelClassName, callback)\n\n return cableSubscription\n }\n\n static connectDestroyed (model, callback) {\n const modelClassName = digg(model.modelClassData(), \"name\")\n const cableSubscription = CableConnectionPool.current().connectDestroyed(modelClassName, model.primaryKey(), callback)\n\n return cableSubscription\n }\n\n static connectUpdated (model, callback) {\n const modelClassName = digg(model.modelClassData(), \"name\")\n const cableSubscription = CableConnectionPool.current().connectUpdate(modelClassName, model.primaryKey(), callback)\n\n return cableSubscription\n }\n}\n","import Money from \"js-money\"\nimport formatNumber from \"format-number\"\nimport replaceall from \"replaceall\"\n\nexport default class MoneyFormatter {\n static fromMoney (money, args = {}) {\n return new MoneyFormatter(money, args)\n }\n\n static format (money, args = {}) {\n return MoneyFormatter.fromMoney(money, args).toString()\n }\n\n static stringToFloat (moneyString) {\n let unformatted = replaceall(I18n.t(\"number.currency.format.delimiter\"), \"\", moneyString)\n\n unformatted = replaceall(I18n.t(\"number.currency.format.separator\"), \".\", unformatted)\n const float = parseFloat(unformatted)\n\n return float\n }\n\n static amountFromMoney (money) {\n if (\"amount\" in money) {\n return parseFloat(money.amount)\n } else if (\"fractional\" in money) {\n return parseFloat(money.fractional)\n }\n\n throw new Error(`Couldn't figure out amount from: ${JSON.stringify(money, null, 2)}`)\n }\n\n static currencyFromMoney (money) {\n let currencyString\n\n if (typeof money.currency == \"string\") {\n currencyString = money.currency\n } else if (typeof money.currency.id == \"string\") {\n currencyString = money.currency.id\n } else if (typeof money.currency.iso_code == \"string\") {\n currencyString = money.currency.iso_code\n } else if (typeof money.currency.code == \"string\") {\n currencyString = money.currency.code\n } else {\n throw new Error(`Couldn't figure out currency from: ${JSON.stringify(money, null, 2)}`)\n }\n\n const moneyCurrency = Money[currencyString.toUpperCase()]\n\n if (!moneyCurrency) {\n throw new Error(`Could not find currency ${JSON.stringify(money, null, 2)}`)\n }\n\n return moneyCurrency\n }\n\n static isMoney(value) {\n if (value instanceof Money) return true\n\n if (typeof value == \"object\" && value && Object.keys(value).length == 2 && \"amount\" in value && \"currency\" in value)\n return true\n\n return false\n }\n\n constructor (money, args = {}) {\n this.args = args\n this.money = money\n this.amount = MoneyFormatter.amountFromMoney(money)\n this.currency = MoneyFormatter.currencyFromMoney(money)\n }\n\n toString () {\n const amount = (this.amount / 100).toFixed(this.decimalDigits())\n const formatOptions = {\n prefix: this.prefix(),\n decimal: I18n.t(\"number.currency.format.separator\"),\n integerSeparator: I18n.t(\"number.currency.format.delimiter\")\n }\n\n return formatNumber(formatOptions)(amount)\n }\n\n decimalDigits () {\n if (this.args.decimals !== null) {\n return this.args.decimals\n }\n\n return this.currency.decimal_digits\n }\n\n prefix () {\n if (this.args.excludeCurrency) {\n return \"\"\n }\n\n return `${this.currency.code} `\n }\n}\n","import {useLayoutEffect} from \"react\"\n\nconst ApiMakerUseEventEmitter = (events, event, onCalled) => {\n useLayoutEffect(() => {\n if (events) {\n events.addListener(event, onCalled)\n\n return () => {\n events.removeListener(event, onCalled)\n }\n }\n }, [events, event, onCalled])\n}\n\nexport default ApiMakerUseEventEmitter\n","import events from \"./events.mjs\"\nimport {useCallback} from \"react\"\nimport useEventEmitter from \"./use-event-emitter.mjs\"\nimport useShape from \"set-state-compare/src/use-shape.js\"\n\nconst useValidationErrors = (callback) => {\n const s = useShape({callback})\n\n s.useStates({validationErrors: []})\n\n const onValidationErrors = useCallback((validationErrors) => {\n const matchedValidationErrors = []\n\n for (const validationError of validationErrors.getValidationErrors()) {\n if (s.p.callback(validationError)) {\n validationError.setHandled()\n matchedValidationErrors.push(validationError)\n }\n }\n\n s.set({\n validationErrors: matchedValidationErrors\n })\n }, [])\n\n useEventEmitter(events, \"onValidationErrors\", onValidationErrors)\n\n return {\n validationErrors: s.s.validationErrors\n }\n}\n\nexport default useValidationErrors\n","import {dig, digg} from \"diggerize\"\nimport {useCallback, useEffect, useMemo} from \"react\"\nimport idForComponent from \"./inputs/id-for-component.mjs\"\nimport nameForComponent from \"./inputs/name-for-component.mjs\"\nimport strftime from \"strftime\"\nimport useShape from \"set-state-compare/src/use-shape.js\"\nimport useValidationErrors from \"./use-validation-errors.mjs\"\n\nconst useInput = ({props, wrapperOptions, ...useInputRestProps}) => {\n const useInputRestPropsKeys = Object.keys(useInputRestProps)\n\n if (useInputRestPropsKeys.length > 0) {\n throw new Error(`Unknown props given to useInput: ${useInputRestPropsKeys.join(\", \")}`)\n }\n\n const s = useShape(props)\n\n s.useStates({\n form: undefined\n })\n\n useEffect(() => {\n setForm()\n }, [s.props.inputRef?.current])\n\n s.meta.fakeComponent = {props}\n s.meta.isCheckbox = props.type == \"checkbox\" || wrapperOptions?.type == \"checkbox\"\n s.meta.isSelect = wrapperOptions?.type == \"select\"\n\n const formatValue = useCallback((value) => {\n const {formatValue} = s.props\n\n if (formatValue) {\n return formatValue(value)\n } else if (value instanceof Date && !isNaN(value.getTime())) {\n // We need to use a certain format for datetime-local\n if (inputType() == \"datetime-local\") {\n return strftime(\"%Y-%m-%dT%H:%M:%S\", value)\n } else if (inputType() == \"date\") {\n return strftime(\"%Y-%m-%d\", value)\n }\n }\n\n return value\n }, [])\n\n const inputDefaultChecked = useCallback(() => {\n if (\"defaultChecked\" in s.props) {\n return s.props.defaultChecked\n } else if (s.props.model) {\n if (!s.props.model[s.props.attribute])\n throw new Error(`No such attribute: ${s.props.attribute}`)\n\n return s.props.model[s.props.attribute]()\n }\n }, [])\n\n const inputDefaultValue = useCallback(() => {\n if (\"defaultValue\" in s.props) {\n return formatValue(s.props.defaultValue)\n } else if (s.props.model && s.props.attribute) {\n if (!s.props.model[s.props.attribute]) {\n throw new Error(`No such attribute defined on resource: ${digg(s.props.model.modelClassData(), \"name\")}#${s.props.attribute}`)\n }\n\n return formatValue(s.props.model[s.props.attribute]())\n }\n }, [])\n\n const inputRefBackup = useCallback(() => {\n if (!s.meta._inputRefBackup) s.meta._inputRefBackup = React.createRef()\n\n return s.meta._inputRefBackup\n }, [])\n\n const inputRef = useCallback(() => s.props.inputRef || inputRefBackup())\n\n const inputType = useCallback(() => {\n if (\"type\" in s.props) {\n return s.props.type\n } else if (s.m.isCheckbox) {\n return \"checkbox\"\n } else {\n return \"text\"\n }\n }, [])\n\n const label = useCallback(() => {\n if (\"label\" in s.props) {\n return s.props.label\n } else if (s.props.attribute && s.props.model) {\n return s.props.model.modelClass().humanAttributeName(s.props.attribute)\n }\n }, [])\n\n const setForm = useCallback(() => {\n const inputElement = inputRef().current\n\n let form\n\n if (inputElement) form = dig(inputElement, \"form\")\n if (form && form != s.s.form) s.set({form})\n }, [])\n\n const getId = useCallback(() => idForComponent(s.m.fakeComponent), [])\n const getName = useCallback(() => nameForComponent(s.m.fakeComponent), [])\n\n const getInputProps = useCallback(() => {\n const givenInputProps = s.props.inputProps || {}\n const inputProps = Object.assign(\n {\n id: getId(),\n name: getName(),\n ref: inputRef()\n },\n givenInputProps\n )\n\n if (s.m.isCheckbox) {\n if (\"checked\" in s.props) {\n inputProps.checked = s.props.checked\n }\n\n if (\"defaultChecked\" in s.props || (s.props.attribute && s.props.model)) {\n inputProps.defaultChecked = inputDefaultChecked()\n }\n } else if (\"value\" in s.props) {\n inputProps.value = s.props.value\n } else if (!(\"value\" in s.props)) {\n inputProps.defaultValue = inputDefaultValue()\n }\n\n return inputProps\n }, [])\n\n const {inputProps: oldInputProps, wrapperOpts: oldWrapperOpts, ...restProps} = props\n const type = inputType()\n\n s.meta.inputProps = getInputProps()\n s.meta.inputNameWithoutId = useMemo(() => s.m.inputProps.name?.replace(/\\[(.+)_id\\]$/, \"[$1]\"), [s.m.inputProps.name])\n\n if (!s.m.inputProps.ref) throw new Error(\"No input ref?\")\n if (!s.m.isSelect) s.m.inputProps.type = type\n\n const {validationErrors} = useValidationErrors((validationError) =>\n validationError.inputName == s.m.inputProps.name || validationError.inputName == s.m.inputNameWithoutId\n )\n\n const wrapperOpts = {\n errors: validationErrors,\n form: s.s.form,\n label: label()\n }\n\n return {\n inputProps: s.m.inputProps,\n wrapperOpts,\n restProps\n }\n}\n\nexport default useInput\n","import * as inflection from \"inflection\"\n\nexport default function apiMakerNameForComponent (component) {\n if (\"name\" in component.props) {\n return component.props.name\n } else if (component.props.attribute && component.props.model) {\n let attributeName = inflection.underscore(component.props.attribute)\n\n if (component.props.type == \"money\") {\n attributeName += \"_cents\"\n }\n\n return `${component.props.model.modelClassData().paramKey}[${attributeName}]`\n }\n}\n","import {simpleObjectValuesDifferent} from \"./diff-utils.js\"\n\nexport default function shouldComponentUpdate(component, nextProps, nextState) {\n if (Object.keys(nextProps).length != Object.keys(component.props).length) {\n return true\n }\n\n if (component.state && Object.keys(nextState).length != Object.keys(component.state).length) {\n return true\n }\n\n if (simpleObjectValuesDifferent(nextProps, component.props)) {\n return true\n }\n\n if (nextState && !component.state) {\n return true\n }\n\n return simpleObjectValuesDifferent(nextState, component.state)\n}\n"],"names":["promiseFinally","toError","module","exports","Timeout","set","delay","rejectReason","wrap","promise","constructor","this","_id","_delay","id","Promise","resolve","reject","clear","fn","setTimeout","wrappedPromise","timer","race","clearTimeout","then","result","e","value","Error","memo","shapeComponent","_ApiMakerBootstrapCard","_BaseComponent","ApiMakerBootstrapCard","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_defineProperty","_callSuper","concat","preventDefault","setState","expanded","_inherits","_createClass","key","cardRef","useRef","useStates","props","defaultExpanded","_this$props","children","className","controls","expandable","expandableHide","footer","header","table","responsiveTable","striped","restProps","_objectWithoutProperties","_excluded","digs","state","cardHeaderStyle","display","cardRefToUse","React","createElement","Object","assign","classNames","Boolean","ref","style","alignSelf","marginRight","href","onClick","digg","bodyClassNames","tableClassNames","_digs2","push","join","BaseComponent","PropTypes","isRequired","ApiMakerBootstrapInput","_ApiMakerBootstrapInput","_ShapeComponent","append","appendText","attribute","hint","currenciesCollection","currencyName","hintBottom","inputProps","inputClassName","model","inputRef","label","labelClassName","prepend","name","prependText","type","wrapperOpts","wrapperClassName","forwardedInputProps","_excluded2","errors","wrapperRef","htmlFor","Money","moneyRef","moneyProps","Input","InvalidFeedback","_i","_forwardedProps","forwardedProp","_i2","_forwardedInputProps","forwardedInputProp","ShapeComponent","placeholder","small","inputWrapper","ApiMakerBootstrapInvalidFeedback","_React$PureComponent","errorMessages","_step","_iterator","_createForOfIteratorHelper","s","n","done","_step2","_iterator2","getErrorMessages","errorMessage","err","f","onUpdated","active","debounce","onConnected","keys","debounceCallback","useMemo","p","updateMeta","onUpdatedCallback","useCallback","m","useLayoutEffect","connectUpdated","onConnectedListener","events","addListener","removeListener","unsubscribe","_ApiMakerEventUpdated","ApiMakerEventUpdated","useUpdatedEvent","propTypesExact","FormContext","createContext","FormInputs","inputs","onSubmit","formDataObjectizer","FormDataObjectizer","treatInitial","setValue","Platform","undefined","Form","_Form","formRef","setForm","form","Provider","tt","onFormSubmit","useForm","useContext","WrapperComponentClass","wrapperOptions","_useInput","useInput","ApiMakerInputsInput","_ApiMakerInputsInput","_args","AutoSubmit","component","autoSubmit","inputReference","current","newModel","currentValue","newValue","readAttribute","newFormattedValue","formatValue","onChange","localizedNumber","actualValue","delayAutoSubmit","blankInputName","getBlankInputName","target","_this2","defaultValue","visibleInputRef","_this2$tt$form","_this$props2","autoRefresh","onErrors","onMatchValidationError","sharedProps","inputPropsWithoutRef","Fragment","EventUpdated","onModelUpdated","inputName","inputDefaultValueLocalized","onInputChanged","visibleInput","decimal","I18n","t","integerSeparator","unformatted","replaceall","_this$props3","Date","isNaN","getTime","strftime","separator","delimiter","formatted","delayAutoSubmitTimeout","dig","_ApiMakerInputsMoney","ApiMakerInputsMoney","inputElement","getInputRef","cents","parseFloat","MoneyFormatter","fromMoney","amount","currency","inputCurrencyValue","decimals","excludeCurrency","toString","wholeRef","whole","stringToFloat","parseInt","oldCents","currencyRefBackup","currencyRef","wholeRefBackup","disabled","showCurrencyOptions","Config","getCurrenciesCollection","inputDefaultCentsValue","inputCentsId","inputCentsName","inputDefaultValue","inputId","onBlur","onKeyUp","inputCurrencyId","inputCurrencyName","map","option","modelClassData","paramKey","inflection","currencyFromMoney","code","amountFromMoney","idForComponent","PropTypesExact","centsInputName","_ApiMakerLink","ApiMakerLink","onPress","_len2","restArgs","_key2","apply","defaultPrevented","ctrlKey","metaKey","redirect","_toConsumableArray","_globalThis$apiMakerC","history","globalThis","apiMakerConfigGlobal","to","dataSet","usePressable","Pressable","dasherize","underscore","dataSetToAttributes","onLinkClicked","function_","wait","options","TypeError","RangeError","immediate","storedContext","storedArguments","timeoutId","timestamp","later","last","now","callContext","callArguments","debounced","arguments_","callNow","flush","formatter","negativeType","negative","negativeLeftSymbol","negativeRightSymbol","format","number","overrideOptions","output","charAt","replace","negativeLeftOut","noUnits","prefix","split","round","places","decim","slice","substr","leadingzeros","substring","truncate","x","padLeft","padding","buf","padRight","noSeparator","rgx","test","addDecimalSeparators","decimalsSeparator","addIntegerSeparators","negativeRightOut","suffix","unformat","allowedSeparators","forEach","newNumber","i","negativeOut","separate","defineProperty","_ref","obj","_ref$dataLayerName","dataLayerName","_ref$additionalEvents","additionalEvents","_ref$scheme","scheme","previewVariables","iframe","script","JSON","stringify","_build_parts2","_interopRequireDefault","_react2","__esModule","default","parts","noScriptAsReact","dangerouslySetInnerHTML","__html","noScriptAsHTML","scriptAsReact","scriptAsHTML","OS","select","web","isTesting","a","b","c","RegExp","ApiMakerInputsAutoSubmit","updateParams","update","input","checked","apiMakerIdForComponent","generatedInputId","Math","random","adapters","logger","console","WebSocket","log","messages","enabled","secondsSince","time","ConnectionMonitor","connection","visibilityDidChange","bind","reconnectAttempts","start","isRunning","startedAt","stoppedAt","startPolling","addEventListener","staleThreshold","stop","stopPolling","removeEventListener","recordMessage","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","pollTimeout","reconnectIfStale","getPollInterval","reconnectionBackoffRate","pow","min","connectionIsStale","refreshedAt","disconnectedRecently","reopen","document","visibilityState","isOpen","INTERNAL","message_types","welcome","disconnect","ping","confirmation","rejection","disconnect_reasons","unauthorized","invalid_request","server_restart","remote","default_mount_path","protocols","supportedProtocols","indexOf","Connection","consumer","open","subscriptions","monitor","disconnected","send","data","webSocket","isActive","getState","socketProtocols","subprotocols","uninstallEventHandlers","url","installEventHandlers","close","allowReconnect","error","reopenDelay","getProtocol","protocol","isState","triedToReconnect","isProtocolSupported","call","states","readyState","toLowerCase","eventName","handler","prototype","message","event","identifier","reason","reconnect","parse","reconnectAttempted","reload","confirmSubscription","notify","reconnected","notifyAll","willAttemptReconnect","Subscription","params","mixin","object","properties","extend","perform","action","command","remove","SubscriptionGuarantor","pendingSubscriptions","guarantee","subscription","startGuaranteeing","forget","filter","stopGuaranteeing","retrySubscribing","retryTimeout","subscribe","Subscriptions","guarantor","create","channelName","channel","add","ensureActiveConnection","findAll","sendCommand","callbackName","Consumer","_url","createWebSocketURL","connect","addSubProtocol","subprotocol","element","head","querySelector","getAttribute","getConfig","ApiMakerCableSubscriptionPool","activeSubscriptions","connected","subscriptionData","globalData","globalRequestData","debug","global","subscription_data","received","onReceived","subscribed","onSubscribed","forEachSubscription","callback","modelIdModes","modelName","modelIdMode","modelId","mode","creates","model_class_events","isConnected","emit","rawData","mi","mt","modelType","camelize","singularize","updates","destroySubscriptions","eventSubscriptions","modelClassEventSubscriptions","onUnsubscribe","registerSubscriptions","connectUnsubscriptionForSubscription","ApiMakerCableSubscription","shared","ApiMakerCableConnectionPool","cableSubscriptionPools","connections","upcomingSubscriptionData","upcomingSubscriptions","apiMakerCableConnectionPool","connectEventToExistingSubscription","path","cableSubscriptionPool","existingSubscriptions","isArray","connectModelEvent","currentSubscriptionData","currentSubscription","pathPart","includes","scheduleConnectUpcomingRunLast","queue","connectCreated","connectEvent","connectDestroyed","connectModelClassEvent","connectUpdate","connectUpcoming","ModelEvents","modelClassName","primaryKey","connectModelClass","modelClass","money","moneyString","fractional","currencyString","iso_code","moneyCurrency","toUpperCase","isMoney","toFixed","decimalDigits","formatOptions","decimal_digits","onCalled","validationErrors","onValidationErrors","matchedValidationErrors","validationError","getValidationErrors","setHandled","useInputRestProps","useInputRestPropsKeys","useEffect","meta","fakeComponent","isCheckbox","isSelect","inputType","inputDefaultChecked","defaultChecked","inputRefBackup","_inputRefBackup","createRef","humanAttributeName","getId","getName","attributeName","getInputProps","givenInputProps","oldInputProps","oldWrapperOpts","inputNameWithoutId","shouldComponentUpdate","nextProps","nextState","simpleObjectValuesDifferent"],"sourceRoot":""}