{"version":3,"file":"js/982-b87b13e7670aecc33750.js","mappings":"iGAAA,IAAIA,EAAM,CACT,wBAAyB,MACzB,4BAA6B,MAC7B,8CAA+C,MAC/C,kDAAmD,MACnD,0CAA2C,MAC3C,6CAA8C,MAC9C,gCAAiC,MACjC,oCAAqC,MACrC,mBAAoB,KACpB,uBAAwB,KACxB,wBAAyB,KACzB,4BAA6B,KAC7B,0BAA2B,MAC3B,8BAA+B,MAC/B,yBAA0B,KAC1B,6BAA8B,KAC9B,wCAAyC,MACzC,8BAA+B,MAC/B,wBAAyB,MACzB,4BAA6B,MAC7B,oCAAqC,MACrC,0BAA2B,MAC3B,6BAA8B,MAC9B,eAAgB,MAChB,mBAAoB,MACpB,gCAAiC,MACjC,oCAAqC,MACrC,0BAA2B,MAC3B,8BAA+B,MAC/B,sCAAuC,MACvC,qCAAsC,MACtC,yCAA0C,MAC1C,kCAAmC,MACnC,sCAAuC,MACvC,gBAAiB,MACjB,cAAe,MACf,iBAAkB,MAClB,cAAe,OAIhB,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,EAC5B,CACA,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,CACP,CACA,OAAOP,EAAIE,EACZ,CACAD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,EACpB,EACAC,EAAeW,QAAUR,EACzBS,EAAOC,QAAUb,EACjBA,EAAeE,GAAK,G,uGC3DpB,MAMA,8bANA,WACA,WACA,cACA,WAEA,WACA,8MAAAY,GAAA,gEAAAA,GAAA,2LAAAA,GAAA,WAAAA,GAAA,qGAAAA,IAAA,6SAAAA,IAAA,2OAAAA,EAAA,iBAAAA,EAAA,EAAAA,IAAA,EAAAA,GAAA,EAAAA,GAAA,SAsBA,UAA6C,SAAC,GAKtB,IAJtBC,EAIqB,EAJrBA,OACAC,EAGqB,EAHrBA,WACAC,EAEqB,EAFrBA,iBAEqB,EADrBC,SAEAD,EAAmBA,GAAoB,MAEvC,IAAME,GAAW,IAAAC,kBAGbC,EAAe,GAEjBA,EADEF,EACmB,OAANJ,QAAM,IAANA,GAAAA,EAAQO,eAAgB,aAAMP,EAAOO,eAAeC,OAAO,cAAgB,GAErE,OAANR,QAAM,IAANA,GAAAA,EAAQO,eAAgB,aAAMP,EAAOO,eAAeC,OAAO,cAAgB,GAG5F,SAAkC,IAAAC,UAAiBP,GAAnD,GAAOQ,EAAP,KAAkBC,EAAlB,KACA,KAAsB,IAAAF,UAAuB,OAANT,QAAM,IAANA,GAAAA,EAAQY,IAAMZ,EAAOY,IAAIC,WAAa,IAA7E,GAAOD,EAAP,KAAYE,EAAZ,KACA,KAAkC,IAAAL,UAChCH,GADF,GAAOS,EAAP,KAAkBC,EAAlB,KAGA,KAA0C,IAAAP,WAAuB,OAANT,QAAM,IAANA,OAAA,EAAAA,EAAQO,gBAAiB,IAApF,GAAOU,EAAP,KAAsBC,EAAtB,KACA,KAAgC,IAAAT,WAAuB,OAANT,QAAM,IAANA,OAAA,EAAAA,EAAQmB,YAAa,IAAtE,GAAOC,EAAP,KAAiBC,EAAjB,KACA,KAA4B,IAAAZ,eAAca,GAA1C,GAAOC,EAAP,KAAeC,EAAf,KAGA,QAAcF,GAAVtB,EAAqB,MAAM,IAAIR,MAAM,uBAEzC,IAAMiC,EAAiB,CACrBC,QAAuB,QAAdhB,EAAsB,QAAU,QAGrCiB,EAAiB,CACrBD,QAAuB,QAAdhB,EAAsB,QAAU,QAGrCkB,EAAsB,CAC1BF,QAAuB,aAAdhB,EAA2B,QAAU,QAkDhD,OA5CA,IAAAmB,YAAU,WAER,GAA2D,SAAvDC,eAAeC,QAAQ,4BAAwC,CACjE,IAAMC,EAAkBF,eAAeC,QAAQ,uBACzCE,EAAYH,eAAeC,QAAQ,iBACnCG,EAAYJ,eAAeC,QAAQ,yBACnCI,EAAiBL,eAAeC,QAAQ,sBACxCR,EAASa,KAAKC,MAAMP,eAAeC,QAAQ,wBAA0B,MAE3EP,EAAUD,GACVZ,EAAaqB,GAAmB9B,GAAoB,OACpDY,EAAOmB,GAAa,IACpBjB,EAAakB,GAAa,IAC1Bb,EAAYc,GAAkB,IAC9BjB,GAAiB,aAAMgB,EAAW,cAAc1B,OAAO,cACxD,CAGD,CAAC,YAAa,MAAO,cAAe,WAAY,YAAa,kBAAkB8B,SAC7E,SAAAC,GAAG,OAAIT,eAAeU,WAAf,oBAAuCD,GAA3C,IAELT,eAAeU,WAAW,sBAC3B,GAAE,KAGH,IAAAX,YAAU,WACR,IAAMY,EAAe,WACnBX,eAAeY,QAAQ,sBAAuBhC,GAC9CoB,eAAeY,QAAQ,gBAAiB9B,GACxCkB,eAAeY,QAAQ,wBAAyB3B,GAChDe,eAAeY,QAAQ,qBAAsBtB,EAC9C,EAEKuB,EAA0B,uBAAd1C,EAAsC,mBAAqBA,EACvE2C,EAAcC,SAASC,eAAT,UAA2BH,EAA3B,UAGpB,OAFW,OAAXC,QAAW,IAAXA,GAAAA,EAAaG,iBAAiB,SAAUN,GAAc,GAE/C,WACM,OAAXG,QAAW,IAAXA,GAAAA,EAAaI,oBAAoB,SAAUP,GAAc,EAC1D,CAEF,GAAE,CAAC/B,EAAWE,EAAKG,EAAWK,IAI7B,wBAAC,EAAA6B,cAAD,CAAeC,MAAOA,EAAAA,SACpB,+BAAK/D,GAAI,iBAAkBgE,MAAO,CAACC,aAAc,KAC/C,+BAAMD,MAAO,CAACE,UAAW,GAAID,aAAc,IACzC,iCAAOE,UAAW,aAAcH,MAAO,CAACC,aAAc,IAAtD,wBACA,+BAAKD,MAAO1B,GACV,wBAAC,EAAA8B,UAAD,CACEC,MAAM,MACNC,KAAI,UAAKxD,EAAL,SACJyD,KAAK,OACLC,MAAO/C,EACPgD,SAAU,SAACC,GACT/C,EAAO+C,EAAMC,OAAOH,OACpB7B,eAAeY,QAAQ,gBAAiBmB,EAAMC,OAAOH,OACrDtC,EAAY,IACZL,EAAa,IACbE,EAAiB,GAClB,KAGL,+BAAKiC,MAAOxB,GACTvB,GAAY,gDAEX,wBAAC,EAAAmD,UAAD,CACAC,MAAM,gBACNG,MAAO5C,EACPgD,YAAa,aACbH,SAAU,SAACC,GACT,IAAIF,EAAgBE,EAAMC,OAAOH,MAQjC,IAPAA,EAAQA,EAAMK,QAAQ,UAAW,KAEvBC,OAAS,IAAGN,EAAQA,EAAMO,UAAU,EAAG,IAE7CP,EAAMM,OAAS,IAAGN,EAAK,UAAMA,EAAMQ,MAAM,EAAG,GAArB,YAA2BR,EAAMQ,MAAM,KAC9DR,EAAMM,OAAS,IAAGN,EAAK,UAAMA,EAAMQ,MAAM,EAAG,GAArB,YAA2BR,EAAMQ,MAAM,KAE9DR,EAAMM,QAAU,GAAI,CACtBjD,EAAa2C,GACb,IAAMS,GAA0B,aAAMT,EAAO,cAAcnD,OAAO,cAClEU,EAAiBkD,EAClB,CACF,EACDC,gBAAiB,CAACC,QAAQ,KAE1B,iCACEZ,KAAK,SACLD,KAAI,UAAKxD,EAAL,mBACJ0D,MAAO1C,MAKTb,GAAY,wBAAC,EAAAmD,UAAD,CACZC,MAAM,gBACNC,KAAI,UAAKxD,EAAL,mBACJyD,KAAK,OACLC,MAAO5C,EACP6C,SAAU,SAACC,GACT/B,eAAeY,QAAQ,wBAAyBmB,EAAMC,OAAOH,OAC7D3C,EAAa6C,EAAMC,OAAOH,OAC1B7C,EAAO,IACPO,EAAY,GACb,EACDgD,gBAAiB,CAACC,QAAQ,MAI9B,+BAAKnB,MAAOvB,GACV,wBAAC,EAAA2C,WAAD,CACEZ,MAAOvC,EACPqC,KAAI,UAAKxD,EAAL,eACJ2D,SAAU,SAACC,GACT/B,eAAeY,QAAQ,qBAAsBmB,EAAMC,OAAOH,OAC1DtC,EAAYwC,EAAMC,OAAOH,OACzB3C,EAAa,IACbF,EAAO,GACR,GACD,wBAAC,EAAA0D,iBAAD,CAAkBb,MAAM,QAAQxE,GAAI,wBAAyBsF,QAAS,wBAAC,EAAAC,MAAD,MAAUlB,MAAM,UACtF,wBAAC,EAAAgB,iBAAD,CAAkBb,MAAM,QAAQxE,GAAI,wBAAyBsF,QAAS,wBAAC,EAAAC,MAAD,MAAUlB,MAAM,UACtF,wBAAC,EAAAgB,iBAAD,CAAkBb,MAAM,SAASxE,GAAI,yBAA0BsF,QAAS,wBAAC,EAAAC,MAAD,MAAUlB,MAAM,cAI9F,mCACiB,QAAd9C,GACC,wBAAC,EAAAiE,OAAD,CACEC,QAAQ,WACRzF,GAAI,iBACJ0F,MAAM,UACN1B,MAAO,CAAC2B,YAAa,IACrBC,QAAS,WACPjD,eAAeY,QAAQ,sBAAuB,OAC9C/B,EAAa,MACd,GARH,WAaa,QAAdD,GACC,wBAAC,EAAAiE,OAAD,CACEC,QAAQ,WACRzF,GAAI,iBACJ0F,MAAM,UACN1B,MAAO,CAAC2B,YAAa,IACrBC,QAAS,WACPjD,eAAeY,QAAQ,sBAAuB,OAC9C/B,EAAa,MACd,GARH,qBAYa,aAAdD,GACC,wBAAC,EAAAiE,OAAD,CACEC,QAAQ,WACRzF,GAAI,mBACJ0F,MAAM,UACNE,QAAS,WACPjD,eAAeY,QAAQ,sBAAuB,YAC9C/B,EAAa,WACd,GAPH,oBAYF,+BAAK2C,UAAW,8BACb/B,GAAUA,EAAM,OAO5B,C,uGCzPD,MAEA,8bAFA,WACA,WACA,+XAAAxB,EAAA,EAAAA,EAAA,iBAAAA,IAAA,uBAAAA,GAAA,UAAAA,GAAA,GAAAA,EAAA,yYAAAA,GAAA,gEAAAA,GAAA,2LAAAA,GAAA,WAAAA,GAAA,qGAAAA,IAAA,6SAAAA,IAAA,2OAAAA,EAAA,iBAAAA,EAAA,EAAAA,IAAA,EAAAA,GAAA,EAAAA,GAAA,SAYA,IAAMiF,EAAwC,CAC5C,CACEvB,KAAM,uBACND,MAAO,uBACPyB,SAAS,GAEX,CACExB,KAAM,WACND,MAAO,WACPyB,SAAS,GAEX,CACExB,KAAM,gCACND,MAAO,iDACPyB,SAAS,GAEX,CACExB,KAAM,uBACND,MAAO,4CACPyB,SAAS,GAEX,CACExB,KAAM,yBACND,MAAO,yBACPyB,SAAS,GAEX,CACExB,KAAM,aACND,MAAO,iBACPyB,SAAS,IAIb,UAAgE,SAAC,GAAqD,IAApDC,EAAmD,EAAnDA,MAAOC,EAA4C,EAA5CA,cACvE,KAAwC,IAAA1E,UACtCuE,EAAoBhG,KAAI,SAAAoG,GACtB,IAAMC,EAAeF,EAAcG,MAAK,SAACC,GAAD,OAA2BA,EAAM9B,OAAS2B,EAAK3B,IAA/C,IACxC,OAAO4B,EAAY,OAAOD,GAAP,IAAaH,QAASI,EAAaJ,UAAWG,CAClE,KAJH,GAAOI,EAAP,KAAqBC,EAArB,KAmBA,OACE,wBAAC,EAAAC,UAAD,KACE,wBAAC,EAAAC,UAAD,KACGH,EAAaxG,KAAI,SAACoG,EAAMQ,GAAP,OAChB,wBAAC,EAAApB,iBAAD,CACEjC,IAAKqD,EACLnB,QACE,wBAAC,EAAAoB,OAAD,CACEC,QAASV,EAAKH,QACdrB,SAAU,kBArBH,SAACgC,GACpB,IAAMG,EAAeP,EAAarB,QAClC4B,EAAaH,GAAOX,SAAWc,EAAaH,GAAOX,QACnDQ,EAAgBM,GAEhBC,MAAM,oBAAD,OAAqBd,EAArB,sBAAgD,CACnDe,OAAQ,QACRC,SAAS,IAAAA,WACTC,KAAM/D,KAAKgE,UAAUL,EAAaH,KAErC,CAW6BS,CAAaT,EAAnB,EACVnC,KAAM2B,EAAK5B,QAGfA,MAAO4B,EAAK5B,OAVE,KAgBzB,C,0HCtFD,eAEA,UAAgC,WA4B9B,OA3BA,IAAA3B,YAAU,WACSgB,SAASyD,iBAAmC,kBAEpDhE,SAAQ,SAACiE,GAEhB,IAAMC,EAAU3D,SAAS4D,cAA8B,IAAMF,EAAQG,QAAQF,SAGvEG,EAAgB,WACpB,GAAIH,EAAS,CACX,IAAMvC,EAASsC,EAAQ5C,MAAMM,OACvB2C,EAAYC,OAAON,EAAQG,QAAQzC,QACzCuC,EAAQM,YAAR,UAAyB7C,EAAzB,YAAmC2C,EACpC,CACF,EAGDD,IACAJ,EAAQxD,iBAAiB,QAAS4D,GAGlC9D,SAASE,iBAAiB,2BAA2B,WACnDwD,EAAQvD,oBAAoB,QAAS2D,EACtC,GACF,GACF,GAAE,IAEI,IACR,C,sGC/BD,MAQA,8bARA,WAEA,WACA,cACA,WACA,cAEA,cACA,uaAAA5G,EAAA,EAAAA,EAAA,iBAAAA,IAAA,uBAAAA,GAAA,UAAAA,GAAA,GAAAA,EAAA,yYAAAA,GAAA,gEAAAA,GAAA,2LAAAA,GAAA,WAAAA,GAAA,qGAAAA,IAAA,6SAAAA,IAAA,2OAAAA,EAAA,iBAAAA,EAAA,EAAAA,IAAA,EAAAA,GAAA,EAAAA,GAAA,kBAwBA,UAA2C,SAAC,GAQrB,IAPrBgH,EAOoB,EAPpBA,KAOoB,IANpBC,SAAAA,OAMoB,MANT,CAAC,EAMQ,MALpBC,WAAAA,OAKoB,aAJpBC,cAAAA,OAIoB,aAHpBC,SAAAA,OAGoB,aAFpBC,UAAAA,OAEoB,SADpBC,EACoB,EADpBA,kBAEMC,GAAoB,OAAJP,QAAI,IAAJA,OAAA,EAAAA,EAAMQ,cAAe,CAAC,EACtCC,GAAkB,OAAJT,QAAI,IAAJA,OAAA,EAAAA,EAAMU,YAAa,CAAC,EAClCC,GAAU,IAAAC,aACVC,GAAgB,IAAAD,aAEtB,KAA8C,IAAAlH,UAASuG,GAAvD,GAAOa,EAAP,KAAwBC,EAAxB,KACA,KAAwC,IAAArH,WAAS,GAAjD,GAAOsH,EAAP,KACA,GADA,KACA,GAAoC,IAAAtH,UAAqB6G,GAAzD,IAAOU,EAAP,KAAmBC,EAAnB,KACA,KAAgC,IAAAxH,UAAmB+G,GAAnD,GAAOU,EAAP,KAAiBC,EAAjB,KACA,KAAwC,IAAA1H,WAAkB,GAA1D,GAAqB2H,GAArB,YAMA,aAAgB,CACdP,gBAAAA,EACAD,cAAAA,EACAF,QAAAA,EACAU,gBAAAA,EACAlB,cAAAA,EACAG,kBAAAA,KAIF,IAAAxF,YAAU,WACRoG,EAAcX,EACf,GAAE,CAACA,KAKJ,IAAAzF,YAAU,WAER,GAA0D,SAAtDC,eAAeC,QAAQ,2BAAuC,CAChE,IAAMsG,EAAavG,eAAeC,QAAQ,YAC1C,GAAIsG,EAAY,CACdP,EAAmB1F,KAAKC,MAAMgG,IAG9BF,EAAY,CAAC,GACb,IAAMG,EAAY,KAAOJ,GACzBC,EAAYG,EACb,CACF,CACDxG,eAAeU,WAAW,2BAC1BV,eAAeU,WAAW,WAE3B,GAAE,CAACuF,IAEJ,IAKMQ,EAAqB,KAAOL,GAUlC,GATIK,IAGFA,EAAsB,0BAA4B,CAChDC,MAAO,CAAC,EACRC,UAAWxB,IAIX,OAACF,QAAD,IAACA,IAAAA,EAAMQ,YAAa,OAAO,gCAAMjE,UAAW,cAAjB,0BAE1B8D,IACHmB,EAAsB,cAAgB,CACpCG,MAAO,KAQX,IAAMC,EAA4B,CAChC,yCACA,8CAGF,IACE,OACE,wBAAC,EAAA1F,cAAD,CAAeC,MAAOA,EAAAA,SAEpB,wBAAC,EAAA0F,KAAD,CACEtF,UAAW,YACXuF,IAAKnB,EACLoB,iBAAe,EACfC,cAAc,SACd5B,SAAUA,EACVvD,SA1CS,SAACoF,GAChBlB,EAAmBkB,EAAYhC,UAC/BlF,eAAeY,QAAQ,WAAYN,KAAKgE,UAAU4C,EAAYhC,UAC/D,EAwCOiC,OAAQjB,EACRE,SAAUK,EACVW,gBAAiB,SAAC3H,GAChB,OAAOA,EAAO4H,QAAO,SAAC5J,GAEpB,OAAQoJ,EAAgBS,MAAK,SAAAC,GAAS,uBAAI9J,EAAE+J,eAAN,aAAI,EAAWC,SAASF,EAAxB,GACvC,GACF,EACDrC,SAAUa,EACV2B,UAAWA,EAAAA,SAEX,kCAAQX,IAAKjB,EAAelE,KAAK,SAASP,MAAO,CAACzB,QAAS,WAIlE,CAAC,MAAOnC,GACP,OAAO,gCAAM+D,UAAW,cAAjB,iBACR,CACF,C,wHCxJD,EAqBA,8bArBA,WACA,WAaA,cACA,cACA,WACA,cACA,cAEA,WACA,wgBAAAvD,GAAA,gEAAAA,GAAA,2LAAAA,GAAA,WAAAA,GAAA,qGAAAA,IAAA,6SAAAA,IAAA,2OAAAA,EAAA,iBAAAA,EAAA,EAAAA,IAAA,EAAAA,GAAA,EAAAA,GAAA,SAUA,UAAqD,SAAC,GAM/C,IAAD,UALJgH,EAKI,EALJA,KACA0C,EAII,EAJJA,gBACAC,EAGI,EAHJA,kBAGI,IAFJC,iBAAAA,OAEI,SADJC,EACI,EADJA,mBAEA,KAAgC,IAAAnJ,UAAgCsG,GAAhE,GAAO8C,EAAP,KAAiBC,EAAjB,KACA,KAAkD,IAAArJ,UAAgCsG,GAAlF,GAAOgD,EAAP,KAA0BC,EAA1B,KAEA,KAAgD,IAAAvJ,WAAS,GAAzD,GAAOwJ,EAAP,KAAyBC,EAAzB,KACA,KAAgD,IAAAzJ,WAAS,GAAzD,GAAO0J,EAAP,KAAyBC,EAAzB,KACA,KAA4C,IAAA3J,WAAS,GAArD,GAAO4J,EAAP,KAAuBC,EAAvB,KACA,KAAoC,IAAA7J,WAAS,GAA7C,GAAO8J,EAAP,KAEA,GAFA,KAEA,GAAkC,IAAA9J,WAAS,GAA3C,IAAO+J,EAAP,KAAkBC,EAAlB,KACA,KAAkD,IAAAhK,WAAS,GAA3D,GAAOiK,EAAP,KAA0BC,EAA1B,MAEA,IAAA9I,YAAU,YACI,OAARgI,QAAQ,IAARA,OAAA,EAAAA,EAAUtC,gBAAV,OAA0BR,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAMQ,eAAuB,OAARsC,QAAQ,IAARA,OAAA,EAAAA,EAAUpC,cAAV,OAAwBV,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAMU,YAC/EkD,GAAqB,EAExB,GAAE,CAACd,IAMJ,IAgBMe,EAAc,yCAAG,oGAGjBf,EAHiB,qBAKfW,EALe,oBAMZf,GAAoBC,EANR,sBAMiC,IAAIlK,MAAM,kCAN3C,cAQb2G,EAA+B,CAAC,GAChC,iBAAuBsD,EAC3BtD,EAAI,oBAA0BuD,EAC9BvD,EAAKY,KAAO8C,EAXK,mBAcQ7D,MAAM,mBAAoB,CAC/CC,OAAQ,OACRC,SAAS,IAAAA,WACTC,KAAM/D,KAAKgE,UAAUD,KAjBR,aAcT0E,EAdS,QAoBFC,GApBE,kCAqBWD,EAASE,OArBpB,QAqBPC,EArBO,OAuBblB,EAAYkB,GACZhB,EAAqBgB,GACrBL,GAAqB,GACrBF,GAAa,GA1BA,gIAmCQzE,MAAM,mBAAD,OAAoB6D,EAAS1K,IAAM,CAC7D8G,OAAQ,QACRC,SAAS,IAAAA,WACTC,KAAM/D,KAAKgE,UAAUyD,KAtCR,aAmCTgB,EAnCS,QAyCFC,GAzCE,kCA0CMD,EAASE,OA1Cf,eA2CbJ,GAAqB,GACrBF,GAAa,GA5CA,4HAuDb,IAAIjL,MAAM,iDAvDG,mEAAH,uBAwEpB,OACE,wBAAC,EAAAyD,cAAD,CAAeC,MAAOA,EAAAA,SACnB2G,GACC,wBAAC,EAAAoB,KAAD,CAAM1I,IAAKsH,EAAS1K,GAAI+L,GAAI,CAAC9H,aAAc,IACzC,wBAAC,EAAA+H,YAAD,KACE,wBAAC,EAAAC,WAAD,CAAYxG,QAAQ,MAApB,UAA0BiF,EAAStC,mBAAnC,aAA0B,EAAsBmB,OAChD,wBAAC,EAAA0C,WAAD,CAAYxG,QAAQ,SAApB,UAA6BiF,EAAStC,mBAAtC,aAA6B,EAAsB8D,aACnD,wBAAC,EAAAC,SAAD,CAAUC,GAAIhB,GACZ,wBAAC,EAAAa,WAAD,CAAYF,GAAI,CAACM,WAAY,YAAaC,SAAU,WACjDrJ,KAAKgE,UAAUyD,EAAStC,YAAa,KAAM,MAIlD,wBAAC,EAAAmE,YAAD,KACE,mCACE,wBAAC,UAAD,CAAMC,WAAS,GACb,wBAAC,UAAD,CAAMC,MAAI,EAACC,GAAI,IACb,wBAAC,EAAAC,WAAD,CAAY/G,QAAS,kBAAMuF,GAAkB,EAAxB,GAA+B,wBAAC,UAAD,OACpD,wBAAC,EAAAwB,WAAD,CAAY/G,QAAS,kBAAMmF,GAAoB,EAA1B,GAAiC,wBAAC,UAAD,OACrDQ,GAAqB,wBAAC,EAAA/F,OAAD,CAAQC,QAAS,WAAYG,QAAS6F,GAAtC,UAG1B,wBAAC,UAAD,CAAMgB,MAAI,GACPlB,GACC,wBAAC,EAAAU,WAAD,CAAYF,GAAI,CAACO,SAAU,IAAKnI,UAAW,2BAA3C,iCAYVuG,GACA,wBAAC,EAAAlF,OAAD,CAAQC,QAAS,WAAYG,QA7HjB,yCAAG,oFACnB+E,EAAY,CACVvC,YAAa,CACXmB,MAAO,WACP2C,YAAa,aACb3H,KAAM,UAER+D,UAAW,CAAC,IAEdkD,GAAqB,GACrBF,GAAa,GAVM,4CAAH,wBA6HZ,cAGF,wBAAC,EAAAsB,OAAD,CACEC,KAAM3B,EACN4B,QAAS,SAACpI,EAAOqI,GAEA,kBAAXA,GACF5B,GAAkB,EAErB,EACDY,GAAI,CACF,iBAAkB,CAChBiB,MAAO,MACPC,OAAQ,MACRC,SAAU,OACVC,UAAW,UAIf,wBAAC,EAAAC,cAAD,KACG1C,GACC,wBAAC,UAAD,CACED,mBAAoBA,EACpBC,SAAUA,EACVF,iBAAkBA,EAClBG,YAAaA,KAGfD,GAAY,gCAAMvG,UAAW,cAAjB,wBAEhB,wBAAC,EAAAkJ,cAAD,KAEG9B,GACC,wBAAC,EAAAU,WAAD,CAAYF,GAAI,CAACO,SAAU,GAAI3G,YAAa,QAASxB,UAAW,2BAAhE,4BAIF,wBAAC,EAAAqB,OAAD,CAAQI,QAAS,WACX2F,EACFN,GAAoB,GAEpBE,GAAkB,EAErB,EAAEzF,MAAM,WANT,UAYA,wBAAC,EAAAF,OAAD,CAAQI,QAAS,WACV6F,IACLN,GAAkB,EACnB,EAAEzF,MAAM,WAHT,UAQJ,wBAAC,EAAAkH,OAAD,CAAQC,KAAM/B,EAAkBgC,QAAS,kBAAM/B,GAAoB,EAA1B,GACvC,wBAAC,EAAAuC,YAAD,yBACA,wBAAC,EAAAF,cAAD,KACE,wBAAC,EAAAG,kBAAD,oDAIF,wBAAC,EAAAF,cAAD,KACE,wBAAC,EAAA7H,OAAD,CAAQI,QAAS,WACfmF,GAAoB,EACrB,EAAErF,MAAM,WAFT,UAGA,wBAAC,EAAAF,OAAD,CAAQI,QAvHE,yCAAG,wFACfyF,EADe,gBAEjBV,OAAYxI,GAFK,2BAGRuI,EAHQ,iCAIM7D,MAAM,mBAAD,OAAoB6D,EAAS1K,IAAM,CAC7D8G,OAAQ,SACRC,SAAS,IAAAA,aANM,cAQjB4D,OAAYxI,GACZ4I,GAAoB,GATH,6CAAH,uBAuHqBrF,MAAM,WAArC,YAKJ,wBAAC,EAAAkH,OAAD,CAAQC,KAAM7B,EAAkB8B,QAAS,kBAAM7B,GAAoB,EAA1B,GACvC,wBAAC,EAAAqC,YAAD,uBACA,wBAAC,EAAAF,cAAD,KACE,wBAAC,EAAAG,kBAAD,6EAIF,wBAAC,EAAAF,cAAD,KACE,wBAAC,EAAA7H,OAAD,CAAQI,QAAS,WACfqF,GAAoB,EACrB,GAFD,oBAMA,wBAAC,EAAAzF,OAAD,CAAQI,QAAS,WACfqF,GAAoB,GACpBE,GAAkB,GAClBK,GAAqB,GACrBb,EAAYC,EACb,GALD,+BAYT,C,uGC5RD,kBACA,WACA,cACA,WACA,UACA,SACA,iBAIA,WACA,WAGA,SAGA,kBAEA,uSAAAhK,EAAA,EAAAA,EAAA,iBAAAA,IAAA,uBAAAA,GAAA,UAAAA,GAAA,GAAAA,EAAA,yYAAAA,GAAA,gEAAAA,GAAA,2LAAAA,GAAA,WAAAA,GAAA,qGAAAA,IAAA,6SAAAA,IAAA,2OAAAA,EAAA,iBAAAA,EAAA,EAAAA,IAAA,EAAAA,GAAA,EAAAA,GAAA,SADA,SACA,SASA,UAAyD,SAAC,GAA2E,IAA1E8J,EAAyE,EAAzEA,SAAUC,EAA+D,EAA/DA,YAA+D,IAAlDH,iBAAAA,OAAkD,SAAxBC,EAAwB,EAAxBA,mBAC1G,IAAKC,IAAaC,EAAa,OAAO,gCAAMxG,UAAW,cAAjB,gBACtC,GAAI,OAACuG,QAAD,IAACA,IAAAA,EAAUtC,YAAa,OAAO,gCAAMjE,UAAW,cAAjB,kBAEnC,QAAgCqJ,EAAAA,QAAMlM,SAAS,GAA/C,GAAOmM,EAAP,KAAiBC,EAAjB,KAMA,OACE,wBAAC,EAAA5J,cAAD,CAAeC,MAAOA,EAAAA,SAGG,MAAtB0G,GACC,0HAOF,wBAAC,EAAAwB,WAAD,CAAYxG,QAAS,MAArB,gBACA,6BAAGtB,UAAW,cAAd,6FAIA,wBAAC,EAAAwJ,IAAD,CAAK5B,GAAI,CAAC6B,aAAc,EAAGC,YAAa,UAAW5J,aAAc,IAC/D,wBAAC,EAAA6J,KAAD,CAAMtJ,MAAOiJ,EAAUhJ,SAtBL,SAACC,EAA6BqJ,GACpDL,EAAYK,EACb,GAqBO,wBAAC,EAAAC,IAAD,CAAK3J,MAAM,iBACX,wBAAC,EAAA2J,IAAD,CAAK3J,MAAM,YACVmG,GAAqB,wBAAC,EAAAwD,IAAD,CAAK3J,MACzB,gDACE,wBAAC,EAAA4J,MAAD,CACEC,aAAc,wBAAC,EAAAC,KAAD,CAAUpC,GAAI,CAACkB,OAAQ,OAAQD,MAAO,UACpDtH,MAAM,WAFR,oBAWR,wBAAC,EAAAiI,IAAD,CAAKS,OAAqB,IAAbX,GACX,wBAAC,EAAAY,KAAD,CAAM7B,WAAS,GACb,wBAAC,EAAA6B,KAAD,CAAM5B,MAAI,EAACC,GAAI,IACXjC,GAA6C,OAAvBA,GACtB,wBAAC,EAAA6D,YAAD,CACEnK,UAAW,kBACX2F,OAAQ7G,KAAKgE,UAAUyD,EAAStC,aAChCmG,SAAUtL,KAAKgE,UAAUyD,EAASpC,WAClC7D,SAAU,SAAC+J,EAAmBC,GAC5B,IAAMC,EAAyB,CAAC,EAC5BF,IAAWE,EAAYtG,YAAcnF,KAAKC,MAAMsL,IAChDC,IAAaC,EAAYpG,UAAYrF,KAAKC,MAAMuL,IACpD9D,EAAY,EAAD,KAAKD,GAAagE,GAC9B,EACDC,KAAM,CACJC,sBAAuB,CAAC,QAAS,UAAW,OAAQ,WAAY,SAChEC,OAAQ,CACNC,cAAe,YACfC,qBAAsB,eAExBC,oBAAqB,CACnBC,eAAgB,iCAElBC,cAAc,KAIlBzE,GAA6C,OAAvBA,GACtB,wBAAC,EAAA6D,YAAD,CACEnK,UAAW,kBACX2F,OAAQ7G,KAAKgE,UAAUyD,EAAStC,aAChCmG,SAAUtL,KAAKgE,UAAUyD,EAASpC,WAClC7D,SAAU,SAAC+J,EAAmBC,GAC5B,IAAMC,EAAyB,CAAC,EAC5BF,IAAWE,EAAYtG,YAAcnF,KAAKC,MAAMsL,IAChDC,IAAaC,EAAYpG,UAAYrF,KAAKC,MAAMuL,IACpD9D,EAAY,EAAD,KAAKD,GAAagE,GAC9B,EACDC,KAAM,CACJC,sBAAuB,CAAC,QAAS,UAAW,OAAQ,WAAY,SAChEC,OAAQ,CACNC,cAAe,YACfC,qBAAsB,eAExBC,oBAAqB,CACnBC,eAAgB,iCAElBC,cAAc,QAU1B,wBAAC,EAAAvB,IAAD,CAAKS,OAAqB,IAAbX,GACX,wBAAC,EAAAY,KAAD,CAAM7B,WAAS,GACb,wBAAC,EAAA6B,KAAD,CAAM5B,MAAI,EAACC,GAAI,KACXhC,EAAStC,aAAe,gCAAMjE,UAAW,cAAjB,0BACzBuG,EAAStC,aAAe,wBAAC,UAAD,CAAUR,KAAM8C,OAM/C,wBAAC,EAAAiD,IAAD,CAAKS,OAAqB,IAAbX,GACX,wBAAC,EAAAY,KAAD,CAAM7B,WAAS,GACb,wBAAC,EAAA6B,KAAD,CAAM5B,MAAI,EAACC,GAAI,IACb,wBAAC,EAAAiB,IAAD,CAAKS,OAAqB,IAAbX,GACX,wBAAC,EAAAY,KAAD,CAAM7B,WAAS,GACb,wBAAC,EAAA6B,KAAD,CAAM5B,MAAI,EAACC,GAAI,IACb,wBAAC,EAAAT,WAAD,CAAYxG,QAAS,MAArB,gBAGA,6BAAGtB,UAAU,aAAaH,MAAO,CAACC,aAAc,SAAhD,kMAMA,6BAAGE,UAAU,aAAaH,MAAO,CAACC,aAAc,SAAhD,8HAKA,6BAAGE,UAAU,aAAaH,MAAO,CAACC,aAAc,SAAhD,OAEE,wBAAC,EAAAgI,WAAD,CAAYjI,MAAO,CACjBmL,WAAY,OACZC,gBAAiB,OACjBC,QAAS,OACTnL,UAAW,OACXD,aAAc,SALhB,yFAFF,gEAeA,kDACEyG,EAAStC,aAAe,gCAAMjE,UAAW,cAAjB,uBACzBuG,EAAStC,aACR,wBAAC,UAAD,CACEkH,KAAK,OACLvL,MAAM,UACNO,KAAK,mBACLiL,YAAa,CAACC,iBAAiB,GAC/BlD,SAAU,GACVmD,iBAAiB,EACjBC,YAAY,EACZC,qBAAqB,EACrBnL,MAAOvB,KAAKgE,UAAUyD,EAAStC,YAAa,KAAM,GAClD3D,SAAU,SAACmL,GACT,IACE,IAAMC,EAAS5M,KAAKC,MAAM0M,GAC1BjF,EAAY,EAAD,KAAKD,GAAL,IAAetC,YAAayH,IACxC,CAAC,MAAOC,GACPnF,EAAY,EAAD,KACND,GADM,IACItC,YAAa,CACxB,MAAS,WACT,YAAe,aACf,KAAQ,YAGb,CACF,EACD2H,WAAY,CACVC,iBAAiB,EACjBC,QAAS,GAEXjM,MAAO,CAACgJ,MAAO,UAInB,+CACCtC,EAASpC,WACR,wBAAC,UAAD,CACEgH,KAAK,OACLvL,MAAM,UACNO,KAAK,mBACLiL,YAAa,CAACC,iBAAiB,GAC/BlD,SAAU,GACVmD,iBAAiB,EACjBC,YAAY,EACZC,qBAAqB,EACrBnL,MAAOvB,KAAKgE,UAAUyD,EAASpC,UAAW,KAAM,GAChD7D,SAAU,SAACmL,GACT,IACE,IAAMC,EAAS5M,KAAKC,MAAM0M,GAC1BjF,EAAY,EAAD,KAAKD,GAAL,IAAepC,UAAWuH,IACtC,CAAC,MAAOC,GACPnF,EAAY,EAAD,KACND,GADM,IACIpC,UAAW,CACtB,MAAS,WACT,YAAe,aACf,KAAQ,YAGb,CACF,EACDyH,WAAY,CACVC,iBAAiB,EACjBC,QAAS,GAEXjM,MAAO,CAACgJ,MAAO,gBAcpC,C,sGC7PD,IAIA,EAJA,EAIA,8bAJA,WAEA,GAEA,EAFA,WAEA,2BADA,WACA,yIAQA,UAAuD,SAAC,GAAwC,IAAtCnF,EAAqC,EAArCA,SAAUqI,EAA2B,EAA3BA,WAAYnH,EAAe,EAAfA,SA+G9E,OACE,wBAAC,EAAAjF,cAAD,CAAeC,MAAOA,EAAAA,SACpB,+BAAKI,UAAW,oBACb+L,EAAW3G,OACV,wBAAC,EAAA0C,WAAD,CAAYxG,QAAS,MAClByK,EAAW3G,OAGhB,wBAAC,EAAAoE,IAAD,CAAKwC,GAAI,GACND,EAAWE,YA1DpB,SAASC,EAAezE,EAAqB0E,EAA2BC,GAAwE,IAAzCC,EAAwC,uDAAxB,EACjHA,EAAQ,IAAGA,EAAQ,GACvB,IAAMC,EAAiC,GA4CvC,OAzCmBC,MAAMC,QAAQL,EAAgB,aAC7CA,EAAgB,YAChB9P,OAAOD,KAAKgQ,EAAkBH,YAAc,CAAC,IAEtCjN,SAAQ,SAACC,GAClB,GAAIwI,EAAKgF,eAAexN,GAAM,CAC5B,IAAMoB,EAAQoH,EAAKxI,GAOnB,GALqB,kBAAVoB,GAAgC,OAAVA,GAlEvC,SAAoCgM,EAAepN,EAAaqN,GAC9D,IAAMI,EAAa,WAAOC,KAAKC,IAAIP,EAAO,IACpCQ,EACJ,wBAAC,EAAA/E,WAAD,CAAY7I,IAAG,iBAAYA,EAAZ,YAAmBoN,GAAS/K,QAASoL,EAAe1M,UAAW,kBAC3Ef,GAGLqN,EAASQ,KAAKD,EACf,CA2DOE,CAA2BV,EAAOpN,EAAKqN,GAIpB,kBAAVjM,GAvDjB,SAA6BA,EAAepB,EAAaqN,GACvD,IAAMU,EAAQ3M,EAAM4M,MAAM,MAAMvR,KAAI,SAACwR,EAAM5K,GAAP,OAClC,wBAAC,EAAA6K,SAAD,CAAUlO,IAAG,eAAUA,EAAV,YAAiBqD,IAC3B4K,EACD,mCAHgC,IAMpCZ,EAASQ,KAAK,+BAAK7N,IAAG,cAASA,IAAQ+N,GACxC,CAgDOI,CAAoB/M,EAAOpB,EAAKqN,QAG7B,GAAoB,kBAATjM,GAlCtB,SAA8BpB,EAAaoB,EAAgBiM,GACzD,IAAMe,EAAiB,+BAAKpO,IAAG,cAASA,IAAQoB,EAAQ,MAAQ,MAChEiM,EAASQ,KAAKO,EACf,CAgCOC,CAAqBrO,EAAKoB,EAAOiM,QAKjC,GAAqB,kBAAVjM,GAAgC,OAAVA,GAEV,kBAAVA,GAAsB+L,EAAkBH,YAAcG,EAAkBH,WAAWhN,GAAM,CAClG,IAAMsO,EAAmBnB,EAAkBH,WAAWhN,GAChDuO,EAAiBrB,EAAgBlN,IAAQ,CAAC,EAChDqN,EAASQ,KACP,wBAAC,EAAAK,SAAD,CAAUlO,IAAG,mBAAcA,IACzB,wBAAC,EAAA0I,KAAD,CAAM3H,UAAW,kBAAmB4H,GAAI,CAAC6F,UAAW,EAAGC,GAAI,IA9D3E,SAA2BzO,EAAaoN,GACtC,IAAMK,EAAa,WAAOC,KAAKC,IAAIP,EAAO,IAC1C,OACE,wBAAC,EAAAvE,WAAD,CAAY7I,IAAG,iBAAYA,EAAZ,YAAmBoN,GAAS/K,QAASoL,EAAe1M,UAAW,kBAC3Ef,EAGN,CAwDkB0O,CAAkB1O,EAAKoN,GACvBH,EAAe7L,EAAOmN,EAAgBD,EAAkBlB,EAAQ,KAIxE,CAGN,CACF,IACM,wBAAC,EAAAc,SAAD,KAAWb,EACnB,CAWiCJ,CAAexI,EAAUkB,EAAUmH,KAMtE,C,wTC1ID,yeAWA,IAAM6B,gBAAkB,SAAlBA,gBAAmB,MAAyH,IAAxHrJ,gBAAuH,KAAvHA,gBAAiBD,cAAsG,KAAtGA,cAAeF,QAAuF,KAAvFA,QAASU,gBAA8E,KAA9EA,gBAAiBlB,cAA6D,KAA7DA,cAAeG,kBAA8C,KAA9CA,kBAG3F8J,mBAAqB,aAC3B9J,kBAAoBA,mBAAqB8J,mBAGzC,IAAMxO,UAAiC,uBAArB0E,kBAA6C,mBAAqBA,mBAEpF,SAAAxF,YAAU,WAAO,IAAD,MAERY,aAAe,SAAClD,GACpB,IAAMwH,EAAOxH,EAAEuE,OACXsN,EAAoB,GAIlBC,EAAc9R,EACpB,GAAI8R,EAAYC,UAAW,CACzB,IAAMA,EAAYD,EAAYC,UAC9BF,EAAoBE,EAAU3N,KAC/B,CAEGkE,kBACF/F,eAAeY,QAAQ,WAAYN,KAAKgE,UAAUyB,kBAClDd,EAAKhE,iBAAiB,mBAAmB,SAAUc,GACjDA,EAAM0N,iBAGDC,kBAAkB3N,EAAOkD,EAAMqK,EACrC,IAEJ,EAIKI,kBAAiB,SAAjBA,kBAAiB,6EAAG,iBAAO3N,MAAYkD,KAAuB0K,YAA1C,oMAGxB7J,cAAc8J,QAAQC,QAChBC,QAAUlK,QAAQgK,QAAQG,eAChCzJ,gBAAgBwJ,SACXA,QANmB,sEASlB5K,SAAW,IAAI8K,SAAS/K,MAC1B0K,YACFzK,SAAS+K,OAAT,UAAmB1K,kBAAnB,YAAgDoK,YAElDzK,SAAS+K,OAAT,UAAmB1K,kBAAnB,eAAmDjF,KAAKgE,UAAUyB,kBAM5DmK,UAAYjL,KAAKkL,aAAa,WAAa,GAC3ChM,OAASc,KAAKkL,aAAa,WAAa,OApBtB,kCAuBCjM,MAAMgM,UAAW,CACtC/L,OAAQA,OACRE,KAAMa,SACNd,QAAS,CACP,mBAAoB,oBA3BF,WAuBhB2E,SAvBgB,cA+BjBA,SAASC,GA/BQ,8BAgCd,IAAItL,MAAJ,8BAAiCqL,SAASqH,SAhC5B,yCAmClBrH,SAAS3E,QAAQiM,IAAI,uBAnCH,4BAmClB,sBAAsC5I,SAAS,cAnC7B,gDAoCCsB,SAASuH,OApCV,QAoCdC,OApCc,cAqCpBC,KAAKD,QArCe,uDAuCDxH,SAASE,OAvCR,QAuCdwH,KAvCc,cAwCpBC,QAAQC,IAAI,WAAYF,MAxCJ,uFA4CtBC,QAAQE,MAAM,SAAd,aA5CsB,yEAAH,uBAiDvB,GAAIxL,cAAe,CACjB,IAAMtE,YAAcC,SAASC,eAAT,UAA2BH,UAA3B,UACT,OAAXC,kBAAW,IAAXA,aAAAA,YAAaG,iBAAiB,SAAUN,cAAc,EACvD,CAGD,OAAO,WAAO,IAAD,EACX,UAAAI,SAASC,eAAT,UAA2BH,UAA3B,0BAA8CK,oBAAoB,SAAUP,cAAc,GAC1FI,SAASG,oBAAoB,kBAAmBP,cAAc,EAC/D,CACF,GAAE,CAACoF,gBAAiBD,cAAeV,eAErC,EAjGD,yBAmGegK,e,uGC9Gf,iDAEA,UAA6B,WAC3B,OACE,mDAIH,C,uGCRD,kBACA,WACA,UAkBA,SACA,kBACA,iEAiBA,UAAoD,SAAC,GAAsF,IAArFyB,EAAoF,EAApFA,MAAOC,EAA6E,EAA7EA,WAAYC,EAAiE,EAAjEA,cAAiE,IAAlDC,iBAAAA,OAAkD,SACxI,OACE,wBAAC,EAAA7P,cAAD,CAAeC,MAAOA,EAAAA,SACpB,wBAAC,EAAAsK,KAAD,CAAM7B,WAAS,EAACoH,QAAS,EAAG7H,GAAI,CAACsD,QAAS,MACxC,wBAAC,EAAAhB,KAAD,CAAM5B,MAAI,EAACC,GAAI,GAAIvI,UAAU,cAC3B,qDAEF,wBAAC,UAAD,CAAS0P,KAAK,UAAUC,KAAM,wBAAC,oBAAD,OAA9B,UACCJ,GAAiB,gDAChB,wBAAC,UAAD,CAASG,KAAK,oCAAoCC,KAAM,wBAAC,4BAAD,OAAxD,WACA,wBAAC,UAAD,CAASD,KAAK,yBAAyBC,KAAM,wBAAC,sBAAD,OAA7C,aAIF,wBAAC,EAAAzF,KAAD,CAAM5B,MAAI,EAACC,GAAI,GAAIvI,UAAU,cAC3B,gDAEF,wBAAC,UAAD,CAAS0P,KAAK,sBAAsBC,KAAM,wBAAC,EAAAC,WAAD,OAA1C,WACA,wBAAC,UAAD,CAASF,KAAK,qBAAqBC,KAAM,wBAAC,iBAAD,OAAzC,WACA,wBAAC,UAAD,CAASD,KAAK,eAAeC,KAAM,wBAAC,uBAAD,OAAnC,WAGA,wBAAC,EAAAzF,KAAD,CAAM5B,MAAI,EAACC,GAAI,GAAIvI,UAAU,cAC3B,4CAEDqP,GAASG,GACR,wBAAC,UAAD,CAASE,KAAK,gBAAgBC,KAAM,wBAAC,cAAD,OAApC,aAEF,wBAAC,UAAD,CAASD,KAAK,oBAAoBC,KAAM,wBAAC,kBAAD,OAAxC,SACA,wBAAC,UAAD,CAASD,KAAK,6BAA6BC,KAAM,wBAAC,yBAAD,OAAjD,WAECN,GAAS,gDACR,wBAAC,EAAAnF,KAAD,CAAM5B,MAAI,EAACC,GAAI,GAAIvI,UAAU,cAC3B,4CAEF,wBAAC,UAAD,CAAS0P,KAAK,gBAAgBC,KAAM,wBAAC,wBAAD,OAApC,UACA,wBAAC,UAAD,CAASD,KAAK,yBAAyBC,KAAM,wBAAC,eAAD,OAA7C,WACA,wBAAC,UAAD,CAASD,KAAK,mBAAmBC,KAAM,wBAAC,gBAAD,OAAvC,iBACA,wBAAC,UAAD,CAASD,KAAK,sCAAsCC,KAAM,wBAAC,mBAAD,OAA1D,oBACA,wBAAC,UAAD,CAASD,KAAK,kBAAkBC,KAAM,wBAAC,iBAAD,OAAtC,SACA,wBAAC,UAAD,CAASD,KAAK,8BAA8BC,KAAM,wBAAC,gBAAD,OAAlD,YAIDL,GAAc,gDACb,wBAAC,EAAApF,KAAD,CAAM5B,MAAI,EAACC,GAAI,GAAIvI,UAAU,cAC3B,kDAEF,wBAAC,UAAD,CAAS0P,KAAK,mBAAmBC,KAAM,wBAAC,wBAAD,OAAvC,QACA,wBAAC,UAAD,CAASD,KAAK,oBAAoBC,KAAM,wBAAC,iBAAD,OAAxC,SACA,wBAAC,UAAD,CAASD,KAAK,qBAAqBC,KAAM,wBAAC,gBAAD,OAAzC,iBACA,wBAAC,UAAD,CAASD,KAAK,iCAAiCC,KAAM,wBAAC,6BAAD,OAArD,aAMT,C,uGChGD,IAEA,EAFA,GAEA,EAFA,WAEA,2BADA,WACA,WAeA,UAAwC,SAAC,GAA0C,IAAzCD,EAAwC,EAAxCA,KAAMG,EAAkC,EAAlCA,SAAUF,EAAwB,EAAxBA,KAClDG,EAAWC,OAAOC,SAASN,KAAKO,SAASP,GAE/C,OACE,wBAAC,EAAAxF,KAAD,CAAM5B,MAAI,EAACC,GAAI,GAAIvI,UAAS,mBAAc8P,EAAW,SAAW,KAC9D,wBAAC,EAAAtG,IAAD,CAAKpL,QAAQ,OAAO8R,WAAW,UAC5B7G,EAAAA,QAAM8G,aAAaR,EAAM,CACxBxH,SAAU,QACVP,GAAI,CAACpG,YAAa,OAAQD,MAAOuO,EAAWM,EAAAA,OAAOC,QAAUD,EAAAA,OAAOE,SAEtE,wBAAC,EAAAC,KAAD,CAAMb,KAAMA,GAAOG,IAI1B,C,yHC/BD,cACA,WACA,WACA,cACA,uMAAApT,GAAA,gEAAAA,GAAA,2LAAAA,GAAA,WAAAA,GAAA,qGAAAA,IAAA,6SAAAA,IAAA,2OAAAA,EAAA,iBAAAA,EAAA,EAAAA,IAAA,EAAAA,GAAA,EAAAA,GAAA,SAIA,IAAM+T,EAAuB,CAAC,MAAO,MAAO,YAEtCC,EAAgD,CACpD,IAAO,gBACP,IAAO,MACP,SAAY,gBAcd,UAA8B,SAAC,GAAsD,IAAD,EAApDC,EAAoD,EAApDA,aAAcC,EAAsC,EAAtCA,eAE5C,IAAkDtH,EAAAA,QAAMlM,SAAiBuT,GAAgB,IAAzF,GAAOE,EAAP,KAA0BC,EAA1B,KACA,IAAsDxH,EAAAA,QAAMlM,SAAqCwT,GAAkB,OAAnH,GAAOG,EAAP,KAA4BC,EAA5B,KACA,IAAoD1H,EAAAA,QAAMlM,UAAS,GAAnE,GAAO6T,EAAP,KAA2BC,EAA3B,KACA,IAAgD5H,EAAAA,QAAMlM,UAAS,GAA/D,GAAO+T,EAAP,KAAyBC,EAAzB,KA+BA,OACE,gDACE,wBAAC,UAAD,MACA,wBAAC,EAAAxR,cAAD,CAAeC,MAAOA,EAAAA,SACpB,gCAAMwR,SAjCM,yBA9BpB,EA8BoB,gBAAG,WAAO7Q,GAAP,wFACnBA,EAAM0N,iBAEAoD,EAAU,CACdC,eAAgBV,EAChBhU,iBAAkBkU,GAGdS,EARa,UAQDhS,SAAS4D,cAAc,kCARtB,aAQD,EAAmDwL,aAAa,WAR/D,kBAWMjM,MAAM,uBAAwB,CACnDC,OAAQ,OACRC,QAAS,CACP,eAAgB,mBAChB,eAAgB2O,GAAa,IAE/B1O,KAAM/D,KAAKgE,UAAUuO,KAjBN,cAoBJ7J,IAEXyJ,GAAsB,GAtBP,kDAyBjBE,GAAoB,GAzBH,yDA9BvB,gLA8BoB,sBA9BpB,KA8BoB,GAkCV,wBAAC,EAAAjH,KAAD,CACE7B,WAAS,EAACoH,QAAS,GACnB,wBAAC,EAAAvF,KAAD,CAAM5B,MAAI,EAACC,GAAI,GAAIiJ,GAAI,IACrB,+HAGA,wBAAC,EAAAC,YAAD,CAAaC,WAAS,GACpB,wBAAC,EAAAzR,UAAD,CACEsB,MAAO,UACPrB,MAAM,uBACNrE,GAAG,iBACHsE,KAAM,sBACNC,KAAK,SACLuR,WAAY,CAAC/E,IAAK,GAAIgF,IAAK,KAC3B/U,UAAU,EACVwD,MAAOuQ,EACPtQ,SAAU,SAACC,GACTsQ,EAAqBgB,SAAStR,EAAMC,OAAOH,OAC5C,MAKP,wBAAC,EAAA6J,KAAD,CAAM5B,MAAI,EAACC,GAAI,GAAIiJ,GAAI,GAAI5J,GAAI,CAAC7H,UAAW,IACzC,oJAIA,wBAAC,EAAA0R,YAAD,CAAaC,WAAS,GACpB,wBAAC,EAAAI,WAAD,CAAYjW,GAAG,2BAAf,oBACA,wBAAC,EAAAkW,OAAD,CACExQ,MAAO,UACPrB,MAAO,mBACP8R,QAAS,0BACTnW,GAAG,mBACHsE,KAAM,wBACN8R,aAAa,GACb5R,MAAOyQ,EACPjU,UAAU,EACV8U,WAAY,CAAC9R,MAAO,CAAC0B,MAAO,UAC5BjB,SAAU,SAACC,GACTwQ,EAAuBxQ,EAAMC,OAAOH,MACrC,GAED,wBAAC,EAAA6R,SAAD,CAAU7R,MAAM,IAAhB,oBAdF,IAeGmQ,EAAU9U,KAAI,SAACyW,GAAD,OACb,wBAAC,EAAAD,SAAD,CAAUjT,IAAKkT,EAAQ9R,MAAO8R,GAC3B1B,EAAgB0B,GAFN,QAUvB,+BAAKnS,UAAU,UAAUH,MAAO,CAACE,UAAW,KAC1C,wBAAC,EAAAsB,OAAD,CAAQC,QAAQ,YAAY8Q,KAAK,QAAQ7Q,MAAM,UAAUnB,KAAK,SAASD,KAAK,UAA5E,WAMF,wBAAC,EAAAkS,SAAD,CACE3J,KAAMsI,EACNsB,iBAAkB,IAClBC,aAAc,CAACC,SAAU,MAAOC,WAAY,UAC5C9J,QAAS,kBAAMsI,GAAsB,EAA5B,GAET,wBAAC,EAAAyB,MAAD,CAAO/J,QAAS,kBAAMsI,GAAsB,EAA5B,EAAoC0B,SAAS,UAAU/K,GAAI,CAACiB,MAAO,SAAnF,kCAMF,wBAAC,EAAAwJ,SAAD,CACE3J,KAAMwI,EACNoB,iBAAkB,IAClBC,aAAc,CAACC,SAAU,MAAOC,WAAY,UAC5C9J,QAAS,kBAAMwI,GAAoB,EAA1B,GAET,wBAAC,EAAAuB,MAAD,CAAO/J,QAAS,kBAAMwI,GAAoB,EAA1B,EAAkCwB,SAAS,QAAQ/K,GAAI,CAACiB,MAAO,SAA/E,8EAQX,C,yHC5JD,EAKA,8bALA,WACA,YACA,cACA,WACA,WACA,mrBAAApM,GAAA,gEAAAA,GAAA,2LAAAA,GAAA,WAAAA,GAAA,qGAAAA,IAAA,IAAAA,IAAA,0gBAAAA,EAAA,iBAAAA,EAAA,EAAAA,IAAA,EAAAA,GAAA,EAAAA,GAAA,SAgBA,UAAkE,SAAC,GAAuD,IAAD,EAArDmW,EAAqD,EAArDA,OAAQ1Q,EAA6C,EAA7CA,aAC1E,KAAwC,IAAA/E,UAAwByV,GAAU,IAA1E,GAAOC,EAAP,KAAqBC,EAArB,KAEMC,EAAY,yBAnBpB,EAmBoB,gBAAG,WAAOzQ,GAAP,4FACb0Q,EADa,EACGH,IACZvQ,GAAOX,SAAWqR,EAAU1Q,GAAOX,QAC7CmR,EAAgBE,GAGVzB,EANa,UAMDhS,SAAS4D,cAAc,kCANtB,aAMD,EAAmDwL,aAAa,WAG5EsE,EAAQD,EAAU1Q,IAGlBoB,EAAW,IAAIwP,iBACZzE,OAAO,UAAW,SAC3B/K,EAAS+K,OAAO,qBAAsB8C,GAAa,IACnD7N,EAAS+K,OAAO,iBAAkBwE,EAAMtR,QAAU,IAAM,KAfrC,mBAkBMe,MAAM,oBAAD,OAAqBuQ,EAAM9S,KAA3B,mBAAkD,CAC5EwC,OAAQ,OACRC,QAAS,CACP,OAAU,kBACV,eAAgB,oDAElBC,KAAMa,EAASnG,aAxBA,uEA2BjB2R,QAAQE,MAAMtQ,KAAKgE,UAAL,OA3BG,8DAnBvB,gLAmBoB,sBAnBpB,KAmBoB,EAgCZqQ,EAAc,SAACF,EAAoBG,GAArB,iCAA0DH,EAAM9S,KAAhE,YAAwEiT,EAAxE,EAEdC,EAAqBnR,EAAa4D,MAAK,SAAAwN,GAAW,MAAyB,aAArBA,EAAYnT,IAAhB,IAExD,OACE,wBAAC,EAAAR,cAAD,CAAeC,MAAOA,EAAAA,SACpB,wBAAC,UAAD,CAAMyI,WAAS,EAACoH,QAAS,EAAGvE,QAAS,GACnC,wBAAC,UAAD,CAAM5C,MAAI,EAACC,GAAI,GACb,qDAEF,wBAAC,UAAD,CAAMD,MAAI,EAACC,GAAI,GACb,wBAAC,EAAAiB,IAAD,CAAKpL,QAAQ,OAAOmV,eAAe,YACjC,oDAIN,wBAAC,UAAD,CAAMlL,WAAS,EAACoH,QAAS,EAAGvE,QAAS,GAElC2H,EAAanX,KAAI,SAACuX,EAAO3Q,GAExB,MAAmB,mBAAf2Q,EAAM9S,MAA8BkT,EAGtC,wBAAC,UAAMlG,SAAP,CAAgBlO,IAAKqD,GACnB,wBAAC,UAAD,CAAMgG,MAAI,EAACC,GAAI,IAEZ0K,EAAMO,aAAe,wBAAC,EAAAjD,KAAD,CAAMb,KAAMyD,EAAYF,EAAO,iBAAkBrL,GAAI,CAAC6L,eAAgB,SAAUR,EAAM/S,OAG3G+S,EAAMS,qBAAuB,wBAAC,EAAAnD,KAAD,CAAMb,KAAMyD,EAAYF,EAAO,IAAKrL,GAAI,CAAC6L,eAAgB,SAAUR,EAAM/S,QAGrG+S,EAAMO,cAAgBP,EAAMS,qBAAuB,oCAAOT,EAAM/S,QAEpE,wBAAC,UAAD,CAAMoI,MAAI,EAACC,GAAI,GACb,wBAAC,EAAAiB,IAAD,CAAKpL,QAAQ,OAAOmV,eAAe,YACjC,wBAAC,UAAD,CACE/Q,QAASyQ,EAAMtR,QACfrB,SAAU,kBAAMyS,EAAazQ,EAAnB,EACVqP,WAAY,CAAC,aAAc,mBAnB8B,IAyBpE,KAIR,C,gHCzGD,eACA,WAEavB,EAAM,SAAG,CACpBC,QAAS,UACTsD,UAAW,UACXC,QAAS,UACTC,KAAM,UACNC,QAAS,UACTC,OAAQ,UACRzD,MAAO,UACR0D,KAAM,WAGDpU,GAAQ,IAAAqU,aAAY,CACzBC,OAAQ,CACPC,cAAe,IACfC,UAAW,IACXC,OAAQ,KACRC,OAAQ,KACRC,MAAO,KACPC,SAAU,KACVC,QAAS,MAEVC,QAAS,CACRrE,QAAS,CACRsE,KAAMvE,EAAOC,SAEdsD,UAAW,CACVgB,KAAMvE,EAAOuD,WAEdC,QAAS,CACRe,KAAMvE,EAAOwD,SAEdC,KAAM,CACLc,KAAMvE,EAAOyD,MAEdC,QAAS,CACRa,KAAMvE,EAAO0D,SAEd1E,MAAO,CACNuF,KAAMvE,EAAO2D,QAEda,gBAAiB,SAACC,GACjB,MAAO,MACP,GAEFC,WAAY,CACX5M,WAAY,wBACZ6M,GAAI,CACHC,WAAY,IACZ7M,SAAU,UACV5G,MAAO6O,EAAO4D,MAEfiB,GAAI,CACHD,WAAY,IACZ7M,SAAU,SACV5G,MAAO6O,EAAOC,SAEf6E,GAAI,CACHF,WAAY,IACZ7M,SAAU,SACV5G,MAAO6O,EAAOC,SAEf8E,GAAI,CACHH,WAAY,IACZ7M,SAAU,SACV5G,MAAO6O,EAAOC,SAEf+E,GAAI,CACHJ,WAAY,IACZ7M,SAAU,SACV5G,MAAO6O,EAAOC,SAEfgF,GAAI,CACHL,WAAY,IACZ7M,SAAU,SACV5G,MAAO6O,EAAOC,UAGhBiF,WAAY,CACXC,UAAW,CACVC,eAAgB,CACfC,KAAM,CACLC,cAAe,OACfnU,MAAO,QACPyT,WAAY,IACZ7M,SAAU,GACVwN,WAAY,SACZC,cAAe,SACf3K,gBAAiBmF,EAAOC,QACxB,UAAW,CACVpF,iBAAiB,IAAA4K,SAAQzF,EAAOC,QAAS,MAG3CyF,SAAU,CACTvU,MAAO6O,EAAOC,QACdpF,gBAAiB,cACjBvB,YAAa0G,EAAOC,WAIvB0F,aAAc,CACbP,eAAgB,CACfC,KAAM,CACLvK,QAAS,YAIZ8K,QAAS,CACRR,eAAgB,CACfC,KAAM,CACLhC,eAAgB,OAChBlS,MAAO6O,EAAOC,QACd,YAAa,CACZ9O,MAAO6O,EAAOC,YAKlB4F,aAAc,CACbT,eAAgB,CACfU,MAAO,CACNP,WAAY,SACZC,cAAe,SACf9M,OAAQ,eA/Gb,UAsHelJ,C,qGCpIK,UAAG,WAAO,IAAD,EAE3B,MAAO,CACL,eAAgB,mBAChB,gBAHa,UAAGL,SAAS4D,cAAc,kCAA1B,aAAG,EAAmDwL,aAAa,aAGnD,GAEhC,C,4GCN0B,iBAAG,WAAO,IAAD,EAKlC,MAJwB,iEAAiEwH,KAAKC,UAAUC,YACnG,mBAAmBF,KAAKC,UAAUE,YACxB,QAAT,EAAAF,iBAAA,eAAWG,gBAAiB,CAGnC,C","sources":["webpack://boswell_hub/./app/javascript/components/ sync ^\\.\\/.*$","webpack://boswell_hub/./app/javascript/components/AgePicker/AgePicker.tsx","webpack://boswell_hub/./app/javascript/components/CboFeatureFlagEditor/CboFeatureFlagEditor.tsx","webpack://boswell_hub/./app/javascript/components/CounterLoader/CounterLoader.tsx","webpack://boswell_hub/./app/javascript/components/Forms/DynoForm.tsx","webpack://boswell_hub/./app/javascript/components/Forms/DynoFormAdder.tsx","webpack://boswell_hub/./app/javascript/components/Forms/DynoFormBuilder.tsx","webpack://boswell_hub/./app/javascript/components/Forms/DynoFormViewer.tsx","webpack://boswell_hub/./app/javascript/components/Forms/useParentSubmit.ts","webpack://boswell_hub/./app/javascript/components/HelloWorld.tsx","webpack://boswell_hub/./app/javascript/components/LeftNavigator/LeftNavigator.tsx","webpack://boswell_hub/./app/javascript/components/LeftNavigator/NavItem.tsx","webpack://boswell_hub/./app/javascript/components/Settings/AgeSettings/AgeSettings.tsx","webpack://boswell_hub/./app/javascript/components/Settings/ClientFieldsSettings.tsx","webpack://boswell_hub/./app/javascript/components/mui-theme.ts","webpack://boswell_hub/./app/javascript/helpers/fetchHelper.ts","webpack://boswell_hub/./app/javascript/helpers/mobileHelper.ts"],"sourcesContent":["var map = {\n\t\"./AgePicker/AgePicker\": 45599,\n\t\"./AgePicker/AgePicker.tsx\": 45599,\n\t\"./CboFeatureFlagEditor/CboFeatureFlagEditor\": 60892,\n\t\"./CboFeatureFlagEditor/CboFeatureFlagEditor.tsx\": 60892,\n\t\"./CboFeatureFlagEditor/featureFlagTypes\": 16926,\n\t\"./CboFeatureFlagEditor/featureFlagTypes.ts\": 16926,\n\t\"./CounterLoader/CounterLoader\": 78533,\n\t\"./CounterLoader/CounterLoader.tsx\": 78533,\n\t\"./Forms/DynoForm\": 4396,\n\t\"./Forms/DynoForm.tsx\": 4396,\n\t\"./Forms/DynoFormAdder\": 5289,\n\t\"./Forms/DynoFormAdder.tsx\": 5289,\n\t\"./Forms/DynoFormBuilder\": 89440,\n\t\"./Forms/DynoFormBuilder.tsx\": 89440,\n\t\"./Forms/DynoFormViewer\": 2732,\n\t\"./Forms/DynoFormViewer.tsx\": 2732,\n\t\"./Forms/dynoFormBuilderOverrides.scss\": 85090,\n\t\"./Forms/dynoFormStyles.scss\": 43616,\n\t\"./Forms/dynoFormTypes\": 82502,\n\t\"./Forms/dynoFormTypes.tsx\": 82502,\n\t\"./Forms/dynoFormViewerStyles.scss\": 43985,\n\t\"./Forms/useParentSubmit\": 79466,\n\t\"./Forms/useParentSubmit.ts\": 79466,\n\t\"./HelloWorld\": 30562,\n\t\"./HelloWorld.tsx\": 30562,\n\t\"./LeftNavigator/LeftNavigator\": 36293,\n\t\"./LeftNavigator/LeftNavigator.tsx\": 36293,\n\t\"./LeftNavigator/NavItem\": 67852,\n\t\"./LeftNavigator/NavItem.tsx\": 67852,\n\t\"./LeftNavigator/left-navigator.scss\": 52436,\n\t\"./Settings/AgeSettings/AgeSettings\": 94779,\n\t\"./Settings/AgeSettings/AgeSettings.tsx\": 94779,\n\t\"./Settings/ClientFieldsSettings\": 60851,\n\t\"./Settings/ClientFieldsSettings.tsx\": 60851,\n\t\"./colors.scss\": 63780,\n\t\"./mui-theme\": 60589,\n\t\"./mui-theme.ts\": 60589,\n\t\"./root.scss\": 54569\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 982;","import React, {useEffect, useState} from 'react';\nimport {Button, TextField, RadioGroup, FormControlLabel, Radio, Typography} from \"@mui/material\";\nimport theme from \"components/mui-theme\";\nimport {ThemeProvider} from \"@mui/material/styles\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport {isMobileDevice} from \"helpers/mobileHelper\";\nimport dayjs from \"dayjs\";\n\ninterface Client {\n date_of_birth?: string;\n age?: number;\n age_group?: string;\n}\n\ninterface IAgePickerProps {\n client?: Client;\n required?: boolean;\n model_name?: string;\n default_age_type?: \"dob\" | \"age\" | \"category\";\n}\n\n/**\n * Component for picking age, date of birth, or age group for a given client. Provides 3 inputs, and allows toggling\n * between them with buttons.\n * @param client\n * @param model_name\n * @param default_age_type\n */\nconst AgePicker: React.FC = ({\n client,\n model_name,\n default_age_type,\n required = true\n}: IAgePickerProps) => {\n default_age_type = default_age_type || 'dob';\n\n const isMobile = isMobileDevice();\n\n // Mobile devices don't understand the date input type\n let dobFormatted = '';\n if (isMobile) {\n dobFormatted = client?.date_of_birth ? dayjs(client.date_of_birth).format(\"MM/DD/YYYY\") : '';\n } else {\n dobFormatted = client?.date_of_birth ? dayjs(client.date_of_birth).format(\"YYYY-MM-DD\") : '';\n }\n\n const [inputType, setInputType] = useState(default_age_type);\n const [age, setAge] = useState(client?.age ? client.age.toString() : '');\n const [dobString, setDobString] = useState(\n dobFormatted\n );\n const [dateForServer, setDateForServer] = useState(client?.date_of_birth || '');\n const [ageGroup, setAgeGroup] = useState(client?.age_group || '');\n const [errors, setErrors] = useState(undefined);\n\n\n if (client == undefined) throw new Error('Client is undefined');\n\n const ageHiddenStyle = {\n display: inputType === 'age' ? 'block' : 'none'\n };\n\n const dobHiddenStyle = {\n display: inputType === 'dob' ? 'block' : 'none'\n };\n\n const categoryHiddenStyle = {\n display: inputType === 'category' ? 'block' : 'none'\n };\n\n /**\n * Load locally stored form data between Rails UJS page rerenders\n */\n useEffect(() => {\n // Only use sessionStorage if it's a rerender\n if (sessionStorage.getItem(\"AgePicker/shouldRerender\") === \"true\") {\n const storedInputType = sessionStorage.getItem('AgePicker/inputType');\n const storedAge = sessionStorage.getItem('AgePicker/age');\n const storedDob = sessionStorage.getItem('AgePicker/dateOfBirth');\n const storedAgeGroup = sessionStorage.getItem('AgePicker/ageGroup');\n const errors = JSON.parse(sessionStorage.getItem('registration/errors') || '{}');\n\n setErrors(errors)\n setInputType(storedInputType || default_age_type || 'dob')\n setAge(storedAge || '');\n setDobString(storedDob || '');\n setAgeGroup(storedAgeGroup || '');\n setDateForServer(dayjs(storedDob, \"MM/DD/YYYY\").format(\"YYYY-MM-DD\"))\n }\n\n // Clear UJS-rerender-saved data.\n ['inputType', 'age', 'dateOfBirth', 'ageGroup', 'inputType', 'shouldRerender'].forEach(\n key => sessionStorage.removeItem(`AgePicker/${key}`)\n );\n sessionStorage.removeItem('registration/errors');\n }, []);\n\n // Cache data to sessionStorage on form submit\n useEffect(() => {\n const handleSubmit = () => {\n sessionStorage.setItem('AgePicker/inputType', inputType);\n sessionStorage.setItem('AgePicker/age', age);\n sessionStorage.setItem('AgePicker/dateOfBirth', dobString);\n sessionStorage.setItem('AgePicker/ageGroup', ageGroup);\n }\n\n const formDomId = model_name == \"intake_registration\" ? \"intake_household\" : model_name\n const formElement = document.getElementById(`${formDomId}_form`);\n formElement?.addEventListener('submit', handleSubmit, true); // Using the capture phase\n\n return () => {\n formElement?.removeEventListener('submit', handleSubmit, true);\n }\n\n }, [inputType, age, dobString, ageGroup]);\n\n\n return (\n \n
\n
\n \n
\n {\n setAge(event.target.value);\n sessionStorage.setItem('AgePicker/age', event.target.value);\n setAgeGroup('');\n setDobString('');\n setDateForServer('');\n }}\n />\n
\n
\n {isMobile && <>\n\n {\n let value: string = event.target.value;\n value = value.replace(/[^0-9]/g, ''); // Remove non-digit characters\n\n if (value.length > 8) value = value.substring(0, 8); // Limit to 8 digits before formatting\n\n if (value.length > 4) value = `${value.slice(0, 4)}/${value.slice(4)}`;\n if (value.length > 2) value = `${value.slice(0, 2)}/${value.slice(2)}`;\n\n if (value.length <= 10) {\n setDobString(value); // For display\n const formattedValueForServer = dayjs(value, \"MM/DD/YYYY\").format(\"YYYY-MM-DD\");\n setDateForServer(formattedValueForServer); // For server\n }\n }}\n InputLabelProps={{shrink: true}}\n />\n \n \n }\n\n {!isMobile && {\n sessionStorage.setItem('AgePicker/dateOfBirth', event.target.value);\n setDobString(event.target.value);\n setAge('');\n setAgeGroup('');\n }}\n InputLabelProps={{shrink: true}}\n />\n }\n
\n
\n {\n sessionStorage.setItem('AgePicker/ageGroup', event.target.value);\n setAgeGroup(event.target.value);\n setDobString('');\n setAge('');\n }}>\n } label=\"Child\"/>\n } label=\"Adult\"/>\n } label=\"Senior\"/>\n \n
\n
\n
\n {inputType !== 'age' &&\n {\n sessionStorage.setItem('AgePicker/inputType', 'age');\n setInputType('age')\n }}\n >\n Use age\n \n }\n {inputType !== 'dob' &&\n {\n sessionStorage.setItem('AgePicker/inputType', 'dob');\n setInputType('dob')\n }}>\n Use date of birth\n \n }\n {inputType !== 'category' &&\n {\n sessionStorage.setItem('AgePicker/inputType', 'category');\n setInputType('category')\n }}>\n Use age category\n \n }\n {/*Errors*/}\n
\n {errors && errors[\"age\"]}\n
\n
\n
\n\n
\n );\n}\n\nexport default AgePicker;\n","import React, {useState} from 'react';\nimport {Switch, FormGroup, FormControlLabel, Container, Typography} from '@mui/material';\nimport {headers} from \"helpers/fetchHelper\";\nimport {CboFeatureFlag} from \"components/CboFeatureFlagEditor/featureFlagTypes\";\n\n// Define an interface for the shape of your feature flags object\ninterface IFeatureFlagEditorProps {\n existingFlags: any,\n cboId: number;\n}\n\n// All optional feature flags\n// TODO: This can live here in early drafts but should move to a dedicated, probably backend-residing definition\n// for numerous feature flags.\nconst initialFeatureFlags: CboFeatureFlag[] = [\n {\n name: \"referral_links/basic\",\n label: \"Basic referral links\",\n enabled: false\n },\n {\n name: \"barcodes\",\n label: \"Barcodes\",\n enabled: false\n },\n {\n name: \"dynamic_forms/assistance_type\",\n label: \"(Deprecated) Dynamic forms on Assistance Types\",\n enabled: false\n },\n {\n name: \"dynamic_forms/intake\",\n label: \"(Deprecated) Dynamic forms on intake flow\",\n enabled: false\n },\n {\n name: \"dynamic_forms/advanced\",\n label: \"Advanced dynamic forms\",\n enabled: false\n },\n {\n name: \"broadcasts\",\n label: \"SMS Broadcasts\",\n enabled: false\n }\n];\n\nconst CboFeatureFlagEditor: React.FC = ({cboId, existingFlags}: IFeatureFlagEditorProps) => {\n const [featureFlags, setFeatureFlags] = useState(\n initialFeatureFlags.map(flag => {\n const existingFlag = existingFlags.find((eFlag: CboFeatureFlag) => eFlag.name === flag.name);\n return existingFlag ? {...flag, enabled: existingFlag.enabled} : flag;\n })\n );\n\n const handleToggle = (index: number) => {\n const updatedFlags = featureFlags.slice();\n updatedFlags[index].enabled = !updatedFlags[index].enabled;\n setFeatureFlags(updatedFlags);\n\n fetch(`/superadmin/cbos/${cboId}/edit_feature_flag`, {\n method: 'PATCH', // or 'PUT' if that's the desired method in your Rails app\n headers: headers(),\n body: JSON.stringify(updatedFlags[index]),\n });\n };\n\n return (\n \n \n {featureFlags.map((flag, index) => (\n handleToggle(index)}\n name={flag.label}\n />\n }\n label={flag.label}\n />\n ))}\n \n \n );\n};\n\nexport default CboFeatureFlagEditor;\n","import React, {useEffect} from 'react';\n\nconst CounterLoader: React.FC = () => {\n useEffect(() => {\n const elements = document.querySelectorAll('[data-counter]');\n\n elements.forEach((element) => {\n // Get the corresponding counter div\n const counter = document.querySelector('#' + element.dataset.counter);\n\n // Function to update the counter\n const updateCounter = () => {\n if (counter) {\n const length = element.value.length;\n const maxLength = Number(element.dataset.length);\n counter.textContent = `${length}/${maxLength}`;\n }\n };\n\n // Update the counter immediately and whenever the element's input changes\n updateCounter();\n element.addEventListener('input', updateCounter);\n\n // Ensure the event listener is removed before Turbolinks cache\n document.addEventListener('turbolinks:before-cache', () => {\n element.removeEventListener('input', updateCounter);\n });\n });\n }, []);\n\n return null;\n};\n\nexport default CounterLoader;\n","import React, {createRef, useEffect, useState} from 'react';\nimport {RJSFSchema, UiSchema} from \"@rjsf/utils\";\nimport {Form} from \"@rjsf/mui\";\nimport validator from '@rjsf/validator-ajv8';\nimport {ThemeProvider} from \"@mui/material/styles\";\nimport theme from \"components/mui-theme\";\nimport {IDynoForm} from \"components/Forms/dynoFormTypes\";\nimport useParentSubmit from \"components/Forms/useParentSubmit\";\nimport \"./dynoFormStyles.scss\"\n\ninterface IDynoFormProps {\n form?: IDynoForm;\n formData?: any;\n showSubmit?: boolean;\n disabled?: boolean;\n deferToParent?: boolean;\n showTitle?: boolean;\n attachedModelName?: string;\n}\n\n/**\n * Dynamic form viewer powered by RJSF\n * @param form - The DynoForm object to render as a DynoForm view.\n * @param formData - The data to populate the form with. Defaults to an empty object.\n * @param showSubmit - Whether to show a submit button on the form. As of writing, the submit button has no behavior.\n * Defaults to false.\n * @param deferToParent - Whether to attach this form's params to a parent form element. Defaults to true.\n * @param disabled - Whether to allow input to the form (aka readonly on everything). Defaults to false.\n * @param showTitle - Whether to show the title of the form. Defaults to false.\n * @param attachedModelName - The name of the model this form is attached to. Defaults to undefined.\n * @constructor\n */\nconst DynoForm: React.FC = ({\n form,\n formData = {},\n showSubmit = false,\n deferToParent = true,\n disabled = false,\n showTitle = false,\n attachedModelName\n}: IDynoFormProps) => {\n const jsonSchemaArg = form?.json_schema || {};\n const uiSchemaArg = form?.ui_schema || {};\n const formRef = createRef();\n const submitFormRef = createRef();\n\n const [currentFormData, setCurrentFormData] = useState(formData);\n const [isRerendered, setIsRerendered] = useState(false); // New state to track rerender\n const [jsonSchema, setJsonSchema] = useState(jsonSchemaArg);\n const [uiSchema, setUiSchema] = useState(uiSchemaArg);\n const [isInputValid, setIsInputValid] = useState(true);\n\n /**\n * Hijack the parent Rails Form's submit method and add some form data to it from this component.\n * allows the embedding of react forms in Rails ones so we can replace pieces of existing forms incrementally.\n */\n useParentSubmit({\n currentFormData,\n submitFormRef,\n formRef,\n setIsInputValid,\n deferToParent,\n attachedModelName\n });\n\n // Listen and rerender on underlying schema updates, e.g. if you are previewing an edited form\n useEffect(() => {\n setJsonSchema(jsonSchemaArg);\n }, [jsonSchemaArg])\n\n /**\n * Load locally stored form data between Rails UJS page rerenders\n */\n useEffect(() => {\n // Only use sessionStorage if it's a rerender\n if (sessionStorage.getItem(\"DynoForm/shouldRerender\") === \"true\") {\n const storedData = sessionStorage.getItem('formData');\n if (storedData) {\n setCurrentFormData(JSON.parse(storedData));\n\n // Hack to reload form\n setUiSchema({})\n const tempUiSchema = {...uiSchema};\n setUiSchema(tempUiSchema);\n }\n }\n sessionStorage.removeItem(\"DynoForm/shouldRerender\")\n sessionStorage.removeItem('formData');\n\n }, [isRerendered]);\n\n const onChange = (changeEvent: any) => {\n setCurrentFormData(changeEvent.formData);\n sessionStorage.setItem('formData', JSON.stringify(changeEvent.formData));\n };\n\n const uiSchemaWithoutSubmit = {...uiSchema};\n if (uiSchemaWithoutSubmit) {\n // We don't save this directly to the UiSchema because it upsets the formBuilder when previewing forms, and should\n // only be a display change, so shouldn't alter that underlying info anyway\n uiSchemaWithoutSubmit[\"ui:submitButtonOptions\"] = {\n props: {},\n norender: !showSubmit\n }\n }\n\n if (!form?.json_schema) return Nothing to preview yet\n\n if (!showTitle) {\n uiSchemaWithoutSubmit[\"ui:options\"] = {\n title: \"\",\n };\n }\n\n // Bullshit errors come up when you nest a conditional (oneOf) field inside a section,\n // you can reproduce this by making a checkbox and a dependent field inside a section,\n // checking and unchecking the checkbox, and then trying to submit. These are ignored.\n // TODO: This is a wrecking ball solution and may catch other errors we want to see.\n const erroneousErrors: string[] = [\n \"must match exactly one schema in oneOf\",\n \"must be equal to one of the allowed values\"\n ]\n\n try {\n return (\n \n\n {\n return errors.filter((e) => {\n // Check if e.message includes any string from erroneousErrors\n return !erroneousErrors.some(errString => e.message?.includes(errString));\n });\n }}\n formData={currentFormData}\n validator={validator}\n >\n }\n \n \n \n {hasUnsavedChanges &&\n \n You have unsaved changes\n \n }\n \n\n\n \n \n\n \n }\n {!dynoForm && (\n \n )}\n\n {\n // Forbid clicking out of modal to close it\n if (reason !== 'backdropClick') {\n setEditDialogOpen(false)\n }\n }}\n sx={{\n '.MuiPaper-root': { // Targets the inner Paper component of the Dialog\n width: '90%',\n height: '90%',\n maxWidth: 'none', // This removes the default max width\n maxHeight: 'none' // This removes the default max height\n }\n }}\n >\n \n {dynoForm &&\n \n }\n {!dynoForm && Nothing to edit yet}\n \n \n\n {hasUnsavedChanges &&\n You have unsaved\n changes\n }\n\n \n\n {/**/}\n\n \n \n \n\n {/* Delete confirmation*/}\n setDeleteDialogOpen(false)}>\n Confirm Deletion\n \n \n Are you sure you want to delete this form?\n \n \n \n \n \n \n \n\n {/* Cancel confirmation */}\n setCancelDialogOpen(false)}>\n Confirm Cancel\n \n \n Are you sure you want to cancel? You will lose any unsaved changes.\n \n \n \n \n\n \n \n \n \n );\n};\n\nexport default DynoFormAdder;\n","import React, {useState} from 'react';\nimport {ThemeProvider} from '@mui/material/styles';\nimport theme from 'components/mui-theme';\nimport {Grid, Typography, Tabs, Tab, Box, Badge} from '@mui/material';\nimport {Lock as LockIcon} from '@mui/icons-material';\nimport './dynoFormBuilderOverrides.scss';\nimport DynoForm from 'components/Forms/DynoForm';\nimport {IDynoForm} from \"components/Forms/dynoFormTypes\";\n\n// @ts-ignore (due to ignoring no extant type defs)\nimport {FormBuilder as FormBuilderV2} from '@ginkgo-bioworks/react-json-schema-form-builderV2';\nimport {FormBuilder as FormBuilderV3} from '@ginkgo-bioworks/react-json-schema-form-builder';\n\n// Scoped file from our Bootstrap 5 fork\nimport \"bootstrap/scss/bootstrap.scss\"\n\n// Ace editor for JSON editing\nimport AceEditor from \"react-ace\";\nimport \"ace-builds/src-noconflict/mode-json\";\nimport \"ace-builds/src-noconflict/theme-monokai\";\n\ninterface IDynoFormBuilderProps {\n dynoForm?: IDynoForm;\n setDynoForm?: (dynoForm: IDynoForm) => void;\n showSchemaEditor?: boolean;\n formBuilderVersion?: string;\n}\n\nconst DynoFormBuilder: React.FC = ({dynoForm, setDynoForm, showSchemaEditor = false, formBuilderVersion}) => {\n if (!dynoForm || !setDynoForm) return Invalid form\n if (!dynoForm?.json_schema) return Invalid schema\n\n const [tabValue, setTabValue] = React.useState(0);\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => {\n setTabValue(newValue);\n };\n\n return (\n \n\n {/* Hide the internal FormBuilder's advanced options button for simple use-cases */}\n {formBuilderVersion == \"v2\" && (\n \n )}\n\n Form Builder\n

