{"version":3,"file":"wizardquestionaire.893184fc1ed4f1411c8e.js","mappings":"yJAAO,SAASA,EAAmBC,GAC1BA,KAIDC,SAASC,YAAsC,aAAxBD,SAASE,WAAoD,YAAxBF,SAASE,YACrEH,IAEAI,OAAOC,iBAAiB,oBAAoB,WACxCL,GACJ,IAER,C,iCCGO,SAASM,EAAWC,EAAOC,GAAS,IAAAC,EAAA,KACvC,IAAKF,GAA4B,IAAnBA,EAAMG,SAChB,MAAM,IAAIC,MAAM,8DAGpB,IAAIC,EAAaL,EAAMM,MAEvBC,KAAKC,SAmGT,SAAgBC,GAOZ,IANA,IAGIC,EACAC,EAJAC,EAAKC,OAAOJ,GACZK,EAAI,EACJC,EAAIC,UAAUC,OAIXH,EAAIC,EAAGD,IAEV,GAAe,QADfJ,EAASM,UAAUF,IAEf,IAAKH,KAAKD,EACFG,OAAOK,UAAUC,eAAeC,KAAKV,EAAQC,KAC7CC,EAAGD,GAAKD,EAAOC,IAM/B,OAAOC,CACX,CAtHoBS,CAAO,CAAC,EAAGtB,EAAWuB,UAAWrB,EAAS,CACtDsB,MAAOvB,EACPwB,OAAQjB,KAAKkB,QAAQxB,GACrByB,OAAQ,kBAAMxB,EAAKyB,+BAA+B,IAEtDpB,KAAKqB,QAAU,IAAI/B,OAAOgC,QAAQtB,KAAKC,UACvCD,KAAKuB,QAAUvB,KAAKqB,QAAQG,GAEvB1B,IACDL,EAAMM,MAAQD,EAEtB,CAoFO,SAAS2B,EAAWC,EAAShC,GAChC,OAAO,IAAIF,EAAWkC,EAAShC,EACnC,CA6BA,SAASiC,EAAQvB,GACb,IAAIwB,EAAMC,SAASzB,GACnB,OAAOwB,EAAM,GAAK,IAAMA,EAAMA,CAClC,C,iBApHApC,EAAWuB,UAAY,CACnBe,OAAQ,WACRC,SAAU,SAAUC,GAChB,IAAIC,EAAMN,EAAQK,EAAKE,WAIvB,OAHYP,EAAQK,EAAKG,WAAa,GAGvB,IAAMF,EAAM,IAFhBD,EAAKI,aAGpB,EACAC,QAAS,IAAIC,MAGjB9C,EAAWmB,UAAUS,8BAAgC,WACjD,IAAMmB,EAAapD,SAASqD,cAAc,mBACpCC,EAAiBZ,SAAS1C,SAASuD,KAAKC,MAAMC,KAE/CL,IAAcM,MAAMJ,KAIzBzC,KAAKuB,QAAQoB,MAAMC,IAAM,GAAHE,OAAMC,KAAKC,IAAIP,GAAkBZ,SAAS7B,KAAKuB,QAAQoB,MAAMC,KAAI,MAC3F,EAEApD,EAAWmB,UAAUO,QAAU,SAAUxB,GACrC,OAAO,SAAUuD,GACb,GAAIvD,GAAqC,mBAAnBA,EAAQuB,OAAuB,CACjD,IAAIiC,GAiFSC,EAhFTF,EAAgBG,UAAU,GAAGD,MAAQ,EAgFrBE,EA/EhBJ,EAAgBG,UAAU,GAAGC,KAgFlC,SAAUpB,GACb,OAAO,IAAIK,KAAKa,EAAQ,IAAMlB,EAAM,IAAMoB,EAC9C,GAhFQ3D,EAAQuB,OACJjB,KACA,GAAGsD,MACEzC,KAAKoC,EAAgBzB,GAAG+B,iBAAiB,iCACzCC,KAAI,SAAUjC,GACX,MAAO,CACHA,QAASA,EACTS,KAAMkB,EAAa3B,EAAQkC,QAAQxB,KAE3C,IAEZ,CAkER,IAAyBkB,EAAOE,CAjE5B,EAAEK,KAAK1D,KACX,EAEAR,EAAWmB,UAAUgD,KAAO,WACxB3D,KAAKqB,QAAQsC,MACjB,EAEAnE,EAAWmB,UAAUiD,KAAO,WACxB5D,KAAKqB,QAAQuC,MACjB,EAEApE,EAAWmB,UAAUkD,QAAU,WAC3B7D,KAAKqB,QAAQwC,SACjB,EAEArE,EAAWmB,UAAUmD,QAAU,SAAU9B,GACrChC,KAAKqB,QAAQyC,QAAQ9B,EACzB,EAEAxC,EAAWmB,UAAUoD,WAAa,SAAUrC,GACxC,IACIsC,EACAC,EAFYjE,KAAKuB,QAAQiB,cAAc,mBAKvCwB,EAAUhE,KAAKuB,QAAQiB,cAAc,8BAGjCyB,EAAM9E,SAAS+E,cAAc,QACzBC,UAAY,wBAChBnE,KAAKuB,QAAQ6C,YAAYH,GACzBD,EAAUC,IAGdA,EAAM9E,SAAS+E,cAAc,QACzBG,UAAY3C,EAChBsC,EAAQI,YAAYH,GAE5B,C,8rDC/GA,IACMK,EAAK,SAAAC,GACP,SAAAD,EAAY5C,EAAS8C,GAAK,OAAAC,EAAA,KAAAH,GAAAI,EAAA,KAAAJ,EAAA,CAChB5C,EAAS8C,GACnB,CAAC,O,qRAHMG,CAAAL,EAAAC,GAGNK,EAAAN,EAAA,CAHM,CADIhF,OAAOuF,IAAMvF,OAAOuF,GAAGC,OAASxF,OAAOuF,GAAGC,OAAMF,GAAA,SAAAG,IAAAN,EAAA,KAAAM,EAAA,KAMhD,SAASC,EAAMtD,EAAShC,GACnC,OAAO,IAAI4E,EAAM5C,EAAShC,EAC9B,C,kCCkDA,QA9Da,CACTuF,WAAY,SAASC,EAAKC,EAASC,GAC/B,IAAIC,EAASlG,SAAS+E,cAAc,UAEpC,SAASoB,IACkB,mBAAZH,GACPA,GAER,CAEAE,EAAOE,OAAQ,EACfF,EAAOG,KAAO,kBAEVH,EAAOhG,WAEPgG,EAAOI,mBAAqB,WACC,UAArBJ,EAAOhG,YAA+C,YAArBgG,EAAOhG,aACxCgG,EAAOI,mBAAqB,KAC5BH,IAER,EAGAD,EAAOK,OAAS,WACZJ,GACJ,EAGmB,mBAAZF,IACPC,EAAOM,QAAUP,GAGrBC,EAAOO,IAAMV,EACb/F,SAAS0G,qBAAqB,QAAQ,GAAGzB,YAAYiB,EACzD,EACAS,SAAU,WACN,OAAOC,SAASC,eAAkD,IAA/BD,SAASC,SAASF,SAC/CC,SAASC,SAASF,SAClB9F,KAAKiG,eACf,EACAA,cAAe,WACX,OAAO3G,OAAO4G,WAAW,sBAAsBC,OACnD,EACAC,cAAe,SAASlB,GAChBA,IACA5F,OAAO+G,SAASC,KAAOpB,EAE/B,EACAqB,wBAAyB,SAAShF,GACd,GAAG+B,MAAMzC,KAAK1B,SAASoE,iBAAiBhC,EAAU,WAExDiF,SAAQ,SAASC,GACvB,IAAKA,EAAKC,UAAUC,SAAS,cAAe,CACxC,IAAIC,EAASH,EAAKI,aAAa,YAE/BJ,EAAKC,UAAUI,IAAI,cACnBL,EAAKM,aAAa,MAAOH,EAC7B,CACJ,GACJ,E,oDChCG,IA1BeI,EAAQtB,EACpBuB,EACFC,EAwBKC,GA1BSH,EA2BlB,kBAAM,IAAII,SAAQ,SAAAC,GAAG,OAAI,wDAAoBC,MAAK,SAAAC,GAAA,IAAEC,EAAOD,EAAPC,QAAO,OAAMH,EAAIG,EAAQ,GAAC,GAAC,EA3BrD9B,EA4B1B,SAAC8B,EAASC,EAAU/H,GAAO,OAAK8H,EAAQC,EAAU/H,EAAQ,EA3BpDuH,EAAQ,GACVC,EAAS,KAEN,WAAiB,QAAAQ,EAAAjH,UAAAC,OAALiH,EAAI,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,GAAApH,UAAAoH,GACnB,IAAGX,EAKH,OAAID,EAAMvG,YAYXuG,EAAMa,KAAKH,IAXNV,EAAMa,KAAKH,QACXX,IACKM,MAAK,SAAAS,GAEF,IADAb,EAASa,EACHd,EAAMvG,QACRgF,EAAOsC,MAAM,KAAM,CAACd,GAAQpE,OAAOmE,EAAMgB,SAEjD,KAZJvC,EAAOsC,MAAM,KAAM,CAACd,GAAQpE,OAAO6E,GAiB3C,E,kBCxBG,SAASO,EAAiBC,GAC7B,IACIC,EACA7H,EACAkG,EAHA4B,EAAc,CAAC,EAKnB,GAAI,MAAOF,EACP,OAAOE,EASX,IAFA9H,GAJA6H,EAAQD,EACHG,MAAM,KACNC,MACAD,MAAM,MACD5H,OAEHH,KAEH8H,GADA5B,EAAO2B,EAAM7H,GAAG+H,MAAM,MACL,IAAME,UAAU/B,EAAK,IAG1C,OAAO4B,CACX,C,szCCtBO,SAASI,EAAQC,EAAUC,EAAQC,GAClCtJ,OAAOuJ,WAAaH,GAAYC,QAA2B,IAAVC,GACjDtJ,OAAOuJ,UAAUf,KAAK,CAClBgB,MAAO,iBACPC,gBAAiBL,EACjBM,cAAeL,EACfM,aAAcL,GAG1B,CAEO,SAASM,I,SACR/J,SAASoE,iBAAiB,uB,knBAAwBiD,SAAQ,SAAS2C,GACnEA,EAAU5J,iBAAiB,SAAS,SAAAuJ,GAAK,OAI1C,SAAyBA,EAAO5J,GAC/B,IAAAgB,EAAS4I,EAAM5I,OAAMkJ,EAAAC,EAAAA,EAAA,GAEdP,EAAMQ,cAAc7F,SACpBvD,EAAOuD,SAFb8F,EAAWH,EAAXG,YAAaC,EAASJ,EAATI,UAAWC,EAAQL,EAARK,SAIzBC,GAAQ,EAEZ,GAAIH,GAAeC,EAAW,CAC1B,GAAIC,EAEA,YADAvK,EAASqK,EAAaC,EAAWC,GAIrC,MAAQC,GAASxJ,GAAUA,IAAW4I,EAAMQ,gBAAkBG,GACtD,YAAYE,KAAKzJ,EAAO0J,WAExB1K,EAASqK,EAAaC,EADtBC,EAAWvJ,EAAOuD,QAAQgG,UAAYvJ,EAAO2J,UAAUC,QAEvDJ,GAAQ,GAERxJ,EAASA,EAAO6J,aAG5B,CACJ,CA5BqDC,CAAgBlB,EAAOL,EAAQ,GAChF,IAAG,EACP,C,gGCXMwB,EAAS,CACXC,oBAAqBC,EAAY,oBAAqB,+BAAgC,iBACtFC,oBAAqBD,EAAY,oBAAqB,8BAA+B,QACrFE,qBAAsBF,EAAY,oBAAqB,8BAA+B,UACtFG,0BAA2BH,EAAY,oBAAqB,8BAA+B,gBAC3FI,8BAA+BC,EAAwB,6BACvDC,2BAA4BD,EAAwB,0BACpDE,gCAAiCF,EAAwB,+BACzDG,2BAA4BH,EAAwB,0BACpDI,2CAA4CJ,EAAwB,+BACpEK,sCAAuCL,EAAwB,iCAC/DM,0CAA2CN,EAAwB,+BACnEO,0BAA2BZ,EAAY,oBAAqB,mBAAoB,QAChFa,6BAA8Bb,EAAY,oBAAqB,mBAAoB,OACnFc,4BAA6Bd,EAAY,oBAAqB,mBAAoB,MAClFe,uCAAwCC,IACxCC,oCAAqCD,IACrCE,wCAAyCF,IACzCG,oCAAqCH,IACrCI,6CAA8CJ,IAC9CK,sBAAuB,SAASC,IAC5BhD,EAAAA,EAAAA,IAAQ,oBAAqB,oBAAqBgD,EAAaC,OACnE,EACAC,0BAA2B,SAAShI,GAC5BA,IACA8E,EAAAA,EAAAA,IAAQ,oBAAqB,yBAA0B,gBAE/D,EACAmD,0BAA2B,SAASjI,GAC5BA,IACA8E,EAAAA,EAAAA,IAAQ,oBAAqB,yBAA0B,gBAE/D,EACAoD,0BAA2B,SAASlI,GAC5BA,IACA8E,EAAAA,EAAAA,IAAQ,oBAAqB,yBAA0B,wBAE/D,EACAqD,oBAAqB,SAASzF,GACtBA,IACAoC,EAAAA,EAAAA,IAAQ,oBAAqB,oBAAqBpC,EAAS0F,SAAW1F,EAAS2F,KAEvF,EACAC,uBAAwB,YACpBxD,EAAAA,EAAAA,IAAQ,oBAAqB,eAAgB,GACjD,EACAyD,gCAAiC,SAASC,GACtC,IAAIV,EAAeU,EAAUC,uBAE7BC,IAAE,iDACGC,MACAC,GAAG,SAAS,WACLd,IAAiBU,EAAUC,yBAC3B3D,EAAAA,EAAAA,IAAQ,oBAAqB,mBAAoBgD,EAAaC,OAEtE,GACR,EACAc,2BAA4B,SAASL,GACjC,IAAIM,EAAgBN,EAAUM,gBAE9BJ,IAAE,0CACGC,MACAC,GAAG,SAAS,WACLE,IAAkBN,EAAUM,kBAC5BhE,EAAAA,EAAAA,IAAQ,oBAAqB,cAAe,GAEpD,GACR,EACAiE,oBAAqB,SAASC,EAAUzN,GACpC,IAAI0N,EAAeD,EAASE,WAAU,SAAS9M,GAC3C6M,EAAaE,UACb5N,EAASa,EACb,GACJ,EACAgN,uBAAwB,WACpB,IAAIjE,EAAQqB,EAAY,oBAAqB,cAAe,sBAC5DkC,IAAE,sBACGC,IAAI,QAASxD,GACbyD,GAAG,QAASzD,EACrB,EACAkE,6BAA8B,WAC1BX,IAAE,0BACGC,MACAC,GAAG,QAASpC,EAAY,oBAAqB,gBAAiB,uBACvE,EACA8C,wBAAyB,WACrBZ,IAAE,yBAAyBE,GAAG,QAASpC,EAAY,oBAAqB,mBAAoB,KAC5FnK,KAAKkN,+BACLlN,KAAKyK,6BACLzK,KAAKoL,qCACT,EACA+B,wCAAyC,SAAShB,GAI9C,GAHAA,EAAUiB,kCAAkCP,UAAU7M,KAAK2L,2BAC3DQ,EAAUkB,kCAAkCR,UAAU7M,KAAK4L,2BAEvDO,EAAUmB,0BACVnB,EAAUmB,0BAA0B9G,QAChC,SAAS+G,GACLA,EAAWC,OAAOX,UAAU7M,KAAK6L,0BAA0BnI,KAAK1D,MACpE,EAAE0D,KAAK1D,YAGX,IAAI4M,EAAeT,EAAUmB,wBAAwBT,UACjD,SAASY,GACDA,IACAA,EAAYjH,QACR,SAAS+G,GACLA,EAAWC,OAAOX,UAAU7M,KAAK6L,0BAA0BnI,KAAK1D,MACpE,EAAE0D,KAAK1D,OAEX4M,EAAaE,UAErB,EAAEpJ,KAAK1D,OAIfA,KAAK0N,qCAAqCvB,EAC9C,EACAwB,iCAAkC,SAASC,GACvC5N,KAAKgN,+BACLhN,KAAK+M,yBACL/M,KAAK6N,8BAA8BD,GACnC5N,KAAK8N,8BAA8BF,GACnC5N,KAAK+N,0BAA0BH,GAC/B5N,KAAK4K,6CACL5K,KAAKuL,8CACT,EACAwC,0BAA2B,SAASH,GAChCA,EAAkBrB,GACd,QACA,oBACApC,EAAY,oBAAqB,kBAAmB,qBAE5D,EACA2D,8BAA+B,SAASF,GACpCA,EAAkBrB,GACd,QACA,wBACApC,EAAY,oBAAqB,wBAAyB,qBAElE,EACA0D,8BAA+B,SAASD,GACpCA,EAAkBrB,GACd,QACA,uBACApC,EAAY,oBAAqB,mBAAoB,qBAE7D,EACA+C,6BAA8B,WAC1Bb,IAAE,QAAQE,GAAG,QAAS,kBAAkB,SAASyB,IAC7CvF,EAAAA,EAAAA,IACI,oBACA,gBACAwF,EAAgBD,EAAE1E,eAAiB,gBAAkB,aAE7D,GACJ,EACA4E,gCAAiC,WAC7B7B,IAAE,QAAQE,GAAG,QAAS,kBAAkB,SAASyB,IAC7CvF,EAAAA,EAAAA,IACI,oBACA,gBACAwF,EAAgBD,EAAE1E,eAAiB,mBAAqB,gBAEhE,GACJ,EACA6E,qBAAsB,WAClB9B,IAAE,QAAQE,GAAG,QAAS,cAAepC,EAAY,oBAAqB,kBAAmB,qBAC7F,EACAiE,uBAAwB,WAwK5B,IACQzL,GAxKA8F,EAAAA,EAAAA,IAAQ,oBAAqB,sBAAuB,qBA0K1C,sBAFV9F,EAtBG0L,EAAqBhC,IAAE,mBAyB1B5D,EAAAA,EAAAA,IAAQ,oBAAqB,mBAAoB,IAChC,SAAV9F,GACP8F,EAAAA,EAAAA,IAAQ,oBAAqB,OAjB1B4F,EAAqBhC,IAAE,kBAkBT,YAAV1J,EAdJ2L,EAA+B,eAeJC,MAAK,SAASC,EAAOC,IAC/ChG,EAAAA,EAAAA,IAAQ,oBAAqB,UAAWgG,EAC5C,IACiB,YAAV9L,GAdJ2L,EAA+B,eAeJC,MAAK,SAASC,EAAOC,IAC/ChG,EAAAA,EAAAA,IAAQ,oBAAqB,UAAWgG,EAC5C,GAnLJ,EACAf,qCAAsC,SAASvB,GAC3CA,EAAUuC,uBAAuBlI,SAAQ,SAASkC,GAC9CA,EAASiG,mBAAmB9B,UACxB1C,EAAY,oBAAqB,4BAA6B,qBAEtE,GACJ,EACAyE,2BAA4B,WACxBvC,IAAE,yBAAyBE,GAAG,QAASvM,KAAKoO,wBAC5CpO,KAAKkO,kCACLlO,KAAKuK,gCACLvK,KAAKkL,wCACT,EACA2D,yBAA0B,SAASC,GAC/BA,EAAMvC,GAAG,UAAU,WACEF,IAAE,kBAEJ0C,QACXtG,EAAAA,EAAAA,IAAQ,oBAAqB,cAAe,GAEpD,GACJ,EACAuG,wBAAyB,WACrB3C,IAAE,yCACGC,MACAC,GAAG,QAASpC,EAAY,oBAAqB,gBAAiB,oBAEnEkC,IAAE,yCACGC,MACAC,GAAG,QAASpC,EAAY,oBAAqB,gBAAiB,sBACvE,EACA8E,mBAAoB,WAChB5C,IAAE,yCACGC,MACAC,GAAG,QAASpC,EAAY,oBAAqB,gBAAiB,eAEnEkC,IAAE,2CACGC,MACAC,GAAG,QAASpC,EAAY,oBAAqB,gBAAiB,iBACvE,EACA+E,+BAAgC,WAC5B7C,IAAE,mBACGC,MACAC,GAAG,QAASpC,EAAY,oBAAqB,gBAAiB,kBACvE,EACAgF,iCAAkC,WAC9B9C,IAAE,6BACGC,MACAC,GAAG,QAASpC,EAAY,oBAAqB,0BAA2B,qBACjF,EACAiF,yBAA0B,WACtBpP,KAAKkK,sBACLlK,KAAKkP,iCACLlP,KAAK6K,uCACT,EACAwE,qBAAsB,SAASlD,GAC3BnM,KAAKiP,qBACLjP,KAAK2K,6BACL3K,KAAKwM,2BAA2BL,GAChCnM,KAAK0M,oBAAoBP,EAAUM,cAAexC,EAAOgC,wBACzDjM,KAAKsL,qCACT,EACAgE,yBAA0B,SAASnD,GAC/BnM,KAAKgP,0BACLhP,KAAKkM,gCAAgCC,GACrCnM,KAAK0K,kCACL1K,KAAKqL,yCACT,EACAkE,2BAA4B,SAAST,GACjCA,EACKvC,GAAG,QAAS,qBAAsBpC,EAAY,oBAAqB,cAAe,KAClFoC,GAAG,QAAS,0BAA2BpC,EAAY,oBAAqB,eAAgB,IACjG,EACAqF,+BAAgC,SAASV,GACrCA,EAAMvC,GACF,SACA,yBACApC,EAAY,oBAAqB,kCAAmC,IAE5E,EACAsF,iCAAkC,WAC9BzP,KAAK0P,qCACL1P,KAAK8K,2CACT,EACA4E,mCAAoC,WAChCrD,IAAE,0CACGC,MACAC,GAAG,QAASpC,EAAY,oBAAqB,gBAAiB,wBAEnEkC,IAAE,yGACGC,MACAC,GAAG,QAASpC,EAAY,oBAAqB,gBAAiB,0BACvE,EACAwF,4BAA6B,SAASb,GAClCA,EAAMvC,GAAG,SAAU,sBAAuBpC,EAAY,oBAAqB,iBAAkB,IACjG,GAGJ,UAEA,SAAS8D,EAAgB1M,GACrB,OAAO8K,IAAE9K,GACJqO,SACAC,SAAS,wBAClB,CAEA,SAASrF,EAAwB5B,GAC7B,OAAO,WACHyD,IAAE,8BACGC,MACAC,GAAG,QAASpC,EAAY,oBAAqB,kBAAmBvB,GACzE,CACJ,CAEA,SAASuC,IACL,OAAO,WACHkB,IAAE,sBACGC,MACAC,GAAG,SAAS,SAASyB,GAClB,IAAIpF,EAAQ,iBAAiBe,KAAKqE,EAAE1E,cAAcO,WAC5C,WAAWF,KAAKqE,EAAE1E,cAAcO,WAC5B,SACA,QACJmE,EAAE1E,cAAcO,WACtBpB,EAAAA,EAAAA,IAAQ,oBAAqB,2BAA4BG,EAC7D,GACR,CACJ,CAEA,SAASuB,EAAYzB,EAAUC,EAAQC,GACnC,OAAO,YACHH,EAAAA,EAAAA,IAAQC,EAAUC,EAAQC,EAC9B,CACJ,CAEA,SAASyF,EAAqByB,GAC1B,OAAOA,EACFC,KAAK,mBACLC,OACAlG,MACT,CAMA,SAASwE,EAA+B5C,GACpC,OAAOW,IAAE,UAAYX,EAAO,sBAAsBlI,KAAI,SAASgL,EAAO/H,GAClE,OAAOA,EAAKoD,UAAUC,MAC1B,GACJ,C,iFCpTA,SAASmG,EAA4CC,EAAahL,GAC9DiL,EAAAA,GAA6BD,EAAahL,EAC9C,CA8BA,SAASkL,IAEL,IAAIC,EAAKlR,SAAS+E,cAAc,UAC5BoM,EAAInR,SAAS0G,qBAAqB,UAAU,GAChDwK,EAAG7K,KAAO,kBACV6K,EAAG9K,OAAQ,EACX8K,EAAGzK,IAAM,kCACT0K,EAAEC,WAAWC,aAAaH,EAAIC,GAG9BjE,IAAE,mBAAmBoE,OACjB,8ZAER,CAOe,SAASC,IACpBrE,IAAE/M,QAAQiN,GAAG,OAAQ6D,GAErB/D,KAAE,WACE,IAhCAsE,EAgCIC,EAAavE,IAAE,qBAEfuE,EAAWlQ,SAAWkQ,EAAWf,SAAS,sBArDlDxD,IAAE,QACGE,GAAG,QAAS,cAAc,SAAUyB,GArB7C,IAA+B9I,EACvB2L,EAqBI7C,EAAE8C,iBAtBiB5L,EAwBG8I,EAAE1E,cAAchD,KArBf,OAF3BuK,EAAcvR,OAAOyR,mBAAqB,CAAC,GAE/BC,WAEZb,EAAAA,GAA6BjL,GACK,MAA3B2L,EAAYG,WAEnBb,EAAAA,GAAyB,eAAgBjL,GAGzCiL,EAAAA,GAAyBjL,EAczB,IACCqH,GAAG,QAAS,qBAAqB,SAAUyB,GACxCA,EAAE8C,iBAEFb,EAA4C,eAAgBjC,EAAE1E,cAAchD,KAChF,IACCiG,GAAG,QAAS,oBAAoB,SAAUyB,GACvCA,EAAE8C,iBAEFb,EAA4C,SAAUjC,EAAE1E,cAAchD,KAC1E,IAwCI2D,EAAAA,EAAOkE,yBApCXwC,EAAStE,IAAE,8BAGJ3L,QACPiQ,EAAOM,KAAK,cAHM,uBAsCtB,GACJ,C,gFChFA,SAASC,EAAoBxR,GACzB,IAAI8E,EAAO9E,GAAW,CAAC,EACnByR,GAAgBnM,EAAAA,EAAAA,SAAMqH,EAAE,MAAQ7H,EAAK9C,QAAU,QAAQ0P,IAAI,GAAI,CAC3DC,MAAO7M,EAAK6M,MACZrM,OAAO,EACPsM,WAAW,EACXC,WAAY,oBACZC,KAAM,WACFvH,EAAAA,EAAOc,2BACX,EACA0G,QAAS,CACL,CACIzB,KAAMxL,EAAKkN,aACXC,MAAO,WACHR,EAAcS,QACd3H,EAAAA,EAAOgB,6BACX,GAEJ,CACI+E,KAAMxL,EAAKqN,iBACXF,MAAO,WACCjS,EAAQwF,MACRmB,SAASC,KAAO5G,EAAQwF,KAE5BiM,EAAcS,QACd3H,EAAAA,EAAOe,8BACX,MAKhB,OAAOmG,CACX,CAEA,SAASW,EAAa5B,GAClB,MAAO,2EAAPpN,OACIoN,EAAc,OAAHpN,OAAUoN,GAAgB,OAAM,YAEnD,CAEO,SAAS6B,IAAyC,IAAL7M,EAAGzE,UAAAC,OAAA,EAAAD,UAAA,QAAAuR,EACnD,OAAOd,EAAoB,CACvBG,MAAO,iCACP3P,QAASoQ,EAH4BrR,UAAAC,OAAA,QAAAsR,IAAAvR,UAAA,GAAAA,UAAA,GAAG,IAIxCiR,aAAc,cACdG,iBAAkB,sBAClB3M,IAAAA,GAER,CAEO,SAAS+M,EAAsB/B,EAAahL,GAC/C,OAAOgM,EAAoB,CACvBG,MAAO,iCACP3P,QAASoQ,IACTJ,aAAc,cACdG,iBAAkB,sBAClB3M,IAAAA,GAER,CAEO,SAASgN,EAAsBhC,EAAahL,GAC/C,OAAOgM,EAAoB,CACvBG,MAAO,oCACP3P,QAAS,2FAAFoB,OAA6FoN,EAAW,aAC/GwB,aAAc,cACdG,iBAAkB,eAClB3M,IAAAA,GAER,C,gGCjEMiN,EAAa,YACfC,EAAS,CACLC,SAAU,WAON,SAASC,EAAeC,GACpBA,EAAUC,SAAS,cACvB,CAEA,SAASC,EAAiBF,GACtBA,EAAUG,YAAY,cAC1B,CAZI,yCAAyC/I,KAAKtD,SAAS0F,WACvDM,IAAE,wCACG0D,KAAK,aACL2C,YAAYP,GAWrB9F,IAAE,eAAekC,MAAK,SAAShO,EAAGkG,GAC9B,IACIkM,EACAhC,EAFA4B,EAAYlG,IAAE5F,GAIlB8L,EAAUxC,KAAK,UAAUxD,GAAG,UAAU,SAASyB,IAC3C2E,EAAUtG,IAAE2B,EAAE9N,SAEF0S,SAAS,mBAAmB7D,MAAMrO,SAAW6R,EAAU1C,SAAS,eACxEyC,EAAeC,GACPI,EAAQC,SAAS,mBAAmB7D,MAAMrO,QAClD+R,EAAiBF,EAEzB,IAEAA,EAAUxC,KAAK,+CAA+CxD,GAAG,UAAU,SAASyB,GAChF2C,EAAStE,IAAE2B,EAAE9N,QAERqS,EAAU1C,SAAS,eAGG,SAAvBc,EAAOM,KAAK,SACXsB,EAAUxC,KAAK,kCAAkCrP,QAElD+R,EAAiBF,GALjBD,EAAeC,GAQS,aAAxB5B,EAAOM,KAAK,SAAgD,SAAtBN,EAAOM,KAAK,MAC9CN,EAAOkC,GAAG,aACVN,EACKxC,KAAK,kCACL+C,IAAInC,GACJoC,KAAK,WAAW,GAEM,aAAxBpC,EAAOM,KAAK,SACfN,EAAOkC,GAAG,aACVxG,IAAE,SAAS0G,KAAK,WAAW,EAGvC,GACJ,IAEA1G,IAAE,UAAUkC,MAAK,SAAShO,EAAGkG,GACzB,IAAIkM,EAAUtG,IAAE5F,GACZkM,EAAQ5C,KAAK,mBAAmBhB,MAAMrO,OAAS,GAC/CiS,EAAQK,QAAQ,eAAeR,SAAS,cAEhD,IAEAnG,IAAElN,UACG4Q,KAAK,mCACLxB,MAAK,SAAShO,EAAGkG,GACd,IAAIwM,EAAQ5G,IAAE5F,GACVwM,EAAMlD,KAAK,+DAA+DrP,QAC1E4R,EAAeW,EAAMD,QAAQ,eAErC,GACR,EACAE,cAAe,WACX,IAEIC,EAFAC,EAAYpT,KAAKqT,eAAejC,IAAI,GACpCkC,EAAiBnU,SAAS+E,cAAc,OAO5C,SAASqP,EAAiBC,GACtB,IAAKL,KAAOK,EACR,GAAIlT,OAAOK,UAAUC,eAAeC,KAAK2S,EAAML,GAAM,CACjD,IAAIM,EAAUD,EAAKL,GACfO,EAAWvU,SAAS+E,cAAc,OACtCwP,EAAS3M,aAAa,QAAS,kBAC/B2M,EAAS3M,aAAa,aAAc0M,EAAQpC,OAC5CqC,EAAS3M,aAAa,iBAAkB0M,EAAQE,WAChDL,EAAelP,YAAYsP,EAC/B,CAER,CAEA,IAAKP,KAjBLG,EAAevM,aAAa,KAAM,mBAClCuM,EAAevM,aAAa,QAAS,YACrCqM,EAAUhP,YAAYkP,GAeVhU,OAAOsU,eACXtT,OAAOK,UAAUC,eAAeC,KAAKvB,OAAOsU,eAAgBT,IAC5DI,EAAiBjU,OAAOsU,eAAeT,GAGnD,EACAU,UAAW,SAASnI,GAUhB,OATgBA,GAGC,MAHDA,IACmBhL,OAAS,GAGhB,KAEA,IAIhC,EACAoT,qBAAsB,WAClB9T,KAAKkT,gBAEL,IAAIa,EAAY3B,EAAOyB,UAAUvU,OAAOsU,eAAeG,aAEvD/T,KAAKqT,eAAetD,KAAK,mBAAmBxB,MAAK,SAASC,EAAOjN,GAC7D,IAAIuO,EAAWzD,IAAE9K,GACb8P,EAAQvB,EAASkE,KAAK,SACtBL,EAAY7D,EACPkE,KAAK,aACL1L,MAAM,KACN9E,KAAI,SAASyQ,GACV,OAAOA,EAASC,QAAQ,IAAK,GACjC,IAERpE,EAASW,OA4LzB,SAAgCsD,EAAW1C,GACvC,MACI,oNAIA0C,EACA,IACA1C,EANA,6kEAoCR,CAlOgC8C,CAAuBJ,EAAW1C,IAElDsC,EAAUnN,SAAQ,SAASyN,GACvBnE,EAASW,OAAOpE,IAAE,IAAM4H,GAC5B,GACJ,IAEA5H,IAAE,eAAe+H,SAEjBpU,KAAKqU,oBACLrU,KAAKsU,gBACLtU,KAAKuU,YAAYvU,KAAKwU,SAC1B,EACAC,eAAgB,SAASC,GACjBA,GACA1U,KAAK2U,OAAO5E,KAAK,aAAayC,SAASL,GACvCnS,KAAK2U,OAAO5E,KAAK,iCAAiC2C,YAAYP,KAE9DnS,KAAK2U,OAAO5E,KAAK,iCAAiCyC,SAASL,GAC3DnS,KAAK2U,OAAO5E,KAAK,aAAa2C,YAAYP,GAElD,EACAyC,cAAe,SAASC,GAChBA,GACA7U,KAAK2U,OAAO5E,KAAK,SAASyC,SAASL,GACnCnS,KAAK2U,OAAO5E,KAAK,yBAAyB2C,YAAYP,KAEtDnS,KAAK2U,OAAO5E,KAAK,SAAS2C,YAAYP,GACtCnS,KAAK2U,OAAO5E,KAAK,yBAAyByC,SAASL,GAE3D,EACA2C,YAAa,SAAStB,GAClB,IAAIuB,EAAS1I,IAAE,oCACX2I,EAAU,aAEVD,EAAOE,GAAGzB,GAAM9S,QAChBqU,EAAOG,OAAO,IAAMF,GAAStC,YAAYsC,GACzCD,EAAOE,GAAGzB,GAAMhB,SAASwC,GAEzBhV,KAAKwU,SAAWhB,EAEhBxT,KAAKyU,eAAiC,IAAlBzU,KAAKwU,UACzBxU,KAAK4U,cAAc5U,KAAKwU,WAAaO,EAAOrU,OAAS,KACpC,IAAV8S,IACPlU,OAAO+G,SAASC,KAAO,sCAE/B,EACAiO,YAAa,SAASY,GAClBnV,KAAK8U,YAAYK,GACjBnV,KAAKoV,gBAAgBD,GAEjB3B,EAAAA,EAAK1N,YACLxG,OAAO+V,SAAS,EAAG,EAE3B,EACAhB,kBAAmB,WACfhI,IAAE,qBACGE,GACG,QACA,YACA,SAASyB,GACLA,EAAE8C,iBAEF9Q,KAAKsV,gBACLtV,KAAKuU,YAAYvU,KAAKwU,SAAW,EACrC,EAAE9Q,KAAK1D,OAEVuM,GACG,QACA,QACA,SAASyB,GACLA,EAAE8C,iBACF9Q,KAAKsV,gBACDtV,KAAKuV,iBAAiBvV,KAAKwU,WAC3BxU,KAAKuU,YAAYvU,KAAKwU,SAAW,EAEzC,EAAE9Q,KAAK1D,MAEnB,EACAsV,cAAe,WACX,IAAI3B,EAAYtH,IAAE,eACdmJ,EAAanJ,IAAE,uBACfoJ,EAAOD,EAAWzF,KAAK,MAE3B4D,EAAUjB,YAAY,eACtB8C,EAAWhD,SAASL,GACpBqD,EAAWzF,KAAK,8BAA8B2C,YAAY,6BAC1D+C,EAAKC,OACT,EACApB,cAAe,WACXjI,IAAE,eAAe2D,KAAK3D,IAAE,mBAAmB3L,OAC/C,EACA0U,gBAAiB,SAASxT,GACtByK,IAAE,eAAe2D,KAAKpO,EAAM,EAChC,EACA2T,iBAAkB,SAAS9B,GACvB,IAKIlT,EACAoV,EACArF,EACAsF,EACAC,EACAC,EAVAC,EAAW1J,IAAE,mBACbsH,EAAYtH,IAAE0J,EAAStC,IAAU1D,KAAK,eACtCyF,EAAanJ,IAAE,uBACfoJ,EAAOD,EAAWzF,KAAK,MACvBiG,EAAa,EAQjB,SAASC,EAAcC,GACnBT,EAAKhF,OAAO,OAASyF,EAAe,SAEpCV,EAAWzF,KAAK,6BAA6ByC,SAAS,6BACtDgD,EAAW9C,YAAYP,EAC3B,CAEA,SAASgE,EAAyBC,EAASnC,GACvC,GAAImC,EAAQ1V,OAAQ,CAChB,IAAK,IAAI2V,EAAI,EAAGA,EAAID,EAAQ1V,OAAQ2V,IAChC,GAAIhK,IAAE+J,EAAQC,IAAIxD,GAAG,YACjB,OAAO,EAIfoB,EAASzB,SAAS,eAClByD,EAAchC,EAASrB,SAAS,qBAAqB5C,QACrDgG,GACJ,CAEA,OAAO,CACX,CAIA,IAFAhW,KAAKsV,gBAEA/U,EAAI,EAAGA,EAAIoT,EAAUjT,OAAQH,IAAK,CAMnC,IAJAqV,GADAD,EAAItJ,IAAEsH,EAAUpT,KACJwP,KAAK,UACjB8F,EAASF,EAAE5F,KAAK,uBAChB+F,EAAaH,EAAE5F,KAAK,0BAEfO,EAAI,EAAGA,EAAIsF,EAAQlV,OAAQ4P,IACO,IAA/BjE,IAAEuJ,EAAQtF,IAAIvB,MAAMrO,SACpBiV,EAAEnD,SAAS,eACXyD,EAAcN,EAAE/C,SAAS,qBAAqB5C,QAE9CgG,KAIRG,EAAyBN,EAAQF,GACjCQ,EAAyBL,EAAYH,EACzC,CAEA,OAAmB,IAAfK,IACAhW,KAAKsV,iBACE,EAGf,EACAgB,KAAM,WACF,IAAIC,GAAcrO,EAAAA,EAAAA,kBAAiB7B,SAASmQ,QAAQhD,KAEpDxT,KAAKqT,eAAiBhH,IAAE,oCACxBrM,KAAK2U,OAAStI,IAAE,4BAChBrM,KAAKwU,SAAW+B,GAAeA,EAAc,EAAI,EACjDvW,KAAKqS,WAELrS,KAAK2U,OAAOpI,GACR,SACA,SAASyB,GACAhO,KAAKuV,iBAAiBvV,KAAKwU,YAC5BxG,EAAE8C,iBACFzE,IAAE,uBAAuBzI,OACzB5D,KAAK2U,OAAO5E,KAAK,iBAAiBgD,KAAK,YAAY,GAE3D,EAAErP,KAAK1D,OAGPA,KAAKqT,eAAe3S,QACpBV,KAAK8T,uBACL7J,EAAAA,EAAOgD,2BAEPhD,EAAAA,EAAO2E,4BAEf,GAGR,U,ICnRIE,EAAO2H,EAAmBC,EAAqDC,EAAMC,E,oBAxCnFC,EAAyB,CAC3B,IAAO,6FACP,OACI,6HACJ,KACI,mKACJ,gBACI,4MAEJC,EAA6B,CACzBC,IAAK,8FAETC,EAA2B,CACvB,kBACI,wRACJ,kBACI,mPACJ,gBACI,oQACJ,eACI,mKAERC,EAAU,CACNrT,KAAM,YACN8E,SAAU,QACVwO,cAAe,cACfC,WAAY,aACZlD,SAAU,aACVmD,MAAO,cACPC,QAAS,QAGbC,EAAiB,YACjBC,EAAe,WACfC,EAAiBC,EAAqBR,EAAQvO,UAC9CgP,EAAoBD,EAAqBR,EAAQC,eACjDS,EAAgBF,EAAqBR,EAAQhD,UAC7C2D,EAAaH,EAAqBR,EAAQG,OAK9C,SAASS,IACL,OAAOnB,EAAehW,OAAS,CACnC,CAyBA,SAAS+W,EAAqBtT,GAC1B,OAAO,SAAU2T,GACb,OAAQA,GAAYnB,GAAM5G,KAAK,IAAM5L,EACzC,CACJ,CAEA,SAAS4T,EAAYC,EAAIF,GACrB,OAAQA,GAAYnB,GAAM5G,KAAK,IAAMiI,EACzC,CAkCA,SAASC,EAAYC,EAAQC,EAAYC,GACrCF,EAAO3J,MAAK,SAAUC,EAAO6J,GACzB,IAlCgBC,EAkCZC,EAAQlM,IAAEgM,GAEVG,GADSnM,IAAAA,WAAa+L,GAAiBA,EAAcG,GAASA,GAC3CvI,OAEnBwI,KAAaL,IACbI,EAAM/F,SAASyE,EAAQE,aAvCXmB,EAwCGC,IAtCnBD,EAAM7H,OAAO,aAAewG,EAAQI,QAAU,WAsBtD,SAAoBiB,EAAOG,IACvBjR,EAAAA,EAAAA,cAAQ8Q,EAAO,CACXI,MAAO9B,EAAc,IAAM,IAAM,IACjCnO,QAAS,QACT/G,QAAS+W,GAEjB,CAWYE,CAAWJ,EAAMxI,KAAK,IAAMkH,EAAQI,SAAUc,EAAWK,IAEjE,GACJ,CAsBA,SAASI,EAAkBd,GACnBA,GACAA,EAAStF,SAASyE,EAAQG,MAElC,CA4BA,SAASyB,EAAY/I,GACjB,OAAOA,EAAS,GAAGlG,SAASkP,aAChC,CAUA,SAASC,EAA8BC,EAAajK,GAChD,OACIiK,EAAYC,mBACZD,EAAYE,mBACZF,EAAYC,kBAAkBlX,aAAegN,CAErD,CA8EA,SAASoK,EAAanL,GAClBA,EAAE8C,iBAGF,IAEIsI,EA5EqBC,EA9GbC,EA0DWxB,EA8HnByB,EAAgBlN,IAAE2B,EAAE9N,QACpBsZ,EAAkBnN,IAAE,uBAEpBoN,GAAoB,EACpBC,GAAqB,GA9EAL,EAiFLE,GAhFR7Y,QACR2Y,EAAQtG,KAAK,YAAY,IAtDN+E,EAXLhJ,IAad8I,EAAWE,GAAUpF,YAAYuE,EAAQG,OAa7CX,EAAkBjE,SAASyE,EAAQrT,MA0JnC6S,EACK1G,KAAK,mDACLqE,UAjCLgF,EAAwC5B,EAAe1I,GAjCpCoG,QAAO,SAAUyE,EAAMjR,GACtC,IAAIS,EAAYkD,IAAE3D,GACdkR,EAAajC,EAAcxO,GAAW+L,OAAO,YAE7C2E,GAAiB,EASrB,OAPAxN,IAAAA,KAAOuN,GAAY,SAAUD,EAAMlT,GArD3C,IAAyB8L,EAGjBuH,EAEA/K,EACAgL,EA1CuBrO,EAsCvBsO,EAEAC,EAJiB1H,EAsDQlG,IAAE5F,GA1FJiF,EAqCmB6G,EAAU,GAAGyF,GA5BjD9D,QAAQoD,EAAgBC,GA6B9ByC,GAAqDzH,GArCrCoE,GAAM5G,KAAK,SAAWrE,EAAO,KAuC7CuO,GAAM,GAMLD,EAAgBtZ,QAKU,IAA3BsZ,EAAgBtZ,QAChBqO,EAAMiL,EAAgBjL,MAEe,WAAjC8J,EAAYmB,IAAiCjL,EAGzCgK,EAFJgB,EAAaC,EAAgBhG,OAEiBjF,KAC1CkL,EAAqE,KAA/DlC,EAAYgC,EAAWb,kBAAmB3G,GAAWxD,OAG/DkL,GAAM,IAIVH,EAAgBE,EAAgB9E,OAAO,aAErBxU,OAIVqY,EAHJgB,EAAaD,EAAc9F,OAC3BjF,EAAM+K,EAAc/K,SAGhBkL,EAAqE,KAA/DlC,EAAYgC,EAAWb,kBAAmB3G,GAAWxD,OAG/DkL,GAAM,EAIPA,GAhCIA,KA4CCrB,EAAkBvM,IAAE5F,IACpBoT,GAAiB,EAEzB,IAEOA,CACX,KAqBsBnZ,SAEd0Y,EAAkB5V,KAAI,SAAUgL,EAAO6J,GACnC,OA7GUlP,EA6GckD,IAAEgM,GA5G/BX,EAAkBvO,GAAW6G,OADxC,IAA0B7G,CA8Gd,IAzIkBzI,QAI1B+V,EAAkB/D,YAAYuE,EAAQrT,MAwIlC6V,GAAoB,GAGpB5B,MACA6B,IAnPqB,IAErBhD,EAAe3G,KAAK,sBAAsBmF,QAAO,SAAU1G,EAAO6J,GAC9D,SAAgBA,EAXRtY,MAAMW,OAAS,IAGTgL,EAQ6B2M,EAAKtY,MAPnB,OAA9B2L,EAAK5B,OAAOoQ,gBADvB,IAA0BxO,CASlB,IAAGhL,WAiPCkY,EAAkBlC,GAsB1BD,EACK/D,YAAYuE,EAAQrT,MACpBmM,KAAK,yBACL2C,YAAY,4BACZ3C,KAAK,MACLU,OAAO,+DAtBPgJ,GAAsBC,GAhH/B,SAA4BL,GACpBA,EAAQ3Y,QACR2Y,EAAQtG,KAAK,YAAY,EAEjC,CAgHQoH,CAAmBZ,GACnBzK,EAAMiB,KAAK,IAAMkH,EAAQG,MAAQ,iBAAiBgD,QAClD/N,IAAE,cAAcgO,UAAUvL,EAAMiB,KAAK,IAAMkH,EAAQG,MAAQ,UAAUkD,WAAW1X,OA9NxE0W,EAyNDE,EAxNXnN,IAAEiN,GACGiB,MAAM,KACNC,OAAO,KAuNR1L,EAAMrG,QAAQ,UAMtB,CAwBA,SAASgS,EAAqB3R,EAAOrB,EAAUiT,EAAWC,GAClDlT,EAAS/G,QAAUia,EAAUja,QAC7B+G,EAAS8E,GAAGzD,GAAO,SAAUkF,GACrBA,EAAE9N,OAAOH,QAAU2a,EACnBC,EAAUhX,OAEVgX,EAAU/W,OAAOmL,IAAI,GAE7B,GAER,CAuCA,SAAS6L,EAAYtC,GACjB,MAA8B,WAAvBO,EAAYP,EACvB,CAMA,SAASuC,EAAuBC,GAC5BzO,IAAAA,KAAOyO,GAAa,SAAUnB,EAAMoB,GAChC,IACIC,EACAC,EACAC,EACAlH,EAJa3H,IAAE0O,GAIG/G,OAElBA,EAAKmH,qBACLD,EAAWlH,EAAKmH,mBAChBH,EAAyBjD,EAAYR,EAAe2D,GACpDD,EAA4BlD,EAAYT,EAAiB4D,GACzDlH,EAAOgH,EAAuBhH,OAG9B6G,EAAuBxO,IAAE,mCAAqCkL,EAAe2D,EAAW,OAEpFF,EAAuBta,SAEnBsT,GACAA,EAAKiF,mBACLjF,EAAKiF,oBAAsBpX,SAASmZ,EAAuBjM,MAAO,KAGlEgJ,EAAY/D,EAAKkF,mBACZtV,OACAmL,IAAI,IAGT6L,EAAYI,IAEZA,EAAuBjL,KAAK,gBAAgBkB,KAAK,YAAY,IAIrE5E,IAAE4O,GACGlL,KAAK,6BACLgD,KAAK,WAAW,GACrB1G,IAAE4O,GACGlL,KAAK,gCACLgD,KAAK,WAAW,GAErB1G,IAAE4O,GAA2BrX,OAErC,GACJ,CAaA,SAASwX,EAAiBC,EAActb,GAXxC,IAAwB+a,EAapBD,EAAuBxO,IAAE,mCAAqCgP,EAAe,OAbzDP,EAgBLzO,IAAE,8BAAgCtM,EAAQ,KAfzDsM,IAAAA,KAAOyO,GAAa,SAAUnB,EAAMoB,GAChC,IACI/G,EADa3H,IAAE0O,GACG/G,OAElBA,EAAKmH,oBACLpD,EAAYT,EAAiBtD,EAAKmH,oBAAoBxX,MAE9D,GASJ,CAsGe,SAAS2X,IAvbxB,IACQC,EAubJ5E,EAAOtK,IAAElN,UACTyX,EAAcvK,IAAE/M,QAAQoZ,QArN5B,WAEI,IADA,IAAI9C,EAAUvJ,IAAE,gCACP9L,EAAI,EAAGA,EAAIqV,EAAQlV,OAAQH,IAAK,CACrC,IAAIib,EAAc,IAAMnP,IAAEuJ,EAAQrV,IAAI0Q,KAAK,wBACvCyJ,EAAYrO,IAAEuJ,EAAQrV,IAAI0Q,KAAK,0BAC/BwK,EAAmB,IAAMpP,IAAEuJ,EAAQrV,IAAI0Q,KAAK,0BAChDwJ,EAAqB,SAAUpO,IAAEmP,GAAcd,EAAWrO,IAAEoP,IAExDpP,IAAEmP,GAAazM,QAAU2L,GACzBrO,IAAEoP,GAAkB9X,MAE5B,CACJ,CA0MI+X,GAxMJ,WAEI,IADA,IAAI7F,EAASxJ,IAAE,+BACN9L,EAAI,EAAGA,EAAIsV,EAAOnV,OAAQH,IAAK,CACpC,IAAIob,EACA,YACAtP,IAAEwJ,EAAOtV,IAAI0Q,KAAK,wBAClB,YACA4E,EAAOtV,GAAGsG,aAAa,SACvB,KACA6T,EAAYrO,IAAEwJ,EAAOtV,IAAI0Q,KAAK,0BAC9BwK,EAAmB,IAAMpP,IAAEwJ,EAAOtV,IAAI0Q,KAAK,0BAC/CwJ,EAAqB,QAASpO,IAAEsP,GAAgBjB,EAAWrO,IAAEoP,GACjE,CACJ,CA4LIG,GA1LJ,WAEI,IADA,IAAIC,EAAcxP,IAAE,iCACX9L,EAAI,EAAGA,EAAIsb,EAAYnb,OAAQH,IAAK,CACzC,IAAIub,EAAe,aAAezP,IAAEwP,EAAY,IAAI5K,KAAK,0BAA4B,MACrFxP,EAAAA,EAAAA,GAAWtC,SAASqD,cAAcsZ,GACtC,CACJ,CAqLIC,GAnDA1P,IAAE,gCACG6I,QAAO,SAAU1G,EAAO6J,GACrB,OAAOhM,IAAEgM,GAAMrE,OAAOgI,mBAC1B,IACCzN,MAAK,SAAUC,EAAO6J,GACnB,IA3DsBgD,EAE1BzR,EADAkG,EA0DQkE,EAAO3H,IAAEgM,GAAMrE,OACfC,EAAWD,EAAKgI,oBAChB5F,EAAUpC,EAAKiI,kBAAkBla,WAAWuG,MAAM,KAClD4T,EAAoBjI,EAASC,QAAQ,YAAa,YAElDD,IAtBhB,SAAwCkI,EAAWC,GAC/C,IAAInI,EAAW8D,EAAYT,EAAiB6E,GACxCvL,EAAavE,IAAE,IAAM+P,GAErBxL,EAAWlQ,OACX2L,IAAE4H,GAAUrQ,OAEZgN,EAAWhN,MAEnB,CAcgByY,CAA+BrI,EAAKmH,mBAAoBe,GAExD7P,IAAE+J,GAAS7H,MAAK,SAAUhO,EAAG+b,GACzB,IAAIC,EAAUlQ,IAAE,IAAMiQ,GAClBvB,GAAY,EAEXwB,EAAQ7b,SACT6b,EAAUlQ,IAAE,IAAM4H,IAGtB5H,IAAE,IAAMkL,EAAevD,EAAKmH,oBAAoB5M,MAAK,SAAUhO,EAAGwO,GAG9D,QAFU1C,IAAE0C,GAAKkC,KAAK,8BAEVqL,IAAajQ,IAAE,IAAM6P,GAAmBxb,SAChDqa,GAAY,EACL,GAIf,KAGIA,GACCH,EAAY2B,IAAYA,EAAQxN,QAAUuN,GA7JjC,UA8JEC,EA9JnBtL,KAAK,SA8J0BsL,EAAQxJ,KAAK,aAvE7D,SAA0CrH,EAAM0Q,GAC5C,IACII,EACAxI,EACAC,EACArD,EAJA6L,EAAWpQ,IAAE,cAAgBX,EAAO,KAAKwJ,OAAO,aAMpDsH,EAAOC,EAAS/b,OACV2L,IAAE,gCAAkCoQ,EAAS1N,MAAQ,KACrD1C,IAAE,iCAAmCX,EAAO,KAAKuJ,GAAG,IAEjDvU,SACLsT,EAAOwI,EAAKxI,OACZC,EAAW8D,EAAYT,EAAiBtD,EAAKmH,qBAC7CvK,EAAavE,IAAE,IAAM+P,IAEN1b,OACX2L,IAAE4H,GAAUtQ,OAEZiN,EAAWjN,OAGvB,CAmDwB+Y,CAAiC1I,EAAKmH,mBAAoBe,EAElE,IA7FkBb,EA+FOpH,GA9FjCnE,EAAWzD,IAAE,UAAYgP,EAAe,OAE/B3a,SAGQ,WAFjBkJ,EAAWkG,EAAS,GAAGlG,SAASsQ,eAG5BpK,EAASvD,GAAG,SAAS,SAAUyB,GAC3BoN,EAAiBC,EAAcrN,EAAE9N,OAAOH,MAC5C,IACoB,WAAb6J,GACPkG,EAASvD,GAAG,UAAU,SAAUyB,GAC5BoN,EAAiBC,EAAcrN,EAAE9N,OAAOH,MAC5C,KAoFJ,IAlOJ+O,EAAQzC,IAAE,0BACVoK,EAAoBpK,IAAE,uBACtBqK,EAAiBrK,IAAE,kBACnByC,EAAMvC,GAAG,QAAS,wBAAyB4M,GApNvCoC,EAAmB1E,EA/EhBgB,MAkFHI,EAAYN,IAAgB5H,KAAK,SAAUiH,GAA0B,SAAUsB,GAC3E,OAAOA,EAAMvI,KAAK,UACtB,IAEAwL,EAAmBzE,GAGvBmB,EAAYP,IAAqB6D,EAqbrC,EC/jBAtc,EAAAA,EAAAA,IAAmB,WACfqc,KACA5K,EAAAA,EAAAA,KACA0B,EAAOkE,MACX,G,YCTApP,EAAOyV,QAAUC,M","sources":["webpack://front-end-build-system/./src/dom/events.js","webpack://front-end-build-system/./src/smartpak/datepicker.js","webpack://front-end-build-system/./src/smartpak/modal.js","webpack://front-end-build-system/./src/smartpak/page.js","webpack://front-end-build-system/./src/smartpak/tooltipproxy.js","webpack://front-end-build-system/./src/smartpak/url.js","webpack://front-end-build-system/./src/utils/events.js","webpack://front-end-build-system/./src/views/supplementwizard/events.js","webpack://front-end-build-system/./src/views/supplementwizard/initializewizardcommon.js","webpack://front-end-build-system/./src/views/supplementwizard/modals.js","webpack://front-end-build-system/./src/views/supplementwizard/paging.js","webpack://front-end-build-system/./src/views/supplementwizard/questionaire.js","webpack://front-end-build-system/./src/views/supplementwizard/questionairepage.js","webpack://front-end-build-system/external var \"jQuery\""],"sourcesContent":["export function onDOMContentLoaded(callback) {\n if (!callback) {\n return;\n }\n\n if (document.attachEvent ? document.readyState === 'complete' : document.readyState !== 'loading') {\n callback();\n } else {\n window.addEventListener('DOMContentLoaded', () => {\n callback();\n });\n }\n}\n","// eslint-disable-next-line no-unused-vars\n\n// ========== options ==========\n// minDate optional\n// maxDate optional\n// disableWeekends defaults false\n// onSelect optional - fires when a date is selected - receives a date parameter\n// onClose optional - fires on close\n// onOpen optional - fires on open\n// onDraw optional - fires every time it builds a calendar... ex: open and month change. - receives an array of objects with date and element\n\n/*********************************\n * requires jsscripts/libraries/pickaday/pickaday.min.js to be on the page.\n **********************************/\n\nexport function DatePicker(input, options) {\n if (!input || input.nodeType !== 1) {\n throw new Error('DatePicker requires an input element to be passed into it.');\n }\n\n var inputValue = input.value;\n\n this._options = extend({}, DatePicker._defaults, options, {\n field: input,\n onDraw: this._onDraw(options),\n onOpen: () => this._correctPositionWhenModalOpen()\n });\n this._picker = new window.Pikaday(this._options);\n this.element = this._picker.el;\n\n if (!inputValue) {\n input.value = inputValue;\n }\n}\n\nDatePicker._defaults = {\n format: 'mm/dd/yy',\n toString: function (date) {\n var day = zeroPad(date.getDate()),\n month = zeroPad(date.getMonth() + 1),\n year = date.getFullYear();\n\n return month + '/' + day + '/' + year;\n },\n minDate: new Date()\n};\n\nDatePicker.prototype._correctPositionWhenModalOpen = function () {\n const $openModal = document.querySelector('.dialog.is-open');\n const currentBodyTop = parseInt(document.body.style.top);\n\n if (!$openModal || isNaN(currentBodyTop)) {\n return;\n }\n\n this.element.style.top = `${Math.abs(currentBodyTop) + parseInt(this.element.style.top)}px`;\n};\n\nDatePicker.prototype._onDraw = function (options) {\n return function (pikadayInstance) {\n if (options && typeof options.onDraw === 'function') {\n var calendarDate = getCalendarDate(\n pikadayInstance.calendars[0].month + 1,\n pikadayInstance.calendars[0].year\n );\n options.onDraw(\n this,\n [].slice\n .call(pikadayInstance.el.querySelectorAll('[data-day]:not(.is-disabled)'))\n .map(function (element) {\n return {\n element: element,\n date: calendarDate(element.dataset.day)\n };\n })\n );\n }\n }.bind(this);\n};\n\nDatePicker.prototype.show = function () {\n this._picker.show();\n};\n\nDatePicker.prototype.hide = function () {\n this._picker.hide();\n};\n\nDatePicker.prototype.destroy = function () {\n this._picker.destroy();\n};\n\nDatePicker.prototype.setDate = function (date) {\n this._picker.setDate(date);\n};\n\nDatePicker.prototype.setMessage = function (content) {\n var container = this.element.querySelector('.pika-lendar'),\n message,\n div;\n\n if (container) {\n message = this.element.querySelector('.sp-datepicker-message');\n\n if (!message) {\n div = document.createElement('div');\n div.className = 'sp-datepicker-message';\n this.element.appendChild(div);\n message = div;\n }\n\n div = document.createElement('div');\n div.innerHTML = content;\n message.appendChild(div);\n }\n};\n\nexport function datepicker(content, options) {\n return new DatePicker(content, options);\n}\n\nfunction extend(target) {\n var to = Object(target),\n i = 1,\n l = arguments.length,\n source,\n n;\n\n for (; i < l; i++) {\n source = arguments[i];\n if (source !== null) {\n for (n in source) {\n if (Object.prototype.hasOwnProperty.call(source, n)) {\n to[n] = source[n];\n }\n }\n }\n }\n\n return to;\n}\n\nfunction getCalendarDate(month, year) {\n return function (day) {\n return new Date(month + '/' + day + '/' + year);\n };\n}\n\nfunction zeroPad(n) {\n var num = parseInt(n);\n return num < 10 ? '0' + num : num;\n}\n","/* eslint-disable switch-colon-spacing */\r\n// Add modal HTML here\r\n\r\n/* prevents unit tests from blowing up */\r\nconst Dialog = window.ds && window.ds.Dialog ? window.ds.Dialog : class Noop{};\r\nclass Modal extends Dialog{\r\n constructor(content, opts){\r\n super(content, opts);\r\n }\r\n}\r\nexport default function modal(content, options) {\r\n return new Modal(content, options);\r\n}","const page = {\n loadScript: function(url, success, failure) {\n var script = document.createElement('script');\n\n function cb() {\n if (typeof success === 'function') {\n success();\n }\n }\n\n script.async = true;\n script.type = 'text/javascript';\n\n if (script.readyState) {\n //IE\n script.onreadystatechange = function() {\n if (script.readyState == 'loaded' || script.readyState == 'complete') {\n script.onreadystatechange = null;\n cb();\n }\n };\n } else {\n //Others\n script.onload = function() {\n cb();\n };\n }\n\n if (typeof failure === 'function') {\n script.onerror = failure;\n }\n\n script.src = url;\n document.getElementsByTagName('head')[0].appendChild(script);\n },\n isMobile: function() {\n return smartPak.pageData && typeof smartPak.pageData.isMobile !== 'undefined'\n ? smartPak.pageData.isMobile\n : this.isSmallScreen();\n },\n isSmallScreen: function(){\n return window.matchMedia('(max-width: 767px)').matches;\n },\n redirectToUrl: function(url) {\n if (url) {\n window.location.href = url;\n }\n },\n resolveLazyLoadedImages: function(element) {\n var lazyArray = [].slice.call(document.querySelectorAll(element + ' .lazy'));\n\n lazyArray.forEach(function(item) {\n if (!item.classList.contains('lazyLoaded')) {\n var newSrc = item.getAttribute('data-src');\n\n item.classList.add('lazyLoaded');\n item.setAttribute('src', newSrc);\n }\n });\n }\n};\n\nexport default page;\n","\nfunction moduleLoader(loader, onload){\n const calls = [];\n let module = null;\n\n return function(...args){ \n if(module){\n onload.apply(null, [module].concat(args));\n return;\n }\n\n if(!calls.length){\n calls.push(args);\n loader()\n .then(mod => { \n module = mod;\n while(calls.length){\n onload.apply(null, [module].concat(calls.shift()));\n } \n });\n return; \n }\n \n calls.push(args);\n };\n}\n\nexport const tooltipProxy = moduleLoader(\n () => new Promise(res => import('./tooltip').then(({tooltip}) => res(tooltip))),\n (tooltip, $trigger, options) => tooltip($trigger, options)\n);\n","export function parseQueryString(queryStr) {\n var queryString = {},\n parts,\n i,\n item;\n\n if (typeof queryStr === 'undefined' || queryStr === null) {\n return queryString;\n }\n\n parts = queryStr\n .split('?')\n .pop()\n .split('&');\n i = parts.length;\n\n while (i--) {\n item = parts[i].split('=');\n queryString[item[0]] = decodeURI(item[1]);\n }\n\n return queryString;\n}\n","export function trigger(category, action, label) {\n if (window.dataLayer && category && action && typeof label !== 'undefined') {\n window.dataLayer.push({\n event: 'gaTriggerEvent',\n gaEventCategory: category,\n gaEventAction: action,\n gaEventLabel: label\n });\n }\n}\n\nexport function bindDatasetListener() {\n [...document.querySelectorAll('[data-evt-category]')].forEach(function($category) {\n $category.addEventListener('click', event => datasetListener(event, trigger));\n }, true);\n}\n\nexport function datasetListener(event, callback) {\n let target = event.target,\n {evtCategory, evtAction, evtLabel} = {\n ...event.currentTarget.dataset,\n ...target.dataset\n },\n found = false;\n\n if (evtCategory && evtAction) {\n if (evtLabel) {\n callback(evtCategory, evtAction, evtLabel);\n return;\n }\n\n while (!found && target && target !== event.currentTarget && !evtLabel) {\n if (/a|button/i.test(target.nodeName)) {\n evtLabel = target.dataset.evtLabel || target.innerText.trim();\n callback(evtCategory, evtAction, evtLabel);\n found = true;\n } else {\n target = target.parentElement;\n }\n }\n }\n}\n","/* eslint-disable max-lines */\nimport $ from 'jquery';\nimport {trigger} from '../../utils/events.js';\n\nconst events = {\n fireIngredientEvent: createEvent('Supplement Wizard', 'View Ingredient Totals Click', 'Results Click'),\n fireEmailClickEvent: createEvent('Supplement Wizard', 'Email Recommendations Click', 'Open'),\n fireEmailCancelEvent: createEvent('Supplement Wizard', 'Email Recommendations Click', 'Cancel'),\n fireEmailSendResultsEvent: createEvent('Supplement Wizard', 'Email Recommendations Click', 'Send Results'),\n addLifestyleExitEventListener: createExitListenerEvent('Lifestyle Exit the Wizard'),\n addHealthExitEventListener: createExitListenerEvent('Health Exit the Wizard'),\n addPreferencesExitEventListener: createExitListenerEvent('Preferences Exit the Wizard'),\n addBudgetExitEventListener: createExitListenerEvent('Budget Exit the Wizard'),\n addRecommendationsSaveAndExitEventListener: createExitListenerEvent('Recommendations Save & Exit'),\n addIngredientSaveAndExitEventListener: createExitListenerEvent('Ingredient Totals Save & Exit'),\n addCompareResultsSaveAndExitEventListener: createExitListenerEvent('Compare Results Save & Exit'),\n fireConfirmModalOpenEvent: createEvent('Supplement Wizard', 'Exit Modal Click', 'Open'),\n fireConfirmModalConfirmEvent: createEvent('Supplement Wizard', 'Exit Modal Click', 'Yes'),\n fireConfirmModalCancelEvent: createEvent('Supplement Wizard', 'Exit Modal Click', 'No'),\n addLifestyleProgressClickEventListener: createProgessIndicatorListenerEvent(),\n addHealthProgressClickEventListener: createProgessIndicatorListenerEvent(),\n addPreferenceProgressClickEventListener: createProgessIndicatorListenerEvent(),\n addBudgetProgressClickEventListener: createProgessIndicatorListenerEvent(),\n addRecommendationsProgressClickEventListener: createProgessIndicatorListenerEvent(),\n fireSupportLevelEvent: function(supportLevel) {\n trigger('Supplement Wizard', 'Preferences Click', supportLevel.name());\n },\n fireShowByIngredientEvent: function(show) {\n if (show) {\n trigger('Supplement Wizard', 'View Ingredient Totals', 'By Ingredient');\n }\n },\n fireShowBySupplementEvent: function(show) {\n if (show) {\n trigger('Supplement Wizard', 'View Ingredient Totals', 'By Supplement');\n }\n },\n fireIngredientExpandEvent: function(show) {\n if (show) {\n trigger('Supplement Wizard', 'View Ingredient Totals', 'By Ingredient Totaled');\n }\n },\n fireNavigationEvent: function(location) {\n if (location) {\n trigger('Supplement Wizard', 'Screen Navigation', location.pathname + location.hash);\n }\n },\n fireDesiredBudgetEvent: function() {\n trigger('Supplement Wizard', 'Budget Click', '');\n },\n addPreferencesSkipEventListener: function(viewmodel) {\n var supportLevel = viewmodel.selectedSupportLevel();\n\n $('.wizard-continue-button[data-route=\"#budget\"]')\n .off()\n .on('click', function() {\n if (supportLevel === viewmodel.selectedSupportLevel()) {\n trigger('Supplement Wizard', 'Preferences Skip', supportLevel.name());\n }\n });\n },\n addBudgetSkipEventListener: function(viewmodel) {\n var desiredBudget = viewmodel.desiredBudget();\n\n $('.wizard-continue-button[data-route=\"\"]')\n .off()\n .on('click', function() {\n if (desiredBudget === viewmodel.desiredBudget()) {\n trigger('Supplement Wizard', 'Budget Skip', '');\n }\n });\n },\n oneTimeSubscription: function(property, callback) {\n var subscription = property.subscribe(function(value) {\n subscription.dispose();\n callback(value);\n });\n },\n addToCartEventListener: function() {\n var event = createEvent('Supplement Wizard', 'Add to Cart', 'Wizard Add to Cart');\n $('.add-to-cart-event')\n .off('click', event)\n .on('click', event);\n },\n addBackToBudgetEventListener: function() {\n $('[data-route=\"#budget\"]')\n .off()\n .on('click', createEvent('Supplement Wizard', 'Go Back Click', 'Recommendations Top'));\n },\n addHealthEventListeners: function() {\n $('.wizard-submit-button').on('click', createEvent('Supplement Wizard', 'Completed Health', ''));\n this.addHealthGoBackEventListener();\n this.addHealthExitEventListener();\n this.addHealthProgressClickEventListener();\n },\n addRecommendationViewmodelSubscriptions: function(viewmodel) {\n viewmodel.shouldShowIngredientsByIngredient.subscribe(this.fireShowByIngredientEvent);\n viewmodel.shouldShowIngredientsBySupplement.subscribe(this.fireShowBySupplementEvent);\n\n if (viewmodel.ingredientsByIngredient()) {\n viewmodel.ingredientsByIngredient().forEach(\n function(ingredient) {\n ingredient.isOpen.subscribe(this.fireIngredientExpandEvent.bind(this));\n }.bind(this)\n );\n } else {\n var subscription = viewmodel.ingredientsByIngredient.subscribe(\n function(ingredients) {\n if (ingredients) {\n ingredients.forEach(\n function(ingredient) {\n ingredient.isOpen.subscribe(this.fireIngredientExpandEvent.bind(this));\n }.bind(this)\n );\n subscription.dispose();\n }\n }.bind(this)\n );\n }\n\n this.addSupplementChangeEventSubscription(viewmodel);\n },\n addRecommendationsEventListeners: function($wizardCategories) {\n this.addBackToBudgetEventListener();\n this.addToCartEventListener();\n this.addCategoryClickEventListener($wizardCategories);\n this.addCompareClickEventListeners($wizardCategories);\n this.addReadMoreEventListeners($wizardCategories);\n this.addRecommendationsSaveAndExitEventListener();\n this.addRecommendationsProgressClickEventListener();\n },\n addReadMoreEventListeners: function($wizardCategories) {\n $wizardCategories.on(\n 'click',\n '.wizard-read-more',\n createEvent('Supplement Wizard', 'Read More Click', 'Supplement Wizard')\n );\n },\n addCompareClickEventListeners: function($wizardCategories) {\n $wizardCategories.on(\n 'click',\n '.wizard-compare-event',\n createEvent('Supplement Wizard', 'Compare Results Click', 'Supplement Wizard')\n );\n },\n addCategoryClickEventListener: function($wizardCategories) {\n $wizardCategories.on(\n 'click',\n 'input[type=checkbox]',\n createEvent('Supplement Wizard', 'Checkboxes Click', 'Supplement Wizard')\n );\n },\n addHealthGoBackEventListener: function() {\n $('body').on('click', '.go-back-event', function(e) {\n trigger(\n 'Supplement Wizard',\n 'Go Back Click',\n isFooterElement(e.currentTarget) ? 'Health Bottom' : 'Health Top'\n );\n });\n },\n addLifestyleGoBackEventListener: function() {\n $('body').on('click', '.go-back-event', function(e) {\n trigger(\n 'Supplement Wizard',\n 'Go Back Click',\n isFooterElement(e.currentTarget) ? 'Lifestyle Bottom' : 'Lifestyle Top'\n );\n });\n },\n addExitEventListener: function() {\n $('body').on('click', '.exit-event', createEvent('Supplement Wizard', 'Exit the Wizard', 'Supplement Wizard'));\n },\n fireLifeStyleCompleted: function() {\n trigger('Supplement Wizard', 'Completed Lifestyle', 'Supplement Wizard');\n handleDisciplineEvent();\n },\n addSupplementChangeEventSubscription: function(viewmodel) {\n viewmodel.supplementCategories().forEach(function(category) {\n category.selectedSupplement.subscribe(\n createEvent('Supplement Wizard', 'Choose a Supplement Click', 'Supplement Wizard')\n );\n });\n },\n addLifeStyleEventListeners: function() {\n $('.wizard-submit-button').on('click', this.fireLifeStyleCompleted);\n this.addLifestyleGoBackEventListener();\n this.addLifestyleExitEventListener();\n this.addLifestyleProgressClickEventListener();\n },\n addNewHorseEventListener: function($form) {\n $form.on('submit', function() {\n var $recipient = $('#RecipientName');\n\n if ($recipient.val()) {\n trigger('Supplement Wizard', 'Add a horse', '');\n }\n });\n },\n addPreferencesBackEvent: function() {\n $('.wizard-header-actions .go-back-event')\n .off()\n .on('click', createEvent('Supplement Wizard', 'Go Back Click', 'Preferences Top'));\n\n $('.wizard-footer-actions .go-back-event')\n .off()\n .on('click', createEvent('Supplement Wizard', 'Go Back Click', 'Preferences Bottom'));\n },\n addBudgetBackEvent: function() {\n $('.wizard-header-actions .go-back-event')\n .off()\n .on('click', createEvent('Supplement Wizard', 'Go Back Click', 'Budget Top'));\n\n $('.wizard-category-options .go-back-event')\n .off()\n .on('click', createEvent('Supplement Wizard', 'Go Back Click', 'Budget Bottom'));\n },\n addIngredientBackEventListener: function() {\n $('[data-route=\"\"]')\n .off()\n .on('click', createEvent('Supplement Wizard', 'Go Back Click', 'Ingredient Top'));\n },\n addEmailIngredientsEventListener: function() {\n $('#ingredient-email-trigger')\n .off()\n .on('click', createEvent('Supplement Wizard', 'Email Ingredient Totals', 'Supplement Wizard'));\n },\n addIngredientTotalEvents: function() {\n this.fireIngredientEvent();\n this.addIngredientBackEventListener();\n this.addIngredientSaveAndExitEventListener();\n },\n addBudgetRouteEvents: function(viewmodel) {\n this.addBudgetBackEvent();\n this.addBudgetExitEventListener();\n this.addBudgetSkipEventListener(viewmodel);\n this.oneTimeSubscription(viewmodel.desiredBudget, events.fireDesiredBudgetEvent);\n this.addBudgetProgressClickEventListener();\n },\n addPreferenceRouteEvents: function(viewmodel) {\n this.addPreferencesBackEvent();\n this.addPreferencesSkipEventListener(viewmodel);\n this.addPreferencesExitEventListener();\n this.addPreferenceProgressClickEventListener();\n },\n addGetStartedEventListener: function($form) {\n $form\n .on('click', '.get-started-event', createEvent('Supplement Wizard', 'Get Started', ''))\n .on('click', '.get-view-results-event', createEvent('Supplement Wizard', 'View Results', ''));\n },\n addPreviousResultEventListener: function($form) {\n $form.on(\n 'change',\n '.previous-result-event',\n createEvent('Supplement Wizard', 'Select a horse previous results', '')\n );\n },\n addCompareSupplementsRouteEvents: function() {\n this.addCompareSupplementsEventListener();\n this.addCompareResultsSaveAndExitEventListener();\n },\n addCompareSupplementsEventListener: function() {\n $('.wizard-header-actions [data-route=\"\"]')\n .off()\n .on('click', createEvent('Supplement Wizard', 'Go Back Click', 'Compare Results Top'));\n\n $('.wizard-button-back.showOnMobile[data-route=\"\"], .hideOnMobile .wizard-continue-button[data-route=\"\"]')\n .off()\n .on('click', createEvent('Supplement Wizard', 'Go Back Click', 'Compare Results Bottom'));\n },\n addSelectHorseEventListener: function($form) {\n $form.on('change', '.select-horse-event', createEvent('Supplement Wizard', 'Select a horse', ''));\n }\n};\n\nexport default events;\n\nfunction isFooterElement(element) {\n return $(element)\n .parent()\n .hasClass('wizard-footer-actions');\n}\n\nfunction createExitListenerEvent(label) {\n return function() {\n $('.wizard-header .exit-event')\n .off()\n .on('click', createEvent('Supplement Wizard', 'Exit the Wizard', label));\n };\n}\n\nfunction createProgessIndicatorListenerEvent() {\n return function() {\n $('.wizard-steps > li')\n .off()\n .on('click', function(e) {\n var label = /health|about/gi.test(e.currentTarget.innerText)\n ? /health/gi.test(e.currentTarget.innerText)\n ? 'Health'\n : 'About'\n : e.currentTarget.innerText;\n trigger('Supplement Wizard', 'Progress Indicator Click', label);\n });\n };\n}\n\nfunction createEvent(category, action, label) {\n return function() {\n trigger(category, action, label);\n };\n}\n\nfunction getTextFromSelection($element) {\n return $element\n .find('option:selected')\n .text()\n .trim();\n}\n\nfunction getPrimaryRidingStyle() {\n return getTextFromSelection($('#Answers_456'));\n}\n\nfunction getCheckedRadioButtonLabelText(name) {\n return $('[name=\"' + name + '\"]:checked + label').map(function(index, item) {\n return item.innerText.trim();\n });\n}\n\nfunction getMostOftenRidingStyle() {\n return getTextFromSelection($('#Answers_490'));\n}\n\nfunction getWesternPrimaryDiscipline() {\n return getCheckedRadioButtonLabelText('Answers_458');\n}\n\nfunction getEnglishPrimaryDiscipline() {\n return getCheckedRadioButtonLabelText('Answers_457');\n}\n\nfunction handleDisciplineEvent() {\n var style = getPrimaryRidingStyle();\n\n if (style === 'I am not a rider') {\n trigger('Supplement Wizard', 'I am not a rider', '');\n } else if (style === 'Both') {\n trigger('Supplement Wizard', 'Both', getMostOftenRidingStyle());\n } else if (style === 'Western') {\n getWesternPrimaryDiscipline().each(function(index, discipline) {\n trigger('Supplement Wizard', 'Western', discipline);\n });\n } else if (style === 'English') {\n getEnglishPrimaryDiscipline().each(function(index, discipline) {\n trigger('Supplement Wizard', 'English', discipline);\n });\n }\n}\n","import $ from 'jquery';\nimport events from './events.js';\nimport * as modals from './modals.js';\n\nfunction showExitConfirmDialog(url) {\n var pageTracker = window.wizardPageTracker || {};\n\n if (pageTracker.wizardPage === '3') {\n // Exit questions page 1\n modals.doneConfirmationModal(url);\n } else if (pageTracker.wizardPage === '2') {\n // Exit questions page 2 - Health section\n modals.confirmationModal('Horse Health', url);\n } else {\n // Wizard homepage - horse selection page\n modals.confirmationModal(url);\n }\n}\n\nfunction showExitSectionBackButtonConfirmationDialog(sectionText, url) {\n modals.backConfirmationModal(sectionText, url);\n}\n\nfunction bindConfirmExitEvents() {\n $('body')\n .on('click', '.exit-link', function (e) {\n e.preventDefault();\n\n showExitConfirmDialog(e.currentTarget.href);\n })\n .on('click', '.health-exit-link', function (e) {\n e.preventDefault();\n\n showExitSectionBackButtonConfirmationDialog('Horse Health', e.currentTarget.href);\n })\n .on('click', '.about-exit-link', function (e) {\n e.preventDefault();\n\n showExitSectionBackButtonConfirmationDialog('Basics', e.currentTarget.href);\n });\n}\n\nfunction addBreedPlaceholderText() {\n var $input = $('#Answers_118FreeTextField'),\n placeholderText = 'Please specify breed';\n\n if ($input.length) {\n $input.attr('placeholder', placeholderText);\n }\n}\n\nfunction setUpSocial() {\n // initialize Google+ buttons\n var po = document.createElement('script'),\n s = document.getElementsByTagName('script')[0];\n po.type = 'text/javascript';\n po.async = true;\n po.src = '//apis.google.com/js/plusone.js';\n s.parentNode.insertBefore(po, s);\n\n // inject Facebook like button\n $('#socialFacebook').append(\n ''\n );\n}\n\n/*\n * while google+ is async and could be loaded anytime,\n * facebook's like iframe can delay window load.\n * waiting to load these buttons until window load is fired.\n */\nexport default function initializeWizardCommon() {\n $(window).on('load', setUpSocial);\n\n $(function () {\n var $container = $('#wizard-container');\n\n if ($container.length && !$container.hasClass('wizardHasSideBar')) {\n bindConfirmExitEvents();\n events.addExitEventListener();\n }\n addBreedPlaceholderText();\n });\n}\n","import events from './events.js';\nimport modal from '../../smartpak/modal.js';\n\nfunction createConfirmDialog(options) {\n var opts = options || {},\n modalInstance = modal($('

' + opts.content + '

').get(0), {\n title: opts.title,\n modal: true,\n resizable: false,\n modalClass: 'wizard-exit-modal',\n open: function () {\n events.fireConfirmModalOpenEvent();\n },\n buttons: [\n {\n text: opts.okButtonText,\n click: function () {\n modalInstance.close();\n events.fireConfirmModalCancelEvent();\n }\n },\n {\n text: opts.cancelButtonText,\n click: function () {\n if (options.url) {\n location.href = options.url;\n }\n modalInstance.close();\n events.fireConfirmModalConfirmEvent();\n }\n }\n ]\n });\n\n return modalInstance;\n}\n\nfunction buildContent(sectionText) {\n return `If you exit, you’ll lose all of your progress in ${\n sectionText ? `the ${sectionText}` : 'this'\n } Section.`;\n}\n\nexport function confirmationModal(sectionText = '', url) {\n return createConfirmDialog({\n title: 'Are you sure you want to exit?',\n content: buildContent(sectionText),\n okButtonText: 'No, not yet',\n cancelButtonText: 'Yes, I’m sure',\n url\n });\n}\n\nexport function doneConfirmationModal(sectionText, url) {\n return createConfirmDialog({\n title: 'Are you sure you want to exit?',\n content: buildContent(),\n okButtonText: 'No, not yet',\n cancelButtonText: 'Yes, I’m done',\n url\n });\n}\n\nexport function backConfirmationModal(sectionText, url) {\n return createConfirmDialog({\n title: 'Are you sure you want to go back?',\n content: `If you choose to go back you’ll lose all of your progress in the ${sectionText} Section.`,\n okButtonText: 'No, not yet',\n cancelButtonText: 'Yes, go back',\n url\n });\n}\n","/* eslint-disable max-lines */\r\nimport $ from 'jquery';\r\nimport events from './events.js';\r\nimport page from '../../smartpak/page.js';\r\nimport {parseQueryString} from '../../smartpak/url.js';\r\n\r\nconst HIDE_CLASS = 'w-js-hide',\r\n paging = {\r\n jsStyles: function() {\r\n if (/\\/horse-supplement-wizard\\/lifeStyle/gi.test(location.pathname)) {\r\n $('#w-submitCon, .wizard-header-actions')\r\n .find('a, button')\r\n .removeClass(HIDE_CLASS);\r\n }\r\n\r\n function markAsAnswered($question) {\r\n $question.addClass('is-answered');\r\n }\r\n\r\n function markAsUnanswered($question) {\r\n $question.removeClass('is-answered');\r\n }\r\n\r\n $('.w-question').each(function(i, item) {\r\n var $question = $(item),\r\n $select,\r\n $input;\r\n\r\n $question.find('select').on('change', function(e) {\r\n $select = $(e.target);\r\n\r\n if ($select.children('option:selected').val().length && !$question.hasClass('is-answered')) {\r\n markAsAnswered($question);\r\n } else if (!$select.children('option:selected').val().length) {\r\n markAsUnanswered($question);\r\n }\r\n });\r\n\r\n $question.find('input[type=\"radio\"], input[type=\"checkbox\"]').on('change', function(e) {\r\n $input = $(e.target);\r\n\r\n if (!$question.hasClass('is-answered')) {\r\n markAsAnswered($question);\r\n } else if (\r\n $input.attr('type') != 'radio' &&\r\n !$question.find('input[type=\"checkbox\"]:checked').length\r\n ) {\r\n markAsUnanswered($question);\r\n }\r\n\r\n if ($input.attr('type') === 'checkbox' && $input.attr('id') === '8203') {\r\n if ($input.is(':checked')) {\r\n $question\r\n .find('input[type=\"checkbox\"]:checked')\r\n .not($input)\r\n .prop('checked', false);\r\n }\r\n } else if ($input.attr('type') === 'checkbox') {\r\n if ($input.is(':checked')) {\r\n $('#8203').prop('checked', false);\r\n }\r\n }\r\n });\r\n });\r\n\r\n $('select').each(function(i, item) {\r\n var $select = $(item);\r\n if ($select.find('option:selected').val().length > 0) {\r\n $select.closest('.w-question').addClass('is-answered');\r\n }\r\n });\r\n\r\n $(document)\r\n .find('.question-row, .question-column')\r\n .each(function(i, item) {\r\n var $item = $(item);\r\n if ($item.find('input[type=\"radio\"]:checked, input[type=\"checkbox\"]:checked').length) {\r\n markAsAnswered($item.closest('.w-question'));\r\n }\r\n });\r\n },\r\n buildSubpages: function() {\r\n var container = this._$questionList.get(0),\r\n subpageWrapper = document.createElement('div'),\r\n key;\r\n\r\n subpageWrapper.setAttribute('id', 'wizard-subpages');\r\n subpageWrapper.setAttribute('class', 'subpages');\r\n container.appendChild(subpageWrapper);\r\n\r\n function questionIterator(page) {\r\n for (key in page) {\r\n if (Object.prototype.hasOwnProperty.call(page, key)) {\r\n var current = page[key],\r\n thisPage = document.createElement('div');\r\n thisPage.setAttribute('class', 'wizard-subpage');\r\n thisPage.setAttribute('data-title', current.title);\r\n thisPage.setAttribute('data-questions', current.questions);\r\n subpageWrapper.appendChild(thisPage);\r\n }\r\n }\r\n }\r\n\r\n for (key in window.wizardSubpages) {\r\n if (Object.prototype.hasOwnProperty.call(window.wizardSubpages, key)) {\r\n questionIterator(window.wizardSubpages[key]);\r\n }\r\n }\r\n },\r\n pluralize: function(name) {\r\n var horseName = name,\r\n lastChar = horseName[horseName.length - 1];\r\n\r\n if (lastChar !== 's') {\r\n horseName = horseName + \"'s\";\r\n } else {\r\n horseName = horseName + \"'\";\r\n }\r\n\r\n return horseName;\r\n },\r\n divideSubpageContent: function() {\r\n this.buildSubpages();\r\n\r\n var horseName = paging.pluralize(window.wizardSubpages.horseName());\r\n\r\n this._$questionList.find('.wizard-subpage').each(function(index, element) {\r\n var $element = $(element),\r\n title = $element.data('title'),\r\n questions = $element\r\n .data('questions')\r\n .split(',')\r\n .map(function(question) {\r\n return question.replace(' ', '');\r\n });\r\n\r\n $element.append(buildSubPageHeaderHTML(horseName, title));\r\n\r\n questions.forEach(function(question) {\r\n $element.append($('#' + question));\r\n });\r\n });\r\n\r\n $('.w-category').remove();\r\n\r\n this.subpageNavigation();\r\n this._setPageCount();\r\n this._navigateTo(this._current);\r\n },\r\n _checkForFirst: function(isFirst) {\r\n if (isFirst) {\r\n this._$form.find('.previous').addClass(HIDE_CLASS);\r\n this._$form.find('.go-back-event:not(.previous)').removeClass(HIDE_CLASS);\r\n } else {\r\n this._$form.find('.go-back-event:not(.previous)').addClass(HIDE_CLASS);\r\n this._$form.find('.previous').removeClass(HIDE_CLASS);\r\n }\r\n },\r\n _checkForLast: function(isLast) {\r\n if (isLast) {\r\n this._$form.find('.next').addClass(HIDE_CLASS);\r\n this._$form.find('.wizard-submit-button').removeClass(HIDE_CLASS);\r\n } else {\r\n this._$form.find('.next').removeClass(HIDE_CLASS);\r\n this._$form.find('.wizard-submit-button').addClass(HIDE_CLASS);\r\n }\r\n },\r\n _changePage: function(page) {\r\n var $pages = $('#wizard-subpages .wizard-subpage'),\r\n VISIBLE = 'is-visible';\r\n\r\n if ($pages.eq(page).length) {\r\n $pages.filter('.' + VISIBLE).removeClass(VISIBLE);\r\n $pages.eq(page).addClass(VISIBLE);\r\n\r\n this._current = page;\r\n\r\n this._checkForFirst(this._current === 0);\r\n this._checkForLast(this._current === $pages.length - 1);\r\n } else if (page === -1) {\r\n window.location.href = '/horse-supplement-wizard/lifeStyle/';\r\n }\r\n },\r\n _navigateTo: function(destination) {\r\n this._changePage(destination);\r\n this._setCurrentPage(destination);\r\n\r\n if (page.isMobile()) {\r\n window.scrollTo(0, 0);\r\n }\r\n },\r\n subpageNavigation: function() {\r\n $('#wizard-container')\r\n .on(\r\n 'click',\r\n '.previous',\r\n function(e) {\r\n e.preventDefault();\r\n\r\n this.hideErrorText();\r\n this._navigateTo(this._current - 1);\r\n }.bind(this)\r\n )\r\n .on(\r\n 'click',\r\n '.next',\r\n function(e) {\r\n e.preventDefault();\r\n this.hideErrorText();\r\n if (this.subpageValiation(this._current)) {\r\n this._navigateTo(this._current + 1);\r\n }\r\n }.bind(this)\r\n );\r\n },\r\n hideErrorText: function() {\r\n var questions = $('.w-question'),\r\n errorBlock = $('.w-validation-error'),\r\n list = errorBlock.find('ul');\r\n\r\n questions.removeClass('w-alert-con');\r\n errorBlock.addClass(HIDE_CLASS);\r\n errorBlock.find('.validation-summary-errors').removeClass('validation-summary-errors');\r\n list.empty();\r\n },\r\n _setPageCount: function() {\r\n $('.page-total').text($('.wizard-subpage').length);\r\n },\r\n _setCurrentPage: function(num) {\r\n $('.page-count').text(num + 1);\r\n },\r\n subpageValiation: function(current) {\r\n var subpages = $('.wizard-subpage'),\r\n questions = $(subpages[current]).find('.w-question'),\r\n errorBlock = $('.w-validation-error'),\r\n list = errorBlock.find('ul'),\r\n incomplete = 0,\r\n i,\r\n q,\r\n s,\r\n selects,\r\n radios,\r\n checkboxes;\r\n\r\n function showErrorText(questionText) {\r\n list.append('
  • ' + questionText + '
  • ');\r\n\r\n errorBlock.find('.validation-summary-valid').addClass('validation-summary-errors');\r\n errorBlock.removeClass(HIDE_CLASS);\r\n }\r\n\r\n function checkRadiosAndCheckboxes(answers, question) {\r\n if (answers.length) {\r\n for (var r = 0; r < answers.length; r++) {\r\n if ($(answers[r]).is(':checked')) {\r\n return true;\r\n }\r\n }\r\n\r\n question.addClass('w-alert-con');\r\n showErrorText(question.children('.w-question-title').text());\r\n incomplete++;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n this.hideErrorText();\r\n\r\n for (i = 0; i < questions.length; i++) {\r\n q = $(questions[i]);\r\n selects = q.find('select');\r\n radios = q.find('input[type=\"radio\"]');\r\n checkboxes = q.find('input[type=\"checkbox\"]');\r\n\r\n for (s = 0; s < selects.length; s++) {\r\n if ($(selects[s]).val().length === 0) {\r\n q.addClass('w-alert-con');\r\n showErrorText(q.children('.w-question-title').text());\r\n\r\n incomplete++;\r\n }\r\n }\r\n\r\n checkRadiosAndCheckboxes(radios, q);\r\n checkRadiosAndCheckboxes(checkboxes, q);\r\n }\r\n\r\n if (incomplete === 0) {\r\n this.hideErrorText();\r\n return true;\r\n }\r\n return false;\r\n },\r\n init: function() {\r\n var startOnPage = parseQueryString(location.search).page;\r\n\r\n this._$questionList = $('#supplement-wizard-question-list');\r\n this._$form = $('#wizard-container > form');\r\n this._current = startOnPage ? +startOnPage - 1 : 0;\r\n this.jsStyles();\r\n\r\n this._$form.on(\r\n 'submit',\r\n function(e) {\r\n if (!this.subpageValiation(this._current)) {\r\n e.preventDefault();\r\n $('.progress-indicator').hide();\r\n this._$form.find('[type=submit]').prop('disabled', false);\r\n }\r\n }.bind(this)\r\n );\r\n\r\n if (this._$questionList.length) {\r\n this.divideSubpageContent();\r\n events.addHealthEventListeners();\r\n } else {\r\n events.addLifeStyleEventListeners();\r\n }\r\n }\r\n };\r\n\r\nexport default paging;\r\n\r\nfunction buildSubPageHeaderHTML(horseName, title) {\r\n return (\r\n '
    ' +\r\n '
    ' +\r\n '
    ' +\r\n '

    ' +\r\n horseName +\r\n ' ' +\r\n title +\r\n '

    ' +\r\n '
    Section /
    ' +\r\n '
    ' +\r\n '
    ' +\r\n\r\n '' +\r\n 'Go Back' +\r\n '' +\r\n '' +\r\n\r\n '' +\r\n\r\n '' +\r\n\r\n '' +\r\n\r\n '
    ' +\r\n '
    ' +\r\n '
    '\r\n );\r\n}\r\n","/* eslint-disable max-lines */\n/* eslint-disable one-var */\n/* eslint-disable no-unused-vars */\nimport $ from 'jquery';\nimport { datepicker } from '../../smartpak/datepicker.js';\nimport { tooltipProxy as tooltip } from '../../smartpak/tooltipproxy.js';\n\nconst wizardCategoryTooltips = {\n 'Age': 'Not intended to be used for horses under 2 years of age. Please consult your veterinarian.',\n 'Gender':\n 'Not intended to be used for mares that are pregnant, lactating or intended for breeding. Please consult your veterinarian.',\n 'Diet':\n 'Types of grass hays include Orchard Grass, Timothy, Brome, Blue Grass, Coastal Bermuda, Foxtail, Fescue, etc. Types of legumes include Clover, Lespedeza, Vetch.',\n 'Hoof Soreness':\n 'Signs include a short, choppy stride (especially on hard surfaces or a decline), stumbling, shuffling or stiffness, and/or discomfort that is more pronounced immediately before or after hoof trimming.'\n},\n miniWizardCategoryToolTips = {\n Age: 'Not intended to be used for horses under 2 years of age. Please consult your veterinarian.'\n },\n miniWizardAnswerToolTips = {\n 'Ration balancer':\n \"A concentrated feedstuff (usually a pellet) designed to balance a forage-only diet by providing protein, vitamins, and minerals, but not a significant source of calories; ideal for easy keepers. Examples: Purina Nature's Essentials® Enrich 32®, Nutrena Empowerâ„¢ Balance\",\n 'Fortified grain':\n 'A manufactured feed that includes added, guaranteed levels of protein, vitamins, and minerals; common types include pelleted and sweet feeds. Examples: Purina® Omolene #100®, Triple Crown 14% Performance, Nutrena SafeChoice Original',\n 'Complete feed':\n \"A manufactured feed that combines grain and roughage; designed to partially or completely replace a horse's forage, usually due to dental problems, or because quality hay is not available. Examples: Purina® Equine Senior®, Triple Crown® Complete\",\n 'Whole grains':\n 'A cereal grain that has not been fortified with additional nutrients; may be processed by cracking, crimping, rolling, or heating. Examples: oats, corn, barley'\n },\n CLASSES = {\n hide: 'w-js-hide',\n category: 'w-cat',\n categoryTitle: 'w-cat-title',\n catHasHint: 'w-cat-hint',\n question: 'w-question',\n alert: 'w-alert-con',\n toolTip: 'hint'\n },\n allowedFormSelectors = 'select, input:radio, input:text, input:checkbox',\n questionPrefix = 'Question_',\n answerPrefix = 'Answers_',\n findCategories = findByClassInContext(CLASSES.category),\n findCategoryTitle = findByClassInContext(CLASSES.categoryTitle),\n findQuestions = findByClassInContext(CLASSES.question),\n findAlerts = findByClassInContext(CLASSES.alert);\n\n// cache a few elements\nlet $form, $categoryAlertCon, $enterHorseCon, $horseNameSelect, $horseNameTextBox, $doc, windowWidth;\n\nfunction hasRecipientForm() {\n return $enterHorseCon.length > 0;\n}\n\nfunction isMiniWizard() {\n return hasRecipientForm();\n}\n\nfunction isEmpty(element) {\n return !element.value.length > 0;\n}\n\nfunction isRestrictedName(name) {\n return name.trim().toLowerCase() === 'me';\n}\n\nfunction isRecipientFormValid() {\n var validFilledInCount = 1;\n return (\n $enterHorseCon.find('input:text, select').filter(function (index, elem) {\n return !isEmpty(elem) && !isRestrictedName(elem.value);\n }).length === validFilledInCount\n );\n}\n\n// returns a new function that returns elements within a provided context with a class.\n\nfunction findByClassInContext(className) {\n return function ($context) {\n return ($context || $doc).find('.' + className);\n };\n}\n\nfunction getElemById(id, $context) {\n return ($context || $doc).find('#' + id);\n}\n\nfunction addToolTipIcon($elem) {\n if ($elem) {\n $elem.append('?');\n }\n}\n\nfunction fadeOut(box, callback) {\n $(box).fadeOut(500);\n // bt plugin says that you should call callback on showTip/hideTip functions\n if (callback && typeof callback === 'function') {\n callback();\n }\n}\n\nfunction fadeIn(box, callback) {\n $(box)\n .delay(100)\n .fadeIn(500);\n // bt plugin says that you should call callback on showTip/hideTip functions\n if (callback && typeof callback === 'function') {\n callback();\n }\n}\n\nfunction addToolTip($elem, toolTipText) {\n tooltip($elem, {\n width: windowWidth > 480 ? 350 : 250,\n trigger: 'hover',\n content: toolTipText\n });\n}\n\nfunction addToolTips($elems, toolTipObj, findLabelFunc) {\n $elems.each(function (index, elem) {\n var $this = $(elem),\n $label = $.isFunction(findLabelFunc) ? findLabelFunc($this) : $this,\n labelText = $label.text();\n\n if (labelText in toolTipObj) {\n $this.addClass(CLASSES.catHasHint);\n addToolTipIcon($this);\n addToolTip($this.find('.' + CLASSES.toolTip), toolTipObj[labelText]);\n }\n });\n}\n\nfunction initializeToolTips() {\n var categoryToolTips = wizardCategoryTooltips;\n\n if (isMiniWizard()) {\n addToolTips(findQuestions().find('> div'), miniWizardAnswerToolTips, function ($elem) {\n return $elem.find('> label');\n });\n\n categoryToolTips = miniWizardCategoryToolTips;\n }\n\n addToolTips(findCategoryTitle(), categoryToolTips);\n}\n\nfunction clearAlerts() {\n hideQuestionAlert($form);\n hideCategoryAlerts();\n clearRecipientError();\n}\n\nfunction showQuestionAlert($context) {\n if ($context) {\n $context.addClass(CLASSES.alert);\n }\n}\n\nfunction hideQuestionAlert($context) {\n if ($context) {\n findAlerts($context).removeClass(CLASSES.alert);\n }\n}\n\nfunction showCategoryAlerts(failedCategoryTitles) {\n if (!failedCategoryTitles.length) {\n return;\n }\n\n $categoryAlertCon.removeClass(CLASSES.hide);\n}\n\nfunction hideCategoryAlerts() {\n $categoryAlertCon.addClass(CLASSES.hide);\n}\n\nfunction findFormElements($context) {\n return $context && $context.find(allowedFormSelectors);\n}\n\nfunction findFormElementByName(name, $context) {\n return ($context || $doc).find('[name=' + name + ']');\n}\n\nfunction getNodeName($element) {\n return $element[0].nodeName.toUpperCase();\n}\n\nfunction getAnswerNameFromQuestionId(id) {\n return id.replace(questionPrefix, answerPrefix);\n}\n\nfunction getCategoryTitle($category) {\n return findCategoryTitle($category).text();\n}\n\nfunction freeTextTriggerIdMatchesValue(elementData, val) {\n return (\n elementData.freetexttriggerid &&\n elementData.freetextfieldname &&\n elementData.freetexttriggerid.toString() === val\n );\n}\n\nfunction enableSubmitButton($button) {\n if ($button.length) {\n $button.prop('disabled', false);\n }\n}\n\nfunction disableSubmitButton($button) {\n if ($button.length) {\n $button.prop('disabled', true);\n }\n}\n\nfunction isValidQuestion($question) {\n var nameAttrVal = getAnswerNameFromQuestionId($question[0].id),\n $answerElements = findFormElementByName(nameAttrVal, $question),\n $checkedRadio,\n ret = true,\n val,\n selectData;\n\n // ignore checkboxes. Checkboxes don't follow the same\n // Question_[id] = Answers_[id] pattern as other question types.\n if (!$answerElements.length) {\n return ret;\n }\n\n // if length is 1 it is either a select or textbox\n if ($answerElements.length === 1) {\n val = $answerElements.val();\n\n if (getNodeName($answerElements) === 'SELECT' && val) {\n selectData = $answerElements.data();\n\n if (freeTextTriggerIdMatchesValue(selectData, val)) {\n ret = getElemById(selectData.freetextfieldname, $question).val() !== '';\n }\n } else {\n ret = false;\n }\n } else {\n // otherwise the elements are probably radio buttons\n $checkedRadio = $answerElements.filter(':checked');\n\n if ($checkedRadio.length) {\n selectData = $checkedRadio.data();\n val = $checkedRadio.val();\n\n if (freeTextTriggerIdMatchesValue(selectData, val)) {\n ret = getElemById(selectData.freetextfieldname, $question).val() !== '';\n }\n } else {\n ret = false;\n }\n }\n\n return ret;\n}\n\nfunction getFailedCategories($categories) {\n return $categories.filter(function (indx, category) {\n var $category = $(category),\n $questions = findQuestions($category).filter(':visible'),\n failedQuestionElements = [],\n categoryFailed = false;\n\n $.each($questions, function (indx, item) {\n if (!isValidQuestion($(item))) {\n showQuestionAlert($(item));\n categoryFailed = true;\n }\n });\n\n return categoryFailed;\n });\n}\n\nfunction validateForm(e) {\n e.preventDefault();\n\n // using e.target instead of this for $submitButton because of Possible strict violation\n var $submitButton = $(e.target),\n $loadingMessage = $('.progress-indicator'),\n $failedCategories,\n hasCategoryErrors = false,\n hasRecipientErrors = false;\n\n // prevent multiple clicks\n disableSubmitButton($submitButton);\n\n // clean up old alerts\n clearAlerts($form);\n\n $failedCategories = getFailedCategories(findCategories($form));\n\n if ($failedCategories.length) {\n showCategoryAlerts(\n $failedCategories.map(function (index, elem) {\n return getCategoryTitle($(elem));\n })\n );\n\n hasCategoryErrors = true;\n }\n\n if (hasRecipientForm()) {\n hasRecipientErrors = !isRecipientFormValid();\n if (hasRecipientErrors) {\n showQuestionAlert($enterHorseCon);\n showRecipientError();\n }\n }\n\n if (!hasCategoryErrors && !hasRecipientErrors) {\n fadeIn($loadingMessage);\n $form.trigger('submit');\n } else {\n enableSubmitButton($submitButton);\n $form.find('.' + CLASSES.alert + ':first select').focus();\n $('html, body').scrollTop($form.find('.' + CLASSES.alert + ':first').position().top);\n }\n}\n\nfunction clearRecipientError() {\n $categoryAlertCon\n .find('[data-valmsg-summary] ul > li.animal-name-error')\n .remove();\n}\n\nfunction showRecipientError() {\n $categoryAlertCon\n .removeClass(CLASSES.hide)\n .find('[data-valmsg-summary]')\n .removeClass('validation-summary-valid')\n .find('ul')\n .append('
  • Animal name is invalid.
  • ');\n}\n\nfunction initializeFormValidation() {\n $form = $('#wizard-container form');\n $categoryAlertCon = $('.w-validation-error');\n $enterHorseCon = $('#enterHorseCon');\n $form.on('click', '.wizard-submit-button', validateForm);\n}\n\nfunction freeTextEventHandler(event, $trigger, triggerId, $freeText) {\n if ($trigger.length && $freeText.length) {\n $trigger.on(event, function (e) {\n if (e.target.value === triggerId) {\n $freeText.show();\n } else {\n $freeText.hide().val('');\n }\n });\n }\n}\n\nfunction wireUpFreeTextSelects() {\n var selects = $('select[data-freetextcontrol]');\n for (var i = 0; i < selects.length; i++) {\n var lstSelector = '#' + $(selects[i]).attr('data-freetextcontrol'),\n triggerId = $(selects[i]).attr('data-freetexttriggerid'),\n freeTextSelector = '#' + $(selects[i]).attr('data-freetextfieldname');\n freeTextEventHandler('change', $(lstSelector), triggerId, $(freeTextSelector));\n\n if ($(lstSelector).val() === triggerId) {\n $(freeTextSelector).show();\n }\n }\n}\n\nfunction wireUpFreeTextRadios() {\n var radios = $('input[data-freetextcontrol]');\n for (var i = 0; i < radios.length; i++) {\n var radioSelector =\n 'input[id=' +\n $(radios[i]).attr('data-freetextcontrol') +\n \"][value='\" +\n radios[i].getAttribute('value') +\n \"']\",\n triggerId = $(radios[i]).attr('data-freetexttriggerid'),\n freeTextSelector = '#' + $(radios[i]).attr('data-freetextfieldname');\n freeTextEventHandler('click', $(radioSelector), triggerId, $(freeTextSelector));\n }\n}\n\nfunction wireUpDatePickers() {\n var datepickers = $('input[data-datepickercontrol]');\n for (var i = 0; i < datepickers.length; i++) {\n var dateSelector = \"input[id='\" + $(datepickers[0]).attr('data-datepickercontrol') + \"']\";\n datepicker(document.querySelector(dateSelector));\n }\n}\n\nfunction isSelectTag($elem) {\n return getNodeName($elem) === 'SELECT';\n}\n\nfunction isRadioTag($elem) {\n return $elem.attr('type') === 'radio';\n}\n\nfunction hideAndResetDependents($dependents) {\n $.each($dependents, function (indx, dependent) {\n var $dependent = $(dependent),\n $selectControlSelector,\n $questionControlContainer,\n selectId,\n data = $dependent.data();\n\n if (data.dependentOnControl) {\n selectId = data.dependentOnControl;\n $selectControlSelector = getElemById(answerPrefix + selectId);\n $questionControlContainer = getElemById(questionPrefix + selectId);\n data = $selectControlSelector.data();\n\n // recursive call to hide/clear dependent questions\n hideAndResetDependents($(\"div[data-dependent-on-question='\" + answerPrefix + selectId + \"']\"));\n\n if ($selectControlSelector.length) {\n if (\n data &&\n data.freetexttriggerid &&\n data.freetexttriggerid === parseInt($selectControlSelector.val(), 10)\n ) {\n // 10 as the radix will allow numbers with leading zeros.\n getElemById(data.freetextfieldname)\n .hide()\n .val('');\n }\n\n if (isSelectTag($selectControlSelector)) {\n // reset selected option to the first option\n $selectControlSelector.find('option:first').attr('selected', true);\n }\n }\n\n $($questionControlContainer)\n .find('input[type=radio]:checked')\n .prop('checked', false);\n $($questionControlContainer)\n .find('input[type=checkbox]:checked')\n .prop('checked', false);\n\n $($questionControlContainer).hide();\n }\n });\n}\n\nfunction showDependents($dependents) {\n $.each($dependents, function (indx, dependent) {\n var $dependent = $(dependent),\n data = $dependent.data();\n\n if (data.dependentOnControl) {\n getElemById(questionPrefix + data.dependentOnControl).show();\n }\n });\n}\n\nfunction manageDependents(prerequisite, value) {\n // hide dependents & unselect\n hideAndResetDependents($(\"div[data-dependent-on-question='\" + prerequisite + \"']\"));\n\n // show dependent = value\n showDependents($('[data-dependent-on-answer~=' + value + ']'));\n}\n\nfunction wireUpDependencyHandlers(prerequisite) {\n var $element = $('[name=\"' + prerequisite + '\"]'),\n nodeName;\n if ($element.length) {\n nodeName = $element[0].nodeName.toLowerCase();\n\n if (nodeName === 'input') {\n $element.on('click', function (e) {\n manageDependents(prerequisite, e.target.value);\n });\n } else if (nodeName === 'select') {\n $element.on('change', function (e) {\n manageDependents(prerequisite, e.target.value);\n });\n }\n }\n}\n\nfunction showDependentQuestionByInputName(name, qContainer) {\n var $checked = $('input[name=' + name + ']').filter(':checked'),\n $div,\n data,\n question,\n $container;\n\n $div = $checked.length\n ? $('div[data-dependent-on-answer=' + $checked.val() + ']')\n : $('div[data-dependent-on-control=' + name + ']').eq(0);\n\n if ($div.length) {\n data = $div.data();\n question = getElemById(questionPrefix + data.dependentOnControl);\n $container = $('#' + qContainer);\n\n if ($container.length) {\n $(question).show();\n } else {\n $container.show();\n }\n }\n}\n\nfunction hideDependentQuestionByControl(controlId, qContainer) {\n var question = getElemById(questionPrefix + controlId),\n $container = $('#' + qContainer);\n\n if ($container.length) {\n $(question).hide();\n } else {\n $container.hide();\n }\n}\n\nfunction wireUpDependencies() {\n $('[data-dependent-on-question]')\n .filter(function (index, elem) {\n return $(elem).data().dependentOnQuestion;\n })\n .each(function (index, elem) {\n var data = $(elem).data(),\n question = data.dependentOnQuestion,\n answers = data.dependentOnAnswer.toString().split(' '),\n questionContainer = question.replace(/Answers/gi, 'Question');\n\n if (question) {\n hideDependentQuestionByControl(data.dependentOnControl, questionContainer);\n\n $(answers).each(function (i, answerId) {\n var $answer = $('#' + answerId),\n dependent = false;\n\n if (!$answer.length) {\n $answer = $('#' + question);\n }\n\n $('#' + answerPrefix + data.dependentOnControl).each(function (i, val) {\n var num = $(val).attr('data-dependent-on-answer');\n\n if (num === answerId && !$('#' + questionContainer).length) {\n dependent = true;\n return false;\n }\n\n return true;\n });\n\n if (\n dependent ||\n (isSelectTag($answer) && $answer.val() === answerId) ||\n (isRadioTag($answer) && $answer.prop('checked'))\n ) {\n showDependentQuestionByInputName(data.dependentOnControl, questionContainer);\n }\n });\n\n wireUpDependencyHandlers(question);\n }\n });\n}\n\nexport default function questionaire() {\n $doc = $(document);\n windowWidth = $(window).width();\n wireUpFreeTextSelects();\n wireUpFreeTextRadios();\n wireUpDatePickers();\n wireUpDependencies();\n initializeFormValidation();\n initializeToolTips();\n}\n","import initializeWizardCommon from './initializewizardcommon.js';\nimport {onDOMContentLoaded} from '../../dom/events.js';\nimport paging from './paging.js';\nimport questionaire from './questionaire.js';\n\nonDOMContentLoaded(function() {\n questionaire();\n initializeWizardCommon();\n paging.init();\n});\n","module.exports = jQuery;"],"names":["onDOMContentLoaded","callback","document","attachEvent","readyState","window","addEventListener","DatePicker","input","options","_this","nodeType","Error","inputValue","value","this","_options","target","source","n","to","Object","i","l","arguments","length","prototype","hasOwnProperty","call","extend","_defaults","field","onDraw","_onDraw","onOpen","_correctPositionWhenModalOpen","_picker","Pikaday","element","el","datepicker","content","zeroPad","num","parseInt","format","toString","date","day","getDate","getMonth","getFullYear","minDate","Date","$openModal","querySelector","currentBodyTop","body","style","top","isNaN","concat","Math","abs","pikadayInstance","calendarDate","month","calendars","year","slice","querySelectorAll","map","dataset","bind","show","hide","destroy","setDate","setMessage","message","div","createElement","className","appendChild","innerHTML","Modal","_Dialog","opts","_classCallCheck","_callSuper","_inherits","_createClass","ds","Dialog","Noop","modal","loadScript","url","success","failure","script","cb","async","type","onreadystatechange","onload","onerror","src","getElementsByTagName","isMobile","smartPak","pageData","isSmallScreen","matchMedia","matches","redirectToUrl","location","href","resolveLazyLoadedImages","forEach","item","classList","contains","newSrc","getAttribute","add","setAttribute","loader","calls","module","tooltipProxy","Promise","res","then","_ref","tooltip","$trigger","_len","args","Array","_key","push","mod","apply","shift","parseQueryString","queryStr","parts","queryString","split","pop","decodeURI","trigger","category","action","label","dataLayer","event","gaEventCategory","gaEventAction","gaEventLabel","bindDatasetListener","$category","_event$currentTarget$","_objectSpread","currentTarget","evtCategory","evtAction","evtLabel","found","test","nodeName","innerText","trim","parentElement","datasetListener","events","fireIngredientEvent","createEvent","fireEmailClickEvent","fireEmailCancelEvent","fireEmailSendResultsEvent","addLifestyleExitEventListener","createExitListenerEvent","addHealthExitEventListener","addPreferencesExitEventListener","addBudgetExitEventListener","addRecommendationsSaveAndExitEventListener","addIngredientSaveAndExitEventListener","addCompareResultsSaveAndExitEventListener","fireConfirmModalOpenEvent","fireConfirmModalConfirmEvent","fireConfirmModalCancelEvent","addLifestyleProgressClickEventListener","createProgessIndicatorListenerEvent","addHealthProgressClickEventListener","addPreferenceProgressClickEventListener","addBudgetProgressClickEventListener","addRecommendationsProgressClickEventListener","fireSupportLevelEvent","supportLevel","name","fireShowByIngredientEvent","fireShowBySupplementEvent","fireIngredientExpandEvent","fireNavigationEvent","pathname","hash","fireDesiredBudgetEvent","addPreferencesSkipEventListener","viewmodel","selectedSupportLevel","$","off","on","addBudgetSkipEventListener","desiredBudget","oneTimeSubscription","property","subscription","subscribe","dispose","addToCartEventListener","addBackToBudgetEventListener","addHealthEventListeners","addHealthGoBackEventListener","addRecommendationViewmodelSubscriptions","shouldShowIngredientsByIngredient","shouldShowIngredientsBySupplement","ingredientsByIngredient","ingredient","isOpen","ingredients","addSupplementChangeEventSubscription","addRecommendationsEventListeners","$wizardCategories","addCategoryClickEventListener","addCompareClickEventListeners","addReadMoreEventListeners","e","isFooterElement","addLifestyleGoBackEventListener","addExitEventListener","fireLifeStyleCompleted","getTextFromSelection","getCheckedRadioButtonLabelText","each","index","discipline","supplementCategories","selectedSupplement","addLifeStyleEventListeners","addNewHorseEventListener","$form","val","addPreferencesBackEvent","addBudgetBackEvent","addIngredientBackEventListener","addEmailIngredientsEventListener","addIngredientTotalEvents","addBudgetRouteEvents","addPreferenceRouteEvents","addGetStartedEventListener","addPreviousResultEventListener","addCompareSupplementsRouteEvents","addCompareSupplementsEventListener","addSelectHorseEventListener","parent","hasClass","$element","find","text","showExitSectionBackButtonConfirmationDialog","sectionText","modals","setUpSocial","po","s","parentNode","insertBefore","append","initializeWizardCommon","$input","$container","pageTracker","preventDefault","wizardPageTracker","wizardPage","attr","createConfirmDialog","modalInstance","get","title","resizable","modalClass","open","buttons","okButtonText","click","close","cancelButtonText","buildContent","confirmationModal","undefined","doneConfirmationModal","backConfirmationModal","HIDE_CLASS","paging","jsStyles","markAsAnswered","$question","addClass","markAsUnanswered","removeClass","$select","children","is","not","prop","closest","$item","buildSubpages","key","container","_$questionList","subpageWrapper","questionIterator","page","current","thisPage","questions","wizardSubpages","pluralize","divideSubpageContent","horseName","data","question","replace","buildSubPageHeaderHTML","remove","subpageNavigation","_setPageCount","_navigateTo","_current","_checkForFirst","isFirst","_$form","_checkForLast","isLast","_changePage","$pages","VISIBLE","eq","filter","destination","_setCurrentPage","scrollTo","hideErrorText","subpageValiation","errorBlock","list","empty","q","selects","radios","checkboxes","subpages","incomplete","showErrorText","questionText","checkRadiosAndCheckboxes","answers","r","init","startOnPage","search","$categoryAlertCon","$enterHorseCon","$doc","windowWidth","wizardCategoryTooltips","miniWizardCategoryToolTips","Age","miniWizardAnswerToolTips","CLASSES","categoryTitle","catHasHint","alert","toolTip","questionPrefix","answerPrefix","findCategories","findByClassInContext","findCategoryTitle","findQuestions","findAlerts","hasRecipientForm","$context","getElemById","id","addToolTips","$elems","toolTipObj","findLabelFunc","elem","$elem","$this","labelText","toolTipText","width","addToolTip","showQuestionAlert","getNodeName","toUpperCase","freeTextTriggerIdMatchesValue","elementData","freetexttriggerid","freetextfieldname","validateForm","$failedCategories","$button","box","$submitButton","$loadingMessage","hasCategoryErrors","hasRecipientErrors","indx","$questions","categoryFailed","$checkedRadio","selectData","$answerElements","ret","toLowerCase","enableSubmitButton","focus","scrollTop","position","delay","fadeIn","freeTextEventHandler","triggerId","$freeText","isSelectTag","hideAndResetDependents","$dependents","dependent","$selectControlSelector","$questionControlContainer","selectId","dependentOnControl","manageDependents","prerequisite","questionaire","categoryToolTips","lstSelector","freeTextSelector","wireUpFreeTextSelects","radioSelector","wireUpFreeTextRadios","datepickers","dateSelector","wireUpDatePickers","dependentOnQuestion","dependentOnAnswer","questionContainer","controlId","qContainer","hideDependentQuestionByControl","answerId","$answer","$div","$checked","showDependentQuestionByInputName","exports","jQuery"],"sourceRoot":""}