{"version":3,"file":"js/app.build.js","mappings":"qHAgBMA,EAAW,SAAAC,GACf,IAAMC,EAAOD,EAAIE,QAAQ,iBAAiB,SAACC,EAAOC,GAChD,OAAIA,EACKA,EAAQC,cAEV,EACT,IACA,MAAO,GAAPC,OAAUL,EAAKM,OAAO,EAAG,GAAGC,eAAaF,OAAGL,EAAKM,OAAO,GAC1D,EAYME,EAAW,SAAAC,GACf,IAAIC,EAC2BA,EAAL,IAA1BD,EAASE,QAAQ,KAAoBF,EAASG,UAAU,GAAaH,EAErE,IACMI,EAAS,4CAA4CC,KACzDJ,EAAIT,QAFiB,oCAEO,SAACc,EAAGC,EAAGC,EAAGC,GAAC,OAAKF,EAAIA,EAAIC,EAAIA,EAAIC,EAAIA,CAAC,KAEnE,OAAOL,EACH,CAACM,SAASN,EAAO,GAAI,IAAKM,SAASN,EAAO,GAAI,IAAKM,SAASN,EAAO,GAAI,KACvE,IACN,EAMMO,EAAW,SAACC,GAAI,IAAEC,EAAGC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGG,SAASC,gBAAe,OACpDC,iBAAiBN,GAAKO,iBAAiB,YAADxB,OAAagB,IAAQS,MAAM,EAwE7DC,EAAc,CAClBC,GAAI,EACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,KACJC,IAAK,MAoBDC,EAAiB,WAAH,OAAUC,OAAOC,WAAW,gCAAgCC,QAAU,OAAS,OAAO,EAgDpGC,EAAW,SAACC,EAAWC,GAA4C,IAAnCC,EAAQtB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,MAEzCuB,GADWF,EAAUD,GACFE,EACzB,OAAOE,MAAMC,KAAK,CAAExB,OAAQsB,EAAQ,IAAK,SAACG,EAAGC,GAAC,OAAK,IAAIC,KAAKR,EAAUS,UAAYP,EAAWK,EAAE,GACjG,EA6BMG,EAAQ,CACZC,SAvOe,SAAAC,GAEa,YAAxB7B,SAAS8B,WACX9B,SAAS+B,iBAAiB,mBAAoBF,GAE9CG,WAAWH,EAAI,EAEnB,EAiOExB,YAAAA,EACA4B,OAhOa,SAAAJ,GAAE,OAAIhB,OAAOkB,iBAAiB,SAAUF,EAAG,EAiOxDK,gBA/NsB,SAAAC,GAAK,OAAId,MAAMe,QAAQD,MAAYA,EAAMrC,MAAM,EAgOrE1B,SAAAA,EACAiE,QArNc,SAACC,EAAIC,GACnB,IACE,OAAOC,KAAKC,MAAMH,EAAGI,QAAQtE,EAASmE,IACxC,CAAE,MAAOI,GACP,OAAOL,EAAGI,QAAQtE,EAASmE,GAC7B,CACF,EAgNEK,SAjJe,SAACN,EAAIO,GAEpB,OAAOP,EAAGQ,UAAUC,MAAMC,SAASH,EACrC,EA+IEI,SA7Ie,SAACX,EAAIO,GACpBP,EAAGQ,UAAUI,IAAIL,EACnB,EA4IE/D,SAAAA,EACAqE,UAlMgB,WAAH,IAAoBC,EAAKvD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAG,cAAAlB,OAAaG,EAAnCe,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,QAA+C,MAAAlB,OAAKyE,EAAK,MAmMlF1D,SAAAA,EACA2D,UA7LgB,SAAAzD,GAAG,MAAK,CACxB0D,QAAS5D,EAAS,UAAWE,GAC7B2D,UAAW7D,EAAS,YAAaE,GACjC4D,QAAS9D,EAAS,UAAWE,GAC7B6D,KAAM/D,EAAS,OAAQE,GACvB8D,QAAShE,EAAS,UAAWE,GAC7B+D,OAAQjE,EAAS,SAAUE,GAC3BgE,MAAOlE,EAAS,QAASE,GACzBiE,KAAMnE,EAAS,OAAQE,GACvBkE,MAAOpE,EAAS,QAASE,GACzBmE,MAAOrE,EAAS,QAASE,GACzBoE,SAAUtE,EAAS,iBAAkBE,GACtC,EAkLCqE,gBAhLsB,SAAArE,GAAG,MAAK,CAC9B0D,QAAS5D,EAAS,oBAAqBE,GACvC2D,UAAW7D,EAAS,sBAAuBE,GAC3C4D,QAAS9D,EAAS,oBAAqBE,GACvC6D,KAAM/D,EAAS,iBAAkBE,GACjC8D,QAAShE,EAAS,oBAAqBE,GACvC+D,OAAQjE,EAAS,mBAAoBE,GACrCgE,MAAOlE,EAAS,kBAAmBE,GACnCiE,KAAMnE,EAAS,iBAAkBE,GAClC,EAwKCsE,SAtKe,SAAAtE,GAAG,MAAK,CACvB,IAAKF,EAAS,WAAYE,GAC1B,IAAKF,EAAS,WAAYE,GAC1B,IAAKF,EAAS,WAAYE,GAC1B,IAAKF,EAAS,WAAYE,GAC1B,IAAKF,EAAS,WAAYE,GAC1B,IAAKF,EAAS,WAAYE,GAC1B,IAAKF,EAAS,WAAYE,GAC1B,IAAKF,EAAS,WAAYE,GAC1B,IAAKF,EAAS,WAAYE,GAC1B,IAAMF,EAAS,YAAaE,GAC5B,KAAMF,EAAS,YAAaE,GAC7B,EA2JCuE,UA5IgB,SAAA7B,GAChB,IAAM8B,EAAO9B,EAAG+B,wBACVC,EAAazD,OAAO0D,aAAevE,SAASC,gBAAgBqE,WAC5DE,EAAY3D,OAAO4D,aAAezE,SAASC,gBAAgBuE,UACjE,MAAO,CAAEE,IAAKN,EAAKM,IAAMF,EAAWG,KAAMP,EAAKO,KAAOL,EACxD,EAwIEM,mBAtIF,SAA4BtC,GAC1B,IAAM8B,EAAO9B,EAAG+B,wBACVQ,EAAehE,OAAOiE,aAAe9E,SAASC,gBAAgB8E,aAC9DC,EAAcnE,OAAOoE,YAAcjF,SAASC,gBAAgBiF,YAE5DC,EAAaf,EAAKM,KAAOG,GAAgBT,EAAKM,IAAMN,EAAKgB,QAAU,EACnEC,EAAYjB,EAAKO,MAAQK,GAAeZ,EAAKO,KAAOP,EAAKkB,OAAS,EAExE,OAAOH,GAAcE,CACvB,EA8HEE,cAnHoB,SAAAjD,GACpB,IACIkD,EADEC,EAAUnD,GAAMA,EAAGQ,UAAUC,MAanC,OAXI0C,IACFD,EACEnF,EACEoF,EACGC,MAAM,KACNC,QAAO,SAAAC,GAAG,OAAIA,EAAI5C,SAAS,iBAAiB,IAC5C6C,MACAH,MAAM,KACNG,QAGFL,CACT,EAqGEM,UA9FgB,SAACnG,EAAMoD,EAAOgD,GAC9B,IAAMC,EAAU,IAAIvE,KACpBuE,EAAQC,QAAQD,EAAQE,UAAYH,GACpC/F,SAASmG,OAAS,GAAHxH,OAAMgB,EAAI,KAAAhB,OAAIoE,EAAK,aAAApE,OAAYqH,EAAQI,cACxD,EA2FEC,UAzFgB,SAAA1G,GAChB,IAAM2G,EAAWtG,SAASmG,OAAO3H,MAAM,UAADG,OAAWgB,EAAI,kBACrD,OAAO2G,EAAWA,EAAS,GAAKA,CAClC,EAuFEC,SA1Ee,SAACC,EAAOC,GACvB,IAAMC,EAAMF,EAAMG,WAAW,MAC7B,OAAO,IAAI9F,OAAO+F,MAAMF,EAAKD,EAC/B,EAwEEI,SAtFe,CACfC,QAAS,CACPC,MAAO,SAETP,MAAO,CACLQ,YAAa,6BAkFfC,iBArEuB,SAACC,EAAKC,GAAuC,IAAzBC,EAAKvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGwH,aACnD,IACE,OAAO7E,KAAKC,MAAM2E,EAAME,QAAQJ,KAASC,CAC3C,CAAE,MAAAI,GACA,OAAOH,EAAME,QAAQJ,IAAQC,CAC/B,CACF,EAgEEK,eA9DqB,SAACN,EAAKO,GAA6B,OAAf5H,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGwH,cAAuBK,QAAQR,EAAKO,EAAQ,EA+DxFE,cA9DoB,WAAH,IAAIP,EAAKvH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGwH,aAAY,OACzCO,YAAYC,OAAOC,mBAAmBtF,KAAKuF,UAAUX,KAAStH,OAAS,SAAekI,QAAQ,GAAG,EA8DjGhH,SAAAA,EACAiH,aArDmB,SAAAC,GACnB,IAAIC,EAEJ,OAAQD,GACN,IAAK,OACHC,EAAO,EACP,MACF,IAAK,QACHA,EAAO,GACP,MACF,IAAK,OACHA,EAAO,IACP,MAEF,QACEA,EAAOD,EAGX,IAAME,EAAO,IAAI3G,KACXP,EAAUkH,EACVnH,EAAY,IAAIQ,MAAK,IAAIA,MAAO4G,QAAQD,EAAKE,WAAaH,EAAO,KACvE,OAAOnH,EAASC,EAAWC,EAC7B,EAgCEqH,gBA7BsB,SAACC,EAAKC,GAAG,OAAKC,KAAKC,MAAMD,KAAKE,UAAYH,EAAMD,GAAOA,EAAI,EA8BjFK,YA7JkB,SAACvG,EAAIO,GACvBP,EAAGQ,UAAUgG,OAAOjG,EACtB,EA4JEjC,eAAAA,EACAmI,OA7Ga,WAAH,MAA4C,SAAlC1B,aAAaC,QAAQ,SAAsB1G,IAAmByG,aAAaC,QAAQ,QAAQ,GAgHjH,I,udCjIA3F,EAAMC,UCnIc,WACdf,OAAOmI,SACQhJ,SAASiJ,iBAAiB,kBAClCC,SAAQ,SAAAC,GACf,IAAAC,EAAiCzH,EAAMU,QAAQ8G,EAAM,WAA7CE,EAAQD,EAARC,SAAaC,E,kXAAOC,CAAAH,EAAAI,GACtBC,EAAU,IAAI5I,OAAOmI,QAAQG,EAAME,E,6uBAAQK,CAAA,CAC/CxB,SAAU,GACPoB,IAEAG,EAAQE,MAGXC,QAAQD,MAAMF,EAAQE,OAFtBF,EAAQI,OAIZ,GAEJ,ID4KAlI,EAAMC,UE5LY,YCAE,SAACkI,EAASrD,GAC5B,GAAKqD,EAAL,CAEA,IAAMpD,EAAMoD,EAAQnD,WAAW,MAC3BH,EAAQ,IAAI3F,OAAO+F,MAAMF,EAAKD,KAEVzG,SAAS+J,KACjBhI,iBAAiB,gBAAgB,SAAAiI,GAK/C,MAJgB,UADmDA,EAAjBC,OAAUC,UAE1D1D,EAAM2D,UACN3D,EAAQ,IAAI3F,OAAO+F,MAAMF,EAAKD,MAEzB,IACT,GAZoB,CAatB,CDqCE2D,CAlDapK,SAASqK,eAAe,uBAElB,WAAH,MAAU,CACxBC,KAAM,MACN/H,KAAM,CACJgI,OAAQ,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,QACjEC,SAAU,CACR,CACEF,KAAM,OACNG,MAAO,YACPzD,YAAarF,EAAMjC,SAAS,WAC5BgL,YAAa,EACbC,MAAM,EACNpI,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC/BqI,QAAS,MAIftB,QAAS,CACPuB,QAAS,CACPC,QCL6B,CACnCC,gBAAiBpJ,EAAMuC,WAAW,KAClC8C,YAAarF,EAAMuC,WAAW,KAC9BwG,YAAa,EACbM,WAAYrJ,EAAM0B,YAAYW,SAC9BiH,UAAW,CACTC,eAAc,WACZ,OAAOvJ,EAAM0B,YAAYW,QAC3B,IDFImH,OAAQ,CACNZ,OAAQ,CACNa,MAAOzJ,EAAMuC,WAAW,QAI9BmH,OAAQ,CACNC,EAAG,CACDC,MAAO,CACLH,MAAOzJ,EAAMuC,WAAW,MAE1BsH,KAAM,CACJJ,MAAOzJ,EAAMuC,WAAW,KACxBuH,YAAY,IAGhBC,EAAG,CACDH,MAAO,CACLH,MAAOzJ,EAAMuC,WAAW,MAE1BsH,KAAM,CACJJ,MAAOzJ,EAAMuC,WAAW,KACxBuH,YAAY,MAKrB,GAGH,G,qCE1DAE,IAAIC,GAAGC,QAAUF,IAAIC,GAAGC,SAAW,CAAC,EACpCF,IAAIC,GAAGC,QAAQC,SAAWH,IAAIC,GAAGC,QAAQC,UAAY,CAAC,EAEtDH,IAAIC,GAAGC,QAAQC,SAAW,CACtBC,SAAU,SAAkBpJ,GAExB,IAAMqJ,EAASC,EAAEtJ,EAAEuJ,gBAAgBC,KAAK,sBAAsBC,KAAK,MAC7DC,EAAQJ,EAAE,IAAMD,GAAQzJ,KAAK,aAC/B8J,GACAA,EAAMC,WAAWC,MACzB,E,qCCVAZ,EAAMA,GAAO,CAAC,EAClBA,EAAIC,GAAKD,EAAIC,IAAM,CAAC,EACpBD,EAAIC,GAAGY,QAAUb,EAAIC,GAAGY,SAAW,CAAC,EAGnCP,GAAE,WACD,IAAKN,EAAIC,GAAGY,QAAQC,WAAY,CAE/B,IAAIC,EAAW7L,OAAO8L,SAASD,SAE/B,GAAiB,4BAAbA,EACH,OACD,GAAiB,6BAAbA,EACH,OACD,GAAiB,iDAAbA,EACH,OACD,GAAiB,qCAAbA,EACH,OAKD,GAAoC,IAAhCT,EAAE,mBAAmBnM,OACxB,OAID6L,EAAIC,GAAGY,QAAQI,2BAChB,CAED,IAEAjB,EAAIC,GAAGY,QAAU,CAEhBC,SAAU,WACT,IACC,OAAO5L,OAAOgM,OAAShM,OAAO6D,GAC/B,CACA,MAAO/B,GACN,OAAO,CACR,CACD,EAGAiK,0BAA2B,WAE1BE,IAGA,IAKIC,EAAyBd,EAAE7L,KAAK6L,EAAE,kBAAkB3N,QAUxD,GAHA0O,YAAa,EAGkB,KAA3BD,EAAJ,CAIA,IAIIE,EACAC,EALAC,EAAkD,GAAzBJ,EAjBJ,GAkBrBK,EAAsBD,EAAyBE,IAK/CC,GAAsB,EAqCzBL,EAAkBM,aAuInB,WACC,GAAIC,IAAiB,CAEpB,GAAIF,EACH,OAGDG,IAGAP,EAAwBK,YAAYG,EAAmB,KAGvDzB,EAAE,cAAc0B,OAAM,WAhJvB/D,QAAQgE,IAAI,oBAVZC,QAAQC,IAAI,eAAgBC,OAAO,cAAcC,SAAU,CAAEC,KAAM,IAAKC,OAA8B,WAAtBvB,SAASwB,WA4JvFlC,EAAE,yBAAyBmC,QAAQ,SACpC,IAGAnC,EAAE,qBAAqB0B,OAAM,WAC5BU,IACAC,GAAiB,EAClB,GACD,CACD,GA7NwB,KA8BxBrC,EAAE,QAAQsC,GAAG,SAAS,SAAU5L,GAC1BsJ,EAAEtJ,EAAE6L,QAAQ5L,SAAS,0BACzB0L,GAAiB,EAEnB,IAEArC,EAAEjM,UAAUuO,GAAG,oBAAoB,SAAUE,EAAI9L,GAEhD2L,GAAiB,EAClB,GAtBA,CAyBA,SAASI,IACR,IAAIC,EAAad,QAAQe,IAAI,gBAE7B,OAAOb,OAAOY,EACf,CAGA,SAAS7B,IACRe,QAAQC,IAAI,eAAgBC,SAASC,SAAU,CAAEC,KAAM,IAAKC,OAA8B,WAAtBvB,SAASwB,UAE9E,CA+CA,SAASG,EAAiBO,GACzB,IAAIF,EAAaD,IACbI,EAAcf,SAASgB,KAAKJ,EAAY,YAOxCE,GAASC,GAvFc,MAwF1BhC,IAODb,EAAE+C,KAAK,CACN1E,KAAM,OACN2E,IAAK,kBACLC,OAAO,EACPC,SAAU,SACRC,MAAK,SAAUC,GACjB,IACEC,MAAK,SAAUC,GAEjB,IAbF,CAiBA,SAAS/B,IACR,IAAImB,EAAaD,IACbc,EAAYzB,OAAOY,GACvBa,EAAUtM,IAAIkK,EAAqB,WACnC,IAAIqC,EAAsBD,EAAUT,KAAKhB,SAAU,WAE/C2B,EAAW3B,OAAOY,GAUtB,OATAe,EAASxM,IAAIiK,EAAwB,WACRuC,EAASX,KAAKhB,SAAU,WAQ7C0B,GAAuB,CAChC,CAaA,SAAShC,IACRxB,EAAE,mBAAmB0D,MAAM,CAC1BC,MAAM,EACNC,UAAU,EACVC,UAAU,IAEXxC,GAAsB,CAEvB,CAEA,SAASI,IACRD,IAEA,IAAIsC,EAxBL,WACC,IAAIpB,EAAaD,IACbsB,EAAYjC,OAAOY,GAKvB,OAJAqB,EAAU9M,IAAIiK,EAAwB,WACZ6C,EAAUjB,KAAKhB,SAAU,UAIpD,CAgBmBkC,GAGlBhE,EAAE,cAAciE,KAAKnC,OAAO7F,SAASQ,KAAKD,IAAIsH,EAAa,GAAI,WAAWI,UAAS,IACnF,IAAIxB,EAAaD,IACjBzC,EAAE,eAAeiE,KAAKnC,OAAOY,GAAYX,OAAO,YAAc,KAAOD,SAASgB,KAAKJ,EAAY,WAAa,gBAGvGnB,KACJa,IACG0B,GAAe,GA/GpB,WACC,IAAI/C,WAAJ,CAIAoD,cAAcnD,GACdmD,cAAclD,GAEd,IAAMmD,EAAQpE,EAAE,4CAA4CqE,MAE5DtQ,SAAS+J,KAAKwG,UAAY,8BAC1BvD,YAAa,EAGbf,EAAE+C,KAAK,CACN1E,KAAM,OACN2E,IAAK,2BACLuB,QAAS,CAAE,yBAA4BH,GACvCnB,OAAO,EACP3M,KAAM,CAAEkO,OAAQ,YAChBtB,SAAU,SACRC,MAAK,SAAUsB,GACjB7P,OAAO8L,SAASgE,KAAO,oBAAsBD,EAAIE,YAAc,kBAChE,IAAGtB,MAAK,SAAUC,GACjB,GApBD,CAsBD,CAsFEsB,EACF,CAGA,SAASxC,IAER+B,cAAclD,GAGdjB,EAAE,mBAAmB0D,MAAM,QAC3BrC,GAAsB,CACvB,CA4BD,E,k0CC/QF,IAAI3B,EAAMA,GAAO,CAAC,EAClB9K,OAAO8K,IAAMA,EACbA,EAAIC,GAAKD,EAAIC,IAAM,CAAC,EACpBD,EAAIC,GAAGkF,OAASnF,EAAIC,GAAGkF,QAAU,CAAC,EAE7BC,OAAOC,UAAUhO,WAClB+N,OAAOC,UAAUhO,SAAW,WACxB,aACA,OAA4D,IAArD+N,OAAOC,UAAU/R,QAAQgS,MAAMC,KAAMrR,UAChD,GAGJoM,EAAEkF,UAAU,CACRjC,OAAO,EACPkC,aAAa,IAEjBnF,EAAEoF,eAAc,SAAU/H,EAASgI,GAC/B,IAAMC,EAA8C,SAA/BjI,EAAQgB,KAAKzL,cAC5B2S,GAAmF,IAAnElI,EAAQmI,YAAY5S,cAAcI,QAAQ,oBAChE,GAAIsS,IAAiBC,EAAe,GAC3BF,EAAgB/O,MAAyC,iBAAzB+O,EAAgB/O,MAAqD,WAAhCmP,EAAOJ,EAAgB/O,SAC7F+O,EAAgB/O,KAAO,CAAC,GAE5B,IAAIoP,GAAW,EAETC,EAA+C,iBAAzBN,EAAgB/O,KAAoB0J,EAAE4F,QAAQP,EAAgB/O,MAAQ+O,EAAgB/O,KAOlH,GANA0J,EAAE6F,KAAKF,GAAc,SAAUG,EAAGxQ,GAC9B,GAAI,+BAAiCwQ,EAEjC,OADAJ,GAAW,GACJ,CAEf,KACKA,EAAU,CACX,IAAIK,EAAS/F,EAAE,mEACX+F,EAAOlS,SAC6B,iBAAzBwR,EAAgB/O,KACvB+G,EAAQ/G,KAAO+O,EAAgB/O,KAAhB+O,+BAA6DU,EAAO1B,MAGnFhH,EAAQ/G,KAAO0J,EAAEgG,MAAMhG,EAAEiG,OAAOZ,EAAgB/O,KAAM,CAAE4P,2BAA4BH,EAAO1B,SAAU,GAGjH,CACJ,CACJ,IAEArE,GAAE,W,MAE2B,GAAGmG,MAAMC,KAAKrS,SAASiJ,iBAAiB,+BAC5BqJ,KAAI,SAAUC,GAC/C,OAAO,IAAIC,UAAUC,QAAQF,EACjC,K,EAE2BvS,SAASiJ,iBAAiB,8B,knBACTqJ,KAAI,SAAUI,GACtD,OAAO,IAAIF,UAAUG,QAAQD,EAAkB,CAAExC,MAAM,EAAM9B,QAAS,eAC1E,IAEAnC,EAAEjM,SAAS+J,MAAMwE,GAAG,QAAS,sBAAsB,WAC/C1N,OAAO+R,OACX,IAEA3G,EAAEjM,SAAS+J,MAAMwE,GAAG,QAAS,kCAAkC,SAAU5L,GACrEA,EAAEkQ,iBAEF,IAAM5D,EAAMhD,EAAEtJ,EAAE6L,QAAQjM,KAAK,OAC7B1B,OAAOiS,KAAK7D,EAAK,aACrB,IAEAhD,EAAEjM,SAAS+J,MAAMwE,GAAG,QAAS,gCAAgC,SAAU5L,GACnEA,EAAEkQ,iBACF,IAAME,EAAY9G,EAAEtJ,EAAEqQ,eAAezQ,KAAK,cACpC0Q,EAAgBhH,EAAEtJ,EAAEqQ,eAAezQ,KAAK,kBAC9CoJ,EAAIC,GAAGkF,OAAOoC,WAAWtD,KAAK,gBAAkBqD,EAC5C,uCAAsCvJ,EAAA,CAElCyJ,UAAWJ,GACRpH,EAAIC,GAAGkF,OAAOsC,MAAMC,gBAEnC,IAEApH,EAAEjM,SAAS+J,MAAMwE,GAAG,QAAS,wCAAwC,SAAU5L,GAC3EA,EAAEkQ,iBACF,IAAME,EAAY9G,EAAEtJ,EAAEqQ,eAAezQ,KAAK,cACpC0Q,EAAgBhH,EAAEtJ,EAAEqQ,eAAezQ,KAAK,kBAC9CoJ,EAAIC,GAAGkF,OAAOoC,WAAWtD,KAAK,uBAAyBqD,EACnD,8CAA6CvJ,EAAA,CAEzCyJ,UAAWJ,EACXO,cAAeL,GACZtH,EAAIC,GAAGkF,OAAOsC,MAAMC,gBAEnC,IAEApH,EAAEjM,SAAS+J,MAAMwE,GAAG,QAAS,wCAAwC,SAAU5L,GAC3EA,EAAEkQ,iBACFlH,EAAIC,GAAG2H,QAAQC,mCACnB,IAGA,IAAIC,EAAaxH,EAAE,uBACfyH,EAAYzH,EAAE,sBACd0H,EAAc,sDAElBF,EAAWlF,GAAG,UAAU,SAAU5L,GAE1B+Q,EAAUxD,SAAWyD,GACrBD,EAAUxD,KAAKyD,EAEvB,IAEI9S,OAAO8L,SAASD,SAAS1J,SAAS,cAAgBnC,OAAO8L,SAASD,SAAS1J,SAAS,cAKxFiJ,EAAEjM,SAAS+J,MAAMwE,GAAG,YAAa,yBAAyB,SAAUqF,GAChE,IAAMC,EAAa5H,EAAEiF,MACf5F,EAAIsI,EAAaE,MAAQD,EAAWE,SAASpP,KAC/C+G,EAAIkI,EAAaI,MAAQH,EAAWE,SAASrP,IAEjDuH,EAAEjM,SAAS+J,MAAMwE,GAAG,uBAAuB,SAAU0F,GACjDJ,EAAWK,QAAQ,0BAA0BH,OAAO,CAChD,KAAQE,EAAaH,MAAQxI,EAC7B,IAAO2I,EAAaD,MAAQtI,GAEpC,IAEAO,EAAEjM,SAAS+J,MAAMoK,IAAI,WAAW,WAC5BlI,EAAEjM,SAAS+J,MAAMqK,IAAI,sBACzB,IAEAP,EAAWK,QAAQ,UAAUC,IAAI,iBAAiB,WAC9ClI,EAAEjM,SAAS+J,MAAMqK,IAAI,sBACzB,GACJ,IAIAnI,EAAE,oBAAoBsC,GAAG,SAAS,SAAU5L,GACxC,IAAI0R,EAAqBpI,EAAEiF,MAAMgD,QAAQ,IAAMjI,EAAEiF,MAAMoD,KAAK,mBACxDC,EAAiBtI,EAAEiF,MAAMgD,QAAQ,IAAMjI,EAAEiF,MAAMoD,KAAK,mBAAmBA,KAAK,4BAC1EE,EAAWvI,EAAE,0BAEnBA,EAAE+C,KAAK,CACHC,IAAKuF,EAASjS,KAAK,mCACnB+H,KAAM,OACN/H,KAAM,CAAEgS,eAAgBA,KACzBnF,MAAK,SAAU7M,GAEd8R,EAAmBpR,SAAS,SAChC,IAAGqM,MAAK,WAEJ+E,EAAmBpR,SAAS,SAChC,GACJ,IAIKwR,eAAenN,QAAQ,iBACxB2E,EAAE,eAAe0D,MAAM,QAGL,GAFD1D,EAAE,eAAeyI,GAAG,aAGjCD,eAAe/M,QAAQ,cAAe,SAG9CuE,EAAE,0BAA0B0B,OAAM,SAAUhL,GACxCsJ,EAAE,eAAe0D,MAAM,OAC3B,IACJ,IAEAhE,EAAIC,GAAGkF,OAAOsC,MAAQ,CAClBC,aAAc,WACV,OAAOsB,MAAMC,mBACjB,GAIJjJ,EAAIC,GAAGkF,OAAO+D,eAAiB,CAC3BjF,KAAM,SAA4BkF,GACzBA,IACDA,EAAU,IAId,IAAIC,EAAM9I,EAAE,mCACN+I,EAAS,IAAIxC,UAAUyC,MAAMF,EAAK,CACpClF,SAAU,SACVC,UAAU,IAGd,IAAKiF,EAAIjV,OACL,OAAO,EAEFiV,EAAInS,SAAS,SAGdqJ,EAAE,mBAAmBnM,OAAS,GAAKiV,EAAInS,SAAS,SAChDqJ,EAAE,mBAAmBiJ,QAAQpM,SAGrCmD,EAAEpL,QAAQ0N,GAAG,WAAW,SAAU5L,GAC9B,IAEI,GAAY,MADFA,EAAEwS,OAASxS,EAAEyS,SAAWzS,EAAE0S,UAGhC,OADA1S,EAAEkQ,kBACK,CAEf,CACA,MAAOtD,GAAO,CAClB,IAEA,IAAI+F,EAASP,EAAI5I,KAAK,4CAClBoJ,EAAOtJ,EAAE,uCACTsJ,EAAKzV,OACLyV,EAAKjX,KAAKwW,GAGVQ,EAAOE,OAAO,iDAAmDV,EAAU,WAG/EE,EAAOpF,MACX,EACA6F,KAAM,WACF,IAAMV,EAAM/U,SAAS0V,cAAc,mCACpBlD,UAAUyC,MAAMU,oBAAoBZ,GAC5CU,OAGPxJ,EAAE,mBAAmBwJ,MACzB,GAKJ9J,EAAIC,GAAGkF,OAAOoC,WAAa,CACvBtD,KAAM,SAAUgG,EAAO3G,EAAK1M,GACxB,IAAMsT,EAAS,CACXD,WAAwB,IAAVA,EAAwBA,EAAQ,GAC9C3G,SAAoB,IAARA,EAAsBA,EAAM,GACxC1M,UAAsB,IAATA,EAAuBA,EAAO,IAGzCuT,EAAW,yCACXC,EAAc9J,EAAE6J,GAkBtB,GAjBIC,EAAYjW,QACZiW,EAAYjN,SAgBG,KAAf+M,EAAO5G,IACPrF,QAAQgE,IAAI,wBAEX,CACD3B,EAAE,QAAQuJ,OAhBV,waAkBA,IAAIT,EAAM9I,EAAE6J,GACZ,IAAKf,EAAIjV,OAEL,OADA8J,QAAQgE,IAAI,sCAAwCkI,IAC7C,EAGXf,EAAIxG,GAAG,iBAAiB,WACpBtC,EAAEiF,MAAM/E,KAAK,gBAAgB+D,KAAK2F,EAAOD,OACzCjK,EAAIC,GAAGkF,OAAO+D,eAAejF,OACT,KAAhBiG,EAAOtT,KACP0J,EAAEiF,MAAM/E,KAAK,eAAe6J,KAAKH,EAAO5G,IAAK4G,EAAOtT,MAAM,WACtDoJ,EAAIC,GAAGkF,OAAO+D,eAAeY,MACjC,IAEAxJ,EAAEiF,MAAM/E,KAAK,eAAe6J,KAAKH,EAAO5G,KAAK,WACzCtD,EAAIC,GAAGkF,OAAO+D,eAAeY,MACjC,GACR,IAEe,IAAIjD,UAAUyC,MAAMF,GAC5BnF,MACX,CACJ,EACA6F,KAAM,WACF,IAAMV,EAAM/U,SAAS0V,cAAc,0CACpBlD,UAAUyC,MAAMU,oBAAoBZ,GAC5CU,MACX,GAKJ9J,EAAIC,GAAGkF,OAAOmF,aAAe,CACzBrG,KAAM,SAA0BgG,EAAOd,EAASxK,GAC5C,IAAI4L,EAAqBjK,EAAE,iBAAiB1J,KAAK,qBACrB2T,EAAmBC,mBAErBrW,QACtB6L,EAAIC,GAAGkF,OAAOmF,aAAanN,SAG/BgM,EAAUA,GAAoB,GAC9BoB,EAAmBtG,KAAK,CAAEgG,MAAOA,EAAOd,QAASA,GAAWxK,EAChE,EACAxB,OAAQ,WACqBmD,EAAE,iBAAiB1J,KAAK,qBACF4T,mBAGzBrE,MAAK,WACvB7F,EAAEiF,MAAMgD,QAAQ,0BAA0BpL,QAC9C,GACJ,EACAsN,eAAgB,SAAwBtB,GACpCc,MAAyB,oBAAVA,MAAwBA,MAAQ,UAC/CjK,EAAIC,GAAGkF,OAAOmF,aAAarG,KAAKgG,MAAOd,EAAS,UACpD,EACAuB,eAAgB,SAAwBvB,GACpCc,MAAyB,oBAAVA,MAAwBA,MAAQ,UAC/CjK,EAAIC,GAAGkF,OAAOmF,aAAarG,KAAKgG,MAAOd,EAAS,UACpD,EACAwB,aAAc,SAAsBxB,EAASc,GACzCA,OAAyB,IAAVA,EAAwBA,EAAQ,QAC/CjK,EAAIC,GAAGkF,OAAOmF,aAAarG,KAAKgG,EAAOd,EAAS,QACpD,EACAyB,wBAAyB,SAAUC,EAAQZ,GACvCA,OAAyB,IAAVA,EAAwBA,EAAQ,QAC/C,IAAMa,EAAS9K,EAAIC,GAAGkF,OAAOmF,aAAaS,aAAaF,GACvD7K,EAAIC,GAAGkF,OAAOmF,aAAarG,KAAKgG,EAAOa,EAAQ,QACnD,EACAC,aAAc,SAAUC,GACpB,IAAIF,EAAS,OAKb,OAJAxK,EAAE6F,KAAK6E,GAAM,SAAUnV,EAAG6N,GACtBoH,GAAU,OAASpH,EAAM,OAC7B,IACAoH,GAAU,OAEd,EACAG,mBAAoB,SAA4BjU,GAE5C,IAAKsJ,EAAE,IAAMtJ,EAAEkU,OAAOC,OAAO,GAAI,CAC7B,IAKYC,EALRC,EAAUrU,EAAEqU,QAAQ9C,QAAQ,0BAC5B+C,EAASD,EAAQ1R,QACjB4R,EAAUF,EAAQ5R,SAClB+R,EAASlL,EAAEpL,QAAQyE,QACnB8R,EAAUnL,EAAEpL,QAAQuE,SAGxB2R,EAAUrO,KAAKC,MAAMwO,EAAS,EAAIF,EAAS,GAClCvO,KAAKC,MAAMyO,EAAU,EAAIF,EAAU,GAE5CvU,EAAEqU,QAAQ9C,QAAQ,0BAA0BmD,IAAI,CAAE1S,KAAMoS,GAC5D,CAGA/U,YAAW,WACHiK,EAAE,eAAenM,QACjBmM,EAAEjM,SAAS+J,MAAM9G,SAAS,aAElC,GAAG,IACP,GAIJ0I,EAAIC,GAAGkF,OAAOwG,KAAO,CACjBC,aAAc,WACV5L,EAAIC,GAAGkF,OAAO+D,eAAejF,KAAK,qBACtC,EACA4H,cAAe,WACX7L,EAAIC,GAAGkF,OAAO+D,eAAeY,MACjC,GAKJ9J,EAAIC,GAAGkF,OAAO2G,MAAQ,CAClBC,eAAgB,SAAwBC,EAAM3L,GAE1C,IAAIR,EAAOS,EAAE,IAAMD,GAAQzJ,KAAK,aAI5BoV,EAAKnB,OACLoB,SAAWD,EAAKnB,OAGZmB,EAAKE,IAAIC,cAAgBH,EAAKE,IAAIC,aAAahD,QAC/C8C,SAAW,CAAE,QAAW,CAAE,OAAU,CAACD,EAAKE,IAAIC,aAAahD,WAE3D8C,SAAW,CAAE,QAAW,CAAE,OAAU,CAAC,kBAI7C,IAAIG,EAAc,GACdC,EAAgB,GAChBC,EAAY,GAChBhM,EAAE6F,KAAK8F,UAAU,SAAUM,GACvBjM,EAAE6F,KAAKZ,MAAM,SAAUvR,EAAMoD,GACJ,YAAjBmV,EACAF,EAAgB/L,EAAEkM,MAAMH,EAAejV,GAEjB,SAAjBmV,EACLD,EAAYhM,EAAEkM,MAAMF,EAAWlV,GAG/BgV,EAAc9L,EAAEkM,MAAMJ,EAAahV,EAE3C,GACJ,IAEIkV,EAAUnY,OAAS,GACnB6L,EAAIC,GAAGkF,OAAOmF,aAAarG,KAAK,cAAeqI,EAAW,YAG1DD,EAAclY,OAAS,GACvB6L,EAAIC,GAAGkF,OAAOmF,aAAarG,KAAK,UAAWoI,EAAe,eAG1DD,EAAYjY,OAAS,GACrB6L,EAAIC,GAAGkF,OAAOmF,aAAarG,KAAK,SAAUmI,EAAa,aAI3DvM,EAAK2I,IAAI,eAAe,SAAUxR,GAC9BA,EAAEkQ,gBACN,GACJ,GAIJlH,EAAIC,GAAGkF,OAAOsH,KAAO,CAEjBC,kBAAmB,WACf,IAAIC,EAAY,GACZC,EAAY,IAAIC,OAAO,SACvBC,EAAe,IAAID,OAAO,SAC1BE,EAAe,IAAIF,OAAO,SAE1BG,EAAW3Y,SAASqK,eAAe,YACnCuO,EAAW5Y,SAASqK,eAAe,YACnCwO,EAAU7Y,SAASqK,eAAe,WAClCyO,EAAO9Y,SAASqK,eAAe,QAC/B0O,EAAU/Y,SAASqK,eAAe,WAEhB,IAAlBsO,EAAS5V,OAAiC,IAAlB6V,EAAS7V,OAAgC,IAAjB8V,EAAQ9V,QAGtC,IAAlB4V,EAAS5V,QACTuV,GAAa,wCACK,IAAlBM,EAAS7V,QACTuV,GAAa,oCACI,IAAjBO,EAAQ9V,QACRuV,GAAa,uCACbM,EAAS7V,OAAS4V,EAAS5V,QAC3BuV,GAAa,mEACbM,EAAS7V,MAAMjD,OAAS,IAAM8Y,EAAS7V,MAAMvE,MAAM+Z,IAC/CK,EAAS7V,MAAMvE,MAAMia,IAAkBG,EAAS7V,MAAMvE,MAAMka,KAChEJ,GAAa,6BAGbM,EAAS7V,MAAMjD,OAAS,IACxBwY,GAAa,wCACZM,EAAS7V,MAAMvE,MAAM+Z,KACtBD,GAAa,sCACZM,EAAS7V,MAAMvE,MAAMia,KACtBH,GAAa,gDACZM,EAAS7V,MAAMvE,MAAMka,KACtBJ,GAAa,8CAEA,IAAbA,GACAQ,EAAKvI,UAAY,GACjBwI,EAAQxI,UAAY+H,IAGpBQ,EAAKvI,UAAY,GACjBwI,EAAQxI,UAAY,IAE5B,EACAyI,UAAW,WAEP,IAAIvV,EAAOzD,SAASqK,eAAe,OAC/B4O,EAASjZ,SAASqK,eAAe,YACjC6O,EAAWlZ,SAASqK,eAAe,WACnC8O,EAAKF,EAAOlW,OAASmW,EAASnW,MAAS,IAAM,IAG7CU,EAAK2V,IADA,KAALD,EACW,iBAEA,oBAEf,IAAIJ,EAAU/Y,SAASqK,eAAe,WAElB,IAAhB4O,EAAOlW,OAAiC,IAAlBmW,EAASnW,MAC/BU,EAAK2V,IAAM,oBACe,IAArBL,EAAQxI,YACb9M,EAAK2V,IAAM,oBAEnB,EAEAC,cAAe,WAEX,IAAIC,EAAStZ,SAASqK,eAAe,YACjC4O,EAASjZ,SAASqK,eAAe,YACjC6O,EAAWlZ,SAASqK,eAAe,WACnC0O,EAAU/Y,SAASqK,eAAe,WAEtC,OAAI4O,EAAOlW,OAASmW,EAASnW,OAEJ,IAAhBkW,EAAOlW,OAAiC,IAAlBmW,EAASnW,OAA+B,IAAhBuW,EAAOvW,OAErDkW,EAAOlW,OAASuW,EAAOvW,OAEF,IAArBgW,EAAQxI,gBAGbtE,EAAEsN,KAAK,uBAAwB,CAAEZ,SAAUW,EAAOvW,MAAO6V,SAAUK,EAAOlW,MAAO8V,QAASK,EAASnW,QAC9FqM,MAAK,SAAU7M,GAEZ0J,EAAE,gBAAgBiE,KAAK3N,EAC3B,GAEZ,GAKJoJ,EAAIC,GAAG2H,QAAU,CAEbiG,2BAA4B,oBAC5BC,2BAA4B,WAExB,OADgBxN,EAAE,IAAMiF,KAAKsI,4BAA4BjX,KAAK,qBAC/CQ,OACnB,EACA2W,2BAA4B,WACxB/N,EAAIC,GAAG2H,QAAQoG,8BACfhO,EAAIC,GAAG2H,QAAQqG,8BACfjO,EAAIC,GAAG2H,QAAQsG,yBACnB,EACAC,8BAA+B,WACN,KAAjB5I,KAAKnO,SACLmO,KAAK6I,OAAO,GAEhBpO,EAAIC,GAAG2H,QAAQqG,6BACnB,EACAA,4BAA6B,WACzB,IAAM7G,EAAYpH,EAAIC,GAAG2H,QAAQkG,6BACjCxN,EAAEsN,KAAK,uCAAsC7P,EAAA,CACzCyJ,UAAWJ,GACRpH,EAAIC,GAAGkF,OAAOsC,MAAMC,iBAE1BjE,MAAK,SAAU7M,GACZ0J,EAAE,yCAAyC3N,KAAKiE,EAAKyX,kBACrD/N,EAAE,0CAA0C3N,KAAKiE,EAAK0X,YACtDhO,EAAE,yCAAyC3N,KAAKiE,EAAK2X,SACzD,GACJ,EAEAC,gCAAiC,yBACjC3G,kCAAmC,WAC/B,IAAM4G,EAAUnO,EAAE,IAAMiF,KAAKiJ,iCAAiC5X,KAAK,iBACnE6X,EAAQC,iBACRD,EAAQhM,QAAQ,UAChBnC,EAAE,wCAAwChJ,SAAS,YACvD,EACAqX,+BAAgC,WAC5B,OAAA5Q,EAAA,CACI6Q,kBAAmB5O,EAAIC,GAAG2H,QAAQkG,8BAC/B9N,EAAIC,GAAGkF,OAAOsC,MAAMC,eAE/B,EACAmH,gCAAiC,WAC7B,IAAIzX,EAAQ,KACNqX,EAAUnO,EAAE,IAAMiF,KAAKiJ,iCAAiC5X,KAAK,iBAC7DkY,EAAQL,EAAQL,SAASU,QACzBC,EAAWN,EAAQ9N,WAAWqO,OAAOF,GAK3C,OAJIC,IACA3X,EAAQ2X,EAASE,OACjB3O,EAAE,wCAAwCpD,YAAY,cAEnD9F,CACX,EACA8X,gCAAiC,SAAyClY,GACtEgJ,EAAIC,GAAG2H,QAAQsG,yBACnB,EACAiB,mCAAoC,SAA4CnY,GAC5E,IAAMoY,EAAqB9O,EAAE,sCACS,IAAlCiF,KAAK5E,WAAW/J,OAAOzC,OACvBib,EAAmBlS,YAAY,UAG/BkS,EAAmB9X,SAAS,SAEpC,EACA0W,4BAA6B,WACzB,IAAMS,EAAUnO,EAAE,IAAMN,EAAIC,GAAG2H,QAAQ4G,iCAAiC5X,KAAK,iBACzE6X,GACAA,EAAQ9N,WAAWC,MAC3B,EAEAyO,4BAA6B,qBAC7BC,2BAA4B,WACxB,IAAMC,EAAWjP,EAAE,oBAAoB1J,KAAK,mBAAmBQ,QACzDoY,EAASlP,EAAE,kBAAkB1J,KAAK,mBAAmBQ,QAU3D,OARQ2G,EAAA,CACJ6Q,kBAAmB5O,EAAIC,GAAG2H,QAAQkG,6BAClC2B,kBAAmBzP,EAAIC,GAAG2H,QAAQiH,kCAClCa,gBAAiBH,EACjBI,cAAeH,GACZxP,EAAIC,GAAGkF,OAAOsC,MAAMC,eAI/B,EACAwG,wBAAyB,WACrB,IAAMO,EAAUnO,EAAE,IAAMN,EAAIC,GAAG2H,QAAQyH,6BAA6BzY,KAAK,aACrE6X,GACAA,EAAQ9N,WAAWC,MAC3B,EACAgP,sBAAuB,WACnB5P,EAAIC,GAAG2H,QAAQsG,yBACnB,EACA2B,iBAAkB,WACd,IAAIC,EAAY,IAAIha,KACpBga,EAAUC,SAASD,EAAUE,WAAa,GAE1C1P,EAAE,oBAAoB1J,KAAK,mBAAmBQ,MAAM0Y,GACpDxP,EAAE,kBAAkB1J,KAAK,mBAAmBQ,MAAM,IAAItB,MAEtDkK,EAAIC,GAAG2H,QAAQsG,yBACnB,GAGJlO,EAAImF,OAAS,CACT8K,kBAAmB,SAA2BjZ,GAE1CA,EAAEkU,OAAOG,QAAQ7K,KAAK,8BAA8B0P,WAAWC,SAASC,KAAK,2CACjF,E","sources":["webpack:///./src/js/theme/utils.js","webpack:///./src/js/theme/theme.js","webpack:///./src/js/theme/countup.js","webpack:///./src/js/theme/charts/chartjs/chart-line.js","webpack:///./src/js/theme/charts/chartjs/chartjs-utils.js","webpack:///./src/js/app/clientweb.kendo.js","webpack:///./src/js/app/sessionScript.js","webpack:///./src/js/app/site.js"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Utils */\n/* -------------------------------------------------------------------------- */\nconst docReady = fn => {\n // see if DOM is already available\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', fn);\n } else {\n setTimeout(fn, 1);\n }\n};\n\nconst resize = fn => window.addEventListener('resize', fn);\n\nconst isIterableArray = array => Array.isArray(array) && !!array.length;\n\nconst camelize = str => {\n const text = str.replace(/[-_\\s.]+(.)?/g, (match, capture) => {\n if (capture) {\n return capture.toUpperCase();\n }\n return '';\n });\n return `${text.substr(0, 1).toLowerCase()}${text.substr(1)}`;\n};\n\nconst getData = (el, data) => {\n try {\n return JSON.parse(el.dataset[camelize(data)]);\n } catch (e) {\n return el.dataset[camelize(data)];\n }\n};\n\n/* ----------------------------- Colors function ---------------------------- */\n\nconst hexToRgb = hexValue => {\n let hex;\n hexValue.indexOf('#') === 0 ? (hex = hexValue.substring(1)) : (hex = hexValue);\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n hex.replace(shorthandRegex, (m, r, g, b) => r + r + g + g + b + b)\n );\n return result\n ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)]\n : null;\n};\n\nconst rgbaColor = (color = '#fff', alpha = 0.5) => `rgba(${hexToRgb(color)}, ${alpha})`;\n\n/* --------------------------------- Colors --------------------------------- */\n\nconst getColor = (name, dom = document.documentElement) =>\n getComputedStyle(dom).getPropertyValue(`--falcon-${name}`).trim();\n\nconst getColors = dom => ({\n primary: getColor('primary', dom),\n secondary: getColor('secondary', dom),\n success: getColor('success', dom),\n info: getColor('info', dom),\n warning: getColor('warning', dom),\n danger: getColor('danger', dom),\n light: getColor('light', dom),\n dark: getColor('dark', dom),\n white: getColor('white', dom),\n black: getColor('black', dom),\n emphasis: getColor('emphasis-color', dom)\n});\n\nconst getSubtleColors = dom => ({\n primary: getColor('primary-bg-subtle', dom),\n secondary: getColor('secondary-bg-subtle', dom),\n success: getColor('success-bg-subtle', dom),\n info: getColor('info-bg-subtle', dom),\n warning: getColor('warning-bg-subtle', dom),\n danger: getColor('danger-bg-subtle', dom),\n light: getColor('light-bg-subtle', dom),\n dark: getColor('dark-bg-subtle', dom)\n});\n\nconst getGrays = dom => ({\n 100: getColor('gray-100', dom),\n 200: getColor('gray-200', dom),\n 300: getColor('gray-300', dom),\n 400: getColor('gray-400', dom),\n 500: getColor('gray-500', dom),\n 600: getColor('gray-600', dom),\n 700: getColor('gray-700', dom),\n 800: getColor('gray-800', dom),\n 900: getColor('gray-900', dom),\n 1000: getColor('gray-1000', dom),\n 1100: getColor('gray-1100', dom)\n});\n\nconst hasClass = (el, className) => {\n !el && false;\n return el.classList.value.includes(className);\n};\n\nconst addClass = (el, className) => {\n el.classList.add(className);\n};\n\nconst removeClass = (el, className) => {\n el.classList.remove(className);\n};\n\nconst getOffset = el => {\n const rect = el.getBoundingClientRect();\n const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft };\n};\n\nfunction isScrolledIntoView(el) {\n const rect = el.getBoundingClientRect();\n const windowHeight = window.innerHeight || document.documentElement.clientHeight;\n const windowWidth = window.innerWidth || document.documentElement.clientWidth;\n\n const vertInView = rect.top <= windowHeight && rect.top + rect.height >= 0;\n const horInView = rect.left <= windowWidth && rect.left + rect.width >= 0;\n\n return vertInView && horInView;\n}\n\nconst breakpoints = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1540\n};\n\nconst getBreakpoint = el => {\n const classes = el && el.classList.value;\n let breakpoint;\n if (classes) {\n breakpoint =\n breakpoints[\n classes\n .split(' ')\n .filter(cls => cls.includes('navbar-expand-'))\n .pop()\n .split('-')\n .pop()\n ];\n }\n return breakpoint;\n};\n\nconst getSystemTheme = () => (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');\n\nconst isDark = () => (localStorage.getItem('theme') === 'auto' ? getSystemTheme() : localStorage.getItem('theme'));\n/* --------------------------------- Cookie --------------------------------- */\n\nconst setCookie = (name, value, expire) => {\n const expires = new Date();\n expires.setTime(expires.getTime() + expire);\n document.cookie = `${name}=${value};expires=${expires.toUTCString()}`;\n};\n\nconst getCookie = name => {\n const keyValue = document.cookie.match(`(^|;) ?${name}=([^;]*)(;|$)`);\n return keyValue ? keyValue[2] : keyValue;\n};\n\nconst settings = {\n tinymce: {\n theme: 'oxide'\n },\n chart: {\n borderColor: 'rgba(255, 255, 255, 0.8)'\n }\n};\n\n/* -------------------------- Chart Initialization -------------------------- */\n\nconst newChart = (chart, config) => {\n const ctx = chart.getContext('2d');\n return new window.Chart(ctx, config);\n};\n\n/* ---------------------------------- Store --------------------------------- */\n\nconst getItemFromStore = (key, defaultValue, store = localStorage) => {\n try {\n return JSON.parse(store.getItem(key)) || defaultValue;\n } catch {\n return store.getItem(key) || defaultValue;\n }\n};\n\nconst setItemToStore = (key, payload, store = localStorage) => store.setItem(key, payload);\nconst getStoreSpace = (store = localStorage) =>\n parseFloat((escape(encodeURIComponent(JSON.stringify(store))).length / (1024 * 1024)).toFixed(2));\n\n/* get Dates between */\n\nconst getDates = (startDate, endDate, interval = 1000 * 60 * 60 * 24) => {\n const duration = endDate - startDate;\n const steps = duration / interval;\n return Array.from({ length: steps + 1 }, (v, i) => new Date(startDate.valueOf() + interval * i));\n};\n\nconst getPastDates = duration => {\n let days;\n\n switch (duration) {\n case 'week':\n days = 7;\n break;\n case 'month':\n days = 30;\n break;\n case 'year':\n days = 365;\n break;\n\n default:\n days = duration;\n }\n\n const date = new Date();\n const endDate = date;\n const startDate = new Date(new Date().setDate(date.getDate() - (days - 1)));\n return getDates(startDate, endDate);\n};\n\n/* Get Random Number */\nconst getRandomNumber = (min, max) => Math.floor(Math.random() * (max - min) + min);\n\nconst utils = {\n docReady,\n breakpoints,\n resize,\n isIterableArray,\n camelize,\n getData,\n hasClass,\n addClass,\n hexToRgb,\n rgbaColor,\n getColor,\n getColors,\n getSubtleColors,\n getGrays,\n getOffset,\n isScrolledIntoView,\n getBreakpoint,\n setCookie,\n getCookie,\n newChart,\n settings,\n getItemFromStore,\n setItemToStore,\n getStoreSpace,\n getDates,\n getPastDates,\n getRandomNumber,\n removeClass,\n getSystemTheme,\n isDark\n};\n\nexport default utils;\n","import { default as utils } from './utils';\n//import handleNavbarVerticalCollapsed from './navbar-vertical';\n//import detectorInit from './detector';\n//import tooltipInit from './tooltip';\n//import popoverInit from './popover';\n//import navbarTopDropShadow from './navbar-top';\n//import toastInit from './toast';\n//import progressAnimationToggle from './progress';\n//import glightboxInit from './glightbox';\n//import plyrInit from './plyr';\n//import initMap from './googleMap';\n//import dropzoneInit from './dropzone';\n//import choicesInit from './choices';\n//import barChartInit from './charts/chartjs/chart-bar';\n//import formValidationInit from './form-validation';\n//import leafletActiveUserInit from './leaflet-active-user';\nimport { default as countupInit } from './countup';\n//import copyLink from './copy-link';\n//import typedTextInit from './typed';\n//import navbarDarkenOnScroll from './navbar-darken-on-scroll';\n//import tinymceInit from './tinymce';\n//import bulkSelectInit from './bulk-select';\n//import quantityInit from './quantity';\n//import navbarComboInit from './navbar-combo';\n//import listInit from './list';\n//import chatInit from './chat';\n//import kanbanInit from './kanban';\n//import { fullCalendarInit } from './fullcalendar';\n//import appCalendarInit from './calendar/index';\n//import managementCalendarInit from './calendar/management-calendar';\n//import lottieInit from './lottie';\n//import wizardInit from './wizard';\n//import swiperInit from './swiper';\n//import ratingInit from './rater';\n//import searchInit from './search';\n//import cookieNoticeInit from './cookie-notice';\n//import themeControl from './theme-control';\n//import dropdownOnHover from './dropdown-on-hover';\n//import productShareDoughnutInit from './charts/chartjs/product-share-doughnut';\n//import chartHalfDoughnutInit from './charts/chartjs/chart-half-doughnut';\n//import totalSalesEcommerce from './charts/echarts/total-sales-ecommerce';\n//import avgEnrollmentRateInit from './charts/echarts/average-enrollment-rate';\n//import salesByPosLocationInit from './charts/echarts/sales-by-pos-location';\n//import returningCustomerRateInit from './charts/echarts/returning-customer-rate';\n//import topProductsInit from './charts/echarts/top-products';\n//import courseEnrollmentsInit from './charts/echarts/course-enrollments';\n//import marketShareEcommerceInit from './charts/echarts/market-share-ecommerce';\n//import totalSalesInit from './charts/echarts/total-sales';\n//import weeklySalesInit from './charts/echarts/weekly-sales';\n//import marketShareInit from './charts/echarts/market-share';\n//import weeklyGoalsInit from './charts/echarts/weekly-goals-lms';\n//import totalOrderInit from './charts/echarts/total-order';\n//import candleChartInit from './charts/echarts/candle-chart';\n//import grossRevenueChartInit from './charts/echarts/gross-revenue';\n//import browsedCoursesInit from './charts/echarts/browsed-courses';\n//import courseStatusInit from './charts/echarts/course-status';\n//import assignmentScoresInit from './charts/echarts/assignment-scores';\n//import scrollbarInit from './scrollbar';\n//import iconCopiedInit from './icons';\n//import reportForThisWeekInit from './charts/echarts/report-for-this-week';\n//import basicEchartsInit from './charts/echarts/basic-echarts';\n//import trendingKeywordsInit from './charts/d3/trending-keywords';\n//import D3PackedBubbleInit from './charts/d3/d3-packed-bubble';\n//import chartScatter from './charts/chartjs/chart-scatter';\n//import chartDoughnut from './charts/chartjs/chart-doughnut';\n//import chartPie from './charts/chartjs/chart-pie';\n//import chartPolar from './charts/chartjs/chart-polar';\n//import chartRadar from './charts/chartjs/chart-radar';\n//import chartCombo from './charts/chartjs/chart-combo';\n//import chartBubble from './charts/chartjs/chart-bubble';\n//import dropdownMenuInit from './dropdown-menu';\n//import audienceChartInit from './charts/echarts/audience';\n//import sessionByBrowserChartInit from './charts/echarts/session-by-browser';\n//import sessionByCountryChartInit from './charts/echarts/session-by-country';\n//import activeUsersChartReportInit from './charts/echarts/active-users-report';\n//import trafficChannelChartInit from './charts/echarts/traffic-channels';\n//import bounceRateChartInit from './charts/echarts/bounce-rate';\n//import usersByTimeChartInit from './charts/echarts/users-by-time';\n//import sessionByCountryMapInit from './charts/echarts/session-by-country-map';\n//import mostLeadsInit from './charts/echarts/most-leads';\n//import closedVsGoalInit from './charts/echarts/closed-vs-goal';\n//import leadConversionInit from './charts/echarts/lead-conversion';\n//import dealStorageFunnelInit from './charts/echarts/deal-storage-funnel';\n//import revenueChartInit from './charts/echarts/crm-revenue';\n//import locationBySessionInit from './charts/echarts/location-by-session-crm';\n//import realTimeUsersChartInit from './charts/echarts/real-time-users';\n//import linePaymentChartInit from './charts/echarts/line-payment';\nimport { default as chartLine } from './charts/chartjs/chart-line';\n//import bandwidthSavedInit from './charts/echarts/bandwidth-saved';\n//import marketingExpensesInit from './charts/echarts/marketing-expenses';\n//import treeviewInit from './treeview';\n//import bottomBarInit from './bottom-bar';\n//import scrollInit from './scroll';\n//import echartsUnresolvedTicketsInit from './charts/echarts/unresolved-tickets';\n//import echartsNumberOfTicketsInit from './charts/echarts/number-of-tickets';\n//import echartsCustomerSatisfactionInit from './charts/echarts/customer-satisfaction';\n//import echartsDistributionOfPerformanceInit from './charts/echarts/distribution-of-performance';\n//import echartsSatisfactionSurveyInit from './charts/echarts/satisfaction-survey';\n//import echartsReceivedTicketsInit from './charts/echarts/received-tickets';\n//import topCustomersChartInit from './charts/echarts/top-customers';\n//import ticketVolumeChartInit from './charts/echarts/ticket-volume';\n//import echartTicketPriority from './charts/echarts/ticket-priority';\n//import hideOnCollapseInit from './hide-on-collapse';\n//import userByLocationInit from './charts/echarts/user-by-location-lms';\n//import dataTablesInit from './datatables';\n//import select2Init from './select2';\n//import inputmaskInit from './inputmask';\n//import unresolvedTicketsTabInit from './unresolved-tickets-tab';\n//import emojiMartInit from './emoji-mart';\n//import nouisliderInit from './nouislider';\n//import advanceAjaxTableInit from './advance-ajax-table';\n//import sortableInit from './sortable';\n//import flatpickrIntit from './flatpickr';\n\n/* -------------------------------------------------------------------------- */\n/* Theme Initialization */\n/* -------------------------------------------------------------------------- */\n//docReady(detectorInit);\n//docReady(handleNavbarVerticalCollapsed);\n//docReady(totalOrderInit);\n//docReady(weeklySalesInit);\n//docReady(marketShareInit);\n//docReady(totalSalesInit);\n//docReady(topProductsInit);\n//docReady(navbarTopDropShadow);\n//docReady(tooltipInit);\n//docReady(popoverInit);\n//docReady(toastInit);\n//docReady(progressAnimationToggle);\n//docReady(glightboxInit);\n//docReady(plyrInit);\n//docReady(initMap);\n//docReady(dropzoneInit);\n//docReady(choicesInit);\n//docReady(formValidationInit);\n//docReady(barChartInit);\n//docReady(leafletActiveUserInit);\nutils.docReady(countupInit);\n//docReady(copyLink);\n//docReady(navbarDarkenOnScroll);\n//docReady(typedTextInit);\n//docReady(tinymceInit);\n//docReady(chatInit);\n//docReady(quantityInit);\n//docReady(navbarComboInit);\n//docReady(swiperInit);\n//docReady(ratingInit);\n//docReady(kanbanInit);\n//docReady(fullCalendarInit);\n//docReady(appCalendarInit);\n//docReady(managementCalendarInit);\n//docReady(lottieInit);\n//docReady(wizardInit);\n//docReady(searchInit);\n//docReady(cookieNoticeInit);\n//docReady(themeControl);\n//docReady(dropdownOnHover);\n//docReady(marketShareEcommerceInit);\n//docReady(productShareDoughnutInit);\n//docReady(totalSalesEcommerce);\n//docReady(avgEnrollmentRateInit);\n//docReady(bandwidthSavedInit);\n//docReady(salesByPosLocationInit);\n//docReady(returningCustomerRateInit);\n//docReady(candleChartInit);\n//docReady(grossRevenueChartInit);\n//docReady(scrollbarInit);\n//docReady(iconCopiedInit);\n//docReady(reportForThisWeekInit);\n//docReady(basicEchartsInit);\n//docReady(chartScatter);\n//docReady(chartDoughnut);\n//docReady(chartPie);\n//docReady(chartPolar);\n//docReady(chartRadar);\n//docReady(chartCombo);\n//docReady(dropdownMenuInit);\n//docReady(audienceChartInit);\n//docReady(sessionByBrowserChartInit);\n//docReady(sessionByCountryChartInit);\n//docReady(activeUsersChartReportInit);\n//docReady(trafficChannelChartInit);\n//docReady(bounceRateChartInit);\n//docReady(usersByTimeChartInit);\n//docReady(sessionByCountryMapInit);\n//docReady(mostLeadsInit);\n//docReady(closedVsGoalInit);\n//docReady(leadConversionInit);\n//docReady(dealStorageFunnelInit);\n//docReady(revenueChartInit);\n//docReady(locationBySessionInit);\n//docReady(realTimeUsersChartInit);\n//docReady(linePaymentChartInit);\n//docReady(chartBubble);\nutils.docReady(chartLine);\n//docReady(treeviewInit);\n//docReady(scrollInit);\n//docReady(echartsUnresolvedTicketsInit);\n//docReady(echartsNumberOfTicketsInit);\n//docReady(echartsCustomerSatisfactionInit);\n//docReady(echartsDistributionOfPerformanceInit);\n//docReady(echartsSatisfactionSurveyInit);\n//docReady(echartsReceivedTicketsInit);\n//docReady(topCustomersChartInit);\n//docReady(ticketVolumeChartInit);\n//docReady(echartTicketPriority);\n//docReady(userByLocationInit);\n//docReady(courseEnrollmentsInit);\n//docReady(weeklyGoalsInit);\n//docReady(assignmentScoresInit);\n//docReady(browsedCoursesInit);\n//docReady(courseStatusInit);\n//docReady(bottomBarInit);\n//docReady(marketingExpensesInit);\n//docReady(chartHalfDoughnutInit);\n//docReady(trendingKeywordsInit);\n//docReady(D3PackedBubbleInit);\n//docReady(dataTablesInit);\n//docReady(select2Init);\n//docReady(hideOnCollapseInit);\n//docReady(unresolvedTicketsTabInit);\n//docReady(inputmaskInit);\n//docReady(emojiMartInit);\n//docReady(nouisliderInit);\n//docReady(bulkSelectInit);\n//docReady(advanceAjaxTableInit);\n//docReady(listInit);\n//docReady(sortableInit);\n//docReady(flatpickrIntit);\n","import { default as utils } from './utils';\n\n/* -------------------------------------------------------------------------- */\n/* Count Up */\n/* -------------------------------------------------------------------------- */\n\nconst countupInit = () => {\n if (window.CountUp) {\n const countups = document.querySelectorAll('[data-countup]');\n countups.forEach(node => {\n const { endValue, ...options } = utils.getData(node, 'countup');\n const countUp = new window.CountUp(node, endValue, {\n duration: 5,\n ...options\n });\n if (!countUp.error) {\n countUp.start();\n } else {\n console.error(countUp.error);\n }\n });\n }\n};\n\nexport default countupInit;\n","import { default as utils } from '../../utils';\nimport { default as chartJsUtils } from './chartjs-utils';\n\n/* -------------------------------------------------------------------------- */\n/* Chart Line */\n/* -------------------------------------------------------------------------- */\nconst chartLine = () => {\n const line = document.getElementById('chartjs-line-chart');\n\n const getOptions = () => ({\n type: 'bar',\n data: {\n labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n datasets: [\n {\n type: 'line',\n label: 'Dataset 1',\n borderColor: utils.getColor('primary'),\n borderWidth: 2,\n fill: false,\n data: [55, 80, 60, 22, 50, 40, 90],\n tension: 0.3\n }\n ]\n },\n options: {\n plugins: {\n tooltip: chartJsUtils.chartJsDefaultTooltip(),\n legend: {\n labels: {\n color: utils.getGrays()['500']\n }\n }\n },\n scales: {\n x: {\n ticks: {\n color: utils.getGrays()['500']\n },\n grid: {\n color: utils.getGrays()['300'],\n drawBorder: false\n }\n },\n y: {\n ticks: {\n color: utils.getGrays()['500']\n },\n grid: {\n color: utils.getGrays()['300'],\n drawBorder: false\n }\n }\n }\n }\n });\n\n chartJsUtils.chartJsInit(line, getOptions);\n};\n\nexport default chartLine;\n","import utils from '../../utils';\n\n/* -------------------------------------------------------------------------- */\n/* ChartJs Initialization */\n/* -------------------------------------------------------------------------- */\n\nconst chartJsInit = (chartEl, config) => {\n if (!chartEl) return;\n\n const ctx = chartEl.getContext('2d');\n let chart = new window.Chart(ctx, config());\n\n const themeController = document.body;\n themeController.addEventListener('clickControl', ({ detail: { control } }) => {\n if (control === 'theme') {\n chart.destroy();\n chart = new window.Chart(ctx, config());\n }\n return null;\n });\n};\n\nconst chartJsDefaultTooltip = () => ({\n backgroundColor: utils.getGrays()['100'],\n borderColor: utils.getGrays()['300'],\n borderWidth: 1,\n titleColor: utils.getColors().emphasis,\n callbacks: {\n labelTextColor() {\n return utils.getColors().emphasis;\n }\n }\n});\n\nconst getBubbleDataset = (count, rmin, rmax, min, max) => {\n const arr = Array.from(Array(count).keys());\n return arr.map(() => ({\n x: utils.getRandomNumber(min, max),\n y: utils.getRandomNumber(min, max),\n r: utils.getRandomNumber(rmin, rmax)\n }));\n};\n\nexport default { chartJsDefaultTooltip, chartJsInit, getBubbleDataset };\n","app.cw.telerik = app.cw.telerik || {}; // telerik namespace\r\napp.cw.telerik.tabStrip = app.cw.telerik.tabStrip || {};\r\n\r\napp.cw.telerik.tabStrip = {\r\n onSelect: function onSelect(e) {\r\n // load grid inside tab only when tab is clicked\r\n const gridId = $(e.contentElement).find('[data-role=\"grid\"]').prop('id');\r\n const $grid = $('#' + gridId).data('kendoGrid');\r\n if ($grid)\r\n $grid.dataSource.read();\r\n }\r\n}","var app = app || {};\napp.cw = app.cw || {};\napp.cw.session = app.cw.session || {};\n\n(function () {\n\t$(function () {\n\t\tif (!app.cw.session.inIframe()) { // only run if page is not in iframe\n\t\t\t// don't run session expiration scripts on certain pages\n\t\t\tvar pathname = window.location.pathname;\n\n\t\t\tif (pathname === '/Identity/Account/Login')\n\t\t\t\treturn;\n\t\t\tif (pathname === '/Identity/Account/Logout')\n\t\t\t\treturn;\n\t\t\tif (pathname === '/Identity/Account/ForgotPasswordConfirmation')\n\t\t\t\treturn;\n\t\t\tif (pathname === '/Identity/Account/ForgotPassword')\n\t\t\t\treturn;\n\t\t\t//if (location.hostname === 'localhost')\n\t\t\t//\treturn;\n\n\t\t\t// Don't run session expiration scripts if modal doesn't exist\n\t\t\tif ($('#warningMessage').length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Initialize session expiration warning\n\t\t\tapp.cw.session.sessExpirationWarningInit();\n\t\t}\n\n\t});\n\n\tapp.cw.session = {\n\t\t// Check if page is in iframe\n\t\tinIframe: function () {\n\t\t\ttry {\n\t\t\t\treturn window.self !== window.top;\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\n\t\t// ----------------------------- Session expiration warning ----------------------------- //\n\t\tsessExpirationWarningInit: function () {\n\t\t\t// Share this session access with all other open tabs/windows for the same session\n\t\t\tsessSetLastActivity();\n\n\t\t\t// Timeout settings\n\t\t\tvar sess_pollInterval = 10000;\t\t\t\t\t\t\t\t\t// How frequently to check for session expiration in milliseconds\n\t\t\tvar sess_warningMinutesBeforeExpiration = 5;\t\t// How many minutes before session expiration the warning appears\n\t\t\tvar sess_bufferSeconds = 90;\t\t\t\t\t\t\t\t\t\t// How many seconds before the anticipated server session expiration the UI assumes server exiration\n\n\t\t\t// Do not change these\n\t\t\tvar sess_expirationMinutes = $.trim($('#ix_expiration').text()); //How many minutes the session is valid for\n\n\t\t\t//// Settings for debugging\n\t\t\t//sess_expirationMinutes = 2;\n\t\t\t//sess_warningMinutesBeforeExpiration = 1;\n\t\t\t//sess_bufferSeconds = 0;\n\n\t\t\tredirected = false;\n\n\t\t\t// Don't run session expiration script if sess_expirationMinutes is not set (iframes)\n\t\t\tif (sess_expirationMinutes === \"\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar sess_expirationSeconds = sess_expirationMinutes * 60 - sess_bufferSeconds;\n\t\t\tvar sess_warningSeconds = sess_expirationSeconds - sess_warningMinutesBeforeExpiration * 60;\n\t\t\tvar sess_keepaliveSeconds = 60;\n\n\t\t\tvar sess_intervalID;\n\t\t\tvar sess_countDownTimerId;\n\t\t\tvar sess_WarningVisible = false;\n\n\t\t\tsessSetInterval();\n\t\t\t//console.log('init');\n\t\t\t// any clicks or keydown on the page will reset the session expiration\n\t\t\t$('body').on('click', function (e) {\n\t\t\t\tif (!$(e.target).hasClass('ix_warningmessage_btn')) {\n\t\t\t\t\tsessionKeepAlive(false);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$(document).on('keypress.session', function (ed, e) {\n\t\t\t\t// console.log('keypress.session event');\n\t\t\t\tsessionKeepAlive(false);\n\t\t\t});\n\n\t\t\t// Gets the last activity from any open tabs/windows for the session\n\t\t\tfunction sessGetLastActivity() {\n\t\t\t\tvar lastAccess = Cookies.get(\"CwLastAccess\");\n\n\t\t\t\treturn moment(lastAccess);\n\t\t\t}\n\n\t\t\t// Share this session access with all other open tabs/windows for the same session\n\t\t\tfunction sessSetLastActivity() {\n\t\t\t\tCookies.set(\"CwLastAccess\", moment().format(), { path: '/', secure: location.protocol === 'https:' });\n\t\t\t\t// console.log(\"set cookie last access \" + Cookies.get(\"CwLastAccess\"));\n\t\t\t}\n\n\t\t\t// Share this session access with all other open tabs/windows for the same session\n\t\t\tfunction sessSetLastActivityExpired() {\n\t\t\t\tCookies.set(\"CwLastAccess\", moment(\"2000-01-01\").format(), { path: '/', secure: location.protocol === 'https:' });\n\t\t\t\t// console.log(\"set cookie expired \" + Cookies.get(\"CwLastAccess\"));\n\t\t\t}\n\n\t\t\t// Set up polling function, run every sess_pollInterval\n\t\t\tfunction sessSetInterval() {\n\t\t\t\tsess_intervalID = setInterval(sessInterval, sess_pollInterval);\n\t\t\t}\n\n\t\t\tfunction sessLogOut() {\n\t\t\t\tconsole.log(\"log off clicked!\");\n\t\t\t\tsessSetLastActivityExpired();\n\t\t\t\t//window.location.href = '/Identity/Account/Logout';\n\t\t\t}\n\n\t\t\tfunction sessTimedOut() {\n\t\t\t\tif (redirected) {\n\t\t\t\t\t// console.log(\"exipred - already redirected\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tclearInterval(sess_intervalID);\n\t\t\t\tclearInterval(sess_countDownTimerId);\n\n\t\t\t\tconst token = $('input[name=\"__RequestVerificationToken\"]').val();\n\n\t\t\t\tdocument.body.innerHTML = \"Session has expired.\";\n\t\t\t\tredirected = true;\n\t\t\t\t//window.location.href = '/Identity/Account/Logout?Reason=TimedOut×tamp=' + moment().valueOf();\n\n\t\t\t\t$.ajax({\n\t\t\t\t\ttype: 'POST',\n\t\t\t\t\turl: '/Identity/Account/Logout',\n\t\t\t\t\theaders: { 'RequestVerificationToken': token },\n\t\t\t\t\tcache: false,\n\t\t\t\t\tdata: { reason: 'TimedOut' },\n\t\t\t\t\tdataType: 'json'\n\t\t\t\t}).done(function (obj) {\n\t\t\t\t\twindow.location.href = '/Identity/Account' + obj.RedirectUrl + '?Reason=TimedOut';\n\t\t\t\t}).fail(function (err) {\n\t\t\t\t\t//console.log(err);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction sessionKeepAlive(force) {\n\t\t\t\tvar lastAccess = sessGetLastActivity();\n\t\t\t\tvar diffSeconds = moment().diff(lastAccess, \"seconds\");\n\t\t\t\t// console.log(\"------------------------------\");\n\t\t\t\t// console.log(\"keepalive diff seconds: \" + diffSeconds);\n\n\t\t\t\t// On UI activity: Update the shared cookie and ping the server every minute\n\t\t\t\t// As we do not know about the last AJAX call sent to the server we will send\n\t\t\t\t// a ping on UI activity every sess_keepaliveSeconds\n\t\t\t\tif (force || diffSeconds >= sess_keepaliveSeconds) {\n\t\t\t\t\tsessSetLastActivity();\n\t\t\t\t\tserverKeepAlive();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction serverKeepAlive() {\n\t\t\t\t// console.log(\"server keepalive sent\");\n\t\t\t\t$.ajax({\n\t\t\t\t\ttype: \"POST\",\n\t\t\t\t\turl: \"/Home/KeepAlive\",\n\t\t\t\t\tcache: false,\n\t\t\t\t\tdataType: \"json\"\n\t\t\t\t}).done(function (msg) {\n\t\t\t\t\t// console.log('keep alive OK: ' + msg);\n\t\t\t\t}).fail(function (err) {\n\t\t\t\t\t// console.log('keep alive failed: ');\n\t\t\t\t\t// console.log(err);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction sessIsWarning() {\n\t\t\t\tvar lastAccess = sessGetLastActivity();\n\t\t\t\tvar warningOn = moment(lastAccess);\n\t\t\t\twarningOn.add(sess_warningSeconds, \"seconds\");\n\t\t\t\tvar secondsUntilWarning = warningOn.diff(moment(), \"seconds\");\n\n\t\t\t\tvar expireOn = moment(lastAccess);\n\t\t\t\texpireOn.add(sess_expirationSeconds, \"seconds\");\n\t\t\t\tvar secondsUntilExpiration = expireOn.diff(moment(), \"seconds\");\n\n\t\t\t\t// console.log(\"--------------------------------\");\n\t\t\t\t// console.log(\"now: \" + moment().format(\"hh:mm:ss\"));\n\t\t\t\t// console.log(\"last access: \" + moment(lastAccess).format(\"hh:mm:ss\") + \", \" + moment().diff(lastAccess, \"seconds\") + \" seconds ago\");\n\t\t\t\t// console.log(\"warningOn: \" + moment(warningOn).format(\"hh:mm:ss\") + \" in \" + secondsUntilWarning);\n\t\t\t\t// console.log(\"expirationOn: \" + moment(expireOn).format(\"hh:mm:ss\") + \" in \" + secondsUntilExpiration);\n\n\t\t\t\treturn (secondsUntilWarning <= 0);\n\t\t\t}\n\n\t\t\tfunction sessSecondsUntilExiration() {\n\t\t\t\tvar lastAccess = sessGetLastActivity();\n\t\t\t\tvar expiresOn = moment(lastAccess);\n\t\t\t\texpiresOn.add(sess_expirationSeconds, \"seconds\");\n\t\t\t\tvar secondsUntilTimeout = expiresOn.diff(moment(), \"seconds\");\n\t\t\t\t// console.log(\"seconds until timeout: \" + secondsUntilTimeout);\n\n\t\t\t\treturn secondsUntilTimeout;\n\t\t\t}\n\n\t\t\t// Show warning message\n\t\t\tfunction sessShowWarningMessage() {\n\t\t\t\t$('#warningMessage').modal({\n\t\t\t\t\tshow: true,\n\t\t\t\t\tbackdrop: true,\n\t\t\t\t\tkeyboard: false\n\t\t\t\t});\n\t\t\t\tsess_WarningVisible = true;\n\t\t\t\t// console.log(\"sessShowWarningMessage\");\n\t\t\t}\n\n\t\t\tfunction OneSecondContdown() {\n\t\t\t\tsessShowWarningMessage();\n\n\t\t\t\tvar secondsLeft = sessSecondsUntilExiration();\n\n\t\t\t\t// Update countdown\n\t\t\t\t$(\"#countTime\").html(moment.duration(Math.max(secondsLeft, 1), \"seconds\").humanize(true));\n\t\t\t\tvar lastAccess = sessGetLastActivity();\n\t\t\t\t$(\"#lastAccess\").html(moment(lastAccess).format(\"hh:mm:ss\") + \", \" + moment().diff(lastAccess, \"seconds\") + \" seconds ago\");\n\n\t\t\t\t// console.log(\"Seconds left: \" + secondsLeft);\n\t\t\t\tif (!sessIsWarning())\n\t\t\t\t\tsessHideWarningMessage();\n\t\t\t\tif (secondsLeft <= 0)\n\t\t\t\t\tsessTimedOut();\n\t\t\t}\n\n\t\t\t// Hide the warning message\n\t\t\tfunction sessHideWarningMessage() {\n\t\t\t\t// Stop countdown timer\n\t\t\t\tclearInterval(sess_countDownTimerId);\n\t\t\t\t// console.log(\"Stop countdown\");\n\n\t\t\t\t$('#warningMessage').modal('hide');\n\t\t\t\tsess_WarningVisible = false;\n\t\t\t}\n\n\t\t\t// Show warning if within warn interval\n\t\t\tfunction sessInterval() {\n\t\t\t\tif (sessIsWarning()) {\n\t\t\t\t\t// Don't do anything if the warning is already active\n\t\t\t\t\tif (sess_WarningVisible)\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Make warning modal visible\n\t\t\t\t\tsessShowWarningMessage();\n\n\t\t\t\t\t// Start Countdown\n\t\t\t\t\tsess_countDownTimerId = setInterval(OneSecondContdown, 1000); //1000ms. = 1sec.\n\n\t\t\t\t\t// Handle log off button\n\t\t\t\t\t$('#btnLogoff').click(function () {\n\t\t\t\t\t\tsessLogOut();\n\t\t\t\t\t\t$('#cw_ajax_log_off_form').trigger('submit');\n\t\t\t\t\t});\n\n\t\t\t\t\t// Handle resume session button\n\t\t\t\t\t$('#btnResumeSession').click(function () {\n\t\t\t\t\t\tsessHideWarningMessage();\n\t\t\t\t\t\tsessionKeepAlive(true);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t};\n})();\n","var app = app || {};\r\nwindow.app = app; // expose for inline javascripts (kendo server wrappers)\r\napp.cw = app.cw || {};\r\napp.cw.common = app.cw.common || {};\r\n\r\nif (!String.prototype.includes) {\r\n String.prototype.includes = function () {\r\n 'use strict';\r\n return String.prototype.indexOf.apply(this, arguments) !== -1;\r\n };\r\n}\r\n\r\n$.ajaxSetup({\r\n cache: false,\r\n traditional: true\r\n});\r\n$.ajaxPrefilter(function (options, originalOptions) {\r\n const isPostMethod = options.type.toLowerCase() === 'post' ? true : false;\r\n const isJsonContent = options.contentType.toLowerCase().indexOf('application/json') !== -1 ? true : false;\r\n if (isPostMethod && !isJsonContent) {\r\n if (!originalOptions.data || (typeof originalOptions.data !== 'string' && typeof originalOptions.data !== 'object')) {\r\n originalOptions.data = {};\r\n }\r\n let hasToken = false;\r\n // deparam method converts foo=bar&hello=hello+world to {'foo':'bar','hello':'hello world'}\r\n const postedParams = typeof originalOptions.data === 'string' ? $.deparam(originalOptions.data) : originalOptions.data;\r\n $.each(postedParams, function (k, v) {\r\n if ('__RequestVerificationToken' === k) {\r\n hasToken = true;\r\n return false; // break\r\n }\r\n });\r\n if (!hasToken) {\r\n var $token = $('#__AjaxAntiForgeryForm input[name=\"__RequestVerificationToken\"]');\r\n if ($token.length) {\r\n if (typeof originalOptions.data === 'string') {\r\n options.data = originalOptions.data + \"&\" + '__RequestVerificationToken=' + $token.val();\r\n }\r\n else {\r\n options.data = $.param($.extend(originalOptions.data, { __RequestVerificationToken: $token.val() }), true);\r\n }\r\n }\r\n }\r\n }\r\n});\r\n\r\n$(function () {\r\n // ----------------------------- Initialize Bootstrap Tooltip ----------------------------- //\r\n var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"tooltip\"]'));\r\n var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {\r\n return new bootstrap.Tooltip(tooltipTriggerEl);\r\n });\r\n\r\n const popoverTriggerList = document.querySelectorAll('[data-bs-toggle=\"popover\"]');\r\n const popoverList = [...popoverTriggerList].map(function (popoverTriggerEl) {\r\n return new bootstrap.Popover(popoverTriggerEl, { html: true, trigger: 'hover click' });\r\n });\r\n\r\n $(document.body).on('click', '.cw_ajax_print_btn', function () {\r\n window.print();\r\n });\r\n\r\n $(document.body).on('click', '.cw_ajax_contact_view_map_link', function (e) {\r\n e.preventDefault();\r\n\r\n const url = $(e.target).data('url');\r\n window.open(url, 'mapswindow');\r\n });\r\n\r\n $(document.body).on('click', '.cw_ajax_account_holding_btn', function (e) {\r\n e.preventDefault();\r\n const accountId = $(e.currentTarget).data('account-id');\r\n const accountNumber = $(e.currentTarget).data('account-number');\r\n app.cw.common.PopupModal.show('Holdings for ' + accountNumber,\r\n '/Account/LoadHoldingPartialByAccount',\r\n {\r\n AccountId: accountId,\r\n ...app.cw.common.Kendo.forgeryToken()\r\n });\r\n });\r\n\r\n $(document.body).on('click', '.cw_ajax_account_retirement_data_btn', function (e) {\r\n e.preventDefault();\r\n const accountId = $(e.currentTarget).data('account-id');\r\n const accountNumber = $(e.currentTarget).data('account-number');\r\n app.cw.common.PopupModal.show('Retirement Data for ' + accountNumber,\r\n '/Account/LoadRetirementDataPartialByAccount',\r\n {\r\n AccountId: accountId,\r\n AccountNumber: accountNumber,\r\n ...app.cw.common.Kendo.forgeryToken()\r\n });\r\n });\r\n\r\n $(document.body).on('click', '.cw_ajax_holding_list_view_clear_btn', function (e) {\r\n e.preventDefault();\r\n app.cw.History.AccountHoldingListView_clearValue();\r\n });\r\n\r\n // Logging form loading indicator\r\n var $loginForm = $('#cw_ajax_login_form');\r\n var $loginBtn = $('#cw_ajax_login_btn');\r\n var loadingText = ' Logging In...';\r\n\r\n $loginForm.on('submit', function (e) {\r\n // show loading indicator\r\n if ($loginBtn.html() !== loadingText) {\r\n $loginBtn.html(loadingText);\r\n }\r\n });\r\n\r\n if (window.location.pathname.includes('/Account/') || window.location.pathname.includes('/Manage/'))\r\n return;\r\n\r\n // Draggable Modal\r\n // https://stackoverflow.com/questions/12571922/make-bootstrap-twitter-dialog-modal-draggable\r\n $(document.body).on('mousedown', '.cw_ajax_modal_header', function (mousedownEvt) {\r\n const $draggable = $(this);\r\n const x = mousedownEvt.pageX - $draggable.offset().left,\r\n y = mousedownEvt.pageY - $draggable.offset().top;\r\n\r\n $(document.body).on('mousemove.draggable', function (mousemoveEvt) {\r\n $draggable.closest('.cw_ajax_modal_content').offset({\r\n 'left': mousemoveEvt.pageX - x,\r\n 'top': mousemoveEvt.pageY - y\r\n });\r\n });\r\n\r\n $(document.body).one('mouseup', function () {\r\n $(document.body).off('mousemove.draggable');\r\n });\r\n\r\n $draggable.closest('.modal').one('bs.modal.hide', function () {\r\n $(document.body).off('mousemove.draggable');\r\n });\r\n });\r\n\r\n\r\n // NOTIFICATION DISMISSED WRITE TO DB.\r\n $('[data-user-hide]').on('click', function (e) {\r\n var notificationBanner = $(this).closest(\".\" + $(this).attr(\"data-user-hide\"));\r\n var notificationId = $(this).closest(\".\" + $(this).attr(\"data-user-hide\")).attr(\"data-sys-notification-id\");\r\n const $dataDiv = $('#ix_ajax_json_data_div');\r\n\r\n $.ajax({\r\n url: $dataDiv.data('dismiss-system-notification-url'),\r\n type: 'POST',\r\n data: { notificationId: notificationId }\r\n }).done(function (data) {\r\n // Hides alert\r\n notificationBanner.addClass('d-none');\r\n }).fail(function () {\r\n //Display Error\r\n notificationBanner.addClass('d-none');\r\n });\r\n });\r\n\r\n // NOTIFICATION POPUP\r\n // Only show modal once per session.\r\n if (!sessionStorage.getItem('shown-modal')) {\r\n $(\"#PopupModal\").modal('show');\r\n var isVisiable = $('#PopupModal').is(':visible');\r\n // Make sure modal is shown before tagging it as shown for the session.\r\n if (isVisiable == true) {\r\n sessionStorage.setItem('shown-modal', 'true');\r\n }\r\n }\r\n $('#ix_db_modal_close_btn').click(function (e) {\r\n $('#PopupModal').modal('hide');\r\n });\r\n});\r\n\r\napp.cw.common.Kendo = {\r\n forgeryToken: function forgeryToken() {\r\n return kendo.antiForgeryTokens();\r\n }\r\n};\r\n\r\n//*********************************************************************Common*******************************************************************************\r\napp.cw.common.LoadingSpinner = {\r\n show: function showLoadingSpinner(message) {\r\n if (!message) {\r\n message = '';\r\n }\r\n\r\n // bootstrap modal markup in _LayoutBase.cshtml\r\n var $el = $('#cw_ajax_common_loading_spinner');\r\n const $modal = new bootstrap.Modal($el, {\r\n backdrop: 'static',\r\n keyboard: false\r\n });\r\n\r\n if (!$el.length) {\r\n return false;\r\n }\r\n else if ($el.hasClass('show')) {\r\n // modal already initialized\r\n // prevent multiple backdrops if the loading modal is already showing\r\n if ($('.modal-backdrop').length > 1 && $el.hasClass('show'))\r\n $('.modal-backdrop').first().remove();\r\n }\r\n\r\n $(window).on('keydown', function (e) {\r\n try {\r\n var key = e.which || e.keyCode || e.charCode;\r\n if (key === 27) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n }\r\n catch (err) { };\r\n });\r\n\r\n var $msgEl = $el.find('#cw_ajax_common_loading_spinner_msg_wrap');\r\n var $msg = $('#cw_ajax_common_loading_spinner_msg');\r\n if ($msg.length) {\r\n $msg.text(message);\r\n }\r\n else {\r\n $msgEl.append('' + message + '');\r\n }\r\n\r\n $modal.show();\r\n },\r\n hide: function hideLoadingSpinner() {\r\n const $el = document.querySelector('#cw_ajax_common_loading_spinner');\r\n const $modal = bootstrap.Modal.getOrCreateInstance($el);\r\n $modal.hide();\r\n // workaround for backdrop not being removed\r\n // https://stackoverflow.com/questions/69424157/bootstrap-5-hide-modal-does-not-remove-backdrop\r\n $('.modal-backdrop').hide();\r\n }\r\n};\r\n\r\n//**************************************************************************************************************\r\n\r\napp.cw.common.PopupModal = {\r\n show: function (title, url, data) {\r\n const option = {\r\n title: typeof title !== 'undefined' ? title : '',\r\n url: typeof url !== 'undefined' ? url : '',\r\n data: typeof data !== 'undefined' ? data : ''\r\n };\r\n\r\n const selector = '#cw_ajax_layoutbase_common_popup_modal';\r\n const $existingEl = $(selector);\r\n if ($existingEl.length) {\r\n $existingEl.remove();\r\n }\r\n\r\n const markup =\r\n '