\n Build a dynamic form that will show up under the \"dynamic form\" section of a Client form.\n

\n\n \n \n \n \n {showSchemaEditor && \n }\n color=\"primary\"\n >\n Form Schema\n \n \n }/>}\n \n \n\n \n\n {/* Preview */}\n \n\n {/* JSON Editor */}\n \n\n {/**/}\n
\n );\n};\n\nexport default DynoFormBuilder;\n","import React, {Fragment, ReactElement} from 'react';\nimport { RJSFSchema, UiSchema } from '@rjsf/utils';\nimport theme from 'components/mui-theme';\nimport { ThemeProvider, Box, Typography, Card } from '@mui/material';\nimport './dynoFormStyles.scss';\n\ninterface IDynoFormViewerProps {\n formData: { [key: string]: any };\n formSchema: RJSFSchema;\n uiSchema: UiSchema;\n}\n\nconst DynoFormViewer: React.FC = ({ formData, formSchema, uiSchema }) => {\n type JsonStructure = { [key: string]: string | boolean | JsonStructure };\n\n /**\n * Adds a smaller element element to the elements array\n * @param level\n * @param key\n * @param elements\n */\n function addElementHeaderToElements(level: number, key: string, elements: React.ReactElement[]) {\n const headerVariant = `h${Math.min(level, 6)}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n const headerElement = (\n \n {key}\n \n );\n elements.push(headerElement);\n }\n\n /**\n * Adds a string element to the elements array\n * @param value\n * @param key\n * @param elements\n */\n function addStringToElements(value: string, key: string, elements: React.ReactElement[]) {\n const lines = value.split('\\n').map((line, index) => (\n \n {line}\n
\n
\n ));\n elements.push(
{lines}
);\n }\n\n function makeSectionHeader(key: string, level: number): ReactElement {\n const headerVariant = `h${Math.min(level, 6)}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return (\n \n {key}\n \n );\n }\n\n /**\n * Adds a boolean element to the elements array\n * @param key\n * @param value\n * @param elements\n */\n function addBooleanToElements(key: string, value: boolean, elements: React.ReactElement[]) {\n const contentElement =
{value ? 'Yes' : 'No'}
;\n elements.push(contentElement);\n }\n\n /**\n * Renders an RJSF form data as a formatted React element\n * @param json\n * @param currentUiSchema\n * @param currentFormSchema\n * @param level\n */\n function renderFormData(json: JsonStructure, currentUiSchema: UiSchema, currentFormSchema: RJSFSchema, level: number = 4): React.ReactElement {\n if (level > 6) level = 6; // Max out at h6\n const elements: React.ReactElement[] = [];\n\n // Determine the order of fields\n const fieldOrder = Array.isArray(currentUiSchema[\"ui:order\"])\n ? currentUiSchema[\"ui:order\"]\n : Object.keys(currentFormSchema.properties || {});\n\n fieldOrder.forEach((key: string) => {\n if (json.hasOwnProperty(key)) {\n const value = json[key];\n\n if (typeof value !== 'object' && value !== null) {\n addElementHeaderToElements(level, key, elements);\n }\n\n // Handling simple fields (non-objects)\n if (typeof value === 'string') {\n addStringToElements(value, key, elements);\n }\n\n else if (typeof value == 'boolean') {\n addBooleanToElements(key, value, elements);\n }\n\n // Add section elements\n else {\n if (typeof value === 'object' && value !== null) {\n // Handling nested objects\n if (typeof value === 'object' && currentFormSchema.properties && currentFormSchema.properties[key]) {\n const nestedFormSchema = currentFormSchema.properties[key] as RJSFSchema;\n const nestedUiSchema = currentUiSchema[key] || {};\n elements.push(\n \n \n {makeSectionHeader(key, level)}\n {renderFormData(value, nestedUiSchema, nestedFormSchema, level + 1)}\n \n \n );\n }\n }\n }\n }\n });\n return {elements};\n }\n\n return (\n \n
\n {formSchema.title &&\n \n {formSchema.title}\n \n }\n \n {formSchema.properties && renderFormData(formData, uiSchema, formSchema)}\n \n
\n\n
\n );\n};\n\nexport default DynoFormViewer;\n","import {RefObject, useEffect} from \"react\";\n\ninterface IUseParentSubmitProps {\n currentFormData: any;\n submitFormRef: RefObject;\n formRef: RefObject;\n setIsInputValid: any;\n deferToParent: boolean;\n attachedModelName?: string;\n}\n\nconst useParentSubmit = ({currentFormData, submitFormRef, formRef, setIsInputValid, deferToParent, attachedModelName}: IUseParentSubmitProps) => {\n\n // Default model name to attach FormData to\n const DEFAULT_MODEL_NAME = 'assistance'\n attachedModelName = attachedModelName || DEFAULT_MODEL_NAME;\n // Special case for intake_registrations where their form has a legacy label of \"intake_household\" but the model\n // is still an \"intake_registration\".\n const formDomId = attachedModelName == \"intake_registration\" ? \"intake_household\" : attachedModelName\n\n useEffect(() => {\n // Event handler for form submission\n const handleSubmit = (e: Event) => {\n const form = e.target as HTMLFormElement;\n let submitButtonValue = '';\n\n // Check if the submit event is triggered by a submit button\n // Using type assertion for compatibility\n const submitEvent = e as any;\n if (submitEvent.submitter) {\n const submitter = submitEvent.submitter as HTMLInputElement;\n submitButtonValue = submitter.value;\n }\n\n if (currentFormData) {\n sessionStorage.setItem('formData', JSON.stringify(currentFormData))\n form.addEventListener('ajax:beforeSend', function (event: any) {\n event.preventDefault(); // prevent Rails UJS from continuing\n\n // Continue with async behavior\n void handleAsyncSubmit(event, form, submitButtonValue);\n });\n }\n };\n\n // Async handler for form submission (you can't put an asynt method directly in the event handler because it returns\n // a promise, which the event handler doesn't like or want)\n const handleAsyncSubmit = async (event: any, form: HTMLFormElement, buttonName: string)=> {\n\n // Manually run validation on the form\n submitFormRef.current.click();\n const isValid = formRef.current.validateForm();\n setIsInputValid(isValid)\n if (!isValid) return;\n\n // Attach form data to the parent \"formData\" object that is submitted with the rest of the page\n const formData = new FormData(form);\n if (buttonName) {\n formData.append(`${attachedModelName}[button]`, buttonName)\n }\n formData.append(`${attachedModelName}[form_data]`, JSON.stringify(currentFormData));\n\n // Extract URL and method from the form\n // We are pressing an invisible submit button because RJSF does not expose a way to show UI validation\n // errors like it would on a normal submit.\n // See: https://github.com/rjsf-team/react-jsonschema-form/issues/500\n const actionURL = form.getAttribute('action') || '';\n const method = form.getAttribute('method') || 'POST';\n\n try {\n const response = await fetch(actionURL, {\n method: method,\n body: formData,\n headers: {\n 'X-Requested-With': 'XMLHttpRequest'\n }\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n\n if (response.headers.get('Content-Type')?.includes('javascript')) {\n const script = await response.text();\n eval(script); // Evaluates the returned JS\n } else {\n const data = await response.json();\n console.log('Success:', data);\n }\n\n } catch (error) {\n console.error('Error:', error);\n }\n }\n\n // Add event listener to the document\n if (deferToParent) {\n const formElement = document.getElementById(`${formDomId}_form`);\n formElement?.addEventListener('submit', handleSubmit, true); // Using the capture phase\n }\n\n // Cleanup: remove event listener on unmount\n return () => {\n document.getElementById(`${formDomId}_form`)?.removeEventListener('submit', handleSubmit, true);\n document.removeEventListener('ajax:beforeSend', handleSubmit, true);\n };\n }, [currentFormData, submitFormRef, deferToParent]);\n\n}\n\nexport default useParentSubmit;","import React from 'react';\n\nconst HelloWorld: React.FC = () => {\n return (\n
\n Hello, world!\n
\n );\n}\n\nexport default HelloWorld;","import React from 'react';\nimport {Grid, ThemeProvider} from \"@mui/material\";\nimport {\n ArticleOutlined as ArticleIcon,\n Assessment as AssessmentIcon,\n AssignmentReturnedOutlined as AssignmentReturnedIcon,\n CategoryOutlined as CategoryIcon,\n ContactSupportOutlined as ContactSupportIcon,\n CorporateFareOutlined as CorporateFareIcon,\n DynamicFormOutlined as DynamicFormIcon,\n GavelOutlined as GavelIcon,\n LocalGroceryStoreOutlined as LocalGroceryStoreIcon,\n ShoppingBagOutlined as ShoppingBagIcon,\n LibraryBooksOutlined as LibraryBooksIcon,\n NotesOutlined as NotesIcon,\n PeopleOutlined as PeopleIcon,\n PersonAddOutlined as PersonAddIcon,\n SmsOutlined as SmsIcon,\n TuneOutlined as TuneIcon,\n} from \"@mui/icons-material\";\nimport './left-navigator.scss';\nimport theme from \"components/mui-theme\";\nimport NavItem from \"components/LeftNavigator/NavItem\";\n\ninterface LeftNavigatorProps {\n admin?: boolean;\n superAdmin?: boolean;\n ordersEnabled?: boolean;\n broadcastEnabled?: boolean;\n}\n\n/**\n * Left-side navigation menu that is displayed on all pages.\n * @param admin {boolean} whether the viewing user is an admin\n * @param superAdmin {boolean} whether the viewing user is a super admin\n * @param ordersEnabled\n * @param broadcastEnabled\n * @constructor\n */\nconst LeftNavigator: React.FC = ({admin, superAdmin, ordersEnabled, broadcastEnabled = false}: LeftNavigatorProps) => {\n return (\n \n \n \n
Client service
\n
\n }>Intake\n {ordersEnabled && <>\n }>Prepare\n }>Hand out\n \n }\n\n \n
Reporting
\n
\n }>Summary\n }>Clients\n }>History\n\n\n \n
Other
\n
\n {admin && broadcastEnabled &&\n }>Broadcast\n }\n }>Terms\n }>Support\n\n {admin && <>\n \n
Admin
\n
\n }>My org\n }>General\n }>Client fields\n }>Assistance types\n }>Users\n }>License\n\n }\n\n {superAdmin && <>\n \n
Super admin
\n
\n }>CBOs\n }>Users\n }>Client fields\n }>Imports\n }\n
\n
\n\n );\n}\n\nexport default LeftNavigator;","import React, {ReactElement, ReactNode} from 'react';\nimport {Box, Grid, Link} from \"@mui/material\";\nimport {colors} from \"components/mui-theme\";\n\ninterface NavItemProps {\n href: string;\n children: ReactNode;\n icon: ReactElement;\n}\n\n/**\n * A single navigation link in a navigation menu.\n * @param href\n * @param children\n * @param icon\n * @constructor\n */\nconst NavItem: React.FC = ({href, children, icon}: NavItemProps) => {\n const isActive = window.location.href.endsWith(href);\n\n return (\n \n \n {React.cloneElement(icon, {\n fontSize: \"small\",\n sx: {marginRight: '1rem', color: isActive ? colors.primary : colors.light}\n })}\n {children}\n \n \n );\n}\n\nexport default NavItem;","import React from 'react';\nimport {Grid, FormControl, InputLabel, MenuItem, Select, TextField, Button, Snackbar, Alert} from '@mui/material';\nimport {ThemeProvider} from '@mui/material/styles';\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport theme from \"components/mui-theme\";\n\ntype AgeType = 'dob' | 'age' | 'category';\n\nconst AGE_TYPES: AgeType[] = ['dob', 'age', 'category'];\n\nconst AGE_TYPE_LABELS: { [key in AgeType]: string } = {\n 'dob': 'Date of birth',\n 'age': 'Age',\n 'category': 'Age category'\n}\n\ninterface AgeSettingsProps {\n seniorMinAge?: number;\n defaultAgeType?: \"dob\" | \"age\" | \"category\";\n}\n\n/**\n * Settings form for the treatment of Client \"Age\" fields, `age`, `dob` and `age_group`.\n * @param seniorMinAge\n * @param defaultAgeType\n * @constructor\n */\nconst AgeSettings: React.FC = ({seniorMinAge, defaultAgeType}: AgeSettingsProps) => {\n\n const [seniorMinAgeState, setSeniorMinAgeState] = React.useState(seniorMinAge || 60);\n const [defaultAgeTypeState, setDefaultAgeTypeState] = React.useState<\"dob\" | \"age\" | \"category\">(defaultAgeType || 'dob');\n const [successMessageOpen, setSuccessMessageOpen] = React.useState(false);\n const [errorMessageOpen, setErrorMessageOpen] = React.useState(false);\n\n const handleSubmit = async (event: React.FormEvent) => {\n event.preventDefault();\n\n const payload = {\n senior_min_age: seniorMinAgeState,\n default_age_type: defaultAgeTypeState\n };\n\n const csrfToken = document.querySelector(\"meta[name='csrf-token']\")?.getAttribute(\"content\");\n\n try {\n const response = await fetch('/settings/fields/age', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': csrfToken || ''\n },\n body: JSON.stringify(payload)\n });\n\n if (response.ok) {\n // Open the Snackbar to show success message\n setSuccessMessageOpen(true);\n }\n } catch (error) {\n setErrorMessageOpen(true)\n }\n };\n\n return (\n <>\n \n \n
\n \n \n

\n You can change the minimum age that qualifies a person as being a \"senior\" in your system.\n

\n \n {\n setSeniorMinAgeState(parseInt(event.target.value));\n }}\n />\n \n
\n\n \n

\n You can choose your organization's default type of age selection that will show when editing clients'\n profiles.\n

\n \n Default age type\n {\n setDefaultAgeTypeState(event.target.value as \"dob\" | \"age\" | \"category\");\n }}\n >\n Select an option {/* Default \"empty\" option */}\n {AGE_TYPES.map((option) => (\n \n {AGE_TYPE_LABELS[option]}\n \n ))}\n \n \n
\n \n\n
\n \n
\n\n {/* Success snackbar */}\n setSuccessMessageOpen(false)}\n >\n setSuccessMessageOpen(false)} severity=\"success\" sx={{width: '100%'}}>\n Settings successfully updated\n \n \n\n {/* Error snackbar */}\n setErrorMessageOpen(false)}\n >\n setErrorMessageOpen(false)} severity=\"error\" sx={{width: '100%'}}>\n There was an error updating settings. Contact support if this persists.\n \n \n \n
\n \n );\n};\n\nexport default AgeSettings;\n","import React, {useState} from 'react';\nimport Grid from '@mui/material/Grid';\nimport Switch from '@mui/material/Switch';\nimport {Box, Link} from '@mui/material';\nimport {ThemeProvider} from '@mui/material/styles';\nimport theme from 'components/mui-theme';\nimport {CboFeatureFlag} from \"components/CboFeatureFlagEditor/featureFlagTypes\";\n\ninterface ClientFieldsSettingsProps {\n fields?: ClientField[];\n featureFlags: CboFeatureFlag[],\n}\n\ninterface ClientField {\n label: string;\n name: string;\n enabled: boolean;\n has_options: boolean;\n has_custom_settings: boolean;\n}\n\nconst ClientFieldsSettings: React.FC = ({fields, featureFlags}: ClientFieldsSettingsProps) => {\n const [clientFields, setClientFields] = useState(fields || []);\n\n const handleChange = async (index: number) => {\n const newFields = [...clientFields];\n newFields[index].enabled = !newFields[index].enabled;\n setClientFields(newFields);\n\n // Get the CSRF token from the meta tags\n const csrfToken = document.querySelector(\"meta[name='csrf-token']\")?.getAttribute(\"content\");\n\n // Submit the updated field state to your API\n const field = newFields[index];\n\n // Serialize data to x-www-form-urlencoded format\n const formData = new URLSearchParams();\n formData.append(\"_method\", \"patch\");\n formData.append(\"authenticity_token\", csrfToken || \"\");\n formData.append(\"field[enabled]\", field.enabled ? \"1\" : \"0\");\n\n try {\n const response = await fetch(`/settings/fields/${field.name}/toggle_enabled`, {\n method: 'POST',\n headers: {\n 'Accept': 'text/javascript',\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n },\n body: formData.toString()\n });\n } catch (error) {\n console.error(JSON.stringify(error));\n throw error;\n }\n };\n\n const generateUrl = (field: ClientField, path: string) => `/settings/fields/${field.name}/${path}`;\n\n const hasBarcodesFeature = featureFlags.some(featureFlag => featureFlag.name === 'barcodes');\n\n return (\n \n \n \n Field name\n \n \n \n Enabled\n \n \n \n \n {/* DYNAMIC FIELDS */}\n {clientFields.map((field, index) => {\n // Early return if barcode feature is disabled for barcode_enable field\n if (field.name === 'barcode_enable' && !hasBarcodesFeature) return null;\n\n return (\n \n \n {/* Link to the default field options selection if this is a Select field with configurable values */}\n {field.has_options && {field.label}}\n\n {/* Link to the custom field settings if this is a field with configuration unique to it*/}\n {field.has_custom_settings && {field.label}}\n\n {/* Otherwise, just display the field label */}\n {!field.has_options && !field.has_custom_settings && {field.label}}\n \n \n \n handleChange(index)}\n inputProps={{'aria-label': 'controlled'}}\n />\n \n \n \n );\n })}\n \n \n );\n};\n\nexport default ClientFieldsSettings;\n","import {createTheme} from '@mui/material/styles';\nimport {lighten} from \"@mui/material\";\n\nexport const colors = {\n primary: '#698dd1',\n secondary: '#6c757d',\n success: '#28a745',\n info: '#17a2b8',\n warning: '#e85600',\n danger: '#dc3545',\n light: '#f8f9fa',\n\tdark: '#343a40',\n};\n\nconst theme = createTheme({\n\tzIndex: {\n\t\tmobileStepper: 900,\n\t\tspeedDial: 950,\n\t\tappBar: 1020,\n\t\tdrawer: 1030,\n\t\tmodal: 1050,\n\t\tsnackbar: 1060,\n\t\ttooltip: 1070,\n\t},\n\tpalette: {\n\t\tprimary: {\n\t\t\tmain: colors.primary,\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: colors.secondary,\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: colors.success,\n\t\t},\n\t\tinfo: {\n\t\t\tmain: colors.info,\n\t\t},\n\t\twarning: {\n\t\t\tmain: colors.warning,\n\t\t},\n\t\terror: {\n\t\t\tmain: colors.danger,\n\t\t},\n\t\tgetContrastText: (background: string) => {\n\t\t\treturn '#fff';\n\t\t}\n\t},\n\ttypography: {\n\t\tfontFamily: 'Quicksand, sans-serif',\n\t\th1: {\n\t\t\tfontWeight: 500,\n\t\t\tfontSize: \"1.75rem\",\n\t\t\tcolor: colors.dark\n\t\t},\n\t\th2: {\n\t\t\tfontWeight: 500,\n\t\t\tfontSize: \"1.2rem\",\n\t\t\tcolor: colors.primary,\n\t\t},\n\t\th3: {\n\t\t\tfontWeight: 500,\n\t\t\tfontSize: \"1.1rem\",\n\t\t\tcolor: colors.primary,\n\t\t},\n\t\th4: {\n\t\t\tfontWeight: 500,\n\t\t\tfontSize: \"1.0rem\",\n\t\t\tcolor: colors.primary,\n\t\t},\n\t\th5: {\n\t\t\tfontWeight: 500,\n\t\t\tfontSize: \"0.9rem\",\n\t\t\tcolor: colors.primary,\n\t\t},\n\t\th6: {\n\t\t\tfontWeight: 500,\n\t\t\tfontSize: \"0.8rem\",\n\t\t\tcolor: colors.primary,\n\t\t},\n\t},\n\tcomponents: {\n\t\tMuiButton: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\ttextTransform: 'none', // Removes uppercase transformation\n\t\t\t\t\tcolor: 'white',\n\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\tfontSize: 18,\n\t\t\t\t\tpaddingTop: '0.1rem',\n\t\t\t\t\tpaddingBottom: '0.1rem',\n\t\t\t\t\tbackgroundColor: colors.primary,\n\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\tbackgroundColor: lighten(colors.primary, 0.5), // makes the color 10% darker\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\toutlined: {\n\t\t\t\t\tcolor: colors.primary,\n\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\tborderColor: colors.primary\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tMuiContainer: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\tpadding: '0.5rem'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tMuiLink: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\ttextDecoration: 'none',\n\t\t\t\t\tcolor: colors.primary,\n\t\t\t\t\t'&:visited': {\n\t\t\t\t\t\tcolor: colors.primary,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tMuiInputBase: {\n\t\t\tstyleOverrides: {\n\t\t\t\tinput: {\n\t\t\t\t\tpaddingTop: '0.2rem',\n\t\t\t\t\tpaddingBottom: '0.2rem',\n\t\t\t\t\theight: '1.0rem'\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n});\n\nexport default theme;\n","export const headers = () => {\n const csrfToken = document.querySelector('meta[name=\"csrf-token\"]')?.getAttribute('content');\n return {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': csrfToken || ''\n }\n}","export const isMobileDevice = () => {\n const result: boolean = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n || /iPad|iPhone|iPod/.test(navigator.platform)\n || (navigator?.maxTouchPoints > 1);\n\n return result\n}"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","i","client","model_name","default_age_type","required","isMobile","isMobileDevice","dobFormatted","date_of_birth","format","useState","inputType","setInputType","age","toString","setAge","dobString","setDobString","dateForServer","setDateForServer","age_group","ageGroup","setAgeGroup","undefined","errors","setErrors","ageHiddenStyle","display","dobHiddenStyle","categoryHiddenStyle","useEffect","sessionStorage","getItem","storedInputType","storedAge","storedDob","storedAgeGroup","JSON","parse","forEach","key","removeItem","handleSubmit","setItem","formDomId","formElement","document","getElementById","addEventListener","removeEventListener","ThemeProvider","theme","style","marginBottom","marginTop","className","TextField","label","name","type","value","onChange","event","target","placeholder","replace","length","substring","slice","formattedValueForServer","InputLabelProps","shrink","RadioGroup","FormControlLabel","control","Radio","Button","variant","color","marginRight","onClick","initialFeatureFlags","enabled","cboId","existingFlags","flag","existingFlag","find","eFlag","featureFlags","setFeatureFlags","Container","FormGroup","index","Switch","checked","updatedFlags","fetch","method","headers","body","stringify","handleToggle","querySelectorAll","element","counter","querySelector","dataset","updateCounter","maxLength","Number","textContent","form","formData","showSubmit","deferToParent","disabled","showTitle","attachedModelName","jsonSchemaArg","json_schema","uiSchemaArg","ui_schema","formRef","createRef","submitFormRef","currentFormData","setCurrentFormData","isRerendered","jsonSchema","setJsonSchema","uiSchema","setUiSchema","setIsInputValid","storedData","tempUiSchema","uiSchemaWithoutSubmit","props","norender","title","erroneousErrors","Form","ref","noHtml5Validate","showErrorList","changeEvent","schema","transformErrors","filter","some","errString","message","includes","validator","associatedModel","associatedModelId","showSchemaEditor","formBuilderVersion","dynoForm","setDynoForm","lastSavedDynoForm","setLastSavedDynoForm","deleteDialogOpen","setDeleteDialogOpen","cancelDialogOpen","setCancelDialogOpen","editDialogOpen","setEditDialogOpen","jsonIsOpen","isNewForm","setIsNewForm","hasUnsavedChanges","setHasUnsavedChanges","saveEditedForm","response","ok","json","savedForm","Card","sx","CardContent","Typography","description","Collapse","in","fontFamily","fontSize","CardActions","container","item","xs","IconButton","Dialog","open","onClose","reason","width","height","maxWidth","maxHeight","DialogContent","DialogActions","DialogTitle","DialogContentText","React","tabValue","setTabValue","Box","borderBottom","borderColor","Tabs","newValue","Tab","Badge","badgeContent","Lock","hidden","Grid","FormBuilder","uischema","newSchema","newUiSchema","updatedForm","mods","deactivatedFormInputs","labels","formNameLabel","formDescriptionLabel","tooltipDescriptions","cardObjectName","showFormHead","marginLeft","backgroundColor","padding","mode","editorProps","$blockScrolling","showPrintMargin","showGutter","highlightActiveLine","newJson","parsed","err","setOptions","showLineNumbers","tabSize","formSchema","mt","properties","renderFormData","currentUiSchema","currentFormSchema","level","elements","Array","isArray","hasOwnProperty","headerVariant","Math","min","headerElement","push","addElementHeaderToElements","lines","split","line","Fragment","addStringToElements","contentElement","addBooleanToElements","nestedFormSchema","nestedUiSchema","boxShadow","px","makeSectionHeader","useParentSubmit","DEFAULT_MODEL_NAME","submitButtonValue","submitEvent","submitter","preventDefault","handleAsyncSubmit","buttonName","current","click","isValid","validateForm","FormData","append","actionURL","getAttribute","status","get","text","script","eval","data","console","log","error","admin","superAdmin","ordersEnabled","broadcastEnabled","spacing","href","icon","Assessment","children","isActive","window","location","endsWith","alignItems","cloneElement","colors","primary","light","Link","AGE_TYPES","AGE_TYPE_LABELS","seniorMinAge","defaultAgeType","seniorMinAgeState","setSeniorMinAgeState","defaultAgeTypeState","setDefaultAgeTypeState","successMessageOpen","setSuccessMessageOpen","errorMessageOpen","setErrorMessageOpen","onSubmit","payload","senior_min_age","csrfToken","sm","FormControl","fullWidth","inputProps","max","parseInt","InputLabel","Select","labelId","defaultValue","MenuItem","option","size","Snackbar","autoHideDuration","anchorOrigin","vertical","horizontal","Alert","severity","fields","clientFields","setClientFields","handleChange","newFields","field","URLSearchParams","generateUrl","path","hasBarcodesFeature","featureFlag","justifyContent","has_options","textDecoration","has_custom_settings","secondary","success","info","warning","danger","dark","createTheme","zIndex","mobileStepper","speedDial","appBar","drawer","modal","snackbar","tooltip","palette","main","getContrastText","background","typography","h1","fontWeight","h2","h3","h4","h5","h6","components","MuiButton","styleOverrides","root","textTransform","paddingTop","paddingBottom","lighten","outlined","MuiContainer","MuiLink","MuiInputBase","input","test","navigator","userAgent","platform","maxTouchPoints"],"sourceRoot":""}