{"version":3,"file":"js/app.47e42ed4.js","mappings":"sFAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MACnG,EACIG,EAAkB,G,uDCQtB,MAAMC,GAAeC,EAAAA,EAAAA,IAAU,gBACzBC,GAAUD,EAAAA,EAAAA,IAAU,MAG1B,IAAqBE,EAArB,cAAgDC,EAAAA,GAY9CC,mBAAmBC,GACjB,IAAIC,EAAW,CACfA,cAAwB,GACxB,MAAMC,EAAO,CACXC,UAAWH,EAAKI,SAAW,EAC3BJ,KAAMC,EACNI,OAAQL,EAAKM,UAEHC,EAAAA,EAAAA,iBAAgCL,GAM1Cb,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,+DACjBC,KAAM,YAPRtB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,kDACjBC,KAAM,SAQZ,CAEAC,SAASC,GACPxB,KAAKyB,WAAWF,SAASC,EAC3B,CAEAE,iBAAiBF,GACfxB,KAAKyB,WAAWC,iBAAiBF,EACnC,CAEAG,WAAWH,GAETxB,KAAK4B,WAAW,CACdR,KAAM,GAAGpB,KAAKqB,GAAG,6DAChBQ,MAAMC,IACFA,IAKDN,EAAKP,KAAOjB,KAAK+B,gBACnB/B,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,2DACjBC,KAAM,UAGRJ,EAAAA,EAAAA,iBAAgC,CAC9BD,GAAIO,EAAKP,GACTH,UAAWU,EAAKT,U,GAIxB,IA7DAiB,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,uCAIpBD,EAAAA,EAAAA,IAAA,CADCzB,EAAQ2B,QAAM,kCAIfF,EAAAA,EAAAA,IAAA,CADCzB,EAAQ2B,QAAM,oCAGIF,EAAAA,EAAAA,IAAA,EAAlBG,EAAAA,EAAAA,IAAI,eAAa,iCAVC3B,GAAkBwB,EAAAA,EAAAA,IAAA,EADtCI,EAAAA,EAAAA,IAAU,CAAEC,WAAY,CAAEC,WAAUA,EAAAA,MAChB9B,G,QCd+R,I,UCOhT+B,GAAY,OACd,EACAzC,EACAM,GACA,EACA,KACA,KACA,MAIF,EAAemC,EAAiB,O,sHClB2G,W,IAAoB,OAACC,EAAK,EAAC,SAAQzC,EAAI0C,MAAO,Y,OAACC,EAAAA,EAAAA,EAAS,C,YAAoBD,S,MAAW,CAACE,YAAW,SAAU,MAAK,CAAUC,MAAAA,EAAY,OAAe3C,SAAS,YAAC2C,EAAAA,OAAY,CAAqB3C,EAAa2C,WAAY,W,CAAgB,MAAQ,C,YAAqBH,c,CAAc,SAAC,gCAAG,CAAC1C,EAAG,IAAI,CAAsC6C,YAAY,YAAmB,GAAE7C,CAA0K6C,MAAW,SAAC,GAAuB7C,EAAM,QAAQA,CAAgF6C,IAC9xB,iCACGxC,YAAAA,oBAEJ,GAASN,GAAAA,EAAQM,GAAAA,EAAAA,OAAe,0H,uMCEhC,IAAqByC,EAArB,cAA2CpC,EAAAA,MAEzCuB,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAEC,SAAS,KAAQ,8BAGGf,EAAAA,EAAAA,IAAA,EAA3BgB,EAAAA,EAAAA,IAAO,CAAED,SAAS,KAAQ,6BAJRF,GAAab,EAAAA,EAAAA,IAAA,EAHjCI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CAAC,KAEMQ,G,QCN0R,I,UCQ3SN,GAAY,OACd,EACAzC,EACAM,GACA,EACA,KACA,WACA,MAIF,EAAemC,EAAiB,O,2VCnBmiB,W,IAAU,OAAyB,aAAO,EAAO,MAAC,Y,OAAM,EAAC,K,MAAC,CAAa,sCAAK,gBAAiBU,oD,GAAoC,CAAmD,iBAAiB,GAAC,MAAa,KAAK5B,QAAG,gCAA+C,oCAAC,UAA8B,G,MAAoE,CAAwC,MAAO,EAACtB,OAAc,SAAO,SAAUmD,GAAa,UAACV,EAAOW,WAAWC,W,GAA2CrD,EAAAA,EAAQ,C,YAA+B,U,MAAC4C,CAA6B,mBAAcC,CAAAA,EAAAA,EAAAA,GAAY,QAAyC,MAAMS,CAA2DC,MAAM,SAAC,QAAO,kBAAS,CAACrD,EAAG,KAAeqD,MAAM,CAAC,KAAO,SAAM,CAACrD,EAAG,YAAQ,WAAmQqD,EAAK,MAAC,C,YAAQ,0CAAG,0CAApR,gBAACV,MAAAA,CAA0BU,QAAM,yCAAC,eAAQ,GAAQ,iEAAK,iBAAgB,EAAO,OAAEV,SAAY,QAAO,cAACU,QAAM,qBAAC,UAAO,0BAAG,kBAAG,KAAC,oB,MAA0B,CAAiB,yBAAC,qBAAM,EAAC,KAAQ,EAAEvD,YAAO,OAAe,EAAyBwD,EAAQ,WAAY,uBAA2B,UAACC,MAAG,CAAC,KAAO,S,CAAoC,OAAC,OAAIvD,MAAG,KAAoK,CAACA,EAAG,KAAkBwD,YAAI,cAA6BH,MAAM,CAAC,iB,CAA0B,SAA2V,EAAyB,KAAtW,EAAC,IAAE,C,YAAC,Q,MAAqE,CAAmB,S,GAAiH,CAAgC,MAAS,SAAKI,GAAqC,eAAG,I,GAA0B,IAAO3D,CAAAA,EAAImD,GAAK,mBAAyB,O,MAAA,CAAE,kB,MAA0B,CAAUS,KAAG,I,UAAuD,SAAC,G,EAAC,QAAQ,C,WAAoC,CAAK,EAACC,GAAAA,gBAAQ,YAA2B,4CAGliC,OAHkiC,S,YAAC,sC,GAAE,IAAE,C,IAAC,6B,MAAM,CAAM,UAAC,GAACC,MAAI,GAAYF,eAAY,G,YAAEnC,EAAAA,GAAAA,gDAAK,aAAE,M,SAAW,EAAC,MAAQzB,uBAAkByB,WAAgB,EAAC,wBAAkC,wBAAE,MAAC,sBAACqC,QAAU,wC,GAAerC,CAAK,KAAE,YAAC,OAAO,EAAI,8BAA6E,GAA2BgB,YAAM,OAACW,IAAK,UAA0CT,GAAAA,WAAyB3C,MAAI+D,CAAI,EAAC/D,EAAAA,EAAIqD,CAA4C,mBAACT,MAAU,CAAqC,aAAO,OAAU,OAAeoB,QAAY,GAAC,IAAS,YAAyET,EAAO,OAAO,GAAI,CAAkB,gBAAW,aAAS,KAAC,IAAmF,MAAS,GAACvD,OAAUiE,CAAAA,EAAAA,GAAAA,IAAWC,EAAAA,GAAAA,EAAAA,YAAAA,IAAAA,EAAAA,GAAAA,EAAAA,WAAAA,OAAQ,GAAG,CAAE,W,GAA0B,UAAWf,KAAkB,IAAGV,MAAM,oEAACW,IAAmCT,MAAQ,EAAC,Y,MAAmB,CAAiD,MAAC,qCAACC,SAAU,SAAC,GAAwB,gDAAI,EAAqBW,WAAM,wCAAY,WAAc,IAAG,C,YAAC,CAAgB,gB,CAAsH,SAAYvD,EAAImE,GAAAA,EAAAA,mBAAuB,c,MAAC,CAAkC,SAAC1B,eAAM,GAACW,MAAOpD,GAA0B2C,IAAAA,I,IAA6BoB,IAAsC,SAAC,wDAACnB,QAAU,EAAC,0BAAyB,GAAG,CAAWW,OAAM,YAAC,SAAW,KAAE,aAAC,GAAgCa,MAAAA,CAAqBN,MAAI,cAAW,WAACF,SAAG,SAAS,GAAEH,EAAE,wC,aAASL,6B,GAAS,eAAiBpD,C,MAAe6C,C,MAAsD,G,eAAO,G,aAAkB,G,YAASU,EAAM,kD,IAAwBV,EAAW,O,UAA+B,0B,KAAC,IAAO,EAAC,KAAM,a,aAA8B,EAAK,YAAU,S,SAAmD,YAAC,EAAG3C,KAAG,EAAM,YAAC,a,aAAS,0B,EAAyB,IAAMoD,C,MAAkD,CAAG,WAAM,GAAiBb,0BAAM,G,YAAuC,MAAAE,C,IAAmB,YAAqB,GAAC,aAACC,EAAAA,MAA6B,QAAM5C,IAA+G8D,MAAIO,CAAAA,EAAAA,MAAAA,EAAAA,GAAAA,EAAAA,GAAAA,CAAQ,YAAC,qCAAiM,OAAkC,wBAA6B,MAACC,GAAAA,GAAqB,GAAI,4CAAC,OAAO,aAAwOzB,OAAY,OAAc,WAAwB,sDAAY,SAAe,CAAG,OAAwD,gBAAkB,IAAoF,GAAS7C,GAAG,IAACuE,EAAAA,GAAAA,EAAc,gCAAC,IAAwB,QAAcZ,WAAkC,MAAC,CAACS,MAAAA,EAAYpE,iBAAS8D,SAAI,SAAW,GAAG,EAAC,iBAAS,C,EAAO,WAAE,qB,CAAyF,qBAA+L,yB,YAAU,U,GAAgB9D,EAAAA,EAAIwE,C,MAAyB,CAAC5B,MAAAA,GAAiC,kBAAI1C,YAAW,wCAAC2C,aAAY,MAAOU,SAAM,kEAAC,OAAS,iBAAC,QAAYvD,YAAyD,8C,YAAa,KAAAyE,CAASC,C,IAAQ,YAA2B,kBAAC,IAAoEnB,MAAM,oEAAC,GAA0D,CAAIrD,IAAG,OAAgBqD,GAAK,UAAC,KAAC,IAAyB,gBAAiB,0DAAC,IAAuE,oBAACa,MAAAA,CAAqBN,MAAI,uBAAUF,SAAG,SAAU,GAAC,uBAAmB,C,aAA0B,0B,MAAgB,C,YAAgB,O,YAAsD,G,UAAI,oD,GAAEe,CAAY,MAAM,SAAM,GAAYlC,OAAM,kBAACW,I,GAAkDpD,EAAAA,EAAI4E,CAAAA,EAAAA,GAAY,gBAAI,cAA5gC,8CAAC,OAAE,OAACd,IAAI,GAAOF,CAAE,EAAC,IAAS,kH,MAAEnC,EAAAA,GAAAA,EAAAA,EAAAA,EAAAA,C,GAAM,C,MAAS,SAAU,GAAuE,uBAAG,I,CAA+B2B,EAAAA,EAAAA,EAAWoB,CAAAA,EAAAA,EAAAA,EAAAA,CAAAA,EAAqB,kHAA60B,Y,MAAC,CAAC5B,MAAAA,EAAW,iDAAkB,GAAG,IAAMiC,CAAwKtB,MAAM,CAAC,SAAc,YAACa,eAAgBU,GAAKhB,YAAI,EAAW,sD,YAAiB,O,IAAEP,UAAM,GAAE,WAAC,MAAO,CAACrD,EAAG,KAAqE,mBAAI,MAAK,CAAsB,MAChhOF,OAEoB,cAAC,QAAQ,GAAiB,IAAW+E,EAAAA,UAAoB7E,EAA+O2C,OAAAA,IAAuB,MAAC,EAAW,YAACU,MAAM,CAAC,MAAO,EAACvD,aAAuC,SAAU,SAAK2D,GAAyD,eAAoBqB,CAAkB,EAAG,WAAC,mB,GAA2B,EAAOhF,YAAS,MAAY,qH,MAAA,CAAE,e,YAAmBqD,EAAAA,GAAAA,CAAAA,CAAuBV,IAAAA,Y,GAAyB3C,UAAY,GAAgC,QAAC4C,IAAwC,MAAM,GAAG,iBAAaqC,EAAK,GAAE/E,EAAG,MAAQ,iBAAC,UAACuC,IAAOW,MAAOpD,EAAQ,Y,CAAC2C,EAAAA,EAAAA,EAAS,eAAe,wEAAkQ,OAAlQ,O,GAAC3C,CAAW,MAAC,YAAC4C,OAAAA,EAAW,eAAK,IAA+LC,CAAAA,EAAAA,EAAAA,EAAY,aAAyB,sHAACJ,YAAM,Q,CAACW,EAAAA,EAAAA,EAAW8B,C,MAAKvC,C,MAAgC,EAACwC,GAAG,yCAAC,uDAACvC,QAAU,EAAC,yBAAO,GAAI,CAAgCC,OAAW,SAAQ,GAACU,OAAM,mBAAC,GAAuCd,MAAM,CAACW,MAAOpD,EAAIqD,YAAY+B,UAAazC,SAAS,SAAUwC,GAAMnF,EAAI+D,KAAK/D,EAAIqD,YAAa,YAAa,EAAM,EAAET,WAAW,4BAA8B,IAAG1C,IAAG,QAAY,KAAgB,EAAC,KAAC2C,MAAAA,CAAoBU,MAAM,MAAC,SAAS,SAAKF,GAAY,MAASrD,CAAW,EAAgD,mBAAiC6C,CAAAA,EAAAA,EAAAA,EAAW,GAAC,OAAS,yIAACmB,YAAY,0B,MAAC,CAAmB,YAAI,SAAO,YACrpD,OACG3D,EAEJ,WAAiBA,Q,wkBCSjB,MAAMG,GAAUD,EAAAA,EAAAA,IAAU,MAW1B,IAAqB8E,EAArB,cAA2C3E,EAAAA,GAA3C4E,c,oBAOE,KAAAC,OAAQ,EACR,KAAA7C,QAAS,EACT,KAAA8C,kBAAmB,EACnB,KAAAlB,oBAAqB,EACrB,KAAAE,qBAAuB,GACvB,KAAAiB,QAAS,EACT,KAAA9B,MAAQ,CACN+B,KAAM,CACJC,UAAU,EACVzB,SAAS,GAEXc,UAAW,CACTW,UAAU,EACVzB,SAAS,GAEXD,WAAY,CACV0B,UAAU,EACVzB,SAAS,GAEX0B,OAAQ,CACND,UAAU,EACVzB,SAAS,GAEX2B,SAAU,CACRF,UAAU,EACVzB,SAAS,GAEX4B,uBAAwB,CACtBH,UAAU,EACVzB,SAAS,GAEXM,qBAAsB,CACpBmB,UAAU,EACVzB,SAAS,IAGb,KAAA6B,wBAA0B,GAC1B,KAAA1C,YAAwB,CACtBnC,GAAI,EACJwE,KAAM,GACNN,YAAa,GACbJ,WAAW,EACX9B,YAAY,EACZe,WAAY,EACZ2B,OAAQ,EACRC,SAAU,KACVG,MAAO,GACPC,MAAO,GACPC,QAAS,GACTC,oBAAqB,KACrBL,uBAAwB,MAU1B,KAAAZ,IAAM,CAoXR,CA3XMkB,gBACF,MAAO,CACJC,KAAQA,GAAKpG,KAAKqB,GAAG,6CACrB+E,GAAMA,EAAEC,QAAU,KAAOrG,KAAKqB,GAAG,8CAEtC,CAII6C,8BACF,OACGlE,KAAKoD,YAAYyC,wBAClB7F,KAAKoD,YAAYyC,yBAA2B7F,KAAKsG,MAErD,CAKIA,aACF,OAAOC,EAAAA,EAAAA,SACT,CAEIC,kBACF,OAAOD,EAAAA,EAAAA,aAA0B,EACnC,CAEI5B,mBACF,IAAIoB,EAAQ7E,EAAAA,EAAAA,SAERuF,EAAa,EAEjB,IAAK,IAAI9F,KAAQ+F,OAAOC,OAAOZ,GACzBpF,EAAKI,UAAYf,KAAKoD,YAAYnC,KACpCwF,GAAc9F,EAAKgF,QAIvB,OAAOc,CACT,CAKI7B,kBACF,MAAMgC,EAAa5G,KAAKoD,YAAY6C,QAC9BA,EAAUM,EAAAA,EAAAA,YAAuBK,GACvC,OAAKX,EAGEA,EAAQY,WAAa,IAAMZ,EAAQa,UAFjC,EAGX,CAEIC,qBACF,OAAOC,EAAAA,EAAAA,sBAAsC,EAC/C,CAEIC,mBACF,OAAOD,EAAAA,EAAAA,qBAAqC,EAC9C,CAKIE,0BACF,MAAMC,EAAWZ,EAAAA,EAAAA,aAA0B,GAC3C,OAAKvG,KAAKwF,OAGH2B,EAASC,QAAQC,GAASrH,KAAKoD,YAAY4C,MAAMsB,SAASD,EAAKE,QAAS,GAFtEJ,CAGX,CAKIK,sBACF,MAAMxB,EAAQ,GACRyB,EAAYlB,EAAAA,EAAAA,YAElB,IAAKkB,EACH,OAAOzB,EAGT,IAAK,MAAMqB,KAAQrH,KAAKoD,YAAY4C,MAClC,GAAKqB,EAIL,IAAK,MAAMK,KAAUD,EACfJ,IAASK,EAAOH,KAClBvB,EAAM2B,KAAKD,GAKjB,OAAO1B,CACT,CAEI4B,0BACF,OAAO5H,KAAKoD,YAAY4C,MAAMK,MAChC,CAEIwB,wBACF,IAAK7H,KAAKwF,OACR,OAAOxF,KAAKqB,GAAG,0CAEjB,OAAQrB,KAAKoD,YAAYY,YACvB,KAAK,EACH,OAAOhE,KAAKqB,GAAG,gDACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,kDACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,2CACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,8CACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,kDACjB,QACE,MAAO,GAEb,CAGAyG,eAAeC,EAAcC,GACvBD,IAAQC,IACPD,EAMH/H,KAAKiI,cAJLjI,KAAKiI,aACLjI,KAAKkI,YAKT,CAGAC,yBAAyBJ,GACnBA,IACF/H,KAAKqE,oBAAqB,EAE9B,CAEA+D,UAEElH,EAAAA,EAAAA,gBACAqF,EAAAA,EAAAA,gBACAS,EAAAA,EAAAA,sBACAA,EAAAA,EAAAA,mBACF,CAEAiB,aACEjI,KAAKsF,OAAQ,CACf,CAEA4C,WACElI,KAAKoD,YAAc,CACjBnC,GAAI,EACJwE,KAAM,GACNN,YAAa,GACbJ,WAAW,EACX9B,YAAY,EACZe,WAAY,EACZ2B,OAAQ,EACRC,SAAU,KACVG,MAAO,GACPC,MAAO,GACPC,QAAS,GACTC,oBAAqB,KACrBL,uBAAwB,MAE1B7F,KAAKqE,oBAAqB,EAC1BrE,KAAKwF,QAAS,CAChB,CAEA6C,mBAAmBlF,EAAgBmF,EAAW,IAC5CtI,KAAKuI,YAAYpF,EAAOmF,GACxBtI,KAAKwI,WAAWrF,EAAOmF,EACzB,CAEAC,YAAYpF,EAAgBmF,EAAW,IACrC,GAAIA,GACF,GAAI5B,OAAO+B,UAAUC,eAAeC,KAAK3I,KAAK0D,MAAO4E,GAAW,CAC9D,GAAiB,2BAAbA,IAA0CnF,IACvCnD,KAAKkE,wBAER,OAGJlE,KAAK0D,MAAM4E,GAAU5C,SAAWvC,C,OAGlC,IAAK,MAAMyF,KAAQ5I,KAAK0D,MACtB1D,KAAK0D,MAAMkF,GAAMlD,SAAWvC,CAGlC,CAEAqF,WAAWrF,EAAgBmF,EAAW,IACpC,GAAIA,EACE5B,OAAO+B,UAAUC,eAAeC,KAAK3I,KAAK0D,MAAO4E,KACnDtI,KAAK0D,MAAM4E,GAAUrE,QAAUd,QAGjC,IAAK,MAAMyF,KAAQ5I,KAAK0D,MACtB1D,KAAK0D,MAAMkF,GAAM3E,QAAUd,CAGjC,CAEAzC,uBAEKV,KAAKuE,uBACNvE,KAAKoD,YAAY4C,MAAMsB,SAAStH,KAAKuE,uBAMvCvE,KAAKoD,YAAY4C,MAAM2B,KAAK3H,KAAKuE,4BAC3BvE,KAAKkD,KAAK,SAChBlD,KAAKuF,kBAAmB,GANtBvF,KAAKuF,kBAAmB,CAO5B,CAEA7E,WAAWmI,EAAyB,KAAMnG,EAA4B,MACpE,IAAI1C,KAAKsF,MAIT,GAAgB,OAAZuD,EAAkB,CAIpB,MAAM9H,EAAUG,EAAAA,EAAAA,YAA2BlB,KAAKoD,aAAanC,IAC7D,IAAKF,EACH,OAAO,EAET,IAAK2F,OAAO+B,UAAUC,eAAeC,KAAK5H,EAAS8H,GACjD,OAAO,QAEG7I,KAAK8I,aAAaD,EAAS9H,GAG5B2B,GACTA,IAFA1C,KAAKoD,YAAYyF,GAAW9H,EAAQ8H,E,KAIjC,CAKL,IAAK7I,KAAKoD,YAAYqC,KAKpB,YAJAzF,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,sDACjBC,KAAM,YAKV,GAAItB,KAAKoD,YAAYyC,uBAAwB,CAC3C,MAAMA,EAAyB7F,KAAKoD,YAAYyC,uBAC3C7F,KAAKoD,YAAY4C,MAAMsB,SAASzB,IACnC7F,KAAKoD,YAAY4C,MAAM2B,KAAK9B,E,CAIhC7F,KAAKqI,oBAAmB,GAExB,MAAMU,QAAmB7H,EAAAA,EAAAA,iBAAgClB,KAAKoD,aAC9D,IAAK2F,EAGH,YADA/I,KAAKqI,oBAAmB,GAI1BrI,KAAKoD,YAAc,IAAK2F,GAExB/I,KAAKqI,oBAAmB,GACxBrI,KAAKwF,QAAS,C,CAElB,CAEA9E,mBAAmBmI,EAAiB9H,GAMlC,GAAyC,kBAA9Bf,KAAKoD,YAAYyF,IACtB7I,KAAKoD,YAAYyF,KAAa9H,EAAQ8H,GAExC,OADAG,QAAQC,IAAI,eACL,EAIX,MAAMxF,EAAMzD,KAAKkJ,MAAM,OAAOL,KAC9B,GAAIpF,IAAQA,EAAI0F,MACd,OAAO,EAGTnJ,KAAKqI,oBAAmB,EAAMQ,GAE9B,MAAMzF,EAAc,CAAC,EACrBA,EAAYnC,GAAKjB,KAAKoD,YAAYnC,GAClCmC,EAAYyF,GAAW7I,KAAKoD,YAAYyF,GACxC,MAAM/G,QAAiBZ,EAAAA,EAAAA,oBAAmCkC,GAAagG,OAAM,KAC3EpJ,KAAKqI,oBAAmB,EAAOQ,EAAQ,IAEzC,QAAK/G,IAGA9B,KAAKkE,yBAIVlE,KAAKqI,oBAAmB,EAAOQ,IACxB,IAJL7I,KAAKwI,YAAW,EAAOK,IAChB,GAIX,CAEAnI,sBACE,IAAI2I,EAAc,GAAGrJ,KAAKqB,GAAG,mDACzBiI,EAAWtJ,KAAK+G,eAAeK,QAChCmC,GAAMA,EAAEC,YAAcxJ,KAAKoD,YAAYnC,KAEtCwI,EAASzJ,KAAKiH,aAAaG,QAAQmC,GAAMA,EAAEC,YAAcxJ,KAAKoD,YAAYnC,KAE9E,GAAIqI,EAASjD,QAAUoD,EAAOpD,OAAQ,CACpC,IAAIqD,EAAU,EACVC,EAAQ,EACRC,EAAe,GACnBN,EAASO,SAASN,GAAOG,GAAWH,EAAEO,SACtCL,EAAOI,SAASN,GAAOI,GAASJ,EAAEO,SAC9BH,IACFC,EACE,GAAG5J,KAAKqB,GAAG,6CAA+CsI,EAAQ,MAEtEN,GACE,GAAGrJ,KAAKqB,GAAG,+CACXqI,EACA,IACAE,C,CAGJ,MAAMG,QAAgB/J,KAAK4B,WAAW,CACpCR,KAAMiI,EACN/H,KAAM,YAEHyI,SAGO7I,EAAAA,EAAAA,oBAAmClB,KAAKoD,YAAYnC,MAGhEjB,KAAKyC,QAAS,EACdzC,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,qDAErB,CAEAiD,eAAe9C,EAAMwI,GACnB,IAAIvE,EAAOjE,EAAKqF,WAAa,IAAMrF,EAAKsF,UACxCrB,EAAOA,EAAKwE,cACZ,MAAMC,EAAIF,EAAUC,cACpB,OAAOxE,EAAK0E,QAAQD,IAAM,CAC5B,CAEOE,YAAYrJ,GACjBf,KAAKoD,YAAc,IAAKrC,GACxBf,KAAKwF,QAAS,EACdxF,KAAKyC,QAAS,EACTzC,KAAKkE,yBAERlE,KAAKuI,aAAY,EAAM,yBAE3B,CAEO8B,gBACLrK,KAAKkI,WACLlI,KAAKyC,QAAS,CAChB,IApbAT,EAAAA,EAAAA,IAAA,CADCzB,EAAQ2B,QAAM,oCAIfF,EAAAA,EAAAA,IAAA,CADCzB,EAAQ2B,QAAM,kCAmLfF,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,WAAS,oCAchBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,qBAAmB,6CAnMPlF,GAAapD,EAAAA,EAAAA,IAAA,EATjCI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVkI,eAAc,IACdC,WAAU,IACVC,WAAU,IACVC,UAAS,IACTC,WAAUA,EAAAA,MAGOvF,G,QC3B0R,I,UCS3S7C,GAAY,OACd,EACAzC,EACAM,GACA,EACA,KACA,WACA,MAIF,EAAemC,EAAiB,O,oYCpBglB,EAAK,W,IAAce,EAAM,K,EAAC,QAAU,GAAyC,QAAe,Y,OAAG,MAAcvD,C,MAAkD,CAA8B,WAAWA,2BAAkB,gBAAc2F,mD,GAAoC,CAA8B,oBAAClD,IAAM,mFAACW,EAAK,OAAMvC,CAAe8B,G,MAA6D,CAACC,MAAAA,EAAU,OAAgB,qBAAM,EAAE1C,OAAU,CAAEqD,EAAO,WAAO,WAAS,CAACrD,EAAG,KAAeqD,YAAM,W,CAAC,OAAQ,QAAE,OAAIrD,MAAG,SAAS2C,QAAY,kB,CAAqB,MAAQ,CAAQ,OAAI3C,KAAG,S,CAAmB,eAAa,C,MAAC,CAAkB,QAAW,yCAAQ,eAAa,GAAK,YAAcF,EAAIsB,GAAG,2CAA+C,iBAAeqE,EAAQ,OAAS,SAAW,EAACkF,SAAAA,KAAe,QAAU7K,EAAI2F,SAAS3E,KAAQ,kBAAG,KAAC,oBAA+B,MAAC,CAACyB,MAAM,gBAACW,SAAU,SAAUpC,GAAS2B,EAAAA,KAAS,WAAe,S,EAAuC,WAAC,oBAA8B,UAAG,MAAO8C,CAAoB5C,KAAAA,S,CAA2B,MAAO,CAAE,MAAC,CAAG,MAAC,K,GAA0B,IAAO7C,C,YAAU,cAAC,OAAIE,MAAG,W,CAAiE,MAAY,CAAQ,MAAC,CAACqD,SAAM,GAAC,MAAO,UAAG,mBAAG,aAAC,KAAC,YAAQ,EAASmB,GAAAA,+C,SAAkB,EAAG,SAAK,+BAAC,4BAA2F7B,GAAAA,CAAmD3C,OAAG,qBAA2CqD,MAAM,CAAC,QAAW,SAAG,QAAC,SAAQ,SAAE,GAAC,SAAc,SAAG,YAAC,EAAsD,WAAY,sBAA8C,SAA6L,OAAhLgB,EAAAA,EAAAA,EAAAA,C,YAAuBvE,Q,MAAgB,CAAsC,S,GAAK,C,MAA+BA,SAAS,GAAiB,eAAE,I,CAAsB8D,EAAG,IAAC,GAAS,6B,MAAI,C,QAAkB,EAAI,Q,MAA4BP,C,KAAO,I,UAA4C,SAAMM,G,EAAoC,S,KAAMc,EAAAA,EAAAA,EAAM,8DAAI,YAAE,sC,CAACb,EAAG,IAAY,C,IAAG,qB,MAAYrC,CAAK,UAAE,G,MAAQ,GAAiF,kBAAE,YAAC,sCAACqC,aAAU,MAACF,SAAG,EAAS,wB,OAAEnC,EAAAA,eAAK,MAAE,c,QAASvB,EAAG,SAAQF,gBAAsE,GAAG,CAACyC,KAAM,YAACW,OAAOpD,EAAIa,KAAAA,iBAAyB8B,G,YAAuE,OAACC,IAAAA,UAAoC,cAAM,MAAM,CAAC,EAAG,IAAC,CAAeoB,YAAY,OAAC,MAAS,CAAM,aAAU,OAAQ,OAAuD,WAAC,IAAU,YAA8B,EAAU,OAAM,GAAI,CAAmC,gBAAkC,kBAAI,IAA2B,MAAOhE,CAAAA,EAAImD,OAAK,UAAa,mDAAE,CAACV,IAAM,OAACW,GAAAA,UAAWvC,KAAqB8B,IAA2E,0EAACC,KAAmC,MAAK1C,CAAeqD,MAAM,0BAAC,SAAQ,SAAE,GAAC,kBAAoB,mBAAC,EAAuD,wCAA8F,QAAQvD,CAAAA,EAAI8K,EAAAA,EAAAA,C,YAA8B9K,CAAqB,gB,CAAK,SAAS,KAAS0E,EAAAA,mBAAO,c,MAAC,CAA0B,SAAE,kBAACN,MAAW,GAAUN,IAAI,IAAgBF,IAAG,I,SAAqB,EAAC,SAAQ,W,QAACf,EAAW,SAAC,Y,WAAkC,SAAS,G,OAAO,OAAU,a,SAAmC,OAAC,sBAAC8B,SAAM,YAAO,uCAAClC,EAAOW,WAAWvC,0B,GAA8C,EAACkD,EAAAA,EAASlD,C,MAAkC,CAAC+B,MAAAA,GAA6B,qBAAI1C,KAAG,8CAAgBwD,YAAgB,8CAACH,SAAM,mBAAC,MAAQ,EAAE,oBAAC,UAAc,SAAG,S,GAAqE,CAAU,OAAO,SAAQ,GAAC,SAAWvD,KAAI2F,UAAgB,GAAqD,YAAC,OAAG,IAAC,gBAAC,cAA0B,MAAO3F,CAAAA,EAAImD,EAAAA,EAAK,CAAS,wBAAE,OAACiB,MAAgBU,OAAS,OAAS,OAAI,QAAU,GAAC,IAAW,wB,SAAkD,K,aAAsE,mB,SAAI,YAAC,oCAACH,EAAY,WAAC,sBAAQvB,EAAAA,EAAAA,EAAWvC,C,IAAiB8B,a,MAA4B,CAA0C,MAAC,GAACC,eAAW,GAAiB,gEAAI1C,IAAG,IAAS8D,KAAAA,SAAa,SAAW,EAAC,gBAAO,0BAAI9D,MAAQ,EAAEF,aAAgKgE,GAAAA,CAAa,gBAAY,GAAU,uBAAI9D,G,YAA8BF,EAAM,GAAC,EAAqC,cAAqC,cAAoC,cAAI,mBAAC,MAAS,CAAiB,MAAWmD,OAAoB,cAAE,WAAO,gB,EAAuG,OAAC,KAAmC,OAAI,MAAKnD,EAAI+K,SAAAA,OAA+DxH,SAAM,YAAC,OAAQ,WAAQ,iBAAC,EAAkB,gCAA+DA,EAAK,IAAC,C,YAAC,CAAmB,YAAQ,UAAY,GAAG,MAAM,CAAC,qGAACV,YAAY,wBAAgBmI,YAAO,CAAEC,YAAYjL,aAAwCyD,CAAE,EAAC,K,MAAC,CAA0C,QAAayH,GAAC,qCAGpmL,SAAYA,EAAC,SACtDC,aAEwC,iCAAkE5H,GAAAA,CAAO,OAAMM,SAAQ,GAA+B,OAAQ,EAAI,oBAAC,GAAgB,MAAI,CAAON,MAAM,wBAAC,SAAMM,SAAQ,GAAwC,OAAQ,EAAI,0BAAC,EAAa,uCAAsEN,GAAM,uD,MAAC,CAAc,eAACa,QAAYpE,W,CAAyB4D,EAAG,2BAAS,O,MAAI,C,cAAEL,GAAM,MAAE,aAAiF,SAAC,YAAE,gBAAE,MAAK,CAA8B,WAAC,gC,GAA0B,CAAuB,sCAAC,2FAAIrD,SAAG,KAAkB,YAAa,EAAEF,4BAA2BE,EAAG,8BAA0B,I,CAAuIkD,EAAAA,aAAe,sC,MAACT,C,IAA6BuC,EAAO,aAAC,KAACtC,OAAU,QAAU1C,EAAG,MAAO,CAAqL2C,MAAAA,CAAsCJ,IAAM,SAACW,MAAOpD,KAAS2C,OAAS,QAA2B,EAAC,qD,MAACC,CAAgB,eAAuCW,YAAM,OAAC,gBAAU,gBAAM,EAAC,MAASV,IAAgC,SAAY,iBAAC,wCAAM,MAAgBA,CAAAA,EAAAA,EAAAA,EAAW,CAAC,MAAM,CAACU,GAAAA,CAAO,MAAO,SAAI,GAAC,OAAK,cAAG,IAAqBV,CAAAA,EAAAA,EAAAA,EAAkB,gJAACU,MAAM,CAAC,MAAM,EAAC,IAA+B,qBAACd,EAAM,KAACW,EAAiCT,WAAS,Q,CAA0D,EAAC,2J,YAAW,0BAAuB,OAAI,MAAM,EAAC,IAASE,SAAW,SAAC,GAAYU,EAAM,KAAC,EAAY,WAAK,QAAM,CAACrD,EAAG,IAAM,QAAC2C,MAAAA,CAAiC3C,MAAQ,K,CAAWkL,EAAAA,EAAAA,EAAS,CAAQ,mBAAG,YAAW,CAACvI,aAAY,SAA0EA,CAAAA,EAAAA,EAAAA,EAAW,CAA2BmB,YAAY,O,MAAC,CAAoB,UAACT,GAAM,M,CAAoB,eAAa,C,YAAavD,O,MAAe,CAA6D,mC,MAAK,CAAoB,6BAACyC,SAAM,YAACW,EAAK,KAAMiI,EAAAA,SAAS,gBAAC1I,E,WAA6B0I,2BAAczI,GAAAA,EAAAA,EAAAA,EAAW,CAAU,wBAAG,MAAK1C,CAAU2C,KAAAA,KAAgC3C,GAAG,M,CAAgB,QAAO,CAAI,gCAAG,CAACA,EAAG,OAAgBqD,MAAM,CAAC,UAAS,QAAiC,UAAE,YAAa+H,wDAA2B,OAAU,C,YAAoB,0B,YAAO,C,YAAS,S,MAAO,C,YAAC,O,aAAyC,K,MAAkB,aAAC,0DAAwC,GAAG,CAAqBzI,MAAW,EAAC,SAAoGA,MAAAA,CAAsBU,MAAM,WAAC,SAAU,SAAC,GAAI,YAAG,EAAE,WAAQ,eAA4C,YAAC,+BAAG,CAACrD,EAAG,IAAM,CAAE2C,MAAAA,CAAoD7C,KAAO,OAAsHyD,CAAE,EAAC,K,MAAC,C,OAAiC8H,G,eAA4BC,kBAAoB,gCAAE,OAAK,OAAgB3I,IAAAA,EAAW,GAAqBU,MAAM,CAAC,MAAW,IAAe,IAAkB,uBAAqB,GAAC,OAAO,EAAM,eAAC,IAAqF,6B,IAACd,IAAM,kB,YAAYgJ,iE,CAAuB9I,EAAAA,iBAAuN,gBAAE,YAAa,kBAAEE,GAAAA,CAAqB7C,OAAO,SAAa,GAAwB,OAAD,mBAAS,qB,IAAoD,QAAE,YAAa,oBAAwD6C,MAAAA,CAAkCU,UAAM,GAAC,SAAiB,kBAAIrD,mBAAY,GAAC2C,KAAAA,OAAmBU,YAAM,+CAAC,MAAO,aAAI,MAAO,CAAuC,MAAS,EAAC,sBAAeO,SAAO,YAAG,EAAC,uB,aAAiC9D,2BAA8B,SAAC,YAAM,yB,CAAiCgL,EAAAA,MAAO,C,YACz9H,gB,CACV,OAAE,MAAM,CAA6JnI,KAAAA,W,GAAyC,K,YAA+B,QAAE,CAAC,EAAG,GAAE,kBAAG,UAAE,GAAG,CAAiEA,MAAW,SAAQ,GAACU,OAAM,yBAAC,IAAoE,gDAFg4F,EAAE,O,YAAKkI,U,MAA0B,CAAC7I,SAAW,KAA0B,GAAG,CAAQC,MAAW,SAAC,GAA4B,EAAC,kBAAM,CAACA,IAAyCU,CAAAA,EAAK,OAAC,C,YAAQ,uCAAQ,qEAEjkG,SAAG,YAASrD,sBAAqB2C,MAAAA,CAAsBmB,YAAY,QAAoB,QAAG,YAAQ,OACxhB,OACG3D,KAAAA,K,+pBCVqF,EAAU,W,IAA0BwC,EAAAA,KAA4BU,EAAK,EAAC,SAAC,oB,OAAwB,QAAUvD,CAAG,EAAC0L,EAAAA,EAAO,C,YAAS1L,gB,MAAc,CAAkC,oBAAckE,IAAQ,QAAU,EAACyH,QAAK,kBAACvH,iBAAmB,EAAK,aAAWN,QAAK,UAAcF,KAAG,Q,YAA6Df,EAAW,GAAC,Y,IAA0CU,e,oBAAoC,oBAAyN,gC,MAAC,CAAgB,SAACd,eAAM,GAACW,MAAOpD,GAAoB2C,aAAS,I,MAAqD,CAACC,MAAAA,EAAU,SAAC,MAAgB,qBAAM,EAAE1C,KAAG,EAAMA,SAAG,QAAa,EAACqD,EAAO,WAAU,qBAAmB,UAAa,iBAAE,MAAC,CAACd,MAAM,GAACW,eAAWwI,GAAgBjJ,aAAS,I,MAAqD,CAACC,MAAAA,EAAU,SAAC,MAAgB,qBAAM,EAAE1C,KAAG,EAAMA,SAAG,QAAa,EAACqD,EAAO,WAAU,qBAAmB,UAAa,iBAAE,MAAC,CAACd,MAAM,GAACW,eAAWwI,GAAcjJ,aAAS,I,MAAmD,CAACC,MAAAA,EAAU,SAAC,IAAc,qBAAM,EAAE1C,KAAG,EAAMA,SAAG,MAAa,EAACqD,EAAO,8BAAyC,KAAO,QAAQ,c,MAAC,CAAuE,oBAAsBsI,GAAqD,eAAYC,GAAY,KAAO9L,SAAa,wDAACyC,SAAM,mDAACW,MAAOpD,EAAI4L,YAAgBjJ,KAAQ,EAAC,U,MAAqD,CAACC,MAAAA,EAAU,SAAC,MAAgB,qBAAM,EAAE1C,KAAG,EAAMA,SAAG,QAAe,EAACqD,EAAO,WAAU,qBAAe,UAAc,GAAG,K,MAAC,CAAc,MAAM,GAAI,SAAU,GAAG,eAAYwI,GAA8B,YAAI,IAAM,IAAoBlJ,QAAY,GAAOU,MAAM,mCAAwC,kBAACE,YAAG,O,MAAC,C,SAAmC,EAACuI,yBAAW,IAAIhM,MAAO,YAA8BuD,OAAM,YAAC,IAAwCE,CAAE,EAAC,2B,MAAC,C,SAA6BwI,EAAAA,yBAAyB,IAAIjM,MAAO,YAAwB,qBAAM,IAAiB,MAAM,uBAA9qD,gBAACyD,YAAG,0C,MAAC,C,QAA6BwI,EAAAA,QAAgB,QAAQ,IAAIjM,MAAO,SAAU,GAA4FuD,EAAM,mBAAC,I,CAA6B,KAAO,IAAG,2DAAs9CK,E,OAAcnC,GAAM,KAAC,C,IAAC,O,GAAiB+B,UAAM,K,IAAmD,MAAM,GAAI,KAAC,CAACA,MAAMxD,CAA6DE,YAAG,EAAa,4B,CAAQ,OAAQ,C,MAAG,UAAe,GAAE,qC,CAAC,eAAU,C,MAAC,CAAmC,SAACuC,eAAM,GAACW,MAAO3B,GAAYkB,KAAQ,IAAC,cAAe,I,MAA8B,CAACC,MAAAA,EAAW,MAAY,qBAAM,EAAE1C,KAAG,EAAK,UAACsD,EAAmEtD,WAAG,iBAAqB,KAAO,KAAG,C,MAAC,UAAe,GAAE,qC,CAAC,eAAgB,CAAkB,MAAC,CAACuC,MAAM,GAACW,eAAY8I,GAAOvJ,KAAQ,IAAC,cAAe,I,MAA8B,CAACC,MAAAA,EAAW,MAAY,qBAAM,EAAE1C,KAAG,EAAK,UAACsD,EAAmEtD,WAAG,iBAAqB,KAAO,KAAG,C,MAAC,UAAe,GAAE,qC,CAAC,eAAgB,CAAkB,MAAC,CAACuC,MAAM,GAACW,eAAgB,GAACT,KAAQ,IAAC,cAAe,I,MAA4B,CAACC,MAAAA,EAAW,IAAU,qBAAM,EAAE1C,KAAG,EAAK,QAACsD,EAAmEtD,WAAG,eAAqB,UAAc,C,MAAI,EAAO,QAAQ,wC,CAAC,eAAgBF,C,MAAuD,CAA2E,eAAY8L,GAAY,KAAO3I,SAA4B,wDAACV,SAAM,mDAACW,MAAO3B,EAAK0K,YAAOxJ,KAAQ,IAAC,cAAe,I,MAA8B,CAACC,MAAAA,EAAW,MAAY,qBAAM,EAAE1C,KAAG,EAAK,UAACsD,EAAmEtD,WAAU,iBAAQ,KAAO,KAAKkM,CAAiD,wDAAG,CAACpM,EAAG,OAAO,CAAsDwD,MAAMxD,CAA6DE,MAAG,EAAS,6CAAoBqD,CAAAA,EAAK,GAAC,iD,MAAC,EAAQ,QAAE,wC,CAAC,MAAU,CAAiC,YAAC,OAACE,MAAG,CAAC,MAAQ,G,SAA2B,EAAC4I,oBAAe,OAAC,IAAIrM,MAAO,YAA+BuD,OAAM,cAAC,IAAYE,CAAE,EAAC,4B,MAAC,C,MAAgCzD,IAAsB,IAAIA,MAAO,YAAwB,uBAAQ,IAAmC,8BAAC,IAAc,WAACyC,EAAK,gBAAC,C,MAAM,CAAcE,QAAS,G,MAA+B,CAACC,MAAAA,EAAU,OAAS,qBAAM,EAAC,QAAiBW,EAAO,sBAAkD,oBAACE,MAAG,CAAC,eAAgBzD,EAAIsM,eAAa,WAA4C,GAAG,CACh6I,6BACGjM,kBAAoB,wB,+ECmBxB,MAAMC,GAAeC,EAAAA,EAAAA,IAAU,gBACzBC,GAAUD,EAAAA,EAAAA,IAAU,MAW1B,IAAqBgM,EAArB,cAAkD7L,EAAAA,GAAlD4E,c,oBAiCE,KAAA2G,kBAAmB,EACnB,KAAAO,yBAA0B,EAC1B,KAAA9J,QAAS,EACT,KAAA+J,eAAiB,GACjB,KAAAC,aAAe,GACf,KAAAf,KAAO,EACP,KAAAgB,eAAgB,EAChB,KAAAzI,SAAU,EACV,KAAA0H,SAAW,CACTgB,MAAO,GACPV,MAAO,EACPW,IAAK,EACLV,MAAO,GAET,KAAAW,OAA2B,CAAC,CAgX9B,CA7WMhB,kBACF,MAAO,CACJzF,KAAQA,GAAKpG,KAAKqB,GAAG,2DACrB+E,GACC0G,OAAOC,WAAW3G,IAAM,GACxBpG,KAAKqB,GAAG,8DAEd,CAEIoK,cACF,MAAO,CACL,CACErK,KAAMpB,KAAKqB,GAAG,4CACd8B,MAAO,QAET,CACE/B,KAAMpB,KAAKqB,GAAG,8CACd8B,MAAO,SAET,CACE/B,KAAMpB,KAAKqB,GAAG,2CACd8B,MAAO,OAET,CACE/B,KAAMpB,KAAKqB,GAAG,6CACd8B,MAAO,SAET,CACE/B,KAAMpB,KAAKqB,GAAG,4CACd8B,MAAO,OACP6J,MAAO,OAET,CAAE5L,KAAM,GAAI+B,MAAO,WAEvB,CAEI8J,gBACF,MAAMJ,EAAS,GACf,IAAK,MAAMK,KAASxG,OAAOC,OAAO3G,KAAK6M,QAAS,CAC9C,MAAMM,EAAS,IAAIC,KAAKF,EAAMjB,OACxBoB,EAAO,IAAID,KAAKF,EAAMN,KACtBU,EAAc,EAACC,EAAAA,EAAAA,IAAgBJ,IAASI,EAAAA,EAAAA,IAAgBF,IAC9D,IAAIG,EAAON,EAAMN,IAAMM,EAAMjB,MAAQiB,EAAMhB,MAC3CsB,EAAOA,EAAO,IAAO,GAAK,GAC1BX,EAAOlF,KAAK,CACV1G,GAAIiM,EAAMjM,GACV0L,MAAOW,EACPrB,MAAOiB,EAAMjB,MACbW,IAAKM,EAAMN,IACXV,MAAOgB,EAAMhB,MACbsB,MAAMC,EAAAA,EAAAA,IAAeD,GACrB7M,KAAMuM,EAAMvM,M,CAQhB,OAJAkM,EAAOa,MAAK,CAACC,EAAQC,IACZA,EAAE3B,MAAQ0B,EAAE1B,QAGdY,CACT,CAGAgB,kBAAkB1K,GACXA,GACHuD,OAAOoH,OAAO9N,KAAK2L,SAAU3L,KAAK+N,wBAEtC,CAGAC,WAAWrN,EAAasN,GAClBtN,GAAMM,KAAOgN,GAAShN,KACrBN,EAAKM,GAIVjB,KAAKkO,cAHHlO,KAAK6M,OAAS,CAAC,EAInB,CAGAsB,eAAetB,GACb,IAAKA,IAAWA,EAAOxG,OACrB,OAEF,IAAKrG,KAAKoO,mBACR,OAGF,MAAMhK,EAAMyI,EAAOwB,WAAWC,GAAMA,EAAErN,KAAOjB,KAAKoO,sBACrC,IAAThK,IAIJpE,KAAK0L,KAAO6C,KAAKC,MAAMpK,EAAM,GAAKpE,KAAKyM,cACzC,CAEAsB,wBACE/N,KAAK2L,SAAW,CACdgB,MAAO,GACPV,MAAO,EACPW,IAAK,EACLV,MAAO,EAEX,CAEAG,eACErM,KAAKyO,MAAMC,IAAI,+BAA+B1O,KAAKW,KAAKM,OAAOY,MAAMC,IACnE9B,KAAK6M,OAAS/K,EAASjB,KACvBb,KAAKiE,SAAU,CAAK,GAExB,CAEAiK,cACElO,KAAK6M,OAAS,CAAC,EACV7M,KAAKW,MAAMM,KAGhBjB,KAAKiE,SAAU,EACfjE,KAAKqM,eACP,CAEAP,iBAAiBoB,EAAOyB,EAAkClB,EAAAA,IAIxD,GAHuB,OAAnBkB,IACFA,EAAkBhB,GAAMA,IAErBT,EAAMjB,QAAUiB,EAAMN,IACzB,OAAO+B,EAAe,GAGxB,IAAIC,EAAY,IAAIxB,KAChByB,EAAU,IAAIzB,KACS,IAAvBF,EAAMP,MAAMtG,SACduI,EAAY,IAAIxB,KAAKF,EAAMP,MAAM,IACjCkC,EAAU,IAAIzB,KAAKF,EAAMP,MAAM,KAGjC,IAAImC,EAAgB,IAAI1B,KAAKF,EAAMjB,OAC/B8C,EAAc,IAAI3B,KAAKF,EAAMN,KAEjCgC,EAAUI,SAASF,EAAcG,YACjCL,EAAUM,WAAWJ,EAAcK,cACnCN,EAAQG,SAASD,EAAYE,YAC7BJ,EAAQK,WAAWH,EAAYI,cAE/B,MAAMjD,EAAQkD,MAAMlC,EAAMhB,QAAUgB,EAAMhB,MAAQ,EAAI,EAAIgB,EAAMhB,MAEhE,IAAImD,EAAOR,EAAQS,UAAYV,EAAUU,UAAYpD,EAKrD,OAJAmD,EAAOA,EAAO,GAAK,GAAK,IACpBA,EAAO,IACTA,EAAO,GAEFV,EAAeU,EACxB,CAEAzD,cAAc2D,GACZ,OAAOC,EAAAA,EAAAA,IAAcD,EACvB,CAEApD,eAAesD,GACb,MAAMC,EAAeD,EAAMtF,QAAQ,KAC7BwF,EAAI7C,OAAO8C,SAASH,EAAMI,OAAO,EAAGH,IACpCI,EAAIhD,OAAO8C,SAASH,EAAMI,OAAOH,EAAe,IAChDK,EAAUJ,EAAIG,EAAI,GACxB,OAAOE,EAAAA,GAAAA,OAA8BD,EACvC,CAEAhE,WAGE,GAFA/L,KAAKuM,yBAA0B,GAE1BvM,KAAKiQ,mBAQR,OAPAjQ,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,qEAEFC,KAAM,eAERtB,KAAKuM,yBAA0B,GAIjC,MAAM,QAAE2D,IAAYC,EAAAA,EAAAA,MAEdlE,EAAQjM,KAAKoQ,iBAAiBpQ,KAAK2L,SAASgB,MAAM,GAAI3M,KAAK2L,SAASM,OACpEW,EAAM5M,KAAKoQ,iBAAiBpQ,KAAK2L,SAASgB,MAAM,GAAI3M,KAAK2L,SAASiB,KAClEV,EAA8B,GAAtBlM,KAAK2L,SAASO,MAAa,GAAK,IAExCgB,EAA8B,CAClCjM,GAAIiP,EACJjE,MAAOA,EAAMqD,UACb1C,IAAKA,EAAI0C,UACTpD,MAAOA,EACPmE,OAAQ,EACRC,aAAc,GACdC,MAAO,EACPC,YAAa,EACbzP,QAASf,KAAKW,KAAKI,SAAW,EAC9BJ,KAAMX,KAAKW,KAAKM,GAChBwP,SAAUzQ,KAAKW,KAAK8E,KACpBiL,cAAe1Q,KAAKW,KAAKgQ,cAG3B3Q,KAAK4Q,WAAW,CAAEC,MAAO3D,IACtBrL,MAAK,KACJ7B,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,mEAEFC,KAAM,WACN,IAEH8H,OAAO0H,IACqB,MAAvBA,EAAMC,aAER/Q,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,uEAEFC,KAAM,UAGRtB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,iEAEFC,KAAM,S,IAIX0P,SAAQ,KACPhR,KAAKgM,kBAAmB,EACxBhM,KAAKuM,yBAA0B,EAC/BvM,KAAKkO,aAAa,GAExB,CAEA+B,mBACE,QAAKjQ,KAAK8L,iBAAiB9L,KAAK2L,SAAU,QAGP,IAA/B3L,KAAK2L,SAASgB,MAAMtG,UAGpBrG,KAAK2L,SAASM,OAAS,GAAKjM,KAAK2L,SAASiB,KAAO,GAAK5M,KAAK2L,SAASO,MAAQ,GAIlF,CAUAkE,iBAAiBa,EAAczD,GAC7B,MAAM0D,EAAW,IAAI9D,KAAK6D,GACpBE,EAAW,IAAI/D,KAAKI,GAM1B,OAJA2D,EAASC,QAAQF,EAASG,WAC1BF,EAASG,SAASJ,EAASK,YAC3BJ,EAASK,YAAYN,EAASO,eAEvBN,CACT,CAEAO,YAAYxE,GACV,GAAIlN,KAAK0M,cAAe,OACxB,IAAKQ,IAAUA,EAAMjM,GAAI,OAEzB,MAAMgL,EAAQjM,KAAKoQ,iBAAiBlD,EAAMP,MAAM,GAAIO,EAAMjB,OACpDW,EAAM5M,KAAKoQ,iBAAiBlD,EAAMP,MAAM,GAAIO,EAAMN,KAElDiE,EAAqC,CACzC5E,MAAOA,EAAMqD,UACb1C,IAAKA,EAAI0C,UACTpD,MAAOgB,EAAMhB,OAETrL,EAAO,CACXqP,QAAShD,EAAMjM,GACf4P,MAAOA,GAET7Q,KAAK2R,SAAS9Q,GACXgB,MAAK,KACJ7B,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,mEAEFC,KAAM,WACN,IAEH8H,OAAO0H,IACqB,MAAvBA,EAAMC,aAER/Q,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,uEAEFC,KAAM,UAGRtB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,iEAEFC,KAAM,S,IAIX0P,SAAQ,KACPhR,KAAK0M,eAAgB,CAAK,GAEhC,CAEAN,UAAUc,GACRlN,KAAKwM,eAAiBU,EAAMjM,GAC5BjB,KAAKyC,QAAS,CAChB,CAEA/B,kBAAkBwM,GAChB,MAAMnD,QAAgB/J,KAAK4B,WAAW,CACpCR,KAAM,GAAGpB,KAAKqB,GACZ,oEAGJ,IAAK0I,EACH,OAGF,MAAMlJ,EAAO,CACXqP,QAAShD,EAAMjM,IAGjBjB,KAAK4R,cAAc/Q,GAChBgB,MAAK,KAEJ7B,KAAK6R,QAAQ7R,KAAK6M,OAAQK,EAAMjM,IAChCjB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,mEAEFC,KAAM,WACN,IAEH8H,OAAO0H,IACN9Q,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,iEAEFC,KAAM,SACN,GAER,CAEAwQ,oBAAoB7Q,GAClB,GAAKA,EAIL,OAAOjB,KAAK+R,iBAAmB9Q,CACjC,CACA+Q,oBACEhS,KAAKyC,QAAUzC,KAAKyC,MACtB,IA5ZAT,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,4BAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,0CAIPd,EAAAA,EAAAA,IAAA,CADC3B,EAAa6B,QAAM,kCAMpBF,EAAAA,EAAAA,IAAA,CADC3B,EAAa6B,QAAM,gCAOpBF,EAAAA,EAAAA,IAAA,CADC3B,EAAa6B,QAAM,qCAOpBF,EAAAA,EAAAA,IAAA,CADCzB,EAAQ2B,QAAM,oCAIfF,EAAAA,EAAAA,IAAA,CADCzB,EAAQ2B,QAAM,kCAIfF,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,sCAmFpBD,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,qBAAmB,uCAQ1BtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,OAAQ,CAAE2H,WAAW,KAAO,gCAWnCjQ,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,cAAY,mCAjIAgC,GAAoBtK,EAAAA,EAAAA,IAAA,EATxCI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVoI,WAAU,IACVD,WAAU,IACV0H,WAAU,IACVC,cAAa,IACbtP,cAAaA,EAAAA,MAGIyJ,G,QCjC6S,I,UCQ9T/J,IAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,GAAeA,GAAiB,Q,gDCHhC,MAAMhC,IAAUD,EAAAA,EAAAA,IAAU,MACpBD,IAAeC,EAAAA,EAAAA,IAAU,gBAU/B,IAAqBgC,GAArB,cAAwC7B,EAAAA,GAAxC4E,c,oBAaE,KAAAC,OAAQ,EACR,KAAA7C,QAAS,EACT,KAAA+C,QAAS,EACT,KAAAE,SAAW,CACT0M,gBAAgB,EAChBzM,QAAQ,EACRgL,cAAc,EACdlL,MAAM,EACN1E,SAAS,EACTsR,SAAS,EACTrO,YAAY,GAGd,KAAAiB,IAAM,EAEN,KAAAmG,SAAiC,GAEjC,KAAAI,sBAAwB,GACxB,KAAA8G,kBAAmB,EAEnB,KAAAxM,wBAA0B,GAC1B,KAAAlF,SAAkB,CAChBK,GAAI,EACJwE,KAAM,GACNkL,cAAc,EACd0B,QAAS,EACTrO,WAAY,EACZmB,YAAa,GACboN,QAAS,GACTC,KAAM,GACNC,MAAO,CAAC,EACR1R,QAAS,GAGX,KAAA2R,4BAA6B,EAE7B,KAAAC,SAAW,CAAC,EAEZ,KAAAC,4BAA6B,CA6d/B,CA1dMzM,gBACF,MAAO,CACJC,KAAQA,GAAK,GAAGpG,KAAKqB,GAAG,wCACxB+E,GAAMA,EAAEC,QAAU,KAAO,GAAGrG,KAAKqB,GAAG,yCAEzC,CACIwK,kBACF,MAAO,CACJzF,GACc,kBAANA,GACP,GAAGpG,KAAKqB,GAAG,6CACZ+E,GAAMA,GAAK,GAAK,GAAGpG,KAAKqB,GAAG,6CAEhC,CAEIuJ,qBACF,OAAOlE,OAAOC,OAAOzF,GAAAA,EAAAA,YACvB,CAEIsF,kBACF,MAAMzF,EAAUG,GAAAA,EAAAA,YAA2BlB,KAAKY,SAASG,SAAW,GACpE,OACEwF,GAAAA,EAAAA,aAAwBa,QAAQC,GAAStG,GAASiF,MAAMsB,SAASD,EAAKE,QAAS,EAEnF,CAEIsL,gBACF,MAAMjM,EAAa5G,KAAKY,SAASyG,MAAQ,GACnCpB,EAAUM,GAAAA,EAAAA,YAAuBK,GACvC,OAAKX,EAGEA,EAAQY,WAAa,IAAMZ,EAAQa,UAFjC,EAGX,CAEIgM,kBACF,MAAMlM,EAAa5G,KAAKY,SAASyG,MAAQ,GACnCpB,EAAUM,GAAAA,EAAAA,YAAuBK,GAEvC,OAAOX,CACT,CAEI8M,yBACF,MAAMV,EAAUrS,KAAKY,SAASyR,QAC9B,OAAOnR,GAAAA,EAAAA,eAA8BmR,GAASW,IAChD,CAEInI,0BACF,MAAMoI,EAAwB,GAC9B,IAAK,IAAI3E,EAAI,EAAGA,EAAIpN,GAAAA,EAAAA,YAAAA,OAAmCoN,IACrD2E,EAAUtL,KAAK,CACbvG,KAAMF,GAAAA,EAAAA,eAA8BoN,GAAGlN,KACvC+B,MAAOmL,IAGX,OAAO2E,CACT,CACIpL,wBACF,IAAK7H,KAAKwF,OACR,OAAOxF,KAAKqB,GAAG,0CAEjB,OAAQrB,KAAKY,SAASoD,YACpB,KAAK,EACH,OAAOhE,KAAKqB,GAAG,gDACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,kDACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,2CACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,8CACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,kDACjB,QACE,MAAO,GAEb,CAEI6R,iBACF,IAAIC,EAAUnT,KAAKoT,UAAUlS,GAAAA,EAAAA,YAM7B,OALAlB,KAAKqL,YAAYxB,SAASwJ,WAEjBF,EAAQE,EAAIpS,GAAG,IAGjByF,OAAOC,OAAOwM,GAASzF,MAAK,CAACC,EAAGC,IACrCD,EAAElI,OAASmI,EAAEnI,KAAO,EAAIkI,EAAElI,KAAOmI,EAAEnI,MAAQ,EAAI,GAEnD,CAEI4F,kBACF,IAAImH,EAAO,GAQX,OANAxS,KAAKY,SAAS4R,MAAM3I,SAASyJ,IACvBpS,GAAAA,EAAAA,WAA0BoS,IAC5Bd,EAAK7K,KAAKzG,GAAAA,EAAAA,WAA0BoS,G,IAIjCd,EAAK9E,MAAK,CAACC,EAAGC,IAAOD,EAAElI,OAASmI,EAAEnI,KAAO,EAAIkI,EAAElI,KAAOmI,EAAEnI,MAAQ,EAAI,GAC7E,CAEI8N,mBACF,OAAOrS,GAAAA,EAAAA,SAAwBlB,KAAKY,UAAUK,KAAKwR,OAAOe,WAAa,EACzE,CAEI1I,wBACF,IAAK,MAAM2I,KAAKzT,KAAK0T,YAAa,CAChC,MAAMC,EAAO3T,KAAK0T,YAAYD,GAC9B,GAAIE,EAAKhT,MAAQX,KAAKY,SAASK,GAAI,OAAO,C,CAE5C,OAAO,CACT,CAEIiK,kBACF,IAAI0I,EAAO,CAAC,EACZ,IAAK,IAAI/C,KAAS7Q,KAAK2S,SACjB3S,KAAK2S,SAAS9B,GAAOlQ,OAASX,KAAKY,SAASK,KAC9C2S,EAAK/C,GAAS7Q,KAAK2S,SAAS9B,IAGhC,IAAK,IAAIvC,KAAKsF,EACZ,QAAKA,EAAKtF,GAAGuF,YAOf,OAAO,CACT,CAGAnT,qBAAqBqH,EAAcC,GACjC,GAAID,IAAQC,EACZ,GAAKD,EAKE,CAEL/H,KAAKiI,aAEL,MAAMtH,QAAaO,GAAAA,EAAAA,iBAAgClB,KAAKY,SAASK,IACjEjB,KAAKY,SAAS4R,KAAO7R,EAAK6R,I,MAR1BxS,KAAKkD,KAAK,eACVlD,KAAKiI,aACLjI,KAAKkI,UAQT,CAGA4L,sBACE9T,KAAK2S,SAAW3S,KAAKoT,UAAUpT,KAAK0T,YACtC,CAEAtL,UAEElH,GAAAA,EAAAA,gBACAA,GAAAA,EAAAA,eACAqF,GAAAA,EAAAA,gBACAvG,KAAK2S,SAAW3S,KAAKoT,UAAUpT,KAAK0T,YACtC,CAEAzL,aACEjI,KAAKsF,OAAQ,CACf,CAEA4C,WACElI,KAAKY,SAAW,CACdK,GAAI,EACJwE,KAAM,GACNkL,cAAc,EACd3M,WAAY,EACZqO,QAAS,EACTlN,YAAa,GACboN,QAAS,GACTC,KAAM,GACNC,MAAO,CAAC,EACR1R,QAAS,GAEXf,KAAKwF,QAAS,CAChB,CAEA+C,YAAYpF,EAAgBmF,EAAW,IACrC,GAAIA,EACE5B,OAAO+B,UAAUC,eAAeC,KAAK3I,KAAK0F,SAAU4C,KACtDtI,KAAK0F,SAAS4C,GAAYnF,QAG5B,IAAK,MAAMyF,KAAQ5I,KAAK0F,SACtB1F,KAAK0F,SAASkD,GAAQzF,CAG5B,CAEA4Q,UACE,IAAK/T,KAAKoL,SACR,OAEF,IAAIiI,EAAM,CAAEpS,GAAI,EAAGwE,KAAM,GAAIuO,WAAY,IACzC,GAA6B,kBAAlBhU,KAAKoL,SACdiI,EAAI5N,KAAOzF,KAAKoL,aACX,CACL,MAAMoH,EAAOtR,GAAAA,EAAAA,SAAwBlB,KAAKY,SAASK,IAAIuR,KACvD,IAAKA,GAAQA,EAAKlL,SAAStH,KAAKoL,SAASnK,IAKvC,YAHAjB,KAAKiU,WAAU,KACbjU,KAAKoL,SAAW,EAAE,IAItBiI,EAAMrT,KAAKoL,Q,CAEblK,GAAAA,EAAAA,mBAAkC,CAChCF,OAAQhB,KAAKY,SAASK,GACtBoS,IAAKA,IACJrC,SAAQ,KACThR,KAAKoL,SAAW,EAAE,GAEtB,CAEA8I,UAAUZ,GACRpS,GAAAA,EAAAA,4BAA2C,CACzCoS,MAAOA,EACPtS,OAAQhB,KAAKY,SAASK,IAE1B,CAEAsK,oBACqC,KAA/BvL,KAAKwL,wBAGJxL,KAAKY,SAAS6R,MAAMe,YACvBxT,KAAKY,SAAS6R,MAAMe,UAAY,IAElCxT,KAAKY,SAAS6R,MAAMe,UAAU7L,KAAK,CACjCxE,OAAO,EACP/B,KAAMpB,KAAKwL,wBAGbxL,KAAKkD,KAAK,SAAS,KAGjBlD,KAAK8D,KACH9D,KAAKY,SAAS6R,MACd,YACAvR,GAAAA,EAAAA,SAAwBlB,KAAKY,SAASK,IAAIwR,MAAMe,WAGlDxT,KAAKmU,uBAAuB,IAEhC,CAEAzT,0BAA0Bc,GACxBA,EAAK2B,OAAS3B,EAAK2B,YAEbnD,KAAKkD,KAAK,SAAS,KAGvBlD,KAAK8D,KACH9D,KAAKY,SAAS6R,MACd,YACAvR,GAAAA,EAAAA,SAAwBlB,KAAKY,SAASK,IAAIwR,MAAMe,UACjD,IAGHhS,EAAK2B,OAAS3B,EAAK2B,KACrB,CAEAgR,wBACEnU,KAAKsS,kBAAmB,EACxBtS,KAAKwL,sBAAwB,EAC/B,CAEA9K,sCACE,MAAM0T,QAAgBC,EAAAA,GAAAA,MACtBrU,KAAK0S,4BAA6B,EAClC,MAAM4B,GAAUtU,KAAKkL,YACjBoJ,EACF7T,EAAAA,GAAAA,UAAAA,MAAAA,KACQ,iCAAkC,CACtCE,KAAMX,KAAKY,SACXwT,QAASA,EACTE,OAAQ,YAETzS,MAAM0S,QACNnL,OAAOoL,QACPxD,SAAQ,KACPhR,KAAK0S,4BAA6B,EAClC,MAAM+B,GAAQlD,EAAAA,EAAAA,MAEdvR,KAAK0U,kBAAkBD,EAAM,IAGjChU,EAAAA,GAAAA,UAAAA,MAAAA,KACQ,iCAAkC,CACtCE,KAAMX,KAAKY,SACXwT,QAASA,EACTE,OAAQ,cAETzS,MAAM0S,QACNnL,OAAOoL,QACPxD,SAAQ,KACPhR,KAAK0S,4BAA6B,EAClC,MAAM+B,GAAQlD,EAAAA,EAAAA,MAEdvR,KAAK0U,kBAAkBD,EAAM,GAGrC,CAEA/T,WAAWmI,EAAyB,KAAMnG,EAA4B,MACpE,IAAI1C,KAAKsF,MAIT,GAAgB,OAAZuD,EAAkB,CAIpB,MAAMlI,EAAOO,GAAAA,EAAAA,SAAwBlB,KAAKY,UAAUK,IACpD,IAAKN,EACH,OAAO,EAET,IAAK+F,OAAO+B,UAAUC,eAAeC,KAAKhI,EAAMkI,GAC9C,OAAO,QAEG7I,KAAK8I,aAAaD,EAASlI,GAE5B+B,GACTA,IAFA1C,KAAKY,SAASiI,GAAWlI,EAAKkI,E,KAI3B,CAKL,IAAK7I,KAAKY,SAAS6E,KAKjB,YAJAzF,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,mDACjBC,KAAM,YAKLtB,KAAKY,SAASG,UACjBf,KAAKY,SAASG,QACZ2F,OAAOC,OAAOzF,GAAAA,EAAAA,aAA4ByT,MAAMpL,GAAMA,EAAEtG,cAAahC,IAAM,GAG/EjB,KAAKuI,aAAY,GAEjB,MAAMqM,QAAgB1T,GAAAA,EAAAA,cAA6B,CACjDJ,UAAWd,KAAKY,SAASG,SAAW,EACpCJ,KAAMX,KAAKY,WAEb,IAAKgU,EAGH,YADA5U,KAAKuI,aAAY,GAInBvI,KAAKY,SAAW,IAAKgU,GAErB5U,KAAKuI,aAAY,GACjBvI,KAAKwF,QAAS,C,CAElB,CAEA9E,mBAAmBmI,EAAiBlI,GAMlC,GAAsC,kBAA3BX,KAAKY,SAASiI,IACnB7I,KAAKY,SAASiI,KAAalI,EAAKkI,GAElC,OADAG,QAAQC,IAAI,eACL,EAIX,MAAMxF,EAAMzD,KAAKkJ,MAAM,OAAOL,KAC9B,GAAIpF,IAAQA,EAAI0F,MACd,OAAO,EAGTnJ,KAAKuI,aAAY,EAAMM,GAEvB,MAAMjI,EAAW,CAAC,EAClBA,EAASiI,GAAW7I,KAAKY,SAASiI,GAClC,MAAMhI,EAAO,CACXC,UAAWd,KAAKY,SAASG,SAAW,EACpCJ,KAAMC,EACNI,OAAQL,EAAKM,IAEf,aAAYC,GAAAA,EAAAA,iBAAgCL,IAQ5Cb,KAAKuI,aAAY,EAAOM,IACjB,IARL7I,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,kDACjBC,KAAM,UAERtB,KAAKuI,aAAY,EAAOM,IACjB,EAIX,CAEAnI,mBACE,MAAMqJ,QAAgB/J,KAAK4B,WAAW,CACpCR,KAAM,GAAGpB,KAAKqB,GAAG,oDACjBC,KAAM,YAEHyI,GAGL7I,GAAAA,EAAAA,iBAAgC,CAC9BD,GAAIjB,KAAKY,SAASK,GAClBH,UAAWd,KAAKY,SAASG,UAExBc,MAAK,KACJ7B,KAAKyC,QAAS,EACdzC,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,qDACjB,IAEH+H,OAAM,KACLpJ,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,kDACjBC,KAAM,SACN,GAER,CAEAuT,kBAAkB9M,GAChB/H,KAAKY,SAASG,QAAUgH,EACxB/H,KAAKkD,KAAK,UACZ,CAEAoB,eAAe9C,EAAMwI,GACnB,IAAIvE,EAAOjE,EAAKqF,WAAa,IAAMrF,EAAKsF,UACxCrB,EAAOA,EAAKwE,cACZ,MAAMC,EAAIF,EAAUC,cACpB,OAAOxE,EAAK0E,QAAQD,IAAM,CAC5B,CAEO3I,SAASZ,GACdX,KAAKY,SAAW,IAAKD,GACrBX,KAAKY,SAASG,QAAUJ,EAAKI,SAAW,EACxCf,KAAKwF,QAAS,EACdxF,KAAKyC,QAAS,CAChB,CAEOqS,WAAWhU,EAAY,GAC5Bd,KAAKkI,WACDpH,IACFd,KAAKY,SAASG,QAAUD,GAE1Bd,KAAKyC,QAAS,CAChB,CAEOf,iBAAiBF,GACtB,MAAMb,EAAOO,GAAAA,EAAAA,SAAwBM,EAAKb,MAAQ,GAC7CA,GAOLX,KAAKiF,IAAM,EACXjF,KAAKY,SAAW,IAAKD,GACrBX,KAAKwF,QAAS,EACdxF,KAAKyC,QAAS,EACdzC,KAAK8F,wBAA0BtE,EAAKP,IAVlCjB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,+CACjBC,KAAM,WASZ,IA7gBAU,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,qCAIfF,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,mCAIfF,EAAAA,EAAAA,IAAA,CADC3B,GAAa4B,QAAM,oCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,GAAa6B,QAAM,0CAgLpBF,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,WAAS,qCAkBhBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,gBAAc,yCA1MFhI,IAAUN,EAAAA,EAAAA,IAAA,EAR9BI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVkI,eAAc,KACdE,WAAU,IACV6B,qBAAoB,GACpB3B,WAAUA,EAAAA,MAGOrI,I,UC3BuR,MCSxS,IAAY,OACd,GACAxC,EACAM,GACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,O,kICpBoF,W,IAAc,O,EAAmB,QAAY,GAAoB,oB,OAA+B,OAAC+D,MAAAA,CAAqBN,WAAI,GAAYF,YAAGA,O,WAAa,mB,0BAAEL,G,YAAkBvD,EAAIgV,GAAAA,CAAAA,C,IAA8CxR,Y,GAAkBD,UAAM,G,kBAA+D,eAAe0R,EAAAA,EAAAA,EAAU,W,MAAC,U,MAAiC,CAAkB,YAA8B,WAAc,EAACjV,WAAS,MAAQA,EAAIkV,QAAc,sBAAG,eAAC,gBAAC,QAAa,MAAW,0BAAC9Q,eAAgBU,EAAK9E,KAAU8D,MAAI,iB,GAAwB,C,cAA+B,EAAC,O,YAAc,EAAS,GAAC,CAAE,O,kCAAgC,GAAM9D,EAAAA,EAAImV,CAAG,mBAAG,MAAC,CAAC,WAAM,MAAC,OAAU,OAAO,OAAO,IAAc,EAAC5R,OAA6F,EAAc,OAAO,GAAa,YAAc,I,eAA+B6R,GAAK,wC,MAAC,U,MAA8B,CAAwB,YAAChR,MAAW,EAACpE,QAAmB8D,eAAa,gBAACF,MAAG,EAAAA,M,YAAsB,c,eAAoB,EAAC,M,YAAc,EAAS,GAAC,CAAE,O,kCAAgC,GAAM5D,EAAAA,EAAImV,CAAG,mBAAG,MAAC,CAAC,WAAM,MAAC,OAAU,OAAO,OAAO,IAAU5R,EAAM,OAA4F,EAAK,OAAC,mBAAI,8CAAM,SAAC,CAAM,UAAW,2BAAsC,KAAmB,OAAKvD,MAAIqV,EAAMnV,KAAoBqD,SAAM,YAAC,OAAY,CAA+B,EAAmB,WAAWvD,SAA+B,eAACyD,MAAG,CAAC,OAASzD,EAAIsV,GAAAA,2BAAM,iBAAC7S,SAAM,WAACW,MAAOpD,EAAIkR,O,GAA+BlR,CAAY,OAAC,SAAkB,OAAG,MAAO,EAAG,KACprD,qBACGK,EAAAA,KAAe,CAEnB,E,6FCEA,IAAqBoK,EAArB,cAAwC/J,EAAAA,GAAxC4E,c,oBAqCE,KAAAK,UAAW,EACX,KAAA0P,MAAO,EACP,KAAAE,UAA2C,IA2G7C,CAzGMC,cACF,OAAOC,EAAAA,EAAAA,GAAOxV,KAAKyV,MACrB,CAEIC,oBACF,OAAOF,EAAAA,EAAAA,GAAOxV,KAAK2V,YACrB,CAEIX,iBACF,OAAOQ,EAAAA,EAAAA,GAAOxV,KAAK4V,SACrB,CAEIb,kBACF,OAAOS,EAAAA,EAAAA,GAAOxV,KAAK6V,UACrB,CAEIC,mBACF,OAAO9V,KAAK+U,YAAc,MAAQ,MACpC,CAEIE,oBAEF,IAAKjV,KAAKiR,KAAM,MAAO,GAEvB,GAAI8E,MAAMC,QAAQhW,KAAKiR,MAAO,CAI5B,IAAKjR,KAAKiR,KAAK5K,OAAQ,MAAO,GAE9B,IAAI4P,EAAaC,EAAAA,GAAAA,OAAqB,IAAI9I,KAAKpN,KAAKiR,KAAK,KACzD,MAAMpC,EACJ7O,KAAKiR,KAAK5K,OAAS,EAAI6P,EAAAA,GAAAA,OAAqB,IAAI9I,KAAKpN,KAAKiR,KAAK,KAAO,GAIxE,OAHIpC,GAAWA,IAAYoH,IACzBA,GAAcjW,KAAK8V,aAAejH,GAE7BoH,C,CAGT,OAAOC,EAAAA,GAAAA,OAAqB,IAAI9I,KAAKpN,KAAKiR,MAC5C,CAGAkF,aAAaf,GACPA,EAIFpV,KAAKsV,UAAYS,MAAMC,QAAQhW,KAAKiR,MAAQ,IAAIjR,KAAKiR,MAAQjR,KAAKiR,KAM7DjR,KAAK0F,UACR1F,KAAKqV,OAGX,CAEAe,aACE,GAAIL,MAAMC,QAAQhW,KAAKiR,MAAO,CAC5B,GAAIjR,KAAKiR,KAAK5K,SAAWrG,KAAKsV,WAAWjP,OACvC,OAAO,EAET,IAAK,IAAIiI,EAAI,EAAGA,EAAItO,KAAKiR,KAAK5K,OAAQiI,IACpC,GAAItO,KAAKiR,KAAK3C,KAAOtO,KAAKsV,UAAUhH,GAClC,OAAO,EAGX,OAAO,C,CAEP,OAAOtO,KAAKiR,OAASjR,KAAKsV,SAE9B,CAEAe,QACErW,KAAKsV,UAAYtV,KAAKiR,KACtBjR,KAAKiR,KAAO,KACZjR,KAAKqV,OACP,CAEAA,QACErV,KAAK0F,UAAW,EAChB1F,KAAKiU,WAAUvT,UAETqV,MAAMC,QAAQhW,KAAKiR,OAA8B,IAArBjR,KAAKiR,KAAK5K,QACxCrG,KAAKiR,KAAKtJ,KAAK3H,KAAKiR,KAAK,IAGvBjR,KAAKoW,eAEHpW,KAAKkD,YACDlD,KAAKkD,KAAKlD,KAAKiR,MAGvBjR,KAAKsW,MAAM,OAAQtW,KAAKiR,OAG1BjR,KAAKoV,MAAO,EACZpV,KAAKiU,WAAU,KACbjU,KAAK0F,UAAW,CAAK,GACrB,GAEN,IA/IA1D,EAAAA,EAAAA,IAAA,EADCgB,EAAAA,EAAAA,IAAO,CAAED,QAAS,QAAO,4BAI1Bf,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,+BAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,6BAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,mCAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAO,4BAIRd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAO,2BAIRd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,6BAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,mCAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,6BAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACiV,OAAQC,YAAW,gCAIlCxU,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACmV,SAAUC,YAAW,4BAIpC1U,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,iCAkDPd,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,SAAO,iCAnFKE,GAAUxI,EAAAA,EAAAA,IAAA,EAD9BI,EAAAA,EAAAA,IAAU,CAAC,IACSoI,G,QCNuR,I,UCQxSjI,GAAY,OACd,EACAzC,EACAM,GACA,EACA,KACA,WACA,MAIF,EAAemC,EAAiB,O,oFCnBYtC,EAAOC,W,IAASyW,EAAM,KAAuB,EAAO1W,EAAG,MAAM,GAA0DF,EAAI6W,MAAAA,Y,OAAc,wCAAyH,EAAU,KAAnI,S,MAAC,EAAQ7W,WAAQ,IAAIA,MAAO,SAA8D,GAAG,GAACA,WAAW,WAAQwD,MAAM,yB,KAAE,GAAesT,EAAAA,MAAAA,CAAkC,MAAC,CAAG,UAAC,iC,GAA0B,CAAuC,QAAC,YAAC,SAAY,YAASpS,KAAO,U,cAA6G4Q,SAAMyB,GAAsB,4EAAC,6BAAI/W,I,CAA2E0D,EAAG,GAAC,SAAK,W,MAAM,CAAC,SAAD,EAAC,Y,IAAC,M,MAAW,CAA0B,SAAmC,SAAW1D,EAAIgX,WAA2B,WAAc,EAAChX,kBAAkB,SAAUA,EAAIiX,YAAajX,EAAI2F,SAAS,eAAc3F,EAAIkX,cAAY,QAAQlX,EAAImX,WAAAA,EAAAA,SAAM,0BAAG,MAAC,S,GAA0BnX,CAA8B,kBAAE,wBAACyC,G,MAA6BE,C,MAA6ByU,EAAAA,UAAa,SAAC,YAACxU,EAAAA,UAAW,CAAW,EAAG,WAAU,eAAkD,WAANW,EAAM,Y,IAAC,M,MAAW,CAAc,MAAO,GAAS,SAAW,GAAwB,cAA0C,WAAc,EAACvD,kBAAkB,SAAUA,EAAIiX,YAAajX,EAAI2F,SAAS,eAAc3F,EAAIkX,cAAY,QAAQlX,EAAImX,WAAAA,EAAAA,SAAM,0BAAG,MAAC,S,GAA0BnX,CAA8B,kBAAE,wBAACyC,G,MAA6BE,C,MAA6ByU,EAAAA,UAAqB,SAAC,YAACxU,EAAAA,UAAW,OAAW,EAAG,WAAU,eACvhD,OACD,KAAIvC,IAEJ,E,sCCCA,IAAqBqK,EAArB,cAAwChK,EAAAA,GAAxC4E,c,oBA6CE,KAAA+R,eAAgB,EAChB,KAAAC,SAAU,EACV,KAAA/B,UAAiB,KACjB,KAAAnM,OAAQ,CA8FV,CA5FM0N,wBACF,OAAOrB,EAAAA,EAAAA,GAAOxV,KAAKsX,gBACrB,CAEIP,iBACF,OAAOvB,EAAAA,EAAAA,GAAOxV,KAAK0F,SACrB,CAEIgQ,oBACF,OAAOF,EAAAA,EAAAA,GAAOxV,KAAK2V,YACrB,CAEI4B,iBACF,OAAO/B,EAAAA,EAAAA,GAAOxV,KAAKwX,SACrB,CAEIR,gBACF,OAAOxB,EAAAA,EAAAA,GAAOxV,KAAKiE,QACrB,CAEI+Q,iBACF,OAAOQ,EAAAA,EAAAA,GAAOxV,KAAK4V,SACrB,CAEIgB,iBACF,MAAO,YAAY5W,KAAKyX,SAC1B,CAEIN,gBACF,OAAOnX,KAAK0X,OAAO1X,KAAK2X,UAC1B,CAEIR,cAAUhU,GACZnD,KAAK2X,UAAY3X,KAAK4X,SAASzU,EACjC,CAGA0U,gBAAgBR,GACVA,IAIFrX,KAAKsV,UAAYtV,KAAK2X,UACtB3X,KAAKmJ,MAAQnJ,KAAK8X,eAEtB,CAEA1P,UACEpI,KAAKmJ,MAAQnJ,KAAK8X,cACpB,CAEA1B,aACE,OAAOpW,KAAK2X,YAAc3X,KAAKsV,SACjC,CAEAwC,eACE,OAAO9X,KAAKyD,IAAI0F,KAClB,CAEA4O,OACM/X,KAAKgV,aAGThV,KAAKqX,SAAU,EACjB,CAEAhC,MAAM2C,GACe,SAAfA,EAAM1W,MAAmBtB,KAAK6W,mBAGlC7W,KAAKiU,WAAUvT,UAEb,GAAIV,KAAKoW,aAAc,CAErB,IAAKpW,KAAK8X,eACR,OAGE9X,KAAKkD,OACPlD,KAAKoX,eAAgB,QACfpX,KAAKkD,KAAKlD,KAAK2X,WACrB3X,KAAKoX,eAAgB,GAGvBpX,KAAKsW,MAAM,OAAQtW,KAAK2X,U,CAGrB3X,KAAK6W,oBACR7W,KAAKqX,SAAU,E,GAGrB,IA5IUrV,EAAAA,EAAAA,IAAA,EAATgB,EAAAA,EAAAA,OAAQ,iCAGThB,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACiV,OAAQC,YAAW,uCAIlCxU,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAMiV,OAAQxT,QAAS,MAAK,+BAIpCf,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACiV,OAAQC,YAAW,gCAIlCxU,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAMmV,SAAU1T,QAAU4K,GAAMA,KAAI,gCAI5C3L,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACiV,OAAQC,YAAW,mCAIlCxU,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACiV,OAAQC,SAAUzT,SAAS,KAAO,gCAIjDf,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACiV,OAAQC,YAAW,+BAIlCxU,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAMiV,OAAQxT,QAAS,MAAK,mCAIpCf,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACiV,OAAQC,YAAW,gCAIlCxU,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAMyU,MAAOhT,QAASA,IAAM,MAAK,6BAIzCf,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACmV,SAAUC,YAAW,4BAIpC1U,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAMmV,SAAU1T,QAAU4K,GAAMA,KAAI,8BAI5C3L,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAMiV,OAAQxT,QAAS,UAAS,4BAIxCf,EAAAA,EAAAA,IAAA,EADCG,EAAAA,EAAAA,OAAK,2BA6CNH,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,YAAU,oCAtFEG,GAAUzI,EAAAA,EAAAA,IAAA,EAD9BI,EAAAA,EAAAA,IAAU,CAAC,IACSqI,G,QCLuR,I,UCQxSlI,GAAY,OACd,EACAzC,EACAM,GACA,EACA,KACA,WACA,MAIF,EAAemC,EAAiB,O,8FCnB4BoU,EAAO5W,WAAsB,MAAU,KAAO6C,EAAAA,EAAAA,MAAY,GAAiB,QAAa,Y,OAAM,EAAC,O,YAAC,a,CAAuD,eAAe8C,C,MAAS,CAAkC,mDAAG,SAAC,WAAC,cAAc3F,EAAIkY,eAAgBzV,GAAAA,CAAOW,cAAWwU,EAAAA,gB,MAAuC,CAAc,MAAC,YAAChV,SAAU,SAAC,GAAW,aAAK5C,EAA+B6C,WAAY,eAA+B,EAAC,yB,YAAS,gB,GAAiB,IAAO7C,C,GAAmB,CAAC,kBAAM,OAAC,EAAS,YAACuD,IAAsC,QAAE,MAAMD,CAAoC,MAAC,0B,GAA0B,mBAAoB,GAAK,O,GAAA,CAAC,kBAAM,OAAC,EAAS,YAACC,IAAwB,QAAE,MAAMD,CAChuB,kBAGD,GAASvD,GAAAA,gBAAQM,IAAe,a,kDCOhC,IAAqBuK,EAArB,cAAwClK,EAAAA,GAAxC4E,c,oBAME,KAAAK,UAAW,EACX,KAAAwS,SAAW,GACX,KAAAC,iBAAkB,EAElB,KAAAC,cAAgB,CAEd,CAAC,CAAEC,KAAM,KACT,CAAC,CAAEC,KAAM,CAAC,SAAS,EAAO,QAAS,UACnC,CAAC,OAAQ,SAAU,aACnB,CAAC,CAAEC,MAAO,KACV,CAAC,SA2BL,CAxBEN,eAAeO,GACTA,EAAMC,IAAIpS,OAAS,EACjBrG,KAAK2X,YAAc3X,KAAKkY,WAC1BlY,KAAKmY,iBAAkB,GAGzBnY,KAAKkY,SAAWlY,KAAK2X,SAEzB,CAEAjX,eAAegY,GACTA,GACE1Y,KAAK2X,YAAc3X,KAAKkY,WAC1BlY,KAAK2X,UAAY3X,KAAKkY,SACtBlY,KAAKmY,iBAAkB,GAIvBnY,KAAKkD,OACPlD,KAAKmY,iBAAkB,QACjBnY,KAAKkD,KAAKlD,KAAK2X,WACrB3X,KAAKkY,SAAWlY,KAAK2X,UAEzB,IAzCU3V,EAAAA,EAAAA,IAAA,EAATgB,EAAAA,EAAAA,OAAQ,iCAGThB,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACmV,SAAUC,YAAW,2BAHjB/L,GAAU3I,EAAAA,EAAAA,IAAA,EAN9BI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVsW,WAAU,IACVC,UAASA,EAAAA,OAGQjO,G,QCXuR,I,UCSxSpI,GAAY,OACd,EACAzC,EACAM,GACA,EACA,KACA,WACA,MAIF,EAAemC,EAAiB,O,qHCpB6Ee,EAAM,W,IAAC,O,EAAc,QAAY,GAAO,QAAa,Y,OAAmB,OAA8B,MAAC,CAACa,WAAYpE,GAAS8D,YAAI,OAAYF,WAAY,mB,0BAAI,G,YAAU,O,IAAC,Y,GAA2DJ,UAAS,G,EAASD,M,UAAyC,eAAmBoS,EAAAA,EAAAA,EAAa,W,MAAC,EAAQ3V,Q,MAAU,CAA8B,YAAwB,MAAQA,EAAI8Y,QAAa,+BAAG,QAAc,MAAqEtV,YAAUkU,EAAO,YAACnU,eAAM,OAAC,QAAW,gB,eAAqC,GAAKoS,GAAAA,EAAa,mC,MAAC,EAAQ3V,Q,MAAU,CAA8B,YAAuB,gBAAG,eAAe,EAAC,cAA6C+Y,MAAS,QAAC,YAAY/Y,EAAM,YAAmB,wBAAM,8CAAI,UAAO,qC,WAAyD4C,CAAiB,aAAK5C,SAAQ,SAAK,GAAiBuD,EAAM,MAAC,EAAwB,WAASvD,SAAmCyD,CAAE,EAAC,Y,MAAC,CAAmB,oBAAChB,OAAM,iC,GAA8BE,C,OAA6BqW,EAAAA,O,MAAsBpW,CAA6B,yBAAG,SAAU,SAAG,GACztC,oBACGvC,EAEJ,WAAiBA,sB,6DCEjB,IAAqB8R,EAArB,cAAwCzR,EAAAA,GAAxC4E,c,oBA+BE,KAAAK,UAAW,EACX,KAAA0P,MAAO,EACP,KAAAE,UAA2B,IAwF7B,CAtFMC,cACF,OAAOC,EAAAA,EAAAA,GAAOxV,KAAKyV,MACrB,CAEIC,oBACF,OAAOF,EAAAA,EAAAA,GAAOxV,KAAK2V,YACrB,CAEIX,iBACF,OAAOQ,EAAAA,EAAAA,GAAOxV,KAAK4V,SACrB,CAEIb,kBACF,OAAOS,EAAAA,EAAAA,GAAOxV,KAAK6V,UACrB,CAEIgD,oBACF,IAAK7Y,KAAKwN,KAAM,MAAO,GACvB,MAAMyD,EAAO,IAAI7D,KAAKpN,KAAKwN,MAC3B,OAAOwL,EAAAA,GAAAA,OAAqB/H,EAC9B,CAEI8H,uBACF,IAAK/Y,KAAKwN,KAAM,MAAO,GACvB,MAAMyD,EAAO,IAAI7D,KAAKpN,KAAKwN,MAC3B,OAAOyD,EAAKgI,eAAepJ,OAAO,EAAG,EACvC,CAEIkJ,qBAAiBG,GACnB,IAAIjI,EAAO,IAAI7D,KACXpN,KAAKwN,OACPyD,EAAO,IAAI7D,KAAKpN,KAAKwN,OAEvB,MAAM2L,EAAcD,GAAYrJ,OAAO,EAAG,IAAM,GAC1CuJ,EAAgBF,GAAYrJ,OAAO,IAAM,GAC1CsJ,GAAgBC,IAGrBnI,EAAKjC,SAASlC,OAAO8C,SAASuJ,IAC9BlI,EAAK/B,WAAWpC,OAAO8C,SAASwJ,IAChCnI,EAAKoI,WAAW,GAChBpI,EAAKqI,gBAAgB,GACrBtZ,KAAKwN,KAAOyD,EAAK3B,UACnB,CAGA6G,aAAaf,GACPA,EAIFpV,KAAKsV,UAAYtV,KAAKwN,KAMjBxN,KAAK0F,UACR1F,KAAKqV,OAGX,CAEAe,aACE,OAAOpW,KAAKwN,OAASxN,KAAKsV,SAC5B,CAEAD,QACErV,KAAK0F,UAAW,EAChB1F,KAAKiU,WAAUvT,UAETV,KAAKoW,eAEHpW,KAAKkD,YACDlD,KAAKkD,KAAKlD,KAAKwN,MAGvBxN,KAAKsW,MAAM,OAAQtW,KAAKwN,OAG1BxN,KAAKoV,MAAO,EACZpV,KAAKiU,WAAU,KACbjU,KAAK0F,UAAW,CAAK,GACrB,GAEN,IAtHA1D,EAAAA,EAAAA,IAAA,EADCgB,EAAAA,EAAAA,IAAO,CAAED,QAAS,QAAO,4BAI1Bf,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,+BAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,6BAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,mCAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,4BAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,6BAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,mCAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACiV,OAAQC,YAAW,gCAIlCxU,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACmV,SAAUC,YAAW,4BAIpC1U,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,iCAqDPd,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,SAAO,iCAhFK4H,GAAUlQ,EAAAA,EAAAA,IAAA,EAD9BI,EAAAA,EAAAA,IAAU,CAAC,IACS8P,G,QCNuR,I,UCQxS3P,GAAY,OACd,EACAzC,EACAM,GACA,EACA,KACA,WACA,MAIF,EAAemC,EAAiB,O,gMCnByU,EAAS6B,W,IAAqBP,EAAK,KAAe,EAAG9D,EAAIiF,MAAK/E,GAAsBmE,EAAG,kB,OAAG,EAAC,4B,YAAS,2C,OAA4BmV,C,MAA2B,CAAC,iBAAE,MAAK,cAAmGjW,GAAK,EAAC,+D,MAAC,GAAQ,OAAE,qBAAIrD,EAAG,KAAM,OAAC2C,IAAAA,EAAwB,GAAI,CAASA,MAAW,SAAC,GAAsBkW,OAAS,uBAAC,IAAsC,CAAC,EAAC7Y,EAAAA,GAAkB,OAAM,CAAC2C,YAAY,oDAAaW,MAAM,CAAE,MAAQ,KAAgC,CAACtD,EAAG,MAAM,CAAmB8D,YAAY,a,CAAC,SAAS,CAAM,kCAAE,SAAS,CAAmJ,YAAY,EAAG9D,GAAG,aAAiD,EAAC,cAAC,YAAQ,aAAQ,OAAM,SAAC,EAAYA,SAAG,WAAQ,KAAQ,SAAS,QAAC,YAAY,CAAC,OAAU,S,CAAQwF,EAAI,GAAE,qH,KAAW,4BAAC,mBAAE,MAAK,CAAQ7C,MAAW,WAA4BU,CAAAA,EAAK,KAAC,O,MAAK,CAAY,QAAIvD,QAAU,GAA8H0D,MAAI,GAAmB,GAAG,CACx+C,mB,gRCWD,IAAqB+V,EAArB,cAAyC/Y,EAAAA,GAAzC4E,c,oBAGE,KAAAjC,YAAwB,CACtBnC,GAAI,EACJwE,KAAM,GACNN,YAAa,GACbJ,WAAW,EACX9B,YAAY,EACZe,WAAY,EACZ2B,OAAQ,EACRC,SAAU,KACVG,MAAO,GACPC,MAAO,GACPC,QAAS,GACTC,oBAAqB,KACrBL,uBAAwB,KAsC5B,CAnCMmR,gBACF,OAAQ9V,EAAAA,EAAAA,qBACV,CAEIuY,eACF,OAAO/S,OAAOC,OAAOzF,EAAAA,EAAAA,aAA4BwY,MAAM,EAAG,GAC5D,CAEAtR,UACElH,EAAAA,EAAAA,eACF,CAEA2G,kBAAkB7D,EAAY2V,GAC5B,GAAIA,EACF,OAAO3Z,KAAKqB,GAAG,mCAEjB,OAAQ2C,GACN,KAAK,EACH,OAAOhE,KAAKqB,GAAG,oCACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,sCACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,+BACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,kCACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,sCACjB,QACE,MAAO,GAEb,CAEAkY,mBAAmBxY,GACjBf,KAAK4Z,eAAexP,YAAYrJ,EAClC,IApDOiB,EAAAA,EAAAA,IAAA,EAANG,EAAAA,EAAAA,OAAK,qCADaqX,GAAWxX,EAAAA,EAAAA,IAAA,EAL/BI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACV+C,cAAaA,EAAAA,MAGIoU,G,QCZwR,I,UCSzSjX,GAAY,OACd,EACAzC,EACAM,GACA,EACA,KACA,WACA,MAIF,EAAemC,EAAiB,O,iKCpBqL,W,IAAc,O,EAAkC,EAAM,MAAKmJ,GAAK,oB,OAACvH,EAAAA,MAAYpE,CAAG,EAAG,IAAOgB,C,YAAkB,gB,MAAiB,C,oBAAyB8Y,I,QAAoCjX,EAAW,Q,MAAgD,EAAC,S,iBAAW7C,EAAI0L,a,KAAe,Q,YAAK,EAAQ,cAAe,GAAC,C,uCAA6B,oBAA0S,uBAACnI,MAAM,CAAC,gBAAmB,aAAI,kBAAiB,GAAC,OAAQvD,EAAIoG,QAAS,iBAAC,EAAoB,sCAAQhD,GAAK,EAAEpD,KAAI6U,CAAAA,EAAO,aAAM,C,IAAClS,iB,MAA4B,CAA+B,oBAAC,GAACC,eAAW,GAAc,kBAAI,KAAO,EAAI,U,MAAwB,CAAW,gBAAkB,KAAG,SAAO5C,SAAO,GAAyC,SAAcA,QAAO,SAA+C,EAAgC,8BAAsB8D,GAAI,cAAe,C,MAAI,C,MAAkB,G,kBAAyB,G,KAAYP,EAAM,4C,YAAS,KAAM,+C,MAAC,uB,YAAkC,EAACvD,GAAIgT,CAAAA,C,IAA+B,gB,GAAG,WAAE,cAACrO,YAAM,YAAO,MAAK,CAAuB,aAAM,OAAMkQ,OAAiBlS,QAAS,GAAoBoB,IAAK/D,EAAI6U,mBAAoB7U,EAAI+Z,YAAsC,EAAI,OAAM,IAA6B,MAAC,aAAmBxW,MAAM,CAAC,MAAO,EAAG,gBAAC,kBAAiB,GAAC,EAAK,KAAI,4BAAC,EAAgB,WAAW,sBAAcd,GAAM,e,IAACW,mB,MAA2BT,C,MAA6BoB,GAAwC,eAAC,GAACnB,IAAAA,IAA2B,cAAI,MAAO,EAAI,aAAgDW,MAAM,CAAC,QAAW,QAAG,OAAC,SAAQ,SAAE,GAAC,SAAc,QAAG,iBAAC,EAAuE,WAAY,qBAAmC,KAAO,KAAKkD,CAAAA,EAAAA,EAAAA,EAAAA,CAAW,IAAC,qBAAChD,MAAG,CAAC,UAAa,G,MAAsBoR,GAA6B,kBAAE,mEAACzQ,aAAe,MAAMN,OAAI,EAAS,eAACF,MAAG,EAAAA,a,kBAAwD,Y,EAAC,QAAO,eAAO,I,eAAmC,EAACC,GAAAA,CAAAA,C,IAAoC,U,GAAG,WAAE,cAACc,YAAM,OAAM,OAAK,aAAe,OAAS,OAAElD,QAAAA,GAAO,gBAA2F,EAAEqC,OAAI,GAAOF,C,IAAcnC,YAAK,GAAE,eAAC,IAA4F,MAAK,GAAK,OAAC,GAAW,uDAACgB,GAAOW,CAAmCT,IAAAA,O,GAAyB3C,UAAY,KAAiC,IAAoC,0EAAI,IAA0B6C,MAAAA,EAAY,YAAOU,MAAM,CAAC,QAAU,QAAKyW,eAAwB,qBAAI,oCAAC,E,WAAmC,6BAAY,kBAAE,YAAS,OAA8BzW,MAAM,CAAC,SAAWvD,EAAIga,yBAAyBvW,GAAG,CAAC,MAAQ,SAASiB,GAAQ1E,OAAI8Z,EAAAA,UAAwB,IAAI,CAAC9Z,EAAIsD,GAAG,iBAAiB,EAAG,IAAG,CAAC,OAAM,SAAC,2BAAe,GAAC,CAAU,MAAS,YAAE7B,EAAAA,kBAAAA,CAAO,IAAkB+B,CAAAA,EAAK,GAAC,uBAAjrF,gBAAE,YAAY,0CAAwFf,MAAM,CAACW,QAAWyR,EAAAA,QAAQjE,Q,GAAuC5Q,CAA0C,MAAC,YAAC4C,EAAAA,kBAAW,CAAsB,IAAkCc,CAAAA,EAAI,YAAgB,2C,SAA07E,G,KAACM,C,cAA+B,UAAC,K,UAA8B,QAAWiW,C,MAAgB,CAAC,yCAA8B1W,YAAM,CAAC,OAAU,W,GAAkB,CAAe,kBAACd,OAAM,eAACW,I,GAAmDpD,KAAI+D,CAAI,EAACtC,EAAAA,EAAM,C,MAAqB,CAACmB,SAAW,GAAmB,YAAI,QAAO,GAAkF,MAAK,CAASC,MAAAA,EAAY,aAAwBU,SAAM,YAAC,OAAU,EAAE,iBAAC,EAAe,WAAS,wBAAyC,yDAAG,YAAW,UAAqOA,CAAAA,EAAK,IAAC,C,YAAW,wB,MAAC,CAAU,WAAG,MAAC,OAAC,OAAQ,O,IAAiBmB,EAAOwV,mBAAiB,MAA4B,qMAAC,OAAIha,MAAG,GAA6C,SAAO,GAAE,CAAmB,eAAU,GAAwQ,OAAvQ,EAAW,kBAA4P,eAAM,IAAwB,OAAY,CAAC,iCAACwD,GAAoB,CACvhJ,qBACGrD,GAAAA,WAEJ,MAAe,GAAEA,SAAAA,CAAAA,EAAe,uN,mLCWhC,MAAMG,GAAUD,EAAAA,EAAAA,IAAU,MAU1B,IAAqBgM,EAArB,cAAkD7L,EAAAA,GAAlD4E,c,oBAmBE,KAAAwU,kBAAmB,EACnB,KAAAE,yBAA0B,EAW1B,KAAAtN,aAAe,GACf,KAAAf,KAAO,EACP,KAAAkJ,QAAU,CACRjE,cAAc,EACdlL,KAAM,GACNzB,WAAY,EACZqO,QAAS,EACT1M,OAAQ,EACRyM,eAAgB,MAElB,KAAArM,MAAmB,CAAC,EAiBpB,KAAAmU,iBAAmB,CACjBzK,MAAO,EACP0K,QAAS,EAyPb,CAhSM1O,cACF,MAAO,CACL,CAAErK,KAAMpB,KAAKqB,GAAG,sCAAuC8B,MAAO,gBAC9D,CAAE/B,KAAMpB,KAAKqB,GAAG,iCAAkC8B,MAAO,QACzD,CAAE/B,KAAMpB,KAAKqB,GAAG,oCAAqC8B,MAAO,WAC5D,CAAE/B,KAAMpB,KAAKqB,GAAG,mCAAoC8B,MAAO,UAC3D,CAAE/B,KAAMpB,KAAKqB,GAAG,uCAAwC8B,MAAO,kBAC/D,CAAE/B,KAAM,GAAI+B,MAAO,WAEvB,CAaIgD,gBACF,MAAO,CACJC,KAAQA,GAAKpG,KAAKqB,GAAG,mDACrB+E,GAAMA,EAAEC,QAAU,KAAOrG,KAAKqB,GAAG,gDAEtC,CACIwK,kBACF,MAAO,CACJzF,GACc,kBAANA,GACPpG,KAAKqB,GAAG,oDACT+E,GAAMA,GAAK,GAAKpG,KAAKqB,GAAG,oDAE7B,CAOI+Y,kBACF,OAAOlZ,EAAAA,EAAAA,QACT,CAEImZ,eACF,MAAMtU,EAAQ,GACd,IAAK,MAAMpF,KAAQ+F,OAAOC,OAAO3G,KAAK+F,OACpCA,EAAM4B,KAAK,CACT1G,GAAIN,EAAKM,GACT0P,aAAchQ,EAAKgQ,aACnBlL,KAAM9E,EAAK8E,KACX4M,QAAS1R,EAAK0R,QACd1M,OAAQhF,EAAKgF,OACbyM,eAAgBzR,EAAKyR,eACrBrR,QAASJ,EAAKI,QACdsG,KAAM1G,EAAK0G,KACXmL,KAAM7R,EAAK6R,KACXC,MAAO9R,EAAK8R,MACZF,QAAS,GACTpN,YAAaxE,EAAKwE,YAClBnB,WAAYrD,EAAKqD,aAGrB,OAAO+B,CACT,CAEIS,kBAEF,OACED,EAAAA,EAAAA,aAAwBa,QAAQC,GAASrH,KAAKe,QAAQiF,MAAMsB,SAASD,EAAKE,QAC1E,EAEJ,CAEIsD,0BACF,MAAMoI,EAAwB,GAC9B,IAAK,IAAI3E,EAAI,EAAGA,EAAIpN,EAAAA,EAAAA,YAAAA,OAAmCoN,IACrD2E,EAAUtL,KAAK,CACbvG,KAAMF,EAAAA,EAAAA,eAA8BoN,GAAGlN,KACvC+B,MAAOmL,IAGX,OAAO2E,CACT,CAGAqH,eAAenX,GACRA,GACHuD,OAAOoH,OAAO9N,KAAK4U,QAAS5U,KAAKua,qBAErC,CAGAC,mBACExa,KAAKya,YACP,CAGAzM,WAAWjN,EAAmB2Z,GACxB3Z,GAASE,KAAOyZ,GAAYzZ,KAC3BF,EAAQE,GAIbjB,KAAKya,aAHHza,KAAK+F,MAAQ,CAAC,EAIlB,CAGAoI,eAAepI,GACb,IAAKA,IAAUA,EAAMM,OACnB,OAEF,IAAKrG,KAAK2a,mBACR,OAGF,MAAMvW,EAAM2B,EAAMsI,WAAWC,GAAMA,EAAErN,KAAOjB,KAAK2a,sBACpC,IAATvW,IAIJpE,KAAK0L,KAAO6C,KAAKC,MAAMpK,EAAM,GAAKpE,KAAKyM,cACzC,CAEArE,UACEpI,KAAK4a,sBAEL5a,KAAK6a,QACH,IAAM7a,KAAKyC,SACVA,IACKA,GACFzC,KAAK4a,qB,GAIb,CAEArI,UAAW,CAEXgI,qBACEva,KAAK4U,QAAU,CACbjE,cAAc,EACdlL,KAAM,GACNzB,WAAY,EACZqO,QAAS,EACT1M,OAAQ,EACRyM,eAAgB,KAEpB,CAEA0I,gBAAgBC,GACd,MAAM5T,EAAWZ,EAAAA,EAAAA,YACjB,IAAKY,EACH,MAAO,GAET,MAAME,EAAOF,EAASwN,MAAMqG,GAAMA,EAAEzT,MAAQwT,IAC5C,OAAK1T,EAGEA,EAAKR,WAAa,IAAMQ,EAAKP,UAF3B,EAGX,CAEA8T,sBACEna,EAAAA,GAAAA,UAAAA,MAAAA,IACO,uCAAuCT,KAAKe,QAAQE,OACxDY,MAAMC,IACL9B,KAAKka,iBAAiBzK,MAAQlB,KAAK0M,MAAMnZ,EAASjB,KAAO,MACzDb,KAAKka,iBAAiBC,QAAU5L,KAAK0M,MAAOnZ,EAASjB,KAAO,KAAW,IAAM,GAEnF,CAEAkS,mBAAmBvR,GACjB,MAAM6Q,EAAU7Q,EAAK6Q,QACrB,OAAOnR,EAAAA,EAAAA,eAA8BmR,GAASW,IAChD,CAEAkI,eAAe1Z,GACb,MAAM6Q,EAAU7Q,EAAK6Q,QACrB,OAAOnR,EAAAA,EAAAA,eAA8BmR,GAASjR,IAChD,CAEAqZ,aACEza,KAAK+F,MAAQ,CAAC,EACT/F,KAAKe,SAASE,KAGnBjB,KAAK+F,MAAQ,IAAK7E,EAAAA,EAAAA,oBAAmClB,KAAKe,QAAQE,KACpE,CAEAqD,eAAe9C,EAAMwI,GACnB,IAAIvE,EAAOjE,EAAKqF,WAAa,IAAMrF,EAAKsF,UACxCrB,EAAOA,EAAKwE,cACZ,MAAMC,EAAIF,EAAUC,cACpB,OAAOxE,EAAK0E,QAAQD,IAAM,CAC5B,CAEA8P,WAAWrZ,GACTX,KAAKmb,cAAc5Z,SAASZ,EAC9B,CAEAD,iBAGE,GAFAV,KAAK+Z,yBAA0B,GAE1B/Z,KAAKob,mBAMR,OALApb,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,sDACjBC,KAAM,eAERtB,KAAK+Z,yBAA0B,GAIjC,MAAMpZ,EAAc,CAClBM,GAAI,EACJwE,KAAMzF,KAAK4U,QAAQnP,KACnBN,YAAa,GACbwL,aAAc3Q,KAAK4U,QAAQjE,aAC3B3M,WAAYhE,KAAK4U,QAAQ5Q,WACzBqO,QAASrS,KAAK4U,QAAQvC,QACtB1M,OAAQ3F,KAAK4U,QAAQjP,OACrB4M,QAAS,GACTC,KAAM,GACNC,MAAO,CAAC,EACRL,eAAgBpS,KAAK4U,QAAQxC,sBAIrBlR,EAAAA,EAAAA,cAA6B,CAAEJ,UAAWd,KAAKe,QAAQE,GAAIN,KAAMA,IAOzEX,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,sDACjBC,KAAM,YAPRtB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,oDACjBC,KAAM,UASVtB,KAAK6Z,kBAAmB,EACxB7Z,KAAK+Z,yBAA0B,CACjC,CAEAqB,mBACE,MAAMC,EAAUrb,KAAKkJ,MAAM,kBACrBoS,EAAYtb,KAAKkJ,MAAM,oBAC7B,OAAImS,IAAYA,EAAQlS,OACtBH,QAAQC,IAAIoS,IACL,KAELC,IAAcA,EAAUnS,MAI9B,CAEAzI,iBAAiBC,GACf,MAAMoJ,QAAgB/J,KAAK4B,WAAW,CACpCR,KAAM,GAAGpB,KAAKqB,GAAG,oDAEnB,IAAK0I,EACH,OAGF,MAAMlJ,EAAO,CACXI,GAAIN,EAAKM,GACTH,UAAWH,EAAKI,SAGlBG,EAAAA,EAAAA,iBAAgCL,GAC7BgB,MAAK,KAEJ7B,KAAK6R,QAAQ7R,KAAK+F,MAAOpF,EAAKM,IAC9BjB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,mDACjBC,KAAM,WACN,IAEH8H,OAAO0H,IACN9Q,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,iDACjBC,KAAM,SACN,GAER,IAlTAU,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,+BAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,0CAIPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,8BAIPd,EAAAA,EAAAA,IAAA,EADCG,EAAAA,EAAAA,IAAI,eAAa,qCAIlBH,EAAAA,EAAAA,IAAA,CADCzB,EAAQ2B,QAAM,oCAIfF,EAAAA,EAAAA,IAAA,CADCzB,EAAQ2B,QAAM,kCA6FfF,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,qBAAmB,oCAQ1BtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,cAAe,CAAEiR,MAAM,KAAO,sCAMrCvZ,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,UAAW,CAAE2H,WAAW,KAAO,gCAWtCjQ,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,aAAW,mCAlICgC,GAAoBtK,EAAAA,EAAAA,IAAA,EARxCI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVmI,WAAU,IACVC,WAAU,IACVnI,WAAU,IACV4P,WAAUA,EAAAA,MAGO5F,G,QCzBsR,I,UCQvS/J,GAAY,OACd,EACAzC,EACAM,GACA,EACA,KACA,WACA,MAIF,EAAemC,EAAiB,O,8JCnBgI,EAAK,W,IAAYe,EAAM,K,EAAC,QAAW,GAAG,QAAcvD,Y,OAA2D,SAAc,EAAC,K,IAAoB,O,MAAwB,CAA4B,sBAA4C,QAACyD,MAAG,CAAC,SAASzD,GAAqB,qEAAIE,eAAe,oBAAEwD,MAAI,cAAmBH,MAAM,kBAAC,QAAW,UAAG,SAAW,EAAI,Q,GAAiG,CAAsB,OAAQvD,EAAIyb,qBAA+B,OAAChY,IAAG,mB,MAAC,CAAmC,YAACW,MAAW,EAACpE,GAAI8E,+CAAKhB,eAAU,mCAACF,MAAG,EAAAA,U,MAAWnC,EAAAA,SAAK,SAAE,U,WAA2EuC,EAAAA,uB,YAA2B,O,IAAG,O,GAAiDnB,UAAAA,KAA8C,IAAoD,gBAAM,YAAC,4CAACO,YAAWsY,CAAkB/Y,MAAS,SAAyC,wCAACC,YAAW,oCAAkB,uCAAI1C,KAA+B,MAAK,CAAS2C,MAAAA,EAAY,iBAAS3C,SAAG,SAAe,GAACqD,EAAM,kBAAC,EAA+D,iCAAkD,MAAQvD,CAAa,YAAC,QAACyC,CAAAA,EAAK,IAAC,C,YAAYoM,Q,CAAWlM,EAAAA,EAAAA,EAAS,C,MAAmB,CAAc,MAAC,qDAACC,eAAW,qBAAW,YAAI,MAAO,aAA4B,MAAK,CAAgBW,MAAM,YAAC,SAAQvD,SAAO,GAA8C,EAAM,UAAO,CAAC,EAAsB,2BAAQoD,GAAK,EAAEpD,EAAAA,EAAI8O,C,YAAkB,Q,GAAgB9O,EAAAA,EAAW,C,MAAK,CAAC4C,MAAAA,EAAW,iDAAS,YAAI,MAAO,EAAI,WAA4B,MAAK,CAASC,MAAAA,EAAY,QAAOU,SAAM,YAAC,EAAM,QAAC,CAAG,EAAIrD,WAAG,cAAuB,OAAQF,EAAIsB,EAAAA,EAAG,C,YAA8C,Q,CAA2B,MAAO,C,YAAetB,OAAa,MAAC,CAACyC,KAAM,M,CAAqBE,EAAAA,EAAAA,EAAS,C,MAAmB,CAAY,MAAC,mDAACC,eAAW,YAAS,YAAI,MAAO,aAA4BW,MAAM,CAAC,MAAM,EAAC,QAAG,qBAAM,EAAC,SAAgBA,EAAO,WAAW,cAAiE,KAAO,IAAKoY,CAAS,YAAC,OAAClZ,MAAM,CAACW,KAAOpD,M,GAAuCA,EAAAA,EAAY,C,MAAK,CAAC4C,MAAAA,EAAW,kDAAU,YAAI,MAAO,EAAI,W,MAAuB,CAA6D,iBAA6B,qBAACH,EAAM,UAACW,EAAoBT,WAAS,eAAgC,c,MAACC,CAAoB,yDAAI1C,eAAW,eAAqB,MAAK,CAASqD,MAAM,UAAC,SAAO,YAAM,WAAIrD,EAAe2C,WAAY,aAAuB,MAAQ,C,YAAG,S,CAAkB,MAAQ,C,MAAG,CAAkB,KAAO,SAAwDJ,CAAAA,EAAK,IAAC,C,YAAYmZ,gB,MAAajZ,C,MAA6BiZ,GAAe,eAAC,GAAChZ,MAAAA,GAAwB,gBAAI,MAAO,qD,MAA6C,CAAa,oBAAI1C,SAAG,SAAa,GAAC2C,EAAAA,YAAkB,CAACU,EAAO,WAAO,kBAAuC,UAAcsY,EAAAA,OAAiV,gBAACC,MAAAA,CAAU,KAAO,S,CAAuD,gBAAC,wBAAG,MAAI,CAAcjZ,MAAW,GAAQU,KAAM,iD,SAAiB,CAA8B,MAAOvD,SAAO,GAAyC,mCAAC8b,K,EAAmC,aAAWC,C,YAAuC,OAAC,OAAI,KAAI/b,SAClpH,0BACGK,KAAAA,EAAAA,GAAe,0C,2FAFggG,O,MAAC,CAA8D,c,CAAW,eAAQ,C,YAAwBL,O,MAA2C,CAAC,cAAI,SAASyF,EAAM,eAAclC,QAAM,iBAAC,KAAO,sDAAQ,SAAK,CAAcV,MAAW,SAAC,GAAYU,OAAM,wCAAC,MAAoE,I,8FCat1G,MAAMjD,GAAeC,EAAAA,EAAAA,IAAU,gBACzBC,GAAUD,EAAAA,EAAAA,IAAU,MAO1B,IAAqB6R,EAArB,cAA2C1R,EAAAA,GAA3C4E,c,oBA2CE,KAAA0W,gBAAkB,EAKlB,KAAAN,iBAAiD,GACjD,KAAA7M,UAAY,GACZ,KAAAC,QAAU,GACV,KAAAmN,QAAU,GACV,KAAAC,SAAW,GACX,KAAAC,QAAU,GACV,KAAAP,aAAc,EAEd,KAAAQ,WAAY,EACZ,KAAAT,UAAY,CAAEtV,KAAQA,GAAK,YAC3B,KAAAgW,YAA0B,GAC1B,KAAAZ,SAAuB,GACvB,KAAAa,sBAAuB,EAEvB,KAAAT,gBAAiB,EAEjB,KAAAjb,UAA0B2b,CAoU5B,CAlUMC,kBACF,OAAOrb,EAAAA,EAAAA,WACT,CAEAsb,kBAAkB3b,GAChBb,KAAKgc,QAAUvb,EAAAA,GAAAA,UAAAA,QAAsBI,EAAKoL,OAAOwQ,OAAO,SACxDzc,KAAKic,SAAWxb,EAAAA,GAAAA,UAAAA,QAAsBI,EAAK+L,KAAK6P,OAAO,SACvDzc,KAAK4O,UAAYnO,EAAAA,GAAAA,UAAAA,QAAsBI,EAAKoL,OAAOwQ,OAAO,cAC1Dzc,KAAK6O,QAAUpO,EAAAA,GAAAA,UAAAA,QAAsBI,EAAK+L,KAAK6P,OAAO,aACxD,CAGAC,4BACE,GAAI1c,KAAKwF,QAAUxF,KAAKwM,eAAgB,CACtC,MAAMmQ,EAAiB3c,KAAK0T,YAAY1T,KAAKwM,iBAAiB7L,KAC9D,IAAKgc,EACH,OAGFzb,EAAAA,EAAAA,cAA6Byb,GAAgB9a,MAAM+a,IACjD5c,KAAKW,KAAOic,CAAY,IAE1B5c,KAAKwc,kBAAkBxc,KAAK0T,YAAY1T,KAAKwM,gB,CAEjD,CAGAqQ,kBAAkB5L,EAAc6L,GACzB7L,GAAQA,IAAS6L,IAKjB9c,KAAK6O,QAKNoC,EAAOjR,KAAK6O,UAEd7O,KAAK6O,QAAUoC,GALfjR,KAAK6O,QAAUoC,EAQnB,CAGA8L,gBAAgB9L,EAAc6L,GACvB7L,GAAQA,IAAS6L,IAKjB9c,KAAK6O,QAKNoC,EAAOjR,KAAK4O,YAEd5O,KAAK4O,UAAYqC,GALjBjR,KAAK4O,UAAYqC,EAQrB,CAEA+L,oBACEhd,KAAKoc,YAAc,CACjB,CACEhb,KAAM,GAAGpB,KAAKqB,GAAG,qDACjB8B,MAAO,IAGX,IAAK,MAAMoG,KAAK7C,OAAOC,OAAOzF,EAAAA,EAAAA,aAC5BlB,KAAKoc,YAAYzU,KAAK,CACpBvG,KAAMmI,EAAE9D,KACRtC,MAAOoG,EAAEtI,IAGf,CAEAgc,iBACEjd,KAAKwb,SAAW,GAChB,IAAK,MAAM/H,KAAK/M,OAAOC,OAAOzF,EAAAA,EAAAA,UAA0C,CACtE,GAAIlB,KAAK+b,iBAAmBtI,EAAE1S,UAAYf,KAAK+b,gBAC7C,SAEF,GAAItI,EAAExS,KAAOjB,KAAK+B,gBAEhB,SAEF,GAAI0R,EAAE9C,aAEJ,SAEF,MAAMuM,EAAchc,EAAAA,EAAAA,YAA2BuS,EAAE1S,SAAW,IAAI0E,KAChEzF,KAAKwb,SAAS7T,KAAK,CACjBuV,YAAaA,EACbpc,UAAW2S,EAAE1S,QACbK,KAAMqS,EAAEhO,KACRtC,MAAOsQ,EAAExS,I,CAGf,CAEAmH,UACMpI,KAAKmd,oBAITnd,KAAKgd,oBACLhd,KAAKid,iBAEDjd,KAAKW,OACPX,KAAK+b,gBAAkB/b,KAAKW,KAAKI,SAAW,EAC5Cf,KAAKyb,iBAAmBzb,KAAKW,KAAK8E,MAAQ,IAIvCzF,KAAK4O,WAAc5O,KAAK6O,UAE3B7O,KAAK4O,UAAYnO,EAAAA,GAAAA,UAAAA,UAAwBgc,OAAO,eAEpD,CAGAW,eAAezc,GACRA,GAKHX,KAAK+b,gBAAkBpb,EAAKI,SAAW,EACvCf,KAAKyb,iBAAmB9a,EAAK8E,MAAQ,GACrCzF,KAAK2b,YAAchb,EAAKgQ,eANxB3Q,KAAK+b,gBAAkB,EACvB/b,KAAKyb,iBAAmB,GACxBzb,KAAK2b,aAAc,EAMvB,CAGA0B,KAAKC,GACCA,GAGJpc,EAAAA,EAAAA,gBAA+BW,MAAK,KAClC7B,KAAKgd,oBACLhd,KAAKid,gBAAgB,GAEzB,CAGAM,gBAAgB9D,GACTA,GACLzZ,KAAKgd,mBACP,CAEAQ,YACExd,KAAK+b,gBAAkB,EACvB/b,KAAKyb,iBAAmB,GACxBzb,KAAKqc,sBAAuB,CAC9B,CAEAxH,kBAAkB/T,GAChBd,KAAK+b,gBAAkBjb,EAEvBd,KAAKid,iBAGgC,kBAA1Bjd,KAAKyb,mBAGhBzb,KAAKqc,qBAAuBvb,IAAcd,KAAKyb,iBAAiB3a,UAClE,CAEA2c,sBAAsBjc,GAGA,kBAATA,IAGXxB,KAAK+b,gBAAkBva,EAAKV,WAAa,EAC3C,CAEAgb,iBAAiB7Q,GACfA,EAAEK,iBAEF,MAAMoS,EAAa,IAAItQ,KAAKpN,KAAK4O,UAAY,IAAM5O,KAAKgc,SAAS1M,UAC3DqO,EAAW,IAAIvQ,KAAKpN,KAAK6O,QAAU,IAAM7O,KAAKic,UAAU3M,UAExDsO,EACH3S,EAAE2S,QAAiC3S,EAAE4S,eAAuC,KAC/E,IAAKD,EACH,OAEF5d,KAAK4b,gBAAiB,EAKtB,MAAMkC,EAAQ9d,KAAKkJ,MAAM,oBACzB4U,EAAMC,OAGsB,GAAxB/d,KAAK+b,kBACP/b,KAAK+b,gBAAkB7a,EAAAA,EAAAA,qBAIzBlB,KAAKiU,WAAU,KAEb,IAAIwH,EAAmB,GACnBuC,EAAiB,EAarB,GAZqC,kBAA1Bhe,KAAKyb,kBAAiCzb,KAAKqc,qBAEpDZ,EACmC,kBAA1Bzb,KAAKyb,iBACRzb,KAAKyb,iBACLzb,KAAKyb,iBAAiBra,KAG5B4c,EAAiBhe,KAAKyb,iBAAiBtY,OAIpCnD,KAAKie,KAAKC,WAEb,YADAle,KAAK4b,gBAAiB,GAMxB,MAAM,QAAE1L,IAAYC,EAAAA,EAAAA,MAGdjD,EAA8B,CAClCjM,GAAIjB,KAAKwM,gBAAkB0D,EAC3BjE,MAAOyR,EACP9Q,IAAK+Q,EACLzR,MAAO,EACPmE,OAAQ,EACRC,aAActQ,KAAKkc,QACnB3L,MAAO,EACPC,YAAa,EACbzP,QAASf,KAAK+b,gBACdpb,KAAMX,KAAKW,KAAOX,KAAKW,MAAMM,IAAM,EAAI+c,EACvCvN,SAAUgL,EACV/K,cAAe1Q,KAAK2b,aAGtB,IAAI9a,EAEFA,EADEb,KAAKwF,OACA,CACL0K,QAASlQ,KAAKwM,eACdqE,MAAO3D,GAGF,CACLoH,OAAQ,WACRzD,MAAO3D,GAIX,MAAMiR,EAAene,KAAKwF,OAASxF,KAAK2R,SAAW3R,KAAK4Q,WAExDuN,EAAatd,GACVgB,MAAMC,IACL,GAA8B,MAA1BA,EAASiP,aAAsB,CAGjC7P,EAAAA,EAAAA,eAA6B,GAAMW,MAAK,KACtC7B,KAAKid,gBAAgB,IAGvBjd,KAAKwd,YACL,MAAMS,EAAOG,SAASC,eAAe,kBACjCJ,GACFA,EAAKvF,QAEL1Y,KAAKkJ,MAAM,QAA4BoV,kBACzCte,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,4D,MAGC,GAA8B,MAA1BS,EAASiP,aAAsB,CACxC7P,EAAAA,EAAAA,eAA6B,GAAMW,MAAK,KACtC7B,KAAKid,gBAAgB,IAIvBjd,KAAKwd,YACL,MAAMS,EAAOG,SAASC,eAAe,kBACjCJ,GACFA,EAAKvF,QAEL1Y,KAAKkJ,MAAM,QAA4BoV,kBACzCte,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,4D,CAINrB,KAAKsW,MAAM,gBAAgB,IAE5BlN,OAAO0H,IACqB,MAAvBA,EAAMC,aAER/Q,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,0DAEFC,KAAM,UAGRtB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,yDACjBC,KAAM,S,IAIX0P,SAAQ,KACPhR,KAAK4b,gBAAiB,CAAK,GAC3B,GAER,IAjYA5Z,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAEC,SAAS,KAAQ,8BAIzBf,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,sCAIPd,EAAAA,EAAAA,IAAA,EADCG,EAAAA,EAAAA,IAAI,SAAO,4BAIZH,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,yCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,uCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,sCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,uCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,mCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa6B,QAAM,gCAOpBF,EAAAA,EAAAA,IAAA,CADC3B,EAAa6B,QAAM,kCAOpBF,EAAAA,EAAAA,IAAA,CADCzB,EAAQ2B,QAAM,oCAyCfF,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,iBAAkB,CAAE2H,WAAW,KAAO,+CAgB7CjQ,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,cAAY,uCAoBnBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,YAAU,qCA+EjBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,SAAO,oCAcdtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,sBAAoB,0BAY3BtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,gBAAc,oCArNF6H,GAAanQ,EAAAA,EAAAA,IAAA,EALjCI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVsW,WAAUA,EAAAA,MAGOxG,G,QCrBsS,I,UCOvT5P,GAAY,OACd,EACAzC,EACAM,GACA,EACA,KACA,WACA,MAIF,EAAemC,EAAiB,O,oFClBYtC,EAAOC,W,IAASyW,EAAM,KAAuB,EAAO1W,EAAG,MAAO,GAAE2C,EAAY,MAAM,Y,OAAM,EAAC,K,YAAW,O,MAAG,CAAgB,QAAQ7C,GAAU,cAAwB,QAAY,MAAE,SAAUA,EAAIkE,SAAQ,UAAWlE,EAAa,QAAQA,EAAIwe,QAAQ,SAAW,EAACC,SAAqB,MAAS,EAACze,QAAyB,wBAAC+Y,eAAS,cAA+B,SAAC,CAAG,YAAC,c,GAA0B,CAAiC,kBAAC,yBAAG,IAI9c,E,sCCCA,IAAqBH,EAArB,cAAwClY,EAAAA,GAalC8d,cACF,OAAO/I,EAAAA,EAAAA,GAAOxV,KAAKye,MACrB,IAd8Bzc,EAAAA,EAAAA,IAAA,EAA7Bc,EAAAA,EAAAA,IAAK,CAAEC,QAAS,aAAY,6BACrBf,EAAAA,EAAAA,IAAA,EAAPc,EAAAA,EAAAA,OAAM,8BACCd,EAAAA,EAAAA,IAAA,EAAPc,EAAAA,EAAAA,OAAM,4BACCd,EAAAA,EAAAA,IAAA,EAAPc,EAAAA,EAAAA,OAAM,gCACCd,EAAAA,EAAAA,IAAA,EAAPc,EAAAA,EAAAA,OAAM,+BAGPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACiV,OAAQC,YAAW,gCAIlCxU,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,IAAK,CAAExB,KAAM,CAACiV,OAAQC,YAAW,4BAVfmC,GAAU3W,EAAAA,EAAAA,IAAA,CAD9BI,EAAAA,IACoBuW,G,QCLuR,I,UCOxSpW,GAAY,OACd,EACAzC,EACAM,GACA,EACA,KACA,KACA,MAIF,EAAemC,EAAiB,O,+FClB4BoU,EAAO5W,WAAsB,MAAU,KAAS6C,EAAAA,EAAAA,MAAY,GAAiB,oB,OAAC,EAAM,IAAG,C,YAAW,W,MAAG,CAAwB,QAAG,UAAC,GAAC,SAAQ,Y,GAAkD,CAAC,kBAAM,OAAC,EAAQ,gBAACU,I,CAA+C,MAAQ,C,MAAO,CAAY,aAAI,MAAG,OACzV,eAGD,E,6BCAA,IAAqBiH,EAArB,cAA4C9J,EAAAA,MAClCuB,EAAAA,EAAAA,IAAA,EAAPc,EAAAA,EAAAA,OAAM,+BADYyH,GAAcvI,EAAAA,EAAAA,IAAA,CADlCI,EAAAA,IACoBmI,G,QCJ2R,I,UCQ5ShI,GAAY,OACd,EACAzC,EACAM,GACA,EACA,KACA,WACA,MAIF,EAAemC,EAAiB,O,8FCnB4BoU,EAAO5W,WAAsB,MAAU,KAAS6C,EAAAA,EAAAA,MAAY,GAAY,EAAO,MAAC,Y,OAACA,EAAAA,EAAAA,EAAY,CAAmBU,YAAM,Q,CAAC,MAAO,C,YAAcob,mB,MAAuB,CAAI,UAAI3e,GAAM,EAAC,OAAW,IAAI,IAAS6C,GAAAA,M,CAAsC,KAAM,SAAK,U,YAAU8b,mB,MAAuB,CAAI,UAAI3e,GAAM,EAAC,OAAW,IAAK,IACtX,SAGD,GAASD,GAAAA,UAAQM,IAAAA,E,6BCAjB,IAAqBue,EAArB,cAA8Cle,EAAAA,GAGxCie,aACF,MAAqB,KAAd1e,KAAK4e,MAA6B,SAAd5e,KAAK4e,OAAiC,IAAd5e,KAAK4e,IAC1D,IAJ0B5c,EAAAA,EAAAA,IAAA,EAAzBc,EAAAA,EAAAA,IAAK,CAAEC,SAAS,KAAQ,2BADN4b,GAAgB3c,EAAAA,EAAAA,IAAA,CADpCI,EAAAA,IACoBuc,G,QCJ6R,I,UCO9Spc,GAAY,OACd,EACAzC,EACAM,GACA,EACA,KACA,WACA,MAIF,EAAemC,EAAiB,O,qFClByD,EAAU,W,IAASe,EAAM,K,EAAC,EAAK,SAAK,oBAAC,OAAO,EAACW,EAAAA,EAAO,CAAmDT,MAAG,CAAC,W,CAA8C,qDAAC,IAAG,OAAOqb,SAAY,GAAiE,aAAC,KAA0D,uEAAC,IAAK9e,cAAa+e,SAAWC,GAA0C,OAAC,gBAAiB,KAAmC,WAAWtc,WAAOnB,OAAAA,EAAAA,2BAAAA,CAAI,IAAC,kBAACkB,EAAM,sB,MAAM,CAAqBE,KAAQ,EAAC,OAAAA,M,MAAoD,CAACC,MAAAA,EAAU,OAAC,OAAe,qBAAI5C,EAAM,KAAI,EAACA,OAAU,SAAQqB,EAAiCkC,EAAO,WAAW0b,kBAAexc,CAAAA,EAAK,GAAC,kD,MAAM,CAAuBE,KAAQ,EAAC,SAAUwC,M,MAA4C,CAACvC,MAAAA,EAAU,SAAC,OAAiB,qBAAI5C,EAAM,KAAI,EAACA,SAAWif,SAAS5d,EAAyCkC,EAAO,WAAW2b,oBAAazc,CAAAA,EAAK,GAAC,4D,MAAM,CAA0BE,KAAQ,EAAC,a,MAAyD,CAACC,MAAAA,EAAU,YAAC,OAAoB,qBAAM,EAAC,KAAQ,EAAE1C,YAAG,SAAc,EAAC2C,EAAmBU,WAAM,wBAA0C,cAAE,YAAK,OACptC,OACGlD,MAAAA,EAAe,SAAK,uB,uGCFiE,EAAU,W,IAAakD,EAAM,K,EAAC,EAAM,MAAE,GAAC,QAAgB,Y,OAAG,EAAM,IAAG,C,MAAC,CAAgB,OAAa,mBAAIrD,KAAQ,GAAE2C,MAAW,QAAa3C,OAAG,O,CAAsB,QAAK,CAAG,uBAAG,CAACA,EAAG,cAAQ,CAACqD,MAAM,CAAC,S,CAA4B,MAAS,C,MAAI,CAAU,OAAMM,KAAwC,YAAI,QAAO,GAA0BhB,KAAAA,GAA6B3C,IAAG,aAAgGF,GAAIiF,EAAG,gBAAgB8Z,EAAAA,MAAWC,CAAiCnc,YAAY,gBAAOU,CAAAA,EAAK,oBAAC,kD,YAAM,SAAsB,2CAACE,YAAG,O,MAAC,C,GAAyBiB,uB,GAA0D,CAAC,kBAC9uB,OADkvBxE,EAAG,kBACrvB,wBACGG,K,0DCFwDuW,EAAO5W,WAAsB,MAAU,KAAO6C,EAAAA,EAAAA,MAAY,GAAwD,EAAO3C,MAAG,Y,OAAO2C,EAAAA,MAAY,CAA+B,YAAY,oDAAqFA,CAAAA,EAAAA,MAAW,CAAC,SAA2B,YAAY,gCAA2DA,CAAAA,EAAAA,GAAAA,IAAY,2EAAU,YAAY,4BAAEU,CAAAA,EAAK,GAAC,kD,YAAW4b,WAA4D,QAAG,MAAK,CACjjB,8BAGD,IAASpf,E,kBCKT,IAAqBqf,EAArB,cAAoC1e,EAAAA,GAApC4E,c,oBACE,KAAAlC,OAAQ,CAOV,CANMic,eACF,OAAO7Y,EAAAA,EAAAA,WACT,CACI2Y,gBACF,OAAO3Y,EAAAA,EAAAA,iBACT,GAPmB4Y,GAAMnd,EAAAA,EAAAA,IAAA,EAH1BI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CAAC,KAEM8c,G,QCTyR,I,UCQ1S5c,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAeA,EAAiB,Q,gICnB8S,EAAS,W,IAAoDK,EAAAA,KAA6B,EAAK,EAAI,MAAI7C,GAA2D6C,EAAY,kB,OAAyB,EAAC,K,YAAQ,CAAM,cAAcA,MAAAA,CAA4CW,MAAM,KAAuC,eAAE,YAAO8b,iDAAqCzc,MAAAA,CAAqB7C,KAAOA,SAAkE,CAACA,EAAIsD,mBAAkBhC,EAAG,OAA+GiC,YAAM,e,CAAC,KAAM,IAAC,2CAAM,8BAAG,CAACrD,EAAG,cAAqB,2BAAC,gBAACqD,YAAM,oB,MAAC,CAA8B,KAAO,S,CAAgB,QAAQvD,C,YAAsCA,gCAAmB,MAAC,CAAG,OAAC,yBAA8B,kCAAE,YAAW,QAAC6C,CAAAA,EAAAA,GAAAA,EAAY,6BAAa,SAACW,YAAM,S,CAAE+b,EAAAA,GAAM,IAAMD,EAAAA,GAAQ,EAAItf,GAAG,kCAACwf,IAAAA,EAAAA,GAAAA,EAAAA,oBAAAA,KAAAA,QAAAA,EAAAA,MAAAA,KAAAA,EAAAA,EAAAA,EAAAA,CAAS,OAAItf,KAAQ,SAA4B,CAACA,EAAG,IAAQ,CAACqD,MAAM,CAAC,OAAMM,EAAO,iBAAoC,KAAO,KAAI,MAAS,GAAI,MAAQ,EAAC,0BAAM,yBAA4BhB,GAAAA,CAAgCU,MAAM,sBAAc,UAAE,YAAW,cAACV,MAAAA,CAAiC3C,OAAG,YAAa,a,CAAQ,QAAO,CAAQ,0BAAG,CAAEF,EAAG,IAACyf,CAA6Blc,MAAM,CAAC,MAAc,OAAgB,MAAS,GAAoB,QAAU,GAA2C,kBAAW,QAAQ,SAASmB,C,YAAe1E,oB,MAAkC,CAAC,cAAe6C,CAAAA,EAAAA,MAAW,CAAmB,YAAK,oBAAcU,CAAAA,EAAK,aAAC,C,MAAC,CAAc,KAAO,W,CAAwC,aAAcmc,EAAAA,aAAe,C,MAAC,CAAsD,0BAAC5D,QAAS,iBAAC,KAAO,EAAC,2C,SAA0C,CAAC,kBAAM,OAAC,UAAa,qBAACvY,KAAqD,SAAWvD,C,YAAiCA,mB,CAAuB,eAAYwf,CAEvlE,MAAC,CAAC1D,SAAS,GAAC,MAAQ,Q,SAA2B,EAAC6D,gBAAkC,0BAAC,mDAAsCpc,SAAM,CAAC,MAAQ,SAAM,GAAC,kBAAmB,CAAC,KAAiCd,EAAK,aAAC,C,MAAM,CAAoBE,MAAS,WAAe,oB,SAAKid,EAAAA,mBAAgB,QAAC,qBAAChd,KAAAA,EAAW,iGAAgB,SAAK,CAAmEC,MAAW,SAAC,GAAW,OAAC,cAAc,qBAACU,MAAiB,yBAAE,MAAK,CAAqBA,MAAM,OAAC,YAAO,QAAM,iCAAcV,MAAAA,CAAoDW,MAAM,eAAE+b,SAAQvf,SAAY,GAAiB,gBAAK,EAA2C+Y,WAAS,iBAAoC,0CAAG,YAAU,QAAElW,CAAAA,EAAAA,EAAAA,EAAY,CAAO,MAAMS,CAAgDT,MAAW,KAA0JU,CAAAA,EAAK,IAAC,Q,MAAC,CAAa,cAAcV,CAAAA,EAAAA,MAAW,CAAuB,YAAK,wCAAcU,MAAM,CAAC,OAAO,yBAAW,CAAEvD,EAAIyf,UAAYvf,EAAG,SAAwG,UAAC4b,YAAS,Q,CAAC,KAAO,EAAC,KAAArX,wBAAgB,S,YAAQzE,S,CAAkC,iGAAzK,EAAC,QAACuD,SAAM,CAAC,UAAWvD,EAAI6b,GAAAA,EAAAA,iBAAiJ,uBAAC,OAAG,KAAK,SAAsC,CAAC3b,EAAG,OAAcqD,YAAM,uB,CAAC,eAAaic,C,MAAiC,CAAkC,KAAO,WAEt3C1D,CAAAA,EAAAA,WAAS,gB,MAAC,C,SAAmC,EAAC6D,eAAkC,kDAAI,SAAI,CAAcpc,MAAM,YAAC,OAAQ,UAAO,qBAAC,KAAqF,UAACuY,YAAS,mB,CAAC,eAAQ,C,MAAoB,CAAsB,qCAAC,8BAAI,KAAQ,EAAG,SAAsC,6CAA7B,EAAG,GAAG,sC,SAAsC,CAAQ,eAAY,GAAQ,qBAAgB,qBAAgB,KAAQ1Y,EAAAA,aAAWyc,C,MAAgBld,C,MAA6Bkd,QAAkB,SAAC,kBAACjd,KAAAA,EAAW,4CAAkB,SAAK,CAAUW,MAAM,YAAC,kBAAQ,CAAS,MAAuBV,KAAAA,IAAY,gCAAgC,MAAMS,CAAuCT,MAAW,OAA2B7C,YAAa,QAA0J6C,gBAAY,iBAAsBa,MAAI,CAAOH,MAAM,iBAAC,kBAAkB,GAAG,kBAACd,EAAOW,WAAWgZ,mB,GAAoCpc,EAAAA,EAAIoc,C,MAAc,CAACxZ,MAAAA,YAAyB,CAAC1C,EAAG,MAAe2C,YAAY,iCAAYU,CAAAA,EAAK,GAAC,sB,YAAS,yBAAE,kJAAE,YAAY,QAAEA,CAAAA,EAAK,IAAC,C,IAAC,OAAU,OAAIrD,kBAAW,I,MAAQ,CAAW,kBAAIA,SAAG,SAAW,GAAC8D,EAAAA,UAAY,CAAC,EAAoB,yB,CAAQ,MAAS,C,YAAW,Y,MAAC,CAAc,W,CAA2F,MAAQhE,C,MAAoB,CAAsB,W,CAAK,MAAQ,CAAsB,OAAI,KAAO,OAA4BgE,CAAAA,EAAAA,EAAAA,EAAY,C,YAAW,CAAY,qB,MAAQ,CAAW,QAAI9D,MAAG,GAAS2C,SAAY,GAAwBU,YAAM,mDAAC,MAAO,EAAE,YAAC,MAAQ,kBAAU,mB,GAAW,C,OAAgCvD,EAAI8f,sBAAyC,UAAE,YAAa,OAAEjd,YAAY,CAAyBU,SAAM,YAAqD,OAAIvD,KAAO,OAA2IuD,CAAAA,EAAK,IAAC,C,YAAM,wB,MAAW,CAAW,KAAO,GAAG,iB,SAAmC,CAAc,MAAO,SAAE,GAAC,OAAOvD,EAAIsB,kBAAG,qBAAgC,I,CAAyF,MAAU+E,CAAgD,YAAC,yBAAC5C,MAAG,CAAC,MAAQ,EAAI,mBAACia,QAAqB,Y,GAA4B,GAAIhZ,IAAM,EAACnD,GAAK6I,EAAAA,mBAAuB1F,2BAA0BA,+BAA+B,U,IAAC,mB,MAA0C,CAAE,cAACoX,MAAS,GAAC,KAAO,G,SAA4B,GAAwC,qBAAE,YAAC1X,KAAAA,GAAqBN,KAAI,EAAM,mCAACF,MAAG,EAAAA,S,YAAWnC,EAAAA,GAAAA,+CAAK,MAAE,4C,WAA2EuC,EAAAA,sB,QAAa,SAAQ,G,OAAM,qEAAO,WAAWV,MAAOyc,KAAGte,U,YAAsH,CAAG,MAAC,YAACgB,OAAM,wCAACW,G,YAA0DsY,EAAAA,GAAAA,CAAAA,CAAoB,IAAC,OAAC9Y,GAAAA,UAAW,KAAkB,IAA6CC,MAAW,GAAC,OAA+C,YAAW,4CAACA,YAAY,CAAsB,eAAY,SAAe,GAAE,4BAAC,YAAQ,oCAAG,uCAACuB,K,MAAoC,C,MAAW,EAAQlE,iB,SAAU2C,SAAY,GAAc,EAAG7C,iBAAiB,CAAyD,EAAE2E,WAAM,uBAAQlC,IAAM,uB,YAAYud,2C,CAAYrd,EAAAA,EAAAA,EAAS,C,YAAoBqd,gB,MAAe,CAACpd,MAAAA,GAAuB,kBAAI1C,MAAG,I,YAA6B,KAAO,EAAC,YAA+B,cAA8B,MAAOF,CAAAA,EAAIsB,MAAG,CAAwC,4BAACwa,CAAQ,EAAC,kEAAC,E,OAAyB,KAA2C,OAAI,MAAM,EAAG,WAC5sH,qBACGzb,EAAAA,WAAoB,CAExB,E,6TCOA,MAAMC,GAAeC,EAAAA,EAAAA,IAAU,gBACzBC,GAAUD,EAAAA,EAAAA,IAAU,MA4B1B,IAAqB0f,EAArB,cAAyCvf,EAAAA,GAAzC4E,c,oBAsEE,KAAA4a,oBAAqB,EACrB,KAAAL,gBAAiB,EACjB,KAAAD,cAAe,EACf,KAAAO,IAAM9S,KAAK8S,MAKX,KAAAC,aAAe,EAKf,KAAAC,kBAAoB,MAKpB,KAAAC,SAA2B,GAI3B,KAAAC,WAAa,EAIb,KAAAC,gBAAkB,EAIlB,KAAAxE,gBAAkB,EAIlB,KAAAN,iBAAiD,GAKjD,KAAA+E,iBAAkC,KAIlC,KAAAC,qBAAsC,KAItC,KAAAC,cAA+B,KAE/B,KAAAvE,WAAY,EACZ,KAAAT,UAAY,CAAEtV,KAAQA,GAAK,YAC3B,KAAAgW,YAA0B,GAC1B,KAAAZ,SAAuB,GACvB,KAAAa,sBAAuB,EACvB,KAAA0D,YAAa,EACb,KAAAY,oBAAqB,EACrB,KAAAC,UAAwC,GACxC,KAAAC,0BAAgD,GAKhD,KAAAjF,gBAAiB,EAIjB,KAAA6D,iBAAkB,EAIlB,KAAAqB,oBAAqB,CAgsBvB,CA9rBMC,0BACF,OAAO,IAAI3T,KAAKpN,KAAKsgB,YAAYU,cAAcnR,OAAO,GAAI,EAC5D,CAEIoR,yBACF,OAAIjhB,KAAKugB,gBACA,IAAInT,KAAKpN,KAAKugB,iBAAiBS,cAAcnR,OAAO,GAAI,GAExD,EAEX,CAEIwP,eACF,OAAOrf,KAAKkhB,WAAaC,EAAAA,EAAAA,MAC3B,CAEI3B,iBACF,OACExf,KAAKkhB,WAAaC,EAAAA,EAAAA,UAClBnhB,KAAKkhB,WAAaC,EAAAA,EAAAA,OAEtB,CAEI5B,eACF,OAAOvf,KAAKkhB,WAAaC,EAAAA,EAAAA,MAC3B,CAEIC,uBACF,MAAMC,EAASrhB,KAAKqgB,SAASha,OAC7B,OAAQgb,EAAarhB,KAAKqgB,SAASgB,EAAS,GAAGC,OAA9B,CACnB,CAEIC,gCACF,MAAMF,EAASrhB,KAAKqgB,SAASha,OAC7B,OAAQgb,EAAarhB,KAAKqgB,SAASgB,EAAS,GAAGG,gBAA9B,CACnB,CAEIC,sBACF,MAAMJ,EAASrhB,KAAKqgB,SAASha,OAC7B,OAAKgb,EAGErhB,KAAKqgB,SAASgB,EAAS,GAAG3d,QAAUyd,EAAAA,EAAAA,OACvC,UACA,UAJK,SAKX,CAEIO,kBACF,OAAOxL,EAAAA,GAAAA,OAAqBlW,KAAKkgB,KAAO,SAAWlH,EAAAA,GAAAA,OAAqBhZ,KAAKkgB,IAC/E,CAEI3D,kBACF,OAAOrb,EAAAA,EAAAA,WACT,CAEIygB,2BACF,MAAMzV,EAAQlM,KAAK4hB,gBAAkB,EAC/BC,EAAK7hB,KAAKmgB,aAAengB,KAAK8hB,mBAAqB5V,EACzD,OAAOuB,EAAAA,EAAAA,IAAeoU,EAAK,IAAO,GAAK,IAAI,EAC7C,CAEIE,yBACF,OAAO7gB,EAAAA,EAAAA,SAAwBlB,KAAK+B,kBAAkB0D,MAAQ,EAChE,CAEAuX,oBACEhd,KAAKoc,YAAc,CACjB,CACEhb,KAAM,GAAGpB,KAAKqB,GAAG,+CACjB8B,MAAO,IAGX,IAAK,MAAMoG,KAAK7C,OAAOC,OAAOzF,EAAAA,EAAAA,aAC5BlB,KAAKoc,YAAYzU,KAAK,CACpBvG,KAAMmI,EAAE9D,KACRtC,MAAOoG,EAAEtI,IAGf,CAEAgc,iBACEjd,KAAKwb,SAAW,GAChB,IAAK,MAAM/H,KAAK/M,OAAOC,OAAOzF,EAAAA,EAAAA,UAA0C,CACtE,GAAIlB,KAAK+b,iBAAmBtI,EAAE1S,UAAYf,KAAK+b,gBAC7C,SAEF,GAAItI,EAAExS,KAAOjB,KAAK+B,gBAEhB,SAEF,GAAI0R,EAAE9C,aAEJ,SAEF,MAAMuM,EAAchc,EAAAA,EAAAA,YAA2BuS,EAAE1S,SAAW,IAAI0E,KAChEzF,KAAKwb,SAAS7T,KAAK,CACjBuV,YAAaA,EACbpc,UAAW2S,EAAE1S,QACbK,KAAMqS,EAAEhO,KACRtC,MAAOsQ,EAAExS,I,CAGf,CAEAsR,UACEhM,EAAAA,EAAAA,gBAA2B1E,MAAK,KAC9B7B,KAAK0U,oBAAoB7S,MAAK,KAE1B7B,KAAKkhB,WAAaC,EAAAA,EAAAA,QAClBnhB,KAAKkhB,WAAaC,EAAAA,EAAAA,QAElBnhB,KAAKgiB,gB,GAEP,GAEN,CAEA5Z,UACMpI,KAAKmd,oBAITnd,KAAKiiB,mBACLjiB,KAAKgd,oBACLhd,KAAKid,iBACP,CAGAiF,oBACE,IAAIvP,EAAW3S,KAAKmiB,gBAAgBxP,SAChClC,EAA+B,GAEnC,IAAK,IAAIjP,KAAQmR,EACf,GAAI3S,KAAKkgB,KAAOvN,EAASnR,GAAMyK,OAASjM,KAAKkgB,IAAMvN,EAASnR,GAAMoL,IAAK,CACrE,GAAI+F,EAASnR,GAAM4gB,WAAY,SAE/B,IAAIC,EAAoB1P,EAASnR,GAAMb,KACvC8P,EAAWvP,EAAAA,EAAAA,SAAwBmhB,IAAoB5c,MAAQ,E,CAInEzF,KAAK6gB,0BAA4BpQ,CACnC,CAGA4M,KAAKC,GACCA,IAIJtd,KAAKiiB,mBACL/gB,EAAAA,EAAAA,gBAA+BW,MAAK,KAClC7B,KAAKgd,oBACLhd,KAAKid,gBAAgB,IAEzB,CAGAM,gBAAgB9D,GACTA,GACLzZ,KAAKgd,mBACP,CAGAsF,YAAY5e,EAA0B6e,GACpC,MAAMC,EAAcD,IAAapB,EAAAA,EAAAA,SAA6Bzd,IAAU6e,EACxE,GAAKC,EAML,GAHID,IAAapB,EAAAA,EAAAA,UACfnhB,KAAKgiB,iBAEHte,IAAUyd,EAAAA,EAAAA,OAA0B,CAEX,OAAvBnhB,KAAK0gB,eACP+B,cAAcziB,KAAK0gB,eAErB1gB,KAAKugB,gBAAkBvgB,KAAK0iB,aAC5B,MAAMC,EAAY3iB,KAAK8hB,mBAEvB9hB,KAAKsgB,WAAalT,KAAK8S,MAAQyC,EAAY3iB,KAAK0iB,aAEhD1iB,KAAKqgB,SAAS1Y,KAAK,CACjB6Z,gBAAiB,EACjBF,OAAQthB,KAAK4iB,aAAaD,GAC1BA,UAAWA,EACXjf,MAAOyd,EAAAA,EAAAA,SAGTnhB,KAAK6iB,mBAAmB1B,EAAAA,EAAAA,O,MACnB,GAAIzd,IAAUyd,EAAAA,EAAAA,OAA0B,CAEX,OAA9BnhB,KAAKygB,sBACPgC,cAAcziB,KAAKygB,sBAErB,MAAMkC,EAAY3iB,KAAK4hB,gBAAkB,EAEzC5hB,KAAKqgB,SAAS1Y,KAAK,CACjB6Z,gBAAiB,EACjBF,OAAQthB,KAAK4iB,aAAaD,GAC1BA,UAAWA,EACXjf,MAAOyd,EAAAA,EAAAA,SAETnhB,KAAK6iB,mBAAmB1B,EAAAA,EAAAA,O,MAGxBnhB,KAAK8iB,oBACL9iB,KAAKsgB,WAAa,EAClBtgB,KAAKugB,gBAAkB,EACvBvgB,KAAKqgB,SAAW,EAEpB,CAGA0C,mBAAmBhb,EAAaC,GAC9B,IAAKhI,KAAKigB,qBAAkC,IAAZjY,MAK5BD,GAAOC,GAAkB,IAARD,MAGL,IAAZC,GAAyB,IAARD,GAAaA,IAAQC,EAAS,GAInD,GAAY,IAARD,EAAW,CAEb,MAAMib,EAAO5E,SAAS6E,iBACpB,iDAEFD,EAAKnZ,SAAS8J,IACZA,EAAKuP,QAAQ,IAGf,MAAMC,EAAU/E,SAASgF,cACvB,4DAEF,IAAKD,EACH,OAEFnjB,KAAKqjB,kBAAkB,EAAGF,E,KACrB,CACL,MAAMG,EAAuB,IAARvb,EAEfwb,EAAMnF,SAASgF,cACnB,4CAEF,IAAKG,EACH,OAEF,IAAKD,EAAc,CAEjB,MAAME,EAASD,EAAIE,WAAU,GAC7BF,EAAIG,sBAAsB,WAAYF,GAEtC,MAAMG,EAAWJ,EAAIH,cACnB,kCAEFO,EAAS5Y,MAAM6Y,OAAS,a,CAE1B,MAAMC,EAAW7jB,KAAKqgB,SAAStY,EAAM,GAErCwb,EAAIxY,MAAM+Y,UAAY,UAAUD,EAASvC,aAEzC,MAAM6B,EAAUI,EAAIH,cAAc,iCAClCD,EAAQpY,MAAM6Y,OACZC,EAASngB,QAAUyd,EAAAA,EAAAA,OACf,wBACA,wBAEN,MAAM4C,EAAY/jB,KAAKgkB,cAAcH,EAASrC,iBAC9CxhB,KAAKqjB,kBAAkBU,EAAWZ,E,CAEtC,CAGAc,uBAAuBlc,GAChBA,IAIL/H,KAAKmgB,aAAe/S,KAAK8S,MAC3B,CAEAgE,gBACElkB,KAAK8iB,mBACP,CAEAtF,YACExd,KAAK+b,gBAAkB,EACvB/b,KAAKyb,iBAAmB,GACxBzb,KAAKqc,sBAAuB,EAC5Brc,KAAK2gB,oBAAqB,EAC1B3gB,KAAKmkB,oBAAmB,EAC1B,CAKAlC,mBACE,MAAM/B,EAAM9S,KAAK8S,MAEW,OAAxBlgB,KAAK4hB,eACP5hB,KAAKugB,gBAAkBvgB,KAAK0iB,aAE5B1iB,KAAKugB,gBAAkBL,EAAMlgB,KAAK4hB,eAGpC5hB,KAAKsgB,WAAaJ,EAAMlgB,KAAK8hB,mBAAqB9hB,KAAKugB,gBAEvDvgB,KAAKqgB,SAAW,GAChBrgB,KAAKokB,YAAYlE,GAEjBlgB,KAAK6iB,mBAAmB7iB,KAAKkhB,UAC7BlhB,KAAKigB,oBAAqB,CAC5B,CAEA4C,mBAAmBnf,GAEjB1D,KAAKwgB,iBAAmB6D,OAAOC,aAAY,KACzCtkB,KAAKkgB,IAAM9S,KAAK8S,KAAK,GACpB,KAEH,IAAIyC,EAAY,EAChB,OAAQjf,GACN,KAAKyd,EAAAA,EAAAA,OACHwB,EAAY3iB,KAAK8hB,mBACjB9hB,KAAKygB,qBAAuB4D,OAAOC,aAAY,KAC7C,MAAMpE,EAAM9S,KAAK8S,MAEjB,GAAIlgB,KAAKukB,qBAAuBrE,GAAOlgB,KAAKukB,oBAG1C,OAFAvkB,KAAKmgB,aAAe/S,KAAK8S,WACzBlgB,KAAKic,SAAS,MAAM,GAItBjc,KAAKsgB,WAAaJ,EAAMyC,EAAY3iB,KAAK0iB,aACzC1iB,KAAKwkB,sBAAsBtE,EAAI,GAC9B,KACH,MACF,KAAKiB,EAAAA,EAAAA,OACHwB,EAAY3iB,KAAK4hB,gBAAkB,EACnC5hB,KAAK0gB,cAAgB2D,OAAOC,aAAY,KACtC,MAAMpE,EAAM9S,KAAK8S,MAEjB,GAAIlgB,KAAKukB,qBAAuBrE,GAAOlgB,KAAKukB,oBAG1C,OAFAvkB,KAAKmgB,aAAe/S,KAAK8S,WACzBlgB,KAAKic,SAAS,MAAM,GAItBjc,KAAKugB,gBAAkBL,EAAMyC,EAC7B3iB,KAAKwkB,sBAAsBtE,EAAI,GAC9B,KACH,MAEN,CAEAkE,YAAYlE,GACV,IAAIjU,EAAQjM,KAAK8hB,mBACjB,IAAK7V,EACH,OAEF,IAAIwY,EAAqBvE,EAAMjU,EAC/BjM,KAAK0kB,gBAAgB7a,SAASqC,IAE5B,MAAMyY,EAAazY,EAAMD,MAAQA,EAC3B2Y,GAAa1Y,EAAMU,KAAOsT,GAAOhU,EAAMD,MAC7CjM,KAAKqgB,SAAS1Y,KAAK,CACjB2Z,OAAQthB,KAAK4iB,aAAa3W,GAC1BuV,gBAAiBxhB,KAAK6kB,oBAAoBF,GAC1ChC,UAAW1W,EACXvI,MAAOyd,EAAAA,EAAAA,SAETnhB,KAAK+iB,mBAAmB/iB,KAAKqgB,SAASha,QAAS,GAC/CrG,KAAKqgB,SAAS1Y,KAAK,CACjB2Z,OAAQthB,KAAK4iB,aAAa1W,EAAMD,OAChCuV,gBAAiBxhB,KAAK6kB,oBAAoBD,GAC1CjC,UAAWzW,EAAMD,MACjBvI,MAAOyd,EAAAA,EAAAA,SAETnhB,KAAK+iB,mBAAmB/iB,KAAKqgB,SAASha,QAAS,GAE/Coe,GAAsBE,EAAaC,EAEnC3Y,EAAQC,EAAMU,KAAOsT,CAAG,IAGtBuE,EAAqB,IACvBzkB,KAAKqgB,SAAS1Y,KAAK,CACjB2Z,OAAQthB,KAAK4iB,aAAa3W,GAC1BuV,gBAAiBxhB,KAAK6kB,oBAAoBJ,GAC1C9B,UAAW1W,EACXvI,MAAOyd,EAAAA,EAAAA,SAETnhB,KAAK+iB,mBAAmB/iB,KAAKqgB,SAASha,QAAS,GAEnD,CAEAuc,aAAaD,GACX,MAAM1R,EAAO,IAAI7D,KAAKuV,GAChBmC,GAAa7T,EAAKhC,WAAagC,EAAK9B,aAAe,IAAM,GAC/D,OAAS,GAAY2V,EAAY,IAAM,GACzC,CAEAD,oBAAoBd,GAClB,OAAQA,EAAY/jB,KAAKogB,kBAAqB,GAChD,CAEA4D,cAAcxC,GACZ,OAAQA,EAAkB,IAAOxhB,KAAKogB,iBACxC,CAEAiD,kBAAkBU,EAAmBZ,GACnC,IAAI4B,EAAQ5B,EAAQ6B,WAAW,qBAAqB7hB,MACpD,QAAcmZ,IAAVyI,EACF,OAEFA,EAAQjY,OAAOC,WAAWgY,GAC1B,MAAME,EAAalB,EAAY,IAAO,GAAK,GACrCmB,EAASH,EAASA,EAAQ,GAAME,EACtC9B,EAAQ6B,WAAW,qBAAqB7hB,MAAQ+hB,EAAOC,WAAa,IACtE,CAEAX,sBAAsBtE,GACpB,MAAMmB,EAASrhB,KAAKqgB,SAASha,OAC7B,IAAKgb,EACH,OAEF,MAAM+D,EAAUplB,KAAKqgB,SAASgB,EAAS,GACvC+D,EAAQ5D,gBAAkBxhB,KAAK6kB,oBAAoB3E,EAAMkF,EAAQzC,WACjE3iB,KAAK8D,KAAK9D,KAAKqgB,SAAUgB,EAAS,EAAG+D,EACvC,CAEAvQ,kBAAkB/T,GAChBd,KAAK+b,gBAAkBjb,EAEvBd,KAAKid,iBAGgC,kBAA1Bjd,KAAKyb,mBAGhBzb,KAAKqc,qBAAuBvb,IAAcd,KAAKyb,iBAAiB3a,UAClE,CAEA2c,sBAAsBjc,GAChBxB,KAAK2gB,oBAAsC,kBAATnf,IACpCxB,KAAK2gB,oBAAqB,EAC1B3gB,KAAKmkB,oBAAmB,IAKN,kBAAT3iB,IAGXxB,KAAK+b,gBAAkBva,EAAKV,WAAa,EAC3C,CAEAgiB,oBACgC,OAA1B9iB,KAAKwgB,kBACPiC,cAAcziB,KAAKwgB,kBAEa,OAA9BxgB,KAAKygB,sBACPgC,cAAcziB,KAAKygB,sBAEM,OAAvBzgB,KAAK0gB,eACP+B,cAAcziB,KAAK0gB,cAEvB,CAEAsB,iBAEE,GAAIhiB,KAAK+R,eAAgB,CACvB,MAAMsT,EAAcrlB,KAAKmiB,gBAAgB,YAAYniB,KAAK+R,iBAAmB,CAAC,EAC9E,IAAqC,IAAjCsT,EAAYC,iBAA4B,CAC1CtlB,KAAK+b,gBAAkBsJ,GAAatkB,SAAW,EAC/C,MAAMmc,EAAchc,EAAAA,EAAAA,YAA2BmkB,EAAYtkB,UAAU0E,MAAQ,GAC7E,GAAI4f,EAAY5U,SACdzQ,KAAKyb,iBAAmB,CACtB3a,UAAWukB,EAAYtkB,QACvBmc,YAAaA,EACb9b,KAAMikB,EAAY5U,SAClBtN,MAAOkiB,EAAY1kB,UAEhB,CACL,IAAIuc,EAAc,GAClBhc,EAAAA,EAAAA,eAA6B,GAAMW,MAAK,KACtCqb,EAAchc,EAAAA,EAAAA,YAA2BmkB,EAAYtkB,UAAU0E,MAAQ,EAAE,IAG3EvE,EAAAA,EAAAA,cAA6BmkB,EAAY1kB,MAAMkB,MAAM0S,IAC/CA,EAAI9O,OACNzF,KAAKyb,iBAAmB,CACtB3a,UAAWukB,EAAYtkB,QACvBmc,YAAaA,EACb9b,KAAMmT,EAAI9O,MAAQ,GAClBtC,MAAOkiB,EAAY1kB,M,MAOjC,CAEA4kB,oBACMvlB,KAAKwlB,SAAS1G,WAAW2G,UAI7BzlB,KAAK2f,cAAe,EACtB,CAEAjf,gBACEV,KAAK4b,gBAAiB,QAChB5b,KAAKgc,QAAQhc,KAAKW,MACxBX,KAAK4b,gBAAiB,CACxB,CAEAK,SAAShR,EAAsBya,GAAS,GAGtC,GAFA1lB,KAAKyf,iBAAkB,EAEnBzf,KAAKkhB,WAAaC,EAAAA,EAAAA,SAIpB,OAFCuE,GAAUC,MAAM3lB,KAAKqB,GAAG,+CACzBrB,KAAKyf,iBAAkB,GAIzB,IAAKiG,EAAQ,CAIX,MAAM5H,EAAQ9d,KAAKkJ,MAAM,oBACzB4U,EAAMC,M,CAIoB,GAAxB/d,KAAK+b,kBACP/b,KAAK+b,gBAAkB7a,EAAAA,EAAAA,qBAIzBlB,KAAKiU,WAAU,KAEb,IAAIwH,EAAmB,GACnBuC,EAAiB,EAarB,GAZqC,kBAA1Bhe,KAAKyb,kBAAiCzb,KAAKqc,qBAEpDZ,EACmC,kBAA1Bzb,KAAKyb,iBACRzb,KAAKyb,iBACLzb,KAAKyb,iBAAiBra,KAG5B4c,EAAiBhe,KAAKyb,iBAAiBtY,MAIrC8H,IAAMjL,KAAKie,KAAKC,WAElB,YADAle,KAAKyf,iBAAkB,GAKzB,MAAM5e,EAAO,CACXyT,OAAQ,WACRpE,QAASlQ,KAAK+R,eACdvE,KAAMxN,KAAKmgB,aACXpf,QAASf,KAAK+b,gBACdtL,SAAUgL,EACVza,OAAQgd,EACRtN,eAAe,GAGXkV,EAAc/kB,IAElBb,KAAK4lB,WAAW/kB,GACbgB,MAAK,KAGJX,EAAAA,EAAAA,eAA6B,GAAMW,MAAK,KACtC7B,KAAKid,gBAAgB,IAGvBjd,KAAKwd,YACLxd,KAAKie,KAAKK,iBAAiB,IAE5BlV,OAAO0H,IACqB,MAAvBA,EAAMC,cAGP2U,GACC1lB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,qDACjBC,KAAM,WAGTokB,GACC1lB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,yDAEFC,KAAM,S,IAIb0P,SAAQ,KACPhR,KAAKyf,iBAAkB,EACvBzf,KAAK4f,gBAAiB,EACtB5f,KAAK2f,cAAe,CAAK,GACzB,EAGF+F,GACF7kB,EAAK6P,eAAgB,EACrBkV,EAAW/kB,KAEXA,EAAK6P,cAAgB1Q,KAAK+f,WAC1B6F,EAAW/kB,GACXb,KAAK+f,YAAa,E,GAGxB,CAEAL,YAAYzU,GAGV,MAAM4a,GAAU,IAAIzY,MAAOkC,UAG3B,GAFAtP,KAAK8gB,oBAAqB,EAEtB9gB,KAAKkhB,WAAaC,EAAAA,EAAAA,SAKtB,GAAInhB,KAAKkhB,WAAaC,EAAAA,EAAAA,OAA0B,CAE9C,MAAMtgB,EAAO,CACXyT,OAAQ,aACRpE,QAASlQ,KAAK+R,eACdvE,KAAMqY,GAER7lB,KAAK8lB,aAAajlB,GAAMgB,MAAK,KAC3B7B,KAAK8gB,oBAAqB,CAAK,G,KAE5B,CAEL,MAAMjgB,EAAO,CACXyT,OAAQ,WACRpE,QAASlQ,KAAK+R,eACdvE,KAAMqY,GAER7lB,KAAK+lB,WAAWllB,GAAMgB,MAAK,KACzB7B,KAAK8gB,oBAAqB,CAAK,G,MAtBjC9gB,KAAK8gB,oBAAqB,CAyB9B,CAEAqD,mBAAmB6B,GACjB,MAAMpF,EAAYxC,SAASgF,cAAc,aACnC6C,EAAarF,GAAWsF,eAC1BC,uBACJF,EAAWG,UAAUlD,OAAO,uBACxB8C,GACFC,EAAWG,UAAUC,IAAI,sBAE7B,CAEAC,mBACEtmB,KAAK4gB,UAAYxC,SAASgF,cAAc,aACxC,MAAMmD,EAAsBvmB,KAAK4gB,WAAWzd,MAE5CnD,KAAK2gB,oBAAqB,EAC1B3gB,KAAKmkB,oBAAmB,GACnBoC,GAAsD,IAA/BA,EAAoBlgB,SAC9CrG,KAAK2gB,oBAAqB,EAC1B3gB,KAAKmkB,oBAAmB,GAE5B,CAEAtE,oBACE,MAAM/B,EAAQ9d,KAAKkJ,MAAM,oBACrBlJ,KAAK2gB,oBACP7C,EAAMC,OACN/d,KAAKiU,WAAU,KACbjU,KAAKyb,iBAAmB,GACxBzb,KAAK2gB,oBAAqB,EAC1B3gB,KAAKmkB,oBAAmB,EAAM,MAGhCrG,EAAM0I,QACNxmB,KAAKiU,WAAU,KACbjU,KAAKyb,iBAAmB,GACxBzb,KAAK2gB,oBAAqB,CAAI,IAGpC,IAz0BA3e,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,yCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,0CAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,uCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,sCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,2CAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,uCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,sCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,uCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,oCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa4B,QAAM,gCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,EAAa6B,QAAM,yCAIpBF,EAAAA,EAAAA,IAAA,CADC3B,EAAa6B,QAAM,+BAIpBF,EAAAA,EAAAA,IAAA,CADC3B,EAAa6B,QAAM,kCAWpBF,EAAAA,EAAAA,IAAA,CADC3B,EAAa6B,QAAM,oCAQpBF,EAAAA,EAAAA,IAAA,CADC3B,EAAa6B,QAAM,kCAQpBF,EAAAA,EAAAA,IAAA,CADCzB,EAAQ2B,QAAM,kCAIfF,EAAAA,EAAAA,IAAA,CADCzB,EAAQ2B,QAAM,oCAGPF,EAAAA,EAAAA,IAAA,EAAPc,EAAAA,EAAAA,OAAM,4BACMd,EAAAA,EAAAA,IAAA,EAAZG,EAAAA,EAAAA,IAAI,SAAO,4BA0MZH,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,QAAM,uCAkBbtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,sBAAoB,0BAc3BtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,gBAAc,qCAOrBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,aAAW,iCAmDlBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,oBAAkB,wCAiEzBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,mBAAiB,2CAnaL0V,GAAWhe,EAAAA,EAAAA,IAAA,EAL/BI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVsW,WAAUA,EAAAA,MAGOqH,G,QC5CwR,ICSzS,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,Q,WCpB4BrJ,EAAO5W,WAAsB,MAAU,KAAUuD,EAAK,EAAC,SAAC,QAAa,Y,OAAqB,O,MAA+B,CAAmB,WAAa,qBAAK,4BAACa,eAAgBU,IAAKhB,cAAI,K,YAA4B,O,IAAEP,YAAM,GAAE,aAAC,Q,UAA0E,CAAI,EAAC,eAAqB,0BAAE,MAAC,CAAyE,2BAAW,2DAACH,K,MAA8C,CAAU,MAAC,QAACR,SAAU,SAAC,GAAO,SAAI1C,EACtiB,qBAGD,GAASH,8BAAuB,E,mFCJwV,W,IAAS,OAAC,EAAGG,EAAG,SAAyC,oB,OAAC,QAAQ,2H,OAAM,QAAE,IAAK,EAAIF,KAAmHE,YAAG,2BAA0B2C,MAAAA,CAAiC7C,KAAO,GAAkE,GAAU,OAA4BuD,CAAAA,EAAK,KAAC,Q,MAAK,CAAQ,MAAO,SAAK,CAACrD,EAAG,KAAO,GAAC,6D,IAACqD,EAAAA,GAAAA,EAAM,W,YAAC,oB,GAAkB,eAAgB,uC,OAAC,OAAa,C,IAAC,EAAO,K,MAAQ,CAAa,GAAK,EAAI,GAAK,UAAcwV,CAAAA,EAAAA,EAAAA,EAAS,C,MAAC,CAA0E,kBAAI,YAAG,KAAK,OAAC,KAAuD,MAAU,OAAejV,QAAU4B,GAAK7C,IAAAA,EAAY,QAAkC,QAAS,C,SAAM6jB,CAAS,UAAY,EAACC,GAAI,wDAAoC,E,IAAE,EAAEzmB,GAAAA,GAAG,OAAoB,cAAa,SAAC,G,OAAM,EAAC,M,IAAC,EAAQ,KAAM,uCAAE,MAAMoD,CAAwH,KAAC,GAA+BT,GAAAA,EAAY,GAA2BU,KAAM,OAAC,OAAO,qBAAM,CAAC,eAAC,MAAO,CAAkB,MAAOvD,SAAuB,wEAAC,IAAGE,EAAG,aAAwB,CAAWqD,YAAM,2B,MAAC,CAAc,SACnlD,IACGlD,MAAAA,SAAoB,GAExB,OAAe,EAAEA,UAAAA,Q,8HCMjB,IAAqBumB,GAArB,cAAqDlmB,EAAAA,GAArD4E,c,oBACE,KAAAlC,OAAQ,EACR,KAAAyjB,YAAa,EA4Db,KAAAC,cAAgB,CAed,CACEphB,KAAM,UACNqhB,KAAMljB,EAAQ,OACduB,YAAa,gBACb4hB,GAAI,UACJC,WAAW,GA0BjB,CAxGMC,mBACF,MAAO,CACL,CACExhB,KAAMzF,KAAKqB,GAAG,yDACd0lB,GAAI,IACJ/T,KAAM,WACNgU,WAAW,GAEb,CACEvhB,KAAMzF,KAAKqB,GAAG,4DACd0lB,GAAI,WACJ/T,KAAM,eACNgU,WAAW,GAEb,CACEvhB,KAAMzF,KAAKqB,GAAG,4DACd0lB,GAAI,WACJ/T,KAAM,gBACNgU,WAAW,GAEb,CACEvhB,KAAMzF,KAAKqB,GAAG,yDACd0lB,GAAI,QACJ/T,KAAM,0CACNgU,WAAW,GAEb,CACEvhB,KAAMzF,KAAKqB,GAAG,yDACd0lB,GAAI,QACJ/T,KAAM,uBACNgU,WAAW,GAGjB,CAEIE,sBACF,MAAO,CACL,CACEzhB,KAAMzF,KAAKqB,GAAG,+DACd0lB,GAAI,WACJ/T,KAAM,WACNgU,WAAW,GAEb,CACEvhB,KAAMzF,KAAKqB,GAAG,8DACdqlB,KAAM,yCACN1T,KAAM,oBACNgU,WAAW,GAEb,CACEvhB,KAAMzF,KAAKqB,GAAG,4DACd0lB,GAAI,QACJ/T,KAAM,0BACNgU,WAAW,GAGjB,CAiCIG,gBACF,OAAOnnB,KAAKonB,aAAapnB,KAAKinB,aAChC,CAEII,mBACF,OAAOrnB,KAAKonB,aAAapnB,KAAKknB,gBAChC,CAEII,iBACF,OAAOtnB,KAAKonB,aAAapnB,KAAK6mB,cAChC,CAEAO,aAAaG,GACX,OAAOA,EAAOngB,QAAQqf,IAAWA,EAAMO,WAAazgB,EAAAA,EAAAA,aACtD,GA3GmBogB,IAAuB3kB,EAAAA,EAAAA,IAAA,EAL3CI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVmlB,aAAYA,MAGKb,I,UCVoS,MCOrT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCThC,IAAqBc,GAArB,cAAqDhnB,EAAAA,GAArD4E,c,oBACE,KAAAlC,OAAQ,CAKV,CAHEukB,gBACE,OAAO1nB,KAAKmD,MAAQ,YAAc,UACpC,GALmBskB,IAAuBzlB,EAAAA,EAAAA,IAAA,EAL3CI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVskB,wBAAuBA,OAGNc,I,UCToS,MCQrT,IAAY,OACd,GACA,EACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,WCnB4IjkB,GAAG,W,IAAC,OAAiC,EAAC,WAACW,EAAYpE,MAAM,Y,OAAM,EAAC,SAAW,K,MAAI,C,WAAa,G,gBAAEuD,gB,GAAS,C,MAAgCV,EAAAA,uB,YAAiGA,EAAW,GAAC,E,IAAeU,Y,aAAc,G,kBAAwE,GAAC,iB,YAAS,c,MAAS,GAAS,GAAQ,yC,YAAW,e,MAAQ,CAAqD,gBAAI,QAAO,sBAAQ,S,CAAQ,MAAQ,C,MAAS,CAAkB,MAAS,SAAI,OAAMM,SAAoD,WAAI,IAAI,iDAAG,UAAS+jB,MAAAA,CAA+C/kB,MAAY,SAA4B,gBAAC,QAAY,GAAK,qDAAuB,GAAC,MAAkB,CAAkC,IAAjC7C,EAAI6nB,oBAAQD,OAAqB,EAASnmB,EAAAA,EAAKqmB,CAAO,YAAY,sB,MAAWA,CAAMjlB,YAAY,Q,CAAgCA,EAAAA,GAAAA,EAAAA,CAAiC,MAAM,CAAKA,aAAY,K,CAAsGA,EAAAA,GAAAA,EAAW,qBAAC,cAAoB,MAAM,CAACS,CAAAA,EAAG,MAAItD,CAAiF8D,IAAIgkB,EAAMvkB,YAAM,qB,CAAC,QAAO9B,CAAI,YAAC,uBAACgC,CAAE,EAAC,K,YAAY,sBAAe,sEAAG,YAAM,sBAAI,CAAC,EAAG,GAAE,IAAI,KAAQ,EAAEvD,qBAAqB,uBAA0B,qBAAwB,CAA6FwD,IAAI,EAAexD,MAAG,CAAoB,KAAC,GACrmD,IACGG,UAAe,EAAK,e,wOCFoCuW,GAAO5W,WAAsB,MAAU,KAAeyD,EAAG,WAAQ,EAACzD,MAAI+nB,Y,OAAgB,QAAE,GAAI,CAAgCllB,MAAW,EAAC,mB,CAAwB,QAAmB7C,CAAAA,EAAIgoB,IAAAA,CAA+B,0BAAG,SAAM,CAC1R,qDAGQjoB,E,QCCT,IAAqBkoB,GAArB,cAA8CvnB,EAAAA,GAI5CsnB,gBAAgBE,GACd,OAAQA,GACN,IAAK,mBACH,MAAO,qCACT,IAAK,gBACH,MAAO,kCAEb,CACAH,mBACE9nB,KAAKsW,MAAM,YAAatW,KAAKwB,KAAKymB,KAAMjoB,KAAKwB,KAAK0mB,iBAAkBloB,KAAKwB,KAAK2mB,KAChF,IAZAnmB,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,4BADYklB,IAAgBhmB,EAAAA,EAAAA,IAAA,EADpCI,EAAAA,EAAAA,IAAU,CAAC,IACS4lB,I,UCLyS,MCQ1T,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,wBCThC,MAAMznB,IAAUD,EAAAA,EAAAA,IAAU,MAS1B,IAAqB8nB,GAArB,cAA8C3nB,EAAAA,GAA9C4E,c,oBAWE,KAAAgjB,mBAAoB,EACpB,KAAAC,iBAAkB,CAiCpB,CA/BEC,WAAWN,EAAMhnB,EAAIknB,GACnBnoB,KAAKwoB,iBAAiBL,GACT,kBAATF,EACFjoB,KAAKyB,WAAWF,SAASL,EAAAA,EAAAA,SAAwBD,IAEjDjB,KAAKyoB,cAAcre,YAAYlJ,EAAAA,EAAAA,YAA2BD,GAE9D,CAEAynB,qBAAqBC,GACnB,OAAOC,KAAOD,GAAWE,SAC3B,CAEAC,qBAAqBxnB,GACnB,MAAgB,qBAATA,EAA8B,mBAAqB,eAC5D,CAEAynB,sBACE,OAAK/oB,KAAKsoB,gBAECtoB,KAAKsoB,gBACP,mBADF,EADE,WAIX,CAEAU,wBACEhpB,KAAKsoB,iBAAmBtoB,KAAKsoB,gBACzBtoB,KAAKsoB,kBACPtoB,KAAKqoB,mBAAoB,EAE7B,IA1CArmB,EAAAA,EAAAA,IAAA,CADCzB,GAAQ0oB,OAAK,4CAGdjnB,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,yCAGfF,EAAAA,EAAAA,IAAA,EADCG,EAAAA,EAAAA,OAAK,mCAINH,EAAAA,EAAAA,IAAA,EADCG,EAAAA,EAAAA,OAAK,qCARaimB,IAAgBpmB,EAAAA,EAAAA,IAAA,EAPpCI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACV2lB,iBAAgB,GAChB1lB,WAAU,KACV8C,cAAaA,GAAAA,MAGIgjB,I,UCnByS,MCS1T,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,YCThC,MAAMc,IAAkB5oB,EAAAA,EAAAA,IAAU,cAUlC,IAAqB6e,GAArB,cAAoC1e,EAAAA,GAApC4E,c,oBAiBE,KAAA8jB,uBAAwB,EACxB,KAAAC,wBAAyB,CAqB3B,CA1BMC,cACF,OAAO9iB,EAAAA,EAAAA,YAAAA,QAAAA,IACT,CAKA7F,mBACMV,KAAKopB,yBAGTppB,KAAKopB,wBAAyB,QACvBppB,KAAKmpB,sBAAwBnpB,KAAKic,SAAWjc,KAAKgc,WACzDhc,KAAKopB,wBAAyB,EAChC,CAGAE,cAAc5lB,EAAwB6e,GAChC7e,GAAS6lB,GAAAA,EAAAA,UAGThH,GAAYgH,GAAAA,EAAAA,UACdvpB,KAAKopB,wBAAyB,GAEhCppB,KAAKmpB,sBAAwBzlB,IAAU6lB,GAAAA,EAAAA,OACzC,IApCAvnB,EAAAA,EAAAA,IAAA,CADCknB,GAAgBjnB,QAAM,qCAIvBD,EAAAA,EAAAA,IAAA,CADCknB,GAAgBjnB,QAAM,2CAIvBD,EAAAA,EAAAA,IAAA,CADCknB,GAAgBhnB,QAAM,gCAIvBF,EAAAA,EAAAA,IAAA,CADCknB,GAAgBhnB,QAAM,iCAoBvBF,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,uBAAqB,mCA7BT6U,IAAMnd,EAAAA,EAAAA,IAAA,EAR1BI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACV2d,YAAW,EACXwH,aAAY,EACZC,wBAAuB,GACvBW,iBAAgBA,OAGCjJ,I,UCrBmR,MCSpS,IAAY,OACd,GACA,EACA,GACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,eCpBsG,W,IAAgB,O,EAAoB,EAAO,MAAC,GAAI,oBAAC,OAAM,MAAUlf,CAAyF6Y,MAAAA,CAAU,WAAY/Y,GAAyC,cAAIE,YAAG,QAAkDqD,OAAM,I,CAAqB,MAAOvD,CAAG,EAAG,KAAC,aAA2B,0CAAC,SAAC,CAAG,UAAC,yC,EAA0B,KAAWypB,CAAAA,EAAAA,GAAAA,GAAgB,gB,MAAA,CAAC,kBAAIvpB,KAAG,KAAY,8B,GAAS,CAAkB,MAAOF,SAAO,GAA4B,yBAAG,K,EAA2B,aAAW0pB,C,MAAc,CAAC,gBAAI,KAAO,EAAG,GAAC,6BAEnrBrpB,GAAAA,CAEJ,MAAe,SAAEA,G,+CCKjB,IAAqBspB,GAArB,cAAwCjpB,EAAAA,GACtC+oB,iBACEnF,OAAOsF,SAASjD,KAAO,4BACzB,CACA+C,eACEG,aAAaC,QAAQ,gBAAgB,IAAIzc,MAAO4T,eAChDhhB,KAAKsW,MAAM,UAAU,EACvB,GAPmBoT,IAAU1nB,EAAAA,EAAAA,IAAA,EAL9BI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVsW,WAAUA,EAAAA,MAGO+Q,I,UCTuR,MCOxS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,YClBYzpB,GAAOC,W,IAASyW,EAAM,KAAuB,EAAO1W,EAAG,SAA6B,oB,OAAC,EAAK,KAAG,C,MAAC,CAAa,IAAO,GAAI,WAACuC,MAAM,I,MAAmBE,C,MAA6BS,EAAK,MAAI,SAAC,YAACR,EAAAA,MAAW,CAAO,EAAI1C,WAAG,UAEzPG,CAAAA,EAAAA,8BAAoB,EAExB,E,MCKA,IAAqB0pB,GAArB,cAAoDrpB,EAAAA,GAApD4E,c,oBACE,KAAAlC,OAAQ,CAOV,CAHS4mB,eACL/pB,KAAKmD,OAASnD,KAAKmD,KACrB,GAPmB2mB,IAAsB9nB,EAAAA,EAAAA,IAAA,EAL1CI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVskB,wBAAuBA,OAGNmD,I,UCTmS,MCOpT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,GClB+I,W,IAAkB,OAACtnB,EAAK,EAAC,SAAQzC,EAAIiqB,MAAK,Y,OAACtnB,EAAAA,EAAAA,EAAS,EAAAA,GAAUwC,C,MAAS,CAAS,WAAC,GAACvC,WAAW,qBAAM,mBAC9Q,MAAOsnB,CACP,MAAO,EAAI,KAA6BrnB,SAAW,SAAC,GAAc,EAAC,MAAeA,EAA6B7C,WAAO,S,WAAmG,IAAU,WAAsC,mBAAC8b,YAAS,YAAC,OAAQ,C,YAAwB9b,gB,CAAiC,4DAAC,OAAIE,MAAG,UAAcqD,KAAM,8B,SAA0BvD,CAAgC,kBAAC8b,OAAS,8BAAC,KAAkE,gBAAC,OAAI,MAAQ,UACxgB,oCAGD,SAAS/b,C,gFCAT,MAAMS,IAAUD,EAAAA,EAAAA,IAAU,MAO1B,IAAqB4pB,GAArB,cAA0CzpB,EAAAA,GAA1C4E,c,oBAEU,KAAAlC,OAAS,EAKjB,KAAA6mB,KAAOhqB,KAAKmD,KAwBd,CArBEgnB,SAASpiB,EAAcC,GACjBD,IAAQC,GACZhI,KAAKsW,MAAM,QAASvO,EAEtB,CAGAqiB,WAAWriB,EAAcC,GACnBD,IAAQC,IACZhI,KAAKgqB,KAAOjiB,EACd,CAEAsiB,SACErqB,KAAKgqB,MAAO,EACZhqB,KAAKsqB,sBAAqB,EAC5B,CAEAC,UACEvqB,KAAKgqB,MAAO,EACZhqB,KAAKsqB,sBAAqB,EAC5B,IA7BuBtoB,EAAAA,EAAAA,IAAA,EAAtBc,EAAAA,EAAAA,IAAK,CAAEC,QAAS,MAAK,6BACdf,EAAAA,EAAAA,IAAA,EAAPc,EAAAA,EAAAA,OAAM,8BAGPd,EAAAA,EAAAA,IAAA,CADCzB,GAAQ0oB,OAAK,6CAMdjnB,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,SAAO,+BAQdtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,UAAQ,gCAhBI4f,IAAYloB,EAAAA,EAAAA,IAAA,EALhCI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVsW,WAAUA,EAAAA,MAGOuR,I,UCbuR,MCQxS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,wBCnB4BvT,GAAO5W,WAAsB,MAAU,KAAqBuD,EAAK,EAAC,SAAC,EAAUvD,MAAIyqB,Y,OAAQ,OAAa,MAA4B,MAAC,CAAChoB,QAAM,UAACW,WAAW6mB,8B,MAAkC,CAAS,MAAC,OAACrnB,SAAU,SAAC,GAAM,QAAG,EAC/Q,WAAa,SAEb,aAAW,IAAWC,EAAAA,OAAmBU,MAAM,gB,GAAQ,GAACvD,GAAAA,EAAU,C,YAAO,O,MAA8B,CAAgB,MAAO,eAAG,0BAACyC,KAAM,OAACW,KAAOpD,I,MAAsC,CAAS,MAAC,OAAC4C,SAAU,SAAC,GAAM,QAAI5C,EACzN,oBAGD,GAASD,GAAAA,YAAQM,IAAAA,E,QCHjB,IAAqB8pB,GAArB,cAA0CzpB,EAAAA,GAA1C4E,c,oBAEU,KAAAlC,OAAS,EAEjB,KAAA6mB,KAAOhqB,KAAKmD,MACZ,KAAAqnB,SAAW,EACX,KAAAC,aAAc,CAsBhB,CAnBEN,SAASpiB,EAAcC,GACjBD,IAAQC,IACZhI,KAAKsW,MAAM,QAASvO,GACfA,IAEa,YAAd/H,KAAKsB,MAAoC,UAAdtB,KAAKsB,MAClCtB,KAAKyqB,aAAc,EACnBzqB,KAAKwqB,QAAU,MAEfxqB,KAAKyqB,aAAc,EACnBzqB,KAAKwqB,QAAU,MAEnB,CAGAJ,WAAWriB,EAAcC,GACnBD,IAAQC,IACZhI,KAAKgqB,KAAOjiB,EACd,IA1BuB/F,EAAAA,EAAAA,IAAA,EAAtBc,EAAAA,EAAAA,IAAK,CAAEC,QAAS,MAAK,6BACdf,EAAAA,EAAAA,IAAA,EAAPc,EAAAA,EAAAA,OAAM,8BAOPd,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,SAAO,+BAgBdtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,UAAQ,gCAvBI4f,IAAYloB,EAAAA,EAAAA,IAAA,CADhCI,EAAAA,IACoB8nB,I,UCJyR,MCQ1S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCnB6EtnB,GAAAA,WAA6B,IAAG3C,EAAG,KAAO2C,EAAAA,EAAAA,MAAY,GAAmC,EAAQ,MAAC,Y,OAAM,EAAC,K,YAAC,mB,CAA+B,S,YAAgC,+BAAM,QAACuB,MAAAA,CAAqBN,0BAAe,EAACF,kBAAY,E,YAAI,G,YAAU,O,IAAC,Y,GAAkCL,UAAM,G,kBAAqC,kB,MAAC,CAAoB,cAAG,GAAO,YAAkDA,GAAAA,CAAO,MAAQ,a,QAA2B,GAAY,c,YAAWH,OAE5e,OAAI,MAAI,yBAAI,WAAO,iCAA8BT,G,WAAmDC,CAA6B,yBAAI,SAAI,SAAe,GAAwB,EAAC,kBAAkB,EAClR,gCAGD,IAAS7C,gBAAQM,EAAAA,gBAAe,C,mDCNYH,GAAOC,W,IAASyW,EAAM,KAAuB,EAAO1W,EAAG,SAAW2C,EAAY,kB,OAA0B,EAAC,M,YACxI7C,qB,MACTgf,CACD,oBAAG,OAAC,0B,GAA0Bta,CAAyB,MAAC,YAAC,EAAS,iB,UAA8HimB,SAAY,GAAK,uFAAC,cAAK3qB,I,CAAwD,oBAA0B,GAACA,uBAAgB,C,GAAC,CAAyB,wCAAI,UAAO,EAAM,cAAuBuD,GAAM,S,YAAW,UAAI,MAAC,CAAG,SAAC,K,GAA0BvD,CAAoB,MAAC,YAAC,aAAQ4qB,C,QAAsHD,SAAY,GAAI,gFAAC,cAAIzqB,IAA8D,CAACF,EAAG,OAAO,CAA+E0D,YAAI,uCAAe,GAAG,gFACzwB,oBACGrD,EAEJ,E,kBCPwHwC,GAAAA,WAAuC,IAAG3C,EAAG,KAAgB2C,EAAAA,EAAAA,MAAY,GAAmB,oB,OAAC,MAAU,C,IAAC,O,YAA6B,6B,CAAI,Q,YAAsB,a,MAA2D,CAAc,MAAQ7C,GAAc,kBAAG,UAAC,GAAC,mBAAU6qB,G,YAA4BtpB,EAAK6I,GAAAA,sC,KAAiF,OAAoB,mBAAG3H,GAAAA,CAAOW,QAAWvC,SAAS6E,GAAM/C,OAAAA,EAAS,KAAAA,QAAe,sDAAKoB,EAAK/D,SAA0B,GAA4B,OAAIE,MAAG,EAAM,cAAC2C,SAAW,SAAC,GAAkC,EAAC,KAAM,oBAACA,EAA4B3C,WAAG,mBAAmB,QAAQ,C,YAAG,+B,CAAqB,QAAOF,C,YAAgD,e,CAAoE,MAAW,CAAoB,MAAC,CAACoE,MAAW,GAAUN,kBAAI,GAAgBF,KAAG,8C,YAAsB,KAAQ,+C,MAACf,EAAAA,qB,YAA+B,EAAQ,K,wCAAoC,GAAM7C,EAAAA,EAAIgT,CAAkB,wBAAG,MAAC,CAAC,aAAM,OAAC,OAAO,WAAO,4B,EAAqG,OAAC,KAA8B,OAAI,MAAM,EAAC,SAAM,QAACnQ,SAAW,SAAC,GAAkB,EAAC,OAAW,2BAACA,EAA6BU,WAAM,uBAAe,WAAc,C,YAAc,e,CAAC,MAAQ,C,YAAqB,iB,MAAQ,CAAkB,YAAoE,eAAYsH,GAAe,SAACpI,MAAM,UAACW,YAAWvC,OAAkB8B,aAAS,K,YAA6B9B,EAAAA,GAAAA,+CAAyB,MAAC,kBAA8B,OAAI,MAAM,EAAC,SAAM,QAACgC,SAAW,SAAC,GAAmB,EAAC,KAAQ,EAAC,qBAACA,EAA8B,WAAC,uB,GAA0B,QAAWioB,C,YAAS,gBAAC,QAAE,YAAS,gBAA8BjoB,GAAAA,CAAyB,MAAC,YAAC,OAAQ7C,EAAI+qB,SAAgB,IACv5D,8BACG1qB,YAAAA,WAEJ,I,mECIA,MAAMG,IAAUD,EAAAA,EAAAA,IAAU,MAG1B,IAAqByqB,GAArB,cAAkDtqB,EAAAA,GAAlD4E,c,oBAYE,KAAAzE,SAAgB,CACdK,GAAI,EACJwE,KAAM,GACNkL,cAAc,EACd3M,WAAY,EACZqO,SAAU,EACVlN,YAAa,GACbQ,OAAQ,GACR5E,QAAS,EACTwR,QAAS,GACTC,KAAM,GACNC,MAAO,CAAC,EACRL,eAAgB,MAMlB,KAAAC,QAAU,EAEV,KAAAlM,UAAY,CACTC,KAAQA,GAAKpG,KAAKqB,GAAG,0CACrB+E,GAAMA,EAAEC,QAAU,KAAOrG,KAAKqB,GAAG,4CAEpC,KAAAwK,YAAc,CACXzF,GACe,kBAANA,GAAkBA,GAAK,GACzB,KAANA,GACApG,KAAKqB,GAAG,+CAiFd,CAlHEypB,mBACE9qB,KAAKsW,MAAM,2BACb,CAiBI1L,qBACF,OAAOlE,OAAOC,OAAOzF,EAAAA,EAAAA,YACvB,CAeI6R,yBACF,MAAMV,EAAUrS,KAAKY,SAASyR,QAC9B,OAAOnR,EAAAA,EAAAA,eAA8BmR,GAASW,IAChD,CAEInI,0BACF,MAAMoI,EAAwB,GAC9B,IAAK,IAAI3E,EAAI,EAAGA,EAAIpN,EAAAA,EAAAA,YAAAA,OAAmCoN,IACrD2E,EAAUtL,KAAK,CACbvG,KAAMF,EAAAA,EAAAA,eAA8BoN,GAAGlN,KACvC+B,MAAOmL,IAGX,OAAO2E,CACT,CAEI+X,yBACF,OAAO9pB,EAAAA,EAAAA,cACT,CAEAR,gBACE,GAAKV,KAAKie,KAAKC,WAAf,CAQIle,KAAKY,SAASyR,QAAU,IAE1BrS,KAAKY,SAASyR,QAAU,GAEG,KAAzBrS,KAAKY,SAAS+E,SAEhB3F,KAAKY,SAAS+E,OAAS,GAEK,IAA1B3F,KAAKY,SAASG,UAChBf,KAAKY,SAASG,QAAUG,EAAAA,EAAAA,qBAG1B,UACwBA,EAAAA,EAAAA,cAA6B,CACjDJ,UAAWd,KAAKY,SAASG,QACzBJ,KAAMX,KAAKY,WAKbZ,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,2DACjBC,KAAM,W,CAER,MAAOkT,GACPxL,QAAQ8H,MAAM0D,GACdxU,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,yDACjBC,KAAM,S,CAKVtB,KAAKY,SAAW,CACdK,GAAI,EACJwE,KAAM,GACNkL,cAAc,EACd3M,WAAY,EACZqO,SAAU,EACVlN,YAAa,GACbQ,OAAQ,GACR5E,QAAS,EACTwR,QAAS,GACTC,KAAM,GACNC,MAAO,CAAC,EACRL,eAAgB,MAElBpS,KAAK8qB,kB,MArDH9qB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,mDACjBC,KAAM,SAoDZ,IAvHaU,EAAAA,EAAAA,IAAA,EAAZG,EAAAA,EAAAA,IAAI,SAAO,6BACJH,EAAAA,EAAAA,IAAA,EAAPc,EAAAA,EAAAA,OAAM,qCAGPd,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,oCAJI6oB,IAAoB/oB,EAAAA,EAAAA,IAAA,EADxCI,EAAAA,EAAAA,IAAU,CAAC,IACS2oB,I,UCXiS,MCQlT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCVhC,MAAMxqB,IAAUD,EAAAA,EAAAA,IAAU,MAG1B,IAAqB2qB,GAArB,cAA8CxqB,EAAAA,GAA9C4E,c,oBAWE,KAAAqlB,WAAY,CAId,CAPEQ,UAAUrqB,GACRb,KAAKyB,WAAWF,SAASV,EAC3B,CAEAsqB,eACEnrB,KAAK0qB,WAAY,CACnB,IAba1oB,EAAAA,EAAAA,IAAA,EAAZG,EAAAA,EAAAA,IAAI,SAAO,6BAEZH,EAAAA,EAAAA,IAAA,EADCG,EAAAA,EAAAA,OAAK,mCAINH,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,oCALI+oB,IAAgBjpB,EAAAA,EAAAA,IAAA,EADpCI,EAAAA,EAAAA,IAAU,CAAEC,WAAY,CAAE0oB,qBAAoB,GAAEzoB,WAAUA,GAAAA,MACtC2oB,I,UCZ6R,MCQ9S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnBwH,GAAK,W,IAAUroB,EAAAA,KAA8B,EAAK,QAAM,GAACA,EAAY,kBAAW,OAAM,QAAS,CAAEA,YAAY,mCAAwB,CAAE7C,EAAG,IAACqrB,CAA2CrgB,YAAO,mB,CACzUC,EAAAA,MAAU,C,YACD,a,CACTqgB,EAAAA,GAAAA,EAAW,CACb,oCAAI,GAAI,sBAAsB,EAAC,iBAACzoB,MAAAA,CAA+B7C,WAAIurB,UAAkD/nB,QAAM,SACzHwb,UAAW,2BACXhU,EAAO,iB,YACG,iB,CACVwgB,EAAAA,sBAAc,0B,MACT,CACLF,OAAAA,EAAW,kDACV7nB,MAAG,CAAC,oBAAwD,cAA0B,aAAG,UAAU,yBAAuC,GAAG,CAAkBC,yBAAI,2BAAmB,UAAY,EAAC,cAA8CsH,EAAO,yB,IAC1P,eACL,mBAAG,IAAM,oBAAyBnI,GAAAA,EAAAA,MAAY,CAAkC,YAAY,iCAAEW,MAAM,CAC9F,aAED,yBAACD,YAAM,mC,CAAC,MAAQ,C,MAAC,CAAU,eAAU,wBAAC,eAAY,yB,MAAe,CAA2D,OAAsC,QAAG,MAAC,GAAC,MAAQvD,KAAc,YAAKA,MAAIopB,EAAAA,sBAAoC,UAAT,UAAU7lB,SAAM,0BAAsB,IAAIvD,MAAO,e,EAAoD,wBAAc,QAAO,OAAIA,cAAO,UAAyG,CAACE,EAAG,oCAA6C,uB,YAAS,mC,CAAU,MAAQ,C,MAAK,CAAc,OAAG,KAAC,GAAC,MAAQ,G,MAAwBF,UAAsB,WAAC,aAAgB6C,GAAAA,CAAmBU,MAAM,YAAC,OAAQ,oBAAO,I,CAA6B,MAAMM,CAA4C,mBAAG,MAAK,CAAchB,MAAW,OAAqC3C,OAAU,OAAEqD,QAAM,GAAC,IAAM,EAAE,WAAW,OAAQ,EAAE,O,YAAS,mC,CAAU,MAAQ,C,MAAK,CAAc,OAAG,KAAC,GAAC,MAAQvD,GAAyB,gBAAIE,MAAG,KAAmD2C,OAAW,MAAiDU,GAAAA,CAAO,MAAQ,0B,CAAW,MAAQ,CAAE,sC,YAAS,mC,CAAU,MAAQ,C,MAAK,CAAc,OAAG,KAAC,GAAC,MAAQvD,GAAiB,gBAAIE,MAAG,KAAS2C,OAAW,M,GAAe,CAAe,MAAQ,EAAC,gB,CAAoB,MAAMgB,CAAsC,mBAAG,MAAK,CACtzC,aACGxD,OAAAA,OAEJ,QAAiBA,G,kECpBqYsC,W,MAA6BD,K,EAAW,WAACE,EAAU,MAAC,Y,OAAQ,OAAE,MAAK,CAAUC,WAAY,2BAAUU,gBAAM,oDAAmB,IAAIrD,QAAG,SAAe,GAAC2C,IAAAA,EAAY,iFAAY,EAAC,OAAS3C,CAAY2C,G,MAAyC,CAAU,eAAI3C,SAAQ,YAAC8K,EAAO,QAAEygB,EAAoBC,WAAU,WAAa,CAAC1rB,EAAG,IAAI,CAAyC6C,YAAY,UAAkCU,MAAM,CAAC,GAAM,gBAAO,CAACrD,EAAG,KAAM,CAAC2C,YAAY,SAAqB,CAAC3C,EAAG,WAAe,CAAC2C,YAAY,sBAAqBmI,MAAO,CAAE,WAAsD,SAACzH,MAAM,CAAC,kBAAkB,SAAS,W,CAAW,kCAA4B,O,YAAC,kCAAsB,OAAI,KAAO,M,CAAiB,QAASvD,CAAW,YAAC,qBAACgL,CAAAA,EAAK,KAAE,C,YAAY,qB,MAAiB,CAAY2gB,aAAO,kBAAM,mB,MAAQ,CAAU,kBAAG,KAAC,GAAC,KAAO,G,eAA+B,cAAK,yBAAKzrB,GAAG,MAAUF,CAAgFuD,MAAM,CAAC,QAAO,UAAM,MAAK,CAAOV,SAAW,WAAc3C,IAAG,WAAK2C,MAAAA,KAA0DA,MAAAA,CAAkC7C,KAAQA,I,GAAoD8D,CAAejB,MAAAA,SAAY,GAAsBU,EAAK,QAAC,C,OAA+B,UAAe,qD,MAAuB,CAACa,KAAAA,O,GAAqCR,MAAG,C,YAAkB,Y,OAAwBoH,C,YAAS4gB,a,MAAoB,oB,YAAQ,sB,KAASroB,EAAAA,OAAM,Y,SAAC,KAAY,C,MAAM,M,YAAsB,sB,MAA+B,C,YAAU,G,YAAuD,G,eAAY,wB,YAAewV,EAAS,K,mBAAiC,WAAC,MAAM,CAAC,QAAC,OAAM,UAAC,WAAwB,QAAC3V,MAAW,CAAST,aAAmBwC,KAAUpB,YAAW,KAAe,iBAAyB,qBAAO8jB,MAASgE,CAA8B3rB,SAAG,aAA+BqD,SAAM,CAAC,YAAe,kBAAoB,GAA+CyH,E,OAAS0gB,IAAmB,S,MAAC3S,C,MAAU,SAAiC,qBAAI7Y,EAAG,gBAAoB,EAAC6Y,E,WAAU,gBAAyC,EAAE7Y,GAAG,kBAAoB,G,OAAM,EAAE,M,IACp9E4rB,EAAS,M,MACTC,CACAL,eAAU,gBACT3S,CAAAA,EAAAA,GAAAA,GAAS,U,MAAC,CAAgC,iBAAc,SAAE,CAAM,YAAY,EAAI,GAAE,EAAC,UAEtG1Y,EAAAA,GAAAA,GAAoB,CAExB,SAAiBA,C,6PCQjB,MAAMG,IAAUD,EAAAA,EAAAA,IAAU,MAW1B,IAAqByrB,GAArB,cAAqDtrB,EAAAA,GAArD4E,c,oBAOE,KAAAC,OAAQ,EACR,KAAA7C,QAAS,EACT,KAAA8C,kBAAmB,EACnB,KAAAlB,oBAAqB,EACrB,KAAAE,qBAAuB,GACvB,KAAAiB,QAAS,EAIT,KAAAomB,MAAQ,CACN,CACEA,MAAO,CAAC,CAAEI,MAAO,cACjBA,MAAO,gBAET,CAEEJ,MAAO,CACL,CAAEI,MAAO,iBAAkB9O,YAAa,eAAgB1P,KAAM,YAC9D,CAAEwe,MAAO,eAAgB9O,YAAa,eAAgB1P,KAAM,YAC5D,CAAEwe,MAAO,UAAW9O,YAAa,eAAgB1P,KAAM,aAEzDwe,MAAO,aAET,CACEJ,MAAO,CAAC,CAAEI,MAAO,cACjBA,MAAO,cAET,CACEJ,MAAO,CAAC,CAAEI,MAAO,cACjBA,MAAO,iBAET,CACEJ,MAAO,CAAC,CAAEI,MAAO,cACjBA,MAAO,sBAET,CACEJ,MAAO,CAAC,CAAEI,MAAO,cACjBA,MAAO,aAET,CACEJ,MAAO,CAAC,CAAEI,MAAO,cACjBA,MAAO,mBAET,CACEJ,MAAO,CAAC,CAAEI,MAAO,cACjBA,MAAO,oBAET,CACEJ,MAAO,CAAC,CAAEI,MAAO,cACjBA,MAAO,mBAkBb,CAdSC,eACLjsB,KAAKyC,QAAS,CAChB,CAKI6D,aACF,OAAOC,EAAAA,EAAAA,SACT,CAEIC,kBACF,OAAOD,EAAAA,EAAAA,aAA0B,EACnC,IAvEAvE,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,qCAIfF,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,kCAJI6pB,IAAuB/pB,EAAAA,EAAAA,IAAA,EAT3CI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVkI,eAAc,KACdC,WAAU,KACVC,WAAU,KACVC,UAAS,KACTC,WAAUA,GAAAA,MAGOohB,I,UC3BoS,MCQrT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,wBCfhC,MAAM7C,IAAkB5oB,EAAAA,EAAAA,IAAU,cAW5B4rB,IAAgB5rB,EAAAA,EAAAA,IAAU,iBAYhC,IAAqB6rB,GAArB,cAAyC3rB,GAAAA,EAAzC6E,c,oBAmBE,KAAA+mB,gBAAiB,EAejB,KAAAjD,uBAAwB,EACxB,KAAAC,wBAAyB,CA8G3B,CA5GEhhB,UACEpI,KAAKqsB,iBACP,CAEAC,eACOtsB,KAAKusB,kBAGJvsB,KAAKsrB,sBACPtrB,KAAKwsB,cAAc,yBACVxsB,KAAKorB,uBACdprB,KAAKwsB,cAAc,yBAErBpO,SAASgF,gBAAgB,qBAAqBgD,UAAUlD,OAAO,aAP/D9E,SAASgF,gBAAgB,qBAAqBgD,UAAUC,IAAI,WAShE,CACAgG,kBACEjO,SAASgF,cAAc,yBAAyBqJ,iBAAiB,SAAS,KACxEzsB,KAAK0sB,oBACL1sB,KAAKssB,eACDtsB,KAAKosB,iBACPpsB,KAAKosB,gBAAiB,GAGxBhO,SAASgF,cAAc,mBAAmBgD,UAAUC,IAAI,WAAW,GAEvE,CACAsG,mBACM3sB,KAAKusB,kBACPvsB,KAAKwsB,cAAc,oBAGrBxsB,KAAKssB,cACP,CAEAM,oBACM5sB,KAAKosB,iBACPpsB,KAAKosB,gBAAiB,EAE1B,CAEAS,wBACM7sB,KAAKorB,uBACPprB,KAAKwsB,cAAc,wBAEvB,CAEAM,wBACE9sB,KAAK+sB,cAAc,yBAEnB/sB,KAAKgtB,2BACLhtB,KAAK2sB,mBACL3sB,KAAK4sB,mBACP,CAEAI,2BACMhtB,KAAKsrB,uBACPtrB,KAAKwsB,cAAc,wBAEvB,CACAS,gBACEjtB,KAAK+sB,cAAc,yBACnB/sB,KAAK6sB,wBACL7sB,KAAK4sB,oBACL5sB,KAAK2sB,kBACP,CACApT,mBAAmBxY,GACZA,EAGHf,KAAK4Z,eAAexP,YAAYrJ,GAFhCf,KAAK4Z,eAAevP,eAIxB,CACA6iB,mBACEltB,KAAKuZ,mBAAmB,MACxBvZ,KAAKgtB,2BACLhtB,KAAK6sB,wBACL7sB,KAAK2sB,mBACL3sB,KAAK4sB,mBACP,CAEAO,iBACEntB,KAAKuB,SAASvB,KAAKotB,YACrB,CAEA1sB,mBACMV,KAAKopB,yBAGTppB,KAAKopB,wBAAyB,QACvBppB,KAAKmpB,sBAAwBnpB,KAAKic,SAAWjc,KAAKgc,WACzDhc,KAAKopB,wBAAyB,EAChC,CAGAE,cAAc5lB,EAAwB6e,GAChC7e,GAAS6lB,GAAAA,EAAAA,UAGThH,GAAYgH,GAAAA,EAAAA,UACdvpB,KAAKopB,wBAAyB,GAEhCppB,KAAKmpB,sBAAwBzlB,IAAU6lB,GAAAA,EAAAA,OACzC,CACA8D,WAAWxsB,GACTb,KAAKotB,YAAcvsB,EACnBb,KAAKosB,gBAAkBpsB,KAAKosB,cAC9B,IA/IOpqB,EAAAA,EAAAA,IAAA,EAANG,EAAAA,EAAAA,OAAK,uCAGNH,EAAAA,EAAAA,IAAA,CADCkqB,GAAcjD,OAAK,iCAGpBjnB,EAAAA,EAAAA,IAAA,CADCkqB,GAAcjD,OAAK,8CAGpBjnB,EAAAA,EAAAA,IAAA,CADCkqB,GAAcjD,OAAK,8CAGpBjnB,EAAAA,EAAAA,IAAA,CADCkqB,GAAcjD,OAAK,yCAIpBjnB,EAAAA,EAAAA,IAAA,CADCkqB,GAAcoB,UAAQ,sCAGvBtrB,EAAAA,EAAAA,IAAA,CADCkqB,GAAcoB,UAAQ,sCAGvBtrB,EAAAA,EAAAA,IAAA,CADCkqB,GAAcoB,UAAQ,0CAOvBtrB,EAAAA,EAAAA,IAAA,CADCknB,GAAgBjnB,QAAM,qCAIvBD,EAAAA,EAAAA,IAAA,CADCknB,GAAgBjnB,QAAM,2CAIvBD,EAAAA,EAAAA,IAAA,CADCknB,GAAgBhnB,QAAM,gCAIvBF,EAAAA,EAAAA,IAAA,CADCknB,GAAgBhnB,QAAM,iCAqGvBF,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,uBAAqB,mCAnIT6hB,IAAWnqB,EAAAA,EAAAA,IAAA,EAX/BI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACV4oB,iBAAgB,GAChB9Y,cAAa,KACb/M,cAAa,KACb2lB,qBAAoB,GACpBpS,WAAU,IACVoT,wBAAuB,GACvBI,mBAGiBA,I,UC3BwR,MCQzS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,eCnBsI,W,IAAwC,O,EAA8B,WAAwC,EAASpsB,MAAIwtB,Y,OAAW,EAAM,MAAKC,CAAAA,EAAAA,iBAAQ,C,MAAC,CAAsB,aAAYC,EAAK,aAAC,iBAAiB,mBAAC,YAAW,EAAK,YAAC,iBAAkB,mBAAC,SAAc,WAAM,gBAA8C,kBAAqB,cAAuB,WAAY,EAAQ,UAAY,EAAO,eAAgD,cAAgB,EAAoB,0CAAG,cAAC,EAAC,iBAAaC,EAAa,gBAACvpB,YAAe,EAAcN,qBAAY,uBAACF,eAAa,kB,GAAkF,CAACe,OAAM,gB,YAAgB,MAAmB,KAA2I,C,2BAAsC,YAAC,MAAIipB,CAAkC,WAAlCA,EAAYC,QAAQ/sB,KAAKS,KAAuB,EAAErB,aAAG,CAAuBuD,MAAG,CAAC,OAAmBqqB,QAAAA,MAAgC,GAAC,CAACrrB,kBAAM,mBAAkD,iBAAxBE,EAAS,QAAUwC,KAAK,8B,GAACnF,CAAoB,aAAC,eAAC4C,OAAU,EAAC,QAAiB,MAAEgrB,CAAwE,MAAC,eAAC,kBAAmBG,GAAa,gBAACtrB,EAAOW,WAAW4qB,kBAA6E,a,EAAzBA,QAAAA,KAAAA,KAAyB,uB,GAAC,CAACprB,aAAW,gBAA0B,MAAEgrB,CAAyErqB,MAAM,wBAAC,kBAAcqqB,GAAY,yBAAG,EAAE,sCAA0F,iBAAlCA,EAAYC,QAAQ/sB,KAAKS,KAAyB,EAAErB,mBAAmBF,CAAuD6C,MAAAA,CAAmC3C,YAAS,GAAoB,GAAI,CAAgB8D,yBAAY,0BAAgB,uGAAE,YAAY,sBAAqDT,CAAAA,EAAK,MAAC,C,YAAW,Q,CAAC,OAAc,C,YAAc,CAAC,OAAS,SAAW,mDAACd,MAAM,CAACW,MAAOpD,GAA+C2C,eAAS,G,MAAoBoB,GAAmE,IAAC,IAACnB,IAAAA,KAAyD,MAAK1C,CAAe2C,MAAAA,EAAY,sBAAM,oBAACU,SAAM,YAAC,OAAU,sDAAC,EAAkB,WAAW,gDAAmF,UAACa,YAAYpE,O,MAAa,CAAU4D,MAAG,G,eAAsB,G,MAASf,EAAAA,oB,YAAyB,+C,YAAc,EAAQ,GAAC,E,kCAAkD,QAAG,YAAC,OAAC,OAAM,QAAC,GAAW,OAAM,OAAO,aAAM,IAAMmrB,EAAAA,sBAAqI,EAAEprB,OAAAA,IAAmD,SAAG,MAAI,CAASC,MAAAA,EAAY,uCAAsDU,SAAM,YAAC,OAAU,mDAAC,EAAU,WAAWvD,4CAAsB,EAAC,K,YAASA,sDAAc,OAAIA,MAAO,GAA+B,QAAG,2BAA8B,IAAW6tB,MAAAA,EAAAA,aAAW,GAAQ7tB,GAAG,eAAI,IAAcA,GAAM,EAAC6tB,KAAmB,GAAG,CAAc3tB,IAAG,sBAA2BwD,GAAI,kBAAyB,IAAoC,MAAC,sCACntG,IACGrD,MAAAA,KAEJ,EAASN,0BAAuB,C,yECJ4B6W,GAAO5W,WAAsB,MAAU,KAAuD6C,EAAAA,EAAAA,MAAY,GAA0B,EAAO,MAAC,Y,OAACA,EAAAA,MAAY,GAAM,0CAACU,YAAM,sB,CAAC,UAAM,CAAc,mBAAE,MAAMD,CAAuCT,IAAAA,iB,CAA0B,sBAAa,Q,YAAC,O,MAAkB,CAAW,SAAK,GAAe,eAAO,GAAe,MAAO,GAAiB,kBAACJ,KAAM,eAACW,KAAOpD,kB,MAA4D,CAA6C,MAAC,6BAAC4C,SAAU,SAAC,GAA4B,wCAAI1C,EAAYqD,WAAM,gCAAa,WAAE,MAAMD,CAA2CT,IAAAA,S,CAA0B,0BAAa,Q,YAAC,O,MAAkB,CAAW,SAAW,GAAC,eAAa,GAAC,MAAO,GAAO,UAAG,KAAC,OAAC,KAAQ,Q,GAAkD,CAAE,mBAACJ,OAAM,uBAACW,G,MAAiE,CAA2C,MAAC,2BAACR,SAAU,SAAC,GAA0B,sCAAI1C,EAAY2C,WAAY,8BAAc,UAAM,CAAuB,mBAAE,MAAMS,CAA6CT,IAAAA,0BAAyDA,CAAAA,EAAAA,GAAAA,gCAAkB,SAACU,YAAM,yB,CAAC,OAAa,C,YAAW,O,MAAK,CAAyB,SAAO,GAAS,SAACd,GAAM,wBAACW,KAAOpD,U,MAA+D,CAAwD,MAAC,gCAAC4C,SAAU,SAAC,GAA+B,iDAAI1C,EAAW2C,WAAY,mCAA6CA,EAAAA,OAAY,CAAsDU,YAAM,Q,CAAC,KAAO,cAAG,U,YAAU,sD,MAAC,CAA8B,SAAG,KAAC,GAAC,SAAQ,kB,GAA2C,CAAC,kBAAIvD,OAAO,QAAY,SAAmCgE,IAA0B,gDAAE,YAAS,CAC/wD,cAGD,GAASjE,GAAAA,kCAAuB,Q,QCAhC,MAAMosB,IAAgB5rB,EAAAA,EAAAA,IAAU,iBAGhC,IAAqB0tB,GAArB,cAAiDvtB,EAAAA,MACNuB,EAAAA,EAAAA,IAAA,EAAxCisB,EAAAA,EAAAA,IAAM,eAAgB,CAAE3sB,KAAMoF,UAAS,qCAGxC1E,EAAAA,EAAAA,IAAA,CADCkqB,GAAcjD,OAAK,uCAIpBjnB,EAAAA,EAAAA,IAAA,CADCkqB,GAAcoB,UAAQ,oCANJU,IAAmBhsB,EAAAA,EAAAA,IAAA,CADvCI,EAAAA,IACoB4rB,I,UCP4S,MCO7T,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBsG,GAAK,W,IAA6B1qB,EAAM,K,EAAC,QAAY,GAAG,oB,OAACa,EAAAA,MAAYpE,C,YAAa,iB,CAAY4D,EAAE,KAAC,QAAU,C,MAAC,C,YAAkE,I,YAA8D,O,IAAI,YAAI,GAAC,WAACe,MAAM,mBAAM,UAAW3E,YAAe,EAAC6tB,GAAAA,EAAQhC,YAAa,cAAc,cAA+BsC,GAAY,EAA4B1qB,OAAG,M,KAA0B,cAAW2qB,QAAAA,MAAiBD,OAAS,Y,OAAA,QAAC,aAAG,CAACjuB,EAAG,OAAqB8K,GAAAA,CAASwN,MAAO,YAAY,+BAACO,IAA2C,UAAG,MAAI,CAAqB/N,MAAO,W,SAAoB+gB,CAAuB,6BAAW,QAAkBhM,CAA+D,OAAI,UAAO,MAAK,aAAQ,QAEl3B1f,SAAAA,CAEJ,YAAiBA,EAAAA,GAAAA,EAAe,qD,4BCChC,IAAqBguB,GAArB,cAA8C3tB,EAAAA,GAI5C0tB,iBAAiBE,GACfruB,KAAKsW,MAAM,2BAA4B+X,EACzC,IAJQrsB,EAAAA,EAAAA,IAAA,EAAPc,EAAAA,EAAAA,OAAM,mCAFYsrB,IAAgBpsB,EAAAA,EAAAA,IAAA,CADpCI,EAAAA,IACoBgsB,I,UCLyS,MCQ1T,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnBYnuB,GAAOC,W,IAASyW,EAAM,KAAuB,EAAO1W,EAAG,MAAO,GAAUY,EAAI,MAAM,Y,OAAC+B,EAAAA,EAAAA,EAAY,CAAmBY,IAAG,a,YAAS,mB,GAAiB,CAA6C,kBAAC,yCAAIzD,IAEzOK,CAAAA,EAAAA,GAAAA,EAAAA,GAAe,EAAK,cAExB,E,MCCA,IAAqBkuB,GAArB,cAAwC7tB,EAAAA,GAItC8tB,iBAAiBC,GACfxuB,KAAKsW,MAAM,oBAAqBkY,EAClC,IAJQxsB,EAAAA,EAAAA,IAAA,EAAPc,EAAAA,EAAAA,OAAM,4BAFYwrB,IAAUtsB,EAAAA,EAAAA,IAAA,CAD9BI,EAAAA,IACoBksB,I,UCLuR,MCQxS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,YCnBkI1rB,GAAAA,W,IAAgCU,EAAM,K,EAAC,QAAY,GAAU,EAAG,kB,OAAC,SAAc,EAAC,KAAE,mC,YAAC,oB,MAAsB,CAA8B,UAAO,GAAO,MAAQvD,GAAc,kBAACyC,mBAAM,GAACW,YAAW4qB,gBAAqCrrB,KAAQ,O,MAAqBoB,EAAK/D,W,MAAkD4C,CAAgD,4CAAI1C,SAAG,SAAW,GAACqD,EAAM,+CAAC,EAAc,oDAAuC,MAAQ,C,MAAmB,CAAkD,YAACa,gBAAkB,GAAGN,YAAI,QAAYF,MAAG,mB,MAAe,yC,YAAU,O,IAAC,Y,GAA+Gf,UAAAA,KAAqC,EAAG7C,MAA6F,IAAKyC,MAAM,wEAACW,YAAW4qB,2BAAkCrrB,CAAAA,EAAS,SAAUwC,EAAK,sE,WAAyDvC,CAA6C,yCAAI1C,SAAU,SAAC,GAAC2C,EAAAA,KAAY,uCAAsDU,EAAO,WAAU,sCAAW,OAA6B,YAAC,sDAACE,MAAG,CAAC,MAAQ,G,KAAiB,GAAgC,2BAAG,GAAEzD,CACj2C,kBACGK,OAAAA,EAAe,MAAK,eAExB,I,+BCDA,MAAM8rB,IAAgB5rB,EAAAA,EAAAA,IAAU,iBAGhC,IAAqBmuB,GAArB,cAA+ChuB,EAAAA,GAMzC0F,gBACF,MAAO,CACJC,KAAQA,GAAK,GAAGpG,KAAKqB,GAAG,wCACxB+E,GAAMA,EAAEC,QAAU,KAAO,GAAGrG,KAAKqB,GAAG,yCAEzC,IAVkDW,EAAAA,EAAAA,IAAA,EAAjDisB,EAAAA,EAAAA,IAAM,wBAAyB,CAAE3sB,KAAMoF,UAAS,8CAGjD1E,EAAAA,EAAAA,IAAA,CADCkqB,GAAcjD,OAAK,sCAHDwF,IAAiBzsB,EAAAA,EAAAA,IAAA,CADrCI,EAAAA,IACoBqsB,I,UCN0S,MCO3T,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,YCNhC,MAAMvC,IAAgB5rB,EAAAA,EAAAA,IAAU,iBAC1BD,IAAeC,EAAAA,EAAAA,IAAU,gBAU/B,IAAKouB,IAAL,SAAKA,GACHA,EAAA,kDACAA,EAAA,yCACAA,EAAA,oDACAA,EAAA,oDACAA,EAAA,iCACAA,EAAA,yCACD,EAPD,CAAKA,KAAAA,GAAU,KAkBf,IAAqBC,GAArB,cAA2CxC,GAA3C9mB,c,oBAiBE,KAAAooB,MAAa,CACX1V,KAAM,CACJ7C,IAAKtR,EAAQ,OACb6B,KAAM,WAER4P,MAAO,CACLH,IAAKtR,EAAQ,OACb6B,KAAM,WAERmpB,KAAM,CACJ1Z,IAAKtR,EAAQ,OACb6B,KAAM,WAERopB,SAAU,CACR3Z,IAAKtR,EAAQ,OACb6B,KAAM,YAIV,KAAA8nB,YAAa,EAEb,KAAAuB,aAAoB,CAClBC,cAAe,GACfC,YAAa,GACbC,iBAAkB,KAClBC,gBAAgB,GAGlB,KAAAnB,sBAA6B,CAC3BntB,SAAU,CACRK,GAAI,EACJwE,KAAM,GACNkL,cAAc,EACd3M,WAAY,EACZqO,SAAU,EACVlN,YAAa,GACbQ,OAAQ,GACR5E,QAAS,GAEXouB,gBAAiB,GACjBC,WAAY,IAUd,KAAAC,aAAe,CACb,CACEpuB,GAAI,QACJwE,KAAM,YACN6pB,SAAU1rB,EAAQ,SAItB,KAAA2rB,YAAc,CACZ,CACEjuB,KAAM,OACNkuB,OAAQ,QACR3uB,KAAM,CACJO,KAAM,iHAIZ,KAAAquB,iBAAmB,EACnB,KAAAC,SAAW,GACX,KAAAC,YAAc,GAId,KAAAC,oBAAsB,GAEtB,KAAAC,OAAS,CACPC,OAAQ,CACNC,GAAI,UACJ3uB,KAAM,WAER4uB,SAAU,CACRD,GAAI,WAENR,YAAa,CACXQ,GAAI,WAENE,YAAa,CACXF,GAAI,UACJ3uB,KAAM,WAER8uB,gBAAiB,CACfH,GAAI,QACJ3uB,KAAM,WAER+uB,UAAW,CACTJ,GAAI,UACJ3uB,KAAM,YAIV,KAAAgvB,sBAAuB,EAEvB,KAAAC,gBAAiB,EAEjB,KAAAC,oBAAsB,EACtB,KAAAC,kBAAoB,EACpB,KAAAC,aAAoB,CAAC,CAgZvB,CA9YMrqB,gBACF,MAAO,CACJC,KAAQA,GAAK,GAAGpG,KAAKqB,GAAG,wCACxB+E,GAAMA,EAAEC,QAAU,KAAO,GAAGrG,KAAKqB,GAAG,yCAEzC,CAEI0R,yBACF,MAAMV,EAAUrS,KAAK+tB,sBAAsBntB,SAASyR,QACpD,OAAOnR,EAAAA,EAAAA,eAA8BmR,GAASW,IAChD,CAEInI,0BACF,MAAMoI,EAAwB,GAC9B,IAAK,IAAI3E,EAAI,EAAGA,EAAIpN,EAAAA,EAAAA,YAAAA,OAAmCoN,IACrD2E,EAAUtL,KAAK,CACbvG,KAAMF,EAAAA,EAAAA,eAA8BoN,GAAGlN,KACvC+B,MAAOmL,IAGX,OAAO2E,CACT,CAEIpL,wBACF,OAAQ7H,KAAK+tB,sBAAsBntB,SAASoD,YAC1C,KAAK,EACH,OAAOhE,KAAKqB,GAAG,gDACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,kDACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,2CACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,8CACjB,KAAK,EACH,OAAOrB,KAAKqB,GAAG,kDACjB,QACE,MAAO,GAEb,CAEAkR,UACE,MAAMke,EAAY,UAClBzwB,KAAK0wB,iBAAiBD,GAAW5uB,KAAK7B,KAAK2wB,wBAC7C,CAEAvoB,UAEEpI,KAAKuvB,YAAY1lB,SAAS+mB,GAAOA,EAAEC,OAAQ,GAC7C,CAEArD,WACExtB,KAAKutB,YAAa,EAElBvtB,KAAKyvB,iBAAmB,CAC1B,CAEAqB,YACE9wB,KAAKutB,YAAa,CACpB,CAEAM,eACE,MAAMkD,EAAaxiB,KAAKyiB,MACtB,IAAI5jB,KAAKpN,KAAK8uB,aAAaC,eAAezf,UAAY,KAGlD2hB,EAAcjxB,KAAKkxB,uBAAuBH,GAC1CI,EAAgB5iB,KAAKyiB,MAAM,IAAI5jB,KAAK6jB,GAAa3hB,UAAY,KAC/DyhB,EAAaI,EACfnxB,KAAKoxB,cAAa,GAElBpxB,KAAKoxB,cAAa,EAEtB,CAEA1D,eACE1tB,KAAKqxB,MAAM/a,MAAM,SACnB,CAEAgb,SACE,MAAMP,EAAaxiB,KAAKyiB,MACtB,IAAI5jB,KAAKpN,KAAK8uB,aAAaC,eAAezf,UAAY,KAGlD2hB,EAAcjxB,KAAKkxB,uBAAuBH,GAC1CI,EAAgB5iB,KAAKyiB,MAAM,IAAI5jB,KAAK6jB,GAAa3hB,UAAY,KAE7DiiB,EAAO,IAAiB,IAAbR,GAAmB5L,eAClB,IAAhBgM,GACAhM,cAAcnlB,KAAK8uB,aAAaG,mBAE5BuC,EAAW,gDAAmDD,MACpEvxB,KAAKyxB,cAAcD,EACrB,CAEAN,uBAAuBH,GACrB,MAAM9f,EAAO,IAAI7D,KAAkB,IAAb2jB,GAChBW,EAAOzgB,EAAKQ,cACZgD,GAAS,EAAIxD,EAAKM,YAAY4T,WAAWwM,SAAS,EAAG,KACrDC,EAAM3gB,EAAKI,UAAU8T,WAAWwM,SAAS,EAAG,KAElD,MAAO,GAAGD,KAAQjd,KAASmd,KAAO5xB,KAAK8uB,aAAaE,aACtD,CAEA6C,sBACE7xB,KAAK8xB,mBAAmB7F,cAC1B,CAEA8F,qBAAqBC,GACnB,MAAM5E,EAAclsB,EAAAA,EAAAA,cAA6B8wB,GACjD5E,GAAavrB,MAAMlB,IACjBX,KAAKuB,SAASZ,EAAK,GAEvB,CAEAsxB,iBAAiBC,GACf,MAAMviB,EAAIpB,KAAK4jB,MAAMD,EAAe,IAC9BE,EAAMF,EAAe,GAE3B,MAAO,GAAGviB,MAAMyiB,OAClB,CAEAtE,eACE,MAAMuE,EAAU,GAChB3rB,OAAO4rB,QAAQtyB,KAAK+tB,sBAAsBqB,YAAYmD,KAAKlrB,IACzD,MAAMmrB,EAAUnrB,EAAK,KAAKmnB,QACpBiE,EAAaD,EAAQjiB,MAAM,KAC3BmiB,EAAcD,EAAW,GAAGliB,MAAM,KAExC8hB,EAAQ1qB,KAAK+qB,EAAY,GAAG,IAG9B,MAAMlB,EAAW,6CAAgDa,EAAQM,WACzE3yB,KAAKyxB,cAAcD,EACrB,CAEAC,cAAczL,GACPA,GAGLhmB,KAAK0wB,iBAAiB1K,GAAOnkB,KAAK7B,KAAK2wB,wBACzC,CAEAiC,aACE1xB,EAAAA,EAAAA,iBAAgC,CAC9BJ,UAAWd,KAAK+tB,sBAAsBntB,SAASG,QAC/CJ,KAAMX,KAAK+tB,sBAAsBntB,SACjCI,OAAQhB,KAAK+tB,sBAAsBntB,SAASK,KAC3CY,MAAM0S,IAEPvU,KAAKuvB,YAAYsD,MAEjB7yB,KAAKuvB,YAAYsD,KAAK,GAE1B,CAEAnyB,gBACMV,KAAK+tB,sBAAsBntB,SAASyR,QAAU,IAEhDrS,KAAK+tB,sBAAsBntB,SAASyR,QAAU,GAEG,KAA/CrS,KAAK+tB,sBAAsBntB,SAAS+E,SAEtC3F,KAAK+tB,sBAAsBntB,SAAS+E,OAAS,GAEK,IAAhD3F,KAAK+tB,sBAAsBntB,SAASG,UACtCf,KAAK+tB,sBAAsBntB,SAASG,QAAUG,EAAAA,EAAAA,qBAGhD,IACE,MAAM0T,QAAgB1T,EAAAA,EAAAA,cAA6B,CACjDJ,UAAWd,KAAK+tB,sBAAsBntB,SAASG,QAC/CJ,KAAMX,KAAK+tB,sBAAsBntB,WAGnCZ,KAAKwwB,aAAe5b,QACd5U,KAAK+L,WACX/L,KAAKuB,SAASvB,KAAKwwB,cAEnBxwB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,2DACjBC,KAAM,W,CAER,MAAOkT,GACPxU,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,yDACjBC,KAAM,S,CAKVtB,KAAK+tB,sBAAsBntB,SAAW,CACpCK,GAAI,EACJwE,KAAM,GACNkL,cAAc,EACd3M,WAAY,EACZqO,SAAU,EACVlN,YAAa,GACbQ,OAAQ,GACR5E,QAAS,EAEb,CAEAL,iBACE,MAAM,QAAEwP,IAAYC,EAAAA,GAAAA,MAEdjD,EAA8B,CAClCjM,GAAIiP,EACJjE,MAAO,IAAImB,KAAKN,OAAOA,OAAO9M,KAAKswB,uBAAuBhhB,UAC1D1C,IAAK,IAAIQ,KAAKN,OAAO9M,KAAKuwB,oBAAoBjhB,UAC9CpD,MAAO,EACPmE,OAAQ,EACRC,aAAc,GACdC,MAAO,EACPC,YAAa,EACbzP,QAASf,KAAKwwB,aAAazvB,SAAW,EACtCJ,KAAMX,KAAKwwB,aAAavvB,GACxBwP,SAAUzQ,KAAKwwB,aAAa/qB,KAC5BiL,cAAe1Q,KAAKwwB,aAAa7f,oBAI7B3Q,KAAK4Q,WAAW,CAAEC,MAAO3D,IAAS9D,OAAO0H,IAClB,MAAvBA,EAAMC,aAER/Q,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,uEAEFC,KAAM,UAGRtB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,iEAEFC,KAAM,S,IAIZtB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,mEAEFC,KAAM,WAEV,CAEAwxB,cAAcjyB,EAAWkyB,GACvB,MAAM,cAAEC,EAAa,UAAEC,GAAcpyB,EAErC,IAAID,EAAsB,CACxBgrB,MAAO,GACPmH,cACAG,SAAUD,GAGZvsB,OAAO4rB,QAAQU,GAA2CnpB,SACxD,EAAEhG,GAAO4B,OAAMxE,KAAIkyB,gBACjBvyB,EAASgrB,MAAMjkB,KAAK,CAClB1G,KACA+qB,MAAOvmB,EACP+H,KAAMxN,KAAKiyB,iBAAiBkB,IAC5B,IAIN,MAAMC,EAAU,CAAEhyB,KAAM,GAAIE,KAAM,gBAC5BouB,EAAW1vB,KAAKqzB,gBAAgBD,EAASxyB,GAE/CZ,KAAKuvB,YAAc,IAAIvvB,KAAKuvB,YAAaG,EAC3C,CAEA4D,mBAAmBC,GACjB7sB,OAAO4rB,QAAQiB,GAAS1pB,SAAQ,EAAEhG,EAAK8C,MACzB,YAAR9C,GACA8C,EAAekD,SAAS2pB,IACxB,MAAM,MAAExH,EAAK,QAAEwC,GAAYgF,EAE3BxzB,KAAK+tB,sBAAsBoB,gBAAgBxnB,KAAK,CAC9CqkB,QACAwC,WACA,G,IAKRxuB,KAAK0vB,SAAW1vB,KAAKqzB,gBAAgB,CAAEjyB,KAAM,GAAIE,KAAM,aACvDtB,KAAKuvB,YAAc,IAAIvvB,KAAKuvB,YAAavvB,KAAK0vB,SAChD,CAEA+D,oBAAoBryB,EAAeE,GACjCtB,KAAK0vB,SAAW1vB,KAAKqzB,gBAAgB,CAAEjyB,OAAME,SAC7CtB,KAAKuvB,YAAc,IAAIvvB,KAAKuvB,YAAavvB,KAAK0vB,SAChD,CAEAgE,eAAe7yB,GACb,MAAM8yB,EAAU,CACdvyB,KAAMP,EAAKmrB,MACX1qB,KAAM,SACNktB,QAAS3tB,EAAK2tB,QACdxC,MAAOnrB,EAAKmrB,OAEdhsB,KAAK0vB,SAAW1vB,KAAKqzB,gBAAgBM,GACrC3zB,KAAK2vB,YAAc,IAAI3vB,KAAK2vB,YAAa3vB,KAAK0vB,SAChD,CAEA2D,gBAAgBO,EAASC,GACvB,IAAIC,EAAM,CACRxyB,KAAM,OACNkuB,OAAQ,QACR5D,MAAOiI,EACPhzB,KAAM+yB,GAGR,OAAOE,CACT,CAEAC,mBAAmBlzB,GACjB6F,OAAO4rB,QAAQzxB,GAAMgJ,SAAQ,EAAEhG,EAAK8C,MAClC,GAAY,gBAAR9C,EAAuB,CACzB,MAAM,IAAE+I,EAAG,MAAEX,GAAUtF,EACvB3G,KAAKswB,oBAAsBrkB,EAC3BjM,KAAKuwB,kBAAoB3jB,EACzB5M,KAAK6qB,S,IAGX,CAEAmJ,2BAA2B1f,EAAgBif,GACzC,OAAQjf,GACN,KAAKoa,GAAWuF,YACdj0B,KAAKyzB,oBAAoB,GAAI,gBAC7B,MACF,KAAK/E,GAAWwF,mBACdl0B,KAAK8yB,cAAcS,GAAS,GAC5B,MACF,KAAK7E,GAAWyF,UACdn0B,KAAK8yB,cAAcS,GAAS,GAC5B,MACF,KAAK7E,GAAW0F,cACdp0B,KAAKszB,mBAAmBC,GACxB,MACF,KAAK7E,GAAW2F,mBACdr0B,KAAK+zB,mBAAmBR,GACxB,MACF,KAAK7E,GAAW4F,cACdt0B,KAAK+tB,sBAAsBntB,SAAWZ,KAAKoT,UACzClS,EAAAA,EAAAA,SAAwBqyB,EAAQgB,UAElCv0B,KAAK0vB,SAAW1vB,KAAKqzB,gBAAgB,CAAEjyB,KAAM,GAAIE,KAAM,mBACvDtB,KAAKuvB,YAAc,IAAIvvB,KAAKuvB,YAAavvB,KAAK0vB,UAC9C,MAEF,QACE,MAGN,CAEAiB,wBAAwB9vB,GACtBA,EAAKgJ,SAAS2qB,IACZ9tB,OAAO4rB,QAAQkC,GAAW3qB,SAAQ,EAAEhG,EAAK8C,MACvC,OAAQ9C,GACN,IAAK,OACH7D,KAAKyzB,oBAAoB9sB,GACzB,MAEF,IAAK,SACHD,OAAO4rB,QAAQ3rB,GAAwBkD,SAAQ,EAAEhG,EAAKV,MACpD,MAAM,OACJmc,EACAiU,SAAS,OAAEjf,EAAM,OAAE3N,IACjBxD,EAEAmc,GACFtf,KAAKg0B,2BAA2B1f,EAAQ3N,E,IAG5C,MACF,IAAK,UACDA,EAAekD,SAAS2pB,IACxBxzB,KAAK0zB,eAAeF,GACpBxzB,KAAKuvB,YAAc,IAAIvvB,KAAKuvB,eAAgBvvB,KAAK2vB,aACjD3vB,KAAK2vB,YAAc,EAAE,IAEvB,MACF,QACE,MAAK,GAET,GAEN,CAEA8E,iBAAiB7G,GACf5tB,KAAKuvB,YAAc,IAAIvvB,KAAKuvB,YAAa3B,GACzC,IAAI8G,EAAe10B,KAAK0wB,iBAAiB9C,EAAQ/sB,KAAKO,MACtDszB,EAAa7yB,MAAMhB,GAAcb,KAAK2wB,wBAAwB9vB,IAChE,IAzgBOmB,EAAAA,EAAAA,IAAA,EAANG,EAAAA,EAAAA,OAAK,2CAGNH,EAAAA,EAAAA,IAAA,CADC3B,GAAa6B,QAAM,mCAMpBF,EAAAA,EAAAA,IAAA,CADCkqB,GAAcjD,OAAK,uCAIpBjnB,EAAAA,EAAAA,IAAA,CADCkqB,GAAcoB,UAAQ,qCAIvBtrB,EAAAA,EAAAA,IAAA,CADCkqB,GAAchqB,QAAM,wCAdFysB,IAAa3sB,EAAAA,EAAAA,IAAA,EATjCI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACV0pB,wBAAuB,GACvBqC,iBAAgB,GAChBE,WAAU,GACVN,oBAAmB,GACnBS,kBAAiBA,OAGAE,I,UCzC0R,MCQ3S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCVhC,MAAMzC,IAAgB5rB,EAAAA,EAAAA,IAAU,iBAYhC,IAAqBq0B,GAArB,cAAuCl0B,EAAAA,GAAvC4E,c,oBAwBE,KAAAuvB,kBAAmB,EACnB,KAAAzxB,OAAQ,CAwCV,CAtCEiF,UACEysB,YAAW,KACT70B,KAAK80B,qBAAqB,GACzB,IACL,CAGAC,qBACE/0B,KAAKg1B,YAAYh1B,KAAK40B,kBACtB50B,KAAKmD,OAASnD,KAAKmD,KACrB,CAEA8xB,WACEj1B,KAAKk1B,WACP,CAEAJ,sBACE,MAAM5U,EAAM,IAAI9S,KACV+nB,EAAiB,IAAI/nB,KACzB8S,EAAIzO,cACJyO,EAAI3O,WACJ2O,EAAI7O,WACJ2P,cACE4I,aAAawL,QAAQ,iBAAmBD,IAC1CvL,aAAaC,QAAQ,eAAgBsL,GACrCn1B,KAAK0wB,iBAAiB,0BAA0B7uB,MAAMhB,KAC/CA,GAASkV,MAAMC,QAAQnV,KAAUA,EAAKwF,SAK3CrG,KAAK40B,kBAAmB,EACxB50B,KAAKiU,WAAU,KACbjU,KAAKq1B,UAAU1E,wBAAwB9vB,EAAK,IAC5C,IAGR,IA/DsBmB,EAAAA,EAAAA,IAAA,EAArBG,EAAAA,EAAAA,IAAI,kBAAgB,kCAGrBH,EAAAA,EAAAA,IAAA,CADCkqB,GAAcjD,OAAK,iCAIpBjnB,EAAAA,EAAAA,IAAA,CADCkqB,GAAcjD,OAAK,8CAIpBjnB,EAAAA,EAAAA,IAAA,CADCkqB,GAAcjD,OAAK,8CAIpBjnB,EAAAA,EAAAA,IAAA,CADCkqB,GAAcjD,OAAK,yCAIpBjnB,EAAAA,EAAAA,IAAA,CADCkqB,GAAcoB,UAAQ,kCAIvBtrB,EAAAA,EAAAA,IAAA,CADCkqB,GAAcoB,UAAQ,oCAIvBtrB,EAAAA,EAAAA,IAAA,CADCkqB,GAAchqB,QAAM,yCAarBF,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,qBAAmB,wCAjCPqqB,IAAS3yB,EAAAA,EAAAA,IAAA,EAV7BI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACV4oB,iBAAgB,GAChB7lB,cAAa,KACb2lB,qBAAoB,GACpBpS,WAAU,IACVwT,YAAW,GACXwC,cAAaA,OAGIgG,I,UCrBsR,MCSvS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCpBY10B,GAAOC,W,IAASyW,EAAM,KAAuB,EAAO1W,EAAG,MAAM,GAAC2C,EAAY,kBAAkB,OAAM,SAAuBU,YAAM,oB,CAAC,MAAkB,C,MAAC,CAAiB,iBAAI,MAAG,cAEnNlD,EAEJ,E,MCAA,IAAqBk1B,GAArB,cAAwC70B,EAAAA,KAAnB60B,IAAUtzB,EAAAA,EAAAA,IAAA,CAD9BI,EAAAA,IACoBkzB,I,UCJuR,MCQxS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,eCnBmK5yB,W,MAA6BD,K,EAAW,WAACE,EAAU,MAAC,Y,OAAQ,SAAE,YAAa,YAAEC,CAAAA,EAAAA,EAAAA,EAAY,CAAQ,MAAK,CAAoEA,MAAW,Q,MAAmC,CAAiB,eAAI7C,SAAO,YAAqCgE,EAAAA,OAAY,CAAC,EAAkB,WAAW,WAA6D,QAAE,YAAa,SAAEA,CAAAA,EAAAA,EAAAA,IAAY,+B,YAAW,2B,MAAiB,CAAK,MAAO,Y,CAAmB,gCAAS,SAAM,YAAC,CAACT,OAAM,SAAC,SAAUiyB,WAAO,iBAAiB,oC,CAAkB,Y,YAA2B,CAAwB,oBAAoB,QAAIt1B,KAAQ,IAAE2C,MAAW,OAAa,OAAC,QAA0B,OAAK,IAAI,EAAK,OAAEA,YAAY,IAAY7C,QAAO,OAA+E6C,sBAAY,GAAoC3C,mBAAS,GAAC2C,gBAAY,MAAiFU,EAAK,MAAC,C,YAAY,UAAG,GAAC,CAACd,MAAM,qBAAoBE,EAAAA,MAAS,C,YAAoB6yB,W,CAAU,EAAC,6E,YAAW,mCAAS,UAAE,YAAY,4BAA+C,MAAS,0BAAe,Q,MAAK1xB,CAAIP,UAAM,I,MAAW,CAAE,MAAK,SAASV,SAAAA,SAAY,GAAwCW,EAAK,OAAC,C,EAAwD,WAAC,W,GAAQ,IAAO,EAACiyB,GAAAA,EAAOryB,aAAK,c,OAAC,MAAa,C,IAAC,EAAU,OAAIlD,MAAG,KAA6BqD,CAAAA,EAAK,IAAC,C,YAASvD,wCAAmD,OAAIA,kBAAO,mBAAgC,EAAO,QAAwE6C,MAAAA,CAAqC,MAAC,EAAa,MAACU,SAAM,GAAC,MAAU,KAAoE,QAAG,YAAC,OAAC,MAAO,CAAiB,iDAAqBA,CAAAA,EAAM,8D,IAAC,QAAOvD,IAAI01B,IAAAA,GAAAA,EAAAA,EAAAA,GAAyB,CAA2B,YAAC,sBAACjyB,CAAE,EAAC,c,MAAC,CAAyB,SAAI,KAAO,EAAG,qBAAY,gC,GAAQL,CAAwBT,MAAQ,EAAC,gBAAmC,EAAC,c,MAACC,CAAwB,yDAAcC,GAAAA,CAA2CmB,MAAW,EAAC,kBAAuB,IAAK,GAAC,EAAI,K,MAAC,CAAa,MAAO,EAAC,YAAM,SAAS,YAAM,eAAI9D,EAAa8D,WAAY,gB,CAAuB,QAAQ,C,YAAe,+BAAM,YAAC,CAACT,SAAM,WAAC,IAAMvD,KAAW,WAAkB,MAAS,MAAQ,gB,CAAmD,YAAoB,aAAIE,SAAS,WAAC2C,MAAW,MAA4E3C,OAAU,QAAkCqD,MAAM,CAAC,IAAM,EAAC,OAAG,gBAAG,QAAC,OAAC,sBAAYoyB,GAAgB,sBAAIz1B,gBAAY,MAAQ,QAAQ,CAAS,sFAAG,CAACF,EAAG,IAAI,CAAkD6C,YAAY,oBAAgBU,MAAM,CAAC,KAAO,I,GAAgB,CAAkB,MAAQ,EAAC,mBAAOE,CAAE,EAAC,K,MAAC,CAAwB,kBAAiBF,CAAAA,EAAK,GAAC,iC,OAAA,O,YAAS,gBAAQ,OAAIvD,KAAO,GACj9F,WACGK,MAAAA,UAEJ,QAAe,G,yICOf,IAAqBu1B,GAArB,cAA4Cl1B,EAAAA,GAA5C4E,c,oBACE,KAAA5C,QAAS,EACT,KAAA8yB,OAAS,0DAET,KAAAK,aAAc,EACd,KAAAC,mBAAoC,EAuGtC,CArGMC,kBACF,MAAO,CACL,CACE10B,KAAM,0BACN+B,MAAO,2DAET,CACE/B,KAAM,uBACN+B,MAAO,2DAET,CACE/B,KAAM,wBACN+B,MAAO,2DAGb,CAEIic,eACF,OAAO7Y,EAAAA,EAAAA,QACT,CAEIwvB,2BACF,OAAO/1B,KAAK61B,mBAAmBxvB,SAAWrG,KAAK81B,YAAYzvB,MAC7D,CAEIovB,6BACF,OAAOz1B,KAAK61B,mBAAmBvuB,SAAStH,KAAKu1B,OAC/C,CAEIS,kBACF,IAAI3vB,EAASrG,KAAK81B,YAAYzvB,OAE9B,OAAOrG,KAAKu1B,SAAWv1B,KAAK81B,YAAYzvB,EAAS,IAAIlD,KACvD,CAGA8yB,kBACOj2B,KAAK61B,mBAAmBvuB,SAAStH,KAAKu1B,SACzCv1B,KAAK61B,mBAAmBluB,KAAK3H,KAAKu1B,OAEtC,CAEAW,sBACEl2B,KAAKyC,QAAS,EACdzC,KAAKu1B,OAAS,EAChB,CAEAY,mBACEn2B,KAAK41B,aAAc,CACrB,CAEAl1B,2BACE,IAAI01B,EAA0B,CAC5B7uB,IAAKvH,KAAKof,SAAS7X,IACnBV,WAAY7G,KAAKof,SAASvY,WAC1BC,UAAW9G,KAAKof,SAAStY,UACzBuvB,KAAMr2B,KAAKof,SAASiX,KACpBC,KAAMt2B,KAAKof,SAASkX,KACpBC,aAAcv2B,KAAKof,SAASmX,aAC5BC,SAAU,IACLx2B,KAAKof,SAASoX,SACjBC,oBAAoB,UAGlBlwB,EAAAA,EAAAA,iBAA4B6vB,EACpC,CAEAM,eACE12B,KAAKk2B,sBACLl2B,KAAK22B,oBACP,CAEAC,gBACE52B,KAAK41B,aAAc,CACrB,CAEAiB,iBAAiBC,GACf,OAAO92B,KAAK61B,mBAAmBvuB,SAASwvB,EAC1C,CAEAC,eACO/2B,KAAK61B,mBAAmBvuB,SAAStH,KAAKu1B,SACzCv1B,KAAK61B,mBAAmBluB,KAAK3H,KAAKu1B,QAEpCv1B,KAAKiU,WAAU,KACb,IAAI+iB,EAAe,CAAE51B,KAAM,GAAI+B,MAAO,IACtC,IAAK,IAAImL,KAAKtO,KAAK81B,YACbxnB,EAAEnL,QAAUnD,KAAKu1B,SACnByB,EAAe1oB,GAGnBtO,KAAKu1B,OAASv1B,KAAK81B,YAAY91B,KAAK81B,YAAY3rB,QAAQ6sB,GAAgB,GAAG7zB,KAAK,GAEpF,CAEAuyB,mBACO11B,KAAK61B,mBAAmBvuB,SAAStH,KAAKu1B,SACzCv1B,KAAK61B,mBAAmBluB,KAAK3H,KAAKu1B,QAEpCv1B,KAAKm2B,kBACP,IAhEAn0B,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,gBAAc,qCA1CFqrB,IAAc3zB,EAAAA,EAAAA,IAAA,EALlCI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVsW,WAAUA,EAAAA,MAGOgd,I,UCX2R,MCQ5S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,YCnBY11B,GAAOC,W,IAASyW,EAAM,KAAuB,EAAO1W,EAAG,SAAqB2C,EAAY,kB,OAAyB,EAAC,W,YAAW7C,oB,MAAY,CAA0C,kBAACyC,WAAM,8B,MAAkBE,C,MAA6BsnB,EAAI,KAAI,SAAC,YAACrnB,EAAAA,KAAW,CAAM,EAAG,WAAY,SAAmB,aAAW,IAAOC,EAAAA,SAAyB,GAAI,GAAO,MAAO,CAAwCmI,YAAO,aAAoIzH,CAAAA,EAAK,OAAC,4C,MAAC,mIAAe,OAAI,KAAG,WAE3lBlD,EAEJ,E,MCKA,IAAqB62B,GAArB,cAAmDx2B,EAAAA,GAAnD4E,c,oBACU,KAAAlC,OAAS,EAIjB,KAAA6mB,KAAOhqB,KAAKmD,MACZ,KAAAqnB,SAAW,EACX,KAAAC,aAAc,CAehB,CAZEN,SAASpiB,EAAcC,GACjBD,IAAQC,IACZhI,KAAKsW,MAAM,QAASvO,GACfA,IACL/H,KAAKyqB,aAAc,EACnBzqB,KAAKwqB,QAAU,KACjB,CAEAJ,WAAWriB,EAAcC,GACnBD,IAAQC,IACZhI,KAAKgqB,KAAOjiB,EACd,IApBQ/F,EAAAA,EAAAA,IAAA,EAAPc,EAAAA,EAAAA,OAAM,8BAEPd,EAAAA,EAAAA,IAAA,EADCc,EAAAA,EAAAA,OAAM,6BAQPd,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,SAAO,+BASdtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,UAAQ,gCAjBI2sB,IAAqBj1B,EAAAA,EAAAA,IAAA,EALzCI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACV2lB,iBAAgBA,OAGCiP,I,UCTkS,MCQnT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCEhC,MAAMC,IAAoB52B,EAAAA,EAAAA,IAAU,gBAC9BC,IAAUD,EAAAA,EAAAA,IAAU,MAe1B,IAAqB62B,GAArB,cAAiC12B,EAAAA,GAAjC4E,c,oBAGE,KAAA+xB,QAAS,EACT,KAAAnzB,SAAU,EACV,KAAAozB,UAAW,EACX,KAAAxY,cAAe,EAmCf,KAAAyY,mBAA6B,CA8E/B,CAlFMC,kBACF,OAAOhxB,EAAAA,EAAAA,YAAAA,WACT,CAKAixB,gBAAgBzvB,GACTA,GACH/H,KAAKy3B,iBAAiB51B,MAAMmd,IACrBA,GACL6V,YAAW,KACT70B,KAAKmB,aAAa,CAAEC,KAAM4d,EAAS5d,KAAME,KAAM0d,EAAS1d,MAAO,GAC9D,IAAI,GAGb,CAGAo2B,mBAAmB3vB,GACZA,GACH/H,KAAK23B,4BAA4B91B,MAAMod,IAChCA,GACL4V,YAAW,KACT70B,KAAK43B,gBAAgB,CACnBC,OAAQ5Y,EAAY4Y,OACpBl3B,KAAMse,EAAYte,KAClBI,QAASke,EAAYle,QACrByM,KAAMyR,EAAYzR,KAClBlM,KAAM2d,EAAY3d,KAClBw2B,YAAa7Y,EAAY6Y,aACzB,GACD,IAAI,GAGb,CAGAC,oBAAoBhwB,EAAwBC,GACtCD,IAAQoZ,EAAAA,EAAAA,SAA6BpZ,IAAQC,GAIjD9G,EAAAA,EAAAA,eAA6B,EAC/B,CAGA82B,aAAajwB,GACX,IAAKA,EAKH,OAJA0a,cAAcziB,KAAKs3B,oBAEnBp2B,EAAAA,EAAAA,eAA6B,QAC7BlB,KAAK0U,oBAGPujB,GAAAA,EAAAA,iBACA3T,aAAY5jB,UACVu3B,GAAAA,EAAAA,gBAA+B,GAC9B,IACL,CAEA1lB,UAEEhM,EAAAA,EAAAA,gBAA2B1E,MAAK,KACzB0E,EAAAA,EAAAA,YAAAA,SAAAA,qBACHvG,KAAK6e,cAAe,E,IAGxB7e,KAAKk4B,qBACL5T,aAAY5jB,UACVV,KAAKk4B,oBAAoB,GACxB,IACL,CAEA9vB,UACEpI,KAAKq3B,UAAYzN,aAAawL,QAAQ,gBACtCp1B,KAAKiE,SAAU,CACjB,CAEA8lB,eACE/pB,KAAKm4B,cAAcpO,cACrB,IArHsB/nB,EAAAA,EAAAA,IAAA,EAArBG,EAAAA,EAAAA,IAAI,kBAAgB,sCAQrBH,EAAAA,EAAAA,IAAA,CADCzB,GAAQ0oB,OAAK,+BAIdjnB,EAAAA,EAAAA,IAAA,CADCzB,GAAQ0oB,OAAK,iCAGdjnB,EAAAA,EAAAA,IAAA,CADCzB,GAAQ0oB,OAAK,oCAIdjnB,EAAAA,EAAAA,IAAA,CADCk1B,GAAkBj1B,QAAM,iCAIzBD,EAAAA,EAAAA,IAAA,CADCk1B,GAAkBh1B,QAAM,0CAIzBF,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,uCAIfF,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,kDAIfF,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,qCAIfF,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,wCAIfF,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,2CAUfF,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,oBAAkB,sCAazBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,uBAAqB,yCAoB5BtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,aAAW,0CAUlBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,gBAAc,kCAnFF6sB,IAAGn1B,EAAAA,EAAAA,IAAA,EAbvBI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACV8c,OAAM,GACNwV,UAAS,GACTyD,WAAU,GACVlO,aAAY,GACZR,WAAU,GACVI,uBAAsB,GACtBwL,WAAU,GACVK,eAAc,GACdsB,sBAAqBA,OAGJE,I,UCrCwP,MCSzQ,IAAY,OACd,GACAr3B,EACAM,GACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,YClBhC,MAAMi4B,GAA6B,CACjCC,KAAM,WACN7yB,KAAM,UACNlD,UAAWA,IAAM,gCAEnB,UCLA,MAAMg2B,GAA6B,CACjCD,KAAM,WACN7yB,KAAM,UACNlD,UAAWA,IAAM,gCAEnB,UCPIzC,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACA,EAAG,qBAAqB,CAACkE,YAAYpE,EAAI8E,GAAG,CAAC,CAAChB,IAAI,OAAOF,GAAG,WAAW,MAAO,CAAC1D,EAAG,gBAAgB,CAAC2C,YAAY,SAAS,EAAE8B,OAAM,GAAM,CAACb,IAAI,QAAQF,GAAG,WAAW,MAAO,CAAC1D,EAAG,MAAM,CAAC2C,YAAY,qBAAqBmB,YAAY,CAAC,OAAS,SAAS,CAAC9D,EAAG,MAAM,CAAC2C,YAAY,QAAQ,CAAC3C,EAAG,sBAAsBA,EAAG,oBAAoB,GAAGA,EAAG,MAAM,CAAC2C,YAAY,QAAQ,CAAC3C,EAAG,yBAAyBA,EAAG,cAAc,CAAC2C,YAAY,UAAU,KAAK,EAAE8B,OAAM,OAAUzE,EAAG,aAAa,CAACwD,IAAI,eAAe,EAC9kB,EACIrD,GAAkB,G,YCF2S,GAASL,W,IAAkE6C,EAAAA,KAAiDmI,EAAK,EAAE,SAAO,oB,OAAM,kBAAG,YAAY,yDAACA,CAAAA,EAAK,MAAE,C,YAAa,gD,MAAUytB,CAAqB,aAAiBl1B,CAAAA,EAAK,IAAC,C,YAAS,oB,CAAO,OAAS,KAAM,sD,YAAW,qC,MAAQ,CAAuC,YAAqFV,CAAAA,EAAAA,OAAY,CAAmBmI,MAAO,CAAE0gB,UAAU,SAAkB,sBAA0G7oB,CAAAA,EAAAA,EAAAA,EAAW,CAAsCmI,MAAO,CAAE0tB,MAAK,OAAM,cAAKx4B,QAAU,GAAC8K,IAAO,aAAuBytB,GAAAA,EAAAA,GAAAA,EAAe,+DAAM,+BAAG,MAAK,CAASl1B,SAAM,oB,CAAgB,OAAS,MAAM,8E,YAAW,qC,MAAQ,CAAuC,YAAkFV,CAAAA,EAAAA,OAAY,CAAmBmI,MAAO,CAAE0gB,UAAU,SAAkB,sBAA+I7oB,CAAAA,EAAAA,EAAAA,EAAW,CAA+EmB,MAAAA,CAAa,MAAQ,OAAW,cAAG,QAAC,GAAC,IAAO,EAAK20B,WAAwBz4B,GAAG,KAAQ,8DAACqD,YAAM,mB,MAAC,CAAiB,SAAS,oB,CAAsB,KAAMM,EAAAA,GAAO,GAAC,+BAA8B,4EAAC,0FAAG,YAAYkc,CAA4Frc,OAAI,W,GAAmC,CAAkC,+BAA8Cb,CAAAA,EAAAA,EAAAA,EAAW,CAAsCmB,MAAAA,CAAa,eAAuB,gBAAI9D,QAAG,GAAuBqD,IAAM,YAAoB,KAAO,EAAC,yFAAS,gCAAG,MAAI,CAAkBG,kBAAc,iBAA6BH,GAAM,iC,YAAC,qC,YAAqB,CAA6B,aAAa,a,CAAgE,MAAY,C,MAAC,CAAoB,cAAcvD,GAAe,oBAAsD,UAAiB,CAAQ,IAAC,WAACyD,YAAG,gB,MAAC,CAA+B,cAAc,OAAa,mBAAiBzD,UAAmB,qBAAsC,oDAAuC,WAAC8b,OAAS,SAAC,cAAW,a,qBAAwBvQ,S,iBAA4BqtB,GAAsC,iBAAC,Q,GAA8B,CAAkD,iBAAC,YAAC,eAAY,U,iBAAwBrtB,EAAAA,eAAiB,qBAAC,eAAC,mBAAa,EAAS7G,iB,SAAkD,CAAC,SAAQ,SAASA,GAAmD,OAA3C,EAAO1E,iBAAoC,uCAAC,E,UAAmC64B,SAAAA,GAA2C,+CAAE,EAACz0B,UAAYpE,SAAQ,GAAC8D,EAAI,gBAAmBF,E,WAA0BN,SAAOtD,GAAiB,sCAAC2E,EAAW,MAAC,YAACb,OAAI,EAAO,8BAACF,E,KAAmB,YAAEk1B,OAAAA,EAAAA,qBAAAA,MAAAA,KAAAA,UAAM,G,YAAuC,O,2CAAmD,MAAO94B,IAAI2B,EAAAA,GAAAA,IAAiBsW,K,SAAO,G,KAAuDpV,Q,GAAmCY,UAAG,M,EAAC,M,UAAoF,mBAAC,IAAIvD,MAAQ,SAAC,GAA+BsD,OAA9BX,EAAW,kBAA6Bk2B,EAAAA,iBAAoB73B,EAA4ChB,IAAgH,CAACF,EAAG,MAAI,GAAOE,GAAG,KAAM,EAAC,oBAAC2C,YAAY,uBAAsB,GAAE7C,CAA2H6C,MAAW,SAAC,GAAwB,OAAPU,EAAM,kBAAOM,EAAAA,iBAAQ,EAA2B,I,CAAK,S,YAAoC7D,kB,MAA+B,yD,CAAC,SAAU,GAAOka,GAAAA,EAAAA,GAAAA,EAAe,+BAA8D,OAA9D,UAAE,8BAAG,CAACha,EAAG,UAAM,UAAC2C,YAAY,uBAAwB,CAAC3C,EAAG,KAAM,wFAAC2C,YAAY,iBAAuB,MAAIoV,CAAgCpV,IAAAA,EAAY,Q,GAAqC,C,UAAgCqX,SAAAA,GAAkB,OAAOla,EAAI4B,oBAAiB,IAAC,gCAAsDiB,EAAAA,MAAW,CAAuBY,YAAG,wB,CAAC,S,YAAoCyW,0BAAkB,cAAW8e,EAAY,IAAO,C,YAAA,iCAAC,IAAG,MAAS,SAAK,GAAG,OAAH,oBAAG,eAAK,IAAyB9nB,CAAI,uCAAE+nB,YAAAA,sBAAO,IAAC,UAAgB,SAAC,GAA8Bz1B,OAA7BX,EAAW,kBAAwB,iBAAEq2B,KAA+BluB,EAAO,S,QAAqB,6BAAG,OAAM,IAAkB,SAAYhL,MAAIm5B,CAAc,6BAA+B,OAAI,qBAA6B,OAAO,c,OAAyEv2B,EAAAA,EAAAA,EAAU,CAAe,OAAI1C,UAAY,gBAAC2C,0BAAwB,G,GAAQ,CAAyB,QAAY,iBAAiB,OAAI3C,MAAG,EAAOA,aAAawD,SAAI,YAAW,EAAC,aAAQ,CAACH,EAAO,WAAO,iBAAO,CAACrD,EAAG,KAAYqD,YAAM,a,MAAC,CAAc,uBAAmE,YAAY8Y,QAAY,KAAO,K,CAA2C,WAAc,IAAC,CAAmB,IAAC,QAAC5Y,CAAE,EAAC,K,MAAC,CAA8B,YAAoBF,CAAAA,EAAK,IAAC,C,MAAC,CAAW,YAAIrD,YAAe,EAAC,iDAACwD,MAAI,cAAmBH,MAAM,kBAAC,QAAW,UAAG,eAAYkY,qB,GAA6E,CAAsB,SAAc,sBAAuC,GAAC,O,MAAC,CAAmC,Y,CAAsB3X,EAAG,IAAO,C,IAAG,mB,MAAYrC,CAAK,SAAE,G,MAAQ,EAAI,S,YAAkB,EAAC,kD,MAA4CuC,EAAAA,U,eAAqB,oC,GAAO,C,OAAmDnB,EAAAA,uB,YAA8F,OAAG,IAAC,OAACJ,GAAK,UAAC,KAACW,IAAsDpD,MAAI0b,CAAAA,EAAAA,MAAAA,CAAqB,wDAAC9Y,YAAW,CAAkB,eAAoBC,CAAAA,EAAW,MAAC,CAAM,8BAAM,YAAC,oCAAC,GAAS,GAAC,iCAAe,KAAgBU,MAAM,CAAC,MAAM,EAAC,iBAAG,qBAACuY,EAAQ,iBAAC,CAAC,E,WAAmC,uBAAyC,UAAE,YAAa,OAAwCvY,MAAM,CAAC,QAAO,kBAAIE,CAAE,EAAC,K,MAAC,CAA2B,SAA8EC,SAAI,CAAe,MAAG,YACp4M,+CACGrD,I,wLCF0QqE,W,MAAwGa,K,EAAY,WAAE,oB,OAAM,EAAC,K,MAAM,CAAc5C,WAAS,2B,gBAA2BwC,6D,GAAKvC,CAAmB,oBAAM,IAAC,EAAS,iFAACC,EAAAA,OAAY,CAA4BU,GAAyB,OAAIrD,MAAG,SAAwC2C,SAAW,SAAC,GAA+BU,EAAM,QAAC,EAAW,sBAAcV,CAAAA,EAAAA,EAAAA,EAAW,CAAU,YAAU,4BAACmI,MAAO,CAC9rBygB,GAAAA,gBAEF,uBAAG,YAAY,+BAAwDloB,MAAM,CAAC,YAAkC,UAACa,YAAYpE,U,CAAS8D,EAAG,KAAC,C,MAAe,C,WAAa,O,SAAEP,W,GAAS,OAAW,OAASvD,GAAIo5B,qBAAU,c,MAACv2B,C,eAA6BU,GAAsD,iBAAK,YAAa,EAAC,KAACV,IAAAA,YAAsBU,GAAK,UAAC,GAAC,QAAiB,IAAsBV,MAAW,GAAC,eAAoC,YAAM,QAACA,SAAY,4CAAwB3C,MAA6E8D,CAAAA,EAAAA,EAAAA,EAAW,C,YAAa,UAAO,OAAIhE,YAAWA,QAAgJ,CAACE,EAAG,KAASoD,CAA0FT,YAAY,gCAAa,CAAC3C,EAAG,MAAM,CAAC2C,YAAY,uBAAe,CAAC3C,EAAG,IAAO,GAAC,wCAAC2C,YAAY,OAAOU,YAAM,CAAC,YAAQ,S,CAAuB,SAAY,yF,YAAOM,aAAsC,8EAAG,YAAQ,aAAChB,CAAAA,EAAAA,MAAW,CAAQ,YAAakd,eAAiDld,CAAAA,EAAAA,EAAAA,EAAW,CAAe,YAAY,OAAEA,MAAAA,CAAmBU,MAAM,OAAC,OAAQ,OAAO,QAAS,GAAO,MAAY,UAA6C,OAAG,YAAQ,QAACV,CAAAA,EAAAA,GAAAA,EAAY,8CAAO,YAAakd,eAAmDld,CAAAA,EAAAA,EAAAA,EAAW,CAAe,YAAY,OAAEA,MAAAA,CAAmBU,MAAM,OAAC,OAAQ,OAAO,QAAS,GAAO,MAAY,UAA6C,OAAG,YAAQ,QAACV,CAAAA,EAAAA,GAAAA,EAAY,gDAAO,YAAakd,eAAiDld,CAAAA,EAAAA,EAAAA,EAAW,CAAe,YAAY,OAAEA,MAAAA,CAAmBU,MAAM,OAAC,OAAQ,OAAO,QAAS,GAAO,MAAY,UAA6C,OAAG,YAAQ,QAACV,CAAAA,EAAAA,GAAAA,EAAY,8CAAO,YAAakd,eAAgFld,CAAAA,EAAAA,EAAAA,EAAW,CAA+C,YAAU7C,OAAgE6C,MAAAA,CAA6B3C,MAAQF,OAA6F,OAAC,OAAC,QAAQ,G,IAAqB0C,EAAS,UAAM,OAAE,YAAS,QAA+DG,CAAAA,EAAAA,GAAAA,EAAY,4DAAqB,YAAW,+CAACA,CAAAA,EAAAA,IAAAA,CAAW,EAAC,uDAAgC,YAAW,iBAACA,EAAAA,IAAAA,CAAW,EAAC,4EAAwB,GAAG7C,CAA0E,MAAU,SAAM,GAAC8D,EAAIlD,QAAO,CAAC4C,I,GAAoB61B,GAAAA,gBAAgBC,MAAAA,IAAkB14B,GAAI,EAAG,c,YAAG,sB,CAAC6C,EAAE,MAAC,C,YAAS,iC,SAAiB,C,YAAmC,yB,CAAC,4DAAC,OAAM,QAAS,CAAUZ,IAAAA,EAAAA,GAAeU,MAAM,CAAC,QAAiB,WAAS,oBAAQ,O,GAAc,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAA2B+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,CAA2B,eAAE,MAAK,CAAKz2B,MAAW,SAAkBW,OAAM,SAAE2Z,QAAW,GAAQqc,IAAMx5B,EAAIs5B,mBAAkB14B,OAAaZ,GAAIsD,EAAG,OAAO,CAAyDT,MAAAA,CAAwC7C,aAAa,EAA0B6C,IAAAA,EAAW,kBAAC,QAAyCA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAEtqGnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAY,CAAE6C,MAAY,wBAA2B7C,cAAasG,OAA6D,YAAgB,aAAa9C,CAAAA,EAAK,GAAC,iG,YAAY,qC,MAAE61B,CAA4C,uC,CAAK,MAAO,CAAC,OAAS30B,GAAAA,EAAO,Y,QAAC,QAAW+0B,C,YAAwB,yB,CAAC,4DAAC,OAAM,QAAS,CAAU52B,IAAAA,EAAAA,GAAeU,MAAM,CAAC,QAAiB,WAAS,oBAAQ,O,GAAc,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAA2B+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,CAA2B,eAAE,MAAK,CAAKz2B,MAAW,SAAkBW,OAAM,SAAE2Z,QAAW,GAAQqc,IAAMx5B,EAAIs5B,mBAAkB14B,OAAaZ,GAAIsD,EAAG,OAAO,CAAyDT,MAAAA,CAAwC7C,aAAa,EAA0B6C,IAAAA,EAAW,kBAAC,QAAyCA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAE3vCnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAY,CAAE6C,MAAY,wBAA2B7C,cAAasG,OAA6D,YAAgB,aAAa9C,CAAAA,EAAK,GAAC,iG,YAAY,qC,MAAE61B,CAA4C,uC,CAAK,MAAO,CAAC,OAAS30B,GAAAA,EAAO,Y,QAAC,QAAW+0B,C,YAAwB,yB,CAAC,4DAAC,OAAM,QAAS,CAAU52B,IAAAA,EAAAA,GAAeU,MAAM,CAAC,QAAiB,WAAS,oBAAQ,O,GAAc,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAA2B+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,CAA2B,eAAE,MAAK,CAAKz2B,MAAW,SAAkBW,OAAM,SAAE2Z,QAAW,GAAQqc,IAAMx5B,EAAIs5B,mBAAkB14B,OAAaZ,GAAIsD,EAAG,OAAO,CAAyDT,MAAAA,CAAwC7C,aAAa,EAA0B6C,IAAAA,EAAW,kBAAC,QAAyCA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAE3vCnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAY,CAAE6C,MAAY,wBAA2B7C,cAAasG,OAA6D,YAAgB,aAAazD,CAAAA,EAAAA,GAAAA,IAAY,OAAW,sFAACY,YAAG,qC,MAAC,C,WAAmC,EAACg2B,kBAAqBv4B,EAAG,MAAC,gC,KAAG,GAAI,QAAS,C,YAAqB,yB,CAAU,IAANqC,EAAAA,SAAM,6C,OAAC,QAAQ,C,IAAS,EAAQ,G,YAAoB,Y,GAAG,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAE5xB+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,C,YACH,GACR,OAAIp5B,MAAO,SAAC2C,OAAW,SAAkBW,QAAM,GAAE2Z,IAAAA,EAAW,mBAAM,OAAuC,aAAE,MAAM7Z,CAAmET,aAAY,EAA4B7C,IAAIsD,EAAGtD,kBAAoB,EAAI,IAAQ6C,MAAAA,IAAqDA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAErXnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAS,CAAO6C,MAAY,wBAAoC,cAAO,OAACA,YAAY,aAAqG,GAAO3C,GAAG,IAAM,6FAAC4D,YAAW,qCAACN,MAAM,CAAE5C,WAAU,4BAA8C,gC,KAAC6C,KAAG,S,YAAS,iC,SAAiB,C,YAAmC,yB,CAAC,4DAAC,OAAM,QAAS,CAAUZ,IAAAA,EAAAA,GAAeU,MAAM,CAAC,QAAiB,WAAS,oBAAQ,O,GAAc,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAA2B+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,CAA2B,eAAE,MAAK,CAAKz2B,MAAW,SAAkBW,OAAM,SAAE2Z,QAAW,GAAQqc,IAAMx5B,EAAIs5B,mBAAkB14B,OAAaZ,GAAIsD,EAAG,OAAO,CAAyDT,MAAAA,CAAwC7C,aAAa,EAA0B6C,IAAAA,EAAW,kBAAC,QAAyCA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAErzCnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAY,CAAE6C,MAAY,wBAA2B7C,cAAasG,OAA6D,YAAgB,aAAa9C,CAAAA,EAAK,GAAC,iG,YAAY,qC,MAAE61B,CAA4C,uC,CAAK,MAAO,CAAC,OAAS30B,GAAAA,EAAO,Y,QAAC,QAAW+0B,C,YAAwB,yB,CAAC,4DAAC,OAAM,QAAS,CAAU52B,IAAAA,EAAAA,GAAeU,MAAM,CAAC,QAAiB,WAAS,oBAAQ,O,GAAc,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAA2B+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,CAA2B,eAAE,MAAK,CAAKz2B,MAAW,SAAkBW,OAAM,SAAE2Z,QAAW,GAAQqc,IAAMx5B,EAAIs5B,mBAAkB14B,OAAaZ,GAAIsD,EAAG,OAAO,CAAyDT,MAAAA,CAAwC7C,aAAa,EAA0B6C,IAAAA,EAAW,kBAAC,QAAyCA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAE3vCnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA0K,cAAW,OAACnB,YAAY,aAAqG,GAAO3C,GAAG,IAAM,uIAAC4D,YAAW,OAACjB,YAAY,CAAS,MAAC,wBAAC,cAAQ,O,YAA4B42B,aAAyB,sI,KAAG,GAAI,QAAS,C,YAAqB,yB,CAAU,IAANl2B,EAAAA,SAAM,6C,OAAC,QAAQ,C,IAAS,EAAQ,G,YAAoB,O,GAAG,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAA2B+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,CAA2B,eAAE,MAAK,CAAKz2B,MAAW,SAAkBW,OAAM,SAAE2Z,QAAW,GAAQqc,IAAMx5B,EAAIs5B,mBAAkB14B,OAAaZ,GAAIsD,EAAG,OAAO,CAAyDT,MAAAA,CAAwC7C,aAAa,EAA0B6C,IAAAA,EAAW,kBAAC,QAAyCA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAErmCnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAY,CAAE6C,MAAY,wBAA2B7C,cAAasG,OAA6D,YAAgB,aAAazD,CAAAA,EAAAA,GAAAA,IAAY,OAAW,sFAACY,YAAG,qC,MAAC,C,WAAmC,EAACg2B,kBAAqBv4B,EAAG,MAAC,gC,KAAG,GAAI,QAAS,C,YAAqB,yB,CAAU,IAANqC,EAAAA,SAAM,6C,OAAC,QAAQ,C,IAAS,EAAQ,G,YAAoB,Y,GAAG,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAE5xB+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,C,YACH,GACR,OAAIp5B,MAAO,SAAC2C,OAAW,SAAkBW,QAAM,GAAE2Z,IAAAA,EAAW,mBAAM,OAAuC,aAAE,MAAM7Z,CAAmET,aAAY,EAA4B7C,IAAIsD,EAAGtD,kBAAoB,EAAI,IAAQ6C,MAAAA,IAAqDA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAErXnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAS,CAAO6C,MAAY,wBAAoC,cAAO,OAACA,YAAY,aAAqG,GAAO3C,GAAG,IAAM,6FAAC4D,YAAW,qCAACN,MAAM,CAAE5C,WAAU,4BAA8C,gC,KAAC6C,KAAG,S,YAAS,iC,SAAiB,C,YAAmC,yB,CAAC,4DAAC,OAAM,QAAS,CAAUZ,IAAAA,EAAAA,GAAeU,MAAM,CAAC,QAAiB,WAAS,oBAAQ,O,GAAc,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAA2B+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,CAA2B,eAAE,MAAK,CAAKz2B,MAAW,SAAkBW,OAAM,SAAE2Z,QAAW,GAAQqc,IAAMx5B,EAAIs5B,mBAAkB14B,OAAaZ,GAAIsD,EAAG,OAAO,CAAyDT,MAAAA,CAAwC7C,aAAa,EAA0B6C,IAAAA,EAAW,kBAAC,QAAyCA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAErzCnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAY,CAAE6C,MAAY,wBAA2B7C,cAAasG,OAA6D,YAAgB,aAAa9C,CAAAA,EAAK,GAAC,iG,YAAY,qC,MAAE61B,CAA4C,uC,CAAK,MAAO,CAAC,OAAS30B,GAAAA,EAAO,Y,QAAC,QAAW+0B,C,YAAwB,yB,CAAC,4DAAC,OAAM,QAAS,CAAU52B,IAAAA,EAAAA,GAAeU,MAAM,CAAC,QAAiB,WAAS,oBAAQ,O,GAAc,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAA2B+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,CAA2B,eAAE,MAAK,CAAKz2B,MAAW,SAAkBW,OAAM,SAAE2Z,QAAW,GAAQqc,IAAMx5B,EAAIs5B,mBAAkB14B,OAAaZ,GAAIsD,EAAG,OAAO,CAAyDT,MAAAA,CAAwC7C,aAAa,EAA0B6C,IAAAA,EAAW,kBAAC,QAAyCA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAE3vCnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAY,CAAE6C,MAAY,wBAA2B7C,cAAasG,OAA6D,YAAgB,aAAa9C,CAAAA,EAAK,GAAC,iG,YAAY,qC,MAAE61B,CAA4C,uC,CAAK,MAAO,CAAC,OAAS30B,GAAAA,EAAO,Y,QAAC,QAAW+0B,C,YAAwB,yB,CAAC,4DAAC,OAAM,QAAS,CAAU52B,IAAAA,EAAAA,GAAeU,MAAM,CAAC,QAAiB,WAAS,oBAAQ,O,GAAc,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAA2B+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,CAA2B,eAAE,MAAK,CAAKz2B,MAAW,SAAkBW,OAAM,SAAE2Z,QAAW,GAAQqc,IAAMx5B,EAAIs5B,mBAAkB14B,OAAaZ,GAAIsD,EAAG,OAAO,CAAyDT,MAAAA,CAAwC7C,aAAa,EAA0B6C,IAAAA,EAAW,kBAAC,QAAyCA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAE3vCnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAY,CAAE6C,MAAY,wBAA2B7C,cAAasG,OAA6D,YAAgB,aAAazD,CAAAA,EAAAA,GAAAA,IAAY,OAAW,sFAACY,YAAG,qC,MAAC,C,WAAmC,EAACg2B,kBAAqBv4B,EAAG,MAAC,gC,KAAG,GAAI,QAAS,C,YAAqB,yB,CAAU,IAANqC,EAAAA,SAAM,6C,OAAC,QAAQ,C,IAAS,EAAQ,G,YAAoB,Y,GAAG,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAE5xB+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,C,YACH,GACR,OAAIp5B,MAAO,SAAC2C,OAAW,SAAkBW,QAAM,GAAE2Z,IAAAA,EAAW,mBAAM,OAAuC,aAAE,MAAM7Z,CAAmET,aAAY,EAA4B7C,IAAIsD,EAAGtD,kBAAoB,EAAI,IAAQ6C,MAAAA,IAAqDA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAErXnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAS,CAAO6C,MAAY,wBAAoC,cAAO,OAACA,YAAY,aAAqG,GAAO3C,GAAG,IAAM,6FAAC4D,YAAW,qCAACN,MAAM,CAAE5C,WAAU,4BAA8C,gC,KAAC6C,KAAG,S,YAAS,iC,SAAiB,C,YAAmC,yB,CAAC,4DAAC,OAAM,QAAS,CAAUZ,IAAAA,EAAAA,GAAeU,MAAM,CAAC,QAAiB,WAAS,oBAAQ,O,GAAc,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAA2B+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,CAA2B,eAAE,MAAK,CAAKz2B,MAAW,SAAkBW,OAAM,SAAE2Z,QAAW,GAAQqc,IAAMx5B,EAAIs5B,mBAAkB14B,OAAaZ,GAAIsD,EAAG,OAAO,CAAyDT,MAAAA,CAAwC7C,aAAa,EAA0B6C,IAAAA,EAAW,kBAAC,QAAyCA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAErzCnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAY,CAAE6C,MAAY,wBAA2B7C,cAAasG,OAA6D,YAAgB,aAAa9C,CAAAA,EAAK,GAAC,iG,YAAY,qC,MAAE61B,CAA4C,uC,CAAK,MAAO,CAAC,OAAS30B,GAAAA,EAAO,Y,QAAC,QAAW+0B,C,YAAwB,yB,CAAC,4DAAC,OAAM,QAAS,CAAU52B,IAAAA,EAAAA,GAAeU,MAAM,CAAC,QAAiB,WAAS,oBAAQ,O,GAAc,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAA2B+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,CAA2B,eAAE,MAAK,CAAKz2B,MAAW,SAAkBW,OAAM,SAAE2Z,QAAW,GAAQqc,IAAMx5B,EAAIs5B,mBAAkB14B,OAAaZ,GAAIsD,EAAG,OAAO,CAAyDT,MAAAA,CAAwC7C,aAAa,EAA0B6C,IAAAA,EAAW,kBAAC,QAAyCA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAE3vCnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAY,CAAE6C,MAAY,wBAA2B7C,cAAasG,OAA6D,YAAgB,aAAa9C,CAAAA,EAAK,GAAC,iG,YAAY,qC,MAAE61B,CAA4C,uC,CAAK,MAAO,CAAC,OAAS30B,GAAAA,EAAO,Y,QAAC,QAAW+0B,C,YAAwB,yB,CAAC,4DAAC,OAAM,QAAS,CAAU52B,IAAAA,EAAAA,GAAeU,MAAM,CAAC,QAAiB,WAAS,oBAAQ,O,GAAc,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAA2B+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,CAA2B,eAAE,MAAK,CAAKz2B,MAAW,SAAkBW,OAAM,SAAE2Z,QAAW,GAAQqc,IAAMx5B,EAAIs5B,mBAAkB14B,OAAaZ,GAAIsD,EAAG,OAAO,CAAyDT,MAAAA,CAAwC7C,aAAa,EAA0B6C,IAAAA,EAAW,kBAAC,QAAyCA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAE3vCnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAY,CAAE6C,MAAY,wBAA2B7C,cAAasG,OAA6D,YAAgB,aAAazD,CAAAA,EAAAA,GAAAA,IAAY,OAAW,sFAACY,YAAG,qC,MAAC,C,WAAmC,EAACg2B,kBAAqBv4B,EAAG,MAAC,gC,KAAG,GAAI,QAAS,C,YAAqB,yB,CAAU,IAANqC,EAAAA,SAAM,6C,OAAC,QAAQ,C,IAAS,EAAQ,G,YAAoB,Y,GAAG,CAA+B,kBAAM,OAAK,kBAAO,KAACC,I,CAE5xB+1B,EAAG,MAAMD,CAAAA,EAAAA,EAAAA,EAAAA,C,YACH,GACR,OAAIp5B,MAAO,SAAC2C,OAAW,SAAkBW,QAAM,GAAE2Z,IAAAA,EAAW,mBAAM,OAAuC,aAAE,MAAM7Z,CAAmET,aAAY,EAA4B7C,IAAIsD,EAAGtD,kBAAoB,EAAI,IAAQ6C,MAAAA,IAAqDA,CAAAA,EAAAA,IAAAA,CAAmBmB,YAAY,iB,MAAC,CAAqB,aAAY,EAAU,iCAErXnB,CAAAA,EAAAA,GAAAA,IAAY,EAAM,kDAACmB,YAAY,2B,CAAC,KAAO,EAAC,gBAAuB,Q,YAAC,gC,CAAqB,OAAsB,mBAAE,YAAY,CAA8HnB,cAAY,OAAqCW,YAAM,aAA6C,iJAAE,YAAUxD,OAAkC,YAAS,CAAO6C,MAAY,wBAA6B,cAAK,OAACA,YAAY,aAA6EA,CAAAA,EAAAA,GAAW,IAAC,6FAAwB3C,YAAO,qCAAC2C,MAAAA,CAAqB7C,WAAcA,EAAIsB,kBAAG,QAAmFpB,CAAE,EAAC,IAAI,yB,KAAC2C,KAAAA,EAAW,MAAC,CAAO,YAAakd,0BAAyDld,CAAAA,EAAAA,IAAAA,CAAwC,YAAS,QAACA,CAAAA,EAAAA,GAAAA,EAAY,sDAAO,YAAakd,uBAAyErc,CAAAA,EAAI,KAAc,YAAI,QACv/B,2DACGrD,YAAAA,0BAEJ,GAASN,IAAAA,C,mQC3CT,MAAMO,IAAeC,EAAAA,EAAAA,IAAU,gBAK/B,IAAqBm5B,GAArB,cAAoDj5B,GAAAA,EAApD6E,c,oBA2BE,KAAAC,OAAQ,EACR,KAAA7C,QAAS,EACT,KAAAyd,IAAM,EA+BN,KAAAna,MAAsB,GACtB,KAAA2zB,SAAyB,GACzB,KAAAC,SAAyB,GACzB,KAAAC,SAAyB,GACzB,KAAAC,SAAyB,GAEzB,KAAAC,SAAyB,GACzB,KAAAC,SAAyB,GACzB,KAAAC,SAAyB,GACzB,KAAAC,SAAyB,GAEzB,KAAAC,SAAyB,GACzB,KAAAC,SAAyB,GACzB,KAAAC,SAAyB,GACzB,KAAAC,SAAyB,GAEzB,KAAAC,SAAyB,GACzB,KAAAC,SAAyB,GACzB,KAAAC,SAAyB,GACzB,KAAAC,SAAyB,GAEzB,KAAAC,UAAiB,CAAC,EAClB,KAAApa,WAAa,EAiBb,KAAAqa,SAAgC,GA6ChC,KAAAC,QAAkB,EAUlB,KAAAC,QAAe,IAsGjB,CAjOS5O,eACLjsB,KAAKyC,QAAS,CAChB,CACI2X,kBACF,OAAOlZ,EAAAA,EAAAA,QACT,CAEI6f,0BACF,MAAM+Z,EAAc96B,KAAKkgB,IAEzB,OAAO,IAAI9S,KAAK0tB,EAAc96B,KAAK8hB,mBAAqB9hB,KAAK0iB,cAC1D1B,cACAnR,OAAO,GAAI,EAChB,CAGAkrB,YACqC,kBAAxB/6B,KAAK4hB,eACda,cAAcziB,KAAK66B,SAEnBvW,aAAY,KACVtkB,KAAKkgB,IAAM9S,KAAK8S,KAAK,GACpB,IAEP,CAEAnN,mBAAmBxD,GACjB,OAAOrO,EAAAA,EAAAA,eAA8BqO,GAAQyD,IAC/C,CAyBAgoB,aAAa73B,GACPA,GACFnD,KAAKi7B,YAET,CAEAC,QACEl7B,KAAK+F,MAAQW,OAAOC,OAAO3G,KAAKoT,UAAUpT,KAAKoa,cAC/Cpa,KAAKi7B,YACP,CAGAE,iBACEn7B,KAAKi7B,YACP,CAIAG,WACEp7B,KAAKi7B,YACP,CAEA7yB,UACEpI,KAAK06B,UAAYtc,SAASgF,cAAc,yBAC1C,CAEAiY,cAAcC,GACZ,IAAKA,EACH,MAAO,GAGT,MAAMC,EAAoCv7B,KAAK26B,SAASvzB,QACrD5F,GAAuBA,EAAKb,OAAS26B,IAGxC,GAA4B,qBAAjBC,EAA8B,CACvC,IAAIC,EAAM,EAEV,IAAK,MAAMC,KAAgBF,EACzBC,GAAOC,EAAa7uB,IAAM6uB,EAAaxvB,MAAQwvB,EAAavvB,MAG9D,MAAMinB,EAAW1yB,EAAAA,WAAAA,UAAAA,QAAAA,SAA+B+6B,GAChD,OAAO/tB,EAAAA,EAAAA,IAAe0lB,EAASuI,WAAW,GAAM,E,CAEpD,CAEAC,mBAAmB16B,GACjB,OAAKA,GAGEC,EAAAA,EAAAA,YAA2BD,IAAKwE,MAF9B,EAGX,CACAm2B,uBAAuB36B,GACrB,OAAKA,GAGEC,EAAAA,EAAAA,YAA2BD,IAAK2E,UAF9B,EAGX,CAGAi2B,UACE77B,KAAKiU,WAAU,WACb,MAAMymB,EAAYtc,SAASgF,cAAc,0BACzCpjB,KAAK46B,QAAU56B,KAAK87B,sBAClBpB,GAAWqB,YACXrB,GAAWsB,aAEf,GACF,CAEAzpB,UACE8R,OAAOoI,iBAAiB,SAAUzsB,KAAKi8B,kBAEvCj8B,KAAK66B,QAAUvW,aAAY,KACzBtkB,KAAKkgB,IAAM9S,KAAK8S,KAAK,GACpB,IACL,CACAgE,gBACEzB,cAAcziB,KAAK66B,QACrB,CACAqB,YACE7X,OAAO8X,oBAAoB,SAAUn8B,KAAKi8B,iBAC5C,CAEAA,iBAAiBhxB,GACf,MAAMyvB,EAAYtc,SAASgF,cAAc,0BACzCpjB,KAAK46B,QAAU56B,KAAK87B,sBAClBpB,GAAWqB,YACXrB,GAAWsB,aAEf,CAEAF,sBAAsBM,EAAOC,GAC3B,MAAMC,EAAY,GACZC,EAAa,GACbC,EAAkBjuB,KAAK4jB,MAAMiK,EAAQE,GACrCG,EAAmBluB,KAAK4jB,MAAMkK,EAASE,GAE7C,OAAOC,EAAkBC,CAC3B,CAEAC,6BAA6BrqB,EAAiBrO,GAC5C,IAAI24B,EAAuB,GACvBC,EAAkB,EAGlBC,EAAQ,EAaZ,YAZgBvgB,IAAZsgB,IACFD,EAAS38B,KAAK+F,MAAMqB,QAAQzG,IAC1B,GAAIk8B,EAAQ78B,KAAK46B,UAAYj6B,EAAKgQ,aAAc,CAC9C,MAAM4D,EAAM5T,EAAK0R,UAAYA,GAAW1R,EAAKqD,aAAeA,EAC5D,GAAIuQ,EAEF,OADAsoB,KACO,C,MAMRF,CACT,CAEAnD,gBAAgBp1B,GACd,MAAMgpB,EAAclsB,EAAAA,EAAAA,cAA6BkD,GACjDgpB,GAAavrB,MAAMlB,IACjBX,KAAKyB,WAAWF,SAASZ,EAAK,GAElC,CAEAs6B,aACEj7B,KAAK+F,MAAQW,OAAOC,OAAO3G,KAAKoT,UAAUpT,KAAKoa,cAC/Cpa,KAAK26B,SAAW,GAChB,IAAK,MAAMmC,KAAuBp2B,OAAOC,OAAO3G,KAAK+8B,qBAAsB,CACzE,MAAMpC,EAAWmC,EAAoB98B,KAAKg9B,WAAWC,YAAYtqB,SACjE,IAAKgoB,EACH,SAEF,MAAMuC,EAA0Bx2B,OAAOC,OAAO3G,KAAKoT,UAAUunB,IAC7D36B,KAAK26B,SAAShzB,QAAQu1B,E,CAGxBl9B,KAAK05B,SAAW15B,KAAK08B,6BAA6B,EAAG,GACrD18B,KAAK25B,SAAW35B,KAAK08B,6BAA6B,EAAG,GACrD18B,KAAK45B,SAAW55B,KAAK08B,6BAA6B,EAAG,GACrD18B,KAAK65B,SAAW75B,KAAK08B,6BAA6B,EAAG,GAErD18B,KAAK85B,SAAW95B,KAAK08B,6BAA6B,EAAG,GACrD18B,KAAK+5B,SAAW/5B,KAAK08B,6BAA6B,EAAG,GACrD18B,KAAKg6B,SAAWh6B,KAAK08B,6BAA6B,EAAG,GACrD18B,KAAKi6B,SAAWj6B,KAAK08B,6BAA6B,EAAG,GAErD18B,KAAKk6B,SAAWl6B,KAAK08B,6BAA6B,EAAG,GACrD18B,KAAKm6B,SAAWn6B,KAAK08B,6BAA6B,EAAG,GACrD18B,KAAKo6B,SAAWp6B,KAAK08B,6BAA6B,EAAG,GACrD18B,KAAKq6B,SAAWr6B,KAAK08B,6BAA6B,EAAG,GAErD18B,KAAKs6B,SAAWt6B,KAAK08B,6BAA6B,EAAG,GACrD18B,KAAKu6B,SAAWv6B,KAAK08B,6BAA6B,EAAG,GACrD18B,KAAKw6B,SAAWx6B,KAAK08B,6BAA6B,EAAG,GACrD18B,KAAKy6B,SAAWz6B,KAAK08B,6BAA6B,EAAG,EACvD,CAEArD,kBAAkBj1B,GAChB,QAAKA,GAGDpE,KAAK+B,kBAAoBqC,CAI/B,IA9PQpC,EAAAA,EAAAA,IAAA,EAAPc,EAAAA,EAAAA,OAAM,0CAGPd,EAAAA,EAAAA,IAAA,CADC3B,GAAa4B,QAAM,iCAOpBD,EAAAA,EAAAA,IAAA,CADC3B,GAAa4B,QAAM,oCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,GAAa4B,QAAM,4CAIpBD,EAAAA,EAAAA,IAAA,CADC3B,GAAa4B,QAAM,2CAIpBD,EAAAA,EAAAA,IAAA,CADC3B,GAAa4B,QAAM,uCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,GAAa4B,QAAM,mCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,GAAa4B,QAAM,qCAuBpBD,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,mBAAiB,gCAsCxBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,WAAS,mCAOhBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,gBAAc,4BAOrBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,YAAU,qCAOjBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,gBAAc,8BArGFmvB,IAAsBz3B,EAAAA,EAAAA,IAAA,EAH1CI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CAAC,KAEMo3B,I,UCjBmS,MCQpT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B35B,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAAC2C,YAAY,mBAAmBmI,MAAO,CAC5IoyB,IAAM,GAAEp9B,EAAIq9B,mBACZf,OAAS,GAAEt8B,EAAIs9B,aACfC,QAAU,GAAEv9B,EAAIw9B,eACd,CAACt9B,EAAG,MAAM,CAACwD,IAAI,aAAab,YAAY,iBAAiBY,GAAG,CAAC,UAAYzD,EAAIy9B,aAAav9B,EAAG,MAAM,CAACwD,IAAI,gBAAgBb,YAAY,oBAAoBY,GAAG,CAAC,UAAYzD,EAAI09B,iBAClL,EACIr9B,GAAkB,GCAtB,MAAM8oB,IAAkB5oB,EAAAA,EAAAA,IAAU,cAGlC,IAAqBo9B,GAArB,cAA2Cj9B,EAAAA,GAA3C4E,c,oBAaE,KAAAg4B,UAAY,EACZ,KAAAD,gBAAkB,EAClB,KAAAG,WAAa,OAEb,KAAAI,mBAAqB,KAErB,KAAAC,wBAAyB,EACzB,KAAAC,WAAwC,KAExC,KAAAC,gBAAiB,EACjB,KAAAC,mBAAoB,EAEpB,KAAAC,SAAW,IAAI5wB,IAkGjB,CAhGEhF,UACEpI,KAAKi+B,cACLj+B,KAAK69B,WAAa79B,KAAKoT,UAAUpT,KAAKk+B,mBACxC,CAGAC,kBACEn+B,KAAK69B,WAAa79B,KAAKoT,UAAUpT,KAAKk+B,mBACxC,CAGAE,eACMp+B,KAAK69B,YACP79B,KAAKq+B,uBAET,CAGAC,YACMt+B,KAAK69B,YACP79B,KAAKu+B,oBAAoBv+B,KAAK69B,WAAW5xB,MAAOjM,KAAK69B,WAAWjxB,IAEpE,CAEA4xB,qBACE,GAAuB,MAAnBx+B,KAAK69B,WAAoB,CAC3B,MAAMh9B,EAAO,CACXqP,QAASlQ,KAAK69B,WAAW58B,GACzB4P,MAAO7Q,KAAK69B,YAGd79B,KAAK2R,SAAS9Q,GACXgB,OACAuH,OAAM,KACLpJ,KAAK69B,WAAa79B,KAAKoT,UAAUpT,KAAKk+B,mBAAmB,G,CAGjE,CAEAV,YACEx9B,KAAK89B,gBAAiB,CACxB,CAEAW,UAAUt7B,GACe,MAAnBnD,KAAK69B,aACP79B,KAAK69B,WAAW5xB,OAAS9I,EACzBnD,KAAKu+B,oBAAoBv+B,KAAK69B,WAAW5xB,MAAOjM,KAAK69B,WAAWjxB,KAEpE,CAEAmsB,aAAa51B,GACY,MAAnBnD,KAAK69B,aACP79B,KAAK69B,WAAWjxB,KAAOzJ,EACvBnD,KAAKu+B,oBAAoBv+B,KAAK69B,WAAW5xB,MAAOjM,KAAK69B,WAAWjxB,KAEpE,CAEA6wB,eACEz9B,KAAK+9B,mBAAoB,CAC3B,CAEAE,cACEj+B,KAAKg+B,SAAS1kB,gBAAgB,GAC9BtZ,KAAKg+B,SAAS9uB,WAAW,GACzBlP,KAAKg+B,SAAS3kB,WAAW,GACzBrZ,KAAKg+B,SAAShvB,SAAS,EACzB,CAEAqvB,wBACEr+B,KAAKiU,WAAU,KACbjU,KAAK49B,wBAA0B59B,KAAK49B,sBAAsB,GAE9D,CAEAW,oBAAoBtyB,EAAOW,GACzB5M,KAAKiU,WAAU,KACb,IAAIyqB,EAAkB,IAAItxB,KAAKnB,GAC3B0yB,EAAgB,IAAIvxB,KAAKR,GAEzBgyB,EACwB,GAA1BD,EAActtB,UAAiB,GACJ,GAA3BstB,EAAc1vB,WACd0vB,EAAcxvB,cACe,GAA5BuvB,EAAgBrtB,UAAiB,GACH,GAA7BqtB,EAAgBzvB,WAChByvB,EAAgBvvB,cACpBnP,KAAKq9B,UAAauB,EAAe,KAAQ,IAEzC,IAAIC,EAC2B,GAA7BH,EAAgBzvB,WAChByvB,EAAgBvvB,cACY,GAA3BnP,KAAKg+B,SAAS/uB,WAAkBjP,KAAKg+B,SAAS7uB,cACjDnP,KAAKo9B,gBAAmByB,EAAgB,KAAQ,IAChD7+B,KAAKu9B,WAAa,OAAO,GAE7B,IAxHAv7B,EAAAA,EAAAA,IAAA,CADCknB,GAAgBjnB,QAAM,0CAIvBD,EAAAA,EAAAA,IAAA,CADCknB,GAAgBjnB,QAAM,2CAIvBD,EAAAA,EAAAA,IAAA,CADCknB,GAAgBhnB,QAAM,iCA0BvBF,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,sBAAoB,sCAM3BtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,eAAa,mCAQpBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,2BAAyB,+BA5CbozB,IAAa17B,EAAAA,EAAAA,IAAA,CADjCI,EAAAA,IACoBs7B,I,UCT0R,MCQ3S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,YCFhC,MAAMxG,IAAoB52B,EAAAA,EAAAA,IAAU,iBACpBA,EAAAA,EAAAA,IAAU,MAG1B,IAAqBw+B,GAArB,cAA0Ct+B,GAAAA,EAA1C6E,c,oBAuCE,KAAA05B,YAAa,EACb,KAAAC,OAAQ,EACR,KAAAC,cAAe,EACf,KAAAC,cAAgB,KAChB,KAAAvsB,SAA6B,CAAC,EAC9B,KAAAwsB,SAAyB,GACzB,KAAAp5B,MAAsB,GAEtB,KAAAq5B,WAAqB,EACrB,KAAAC,SAAmB,EACnB,KAAAC,iBAA2B,EAC3B,KAAAC,YAAsB,EACtB,KAAAC,aAAuB,EACvB,KAAAC,uBAAiC,EAEjC,KAAAvG,cAAgB,CAAC,EACjB,KAAA9c,YAA0B,GAC1B,KAAAL,gBAAkB,EAClB,KAAAP,SAAuB,GACvB,KAAAC,iBAAiD,GACjD,KAAAC,UAAY,CAAEtV,KAAQA,GAAK,GAAGpG,KAAKqB,GAAG,+BACtC,KAAAq+B,iBAAwC,CAAC,EAEzC,KAAAC,aAAe,CACbzvB,QAAS,GACTW,MAAO,CACLjE,IAAK,EACLX,MAAO,IAIX,KAAA2zB,SAAiC,CAC/B3+B,GAAI,GACJgL,MAAO,EACPW,IAAK,EACLV,MAAO,EACPmE,OAAQ,EACRC,aAAc,GACdC,MAAO,EACPC,YAAa,EACbzP,QAAS,EACTJ,KAAM,EACN8P,SAAU,GACVC,eAAe,EA8lBnB,CA5lBMmvB,4BACF,OAAO7/B,KAAKmd,iBACd,CAEI1D,eACF,OAAOvY,EAAAA,EAAAA,WACT,CACIkZ,kBACF,OAAOlZ,EAAAA,EAAAA,QACT,CAEI4+B,uBACF,IAAIrmB,EAA4B,GAChC,IAAK,IAAI1Y,KAAWG,EAAAA,EAAAA,YAClBuY,EAAS9R,KAAKzG,EAAAA,EAAAA,YAA2BH,IAE3C,OAAO0Y,CACT,CAEIsmB,aACF,IAAIhB,GAAa,EACjB,MAAM7e,EAAM,IAAI9S,KACV4yB,EAAI,IAAI5yB,KAER4wB,EAAWgC,EAAEhxB,SAAS,EAAG,EAAG,EAAG,GAErCgxB,EAAE5uB,QAAQ4uB,EAAE3uB,UAAY,GACxB,MAAM4uB,EAASD,EAAE1mB,gBAAgB0mB,EAAEE,kBAAoB,GAEjDC,EAAez5B,OAAOC,OAAO3G,KAAK2S,UAAUvL,QAAQ6D,IACxD,MAAMm1B,EACHn1B,EAAEgB,OAAS+xB,GAAY/yB,EAAEgB,OAASg0B,GAClCh1B,EAAE2B,KAAOoxB,GAAY/yB,EAAE2B,KAAOqzB,EACjC,IAAKG,EACH,OAAO,EAET,GAAIn1B,EAAEmX,WAAY,CAChB,MAAMnW,EAAQ,IAAImB,KAAKnC,EAAEgB,OACzB,GAAIiU,EAAImgB,eAAiBp0B,EAAMo0B,aAC7B,OAAO,EAETtB,GAAa,C,CAEf,OAAO,CAAI,IAIb,OAFA/+B,KAAK++B,WAAaA,EAEXoB,EAAa5N,KAAK/wB,IAEvB,MAAM0L,EAAQ,IAAK1L,GAOnB,OANA0L,EAAM,UAAYA,EAAM,gBAAiB,EACzCA,EAAM,UAAYA,EAAM,UACxBA,EAAM,QAAUhM,EAAAA,EAAAA,SAAwBM,EAAKb,OAAO8E,MAAQ,GACxDyH,EAAMjM,KAAOjB,KAAK+R,iBACpBuuB,EAAAA,GAAAA,IAAiBpzB,GAEZA,CAAK,GAEhB,CAEIqzB,UACF,OAAOvgC,KAAKg/B,MAAQh/B,KAAKwgC,SAAW,IACtC,CAEIC,WACF,OAAOzgC,KAAKugC,IAAMvgC,KAAKugC,IAAIG,QAAQ1gC,KAAKugC,IAAII,MAAMzgB,KAAO,KAAO,OAClE,CAGA0gB,iBAAiBjuB,GAEf3S,KAAK2S,SAAW3S,KAAKoT,UAAUT,EACjC,CAGA4K,gBAAgB9D,GACTA,GACLzZ,KAAKgd,mBACP,CAGAK,KAAKC,GACCA,GAIJtd,KAAKiU,WAAU,KACbjU,KAAKg/B,OAAQ,EACbh/B,KAAK6gC,eACL7gC,KAAK8gC,aACL9gC,KAAK+gC,oBACL/gC,KAAKghC,yBACL9/B,EAAAA,EAAAA,gBAA+BW,MAAK,KAClC7B,KAAKgd,oBACLhd,KAAKid,gBAAgB,GACrB,GAEN,CAGAgkB,eACEjhC,KAAK+F,MAAQW,OAAOC,OAAO3G,KAAKoT,UAAUpT,KAAKoa,aACjD,CAGA8mB,2BACElhC,KAAKmhC,2BACLnhC,KAAKghC,wBACP,CAEA54B,UACEpI,KAAK2S,SAAW3S,KAAKoT,UAAUpT,KAAK0T,YACtC,CAEA0tB,kBACEphC,KAAK0/B,iBAAiB5B,gBAAiB,EACvC99B,KAAK0/B,iBAAiB3B,mBAAoB,EAC1C/9B,KAAKs/B,iBAAmB,EACxBt/B,KAAK0/B,iBAAiBlB,oBACxB,CAEA6C,aAAap2B,GAEX,GADAjL,KAAKs/B,iBAAmBt/B,KAAKshC,OAAOr2B,GAChCjL,KAAK0/B,iBAAiB5B,eAAgB,CACxC,IAAItlB,EACFxY,KAAKuhC,UAAUvhC,KAAKs/B,kBAAoBt/B,KAAK0/B,iBAAiB7B,WAAW5xB,MAC3EjM,KAAK0/B,iBAAiBjB,UAAUjmB,EAAQ,I,CAG1C,GAAIxY,KAAK0/B,iBAAiB3B,kBAAmB,CAC3C,IAAIvlB,EACFxY,KAAKuhC,UAAUvhC,KAAKs/B,kBAAoBt/B,KAAK0/B,iBAAiB7B,WAAWjxB,IAC3E5M,KAAK0/B,iBAAiB3G,aAAavgB,EAAQ,I,CAE/C,CAEAwoB,yBACEhhC,KAAKiU,WAAU,KACb,IAAIutB,EAAwBpjB,SAASgF,cACnC,qCAEFoe,EAAsBz2B,MAAM02B,SAAW,WACvC,IAAIC,EAAgBtjB,SAASujB,cAAc,OAC3CD,EAAcE,aAAa,KAAM,gCACjCJ,EAAsBK,QAAQH,GAE9B1hC,KAAK0/B,iBAAmB,IAAIhC,GAAc,CACxCoE,GAAI,gCACJC,MAAOA,GAAAA,EACPC,OAAQhiC,MACR,GAEN,CAEAmhC,2BACEnhC,KAAKiU,WAAU,KACb,MAAMguB,EAAe7jB,SAASgF,cAAc,qBAC5C6e,GAAc/e,QAAQ,GAE1B,CAEAgf,kBAAkBvZ,GAChB,OAAOloB,EAAAA,GAAAA,UAAAA,QAAsBkoB,GAAWlM,OAAO,QACjD,CAEA0lB,oBAAoBnqB,GAClBhY,KAAK2/B,aAAa9uB,MAAQmH,EAC1BhY,KAAK2/B,aAAazvB,QAAU8H,EAAM/W,GAClCjB,KAAKo/B,WAAap/B,KAAKq/B,SACvBr/B,KAAKu/B,YAAa,CACpB,CAEAxG,aAAa/gB,GACXhY,KAAK2/B,aAAazvB,QAAU8H,EAAM/W,GAClCjB,KAAK2/B,aAAa9uB,MAAQmH,EAC1BhY,KAAKw/B,aAAc,CACrB,CAEA3qB,kBAAkB/T,GAChBd,KAAK+b,gBAAkBjb,EAEvBd,KAAKid,iBAGMjd,KAAKyb,gBAGlB,CAEAwB,iBACEjd,KAAKwb,SAAW,GAChB,IAAK,MAAM/H,KAAK/M,OAAOC,OAAOzF,EAAAA,EAAAA,UAA0C,CACtE,GAAIlB,KAAK+b,iBAAmBtI,EAAE1S,UAAYf,KAAK+b,gBAC7C,SAEF,GAAItI,EAAExS,KAAOjB,KAAK+B,gBAEhB,SAEF,GAAI0R,EAAE9C,aAEJ,SAEF,MAAMuM,EAAchc,EAAAA,EAAAA,YAA2BuS,EAAE1S,SAAW,IAAI0E,KAChEzF,KAAKwb,SAAS7T,KAAK,CACjBuV,YAAaA,EACbpc,UAAW2S,EAAE1S,QACbK,KAAMqS,EAAEhO,KACRtC,MAAOsQ,EAAExS,I,CAGf,CAEA+b,oBACEhd,KAAKoc,YAAc,CACjB,CACEhb,KAAM,GAAGpB,KAAKqB,GAAG,+CACjB8B,MAAO,IAGX,IAAK,MAAMoG,KAAK7C,OAAOC,OAAOzF,EAAAA,EAAAA,aAC5BlB,KAAKoc,YAAYzU,KAAK,CACpBvG,KAAMmI,EAAE9D,KACRtC,MAAOoG,EAAEtI,IAGf,CAEAwc,sBAAsBjc,GAGA,kBAATA,IAGXxB,KAAK+b,gBAAkBva,EAAKV,WAAa,EAC3C,CAEAshC,UAAUC,GAGR,GAFAriC,KAAKq/B,SAAWr/B,KAAKshC,OAAOe,GAExBriC,KAAKu/B,WAAY,CACnB,IAAI/mB,EAAQxY,KAAKq/B,SAAWr/B,KAAKo/B,WAC7BnzB,EAAQjM,KAAK2/B,aAAa9uB,MAAM5E,MAAQuM,EACxC5L,EAAM5M,KAAK2/B,aAAa9uB,MAAMjE,IAAM4L,EAExCxY,KAAK2S,SAAS3S,KAAK2/B,aAAazvB,SAASjE,MAAQjM,KAAKuhC,UAAUt1B,GAChEjM,KAAK2S,SAAS3S,KAAK2/B,aAAazvB,SAAStD,IAAM5M,KAAKuhC,UAAU30B,E,CAG5D5M,KAAKw/B,aACHx/B,KAAK2/B,aAAazvB,UAChBlQ,KAAK2S,SAAS3S,KAAK2/B,aAAazvB,SAASjE,MAAQjM,KAAKq/B,SACxDr/B,KAAK2S,SAAS3S,KAAK2/B,aAAazvB,SAAStD,IAAM5M,KAAKuhC,UAAUvhC,KAAKq/B,UAC1Dr/B,KAAK2S,SAAS3S,KAAK2/B,aAAazvB,SAASjE,MAAQjM,KAAKq/B,WAC/Dr/B,KAAK2S,SAAS3S,KAAK2/B,aAAazvB,SAAStD,IACvC5M,KAAK2/B,aAAa9uB,MAAM5E,MAAQ,KAI1C,CAEAq2B,UACMtiC,KAAK2/B,aAAazvB,UACpBlQ,KAAK2/B,aAAa9uB,MAAQ7Q,KAAK2S,SAAS3S,KAAK2/B,aAAazvB,SAC1DlQ,KAAK2R,SAAS3R,KAAK2/B,cAChBv2B,OAAO6B,IACNjL,KAAK2S,SAAW3S,KAAKoT,UAAUpT,KAAK0T,YAAY,IAEjD1C,SAAQ,KACPhR,KAAK2/B,aAAe,CAClBzvB,QAAS,GACTW,MAAO,CACLjE,IAAK,EACLX,MAAO,IAGXjM,KAAKo/B,WAAa,CAAC,IAEvBp/B,KAAKu/B,YAAa,EAClBv/B,KAAKw/B,aAAc,EAEvB,CAEA5G,qBAAqB5gB,GACnB,GAAqC,mCAAjCA,EAAM4F,OAAOwI,UAAUjjB,MAA4C,CACrE,MAAMnC,EAASgX,EAAMuqB,aAAaC,QAAQ,UACpC7hC,EAAOX,KAAKoa,YAAYpZ,GACxByhC,EAAerkB,SAASgF,cAC5B,2BAEIsf,EAAaD,EAAeA,EAAaE,aAAe,EACxDC,EAAiB5iC,KAAKwgC,SAASqC,IAAIF,aAAeD,EAClDI,EAA0B,GAC1BC,EAAiB/qB,EAAM4F,OAAOolB,UAKpC,IAAI7oB,EACyB,GAA1B2oB,EAA+BC,EAAkBH,EAAiB,IAGnE5qB,EAAMirB,QAAUjrB,EAAM4F,OAAOslB,wBAAwB/F,IACrDnlB,EAAM4F,OAAOoe,aAAe,IAE5B7hB,GAAW,IAEb,IAAI+F,EAAM,IAAI9S,KAEVsQ,EAAa,IAAItQ,KACnB8S,EAAIzO,cACJyO,EAAI3O,WACJ2O,EAAI7O,UACJ,EACA,EACA,EACA,GACA/B,UAEFoO,GAAwB,IAAVvD,EAEd,IAAIwD,EAAW,IAAIvQ,KACjB8S,EAAIzO,cACJyO,EAAI3O,WACJ2O,EAAI7O,UACJ,EACA,EACA,EACA,GACA/B,UAEFqO,GAA6B,KAAhBxD,EAAU,IAEvB,MAAM,QAAEjK,IAAYC,EAAAA,GAAAA,MAEdU,EAAQ,CACZ5P,GAAIiP,EACJjE,MAAOyR,EACP9Q,IAAK+Q,EACLzR,MAAO,EACPmE,OAAQ,EACRC,aAAc,GACdC,MAAO,EACPC,YAAa,EACbzP,QAASJ,EAAKI,QACdJ,KAAMA,EAAKM,GACXwP,SAAU9P,EAAK8E,KACfiL,eAAe,GAEjBsH,EAAM4F,OAAO7S,MAAMC,WAAa,OAChChL,KAAKmjC,iBAAiBtyB,E,CAE1B,CAEA8nB,gBAAgB1tB,GACmB,mCAA7BA,EAAE2S,OAAOwI,UAAUjjB,QAEnB8H,EAAEg4B,QAAUh4B,EAAE2S,OAAOslB,wBAAwB/F,IAC7ClyB,EAAE2S,OAAOoe,aAAe,EAExB/wB,EAAE2S,OAAO7S,MAAMC,WAAa,oDAE5BC,EAAE2S,OAAO7S,MAAMC,WAAa,oDAGlC,CAEAo4B,iBAAiBn4B,GACkB,mCAA7BA,EAAE2S,OAAOwI,UAAUjjB,QACrB8H,EAAE2S,OAAO7S,MAAMC,WAAa,OAEhC,CAEAq4B,eAAehB,GACb,MAAM70B,EAAOxN,KAAKsjC,YAAYjB,IACxB,QAAEnyB,IAAYC,EAAAA,GAAAA,MAEpBnQ,KAAK4/B,SAAS3zB,MAAQuB,EAAKvB,MAC3BjM,KAAK4/B,SAAShzB,IAAMY,EAAKZ,IACzB5M,KAAK4/B,SAAS3+B,GAAKiP,CACrB,CAEAqzB,gBACEvjC,KAAK4/B,SAAW,CACd3+B,GAAI,GACJgL,MAAO,EACPW,IAAK,EACLV,MAAO,EACPmE,OAAQ,EACRC,aAAc,GACdC,MAAO,EACPC,YAAa,EACbzP,QAAS,EACTJ,KAAM,EACN8P,SAAU,GACVC,eAAe,GAEjB1Q,KAAKm/B,SAAW,GAChBn/B,KAAKk5B,cAAgB,CAAC,CACxB,CAEAsK,kBACExjC,KAAKi/B,cAAe,EACpBj/B,KAAKujC,gBACLvjC,KAAK+b,gBAAkB,EACvB/b,KAAKyb,iBAAmB,GACxBzb,KAAKie,KAAKvF,OACZ,CAEA+qB,iBAAiBx4B,GACfA,EAAEK,iBACF,MAAMwS,EAAQ9d,KAAKkJ,MAAM,oBACzB4U,EAAMC,OACN,MAAM/F,EAA8BhY,KAAKoT,UAAUpT,KAAK4/B,UACxD5/B,KAAKiU,WAAU,KACb,GAAKjU,KAAKie,KAAKC,WAAf,CAGA,GAAqC,kBAA1Ble,KAAKyb,iBACdzb,KAAK4/B,SAASj/B,KAAOX,KAAKyb,iBAAiBtY,MAC3CnD,KAAK4/B,SAAS7+B,QAAUf,KAAK+b,gBAC7B/b,KAAK4/B,SAASnvB,SAAWzQ,KAAKyb,iBAAiBra,KAC/CpB,KAAKmjC,iBAAiBnjC,KAAK4/B,cACtB,CACL,IAAIhrB,EAAiB,CACnB3T,GAAI,EACJwE,KAAMzF,KAAKyb,iBACX1a,QAASf,KAAK+b,gBACd5W,YAAa,GACbkN,QAAS,EACT1B,cAAc,EACd3M,WAAY,EACZuO,QAAS,GACTC,KAAM,GACNC,MAAO,CAAC,GAEVvR,EAAAA,EAAAA,cAA6B,CAC3BJ,UAAWd,KAAK+b,gBAChBpb,KAAMiU,IACL/S,MAAM0S,IACPyD,EAAMrX,KAAO4T,EAAItT,GACjB+W,EAAMjX,QAAUwT,EAAIxT,QACpBf,KAAKmjC,iBAAiBnrB,EAAM,G,CAGhChY,KAAKwjC,iB,CAAiB,GAE1B,CAEAL,iBAAiBtyB,GACf7Q,KAAK4Q,WAAW,CACdC,MAAOA,IAENhP,MAAK,KACJ7B,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,mEAEFC,KAAM,WACN,IAEH8H,OAAO0H,IACqB,MAAvBA,EAAMC,aAER/Q,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,kEAEFC,KAAM,UAGRtB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,4DAEFC,KAAM,S,IAIdtB,KAAKujC,eACP,CAEAG,SAASz4B,GAEmB,mCAAxBA,EAAE2S,OAAO+lB,YACR3jC,KAAKi/B,eAENj/B,KAAKi/B,cAAe,EACpBj/B,KAAKk5B,cAAgBjuB,EAAE2S,OAE3B,CAEA2jB,UAAU/zB,EAAMo2B,GAAO,GACrB,MAAMC,EAAU,EACVC,EAA0B,GAAVD,EAAe,IAErC,OAAOD,EACHp2B,EAAQA,EAAOs2B,EACft2B,GAAQs2B,EAAiBt2B,EAAOs2B,EACtC,CAEAR,YAAYjB,GAMV,OALIA,EAAI0B,QAAU,GAChB1B,EAAI0B,OAAS,GAEb1B,EAAI0B,OAAS,EAER,CAAE93B,MAAOjM,KAAKshC,OAAOe,GAAMz1B,IAAK5M,KAAKshC,OAAOe,GAAO,KAC5D,CAEAf,OAAOe,GACL,OAAO,IAAIj1B,KAAKi1B,EAAI3Q,KAAM2Q,EAAI5tB,MAAQ,EAAG4tB,EAAIzQ,IAAKyQ,EAAI2B,KAAM3B,EAAI0B,QAAQz0B,SAC1E,CAEAwpB,cAAc73B,GACZ,OAAOA,IAAOjB,KAAK+R,cACrB,CAEAkyB,iBACE,OAAOjkC,KAAKugC,IAAgC,GAA1BvgC,KAAKugC,IAAII,MAAMzgB,IAAI8jB,KAAYhkC,KAAKugC,IAAII,MAAMzgB,IAAI6jB,OAAS,CAC/E,CAEAG,eAAelsB,GACb,OAAO9W,EAAAA,EAAAA,SAAwB8W,EAAMrX,KACvC,CAEAkgC,eACE,MAAMrzB,EAAOxN,KAAKikC,iBACZhL,EAAQ1qB,KAAK41B,IAAI,EAAG32B,EAAQA,EAAO,GAAM,IAE/CxN,KAAKugC,IAAIM,aAAa5H,EACxB,CAEA8H,oBACEzc,aAAY,KACV,IAAKtkB,KAAK+R,eACR,OAIF,MAAM7E,EAAQ,IAAKlN,KAAK2S,SAAS3S,KAAK+R,iBACjC7E,GAAUxG,OAAO09B,KAAKl3B,GAAO7G,UAIlCi6B,EAAAA,GAAAA,IAAiBpzB,GACjBlN,KAAK2S,SAAS3S,KAAK+R,gBAAkB7E,EAAK,GACzC,IACL,CAEA4zB,aACExc,aAAY,IAAMtkB,KAAKugC,IAAI8D,eAAe,IAC5C,CAEA1iC,WAAWu9B,GAETl/B,KAAK4B,WAAW,CACdR,KAAM,GAAGpB,KAAKqB,GAAG,uDAChBQ,MAAMC,IACFA,IAKDo9B,EAAcjzB,OAASizB,EAAcjzB,QAAUizB,EAActyB,IAC/D5M,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,qDACjBC,KAAM,UAGJ49B,EAAcoF,oBAChBtkC,KAAK4B,WAAW,CACdR,KAAM,GAAGpB,KAAKqB,GAAG,kDAChBQ,MAAMC,IACHA,EACF9B,KAAK4R,cAAc,CACjB1B,QAASgvB,EAAcj+B,GACvBsjC,iBAAkBrF,EAAcoF,sBAGlCtkC,KAAK4R,cAAc,CAAE1B,QAASgvB,EAAcj+B,I,IAIhDjB,KAAK4R,cAAc,CAAE1B,QAASgvB,EAAcj+B,K,GAIpD,CAEAy3B,uBACE14B,KAAKwkC,0BAA0BvY,cACjC,CAEAwY,WAAWC,EAAyBC,GAClC,MAAMhI,EAAS38B,KAAK+F,MAAMqB,QACvBzG,GACCA,EAAK0R,UAAYqyB,GACjB/jC,EAAKqD,aAAe2gC,IACnBhkC,EAAKgQ,eAGV,OAAOgsB,EAAOt2B,MAChB,IA7qBArE,EAAAA,EAAAA,IAAA,EADCG,EAAAA,EAAAA,IAAI,SAAO,6BAIZH,EAAAA,EAAAA,IAAA,EADCG,EAAAA,EAAAA,OAAK,kDAINH,EAAAA,EAAAA,IAAA,EADCG,EAAAA,EAAAA,OAAK,iCAINH,EAAAA,EAAAA,IAAA,CADCk1B,GAAkBj1B,QAAM,oCAIzBD,EAAAA,EAAAA,IAAA,CADCk1B,GAAkBj1B,QAAM,uCAIzBD,EAAAA,EAAAA,IAAA,CADCk1B,GAAkBj1B,QAAM,mCAIzBD,EAAAA,EAAAA,IAAA,CADCk1B,GAAkBj1B,QAAM,0CAIzBD,EAAAA,EAAAA,IAAA,CADCk1B,GAAkBh1B,QAAM,mCAMzBF,EAAAA,EAAAA,IAAA,CADCk1B,GAAkBh1B,QAAM,sCAOzBF,EAAAA,EAAAA,IAAA,CADCk1B,GAAkBh1B,QAAM,iCAwHzBF,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,gBAAc,uCAOrBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,aAAW,sCAOlBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,oBAAqB,CAAE2H,WAAW,KAAO,2BAoBhDjQ,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,gBAAc,mCAMrBtI,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,eAAa,8CA5LDw0B,IAAY98B,EAAAA,EAAAA,IAAA,EADhCI,EAAAA,EAAAA,IAAU,CAAEC,WAAY,CAAEq7B,cAAa,GAAEjE,uBAAsBA,OAC3CqF,I,UCrByR,MCQ1S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,2BCnB4b,W,IAACt7B,EAAG,K,EAAC,QAAW,GAAkB,EAAGiB,MAAOmZ,Y,SAA4C,MAAO7d,CAAG,EAAC6kC,UAAUngC,EAAQ9D,MAAK,C,YAAA,2C,CAAC,OAAC,MAAM,CAAsBiC,cAAY,GAAO,MAAK,c,GAAkB,EAAO,YAAU6B,OAAO,mD,MAAC,GAAO1E,EAAI8kC,GAAAA,EAAAA,C,IAAqB,iBAAE,eAACriC,IAAK,E,MAAO,CAAyBE,WAAS,G,GAAqD,CAACC,UAAW,YAAmB,uCAAW,cAAsB,EAAaC,I,CAAuE,OAAQ,CAAE,YAAC,QAACY,CAAE,EAAC,M,GAAC,C,MAA4BiB,SAAa,GAAsC,OAAO1E,EAAI+kC,gBAAcnkC,E,SAA+B,CAAC,wBAAIV,SAAS,YAAC2C,EAAAA,KAAY,eAAW,IAAG,EAAE,WAAQ,wB,GAA0C,QAAwB,CAACjC,EAAAA,EAAAA,EAAM,C,YAAQ,oD,MAAiB,WAAG,GAAI,CAASiC,MAAW,SAAC,GAAsBW,OAAM,gCAAE,gBAAqBwhC,EAAY,CAAW,mBAAW,IAAkC,CAAC9kC,EAAG,MAAM,CAAE2C,YAAY,YAAeW,GAAAA,CAAqEuV,MAAS,YAA2D,OAA1D,oBAA0D,mBAAQ,OAAC,EAAW,UAAoCvV,IAA6C,WAAE,YAAYtD,sBAAYqD,MAAM,CAAC,gBAAc,sB,SAAiB,CAAa,YAAU+O,EAAQ1R,GAAAA,EAAK0R,SAAiBtS,EAAG,OAAO,CAAuEuD,YAAM,e,MAAC,EAAQ,aAAM,uC,SAAS,CAAQ,YAAY,2CAA0C,iBAAG,YAAW,aAA2DV,MAAAA,CAA4B3C,SAAG,EAAS,yB,CAAQ,QAAU,GAAC,KAAE,MAAC,CAACkE,MAAW,OAAUN,OAAI,OAAYF,QAAG,G,IAAa,6BAAQ,EAAE,gE,MAAC,CAAgF,aAAG,OAAM,OAAQ1D,QAAW,GAAiD,IAAS,EAAC,UAAyBqD,EAAAA,GAAM,sD,YAAC,e,CAA4B,EAAC,K,MAAI,C,WAAS,I,YAAuD,OAAC,gBAAE,GAAI,UAAC,GAAiCwV,EAAAA,MAAU,IAAqC,MAAM,CAAC,mBAAoB,EAAI,GAAG,EAAI,GAAG,CAACksB,EAAAA,iBAAoB,UAAG,IAA+B,MAAG,IAAsCpiC,CAAAA,EAAAA,GAAAA,EAAY,KAAM,6BAACU,OAAM,QAAC,IAAO,EAAS,OAAO,SAAa,EAAC,eAAQ,IAAU,kBAAU,OAAKvD,EAAI+f,cAAW,IAA+G,IAAY,QAAY,QAAC,SAAU,CAAK,YAAC,iBAAgB,qCAAC,4BAAC,KAAG7f,IAAG,GAAO,sBAAC2C,YAAY,OAAO,MAAK,CAAeU,MAAM,WAAc,SAAE,MAAMD,CAAyHI,MAAI,KAC9nG,gHACGrD,MAAAA,CAEJ,KAASN,G,2PCGT,MAAMO,IAAeC,EAAAA,EAAAA,IAAU,gBAU/B,IAAqB2kC,GAArB,cAA2CzkC,GAAAA,EAA3C6E,c,oBAOE,KAAA6/B,eAAgB,EAChB,KAAAC,aAAe,GACf,KAAAC,WAAa,CAAC,CA2IhB,CAzIMpuB,gBACF,QAAS9V,EAAAA,EAAAA,oBAAqCA,EAAAA,EAAAA,sBAChD,CAEImkC,kBACF,MAAO,CACL,CACErZ,MAAOhsB,KAAKqB,GAAG,0CACf2R,KAAM,YACNgyB,OAAQhlC,KAAKgc,SAEf,CACEgQ,MAAOhsB,KAAKqB,GAAG,uCACf2R,KAAM,aACNgyB,OAAQhlC,KAAKuB,UAEf,CACEyqB,MAAOhsB,KAAKqB,GAAG,yCACf2R,KAAM,aACNgyB,OAAQhlC,KAAK2B,YAGnB,CAEI2jC,gBACF,OAAKpkC,EAAAA,EAAAA,sBAKEwF,OAAOC,OAAOzF,EAAAA,EAAAA,UAAyBkG,QAAQzG,IAAUA,EAAKgQ,eAH5D,EAIX,CAEI40B,sBACF,OAAKrkC,EAAAA,EAAAA,sBAKEwF,OAAOC,OAAOzF,EAAAA,EAAAA,UAAyBkG,QAAQzG,GAASA,EAAKgQ,eAH3D,EAIX,CAEI60B,0BACF,OAAOxlC,KAAKulC,gBAAgBn+B,QAAQzG,GAClCX,KAAKylC,0BAA0B9kC,EAAK+kC,mBACpCr/B,MACJ,CAEIs/B,kBACF,OAAO3lC,KAAKslC,UACT53B,MAAK,CAACC,EAAGC,IACJD,EAAE0E,QAAUzE,EAAEyE,SACR,EAEN1E,EAAE0E,QAAUzE,EAAEyE,QACT,EAGL1E,EAAE3J,WAAa4J,EAAE5J,YACX,EAEN2J,EAAE3J,WAAa4J,EAAE5J,WACZ,EAGF2J,EAAE4E,QAAU3E,EAAE2E,SAAW,EAAI,IAErCmH,MAAM,EAAG,GACd,CAEIrH,cACF,OAAQlP,GACCjC,EAAAA,EAAAA,eAA8BiC,EAEzC,CAEA0hC,gBAAgBlkC,GACdX,KAAK4lC,aAAajlC,GAAMkB,MAAK,KAC3B7B,KAAKmlC,aAAe,EAAE,GAE1B,CAEAM,0BAA0Bx0B,GACxB,QAAaqL,IAATrL,GAA+B,OAATA,EACxB,OAAO,EAGT,MAAMiP,EAAM,IAAI9S,KAGVy4B,EAAa,IAAIz4B,KACrB8S,EAAIzO,cACJyO,EAAI3O,WACJ2O,EAAI7O,UAAY6O,EAAI4lB,UAA6B,IAAjB5lB,EAAI4lB,UAAkB,EAAI,IAI5D,OAAO,IAAI14B,KAAK6D,IAAS40B,GAAc,IAAIz4B,KAAK6D,IAASiP,CAC3D,CAEI6lB,iBACF,OAAQ5iC,IACN,IAAKA,GAASA,EAAQ,EAEpB,MAAO,IAET,GAAIA,EAAQ,EAAG,CAEb,MAAMgX,EAAU5L,KAAKyiB,MAAM,GAAK7tB,GAChC,OAAOgX,EAAQgL,WAAa,M,CAG9B,MAAM1V,EAAQO,EAAAA,GAAAA,OAA8B7M,GAC5C,MAAO,GAAGsM,OAAW,CAEzB,CAEAksB,mBAAmB16B,GACjB,OAAKA,GAGEC,EAAAA,EAAAA,YAA2BD,IAAKwE,MAF9B,EAGX,CAEAs/B,aAAa9jC,GACX,OAAOA,IAAOjB,KAAK+B,eACrB,CAEArB,oBAAoBC,EAAaqlC,GAC/BhmC,KAAKklC,eAAgB,QACfc,EAAWhB,OAAOrkC,GACxBX,KAAKklC,eAAgB,CACvB,CAEAN,UAAU5sB,EAAOrX,GACfqX,EAAMuqB,aAAa0D,QAAQ,SAAUtlC,EAAKM,GAC5C,IAjJAe,EAAAA,EAAAA,IAAA,CADC3B,GAAa4B,QAAM,wCAIpBD,EAAAA,EAAAA,IAAA,CADC3B,GAAa6B,QAAM,+BAJD+iC,IAAajjC,EAAAA,EAAAA,IAAA,EALjCI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVkI,eAAcA,GAAAA,MAGG06B,I,UCjB0R,MCS3S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,wBCpB0G1hC,GAAM,W,IAC5I8T,EAAAA,K,EACA0H,EAAM,MAAMyG,GACb,oB,OAAI,Q,YAAW,gB,MAAiB,C,QAA4GkF,EAAAA,UAAiB,iCAAG,GAAG3qB,CAA4B0D,QAAU,YAACb,IAAAA,EAAY,iFAAsB,EAAC,WAAc,CAAEA,I,CAAiD,YAAU,O,IAAC,O,YAA6B,mB,CAAI,Q,YAAsB,8B,MAA0D,CAAc,MAAQ7C,GAAc,kBAAG,UAAC,GAAC,mBAAU6qB,G,YAA4BtpB,EAAK6I,GAAAA,qC,KAAiF,OAAuB,mBAAG3H,GAAAA,CAAOW,QAAWC,SAAAA,GAAkBV,OAAAA,EAAS,KAAAA,QAAe,sDAAKoB,EAAK/D,YAA6B,GAA+B,OAAIE,MAAG,EAAM,iBAAC2C,SAAW,SAAC,GAA4B,EAAC,KAAM,uBAACA,EAA4B3C,WAAS,sBAAkDF,EAAG,MAAO,CAAiFuD,YAAM,yB,CAAC,QAAQ,C,YAAG,e,CAAiB,QAAQ,C,YAAG,oC,CAAkB,KAAM,IAAG,qE,MAAM,CAAK,SAACd,cAAM,GAACW,MAAOpD,GAA4B2C,eAAS,G,IAAoBoB,IAAgD,IAAC,KAAoC,OAAI,MAAM,EAAC,YAAM,WAAClB,SAAW,SAAC,GAAkB,EAAC,OAAY,YAAC,qBAACA,EAAmBU,WAAM,6BAAY,WAAc,C,YAAI,e,CAAgB,eAAO,C,YAAe,OAAyD,MAAC,CAACd,MAAM,GAACW,eAAWC,GAAsBV,aAAS,G,KAAoBoB,eAAsC,YAAC,2CAAkC,OAAI,MAAM,EAAC,YAAM,SAAClB,SAAW,SAAC,GAAmB,EAAC,KAAQ,EAAC,yBAACA,EAA8B,WAAC,2B,GAA0B,QAAWsjC,C,YAAY,gBAAC,QAAE,YAAS,gBAA8BtjC,GAAAA,CAAyB,MAAC,YAAC,OAAQ,c,IAAuC,8BAAE,YAAS,WAAqCA,GAAAA,CAAsBU,MAAM,YAAC,aAAW,CAAI,I,CAAK,KAAO,kBAAgB,MAAC,Y,YAAKonB,U,MAAiB,CAAC,SAAQ,K,GAAkH3qB,CAAoB,kBAAC,cAAIE,EAAW2C,MAAW,SAAC,GAAwC7C,IAAO,EAAIA,KAAM,QAAQ,+BAAwC,GAAI,EAAME,IAAG,gBAAgB,KAAI,EAAC,YAAkB,IAEvwEG,CAAAA,EAAAA,OAAAA,CAEJ,YAAiBA,uC,0HCGjB,MAAMG,IAAUD,EAAAA,EAAAA,IAAU,MAQ1B,IAAqB2qB,GAArB,cAA8CxqB,EAAAA,GAA9C4E,c,oBAQE,KAAAqlB,WAAY,EACZ,KAAAtnB,YAAmB,CACjBnC,GAAI,EACJwE,KAAM,GACNG,SAAU,KACV5B,WAAY,EACZe,WAAW,EACX9B,YAAY,EACZkC,YAAa,GACbQ,OAAQ,EACRI,MAAO,GACPC,MAAO,GACPE,oBAAqB,CACnBqB,IAAK,GACLV,WAAY,GACZC,UAAW,GACXq/B,MAAO,GACP9P,KAAM,OACNC,KAAM,GACNC,aAAc,IA+DpB,CA3DMpwB,gBACF,MAAO,CACJC,KAAQA,GAAKpG,KAAKqB,GAAG,6CACrB+E,GAAMA,EAAEC,QAAU,KAAOrG,KAAKqB,GAAG,8CAEtC,CAEA6kC,aACOlmC,KAAKie,KAAKC,YAQfhd,EAAAA,EAAAA,iBAAgClB,KAAKoD,aAClCvB,MAAM86B,IACL38B,KAAKyoB,cAAcre,YAAYuyB,GAC/B38B,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,iEAEFC,KAAM,WACN,IAEH8H,OAAOoL,IACNxL,QAAQ8H,MAAM0D,GACdxU,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GACZ,+DAEFC,KAAM,SACN,IAGNtB,KAAKoD,YAAc,CACjBnC,GAAI,EACJwE,KAAM,GACNG,SAAU,KACV5B,WAAY,EACZe,WAAW,EACX9B,YAAY,EACZkC,YAAa,GACbQ,OAAQ,EACRI,MAAO,GACPC,MAAO,GACPE,oBAAqB,CACnBqB,IAAK,GACLV,WAAY,GACZC,UAAW,GACXq/B,MAAO,GACP9P,KAAM,OACNC,KAAM,GACNC,aAAc,KAGlBv2B,KAAK0qB,WAAY,GA/Cf1qB,KAAKmB,aAAa,CAChBC,KAAM,GAAGpB,KAAKqB,GAAG,yDACjBC,KAAM,SA8CZ,IAxFaU,EAAAA,EAAAA,IAAA,EAAZG,EAAAA,EAAAA,IAAI,SAAO,6BAEZH,EAAAA,EAAAA,IAAA,EADCG,EAAAA,EAAAA,OAAK,sCAINH,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,oCALI+oB,IAAgBjpB,EAAAA,EAAAA,IAAA,EANpCI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVmI,WAAU,KACVpF,cAAaA,GAAAA,MAGI6lB,I,UClBgS,MCSjT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCDhC,MAAM5qB,IAAeC,EAAAA,EAAAA,IAAU,gBACzBC,IAAUD,EAAAA,EAAAA,IAAU,MAa1B,IAAqB8lC,GAArB,cAAkC3lC,EAAAA,GAQ5ByyB,eACF,OAAO3sB,EAAAA,EAAAA,WACT,CACI8/B,4BACF,OAAO3/B,OAAOC,OAAOsxB,GAAAA,EAAAA,sBACvB,CAGAqO,aAAa5iC,EAA0B6e,GACjC7e,IAAU6e,GACZ0V,GAAAA,EAAAA,4BAEJ,CAEA1lB,UACE0lB,GAAAA,EAAAA,6BACA/2B,EAAAA,EAAAA,eACF,IAvBAc,EAAAA,EAAAA,IAAA,CADC3B,GAAa4B,QAAM,iCAGpBD,EAAAA,EAAAA,IAAA,CADCzB,GAAQ2B,QAAM,mCAGGF,EAAAA,EAAAA,IAAA,EAAjBG,EAAAA,EAAAA,IAAI,cAAY,kCAUjBH,EAAAA,EAAAA,IAAA,EADCsI,EAAAA,EAAAA,IAAM,aAAW,kCAfC87B,IAAIpkC,EAAAA,EAAAA,IAAA,EAXxBI,EAAAA,EAAAA,IAAU,CACTC,WAAY,CACVy8B,aAAY,GACZmG,cAAa,GACbtmB,iBAAgB,KAChBnF,YAAW,KACXyR,iBAAgB,GAChBsb,oBAAmB,GACnBjkC,WAAUA,GAAAA,MAGO8jC,I,UCjCqQ,MCQtR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCbhC3lC,EAAAA,WAAAA,IAAQ+lC,GAAAA,IACR,MAAMjf,GAA6B,CACjC,CACE+Q,KAAM,IACN7yB,KAAM,OACNlD,UAAW6jC,IAEb,CACE9N,KAAM,SACN7yB,KAAM,QAINlD,UAAWA,IAAM,gCAEnB,CACE+1B,KAAM,YACN7yB,KAAM,WACNlD,UAAWA,IAAM,gCAEnB,CACE+1B,KAAM,SACN7yB,KAAM,QACNlD,UAAWA,IAAM,gCAEnB,CACE+1B,KAAM,YACN7yB,KAAM,WACNlD,UAAWA,IAAM,gCAEnB,CACE+1B,KAAM,SACN7yB,KAAM,QACNlD,UAAWA,IAAM,gCAEnB,CACE+1B,KAAM,YACN7yB,KAAM,WACNlD,UAAWA,IAAM,iCAGrBglB,GAAO5f,KAAK0wB,IACZ9Q,GAAO5f,KAAK4wB,IAEZ,MAAMkO,GAAS,IAAID,GAAAA,GAAU,CAC3BE,KAAM,UACNC,KAAMC,IACNrf,YAGF,U,+CClDA9mB,EAAAA,WAAAA,IAAQomC,GAAAA,GAER,WAAmBA,GAAAA,EAAQ,CACzBC,MAAO,CACLC,QAAS,CACPC,kBAAkB,GAEpBC,OAAQ,CACNC,MAAO,CAELC,QAAS,UAETC,UAAW,UACXC,OAAQ,UACRv2B,MAAO,UACPw2B,KAAM,UACNC,QAAS,UACTC,QAAS,aAIfC,KAAM,CACJC,QAAS,CAAEC,GAAE,KAAEC,GAAEA,GAAAA,GACjBC,QAAS,GAAGC,GAAAA,EAAAA,EAAO,gB,+CC1BvB,MAAMf,GAA0B,CAC9BgB,IAAKnB,sCACLoB,MAAOpB,SACPqB,SAAUrB,oBAGNsB,IAAYC,EAAAA,GAAAA,GAASpB,IAErBqB,GAA2C,CAC/CC,QAAU5nC,IACRA,EAAIgI,UAAU6/B,UAAYJ,EAAS,GAIvCE,GAASC,QAAW5nC,IAClBA,EAAIgI,UAAU6/B,UAAYJ,GAC1BxhC,OAAO6hC,iBAAiB9nC,EAAIgI,UAAW,CACrC6/B,UAAW,CACT55B,MACE,OAAOw5B,EACT,IAEF,EAGJznC,EAAAA,WAAAA,IAAQ2nC,IAER,I,kCCzBM,SAAUI,GACd/nC,EACAsmC,GAEAtmC,EAAIgI,UAAUgG,MAAQg6B,KAAAA,OAAa,CACjCC,QAAS3B,GAAS4B,UAEpBloC,EAAIgI,UAAUgG,MAAMm6B,aAAaC,QAAQC,KAAIpoC,UAE3C,MAAMqoC,QAAcC,GAAAA,EAAAA,cAMpB,OALAC,EAAOx9B,QAAQy9B,OAAO,iBAAmB,UAAYH,EAErDE,EAAOx9B,QAAQy9B,OAAO,sBAAuB,IAAI97B,MAAO+7B,qBAAuB,GAE/EF,EAAOx9B,QAAQy9B,OAAO,cAAgBpB,GAAAA,EAAAA,QAAe,KAC9CmB,CAAM,GAEjB,C,SClBM,SAAUG,GAAa3oC,GAC3BA,EAAIgI,UAAU4gC,QAAUzgB,IAC1B,CCFM,SAAU0gB,GAAgB7oC,EAAkBsmC,GAChDtmC,EAAIgI,UAAU2K,UAAam2B,GAClBC,KAAKC,MAAMD,KAAKE,UAAUH,GAErC,CCkBA,SAASI,KACP,OAAO,IAAIlpC,EAAAA,WAAI,CACbgmC,OAAM,GACN1E,MAAK,KACL6H,QAAO,GACPC,KAAI,KACJ/pC,OAAS6P,GAAMA,EAAEwnB,MAChB2S,OAAO,OACZ,CArBArpC,EAAAA,WAAAA,IAAQspC,MACRtpC,EAAAA,WAAAA,IAAQupC,GAAAA,IACRvpC,EAAAA,WAAAA,IAAQ6oC,IAER7oC,EAAAA,WAAAA,OAAAA,eAA2B,EAE3BA,EAAAA,WAAAA,IAAQ+nC,GAAa,CACnBG,QAAS/B,4BAEXnmC,EAAAA,WAAAA,IAAQ2oC,IAER3oC,EAAAA,WAAAA,UAAAA,QAAAA,OAA6B,GAAGopC,GAAAA,EAAAA,EAAO,eAerCppC,EAAAA,WAAAA,UAAAA,UAAAA,KACQ,CACJwpC,OAAQ,iBACRC,kBAAkB,IAEnBroC,MAAK,KACJ8nC,KAAUG,OAAO,OAAO,G,qFCxC9BrpC,EAAAA,WAAAA,IAAQ0pC,EAAAA,GACR,MAAMC,EAAW,CACfzC,GAAI,IACC/jC,EAAQ,OACX4hB,SAAUmiB,EAAAA,GAEZC,GAAI,IACChkC,EAAQ,OACX4hB,SAAUoiB,EAAAA,IAIRyC,EAAYC,UAAUC,SAASpgC,QAAQ,KAC7C,IAAIqgC,EAAS,GACb,GAAI5gB,aAAawL,QAAQ,UAAW,CAClC,MAAMqV,EAAmB7gB,aAAawL,QAAQ,UAC9CoV,EAASC,C,MAGPD,GADiB,IAAfH,EACOC,UAAUC,SAEVD,UAAUC,SAAS16B,OAAO,EAAGw6B,GAG1C,MAAMvC,EAAO,IAAIqC,EAAAA,EAAQ,CACvBK,OAAQA,GAAU5D,CAAAA,oBAAAA,OAAAA,qBAAAA,sCAAAA,uBAAAA,SAAAA,wBAAAA,mBAAAA,oBAAAA,0BAAAA,uBAAAA,GAAAA,cAAAA,QAAAA,uBAAAA,uCAAAA,iCAAAA,mCAAAA,SAAAA,aAAAA,SAAAA,KAAY8D,qBAAuB,KACrDC,eAAgB/D,CAAAA,oBAAAA,OAAAA,qBAAAA,sCAAAA,uBAAAA,SAAAA,wBAAAA,mBAAAA,oBAAAA,0BAAAA,uBAAAA,GAAAA,cAAAA,QAAAA,uBAAAA,uCAAAA,iCAAAA,mCAAAA,SAAAA,aAAAA,SAAAA,KAAYgE,8BAAgC,KAC5DR,aAGF,Q,8LClCO,MAAMS,EAAe,CAC1BC,eAAgB,sCAChBC,iBAAkB,gDCId,MAAOC,EAWXC,0BAA0BC,GAEpBF,EAAUG,UACZH,EAAUG,QAAQpgC,MAAMuyB,QAAU,WAGhC0N,EAAUI,aACZJ,EAAUI,WAAWC,UAAY,WAAWH,EAAQI,YAGlDN,EAAUO,eACVP,EAAUO,aAAaC,mBAAmCzgC,MAAMuyB,QAAU,OAC5E0N,EAAUO,aAAa3J,aAAa,UAAW,kBAC/CoJ,EAAUO,aAAa3J,aAAa,QAAS,mBAC7CoJ,EAAUO,aAAaF,UAAY,WAEvC,CAEAJ,mBACMD,EAAUS,UACZT,EAAUS,QAAQJ,UAAY,IAG5BL,EAAUU,aACZV,EAAUU,WAAWL,UAAY,GAErC,CAEAJ,gBAAgBpqC,EAA2B8qC,GACzC3iC,QAAQC,IAAI,4BAA2B,IAAImE,MAAO+X,cAC9CwmB,IAAad,EAAAA,eACfG,EAAUY,WAAW/qC,GACZ8qC,IAAad,EAAAA,kBACtBG,EAAUa,QAAQhrC,EAEtB,CAEAoqC,kBAAkBpqC,GAChB,MAAMue,EAAWve,EACXirC,EAAU1tB,SAASujB,cAAc,OACvCmK,EAAQT,UAAY7B,KAAKE,UAAUtqB,EAAU,KAAM,GACnD4rB,EAAUe,YAENf,EAAUU,YACZV,EAAUU,WAAWM,YAAYF,EAErC,CAEAb,eAAepqC,GACb,MAAMorC,EAAWprC,GACZorC,EAAS9oC,OAAS8oC,EAAS9oC,MAAMkD,OAAS,EAC7Csf,MAAM,2BAENqlB,EAAUe,YACVE,EAAS9oC,MAAMuW,MAAM,EAAG,IAAI7P,SAAQ,CAACm2B,EAAQ1xB,KAC3C08B,EAAUkB,wBAAwBlM,EAAG1xB,GACrC08B,EAAUmB,2BAA2BnM,EAAG1xB,EAAE,IAGhD,CAEA28B,+BAA+BjL,EAAQ1xB,GACrC,MAAM89B,EAAWhuB,SAASujB,cAAc,KACxCyK,EAASxK,aAAa,QAAS,0CAC/BwK,EAASxK,aAAa,KAAM,OAAStzB,EAAI,QACzC89B,EAASxK,aAAa,cAAe,QACrCwK,EAASxK,aAAa,OAAQ,QAAUtzB,GACxC89B,EAASxK,aAAa,OAAQ,OAC9BwK,EAASxK,aAAa,gBAAiB,GAAGtzB,KAC1C89B,EAASf,UAAYrL,EAAEqM,QAEnBrB,EAAUS,SACZT,EAAUS,QAAQO,YAAYI,EAElC,CAEAnB,kCAAkCjL,EAAQ1xB,GACxC,MAAMg+B,EAAcluB,SAASujB,cAAc,OAC3C2K,EAAY1K,aAAa,QAAS,iBAClC0K,EAAY1K,aAAa,KAAM,OAAStzB,GACxCg+B,EAAY1K,aAAa,OAAQ,YACjC0K,EAAY1K,aAAa,kBAAmB,OAAStzB,EAAI,QACrD0xB,EAAEuM,OACJD,EAAYjB,UACV,kBACArL,EAAEuM,KAAKC,aAAaC,QACpB,oBACAzM,EAAE0M,YACF,MACE1B,EAAUU,YACZV,EAAUU,WAAWM,YAAYM,GAGvC,EAtGOtB,EAAAI,WAAahtB,SAASC,eAAe,kBACrC2sB,EAAAO,aAAentB,SAASC,eAAe,UACvC2sB,EAAAG,QAAU/sB,SAASC,eAAe,YAClC2sB,EAAA2B,WAAavuB,SAASC,eAAe,YACrC2sB,EAAA4B,cAAgBxuB,SAASC,eAAe,cACxC2sB,EAAA6B,WAAazuB,SAASC,eAAe,eACrC2sB,EAAAS,QAAUrtB,SAASC,eAAe,YAClC2sB,EAAAU,WAAattB,SAASC,eAAe,kB,eCO9C,MAAMyuB,EAA6B,CACjCC,KAAM,CACJ9E,SAAUrB,uCACVoG,YAAapG,CAAAA,oBAAAA,OAAAA,qBAAAA,sCAAAA,uBAAAA,SAAAA,wBAAAA,mBAAAA,oBAAAA,0BAAAA,uBAAAA,GAAAA,cAAAA,QAAAA,uBAAAA,uCAAAA,iCAAAA,mCAAAA,SAAAA,aAAAA,SAAAA,KAAYqG,0BACzBC,2BAA2B,GAE7BC,MAAO,CACLC,cAAe,eACfC,wBAAwB,GAE1BC,OAAQ,CACNC,cAAe,CACbC,eAAgBA,CAACC,EAAO7f,EAAS8f,KAC/B,IAAIA,EAGJ,OAAQD,GACN,KAAKE,EAAAA,EAAAA,MAEH,YADA3kC,QAAQ8H,MAAM8c,GAEhB,KAAK+f,EAAAA,EAAAA,KAEH,YADA3kC,QAAQs+B,KAAK1Z,GAEf,KAAK+f,EAAAA,EAAAA,QAEH,YADA3kC,QAAQ4kC,MAAMhgB,GAEhB,KAAK+f,EAAAA,EAAAA,QAEH,YADA3kC,QAAQ6kC,KAAKjgB,GACP,KAUZ,MAAOkgB,EAaXzoC,cACErF,KAAK+tC,UAAY,IAAIC,EAAAA,EAAwBlB,GAC7C9sC,KAAKkrC,QAAU,KAEflrC,KAAKiuC,aAAe,CAClBC,OAAQ,CACN,YACA,iBACA,sBACA,SACA,YAIJluC,KAAKmuC,qBAAuB,IACvBnuC,KAAKiuC,aACRG,kBAAmB/pB,OAAOsF,SAASjD,MAGrC1mB,KAAKquC,eAAiB,CACpBH,OAAQ,CACN,YACA,iBACA,sBACA,SACA,YAIJluC,KAAKsuC,uBAAyB,IACzBtuC,KAAKquC,eACRD,kBAAmB/pB,OAAOsF,SAASjD,MAIrC1mB,KAAKuuC,YAAc,CACjBL,OAAQ,CAAC,cAGXluC,KAAKwuC,oBAAsB,IACtBxuC,KAAKuuC,YACRH,kBAAmB/pB,OAAOsF,SAASjD,MAGrC1mB,KAAKyuC,qBAAuB,CAC1BP,OAAQ,CACN,YACA,iBACA,sBACA,SACA,WAEFQ,cAAc,GAGhB1uC,KAAK2uC,kBAAoB,CACvBT,OAAQ,CAAC,SAAU,UAAW,aAC9BQ,cAAc,GAGhB1uC,KAAK4uC,mBAAqB,CACxBC,UAAW,4BAEf,CAQQC,aAEN,MAAMC,EAAkB/uC,KAAK+tC,UAAUiB,iBACvC,OAAwB,OAApBD,GACF/lC,QAAQC,IAAI,wBACL,MAGL8lC,EAAgB1oC,OAAS,GAE3B2C,QAAQC,IAAI,gEACL8lC,EAAgB,IACa,IAA3BA,EAAgB1oC,OAClB0oC,EAAgB,GAGlB,IACT,CAOAE,iBACEjvC,KAAK+tC,UACFmB,wBACArtC,MAAMstC,IACLnvC,KAAKovC,eAAeD,EAAK,IAE1B/lC,MAAMJ,QAAQ8H,MACnB,CAMAs+B,eAAettC,GAEX9B,KAAKkrC,QADU,OAAbppC,EACaA,EAASopC,QAETlrC,KAAK8uC,aAElB9uC,KAAKkrC,SACPF,EAAAA,mBAA6BhrC,KAAKkrC,QAEtC,CAMAmE,mBACErvC,KAAK+tC,UACFuB,UAAUtvC,KAAK4uC,oBACf/sC,MAAK,KACJ7B,KAAKkrC,QAAUlrC,KAAK8uC,aAChB9uC,KAAKkrC,QACPF,EAAAA,mBAA6BhrC,KAAKkrC,SAElCliC,QAAQC,IAAI,c,IAGfG,OAAO0H,IACN9H,QAAQ8H,MAAM,iBAAmBA,GAC7BA,aAAiBy+B,EAAAA,IACnBvvC,KAAKwvC,MAAM,a,GAGnB,CAMAA,MAAMC,GACe,eAAfA,EACFzvC,KAAK+tC,UACF2B,WAAW1vC,KAAKiuC,cAChBpsC,MAAMstC,IAGL,GAFAnvC,KAAKovC,eAAeD,IAEf5oC,EAAAA,EAAAA,YAAAA,YAAoC,CACvC,MAAMc,EAAO,IACRd,EAAAA,EAAAA,YACHopC,aAAa,EACbC,eAAe,GAEjBrpC,EAAAA,EAAAA,iBAA4Bc,E,KAG/B+B,MAAMJ,QAAQ8H,OACO,kBAAf2+B,GACTzvC,KAAK+tC,UAAU8B,cAAc7vC,KAAKmuC,qBAEtC,CAKA2B,SACE,IAAI5E,EACAlrC,KAAKkrC,UACPA,EAAUlrC,KAAKkrC,SAEjB,MAAM6E,EAAmC,CACvC7E,WAGFlrC,KAAK+tC,UACFiC,YAAYD,GACZluC,MAAK,KAEJ,GAAI0E,EAAAA,EAAAA,YAAAA,YAAoC,CACtC,MAAMc,EAAO,IACRd,EAAAA,EAAAA,YACHopC,aAAa,GAEfppC,EAAAA,EAAAA,iBAA4Bc,E,KAG/B+B,MAAMJ,QAAQ8H,MACnB,CAKApQ,gCAIE,OAHIV,KAAKkrC,UACPlrC,KAAKyuC,qBAAqBvD,QAAUlrC,KAAKkrC,SAEpClrC,KAAKiwC,iBAAiBjwC,KAAKyuC,qBAAsBzuC,KAAKsuC,uBAC/D,CAKA5tC,6BAIE,OAHIV,KAAKkrC,UACPlrC,KAAKyuC,qBAAqBvD,QAAUlrC,KAAKkrC,SAEpClrC,KAAKkwC,cAAclwC,KAAKyuC,qBAAsBzuC,KAAKquC,eAC5D,CAKA3tC,6BAIE,OAHIV,KAAKkrC,UACPlrC,KAAK2uC,kBAAkBzD,QAAUlrC,KAAKkrC,SAEjClrC,KAAKiwC,iBAAiBjwC,KAAK2uC,kBAAmB3uC,KAAKwuC,oBAC5D,CAKA9tC,0BAIE,OAHIV,KAAKkrC,UACPlrC,KAAK2uC,kBAAkBzD,QAAUlrC,KAAKkrC,SAEjClrC,KAAKkwC,cAAclwC,KAAK2uC,kBAAmB3uC,KAAKuuC,YACzD,CAKQ7tC,oBACNyvC,EACAC,GAEA,IACE,MAAMtuC,QAAuC9B,KAAK+tC,UAAUsC,mBAC1DF,GAGF,OADAnwC,KAAKovC,eAAettC,GACbA,EAASwuC,W,CAChB,MAAOrlC,GAEP,GADAjC,QAAQC,IAAI,mCACRgC,aAAaskC,EAAAA,IAAgCtkC,aAAaslC,EAAAA,EAAkB,CAC9EvnC,QAAQC,IAAI,kCACZ,MAAMkmC,QAA0CnvC,KAAK+tC,UAClDyC,kBAAkBJ,GAClBhnC,OAAOoL,IACNxL,QAAQ8H,MAAM,yCACd9H,QAAQ8H,MAAM,CAAE0D,QACT,QAEX,IAAK26B,EACH,OAAO,KAGT,GADAnvC,KAAKovC,eAAeD,IACf5oC,EAAAA,EAAAA,YAAAA,aAAsCvG,KAAKkrC,QAAS,CAEvD,MAAM7jC,EAAO,IACRd,EAAAA,EAAAA,YACHopC,aAAa,GAEfppC,EAAAA,EAAAA,iBAA4Bc,E,CAE9B,OAAO8nC,EAAKmB,W,CAEZtnC,QAAQ8H,MAAM,CAAE7F,K,CAIpB,OAAO,IACT,CAKQvK,uBACNyvC,EACAC,GAEA,IACE,MAAMtuC,QAAiB9B,KAAK+tC,UAAUsC,mBAAmBF,GACzD,OAAOruC,EAASwuC,W,CAChB,MAAOrlC,GACPjC,QAAQC,IAAI,mCACRgC,aAAaskC,EAAAA,IACfvmC,QAAQC,IAAI,kCACZjJ,KAAK+tC,UAAU0C,qBAAqBL,GAAoBhnC,MAAMJ,QAAQ8H,QAEtE9H,QAAQ8H,MAAM7F,E,CAIlB,OAAO,IACT,E,eChXI,MAAOylC,EAMXhwC,4BACEirC,EACA2E,GAEA,MAAM7kC,EAAU,IAAIklC,QACdC,EAAS,UAAUN,IAEzB7kC,EAAQolC,OAAO,gBAAiBD,GAEhC,MAAM7J,EAAU,CACd+J,OAAQ,MACRrlC,QAASA,GAGXzC,QAAQC,IAAI,qBAAsB,IAAImE,MAAO+X,YAE7C,MAAMrjB,QAAiBivC,MAAMpF,EAAU5E,GACvC,aAAcjlC,EAASkvC,MACzB,CAEAtwC,2BACEirC,EACA2E,GAEA,GAAIA,EAAa,CACftnC,QAAQC,IAAI,qBAAsB,IAAImE,MAAO+X,YAC7C,IACE,aAAa1kB,EAAAA,WAAAA,UAAAA,MAAAA,KAAyB,6BAA8B,CAClEwwC,cAAeX,G,CAEjB,MAAOrlC,GACPjC,QAAQC,IAAIgC,E,EAGlB,ECrCF,MAAMimC,EAAK7sB,OAAOimB,UAAU6G,UACtBC,EAAOF,EAAG/mC,QAAQ,SAClBknC,EAASH,EAAG/mC,QAAQ,YACpBmnC,EAAOF,EAAO,GAAKC,EAAS,EAE5BE,EAAyB,IAAIzD,EAC7B0D,EAA8B,IAAId,EAWlC,SAAUe,EAAOX,GACrB,MAAMrB,EAAa6B,EAAO,gBAAkBR,EAC5CS,EAAW/B,MAAMC,EACnB,CAKM,SAAUiC,IACdH,EAAWzB,QACb,CAgCOpvC,eAAeixC,IACpB,MAAM5I,QAAc10B,IACpB,GAAI00B,GAASA,EAAM1iC,OAAS,EAAG,CAC7B,MAAMvE,QAA4C0vC,EAC/CI,qBAAqB/G,EAAAA,iBAA+B9B,GACpD3/B,OAAO0H,IACN9H,QAAQ8H,MAAM,CAAEA,SACA,IAGpB,OAAOhP,C,CAEX,CAEOpB,eAAe2T,IACpB,GAAI9N,EAAAA,EAAAA,YAAAA,YAAoC,CACtC,MAAMwiC,EAAQuI,QACJC,EAAWM,gCACXN,EAAWO,uBACrB,OAAO/I,C,CAEP,MAAO,EAEX,CAzEA1kB,OAAOoI,iBAAiB,QAAQ/rB,UAC9B6wC,EAAWtC,gBAAgB,G,qCCMvB,SAAUz5B,EAAO5M,GACrB,YAAgB0T,IAAT1T,IAAgC,KAATA,GAAwB,SAATA,IAA4B,IAATA,EAClE,C,4OCzBA,MAAM6+B,EAAO,GAAGK,EAAAA,EAAAA,EAAO,cAEjBiK,EAA6C,CACjDrgB,KAAM,UACNjd,MAAO,QACPmd,IAAK,UACLogB,QAAS,SAELC,EAA6C,CACjDjO,KAAM,UACND,OAAQ,WAEJmO,EAAsB,CAC1BC,sBAAuB,EACvBC,sBAAuB,GAGZl8B,EAAgB,IAAIm8B,KAAKC,eAAe7K,EAAMsK,GAC9C/4B,EAAgB,IAAIq5B,KAAKC,eAAe7K,EAAMwK,GAC9CjiC,EAAyB,IAAIqiC,KAAKE,aAAa9K,EAAMyK,GAErD3kC,EAAkB,SAAU0D,GACvC,OAAOA,EAAK+P,cAAcwxB,UAAU,EAAG,GACzC,EAUa/kC,EAAiB,SAC5BsC,EACAihB,GAAiB,EACjByhB,GAAuB,GAEvB,MAAM5wB,EAAK9R,EAAU,EAAIxB,KAAKC,KAAKuB,GAAWxB,KAAK4jB,MAAMpiB,GAEzD,IAAI2iC,EAAe,IAGfA,EAFA7wB,GAAM,IAAMA,EAAK,GACf9R,EAAU,EACG,KAAO8R,EAAGsD,WAAWqtB,UAAU,GAE/B,IAAM3wB,EAAGsD,WAGXtD,EAAGsD,WAIpB,IAAIwtB,GAAM5iC,EAAU8R,GAAM,EAE1B8wB,GAAU,GAENA,EAAK,IACPA,IAAO,GAGTA,EAAK3hB,EAAQziB,KAAKyiB,MAAM2hB,GAAMpkC,KAAK4jB,MAAMwgB,GAEzC,IAAIC,EAAiBD,EAAGxtB,WACpBwtB,EAAK,KACPC,EAAiB,IAAMA,GAGzB,IAAIC,EAAiB,GAMrB,OALIJ,IAEFI,EAAiB,OAGZH,EAAe,IAAME,EAAiBC,CAC/C,EAGarjC,EAAgB,SAAUsjC,EAAWC,EAAiB,GACjE,MAAMC,EAAMzkC,KAAKykC,IAAI,GAAID,GACzB,OAAOxkC,KAAKyiB,MAAM8hB,EAAIE,GAAOA,CAC/B,C,oFCjFAtyC,eAAeuyC,IAEb,aADMxyC,EAAAA,WAAAA,UAAAA,UAAAA,YAAoC,IACnCA,EAAAA,WAAAA,UAAAA,UAAAA,KACT,CAEA,SAASqvC,IACP,IACErvC,EAAAA,WAAAA,UAAAA,UAAAA,Q,CACA,MAAOwK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAEA,SAASioC,IACPzyC,EAAAA,WAAAA,UAAAA,MAAAA,UAA2B,qBACxBoB,MAAK,KACJiuC,GAAQ,IAET1mC,OAAO6B,GAAMjC,QAAQ8H,MAAM,CAAC7F,OACjC,CAEO,MAAM+9B,EAAc,CACzBkK,gBACApD,SACAmD,c,qICtBI,SAAU1hC,EAASoX,EAAY,GACnC,MAAM1X,EAAO,IAAI7D,KACjB,IAAI6I,EAAa,GAQjB,OANI0S,EAAY,GACd1X,EAAKkiC,QAAQxqB,GAGf1S,EAAaxV,EAAAA,WAAAA,UAAAA,QAAsBwQ,GAAMwL,OAAO,QAEzCxG,CACT,CAEM,SAAU9F,IAGd,MAAM+P,EAAM9S,KAAK8S,MAEXhQ,EAAUgQ,EAAIiF,WAAa,IAAM5W,KAAK6kC,SAASjuB,SAAS,IAAItV,OAAO,EAAG,GAE5E,MAAO,CACLK,UACAgQ,MAEJ,CAKM,SAAUogB,EAAiBpzB,GAC/B,IAAKA,EACH,OAEF,MAAMgT,EAAM9S,KAAK8S,MAEbA,EAAMhT,EAAMjB,OAAS,MACvBiB,EAAMN,IAAMsT,EAEhB,C,sJCrCA,IAAMmzB,EAAN,cAAiBC,EAAAA,GAAjBjuC,c,oBAEE,KAAA5C,OAAS,CACP6c,QAAQ,EACRle,KAAM,GACNE,KAAM,WAER,KAAAiyC,mBAA8Cj3B,EAC9C,KAAAgO,0BAAgEhO,EAEhE,KAAA0C,SAAW,CACTM,QAAQ,EACRle,KAAM,GACNE,KAAM,WAGR,KAAA2d,YAAc,CACZK,QAAQ,EACRuY,OAAQ,SACRl3B,KAAM,WACNI,QAAS,eACTyM,KAAM,YACNlM,KAAM,UACNw2B,YAAa,gBAEf,KAAA0b,MAA0B,GAC1B,KAAAC,iBAAwC,GACxC,KAAA9rB,oBAAgD,GAEhD,KAAA+rB,UAAY,CA8Id,CA3ISC,gBAAgBnlB,GACrBxuB,KAAKyC,OAAOrB,KAAOotB,EAAQptB,KAC3BpB,KAAKyC,OAAOnB,KAAOktB,EAAQltB,MAAQ,UACnCtB,KAAKyC,OAAO6c,QAAS,EAErBtf,KAAKsqB,0BAAuBhO,EAE5Btc,KAAKuzC,cAAgB,IAAI78B,SAASk9B,IAChC5zC,KAAKsqB,qBAAuBspB,CAAO,GAEvC,CAGOhyC,WAAWf,GAChB,MAAM,KAAEO,EAAI,KAAEE,GAAST,EAMvB,OALAb,KAAK6zC,QAAQC,OAAO,kBAAmB,CACrC1yC,OACAE,SAGKtB,KAAKuzC,aACd,CAGOQ,kBAAkBvlB,GACnBxuB,KAAKgf,SAASM,OAChBtf,KAAKwzC,MAAMQ,QAAQxlB,IAGrBxuB,KAAKgf,SAAS5d,KAAOotB,EAAQptB,KAC7BpB,KAAKgf,SAAS1d,KAAOktB,EAAQltB,MAAQ,UACrCtB,KAAKgf,SAASM,QAAS,EACzB,CAGOne,aAAaN,GAClB,MAAM,KAAEO,EAAI,KAAEE,GAAST,EACvBb,KAAK6zC,QAAQC,OAAO,oBAAqB,CACvC1yC,OACAE,QAEJ,CAGA2yC,iBAAiBzlB,GACfxuB,KAAK2nB,oBAAsB,IAAI6G,EACjC,CAEA9tB,2BACE,IACE,MAAMi8B,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IAAwB,0BAC7C,OAAOk8B,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGAipC,uBAAuB/rB,GACrBnoB,KAAK2nB,oBAAsB3nB,KAAK2nB,oBAAoBvgB,QAAQ0rC,GAAMA,EAAE3qB,OAASA,GAC/E,CAGAznB,uBAAuBynB,GACrB,IAEE,aADM1nB,EAAAA,WAAAA,UAAAA,MAAAA,KAAyB,+BAAiC0nB,EAAO,IAAK,CAAC,GACtEA,C,CACP,MAAOld,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGOkpC,mBAAmB3lB,GACpBxuB,KAAKif,YAAYK,OACnBtf,KAAKyzC,iBAAiBO,QAAQxlB,IAGhCxuB,KAAKif,YAAY4Y,OAASrJ,EAAQqJ,OAClC73B,KAAKif,YAAYte,KAAO6tB,EAAQ7tB,KAChCX,KAAKif,YAAYle,QAAUytB,EAAQztB,QACnCf,KAAKif,YAAYzR,KAAOghB,EAAQhhB,KAChCxN,KAAKif,YAAY3d,KAAOktB,EAAQltB,KAChCtB,KAAKif,YAAY6Y,YAActJ,EAAQsJ,YACzC,CAEOF,gBAAgB/2B,GACrB,MAAM,OAAEg3B,EAAM,KAAEl3B,EAAI,QAAEI,EAAO,KAAEyM,EAAI,KAAElM,EAAI,YAAEw2B,GAAgBj3B,EAC3Db,KAAK6zC,QAAQC,OAAO,qBAAsB,CACxCjc,SACAl3B,OACAI,UACAyM,OACAlM,OACAw2B,eAEJ,CAEOL,iBACL,OAAOz3B,KAAKwzC,MAAM3gB,KACpB,CAEO8E,4BACL,OAAO33B,KAAKyzC,iBAAiB5gB,KAC/B,CAGOuhB,mBACLp0C,KAAK0zC,UAAY,CACnB,CAGOW,gBACLr0C,KAAK6zC,QAAQC,OAAO,mBACtB,CAGOQ,uBACDt0C,KAAK0zC,UAAY,EACnB1zC,KAAK0zC,YAEL1zC,KAAK0zC,UAAY,CAErB,CAGOa,eACLv0C,KAAK6zC,QAAQC,OAAO,uBACtB,CAGOU,uBACLx0C,KAAK0zC,WACP,CAGOe,kBACLz0C,KAAK6zC,QAAQC,OAAO,uBACtB,IA1IA9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,qCAcTtrB,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,gCAYPF,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,uCAYTtrB,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,kCAUPF,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,sCAKTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,sBAAqB,wCAWvC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,4CAMTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,4BAA2B,sCAW7C9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,wCAcTtrB,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,qCAaPF,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,oCAKPF,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,+CAMPF,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,sCAMTtrB,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,mCAMPF,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,0CAUTtrB,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,kCAMPF,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,0CAMTtrB,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,oCAvKHmxC,GAAErxC,EAAAA,EAAAA,IAAA,EADP0yC,EAAAA,EAAAA,IAAO,CAAEC,YAAY,KAChBtB,GA4KN,QC7KA,IAAMnnB,EAAN,cAA4BonB,EAAAA,GAA5BjuC,c,oBACE,KAAAuvC,UAAW,EACX,KAAAxpB,uBAAwB,EACxB,KAAAE,uBAAwB,EACxB,KAAAiB,kBAAmB,EACnB,KAAAH,gBAAiB,EACjB,KAAA8C,gBAAiB,CAwEnB,CArEEgG,YACEl1B,KAAK40C,UAAY50C,KAAK40C,QACxB,CAGA5f,YAAYjtB,GACV/H,KAAK40C,SAAW7sC,CAClB,CAEAqpB,aAAarpB,GACX/H,KAAKkvB,eAAiBnnB,CACxB,CAGAykB,cAAczkB,GACZ,OAAQA,GACN,IAAK,mBACH/H,KAAKusB,kBAAmB,EACxB,MACF,IAAK,wBACHvsB,KAAKsrB,uBAAwB,EAC7B,MACF,IAAK,wBACHtrB,KAAKorB,uBAAwB,EAC7B,MACF,IAAK,iBACHprB,KAAKosB,gBAAiB,EACtB,MAEN,CAGAW,cAAchlB,GACZ,OAAQA,GACN,IAAK,wBACH/H,KAAKsrB,uBAAyBtrB,KAAKsrB,sBACnC,MACF,IAAK,iBACHtrB,KAAKosB,gBAAkBpsB,KAAKosB,eAC5B,MACF,IAAK,wBACHpsB,KAAKorB,uBAAyBprB,KAAKorB,sBACnC,MAEN,CAGAsB,oBACE1sB,KAAKusB,kBAAmB,CAC1B,CAGA7rB,uBAAuBm0C,GACrB,IACE,MAAMtgC,QAAY9T,EAAAA,WAAAA,UAAAA,MAAAA,KACV,YAAa,CAAEmtB,QAASinB,IAC7BzrC,OAAO0H,IACN9H,QAAQ8H,MAAM,CAAEA,SAAQ,IAE5B,IAAKyD,EACH,OAEF,MAAM1T,EAAO2oC,KAAKC,MAAMl1B,EAAI1T,MAE5B,OAAOA,C,CACP,MAAOiQ,GACP9H,QAAQC,IAAI6H,E,CAEhB,IApEA9O,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,+BAMTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,iCAKTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,kCAMTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,mCAmBTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,mCAgBTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,uCAMTtrB,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,qCA5DHgqB,GAAalqB,EAAAA,EAAAA,IAAA,EADlB0yC,EAAAA,EAAAA,IAAO,CAAEC,YAAY,KAChBzoB,GAgFN,QC7EAzrB,EAAAA,WAAAA,IAAQq0C,EAAAA,IAER,UAAmBA,EAAAA,GAAAA,MAAW,CAC5BC,QAAS,CAAEC,WAAU,IAAEC,aAAY,IAAE5B,GAAE,EAAEnnB,cAAaA,I,yICExD,IAAMgpB,EAAN,cAAsB5B,EAAAA,GAAtBjuC,c,oBAEE,KAAA8vC,UAAY,CACV,CAAE/zC,KAAM,GAAG0mC,EAAAA,EAAAA,EAAO,6CAA8C3kC,MAAO,GACvE,CAAE/B,KAAM,GAAG0mC,EAAAA,EAAAA,EAAO,6CAA8C3kC,MAAO,GACvE,CAAE/B,KAAM,GAAG0mC,EAAAA,EAAAA,EAAO,4CAA6C3kC,MAAO,IACtE,CAAE/B,KAAM,GAAG0mC,EAAAA,EAAAA,EAAO,2CAA4C3kC,MAAO,MAEvE,KAAAiyC,gBAAyB,GACzB,KAAAC,cAAyB,CACvBp0C,GAAI,EACJF,QAAS,CACPE,GAAI,EACJwE,KAAM,GACNG,SAAU,GACV5B,WAAY,EACZe,WAAW,EACX9B,YAAY,EACZkC,YAAa,GACbQ,OAAQ,EACRI,MAAO,GACPC,MAAO,GACPC,QAAS,GACTC,oBAAqB,MAEvBA,oBAAqB,GACrB4D,OAAQ,EACRwrC,gBAAiB,EACjB7iC,MAAO,GACP8iC,UAAW,GAEb,KAAAC,aAA8B,CAC5Bv0C,GAAI,EACJ6I,OAAQ,EACRrE,KAAM,GACNgN,MAAO,GACP8iC,UAAW,GAEb,KAAAtuC,aAA8B,CAC5BlG,QAAS,CACPE,GAAI,EACJwE,KAAM,GACNG,SAAU,GACV5B,WAAY,EACZe,WAAW,EACX9B,YAAY,EACZkC,YAAa,GACbQ,OAAQ,EACRI,MAAO,GACPC,MAAO,GACPC,QAAS,GACTC,oBAAqB,MAEvBjF,GAAI,EACJuI,WAAY,EACZM,OAAQ,EACRrE,KAAM,GACNgN,MAAO,GACP8iC,UAAW,GAIb,KAAAE,kBAAoC,GAiHpC,KAAAC,iBAAyC,GAyGzC,KAAAC,iBAAyC,EAqG3C,CA7TMC,cACF,OAAO51C,KAAK6zC,QAAQgC,YAAY,mBAClC,CAEIC,mBACF,OAAO91C,KAAKm1C,SACd,CAEIY,uBACF,OAAO/1C,KAAKq1C,aACd,CAEIW,2BACF,OAAOh2C,KAAKy1C,iBACd,CAGAQ,kBAAkBx8B,GACZA,IAAUzZ,KAAKy1C,kBAAoBh8B,EACzC,CAGA/Y,4BACE,GAAKV,KAAK41C,QAGV,IACE,MAAMjZ,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IAAwB,4BAEvCI,EAAO87B,EAAO97B,KAAK0xB,KAAK2jB,IAC5B,MAAMpsC,EAASgD,OAAOC,WAAWmpC,EAAOpsC,QACxC,MAAO,IACFosC,EACHpsC,SACD,IAEH,OAAOjJ,C,CACP,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAEAkrC,oBAAoBd,GACdA,GAAer1C,KAAKy1C,kBAAkB9tC,KAAK0tC,EACjD,CAEA30C,gCAAgC20C,GAC9B,GAAKr1C,KAAK41C,QAGV,IACE,MAAMjZ,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,KACnB,2BACA40C,GAEF,OAAO1Y,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAEAmrC,oBAAoBr1C,GAClB,MAAMs1C,EAAar2C,KAAKy1C,kBAAkBpnC,WAAW9E,GAAMA,EAAEtI,KAAOF,EAAQE,MACxD,IAAhBo1C,GAIJ51C,EAAAA,WAAAA,IAAQT,KAAKy1C,kBAAmBY,EAAYt1C,EAC9C,CAEAL,gCAAgC41C,GAE9B,GAAKt2C,KAAK41C,QAGV,IACE,MAAMjZ,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,MACnB,2BAA2B61C,EAAcr1C,MACzCq1C,GAEF,OAAO3Z,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGAsrC,oBAAoBt1C,GAElB,MAAMo1C,EAAar2C,KAAKy1C,kBAAkBpnC,WAAW9E,GAAMA,EAAEtI,KAAOA,KAChD,IAAhBo1C,GAIJr2C,KAAKy1C,kBAAkBe,OAAOH,EAAY,EAC5C,CAEA31C,gCAAgCO,GAC9B,GAAKjB,KAAK41C,QAGV,IAGE,aAFMn1C,EAAAA,WAAAA,UAAAA,MAAAA,UAA2B,2BAA2BQ,MAErDA,C,CACP,MAAOgK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAKIwrC,sBACF,OAAOz2C,KAAKw1C,YACd,CACIkB,0BACF,OAAO12C,KAAK01C,gBACd,CAEAiB,gBAAgBnB,GACVA,IAAcx1C,KAAK01C,iBAAmBF,EAC5C,CAGA90C,0BACE,GAAKV,KAAK41C,QAGV,IACE,MAAMjZ,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IAAwB,0BAEvCI,EAAO87B,EAAO97B,KAAK0xB,KAAKijB,IAC5B,MAAM1rC,EAASgD,OAAOC,WAAWyoC,EAAa1rC,QAC9C,MAAO,IACF0rC,EACH1rC,SACD,IAEH,OAAOjJ,C,CACP,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAEA2rC,mBAAmBpB,GACbA,GAAcx1C,KAAK01C,iBAAiB/tC,KAAK6tC,EAC/C,CAEA90C,+BAA+B80C,GAC7B,GAAKx1C,KAAK41C,QAGV,IACE,MAAMjZ,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,KACnB,yBACA+0C,GAEF,OAAO7Y,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGA4rC,mBAAmBC,GAEjB,MAAMT,EAAar2C,KAAK01C,iBAAiBrnC,WAAW0oC,GAAMA,EAAE91C,KAAO61C,EAAM71C,MACrD,IAAhBo1C,GAIJ51C,EAAAA,WAAAA,IAAQT,KAAK01C,iBAAkBW,EAAYS,EAC7C,CAEAp2C,+BAA+Bs2C,GAC7B,GAAKh3C,KAAK41C,QAGV,IACE,MAAMjZ,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,MACnB,yBAAyBu2C,EAAmB/1C,MAC5C+1C,GAEF,OAAOra,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGAgsC,mBAAmBh2C,GAEjB,MAAMo1C,EAAar2C,KAAK01C,iBAAiBrnC,WAAW9E,GAAMA,EAAEtI,KAAOA,KAC/C,IAAhBo1C,GAIJr2C,KAAK01C,iBAAiBc,OAAOH,EAAY,EAC3C,CAEA31C,+BAA+BO,GAC7B,GAAKjB,KAAK41C,QAGV,IAGE,aAFMn1C,EAAAA,WAAAA,UAAAA,MAAAA,UAA2B,yBAAyBQ,MAEnDA,C,CACP,MAAOgK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAMIisC,sBACF,OAAOl3C,KAAKiH,YACd,CACIkwC,0BACF,OAAOn3C,KAAK21C,gBACd,CAEAyB,gBAAgBnwC,GACVA,IAAcjH,KAAK21C,iBAAmB1uC,EAC5C,CAGAvG,0BACE,GAAKV,KAAK41C,QAGV,IACE,MAAMjZ,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IAAwB,0BAEvCI,EAAO87B,EAAO97B,KAAK0xB,KAAKtrB,IAC5B,MAAM6C,EAASgD,OAAOC,WAAW9F,EAAa6C,QAC9C,MAAO,IACF7C,EACH6C,SACD,IAEH,OAAOjJ,C,CACP,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAEAosC,mBAAmBpwC,GACbA,GAAcjH,KAAK21C,iBAAiBhuC,KAAKV,EAC/C,CAEAvG,+BAA+BuG,GAC7B,GAAKjH,KAAK41C,QAGV,IACE,MAAMjZ,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,KACnB,yBACAwG,GAEF,OAAO01B,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAEAqsC,mBAAmBR,GAEjB,MAAMT,EAAar2C,KAAK21C,iBAAiBtnC,WAAW9E,GAAMA,EAAEtI,KAAO61C,EAAM71C,MACrD,IAAhBo1C,GAIJ51C,EAAAA,WAAAA,IAAQT,KAAK21C,iBAAkBU,EAAYS,EAC7C,CAEAp2C,+BAA+B62C,GAC7B,GAAKv3C,KAAK41C,QAGV,IACE,MAAMjZ,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,MACnB,yBAAyB82C,EAAmBt2C,MAC5Cs2C,GAEF,OAAO5a,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGAusC,mBAAmBv2C,GAEjB,MAAMo1C,EAAar2C,KAAK21C,iBAAiBtnC,WAAW9E,GAAMA,EAAEtI,KAAOA,KAC/C,IAAhBo1C,GAIJr2C,KAAK21C,iBAAiBa,OAAOH,EAAY,EAC3C,CAEA31C,+BAA+BO,GAC7B,GAAKjB,KAAK41C,QAGV,IAGE,aAFMn1C,EAAAA,WAAAA,UAAAA,MAAAA,UAA2B,yBAAyBQ,MAEnDA,C,CACP,MAAOgK,GACPjC,QAAQC,IAAIgC,E,CAEhB,IA3SAjJ,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,uCAMTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,uBAAsB,yCAqBxC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,yCAKTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,yBAAwB,+CAgB1C9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,yCAUTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,yBAAwB,+CAkB1C9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,yCAWTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,yBAAwB,+CAwB1C9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,qCAMTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,qBAAoB,uCAqBtC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,wCAKTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,wBAAuB,8CAiBzC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,wCAWTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,wBAAuB,8CAiBzC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,wCAWTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,wBAAuB,8CAyBzC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,qCAMTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,qBAAoB,uCAqBtC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,wCAKTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,wBAAuB,8CAgBzC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,wCAWTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,wBAAuB,8CAiBzC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,wCAWTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,wBAAuB,6CAhXrCoB,GAAOlzC,EAAAA,EAAAA,IAAA,EANZ0yC,EAAAA,EAAAA,IAAO,CACNjvC,KAAM,UACNs8B,MAAOA,EAAAA,EACP0V,SAAS,EACT9C,YAAY,KAERO,GA8XC,MAAMluC,GAAgB0wC,EAAAA,EAAAA,IAAUxC,E,2IC3XvC,IAAMyC,EAAN,cAAuBrE,EAAAA,GAAvBjuC,c,oBACE,KAAAuyC,qBAA8C,CAC5CC,eAAgB,GAChBC,YAAa,GACbC,YAAa,GACbC,kBAAmB,GACnBC,eAAgB,GAChBC,eAAgB,IAElB,KAAAnyC,MAAmB,CAAC,CAwDtB,CAtDMoyC,8BACF,OAAOn4C,KAAK43C,oBACd,CAEAQ,yBAAyBzxC,GACvB3G,KAAK43C,qBAAuBjxC,CAC9B,CAGAjG,4BACE,IACE,MAAMi8B,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IAAwB,2BAC7C,OAAOk8B,EAAO97B,I,CACd,MAAO2T,GACPxL,QAAQ8H,MAAM0D,E,CAElB,CAEI6xB,4BACF,OAAOrmC,KAAK+F,KACd,CAEAsyC,gBAAgB1xC,GACd3G,KAAK+F,MAAQY,CACf,CAGAjG,mCACE,IACE,MAAMi8B,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IAAwB,qCAC7C,OAAOk8B,EAAO97B,I,CACd,MAAO2T,GACPxL,QAAQ8H,MAAM0D,E,CAElB,CAGA9T,uBAEE,MAAMoB,QAA4C6vC,EAAAA,EAAAA,MAC7C7vC,EAQmB,MAApBA,EAASuO,SAEXrQ,KAAK6zC,QAAQyE,SAAS,0BAA0B,EAAM,CAAEC,MAAM,IAC9Dv4C,KAAK6zC,QAAQyE,SAAS,iCAAkC,KAAM,CAAEC,MAAM,KAVtEv4C,KAAK6zC,QAAQyE,SACX,kBACA,CAAEl3C,KAAM0mC,EAAAA,EAAAA,EAAO,0CAA2CxmC,KAAM,SAChE,CAAEi3C,MAAM,GASd,IAjDAv2C,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,8CAMTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,8BAA6B,yCAc/C9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,qCAMTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,qBAAoB,gDAWtC9xC,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,mCA/CHy1C,GAAQ31C,EAAAA,EAAAA,IAAA,EANb0yC,EAAAA,EAAAA,IAAO,CACNjvC,KAAM,WACNs8B,MAAOA,EAAAA,EACP0V,SAAS,EACT9C,YAAY,KAERgD,GAmEC,MAAM1f,GAAiByf,EAAAA,EAAAA,IAAUC,E,oJCrExC,IAAMa,EAAN,cAAuBlF,EAAAA,GAAvBjuC,c,oBAEE,KAAAozC,uBAAwB,EACxB,KAAAC,oBAAqB,EACrB,KAAAC,mBAAoB,EACpB,KAAAC,wBAAyB,EACzB,KAAAC,qBAAsB,EACtB,KAAAC,oBAAqB,EAErB,KAAAC,aAA6B,CAAC,EAC9B,KAAA5Z,SAAsB,CAAC,EACvB,KAAA6Z,QAAoB,CAAC,EAMrB,KAAAC,YAAc,CACZ,CACEjmC,KAAMpP,EAAQ,OACdxC,KAAM0mC,EAAAA,EAAAA,EAAO,oDAEf,CACE90B,KAAMpP,EAAQ,OACdxC,KAAM0mC,EAAAA,EAAAA,EAAO,iDAEf,CACE90B,KAAMpP,EAAQ,OACdxC,KAAM0mC,EAAAA,EAAAA,EAAO,mDAEf,CACE90B,KAAMpP,EAAQ,OACdxC,KAAM0mC,EAAAA,EAAAA,EAAO,iDAucnB,CAncMoR,yBACF,OAAQl5C,KAAKy4C,wBAA0Bz4C,KAAK44C,sBAC9C,CAEIO,sBACF,OAAQn5C,KAAK04C,qBAAuB14C,KAAK64C,mBAC3C,CAEIO,qBACF,OAAQp5C,KAAK24C,oBAAsB34C,KAAK84C,kBAC1C,CAKIv8B,kBACF,MAAMxB,EAAS/a,KAAK6zC,QAAQgC,YAAY,kBACxC,OAAOnvC,OAAO2yC,YACZ3yC,OAAO4rB,QAAQtyB,KAAK+4C,cAAc3xC,QAAO,EAAEkyC,EAAGv4C,KAC5CA,EAAQiF,MAAMsB,SAASyT,KAG7B,CAKIw+B,qBACF,OAAOv5C,KAAK+4C,YACd,CAKIS,0BACF,MAAMC,EAAiB/yC,OAAOC,OAAO3G,KAAKuc,aAAa5H,MACpDpL,GAAMA,EAAEtG,aAEX,OAAOw2C,GAAgBx4C,IAAM,CAC/B,CAEIoZ,eACF,MAAMU,EAAS/a,KAAK6zC,QAAQgC,YAAY,kBAElC6D,EAAgBhzC,OAAO4rB,QAAQtyB,KAAKm/B,UAAU/3B,QAAO,EAAEvD,EAAKlD,MAE5DA,EAAKg5C,aAAeh5C,EAAK0G,OAAS0T,GAAWpa,EAAKyR,iBAAmB2I,IAG3E,OAAOrU,OAAO2yC,YAAYK,EAC5B,CAEIxmC,iBACF,OAAOlT,KAAKg5C,OACd,CAEI99B,qBACF,OAAQ/X,GACCnD,KAAKi5C,YAAY91C,IAAU,CAAC,CAEvC,CAEIy2C,0BACF,OAAQ34C,IACN,MAAM8E,EAAQ,CAAC,EACT8zC,EAAU75C,KAAK+4C,aAAa93C,IAAK8E,MACvC,IAAK8zC,EACH,OAAO9zC,EAET,IAAK,MAAM/E,KAAU64C,EAAS,CAC5B,MAAMl5C,EAAOX,KAAKm/B,SAASn+B,GACtBL,IAILoF,EAAM/E,GAAUL,E,CAElB,OAAOoF,CAAK,CAEhB,CAGA+zC,0BAA0B32C,GACxBnD,KAAK44C,uBAAyBz1C,CAChC,CAGA42C,uBAAuB52C,GACrBnD,KAAK64C,oBAAsB11C,CAC7B,CAGA62C,sBAAsB72C,GACpBnD,KAAK84C,mBAAqB31C,CAC5B,CAGA82C,YAAYxgC,GACNA,IACFzZ,KAAK+4C,aAAet/B,EACpBzZ,KAAKy4C,uBAAwB,EAC7Bz4C,KAAK44C,wBAAyB,EAElC,CAGAl4C,oBAAoBw5C,GAAQ,GAC1B,GAAKl6C,KAAKk5C,oBAAuBgB,EAAjC,CAGAl6C,KAAK85C,2BAA0B,GAC/B,IACE,MAAMnd,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IAAwB,iBAC7C,OAAOk8B,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,EAEhB,CAGAi7B,WAAWn9B,GAELA,GAAYtI,EAAAA,WAAAA,IAAQT,KAAK+4C,aAAchwC,EAAW9H,GAAI8H,EAC5D,CAEArI,uBAAuBqI,GAEjBA,EAAWnD,WACbmD,EAAWnD,SAAW,IAAIwH,KAAKrE,EAAWnD,UAAUob,eACtD,IACE,MAAM2b,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,KAAyB,gBAAiBsI,GAC/D,OAAO4zB,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQ8H,MAAM,CAAEA,MAAO7F,IACK,MAAxBA,GAAGnJ,UAAUuO,OAEfrQ,KAAK6zC,QAAQyE,SACX,kBACA,CACEl3C,KAAM,GAAG0mC,EAAAA,EAAAA,EAAO,0CAChBxmC,KAAM,SAER,CAAEi3C,MAAM,IAIVv4C,KAAK6zC,QAAQyE,SACX,kBACA,CACEl3C,KAAM,GAAG0mC,EAAAA,EAAAA,EAAO,0CAChBxmC,KAAM,SAER,CAAEi3C,MAAM,G,CAIhB,CAGA4B,cAAcp5C,GAEZN,EAAAA,WAAAA,IAAQT,KAAK+4C,aAAch4C,EAAQE,GAAIF,EACzC,CAEAL,0BAA0B41C,GAEpBA,EAAc1wC,WAChB0wC,EAAc1wC,SAAW,IAAIwH,KAAKkpC,EAAc1wC,UAAUob,eAC5D,IACE,MAAM2b,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IACnB,gBAAgB61C,EAAcr1C,MAC9Bq1C,GAEF,OAAO3Z,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQ8H,MAAM,CAAEA,MAAO7F,IACK,MAAxBA,GAAGnJ,UAAUuO,OAEfrQ,KAAK6zC,QAAQyE,SACX,kBACA,CACEl3C,KAAM,GAAG0mC,EAAAA,EAAAA,EAAO,0CAChBxmC,KAAM,SAER,CAAEi3C,MAAM,IAIVv4C,KAAK6zC,QAAQyE,SACX,kBACA,CACEl3C,KAAM,GAAG0mC,EAAAA,EAAAA,EAAO,0CAChBxmC,KAAM,SAER,CAAEi3C,MAAM,G,CAIhB,CAGAzzC,cAAc7D,GAGZR,EAAAA,WAAAA,UAAWT,KAAK+4C,aAAc93C,GAE9B,IAAK,MAAMN,KAAQ+F,OAAOC,OAAO3G,KAAKm/B,UAChCx+B,EAAKI,UAAYE,UACZjB,KAAKm/B,SAASx+B,EAAKM,IAG9BjB,KAAKm/B,SAAW,IAAKn/B,KAAKm/B,SAC5B,CAEAz+B,0BAA0BO,GACxB,IAGE,aAFMR,EAAAA,WAAAA,UAAAA,MAAAA,UAA2B,gBAAgBQ,MAE1CA,C,CACP,MAAOgK,GACPjC,QAAQ8H,MAAM,CAAEA,MAAO7F,IACvBjL,KAAK6zC,QAAQyE,SACX,kBACA,CACEl3C,KAAM,GAAG0mC,EAAAA,EAAAA,EAAO,iDAChBxmC,KAAM,SAER,CAAEi3C,MAAM,G,CAGd,CAOA6B,QAAQz5C,GACFA,IACFX,KAAKm/B,SAASx+B,EAAKM,IAAMN,EAE7B,CAGA05C,SAASt0C,GAEHA,IACF/F,KAAKm/B,SAAWp5B,EAChB/F,KAAK04C,oBAAqB,EAC1B14C,KAAK64C,qBAAsB,EAE/B,CAGAn4C,oBAAoBw5C,GAAQ,GAC1B,GAAKl6C,KAAKm5C,iBAAoBe,EAA9B,CAGAl6C,KAAK+5C,wBAAuB,GAC5B,IACE,MAAMpd,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IAAwB,cAC7C,OAAOk8B,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,EAEhB,CAEAvK,oBAAoBO,GAClB,IACE,MAAM07B,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IAAwB,aAAaQ,MAC1D,OAAO07B,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGA4f,QAAQlqB,GACDA,GAASA,EAAKI,UAInBf,KAAK+4C,aAAap4C,EAAKI,SAASgF,MAAM4B,KAAKhH,EAAKM,IAChDR,EAAAA,WAAAA,IAAQT,KAAKm/B,SAAUx+B,EAAKM,GAAIN,GAClC,CAGAD,oBAAoB45C,GAClB,IACE,MAAMC,EAAO,IAAKD,EAAU35C,KAAMI,QAASu5C,EAAUx5C,WAC/C67B,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,KAAyB,aAAc85C,GAC5D,OAAO5d,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAEA2nB,WAAWjyB,GACJA,GAASA,EAAKI,SAInBN,EAAAA,WAAAA,IAAQT,KAAKm/B,SAAUx+B,EAAKM,GAAIN,EAClC,CAEAD,uBAAuB45C,GAKrB,IACE,MAAMlmC,QAAgBC,EAAAA,EAAAA,MAChBkmC,EAAO,IAAKD,EAAU35C,KAAMI,QAASu5C,EAAUx5C,WAC/C67B,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IACnB,aAAa65C,EAAU,sBAAsBlmC,IAC7CmmC,GAGIC,EAAY7d,EAAO97B,KACnB45C,EAAez6C,KAAK6zC,QAAQgC,YAAY,gCAO9C,OALI2E,EAAU7pC,cAAgB8pC,IAAiBD,EAAUv5C,IACvDjB,KAAK6zC,QAAQyE,SAAS,2CAA4CkC,EAAW,CAC3EjC,MAAM,IAGHiC,C,CACP,MAAOvvC,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGAtJ,WAAW+4C,GAGT,GADAj6C,EAAAA,WAAAA,UAAWT,KAAKm/B,SAAUub,EAAIz5C,IAC1By5C,EAAI55C,UAAW,CACjB,MAAMsD,EAAMpE,KAAK+4C,aAAa2B,EAAI55C,WAAWiF,MAAMsI,WAChDrN,GAAWA,IAAW05C,EAAIz5C,KAE7BjB,KAAK+4C,aAAa2B,EAAI55C,WAAWiF,MAAMywC,OAAOpyC,EAAK,E,CAEvD,CAEA1D,uBAAuBg6C,GACrB,MAAMC,QAAiBtmC,EAAAA,EAAAA,MACvB,IAGE,aAFM5T,EAAAA,WAAAA,UAAAA,MAAAA,UAA2B,aAAai6C,EAAIz5C,eAAe05C,KAE1DD,C,CACP,MAAOzvC,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAOA2vC,QAAQpoC,GACFA,IACFxS,KAAKg5C,QAAUxmC,EACfxS,KAAK24C,mBAAoB,EACzB34C,KAAK84C,oBAAqB,EAE9B,CAGAp4C,mBAAmBw5C,GAAQ,GACzB,GAAKl6C,KAAKo5C,gBAAmBc,EAA7B,CAGAl6C,KAAKg6C,uBAAsB,GAC3B,IACE,MAAMrd,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IAAwB,wBAC7C,OAAOk8B,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,EAEhB,CAGAvK,uBAAuBM,GACrB,IAAKA,EACH,MAAO,GAET,MAAML,EAAOX,KAAKm/B,SAASn+B,GAC3B,IAAKL,EACH,MAAO,GAET,IACE,MAAMg8B,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IAAwB,kBAAkBO,WAC/D,OAAO27B,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGA4vC,aAAaP,GACNA,IAGAt6C,KAAKm/B,SAASmb,EAAUt5C,QAAQwR,OACnCxS,KAAKm/B,SAASmb,EAAUt5C,QAAQwR,KAAO,IAEzCxS,KAAKm/B,SAASmb,EAAUt5C,QAAQwR,KAAM7K,KAAK2yC,EAAUjnC,IAAIpS,IACzDR,EAAAA,WAAAA,IAAQT,KAAKg5C,QAASsB,EAAUjnC,IAAIpS,GAAIq5C,EAAUjnC,KACpD,CAGA3S,yBAAyB45C,GACvB,IACE,MAAM3d,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,KACnB,kBAAkB65C,EAAUt5C,eAC5Bs5C,EAAUjnC,KAEZ,MAAO,CACLA,IAAK,IAAKspB,EAAO97B,MACjBG,OAAQs5C,EAAUt5C,O,CAEpB,MAAOiK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGA6vC,kBAAkBJ,GAGhB,MAAMloC,EAAOxS,KAAKm/B,SAASub,EAAI15C,QAAQwR,KACvC,IAAKA,EACH,OAEF,MAAMpO,EAAMoO,EAAKnE,WAAWiF,GAAUA,IAAUonC,EAAIpnC,QACpDd,EAAKgkC,OAAOpyC,EAAK,EACnB,CAGA1D,kCAAkCg6C,GAChC,IAKE,aAJMj6C,EAAAA,WAAAA,UAAAA,MAAAA,UACJ,kBAAkBi6C,EAAI15C,eAAe05C,EAAIpnC,UAGpConC,C,CACP,MAAOzvC,GACPjC,QAAQC,IAAIgC,E,CAEhB,IAhXAjJ,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,+CAMTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,4CAMTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,2CAMTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,iCAUTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,iBAAgB,mCAelC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,gCAMTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,gBAAe,sCAmCjC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,mCAMTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,mBAAkB,yCAsCpC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,mCAcTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,mBAAkB,yCAwBpC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,6BAQTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,8BAWTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,cAAa,mCAc/B9xC,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,mCAWPF,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,6BAWTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,aAAY,mCAW9B9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,gCASTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,gBAAe,sCA6BjC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,gCAYTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,gBAAe,sCAiBjC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,6BAUTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,aAAY,kCAe9B9xC,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,aAAY,sCAkB9B9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,kCAaTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,kBAAiB,wCAiBnC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,uCAaTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,uBAAsB,gDA3dpC0E,GAAQx2C,EAAAA,EAAAA,IAAA,EANb0yC,EAAAA,EAAAA,IAAO,CACNjvC,KAAM,WACNs8B,MAAOA,EAAAA,EACP0V,SAAS,EACT9C,YAAY,KAER6D,GAyeC,MAAMt3C,GAAiBw2C,EAAAA,EAAAA,IAAUc,E,yEC9e5BjvB,E,wDAAZ,SAAYA,GACVA,EAAAA,EAAA,yBACAA,EAAAA,EAAA,0BACAA,EAAAA,EAAA,qBACD,EAJD,CAAYA,IAAAA,EAAe,KAO3B,IAAMyrB,EAAN,cAAyB1B,EAAAA,GAAzBjuC,c,oBACE,KAAA01C,gBAAmCxxB,EAAgByxB,OA8QrD,CA5QMC,mBACF,QAASj7C,KAAK6zC,QAAQgC,YAAY,qBAAqBxsB,SAAS6xB,WAClE,CAEI/4B,sBACF,OAAOniB,KAAK6zC,QAAQgC,YAAY,+BAClC,CAEIsF,wBACF,OAAOn7C,KAAKmiB,gBAAgBi5B,gBAAkB,CAAC,CACjD,CAEIC,+BACF,OAAOr7C,KAAKmiB,gBAAgBm5B,YAAYC,uBAAyB,EACnE,CAEIC,oCACF,OAAOx7C,KAAKmiB,gBAAgBm5B,YAAYG,4BAA8B,IACxE,CAEIC,mCACF,IAAK17C,KAAKmiB,gBAAgBi5B,iBAAmBp7C,KAAKmiB,gBAAgBm5B,WAChE,OAAO,EAET,MAAMpuC,EACJlN,KAAKmiB,gBAAgBi5B,eACnBp7C,KAAKmiB,gBAAgBm5B,WAAWC,wBAC7B,KACP,OAAOruC,EAAQA,EAAMjB,MAAQ,CAC/B,CAEIiyB,yBACF,MAAMtqB,EAAO5T,KAAKm7C,kBACZQ,EAAQ,IAAIvuC,KAElB,IAAIywB,EAAgD,KAEpD,MAAM+d,EAAuB,IAAIxuC,KAC/BuuC,EAAMlqC,cACNkqC,EAAMpqC,WACNoqC,EAAMtqC,UACN,EACA,EACA,EACA,GAGIwqC,EAAqB,IAAIzuC,KAC7BuuC,EAAMlqC,cACNkqC,EAAMpqC,WACNoqC,EAAMtqC,UAAY,EAClB,EACA,EACA,EACA,GAGIyqC,EAAaF,EAAqBtsC,UAClCysC,EAAWF,EAAmBvsC,UAAY,EAEhD,IAAK,MAAM3B,KAAKiG,EAAM,CACpB,MAAMooC,EAAWpoC,EAAKjG,GAClBquC,EAASpvC,IAAMkvC,GAAcE,EAAS/vC,MAAQ8vC,IAChDle,EAAame,E,CAGjB,OAAOne,CACT,CAEIoe,yBACF,OAAOj8C,KAAK+6C,eACd,CAGOmB,eAAer7C,GAKpB,MAAM4T,EAAQzU,KAAKmiB,gBAAgBthB,EAAK4T,OAClC0rB,EAAe1rB,EAAM5T,EAAKka,QAChColB,EAAaib,eAAiB,IAAKv6C,EAAKu6C,eAC1C,CAGOe,qBAAqBz4C,GAC1B1D,KAAK+6C,gBAAkBr3C,CACzB,CAGAhD,gBAEE,GAAIV,KAAKi8C,qBAAuB1yB,EAAgB6yB,OAW9C,OAVAp8C,KAAK6zC,QAAQyE,SACX,kBACA,CACEl3C,KAAM,GAAG0mC,EAAAA,EAAAA,EACP,yEAEFxmC,KAAM,WAER,CAAEi3C,MAAM,KAEH,EAIT,MAAM,QAAEroC,EAAO,IAAEgQ,IAAQ/P,EAAAA,EAAAA,MAEnBjD,EAAoC,CACxCjM,GAAIiP,EACJjE,MAAOiU,EACPtT,IAAKsT,EACL3P,MAAO,EACPC,YAAa,GAGT3P,EAAO,CACXyT,OAAQ,UACRzD,MAAO3D,IAGH,SAAEmvC,EAAQ,UAAEpf,GAAcj9B,KAAK6zC,QAAQgC,YAAY,2BAEnD/zC,QAAgCrB,EAAAA,WAAAA,UAAAA,MAAAA,KAC9B,uBAAuB47C,KAAYpf,KAAa/sB,KAAYrP,GACjEuI,OAAO0H,IACyB,MAA3BA,EAAMhP,UAAUuO,OAElBrQ,KAAK6zC,QAAQyE,SACX,kBACA,CACEl3C,KAAM,GAAG0mC,EAAAA,EAAAA,EAAO,qDAChBxmC,KAAM,SAER,CAAEi3C,MAAM,IAIVv4C,KAAK6zC,QAAQyE,SACX,kBACA,CACEl3C,KAAM,GAAG0mC,EAAAA,EAAAA,EAAO,yDAChBxmC,KAAM,SAER,CAAEi3C,MAAM,G,IAIhB,QAAKz2C,IAIL9B,KAAK6zC,QAAQC,OACX,gCACA,CACEr/B,MAAO4nC,EACPthC,OAAQkiB,EACRkD,aAAcr+B,EAASjB,KAAKs/B,cAE9B,CAAEoY,MAAM,IAEVv4C,KAAK6zC,QAAQC,OAAO,uBAAwBvqB,EAAgB6yB,SACrD,EACT,CAGA17C,iBACE,MAAMG,EAAO,CACXyT,OAAQ,WACR9G,KAAMJ,KAAK8S,OAEPhQ,EAAUlQ,KAAKq7C,0BAA4B,OAC3Cv5C,QAAgCrB,EAAAA,WAAAA,UAAAA,MAAAA,IAC/B,uBAAuByP,KAAYrP,GACvCuI,OAAO0H,IACC,CACLA,MAAOA,EACPC,aAAcD,EAAMhP,UAAUuO,QAAU,MAG9C,OAAKvO,GAOL9B,KAAK6zC,QAAQC,OACX,gCACA,CACEr/B,MAAO3S,EAASjB,KAAK4T,MACrBsG,OAAQjZ,EAASjB,KAAKwG,KACtB84B,aAAcr+B,EAASjB,KAAKs/B,cAE9B,CAAEoY,MAAM,IAEVv4C,KAAK6zC,QAAQC,OAAO,uBAAwBvqB,EAAgB+yB,UACrD,CAAEvrC,aAAc,MAhBd,CACLD,MAAO,wBACPC,aAAc,IAepB,CAGArQ,eAAeG,GAIb,MAAMqP,EAAUrP,EAAKqP,SAAW,QAC1B,UAAE+sB,GAAcj9B,KAAK6zC,QAAQgC,YAAY,2BAC/Ch1C,EAAK,UAAY,SACjB,MAAMiB,QAAgCrB,EAAAA,WAAAA,UAAAA,MAAAA,IAC/B,uBAAuByP,KAAYrP,GACvCuI,OAAO0H,IACC,CACLA,MAAOA,EACPC,aAAcD,EAAMhP,UAAUuO,QAAU,MAG9C,OAAKvO,GAOL9B,KAAK6zC,QAAQC,OACX,gCACA,CACEr/B,MAAO3S,EAASjB,KAAK4T,MACrBsG,OAAQjZ,EAASjB,KAAKwG,KACtB84B,aAAcr+B,EAASjB,KAAKs/B,cAE9B,CAAEoY,MAAM,IAEH,CAAExnC,aAAc,MAfd,CACLD,MAAO,wBACPC,aAAc,IAcpB,CAGArQ,oBAAoBG,GAClB,MAAMqP,EAAUrP,EAAKqP,SAAW,OAC1BpO,QAAgCrB,EAAAA,WAAAA,UAAAA,MAAAA,UAC5B,uBAAuByP,MAC9B9G,OAAO0H,IACC,CACLA,MAAOA,EACPC,aAAcD,EAAMhP,UAAUuO,QAAU,MAG9C,IAAKvO,EACH,MAAO,CACLgP,MAAO,wBACPC,aAAc,KAGlB,MAAM,SAAEsrC,GAAar8C,KAAK6zC,QAAQgC,YAAY,2BAa9C,OAXI/zC,EAASjB,KAAK4T,QAAU4nC,GAC1Br8C,KAAK6zC,QAAQC,OACX,gCACA,CACEr/B,MAAO3S,EAASjB,KAAK4T,MACrBsG,OAAQjZ,EAASjB,KAAKwG,KACtB84B,aAAcr+B,EAASjB,KAAKs/B,cAE9B,CAAEoY,MAAM,IAGL,CAAExnC,aAAc,IACzB,IAjMA/O,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,oCAYTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,0CAMTtrB,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,6BA8EPF,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAEq6C,UAAU,KAAO,8BAoC3Bv6C,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAEq6C,UAAU,KAAO,8BAoC3Bv6C,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAEq6C,UAAU,KAAO,kCA/OvBvH,GAAUhzC,EAAAA,EAAAA,IAAA,EADf0yC,EAAAA,EAAAA,IAAO,CAAEC,YAAY,KAChBK,GAgRN,Q,kFCpRY7zB,E,8EAAZ,SAAYA,GACVA,EAAAA,EAAA,yBACAA,EAAAA,EAAA,0BACAA,EAAAA,EAAA,sBACAA,EAAAA,EAAA,qBACD,EALD,CAAYA,IAAAA,EAAiB,KAQ7B,IAAM8zB,EAAN,cAA2B3B,EAAAA,GAA3BjuC,c,oBACE,KAAAiY,gBAAiB,EACjB,KAAAk/B,kBAAuCr7B,EAAkB65B,QACzD,KAAAyB,cAA+C,CAAC,CA8jBlD,CA5jBMzf,iBACF,MAAMC,EAAYj9B,KAAK6zC,QAAQgC,YAAY,kBACrCwG,GAAW9qC,EAAAA,EAAAA,MACXqkC,EAAU51C,KAAK6zC,QAAQgC,YAAY,oBACzC,MAAO,CAAE5Y,YAAWof,WAAUzG,UAChC,CAEIz4B,wBACF,OAAOnd,KAAKsd,cACd,CAKI6E,sBACF,MAAM,SAAEk6B,EAAQ,UAAEpf,GAAcj9B,KAAKg9B,WAC/B0f,EAAmB18C,KAAKy8C,cAAcJ,GAC5C,OAAKK,GAGEA,EAAiBzf,IAFf,CAAC,CAGZ,CAKIF,0BACF,OAAO/8B,KAAKy8C,aACd,CAEI/oC,kBACF,OAAO1T,KAAKmiB,gBAAgBxP,UAAY,CAAC,CAC3C,CAEI5Q,sBACF,OAAO/B,KAAK0T,YAAY1T,KAAK+R,iBAAiBpR,MAAQ,CACxD,CAEIoR,qBACF,OAAO/R,KAAKmiB,gBAAgBm5B,YAAYqB,aAAe,EACzD,CAEIp4B,0BACF,OAAOvkB,KAAKmiB,gBAAgBm5B,YAAYsB,kBAAoB,IAC9D,CAEIh7B,qBACF,OAAO5hB,KAAKmiB,gBAAgBm5B,YAAYuB,aAAe,IACzD,CAEIn4B,sBACF,OAAO1kB,KAAKmiB,gBAAgBm5B,YAAYwB,cAAgB,EAC1D,CAEIp6B,mBACF,IAAK1iB,KAAKmiB,gBAAgBxP,WAAa3S,KAAKmiB,gBAAgBm5B,WAC1D,OAAO,EAET,MAAMpuC,EACJlN,KAAKmiB,gBAAgBxP,SAAS3S,KAAKmiB,gBAAgBm5B,WAAWqB,cAAgB,KAChF,OAAOzvC,EAAQA,EAAMhB,MAAQ,CAC/B,CAEI4V,yBACF,IAAK9hB,KAAKmiB,gBAAgBxP,WAAa3S,KAAKmiB,gBAAgBm5B,WAC1D,OAAO,EAET,MAAMpuC,EACJlN,KAAKmiB,gBAAgBxP,SAAS3S,KAAKmiB,gBAAgBm5B,WAAWqB,cAAgB,KAChF,OAAOzvC,EAAQA,EAAMjB,MAAQ,CAC/B,CAEIiV,eACF,OAAOlhB,KAAKw8C,iBACd,CAGOO,oBAAoB55C,GACzBnD,KAAKsd,eAAiBna,CACxB,CAGO65C,sBAAsBP,GAC3Bz8C,KAAKy8C,cAAgB,IAAKA,EAC5B,CAGOQ,iBAAiBp8C,GAKtB,MAAM47C,EAAgB,IACjBz8C,KAAKy8C,cAAc57C,EAAK4T,QAG7BgoC,EAAc57C,EAAKka,QAAUla,EAAKs/B,aAClC1/B,EAAAA,WAAAA,IAAQT,KAAKy8C,cAAe57C,EAAK4T,MAAOgoC,EAC1C,CAGOS,uBAAuBx5C,GAC5B1D,KAAKw8C,kBAAoB94C,CAC3B,CAGOy5C,aAAat8C,GAKlB,MAAMs/B,EAAet/B,EAAKs/B,aAC1B,GAAKz5B,OAAO09B,KAAKjE,GAAc95B,OAM/B,GAAIxF,EAAKu8C,WAEPjd,EAAamb,WAAWuB,YAAch8C,EAAK2M,KAC3C2yB,EAAamb,WAAWwB,aAAan1C,KAAK,CACxCsE,MAAOpL,EAAK2M,KACZZ,IAAK,IAEP5M,KAAKw8C,kBAAoBr7B,EAAkBk8B,WACtC,CAEL,MAAM16B,EAAYwd,EAAamb,WAAWuB,aAAe,EACzD1c,EAAamb,WAAWuB,YAAc,KACtC,MAAMC,EAAe3c,EAAamb,WAAWwB,aAC7CA,EAAaA,EAAaz2C,OAAS,GAAGuG,IAAM/L,EAAK2M,KACjD2yB,EAAaxtB,SAASwtB,EAAamb,WAAWqB,aAAazwC,OACzDrL,EAAK2M,KAAOmV,EACd3iB,KAAKw8C,kBAAoBr7B,EAAkBi7B,M,CAE/C,CAGOkB,sBAAsB7oC,EAAgB,IAC3C,MAAM,SAAE4nC,EAAQ,UAAEpf,EAAS,QAAE2Y,GAAY51C,KAAKg9B,WAI9C,OAHKvoB,IACHA,EAAQ4nC,GAEH,IAAI3lC,SAAQ,CAACk9B,EAAS2J,KACtB3H,GACH2H,EAAO,CACLzsC,MAAO,eACPC,aAAc,MAGlBtQ,EAAAA,WAAAA,UAAAA,MAAAA,IACO,wBAAwBgU,UAC5B5S,MAAMC,IACL,MAAMjB,EAAOiB,EAASjB,KAKhB28C,EAAmBx9C,KAAK+8B,oBAC9B,IAAK,MAAM11B,KAAQxG,EACZ28C,EAAiBn2C,EAAKoN,SACzB+oC,EAAiBn2C,EAAKoN,OAAS,CAAC,GAElC+oC,EAAiBn2C,EAAKoN,OAAOpN,EAAKA,MAAQA,EAAK84B,aAKjD,GAFAngC,KAAK6zC,QAAQC,OAAO,wBAAyB0J,GAEzC/oC,IAAU4nC,EAAU,CACtB,IAAIlc,EACJ,IACEA,EAAeqd,EAAiBnB,GAAUpf,E,CAC1C,MAAOqc,GACPnZ,OAAe7jB,C,CAEb6jB,IACEA,EAAamb,WAAWqB,YACtBxc,EAAamb,WAAWuB,YAC1B78C,KAAK6zC,QAAQC,OACX,yBACA3yB,EAAkBk8B,QAGpBr9C,KAAK6zC,QAAQC,OACX,yBACA3yB,EAAkBi7B,QAItBp8C,KAAK6zC,QAAQC,OACX,yBACA3yB,EAAkBm7B,U,CAK1B1I,EAAQ,CACN9xC,SAAU07C,EACVzsC,aAAc,KACd,IAEH3H,OAAO0H,IACyB,MAA3BA,EAAMhP,UAAUuO,QAClBujC,EAAQ,CAAE7iC,aAAc,MAE1BwsC,EAAO,CACLzsC,MAAOA,EACPC,aAAcD,EAAMhP,UAAUuO,QAAU,GACxC,IAEHW,SAAQ,KACPhR,KAAK6zC,QAAQC,OAAO,uBAAuB,EAAM,GACjD,GAER,CAGOp/B,kBAAkBD,EAAgB,IACvC,MAAM,SAAE4nC,GAAar8C,KAAKg9B,WACrBvoB,IACHA,EAAQ4nC,GAEV,MAAM,QAAEnsC,IAAYC,EAAAA,EAAAA,MACpB,OAAO,IAAIuG,SAAQ,CAACk9B,EAAS2J,KAC3B98C,EAAAA,WAAAA,UAAAA,MAAAA,IACO,wBAAwBgU,uBAA2BvE,KACvDrO,MAAMC,IACL,MAAMjB,EAAOiB,EAASjB,KAEtBb,KAAK6zC,QAAQC,OAAO,mBAAoB,CACtCr/B,MAAO5T,EAAK4T,MACZ0rB,aAAct/B,EAAKs/B,aACnBplB,OAAQla,EAAKwG,OAGXoN,IAAU4nC,IAERx7C,EAAKs/B,aAAamb,WAAWqB,YAC3B97C,EAAKs/B,aAAamb,WAAWuB,YAC/B78C,KAAK6zC,QAAQC,OAAO,yBAA0B3yB,EAAkBk8B,QAEhEr9C,KAAK6zC,QAAQC,OAAO,yBAA0B3yB,EAAkBi7B,QAGlEp8C,KAAK6zC,QAAQC,OAAO,yBAA0B3yB,EAAkBm7B,UAG9Dz7C,EAAKs/B,aAAamb,WAAWC,sBAC/Bv7C,KAAK6zC,QAAQC,OACX,kCACAvqB,EAAAA,EAAAA,OACA,CAAEgvB,MAAM,IAGVv4C,KAAK6zC,QAAQC,OACX,kCACAvqB,EAAAA,EAAAA,SACA,CAAEgvB,MAAM,KAId3E,EAAQ,CACN9xC,SAAUjB,EAAKs/B,aACfpvB,aAAc,KACd,IAEH3H,OAAO0H,IACNysC,EAAO,CACLzsC,MAAOA,EACPC,aAAcD,EAAMhP,UAAUuO,QAAU,GACxC,IAEHW,SAAQ,KACPhR,KAAK6zC,QAAQC,OAAO,uBAAuB,EAAM,GACjD,GAER,CAGOpzC,iBAAiBG,GAGtB,MAAMka,EAAS/a,KAAK6zC,QAAQgC,YAAY,kBAClCphC,GAAQlD,EAAAA,EAAAA,IAAS1Q,EAAKgQ,MAAM5E,OAC5BiE,EAAUrP,EAAKgQ,MAAM5P,IAAM,OAC3BmT,QAAgBC,EAAAA,EAAAA,MAGtB,OAFAxT,EAAK,UAAY,WACjBA,EAAK,WAAauT,EACX,IAAIsC,SAAQ,CAACk9B,EAAS2J,KAC3B98C,EAAAA,WAAAA,UAAAA,MAAAA,KACQ,wBAAwBsa,KAAUtG,KAASvE,KAAYrP,GAC5DgB,MAAMC,IACL,MAAMjB,EAAOiB,EAASjB,KAChB48C,GAAelsC,EAAAA,EAAAA,MAEjB1Q,EAAK4T,QAAUgpC,GACjBz9C,KAAK6zC,QAAQC,OAAO,mBAAoB,CACtCr/B,MAAO5T,EAAK4T,MACZ0rB,aAAct/B,EAAKs/B,aACnBplB,OAAQA,IAKZ64B,EAAQ,CAAE7iC,aAAc,KAAM,IAE/B3H,OAAO0H,IACNysC,EAAO,CACLzsC,MAAOA,EAAM8c,QACb7c,aAAcD,EAAMhP,UAAUuO,QAAU,GACxC,GACF,GAER,CAGA3P,cAAcC,EAA0B2b,WAEtC,GAAItc,KAAKkhB,WAAaC,EAAkBi7B,OAWtC,OAVAp8C,KAAK6zC,QAAQyE,SACX,kBACA,CACEl3C,KAAM,GAAG0mC,EAAAA,EAAAA,EACP,yEAEFxmC,KAAM,WAER,CAAEi3C,MAAM,KAEH,EAIT,MAAM,QAAEroC,EAAO,IAAEgQ,IAAQ/P,EAAAA,EAAAA,MACnBrP,EAAYH,GAAQA,EAAKI,QAAUJ,EAAKI,QAAU,EAClDC,EAASL,EAAOA,EAAKM,GAAK,EAE1BiM,EAA8B,CAClCjM,GAAIiP,EACJjE,MAAOiU,EACPtT,IAAKsT,EACLhU,MAAO,EACPmE,OAAQ,EACRC,aAAc,GACdC,MAAO,EACPC,YAAa,EACbzP,QAASD,EACTH,KAAMK,GAGFH,EAAO,CACXyT,OAAQ,UACRzD,MAAO3D,GAGH6N,EAAS/a,KAAK6zC,QAAQgC,YAAY,kBAClCphC,GAAQlD,EAAAA,EAAAA,MAERzP,QAAgCrB,EAAAA,WAAAA,UAAAA,MAAAA,KAC9B,wBAAwBsa,KAAUtG,KAASvE,KAAYrP,GAC5DuI,OAAO0H,IACyB,MAA3BA,EAAMhP,UAAUuO,OAElBrQ,KAAK6zC,QAAQyE,SACX,kBACA,CACEl3C,KAAM,GAAG0mC,EAAAA,EAAAA,EAAO,qDAChBxmC,KAAM,SAER,CAAEi3C,MAAM,IAIVv4C,KAAK6zC,QAAQyE,SACX,kBACA,CACEl3C,KAAM,GAAG0mC,EAAAA,EAAAA,EAAO,yDAChBxmC,KAAM,SAER,CAAEi3C,MAAM,G,IAIhB,QAAKz2C,IAIL9B,KAAK6zC,QAAQC,OAAO,mBAAoB,CACtCr/B,MAAO3S,EAASjB,KAAK4T,MACrB0rB,aAAcr+B,EAASjB,KAAKs/B,aAC5BplB,OAAQA,IAEV/a,KAAK6zC,QAAQC,OAAO,yBAA0B3yB,EAAkBi7B,SACzD,EACT,CAGOx2B,WAAW/kB,GAQhB,MAAM,UAAEo8B,GAAcj9B,KAAKg9B,WAC3B,OAAO,IAAItmB,SAAQ,CAACk9B,EAAS2J,KAC3B,MAAMrtC,EAAUrP,EAAKqP,SAAW,OAChCzP,EAAAA,WAAAA,UAAAA,MAAAA,IACO,+BAA+ByP,KAAYrP,GAC/CgB,MAAMC,IACL,MAAMjB,EAAOiB,EAASjB,KAEtBb,KAAK6zC,QAAQC,OAAO,mBAAoB,CACtCr/B,MAAO5T,EAAK4T,MACZ0rB,aAAct/B,EAAKs/B,aACnBplB,OAAQkiB,IAEVj9B,KAAK6zC,QAAQC,OAAO,yBAA0B3yB,EAAkBm7B,UAEhE1I,EAAQ,CAAE7iC,aAAc,KAAM,IAE/B3H,OAAO0H,IACNysC,EAAO,CACLzsC,MAAOA,EACPC,aAAcD,EAAMhP,UAAUuO,QAAU,GACxC,GACF,GAER,CAGOqtC,4BAA4B/8C,GACjC,MAAME,EAAO,CACXyT,OAAQ,WACRpE,QAASlQ,KAAK+R,eACdvE,KAAMJ,KAAK8S,MACXnf,QAASJ,EAAKI,SAAW,EACzB0P,SAAU9P,EAAK8E,KACfzE,OAAQL,EAAKM,GACbyP,cAAe/P,EAAKgQ,cAEtB3Q,KAAK6zC,QAAQyE,SAAS,0BAA2Bz3C,EAAM,CACrD03C,MAAM,GAEV,CAGOzyB,aAAajlB,GAKlB,OAAO,IAAI6V,SAAQ,CAACk9B,EAAS2J,KAC3B,MAAMrtC,EAAUrP,EAAKqP,SAAW,OAChCzP,EAAAA,WAAAA,UAAAA,MAAAA,IACO,+BAA+ByP,KAAYrP,GAC/CgB,MAAMy3C,IAELt5C,KAAK6zC,QAAQC,OAAO,eAAgB,CAClCtmC,KAAM3M,EAAK2M,KACX4vC,YAAY,EACZjd,aAAcngC,KAAKmiB,kBAErByxB,EAAQ,CAAE7iC,aAAc,KAAM,IAE/B3H,OAAO0H,IACNysC,EAAO,CACLzsC,MAAOA,EACPC,aAAcD,EAAMhP,UAAUuO,QAAU,GACxC,GACF,GAER,CAGO0V,WAAWllB,GAKhB,OAAO,IAAI6V,SAAQ,CAACk9B,EAAS2J,KAC3B,MAAMrtC,EAAUrP,EAAKqP,SAAW,OAChCzP,EAAAA,WAAAA,UAAAA,MAAAA,IACO,+BAA+ByP,KAAYrP,GAC/CgB,MAAMC,IAEL9B,KAAK6zC,QAAQC,OAAO,eAAgB,CAClCtmC,KAAM3M,EAAK2M,KACX4vC,YAAY,EACZjd,aAAcngC,KAAKmiB,kBAErByxB,EAAQ,CAAE7iC,aAAc,KAAM,IAE/B3H,OAAO0H,IACNysC,EAAO,CACLzsC,MAAOA,EACPC,aAAcD,EAAMhP,UAAUuO,QAAU,GACxC,GACF,GAER,CAIO3P,eAAeG,GAIpB,MAAMkoC,QAAc10B,EAAAA,EAAAA,MACpB,OAAO,IAAIqC,SAAQ,CAACk9B,EAAS2J,KAC3B,MAAMrtC,EAAUrP,EAAKqP,SAAW,QAC1B,UAAE+sB,GAAcj9B,KAAKg9B,WAC3Bn8B,EAAK,UAAY,SACjBJ,EAAAA,WAAAA,UAAAA,MAAAA,IACO,+BAA+ByP,cAAoB64B,IAASloC,GAChEgB,MAAMC,IACL,MAAMjB,EAAOiB,EAASjB,KAEtBb,KAAK6zC,QAAQC,OAAO,mBAAoB,CACtCr/B,MAAO5T,EAAK4T,MACZ0rB,aAAct/B,EAAKs/B,aACnBplB,OAAQkiB,IAEV2W,EAAQ,CAAE7iC,aAAc,KAAM,IAE/B3H,OAAO0H,IACNysC,EAAO,CACLzsC,MAAOA,EACPC,aAAcD,EAAMhP,UAAUuO,QAAU,GACxC,GACF,GAER,CAGO3P,oBAAoBG,GAIzB,MAAMkoC,QAAc10B,EAAAA,EAAAA,MACpB,OAAO,IAAIqC,SAAQ,CAACk9B,EAAS2J,KAC3B,MAAMrtC,EAAUrP,EAAKqP,SAAW,OAC1Bq0B,EAAmB1jC,EAAK0jC,kBAAoB,OAClD9jC,EAAAA,WAAAA,UAAAA,MAAAA,UAEI,+BAA+ByP,cAAoB64B,yBAA6BxE,KAEjF1iC,MAAMC,IACL,MAAMjB,EAAOiB,EAASjB,MAChB,SAAEw7C,EAAQ,UAAEpf,GAAcj9B,KAAKg9B,WAEjCn8B,EAAK4T,QAAU4nC,GACjBr8C,KAAK6zC,QAAQC,OAAO,mBAAoB,CACtCr/B,MAAO5T,EAAK4T,MACZ0rB,aAAct/B,EAAKs/B,aACnBplB,OAAQkiB,IAKZ2W,EAAQ,CAAE7iC,aAAc,KAAM,IAE/B3H,OAAO0H,IACNysC,EAAO,CACLzsC,MAAOA,EACPC,aAAcD,EAAMhP,UAAUuO,QAAU,GACxC,GACF,GAER,IA9eArO,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,yCAMTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,2CAMTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,sCAeTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,4CAMTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,kCAkCTtrB,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,2CAgFPF,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,uCA+DPF,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAEq6C,UAAU,KAAO,gCAsC3Bv6C,EAAAA,EAAAA,IAAA,CADCE,EAAAA,IAAM,6BAkFPF,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAEq6C,UAAU,KAAO,gCAoC3Bv6C,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAEq6C,UAAU,KAAO,iDAiB3Bv6C,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAEq6C,UAAU,KAAO,kCA6B3Bv6C,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAEq6C,UAAU,KAAO,gCA8B3Bv6C,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAEq6C,UAAU,KAAO,8BAgC3Bv6C,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAEq6C,UAAU,KAAO,kCA7hBvBtH,GAAYjzC,EAAAA,EAAAA,IAAA,EADjB0yC,EAAAA,EAAAA,IAAO,CAAEC,YAAY,KAChBM,GAkkBN,Q,8HCzkBA,IAAM0I,EAAN,cAAmBrK,EAAAA,GAAnBjuC,c,oBACE,KAAA+Z,SAAsB,CACpB7X,IAAK,GACLV,WAAY,GACZC,UAAW,GACXuvB,KAAM,GACNunB,gBAAiB,GACjBzX,MAAO,GACP7P,KAAM,GACNC,aAAc,GACdoZ,aAAa,EACbC,eAAe,EACfpZ,SAAU,CAAC,EACXnN,QAAS,CACPpoB,GAAI,EACJwE,KAAM,GACNo4C,UAAW,EACXC,6BAA8B,GAC9B5C,aAAa,IAGjB,KAAA6C,iBAA2B,EAC3B,KAAA52C,SAA6B,EAuI/B,CArIM62C,gBACF,OAAOh+C,KAAKof,SAAS7X,GACvB,CAEI02C,kBACF,OAAOj+C,KAAKof,QACd,CAEI8+B,sBACF,OAAOl+C,KAAKof,SAASoX,QACvB,CAEIhwB,kBACF,OAAOxG,KAAKmH,QACd,CAEIg3C,kBACF,OAAOn+C,KAAKof,SAASvY,WAAa,IAAM7G,KAAKof,SAAStY,SACxD,CAEIs3C,kBACF,MAA8B,UAAvBp+C,KAAKof,SAASiX,IACvB,CAEIgoB,wBACF,GAAIr+C,KAAK+9C,gBAAiB,OAAO/9C,KAAKof,SAASw+B,gBAC/C,MAAMU,EAAoD,GAC1D,OAAOt+C,KAAKof,SAASw+B,gBACjBU,EAAct+C,KAAKof,SAASw+B,gBAC5B,EACN,CAEIW,kBACF,OAAQt9C,IACN,MAAM+E,EAAQhG,KAAKwG,aAAe,GAClC,OAAOR,EAAM2O,MAAMqG,GAAMA,EAAEzT,MAAQtG,KAAO,IAAI,CAElD,CAGAu9C,gBAAgBC,GACdz+C,KAAKof,SAASw+B,gBAAkBa,EAChCz+C,KAAK+9C,iBAAkB,CACzB,CAGAW,YAAYt/B,GACNA,IAAUpf,KAAKof,SAAWA,EAChC,CAGA1e,sBACE,IACE,MAAMi8B,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IAAwB,sBAC7C,OAAOk8B,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGA0zC,YAAYx3C,GACNA,IAAUnH,KAAKmH,SAAWA,EAChC,CAGAzG,sBACE,IACE,MAAMi8B,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IAAwB,aAC7C,OAAOk8B,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGA2zC,WAAWv3C,GACLA,GAAMrH,KAAKmH,SAASQ,KAAKN,EAC/B,CAGA3G,uBAAuB2G,GACrB,IACE,MAAMs1B,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,KAAyB,YAAa4G,GAC3D,OAAOs1B,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGA4zC,WAAWx3C,GACLA,EAAKE,MAAQvH,KAAKof,SAAS7X,MAC7BvH,KAAKof,SAAW,IAAK/X,IAEvBrH,KAAKmH,SAAS0C,SAASi1C,IACjBA,EAAQv3C,MAAQF,EAAKE,MACvBu3C,EAAQj4C,WAAaQ,EAAKR,WAC1Bi4C,EAAQh4C,UAAYO,EAAKP,UACzBg4C,EAAQxoB,KAAOjvB,EAAKivB,KACpBwoB,EAAQvoB,aAAelvB,EAAKkvB,aAC5BuoB,EAAQzoB,KAAOhvB,EAAKgvB,K,GAG1B,CAGA31B,uBAAuB2G,GACrB,IACE,MAAMs1B,QAAel8B,EAAAA,WAAAA,UAAAA,MAAAA,IACnB,qBAAuB4G,EAAKE,IAAM,IAClCF,GAEF,OAAOs1B,EAAO97B,I,CACd,MAAOoK,GACPjC,QAAQC,IAAIgC,E,CAEhB,CAGA8zC,WAAWC,GACTh/C,KAAKmH,SAAWnH,KAAKmH,SAASC,QAAQC,GAASA,EAAKE,KAAOy3C,GAC7D,CAGAt+C,uBAAuBs+C,GACrB,IAEE,aADMv+C,EAAAA,WAAAA,UAAAA,MAAAA,UAA2B,qBAAuBu+C,EAAS,KAC1DA,C,CACP,MAAO/zC,GACPjC,QAAQC,IAAIgC,E,CAEhB,IA5FAjJ,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,qCAOTtrB,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,iCAMTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,iBAAgB,mCAWlC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,iCAMTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,iBAAgB,mCAWlC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,gCAMTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,gBAAe,sCAWjC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,gCAiBTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,gBAAe,sCAcjC9xC,EAAAA,EAAAA,IAAA,CADCsrB,EAAAA,IAAQ,gCAMTtrB,EAAAA,EAAAA,IAAA,EADCE,EAAAA,EAAAA,IAAO,CAAE4xC,OAAQ,gBAAe,qCApJ7B6J,GAAI37C,EAAAA,EAAAA,IAAA,EANT0yC,EAAAA,EAAAA,IAAO,CACNjvC,KAAM,OACNs8B,MAAOA,EAAAA,EACP0V,SAAS,EACT9C,YAAY,KAERgJ,GA+JC,MAAMp3C,GAAamxC,EAAAA,EAAAA,IAAUiG,E,wBC3KpC,IAAIprB,EAAM,CACT,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,MACX,aAAc,MACd,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,gBAAiB,MACjB,aAAc,MACd,gBAAiB,MACjB,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,MACX,aAAc,MACd,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,WAAY,MACZ,cAAe,MACf,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,YAAa,MACb,eAAgB,MAChB,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,QAAS,MACT,aAAc,MACd,gBAAiB,MACjB,WAAY,MACZ,UAAW,KACX,aAAc,KACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,YAAa,MACb,eAAgB,MAChB,UAAW,KACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,gBAAiB,MACjB,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,OAIf,SAAS0sB,EAAeC,GACvB,IAAIj+C,EAAKk+C,EAAsBD,GAC/B,OAAOE,EAAoBn+C,EAC5B,CACA,SAASk+C,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAE9sB,EAAK2sB,GAAM,CACpC,IAAIj0C,EAAI,IAAIq0C,MAAM,uBAAyBJ,EAAM,KAEjD,MADAj0C,EAAEs0C,KAAO,mBACHt0C,CACP,CACA,OAAOsnB,EAAI2sB,EACZ,CACAD,EAAe7a,KAAO,WACrB,OAAO19B,OAAO09B,KAAK7R,EACpB,EACA0sB,EAAerL,QAAUuL,EACzBK,EAAOC,QAAUR,EACjBA,EAAeh+C,GAAK,K,wBCnSpB,IAAIsxB,EAAM,CACT,wBAAyB,MACzB,cAAe,KACf,yBAA0B,MAC1B,uBAAwB,MACxB,6BAA8B,MAC9B,qBAAsB,KACtB,wBAAyB,MACzB,0BAA2B,MAC3B,wBAAyB,MACzB,eAAgB,MAChB,mBAAoB,MACpB,mBAAoB,MACpB,aAAc,MACd,qBAAsB,MACtB,iCAAkC,KAClC,+CAAgD,MAChD,4BAA6B,MAC7B,oBAAqB,MACrB,kBAAmB,MACnB,oBAAqB,MACrB,2BAA4B,MAC5B,uBAAwB,MACxB,uBAAwB,MACxB,uBAAwB,MACxB,uBAAwB,MACxB,oBAAqB,MACrB,yBAA0B,MAC1B,2BAA4B,MAC5B,oBAAqB,MACrB,kBAAmB,MACnB,qBAAsB,MACtB,eAAgB,MAChB,oBAAqB,OAItB,SAAS0sB,EAAeC,GACvB,IAAIj+C,EAAKk+C,EAAsBD,GAC/B,OAAOE,EAAoBn+C,EAC5B,CACA,SAASk+C,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAE9sB,EAAK2sB,GAAM,CACpC,IAAIj0C,EAAI,IAAIq0C,MAAM,uBAAyBJ,EAAM,KAEjD,MADAj0C,EAAEs0C,KAAO,mBACHt0C,CACP,CACA,OAAOsnB,EAAI2sB,EACZ,CACAD,EAAe7a,KAAO,WACrB,OAAO19B,OAAO09B,KAAK7R,EACpB,EACA0sB,EAAerL,QAAUuL,EACzBK,EAAOC,QAAUR,EACjBA,EAAeh+C,GAAK,K,wBCtDpB,IAAIsxB,EAAM,CACT,oBAAqB,MACrB,2BAA4B,OAI7B,SAAS0sB,EAAeC,GACvB,IAAIj+C,EAAKk+C,EAAsBD,GAC/B,OAAOE,EAAoBn+C,EAC5B,CACA,SAASk+C,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAE9sB,EAAK2sB,GAAM,CACpC,IAAIj0C,EAAI,IAAIq0C,MAAM,uBAAyBJ,EAAM,KAEjD,MADAj0C,EAAEs0C,KAAO,mBACHt0C,CACP,CACA,OAAOsnB,EAAI2sB,EACZ,CACAD,EAAe7a,KAAO,WACrB,OAAO19B,OAAO09B,KAAK7R,EACpB,EACA0sB,EAAerL,QAAUuL,EACzBK,EAAOC,QAAUR,EACjBA,EAAeh+C,GAAK,K,o44FCtBhBy+C,EAA2B,CAAC,EAGhC,SAASN,EAAoBO,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBrjC,IAAjBsjC,EACH,OAAOA,EAAaH,QAGrB,IAAID,EAASE,EAAyBC,GAAY,CACjD1+C,GAAI0+C,EACJE,QAAQ,EACRJ,QAAS,CAAC,GAUX,OANAK,EAAoBH,GAAUh3C,KAAK62C,EAAOC,QAASD,EAAQA,EAAOC,QAASL,GAG3EI,EAAOK,QAAS,EAGTL,EAAOC,OACf,CAGAL,EAAoBtvC,EAAIgwC,E,WC5BxBV,EAAoBW,KAAO,CAAC,C,eCA5B,IAAIC,EAAW,GACfZ,EAAoBa,EAAI,SAAStjB,EAAQujB,EAAUv8C,EAAIw8C,GACtD,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAAS/xC,EAAI,EAAGA,EAAI0xC,EAAS35C,OAAQiI,IAAK,CACrC4xC,EAAWF,EAAS1xC,GAAG,GACvB3K,EAAKq8C,EAAS1xC,GAAG,GACjB6xC,EAAWH,EAAS1xC,GAAG,GAE3B,IAJA,IAGIgyC,GAAY,EACPC,EAAI,EAAGA,EAAIL,EAAS75C,OAAQk6C,MACpB,EAAXJ,GAAsBC,GAAgBD,IAAaz5C,OAAO09B,KAAKgb,EAAoBa,GAAGO,OAAM,SAAS38C,GAAO,OAAOu7C,EAAoBa,EAAEp8C,GAAKq8C,EAASK,GAAK,IAChKL,EAAS1J,OAAO+J,IAAK,IAErBD,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACbN,EAASxJ,OAAOloC,IAAK,GACrB,IAAImyC,EAAI98C,SACE2Y,IAANmkC,IAAiB9jB,EAAS8jB,EAC/B,CACD,CACA,OAAO9jB,CArBP,CAJCwjB,EAAWA,GAAY,EACvB,IAAI,IAAI7xC,EAAI0xC,EAAS35C,OAAQiI,EAAI,GAAK0xC,EAAS1xC,EAAI,GAAG,GAAK6xC,EAAU7xC,IAAK0xC,EAAS1xC,GAAK0xC,EAAS1xC,EAAI,GACrG0xC,EAAS1xC,GAAK,CAAC4xC,EAAUv8C,EAAIw8C,EAwB/B,C,eC5BAf,EAAoBtM,EAAI,SAAS0M,GAChC,IAAIkB,EAASlB,GAAUA,EAAOmB,WAC7B,WAAa,OAAOnB,EAAO,UAAY,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAJ,EAAoBpf,EAAE0gB,EAAQ,CAAE/yC,EAAG+yC,IAC5BA,CACR,C,eCPA,IACIE,EADAC,EAAWn6C,OAAOo6C,eAAiB,SAASvX,GAAO,OAAO7iC,OAAOo6C,eAAevX,EAAM,EAAI,SAASA,GAAO,OAAOA,EAAIwX,SAAW,EAQpI3B,EAAoB3rC,EAAI,SAAStQ,EAAOujC,GAEvC,GADU,EAAPA,IAAUvjC,EAAQnD,KAAKmD,IAChB,EAAPujC,EAAU,OAAOvjC,EACpB,GAAoB,kBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAPujC,GAAavjC,EAAMw9C,WAAY,OAAOx9C,EAC1C,GAAW,GAAPujC,GAAoC,oBAAfvjC,EAAMtB,KAAqB,OAAOsB,CAC5D,CACA,IAAI69C,EAAKt6C,OAAOu6C,OAAO,MACvB7B,EAAoBqB,EAAEO,GACtB,IAAIE,EAAM,CAAC,EACXN,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAIhZ,EAAiB,EAAPnB,GAAYvjC,EAAyB,iBAAX0kC,KAAyB+Y,EAAez2C,QAAQ09B,GAAUA,EAAUgZ,EAAShZ,GACxHnhC,OAAOy6C,oBAAoBtZ,GAASh+B,SAAQ,SAAShG,GAAOq9C,EAAIr9C,GAAO,WAAa,OAAOV,EAAMU,EAAM,CAAG,IAI3G,OAFAq9C,EAAI,WAAa,WAAa,OAAO/9C,CAAO,EAC5Ci8C,EAAoBpf,EAAEghB,EAAIE,GACnBF,CACR,C,eCxBA5B,EAAoBpf,EAAI,SAASyf,EAAS2B,GACzC,IAAI,IAAIv9C,KAAOu9C,EACXhC,EAAoBC,EAAE+B,EAAYv9C,KAASu7C,EAAoBC,EAAEI,EAAS57C,IAC5E6C,OAAO26C,eAAe5B,EAAS57C,EAAK,CAAEy9C,YAAY,EAAM5yC,IAAK0yC,EAAWv9C,IAG3E,C,eCPAu7C,EAAoBmC,EAAI,CAAC,EAGzBnC,EAAoBn0C,EAAI,SAASu2C,GAChC,OAAO9qC,QAAQ+qC,IAAI/6C,OAAO09B,KAAKgb,EAAoBmC,GAAGG,QAAO,SAASC,EAAU99C,GAE/E,OADAu7C,EAAoBmC,EAAE19C,GAAK29C,EAASG,GAC7BA,CACR,GAAG,IACJ,C,eCPAvC,EAAoBpkC,EAAI,SAASwmC,GAEhC,MAAO,OAAqB,MAAZA,EAAkB,QAAUA,GAAW,IAAM,CAAC,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,YAAYA,GAAW,KACtQ,C,eCHApC,EAAoBwC,SAAW,SAASJ,GAEvC,MAAO,OAASA,EAAU,IAAM,CAAC,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,YAAYA,GAAW,MACpJ,C,eCJApC,EAAoByC,EAAI,WACvB,GAA0B,kBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAO9hD,MAAQ,IAAIyW,SAAS,cAAb,EAChB,CAAE,MAAOxL,GACR,GAAsB,kBAAXoZ,OAAqB,OAAOA,MACxC,CACA,CAPuB,E,eCAxB+6B,EAAoBC,EAAI,SAAS9V,EAAK3gC,GAAQ,OAAOlC,OAAO+B,UAAUC,eAAeC,KAAK4gC,EAAK3gC,EAAO,C,eCAtG,IAAIm5C,EAAa,CAAC,EACdC,EAAoB,YAExB5C,EAAoB6C,EAAI,SAASla,EAAKma,EAAMr+C,EAAK29C,GAChD,GAAGO,EAAWha,GAAQga,EAAWha,GAAKpgC,KAAKu6C,OAA3C,CACA,IAAIC,EAAQC,EACZ,QAAW9lC,IAARzY,EAEF,IADA,IAAIw+C,EAAUjkC,SAASkkC,qBAAqB,UACpCh0C,EAAI,EAAGA,EAAI+zC,EAAQh8C,OAAQiI,IAAK,CACvC,IAAIi0C,EAAIF,EAAQ/zC,GAChB,GAAGi0C,EAAEC,aAAa,QAAUza,GAAOwa,EAAEC,aAAa,iBAAmBR,EAAoBn+C,EAAK,CAAEs+C,EAASI,EAAG,KAAO,CACpH,CAEGJ,IACHC,GAAa,EACbD,EAAS/jC,SAASujB,cAAc,UAEhCwgB,EAAOM,QAAU,QACjBN,EAAO33B,QAAU,IACb40B,EAAoBsD,IACvBP,EAAOvgB,aAAa,QAASwd,EAAoBsD,IAElDP,EAAOvgB,aAAa,eAAgBogB,EAAoBn+C,GACxDs+C,EAAOQ,IAAM5a,GAEdga,EAAWha,GAAO,CAACma,GACnB,IAAIU,EAAmB,SAASC,EAAM7qC,GAErCmqC,EAAOW,QAAUX,EAAOY,OAAS,KACjCC,aAAax4B,GACb,IAAIy4B,EAAUlB,EAAWha,GAIzB,UAHOga,EAAWha,GAClBoa,EAAOe,YAAcf,EAAOe,WAAWC,YAAYhB,GACnDc,GAAWA,EAAQp5C,SAAQ,SAASlG,GAAM,OAAOA,EAAGqU,EAAQ,IACzD6qC,EAAM,OAAOA,EAAK7qC,EACtB,EACIwS,EAAUqK,WAAW+tB,EAAiBQ,KAAK,UAAM9mC,EAAW,CAAEhb,KAAM,UAAWsc,OAAQukC,IAAW,MACtGA,EAAOW,QAAUF,EAAiBQ,KAAK,KAAMjB,EAAOW,SACpDX,EAAOY,OAASH,EAAiBQ,KAAK,KAAMjB,EAAOY,QACnDX,GAAchkC,SAASilC,KAAKrX,YAAYmW,EAnCkB,CAoC3D,C,eCvCA/C,EAAoBqB,EAAI,SAAShB,GACX,qBAAX6D,QAA0BA,OAAOC,aAC1C78C,OAAO26C,eAAe5B,EAAS6D,OAAOC,YAAa,CAAEpgD,MAAO,WAE7DuD,OAAO26C,eAAe5B,EAAS,aAAc,CAAEt8C,OAAO,GACvD,C,eCNAi8C,EAAoBoE,IAAM,SAAShE,GAGlC,OAFAA,EAAOiE,MAAQ,GACVjE,EAAOkE,WAAUlE,EAAOkE,SAAW,IACjClE,CACR,C,eCJAJ,EAAoB71C,EAAI,G,eCAxB,GAAwB,qBAAb6U,SAAX,CACA,IAAIulC,EAAmB,SAASnC,EAASoC,EAAUC,EAAQjQ,EAAS2J,GACnE,IAAIuG,EAAU1lC,SAASujB,cAAc,QAErCmiB,EAAQC,IAAM,aACdD,EAAQxiD,KAAO,WACf,IAAI0iD,EAAiB,SAAShsC,GAG7B,GADA8rC,EAAQhB,QAAUgB,EAAQf,OAAS,KAChB,SAAf/qC,EAAM1W,KACTsyC,QACM,CACN,IAAIqQ,EAAYjsC,IAAyB,SAAfA,EAAM1W,KAAkB,UAAY0W,EAAM1W,MAChE4iD,EAAWlsC,GAASA,EAAM4F,QAAU5F,EAAM4F,OAAO8I,MAAQk9B,EACzDpvC,EAAM,IAAI8qC,MAAM,qBAAuBkC,EAAU,cAAgB0C,EAAW,KAChF1vC,EAAI+qC,KAAO,wBACX/qC,EAAIlT,KAAO2iD,EACXzvC,EAAIq0B,QAAUqb,EACdJ,EAAQZ,WAAWC,YAAYW,GAC/BvG,EAAO/oC,EACR,CACD,EASA,OARAsvC,EAAQhB,QAAUgB,EAAQf,OAASiB,EACnCF,EAAQp9B,KAAOk9B,EAEXC,EACHA,EAAOX,WAAWiB,aAAaL,EAASD,EAAOO,aAE/ChmC,SAASilC,KAAKrX,YAAY8X,GAEpBA,CACR,EACIO,EAAiB,SAAS39B,EAAMk9B,GAEnC,IADA,IAAIU,EAAmBlmC,SAASkkC,qBAAqB,QAC7Ch0C,EAAI,EAAGA,EAAIg2C,EAAiBj+C,OAAQiI,IAAK,CAChD,IAAI+E,EAAMixC,EAAiBh2C,GACvBi2C,EAAWlxC,EAAImvC,aAAa,cAAgBnvC,EAAImvC,aAAa,QACjE,GAAe,eAAZnvC,EAAI0wC,MAAyBQ,IAAa79B,GAAQ69B,IAAaX,GAAW,OAAOvwC,CACrF,CACA,IAAImxC,EAAoBpmC,SAASkkC,qBAAqB,SACtD,IAAQh0C,EAAI,EAAGA,EAAIk2C,EAAkBn+C,OAAQiI,IAAK,CAC7C+E,EAAMmxC,EAAkBl2C,GACxBi2C,EAAWlxC,EAAImvC,aAAa,aAChC,GAAG+B,IAAa79B,GAAQ69B,IAAaX,EAAU,OAAOvwC,CACvD,CACD,EACIoxC,EAAiB,SAASjD,GAC7B,OAAO,IAAI9qC,SAAQ,SAASk9B,EAAS2J,GACpC,IAAI72B,EAAO04B,EAAoBwC,SAASJ,GACpCoC,EAAWxE,EAAoB71C,EAAImd,EACvC,GAAG29B,EAAe39B,EAAMk9B,GAAW,OAAOhQ,IAC1C+P,EAAiBnC,EAASoC,EAAU,KAAMhQ,EAAS2J,EACpD,GACD,EAEImH,EAAqB,CACxB,IAAK,GAGNtF,EAAoBmC,EAAEoD,QAAU,SAASnD,EAASG,GACjD,IAAIiD,EAAY,CAAC,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,GAC5DF,EAAmBlD,GAAUG,EAASh6C,KAAK+8C,EAAmBlD,IACzB,IAAhCkD,EAAmBlD,IAAkBoD,EAAUpD,IACtDG,EAASh6C,KAAK+8C,EAAmBlD,GAAWiD,EAAejD,GAAS3/C,MAAK,WACxE6iD,EAAmBlD,GAAW,CAC/B,IAAG,SAASv2C,GAEX,aADOy5C,EAAmBlD,GACpBv2C,CACP,IAEF,CAtE2C,C,eCK3C,IAAI45C,EAAkB,CACrB,IAAK,GAGNzF,EAAoBmC,EAAEhB,EAAI,SAASiB,EAASG,GAE1C,IAAImD,EAAqB1F,EAAoBC,EAAEwF,EAAiBrD,GAAWqD,EAAgBrD,QAAWllC,EACtG,GAA0B,IAAvBwoC,EAGF,GAAGA,EACFnD,EAASh6C,KAAKm9C,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIruC,SAAQ,SAASk9B,EAAS2J,GAAUuH,EAAqBD,EAAgBrD,GAAW,CAAC5N,EAAS2J,EAAS,IACzHoE,EAASh6C,KAAKm9C,EAAmB,GAAKC,GAGtC,IAAIhd,EAAMqX,EAAoB71C,EAAI61C,EAAoBpkC,EAAEwmC,GAEpD1wC,EAAQ,IAAIwuC,MACZ0F,EAAe,SAAShtC,GAC3B,GAAGonC,EAAoBC,EAAEwF,EAAiBrD,KACzCsD,EAAqBD,EAAgBrD,GACX,IAAvBsD,IAA0BD,EAAgBrD,QAAWllC,GACrDwoC,GAAoB,CACtB,IAAIb,EAAYjsC,IAAyB,SAAfA,EAAM1W,KAAkB,UAAY0W,EAAM1W,MAChE2jD,EAAUjtC,GAASA,EAAM4F,QAAU5F,EAAM4F,OAAO+kC,IACpD7xC,EAAM8c,QAAU,iBAAmB4zB,EAAU,cAAgByC,EAAY,KAAOgB,EAAU,IAC1Fn0C,EAAMrL,KAAO,iBACbqL,EAAMxP,KAAO2iD,EACbnzC,EAAM+3B,QAAUoc,EAChBH,EAAmB,GAAGh0C,EACvB,CAEF,EACAsuC,EAAoB6C,EAAEla,EAAKid,EAAc,SAAWxD,EAASA,EAE/D,CAEH,EAUApC,EAAoBa,EAAEM,EAAI,SAASiB,GAAW,OAAoC,IAA7BqD,EAAgBrD,EAAgB,EAGrF,IAAI0D,EAAuB,SAASC,EAA4BtkD,GAC/D,IAKI8+C,EAAU6B,EALVtB,EAAWr/C,EAAK,GAChBukD,EAAcvkD,EAAK,GACnBwkD,EAAUxkD,EAAK,GAGIyN,EAAI,EAC3B,GAAG4xC,EAASoF,MAAK,SAASrkD,GAAM,OAA+B,IAAxB4jD,EAAgB5jD,EAAW,IAAI,CACrE,IAAI0+C,KAAYyF,EACZhG,EAAoBC,EAAE+F,EAAazF,KACrCP,EAAoBtvC,EAAE6vC,GAAYyF,EAAYzF,IAGhD,GAAG0F,EAAS,IAAI1oB,EAAS0oB,EAAQjG,EAClC,CAEA,IADG+F,GAA4BA,EAA2BtkD,GACrDyN,EAAI4xC,EAAS75C,OAAQiI,IACzBkzC,EAAUtB,EAAS5xC,GAChB8wC,EAAoBC,EAAEwF,EAAiBrD,IAAYqD,EAAgBrD,IACrEqD,EAAgBrD,GAAS,KAE1BqD,EAAgBrD,GAAW,EAE5B,OAAOpC,EAAoBa,EAAEtjB,EAC9B,EAEI4oB,EAAqBC,KAAK,wBAA0BA,KAAK,yBAA2B,GACxFD,EAAmB17C,QAAQq7C,EAAqB9B,KAAK,KAAM,IAC3DmC,EAAmB59C,KAAOu9C,EAAqB9B,KAAK,KAAMmC,EAAmB59C,KAAKy7C,KAAKmC,G,ICpFvF,IAAIE,EAAsBrG,EAAoBa,OAAE3jC,EAAW,CAAC,MAAM,WAAa,OAAO8iC,EAAoB,MAAQ,IAClHqG,EAAsBrG,EAAoBa,EAAEwF,E","sources":["webpack://frontend/./src/components/calendar/DailyBaseComponent.vue","webpack://frontend/./src/components/calendar/DailyBaseComponent.vue?7543","webpack://frontend/./src/components/calendar/DailyBaseComponent.vue?5f76","webpack://frontend/./src/components/calendar/DailyBaseComponent.vue?9439","webpack://frontend/./src/components/dialogs/DialogContent.vue","webpack://frontend/./src/components/dialogs/DialogContent.vue?c6af","webpack://frontend/./src/components/dialogs/DialogContent.vue?4232","webpack://frontend/./src/components/dialogs/DialogContent.vue?a594","webpack://frontend/./src/components/dialogs/ProjectDialog.vue","webpack://frontend/./src/components/dialogs/ProjectDialog.vue?938e","webpack://frontend/./src/components/dialogs/ProjectDialog.vue?96e2","webpack://frontend/./src/components/dialogs/ProjectDialog.vue?cc1e","webpack://frontend/./src/components/dialogs/TaskDialog.vue","webpack://frontend/./src/components/tiktrac/tables/TaskTimetrackingList.vue","webpack://frontend/./src/components/tiktrac/tables/TaskTimetrackingList.vue?0706","webpack://frontend/./src/components/tiktrac/tables/TaskTimetrackingList.vue?48d1","webpack://frontend/./src/components/tiktrac/tables/TaskTimetrackingList.vue?bad9","webpack://frontend/./src/components/dialogs/TaskDialog.vue?2bfa","webpack://frontend/./src/components/dialogs/TaskDialog.vue?4a3d","webpack://frontend/./src/components/dialogs/TaskDialog.vue?97e1","webpack://frontend/./src/components/forms/DatePicker.vue","webpack://frontend/./src/components/forms/DatePicker.vue?bf4d","webpack://frontend/./src/components/forms/DatePicker.vue?5ba8","webpack://frontend/./src/components/forms/DatePicker.vue?3c79","webpack://frontend/./src/components/forms/InlineEdit.vue","webpack://frontend/./src/components/forms/InlineEdit.vue?bad9","webpack://frontend/./src/components/forms/InlineEdit.vue?5ef2","webpack://frontend/./src/components/forms/InlineEdit.vue?aeac","webpack://frontend/./src/components/forms/TextEditor.vue","webpack://frontend/./src/components/forms/TextEditor.vue?d3f0","webpack://frontend/./src/components/forms/TextEditor.vue?f939","webpack://frontend/./src/components/forms/TextEditor.vue?7873","webpack://frontend/./src/components/forms/TimePicker.vue","webpack://frontend/./src/components/forms/TimePicker.vue?1cce","webpack://frontend/./src/components/forms/TimePicker.vue?880e","webpack://frontend/./src/components/forms/TimePicker.vue?48ab","webpack://frontend/./src/components/lists/ProjectList.vue","webpack://frontend/./src/components/lists/ProjectList.vue?9635","webpack://frontend/./src/components/lists/ProjectList.vue?35e1","webpack://frontend/./src/components/lists/ProjectList.vue?0f80","webpack://frontend/./src/components/tables/TaskTable.vue","webpack://frontend/./src/components/tables/TaskTable.vue?6225","webpack://frontend/./src/components/tables/TaskTable.vue?9c76","webpack://frontend/./src/components/tables/TaskTable.vue?a3e2","webpack://frontend/./src/components/tiktrac/forms/TrackingEntry.vue","webpack://frontend/./src/components/tiktrac/forms/TrackingEntry.vue?d137","webpack://frontend/./src/components/tiktrac/forms/TrackingEntry.vue?fc93","webpack://frontend/./src/components/tiktrac/forms/TrackingEntry.vue?a5fc","webpack://frontend/./src/components/ui/BaseButton.vue","webpack://frontend/./src/components/ui/BaseButton.vue?5842","webpack://frontend/./src/components/ui/BaseButton.vue?340b","webpack://frontend/./src/components/ui/BaseButton.vue?9a03","webpack://frontend/./src/components/ui/BaseMenuButton.vue","webpack://frontend/./src/components/ui/BaseMenuButton.vue?6079","webpack://frontend/./src/components/ui/BaseMenuButton.vue?72ca","webpack://frontend/./src/components/ui/BaseMenuButton.vue?1578","webpack://frontend/./src/components/ui/LayoutTwoColumns.vue","webpack://frontend/./src/components/ui/LayoutTwoColumns.vue?e4c1","webpack://frontend/./src/components/ui/LayoutTwoColumns.vue?5bae","webpack://frontend/./src/components/ui/LayoutTwoColumns.vue?8537","webpack://frontend/./src/App.vue","webpack://frontend/./src/components/bars/AppBar.vue","webpack://frontend/./src/components/navigation/UserInfoMini.vue","webpack://frontend/./src/components/navigation/UserInfoMini.vue?8a7f","webpack://frontend/./src/components/navigation/UserInfoMini.vue?6b74","webpack://frontend/./src/components/navigation/UserInfoMini.vue?436d","webpack://frontend/./src/components/tiktrac/TiktracMini.vue","webpack://frontend/./src/components/tiktrac/TiktracMini.vue?8b09","webpack://frontend/./src/components/tiktrac/TiktracMini.vue?bb15","webpack://frontend/./src/components/tiktrac/TiktracMini.vue?200a","webpack://frontend/./src/components/navigation/NavigationDrawerOverall.vue","webpack://frontend/./src/components/navigation/NavigationDrawerContent.vue","webpack://frontend/./src/components/navigation/NavigationDrawerContent.vue?3f0f","webpack://frontend/./src/components/navigation/NavigationDrawerContent.vue?b775","webpack://frontend/./src/components/navigation/NavigationDrawerContent.vue?53d9","webpack://frontend/./src/components/navigation/NavigationDrawerOverall.vue?6608","webpack://frontend/./src/components/navigation/NavigationDrawerOverall.vue?8a5d","webpack://frontend/./src/components/navigation/NavigationDrawerOverall.vue?1524","webpack://frontend/./src/components/lists/NotificationItem/NotificationList.vue","webpack://frontend/./src/components/lists/NotificationItem/NotificationItem.vue","webpack://frontend/./src/components/lists/NotificationItem/NotificationItem.vue?7e66","webpack://frontend/./src/components/lists/NotificationItem/NotificationItem.vue?7647","webpack://frontend/./src/components/lists/NotificationItem/NotificationItem.vue?bd8a","webpack://frontend/./src/components/lists/NotificationItem/NotificationList.vue?063d","webpack://frontend/./src/components/lists/NotificationItem/NotificationList.vue?d022","webpack://frontend/./src/components/lists/NotificationItem/NotificationList.vue?4676","webpack://frontend/./src/components/bars/AppBar.vue?43db","webpack://frontend/./src/components/bars/AppBar.vue?13be","webpack://frontend/./src/components/bars/AppBar.vue?40ad","webpack://frontend/./src/components/dialogs/EULADialog.vue","webpack://frontend/./src/components/dialogs/EULADialog.vue?df1b","webpack://frontend/./src/components/dialogs/EULADialog.vue?79f6","webpack://frontend/./src/components/dialogs/EULADialog.vue?e139","webpack://frontend/./src/components/navigation/NavigationDrawerMobile.vue","webpack://frontend/./src/components/navigation/NavigationDrawerMobile.vue?a09b","webpack://frontend/./src/components/navigation/NavigationDrawerMobile.vue?380b","webpack://frontend/./src/components/navigation/NavigationDrawerMobile.vue?8e4d","webpack://frontend/./src/components/ui/BaseDialog.vue","webpack://frontend/./src/components/ui/BaseDialog.vue?abb7","webpack://frontend/./src/components/ui/BaseDialog.vue?ad8b","webpack://frontend/./src/components/ui/BaseDialog.vue?d0ec","webpack://frontend/./src/components/ui/BaseSnackbar.vue","webpack://frontend/./src/components/ui/BaseSnackbar.vue?3104","webpack://frontend/./src/components/ui/BaseSnackbar.vue?69d7","webpack://frontend/./src/components/ui/BaseSnackbar.vue?52fd","webpack://frontend/./src/components/ui/ChatPopup.vue","webpack://frontend/./src/components/forms/QuickTaskCreator.vue","webpack://frontend/./src/components/forms/QuickTaskCreatorForm.vue","webpack://frontend/./src/components/forms/QuickTaskCreatorForm.vue?4953","webpack://frontend/./src/components/forms/QuickTaskCreatorForm.vue?eef7","webpack://frontend/./src/components/forms/QuickTaskCreatorForm.vue?f60d","webpack://frontend/./src/components/forms/QuickTaskCreator.vue?9ab6","webpack://frontend/./src/components/forms/QuickTaskCreator.vue?0e9b","webpack://frontend/./src/components/forms/QuickTaskCreator.vue?50c4","webpack://frontend/./src/components/chatBot/ChatBotMenu.vue","webpack://frontend/./src/components/dialogs/DailyTeamOverviewDialog.vue","webpack://frontend/./src/components/dialogs/DailyTeamOverviewDialog.vue?b5e8","webpack://frontend/./src/components/dialogs/DailyTeamOverviewDialog.vue?d721","webpack://frontend/./src/components/dialogs/DailyTeamOverviewDialog.vue?0a80","webpack://frontend/./src/components/chatBot/ChatBotMenu.vue?3226","webpack://frontend/./src/components/chatBot/ChatBotMenu.vue?dc90","webpack://frontend/./src/components/chatBot/ChatBotMenu.vue?6719","webpack://frontend/./src/components/chatBot/ChatBotBeauty.vue","webpack://frontend/./src/components/chatBot/forms/ChatBotBusyListForm.vue","webpack://frontend/./src/components/chatBot/forms/ChatBotBusyListForm.vue?d1d7","webpack://frontend/./src/components/chatBot/forms/ChatBotBusyListForm.vue?f49d","webpack://frontend/./src/components/chatBot/forms/ChatBotBusyListForm.vue?87fb","webpack://frontend/./src/components/chatBot/lists/TasksListChatBot.vue","webpack://frontend/./src/components/chatBot/lists/TasksListChatBot.vue?00cb","webpack://frontend/./src/components/chatBot/lists/TasksListChatBot.vue?fc1e","webpack://frontend/./src/components/chatBot/lists/TasksListChatBot.vue?f50c","webpack://frontend/./src/components/chatBot/ChatBotBtn.vue","webpack://frontend/./src/components/chatBot/ChatBotBtn.vue?d837","webpack://frontend/./src/components/chatBot/ChatBotBtn.vue?98ad","webpack://frontend/./src/components/chatBot/ChatBotBtn.vue?3fe6","webpack://frontend/./src/components/chatBot/forms/AttendenceMeeting.vue","webpack://frontend/./src/components/chatBot/forms/AttendenceMeeting.vue?9a1f","webpack://frontend/./src/components/chatBot/forms/AttendenceMeeting.vue?3609","webpack://frontend/./src/components/chatBot/forms/AttendenceMeeting.vue?4a73","webpack://frontend/./src/components/chatBot/ChatBotBeauty.vue?308b","webpack://frontend/./src/components/chatBot/ChatBotBeauty.vue?3f12","webpack://frontend/./src/components/chatBot/ChatBotBeauty.vue?26e6","webpack://frontend/./src/components/ui/ChatPopup.vue?b27b","webpack://frontend/./src/components/ui/ChatPopup.vue?dc74","webpack://frontend/./src/components/ui/ChatPopup.vue?acb4","webpack://frontend/./src/components/ui/PageLoader.vue","webpack://frontend/./src/components/ui/PageLoader.vue?49cb","webpack://frontend/./src/components/ui/PageLoader.vue?fdd8","webpack://frontend/./src/components/ui/PageLoader.vue?3cd7","webpack://frontend/./src/components/tutorial/TutorialDialog.vue","webpack://frontend/./src/components/tutorial/TutorialDialog.vue?c93d","webpack://frontend/./src/components/tutorial/TutorialDialog.vue?e6c8","webpack://frontend/./src/components/tutorial/TutorialDialog.vue?e048","webpack://frontend/./src/components/ui/QuickNotificationItem.vue","webpack://frontend/./src/components/ui/QuickNotificationItem.vue?5fcb","webpack://frontend/./src/components/ui/QuickNotificationItem.vue?42bc","webpack://frontend/./src/components/ui/QuickNotificationItem.vue?0ae3","webpack://frontend/./src/App.vue?38a5","webpack://frontend/./src/App.vue?f4f7","webpack://frontend/./src/App.vue?0e40","webpack://frontend/./src/router/tiktrac-routes.ts","webpack://frontend/./src/router/paytrac-routes.ts","webpack://frontend/./src/views/Home.vue","webpack://frontend/./src/components/calendar/DailyPlanner.vue","webpack://frontend/./src/components/dialogs/EisenHoverMatrixDialog.vue","webpack://frontend/./src/components/dialogs/EisenHoverMatrixDialog.vue?5e02","webpack://frontend/./src/components/dialogs/EisenHoverMatrixDialog.vue?3080","webpack://frontend/./src/components/dialogs/EisenHoverMatrixDialog.vue?c100","webpack://frontend/./src/components/calendar/AttendanceBar.vue","webpack://frontend/./src/components/calendar/AttendanceBar.vue?253f","webpack://frontend/./src/components/calendar/AttendanceBar.vue?6cc7","webpack://frontend/./src/components/calendar/AttendanceBar.vue?1378","webpack://frontend/./src/components/calendar/DailyPlanner.vue?de14","webpack://frontend/./src/components/calendar/DailyPlanner.vue?c8be","webpack://frontend/./src/components/calendar/DailyPlanner.vue?8ef9","webpack://frontend/./src/components/lists/DailyTaskList.vue","webpack://frontend/./src/components/lists/DailyTaskList.vue?d040","webpack://frontend/./src/components/lists/DailyTaskList.vue?031a","webpack://frontend/./src/components/lists/DailyTaskList.vue?8927","webpack://frontend/./src/components/forms/QuickProjectCreator.vue","webpack://frontend/./src/components/forms/QuickProjectCreator.vue?60ab","webpack://frontend/./src/components/forms/QuickProjectCreator.vue?bd7d","webpack://frontend/./src/components/forms/QuickProjectCreator.vue?4c3d","webpack://frontend/./src/views/Home.vue?17f1","webpack://frontend/./src/views/Home.vue?1230","webpack://frontend/./src/views/Home.vue?8611","webpack://frontend/./src/router/index.ts","webpack://frontend/./src/plugins/vuetify.ts","webpack://frontend/./src/plugins/keycloak.ts","webpack://frontend/./src/plugins/axios.ts","webpack://frontend/./src/plugins/moment.ts","webpack://frontend/./src/plugins/funtions.ts","webpack://frontend/./src/main.ts","webpack://frontend/./src/plugins/i18n.ts","webpack://frontend/./src/plugins/msal/Constants.ts","webpack://frontend/./src/plugins/msal/UIManager.ts","webpack://frontend/./src/plugins/msal/AuthModule.ts","webpack://frontend/./src/plugins/msal/FetchManager.ts","webpack://frontend/./src/plugins/msal/index.ts","webpack://frontend/./src/services/common.ts","webpack://frontend/./src/services/datetime.ts","webpack://frontend/./src/services/auth.ts","webpack://frontend/./src/services/tiktrac.ts","webpack://frontend/./src/store/modules/ui.ts","webpack://frontend/./src/store/modules/chatbotModule.ts","webpack://frontend/./src/store/index.ts","webpack://frontend/./src/store/modules/budgettracking.ts","webpack://frontend/./src/store/modules/calendarModule.ts","webpack://frontend/./src/store/modules/projectsModule.ts","webpack://frontend/./src/store/modules/tiktrac/attendance.ts","webpack://frontend/./src/store/modules/tiktrac/timetracking.ts","webpack://frontend/./src/store/modules/userModule.ts","webpack://frontend/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://frontend/./src/assets/ ./src/assets/ sync ^\\.\\/.*\\.svg$","webpack://frontend/./src/assets/ ./src/assets/ sync ^\\.\\/icon_people.*\\.svg$","webpack://frontend/webpack/bootstrap","webpack://frontend/webpack/runtime/amd options","webpack://frontend/webpack/runtime/chunk loaded","webpack://frontend/webpack/runtime/compat get default export","webpack://frontend/webpack/runtime/create fake namespace object","webpack://frontend/webpack/runtime/define property getters","webpack://frontend/webpack/runtime/ensure chunk","webpack://frontend/webpack/runtime/get javascript chunk filename","webpack://frontend/webpack/runtime/get mini-css chunk filename","webpack://frontend/webpack/runtime/global","webpack://frontend/webpack/runtime/hasOwnProperty shorthand","webpack://frontend/webpack/runtime/load script","webpack://frontend/webpack/runtime/make namespace object","webpack://frontend/webpack/runtime/node module decorator","webpack://frontend/webpack/runtime/publicPath","webpack://frontend/webpack/runtime/css loading","webpack://frontend/webpack/runtime/jsonp chunk loading","webpack://frontend/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Ref } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\n\nimport TaskDialog from '@/components/dialogs/TaskDialog.vue'\n\nimport { IDialog, ISnackbar, ITask } from '@/interfaces'\nimport type Tiktrac from 'vue/types/tiktrac'\n\nimport { ProjectsModule } from '@/store/modules/projectsModule'\nconst StoreTiktrac = namespace('Timetracking')\nconst StoreUI = namespace('UI')\n\n@Component({ components: { TaskDialog } })\nexport default class DailyBaseComponent extends Vue {\n @StoreTiktrac.Getter\n public getActiveTaskId!: number\n\n @StoreUI.Action\n public showDialog!: (data: IDialog) => Promise\n\n @StoreUI.Action\n public showSnackbar!: (data: ISnackbar) => void\n\n @Ref('taskDialog') taskDialog!: TaskDialog\n\n async completeTask(task: ITask) {\n let taskData = {} as ITask\n taskData.is_completed = true\n const data = {\n projectId: task.project || 0,\n task: taskData,\n taskId: task.id,\n }\n if (!(await ProjectsModule.updateTaskAction(data))) {\n this.showSnackbar({\n text: `${this.$t('dialogs.taskDialog.snackBars.updateTaskError')}`,\n type: 'error',\n })\n } else {\n this.showSnackbar({\n text: `${this.$t('calendar.dailyBaseComponent.snackBars.completeTaskSuccess')}`,\n type: 'success',\n })\n }\n }\n\n editTask(item: ITask) {\n this.taskDialog.editTask(item)\n }\n\n editTimetracking(item: Tiktrac.BusyListElem) {\n this.taskDialog.editTimetracking(item)\n }\n\n deleteTask(item: ITask) {\n // ask user if he really wants to perfom this action\n this.showDialog({\n text: `${this.$t('calendar.dailyBaseComponent.snackBars.deleteTaskTitle')}`,\n }).then((response: boolean) => {\n if (!response) {\n // declined\n return\n }\n // delete task\n if (item.id === this.getActiveTaskId) {\n this.showSnackbar({\n text: `${this.$t('calendar.dailyBaseComponent.snackBars.deleteTaskError')}`,\n type: 'error',\n })\n } else {\n ProjectsModule.deleteTaskAction({\n id: item.id,\n projectId: item.project,\n })\n }\n })\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DailyBaseComponent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DailyBaseComponent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DailyBaseComponent.vue?vue&type=template&id=e252f762&\"\nimport script from \"./DailyBaseComponent.vue?vue&type=script&lang=ts&\"\nexport * from \"./DailyBaseComponent.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{staticClass:\"dialog\",attrs:{\"max-width\":\"550px\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"cardDialog\"},[_c('div',{staticClass:\"text-right mr-n6\"},[_c('v-icon',{staticClass:\"mt-4 mr-4\",on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\"mdi-close\")])],1),_c('v-card-title',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(!_vm.isEdit ? _vm.$t('ticktrack.tables.trackingHistory.titleDialog') : _vm.$t('ticktrack.tables.trackingHistory.titleDialogEdit')))]),_c('v-card-subtitle',{staticClass:\"font-weight-medium\"},[_vm._v(_vm._s(_vm.$t('ticktrack.tables.trackingHistory.subtitleDialog')))]),_c('v-card-text',{staticClass:\"trackingEntry\"},[_vm._t(\"default\")],2)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, VModel, Prop } from 'vue-property-decorator'\n\n@Component({\n components: {},\n})\nexport default class DialogContent extends Vue {\n @Prop({ default: false })\n readonly isEdit!: boolean\n\n @VModel({ default: false }) dialog!: boolean\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DialogContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DialogContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DialogContent.vue?vue&type=template&id=77e4399c&scoped=true&\"\nimport script from \"./DialogContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./DialogContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DialogContent.vue?vue&type=style&index=0&id=77e4399c&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"77e4399c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"transition\":\"dialog-bottom-transition\",\"content-class\":\"dialog-center dialog-full-height disable-scroll\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;_vm.abort = true}},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"bg-main\",attrs:{\"id\":\"dialog-card\"}},[_c('v-card-title',[_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"space-between\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[(!_vm.projectData.is_default)?_c('InlineEdit',{attrs:{\"classes\":\"text-h5 font-weight-bold primary--text\",\"hide-details\":\"\",\"placeholder\":_vm.$t('dialogs.projectDialog.projectNamePlaceholder'),\"alwaysShowInput\":!_vm.isEdit,\"disabled\":_vm.state.name.disabled,\"loading\":_vm.state.name.loading,\"readonly\":!_vm.authorizeResponsibility,\"rules\":_vm.nameRules,\"save\":() => _vm.save('name')},model:{value:(_vm.projectData.name),callback:function ($$v) {_vm.$set(_vm.projectData, \"name\", $$v)},expression:\"projectData.name\"}}):_c('div',{staticClass:\"text-h5 font-weight-bold primary--text\"},[_vm._v(\" \"+_vm._s(_vm.projectData.name)+\" \")])],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"flex-nowrap\",attrs:{\"align\":\"center\"}},[(!_vm.isEdit)?_c('v-btn',{staticClass:\"ml-16\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.save()}}},[_c('v-icon',[_vm._v(\"mdi-check\")])],1):_vm._e(),_c('v-btn',{class:{ 'ml-16': _vm.isEdit },attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)],1),_c('v-card-text',[(!_vm.projectData.is_default)?_c('div',{staticClass:\"container-properties-detail-dialog\"},[_c('v-autocomplete',{ref:\"ref-main_responsibility_id\",attrs:{\"clearable\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('dialogs.projectDialog.responsiblePlaceholder'),\"item-value\":\"uid\",\"disabled\":_vm.state.main_responsibility_id.disabled || !_vm.authorizeResponsibility,\"filter\":_vm.filterUserList,\"items\":_vm.getUserListFiltered,\"loading\":_vm.state.main_responsibility_id.loading},on:{\"blur\":function($event){return _vm.save('main_responsibility_id')}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-img',{staticClass:\"mt-1\",attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/icon_account.svg')}})]},proxy:true},{key:\"selection\",fn:function({ item }){return [_c('span',[_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")])]}},{key:\"item\",fn:function({ item }){return [_c('span',[_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")])]}}],null,false,4212124639),model:{value:(_vm.projectData.main_responsibility_id),callback:function ($$v) {_vm.$set(_vm.projectData, \"main_responsibility_id\", $$v)},expression:\"projectData.main_responsibility_id\"}}),_c('div',[_c('v-subheader',{staticStyle:{\"height\":\"auto\"}},[_vm._v(\" \"+_vm._s(_vm.getImportanceText)+\" \")]),_c('v-slider',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"ticks\":\"\",\"min\":\"0\",\"max\":\"4\",\"disabled\":_vm.state.importance.disabled || !_vm.authorizeResponsibility,\"loading\":_vm.state.importance.loading},on:{\"change\":function($event){return _vm.save('importance')}},model:{value:(_vm.projectData.importance),callback:function ($$v) {_vm.$set(_vm.projectData, \"importance\", _vm._n($$v))},expression:\"projectData.importance\"}})],1),_c('DatePicker',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"text-field\":\"\",\"placeholder\":_vm.$t('dialogs.projectDialog.datePickerPlaceholder'),\"img\":require('@/assets/icon_calendar_times.svg'),\"readonly\":!_vm.authorizeResponsibility,\"save\":() => _vm.save('due_date')},model:{value:(_vm.projectData.due_date),callback:function ($$v) {_vm.$set(_vm.projectData, \"due_date\", $$v)},expression:\"projectData.due_date\"}}),_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs, value }){return [_c('div',_vm._g(_vm._b({staticClass:\"d-inline-flex mt-1 flex-basis-auto\",attrs:{\"id\":\"btn-participants\"}},'div',attrs,false),on),[_c('v-img',{staticClass:\"mt-1 mr-2 flex-grow-0\",attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require(`@/assets/icon_people${value ? '_active' : ''}.svg`)}}),_c('span',{class:{ 'primary--text': value }},[_vm._v(\" \"+_vm._s(_vm.getParticipantCount)+\" \")])],1)]}}],null,false,731912898),model:{value:(_vm.menuParticipants),callback:function ($$v) {_vm.menuParticipants=$$v},expression:\"menuParticipants\"}},[(!_vm.menuParticipantAdd)?[_c('v-list',[_vm._l((_vm.getParticipants),function(user,idx){return _c('v-list-item',{key:idx},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-account\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(user.first_name)+\" \"+_vm._s(user.last_name)+\" \")])],1)],1)}),_c('v-divider'),_c('v-list-item',{on:{\"click\":function($event){_vm.menuParticipantAdd = true}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-plus\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('dialogs.projectDialog.addContact'))+\" \")])],1)],1)],2)]:[_c('v-card',[_c('v-card-text',[_c('div',{staticClass:\"d-flex\"},[_c('v-autocomplete',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('dialogs.projectDialog.addMember'),\"item-value\":\"uid\",\"disabled\":_vm.state.menuParticipantAddId.disabled || !_vm.authorizeResponsibility,\"filter\":_vm.filterUserList,\"items\":_vm.getUserList,\"loading\":_vm.state.menuParticipantAddId.loading},scopedSlots:_vm._u([{key:\"selection\",fn:function({ item }){return [_c('span',[_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")])]}},{key:\"item\",fn:function({ item }){return [_c('span',[_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")])]}}],null,false,2863450204),model:{value:(_vm.menuParticipantAddId),callback:function ($$v) {_vm.menuParticipantAddId=$$v},expression:\"menuParticipantAddId\"}}),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\",\"disabled\":!_vm.menuParticipantAddId || !_vm.authorizeResponsibility},on:{\"click\":function($event){return _vm.addParticipant()}}},[_c('v-icon',[_vm._v(\"mdi-check\")])],1)],1)])],1)]],2),_c('div',{attrs:{\"title\":_vm.$t('dialogs.projectDialog.estimatedTimeTitle')}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"disabled\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('dialogs.projectDialog.estimatedTimePlaceholder')},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-img',{staticClass:\"mt-1\",attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/icon_effort.svg')}})]},proxy:true}],null,false,3989093255),model:{value:(_vm.getEffortSum),callback:function ($$v) {_vm.getEffortSum=$$v},expression:\"getEffortSum\"}})],1),(_vm.creatorName)?_c('v-col',[_c('div',[_vm._v(_vm._s(_vm.$t('dialogs.projectDialog.createdBy')))]),_c('v-chip',[_vm._v(_vm._s(_vm.creatorName))])],1):_vm._e(),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('BaseMenuButton',_vm._g(_vm._b({},'BaseMenuButton',attrs,false),on))]}}],null,false,228825757)},[_c('v-list',[(\n !_vm.projectData.main_responsibility_id ||\n _vm.projectData.main_responsibility_id === _vm.userID\n )?_c('v-list-item',{on:{\"click\":function($event){return _vm.deleteProject()}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('dialogs.projectDialog.delete'))+\" \")])],1)],1):_vm._e(),_c('v-list-item',[_c('v-list-item-content',{staticClass:\"pl-3\"},[_c('v-switch',{attrs:{\"label\":_vm.$t('dialogs.projectDialog.active'),\"disabled\":_vm.state.is_active.disabled || !_vm.authorizeResponsibility,\"loading\":_vm.state.is_active.loading},on:{\"change\":function($event){return _vm.save('is_active')}},model:{value:(_vm.projectData.is_active),callback:function ($$v) {_vm.$set(_vm.projectData, \"is_active\", $$v)},expression:\"projectData.is_active\"}})],1)],1)],1)],1)],1):_vm._e()]),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(\" \"+_vm._s(_vm.$t('dialogs.projectDialog.description'))+\" \")]),_c('v-tab',[_vm._v(\" \"+_vm._s(_vm.$t('dialogs.projectDialog.tasks.title'))+\" \")])],1),_c('v-tabs-items',{staticClass:\"specific-content-scroll\",model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[_c('TextEditor',{staticClass:\"mt-10\",attrs:{\"save\":() => this.save('description')},model:{value:(_vm.projectData.description),callback:function ($$v) {_vm.$set(_vm.projectData, \"description\", $$v)},expression:\"projectData.description\"}})],1),_c('v-tab-item',[_c('TaskTable',{staticClass:\"mt-10\",attrs:{\"project\":_vm.projectData,\"dialog\":_vm.dialog,\"highlightedIssueId\":_vm.highlightedTiktracEntry}})],1)],1),_c('v-card-actions',{staticClass:\"bg-main\",staticStyle:{\"min-height\":\"5rem\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Watch, Vue } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\n\nimport DatePicker from '@/components/forms/DatePicker.vue'\nimport InlineEdit from '@/components/forms/InlineEdit.vue'\nimport TextEditor from '@/components/forms/TextEditor.vue'\nimport TaskTable from '@/components/tables/TaskTable.vue'\nimport BaseMenuButton from '@/components/ui/BaseMenuButton.vue'\n\nimport { ProjectsModule } from '@/store/modules/projectsModule'\nimport { FinanceModule } from '@/store/modules/budgettracking'\nimport { UserModule } from '@/store/modules/userModule'\n\nimport { IDialog, IProject, ISnackbar, IUserData } from '@/interfaces'\n\nconst StoreUI = namespace('UI')\n\n@Component({\n components: {\n BaseMenuButton,\n DatePicker,\n InlineEdit,\n TaskTable,\n TextEditor,\n },\n})\nexport default class ProjectDialog extends Vue {\n @StoreUI.Action\n public showSnackbar!: (data: ISnackbar) => void\n\n @StoreUI.Action\n public showDialog!: (data: IDialog) => Promise\n\n abort = false\n dialog = false\n menuParticipants = false\n menuParticipantAdd = false\n menuParticipantAddId = ''\n isEdit = false\n state = {\n name: {\n disabled: false,\n loading: false,\n },\n is_active: {\n disabled: false,\n loading: false,\n },\n importance: {\n disabled: false,\n loading: false,\n },\n effort: {\n disabled: false,\n loading: false,\n },\n due_date: {\n disabled: false,\n loading: false,\n },\n main_responsibility_id: {\n disabled: false,\n loading: false,\n },\n menuParticipantAddId: {\n disabled: false,\n loading: false,\n },\n }\n highlightedTiktracEntry = ''\n projectData: IProject = {\n id: 0,\n name: '',\n description: '',\n is_active: true,\n is_default: false,\n importance: 0,\n effort: 0,\n due_date: null,\n tasks: [],\n users: [],\n creator: '',\n main_responsibility: null,\n main_responsibility_id: null,\n }\n // validator\n get nameRules() {\n return [\n (v) => !!v || this.$t('dialogs.projectDialog.nameRules.enterName'),\n (v) => v.length <= 100 || this.$t('dialogs.projectDialog.nameRules.nameLength'),\n ]\n }\n // tabs\n tab = 1\n\n get authorizeResponsibility() {\n return (\n !this.projectData.main_responsibility_id ||\n this.projectData.main_responsibility_id === this.userID\n )\n }\n\n /**\n * Get the user Id you need to verify\n */\n get userID() {\n return UserModule.getUserID\n }\n\n get getUserList() {\n return UserModule.getUserList || []\n }\n\n get getEffortSum() {\n let tasks = ProjectsModule.getTasks\n\n let allEfforts = 0\n\n for (let task of Object.values(tasks)) {\n if (task.project === this.projectData.id) {\n allEfforts += task.effort\n }\n }\n\n return allEfforts\n }\n\n /**\n * Get user that is currently working on the project (for creator)\n */\n get creatorName() {\n const creator_id = this.projectData.creator\n const creator = UserModule.getUserById(creator_id)\n if (!creator) {\n return ''\n }\n return creator.first_name + ' ' + creator.last_name\n }\n\n get projectBudgets() {\n return FinanceModule.getProjectBudgetList || []\n }\n\n get projectCosts() {\n return FinanceModule.getProjectCostsList || []\n }\n\n /**\n * Get all users that are member of the project\n */\n get getUserListFiltered() {\n const userList = UserModule.getUserList || []\n if (!this.isEdit) {\n return userList\n }\n return userList.filter((user) => this.projectData.users.includes(user.uid)) || []\n }\n\n /**\n * Get members of the project\n */\n get getParticipants() {\n const users = [] as Array\n const user_list = UserModule.getUserList\n\n if (!user_list) {\n return users\n }\n\n for (const user of this.projectData.users) {\n if (!user) {\n continue\n }\n\n for (const userEl of user_list) {\n if (user === userEl.uid) {\n users.push(userEl)\n }\n }\n }\n\n return users\n }\n\n get getParticipantCount() {\n return this.projectData.users.length\n }\n\n get getImportanceText() {\n if (!this.isEdit) {\n return this.$t('dialogs.projectDialog.importance.title')\n }\n switch (this.projectData.importance) {\n case 0:\n return this.$t('dialogs.projectDialog.importance.unimportant')\n case 1:\n return this.$t('dialogs.projectDialog.importance.someImportant')\n case 2:\n return this.$t('dialogs.projectDialog.importance.middle')\n case 3:\n return this.$t('dialogs.projectDialog.importance.important')\n case 4:\n return this.$t('dialogs.projectDialog.importance.veryImportant')\n default:\n return ''\n }\n }\n\n @Watch('dialog')\n onDialogToggle(val: boolean, oldVal: boolean) {\n if (val === oldVal) return\n if (!val) {\n // on close\n this.initDialog()\n this.initData()\n } else {\n // on open\n this.initDialog()\n }\n }\n\n @Watch('menuParticipants')\n onToggleMenuParticipants(val: boolean) {\n if (val) {\n this.menuParticipantAdd = false\n }\n }\n\n mounted() {\n // dependencies\n ProjectsModule.fetchProjects()\n UserModule.fetchUserList()\n FinanceModule.fetchProjectBudgets()\n FinanceModule.fetchProjectCosts()\n }\n\n initDialog() {\n this.abort = false\n }\n\n initData() {\n this.projectData = {\n id: 0,\n name: '',\n description: '',\n is_active: true,\n is_default: false,\n importance: 0,\n effort: 0,\n due_date: null,\n tasks: [],\n users: [],\n creator: '',\n main_responsibility: null,\n main_responsibility_id: null,\n }\n this.menuParticipantAdd = false\n this.isEdit = false\n }\n\n setProcessingState(value: boolean, property = '') {\n this.setDisabled(value, property)\n this.setLoading(value, property)\n }\n\n setDisabled(value: boolean, property = '') {\n if (property) {\n if (Object.prototype.hasOwnProperty.call(this.state, property)) {\n if (property === 'main_responsibility_id' && !value) {\n if (!this.authorizeResponsibility) {\n // prevent enabeling if another user is responsible for the project\n return\n }\n }\n this.state[property].disabled = value\n }\n } else {\n for (const prop in this.state) {\n this.state[prop].disabled = value\n }\n }\n }\n\n setLoading(value: boolean, property = '') {\n if (property) {\n if (Object.prototype.hasOwnProperty.call(this.state, property)) {\n this.state[property].loading = value\n }\n } else {\n for (const prop in this.state) {\n this.state[prop].loading = value\n }\n }\n }\n\n async addParticipant() {\n if (\n !this.menuParticipantAddId ||\n this.projectData.users.includes(this.menuParticipantAddId)\n ) {\n this.menuParticipants = false\n return\n }\n // add new participant\n this.projectData.users.push(this.menuParticipantAddId)\n await this.save('users')\n this.menuParticipants = false\n }\n\n async save(varName: string | null = null, callback: Function | null = null) {\n if (this.abort) {\n // no save on abort (e.g. on keypress ESC)\n return\n }\n if (varName !== null) {\n /**\n * update project\n */\n const project = ProjectsModule.getProjects[this.projectData?.id]\n if (!project) {\n return false\n }\n if (!Object.prototype.hasOwnProperty.call(project, varName)) {\n return false\n }\n if (!(await this.saveProperty(varName, project))) {\n // rollback changes\n this.projectData[varName] = project[varName]\n } else if (callback) {\n callback()\n }\n } else {\n /**\n * create new project\n */\n // verify project\n if (!this.projectData.name) {\n this.showSnackbar({\n text: `${this.$t('dialogs.projectDialog.snackBars.enterProjectName')}`,\n type: 'warning',\n })\n return\n }\n // if set, add `main_responsibility_id` to participants\n if (this.projectData.main_responsibility_id) {\n const main_responsibility_id = this.projectData.main_responsibility_id\n if (!this.projectData.users.includes(main_responsibility_id)) {\n this.projectData.users.push(main_responsibility_id)\n }\n }\n // start creation process\n this.setProcessingState(true)\n // create project\n const newProject = await ProjectsModule.addProjectAction(this.projectData)\n if (!newProject) {\n // abort creation process\n this.setProcessingState(false)\n return\n }\n // update project in popup\n this.projectData = { ...newProject }\n // finish creation process\n this.setProcessingState(false)\n this.isEdit = true\n }\n }\n\n async saveProperty(varName: string, project: IProject): Promise {\n /**\n * update helper\n */\n // only update primitive values on changes\n // (non-primitive values are always updated)\n if (typeof this.projectData[varName] !== 'object') {\n if (this.projectData[varName] === project[varName]) {\n console.log('NO CHANGES')\n return true\n }\n }\n // check if input is valid\n const ref = this.$refs[`ref-${varName}`] as any\n if (ref && !ref.valid) {\n return false\n }\n // start update process\n this.setProcessingState(true, varName)\n // save changes to one property\n const projectData = {} as IProject\n projectData.id = this.projectData.id\n projectData[varName] = this.projectData[varName]\n const response = await ProjectsModule.updateProjectAction(projectData).catch(() => {\n this.setProcessingState(false, varName)\n })\n if (!response) {\n return false\n }\n if (!this.authorizeResponsibility) {\n this.setLoading(false, varName)\n return true\n }\n this.setProcessingState(false, varName)\n return true\n }\n\n async deleteProject() {\n let consentText = `${this.$t('dialogs.projectDialog.snackBars.deleteProject')}`\n let pBudgets = this.projectBudgets.filter(\n (p) => p.project_id == this.projectData.id\n )\n let pCosts = this.projectCosts.filter((p) => p.project_id == this.projectData.id)\n\n if (pBudgets.length || pCosts.length) {\n let pBudget = 0\n let pCost = 0\n let costSentence = ''\n pBudgets.forEach((p) => (pBudget += p.amount))\n pCosts.forEach((p) => (pCost += p.amount))\n if (pCost) {\n costSentence =\n `${this.$t('dialogs.projectDialog.snackBars.costsOf')}` + pCost + ' €'\n }\n consentText +=\n `${this.$t('dialogs.projectDialog.snackBars.costsText')}` +\n pBudget +\n '€' +\n costSentence\n }\n\n const consent = await this.showDialog({\n text: consentText,\n type: 'warning',\n })\n if (!consent) {\n return\n }\n if (!(await ProjectsModule.deleteProjectAction(this.projectData.id))) {\n return\n }\n this.dialog = false\n this.showSnackbar({\n text: `${this.$t('dialogs.projectDialog.snackBars.deleteSuccess')}`,\n })\n }\n\n filterUserList(item, queryText) {\n let name = item.first_name + ' ' + item.last_name\n name = name.toLowerCase()\n const q = queryText.toLowerCase()\n return name.indexOf(q) > -1\n }\n\n public editProject(project: IProject) {\n this.projectData = { ...project }\n this.isEdit = true\n this.dialog = true\n if (!this.authorizeResponsibility) {\n // disable main responsibility input\n this.setDisabled(true, 'main_responsibility_id')\n }\n }\n\n public createProject() {\n this.initData()\n this.dialog = true\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProjectDialog.vue?vue&type=template&id=22ee7d80&scoped=true&\"\nimport script from \"./ProjectDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProjectDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProjectDialog.vue?vue&type=style&index=0&id=22ee7d80&prod&lang=scss&\"\nimport style1 from \"./ProjectDialog.vue?vue&type=style&index=1&id=22ee7d80&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"22ee7d80\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"transition\":\"dialog-bottom-transition\",\"content-class\":\"dialog-center dialog-full-height disable-scroll\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;_vm.abort = true}},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"bg-main\"},[_c('v-card-title',[_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"space-between\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('InlineEdit',{attrs:{\"classes\":\"text-h5 font-weight-bold primary--text\",\"hide-details\":\"\",\"placeholder\":_vm.$t('dialogs.taskDialog.taskTitlePlaceholder'),\"alwaysShowInput\":!_vm.isEdit,\"disabled\":_vm.disabled.name,\"loading\":_vm.disabled.name,\"rules\":_vm.nameRules,\"save\":() => _vm.save('name')},model:{value:(_vm.taskData.name),callback:function ($$v) {_vm.$set(_vm.taskData, \"name\", $$v)},expression:\"taskData.name\"}})],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"flex-nowrap\",attrs:{\"align\":\"center\"}},[_c('v-select',{attrs:{\"required\":\"\",\"color\":\"primary\",\"item-text\":\"name\",\"item-value\":\"id\",\"placeholder\":_vm.$t('dialogs.taskDialog.selectProjectPlaceholder'),\"disabled\":_vm.disabled.project,\"items\":_vm.getProjectList,\"loading\":_vm.disabled.project},on:{\"change\":_vm.updateSelProjects},model:{value:(_vm.taskData.project),callback:function ($$v) {_vm.$set(_vm.taskData, \"project\", $$v)},expression:\"taskData.project\"}}),(!_vm.isEdit)?_c('v-btn',{staticClass:\"ml-16\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.save()}}},[_c('v-icon',[_vm._v(\"mdi-check\")])],1):_vm._e(),_c('v-btn',{class:{ 'ml-16': _vm.isEdit },attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)],1),_c('v-card-text',[_c('div',{staticClass:\"container-properties-detail-dialog\"},[_c('v-autocomplete',{ref:\"ref-assigned_to_id\",attrs:{\"clearable\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('dialogs.taskDialog.assignedTo'),\"item-value\":\"uid\",\"disabled\":_vm.disabled.assigned_to_id,\"filter\":_vm.filterUserList,\"items\":_vm.getUserList,\"loading\":_vm.disabled.assigned_to_id},on:{\"blur\":function($event){return _vm.save('assigned_to_id')}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-img',{staticClass:\"mt-1\",attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/icon_account.svg')}})]},proxy:true},{key:\"selection\",fn:function({ item }){return [_c('span',[_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")])]}},{key:\"item\",fn:function({ item }){return [_c('span',[_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")])]}}]),model:{value:(_vm.taskData.assigned_to_id),callback:function ($$v) {_vm.$set(_vm.taskData, \"assigned_to_id\", $$v)},expression:\"taskData.assigned_to_id\"}}),_c('div',[_c('v-subheader',{staticStyle:{\"height\":\"auto\"}},[_vm._v(\" \"+_vm._s(_vm.getImportanceText)+\" \")]),_c('v-slider',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"ticks\":\"\",\"min\":\"0\",\"max\":\"4\",\"disabled\":_vm.disabled.importance,\"loading\":_vm.disabled.importance},on:{\"change\":function($event){return _vm.save('importance')}},model:{value:(_vm.taskData.importance),callback:function ($$v) {_vm.$set(_vm.taskData, \"importance\", _vm._n($$v))},expression:\"taskData.importance\"}})],1),_c('v-select',{attrs:{\"dense\":\"\",\"persistent-hint\":\"\",\"hint\":_vm.$t('dialogs.taskDialog.howUrgentIsTheTask'),\"placeholder\":_vm.$t('dialogs.taskDialog.urgencyPlaceholder'),\"disabled\":_vm.disabled.urgency,\"items\":_vm.getTaskUrgencyArray,\"loading\":_vm.disabled.urgency},on:{\"change\":function($event){return _vm.save('urgency')}},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-img',{staticClass:\"mt-2 mr-2\",attrs:{\"width\":\"14px\",\"height\":\"14px\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon}})]},proxy:true}]),model:{value:(_vm.taskData.urgency),callback:function ($$v) {_vm.$set(_vm.taskData, \"urgency\", _vm._n($$v))},expression:\"taskData.urgency\"}}),_c('v-text-field',{ref:\"ref-effort\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('dialogs.taskDialog.estimatedTimePlaceholder'),\"min\":\"0\",\"type\":\"number\",\"disabled\":_vm.disabled.effort,\"loading\":_vm.disabled.effort,\"rules\":_vm.numberRules},on:{\"change\":function($event){return _vm.save('effort')}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-img',{staticClass:\"mt-1\",attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/icon_effort.svg')}})]},proxy:true}]),model:{value:(_vm.taskData.effort),callback:function ($$v) {_vm.$set(_vm.taskData, \"effort\", _vm._n($$v))},expression:\"taskData.effort\"}}),_c('v-col',{staticStyle:{\"max-width\":\"10rem\"}},[_c('div',[_vm._v(_vm._s(_vm.$t('dialogs.taskDialog.createdBy.title')))]),_c('v-chip',[_vm._v(_vm._s(_vm.createdBy))])],1),_c('v-col',{staticClass:\"d-flex justify-center\",staticStyle:{\"max-width\":\"8.571rem\"}},[_c('v-switch',{attrs:{\"label\":_vm.$t('dialogs.taskDialog.createdBy.done'),\"disabled\":_vm.disabled.is_completed,\"loading\":_vm.disabled.is_completed},on:{\"change\":function($event){return _vm.save('is_completed')}},model:{value:(_vm.taskData.is_completed),callback:function ($$v) {_vm.$set(_vm.taskData, \"is_completed\", $$v)},expression:\"taskData.is_completed\"}})],1),(_vm.getTaskIsNotEmpty && _vm.creatorData?.msal_active)?_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[(_vm.taskConvertationsIsLoading)?_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}}):_c('div',{staticClass:\"ms_status_box\",style:({ background: _vm.getMsStatus ? '#E9EBF0' : 'none' }),on:{\"click\":_vm.updateMicrosoftSyncronization,\"mouseover\":(e) =>\n !_vm.getMsStatus\n ? (_vm.microsoftSwitcherIsHovered = true)\n : (_vm.microsoftSwitcherIsHovered = false),\"mouseout\":(e) =>\n _vm.getMsStatus\n ? (_vm.microsoftSwitcherIsHovered = true)\n : (_vm.microsoftSwitcherIsHovered = false)}},[(_vm.getMsStatus || _vm.microsoftSwitcherIsHovered)?_c('img',{attrs:{\"src\":require(\"@/assets/MIcrosoft_logo.png\"),\"width\":\"18\",\"height\":\"18\"}}):_c('img',{attrs:{\"src\":require(\"@/assets/Microsoft_logo_inactive.png\"),\"width\":\"18\",\"height\":\"18\"}}),_c('div',[_vm._v(\"Microsoft event\")])])],1):_vm._e(),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('BaseMenuButton',_vm._g(_vm._b({},'BaseMenuButton',attrs,false),on))]}}])},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.deleteTask()}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('dialogs.taskDialog.createdBy.delete'))+\" \")])],1)],1)],1)],1)],1)]),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(\" \"+_vm._s(_vm.$t('dialogs.taskDialog.notes'))+\" \")]),_c('v-tab',[_vm._v(\" \"+_vm._s(_vm.$t('ticktrack.views.user.timetracking.timeTracking'))+\" \")])],1),_c('v-tabs-items',{staticClass:\"specific-content-scroll\",model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"pt-3\",staticStyle:{\"min-height\":\"56vh\"}},[_c('v-col',{staticClass:\"h100\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('TextEditor',{staticClass:\"pt-0\",attrs:{\"save\":() => this.save('description')},model:{value:(_vm.taskData.description),callback:function ($$v) {_vm.$set(_vm.taskData, \"description\", $$v)},expression:\"taskData.description\"}})],1),_c('v-col',{staticClass:\"pl-0 pt-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('div',{staticClass:\"left-border mt-3\"},[_c('div',{style:({ minHeight: '40%' })},[_c('div',{staticClass:\"d-flex flex-row justify-start chips-select pl-3 mt-3\"},[_c('v-combobox',{staticClass:\"pt-0 mt-0 color-primary\",staticStyle:{\"max-width\":\"200px\"},attrs:{\"item-text\":\"name\",\"item-value\":\"id\",\"items\":_vm.getAllTags,\"label\":_vm.$t('homePage.taskDialogDesc.placeholderListTag')},on:{\"input\":_vm.saveTag},model:{value:(_vm.tagInput),callback:function ($$v) {_vm.tagInput=$$v},expression:\"tagInput\"}})],1),_c('div',{staticClass:\"chips-container\"},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-chip-group',{attrs:{\"column\":\"\",\"active-class\":\"primary--text\"}},_vm._l((_vm.getTaskTags),function(tag){return _c('v-chip',{key:tag.id,attrs:{\"close\":\"\"},on:{\"click:close\":function($event){return _vm.deleteTag(tag.id)}}},[_vm._v(\" \"+_vm._s(tag.name)+\" \")])}),1)],1)],1)]),_c('div',{staticClass:\"quick-creator creator-list v-sheet theme--light margin-custom\"},[(!_vm.checklistAddForm)?_c('div',{staticClass:\"wrapper\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){_vm.checklistAddForm = true}}},[_c('span',{staticClass:\"primary--text ml-3 add-task-heading\"},[_vm._v(\" \"+_vm._s(_vm.$t('homePage.taskDialogDesc.checklist'))+\" \")])]):_c('div',[_c('v-form',{staticClass:\"wrapper editing\",on:{\"submit\":function($event){$event.preventDefault();return _vm.saveChecklistItem()}}},[_c('v-text-field',{staticClass:\"name-input flex-2\",attrs:{\"autofocus\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"validate-on-blur\":\"\",\"type\":\"text\",\"placeholder\":_vm.$t('homePage.taskDialogDesc.checklistLabel'),\"rules\":_vm.nameRules},model:{value:(_vm.checklistAddFormInput),callback:function ($$v) {_vm.checklistAddFormInput=$$v},expression:\"checklistAddFormInput\"}}),_c('div',{staticClass:\"container-other-input\"},[_c('div',{staticClass:\"action-icons\"},[_c('v-btn',{attrs:{\"type\":\"submit\"}},[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\" mdi-check \")])],1),_c('v-btn',{on:{\"click\":function($event){return _vm.resetChecklistAddForm()}}},[_c('v-icon',[_vm._v(\" mdi-close \")])],1)],1)])],1)],1)]),_c('div',{staticClass:\"mx-auto scroll-list\",attrs:{\"max-width\":\"500\"}},[_c('v-list',{staticClass:\"pb-0\",attrs:{\"flat\":\"\"}},_vm._l((_vm.getChecklist),function(item,idx){return _c('v-list-item',{key:idx,on:{\"click\":function($event){return _vm.toggleChecklistItem(item)}}},[_c('v-list-item-icon',[_c('v-icon',{style:({\n fontSize: '15px !important',\n })},[_vm._v(\" \"+_vm._s(item.value ? 'mdi-checkbox-marked-circle' : 'mdi-checkbox-blank-circle-outline')+\" \")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"font-weight-bold\",domProps:{\"textContent\":_vm._s(item.text)}})],1)],1)}),1)],1)])])],1)],1)],1),_c('v-tab-item',[_c('TaskTimetrackingList',{staticClass:\"mt-10\",attrs:{\"task\":_vm.taskData,\"highlightedIssueId\":_vm.highlightedTiktracEntry}})],1)],1),_c('v-card-actions',{staticClass:\"bg-main\",staticStyle:{\"min-height\":\"5rem\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-data-table',{staticClass:\"bg-main-light\",attrs:{\"mobile-breakpoint\":\"0\",\"headers\":_vm.headers,\"items\":_vm.getIssues,\"items-per-page\":_vm.itemsPerPage,\"loading\":_vm.loading,\"page\":_vm.page},scopedSlots:_vm._u([(_vm.task.id)?{key:`body.prepend`,fn:function(){return [(!_vm.isAddingNewIssue)?_c('tr',[_c('td',{staticClass:\"row-add-issue text-body-1 primary--text\",attrs:{\"colspan\":_vm.headers.length},on:{\"click\":function($event){_vm.isAddingNewIssue = true}}},[_vm._v(\" \"+_vm._s(_vm.$t('tables.taskTimetrackingList.addTime'))+\" \")])]):_c('tr',[_c('td',[_c('DatePicker',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"range\":\"\",\"text-field\":\"\"},model:{value:(_vm.newIssue.dates),callback:function ($$v) {_vm.$set(_vm.newIssue, \"dates\", $$v)},expression:\"newIssue.dates\"}})],1),_c('td',[_c('TimePicker',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"text-field\":\"\"},model:{value:(_vm.newIssue.start),callback:function ($$v) {_vm.$set(_vm.newIssue, \"start\", $$v)},expression:\"newIssue.start\"}})],1),_c('td',[_c('TimePicker',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"text-field\":\"\"},model:{value:(_vm.newIssue.end),callback:function ($$v) {_vm.$set(_vm.newIssue, \"end\", $$v)},expression:\"newIssue.end\"}})],1),_c('td',[_c('InlineEdit',{attrs:{\"always-show-input\":\"\",\"hide-details\":\"\",\"type\":\"number\",\"toRepr\":(v) => _vm.formatDecimal(Number.parseInt(v) / 1000 / 60 / 60),\"fromRepr\":(v) => _vm.formatDecimal(Number.parseFloat(v) * 1000 * 60 * 60),\"rules\":_vm.numberRules,\"save\":_vm.addIssue},model:{value:(_vm.newIssue.pause),callback:function ($$v) {_vm.$set(_vm.newIssue, \"pause\", $$v)},expression:\"newIssue.pause\"}})],1),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"disabled\":\"\",\"hide-details\":\"\",\"readonly\":\"\",\"min\":\"0\",\"reverse\":\"\",\"value\":_vm.calcTimeForIssue(_vm.newIssue)}})],1),_c('td',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"disabled\":_vm.isAddingNewIssueProcess},on:{\"click\":function($event){return _vm.addIssue()}}},[_vm._v(\" mdi-check \")]),_c('v-icon',{attrs:{\"disabled\":_vm.isAddingNewIssueProcess},on:{\"click\":function($event){_vm.isAddingNewIssue = false}}},[_vm._v(\" mdi-close \")])],1)])]},proxy:true}:null,{key:\"item\",fn:function({ item }){return [_c('tr',{class:{ highlighted: item.id === _vm.highlightedIssueId }},[_c('td',{class:_vm.headers[0].align ? 'text-' + _vm.headers[0].align : ''},[_c('DatePicker',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"range\":\"\",\"save\":() => _vm.updateIssue(item)},model:{value:(item.dates),callback:function ($$v) {_vm.$set(item, \"dates\", $$v)},expression:\"item.dates\"}})],1),_c('td',{class:_vm.headers[1].align ? 'text-' + _vm.headers[1].align : ''},[_c('TimePicker',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"save\":() => _vm.updateIssue(item)},model:{value:(item.start),callback:function ($$v) {_vm.$set(item, \"start\", $$v)},expression:\"item.start\"}})],1),_c('td',{class:_vm.headers[2].align ? 'text-' + _vm.headers[2].align : ''},[_c('TimePicker',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"save\":() => _vm.updateIssue(item)},model:{value:(item.end),callback:function ($$v) {_vm.$set(item, \"end\", $$v)},expression:\"item.end\"}})],1),_c('td',{class:_vm.headers[3].align ? 'text-' + _vm.headers[3].align : ''},[_c('InlineEdit',{attrs:{\"hide-details\":\"\",\"type\":\"number\",\"toRepr\":(v) => _vm.formatDecimal(Number.parseInt(v) / 1000 / 60 / 60),\"fromRepr\":(v) => _vm.formatDecimal(Number.parseFloat(v) * 1000 * 60 * 60),\"rules\":_vm.numberRules,\"save\":() => _vm.updateIssue(item)},model:{value:(item.pause),callback:function ($$v) {_vm.$set(item, \"pause\", $$v)},expression:\"item.pause\"}})],1),_c('td',{class:_vm.headers[4].align ? 'text-' + _vm.headers[4].align : ''},[_c('span',{attrs:{\"title\":_vm.hoursToDecimal(_vm.calcTimeForIssue(item)) + ' h'}},[_vm._v(\" \"+_vm._s(_vm.calcTimeForIssue(item))+\" \")])]),_c('td',{class:_vm.headers[5].align ? 'text-' + _vm.headers[5].align : ''},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"disabled\":_vm.isCurrentTaskActive(item.id)},on:{\"click\":function($event){return _vm.editIssue(item)}}},[_vm._v(\" mdi-pencil \")]),_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.deleteIssue(item)}}},[_vm._v(\" mdi-delete \")])],1)])]}}],null,true)}),_c('DialogContent',{attrs:{\"isEdit\":true},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('TrackingEntry',{attrs:{\"busyListElemId\":_vm.busyListElemId,\"isEdit\":true},on:{\"updateSuccess\":_vm.getAPIissues,\"handleCloseDialog\":_vm.handleCloseDialog}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\n\nimport DatePicker from '@/components/forms/DatePicker.vue'\nimport TimePicker from '@/components/forms/TimePicker.vue'\nimport InlineEdit from '@/components/forms/InlineEdit.vue'\nimport DialogContent from '@/components/dialogs/DialogContent.vue'\nimport TrackingEntry from '@/components/tiktrac/forms/TrackingEntry.vue'\n\nimport {\n decimalToHours,\n formatterDecimalNumber,\n toISODateString,\n toFixedNumber,\n} from '@/services/datetime'\n\nimport type Tiktrac from 'vue/types/tiktrac'\nimport { IDialog, ISnackbar, ITask } from '@/interfaces'\nimport { generateIssueID } from '@/services/tiktrac'\n\nconst StoreTiktrac = namespace('Timetracking')\nconst StoreUI = namespace('UI')\n\n@Component({\n components: {\n InlineEdit,\n DatePicker,\n TimePicker,\n TrackingEntry,\n DialogContent,\n },\n})\nexport default class TaskTimetrackingList extends Vue {\n @Prop()\n readonly task!: ITask\n\n @Prop()\n readonly highlightedIssueId!: string\n\n @StoreTiktrac.Action\n public doAddIssue!: (data: {\n entry: Tiktrac.BusyListElem\n }) => Promise\n\n @StoreTiktrac.Action\n public doUpdate!: (data: {\n issueId: string\n entry: Tiktrac.BusyListElemPartial\n }) => Promise\n\n @StoreTiktrac.Action\n public doDeleteIssue!: (data: {\n issueId: string\n msSeriesMasterId?: string\n }) => Promise\n\n @StoreUI.Action\n public showSnackbar!: (data: ISnackbar) => void\n\n @StoreUI.Action\n public showDialog!: (data: IDialog) => Promise\n\n @StoreTiktrac.Getter\n public getActiveTimer!: string\n\n isAddingNewIssue = false\n isAddingNewIssueProcess = false\n dialog = false\n busyListElemId = ''\n itemsPerPage = 10\n page = 1\n updateProcess = false\n loading = false\n newIssue = {\n dates: [],\n start: 0,\n end: 0,\n pause: 0,\n }\n issues: Tiktrac.BusyList = {}\n\n // validation\n get numberRules() {\n return [\n (v) => !!v || this.$t('ticktrack.tables.taskTimetrackingList.numberRules.enter'),\n (v) =>\n Number.parseFloat(v) >= 0 ||\n this.$t('ticktrack.tables.taskTimetrackingList.numberRules.positive'),\n ]\n }\n\n get headers() {\n return [\n {\n text: this.$t('tables.taskTimetrackingList.headers.date'),\n value: 'date',\n },\n {\n text: this.$t('tables.taskTimetrackingList.headers.starts'),\n value: 'start',\n },\n {\n text: this.$t('tables.taskTimetrackingList.headers.end'),\n value: 'end',\n },\n {\n text: this.$t('tables.taskTimetrackingList.headers.pause'),\n value: 'pause',\n },\n {\n text: this.$t('tables.taskTimetrackingList.headers.time'),\n value: 'time',\n align: 'end',\n },\n { text: '', value: 'actions' },\n ]\n }\n\n get getIssues() {\n const issues = [] as Array\n for (const issue of Object.values(this.issues)) {\n const dStart = new Date(issue.start)\n const dEnd = new Date(issue.end)\n const dateStrings = [toISODateString(dStart), toISODateString(dEnd)]\n let time = issue.end - issue.start - issue.pause\n time = time / 1000 / 60 / 60\n issues.push({\n id: issue.id,\n dates: dateStrings,\n start: issue.start,\n end: issue.end,\n pause: issue.pause,\n time: decimalToHours(time),\n task: issue.task,\n })\n }\n\n issues.sort((a: any, b: any) => {\n return b.start - a.start\n })\n\n return issues\n }\n\n @Watch('isAddingNewIssue')\n resetTiktracField(value) {\n if (!value) {\n Object.assign(this.newIssue, this.initialStateOfTiktrac())\n }\n }\n\n @Watch('task', { immediate: true })\n onTaskLoad(task: ITask, oldTask: ITask) {\n if (task?.id === oldTask?.id) return\n if (!task.id) {\n this.issues = {}\n return\n }\n this.fetchIssues()\n }\n\n @Watch('getIssues')\n highlightIssue(issues) {\n if (!issues || !issues.length) {\n return\n }\n if (!this.highlightedIssueId) {\n return\n }\n // find issue\n const idx = issues.findIndex((i) => i.id === this.highlightedIssueId)\n if (idx === -1) {\n return\n }\n // calc page that contains the issue\n this.page = Math.ceil((idx + 1) / this.itemsPerPage)\n }\n\n initialStateOfTiktrac() {\n this.newIssue = {\n dates: [],\n start: 0,\n end: 0,\n pause: 0,\n }\n }\n\n getAPIissues() {\n this.$http.get(`/tiktrac/timetracking/tasks/${this.task.id}/`).then((response) => {\n this.issues = response.data\n this.loading = false\n })\n }\n\n fetchIssues() {\n this.issues = {}\n if (!this.task?.id) {\n return\n }\n this.loading = true\n this.getAPIissues()\n }\n\n calcTimeForIssue(issue, formatFunction: Function | null = decimalToHours) {\n if (formatFunction === null) {\n formatFunction = (a) => a\n }\n if (!issue.start || !issue.end) {\n return formatFunction(0)\n }\n // get date\n let dateStart = new Date()\n let dateEnd = new Date()\n if (issue.dates.length === 2) {\n dateStart = new Date(issue.dates[0])\n dateEnd = new Date(issue.dates[1])\n }\n // get time\n let dateTimeStart = new Date(issue.start)\n let dateTimeEnd = new Date(issue.end)\n // merge date and time\n dateStart.setHours(dateTimeStart.getHours())\n dateStart.setMinutes(dateTimeStart.getMinutes())\n dateEnd.setHours(dateTimeEnd.getHours())\n dateEnd.setMinutes(dateTimeEnd.getMinutes())\n // get pause\n const pause = isNaN(issue.pause) || issue.pause < 0 ? 0 : issue.pause\n // calc time difference\n let diff = dateEnd.getTime() - dateStart.getTime() - pause\n diff = diff / 60 / 60 / 1000\n if (diff < 0) {\n diff = 0\n }\n return formatFunction(diff)\n }\n\n formatDecimal(number: number): number {\n return toFixedNumber(number)\n }\n\n hoursToDecimal(hours: string) {\n const idxDelimiter = hours.indexOf(':')\n const h = Number.parseInt(hours.substr(0, idxDelimiter))\n const m = Number.parseInt(hours.substr(idxDelimiter + 1))\n const decimal = h + m / 60\n return formatterDecimalNumber.format(decimal)\n }\n\n addIssue() {\n this.isAddingNewIssueProcess = true\n // validate issue\n if (!this.validateNewIssue()) {\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.checkInputError'\n )}`,\n type: 'error',\n })\n this.isAddingNewIssueProcess = false\n return\n }\n\n const { issueId } = generateIssueID()\n // parse values\n const start = this.mergeDateAndTime(this.newIssue.dates[0], this.newIssue.start)\n const end = this.mergeDateAndTime(this.newIssue.dates[1], this.newIssue.end)\n const pause = this.newIssue.pause * 60 * 60 * 1000\n // create new issue\n const issue: Tiktrac.BusyListElem = {\n id: issueId,\n start: start.getTime(),\n end: end.getTime(),\n pause: pause,\n status: 1, // employee is working\n status_descr: '',\n split: 0,\n split_count: 0,\n project: this.task.project || 0,\n task: this.task.id,\n taskName: this.task.name,\n taskCompleted: this.task.is_completed,\n }\n // save issue\n this.doAddIssue({ entry: issue })\n .then(() => {\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.createSuccess'\n )}`,\n type: 'success',\n })\n })\n .catch((error: Tiktrac.Response) => {\n if (error.responseCode === 409) {\n // conflict\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.timesCollideError'\n )}`,\n type: 'error',\n })\n } else {\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.createError'\n )}`,\n type: 'error',\n })\n }\n })\n .finally(() => {\n this.isAddingNewIssue = false\n this.isAddingNewIssueProcess = false\n this.fetchIssues()\n })\n }\n\n validateNewIssue() {\n if (!this.calcTimeForIssue(this.newIssue, null)) {\n return false\n }\n if (this.newIssue.dates.length !== 2) {\n return false\n }\n if (this.newIssue.start <= 0 || this.newIssue.end <= 0 || this.newIssue.pause < 0) {\n return false\n }\n return true\n }\n\n /**\n * Create a new DateTime object setting the\n * year, month and day according to `date` and the\n * time according to `time`.\n *\n * @param date Date string in format like '2022-03-07'\n * @param time Unix timestamp in milliseconds\n */\n mergeDateAndTime(date: string, time: number): Date {\n const dateDate = new Date(date)\n const dateTime = new Date(time)\n // TODO use UTC?\n dateTime.setDate(dateDate.getDate())\n dateTime.setMonth(dateDate.getMonth())\n dateTime.setFullYear(dateDate.getFullYear())\n\n return dateTime\n }\n\n updateIssue(issue) {\n if (this.updateProcess) return\n if (!issue || !issue.id) return\n\n const start = this.mergeDateAndTime(issue.dates[0], issue.start)\n const end = this.mergeDateAndTime(issue.dates[1], issue.end)\n\n const entry: Tiktrac.BusyListElemPartial = {\n start: start.getTime(),\n end: end.getTime(),\n pause: issue.pause,\n }\n const data = {\n issueId: issue.id,\n entry: entry,\n }\n this.doUpdate(data)\n .then(() => {\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.updateSuccess'\n )}`,\n type: 'success',\n })\n })\n .catch((error: Tiktrac.Response) => {\n if (error.responseCode === 409) {\n // conflict\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.timesCollideError'\n )}`,\n type: 'error',\n })\n } else {\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.updateError'\n )}`,\n type: 'error',\n })\n }\n })\n .finally(() => {\n this.updateProcess = false\n })\n }\n\n editIssue(issue: Tiktrac.BusyListElem) {\n this.busyListElemId = issue.id\n this.dialog = true\n }\n\n async deleteIssue(issue: Tiktrac.BusyListElem) {\n const consent = await this.showDialog({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.deleteDialog'\n )}`,\n })\n if (!consent) {\n return\n }\n\n const data = {\n issueId: issue.id,\n }\n\n this.doDeleteIssue(data)\n .then(() => {\n // delete issue from local list\n this.$delete(this.issues, issue.id)\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.deleteSuccess'\n )}`,\n type: 'success',\n })\n })\n .catch((error: Tiktrac.Response) => {\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.deleteError'\n )}`,\n type: 'error',\n })\n })\n }\n\n isCurrentTaskActive(id) {\n if (!id) {\n return\n }\n\n return this.getActiveTimer === id\n }\n handleCloseDialog() {\n this.dialog = !this.dialog\n }\n}\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TaskTimetrackingList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TaskTimetrackingList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TaskTimetrackingList.vue?vue&type=template&id=92c81be2&scoped=true&\"\nimport script from \"./TaskTimetrackingList.vue?vue&type=script&lang=ts&\"\nexport * from \"./TaskTimetrackingList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TaskTimetrackingList.vue?vue&type=style&index=0&id=92c81be2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"92c81be2\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Watch, Vue } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nimport InlineEdit from '@/components/forms/InlineEdit.vue'\nimport TextEditor from '@/components/forms/TextEditor.vue'\nimport TaskTimetrackingList from '@/components/tiktrac/tables/TaskTimetrackingList.vue'\nimport BaseMenuButton from '@/components/ui/BaseMenuButton.vue'\n\nimport { ProjectsModule } from '@/store/modules/projectsModule'\nimport { UserModule } from '@/store/modules/userModule'\n\nimport { IDialog, ISnackbar, ITag, ITagList, ITask, IUserData } from '@/interfaces'\nimport type Tiktrac from 'vue/types/tiktrac'\nimport { getAccessMSToken } from '@/plugins/msal'\nimport { getMonth } from '@/services/tiktrac'\n\nconst StoreUI = namespace('UI')\nconst StoreTiktrac = namespace('Timetracking')\n\n@Component({\n components: {\n BaseMenuButton,\n InlineEdit,\n TaskTimetrackingList,\n TextEditor,\n },\n})\nexport default class TaskDialog extends Vue {\n @StoreUI.Action\n public showSnackbar!: (data: ISnackbar) => void\n\n @StoreUI.Action\n public showDialog!: (data: IDialog) => Promise\n\n @StoreTiktrac.Getter\n public getBusyList!: Tiktrac.BusyList\n\n @StoreTiktrac.Action\n public fetchTimetracking!: (month: string) => Promise\n\n abort = false\n dialog = false\n isEdit = false\n disabled = {\n assigned_to_id: false,\n effort: false,\n is_completed: false,\n name: false,\n project: false,\n urgency: false,\n importance: false,\n }\n // tabs\n tab = 0\n // tags\n tagInput: ITag | string | null = ''\n // checklist\n checklistAddFormInput = ''\n checklistAddForm = false\n\n highlightedTiktracEntry = ''\n taskData: ITask = {\n id: 0,\n name: '',\n is_completed: false,\n urgency: 0,\n importance: 0,\n description: '',\n created: '',\n tags: [],\n notes: {},\n project: 0,\n }\n\n taskConvertationsIsLoading = false\n\n busyList = {}\n\n microsoftSwitcherIsHovered = false\n\n // validator\n get nameRules() {\n return [\n (v) => !!v || `${this.$t('dialogs.taskDialog.nameRules.enter')}`,\n (v) => v.length <= 100 || `${this.$t('dialogs.taskDialog.nameRules.length')}`,\n ]\n }\n get numberRules() {\n return [\n (v) =>\n typeof v === 'number' ||\n `${this.$t('dialogs.taskDialog.numberRules.positive')}`,\n (v) => v >= 0 || `${this.$t('dialogs.taskDialog.numberRules.positive')}`,\n ]\n }\n\n get getProjectList() {\n return Object.values(ProjectsModule.getProjects)\n }\n\n get getUserList() {\n const project = ProjectsModule.getProjects[this.taskData.project || 0]\n return (\n UserModule.getUserList?.filter((user) => project?.users.includes(user.uid)) || []\n )\n }\n\n get createdBy() {\n const creator_id = this.taskData.user || ''\n const creator = UserModule.getUserById(creator_id)\n if (!creator) {\n return ''\n }\n return creator.first_name + ' ' + creator.last_name\n }\n\n get creatorData() {\n const creator_id = this.taskData.user || ''\n const creator = UserModule.getUserById(creator_id)\n\n return creator\n }\n\n get getTaskUrgencyIcon() {\n const urgency = this.taskData.urgency\n return ProjectsModule.getTaskUrgency(urgency).icon\n }\n\n get getTaskUrgencyArray() {\n const urgencies: Array = []\n for (let i = 0; i < ProjectsModule.taskUrgency.length; i++) {\n urgencies.push({\n text: ProjectsModule.getTaskUrgency(i).text,\n value: i,\n })\n }\n return urgencies\n }\n get getImportanceText() {\n if (!this.isEdit) {\n return this.$t('dialogs.projectDialog.importance.title')\n }\n switch (this.taskData.importance) {\n case 0:\n return this.$t('dialogs.projectDialog.importance.unimportant')\n case 1:\n return this.$t('dialogs.projectDialog.importance.someImportant')\n case 2:\n return this.$t('dialogs.projectDialog.importance.middle')\n case 3:\n return this.$t('dialogs.projectDialog.importance.important')\n case 4:\n return this.$t('dialogs.projectDialog.importance.veryImportant')\n default:\n return ''\n }\n }\n\n get getAllTags(): Array {\n let allTags = this.$deepCopy(ProjectsModule.getAllTags) as ITagList\n this.getTaskTags.forEach((tag: ITag) => {\n // remove tags that are already used for this task\n delete allTags[tag.id]\n })\n // return array sorted by name\n return Object.values(allTags).sort((a, b) =>\n a.name === b.name ? 0 : a.name < b.name ? -1 : 1\n )\n }\n\n get getTaskTags(): Array {\n let tags = [] as Array\n\n this.taskData.tags?.forEach((tagId) => {\n if (ProjectsModule.getAllTags[tagId]) {\n tags.push(ProjectsModule.getAllTags[tagId])\n }\n })\n // return array sorted by name\n return tags.sort((a, b) => (a.name === b.name ? 0 : a.name < b.name ? -1 : 1))\n }\n\n get getChecklist() {\n return ProjectsModule.getTasks[this.taskData?.id]?.notes?.checklist || []\n }\n\n get getTaskIsNotEmpty() {\n for (const t in this.getBusyList) {\n const elem = this.getBusyList[t]\n if (elem.task == this.taskData.id) return true\n }\n return false\n }\n\n get getMsStatus() {\n let list = {}\n for (let entry in this.busyList) {\n if (this.busyList[entry].task === this.taskData.id) {\n list[entry] = this.busyList[entry]\n }\n }\n for (let i in list) {\n if (!list[i].is_ms_event) {\n return false\n } else {\n return true\n }\n }\n\n return false\n }\n\n @Watch('dialog')\n async onDialogToggle(val: boolean, oldVal: boolean) {\n if (val === oldVal) return\n if (!val) {\n // on close\n this.save('description')\n this.initDialog()\n this.initData()\n } else {\n // on open\n this.initDialog()\n // quickfix: this fetches the task tags only when needed to improve the performance for `GET /api/task/`\n const task = await ProjectsModule.fetchTagsForTask(this.taskData.id)\n this.taskData.tags = task.tags\n }\n }\n\n @Watch('getBusyList')\n recalculateMsStatus() {\n this.busyList = this.$deepCopy(this.getBusyList)\n }\n\n mounted() {\n // dependencies\n ProjectsModule.fetchProjects()\n ProjectsModule.fetchAllTags()\n UserModule.fetchUserList()\n this.busyList = this.$deepCopy(this.getBusyList)\n }\n\n initDialog() {\n this.abort = false\n }\n\n initData() {\n this.taskData = {\n id: 0,\n name: '',\n is_completed: false,\n importance: 0,\n urgency: 0,\n description: '',\n created: '',\n tags: [],\n notes: {},\n project: 0,\n }\n this.isEdit = false\n }\n\n setDisabled(value: boolean, property = '') {\n if (property) {\n if (Object.prototype.hasOwnProperty.call(this.disabled, property)) {\n this.disabled[property] = value\n }\n } else {\n for (const prop in this.disabled) {\n this.disabled[prop] = value\n }\n }\n }\n\n saveTag() {\n if (!this.tagInput) {\n return\n }\n let tag = { id: 0, name: '', created_by: '' }\n if (typeof this.tagInput === 'string') {\n tag.name = this.tagInput\n } else {\n const tags = ProjectsModule.getTasks[this.taskData.id].tags\n if (!tags || tags.includes(this.tagInput.id)) {\n // tag already in list\n this.$nextTick(() => {\n this.tagInput = ''\n })\n return\n }\n tag = this.tagInput\n }\n ProjectsModule.addTagToTaskAction({\n taskId: this.taskData.id,\n tag: tag,\n }).finally(() => {\n this.tagInput = ''\n })\n }\n\n deleteTag(tagId: number) {\n ProjectsModule.deleteTagFromTaskTaskAction({\n tagId: tagId,\n taskId: this.taskData.id,\n })\n }\n\n saveChecklistItem() {\n if (this.checklistAddFormInput === '') {\n return\n }\n if (!this.taskData.notes.checklist) {\n this.taskData.notes.checklist = []\n }\n this.taskData.notes.checklist.push({\n value: false,\n text: this.checklistAddFormInput,\n })\n\n this.save('notes', () => {\n // TODO When the checklist was empty before this, the DOM is not updated.\n // update local task representation\n this.$set(\n this.taskData.notes,\n 'checklist',\n ProjectsModule.getTasks[this.taskData.id].notes.checklist\n )\n\n this.resetChecklistAddForm()\n })\n }\n\n async toggleChecklistItem(item: { value: boolean; text: string }) {\n item.value = !item.value\n\n await this.save('notes', () => {\n // on success\n // update local task representation\n this.$set(\n this.taskData.notes,\n 'checklist',\n ProjectsModule.getTasks[this.taskData.id].notes.checklist\n )\n })\n // on error\n item.value = !item.value\n }\n\n resetChecklistAddForm() {\n this.checklistAddForm = false\n this.checklistAddFormInput = ''\n }\n\n async updateMicrosoftSyncronization() {\n const ms_auth = await getAccessMSToken()\n this.taskConvertationsIsLoading = true\n const intent = !this.getMsStatus\n if (intent) {\n Vue.prototype.$http\n .post('/overall/convert-to-microsoft/', {\n task: this.taskData,\n ms_auth: ms_auth,\n intent: 'convert',\n })\n .then((res) => {})\n .catch((err) => {})\n .finally(() => {\n this.taskConvertationsIsLoading = false\n const month = getMonth()\n\n this.fetchTimetracking(month)\n })\n } else {\n Vue.prototype.$http\n .post('/overall/convert-to-microsoft/', {\n task: this.taskData,\n ms_auth: ms_auth,\n intent: 'reconvert',\n })\n .then((res) => {})\n .catch((err) => {})\n .finally(() => {\n this.taskConvertationsIsLoading = false\n const month = getMonth()\n\n this.fetchTimetracking(month)\n })\n }\n }\n\n async save(varName: string | null = null, callback: Function | null = null) {\n if (this.abort) {\n // no save on abort (e.g. on keypress ESC)\n return\n }\n if (varName !== null) {\n /**\n * update task\n */\n const task = ProjectsModule.getTasks[this.taskData?.id]\n if (!task) {\n return false\n }\n if (!Object.prototype.hasOwnProperty.call(task, varName)) {\n return false\n }\n if (!(await this.saveProperty(varName, task))) {\n this.taskData[varName] = task[varName]\n } else if (callback) {\n callback()\n }\n } else {\n /**\n * create new task\n */\n // verify task\n if (!this.taskData.name) {\n this.showSnackbar({\n text: `${this.$t('dialogs.taskDialog.snackBars.enterNameWarning')}`,\n type: 'warning',\n })\n return\n }\n // set default project when not set\n if (!this.taskData.project) {\n this.taskData.project =\n Object.values(ProjectsModule.getProjects).find((p) => p.is_default)?.id || 0\n }\n // start creation process\n this.setDisabled(true)\n // create task\n const newTask = await ProjectsModule.addTaskAction({\n projectId: this.taskData.project || 0,\n task: this.taskData,\n })\n if (!newTask) {\n // abort creation process\n this.setDisabled(false)\n return\n }\n // update task in popup\n this.taskData = { ...newTask }\n // finish creation process\n this.setDisabled(false)\n this.isEdit = true\n }\n }\n\n async saveProperty(varName: string, task: ITask): Promise {\n /**\n * update helper\n */\n // only update primitive values on changes\n // (non-primitive values are always updated)\n if (typeof this.taskData[varName] !== 'object') {\n if (this.taskData[varName] === task[varName]) {\n console.log('NO CHANGES')\n return true\n }\n }\n // check if input is valid\n const ref = this.$refs[`ref-${varName}`] as any\n if (ref && !ref.valid) {\n return false\n }\n // start update process\n this.setDisabled(true, varName)\n // save changes to one property\n const taskData = {} as ITask\n taskData[varName] = this.taskData[varName]\n const data = {\n projectId: this.taskData.project || 0,\n task: taskData,\n taskId: task.id,\n }\n if (!(await ProjectsModule.updateTaskAction(data))) {\n this.showSnackbar({\n text: `${this.$t('dialogs.taskDialog.snackBars.updateTaskError')}`,\n type: 'error',\n })\n this.setDisabled(false, varName)\n return false\n }\n this.setDisabled(false, varName)\n return true\n }\n\n async deleteTask() {\n const consent = await this.showDialog({\n text: `${this.$t('dialogs.taskDialog.snackBars.deleteTaskWarning')}`,\n type: 'warning',\n })\n if (!consent) {\n return\n }\n ProjectsModule.deleteTaskAction({\n id: this.taskData.id,\n projectId: this.taskData.project,\n })\n .then(() => {\n this.dialog = false\n this.showSnackbar({\n text: `${this.$t('dialogs.taskDialog.snackBars.deleteTaskSuccess')}`,\n })\n })\n .catch(() => {\n this.showSnackbar({\n text: `${this.$t('dialogs.taskDialog.snackBars.deleteTaskError')}`,\n type: 'error',\n })\n })\n }\n\n updateSelProjects(val: number) {\n this.taskData.project = val\n this.save('project')\n }\n\n filterUserList(item, queryText) {\n let name = item.first_name + ' ' + item.last_name\n name = name.toLowerCase()\n const q = queryText.toLowerCase()\n return name.indexOf(q) > -1\n }\n\n public editTask(task: ITask) {\n this.taskData = { ...task }\n this.taskData.project = task.project || 0\n this.isEdit = true\n this.dialog = true\n }\n\n public createTask(projectId = 0) {\n this.initData()\n if (projectId) {\n this.taskData.project = projectId\n }\n this.dialog = true\n }\n\n public editTimetracking(item: Tiktrac.BusyListElem) {\n const task = ProjectsModule.getTasks[item.task || 0]\n if (!task) {\n this.showSnackbar({\n text: `${this.$t('dialogs.taskDialog.snackBars.entryWarning')}`,\n type: 'warning',\n })\n return\n }\n this.tab = 1\n this.taskData = { ...task }\n this.isEdit = true\n this.dialog = true\n this.highlightedTiktracEntry = item.id\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TaskDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TaskDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TaskDialog.vue?vue&type=template&id=697d1344&scoped=true&\"\nimport script from \"./TaskDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./TaskDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TaskDialog.vue?vue&type=style&index=0&id=697d1344&prod&lang=scss&\"\nimport style1 from \"./TaskDialog.vue?vue&type=style&index=1&id=697d1344&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"697d1344\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-menu',{attrs:{\"offset-y\":\"\",\"min-width\":\"auto\",\"transition\":\"scale-transition\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [(_vm.isTextField)?_c('v-text-field',_vm._g(_vm._b({class:_vm.classes,attrs:{\"readonly\":\"\",\"clearable\":!_vm.isReadonly,\"dense\":_vm.isDense,\"disabled\":_vm.isReadonly,\"hide-details\":_vm.isHideDetails,\"label\":_vm.label,\"placeholder\":_vm.placeholder,\"prepend-icon\":_vm.icon,\"value\":_vm.getDateString},on:{\"click:clear\":_vm.clear},scopedSlots:_vm._u([(_vm.img)?{key:\"prepend\",fn:function(){return [_c('v-img',{staticClass:\"mt-1\",attrs:{\"contain\":\"\",\"width\":\"1rem\",\"height\":\"1rem\",\"src\":_vm.img}})]},proxy:true}:null],null,true)},'v-text-field',attrs,false),_vm.isReadonly ? {} : on)):_c('v-input',_vm._g(_vm._b({class:_vm.classes,attrs:{\"readonly\":\"\",\"dense\":_vm.isDense,\"hide-details\":_vm.isHideDetails,\"label\":_vm.label,\"placeholder\":_vm.placeholder,\"prepend-icon\":_vm.icon},scopedSlots:_vm._u([(_vm.img)?{key:\"prepend\",fn:function(){return [_c('v-img',{staticClass:\"mt-1\",attrs:{\"contain\":\"\",\"width\":\"1rem\",\"height\":\"1rem\",\"src\":_vm.img}})]},proxy:true}:null],null,true)},'v-input',attrs,false),_vm.isReadonly ? {} : on),[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getDateString)}})])]}}]),model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[(_vm.menu)?_c('v-date-picker',{attrs:{\"locale\":_vm.$t('forms.datePicker.locale'),\"min\":\"1950-01-01\",\"disabled\":_vm.disabled,\"range\":_vm.range},on:{\"change\":_vm.close},model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v},expression:\"date\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop, VModel, Watch } from 'vue-property-decorator'\nimport { isProp } from '@/services/common'\nimport { formatterDate } from '@/services/datetime'\n\n@Component({})\nexport default class DatePicker extends Vue {\n @VModel({ default: null })\n date!: string | Array | null\n\n @Prop()\n readonly classes?: string\n\n @Prop()\n readonly dense?: string\n\n @Prop()\n readonly hideDetails?: string\n\n @Prop() // mdi icon\n readonly icon?: string\n\n @Prop() // url to image file\n readonly img?: string\n\n @Prop()\n readonly label?: string\n\n @Prop()\n readonly placeholder?: string\n\n @Prop()\n readonly range?: boolean\n\n @Prop({ type: [String, Boolean] })\n readonly readonly?: string | boolean\n\n @Prop({ type: [Function, Promise] })\n readonly save?: Function\n\n @Prop()\n readonly textField?: string\n\n disabled = false\n menu = false\n origValue: string | Array | null = null\n\n get isDense() {\n return isProp(this.dense)\n }\n\n get isHideDetails() {\n return isProp(this.hideDetails)\n }\n\n get isReadonly() {\n return isProp(this.readonly)\n }\n\n get isTextField() {\n return isProp(this.textField)\n }\n\n get getDelimiter() {\n return this.isTextField ? ' - ' : '
'\n }\n\n get getDateString() {\n // empty value\n if (!this.date) return ''\n // check if date is array (`range` == true)\n if (Array.isArray(this.date)) {\n // TODO display date as string in local timezone\n // TODO save date as UTC date string\n // empty range\n if (!this.date.length) return ''\n // build date string from range values\n let dateString = formatterDate.format(new Date(this.date[0]))\n const dateEnd =\n this.date.length > 1 ? formatterDate.format(new Date(this.date[1])) : ''\n if (dateEnd && dateEnd !== dateString) {\n dateString += this.getDelimiter + dateEnd\n }\n return dateString\n }\n // return formated single date\n return formatterDate.format(new Date(this.date))\n }\n\n @Watch('menu')\n onToggleMenu(menu: boolean) {\n if (menu) {\n /**\n * on open\n */\n this.origValue = Array.isArray(this.date) ? [...this.date] : this.date\n } else {\n /**\n * on close\n */\n // call `close()` once\n if (!this.disabled) {\n this.close()\n }\n }\n }\n\n hasChanged() {\n if (Array.isArray(this.date)) {\n if (this.date.length !== this.origValue?.length) {\n return true\n }\n for (let i = 0; i < this.date.length; i++) {\n if (this.date[i] !== this.origValue[i]) {\n return true\n }\n }\n return false\n } else {\n return this.date !== this.origValue\n }\n }\n\n clear() {\n this.origValue = this.date\n this.date = null\n this.close()\n }\n\n close() {\n this.disabled = true\n this.$nextTick(async () => {\n // duplicate value when only one date selected in ranged mode\n if (Array.isArray(this.date) && this.date.length === 1) {\n this.date.push(this.date[0])\n }\n // save and emit only when value has changed\n if (this.hasChanged()) {\n // user save function\n if (this.save) {\n await this.save(this.date)\n }\n // emit changes\n this.$emit('save', this.date)\n }\n // close menu\n this.menu = false\n this.$nextTick(() => {\n this.disabled = false\n })\n })\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DatePicker.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DatePicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DatePicker.vue?vue&type=template&id=6427270c&scoped=true&\"\nimport script from \"./DatePicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./DatePicker.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DatePicker.vue?vue&type=style&index=0&id=6427270c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6427270c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(!_vm.isAlwaysShowInput && !_vm.editing)?_c('div',{class:_vm.getClasses,on:{\"click\":_vm.open}},[_vm._t(\"default\",function(){return [_vm._v(_vm._s(_vm.valueRepr))]})],2):_vm._e(),_c('div',{class:{ 'd-none': !_vm.isAlwaysShowInput && !_vm.editing },on:{\"!blur\":function($event){return _vm.close.apply(null, arguments)},\"!keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.close.apply(null, arguments)}}},[_vm._t(\"input\",function(){return [(_vm.type === 'text')?_c('v-text-field',{ref:\"ref\",attrs:{\"dense\":\"\",\"outlined\":_vm.isOutlined,\"autofocus\":!_vm.isAlwaysShowInput,\"disabled\":_vm.isDisabled || _vm.disabled,\"hide-details\":_vm.isHideDetails,\"loading\":_vm.isLoading || _vm.disabled,\"placeholder\":_vm.placeholder,\"rules\":_vm.rules},on:{\"input\":function($event){_vm.valid = _vm.isInputValid()}},model:{value:(_vm.valueRepr),callback:function ($$v) {_vm.valueRepr=$$v},expression:\"valueRepr\"}}):(_vm.type === 'number')?_c('v-text-field',{ref:\"ref\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"type\":\"number\",\"autofocus\":!_vm.isAlwaysShowInput,\"disabled\":_vm.isDisabled || _vm.disabled,\"hide-details\":_vm.isHideDetails,\"loading\":_vm.isLoading || _vm.disabled,\"placeholder\":_vm.placeholder,\"rules\":_vm.rules},on:{\"input\":function($event){_vm.valid = _vm.isInputValid()}},model:{value:(_vm.valueRepr),callback:function ($$v) {_vm.valueRepr=_vm._n($$v)},expression:\"valueRepr\"}}):_vm._e()]})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, VModel, Prop, Ref, Vue, Watch } from 'vue-property-decorator'\nimport { isProp } from '@/services/common'\n\n@Component({})\nexport default class InlineEdit extends Vue {\n @VModel() valueSync!: any\n\n @Prop({ type: [String, Boolean] })\n readonly alwaysShowInput?: string | boolean\n\n @Prop({ type: String, default: '' })\n readonly classes!: string\n\n @Prop({ type: [String, Boolean] })\n readonly disabled?: string | boolean\n\n @Prop({ type: Function, default: (a) => a })\n readonly fromRepr!: Function\n\n @Prop({ type: [String, Boolean] })\n readonly hideDetails?: string | boolean\n\n @Prop({ type: [String, Boolean], default: true })\n readonly outlined?: string | boolean\n\n @Prop({ type: [String, Boolean] })\n readonly loading?: string | boolean\n\n @Prop({ type: String, default: '' })\n readonly placeholder!: string\n\n @Prop({ type: [String, Boolean] })\n readonly readonly?: string | boolean\n\n @Prop({ type: Array, default: () => [] })\n readonly rules!: Array\n\n @Prop({ type: [Function, Promise] })\n readonly save?: Function\n\n @Prop({ type: Function, default: (a) => a })\n readonly toRepr!: Function\n\n @Prop({ type: String, default: 'text' })\n readonly type!: string\n\n @Ref()\n readonly ref!: any\n\n disabledInput = false\n editing = false\n origValue: any = null\n valid = false\n\n get isAlwaysShowInput() {\n return isProp(this.alwaysShowInput)\n }\n\n get isDisabled() {\n return isProp(this.disabled)\n }\n\n get isHideDetails() {\n return isProp(this.hideDetails)\n }\n\n get isOutlined() {\n return isProp(this.outlined)\n }\n\n get isLoading() {\n return isProp(this.loading)\n }\n\n get isReadonly() {\n return isProp(this.readonly)\n }\n\n get getClasses() {\n return `editable ${this.classes}`\n }\n\n get valueRepr() {\n return this.toRepr(this.valueSync)\n }\n\n set valueRepr(value) {\n this.valueSync = this.fromRepr(value)\n }\n\n @Watch('editing')\n onToggleEditing(editing: boolean) {\n if (editing) {\n /**\n * on start editing\n */\n this.origValue = this.valueSync\n this.valid = this.isInputValid()\n }\n }\n\n mounted() {\n this.valid = this.isInputValid()\n }\n\n hasChanged() {\n return this.valueSync !== this.origValue\n }\n\n isInputValid() {\n return this.ref.valid\n }\n\n open() {\n if (this.isReadonly) {\n return\n }\n this.editing = true\n }\n\n close(event: Event) {\n if (event.type === 'blur' && this.isAlwaysShowInput) {\n return\n }\n this.$nextTick(async () => {\n // save and emit only when value has changed\n if (this.hasChanged()) {\n // validate input\n if (!this.isInputValid()) {\n return\n }\n // user save function\n if (this.save) {\n this.disabledInput = true\n await this.save(this.valueSync)\n this.disabledInput = false\n }\n // emit changes\n this.$emit('save', this.valueSync)\n }\n // leave edit state\n if (!this.isAlwaysShowInput) {\n this.editing = false\n }\n })\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InlineEdit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InlineEdit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InlineEdit.vue?vue&type=template&id=14f1c37c&scoped=true&\"\nimport script from \"./InlineEdit.vue?vue&type=script&lang=ts&\"\nexport * from \"./InlineEdit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InlineEdit.vue?vue&type=style&index=0&id=14f1c37c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"14f1c37c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"container\"},[_c('vue-editor',{attrs:{\"placeholder\":_vm.$t('dialogs.textEditor.placeholder'),\"disabled\":_vm.disabled,\"editorToolbar\":_vm.customToolbar},on:{\"text-change\":_vm.atEditTextArea},model:{value:(_vm.valueSync),callback:function ($$v) {_vm.valueSync=$$v},expression:\"valueSync\"}}),(_vm.isActiveBtnsBar)?_c('div',{staticClass:\"btns-wrapper\"},[_c('v-btn',{on:{\"click\":function($event){return _vm.saveText(false)}}},[_c('v-icon',{attrs:{\"color\":\"var(--v-primary-base)\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{on:{\"click\":function($event){return _vm.saveText(true)}}},[_c('v-icon',{attrs:{\"color\":\"#C28081\"}},[_vm._v(\"mdi-close\")])],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, VModel, Vue } from 'vue-property-decorator'\nimport { VueEditor, Quill } from 'vue2-editor'\nimport BaseButton from '@/components/ui/BaseButton.vue'\n\n@Component({\n components: {\n BaseButton,\n VueEditor,\n },\n})\nexport default class TextEditor extends Vue {\n @VModel() valueSync!: any\n\n @Prop({ type: [Function, Promise] })\n readonly save?: Function\n\n disabled = false\n copyDesc = ''\n isActiveBtnsBar = false\n\n customToolbar = [\n // [{ header: [1, 2, 3, 4, 5, 6, false] }],\n [{ font: [] }],\n [{ size: ['small', false, 'large', 'huge'] }], // custom dropdown\n ['bold', 'italic', 'underline'], // toggled buttons\n [{ color: [] }],\n ['image'],\n ]\n\n atEditTextArea(delta) {\n if (delta.ops.length > 1) {\n if (this.valueSync !== this.copyDesc) {\n this.isActiveBtnsBar = true\n }\n } else {\n this.copyDesc = this.valueSync\n }\n }\n\n async saveText(reset: boolean) {\n if (reset) {\n if (this.valueSync !== this.copyDesc) {\n this.valueSync = this.copyDesc\n this.isActiveBtnsBar = false\n }\n }\n\n if (this.save) {\n this.isActiveBtnsBar = false\n await this.save(this.valueSync)\n this.copyDesc = this.valueSync\n }\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TextEditor.vue?vue&type=template&id=11dade95&scoped=true&\"\nimport script from \"./TextEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./TextEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TextEditor.vue?vue&type=style&index=0&id=11dade95&prod&lang=scss&\"\nimport style1 from \"./TextEditor.vue?vue&type=style&index=1&id=11dade95&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11dade95\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-menu',{attrs:{\"offset-y\":\"\",\"min-width\":\"auto\",\"transition\":\"scale-transition\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [(_vm.isTextField)?_c('v-text-field',_vm._g(_vm._b({class:_vm.classes,attrs:{\"readonly\":\"\",\"dense\":_vm.isDense,\"hide-details\":_vm.isHideDetails,\"label\":_vm.label,\"placeholder\":_vm.placeholder,\"prepend-icon\":_vm.icon,\"value\":_vm.getTimeString}},'v-text-field',attrs,false),_vm.isReadonly ? {} : on)):_c('v-input',_vm._g(_vm._b({class:_vm.classes,attrs:{\"readonly\":\"\",\"dense\":_vm.isDense,\"hide-details\":_vm.isHideDetails,\"label\":_vm.label,\"placeholder\":_vm.placeholder,\"prepend-icon\":_vm.icon}},'v-input',attrs,false),_vm.isReadonly ? {} : on),[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getTimeString)}})])]}}]),model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[(_vm.menu)?_c('v-time-picker',{attrs:{\"disabled\":_vm.disabled,\"format\":_vm.$t('forms.timePicker.format')},on:{\"change\":_vm.close},model:{value:(_vm.getISOTimeString),callback:function ($$v) {_vm.getISOTimeString=$$v},expression:\"getISOTimeString\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, VModel, Vue, Prop, Watch } from 'vue-property-decorator'\nimport { isProp } from '@/services/common'\nimport { formatterTime } from '@/services/datetime'\n\n@Component({})\nexport default class TimePicker extends Vue {\n @VModel({ default: null })\n time!: number | null\n\n @Prop()\n readonly classes?: string\n\n @Prop()\n readonly dense?: string\n\n @Prop()\n readonly hideDetails?: string\n\n @Prop()\n readonly icon?: string\n\n @Prop()\n readonly label?: string\n\n @Prop()\n readonly placeholder?: string\n\n @Prop({ type: [String, Boolean] })\n readonly readonly?: string | boolean\n\n @Prop({ type: [Function, Promise] })\n readonly save?: Function\n\n @Prop()\n readonly textField?: string\n\n disabled = false\n menu = false\n origValue: number | null = null\n\n get isDense() {\n return isProp(this.dense)\n }\n\n get isHideDetails() {\n return isProp(this.hideDetails)\n }\n\n get isReadonly() {\n return isProp(this.readonly)\n }\n\n get isTextField() {\n return isProp(this.textField)\n }\n\n get getTimeString() {\n if (!this.time) return ''\n const date = new Date(this.time)\n return formatterTime.format(date)\n }\n\n get getISOTimeString() {\n if (!this.time) return ''\n const date = new Date(this.time)\n return date.toTimeString().substr(0, 5)\n }\n\n set getISOTimeString(timeString) {\n let date = new Date()\n if (this.time) {\n date = new Date(this.time)\n }\n const hoursString = timeString?.substr(0, 2) || ''\n const minutesString = timeString?.substr(3) || ''\n if (!hoursString || !minutesString) {\n return\n }\n date.setHours(Number.parseInt(hoursString))\n date.setMinutes(Number.parseInt(minutesString))\n date.setSeconds(0)\n date.setMilliseconds(0)\n this.time = date.getTime()\n }\n\n @Watch('menu')\n onToggleMenu(menu: boolean) {\n if (menu) {\n /**\n * on open\n */\n this.origValue = this.time\n } else {\n /**\n * on close\n */\n // call `close()` once\n if (!this.disabled) {\n this.close()\n }\n }\n }\n\n hasChanged() {\n return this.time !== this.origValue\n }\n\n close() {\n this.disabled = true\n this.$nextTick(async () => {\n // save and emit only when value has changed\n if (this.hasChanged()) {\n // user save function\n if (this.save) {\n await this.save(this.time)\n }\n // emit changes\n this.$emit('save', this.time)\n }\n // close menu\n this.menu = false\n this.$nextTick(() => {\n this.disabled = false\n })\n })\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TimePicker.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TimePicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimePicker.vue?vue&type=template&id=06949d75&scoped=true&\"\nimport script from \"./TimePicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimePicker.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TimePicker.vue?vue&type=style&index=0&id=06949d75&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06949d75\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.isLoading)?_c('div',{staticClass:\"d-flex justify-center align-center mb-5\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}})],1):(_vm.projects.length > 0)?_c('v-card',[_c('v-list',[_vm._l((_vm.projects),function(project,idx){return [(idx)?_c('v-divider',{key:`${idx}-divider`}):_vm._e(),_c('v-list-item',{key:idx,on:{\"click\":function($event){return _vm.openProjectDetails(project)}}},[_c('v-list-item-content',[_c('v-row',{staticClass:\"task-info-container px-2 align-center flex-nowrap\",attrs:{\"dense\":\"\"}},[_c('div',{staticClass:\"task-name\"},[_c('span',{staticClass:\"font-weight-regular\",domProps:{\"textContent\":_vm._s(project.name)}})]),_c('v-spacer'),_c('div',{staticClass:\"quick-info\",class:{ 'd-none': _vm.$vuetify.breakpoint.xs }},[_c('div',[_c('v-subheader',{staticStyle:{\"height\":\"auto\"}},[_vm._v(\" \"+_vm._s(_vm.getImportanceText(project.importance, project.is_default))+\" \")])],1)]),_c('v-icon',[_vm._v(\"mdi-chevron-right\")])],1)],1)],1)]})],2)],1):_vm._e(),_c('v-divider'),_c('v-row',{staticClass:\"my-4\",attrs:{\"align\":\"center\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"rounded\":\"\",\"small\":\"\",\"to\":{ name: 'projects' }}},[_c('span',{staticClass:\"mx-3\"},[_c('router-link',{attrs:{\"to\":\"/projects\"}},[_vm._v(\" \"+_vm._s(_vm.$t('homePage.showAllProjects'))+\" \")])],1),_c('v-icon',[_vm._v(\"mdi-chevron-right\")])],1)],1),_c('ProjectDialog',{ref:\"projectDetails\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Ref, Watch } from 'vue-property-decorator'\n\nimport { ProjectsModule } from '@/store/modules/projectsModule'\nimport ProjectDialog from '@/components/dialogs/ProjectDialog.vue'\nimport { IProject } from '@/interfaces'\n\n@Component({\n components: {\n ProjectDialog,\n },\n})\nexport default class ProjectList extends Vue {\n @Ref() projectDetails!: ProjectDialog\n\n projectData: IProject = {\n id: 0,\n name: '',\n description: '',\n is_active: true,\n is_default: false,\n importance: 0,\n effort: 0,\n due_date: null,\n tasks: [],\n users: [],\n creator: '',\n main_responsibility: null,\n main_responsibility_id: null,\n }\n\n get isLoading() {\n return !ProjectsModule.isInitializedProjects\n }\n\n get projects() {\n return Object.values(ProjectsModule.getProjects).slice(0, 10)\n }\n\n mounted() {\n ProjectsModule.fetchProjects()\n }\n\n getImportanceText(importance, check_default) {\n if (check_default) {\n return this.$t('homePage.projectList.processing')\n }\n switch (importance) {\n case 0:\n return this.$t('homePage.projectList.unimportant')\n case 1:\n return this.$t('homePage.projectList.someImportant')\n case 2:\n return this.$t('homePage.projectList.middle')\n case 3:\n return this.$t('homePage.projectList.important')\n case 4:\n return this.$t('homePage.projectList.veryImportant')\n default:\n return ''\n }\n }\n\n openProjectDetails(project: IProject) {\n this.projectDetails.editProject(project)\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProjectList.vue?vue&type=template&id=59cc6d56&scoped=true&\"\nimport script from \"./ProjectList.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProjectList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProjectList.vue?vue&type=style&index=0&id=59cc6d56&prod&scoped=true&lang=scss&\"\nimport style1 from \"./ProjectList.vue?vue&type=style&index=1&id=59cc6d56&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59cc6d56\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-data-table',{staticClass:\"bg-main-light\",attrs:{\"mobile-breakpoint\":\"0\",\"headers\":_vm.headers,\"items\":_vm.getTasks,\"items-per-page\":_vm.itemsPerPage,\"page\":_vm.page},scopedSlots:_vm._u([(_vm.project.id)?{key:`body.prepend`,fn:function(){return [(!_vm.isAddingNewEntry)?_c('tr',[_c('td',{staticClass:\"row-add-entry text-body-1 primary--text\",attrs:{\"colspan\":_vm.headers.length},on:{\"click\":function($event){_vm.isAddingNewEntry = true}}},[_vm._v(\" \"+_vm._s(_vm.$t('tables.taskTable.addTask'))+\" \")])]):_c('tr',[_c('td',[_c('v-checkbox',{model:{value:(_vm.newTask.is_completed),callback:function ($$v) {_vm.$set(_vm.newTask, \"is_completed\", $$v)},expression:\"newTask.is_completed\"}})],1),_c('td',[_c('InlineEdit',{ref:\"input-name-new\",attrs:{\"always-show-input\":\"\",\"hide-details\":\"\",\"rules\":_vm.nameRules,\"save\":_vm.addIssue},model:{value:(_vm.newTask.name),callback:function ($$v) {_vm.$set(_vm.newTask, \"name\", $$v)},expression:\"newTask.name\"}})],1),_c('td',[_c('v-select',{attrs:{\"dense\":\"\",\"persistent-hint\":\"\",\"hint\":_vm.$t('dialogs.taskDialog.howUrgentIsTheTask'),\"placeholder\":_vm.$t('tables.taskTable.newTask.urgencyPlaceholder'),\"items\":_vm.getTaskUrgencyArray},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-img',{staticClass:\"mt-2 mr-2\",attrs:{\"width\":\"14px\",\"height\":\"14px\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(_vm.newTask)}})]},proxy:true}],null,false,827329341),model:{value:(_vm.newTask.urgency),callback:function ($$v) {_vm.$set(_vm.newTask, \"urgency\", _vm._n($$v))},expression:\"newTask.urgency\"}})],1),_c('td',[_c('v-text-field',{ref:\"input-effort-new\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"min\":\"0\",\"type\":\"number\",\"rules\":_vm.numberRules},model:{value:(_vm.newTask.effort),callback:function ($$v) {_vm.$set(_vm.newTask, \"effort\", _vm._n($$v))},expression:\"newTask.effort\"}})],1),_c('td',[_c('v-autocomplete',{ref:\"ref-assigned_to_id\",attrs:{\"clearable\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('tables.taskTable.newTask.assignedToPlaceholder'),\"item-value\":\"uid\",\"filter\":_vm.filterUserList,\"items\":_vm.getUserList},on:{\"click:clear\":function($event){_vm.newTask.assigned_to_id = null}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-img',{staticClass:\"mt-1\",attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/icon_account.svg')}})]},proxy:true},{key:\"selection\",fn:function({ item }){return [_c('span',[_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")])]}},{key:\"item\",fn:function({ item }){return [_c('span',[_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")])]}}],null,false,4212124639),model:{value:(_vm.newTask.assigned_to_id),callback:function ($$v) {_vm.$set(_vm.newTask, \"assigned_to_id\", $$v)},expression:\"newTask.assigned_to_id\"}})],1),_c('td',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"disabled\":_vm.isAddingNewEntryProcess},on:{\"click\":function($event){return _vm.addIssue()}}},[_vm._v(\" mdi-check \")]),_c('v-icon',{attrs:{\"disabled\":_vm.isAddingNewEntryProcess},on:{\"click\":function($event){_vm.isAddingNewEntry = false}}},[_vm._v(\" mdi-close \")])],1)])]},proxy:true}:null,{key:\"item\",fn:function({ item }){return [_c('tr',{class:{ highlighted: item.id === _vm.highlightedEntryId },staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.openDetail(item)}}},[_c('td',[_c('v-checkbox',{attrs:{\"disabled\":\"\",\"readonly\":\"\",\"ripple\":false},model:{value:(item.is_completed),callback:function ($$v) {_vm.$set(item, \"is_completed\", $$v)},expression:\"item.is_completed\"}})],1),_c('td',[_vm._v(\" \"+_vm._s(item.name)+\" \")]),_c('td',[_c('div',{staticClass:\"d-flex\"},[_c('v-img',{staticClass:\"mt-1 mr-2 flex-grow-0\",attrs:{\"contain\":\"\",\"width\":\"1rem\",\"height\":\"1rem\",\"src\":_vm.getTaskUrgencyIcon(item)}}),_c('span',[_vm._v(_vm._s(_vm.getTaskUrgency(item)))])],1)]),_c('td',[(item.effort)?_c('div',[_vm._v(_vm._s(item.effort)+\" Std.\")]):_vm._e()]),_c('td',[_vm._v(\" \"+_vm._s(_vm.getUserNameById(item.assigned_to_id))+\" \")]),_c('td',[_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteTask(item)}}},[_c('v-icon',[_vm._v(\" mdi-delete \")])],1)],1)])]}},{key:`footer.prepend`,fn:function(){return [_c('strong',[_vm._v(_vm._s(_vm.$t('tables.taskTable.totalHours')))]),_vm._v(\": \"+_vm._s(_vm.timetrackingsSum.hours)+\" \"+_vm._s(_vm.$t('tables.taskTable.hours'))+\" \"+_vm._s(_vm.timetrackingsSum.minutes)+\" \"+_vm._s(_vm.$t('tables.taskTable.minutes'))+\" \")]},proxy:true}],null,true)}),_c('TaskDialog',{ref:\"taskDialog\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Ref, Vue, Watch } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\n\nimport DatePicker from '@/components/forms/DatePicker.vue'\nimport TimePicker from '@/components/forms/TimePicker.vue'\nimport InlineEdit from '@/components/forms/InlineEdit.vue'\nimport TaskDialog from '@/components/dialogs/TaskDialog.vue'\n\nimport type Tiktrac from 'vue/types/tiktrac'\nimport { IDialog, IProject, ISnackbar, ITask, ITaskList } from '@/interfaces'\n\nimport { ProjectsModule } from '@/store/modules/projectsModule'\nimport { UserModule } from '@/store/modules/userModule'\n\nconst StoreUI = namespace('UI')\n\n@Component({\n components: {\n DatePicker,\n InlineEdit,\n TaskDialog,\n TimePicker,\n },\n})\nexport default class TaskTimetrackingList extends Vue {\n @Prop()\n readonly project!: IProject\n\n @Prop()\n readonly highlightedEntryId!: string\n\n @Prop()\n readonly dialog!: boolean\n\n @Ref('taskDialog')\n readonly taskDialogRef!: TaskDialog\n\n @StoreUI.Action\n public showSnackbar!: (data: ISnackbar) => void\n\n @StoreUI.Action\n public showDialog!: (data: IDialog) => Promise\n\n isAddingNewEntry = false\n isAddingNewEntryProcess = false\n get headers() {\n return [\n { text: this.$t('tables.taskTable.headers.completed'), value: 'is_completed' },\n { text: this.$t('tables.taskTable.headers.name'), value: 'name' },\n { text: this.$t('tables.taskTable.headers.urgency'), value: 'urgency' },\n { text: this.$t('tables.taskTable.headers.effort'), value: 'effort' },\n { text: this.$t('tables.taskTable.headers.assignedTo'), value: 'assigned_to_id' },\n { text: '', value: 'actions' },\n ]\n }\n itemsPerPage = 10\n page = 1\n newTask = {\n is_completed: false,\n name: '',\n importance: 0,\n urgency: 0,\n effort: 0,\n assigned_to_id: null,\n }\n tasks: ITaskList = {}\n // validation\n get nameRules() {\n return [\n (v) => !!v || this.$t('tables.taskTable.validation.nameRules.enterName'),\n (v) => v.length <= 100 || this.$t('tables.taskTable.validation.nameRules.length'),\n ]\n }\n get numberRules() {\n return [\n (v) =>\n typeof v === 'number' ||\n this.$t('tables.taskTable.validation.numberRules.positive'),\n (v) => v >= 0 || this.$t('tables.taskTable.validation.numberRules.positive'),\n ]\n }\n\n timetrackingsSum = {\n hours: 0,\n minutes: 0,\n }\n\n get getTaskList() {\n return ProjectsModule.getTasks\n }\n\n get getTasks() {\n const tasks = [] as Array\n for (const task of Object.values(this.tasks)) {\n tasks.push({\n id: task.id,\n is_completed: task.is_completed,\n name: task.name,\n urgency: task.urgency,\n effort: task.effort,\n assigned_to_id: task.assigned_to_id,\n project: task.project,\n user: task.user,\n tags: task.tags,\n notes: task.notes,\n created: '',\n description: task.description,\n importance: task.importance,\n })\n }\n return tasks\n }\n\n get getUserList() {\n // exclude users that are not part of the project\n return (\n UserModule.getUserList?.filter((user) => this.project.users.includes(user.uid)) ||\n []\n )\n }\n\n get getTaskUrgencyArray() {\n const urgencies: Array = []\n for (let i = 0; i < ProjectsModule.taskUrgency.length; i++) {\n urgencies.push({\n text: ProjectsModule.getTaskUrgency(i).text,\n value: i,\n })\n }\n return urgencies\n }\n\n @Watch('isAddingNewEntry')\n resetFieldTask(value) {\n if (!value) {\n Object.assign(this.newTask, this.initialStateOfTask())\n }\n }\n\n @Watch('getTaskList', { deep: true })\n onTaskListUpdate() {\n this.fetchTasks()\n }\n\n @Watch('project', { immediate: true })\n onTaskLoad(project: IProject, oldProject: IProject) {\n if (project?.id === oldProject?.id) return\n if (!project.id) {\n this.tasks = {}\n return\n }\n this.fetchTasks()\n }\n\n @Watch('getTasks')\n highlightIssue(tasks) {\n if (!tasks || !tasks.length) {\n return\n }\n if (!this.highlightedEntryId) {\n return\n }\n // find issue\n const idx = tasks.findIndex((i) => i.id === this.highlightedEntryId)\n if (idx === -1) {\n return\n }\n // calc page that contains the issue\n this.page = Math.ceil((idx + 1) / this.itemsPerPage)\n }\n\n mounted() {\n this.getTimetrackingsSum()\n\n this.$watch(\n () => this.dialog,\n (dialog: boolean) => {\n if (dialog) {\n this.getTimetrackingsSum()\n }\n }\n )\n }\n\n created() {}\n\n initialStateOfTask() {\n this.newTask = {\n is_completed: false,\n name: '',\n importance: 0,\n urgency: 0,\n effort: 0,\n assigned_to_id: null,\n }\n }\n\n getUserNameById(userId: string) {\n const userList = UserModule.getUserList\n if (!userList) {\n return ''\n }\n const user = userList.find((u) => u.uid === userId)\n if (!user) {\n return ''\n }\n return user.first_name + ' ' + user.last_name\n }\n\n getTimetrackingsSum() {\n Vue.prototype.$http\n .get(`tiktrac/timetracking/tasks/busylist/${this.project.id}/`)\n .then((response) => {\n this.timetrackingsSum.hours = Math.trunc(response.data / 3600000)\n this.timetrackingsSum.minutes = Math.trunc((response.data % 3600000) / 60000)\n })\n }\n\n getTaskUrgencyIcon(item) {\n const urgency = item.urgency\n return ProjectsModule.getTaskUrgency(urgency).icon\n }\n\n getTaskUrgency(item) {\n const urgency = item.urgency\n return ProjectsModule.getTaskUrgency(urgency).text\n }\n\n fetchTasks() {\n this.tasks = {}\n if (!this.project?.id) {\n return\n }\n this.tasks = { ...ProjectsModule.getTasksByProjectId(this.project.id) }\n }\n\n filterUserList(item, queryText) {\n let name = item.first_name + ' ' + item.last_name\n name = name.toLowerCase()\n const q = queryText.toLowerCase()\n return name.indexOf(q) > -1\n }\n\n openDetail(task) {\n this.taskDialogRef.editTask(task)\n }\n\n async addIssue() {\n this.isAddingNewEntryProcess = true\n // validate entry\n if (!this.validateNewEntry()) {\n this.showSnackbar({\n text: `${this.$t('tables.taskTable.snackBars.validateNewEntryError')}`,\n type: 'error',\n })\n this.isAddingNewEntryProcess = false\n return\n }\n // create new task\n const task: ITask = {\n id: 0,\n name: this.newTask.name,\n description: '',\n is_completed: this.newTask.is_completed,\n importance: this.newTask.importance,\n urgency: this.newTask.urgency,\n effort: this.newTask.effort,\n created: '',\n tags: [],\n notes: {},\n assigned_to_id: this.newTask.assigned_to_id,\n }\n // save task\n if (\n !(await ProjectsModule.addTaskAction({ projectId: this.project.id, task: task }))\n ) {\n this.showSnackbar({\n text: `${this.$t('tables.taskTable.snackBars.addTaskAction.error')}`,\n type: 'error',\n })\n } else {\n this.showSnackbar({\n text: `${this.$t('tables.taskTable.snackBars.addTaskAction.success')}`,\n type: 'success',\n })\n }\n // finish process\n this.isAddingNewEntry = false\n this.isAddingNewEntryProcess = false\n }\n\n validateNewEntry() {\n const refName = this.$refs['input-name-new'] as any\n const refEffort = this.$refs['input-effort-new'] as any\n if (refName && !refName.valid) {\n console.log(refName)\n return false\n }\n if (refEffort && !refEffort.valid) {\n return false\n }\n return true\n }\n\n async deleteTask(task: ITask) {\n const consent = await this.showDialog({\n text: `${this.$t('tables.taskTable.snackBars.deleteTask.dialog')}`,\n })\n if (!consent) {\n return\n }\n\n const data = {\n id: task.id,\n projectId: task.project,\n }\n\n ProjectsModule.deleteTaskAction(data)\n .then(() => {\n // delete task from local list\n this.$delete(this.tasks, task.id)\n this.showSnackbar({\n text: `${this.$t('tables.taskTable.snackBars.deleteTask.success')}`,\n type: 'success',\n })\n })\n .catch((error: Tiktrac.Response) => {\n this.showSnackbar({\n text: `${this.$t('tables.taskTable.snackBars.deleteTask.error')}`,\n type: 'error',\n })\n })\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TaskTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TaskTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TaskTable.vue?vue&type=template&id=532c7a09&scoped=true&\"\nimport script from \"./TaskTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./TaskTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TaskTable.vue?vue&type=style&index=0&id=532c7a09&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"532c7a09\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-form',{ref:\"form\",attrs:{\"id\":\"form-add-issue\"}},[_c('v-select',{attrs:{\"required\":\"\",\"placeholder\":_vm.$t('ticktrack.forms.trackingEntry.projectPlaceholder'),\"prepend-icon\":\"mdi-share-variant\",\"items\":_vm.selProjects,\"value\":_vm.selectedProject,\"rules\":_vm.rulesName,\"disabled\":_vm.isEdit},on:{\"change\":_vm.updateSelProjects}}),_c('v-combobox',{ref:\"selectedTaskName\",attrs:{\"required\":\"\",\"label\":_vm.$t('ticktrack.forms.trackingEntry.taskNameLabel'),\"prepend-icon\":\"mdi-order-bool-ascending-variant\",\"rules\":_vm.rulesName,\"items\":_vm.selTasks,\"disabled\":_vm.isEdit},on:{\"change\":_vm.updateSelectedProject},scopedSlots:_vm._u([{key:\"item\",fn:function({ item }){return [_c('div',{staticClass:\"d-flex justify-space-between align-center\",staticStyle:{\"width\":\"100%\"}},[_c('div',[_vm._v(_vm._s(item.text))]),_c('div',{staticClass:\"ml-4 text-caption text--disabled\"},[_vm._v(\" \"+_vm._s(item.projectName)+\" \")])])]}}]),model:{value:(_vm.selectedTaskName),callback:function ($$v) {_vm.selectedTaskName=$$v},expression:\"selectedTaskName\"}}),_c('v-row',{staticClass:\"my-0\"},[_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('ticktrack.forms.trackingEntry.dateStartLabel'),\"prepend-icon\":\"mdi-calendar-range\",\"type\":\"date\",\"rules\":_vm.rulesName},model:{value:(_vm.dateStart),callback:function ($$v) {_vm.dateStart=$$v},expression:\"dateStart\"}})],1),_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('ticktrack.forms.trackingEntry.dateEndLabel'),\"type\":\"date\",\"rules\":_vm.rulesName},model:{value:(_vm.dateEnd),callback:function ($$v) {_vm.dateEnd=$$v},expression:\"dateEnd\"}})],1)],1),_c('v-row',{staticClass:\"my-0\"},[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('ticktrack.forms.trackingEntry.checkinLabel'),\"prepend-icon\":\"mdi-check\",\"type\":\"time\",\"rules\":_vm.rulesName},model:{value:(_vm.checkIn),callback:function ($$v) {_vm.checkIn=$$v},expression:\"checkIn\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('ticktrack.forms.trackingEntry.checkoutLabel'),\"type\":\"time\",\"rules\":_vm.rulesName},model:{value:(_vm.checkOut),callback:function ($$v) {_vm.checkOut=$$v},expression:\"checkOut\"}})],1)],1),_c('v-text-field',{attrs:{\"label\":_vm.$t('ticktrack.forms.trackingEntry.commentLabel'),\"prepend-icon\":\"mdi-comment\"},model:{value:(_vm.comment),callback:function ($$v) {_vm.comment=$$v},expression:\"comment\"}}),_c('v-row',{staticClass:\"mt-16\"},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-switch',{staticClass:\"switcher mt-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"inset\":\"\",\"color\":\"primary\",\"label\":_vm.$t('ticktrack.forms.trackingEntry.taskDoneLabel')},model:{value:(_vm.isCompleted),callback:function ($$v) {_vm.isCompleted=$$v},expression:\"isCompleted\"}})],1),_c('v-spacer'),(!_vm.isEdit)?_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('BaseButton',{staticClass:\"mt-2\",attrs:{\"type\":\"submit\",\"disabled\":_vm.checkInProcess,\"loading\":_vm.checkInProcess,\"text\":_vm.$t('ticktrack.forms.trackingEntry.recordTimeText')},nativeOn:{\"click\":function($event){return _vm.handlerSaveIssue.apply(null, arguments)}}})],1):(_vm.isEdit)?_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('BaseButton',{staticClass:\"mt-2 mr-2\",attrs:{\"plain\":\"\",\"text\":_vm.$t('ticktrack.forms.trackingEntry.cancelBtn')},nativeOn:{\"click\":function($event){return _vm.$emit('handleCloseDialog')}}}),_c('BaseButton',{staticClass:\"mt-2\",attrs:{\"type\":\"submit\",\"disabled\":_vm.checkInProcess,\"text\":_vm.$t('ticktrack.forms.trackingEntry.saveBtn')},nativeOn:{\"click\":function($event){return _vm.handlerSaveIssue.apply(null, arguments)}}})],1):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Watch, Ref, Prop } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\n\nimport BaseButton from '@/components/ui/BaseButton.vue'\nimport { generateIssueID } from '@/services/tiktrac'\n\nimport { ProjectsModule } from '@/store/modules/projectsModule'\n\nimport { ISnackbar, ITask } from '@/interfaces'\nimport type Tiktrac from 'vue/types/tiktrac'\nimport type { VForm } from 'vue/types/extend'\n\nconst StoreTiktrac = namespace('Timetracking')\nconst StoreUI = namespace('UI')\n\n@Component({\n components: {\n BaseButton,\n },\n})\nexport default class TrackingEntry extends Vue {\n @Prop({ default: false })\n readonly isEdit!: boolean\n\n @Prop()\n readonly busyListElemId?: string\n\n @Ref('form')\n readonly form!: VForm\n\n @StoreTiktrac.Getter\n public getIsInitializing!: boolean\n\n @StoreTiktrac.Getter\n public getTimetracking!: Tiktrac.Timetracking\n\n @StoreTiktrac.Getter\n public getActiveTimer!: string\n\n @StoreTiktrac.Getter\n public getActiveTaskId!: number\n\n @StoreTiktrac.Getter\n public getBusyList!: Tiktrac.BusyList\n\n @StoreTiktrac.Action\n public doUpdate!: (data: {\n issueId: string\n entry: Tiktrac.BusyListElemPartial\n }) => Promise\n\n @StoreTiktrac.Action\n public doAddIssue!: (data: {\n intent: string\n entry: Tiktrac.BusyListElem\n }) => Promise\n\n @StoreUI.Action\n public showSnackbar!: (data: ISnackbar) => void\n\n /**\n * project ID which the current time tracking is for\n */\n selectedProject = 0\n\n /**\n * task name which the current time tracking is for\n */\n selectedTaskName: string | Tiktrac.LooseObject = ''\n dateStart = ''\n dateEnd = ''\n checkIn = ''\n checkOut = ''\n comment = ''\n isCompleted = true\n\n formValid = false\n rulesName = [(v) => !!v || 'Required']\n selProjects: Array = []\n selTasks: Array = []\n selTaskChangeProject = false\n\n checkInProcess = false\n\n task: ITask | undefined = undefined\n\n get getProjects() {\n return ProjectsModule.getProjects\n }\n\n setDateInfoToForm(data) {\n this.checkIn = Vue.prototype.$moment(data.start).format('HH:mm')\n this.checkOut = Vue.prototype.$moment(data.end).format('HH:mm')\n this.dateStart = Vue.prototype.$moment(data.start).format('YYYY-MM-DD')\n this.dateEnd = Vue.prototype.$moment(data.end).format('YYYY-MM-DD')\n }\n\n @Watch('busyListElemId', { immediate: true })\n startSearchTaskByBusyList() {\n if (this.isEdit && this.busyListElemId) {\n const searchedTaskId = this.getBusyList[this.busyListElemId]?.task\n if (!searchedTaskId) {\n return\n }\n\n ProjectsModule.fetchTaskByID(searchedTaskId).then((taskSearched) => {\n this.task = taskSearched\n })\n this.setDateInfoToForm(this.getBusyList[this.busyListElemId])\n }\n }\n\n @Watch('dateStart')\n onDateStartUpdate(date: string, dateOld: string) {\n if (!date || date === dateOld) {\n // do nothing when the value is deleted or\n // there is no change\n return\n }\n if (!this.dateEnd) {\n // when end date is not set, set to start date\n this.dateEnd = date\n return\n }\n if (date > this.dateEnd) {\n // if start date is greater than end date, set end date to start date\n this.dateEnd = date\n return\n }\n }\n\n @Watch('dateEnd')\n onDateEndUpdate(date: string, dateOld: string) {\n if (!date || date === dateOld) {\n // do nothing when the value is deleted or\n // there is no change\n return\n }\n if (!this.dateEnd) {\n // when start date is not set, set to end date\n this.dateStart = date\n return\n }\n if (date < this.dateStart) {\n // if end date is smaller than start date, set start date to end date\n this.dateStart = date\n return\n }\n }\n\n getSelProjectList() {\n this.selProjects = [\n {\n text: `${this.$t('ticktrack.forms.trackingEntry.getSelProjectList')}`,\n value: 0,\n },\n ]\n for (const p of Object.values(ProjectsModule.getProjects)) {\n this.selProjects.push({\n text: p.name,\n value: p.id,\n })\n }\n }\n\n getSelTaskList() {\n this.selTasks = []\n for (const t of Object.values(ProjectsModule.getTasks) as Array) {\n if (this.selectedProject && t.project !== this.selectedProject) {\n continue\n }\n if (t.id === this.getActiveTaskId) {\n // skip tasks where the timetracking is active\n continue\n }\n if (t.is_completed) {\n // skip finished tasks\n continue\n }\n const projectName = ProjectsModule.getProjects[t.project || 0]?.name\n this.selTasks.push({\n projectName: projectName,\n projectId: t.project,\n text: t.name,\n value: t.id,\n })\n }\n }\n\n mounted() {\n if (this.getIsInitializing) {\n return\n }\n // init after navigating back to tiktrac\n this.getSelProjectList()\n this.getSelTaskList()\n\n if (this.task) {\n this.selectedProject = this.task.project || 0\n this.selectedTaskName = this.task.name || ''\n }\n\n // initially set dates to current date\n if (!this.dateStart && !this.dateEnd) {\n // dateEnd will be set by watcher `onDateStartUpdate`\n this.dateStart = Vue.prototype.$moment().format('YYYY-MM-DD')\n }\n }\n\n @Watch('task')\n initFormPreset(task) {\n if (!task) {\n this.selectedProject = 0\n this.selectedTaskName = ''\n this.isCompleted = true\n } else {\n this.selectedProject = task.project || 0\n this.selectedTaskName = task.name || ''\n this.isCompleted = task.is_completed\n }\n }\n\n @Watch('getIsInitializing')\n init(isInitializing) {\n if (isInitializing) {\n return\n }\n ProjectsModule.fetchProjects().then(() => {\n this.getSelProjectList()\n this.getSelTaskList()\n })\n }\n\n @Watch('getProjects')\n projectsUpdated(projects) {\n if (!projects) return\n this.getSelProjectList()\n }\n\n resetForm() {\n this.selectedProject = 0\n this.selectedTaskName = ''\n this.selTaskChangeProject = false\n }\n\n updateSelProjects(projectId: number) {\n this.selectedProject = projectId\n // update select task list\n this.getSelTaskList()\n // If the user choosed an existing task from the list and then changed the project,\n // set a flag that causes the creation of a new task.\n if (typeof this.selectedTaskName === 'string') {\n return\n }\n this.selTaskChangeProject = projectId !== this.selectedTaskName.projectId\n }\n\n updateSelectedProject(item: string | Tiktrac.LooseObject) {\n // If the user choosed an existing task from the list,\n // auto select the appropriate project.\n if (typeof item === 'string') {\n return\n }\n this.selectedProject = item.projectId || 0\n }\n\n handlerSaveIssue(e: MouseEvent) {\n e.preventDefault()\n\n const issueStart = new Date(this.dateStart + ' ' + this.checkIn).getTime()\n const issueEnd = new Date(this.dateEnd + ' ' + this.checkOut).getTime()\n\n const target =\n (e.target as HTMLButtonElement) || (e.relatedTarget as HTMLButtonElement) || null\n if (!target) {\n return\n }\n this.checkInProcess = true\n\n // Apply v-combobox content to the bound variable.\n // This is necessary if user types in a new value\n // instead of selecting an existing one from the drop down list.\n const input = this.$refs['selectedTaskName'] as HTMLElement\n input.blur()\n\n // is user has not selected a project, select the default one\n if (this.selectedProject == 0) {\n this.selectedProject = ProjectsModule.getDefaultProjectId\n }\n\n // wait for vue to render the change\n this.$nextTick(() => {\n // get task info\n let selectedTaskName = ''\n let selectedTaskId = 0\n if (typeof this.selectedTaskName === 'string' || this.selTaskChangeProject) {\n // user wants to create a new task\n selectedTaskName =\n typeof this.selectedTaskName === 'string'\n ? this.selectedTaskName\n : this.selectedTaskName.text\n } else {\n // user wants to resume tracking an existing task\n selectedTaskId = this.selectedTaskName.value\n }\n\n // check additional input\n if (!this.form.validate()) {\n this.checkInProcess = false\n return\n }\n\n // create new issue\n // prettier-ignore\n const { issueId } = generateIssueID();\n\n // prepare POST data\n const issue: Tiktrac.BusyListElem = {\n id: this.busyListElemId || issueId,\n start: issueStart,\n end: issueEnd,\n pause: 0,\n status: 1, // employee is working\n status_descr: this.comment,\n split: 0,\n split_count: 0,\n project: this.selectedProject,\n task: this.task ? this.task?.id || 0 : selectedTaskId,\n taskName: selectedTaskName,\n taskCompleted: this.isCompleted,\n }\n\n let data\n if (this.isEdit) {\n data = {\n issueId: this.busyListElemId,\n entry: issue,\n }\n } else {\n data = {\n intent: 'issueAdd',\n entry: issue,\n }\n }\n\n const saveFunction = this.isEdit ? this.doUpdate : this.doAddIssue\n\n saveFunction(data)\n .then((response: Tiktrac.Response) => {\n if (response.responseCode === 201) {\n // TODO use a smarter way to update the data\n // fetch updated project list and update task list\n ProjectsModule.fetchProjects(true).then(() => {\n this.getSelTaskList()\n })\n // reset user input\n this.resetForm()\n const form = document.getElementById('form-add-issue') as HTMLFormElement\n if (form) {\n form.reset()\n }\n ;(this.$refs['form'] as HTMLFormElement).resetValidation()\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.forms.trackingEntry.snackBars.createSuccess'\n )}`,\n })\n } else if (response.responseCode === 200) {\n ProjectsModule.fetchProjects(true).then(() => {\n this.getSelTaskList()\n })\n\n // reset user input\n this.resetForm()\n const form = document.getElementById('form-add-issue') as HTMLFormElement\n if (form) {\n form.reset()\n }\n ;(this.$refs['form'] as HTMLFormElement).resetValidation()\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.forms.trackingEntry.snackBars.updateSuccess'\n )}`,\n })\n }\n this.$emit('updateSuccess')\n })\n .catch((error: Tiktrac.Response) => {\n if (error.responseCode === 409) {\n // conflict\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.forms.trackingEntry.snackBars.timesCollide'\n )}`,\n type: 'error',\n })\n } else {\n this.showSnackbar({\n text: `${this.$t('ticktrack.forms.trackingEntry.snackBars.createError')}`,\n type: 'error',\n })\n }\n })\n .finally(() => {\n this.checkInProcess = false\n })\n })\n }\n}\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TrackingEntry.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TrackingEntry.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TrackingEntry.vue?vue&type=template&id=0f7eecc8&scoped=true&\"\nimport script from \"./TrackingEntry.vue?vue&type=script&lang=ts&\"\nexport * from \"./TrackingEntry.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f7eecc8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',{staticClass:\"px-7\",attrs:{\"rounded\":\"\",\"type\":\"button\",\"color\":_vm.color,\"disabled\":_vm.disabled,\"elevation\":0,\"loading\":_vm.loading,\"outlined\":_vm.outlined,\"plain\":_vm.isPlain,\"small\":_vm.xSmall === undefined,\"x-small\":_vm.xSmall !== undefined},domProps:{\"textContent\":_vm._s(_vm.text)},on:{\"click\":function($event){return _vm.$emit('click', $event)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport { isProp } from '@/services/common'\n\n@Component\nexport default class BaseButton extends Vue {\n @Prop({ default: 'primary' }) private color!: string\n @Prop() private xSmall!: string | undefined\n @Prop() private text!: string\n @Prop() private disabled!: boolean\n @Prop() private loading!: boolean\n\n @Prop({ type: [String, Boolean] })\n readonly outlined?: string | boolean\n\n @Prop({ type: [String, Boolean] })\n readonly plain?: string | boolean\n\n get isPlain() {\n return isProp(this.plain)\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseButton.vue?vue&type=template&id=8a45ce9e&\"\nimport script from \"./BaseButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseButton.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',{staticClass:\"btn py-4\",attrs:{\"text\":\"\",\"x-small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},[_c('v-img',{attrs:{\"src\":require('@/assets/icon_menu.svg'),\"width\":\"1rem\",\"contain\":\"\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class BaseMenuButton extends Vue {\n @Prop() private disabled!: boolean\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseMenuButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseMenuButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseMenuButton.vue?vue&type=template&id=085b7f12&scoped=true&\"\nimport script from \"./BaseMenuButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseMenuButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseMenuButton.vue?vue&type=style&index=0&id=085b7f12&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"085b7f12\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-row',{staticClass:\"pa-5\"},[_c('v-col',{staticClass:\"pr-md-6 pr-lg-12\",attrs:{\"cols\":\"12\",\"md\":_vm.isEven ? '6' : '5',\"lg\":\"6\"}},[_vm._t(\"left\")],2),_c('v-col',{staticClass:\"pl-md-6 pl-lg-12\",attrs:{\"cols\":\"12\",\"md\":_vm.isEven ? '6' : '7',\"lg\":\"6\"}},[_vm._t(\"right\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class LayoutTwoColumns extends Vue {\n @Prop({ default: false }) readonly even!: string | boolean\n\n get isEven() {\n return this.even === '' || this.even === 'true' || this.even === true\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutTwoColumns.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutTwoColumns.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LayoutTwoColumns.vue?vue&type=template&id=cde090ca&scoped=true&\"\nimport script from \"./LayoutTwoColumns.vue?vue&type=script&lang=ts&\"\nexport * from \"./LayoutTwoColumns.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cde090ca\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app',{attrs:{\"id\":\"app\"}},[(_vm.loading)?_c('PageLoader'):(_vm.showEULA)?_c('EULADialog',{on:{\"accept\":function($event){_vm.showEULA = false}}}):[(_vm.showTutorial)?_c('TutorialDialog'):_vm._e(),_c('ChatPopup'),_c('app-bar',{on:{\"triggerDrawer\":function($event){return _vm.toggleDrawer()}}}),(_vm.$vuetify.breakpoint.mobile)?_c('navigation-drawer-mobile',{ref:\"mobile-drawer\"}):_vm._e(),_c('base-dialog',{attrs:{\"type\":_vm.dialog.type},model:{value:(_vm.dialog.active),callback:function ($$v) {_vm.$set(_vm.dialog, \"active\", $$v)},expression:\"dialog.active\"}},[_vm._v(\" \"+_vm._s(_vm.dialog.text)+\" \")]),_c('base-snackbar',{attrs:{\"type\":_vm.snackbar.type},model:{value:(_vm.snackbar.active),callback:function ($$v) {_vm.$set(_vm.snackbar, \"active\", $$v)},expression:\"snackbar.active\"}},[_vm._v(\" \"+_vm._s(_vm.snackbar.text)+\" \")]),_c('QuickNotificationItem',{attrs:{\"item\":_vm.quickNotify},model:{value:(_vm.quickNotify.active),callback:function ($$v) {_vm.$set(_vm.quickNotify, \"active\", $$v)},expression:\"quickNotify.active\"}}),_c('v-main',[_c('v-container',{staticClass:\"pa-3\",attrs:{\"fluid\":_vm.$vuetify.breakpoint.lgAndDown}},[_c('router-view')],1)],1)]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app-bar',{attrs:{\"app\":\"\",\"clipped-right\":\"\",\"flat\":\"\",\"color\":\"white\",\"height\":\"72\"}},[_c('div',{staticClass:\"content\"},[_c('router-link',{attrs:{\"to\":\"/\"}},[_c('v-img',{attrs:{\"height\":\"40\",\"width\":\"100\",\"contain\":\"\",\"left\":\"\",\"src\":require(\"@/assets/logo_atthene_app.svg\")}})],1),_c('tiktrac-mini'),_c('div',{staticClass:\"content-menu\"},[_c('NotificationList'),(_vm.$vuetify.breakpoint.mdAndUp)?_c('user-info-mini',{staticClass:\"mr-3\"}):_vm._e(),(_vm.$vuetify.breakpoint.mobile)?_c('v-app-bar-nav-icon',{staticClass:\"ml-4\",attrs:{\"id\":\"menu-button-atthene\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('triggerDrawer')}}}):_c('navigation-drawer-overall')],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex flex-row-reverse flex-md-row align-center\"},[_c('div',[_c('div',{staticClass:\"black--text text-end text-h6\"},[_vm._v(\" \"+_vm._s(_vm.userInfo.first_name)+\" \"+_vm._s(_vm.userInfo.last_name)+\" \")]),_c('div',{staticClass:\"text-end text-subtitle-2\"},[_vm._v(\" \"+_vm._s(_vm.userInfo.company.name)+\" \")])]),_c('v-avatar',{staticClass:\"ml-md-2\"},[_c('v-img',{attrs:{\"src\":_vm.imagePath || require('@/assets/default_profile_picture.png')}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { UserModule } from '@/store/modules/userModule'\nimport { Component, Vue } from 'vue-property-decorator'\n\nimport { IUserData } from '@/interfaces'\n\n@Component({\n components: {},\n})\nexport default class AppBar extends Vue {\n value = false\n get userInfo(): IUserData {\n return UserModule.getUserInfo\n }\n get imagePath() {\n return UserModule.getProfilePicture\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UserInfoMini.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UserInfoMini.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserInfoMini.vue?vue&type=template&id=db68f27c&scoped=true&\"\nimport script from \"./UserInfoMini.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserInfoMini.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserInfoMini.vue?vue&type=style&index=0&id=db68f27c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"db68f27c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticStyle:{\"width\":\"auto\"},attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"d-flex flex-column align-center justify-center\",attrs:{\"cols\":\"auto\"}},[(_vm.getCurrentTaskName)?_c('div',{staticClass:\"currentTask\"},[_vm._v(\" \"+_vm._s(_vm.getCurrentTaskName)+\" \")]):_c('div',{staticClass:\"notCheckinTask\"},[_vm._v(\" \"+_vm._s(_vm.currentTaskNameNotCheckin)+\" \")])]),_c('v-col',{staticClass:\"d-none d-sm-block\",attrs:{\"cols\":\"auto\"}},[_c('div',{staticClass:\"row-content font-weight-light\",class:{ active: _vm.isActive || _vm.isPaused }},[(_vm.isActive || _vm.isPaused)?[_c('div',{staticClass:\"time\"},[_vm._v(_vm._s(_vm.passedTimeFormatted))]),_c('div',{staticClass:\"pause\"},[_vm._v(\" \"+_vm._s(_vm.$t('ticktrack.ticktrackMini.pause'))+\" \"+_vm._s(_vm.pauseTimeFormatted || '–')+\" \")])]:_vm._e()],2)]),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-progress-circular',{attrs:{\"rotate\":_vm.curSegmentRotate,\"size\":62.5,\"width\":10,\"value\":_vm.curSegmentProgressPercent,\"color\":_vm.curSegmentColor},on:{\"click\":_vm.openPopupOnMobile}},[_c('div',{staticClass:\"timer-inner\",class:{ active: _vm.isActive || _vm.isPaused }},[_c('div',{staticClass:\"timer-icon\"},[_c('v-img',{attrs:{\"src\":require(\"@/assets/logo_tiktrac_plain.svg\"),\"eager\":\"\",\"contain\":\"\",\"height\":\"100%\"}})],1)])])],1),_c('v-col',{staticClass:\"d-none d-sm-block\",attrs:{\"cols\":\"auto\"}},[_c('div',{staticClass:\"row-content ml-2\"},[_c('transition',{attrs:{\"mode\":\"out-in\"}},[(_vm.isInactive)?_c('BaseButton',{attrs:{\"disabled\":_vm.checkInProcess,\"loading\":_vm.checkInProcess,\"text\":_vm.$t('ticktrack.ticktrackMini.checkinText')},nativeOn:{\"click\":function($event){return _vm.checkin.apply(null, arguments)}}}):[_c('div',{staticClass:\"btn-group-merge\"},[_c('BaseButton',{attrs:{\"outlined\":\"\",\"color\":\"error\",\"disabled\":_vm.checkOutProcess,\"loading\":_vm.checkOutProcess,\"text\":_vm.$t('ticktrack.ticktrackMini.checkoutText')},nativeOn:{\"click\":function($event){_vm.dialogCheckOut = true}}}),_c('BaseButton',{attrs:{\"color\":!_vm.isPaused ? 'warning' : 'primary',\"disabled\":_vm.togglePauseProcess,\"loading\":_vm.togglePauseProcess,\"text\":!_vm.isPaused\n ? _vm.$t('ticktrack.ticktrackMini.pauseText')\n : _vm.$t('ticktrack.ticktrackMini.continueText')},nativeOn:{\"click\":function($event){return _vm.togglePause.apply(null, arguments)}}})],1)]],2)],1)])],1),_c('v-dialog',{attrs:{\"width\":\"95vw\",\"max-width\":\"300px\",\"content-class\":\"dialog-center\"},model:{value:(_vm.dialogMobile),callback:function ($$v) {_vm.dialogMobile=$$v},expression:\"dialogMobile\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Tiktrac\")]),_c('v-card-text',{staticClass:\"pb-0\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('div',{staticClass:\"row-content timer-text text--disabled\",class:{ active: _vm.isActive || _vm.isPaused }},[(!_vm.isActive && !_vm.isPaused)?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.curDateTime)}}):[_c('div',{staticClass:\"time\"},[_vm._v(_vm._s(_vm.passedTimeFormatted))]),_c('div',{staticClass:\"pause\"},[_vm._v(\" \"+_vm._s(_vm.$t('ticktrack.ticktrackMini.pause'))+\" \"+_vm._s(_vm.pauseTimeFormatted || '–')+\" \")])]],2)])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('div',{staticClass:\"row-content ml-sm-2\"},[_c('transition',{attrs:{\"mode\":\"out-in\"}},[(_vm.isInactive)?_c('BaseButton',{attrs:{\"disabled\":_vm.checkInProcess,\"text\":_vm.$t('ticktrack.ticktrackMini.checkinText')},nativeOn:{\"click\":function($event){return _vm.checkin.apply(null, arguments)}}}):[_c('div',{staticClass:\"btn-group-merge\"},[_c('BaseButton',{attrs:{\"color\":!_vm.isPaused ? 'warning' : 'primary',\"disabled\":_vm.togglePauseProcess,\"text\":!_vm.isPaused\n ? _vm.$t('ticktrack.ticktrackMini.pauseText')\n : _vm.$t('ticktrack.ticktrackMini.continueText')},nativeOn:{\"click\":function($event){return _vm.togglePause.apply(null, arguments)}}}),_c('BaseButton',{attrs:{\"color\":\"error\",\"disabled\":_vm.checkOutProcess,\"text\":_vm.$t('ticktrack.ticktrackMini.checkoutText')},nativeOn:{\"click\":function($event){_vm.dialogCheckOut = true}}})],1)]],2)],1)])],1)],1)],1)],1)],1),_c('v-dialog',{attrs:{\"width\":\"95vw\",\"max-width\":\"526px\",\"content-class\":\"dialog-center\"},model:{value:(_vm.dialogCheckOut),callback:function ($$v) {_vm.dialogCheckOut=$$v},expression:\"dialogCheckOut\"}},[_c('v-card',{attrs:{\"color\":\"#f9f9f9\"}},[_c('v-card-title',{staticClass:\"pt-6 font-weight-bold text-h6\"},[_vm._v(\"Checkout\")]),_c('v-card-subtitle',{staticClass:\"pt-2 font-weight-bold\"},[_vm._v(_vm._s(`${_vm.$t('ticktrack.ticktrackMini.trackedTime')}: ${_vm.getWorkedHoursString} ${_vm.$t( 'ticktrack.ticktrackMini.hourTip' )}`)+\" \")]),_c('v-card-text',{staticClass:\"pb-0\"},[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},model:{value:(_vm.formValid),callback:function ($$v) {_vm.formValid=$$v},expression:\"formValid\"}},[_c('v-container',{staticClass:\"px-0 pt-6\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{staticStyle:{\"min-height\":\"40px\"},attrs:{\"solo\":\"\",\"dense\":\"\",\"required\":\"\",\"placeholder\":_vm.$t('ticktrack.ticktrackMini.projectPlaceholder'),\"items\":_vm.selProjects,\"value\":_vm.selectedProject,\"rules\":_vm.rulesName},on:{\"change\":_vm.updateSelProjects}})],1),_c('v-col',{staticClass:\"pt-5\",staticStyle:{\"position\":\"relative\"},attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"btn-add-task-checkout\",attrs:{\"icon\":\"\",\"color\":\"primary\"},nativeOn:{\"click\":function($event){return _vm.handleClickButton.apply(null, arguments)}}},[_c('v-icon',{staticClass:\"icon-add-task-checkout\",attrs:{\"color\":_vm.isActivePlusButton ? 'error' : 'primary'}},[_vm._v(\" \"+_vm._s(_vm.isActivePlusButton ? 'mdi-minus-circle-outline' : 'mdi-plus-circle-outline'))])],1),_c('v-combobox',{ref:\"selectedTaskName\",attrs:{\"id\":\"uniqTask\",\"dense\":\"\",\"flat\":\"\",\"outlined\":\"\",\"persistent-hint\":\"\",\"required\":\"\",\"solo\":\"\",\"hint\":_vm.$t('ticktrack.ticktrackMini.hint'),\"items\":_vm.selTasks,\"placeholder\":_vm.$t('ticktrack.ticktrackMini.taskNamePlaceholder'),\"rules\":[(v) => !!v || _vm.$t('ticktrack.forms.required')]},on:{\"change\":_vm.updateSelectedProject,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.checkOut.apply(null, arguments)}},nativeOn:{\"input\":function($event){return _vm.whenTaskIsTyping.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"item\",fn:function({ item }){return [_c('div',{staticClass:\"d-flex justify-space-between align-center\",staticStyle:{\"width\":\"100%\"}},[_c('div',[_vm._v(_vm._s(item.text))]),_c('div',{staticClass:\"ml-4 text-caption text--disabled\"},[_vm._v(\" \"+_vm._s(item.projectName)+\" \")])])]}}]),model:{value:(_vm.selectedTaskName),callback:function ($$v) {_vm.selectedTaskName=$$v},expression:\"selectedTaskName\"}})],1)],1)],1)],1)],1),_c('v-card-actions',{staticClass:\"d-flex justify-space-between px-6 py-13\"},[_c('v-switch',{staticClass:\"switcher mt-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"inset\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"text-caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('ticktrack.ticktrackMini.taskDoneLabel'))+\" \")])]},proxy:true}]),model:{value:(_vm.isTaskDone),callback:function ($$v) {_vm.isTaskDone=$$v},expression:\"isTaskDone\"}}),_c('BaseButton',{attrs:{\"color\":\"error\",\"disabled\":_vm.checkOutProcess,\"loading\":_vm.checkOutProcess,\"text\":_vm.$t('ticktrack.ticktrackMini.checkoutText')},nativeOn:{\"click\":function($event){return _vm.checkOut.apply(null, arguments)}}})],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Watch, Ref, Prop } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\n\nimport BaseButton from '@/components/ui/BaseButton.vue'\n\nimport { ProjectsModule } from '@/store/modules/projectsModule'\nimport { UserModule } from '@/store/modules/userModule'\n\nimport type Tiktrac from 'vue/types/tiktrac'\nimport type { VForm } from 'vue/types/extend'\nimport { decimalToHours, formatterDate, formatterTime } from '@/services/datetime'\nimport { TimetrackingState } from '@/store/modules/tiktrac/timetracking'\nimport { ISnackbar, IDialog, IProject, ITask } from '@/interfaces'\n\nconst StoreTiktrac = namespace('Timetracking')\nconst StoreUI = namespace('UI')\n\ninterface Segment {\n /**\n * current circular progress in X %\n */\n progressPercent: number\n /**\n * circular progress start point in deg\n * 270 deg == 12 o'clock\n * 0 deg == 3 o'clock\n */\n rotate: number\n /**\n * timestamp indicating the start time of the segment\n */\n startTime: number\n /**\n * enum indicating wheather the segment represents an active or a pause state\n */\n state: TimetrackingState\n}\n\n@Component({\n components: {\n BaseButton,\n },\n})\nexport default class TiktracMini extends Vue {\n @StoreTiktrac.Getter\n public getIsInitializing!: boolean\n\n @StoreTiktrac.Getter\n public getActiveStartTime!: number\n\n @StoreTiktrac.Getter\n public getTimetracking!: Tiktrac.Timetracking\n\n @StoreTiktrac.Getter\n public getActiveTimer!: string\n\n @StoreTiktrac.Getter\n public getActiveTimerLimit!: number | null\n\n @StoreTiktrac.Getter\n public getActiveTaskId!: number\n\n @StoreTiktrac.Getter\n public getActivePause!: number | null\n\n @StoreTiktrac.Getter\n public getActivePauses!: Array\n\n @StoreTiktrac.Getter\n public getPauseTime!: number\n\n @StoreTiktrac.Getter\n public getState!: TimetrackingState\n\n @StoreTiktrac.Action\n public fetchTimetracking!: () => Promise\n\n @StoreTiktrac.Action\n public checkIn!: (task: ITask | undefined) => Promise\n\n @StoreTiktrac.Action\n public doCheckOut!: (data: {\n intent: string\n issueId: string\n time: number\n project: number\n taskName: string\n taskId: number\n }) => Promise\n\n @StoreTiktrac.Action\n public doPauseStart!: (data: {\n intent: string\n issueId: string\n time: number\n }) => Promise\n\n @StoreTiktrac.Action\n public doPauseEnd!: (data: {\n intent: string\n issueId: string\n time: number\n }) => Promise\n\n @StoreUI.Action\n public showDialog!: (data: IDialog) => Promise\n\n @StoreUI.Action\n public showSnackbar!: (data: ISnackbar) => void\n\n @Prop() readonly task!: ITask | undefined\n @Ref('form') readonly form!: VForm\n\n isTimerInitialized = false\n dialogCheckOut = false\n dialogMobile = false\n now = Date.now()\n\n /**\n * Timestamp of the checkout\n */\n checkOutTime = 0\n\n /**\n * 100% value of circular progress in milliseconds\n */\n constProgressFull = 12 * 60 * 60 * 1000 // 12 hours in milliseconds\n\n /**\n * pause and working segments of the circular progress\n */\n segments: Array = []\n /**\n * tracked working time in milliseconds\n */\n timePassed = 0\n /**\n * tracked pause time in milliseconds\n */\n pauseTimePassed = 0\n /**\n * project ID which the current time tracking is for\n */\n selectedProject = 0\n /**\n * task name which the current time tracking is for\n */\n selectedTaskName: string | Tiktrac.LooseObject = ''\n\n /**\n * interval pointer generated by `setInterval()`\n */\n intervalDateTime: number | null = null\n /**\n * interval pointer generated by `setInterval()`\n */\n intervalTimetracking: number | null = null\n /**\n * interval pointer generated by `setInterval()`\n */\n intervalPause: number | null = null\n\n formValid = false\n rulesName = [(v) => !!v || 'Required']\n selProjects: Array = []\n selTasks: Array = []\n selTaskChangeProject = false\n isTaskDone = false\n isActivePlusButton = false\n inputTask: HTMLSelectElement | string = ''\n currentTaskNameNotCheckin: string | undefined = ''\n\n /**\n * flag\n */\n checkInProcess = false\n /**\n * flag\n */\n checkOutProcess = false\n /**\n * flag\n */\n togglePauseProcess = false\n\n get passedTimeFormatted() {\n return new Date(this.timePassed).toISOString().substr(11, 8)\n }\n\n get pauseTimeFormatted() {\n if (this.pauseTimePassed) {\n return new Date(this.pauseTimePassed).toISOString().substr(11, 8)\n } else {\n return ''\n }\n }\n\n get isActive() {\n return this.getState === TimetrackingState.ACTIVE\n }\n\n get isInactive() {\n return (\n this.getState === TimetrackingState.INACTIVE ||\n this.getState === TimetrackingState.UNKNOWN\n )\n }\n\n get isPaused() {\n return this.getState === TimetrackingState.PAUSED\n }\n\n get curSegmentRotate() {\n const segLen = this.segments.length\n return !segLen ? 0 : this.segments[segLen - 1].rotate\n }\n\n get curSegmentProgressPercent() {\n const segLen = this.segments.length\n return !segLen ? 0 : this.segments[segLen - 1].progressPercent\n }\n\n get curSegmentColor() {\n const segLen = this.segments.length\n if (!segLen) {\n return 'primary'\n }\n return this.segments[segLen - 1].state === TimetrackingState.ACTIVE\n ? 'primary'\n : 'warning'\n }\n\n get curDateTime() {\n return formatterDate.format(this.now) + ' ' + formatterTime.format(this.now)\n }\n\n get getProjects() {\n return ProjectsModule.getProjects\n }\n\n get getWorkedHoursString() {\n const pause = this.getActivePause || 0\n const wh = this.checkOutTime - this.getActiveStartTime - pause\n return decimalToHours(wh / 1000 / 60 / 60, false)\n }\n\n get getCurrentTaskName() {\n return ProjectsModule.getTasks[this.getActiveTaskId]?.name || ''\n }\n\n getSelProjectList() {\n this.selProjects = [\n {\n text: `${this.$t('ticktrack.ticktrackMini.getSelProjectList')}`,\n value: 0,\n },\n ]\n for (const p of Object.values(ProjectsModule.getProjects)) {\n this.selProjects.push({\n text: p.name,\n value: p.id,\n })\n }\n }\n\n getSelTaskList() {\n this.selTasks = []\n for (const t of Object.values(ProjectsModule.getTasks) as Array) {\n if (this.selectedProject && t.project !== this.selectedProject) {\n continue\n }\n if (t.id === this.getActiveTaskId) {\n // skip tasks where the timetracking is active\n continue\n }\n if (t.is_completed) {\n // skip finished tasks\n continue\n }\n const projectName = ProjectsModule.getProjects[t.project || 0]?.name\n this.selTasks.push({\n projectName: projectName,\n projectId: t.project,\n text: t.name,\n value: t.id,\n })\n }\n }\n\n created() {\n UserModule.fetchUserInfo().then(() => {\n this.fetchTimetracking().then(() => {\n if (\n this.getState === TimetrackingState.ACTIVE ||\n this.getState === TimetrackingState.PAUSED\n ) {\n this.loadFormPreset()\n }\n })\n })\n }\n\n mounted() {\n if (this.getIsInitializing) {\n return\n }\n // init after navigating back to tiktrac\n this.initializeTimers()\n this.getSelProjectList()\n this.getSelTaskList()\n }\n\n @Watch('now')\n changeCurrentTask() {\n let busyList = this.getTimetracking.busyList\n let taskName: string | undefined = ''\n\n for (let item in busyList) {\n if (this.now >= busyList[item].start && this.now < busyList[item].end) {\n if (busyList[item].is_all_day) continue\n\n let currentItemTaskId = busyList[item].task\n taskName = ProjectsModule.getTasks[currentItemTaskId]?.name || ''\n }\n }\n\n this.currentTaskNameNotCheckin = taskName\n }\n\n @Watch('getIsInitializing')\n init(isInitializing) {\n if (isInitializing) {\n return\n }\n // init after page reload after the store is ready\n this.initializeTimers()\n ProjectsModule.fetchProjects().then(() => {\n this.getSelProjectList()\n this.getSelTaskList()\n })\n }\n\n @Watch('getProjects')\n projectsUpdated(projects) {\n if (!projects) return\n this.getSelProjectList()\n }\n\n @Watch('getState')\n toggleTimer(state: TimetrackingState, oldState: TimetrackingState) {\n const stateChange = oldState !== TimetrackingState.UNKNOWN && state !== oldState\n if (!stateChange) {\n return\n }\n if (oldState === TimetrackingState.INACTIVE) {\n this.loadFormPreset()\n }\n if (state === TimetrackingState.ACTIVE) {\n // CHECKIN\n if (this.intervalPause !== null) {\n clearInterval(this.intervalPause)\n }\n this.pauseTimePassed = this.getPauseTime\n const startTime = this.getActiveStartTime\n // set timer\n this.timePassed = Date.now() - startTime - this.getPauseTime\n // add new segment\n this.segments.push({\n progressPercent: 0,\n rotate: this.calcRotation(startTime),\n startTime: startTime,\n state: TimetrackingState.ACTIVE,\n })\n // activate timer\n this.initializeInterval(TimetrackingState.ACTIVE)\n } else if (state === TimetrackingState.PAUSED) {\n // PAUSE\n if (this.intervalTimetracking !== null) {\n clearInterval(this.intervalTimetracking)\n }\n const startTime = this.getActivePause || 0\n // add new segment\n this.segments.push({\n progressPercent: 0,\n rotate: this.calcRotation(startTime),\n startTime: startTime,\n state: TimetrackingState.PAUSED,\n })\n this.initializeInterval(TimetrackingState.PAUSED)\n } else {\n // CHECKOUT/RESET\n this.clearAllIntervals()\n this.timePassed = 0\n this.pauseTimePassed = 0\n this.segments = []\n }\n }\n\n @Watch('segments.length')\n addProgressSegment(val: number, oldVal: number) {\n if (!this.isTimerInitialized && oldVal !== -1) {\n // when called manually during initialization.\n // used to prevent auto trigger during initialization.\n return\n }\n if (val <= oldVal && val !== 0) {\n return\n }\n if (oldVal !== -1 && val !== 0 && val !== oldVal + 1) {\n // only proceed if segments array is grown by one or when set empty\n return\n }\n if (val === 0) {\n // delete all segments\n const svgs = document.querySelectorAll(\n '.v-progress-circular > svg:not(:last-of-type)'\n )\n svgs.forEach((elem) => {\n elem.remove()\n })\n // reset initial segment\n const overlay = document.querySelector(\n '.v-progress-circular > svg .v-progress-circular__overlay'\n ) as HTMLElement\n if (!overlay) {\n return\n }\n this.calcProgressPixel(0, overlay)\n } else {\n const firstSegment = val === 1\n // add new segment\n const svg = document.querySelector(\n '.v-progress-circular > svg:first-of-type'\n ) as HTMLElement\n if (!svg) {\n return\n }\n if (!firstSegment) {\n // freeze old segment\n const svgNew = svg.cloneNode(true) as HTMLElement\n svg.insertAdjacentElement('afterend', svgNew)\n // set progress background color to transparent\n const underlay = svg.querySelector(\n '.v-progress-circular__underlay'\n ) as HTMLElement\n underlay.style.stroke = 'transparent'\n }\n const progress = this.segments[val - 1]\n // set rotation\n svg.style.transform = `rotate(${progress.rotate}deg)`\n // set segment color\n const overlay = svg.querySelector('.v-progress-circular__overlay') as HTMLElement\n overlay.style.stroke =\n progress.state === TimetrackingState.ACTIVE\n ? 'var(--v-primary-base)'\n : 'var(--v-warning-base)'\n // set segment progress\n const timeDelta = this.calcTimeDelta(progress.progressPercent)\n this.calcProgressPixel(timeDelta, overlay)\n }\n }\n\n @Watch('dialogCheckOut')\n onDialogCheckoutToggle(val: boolean) {\n if (!val) {\n return\n }\n // set checkout time on open\n this.checkOutTime = Date.now()\n }\n\n beforeDestroy() {\n this.clearAllIntervals()\n }\n\n resetForm() {\n this.selectedProject = 0\n this.selectedTaskName = ''\n this.selTaskChangeProject = false\n this.isActivePlusButton = false\n this.changeInputBgColor(false)\n }\n\n /**\n * Set timer values\n */\n initializeTimers() {\n const now = Date.now()\n // init pause timer\n if (this.getActivePause === null) {\n this.pauseTimePassed = this.getPauseTime\n } else {\n this.pauseTimePassed = now - this.getActivePause\n }\n // init work timer\n this.timePassed = now - this.getActiveStartTime - this.pauseTimePassed\n // init segments\n this.segments = []\n this.setSegments(now)\n // init intervals\n this.initializeInterval(this.getState)\n this.isTimerInitialized = true\n }\n\n initializeInterval(state: TimetrackingState) {\n // init current date interval\n this.intervalDateTime = window.setInterval(() => {\n this.now = Date.now()\n }, 1000)\n // init tiktrac progressbar intervals\n let startTime = 0\n switch (state) {\n case TimetrackingState.ACTIVE:\n startTime = this.getActiveStartTime\n this.intervalTimetracking = window.setInterval(() => {\n const now = Date.now()\n // check if timer is valid\n if (this.getActiveTimerLimit && now >= this.getActiveTimerLimit) {\n this.checkOutTime = Date.now()\n this.checkOut(null, true)\n return\n }\n // calc progress\n this.timePassed = now - startTime - this.getPauseTime\n this.updateCurrentProgress(now)\n }, 1000)\n break\n case TimetrackingState.PAUSED:\n startTime = this.getActivePause || 0\n this.intervalPause = window.setInterval(() => {\n const now = Date.now()\n // check if timer is valid\n if (this.getActiveTimerLimit && now >= this.getActiveTimerLimit) {\n this.checkOutTime = Date.now()\n this.checkOut(null, true)\n return\n }\n // calc progress\n this.pauseTimePassed = now - startTime\n this.updateCurrentProgress(now)\n }, 1000)\n break\n }\n }\n\n setSegments(now: number) {\n let start = this.getActiveStartTime\n if (!start) {\n return\n }\n let trackingTimePassed = now - start\n this.getActivePauses.forEach((pause) => {\n // add active + pause segment\n const timeActive = pause.start - start\n const timePause = (pause.end || now) - pause.start\n this.segments.push({\n rotate: this.calcRotation(start),\n progressPercent: this.calcProgressPercent(timeActive),\n startTime: start,\n state: TimetrackingState.ACTIVE,\n })\n this.addProgressSegment(this.segments.length, -1)\n this.segments.push({\n rotate: this.calcRotation(pause.start),\n progressPercent: this.calcProgressPercent(timePause),\n startTime: pause.start,\n state: TimetrackingState.PAUSED,\n })\n this.addProgressSegment(this.segments.length, -1)\n // set rest of tracking time\n trackingTimePassed -= timeActive + timePause\n // update start\n start = pause.end || now\n })\n // set rest of working time\n if (trackingTimePassed > 0) {\n this.segments.push({\n rotate: this.calcRotation(start),\n progressPercent: this.calcProgressPercent(trackingTimePassed),\n startTime: start,\n state: TimetrackingState.ACTIVE,\n })\n this.addProgressSegment(this.segments.length, -1)\n }\n }\n\n calcRotation(startTime: number) {\n const date = new Date(startTime)\n const timeOfDay = (date.getHours() + date.getMinutes() / 60) % 12 // ∈ [0;12)\n return ((360 / 12) * timeOfDay - 90) % 360\n }\n\n calcProgressPercent(timeDelta: number) {\n return (timeDelta / this.constProgressFull) * 100\n }\n\n calcTimeDelta(progressPercent: number) {\n return (progressPercent / 100) * this.constProgressFull\n }\n\n calcProgressPixel(timeDelta: number, overlay: HTMLElement) {\n let range = overlay.attributes['stroke-dasharray']?.value\n if (range === undefined) {\n return\n }\n range = Number.parseFloat(range)\n const deltaHours = timeDelta / 1000 / 60 / 60\n const offset = range - (range / 12) * deltaHours\n overlay.attributes['stroke-dashoffset'].value = offset.toString() + 'px'\n }\n\n updateCurrentProgress(now: number) {\n const segLen = this.segments.length\n if (!segLen) {\n return\n }\n const segment = this.segments[segLen - 1]\n segment.progressPercent = this.calcProgressPercent(now - segment.startTime)\n this.$set(this.segments, segLen - 1, segment)\n }\n\n updateSelProjects(projectId: number) {\n this.selectedProject = projectId\n // update select task list\n this.getSelTaskList()\n // If the user choosed an existing task from the list and then changed the project,\n // set a flag that causes the creation of a new task.\n if (typeof this.selectedTaskName === 'string') {\n return\n }\n this.selTaskChangeProject = projectId !== this.selectedTaskName.projectId\n }\n\n updateSelectedProject(item: string | Tiktrac.LooseObject) {\n if (this.isActivePlusButton && typeof item !== 'string') {\n this.isActivePlusButton = false\n this.changeInputBgColor(false)\n }\n\n // If the user choosed an existing task from the list,\n // auto select the appropriate project.\n if (typeof item === 'string') {\n return\n }\n this.selectedProject = item.projectId || 0\n }\n\n clearAllIntervals() {\n if (this.intervalDateTime !== null) {\n clearInterval(this.intervalDateTime)\n }\n if (this.intervalTimetracking !== null) {\n clearInterval(this.intervalTimetracking)\n }\n if (this.intervalPause !== null) {\n clearInterval(this.intervalPause)\n }\n }\n\n loadFormPreset() {\n // TODO optimize this\n if (this.getActiveTimer) {\n const activeIssue = this.getTimetracking['busyList'][this.getActiveTimer] || {}\n if (activeIssue.is_autogenerated === false) {\n this.selectedProject = activeIssue?.project || 0\n const projectName = ProjectsModule.getProjects[activeIssue.project]?.name || ''\n if (activeIssue.taskName) {\n this.selectedTaskName = {\n projectId: activeIssue.project,\n projectName: projectName,\n text: activeIssue.taskName,\n value: activeIssue.task,\n }\n } else {\n let projectName = ''\n ProjectsModule.fetchProjects(true).then(() => {\n projectName = ProjectsModule.getProjects[activeIssue.project]?.name || ''\n })\n\n ProjectsModule.fetchTaskByID(activeIssue.task).then((res) => {\n if (res.name) {\n this.selectedTaskName = {\n projectId: activeIssue.project,\n projectName: projectName,\n text: res.name || '',\n value: activeIssue.task,\n }\n }\n })\n }\n }\n }\n }\n\n openPopupOnMobile() {\n if (this.$vuetify.breakpoint.mdAndUp) {\n // only for mobile view\n return\n }\n this.dialogMobile = true\n }\n\n async checkin() {\n this.checkInProcess = true\n await this.checkIn(this.task)\n this.checkInProcess = false\n }\n\n checkOut(e: MouseEvent | null, silent = false) {\n this.checkOutProcess = true\n\n if (this.getState === TimetrackingState.INACTIVE) {\n // TODO\n !silent && alert(this.$t('ticktrack.ticktrackMini.checkoutAlert'))\n this.checkOutProcess = false\n return\n }\n\n if (!silent) {\n // Apply v-combobox content to the bound variable.\n // This is necessary if user types in a new value\n // instead of selecting an existing one from the drop down list.\n const input = this.$refs['selectedTaskName'] as HTMLElement\n input.blur()\n }\n\n // is user has not selected a project, select the default one\n if (this.selectedProject == 0) {\n this.selectedProject = ProjectsModule.getDefaultProjectId\n }\n\n // wait for vue to render the change\n this.$nextTick(() => {\n // get task info\n let selectedTaskName = ''\n let selectedTaskId = 0\n if (typeof this.selectedTaskName === 'string' || this.selTaskChangeProject) {\n // user wants to create a new task\n selectedTaskName =\n typeof this.selectedTaskName === 'string'\n ? this.selectedTaskName\n : this.selectedTaskName.text\n } else {\n // user wants to resume tracking an existing task\n selectedTaskId = this.selectedTaskName.value\n }\n\n // check additional input\n if (e && !this.form.validate()) {\n this.checkOutProcess = false\n return\n }\n\n // prepare POST data\n const data = {\n intent: 'checkout',\n issueId: this.getActiveTimer,\n time: this.checkOutTime,\n project: this.selectedProject,\n taskName: selectedTaskName,\n taskId: selectedTaskId,\n taskCompleted: false,\n }\n\n const doCheckOut = (data) => {\n // checkout\n this.doCheckOut(data)\n .then(() => {\n // TODO use a smarter way to update the data\n // fetch updated project list and update task list\n ProjectsModule.fetchProjects(true).then(() => {\n this.getSelTaskList()\n })\n // reset user input\n this.resetForm()\n this.form.resetValidation()\n })\n .catch((error: Tiktrac.Response) => {\n if (error.responseCode === 409) {\n // conflict\n // TODO handle this special case\n !silent &&\n this.showSnackbar({\n text: `${this.$t('ticktrack.ticktrackMini.snackBars.checkoutError')}`,\n type: 'error',\n })\n } else {\n !silent &&\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.ticktrackMini.snackBars.checkoutTimeError'\n )}`,\n type: 'error',\n })\n }\n })\n .finally(() => {\n this.checkOutProcess = false\n this.dialogCheckOut = false\n this.dialogMobile = false\n })\n }\n\n if (silent) {\n data.taskCompleted = false\n doCheckOut(data)\n } else {\n data.taskCompleted = this.isTaskDone\n doCheckOut(data)\n this.isTaskDone = false\n }\n })\n }\n\n togglePause(e: MouseEvent) {\n // get current timestamp\n // TODO This could be manipulated by setting the system date/time to any value\n const curTime = new Date().getTime()\n this.togglePauseProcess = true\n\n if (this.getState === TimetrackingState.INACTIVE) {\n this.togglePauseProcess = false\n return\n }\n\n if (this.getState === TimetrackingState.ACTIVE) {\n // start pause\n const data = {\n intent: 'pauseStart',\n issueId: this.getActiveTimer,\n time: curTime,\n }\n this.doPauseStart(data).then(() => {\n this.togglePauseProcess = false\n })\n } else {\n // end pause\n const data = {\n intent: 'pauseEnd',\n issueId: this.getActiveTimer,\n time: curTime,\n }\n this.doPauseEnd(data).then(() => {\n this.togglePauseProcess = false\n })\n }\n }\n\n changeInputBgColor(param: boolean) {\n const inputTask = document.querySelector('#uniqTask') as HTMLSelectElement\n const fieldsetEl = inputTask?.parentElement\n ?.previousElementSibling as HTMLSelectElement\n fieldsetEl.classList.remove('bg-combobox-primary')\n if (param) {\n fieldsetEl.classList.add('bg-combobox-primary')\n }\n }\n\n whenTaskIsTyping() {\n this.inputTask = document.querySelector('#uniqTask') as HTMLSelectElement\n const selectedTaskNameVal = this.inputTask?.value\n\n this.isActivePlusButton = true\n this.changeInputBgColor(true)\n if (!selectedTaskNameVal || selectedTaskNameVal.length === 0) {\n this.isActivePlusButton = false\n this.changeInputBgColor(false)\n }\n }\n\n handleClickButton() {\n const input = this.$refs['selectedTaskName'] as HTMLElement\n if (this.isActivePlusButton) {\n input.blur()\n this.$nextTick(() => {\n this.selectedTaskName = ''\n this.isActivePlusButton = false\n this.changeInputBgColor(false)\n })\n } else {\n input.focus()\n this.$nextTick(() => {\n this.selectedTaskName = ''\n this.isActivePlusButton = true\n })\n }\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TiktracMini.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TiktracMini.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TiktracMini.vue?vue&type=template&id=4b4d59bb&scoped=true&\"\nimport script from \"./TiktracMini.vue?vue&type=script&lang=ts&\"\nexport * from \"./TiktracMini.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TiktracMini.vue?vue&type=style&index=0&id=4b4d59bb&prod&lang=scss&\"\nimport style1 from \"./TiktracMini.vue?vue&type=style&index=1&id=4b4d59bb&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4b4d59bb\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-menu',{attrs:{\"transition\":\"slide-y-transition\",\"close-on-content-click\":false,\"nudge-bottom\":100,\"nudge-right\":100},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({class:_vm.value ? 'active' : '',attrs:{\"id\":\"menu-button-atthene\"}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.getDrawerIcon())+\" \")])]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_c('navigation-drawer-content')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.$vuetify.breakpoint.smAndDown)?_c('v-list-item',[_c('v-list-item-content',[_c('user-info-mini')],1)],1):_vm._e(),_c('v-list',[_vm._l((_vm.routesTop),function(route){return _c('v-list-item',{key:route.name,staticClass:\"link-item justify-center\",attrs:{\"link\":\"\",\"to\":route.to}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"color\":\"grey\"}},[_vm._v(_vm._s(route.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(route.name))])],1)],1)}),_c('v-subheader',[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\"Apps\")])]),_c('v-divider'),_vm._l((_vm.routesApps),function(app){return _c('v-list-item',{key:app.name,attrs:{\"to\":app.to,\"link\":\"\"}},[_c('v-img',{attrs:{\"max-height\":\"40\",\"max-width\":\"50\",\"height\":\"40\",\"width\":\"auto\",\"contain\":\"\",\"src\":app.logo}}),_c('div',{domProps:{\"innerHTML\":_vm._s(`${app.name} ${app.description}`)}})],1)}),_c('v-divider'),_vm._l((_vm.routesBottom),function(route){return _c('v-list-item',{key:route.name,staticClass:\"link-item justify-center\",attrs:{\"link\":\"\",\"to\":route.to,\"href\":route.href,\"target\":route.href ? '_blank' : ''}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"color\":\"grey\"}},[_vm._v(_vm._s(route.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(route.name))])],1)],1)}),_c('v-divider'),_c('v-list-item',{staticClass:\"link-item justify-center\",attrs:{\"link\":\"\"},on:{\"click\":function($event){return _vm.$keycloak.logout()}}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"color\":\"grey\"}},[_vm._v(\"mdi-logout\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Logout\")])],1)],1)],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport UserInfoMini from '@/components/navigation/UserInfoMini.vue'\nimport { UserModule } from '@/store/modules/userModule'\nimport { Component, Vue } from 'vue-property-decorator'\n\n@Component({\n components: {\n UserInfoMini,\n },\n})\nexport default class NavigationDrawerContent extends Vue {\n value = false\n drawerOpen = false\n\n get allRoutesTop() {\n return [\n {\n name: this.$t('navigation.navigationDrawerContent.allRoutesTop.start'),\n to: '/',\n icon: 'mdi-home',\n adminOnly: false,\n },\n {\n name: this.$t('navigation.navigationDrawerContent.allRoutesTop.calendar'),\n to: 'calendar',\n icon: 'mdi-calendar',\n adminOnly: false,\n },\n {\n name: this.$t('navigation.navigationDrawerContent.allRoutesTop.projects'),\n to: 'projects',\n icon: 'mdi-file-tree',\n adminOnly: false,\n },\n {\n name: this.$t('navigation.navigationDrawerContent.allRoutesTop.tasks'),\n to: 'tasks',\n icon: 'mdi-checkbox-marked-circle-plus-outline',\n adminOnly: false,\n },\n {\n name: this.$t('navigation.navigationDrawerContent.allRoutesTop.users'),\n to: 'users',\n icon: 'mdi-account-multiple',\n adminOnly: true,\n },\n ]\n }\n\n get allRoutesBottom() {\n return [\n {\n name: this.$t('navigation.navigationDrawerContent.allRoutesBottom.settings'),\n to: 'settings',\n icon: 'mdi-tune',\n adminOnly: false,\n },\n {\n name: this.$t('navigation.navigationDrawerContent.allRoutesBottom.roadmap'),\n href: 'https://atthene.productlane.io/roadmap',\n icon: 'mdi-forum-outline',\n adminOnly: false,\n },\n {\n name: this.$t('navigation.navigationDrawerContent.allRoutesBottom.about'),\n to: 'about',\n icon: 'mdi-information-outline',\n adminOnly: false,\n },\n ]\n }\n\n allRoutesApps = [\n // {\n // name: 'Atthene',\n // logo: require('@/assets/Atthene.png'),\n // description: 'Assistent',\n // to: '',\n // adminOnly: false,\n // },\n // {\n // name: 'Paytrac',\n // logo: require('@/assets/paytrac.png'),\n // description: 'Budgetplanung',\n // to: 'paytrac',\n // adminOnly: true,\n // },\n {\n name: 'Tiktrac',\n logo: require('@/assets/tiktrac.png'),\n description: 'Zeiterfassung',\n to: 'tiktrac',\n adminOnly: false,\n },\n // {\n // name: 'Scriptac',\n // logo: require('@/assets/scriptac.png'),\n // description: 'Transkriptionstool',\n // to: '',\n // adminOnly: false,\n // }\n ]\n\n get routesTop() {\n return this.filterRoutes(this.allRoutesTop)\n }\n\n get routesBottom() {\n return this.filterRoutes(this.allRoutesBottom)\n }\n\n get routesApps() {\n return this.filterRoutes(this.allRoutesApps)\n }\n\n filterRoutes(routes) {\n return routes.filter((route) => !route.adminOnly || UserModule.isUserAdmin)\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavigationDrawerContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavigationDrawerContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavigationDrawerContent.vue?vue&type=template&id=778fd2a7&\"\nimport script from \"./NavigationDrawerContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavigationDrawerContent.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport NavigationDrawerContent from './NavigationDrawerContent.vue'\nimport { Component, Vue } from 'vue-property-decorator'\n\n@Component({\n components: {\n NavigationDrawerContent,\n },\n})\nexport default class NavigationDrawerOverall extends Vue {\n value = false\n\n getDrawerIcon() {\n return this.value ? 'mdi-close' : 'mdi-menu'\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavigationDrawerOverall.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavigationDrawerOverall.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavigationDrawerOverall.vue?vue&type=template&id=2f184360&\"\nimport script from \"./NavigationDrawerOverall.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavigationDrawerOverall.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NavigationDrawerOverall.vue?vue&type=style&index=0&id=2f184360&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-menu',{attrs:{\"offset-y\":\"\",\"content-class\":\"menu-content\"},on:{\"input\":_vm.changeNotifyIconState},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticClass:\"btn-notify\"},'div',attrs,false),on),[(_vm.unreadNotifications.length)?_c('v-badge',{staticClass:\"bagde-custom\",attrs:{\"color\":\"primary\",\"content\":_vm.unreadNotifications.length}},[_c('v-img',{attrs:{\"width\":\"1.4rem\",\"height\":\"1.4rem\",\"contain\":\"\",\"src\":require(`@/assets/${_vm.notifyIconChangeSrc()}.svg`)}})],1):_c('v-img',{attrs:{\"width\":\"1.4rem\",\"height\":\"1.4rem\",\"contain\":\"\",\"src\":require(`@/assets/${_vm.notifyIconChangeSrc()}.svg`)}})],1)]}}])},[(_vm.unreadNotifications.length !== 0)?_c('v-card',{staticClass:\"mx-auto notify-menu\",attrs:{\"max-width\":\"300\"}},[_c('v-list',{attrs:{\"three-line\":\"\"}},[_vm._l((_vm.unreadNotifications),function(item,index){return [[_c('div',{key:index,staticClass:\"list-item-wrapper\"},[_c('div',{staticClass:\"notification-header\"},[_c('p',{staticClass:\"notification-title\"},[_vm._v(\" \"+_vm._s(`New ${_vm.getNotificationTitle(item.verb)}`)+\" \")]),_c('p',{staticClass:\"notification-timer\"},[_vm._v(\" \"+_vm._s(_vm.calculateTimeFromNow(item.timestamp))+\" \")])]),_c('NotificationItem',{key:index,attrs:{\"item\":item},on:{\"itemClick\":_vm.openDialog}})],1)]]})],2)],1):_c('v-card',[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('homePage.notifySystem.emptyListMsg')))])],1)],1)],1)],1),_c('TaskDialog',{ref:\"taskDialog\"}),_c('ProjectDialog',{ref:\"projectDialog\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-list-item',{on:{\"click\":_vm.openNotification}},[_c('v-list-item-content',[_c('p',{staticClass:\"content-msg\",domProps:{\"innerHTML\":_vm._s(_vm.notificationMsg(_vm.item.verb))}})])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { INotificationItem } from '@/interfaces'\nimport { Vue, Component, Prop } from 'vue-property-decorator'\n\n@Component({})\nexport default class NotificationItem extends Vue {\n @Prop()\n item!: INotificationItem\n\n notificationMsg(verb) {\n switch (verb) {\n case 'assigned_project':\n return `A project has been assigned to you`\n case 'assigned_task':\n return `A task has been assigned to you`\n }\n }\n openNotification() {\n this.$emit('itemClick', this.item.verb, this.item.target_object_id, this.item.slug)\n }\n}\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotificationItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotificationItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationItem.vue?vue&type=template&id=c4fcceae&scoped=true&\"\nimport script from \"./NotificationItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationItem.vue?vue&type=script&lang=ts&\"\nimport style1 from \"./NotificationItem.vue?vue&type=style&index=1&id=c4fcceae&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c4fcceae\",\n null\n \n)\n\nexport default component.exports","\nimport moment from 'moment'\nimport { INotificationItem } from '@/interfaces'\nimport { Vue, Component, Ref } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nimport { ProjectsModule } from '@/store/modules/projectsModule'\nimport NotificationItem from './NotificationItem.vue'\nimport TaskDialog from '@/components/dialogs/TaskDialog.vue'\nimport ProjectDialog from '@/components/dialogs/ProjectDialog.vue'\n\nconst StoreUI = namespace('UI')\n\n@Component({\n components: {\n NotificationItem,\n TaskDialog,\n ProjectDialog,\n },\n})\nexport default class NotificationList extends Vue {\n @StoreUI.State\n public unreadNotifications!: Array\n @StoreUI.Action\n readNotification\n @Ref()\n readonly taskDialog!: TaskDialog\n\n @Ref()\n readonly projectDialog!: ProjectDialog\n\n isNewNotification = false\n notifyIconState = false\n\n openDialog(verb, id, slug) {\n this.readNotification(slug)\n if (verb === 'assigned_task') {\n this.taskDialog.editTask(ProjectsModule.getTasks[id])\n } else {\n this.projectDialog.editProject(ProjectsModule.getProjects[id])\n }\n }\n\n calculateTimeFromNow(timestamp: Date) {\n return moment(timestamp).fromNow()\n }\n\n getNotificationTitle(type) {\n return type === 'assigned_project' ? 'assigned Project' : 'assigned Task'\n }\n\n notifyIconChangeSrc() {\n if (!this.notifyIconState) {\n return 'noti_icon'\n } else if (this.notifyIconState) {\n return 'noti_active'\n }\n }\n\n changeNotifyIconState() {\n this.notifyIconState = !this.notifyIconState\n if (this.notifyIconState) {\n this.isNewNotification = false\n }\n }\n}\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotificationList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotificationList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationList.vue?vue&type=template&id=4cefc0b7&scoped=true&\"\nimport script from \"./NotificationList.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationList.vue?vue&type=style&index=0&id=4cefc0b7&prod&lang=scss&\"\nimport style1 from \"./NotificationList.vue?vue&type=style&index=1&id=4cefc0b7&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4cefc0b7\",\n null\n \n)\n\nexport default component.exports","\nimport UserInfoMini from '@/components/navigation/UserInfoMini.vue'\nimport TiktracMini from '@/components/tiktrac/TiktracMini.vue'\nimport NavigationDrawerOverall from '@/components/navigation/NavigationDrawerOverall.vue'\nimport NotificationList from '@/components/lists/NotificationItem/NotificationList.vue'\nimport { AttendanceState } from '@/store/modules/tiktrac/attendance'\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport type Tiktrac from 'vue/types/tiktrac'\nimport { namespace } from 'vuex-class'\nimport { UserModule } from '@/store/modules/userModule'\n\nconst StoreAttendance = namespace('Attendance')\n\n@Component({\n components: {\n TiktracMini,\n UserInfoMini,\n NavigationDrawerOverall,\n NotificationList,\n },\n})\nexport default class AppBar extends Vue {\n @StoreAttendance.Getter\n public isAgencyMode!: boolean\n\n @StoreAttendance.Getter\n public getAttendanceState!: AttendanceState\n\n @StoreAttendance.Action\n public checkIn!: () => Promise\n\n @StoreAttendance.Action\n public checkOut!: () => Promise\n\n get company() {\n return UserModule.getUserInfo.company.name\n }\n\n attendanceStateActive = false\n attendanceStateLoading = true\n\n async checkInOut() {\n if (this.attendanceStateLoading) {\n return\n }\n this.attendanceStateLoading = true\n await (this.attendanceStateActive ? this.checkOut : this.checkIn)()\n this.attendanceStateLoading = false\n }\n\n @Watch('getAttendanceState')\n onStateChange(state: AttendanceState, oldState: AttendanceState) {\n if (state == AttendanceState.UNKNOWN) {\n return\n }\n if (oldState == AttendanceState.UNKNOWN) {\n this.attendanceStateLoading = false\n }\n this.attendanceStateActive = state === AttendanceState.ACTIVE\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppBar.vue?vue&type=template&id=282a976a&scoped=true&\"\nimport script from \"./AppBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppBar.vue?vue&type=style&index=0&id=282a976a&prod&lang=scss&\"\nimport style1 from \"./AppBar.vue?vue&type=style&index=1&id=282a976a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"282a976a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"scrollable\":\"\",\"persistent\":\"\",\"max-width\":\"800px\",\"value\":true}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('dialogs.EULAdialog.head')))]),_c('v-card-text',{domProps:{\"innerHTML\":_vm._s(_vm.$t('dialogs.EULAdialog.body'))}}),_c('v-card-actions',[_c('v-spacer'),_c('BaseButton',{attrs:{\"color\":\"secondary\",\"text\":_vm.$t('dialogs.EULAdialog.reject')},on:{\"click\":function($event){return _vm.redirectToHome()}}}),_c('BaseButton',{attrs:{\"color\":\"primary\",\"text\":_vm.$t('dialogs.EULAdialog.agree')},on:{\"click\":function($event){return _vm.acceptedEULA()}}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator'\nimport BaseButton from '@/components/ui/BaseButton.vue'\n\n@Component({\n components: {\n BaseButton,\n },\n})\nexport default class EULADialog extends Vue {\n redirectToHome() {\n window.location.href = 'https://arttacsolutions.de'\n }\n acceptedEULA() {\n localStorage.setItem('acceptedEULA', new Date().toISOString())\n this.$emit('accept', true)\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EULADialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EULADialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EULADialog.vue?vue&type=template&id=630b10cb&\"\nimport script from \"./EULADialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./EULADialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-navigation-drawer',{attrs:{\"app\":\"\",\"clipped\":\"\",\"right\":\"\"},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_c('navigation-drawer-content')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator'\nimport NavigationDrawerContent from './NavigationDrawerContent.vue'\n\n@Component({\n components: {\n NavigationDrawerContent,\n },\n})\nexport default class NavigationDrawerMobile extends Vue {\n value = false\n /**\n * toggleDrawer\n */\n public toggleDrawer() {\n this.value = !this.value\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavigationDrawerMobile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavigationDrawerMobile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavigationDrawerMobile.vue?vue&type=template&id=6eeb6270&\"\nimport script from \"./NavigationDrawerMobile.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavigationDrawerMobile.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',_vm._b({attrs:{\"persistent\":\"\",\"transition\":\"slide-y-transition\",\"max-width\":\"500\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},'v-dialog',{\n ..._vm.$attrs,\n },false),[_c('v-card',[_c('v-card-title',{staticClass:\"warning\"}),_c('v-card-text',{staticClass:\"text-h5 pt-4\"},[_vm._t(\"default\")],2),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('BaseButton',{attrs:{\"color\":\"primary\",\"text\":_vm.$t('ui.baseDialog.accept')},nativeOn:{\"click\":function($event){return _vm.accept.apply(null, arguments)}}}),_c('BaseButton',{attrs:{\"color\":\"warning\",\"text\":_vm.$t('ui.baseDialog.decline')},nativeOn:{\"click\":function($event){return _vm.decline.apply(null, arguments)}}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\n\nimport BaseButton from '@/components/ui/BaseButton.vue'\n\nconst StoreUI = namespace('UI')\n\n@Component({\n components: {\n BaseButton,\n },\n})\nexport default class BaseSnackbar extends Vue {\n @Prop({ default: '' }) type?: string\n @Prop() value? = false\n\n @StoreUI.State\n public dialogPromiseResolve!: (result: boolean) => void\n\n show = this.value\n\n @Watch('show')\n emitShow(val: boolean, oldVal: boolean) {\n if (val === oldVal) return\n this.$emit('input', val)\n if (!val) return\n }\n\n @Watch('value')\n toggleShow(val: boolean, oldVal: boolean) {\n if (val === oldVal) return\n this.show = val\n }\n\n accept() {\n this.show = false\n this.dialogPromiseResolve(true)\n }\n\n decline() {\n this.show = false\n this.dialogPromiseResolve(false)\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseDialog.vue?vue&type=template&id=51f56ea6&\"\nimport script from \"./BaseDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseDialog.vue?vue&type=style&index=0&id=51f56ea6&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-snackbar',_vm._b({attrs:{\"timeout\":_vm.timeout,\"transition\":\"slide-y-reverse-transition\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},'v-snackbar',{\n ..._vm.$attrs,\n color: 'transparent',\n },false),[_c('v-alert',{staticClass:\"ma-0\",attrs:{\"color\":_vm.$attrs.color,\"dismissible\":_vm.dismissible,\"type\":_vm.type,\"dark\":\"\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'\n\n@Component\nexport default class BaseSnackbar extends Vue {\n @Prop({ default: '' }) type?: string\n @Prop() value? = false\n\n show = this.value\n timeout = -1\n dismissible = true\n\n @Watch('show')\n emitShow(val: boolean, oldVal: boolean) {\n if (val === oldVal) return\n this.$emit('input', val)\n if (!val) return\n // set timeout according to type\n if (this.type === 'warning' || this.type === 'error') {\n this.dismissible = true\n this.timeout = 10000\n } else {\n this.dismissible = false\n this.timeout = 3000\n }\n }\n\n @Watch('value')\n toggleShow(val: boolean, oldVal: boolean) {\n if (val === oldVal) return\n this.show = val\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseSnackbar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseSnackbar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseSnackbar.vue?vue&type=template&id=111dec1b&\"\nimport script from \"./BaseSnackbar.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseSnackbar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseSnackbar.vue?vue&type=style&index=0&id=111dec1b&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"chatbot-wrapper\"},[_c('div',{staticClass:\"v-speed-dial-custom-wrapper\"},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"close-on-click\":true,\"offset-y\":true},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"white\",\"id\":\"btn-chat\"},on:{\"click\":_vm.chatFlag}},'v-btn',attrs,false),on),[_c('v-img',{staticClass:\"mt-1\",attrs:{\"width\":\"2.5rem\",\"height\":\"2.5rem\",\"contain\":\"\",\"src\":_vm.value\n ? require('@/assets/icon_atthene_interaction.svg')\n : require('@/assets/icon_atthene_interaction_primary_green.svg')}})],1)]}}]),model:{value:(_vm.localChatFlagVal),callback:function ($$v) {_vm.localChatFlagVal=$$v},expression:\"localChatFlagVal\"}},[[_c('ChatBotMenu')],_c('ChatBotBeauty',{ref:\"chatBotBeauty\"})],2)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-sheet',{staticClass:\"quick-creator mb-8\",class:{\n editing: _vm.isEditing,\n mobile: _vm.$vuetify.breakpoint.xs,\n },on:{\"click\":function($event){$event.stopPropagation();},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;_vm.isEditing = false}}},[(_vm.isEditing)?_c('div',[_c('QuickTaskCreatorForm',{on:{\"setIsEditingFromChatMenu\":_vm.setIsEditing,\"confirmed\":_vm.onAddTask}})],1):_c('div',{staticClass:\"wrapper\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){_vm.isEditing = true},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;_vm.isEditing = true}}},[_c('span',{staticClass:\"primary--text ml-3 add-task-heading\"},[_vm._v(\" \"+_vm._s(_vm.$t('homePage.quickTaskCreator.heading'))+\" \")])]),_c('TaskDialog',{ref:\"taskDialog\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-form',{ref:\"form\",staticClass:\"wrapper editing px-2 py-5\"},[_c('v-text-field',{staticClass:\"name-input\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"autofocus\":\"\",\"validate-on-blur\":\"\",\"placeholder\":_vm.$t('homePage.quickTaskCreator.taskName'),\"type\":\"text\",\"rules\":_vm.nameRules},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.addTask()}},model:{value:(_vm.taskData.name),callback:function ($$v) {_vm.$set(_vm.taskData, \"name\", $$v)},expression:\"taskData.name\"}}),_c('div',{staticClass:\"container-other-input ml-n1\"},[_c('div',{staticClass:\"other-input\"},[_c('v-select',{attrs:{\"dense\":\"\",\"persistent-hint\":\"\",\"hint\":_vm.$t('dialogs.taskDialog.howUrgentIsTheTask'),\"placeholder\":_vm.$t('homePage.quickTaskCreator.taskUrgency.title'),\"items\":_vm.getTaskUrgencyArray},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-img',{staticClass:\"mt-2 mr-2\",attrs:{\"width\":\"14px\",\"height\":\"14px\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon}})]},proxy:true}]),model:{value:(_vm.taskData.urgency),callback:function ($$v) {_vm.$set(_vm.taskData, \"urgency\", _vm._n($$v))},expression:\"taskData.urgency\"}})],1),_c('div',{staticClass:\"other-input\"},[_c('v-select',{staticClass:\"select-project\",attrs:{\"required\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"color\":\"primary\",\"item-text\":\"name\",\"item-value\":\"id\",\"placeholder\":_vm.$t('dialogs.taskDialog.selectProjectPlaceholder'),\"items\":_vm.getProjectList},model:{value:(_vm.taskData.project),callback:function ($$v) {_vm.$set(_vm.taskData, \"project\", $$v)},expression:\"taskData.project\"}})],1),_c('div',{staticClass:\"action-icons\"},[_c('v-icon',{staticClass:\"btnCheck mr-2\",on:{\"click\":function($event){return _vm.addTask()}}},[_vm._v(\" mdi-check \")]),_c('v-icon',{staticClass:\"btnClose\",on:{\"click\":_vm.handleIsOpenForm}},[_vm._v(\" mdi-close \")])],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Ref, Vue, Prop } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nimport { ProjectsModule } from '@/store/modules/projectsModule'\n\nimport { VForm } from 'vue/types/extend'\nimport { ISnackbar } from '@/interfaces'\n\nconst StoreUI = namespace('UI')\n\n@Component({})\nexport default class QuickTaskCreatorForm extends Vue {\n @Ref('form') readonly form!: VForm\n @Prop() isEditAlways?: boolean\n\n @StoreUI.Action\n public showSnackbar!: (data: ISnackbar) => void\n\n handleIsOpenForm() {\n this.$emit('setIsEditingFromChatMenu')\n }\n\n // isEditing = true\n taskData: any = {\n id: 0,\n name: '',\n is_completed: false,\n importance: 2,\n urgency: -1,\n description: '',\n effort: '',\n project: 0,\n created: '',\n tags: [],\n notes: {},\n assigned_to_id: null,\n }\n get getProjectList() {\n return Object.values(ProjectsModule.getProjects)\n }\n\n urgency = 0\n // validator\n nameRules = [\n (v) => !!v || this.$t('forms.quickTaskCreator.nameRules.enter'),\n (v) => v.length <= 100 || this.$t('forms.quickTaskCreator.nameRules.length'),\n ]\n numberRules = [\n (v) =>\n (typeof v === 'number' && v >= 0) ||\n v === '' ||\n this.$t('forms.quickTaskCreator.numberRules.positive'),\n ]\n\n get getTaskUrgencyIcon() {\n const urgency = this.taskData.urgency\n return ProjectsModule.getTaskUrgency(urgency).icon\n }\n\n get getTaskUrgencyArray() {\n const urgencies: Array = []\n for (let i = 0; i < ProjectsModule.taskUrgency.length; i++) {\n urgencies.push({\n text: ProjectsModule.getTaskUrgency(i).text,\n value: i,\n })\n }\n return urgencies\n }\n\n get getCurrentProjects() {\n return ProjectsModule.getAllProjects\n }\n\n async addTask() {\n if (!this.form.validate()) {\n // invalid user input -> abort\n this.showSnackbar({\n text: `${this.$t('forms.quickTaskCreator.snackBars.addTaskError')}`,\n type: 'error',\n })\n return\n }\n if (this.taskData.urgency < 0) {\n // user did not enter a value -> set minimal value\n this.taskData.urgency = 0\n }\n if (this.taskData.effort === '') {\n // user did not enter a value -> set minimal value\n this.taskData.effort = 0\n }\n if (this.taskData.project === 0) {\n this.taskData.project = ProjectsModule.getDefaultProjectId\n }\n\n try {\n const newTask = await ProjectsModule.addTaskAction({\n projectId: this.taskData.project,\n task: this.taskData,\n })\n\n // this.$emit('confirmed', newTask)\n\n this.showSnackbar({\n text: `${this.$t('forms.quickTaskCreator.snackBars.addTaskActionSuccess')}`,\n type: 'success',\n })\n } catch (err) {\n console.error(err)\n this.showSnackbar({\n text: `${this.$t('forms.quickTaskCreator.snackBars.addTaskActionError')}`,\n type: 'error',\n })\n }\n\n // reset task\n this.taskData = {\n id: 0,\n name: '',\n is_completed: false,\n importance: 2,\n urgency: -1,\n description: '',\n effort: '',\n project: 0,\n created: '',\n tags: [],\n notes: {},\n assigned_to_id: null,\n }\n this.handleIsOpenForm()\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./QuickTaskCreatorForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./QuickTaskCreatorForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./QuickTaskCreatorForm.vue?vue&type=template&id=3d1c7b59&scoped=true&\"\nimport script from \"./QuickTaskCreatorForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuickTaskCreatorForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./QuickTaskCreatorForm.vue?vue&type=style&index=0&id=3d1c7b59&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d1c7b59\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Ref, Vue, Prop } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nimport QuickTaskCreatorForm from '@/components/forms/QuickTaskCreatorForm.vue'\nimport TaskDialog from '@/components/dialogs/TaskDialog.vue'\n\nimport { VForm } from 'vue/types/extend'\nimport { ISnackbar } from '@/interfaces'\n\nconst StoreUI = namespace('UI')\n\n@Component({ components: { QuickTaskCreatorForm, TaskDialog } })\nexport default class QuickTaskCreator extends Vue {\n @Ref('form') readonly form!: VForm\n @Ref()\n readonly taskDialog!: TaskDialog\n\n @StoreUI.Action\n public showSnackbar!: (data: ISnackbar) => void\n\n onAddTask(data) {\n this.taskDialog.editTask(data)\n }\n isEditing = false\n setIsEditing() {\n this.isEditing = false\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./QuickTaskCreator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./QuickTaskCreator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./QuickTaskCreator.vue?vue&type=template&id=3b80a45c&scoped=true&\"\nimport script from \"./QuickTaskCreator.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuickTaskCreator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./QuickTaskCreator.vue?vue&type=style&index=0&id=3b80a45c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3b80a45c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('v-card',{staticClass:\"d-flex flex-row\"},[_c('div',{staticClass:\"rendering\"},[_c('v-sheet',{staticClass:\"timeTracking-wrapper\"},[(_vm.isTrackingEntryActive)?_c('TrackingEntry',{style:({\n background: '#FFFFFF',\n padding: '0 40px',\n boxShadow: '0px 3px 6px #00000029',\n })}):_vm._e()],1),_c('v-sheet',{staticClass:\"quick-creator\"},[(_vm.isQuickTaskFormActive)?_c('QuickTaskCreatorForm',{class:{\n mobile: _vm.$vuetify.breakpoint.xs || _vm.$vuetify.breakpoint.md,\n },style:({\n position: 'absolute',\n bottom: '40px',\n right: '-3px',\n boxShadow: '0px 3px 6px #00000029',\n }),on:{\"setIsEditingFromChatMenu\":_vm.setIsEditingFromChatMenu,\"confirmed\":_vm.atEditTask}}):_vm._e()],1),_c('TaskDialog',{ref:\"taskDialog\"}),_c('ProjectDialog',{ref:\"projectDetails\"})],1),_c('div',{staticClass:\"d-flex flex-column justify-end\",style:({\n gap: '35px',\n })},[(_vm.isAgencyMode)?_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('v-btn',{class:{\n 'btn-checkin': !_vm.attendanceStateActive,\n 'btn-checkout': _vm.attendanceStateActive,\n },attrs:{\"fab\":\"\",\"dark\":\"\",\"small\":\"\",\"width\":\"52\",\"height\":\"52\",\"color\":!_vm.attendanceStateActive ? 'primary' : '#C38080',\"disabled\":_vm.attendanceStateLoading},on:{\"click\":_vm.checkInOut}},[(_vm.attendanceStateActive)?[_c('v-icon',{attrs:{\"aria-hidden\":\"false\"}},[_vm._v(\"mdi-arrow-collapse-right\")])]:[_c('v-icon',{attrs:{\"aria-hidden\":\"false\"}},[_vm._v(\"mdi-arrow-collapse-right\")])]],2)],1):_vm._e(),_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('v-btn',{attrs:{\"fab\":\"\",\"dark\":\"\",\"small\":\"\",\"color\":\"primary\",\"width\":\"52\",\"height\":\"52\"},on:{\"click\":function($event){return _vm.NewProjectToggle()}}},[_c('v-img',{staticClass:\"mt-1\",attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/Icon-project-diagram.svg')}})],1)],1),_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('v-btn',{attrs:{\"fab\":\"\",\"dark\":\"\",\"small\":\"\",\"color\":\"primary\",\"width\":\"52\",\"height\":\"52\"},on:{\"click\":_vm.NewTimeTrackingToggle}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1)],1),_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('v-btn',{attrs:{\"fab\":\"\",\"dark\":\"\",\"small\":\"\",\"color\":\"primary\",\"width\":\"52\",\"height\":\"52\"},on:{\"click\":_vm.NewTaskToggle}},[_c('v-img',{staticClass:\"mt-1\",attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/Icon-open-task.svg')}})],1)],1)])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"transition\":\"dialog-bottom-transition\",\"content-class\":\"dialog-overview dialog-center dialog-full-height\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;_vm.abort = true}},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"bg-main\",attrs:{\"id\":\"dialog-card\"}},[_c('v-card-title',{staticClass:\"pt-16\"},[_c('v-row',[_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"6\"}},[_c('h4',{style:({ fontWeight: 'bold', fontSize: '1.5rem' })},[_vm._v(\" Daily team overview \")])]),_c('v-col',{staticClass:\"d-flex align-center justify-end\",attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"rounder-searchBar\"},[_c('v-text-field',{staticClass:\"search-input-field\",style:({ 'max-height': '33px !important', background: '#fff' }),attrs:{\"hide-details\":\"\",\"flat\":\"\",\"solo\":\"\",\"prepend-icon\":\"mdi-magnify\",\"placeholder\":\"Search\"}})],1),_c('v-btn',{class:{ 'ml-16': _vm.isEdit },style:({ position: 'absolute', top: '0.357rem', right: '0' }),attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"overview\"},[_c('p',{staticClass:\"pl-4 mb-0\"},[_vm._v(\"Name\")])]),_c('v-list',{staticClass:\"pt-0 overview-list\"},_vm._l((_vm.items),function(item){return _c('v-list-group',{key:item.title,staticClass:\"overview-group-list\",attrs:{\"no-action\":\"\",\"sub-group\":\"\",\"active-class\":\"active-UserList__bar\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-icon',{style:({ marginTop: '1.5rem' })},[_c('v-img',{attrs:{\"max-height\":\"12\",\"max-width\":\"12\",\"src\":require('@/assets/person.svg')}})],1),_c('v-list-item-content',[_c('v-list-item-title',{style:({ fontSize: ' 1.286rem' }),domProps:{\"textContent\":_vm._s(item.title)}})],1)]},proxy:true}],null,true),model:{value:(item.active),callback:function ($$v) {_vm.$set(item, \"active\", $$v)},expression:\"item.active\"}},_vm._l((item.items),function(child){return _c('v-list-item',{key:child.title,attrs:{\"active-class\":\"active-item\"}},[_c('v-list-item-content',[_c('v-list-item-title',{style:({ fontSize: '1rem' }),domProps:{\"textContent\":_vm._s(child.title)}}),_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(child.projectName)}}),_c('v-list-item-title',{style:({\n textAlign: 'end',\n paddingRight: '0.714rem',\n fontSize: '1rem',\n }),domProps:{\"textContent\":_vm._s(child.time)}})],1)],1)}),1)}),1)],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Watch, Vue } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\n\nimport DatePicker from '@/components/forms/DatePicker.vue'\nimport InlineEdit from '@/components/forms/InlineEdit.vue'\nimport TextEditor from '@/components/forms/TextEditor.vue'\nimport TaskTable from '@/components/tables/TaskTable.vue'\nimport BaseMenuButton from '@/components/ui/BaseMenuButton.vue'\n\nimport { ProjectsModule } from '@/store/modules/projectsModule'\nimport { FinanceModule } from '@/store/modules/budgettracking'\nimport { UserModule } from '@/store/modules/userModule'\n\nimport { IDialog, IProject, ISnackbar, IUserData } from '@/interfaces'\n\nconst StoreUI = namespace('UI')\n\n@Component({\n components: {\n BaseMenuButton,\n DatePicker,\n InlineEdit,\n TaskTable,\n TextEditor,\n },\n})\nexport default class DailyTeamOverviewDialog extends Vue {\n @StoreUI.Action\n public showSnackbar!: (data: ISnackbar) => void\n\n @StoreUI.Action\n public showDialog!: (data: IDialog) => Promise\n\n abort = false\n dialog = false\n menuParticipants = false\n menuParticipantAdd = false\n menuParticipantAddId = ''\n isEdit = false\n\n //test data only\n\n items = [\n {\n items: [{ title: 'List Item' }],\n title: 'Felix Meusel',\n },\n {\n // active: true,\n items: [\n { title: 'Website design', projectName: 'Project name', time: '4h 32min' },\n { title: 'Pull request', projectName: 'Project name', time: '4h 32min' },\n { title: 'Meeting', projectName: 'Project name', time: '4h 32min' },\n ],\n title: 'Max Klein',\n },\n {\n items: [{ title: 'List Item' }],\n title: 'Lana Klein',\n },\n {\n items: [{ title: 'List Item' }],\n title: 'Ernest Szulim',\n },\n {\n items: [{ title: 'List Item' }],\n title: 'Vladyslav Shapoval',\n },\n {\n items: [{ title: 'List Item' }],\n title: 'Roman Rud',\n },\n {\n items: [{ title: 'List Item' }],\n title: 'Yehor Polyhalov',\n },\n {\n items: [{ title: 'List Item' }],\n title: 'Piotr Nowakowski',\n },\n {\n items: [{ title: 'List Item' }],\n title: 'Michal Dziedzic',\n },\n ]\n\n public createDialog() {\n this.dialog = true\n }\n\n /**\n * Get the user Id you need to verify\n */\n get userID() {\n return UserModule.getUserID\n }\n\n get getUserList() {\n return UserModule.getUserList || []\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DailyTeamOverviewDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DailyTeamOverviewDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DailyTeamOverviewDialog.vue?vue&type=template&id=287f32f4&scoped=true&\"\nimport script from \"./DailyTeamOverviewDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./DailyTeamOverviewDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DailyTeamOverviewDialog.vue?vue&type=style&index=0&id=287f32f4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"287f32f4\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Vue, Ref, Watch } from 'vue-property-decorator'\nimport { IProject } from '@/interfaces'\nimport { namespace } from 'vuex-class'\nconst StoreAttendance = namespace('Attendance')\nimport DailyTeamOverviewDialog from '@/components/dialogs/DailyTeamOverviewDialog.vue'\nimport ProjectDialog from '@/components/dialogs/ProjectDialog.vue'\nimport QuickTaskCreator from '@/components/forms/QuickTaskCreator.vue'\nimport TrackingEntry from '@/components/tiktrac/forms/TrackingEntry.vue'\nimport QuickTaskCreatorForm from '@/components/forms/QuickTaskCreatorForm.vue'\nimport BaseButton from '@/components/ui/BaseButton.vue'\nimport { AttendanceState } from '@/store/modules/tiktrac/attendance'\nimport type Tiktrac from 'vue/types/tiktrac'\nimport DailyBaseComponent from '../calendar/DailyBaseComponent.vue'\n\nconst ChatbotModule = namespace('ChatbotModule')\n@Component({\n components: {\n QuickTaskCreator,\n TrackingEntry,\n ProjectDialog,\n QuickTaskCreatorForm,\n BaseButton,\n DailyTeamOverviewDialog,\n ChatBotMenu,\n },\n})\nexport default class ChatBotMenu extends DailyBaseComponent {\n @Ref() projectDetails!: ProjectDialog\n\n @ChatbotModule.State\n public vMenuVal\n @ChatbotModule.State\n public isTrackingEntryActive\n @ChatbotModule.State\n public isQuickTaskFormActive\n @ChatbotModule.State\n public isChatListActive\n\n @ChatbotModule.Mutation\n public toggleValFlag!: (val: string) => void\n @ChatbotModule.Mutation\n public setToFalseVal!: (val) => void\n @ChatbotModule.Mutation\n public activatorChatList!: () => void\n\n isTaskWasAdded = false\n currentTask: any\n\n @StoreAttendance.Getter\n public isAgencyMode!: boolean\n\n @StoreAttendance.Getter\n public getAttendanceState!: AttendanceState\n\n @StoreAttendance.Action\n public checkIn!: () => Promise\n\n @StoreAttendance.Action\n public checkOut!: () => Promise\n\n attendanceStateActive = false\n attendanceStateLoading = true\n\n mounted() {\n this.isChatBarActive()\n }\n\n stateChatBar() {\n if (!this.isChatListActive) {\n document.querySelector?.('.sc-message-list')?.classList.add('inactive')\n } else {\n if (this.isQuickTaskFormActive) {\n this.setToFalseVal('isQuickTaskFormActive')\n } else if (this.isTrackingEntryActive) {\n this.setToFalseVal('isTrackingEntryActive')\n }\n document.querySelector?.('.sc-message-list')?.classList.remove('inactive')\n }\n }\n isChatBarActive() {\n document.querySelector('.sc-user-input--text')?.addEventListener('click', () => {\n this.activatorChatList()\n this.stateChatBar()\n if (this.isTaskWasAdded) {\n this.isTaskWasAdded = false\n }\n\n document.querySelector('.sc-user-input')?.classList.add('input100')\n })\n }\n inactiveChatList() {\n if (this.isChatListActive) {\n this.setToFalseVal('isChatListActive')\n }\n\n this.stateChatBar()\n }\n\n TaskWasAddedClose() {\n if (this.isTaskWasAdded) {\n this.isTaskWasAdded = false\n }\n }\n\n inactiveTrackingEntry() {\n if (this.isTrackingEntryActive) {\n this.setToFalseVal('isTrackingEntryActive')\n }\n }\n\n NewTimeTrackingToggle() {\n this.toggleValFlag('isTrackingEntryActive')\n\n this.setIsEditingFromChatMenu()\n this.inactiveChatList()\n this.TaskWasAddedClose()\n }\n\n setIsEditingFromChatMenu() {\n if (this.isQuickTaskFormActive) {\n this.setToFalseVal('isQuickTaskFormActive')\n }\n }\n NewTaskToggle() {\n this.toggleValFlag('isQuickTaskFormActive')\n this.inactiveTrackingEntry()\n this.TaskWasAddedClose()\n this.inactiveChatList()\n }\n openProjectDetails(project: IProject | null) {\n if (!project) {\n this.projectDetails.createProject()\n } else {\n this.projectDetails.editProject(project)\n }\n }\n NewProjectToggle() {\n this.openProjectDetails(null)\n this.setIsEditingFromChatMenu()\n this.inactiveTrackingEntry()\n this.inactiveChatList()\n this.TaskWasAddedClose()\n }\n\n editTaskDetail() {\n this.editTask(this.currentTask)\n }\n\n async checkInOut() {\n if (this.attendanceStateLoading) {\n return\n }\n this.attendanceStateLoading = true\n await (this.attendanceStateActive ? this.checkOut : this.checkIn)()\n this.attendanceStateLoading = false\n }\n\n @Watch('getAttendanceState')\n onStateChange(state: AttendanceState, oldState: AttendanceState) {\n if (state == AttendanceState.UNKNOWN) {\n return\n }\n if (oldState == AttendanceState.UNKNOWN) {\n this.attendanceStateLoading = false\n }\n this.attendanceStateActive = state === AttendanceState.ACTIVE\n }\n atEditTask(data) {\n this.currentTask = data\n this.isTaskWasAdded = !this.isTaskWasAdded\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatBotMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatBotMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChatBotMenu.vue?vue&type=template&id=f7e976de&scoped=true&\"\nimport script from \"./ChatBotMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChatBotMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChatBotMenu.vue?vue&type=style&index=0&id=f7e976de&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f7e976de\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('beautiful-chat',{attrs:{\"participants\":_vm.participants,\"onMessageWasSent\":_vm.onMessageWasSent,\"messageList\":_vm.messageList,\"newMessagesCount\":_vm.newMessagesCount,\"isOpen\":_vm.isChatOpen,\"open\":_vm.openChat,\"close\":_vm.closeChat,\"icons\":_vm.icons,\"showEmoji\":false,\"showFile\":false,\"showEdition\":true,\"showDeletion\":true,\"showTypingIndicator\":_vm.showTypingIndicator,\"showLauncher\":false,\"showCloseButton\":true,\"colors\":_vm.colors,\"showHeader\":false,\"alwaysScrollToBottom\":_vm.alwaysScrollToBottom,\"messageStyling\":_vm.messageStyling},on:{\"onType\":_vm.handleOnType},scopedSlots:_vm._u([(false)?{key:\"header\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.participants.map((m) => m.name).join(' & '))+\" \")]},proxy:true}:null,{key:\"text-message-body\",fn:function(scopedProps){return [(scopedProps.message.data.type === 'button')?_c('ChatBotBtn',{attrs:{\"data\":scopedProps.message.data},on:{\"sendPayloadToRasa\":_vm.readyQueryBtn}}):(scopedProps.message.data.type === 'busyListTest')?_c('ChatBotBusyListForm',{on:{\"validateTime\":_vm.validateTime,\"sender\":_vm.sender},model:{value:(_vm.dataBusyList),callback:function ($$v) {_vm.dataBusyList=$$v},expression:\"dataBusyList\"}}):(scopedProps.message.data.type === 'userList')?_c('AttendenceMeeting',{on:{\"sentUserList\":_vm.sentUserList},model:{value:(_vm.dataAttendenceMeeting),callback:function ($$v) {_vm.dataAttendenceMeeting=$$v},expression:\"dataAttendenceMeeting\"}}):(scopedProps.message.data.type === 'testStucture')?_c('TasksListChatBot',{attrs:{\"scopedProps\":scopedProps},on:{\"openDialogForCurrentTask\":_vm.showAllDetailsDialog}}):(scopedProps.message.data.type === 'reminderUpdate')?_c('div',[_c('h2',[_vm._v(\"Update Urgency and Importance\")]),_c('v-form',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"my-2\"},[_c('v-subheader',{staticStyle:{\"height\":\"auto\"}},[_vm._v(\" \"+_vm._s(_vm.getImportanceText)+\" \")]),_c('v-slider',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"ticks\":\"\",\"max\":\"4\",\"min\":\"0\"},model:{value:(_vm.dataAttendenceMeeting.taskData.importance),callback:function ($$v) {_vm.$set(_vm.dataAttendenceMeeting.taskData, \"importance\", _vm._n($$v))},expression:\"dataAttendenceMeeting.taskData.importance\"}})],1),_c('v-select',{staticClass:\"my-2\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"items\":_vm.getTaskUrgencyArray,\"placeholder\":_vm.$t('dialogs.taskDialog.urgencyPlaceholder')},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-img',{staticClass:\"mt-1\",attrs:{\"contain\":\"\",\"height\":\"1rem\",\"width\":\"1rem\",\"src\":_vm.getTaskUrgencyIcon}})]},proxy:true}],null,true),model:{value:(_vm.dataAttendenceMeeting.taskData.urgency),callback:function ($$v) {_vm.$set(_vm.dataAttendenceMeeting.taskData, \"urgency\", _vm._n($$v))},expression:\"dataAttendenceMeeting.taskData.urgency\"}}),_c('v-btn',{staticClass:\"black white--text font-weight-bold align-self-start\",attrs:{\"small\":\"\",\"text\":\"\",\"disabled\":_vm.isValidateTime},on:{\"click\":_vm.updateTask}},[_vm._v(\" Update \")])],1)],1):_vm._e()]}},{key:\"system-message-body\",fn:function({ message }){return [_vm._v(\" [System]: \"+_vm._s(message.text)+\" \")]}}],null,true)}),_c('DailyTeamOverviewDialog',{ref:\"dailyDialogDetails\"}),_c('TaskDialog',{ref:\"taskDialog\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h2',[_vm._v(\"Find appointment\")]),_c('div',{staticClass:\"d-flex flex-column\"},[_c('label',{staticClass:\"mt-2\",attrs:{\"for\":\"meeting-time\"}},[_vm._v(\" Timespan: \")]),_c('v-text-field',{staticClass:\"my-1\",attrs:{\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"id\":\"meeting-time\",\"name\":\"meeting-time\",\"type\":\"datetime-local\"},model:{value:(_vm.dataBusyList.dateTestStart),callback:function ($$v) {_vm.$set(_vm.dataBusyList, \"dateTestStart\", $$v)},expression:\"dataBusyList.dateTestStart\"}}),_c('label',{attrs:{\"for\":\"appt\"}},[_vm._v(\" Until latest: \")]),_c('v-text-field',{staticClass:\"my-1\",attrs:{\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"id\":\"appt\",\"name\":\"appt\",\"type\":\"time\"},on:{\"change\":function($event){return _vm.$emit('validateTime')}},model:{value:(_vm.dataBusyList.dateTestEnd),callback:function ($$v) {_vm.$set(_vm.dataBusyList, \"dateTestEnd\", $$v)},expression:\"dataBusyList.dateTestEnd\"}}),_c('label',{staticClass:\"mt-2\",attrs:{\"for\":\"meeting-time-duration\"}},[_vm._v(\" Choose meeting duration: \")]),_c('div',{staticClass:\"d-flex align-baseline\"},[_c('v-text-field',{staticClass:\"my-1\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"id\":\"meeting-time-duration\",\"type\":\"number\"},model:{value:(_vm.dataBusyList.durationTimeTest),callback:function ($$v) {_vm.$set(_vm.dataBusyList, \"durationTimeTest\", _vm._n($$v))},expression:\"dataBusyList.durationTimeTest\"}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(\"Minutes\")])],1),_c('v-btn',{staticClass:\"black white--text font-weight-bold align-self-start\",attrs:{\"small\":\"\",\"text\":\"\",\"disabled\":_vm.isValidateTime},on:{\"click\":function($event){return _vm.$emit('sender')}}},[_vm._v(\" Submit \")])],1),(_vm.isValidateTime)?_c('p',{staticStyle:{\"color\":\"red\"}},[_vm._v(\" Please choose correct time \")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue, PropSync, Model } from 'vue-property-decorator'\nimport { isProp } from '@/services/common'\nimport { namespace } from 'vuex-class'\nconst ChatbotModule = namespace('ChatbotModule')\n\n@Component\nexport default class ChatBotBusyListForm extends Vue {\n @Model('dataBusyList', { type: Object }) dataBusyList!: any\n\n @ChatbotModule.State\n public isValidateTime\n\n @ChatbotModule.Mutation\n public setValidTime!: (val: boolean) => void\n}\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatBotBusyListForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatBotBusyListForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChatBotBusyListForm.vue?vue&type=template&id=490fc05e&\"\nimport script from \"./ChatBotBusyListForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChatBotBusyListForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"StructureDate\"},[_c('v-list',[_c('v-list-group',{attrs:{\"no-action\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(_vm.scopedProps.message.items.userName)}})],1)]},proxy:true}])},_vm._l((_vm.scopedProps.message.items.items),function(child){return _c('v-list-item',{key:child.title},[_c('v-list-item-content',{on:{\"click\":function($event){return _vm.openTaskInDialog(child.id)}}},[_c('v-list-item-title',{style:({ color: 'primary' }),domProps:{\"textContent\":_vm._s(child.title)}}),_c('v-list-item-title',{style:({ textAlign: 'end', paddingRight: '10px' }),domProps:{\"textContent\":_vm._s(_vm.scopedProps.message.items.timerActive ? child.time : '')}})],1)],1)}),1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport { isProp } from '@/services/common'\n\n@Component\nexport default class TasksListChatBot extends Vue {\n // @Prop({ default: 'primary' }) private color!: string\n @Prop() scopedProps!: any\n\n openTaskInDialog(id_Task) {\n this.$emit('openDialogForCurrentTask', id_Task)\n }\n}\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TasksListChatBot.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TasksListChatBot.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TasksListChatBot.vue?vue&type=template&id=5425de4a&scoped=true&\"\nimport script from \"./TasksListChatBot.vue?vue&type=script&lang=ts&\"\nexport * from \"./TasksListChatBot.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TasksListChatBot.vue?vue&type=style&index=0&id=5425de4a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5425de4a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',{key:_vm.data.title,staticClass:\"btnWithoutBubble\",on:{\"click\":function($event){return _vm.buttonSendAction(_vm.data.payload)}}},[_vm._v(_vm._s(_vm.data.title))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport { isProp } from '@/services/common'\n\n@Component\nexport default class ChatBotBtn extends Vue {\n // @Prop({ default: 'primary' }) private color!: string\n @Prop() data!: any\n\n buttonSendAction(payload) {\n this.$emit('sendPayloadToRasa', payload)\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatBotBtn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatBotBtn.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChatBotBtn.vue?vue&type=template&id=7d7386e2&\"\nimport script from \"./ChatBotBtn.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChatBotBtn.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChatBotBtn.vue?vue&type=style&index=0&id=7d7386e2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h2',[_vm._v(\"Meeting details\")]),_c('v-text-field',{staticClass:\"name-input flex-2\",attrs:{\"autofocus\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"validate-on-blur\":\"\",\"placeholder\":\"Meeting title\",\"type\":\"text\",\"rules\":_vm.nameRules},model:{value:(_vm.dataAttendenceMeeting.taskData.name),callback:function ($$v) {_vm.$set(_vm.dataAttendenceMeeting.taskData, \"name\", $$v)},expression:\"dataAttendenceMeeting.taskData.name\"}}),_c('v-select',{attrs:{\"multiple\":\"\",\"return-object\":\"\",\"item-text\":\"title\",\"label\":\"Choose attendees\",\"items\":_vm.dataAttendenceMeeting.attendenceUsers},scopedSlots:_vm._u([{key:\"selection\",fn:function({ item, index }){return [(index === 0)?_c('v-chip',[_c('span',[_vm._v(_vm._s(item.title))])]):_vm._e(),(index === 1)?_c('span',{staticClass:\"grey--text text-caption\"},[_vm._v(\" (+\"+_vm._s(_vm.dataAttendenceMeeting.valueUsers.length - 1)+\" others) \")]):_vm._e()]}}]),model:{value:(_vm.dataAttendenceMeeting.valueUsers),callback:function ($$v) {_vm.$set(_vm.dataAttendenceMeeting, \"valueUsers\", $$v)},expression:\"dataAttendenceMeeting.valueUsers\"}}),_c('v-btn',{staticClass:\"black white--text font-weight-bold align-self-start\",attrs:{\"small\":\"\",\"text\":\"\",\"disabled\":_vm.isValidateTime},on:{\"click\":function($event){return _vm.$emit('sentUserList')}}},[_vm._v(\" Submit \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Model } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nconst ChatbotModule = namespace('ChatbotModule')\n\n@Component\nexport default class AttendenceMeeting extends Vue {\n @Model('dataAttendenceMeeting', { type: Object }) dataAttendenceMeeting!: any\n\n @ChatbotModule.State\n public isValidateTime\n\n get nameRules() {\n return [\n (v) => !!v || `${this.$t('dialogs.taskDialog.nameRules.enter')}`,\n (v) => v.length <= 100 || `${this.$t('dialogs.taskDialog.nameRules.length')}`,\n ]\n }\n}\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AttendenceMeeting.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AttendenceMeeting.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AttendenceMeeting.vue?vue&type=template&id=3bacab33&\"\nimport script from \"./AttendenceMeeting.vue?vue&type=script&lang=ts&\"\nexport * from \"./AttendenceMeeting.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Ref } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nimport ChatBotMenu from './ChatBotMenu.vue'\nimport ChatBotBusyListForm from './forms/ChatBotBusyListForm.vue'\nimport TasksListChatBot from './lists/TasksListChatBot.vue'\nimport ChatBotBtn from './ChatBotBtn.vue'\nimport AttendenceMeeting from './forms/AttendenceMeeting.vue'\nimport DailyTeamOverviewDialog from '@/components/dialogs/DailyTeamOverviewDialog.vue'\nimport { generateIssueID } from '@/services/tiktrac'\n\nimport { ProjectsModule } from '@/store/modules/projectsModule'\nconst ChatbotModule = namespace('ChatbotModule')\nconst StoreTiktrac = namespace('Timetracking')\n\nimport {\n IFnStructure,\n IDoneTask,\n ITaskDoneDetailStructure,\n INewAppointment,\n} from '@/interfaces'\nimport type Tiktrac from 'vue/types/tiktrac'\n\nenum RasaIntent {\n Appointment = 'action_choose_day_and_start_hour',\n CheckReminder = 'action_check_reminder',\n GenerateTaskWindow = 'action_generate_task_window',\n OtherUserTasksDone = 'get_done_another_user_tasks',\n ShowTasks = 'show_task_id_name',\n ShowUsersList = 'action_show_users_list',\n}\n\n@Component({\n components: {\n DailyTeamOverviewDialog,\n TasksListChatBot,\n ChatBotBtn,\n ChatBotBusyListForm,\n AttendenceMeeting,\n },\n})\nexport default class ChatBotBeauty extends ChatBotMenu {\n @Ref() dailyDialogDetails!: DailyTeamOverviewDialog\n\n @StoreTiktrac.Action\n public doAddIssue!: (data: {\n entry: Tiktrac.BusyListElem\n }) => Promise\n\n @ChatbotModule.State\n public isValidateTime\n\n @ChatbotModule.Mutation\n public setValidTime!: (val: boolean) => void\n\n @ChatbotModule.Action\n public sendMsgToChatbot!: (messageTxt: string) => Promise\n\n icons: any = {\n open: {\n img: require('@/assets/chat.png'),\n name: 'default',\n },\n close: {\n img: require('@/assets/close.png'),\n name: 'default',\n },\n file: {\n img: require('@/assets/close.png'),\n name: 'default',\n },\n closeSvg: {\n img: require('@/assets/close.png'),\n name: 'default',\n },\n }\n\n isChatOpen = false\n\n dataBusyList: any = {\n dateTestStart: '',\n dateTestEnd: '',\n durationTimeTest: null,\n isValidateTime: false,\n }\n\n dataAttendenceMeeting: any = {\n taskData: {\n id: 0,\n name: '',\n is_completed: false,\n importance: 2,\n urgency: -1,\n description: '',\n effort: '',\n project: 0,\n },\n attendenceUsers: [],\n valueUsers: [],\n }\n\n /**\n * The list of all the participants of the conversation.\n *\n * @var id used to establish the author of a message\n * @var name the user name\n * @var imageUrl is supposed to be the user avatar\n */\n participants = [\n {\n id: 'user2',\n name: 'HelperBot',\n imageUrl: require('@/assets/atthene_chat_logo.svg'),\n },\n ]\n // The list of the messages to show, can be paginated and adjusted dynamically.\n messageList = [\n {\n type: 'text',\n author: `user2`,\n data: {\n text: `Hi, I'm the Atthene. I'm a first instance to demonstrate the skills of my kind! What questions do you have?`,\n },\n },\n ]\n newMessagesCount = 0\n message1 = ''\n buttonsList = []\n // to determine whether the chat window should be open or closed\n\n // when set to a value matching the participant.id it shows the typing indicator for the specific user\n showTypingIndicator = ''\n // specifies the color scheme for the component\n colors = {\n header: {\n bg: '#4e8cff',\n text: '#ffffff',\n },\n launcher: {\n bg: '#4e8cff',\n },\n messageList: {\n bg: '#ffffff',\n },\n sentMessage: {\n bg: '#626B74', // # bg color user\n text: '#FFFFFF',\n },\n receivedMessage: {\n bg: 'white',\n text: '#222222',\n },\n userInput: {\n bg: '#f4f7f9',\n text: '#177B7B', //input color - primary doesnt work\n },\n }\n // when set to true always scrolls the chat to the bottom when new events are in (new message, user starts typing...)\n alwaysScrollToBottom = true\n // enables *bold* /emph/ _underline_ and such (more info at github.com/mattezza/msgdown)\n messageStyling = true\n\n startTimeAppoinment = 0\n endTimeAppoinment = 0\n testTaskOnly: any = {}\n\n get nameRules() {\n return [\n (v) => !!v || `${this.$t('dialogs.taskDialog.nameRules.enter')}`,\n (v) => v.length <= 100 || `${this.$t('dialogs.taskDialog.nameRules.length')}`,\n ]\n }\n\n get getTaskUrgencyIcon() {\n const urgency = this.dataAttendenceMeeting.taskData.urgency\n return ProjectsModule.getTaskUrgency(urgency).icon\n }\n\n get getTaskUrgencyArray() {\n const urgencies: Array = []\n for (let i = 0; i < ProjectsModule.taskUrgency.length; i++) {\n urgencies.push({\n text: ProjectsModule.getTaskUrgency(i).text,\n value: i,\n })\n }\n return urgencies\n }\n\n get getImportanceText() {\n switch (this.dataAttendenceMeeting.taskData.importance) {\n case 0:\n return this.$t('dialogs.projectDialog.importance.unimportant')\n case 1:\n return this.$t('dialogs.projectDialog.importance.someImportant')\n case 2:\n return this.$t('dialogs.projectDialog.importance.middle')\n case 3:\n return this.$t('dialogs.projectDialog.importance.important')\n case 4:\n return this.$t('dialogs.projectDialog.importance.veryImportant')\n default:\n return ''\n }\n }\n\n created() {\n const helpQuery = 'help me'\n this.sendMsgToChatbot(helpQuery).then(this.reviewDataStructAndKeys)\n }\n\n mounted() {\n // @ts-ignore\n this.messageList.forEach((x) => (x.liked = false))\n }\n\n openChat() {\n this.isChatOpen = true\n\n this.newMessagesCount = 0\n }\n\n closeChat() {\n this.isChatOpen = false\n }\n\n validateTime() {\n const unixFormat = Math.round(\n new Date(this.dataBusyList.dateTestStart).getTime() / 1000\n )\n\n const testdataEnd = this.takeDataEndAppointment(unixFormat)\n const unixFormatEnd = Math.round(new Date(testdataEnd).getTime() / 1000)\n if (unixFormat > unixFormatEnd) {\n this.setValidTime(true)\n } else {\n this.setValidTime(false)\n }\n }\n\n handleOnType() {\n this.$root.$emit('onType')\n }\n\n sender() {\n const unixFormat = Math.round(\n new Date(this.dataBusyList.dateTestStart).getTime() / 1000\n )\n\n const testdataEnd = this.takeDataEndAppointment(unixFormat)\n const unixFormatEnd = Math.round(new Date(testdataEnd).getTime() / 1000)\n\n const test = `${(unixFormat * 1000).toString()}-${(\n unixFormatEnd * 1000\n ).toString()}-${this.dataBusyList.durationTimeTest}`\n\n const newQuery = `/intent_choose_users_list{\\\"date_start_hour\\\":\\\"${test}\"}` //eslint-disable-line\n this.readyQueryBtn(newQuery)\n }\n\n takeDataEndAppointment(unixFormat: number): string {\n const date = new Date(unixFormat * 1000)\n const year = date.getFullYear()\n const month = (1 + date.getMonth()).toString().padStart(2, '0')\n const day = date.getDate().toString().padStart(2, '0')\n\n return `${year}-${month}-${day}T${this.dataBusyList.dateTestEnd}`\n }\n\n showAllTeamOverview() {\n this.dailyDialogDetails.createDialog()\n }\n\n showAllDetailsDialog(curentTask_id) {\n const currentTask = ProjectsModule.fetchTaskByID(curentTask_id)\n currentTask?.then((task) => {\n this.editTask(task)\n })\n }\n\n calcDurationTime(durationTime: number): string {\n const h = Math.floor(durationTime / 60)\n const min = durationTime % 60\n\n return `${h}h ${min} min`\n }\n\n sentUserList() {\n const UserArr = []\n Object.entries(this.dataAttendenceMeeting.valueUsers).map((user: any) => {\n const userUid = user['1'].payload\n const firstSplit = userUid.split(':')\n const secondSplit = firstSplit[1].split('\"')\n // @ts-ignore\n UserArr.push(secondSplit[1])\n })\n\n const newQuery = `/intent_generate_task_window{\\\"user_list\\\":\\\"${UserArr.join()}\\\"}` //eslint-disable-line\n this.readyQueryBtn(newQuery)\n }\n\n readyQueryBtn(param?: string) {\n if (!param) {\n return\n }\n this.sendMsgToChatbot(param).then(this.reviewDataStructAndKeys)\n }\n\n updateTask() {\n ProjectsModule.updateTaskAction({\n projectId: this.dataAttendenceMeeting.taskData.project,\n task: this.dataAttendenceMeeting.taskData,\n taskId: this.dataAttendenceMeeting.taskData.id,\n }).then((res) => {\n // delete the task updater message\n this.messageList.pop()\n // delete the message from Atthene\n this.messageList.pop()\n })\n }\n\n async addTask() {\n if (this.dataAttendenceMeeting.taskData.urgency < 0) {\n // user did not enter a value -> set minimal value\n this.dataAttendenceMeeting.taskData.urgency = 0\n }\n if (this.dataAttendenceMeeting.taskData.effort === '') {\n // user did not enter a value -> set minimal value\n this.dataAttendenceMeeting.taskData.effort = 0\n }\n if (this.dataAttendenceMeeting.taskData.project === 0) {\n this.dataAttendenceMeeting.taskData.project = ProjectsModule.getDefaultProjectId\n }\n\n try {\n const newTask = await ProjectsModule.addTaskAction({\n projectId: this.dataAttendenceMeeting.taskData.project,\n task: this.dataAttendenceMeeting.taskData,\n })\n\n this.testTaskOnly = newTask\n await this.addIssue()\n this.editTask(this.testTaskOnly)\n\n this.showSnackbar({\n text: `${this.$t('forms.quickTaskCreator.snackBars.addTaskActionSuccess')}`,\n type: 'success',\n })\n } catch (err) {\n this.showSnackbar({\n text: `${this.$t('forms.quickTaskCreator.snackBars.addTaskActionError')}`,\n type: 'error',\n })\n }\n\n // reset task\n this.dataAttendenceMeeting.taskData = {\n id: 0,\n name: '',\n is_completed: false,\n importance: 2,\n urgency: -1,\n description: '',\n effort: '',\n project: 0,\n }\n }\n\n async addIssue() {\n const { issueId } = generateIssueID()\n\n const issue: Tiktrac.BusyListElem = {\n id: issueId,\n start: new Date(Number(Number(this.startTimeAppoinment))).getTime(),\n end: new Date(Number(this.endTimeAppoinment)).getTime(),\n pause: 0,\n status: 1, // employee is working\n status_descr: '',\n split: 0,\n split_count: 0,\n project: this.testTaskOnly.project || 0,\n task: this.testTaskOnly.id,\n taskName: this.testTaskOnly.name,\n taskCompleted: this.testTaskOnly.is_completed,\n }\n\n // save issue\n await this.doAddIssue({ entry: issue }).catch((error: Tiktrac.Response) => {\n if (error.responseCode === 409) {\n // conflict\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.timesCollideError'\n )}`,\n type: 'error',\n })\n } else {\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.createError'\n )}`,\n type: 'error',\n })\n }\n })\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.createSuccess'\n )}`,\n type: 'success',\n })\n }\n\n doneTasksList(data: any, timerActive: boolean) {\n const { tasks_details, user_info } = data\n\n let taskData: IDoneTask = {\n items: [],\n timerActive,\n userName: user_info,\n }\n\n Object.entries(tasks_details as ITaskDoneDetailStructure).forEach(\n ([key, { name, id, duration }]) => {\n taskData.items.push({\n id,\n title: name,\n time: this.calcDurationTime(duration),\n })\n }\n )\n\n const msgData = { text: '', type: 'testStucture' }\n const message1 = this.generateMsgType(msgData, taskData)\n\n this.messageList = [...this.messageList, message1] as any\n }\n\n attendeesUsersList(details: any) {\n Object.entries(details).forEach(([key, values]) => {\n if (key === 'buttons') {\n ;(values as any).forEach((btnElem) => {\n const { title, payload } = btnElem\n\n this.dataAttendenceMeeting.attendenceUsers.push({\n title,\n payload,\n })\n })\n }\n })\n\n this.message1 = this.generateMsgType({ text: '', type: 'userList' })\n this.messageList = [...this.messageList, this.message1] as any\n }\n\n generateMsgFromRasa(text?: string, type?: string) {\n this.message1 = this.generateMsgType({ text, type })\n this.messageList = [...this.messageList, this.message1] as any\n }\n\n generateButton(data: any) {\n const btnData = {\n text: data.title,\n type: 'button',\n payload: data.payload,\n title: data.title,\n }\n this.message1 = this.generateMsgType(btnData)\n this.buttonsList = [...this.buttonsList, this.message1] as any\n }\n\n generateMsgType(dataSet, specifData?: any) {\n let msg = {\n type: 'text',\n author: 'user2',\n items: specifData,\n data: dataSet,\n } as any\n\n return msg\n }\n\n generateTaskWindow(data: any) {\n Object.entries(data).forEach(([key, values]) => {\n if (key === 'task_window') {\n const { end, start } = values as INewAppointment\n this.startTimeAppoinment = start\n this.endTimeAppoinment = end\n this.addTask()\n }\n })\n }\n\n executeDependsOnRasaIntent(intent: string, details?: any) {\n switch (intent) {\n case RasaIntent.Appointment:\n this.generateMsgFromRasa('', 'busyListTest')\n break\n case RasaIntent.OtherUserTasksDone:\n this.doneTasksList(details, true)\n break\n case RasaIntent.ShowTasks:\n this.doneTasksList(details, false)\n break\n case RasaIntent.ShowUsersList:\n this.attendeesUsersList(details)\n break\n case RasaIntent.GenerateTaskWindow:\n this.generateTaskWindow(details)\n break\n case RasaIntent.CheckReminder: {\n this.dataAttendenceMeeting.taskData = this.$deepCopy(\n ProjectsModule.getTasks[details.task_id]\n )\n this.message1 = this.generateMsgType({ text: '', type: 'reminderUpdate' })\n this.messageList = [...this.messageList, this.message1] as any\n break\n }\n default: {\n break\n }\n }\n }\n\n reviewDataStructAndKeys(data: any) {\n data.forEach((arrayItem) => {\n Object.entries(arrayItem).forEach(([key, values]) => {\n switch (key) {\n case 'text':\n this.generateMsgFromRasa(values as string)\n break\n\n case 'custom':\n Object.entries(values as IFnStructure).forEach(([key, value]) => {\n const {\n active,\n details: { intent, values },\n } = value\n\n if (active) {\n this.executeDependsOnRasaIntent(intent, values)\n }\n })\n break\n case 'buttons':\n ;(values as any).forEach((btnElem) => {\n this.generateButton(btnElem)\n this.messageList = [...this.messageList, ...this.buttonsList] as any\n this.buttonsList = []\n })\n break\n default:\n break\n }\n })\n })\n }\n\n onMessageWasSent(message) {\n this.messageList = [...this.messageList, message]\n let DataFromCall = this.sendMsgToChatbot(message.data.text)\n DataFromCall.then((data: any) => this.reviewDataStructAndKeys(data))\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatBotBeauty.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatBotBeauty.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChatBotBeauty.vue?vue&type=template&id=4dd8487a&scoped=true&\"\nimport script from \"./ChatBotBeauty.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChatBotBeauty.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChatBotBeauty.vue?vue&type=style&index=0&id=4dd8487a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4dd8487a\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Ref, Vue, Watch } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nimport ProjectDialog from '@/components/dialogs/ProjectDialog.vue'\nimport QuickTaskCreator from '@/components/forms/QuickTaskCreator.vue'\nimport QuickTaskCreatorForm from '@/components/forms/QuickTaskCreatorForm.vue'\nimport BaseButton from '@/components/ui/BaseButton.vue'\nimport ChatBotMenu from '../chatBot/ChatBotMenu.vue'\nimport ChatBotBeauty from '../chatBot/ChatBotBeauty.vue'\nconst ChatbotModule = namespace('ChatbotModule')\n\n@Component({\n components: {\n QuickTaskCreator,\n ProjectDialog,\n QuickTaskCreatorForm,\n BaseButton,\n ChatBotMenu,\n ChatBotBeauty,\n },\n})\nexport default class ChatPopup extends Vue {\n @Ref('chatBotBeauty') botBeauty!: ChatBotBeauty\n\n @ChatbotModule.State\n public vMenuVal\n\n @ChatbotModule.State\n public isTrackingEntryActive\n\n @ChatbotModule.State\n public isQuickTaskFormActive\n\n @ChatbotModule.State\n public isChatListActive\n\n @ChatbotModule.Mutation\n public vMenuFlag!: () => void\n\n @ChatbotModule.Mutation\n public vMenuSetVal!: (val: boolean) => void\n\n @ChatbotModule.Action\n public sendMsgToChatbot!: (messageTxt: string) => Promise\n\n localChatFlagVal = false\n value = false\n\n mounted() {\n setTimeout(() => {\n this.sendReminderRequest()\n }, 2000)\n }\n\n @Watch('localChatFlagVal')\n onStateChatFlagVal() {\n this.vMenuSetVal(this.localChatFlagVal)\n this.value = !this.value\n }\n\n chatFlag() {\n this.vMenuFlag()\n }\n\n sendReminderRequest() {\n const now = new Date()\n const reminderUpdate = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate()\n ).toISOString()\n if (localStorage.getItem('taskReminder') != reminderUpdate) {\n localStorage.setItem('taskReminder', reminderUpdate)\n this.sendMsgToChatbot('/intent_task_reminders').then((data) => {\n if (!data || (Array.isArray(data) && !data.length)) {\n // no reminder\n return\n }\n // reminder -> open chat window\n this.localChatFlagVal = true\n this.$nextTick(() => {\n this.botBeauty.reviewDataStructAndKeys(data)\n })\n })\n }\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChatPopup.vue?vue&type=template&id=09990ceb&scoped=true&\"\nimport script from \"./ChatPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChatPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChatPopup.vue?vue&type=style&index=0&id=09990ceb&prod&lang=scss&scoped=true&\"\nimport style1 from \"./ChatPopup.vue?vue&type=style&index=1&id=09990ceb&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"09990ceb\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"loader-container\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class PageLoader extends Vue {}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PageLoader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PageLoader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PageLoader.vue?vue&type=template&id=4e41324c&scoped=true&\"\nimport script from \"./PageLoader.vue?vue&type=script&lang=ts&\"\nexport * from \"./PageLoader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PageLoader.vue?vue&type=style&index=0&id=4e41324c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4e41324c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tutorial\"},[_c('v-dialog',{attrs:{\"width\":\"1000\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"pa-10\"},[_c('v-card-title'),_c('v-card-text',[_c('v-row',[_c('v-col',[_c('div',{staticClass:\"text-h2 font-weight-bold\",attrs:{\"color\":\"primary\"}},[_vm._v(\" Welcome to ATTHENE! \")]),_c('div',{staticStyle:{\"margin\":\"1rem 0\",\"position\":\"relative\",\"padding-bottom\":\"calc(54.79166666666667% + 40px)\"}},[_c('iframe',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"left\":\"0\",\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":_vm.toggle,\"frameborder\":\"0\",\"loading\":\"lazy\",\"webkitallowfullscreen\":\"\",\"mozallowfullscreen\":\"\",\"allowfullscreen\":\"\"}}),_c('div',{staticClass:\"overlay\",on:{\"click\":_vm.startTutorial}})]),_c('div',{staticClass:\"text-h6\"},[_vm._v(\" Let us show you around with a quick interactive tutorial. \")])]),_c('v-col',{staticClass:\"d-flex flex-column align-center\"},[_c('div',{staticClass:\"text-h5 font-weight-bold\"},[_vm._v(\"What will you learn?\")]),_c('v-btn-toggle',{attrs:{\"mandatory\":\"\"},model:{value:(_vm.toggle),callback:function ($$v) {_vm.toggle=$$v},expression:\"toggle\"}},[_c('v-col',_vm._l((_vm.playButtons),function(button,key){return _c('v-container',{key:key,attrs:{\"fluid\":\"\"}},[_c('v-btn',{staticClass:\"d-flex justify-start pa-7 text-body-1\",class:{ 'video-completed': _vm.isVideoCompleted(button.value) },attrs:{\"value\":button.value,\"outlined\":\"\",\"block\":\"\"}},[_c('v-icon',{staticClass:\"mr-5\",attrs:{\"color\":_vm.isVideoCompleted(button.value) ? '' : 'primary'}},[_vm._v(\"mdi-play-circle-outline\")]),_vm._v(\" \"+_vm._s(button.text))],1)],1)}),1)],1)],1)],1)],1),_c('v-card-actions',{staticClass:\"d-flex justify-end\"},[_c('BaseButton',{attrs:{\"plain\":\"\",\"text\":_vm.allTutorialsFinished ? 'End Tutorial' : 'Skip Tutorial'},on:{\"click\":_vm.skipTutorial}}),_c('BaseButton',{attrs:{\"text\":_vm.isCurrentVideoFinished ? 'Replay' : 'Start tutorial'},on:{\"click\":_vm.startTutorial}})],1)],1),_c('v-dialog',{model:{value:(_vm.videoDialog),callback:function ($$v) {_vm.videoDialog=$$v},expression:\"videoDialog\"}},[_c('div',{staticClass:\"d-flex justify-space-between\",staticStyle:{\"position\":\"absolute\",\"top\":\"3%\",\"left\":\"10%\",\"width\":\"80%\",\"height\":\"100%\"}},[_c('iframe',{staticStyle:{\"position\":\"relative\",\"width\":\"90%\",\"height\":\"100%\"},attrs:{\"src\":_vm.toggle,\"frameborder\":\"0\",\"loading\":\"lazy\",\"webkitallowfullscreen\":\"\",\"mozallowfullscreen\":\"\",\"allowfullscreen\":\"\"}}),_c('div',{staticClass:\"video_controllers d-flex flex-column justify-space-between align-start\"},[_c('v-btn',{staticClass:\"complete_tutorial\",attrs:{\"icon\":\"\"},on:{\"click\":_vm.completeTutorial}},[_c('v-icon',{attrs:{\"color\":\"#f9f9f9\"}},[_vm._v(\"mdi-close\")])],1),(!_vm.isLastVideo)?_c('v-btn',{staticClass:\"next_tutorial\",attrs:{\"icon\":\"\",\"rounded\":\"\",\"color\":\"#f9f9f9\",\"ripple\":false},on:{\"click\":_vm.nextTutorial}},[_c('v-icon',{attrs:{\"color\":\"f9f9f9\"}},[_vm._v(\"mdi-skip-forward\")]),_vm._v(\"Next tutorial \")],1):_vm._e()],1)])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { IUserFields } from '@/interfaces'\nimport { Vue, Component, Watch } from 'vue-property-decorator'\nimport { UserModule } from '@/store/modules/userModule'\nimport BaseButton from '@/components/ui/BaseButton.vue'\n\n@Component({\n components: {\n BaseButton,\n },\n})\nexport default class TutorialDialog extends Vue {\n dialog = true\n toggle = 'https://demo.arcade.software/qmMYPVJrUwgTaFqqG4zo?embed'\n\n videoDialog = false\n completedTutorials: Array = []\n\n get playButtons() {\n return [\n {\n text: 'How to create a project',\n value: 'https://demo.arcade.software/qmMYPVJrUwgTaFqqG4zo?embed',\n },\n {\n text: 'How to create a task',\n value: 'https://demo.arcade.software/NENtAJk9PoGONbP7A7ss?embed',\n },\n {\n text: 'How to add a new user',\n value: 'https://demo.arcade.software/JNuORe5gvRfBr0c121bA?embed',\n },\n ]\n }\n\n get userInfo() {\n return UserModule.userInfo\n }\n\n get allTutorialsFinished() {\n return this.completedTutorials.length === this.playButtons.length\n }\n\n get isCurrentVideoFinished() {\n return this.completedTutorials.includes(this.toggle)\n }\n\n get isLastVideo() {\n let length = this.playButtons.length\n\n return this.toggle === this.playButtons[length - 1]?.value\n }\n\n @Watch('videoDialog')\n markVideoAsDone() {\n if (!this.completedTutorials.includes(this.toggle)) {\n this.completedTutorials.push(this.toggle)\n }\n }\n\n closeTutorialDialog() {\n this.dialog = false\n this.toggle = ''\n }\n\n closeVideoDialog() {\n this.videoDialog = false\n }\n\n async markTutorialAsRead() {\n let userFields: IUserFields = {\n uid: this.userInfo.uid,\n first_name: this.userInfo.first_name,\n last_name: this.userInfo.last_name,\n role: this.userInfo.role,\n wage: this.userInfo.wage,\n availability: this.userInfo.availability,\n settings: {\n ...this.userInfo.settings,\n tutorial_completed: true,\n },\n }\n await UserModule.updateUserAction(userFields)\n }\n\n skipTutorial() {\n this.closeTutorialDialog()\n this.markTutorialAsRead()\n }\n\n startTutorial() {\n this.videoDialog = true\n }\n\n isVideoCompleted(video) {\n return this.completedTutorials.includes(video)\n }\n\n nextTutorial() {\n if (!this.completedTutorials.includes(this.toggle)) {\n this.completedTutorials.push(this.toggle)\n }\n this.$nextTick(() => {\n let toggleObject = { text: '', value: '' }\n for (let i of this.playButtons) {\n if (i.value === this.toggle) {\n toggleObject = i\n }\n }\n this.toggle = this.playButtons[this.playButtons.indexOf(toggleObject) + 1].value\n })\n }\n\n completeTutorial() {\n if (!this.completedTutorials.includes(this.toggle)) {\n this.completedTutorials.push(this.toggle)\n }\n this.closeVideoDialog()\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TutorialDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TutorialDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TutorialDialog.vue?vue&type=template&id=29c18098&scoped=true&\"\nimport script from \"./TutorialDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./TutorialDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TutorialDialog.vue?vue&type=style&index=0&id=29c18098&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29c18098\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-snackbar',_vm._b({staticClass:\"quick-bar-wrapper\",attrs:{\"timeout\":_vm.timeout,\"transition\":\"slide-y-reverse-transition\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},'v-snackbar',{ ..._vm.$attrs },false),[_c('div',{staticClass:\"title-bar\"},[_c('span',[_vm._v(\"New Task\")])]),_c('NotificationItem',{style:('{background: #FFFFFF 0% 0% no-repeat padding-box;box-shadow: 0px 3px 25px #00000029;border-radius: 1px;background-color: white;}'),attrs:{\"item\":_vm.item}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator'\nimport NotificationItem from '@/components/lists/NotificationItem/NotificationItem.vue'\n\n@Component({\n components: {\n NotificationItem,\n },\n})\nexport default class QuickNotificationItem extends Vue {\n @Prop() value? = false\n @Prop()\n item: any\n\n show = this.value\n timeout = -1\n dismissible = true\n\n @Watch('show')\n emitShow(val: boolean, oldVal: boolean) {\n if (val === oldVal) return\n this.$emit('input', val)\n if (!val) return\n this.dismissible = true\n this.timeout = 10000\n }\n @Watch('value')\n toggleShow(val: boolean, oldVal: boolean) {\n if (val === oldVal) return\n this.show = val\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./QuickNotificationItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./QuickNotificationItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./QuickNotificationItem.vue?vue&type=template&id=60e8a54c&scoped=true&\"\nimport script from \"./QuickNotificationItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuickNotificationItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./QuickNotificationItem.vue?vue&type=style&index=0&id=60e8a54c&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"60e8a54c\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Ref, Vue, Watch } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nimport AppBar from '@/components/bars/AppBar.vue'\nimport EULADialog from '@/components/dialogs/EULADialog.vue'\nimport NavigationDrawerMobile from '@/components/navigation/NavigationDrawerMobile.vue'\nimport BaseDialog from '@/components/ui/BaseDialog.vue'\nimport BaseSnackbar from '@/components/ui/BaseSnackbar.vue'\nimport ChatPopup from '@/components/ui/ChatPopup.vue'\nimport PageLoader from '@/components/ui/PageLoader.vue'\nimport TutorialDialog from '@/components/tutorial/TutorialDialog.vue'\n\nimport { ISnackbar, IQuickNotify } from '@/interfaces'\nimport { TimetrackingState } from '@/store/modules/tiktrac/timetracking'\nimport type Tiktrac from 'vue/types/tiktrac'\n\nimport { ProjectsModule } from '@/store/modules/projectsModule'\nimport { UserModule } from './store/modules/userModule'\nimport { CalendarModule } from './store/modules/calendarModule'\nimport QuickNotificationItem from '@/components/ui/QuickNotificationItem.vue'\n\nconst StoreTimetracking = namespace('Timetracking')\nconst StoreUI = namespace('UI')\n\n@Component({\n components: {\n AppBar,\n ChatPopup,\n BaseDialog,\n BaseSnackbar,\n EULADialog,\n NavigationDrawerMobile,\n PageLoader,\n TutorialDialog,\n QuickNotificationItem,\n },\n})\nexport default class App extends Vue {\n @Ref('mobile-drawer') overallDrawer!: NavigationDrawerMobile\n\n drawer = false\n loading = true\n showEULA = false\n showTutorial = false\n\n @StoreUI.State\n public dialog!: any\n\n @StoreUI.State\n public snackbar!: any\n @StoreUI.State\n public quickNotify!: any\n\n @StoreTimetracking.Getter\n public getState!: TimetrackingState\n\n @StoreTimetracking.Action\n public fetchTimetracking!: (month?: string) => Promise\n\n @StoreUI.Action\n public getNextInQueue!: () => Promise\n\n @StoreUI.Action\n public getNextInQueueQuickNotify!: () => Promise\n\n @StoreUI.Action\n public showSnackbar!: (data: ISnackbar) => void\n\n @StoreUI.Action\n public showQuickNotify!: (data: IQuickNotify) => void\n\n @StoreUI.Action\n fetchNotifications!: () => void\n\n get getUserMSAL(): boolean {\n return UserModule.getUserInfo.msal_active\n }\n\n interval_ms_events: number = 0\n\n @Watch('snackbar.active')\n unqueueSnackbar(val: boolean) {\n if (!val) {\n this.getNextInQueue().then((snackbar) => {\n if (!snackbar) return\n setTimeout(() => {\n this.showSnackbar({ text: snackbar.text, type: snackbar.type })\n }, 250)\n })\n }\n }\n\n @Watch('quickNotify.active')\n unqueueQuickNotify(val: boolean) {\n if (!val) {\n this.getNextInQueueQuickNotify().then((quickNotify) => {\n if (!quickNotify) return\n setTimeout(() => {\n this.showQuickNotify({\n avatar: quickNotify.avatar,\n task: quickNotify.task,\n project: quickNotify.project,\n time: quickNotify.time,\n type: quickNotify.type,\n whoAssigned: quickNotify.whoAssigned,\n })\n }, 250)\n })\n }\n }\n\n @Watch('getState')\n updateOnStateChange(val: TimetrackingState, oldVal: TimetrackingState) {\n if (val === TimetrackingState.UNKNOWN || val === oldVal) {\n return\n }\n // TODO optimize this\n ProjectsModule.fetchAllTasks(true)\n }\n\n @Watch('getUserMSAL')\n updateIfMSAL(val: boolean) {\n if (!val) {\n clearInterval(this.interval_ms_events)\n // update tasks and busyList entries after microsoft cleanup\n ProjectsModule.fetchAllTasks(true)\n this.fetchTimetracking()\n return\n }\n CalendarModule.syncMSCalendar()\n setInterval(async () => {\n CalendarModule.syncMSCalendar()\n }, 5 * 60 * 1000)\n }\n\n created() {\n // dependencies\n UserModule.fetchUserInfo().then(() => {\n if (!UserModule.getUserInfo.settings.tutorial_completed) {\n this.showTutorial = true\n }\n })\n this.fetchNotifications()\n setInterval(async () => {\n this.fetchNotifications()\n }, 5 * 60 * 1000)\n }\n\n mounted() {\n this.showEULA = !localStorage.getItem('acceptedEULA')\n this.loading = false\n }\n\n toggleDrawer() {\n this.overallDrawer.toggleDrawer()\n }\n}\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=41679b0b&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=41679b0b&prod&lang=scss&\"\nimport style1 from \"./App.vue?vue&type=style&index=1&id=41679b0b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"41679b0b\",\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\n\nconst tiktracRoutes: RouteConfig = {\n path: '/tiktrac',\n name: 'Tiktrac',\n component: () => import('@/apps/tiktrac/views/user/Timetracking.vue'),\n}\nexport default tiktracRoutes\n","import { RouteConfig } from 'vue-router'\n\nconst paytracRoutes: RouteConfig = {\n path: '/paytrac',\n name: 'Paytrac',\n component: () => import('@/apps/paytrac/views/Budgettracking.vue'),\n}\nexport default paytracRoutes\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('layout-two-columns',{scopedSlots:_vm._u([{key:\"left\",fn:function(){return [_c('daily-planner',{staticClass:\"mt-8\"})]},proxy:true},{key:\"right\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"mt-9\"},[_c('quick-task-creator'),_c('daily-task-list')],1),_c('div',{staticClass:\"mt-9\"},[_c('quick-project-creator'),_c('ProjectList',{staticClass:\"mt-9\"})],1)])]},proxy:true}])}),_c('TaskDialog',{ref:\"dialogRef\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"d-flex align-baseline justify-space-between flex-wrap\"},[_c('div',{staticClass:\"d-flex prior-wrapper flex-wrap align-baseline\",style:({ gap: '20px' })},[_c('p',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$t('homePage.dailyPlanner.eisen.priority')))]),_c('p',{staticClass:\"d-flex align-baseline text-caption\",style:({ gap: '7px' })},[_c('span',{style:({ alignSelf: 'center', paddingBottom: '4px' })},[_c('v-img',{attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/icon_urgency_4.svg')}})],1),_vm._v(_vm._s(_vm.$t('homePage.dailyPlanner.eisen.immediately'))),_c('span',{staticClass:\"font-weight-bold\",style:({ fontSize: '1rem !important' })},[_vm._v(_vm._s(`${_vm.amountTask(3, 4)} ${_vm.$t('homePage.dailyPlanner.eisen.tasks')}`))])]),_c('p',{staticClass:\"d-flex align-baseline text-caption\",style:({ gap: '7px' })},[_c('span',{style:({ alignSelf: 'center', paddingBottom: '4px' })},[_c('v-img',{attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/icon_urgency_3.svg')}})],1),_vm._v(_vm._s(_vm.$t('homePage.dailyPlanner.eisen.schedule'))),_c('span',{staticClass:\"font-weight-bold\",style:({ fontSize: '1rem !important' })},[_vm._v(_vm._s(`${_vm.amountTask(3, 3) + _vm.amountTask(2, 4)} ${_vm.$t( 'homePage.dailyPlanner.eisen.tasks' )}`))])])]),_c('div',[_c('p',{staticClass:\"mb-0 d-flex flex-end primary--text align-baseline text-decoration-underline\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":_vm.openEisenhoverDialog}},[_c('v-img',{attrs:{\"width\":\"1.1rem\",\"height\":\"1.1rem\",\"contain\":\"\",\"src\":require('@/assets/Eisenhower_icon.svg')}}),_vm._v(_vm._s(_vm.$t('homePage.dailyPlanner.eisen.openEisen'))+\" \")],1)]),_c('EisenHoverMatrixDialog',{ref:\"EisenHoverMatrixDialogRef\",attrs:{\"returnAmountTasks\":_vm.amountTask}})],1),(_vm.isDailyPlannerLoading)?_c('div',{staticClass:\"d-flex justify-center align-center\",staticStyle:{\"margin-top\":\"7.143rem\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}})],1):_c('v-calendar',{ref:\"calendar\",staticClass:\"daily-planner\",attrs:{\"event-color\":\"#fff\",\"event-text-color\":\"#4a4a4a\",\"first-time\":\"05:00\",\"locale\":_vm.$t('calendar.dailyPlanner.calendarLocale'),\"type\":\"day\",\"events\":_vm.events,\"hide-header\":_vm.hideHeader,\"event-overlap-mode\":\"column\",\"interval-count\":24 - 6,\"weekday-format\":() => ''},on:{\"mousemove:time\":_vm.mouseMove,\"mouseup:time\":_vm.endDrag,\"mousedown:time\":_vm.createNewEvent,\"mousemove:interval\":_vm.moveInterval,\"mouseup:interval\":_vm.endIntervalDrag},nativeOn:{\"dragover\":function($event){$event.preventDefault();return _vm.dragOverHandler.apply(null, arguments)},\"dragleave\":function($event){return _vm.dragLeaveHandler.apply(null, arguments)},\"dragenter\":function($event){$event.preventDefault();},\"mouseleave\":function($event){return _vm.endDrag.apply(null, arguments)},\"click\":function($event){return _vm.openMenu.apply(null, arguments)},\"drop\":function($event){return _vm.dropTaskFromTaskList.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"day-label-header\",fn:function(){return [_vm._v(\" \"+_vm._s('')+\" \")]},proxy:true},{key:\"event\",fn:function({ event, timed }){return [(event.allDay)?_c('div',{on:{\"click\":function($event){$event.stopPropagation();return _vm.editTimetracking(event)}}},[_c('div',[_vm._v(_vm._s(event.name))])]):_c('div',{staticClass:\"event-text-container\",on:{\"click\":function($event){$event.stopPropagation();return _vm.editTimetracking(event)}}},[_c('div',{staticClass:\"event-text mx-2\",class:_vm.isActiveEvent(event.id) ? 'primary--text' : 'secondary--text'},[_c('span',[_vm._v(_vm._s(event.name))]),(!_vm.isActiveEvent(event.id))?_c('span',{staticClass:\"text--disabled\"},[_vm._v(\" , \"),_c('span',{staticClass:\"ml-1 text--disabled\"},[_vm._v(_vm._s(_vm.timestampToString(event.start))+\" - \"+_vm._s(_vm.timestampToString(event.end)))])]):_vm._e()]),_c('img',{staticClass:\"drag-indicator\",attrs:{\"src\":require(\"@/assets/drag_label.svg\")},on:{\"mousedown\":function($event){return _vm.calendarDragHandler(event)},\"click\":(e) => e.stopPropagation()}}),_c('div',{staticClass:\"event-pause-segments\"},[_c('div',{staticClass:\"event-pause-segment\"})]),(event.is_canceled)?_c('v-icon',{staticClass:\"delete_canceled_entry mdi-24px\",on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteTask(event)}}},[_vm._v(\"mdi-delete\")]):_vm._e(),(timed)?_c('div',{staticClass:\"v-event-drag-bottom\",on:{\"mousedown\":function($event){$event.stopPropagation();return _vm.extendBottom(event)}}}):_vm._e()],1)]}},{key:\"day-body\",fn:function({ date, week }){return [_c('div',{staticClass:\"v-current-time\",class:{ first: date === week[0].date },style:({ top: _vm.nowY })})]}}])}),_c('v-menu',{attrs:{\"activator\":_vm.menuActivator,\"close-on-content-click\":false},on:{\"input\":_vm.cancelMenuEvent},model:{value:(_vm.selectedOpen),callback:function ($$v) {_vm.selectedOpen=$$v},expression:\"selectedOpen\"}},[_c('v-card',{staticClass:\"px-10 py-3\",attrs:{\"color\":\"grey lighten-4\",\"min-width\":\"350px\",\"flat\":\"\"}},[_c('div',[_c('v-form',{ref:\"form\"},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"required\":\"\",\"placeholder\":_vm.$t('ticktrack.ticktrackMini.projectPlaceholder'),\"items\":_vm.selProjects,\"value\":_vm.selectedProject,\"rules\":_vm.rulesName,\"prepend-icon\":\"mdi-share-variant\"},on:{\"change\":_vm.updateSelProjects}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-combobox',{ref:\"selectedTaskName\",attrs:{\"required\":\"\",\"items\":_vm.selTasks,\"placeholder\":_vm.$t('ticktrack.ticktrackMini.taskNamePlaceholder'),\"rules\":_vm.rulesName,\"prepend-icon\":\"mdi-order-bool-ascending-variant\"},on:{\"change\":_vm.updateSelectedProject},scopedSlots:_vm._u([{key:\"item\",fn:function({ item }){return [_c('div',{staticClass:\"d-flex justify-space-between align-center\",staticStyle:{\"width\":\"100%\"}},[_c('div',[_vm._v(_vm._s(item.text))]),_c('div',{staticClass:\"ml-4 text-caption text--disabled\"},[_vm._v(\" \"+_vm._s(item.projectName)+\" \")])])]}}]),model:{value:(_vm.selectedTaskName),callback:function ($$v) {_vm.selectedTaskName=$$v},expression:\"selectedTaskName\"}})],1),_c('v-row',{staticClass:\"my-3\",attrs:{\"justify\":\"space-between\"}},[_c('v-btn',{attrs:{\"icon\":\"\"},nativeOn:{\"click\":function($event){return _vm.confirmMenuEvent.apply(null, arguments)}}},[_c('v-icon',[_vm._v(\"mdi-check\")])],1),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.cancelMenuEvent}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1)])],1),_c('TaskDialog',{ref:\"taskDialog\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"transition\":\"dialog-bottom-transition\",\"content-class\":\"dialog-center dialog-full-height dialog-overflow-y-remove\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;_vm.abort = true}},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"bg-main eisenhover_matrix\",attrs:{\"id\":\"dialog-card\"}},[_c('v-card-title',[_c('v-row',[_c('v-col',{staticClass:\"d-flex justify-space-between\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('h4',{style:({\n fontWeight: 'bold',\n fontSize: '1.5rem',\n })},[_vm._v(\" \"+_vm._s(_vm.$t('eisenhower.title'))+\" \")]),_c('v-menu',{attrs:{\"nudge-bottom\":40,\"nudge-left\":30},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({staticClass:\"ml-2\"},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-outline\")])]}}])},[_c('v-card',{staticClass:\"mx-auto\",attrs:{\"max-width\":\"370\"}},[_c('v-card-text',{staticClass:\"d-flex justify-space-between\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',[_vm._v(\"mdi-information-outline\")]),_c('h4',{staticClass:\"pl-1\",staticStyle:{\"font-size\":\"1rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('eisenhower.info'))+\" \")])],1),_c('v-icon',[_vm._v(\" mdi-close\")])],1),_c('v-divider'),_c('v-card-text',{staticClass:\"pt-2 pb-2\"},[_c('p',[_vm._v(\" \"+_vm._s(_vm.$t('eisenhower.infoDesc'))+\" \")]),_c('v-divider')],1),_c('v-card-text',{staticClass:\"pb-0 pt-0\"},[_c('div',{staticClass:\"d-flex w100\"},[_c('v-img',{staticClass:\"mt-1\",attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/icon_urgency_4.svg')}}),_c('p',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.$t('eisenhower.urgent')))])],1),_c('div',{staticClass:\"d-flex w100\"},[_c('v-img',{staticClass:\"mt-1\",attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/icon_urgency_3.svg')}}),_c('p',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.$t('eisenhower.schedule')))])],1),_c('div',{staticClass:\"d-flex w100\"},[_c('v-img',{staticClass:\"mt-1\",attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/icon_urgency_2.svg')}}),_c('p',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.$t('eisenhower.putOff')))])],1),_c('div',{staticClass:\"d-flex w100\"},[_c('v-img',{staticClass:\"mt-1\",attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/icon_urgency_1.svg')}}),_c('p',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.$t('eisenhower.notUrgent')))])],1),_c('v-divider')],1),_c('v-card-text',{staticClass:\"d-flex justify-space-between align-baseline\"},[_c('p',[_vm._v(_vm._s(_vm.$t('eisenhower.lowImportance')))]),_c('span',{staticClass:\"info-divider\"}),_c('p',[_vm._v(_vm._s(_vm.$t('eisenhower.highImportance')))])])],1)],1)],1),_c('div',[_c('v-icon',{on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\"mdi-close\")])],1)])],1)],1),_c('v-divider'),_c('v-card-text',{staticClass:\"eisenHover-section\"},[_c('div',{staticClass:\"eisen-window d-flex flex-wrap\"},[_c('div',{staticClass:\"matrix coordinate-1-4\"},[(_vm.matrix14.length === 0)?_c('div'):_vm._l((_vm.matrix14),function(task){return _c('div',{key:task.id,class:{ task: true, activeTask: _vm.isTaskIsActiveNow(task.id) },on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(0)}})],1),_c('span',{class:{ tooltiptext: true, pl2: _vm.isTaskIsActiveNow(task.id) }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2),_c('div',{staticClass:\"matrix coordinate-2-4\"},[(_vm.matrix24.length === 0)?_c('div'):_vm._l((_vm.matrix24),function(task){return _c('div',{key:task.id,class:{ task: true, activeTask: _vm.isTaskIsActiveNow(task.id) },on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(1)}})],1),_c('span',{class:{ tooltiptext: true, pl2: _vm.isTaskIsActiveNow(task.id) }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2),_c('div',{staticClass:\"matrix coordinate-3-4\"},[(_vm.matrix34.length === 0)?_c('div'):_vm._l((_vm.matrix34),function(task){return _c('div',{key:task.id,class:{ task: true, activeTask: _vm.isTaskIsActiveNow(task.id) },on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(2)}})],1),_c('span',{class:{ tooltiptext: true, pl2: _vm.isTaskIsActiveNow(task.id) }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2),_c('div',{staticClass:\"matrix coordinate-4-4\"},[(_vm.matrix44.length === 0)?_c('div'):_vm._l((_vm.matrix44),function(task){return _c('div',{key:task.id,staticClass:\"task left\",on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(3)}})],1),_c('span',{class:{\n tooltiptext: true,\n pl2: _vm.isTaskIsActiveNow(task.id),\n left: true,\n }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2)]),_c('div',{staticClass:\"eisen-window d-flex flex-wrap\"},[_c('div',{staticClass:\"matrix coordinate-1-3\"},[(_vm.matrix13.length === 0)?_c('div'):_vm._l((_vm.matrix13),function(task){return _c('div',{key:task.id,class:{ task: true, activeTask: _vm.isTaskIsActiveNow(task.id) },on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(0)}})],1),_c('span',{class:{ tooltiptext: true, pl2: _vm.isTaskIsActiveNow(task.id) }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2),_c('div',{staticClass:\"matrix coordinate-2-3\"},[(_vm.matrix23.length === 0)?_c('div'):_vm._l((_vm.matrix23),function(task){return _c('div',{key:task.id,class:{ task: true, activeTask: _vm.isTaskIsActiveNow(task.id) },on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(1)}})],1),_c('span',{class:{ tooltiptext: true, pl2: _vm.isTaskIsActiveNow(task.id) }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',[_c('p',[_vm._v(_vm._s(task.name))])])])})],2),_c('div',{staticClass:\"matrix coordinate-3-3\"},[(_vm.matrix33.length === 0)?_c('div'):_vm._l((_vm.matrix33),function(task){return _c('div',{key:task.id,staticClass:\"task\",on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(2)}})],1),_c('span',{class:{ tooltiptext: true, pl2: _vm.isTaskIsActiveNow(task.id) }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2),_c('div',{staticClass:\"matrix coordinate-4-3\"},[(_vm.matrix43.length === 0)?_c('div'):_vm._l((_vm.matrix43),function(task){return _c('div',{key:task.id,staticClass:\"task left\",on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(3)}})],1),_c('span',{class:{\n tooltiptext: true,\n pl2: _vm.isTaskIsActiveNow(task.id),\n left: true,\n }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2)]),_c('div',{staticClass:\"eisen-window d-flex flex-wrap\"},[_c('div',{staticClass:\"matrix coordinate-1-2\"},[(_vm.matrix12.length === 0)?_c('div'):_vm._l((_vm.matrix12),function(task){return _c('div',{key:task.id,class:{ task: true, activeTask: _vm.isTaskIsActiveNow(task.id) },on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(0)}})],1),_c('span',{class:{ tooltiptext: true, pl2: _vm.isTaskIsActiveNow(task.id) }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2),_c('div',{staticClass:\"matrix coordinate-2-2\"},[(_vm.matrix22.length === 0)?_c('div'):_vm._l((_vm.matrix22),function(task){return _c('div',{key:task.id,class:{ task: true, activeTask: _vm.isTaskIsActiveNow(task.id) },on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(1)}})],1),_c('span',{class:{ tooltiptext: true, pl2: _vm.isTaskIsActiveNow(task.id) }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2),_c('div',{staticClass:\"matrix coordinate-3-2\"},[(_vm.matrix32.length === 0)?_c('div'):_vm._l((_vm.matrix32),function(task){return _c('div',{key:task.id,class:{ task: true, activeTask: _vm.isTaskIsActiveNow(task.id) },on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(2)}})],1),_c('span',{class:{ tooltiptext: true, pl2: _vm.isTaskIsActiveNow(task.id) }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2),_c('div',{staticClass:\"matrix coordinate-4-2\"},[(_vm.matrix42.length === 0)?_c('div'):_vm._l((_vm.matrix42),function(task){return _c('div',{key:task.id,staticClass:\"task left\",on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(3)}})],1),_c('span',{class:{\n tooltiptext: true,\n pl2: _vm.isTaskIsActiveNow(task.id),\n left: true,\n }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2)]),_c('div',{staticClass:\"eisen-window d-flex flex-wrap\"},[_c('div',{staticClass:\"matrix coordinate-1-1\"},[(_vm.matrix11.length === 0)?_c('div'):_vm._l((_vm.matrix11),function(task){return _c('div',{key:task.id,class:{ task: true, activeTask: _vm.isTaskIsActiveNow(task.id) },on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(0)}})],1),_c('span',{class:{ tooltiptext: true, pl2: _vm.isTaskIsActiveNow(task.id) }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2),_c('div',{staticClass:\"matrix coordinate-2-1\"},[(_vm.matrix21.length === 0)?_c('div'):_vm._l((_vm.matrix21),function(task){return _c('div',{key:task.id,class:{ task: true, activeTask: _vm.isTaskIsActiveNow(task.id) },on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(1)}})],1),_c('span',{class:{ tooltiptext: true, pl2: _vm.isTaskIsActiveNow(task.id) }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2),_c('div',{staticClass:\"matrix coordinate-3-1\"},[(_vm.matrix31.length === 0)?_c('div'):_vm._l((_vm.matrix31),function(task){return _c('div',{key:task.id,class:{ task: true, activeTask: _vm.isTaskIsActiveNow(task.id) },on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(2)}})],1),_c('span',{class:{ tooltiptext: true, pl2: _vm.isTaskIsActiveNow(task.id) }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2),_c('div',{staticClass:\"matrix coordinate-4-1\"},[(_vm.matrix41.length === 0)?_c('div'):_vm._l((_vm.matrix41),function(task){return _c('div',{key:task.id,staticClass:\"task left\",on:{\"click\":function($event){return _vm.editCurrentTask(task.id)}}},[_c('div',[_c('v-img',{staticClass:\"\",attrs:{\"width\":\"0.5rem\",\"height\":\"0.5rem\",\"contain\":\"\",\"src\":_vm.getTaskUrgencyIcon(3)}})],1),_c('span',{class:{\n tooltiptext: true,\n pl2: _vm.isTaskIsActiveNow(task.id),\n left: true,\n }},[_c('p',{staticClass:\"text-left mb-1\",class:{ projectName: true, line: _vm.isTaskIsActiveNow(task.id) }},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(task.project))+\" \")]),_c('p',{staticClass:\"taskName text-left mb-1\"},[_vm._v(_vm._s(task.name))]),_c('span',{staticClass:\"d-flex flex-column text-left\"},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Time recorded: ${_vm.displayUptime(task.id)}`)+\" \")]),(\n _vm.isTaskIsActiveNow(task.id) && typeof _vm.getActivePause !== 'number'\n )?_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"var(--v-primary-base)\",\"line-height\":\"150%\",\"font-size\":\"0.786rem\"}},[_vm._v(\" \"+_vm._s(/* TODO localization */)+\" \"+_vm._s(`Active time tracking: ${_vm.passedTimeFormatted}`)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"d-flex justify-center align-center\",class:{ activeTask: _vm.isTaskIsActiveNow(task.id) }},[_c('p',[_vm._v(_vm._s(task.name))])])])})],2)]),_c('div',{staticClass:\"quarter-desc notUgrent\"},[_c('p',{staticClass:\"mb-0\"},[_vm._v(_vm._s(_vm.$t('eisenhower.axises.notUgrent')))])]),_c('div',{staticClass:\"quarter-desc ugrent\"},[_c('p',{staticClass:\"mb-0\"},[_vm._v(_vm._s(_vm.$t('eisenhower.axises.ugrent')))])]),_c('div',{staticClass:\"quarter-desc important\"},[_c('p',{staticClass:\"mb-0\"},[_vm._v(_vm._s(_vm.$t('eisenhower.axises.important')))])]),_c('div',{staticClass:\"quarter-desc notImportant\"},[_c('p',{staticClass:\"mb-0\"},[_vm._v(_vm._s(_vm.$t('eisenhower.axises.notImportant')))])])])],1),_c('TaskDialog',{ref:\"taskDialog\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue from 'vue'\nimport { Component, Watch, Prop } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nimport DailyBaseComponent from '@/components/calendar/DailyBaseComponent.vue'\nimport { decimalToHours } from '@/services/datetime'\n\nimport { ITask } from '@/interfaces'\nimport { BusyListElem, TimetrackingsPerMonth } from 'vue/types/tiktrac'\n\nimport { ProjectsModule } from '@/store/modules/projectsModule'\nimport { TimetrackingState } from '@/store/modules/tiktrac/timetracking'\nconst StoreTiktrac = namespace('Timetracking')\n\n@Component({\n components: {},\n})\nexport default class EisenHoverMatrixDialog extends DailyBaseComponent {\n @Prop() returnAmountTasks\n\n @StoreTiktrac.Getter\n public getState!: TimetrackingState\n\n // @StoreTiktrac.Action\n // public fetchTimetracking!: () => Promise\n\n @StoreTiktrac.Getter\n public getBusyList!: any\n\n @StoreTiktrac.Getter\n public getAllTimetrackings!: TimetrackingsPerMonth\n\n @StoreTiktrac.Getter\n public getActiveStartTime!: number\n\n @StoreTiktrac.Getter\n public getActivePause!: number | null\n\n @StoreTiktrac.Getter\n public getCurrent!: { curUserId: string; curMonth: string; isAdmin: boolean }\n\n @StoreTiktrac.Getter\n public getPauseTime!: number\n\n abort = false\n dialog = false\n now = 0\n\n public createDialog() {\n this.dialog = true\n }\n get getTaskList() {\n return ProjectsModule.getTasks\n }\n\n get passedTimeFormatted() {\n const currentTime = this.now\n\n return new Date(currentTime - this.getActiveStartTime - this.getPauseTime)\n .toISOString()\n .substr(11, 8)\n }\n\n @Watch('getActivePause')\n testonly2() {\n if (typeof this.getActivePause === 'number') {\n clearInterval(this.polling)\n } else {\n setInterval(() => {\n this.now = Date.now()\n }, 1000)\n }\n }\n\n getTaskUrgencyIcon(number) {\n return ProjectsModule.getTaskUrgency(number).icon\n }\n tasks: Array = []\n matrix11: Array = []\n matrix12: Array = []\n matrix13: Array = []\n matrix14: Array = []\n\n matrix21: Array = []\n matrix22: Array = []\n matrix23: Array = []\n matrix24: Array = []\n\n matrix31: Array = []\n matrix32: Array = []\n matrix33: Array = []\n matrix34: Array = []\n\n matrix41: Array = []\n matrix42: Array = []\n matrix43: Array = []\n matrix44: Array = []\n\n container: any = {}\n timePassed = 0\n @Watch('dialog')\n toggleDialog(value) {\n if (value) {\n this.initValues()\n }\n }\n @Watch('getTaskList')\n inint() {\n this.tasks = Object.values(this.$deepCopy(this.getTaskList))\n this.initValues()\n }\n\n @Watch('limiter')\n limiterchanger() {\n this.initValues()\n }\n busylist: Array = []\n\n @Watch('getBusyList')\n initBusy() {\n this.initValues()\n }\n\n mounted() {\n this.container = document.querySelector(`.matrix.coordinate-2-2`)\n }\n\n displayUptime(idTask: number | undefined) {\n if (!idTask) {\n return ''\n }\n\n const filterResult: Array = this.busylist.filter(\n (item: BusyListElem) => item.task === idTask\n )\n\n if (typeof filterResult !== 'undefined') {\n let sum = 0\n\n for (const busyListElem of filterResult) {\n sum += busyListElem.end - busyListElem.start - busyListElem.pause\n }\n\n const duration = Vue.prototype.$moment.duration(sum)\n return decimalToHours(duration.asHours(), true, true)\n }\n }\n\n getProjectNameById(id: number | undefined) {\n if (!id) {\n return ''\n }\n return ProjectsModule.getProjects[id]?.name || ''\n }\n getProjectDeadlineById(id: number | undefined) {\n if (!id) {\n return ''\n }\n return ProjectsModule.getProjects[id]?.due_date || ''\n }\n\n limiter: number = 0\n updated() {\n this.$nextTick(function () {\n const container = document.querySelector(`.matrix.coordinate-2-2`)\n this.limiter = this.CalculateTasksLimiter(\n container?.clientWidth,\n container?.clientHeight\n )\n })\n }\n polling: any = null\n created() {\n window.addEventListener('resize', this.myWatcherResizer)\n\n this.polling = setInterval(() => {\n this.now = Date.now()\n }, 1000)\n }\n beforeDestroy() {\n clearInterval(this.polling)\n }\n destroyed() {\n window.removeEventListener('resize', this.myWatcherResizer)\n }\n\n myWatcherResizer(e) {\n const container = document.querySelector(`.matrix.coordinate-2-2`)\n this.limiter = this.CalculateTasksLimiter(\n container?.clientWidth,\n container?.clientHeight\n )\n }\n\n CalculateTasksLimiter(width, height): number {\n const taskWidth = 80 + 14 //including margin 2*7px\n const taskHeight = 30 + 14 //including margin 2*7px\n const amountTaskWidth = Math.floor(width / taskWidth)\n const amountTaskHeight = Math.floor(height / taskHeight)\n\n return amountTaskWidth * amountTaskHeight\n }\n\n filterByImportanceAndUrgency(urgency: number, importance: number): Array {\n let result: Array = []\n let maximum: number = 0\n\n //TODO prioritize task\n let count = 0\n if (maximum !== undefined) {\n result = this.tasks.filter((task) => {\n if (count < this.limiter && !task.is_completed) {\n const res = task.urgency === urgency && task.importance === importance\n if (res) {\n count++\n return true\n }\n }\n })\n }\n\n return result\n }\n\n editCurrentTask(idx: number) {\n const currentTask = ProjectsModule.fetchTaskByID(idx)\n currentTask?.then((task) => {\n this.taskDialog.editTask(task)\n })\n }\n\n initValues() {\n this.tasks = Object.values(this.$deepCopy(this.getTaskList))\n this.busylist = []\n for (const timetrackingPerUser of Object.values(this.getAllTimetrackings)) {\n const busylist = timetrackingPerUser[this.getCurrent.curUserId]?.busyList\n if (!busylist) {\n continue\n }\n const bl: Array = Object.values(this.$deepCopy(busylist))\n this.busylist.push(...bl)\n }\n\n this.matrix11 = this.filterByImportanceAndUrgency(0, 1)\n this.matrix12 = this.filterByImportanceAndUrgency(0, 2)\n this.matrix13 = this.filterByImportanceAndUrgency(0, 3)\n this.matrix14 = this.filterByImportanceAndUrgency(0, 4)\n\n this.matrix21 = this.filterByImportanceAndUrgency(1, 1)\n this.matrix22 = this.filterByImportanceAndUrgency(1, 2)\n this.matrix23 = this.filterByImportanceAndUrgency(1, 3)\n this.matrix24 = this.filterByImportanceAndUrgency(1, 4)\n\n this.matrix31 = this.filterByImportanceAndUrgency(2, 1)\n this.matrix32 = this.filterByImportanceAndUrgency(2, 2)\n this.matrix33 = this.filterByImportanceAndUrgency(2, 3)\n this.matrix34 = this.filterByImportanceAndUrgency(2, 4)\n\n this.matrix41 = this.filterByImportanceAndUrgency(3, 1)\n this.matrix42 = this.filterByImportanceAndUrgency(3, 2)\n this.matrix43 = this.filterByImportanceAndUrgency(3, 3)\n this.matrix44 = this.filterByImportanceAndUrgency(3, 4)\n }\n\n isTaskIsActiveNow(idx: number) {\n if (!idx) {\n return false\n }\n if (this.getActiveTaskId === idx) {\n return true\n }\n return false\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EisenHoverMatrixDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EisenHoverMatrixDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EisenHoverMatrixDialog.vue?vue&type=template&id=6f52e4f8&scoped=true&\"\nimport script from \"./EisenHoverMatrixDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./EisenHoverMatrixDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EisenHoverMatrixDialog.vue?vue&type=style&index=0&id=6f52e4f8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f52e4f8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"v-attendance-bar\",style:({\n top: `${_vm.startCoordinate}%`,\n height: `${_vm.barHeight}%`,\n display: `${_vm.barDisplay}`,\n })},[_c('div',{ref:\"extend_top\",staticClass:\"extend_bar_top\",on:{\"mousedown\":_vm.expandTop}}),_c('div',{ref:\"extend_bottom\",staticClass:\"extend_bar_bottom\",on:{\"mousedown\":_vm.expandBottom}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nimport type Tiktrac from 'vue/types/tiktrac'\nimport { AttendanceListElem } from 'vue/types/tiktrac'\n\nconst StoreAttendance = namespace('Attendance')\n\n@Component\nexport default class AttendanceBar extends Vue {\n @StoreAttendance.Getter\n public getAttendanceList!: Tiktrac.Timetracking\n\n @StoreAttendance.Getter\n public getAttendanceToday!: AttendanceListElem | null\n\n @StoreAttendance.Action\n public doUpdate!: (data: {\n issueId: string\n entry: Tiktrac.AttendanceListElemPartial\n }) => Promise\n\n barHeight = 0\n startCoordinate = 0\n barDisplay = 'none'\n\n calendarMinutesSum = 1080\n\n isAttendanceListLoaded = false\n attendance: AttendanceListElem | null = null\n\n isExpandingTop = false\n isExpandingBottom = false\n\n dayStart = new Date()\n\n mounted() {\n this.setDayStart()\n this.attendance = this.$deepCopy(this.getAttendanceToday)\n }\n\n @Watch('getAttendanceList')\n logTimetracking() {\n this.attendance = this.$deepCopy(this.getAttendanceToday)\n }\n\n @Watch('attendance')\n toggleLoaded() {\n if (this.attendance) {\n this.toggleAttendanceState()\n }\n }\n\n @Watch('isAttendanceListLoaded')\n createBar() {\n if (this.attendance) {\n this.calculateAttendance(this.attendance.start, this.attendance.end)\n }\n }\n\n doAttendanceUpdate() {\n if (this.attendance != null) {\n const data = {\n issueId: this.attendance.id,\n entry: this.attendance,\n }\n\n this.doUpdate(data)\n .then()\n .catch(() => {\n this.attendance = this.$deepCopy(this.getAttendanceToday)\n })\n }\n }\n\n expandTop() {\n this.isExpandingTop = true\n }\n\n extendTop(value) {\n if (this.attendance != null) {\n this.attendance.start += value\n this.calculateAttendance(this.attendance.start, this.attendance.end)\n }\n }\n\n extendBottom(value) {\n if (this.attendance != null) {\n this.attendance.end += value\n this.calculateAttendance(this.attendance.start, this.attendance.end)\n }\n }\n\n expandBottom() {\n this.isExpandingBottom = true\n }\n\n setDayStart() {\n this.dayStart.setMilliseconds(0)\n this.dayStart.setMinutes(0)\n this.dayStart.setSeconds(0)\n this.dayStart.setHours(5)\n }\n\n toggleAttendanceState() {\n this.$nextTick(() => {\n this.isAttendanceListLoaded = !this.isAttendanceListLoaded\n })\n }\n\n calculateAttendance(start, end) {\n this.$nextTick(() => {\n let attendanceStart = new Date(start)\n let attendanceEnd = new Date(end)\n\n let minuteLength =\n attendanceEnd.getDate() * 24 * 60 +\n attendanceEnd.getHours() * 60 +\n attendanceEnd.getMinutes() -\n (attendanceStart.getDate() * 24 * 60 +\n attendanceStart.getHours() * 60 +\n attendanceStart.getMinutes())\n this.barHeight = (minuteLength / 1080) * 100\n\n let minutesOffset =\n attendanceStart.getHours() * 60 +\n attendanceStart.getMinutes() -\n (this.dayStart.getHours() * 60 + this.dayStart.getMinutes())\n this.startCoordinate = (minutesOffset / 1080) * 100\n this.barDisplay = 'block'\n })\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AttendanceBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AttendanceBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AttendanceBar.vue?vue&type=template&id=6335dc04&scoped=true&\"\nimport script from \"./AttendanceBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./AttendanceBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AttendanceBar.vue?vue&type=style&index=0&id=6335dc04&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6335dc04\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Ref, Vue, Watch } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\n\nimport DailyBaseComponent from './DailyBaseComponent.vue'\nimport EisenHoverMatrixDialog from '@/components/dialogs/EisenHoverMatrixDialog.vue'\nimport { generateIssueID, setIssueEndToNow } from '@/services/tiktrac'\n\nimport { ProjectsModule } from '@/store/modules/projectsModule'\n\nimport type Tiktrac from 'vue/types/tiktrac'\nimport { IProject, ISnackbar, ITask } from '@/interfaces'\nimport { CalendarDayBodySlotScope } from 'vuetify'\nimport type { VForm } from 'vue/types/extend'\nimport AttendanceBar from './AttendanceBar.vue'\nimport store from '@/store'\n\nconst StoreTimetracking = namespace('Timetracking')\nconst StoreUI = namespace('UI')\n\n@Component({ components: { AttendanceBar, EisenHoverMatrixDialog } })\nexport default class DailyPlanner extends DailyBaseComponent {\n @Ref('form')\n readonly form!: VForm\n\n @Ref()\n readonly EisenHoverMatrixDialogRef!: EisenHoverMatrixDialog\n\n @Ref()\n readonly calendar!: any\n\n @StoreTimetracking.Getter\n public getBusyList!: Tiktrac.BusyList\n\n @StoreTimetracking.Getter\n public getActiveTimer!: string\n\n @StoreTimetracking.Getter\n public getCurrent!: { curUserId: string; curMonth: string; isAdmin: boolean }\n\n @StoreTimetracking.Getter\n public getIsInitializing!: boolean\n\n @StoreTimetracking.Action\n public doAddIssue!: (data: {\n entry: Tiktrac.BusyListElem\n }) => Promise\n\n @StoreTimetracking.Action\n public doDeleteIssue!: (data: {\n issueId: string\n msSeriesMasterId?: string\n }) => Promise\n\n @StoreTimetracking.Action\n public doUpdate!: (data: {\n issueId: string\n entry: Tiktrac.BusyListElemPartial\n }) => Promise\n\n hideHeader = true\n ready = false\n selectedOpen = false\n selectedEvent = null\n busyList: Tiktrac.BusyList = {}\n taskList: Array = []\n tasks: Array = []\n\n firstPoint: number = 0\n moveTime: number = 0\n moveTimeInterval: number = 0\n isDragging: Boolean = false\n isExpanding: Boolean = false\n timetrackingCollision: Boolean = false\n\n menuActivator = {}\n selProjects: Array = []\n selectedProject = 0\n selTasks: Array = []\n selectedTaskName: string | Tiktrac.LooseObject = ''\n rulesName = [(v) => !!v || `${this.$t('ticktrack.forms.required')}`]\n attendancebarRef: AttendanceBar | any = {}\n\n updatedEntry = {\n issueId: '',\n entry: {\n end: 0,\n start: 0,\n },\n }\n\n newEvent: Tiktrac.BusyListElem = {\n id: '',\n start: 0,\n end: 0,\n pause: 0,\n status: 1,\n status_descr: '',\n split: 0,\n split_count: 0,\n project: 0,\n task: 0,\n taskName: '',\n taskCompleted: false,\n }\n get isDailyPlannerLoading() {\n return this.getIsInitializing\n }\n\n get projects() {\n return ProjectsModule.getProjects\n }\n get getTaskList() {\n return ProjectsModule.getTasks\n }\n\n get getProjectsArray() {\n let projects: Array = []\n for (let project in ProjectsModule.getProjects) {\n projects.push(ProjectsModule.getProjects[project])\n }\n return projects\n }\n\n get events() {\n let hideHeader = true\n const now = new Date()\n const d = new Date()\n // get first millisecond of current day\n const dayStart = d.setHours(0, 0, 0, 0)\n // get last millisecond of current day\n d.setDate(d.getDate() + 1)\n const dayEnd = d.setMilliseconds(d.getMilliseconds() - 1)\n // only include timetracking from current day\n const timetracking = Object.values(this.busyList).filter((e) => {\n const is_today =\n (e.start >= dayStart && e.start <= dayEnd) ||\n (e.end >= dayStart && e.end <= dayEnd)\n if (!is_today) {\n return false\n }\n if (e.is_all_day) {\n const start = new Date(e.start)\n if (now.getUTCDate() !== start.getUTCDate()) {\n return false\n }\n hideHeader = false\n }\n return true\n })\n this.hideHeader = hideHeader\n // parse to event objects\n return timetracking.map((item) => {\n // clone the item, because we don't want to manipulate the store\n const issue = { ...item }\n issue['allDay'] = issue['is_all_day'] || false\n issue['timed'] = !issue['allDay']\n issue['name'] = ProjectsModule.getTasks[item.task]?.name || ''\n if (issue.id === this.getActiveTimer) {\n setIssueEndToNow(issue)\n }\n return issue\n })\n }\n\n get cal(): any | null {\n return this.ready ? this.calendar : null\n }\n\n get nowY() {\n return this.cal ? this.cal.timeToY(this.cal.times.now) + 'px' : '-10px'\n }\n\n @Watch('getBusyList')\n onBusyListUpdate(busyList: Tiktrac.BusyList) {\n // we need a local copy to manipulate the values without changing the store\n this.busyList = this.$deepCopy(busyList)\n }\n\n @Watch('projects')\n projectsUpdated(projects) {\n if (!projects) return\n this.getSelProjectList()\n }\n\n @Watch('getIsInitializing', { immediate: true })\n init(isInitializing) {\n if (isInitializing) {\n return\n }\n\n this.$nextTick(() => {\n this.ready = true\n this.scrollToTime()\n this.updateTime()\n this.updateActiveEvent()\n this.mountAttendanceBarNode()\n ProjectsModule.fetchProjects().then(() => {\n this.getSelProjectList()\n this.getSelTaskList()\n })\n })\n }\n\n @Watch('getTaskList')\n initTaskList() {\n this.tasks = Object.values(this.$deepCopy(this.getTaskList))\n }\n\n @Watch('hideHeader')\n remountAttendanceBarNode() {\n this.unmountAttendanceBarNode()\n this.mountAttendanceBarNode()\n }\n\n mounted() {\n this.busyList = this.$deepCopy(this.getBusyList)\n }\n\n endIntervalDrag() {\n this.attendancebarRef.isExpandingTop = false\n this.attendancebarRef.isExpandingBottom = false\n this.moveTimeInterval = 0\n this.attendancebarRef.doAttendanceUpdate()\n }\n\n moveInterval(e) {\n this.moveTimeInterval = this.toTime(e)\n if (this.attendancebarRef.isExpandingTop) {\n let delta =\n this.roundTime(this.moveTimeInterval) - this.attendancebarRef.attendance.start\n this.attendancebarRef.extendTop(delta + 600000)\n }\n\n if (this.attendancebarRef.isExpandingBottom) {\n let delta =\n this.roundTime(this.moveTimeInterval) - this.attendancebarRef.attendance.end\n this.attendancebarRef.extendBottom(delta - 300000)\n }\n }\n\n mountAttendanceBarNode() {\n this.$nextTick(() => {\n let dailyPlannerIntervals = document.querySelector(\n '.v-calendar-daily__intervals-body'\n ) as HTMLElement\n dailyPlannerIntervals.style.position = 'relative'\n let attendanceBar = document.createElement('div')\n attendanceBar.setAttribute('id', 'attendance-bar-daily-planner')\n dailyPlannerIntervals.prepend(attendanceBar)\n\n this.attendancebarRef = new AttendanceBar({\n el: '#attendance-bar-daily-planner',\n store: store,\n parent: this,\n })\n })\n }\n\n unmountAttendanceBarNode() {\n this.$nextTick(() => {\n const attendaceBar = document.querySelector('.v-attendance-bar')\n attendaceBar?.remove()\n })\n }\n\n timestampToString(timestamp: number) {\n return Vue.prototype.$moment(timestamp).format('HH:mm')\n }\n\n calendarDragHandler(event) {\n this.updatedEntry.entry = event\n this.updatedEntry.issueId = event.id\n this.firstPoint = this.moveTime\n this.isDragging = true\n }\n\n extendBottom(event) {\n this.updatedEntry.issueId = event.id\n this.updatedEntry.entry = event\n this.isExpanding = true\n }\n\n updateSelProjects(projectId: number) {\n this.selectedProject = projectId\n // update select task list\n this.getSelTaskList()\n // If the user choosed an existing task from the list and then changed the project,\n // set a flag that causes the creation of a new task.\n if (typeof this.selectedTaskName === 'string') {\n return\n }\n }\n\n getSelTaskList() {\n this.selTasks = []\n for (const t of Object.values(ProjectsModule.getTasks) as Array) {\n if (this.selectedProject && t.project !== this.selectedProject) {\n continue\n }\n if (t.id === this.getActiveTaskId) {\n // skip tasks where the timetracking is active\n continue\n }\n if (t.is_completed) {\n // skip finished tasks\n continue\n }\n const projectName = ProjectsModule.getProjects[t.project || 0]?.name\n this.selTasks.push({\n projectName: projectName,\n projectId: t.project,\n text: t.name,\n value: t.id,\n })\n }\n }\n\n getSelProjectList() {\n this.selProjects = [\n {\n text: `${this.$t('ticktrack.ticktrackMini.getSelProjectList')}`,\n value: 0,\n },\n ]\n for (const p of Object.values(ProjectsModule.getProjects)) {\n this.selProjects.push({\n text: p.name,\n value: p.id,\n })\n }\n }\n\n updateSelectedProject(item: string | Tiktrac.LooseObject) {\n // If the user choosed an existing task from the list,\n // auto select the appropriate project.\n if (typeof item === 'string') {\n return\n }\n this.selectedProject = item.projectId || 0\n }\n\n mouseMove(tms) {\n this.moveTime = this.toTime(tms)\n\n if (this.isDragging) {\n let delta = this.moveTime - this.firstPoint\n let start = this.updatedEntry.entry.start + delta\n let end = this.updatedEntry.entry.end + delta\n\n this.busyList[this.updatedEntry.issueId].start = this.roundTime(start)\n this.busyList[this.updatedEntry.issueId].end = this.roundTime(end)\n }\n\n if (this.isExpanding) {\n if (this.updatedEntry.issueId) {\n if (this.busyList[this.updatedEntry.issueId].start < this.moveTime) {\n this.busyList[this.updatedEntry.issueId].end = this.roundTime(this.moveTime)\n } else if (this.busyList[this.updatedEntry.issueId].start > this.moveTime) {\n this.busyList[this.updatedEntry.issueId].end =\n this.updatedEntry.entry.start + 300000 // prevents reverse extending\n }\n }\n }\n }\n\n endDrag() {\n if (this.updatedEntry.issueId) {\n this.updatedEntry.entry = this.busyList[this.updatedEntry.issueId]\n this.doUpdate(this.updatedEntry)\n .catch((e) => {\n this.busyList = this.$deepCopy(this.getBusyList)\n })\n .finally(() => {\n this.updatedEntry = {\n issueId: '',\n entry: {\n end: 0,\n start: 0,\n },\n }\n this.firstPoint = 0\n })\n this.isDragging = false\n this.isExpanding = false\n }\n }\n\n dropTaskFromTaskList(event) {\n if (event.target.classList.value === 'v-calendar-daily__day-interval') {\n const taskId = event.dataTransfer.getData('taskId')\n const task = this.getTaskList[taskId]\n const calendarHead = document.querySelector(\n '.v-calendar-daily__head'\n ) as HTMLElement\n const headHeight = calendarHead ? calendarHead.offsetHeight : 0\n const calendarHeight = this.calendar.$el.offsetHeight - headHeight\n const amountOfHoursInCalendar = 18\n const intervalOffset = event.target.offsetTop\n // x - hour where interval starts\n // calendarHeight / 18 ==intervalOffset / x\n // x == 18 * intervalOffset / calendarHeight\n\n let minutes =\n (amountOfHoursInCalendar * 60 * intervalOffset) / calendarHeight + 5 * 60 // + the hour calendar starts from times minutes in one hour\n\n if (\n event.clientY - event.target.getBoundingClientRect().top >\n event.target.clientHeight / 2\n ) {\n minutes += 30\n }\n let now = new Date()\n\n let issueStart = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate(),\n 0,\n 0,\n 0,\n 0\n ).getTime()\n\n issueStart += minutes * 60000\n\n let issueEnd = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate(),\n 0,\n 0,\n 0,\n 0\n ).getTime()\n\n issueEnd += (minutes + 30) * 60000\n\n const { issueId } = generateIssueID()\n\n const entry = {\n id: issueId,\n start: issueStart,\n end: issueEnd,\n pause: 0,\n status: 1,\n status_descr: '',\n split: 0,\n split_count: 0,\n project: task.project,\n task: task.id,\n taskName: task.name,\n taskCompleted: false,\n }\n event.target.style.background = 'none'\n this.saveTimetracking(entry)\n }\n }\n\n dragOverHandler(e) {\n if (e.target.classList.value === 'v-calendar-daily__day-interval') {\n if (\n e.clientY - e.target.getBoundingClientRect().top >\n e.target.clientHeight / 2\n ) {\n e.target.style.background = 'linear-gradient(180deg, #f9f9f9 50%, #abc5c5 50%)'\n } else {\n e.target.style.background = 'linear-gradient(180deg, #abc5c5 50%, #f9f9f9 50%)'\n }\n }\n }\n\n dragLeaveHandler(e) {\n if (e.target.classList.value === 'v-calendar-daily__day-interval') {\n e.target.style.background = 'none'\n }\n }\n\n createNewEvent(tms: CalendarDayBodySlotScope) {\n const time = this.getTimeSlot(tms)\n const { issueId } = generateIssueID()\n\n this.newEvent.start = time.start\n this.newEvent.end = time.end\n this.newEvent.id = issueId\n }\n\n resetNewEvent() {\n this.newEvent = {\n id: '',\n start: 0,\n end: 0,\n pause: 0,\n status: 1,\n status_descr: '',\n split: 0,\n split_count: 0,\n project: 0,\n task: 0,\n taskName: '',\n taskCompleted: false,\n }\n this.taskList = []\n this.menuActivator = {}\n }\n\n cancelMenuEvent() {\n this.selectedOpen = false\n this.resetNewEvent()\n this.selectedProject = 0\n this.selectedTaskName = ''\n this.form.reset()\n }\n\n confirmMenuEvent(e) {\n e.preventDefault()\n const input = this.$refs['selectedTaskName'] as HTMLElement\n input.blur()\n const event: Tiktrac.BusyListElem = this.$deepCopy(this.newEvent)\n this.$nextTick(() => {\n if (!this.form.validate()) {\n return\n }\n if (typeof this.selectedTaskName !== 'string') {\n this.newEvent.task = this.selectedTaskName.value\n this.newEvent.project = this.selectedProject\n this.newEvent.taskName = this.selectedTaskName.text\n this.saveTimetracking(this.newEvent)\n } else {\n let newTask: ITask = {\n id: 0,\n name: this.selectedTaskName,\n project: this.selectedProject,\n description: '',\n urgency: 0,\n is_completed: false,\n importance: 0,\n created: '',\n tags: [],\n notes: {},\n }\n ProjectsModule.addTaskAction({\n projectId: this.selectedProject,\n task: newTask,\n }).then((res) => {\n event.task = res.id\n event.project = res.project\n this.saveTimetracking(event)\n })\n }\n this.cancelMenuEvent()\n })\n }\n\n saveTimetracking(entry) {\n this.doAddIssue({\n entry: entry,\n })\n .then(() => {\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.taskTimetrackingList.snackBars.createSuccess'\n )}`,\n type: 'success',\n })\n })\n .catch((error: Tiktrac.Response) => {\n if (error.responseCode === 409) {\n // conflict\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.trackingHistory.snackBars.timesCollideError'\n )}`,\n type: 'error',\n })\n } else {\n this.showSnackbar({\n text: `${this.$t(\n 'ticktrack.tables.trackingHistory.snackBars.updateError'\n )}`,\n type: 'error',\n })\n }\n })\n this.resetNewEvent()\n }\n\n openMenu(e) {\n if (\n e.target._prevClass === 'v-calendar-daily__day-interval' &&\n !this.selectedOpen\n ) {\n this.selectedOpen = true\n this.menuActivator = e.target\n }\n }\n\n roundTime(time, down = true) {\n const roundTo = 5 // minutes\n const roundDownTime = roundTo * 60 * 1000\n\n return down\n ? time - (time % roundDownTime)\n : time + (roundDownTime - (time % roundDownTime))\n }\n\n getTimeSlot(tms: CalendarDayBodySlotScope) {\n if (tms.minute >= 30) {\n tms.minute = 30\n } else {\n tms.minute = 0\n }\n return { start: this.toTime(tms), end: this.toTime(tms) + 1800000 }\n }\n\n toTime(tms: CalendarDayBodySlotScope) {\n return new Date(tms.year, tms.month - 1, tms.day, tms.hour, tms.minute).getTime()\n }\n\n isActiveEvent(id: string) {\n return id === this.getActiveTimer\n }\n\n getCurrentTime() {\n return this.cal ? this.cal.times.now.hour * 60 + this.cal.times.now.minute : 0\n }\n\n getTaskByEvent(event): ITask {\n return ProjectsModule.getTasks[event.task]\n }\n\n scrollToTime() {\n const time = this.getCurrentTime()\n const first = Math.max(0, time - (time % 30) - 30)\n\n this.cal.scrollToTime(first)\n }\n\n updateActiveEvent() {\n setInterval(() => {\n if (!this.getActiveTimer) {\n return\n }\n // clone the active issue\n // clone is necessary. otherwise we would manipulate the store\n const issue = { ...this.busyList[this.getActiveTimer] }\n if (!issue || !Object.keys(issue).length) {\n return\n }\n // update issue\n setIssueEndToNow(issue)\n this.busyList[this.getActiveTimer] = issue\n }, 60 * 1000)\n }\n\n updateTime() {\n setInterval(() => this.cal.updateTimes(), 60 * 1000)\n }\n\n deleteTask(selectedEvent) {\n // ask user if he really wants to perfom this action\n this.showDialog({\n text: `${this.$t('calendar.dailyPlanner.snackBars.deleteTaskTitle')}`,\n }).then((response: boolean) => {\n if (!response) {\n // declined\n return\n }\n // delete task\n if (selectedEvent.start && selectedEvent.start === selectedEvent.end) {\n this.showSnackbar({\n text: `${this.$t('calendar.dailyPlanner.snackBars.deleteTaskError')}`,\n type: 'error',\n })\n } else {\n if (selectedEvent.ms_series_master_id) {\n this.showDialog({\n text: `${this.$t('dialogs.this_event_is_part_of_event_series')}`,\n }).then((response) => {\n if (response) {\n this.doDeleteIssue({\n issueId: selectedEvent.id,\n msSeriesMasterId: selectedEvent.ms_series_master_id,\n })\n } else {\n this.doDeleteIssue({ issueId: selectedEvent.id })\n }\n })\n } else {\n this.doDeleteIssue({ issueId: selectedEvent.id })\n }\n }\n })\n }\n\n openEisenhoverDialog() {\n this.EisenHoverMatrixDialogRef.createDialog()\n }\n\n amountTask(priorityUrgency: number, priorityImportance: number) {\n const result = this.tasks.filter(\n (task) =>\n task.urgency === priorityUrgency &&\n task.importance === priorityImportance &&\n !task.is_completed\n )\n\n return result.length\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DailyPlanner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DailyPlanner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DailyPlanner.vue?vue&type=template&id=9951b146&\"\nimport script from \"./DailyPlanner.vue?vue&type=script&lang=ts&\"\nexport * from \"./DailyPlanner.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DailyPlanner.vue?vue&type=style&index=0&id=9951b146&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.isLoading)?_c('div',{staticClass:\"d-flex justify-center align-center mb-5\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}})],1):(_vm.todaysTasks.length > 0)?_c('v-card',[_c('v-list',[_vm._l((_vm.todaysTasks),function(task,idx){return [(idx)?_c('v-divider',{key:`${idx}-divider`}):_vm._e(),_c('v-list-item',{key:idx,attrs:{\"draggable\":true},on:{\"dragstart\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.dragStart($event, task)}}},[_c('v-list-item-action',{staticClass:\"mr-4\"},[_c('v-checkbox',{on:{\"click\":function($event){return _vm.handleCheckItem(task)}},model:{value:(_vm.checkedItems[idx]),callback:function ($$v) {_vm.$set(_vm.checkedItems, idx, $$v)},expression:\"checkedItems[idx]\"}})],1),_c('v-list-item-content',[_c('v-row',{staticClass:\"task-info-container px-2 align-center flex-nowrap\",attrs:{\"dense\":\"\"},on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.triggerAction(task, { action: _vm.editTask })}}},[_c('div',{staticClass:\"task-name\",on:{\"click\":function($event){$event.stopPropagation();return _vm.triggerAction(task, { action: _vm.editTask })}}},[_c('span',{staticClass:\"font-weight-regular\",class:{ 'primary--text': _vm.isActiveTask(task.id) },domProps:{\"textContent\":_vm._s(task.name)}}),_c('span',{staticClass:\"text-caption\",class:_vm.isActiveTask(task.id) ? 'primary--text' : 'text--disabled',domProps:{\"textContent\":_vm._s(_vm.getProjectNameById(task.project))}})]),_c('v-spacer'),_c('div',{staticClass:\"quick-info\",class:{ 'd-none': _vm.$vuetify.breakpoint.xs }},[_c('div',[_c('v-img',{attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":_vm.urgency(task.urgency).icon}}),_vm._v(\" \"+_vm._s(_vm.urgency(task.urgency).text)+\" \")],1),_c('div',[_c('v-img',{attrs:{\"width\":\"1rem\",\"height\":\"1rem\",\"contain\":\"\",\"src\":require('@/assets/icon_effort.svg')}}),_vm._v(\" \"+_vm._s(_vm.effortText(task.effort))+\" \")],1)]),[_c('div',{staticClass:\"text-center\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('BaseMenuButton',_vm._g(_vm._b({},'BaseMenuButton',attrs,false),on))]}}],null,true)},[_c('v-list',_vm._l((_vm.taskActions),function(action,index){return _c('v-list-item',{key:index,attrs:{\"disabled\":_vm.actionProcess},on:{\"click\":function($event){return _vm.triggerAction(task, action)}}},[_c('v-list-item-icon',[_c('v-icon',{domProps:{\"textContent\":_vm._s(action.icon)}})],1),_c('v-list-item-title',[_vm._v(_vm._s(action.title))])],1)}),1)],1)],1)]],2)],1)],1)]})],2)],1):_vm._e(),_c('v-divider'),_c('v-row',{staticClass:\"my-4\",attrs:{\"align\":\"center\"}},[_c('v-subheader',{attrs:{\"light\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$tc('homePage.pagination.completedTasksThisWeek', _vm.getDoneTasksPerWeek))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"rounded\":\"\",\"small\":\"\",\"to\":{ name: 'tasks' }}},[_c('span',{staticClass:\"mx-3\"},[_c('router-link',{attrs:{\"to\":\"/tasks\"}},[_vm._v(\" \"+_vm._s(_vm.$t('homePage.showAll'))+\" \")])],1),_c('v-icon',[_vm._v(\"mdi-chevron-right\")])],1)],1),_c('TaskDialog',{ref:\"taskDialog\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Watch } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nimport { formatterDecimalNumber } from '@/services/datetime'\nimport DailyBaseComponent from '@/components/calendar/DailyBaseComponent.vue'\nimport BaseMenuButton from '@/components/ui/BaseMenuButton.vue'\n\nconst StoreTiktrac = namespace('Timetracking')\nimport { ProjectsModule } from '@/store/modules/projectsModule'\n\nimport { ITask } from '@/interfaces'\n\n@Component({\n components: {\n BaseMenuButton,\n },\n})\nexport default class DailyTaskList extends DailyBaseComponent {\n @StoreTiktrac.Getter\n public getActiveTaskId!: number\n\n @StoreTiktrac.Action\n public checkIn!: (task: ITask | undefined) => Promise\n\n actionProcess = false\n checkedItems = [] // quickfix for checking the next item on delete\n tasksToday = {}\n\n get isLoading() {\n return !(ProjectsModule.isInitializedTasks && ProjectsModule.isInitializedProjects)\n }\n\n get taskActions() {\n return [\n {\n title: this.$t('homePage.dailyTaskList.actions.checkin'),\n icon: 'mdi-clock',\n action: this.checkIn,\n },\n {\n title: this.$t('homePage.dailyTaskList.actions.edit'),\n icon: 'mdi-pencil',\n action: this.editTask,\n },\n {\n title: this.$t('homePage.dailyTaskList.actions.delete'),\n icon: 'mdi-delete',\n action: this.deleteTask,\n },\n ]\n }\n\n get tasksToDo(): ITask[] {\n if (!ProjectsModule.isInitializedProjects) {\n // dependency not met. pass an empty array\n return []\n }\n\n return Object.values(ProjectsModule.getTasks).filter((task) => !task.is_completed)\n }\n\n get getTaskListDone() {\n if (!ProjectsModule.isInitializedProjects) {\n // dependency not met. pass an empty array\n return []\n }\n\n return Object.values(ProjectsModule.getTasks).filter((task) => task.is_completed)\n }\n\n get getDoneTasksPerWeek() {\n return this.getTaskListDone.filter((task) =>\n this.isBetweenLastMondayAndNow(task.completion_date)\n ).length\n }\n\n get todaysTasks() {\n return this.tasksToDo\n .sort((a, b) => {\n if (a.urgency > b.urgency) {\n return -1\n }\n if (a.urgency < b.urgency) {\n return 1\n }\n // same urgency\n if (a.importance > b.importance) {\n return -1\n }\n if (a.importance < b.importance) {\n return 1\n }\n // same project importance\n return a.created > b.created ? -1 : 1\n })\n .slice(0, 10)\n }\n\n get urgency() {\n return (value: number) => {\n return ProjectsModule.getTaskUrgency(value)\n }\n }\n\n handleCheckItem(task) {\n this.completeTask(task).then(() => {\n this.checkedItems = []\n })\n }\n\n isBetweenLastMondayAndNow(date: string | null | undefined) {\n if (date === undefined || date === null) {\n return false\n }\n // Get the current date\n const now = new Date()\n\n // Get the date of last Monday\n const lastMonday = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate() - now.getDay() + (now.getDay() === 0 ? -6 : 1)\n )\n\n // Check if the given date is between last Monday and now\n return new Date(date) >= lastMonday && new Date(date) <= now\n }\n\n get effortText() {\n return (value: number | undefined) => {\n if (!value || value < 0) {\n // user did not set a value\n return '—' // —\n }\n if (value < 1) {\n // return value as minutes\n const minutes = Math.round(60 * value)\n return minutes.toString() + ' min'\n }\n // return value as hours in decimal\n const hours = formatterDecimalNumber.format(value)\n return `${hours} std`\n }\n }\n\n getProjectNameById(id: number | undefined) {\n if (!id) {\n return ''\n }\n return ProjectsModule.getProjects[id]?.name || ''\n }\n\n isActiveTask(id: number) {\n return id === this.getActiveTaskId\n }\n\n async triggerAction(task: ITask, taskAction) {\n this.actionProcess = true\n await taskAction.action(task)\n this.actionProcess = false\n }\n\n dragStart(event, task) {\n event.dataTransfer.setData('taskId', task.id)\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DailyTaskList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DailyTaskList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DailyTaskList.vue?vue&type=template&id=3434a63e&scoped=true&\"\nimport script from \"./DailyTaskList.vue?vue&type=script&lang=ts&\"\nexport * from \"./DailyTaskList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DailyTaskList.vue?vue&type=style&index=0&id=3434a63e&prod&lang=scss&scoped=true&\"\nimport style1 from \"./DailyTaskList.vue?vue&type=style&index=1&id=3434a63e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3434a63e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-sheet',{staticClass:\"quick-creator\",class:{\n editing: _vm.isEditing,\n mobile: _vm.$vuetify.breakpoint.xs,\n },on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;_vm.isEditing = false}}},[(_vm.isEditing)?_c('v-form',{ref:\"form\",staticClass:\"wrapper editing\"},[_c('v-text-field',{staticClass:\"name-input flex-2 ml-1 mb-2\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"autofocus\":\"\",\"validate-on-blur\":\"\",\"placeholder\":_vm.$t('homePage.quickProjectCreator.name'),\"type\":\"text\",\"rules\":_vm.nameRules},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.addProject()}},model:{value:(_vm.projectData.name),callback:function ($$v) {_vm.$set(_vm.projectData, \"name\", $$v)},expression:\"projectData.name\"}}),_c('div',{staticClass:\"container-other-input\"},[_c('div',{staticClass:\"other-input\"},[_c('div',{staticClass:\"text--disabled text-caption mt-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('homePage.quickProjectCreator.importance'))+\" \")]),_c('v-slider',{attrs:{\"dense\":\"\",\"thumb-label\":\"\",\"ticks\":\"\",\"hide-details\":\"\",\"min\":\"0\",\"max\":\"4\"},model:{value:(_vm.projectData.importance),callback:function ($$v) {_vm.$set(_vm.projectData, \"importance\", _vm._n($$v))},expression:\"projectData.importance\"}})],1),_c('div',{staticClass:\"other-input\"},[_c('DatePicker',{staticClass:\"mb-1\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"text-field\":\"\",\"icon\":\"mdi-calendar\",\"placeholder\":_vm.$t('homePage.quickProjectCreator.date')},model:{value:(_vm.projectData.due_date),callback:function ($$v) {_vm.$set(_vm.projectData, \"due_date\", $$v)},expression:\"projectData.due_date\"}})],1),_c('div',{staticClass:\"action-icons\"},[_c('v-icon',{staticClass:\"btnCheck mr-2\",on:{\"click\":function($event){return _vm.addProject()}}},[_vm._v(\" mdi-check \")]),_c('v-icon',{staticClass:\"btnClose\",on:{\"click\":function($event){_vm.isEditing = false}}},[_vm._v(\" mdi-close \")])],1)])],1):_c('div',{staticClass:\"wrapper\",attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){_vm.isEditing = true},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;_vm.isEditing = true}}},[_c('span',{staticClass:\"primary--text ml-3 add-task-heading\"},[_vm._v(\" \"+_vm._s(_vm.$t('homePage.quickProjectCreator.heading'))+\" \")])]),_c('ProjectDialog',{ref:\"projectDialog\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Ref, Vue, Prop } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\nimport DatePicker from './DatePicker.vue'\nimport { ProjectsModule } from '@/store/modules/projectsModule'\nimport ProjectDialog from '@/components/dialogs/ProjectDialog.vue'\n\nimport { VForm } from 'vue/types/extend'\nimport { ISnackbar } from '@/interfaces'\n\nconst StoreUI = namespace('UI')\n\n@Component({\n components: {\n DatePicker,\n ProjectDialog,\n },\n})\nexport default class QuickTaskCreator extends Vue {\n @Ref('form') readonly form!: VForm\n @Ref()\n readonly projectDialog!: ProjectDialog\n\n @StoreUI.Action\n public showSnackbar!: (data: ISnackbar) => void\n\n isEditing = false\n projectData: any = {\n id: 0,\n name: '',\n due_date: null,\n importance: 0,\n is_active: true,\n is_default: false,\n description: '',\n effort: 0,\n tasks: [],\n users: [],\n main_responsibility: {\n uid: '',\n first_name: '',\n last_name: '',\n email: '',\n role: 'user',\n wage: '',\n availability: '',\n },\n }\n // validator\n get nameRules() {\n return [\n (v) => !!v || this.$t('forms.quickProjectCreator.nameRules.enter'),\n (v) => v.length <= 100 || this.$t('forms.quickProjectCreator.nameRules.length'),\n ]\n }\n\n addProject() {\n if (!this.form.validate()) {\n // invalid user input -> abort\n this.showSnackbar({\n text: `${this.$t('forms.quickProjectCreator.snackBars.addProjectError')}`,\n type: 'error',\n })\n return\n }\n ProjectsModule.addProjectAction(this.projectData)\n .then((result) => {\n this.projectDialog.editProject(result)\n this.showSnackbar({\n text: `${this.$t(\n 'forms.quickProjectCreator.snackBars.addProjectActionSuccess'\n )}`,\n type: 'success',\n })\n })\n .catch((err) => {\n console.error(err)\n this.showSnackbar({\n text: `${this.$t(\n 'forms.quickProjectCreator.snackBars.addProjectActionError'\n )}`,\n type: 'error',\n })\n })\n // reset task\n this.projectData = {\n id: 0,\n name: '',\n due_date: null,\n importance: 0,\n is_active: true,\n is_default: false,\n description: '',\n effort: 0,\n tasks: [],\n users: [],\n main_responsibility: {\n uid: '',\n first_name: '',\n last_name: '',\n email: '',\n role: 'user',\n wage: '',\n availability: '',\n },\n }\n this.isEditing = false\n }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./QuickProjectCreator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./QuickProjectCreator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./QuickProjectCreator.vue?vue&type=template&id=2537c47c&scoped=true&\"\nimport script from \"./QuickProjectCreator.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuickProjectCreator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./QuickProjectCreator.vue?vue&type=style&index=0&id=2537c47c&prod&lang=scss&\"\nimport style1 from \"./QuickProjectCreator.vue?vue&type=style&index=1&id=2537c47c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2537c47c\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Watch, Ref } from 'vue-property-decorator'\nimport { namespace } from 'vuex-class'\n\nimport DailyPlanner from '@/components/calendar/DailyPlanner.vue'\nimport DailyTaskList from '@/components/lists/DailyTaskList.vue'\nimport LayoutTwoColumns from '@/components/ui/LayoutTwoColumns.vue'\nimport ProjectList from '@/components/lists/ProjectList.vue'\nimport QuickTaskCreator from '@/components/forms/QuickTaskCreator.vue'\nimport QuickProjectCreator from '@/components/forms/QuickProjectCreator.vue'\nimport TaskDialog from '@/components/dialogs/TaskDialog.vue'\n\nimport { IDialog, ITask } from '@/interfaces'\n\nimport { CalendarModule } from '@/store/modules/calendarModule'\nimport { ProjectsModule } from '@/store/modules/projectsModule'\nimport { TimetrackingState } from '@/store/modules/tiktrac/timetracking'\nimport { UserModule } from '@/store/modules/userModule'\n\nconst StoreTiktrac = namespace('Timetracking')\nconst StoreUI = namespace('UI')\n\n@Component({\n components: {\n DailyPlanner,\n DailyTaskList,\n LayoutTwoColumns,\n ProjectList,\n QuickTaskCreator,\n QuickProjectCreator,\n TaskDialog,\n },\n})\nexport default class Home extends Vue {\n @StoreTiktrac.Getter\n public getState!: TimetrackingState\n @StoreUI.Action\n public showDialog!: (data: IDialog) => Promise\n\n @Ref('dialogRef') dialogRef!: TaskDialog\n\n get userName(): string {\n return UserModule.getUserName\n }\n get tasksWithTimeTracking() {\n return Object.values(CalendarModule.tasksWithTimeTracking)\n }\n\n @Watch('getState')\n newTaskCheck(state: TimetrackingState, oldState: TimetrackingState) {\n if (state !== oldState) {\n CalendarModule.fetchTasksWithTimetracking()\n }\n }\n\n created() {\n CalendarModule.fetchTasksWithTimetracking()\n ProjectsModule.fetchAllTasks()\n }\n}\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=6d912052&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=6d912052&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport VueRouter, { RouteConfig } from 'vue-router'\nimport tiktracRoutes from './tiktrac-routes'\nimport paytracRoutes from './paytrac-routes'\nimport Home from '@/views/Home.vue'\n\nVue.use(VueRouter)\nconst routes: Array = [\n {\n path: '/',\n name: 'Home',\n component: Home,\n },\n {\n path: '/about',\n name: 'about',\n // route level code-splitting\n // this generates a separate chunk (about.[hash].js) for this route\n // which is lazy-loaded when the route is visited.\n component: () => import(/* webpackChunkName: \"about\" */ '@/views/About.vue'),\n },\n {\n path: '/projects',\n name: 'projects',\n component: () => import('@/views/ProjectsPage/Index.vue'),\n },\n {\n path: '/tasks',\n name: 'tasks',\n component: () => import('@/views/TasksPage/Index.vue'),\n },\n {\n path: '/settings',\n name: 'settings',\n component: () => import('@/views/SettingsPage/Index.vue'),\n },\n {\n path: '/users',\n name: 'users',\n component: () => import('@/views/UsersPage/Index.vue'),\n },\n {\n path: '/calendar',\n name: 'calendar',\n component: () => import('@/views/CalendarPage/Index.vue'),\n },\n]\nroutes.push(tiktracRoutes)\nroutes.push(paytracRoutes)\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes,\n})\n\nexport default router\n","import Vue from 'vue'\nimport Vuetify from 'vuetify/lib/framework'\nimport de from 'vuetify/src/locale/de'\nimport en from 'vuetify/src/locale/en'\nimport i18N from '@/plugins/i18n'\n\nVue.use(Vuetify)\n\nexport default new Vuetify({\n theme: {\n options: {\n customProperties: true,\n },\n themes: {\n light: {\n // active element/text\n primary: '#177B7B',\n // normal text\n secondary: '#0F0F0F',\n accent: '#82B1FF',\n error: '#C38080',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#D6B384',\n },\n },\n },\n lang: {\n locales: { de, en },\n current: `${i18N.t('vuetify')}`,\n },\n})\n","import Vue, { PluginObject } from 'vue'\nimport Keycloak, { KeycloakConfig, KeycloakInstance } from 'keycloak-js'\n\nconst options: KeycloakConfig = {\n url: process.env.VUE_APP_KEYCLOAK_URL,\n realm: process.env.VUE_APP_KEYCLOAK_REALM || '',\n clientId: process.env.VUE_APP_KEYCLOAK_CLIENT || '',\n}\n\nconst _keycloak = Keycloak(options)\n\nconst KCPlugin: PluginObject = {\n install: (Vue) => {\n Vue.prototype.$keycloak = _keycloak\n },\n}\n\nKCPlugin.install = (Vue) => {\n Vue.prototype.$keycloak = _keycloak\n Object.defineProperties(Vue.prototype, {\n $keycloak: {\n get() {\n return _keycloak\n },\n },\n })\n}\n\nVue.use(KCPlugin)\n\nexport default KCPlugin\n","import _Vue from 'vue'\nimport Axios, { AxiosRequestConfig, AxiosStatic } from 'axios'\nimport { authService } from '@/services'\nimport i18N from '@/plugins/i18n'\n\nexport function AxiosPlugin(\n Vue: typeof _Vue,\n options?: AxiosPluginOptions\n): void {\n Vue.prototype.$http = Axios.create({\n baseURL: options?.baseUrl,\n }) as AxiosStatic\n Vue.prototype.$http.interceptors.request.use(async (config: AxiosRequestConfig) => {\n // set authorization token\n const token = await authService.updateToken()\n config.headers.common['Authorization'] = 'Bearer ' + token\n // set custom header for timezone (offset in hours compared to UTC)\n config.headers.common['X-Timezone-Offset'] = new Date().getTimezoneOffset() / -60\n // set custom header for user preferred language\n config.headers.common['X-Language'] = i18N.locale || 'en'\n return config\n })\n}\n\nexport class AxiosPluginOptions {\n baseUrl = ''\n}\n","import _Vue from 'vue'\nimport moment from 'moment'\nimport 'moment/locale/de'\n\nexport function MomentPlugin(Vue: typeof _Vue): void {\n Vue.prototype.$moment = moment\n}\n","import _Vue from 'vue'\n\nexport type FunctionDeepCopy = (obj: T) => T\n\nexport function FunctionsPlugin(Vue: typeof _Vue, options?: any): void {\n Vue.prototype.$deepCopy = (obj: object): object => {\n return JSON.parse(JSON.stringify(obj))\n }\n}\n","import Vue from 'vue'\nimport App from './App.vue'\nimport router from './router'\nimport store from './store'\nimport vuetify from './plugins/vuetify'\nimport Chat from 'vue-beautiful-chat'\nimport Vuelidate from 'vuelidate'\nimport '@/plugins/keycloak'\nimport { AxiosPlugin } from '@/plugins/axios'\nimport { MomentPlugin } from '@/plugins/moment'\nimport { FunctionsPlugin } from '@/plugins/funtions'\nimport i18n from '@/plugins/i18n'\n\nVue.use(Chat)\nVue.use(Vuelidate)\nVue.use(FunctionsPlugin)\n\nVue.config.productionTip = false\n\nVue.use(AxiosPlugin, {\n baseUrl: process.env.VUE_APP_BACKEND_URL,\n})\nVue.use(MomentPlugin)\n\nVue.prototype.$moment.locale(`${i18n.t('momentjs')}`)\n\nfunction vueInit() {\n return new Vue({\n router,\n store,\n vuetify,\n i18n,\n render: (h) => h(App),\n }).$mount('#app')\n}\n\nif (process.env.VUE_APP_IS_KEYCLOAK === 'false') {\n vueInit().$mount('#app')\n} else {\n Vue.prototype.$keycloak\n .init({\n onLoad: 'login-required',\n checkLoginIframe: false,\n })\n .then(() => {\n vueInit().$mount('#app')\n })\n}\n","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\n\nimport de from 'vuetify/lib/locale/de'\nimport en from 'vuetify/lib/locale/en'\nVue.use(VueI18n)\nconst messages = {\n de: {\n ...require('@/locales/de.json'),\n $vuetify: de,\n },\n en: {\n ...require('@/locales/en.json'),\n $vuetify: en,\n },\n}\n\nconst hyphenIdx = navigator.language.indexOf('-')\nlet locale = ''\nif (localStorage.getItem('locale')) {\n const localStorageLang = localStorage.getItem('locale')\n locale = localStorageLang as string\n} else {\n if (hyphenIdx === -1) {\n locale = navigator.language\n } else {\n locale = navigator.language.substr(0, hyphenIdx)\n }\n}\nconst i18N = new VueI18n({\n locale: locale || process.env.VUE_APP_I18N_LOCALE || 'en',\n fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en',\n messages,\n})\n\nexport default i18N\n","// Add here the endpoints for MS Graph API services you would like to use.\nexport const GRAPH_CONFIG = {\n GRAPH_ME_ENDPT: 'https://graph.microsoft.com/v1.0/me',\n GRAPH_MAIL_ENDPT: 'https://graph.microsoft.com/v1.0/me/messages',\n}\n","import { AccountInfo } from '@azure/msal-browser'\nimport { UserInfo, MailInfo } from './GraphResponseTypes'\nimport { GRAPH_CONFIG } from './Constants'\n\n/**\n * Class that handles UI updates for the app.\n */\nexport class UIManager {\n // Select DOM elements to work with\n static welcomeDiv = document.getElementById('WelcomeMessage')\n static signInButton = document.getElementById('SignIn')\n static cardDiv = document.getElementById('card-div')\n static mailButton = document.getElementById('readMail')\n static profileButton = document.getElementById('seeProfile')\n static profileDiv = document.getElementById('profile-div')\n static tabList = document.getElementById('list-tab')\n static tabContent = document.getElementById('nav-tabContent')\n\n static showWelcomeMessage(account: AccountInfo) {\n // Reconfiguring DOM elements\n if (UIManager.cardDiv) {\n UIManager.cardDiv.style.display = 'initial'\n }\n\n if (UIManager.welcomeDiv) {\n UIManager.welcomeDiv.innerHTML = `Welcome ${account.username}`\n }\n\n if (UIManager.signInButton) {\n ;(UIManager.signInButton.nextElementSibling as HTMLElement).style.display = 'none'\n UIManager.signInButton.setAttribute('onclick', 'App.signOut();')\n UIManager.signInButton.setAttribute('class', 'btn btn-success')\n UIManager.signInButton.innerHTML = 'Sign Out'\n }\n }\n\n static clearTabs() {\n if (UIManager.tabList) {\n UIManager.tabList.innerHTML = ''\n }\n\n if (UIManager.tabContent) {\n UIManager.tabContent.innerHTML = ''\n }\n }\n\n static updateUI(data: UserInfo | MailInfo, endpoint: string) {\n console.log(`Graph API responded at: ${new Date().toString()}`)\n if (endpoint === GRAPH_CONFIG.GRAPH_ME_ENDPT) {\n UIManager.setProfile(data as UserInfo)\n } else if (endpoint === GRAPH_CONFIG.GRAPH_MAIL_ENDPT) {\n UIManager.setMail(data as MailInfo)\n }\n }\n\n static setProfile(data: UserInfo) {\n const userInfo = data as UserInfo\n const profile = document.createElement('pre')\n profile.innerHTML = JSON.stringify(userInfo, null, 4)\n UIManager.clearTabs()\n\n if (UIManager.tabContent) {\n UIManager.tabContent.appendChild(profile)\n }\n }\n\n static setMail(data: MailInfo) {\n const mailInfo = data as MailInfo\n if (!mailInfo.value || mailInfo.value.length < 1) {\n alert('Your mailbox is empty!')\n } else {\n UIManager.clearTabs()\n mailInfo.value.slice(0, 10).forEach((d: any, i) => {\n UIManager.createAndAppendListItem(d, i)\n UIManager.createAndAppendContentItem(d, i)\n })\n }\n }\n\n static createAndAppendListItem(d: any, i: Number) {\n const listItem = document.createElement('a')\n listItem.setAttribute('class', 'list-group-item list-group-item-action')\n listItem.setAttribute('id', 'list' + i + 'list')\n listItem.setAttribute('data-toggle', 'list')\n listItem.setAttribute('href', '#list' + i)\n listItem.setAttribute('role', 'tab')\n listItem.setAttribute('aria-controls', `${i}`)\n listItem.innerHTML = d.subject\n\n if (UIManager.tabList) {\n UIManager.tabList.appendChild(listItem)\n }\n }\n\n static createAndAppendContentItem(d: any, i: Number) {\n const contentItem = document.createElement('div')\n contentItem.setAttribute('class', 'tab-pane fade')\n contentItem.setAttribute('id', 'list' + i)\n contentItem.setAttribute('role', 'tabpanel')\n contentItem.setAttribute('aria-labelledby', 'list' + i + 'list')\n if (d.from) {\n contentItem.innerHTML =\n ' from: ' +\n d.from.emailAddress.address +\n '

' +\n d.bodyPreview +\n '...'\n if (UIManager.tabContent) {\n UIManager.tabContent.appendChild(contentItem)\n }\n }\n }\n}\n","import {\n PublicClientApplication,\n SilentRequest,\n AuthenticationResult,\n Configuration,\n LogLevel,\n AccountInfo,\n InteractionRequiredAuthError,\n RedirectRequest,\n PopupRequest,\n EndSessionRequest,\n BrowserAuthError,\n} from '@azure/msal-browser'\nimport { UIManager } from './UIManager'\nimport { SsoSilentRequest } from '@azure/msal-browser'\n\n// to store variable to database\nimport { UserModule } from '@/store/modules/userModule'\n\n/**\n * Configuration class for @azure/msal-browser:\n * https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/modules/_src_config_configuration_.html\n */\nconst MSAL_CONFIG: Configuration = {\n auth: {\n clientId: process.env.VUE_APP_MSAL_CLIENT_ID || '',\n redirectUri: process.env.VUE_APP_MSAL_REDIRECT_URI,\n navigateToLoginRequestUrl: true,\n },\n cache: {\n cacheLocation: 'localStorage', // This configures where your cache will be stored\n storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\n },\n system: {\n loggerOptions: {\n loggerCallback: (level, message, containsPii) => {\n if (containsPii) {\n return\n }\n switch (level) {\n case LogLevel.Error:\n console.error(message)\n return\n case LogLevel.Info:\n console.info(message)\n return\n case LogLevel.Verbose:\n console.debug(message)\n return\n case LogLevel.Warning:\n console.warn(message)\n return\n }\n },\n },\n },\n}\n\n/**\n * AuthModule for application - handles authentication in app.\n */\nexport class AuthModule {\n private myMSALObj: PublicClientApplication // https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/classes/_src_app_publicclientapplication_.publicclientapplication.html\n private account: AccountInfo | null // https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-common/modules/_src_account_accountinfo_.html\n private loginRedirectRequest: RedirectRequest // https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/modules/_src_request_redirectrequest_.html\n private loginRequest: PopupRequest // https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/modules/_src_request_popuprequest_.html\n private profileRedirectRequest: RedirectRequest\n private profileRequest: PopupRequest\n private mailRedirectRequest: RedirectRequest\n private mailRequest: PopupRequest\n private silentProfileRequest: SilentRequest // https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/modules/_src_request_silentrequest_.html\n private silentMailRequest: SilentRequest\n private silentLoginRequest: SsoSilentRequest\n\n constructor() {\n this.myMSALObj = new PublicClientApplication(MSAL_CONFIG)\n this.account = null\n\n this.loginRequest = {\n scopes: [\n 'User.Read',\n 'Calendars.Read',\n 'Calendars.ReadWrite',\n 'openid',\n 'profile',\n ],\n }\n\n this.loginRedirectRequest = {\n ...this.loginRequest,\n redirectStartPage: window.location.href,\n }\n\n this.profileRequest = {\n scopes: [\n 'User.Read',\n 'Calendars.Read',\n 'Calendars.ReadWrite',\n 'openid',\n 'profile',\n ],\n }\n\n this.profileRedirectRequest = {\n ...this.profileRequest,\n redirectStartPage: window.location.href,\n }\n\n // Add here scopes for access token to be used at MS Graph API endpoints.\n this.mailRequest = {\n scopes: ['Mail.Read'],\n }\n\n this.mailRedirectRequest = {\n ...this.mailRequest,\n redirectStartPage: window.location.href,\n }\n\n this.silentProfileRequest = {\n scopes: [\n 'User.Read',\n 'Calendars.Read',\n 'Calendars.ReadWrite',\n 'openid',\n 'profile',\n ],\n forceRefresh: false,\n }\n\n this.silentMailRequest = {\n scopes: ['openid', 'profile', 'Mail.Read'],\n forceRefresh: false,\n }\n\n this.silentLoginRequest = {\n loginHint: 'IDLAB@msidlab0.ccsctp.net',\n }\n }\n\n /**\n * Calls getAllAccounts and determines the correct account to sign into, currently defaults to first account found in cache.\n * TODO: Add account chooser code\n *\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-common/docs/Accounts.md\n */\n private getAccount(): AccountInfo | null {\n // need to call getAccount here?\n const currentAccounts = this.myMSALObj.getAllAccounts()\n if (currentAccounts === null) {\n console.log('No accounts detected')\n return null\n }\n\n if (currentAccounts.length > 1) {\n // Add choose account code here\n console.log('Multiple accounts detected, need to add choose account code.')\n return currentAccounts[0]\n } else if (currentAccounts.length === 1) {\n return currentAccounts[0]\n }\n\n return null\n }\n\n /**\n * Checks whether we are in the middle of a redirect and handles state accordingly. Only required for redirect flows.\n *\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/initialization.md#redirect-apis\n */\n loadAuthModule(): void {\n this.myMSALObj\n .handleRedirectPromise()\n .then((resp: AuthenticationResult | null) => {\n this.handleResponse(resp)\n })\n .catch(console.error)\n }\n\n /**\n * Handles the response from a popup or redirect. If response is null, will check if we have any accounts and attempt to sign in.\n * @param response\n */\n handleResponse(response: AuthenticationResult | null) {\n if (response !== null) {\n this.account = response.account\n } else {\n this.account = this.getAccount()\n }\n if (this.account) {\n UIManager.showWelcomeMessage(this.account)\n }\n }\n\n /**\n * Calls ssoSilent to attempt silent flow. If it fails due to interaction required error, it will prompt the user to login using popup.\n * @param request\n */\n attemptSsoSilent() {\n this.myMSALObj\n .ssoSilent(this.silentLoginRequest)\n .then(() => {\n this.account = this.getAccount()\n if (this.account) {\n UIManager.showWelcomeMessage(this.account)\n } else {\n console.log('No account!')\n }\n })\n .catch((error) => {\n console.error('Silent Error: ' + error)\n if (error instanceof InteractionRequiredAuthError) {\n this.login('loginPopup')\n }\n })\n }\n\n /**\n * Calls loginPopup or loginRedirect based on given signInType.\n * @param signInType\n */\n login(signInType: string): void {\n if (signInType === 'loginPopup') {\n this.myMSALObj\n .loginPopup(this.loginRequest)\n .then((resp: AuthenticationResult) => {\n this.handleResponse(resp)\n // update msal state\n if (!UserModule.getUserInfo.msal_active) {\n const user = {\n ...UserModule.getUserInfo,\n msal_active: true,\n msal_fullsync: true,\n }\n UserModule.updateUserAction(user)\n }\n })\n .catch(console.error)\n } else if (signInType === 'loginRedirect') {\n this.myMSALObj.loginRedirect(this.loginRedirectRequest)\n }\n }\n\n /**\n * Logs out of current account.\n */\n logout(): void {\n let account: AccountInfo | undefined\n if (this.account) {\n account = this.account\n }\n const logOutRequest: EndSessionRequest = {\n account,\n }\n\n this.myMSALObj\n .logoutPopup(logOutRequest)\n .then(() => {\n // update msal state\n if (UserModule.getUserInfo.msal_active) {\n const user = {\n ...UserModule.getUserInfo,\n msal_active: false,\n }\n UserModule.updateUserAction(user)\n }\n })\n .catch(console.error) // TODO user feedback\n }\n\n /**\n * Gets the token to read user profile data from MS Graph silently, or falls back to interactive redirect.\n */\n async getProfileTokenRedirect(): Promise {\n if (this.account) {\n this.silentProfileRequest.account = this.account\n }\n return this.getTokenRedirect(this.silentProfileRequest, this.profileRedirectRequest)\n }\n\n /**\n * Gets the token to read user profile data from MS Graph silently, or falls back to interactive popup.\n */\n async getProfileTokenPopup(): Promise {\n if (this.account) {\n this.silentProfileRequest.account = this.account\n }\n return this.getTokenPopup(this.silentProfileRequest, this.profileRequest)\n }\n\n /**\n * Gets the token to read mail data from MS Graph silently, or falls back to interactive redirect.\n */\n async getMailTokenRedirect(): Promise {\n if (this.account) {\n this.silentMailRequest.account = this.account\n }\n return this.getTokenRedirect(this.silentMailRequest, this.mailRedirectRequest)\n }\n\n /**\n * Gets the token to read mail data from MS Graph silently, or falls back to interactive popup.\n */\n async getMailTokenPopup(): Promise {\n if (this.account) {\n this.silentMailRequest.account = this.account\n }\n return this.getTokenPopup(this.silentMailRequest, this.mailRequest)\n }\n\n /**\n * Gets a token silently, or falls back to interactive popup.\n */\n private async getTokenPopup(\n silentRequest: SilentRequest,\n interactiveRequest: PopupRequest\n ): Promise {\n try {\n const response: AuthenticationResult = await this.myMSALObj.acquireTokenSilent(\n silentRequest\n )\n this.handleResponse(response)\n return response.accessToken\n } catch (e) {\n console.log('silent token acquisition fails.')\n if (e instanceof InteractionRequiredAuthError || e instanceof BrowserAuthError) {\n console.log('acquiring token using redirect')\n const resp: AuthenticationResult | null = await this.myMSALObj\n .acquireTokenPopup(interactiveRequest)\n .catch((err) => {\n console.error('acquiring token using redirect failed')\n console.error({ err })\n return null\n })\n if (!resp) {\n return null\n }\n this.handleResponse(resp)\n if (!UserModule.getUserInfo.msal_active && this.account) {\n // TODO Checkup if always correct\n const user = {\n ...UserModule.getUserInfo,\n msal_active: true,\n }\n UserModule.updateUserAction(user)\n }\n return resp.accessToken\n } else {\n console.error({ e })\n }\n }\n\n return null\n }\n\n /**\n * Gets a token silently, or falls back to interactive redirect.\n */\n private async getTokenRedirect(\n silentRequest: SilentRequest,\n interactiveRequest: RedirectRequest\n ): Promise {\n try {\n const response = await this.myMSALObj.acquireTokenSilent(silentRequest)\n return response.accessToken\n } catch (e) {\n console.log('silent token acquisition fails.')\n if (e instanceof InteractionRequiredAuthError) {\n console.log('acquiring token using redirect')\n this.myMSALObj.acquireTokenRedirect(interactiveRequest).catch(console.error)\n } else {\n console.error(e)\n }\n }\n\n return null\n }\n}\n","import { UserInfo, MailInfo } from './GraphResponseTypes'\nimport Vue from 'vue'\nimport { AxiosResponse } from 'axios'\n\n/**\n * Class that handles Bearer requests for data using Fetch.\n */\nexport class FetchManager {\n /**\n * Makes an Authorization \"Bearer\" request with the given accessToken to the given endpoint.\n * @param endpoint\n * @param accessToken\n */\n async callEndpointWithToken(\n endpoint: string,\n accessToken: string\n ): Promise {\n const headers = new Headers()\n const bearer = `Bearer ${accessToken}`\n\n headers.append('Authorization', bearer)\n\n const options = {\n method: 'GET',\n headers: headers,\n }\n\n console.log('request made at: ' + new Date().toString())\n\n const response = await fetch(endpoint, options)\n return (await response.json()) as UserInfo | MailInfo\n }\n\n async callBackendWithToken(\n endpoint: string,\n accessToken: string\n ): Promise {\n if (accessToken) {\n console.log('request made at: ' + new Date().toString())\n try {\n return await Vue.prototype.$http.post('/overall/events-microsoft/', {\n Authorization: accessToken,\n })\n } catch (e) {\n console.log(e)\n }\n }\n }\n}\n","import { AuthModule } from './AuthModule'\nimport { FetchManager } from './FetchManager'\nimport { UIManager } from './UIManager'\nimport { GRAPH_CONFIG } from './Constants'\nimport { AxiosResponse } from 'axios'\nimport { UserModule } from '@/store/modules/userModule'\n\n// Browser check variables\n// If you support IE, our recommendation is that you sign-in using Redirect APIs\n// If you as a developer are testing using Edge InPrivate mode, please add \"isEdge\" to the if check\nconst ua = window.navigator.userAgent\nconst msie = ua.indexOf('MSIE ')\nconst msie11 = ua.indexOf('Trident/')\nconst isIE = msie > 0 || msie11 > 0\n\nconst authModule: AuthModule = new AuthModule()\nconst networkModule: FetchManager = new FetchManager()\n\n// Load auth module when browser window loads. Only required for redirect flows.\nwindow.addEventListener('load', async () => {\n authModule.loadAuthModule()\n})\n\n/**\n * Called when user clicks \"Sign in with Redirect\" or \"Sign in with Popup\"\n * @param method\n */\nexport function signIn(method: string): void {\n const signInType = isIE ? 'loginRedirect' : method\n authModule.login(signInType)\n}\n\n/**\n * Called when user clicks \"Sign Out\"\n */\nexport function signOut(): void {\n authModule.logout()\n}\n\n/**\n * Called when user clicks \"See Profile\"\n */\nexport async function seeProfile(): Promise {\n const token = await getAccessMSToken()\n if (token && token.length > 0) {\n const graphResponse = await networkModule.callEndpointWithToken(\n GRAPH_CONFIG.GRAPH_ME_ENDPT,\n token\n )\n UIManager.updateUI(graphResponse, GRAPH_CONFIG.GRAPH_ME_ENDPT)\n }\n}\n\n/**\n * Called when user clicks \"Read Mail\"\n */\nexport async function readMail(): Promise {\n const token = await getAccessMSToken()\n if (token && token.length > 0) {\n const graphResponse = await networkModule.callEndpointWithToken(\n GRAPH_CONFIG.GRAPH_MAIL_ENDPT,\n token\n )\n UIManager.updateUI(graphResponse, GRAPH_CONFIG.GRAPH_MAIL_ENDPT)\n }\n}\n/**\n * Called when user clicks \"Call Calendar\"\n */\nexport async function callCalendar(): Promise {\n const token = await getAccessMSToken()\n if (token && token.length > 0) {\n const response: AxiosResponse | undefined = await networkModule\n .callBackendWithToken(GRAPH_CONFIG.GRAPH_MAIL_ENDPT, token)\n .catch((error) => {\n console.error({ error })\n return undefined\n })\n\n return response\n }\n}\n\nexport async function getAccessMSToken(): Promise {\n if (UserModule.getUserInfo.msal_active) {\n const token = isIE\n ? await authModule.getProfileTokenRedirect()\n : await authModule.getProfileTokenPopup()\n return token\n } else {\n return ''\n }\n}\n\n/**\n * Called when user clicks \"Attempt SsoSilent\"\n */\nexport function attemptSsoSilent(): void {\n authModule.attemptSsoSilent()\n}\n","/**\n * Use this for custom component props.\n *\n * Custom component:\n * ```\n * \n * ```\n *\n * Use custom component and activate `customProp`:\n * ```\n * \n * ```\n */\nexport function isProp(prop: string | boolean | undefined) {\n return prop !== undefined && (prop === '' || prop === 'true' || prop === true)\n}\n","import type DateTime from 'vue/types/datetime'\nimport i18N from '@/plugins/i18n'\n\nconst lang = `${i18N.t('datetime')}`\n\nconst formatDate: DateTime.DateTimeFormatOptions = {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n weekday: 'short',\n}\nconst formatTime: DateTime.DateTimeFormatOptions = {\n hour: 'numeric',\n minute: 'numeric',\n}\nconst formatDecimalNumber = {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n}\n\nexport const formatterDate = new Intl.DateTimeFormat(lang, formatDate)\nexport const formatterTime = new Intl.DateTimeFormat(lang, formatTime)\nexport const formatterDecimalNumber = new Intl.NumberFormat(lang, formatDecimalNumber)\n\nexport const toISODateString = function (date: Date): string {\n return date.toISOString().substring(0, 10)\n}\n\nexport const hoursToDecimal = function (hours: string): string {\n const idxDelimiter = hours.indexOf(':')\n const h = Number.parseInt(hours.substr(0, idxDelimiter))\n const m = Number.parseInt(hours.substr(idxDelimiter + 1))\n const decimal = h + m / 60\n return formatterDecimalNumber.format(decimal)\n}\n\nexport const decimalToHours = function (\n decimal: number,\n round: boolean = true,\n showSeconds: boolean = false\n): string {\n const wh = decimal < 0 ? Math.ceil(decimal) : Math.floor(decimal)\n // delete the two decimal places\n let worked_hours = '0'\n if (wh > -10 && wh < 10) {\n if (decimal < 0) {\n worked_hours = '-0' + wh.toString().substring(1)\n } else {\n worked_hours = '0' + wh.toString()\n }\n } else {\n worked_hours = wh.toString()\n }\n // get minutes from the decimal places\n // get decimal part\n let wm = (decimal - wh) % 1\n // calc minutes per hour\n wm = wm * 60\n // get positive result\n if (wm < 0) {\n wm *= -1\n }\n // round result\n wm = round ? Math.round(wm) : Math.floor(wm)\n // append zero if needed\n let worked_minutes = wm.toString()\n if (wm < 10) {\n worked_minutes = '0' + worked_minutes\n }\n // get seconds\n let worked_seconds = ''\n if (showSeconds) {\n // TODO\n worked_seconds = ':00'\n }\n\n return worked_hours + ':' + worked_minutes + worked_seconds\n}\n\n// Return the number `n` with exactly `digits` decimal points\nexport const toFixedNumber = function (n: number, digits: number = 2) {\n const pow = Math.pow(10, digits)\n return Math.round(n * pow) / pow\n}\n","import Vue from 'vue'\n\nasync function updateToken(): Promise {\n await Vue.prototype.$keycloak.updateToken(70)\n return Vue.prototype.$keycloak.token as string\n}\n\nfunction logout() {\n try {\n Vue.prototype.$keycloak.logout()\n } catch (e) {\n console.log(e)\n }\n}\n\nfunction deleteAccount() {\n Vue.prototype.$http.delete('/overall/company/')\n .then(() => {\n logout()\n })\n .catch((e) => console.error({e}))\n}\n\nexport const authService = {\n deleteAccount,\n logout,\n updateToken,\n}\n","import Vue from 'vue'\n\nimport type Tiktrac from 'vue/types/tiktrac'\n\nexport function getMonth(timestamp = 0) {\n const date = new Date()\n let dateString = ''\n\n if (timestamp > 0) {\n date.setTime(timestamp)\n }\n // 2021-06-07T14:35:50.833Z => 2106\n dateString = Vue.prototype.$moment(date).format('YYMM')\n\n return dateString\n}\n\nexport function generateIssueID() {\n // get current timestamp in seconds\n // TODO This could be manipulated by setting the system date/time to any value\n const now = Date.now()\n // prettier-ignore\n const issueId = now.toString() + '_' + Math.random().toString(36).substr(2, 4)\n\n return {\n issueId,\n now,\n }\n}\n\n/**\n * Use this to set the end of an issue to now (only for display purposes).\n */\nexport function setIssueEndToNow(issue: Tiktrac.BusyListElem) {\n if (!issue) {\n return\n }\n const now = Date.now()\n // only update the end if 15 minutes passed since start\n if (now - issue.start >= 15 * 60 * 1000) {\n issue.end = now\n }\n}\n","import { ISnackbar, IDialog, IQuickNotify, INotificationItem } from '@/interfaces'\nimport { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators'\nimport Vue from 'vue'\n\n@Module({ namespaced: true })\nclass UI extends VuexModule {\n // dialog\n dialog = {\n active: false,\n text: '',\n type: 'warning',\n }\n dialogPromise: Promise | undefined = undefined\n dialogPromiseResolve: ((result: boolean) => void) | undefined = undefined\n // snackbar\n snackbar = {\n active: false,\n text: '',\n type: 'success',\n }\n //quick Nofity\n quickNotify = {\n active: false,\n avatar: 'avatar',\n task: 'testTask',\n project: 'Project-test',\n time: '6 min ago',\n type: 'meeting',\n whoAssigned: 'Felix Meusel',\n }\n queue: Array = []\n queueQuickNotify: Array = []\n unreadNotifications: Array = []\n // mobile navigation one pager\n navWindow = 0\n\n @Mutation\n public ACTIVATE_DIALOG(payload: IDialog) {\n this.dialog.text = payload.text\n this.dialog.type = payload.type || 'warning'\n this.dialog.active = true\n // reset Promise resolve function\n this.dialogPromiseResolve = undefined\n // create new Promise\n this.dialogPromise = new Promise((resolve) => {\n this.dialogPromiseResolve = resolve\n })\n }\n\n @Action\n public showDialog(data: IDialog): Promise | undefined {\n const { text, type } = data\n this.context.commit('ACTIVATE_DIALOG', {\n text,\n type,\n })\n\n return this.dialogPromise\n }\n\n @Mutation\n public ACTIVATE_SNACKBAR(payload: ISnackbar) {\n if (this.snackbar.active) {\n this.queue.unshift(payload)\n return\n }\n this.snackbar.text = payload.text\n this.snackbar.type = payload.type || 'success'\n this.snackbar.active = true\n }\n\n @Action\n public showSnackbar(data: ISnackbar) {\n const { text, type } = data\n this.context.commit('ACTIVATE_SNACKBAR', {\n text,\n type,\n })\n }\n\n @Mutation\n setNotifications(payload: INotificationItem[]) {\n this.unreadNotifications = [...payload]\n }\n @Action({ commit: 'setNotifications' })\n async fetchNotifications() {\n try {\n const result = await Vue.prototype.$http.get('/notifications/unread/')\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n removeReadNotification(slug: number) {\n this.unreadNotifications = this.unreadNotifications.filter((n) => n.slug !== slug)\n }\n\n @Action({ commit: 'removeReadNotification' })\n async readNotification(slug: number) {\n try {\n await Vue.prototype.$http.post('/notifications/mark-as-read/' + slug + '/', {})\n return slug\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n public ACTIVE_QUICKNOTIFY(payload: IQuickNotify) {\n if (this.quickNotify.active) {\n this.queueQuickNotify.unshift(payload)\n return\n }\n this.quickNotify.avatar = payload.avatar\n this.quickNotify.task = payload.task\n this.quickNotify.project = payload.project\n this.quickNotify.time = payload.time\n this.quickNotify.type = payload.type\n this.quickNotify.whoAssigned = payload.whoAssigned\n }\n @Action\n public showQuickNotify(data: IQuickNotify) {\n const { avatar, task, project, time, type, whoAssigned } = data\n this.context.commit('ACTIVE_QUICKNOTIFY', {\n avatar,\n task,\n project,\n time,\n type,\n whoAssigned,\n })\n }\n @Action\n public getNextInQueue() {\n return this.queue.pop()\n }\n @Action\n public getNextInQueueQuickNotify() {\n return this.queueQuickNotify.pop()\n }\n\n @Mutation\n public RESET_NAV_WINDOW() {\n this.navWindow = 0\n }\n\n @Action\n public navigateReset() {\n this.context.commit('RESET_NAV_WINDOW')\n }\n\n @Mutation\n public DECREMENT_NAV_WINDOW() {\n if (this.navWindow > 0) {\n this.navWindow--\n } else {\n this.navWindow = 0\n }\n }\n\n @Action\n public navigateBack() {\n this.context.commit('DECREMENT_NAV_WINDOW')\n }\n\n @Mutation\n public INCREMENT_NAV_WINDOW() {\n this.navWindow++\n }\n\n @Action\n public navigateForward() {\n this.context.commit('INCREMENT_NAV_WINDOW')\n }\n}\nexport default UI\n","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators'\nimport Vue from 'vue'\n\n@Module({ namespaced: true })\nclass ChatbotModule extends VuexModule {\n vMenuVal = false\n isTrackingEntryActive = false\n isQuickTaskFormActive = false\n isChatListActive = true\n isTaskWasAdded = false\n isValidateTime = false\n\n @Mutation\n vMenuFlag() {\n this.vMenuVal = !this.vMenuVal\n }\n\n @Mutation\n vMenuSetVal(val: boolean) {\n this.vMenuVal = val\n }\n @Mutation\n setValidTime(val: boolean) {\n this.isValidateTime = val\n }\n\n @Mutation\n setToFalseVal(val) {\n switch (val) {\n case 'isChatListActive':\n this.isChatListActive = false\n break\n case 'isQuickTaskFormActive':\n this.isQuickTaskFormActive = false\n break\n case 'isTrackingEntryActive':\n this.isTrackingEntryActive = false\n break\n case 'isTaskWasAdded':\n this.isTaskWasAdded = false\n break\n }\n }\n\n @Mutation\n toggleValFlag(val: string) {\n switch (val) {\n case 'isQuickTaskFormActive':\n this.isQuickTaskFormActive = !this.isQuickTaskFormActive\n break\n case 'isTaskWasAdded':\n this.isTaskWasAdded = !this.isTaskWasAdded\n break\n case 'isTrackingEntryActive':\n this.isTrackingEntryActive = !this.isTrackingEntryActive\n break\n }\n }\n\n @Mutation\n activatorChatList() {\n this.isChatListActive = true\n }\n\n @Action\n async sendMsgToChatbot(messageTxt: string) {\n try {\n const res = await Vue.prototype.$http\n .post('/chatbot/', { message: messageTxt })\n .catch((error) => {\n console.error({ error })\n })\n if (!res) {\n return\n }\n const data = JSON.parse(res.data)\n\n return data\n } catch (error) {\n console.log(error)\n }\n }\n}\n\nexport default ChatbotModule\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport Attendance from './modules/tiktrac/attendance'\nimport Timetracking from './modules/tiktrac/timetracking'\nimport UI from './modules/ui'\nimport ChatbotModule from './modules/chatbotModule'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n modules: { Attendance, Timetracking, UI, ChatbotModule },\n})\n","import { VuexModule, Module, Mutation, Action, getModule } from 'vuex-module-decorators'\nimport store from '@/store'\nimport Vue from 'vue'\nimport i18N from '@/plugins/i18n'\nimport { IBudget, IGeneralCosts, IProjectCosts } from '@/interfaces'\n\n@Module({\n name: 'finance',\n store: store,\n dynamic: true,\n namespaced: true,\n})\nclass Finance extends VuexModule {\n // TODO add to any standard data\n timeSlots = [\n { text: `${i18N.t('modules.budgetTracking.timeSlots.unique')}`, value: 1 },\n { text: `${i18N.t('modules.budgetTracking.timeSlots.weekly')}`, value: 7 },\n { text: `${i18N.t('modules.budgetTracking.timeSlots.month')}`, value: 30 },\n { text: `${i18N.t('modules.budgetTracking.timeSlots.year')}`, value: 365 },\n ]\n workingcostlist: any[] = []\n projectBudget: IBudget = {\n id: 0,\n project: {\n id: 0,\n name: '',\n due_date: '',\n importance: 0,\n is_active: false,\n is_default: false,\n description: '',\n effort: 0,\n tasks: [],\n users: [],\n creator: '',\n main_responsibility: null,\n },\n main_responsibility: '',\n amount: 0,\n calculated_days: 0,\n notes: '',\n recurring: 0,\n }\n generalCosts: IGeneralCosts = {\n id: 0,\n amount: 0,\n name: '',\n notes: '',\n recurring: 0,\n }\n projectCosts: IProjectCosts = {\n project: {\n id: 0,\n name: '',\n due_date: '',\n importance: 0,\n is_active: false,\n is_default: false,\n description: '',\n effort: 0,\n tasks: [],\n users: [],\n creator: '',\n main_responsibility: null,\n },\n id: 0,\n project_id: 0,\n amount: 0,\n name: '',\n notes: '',\n recurring: 0,\n }\n // Project details in financial way\n // to add a project in financial way it has to be added first ONLY UPDATE POSSIBLE\n projectBudgetList: Array = []\n\n get isAdmin() {\n return this.context.rootGetters['user/isUserAdmin']\n }\n\n get getTimeSlots(): Array<{ text: string; value: number }> {\n return this.timeSlots\n }\n\n get getprojectBudget(): IBudget {\n return this.projectBudget\n }\n\n get getProjectBudgetList(): Array | null {\n return this.projectBudgetList\n }\n\n @Mutation\n setProjectBudgets(projects: IBudget[]) {\n if (projects) this.projectBudgetList = projects\n }\n\n @Action({ commit: 'setProjectBudgets' })\n async fetchProjectBudgets() {\n if (!this.isAdmin) {\n return\n }\n try {\n const result = await Vue.prototype.$http.get('/paytrac/budgettracking/')\n // convert `amount` from string to float\n const data = result.data.map((budget) => {\n const amount = Number.parseFloat(budget.amount)\n return {\n ...budget,\n amount,\n }\n })\n return data\n } catch (e) {\n console.log(e)\n }\n }\n @Mutation\n createProjectBudget(projectBudget: IBudget) {\n if (projectBudget) this.projectBudgetList.push(projectBudget)\n }\n @Action({ commit: 'createProjectBudget' })\n async createProjectBudgetAction(projectBudget: IBudget) {\n if (!this.isAdmin) {\n return\n }\n try {\n const result = await Vue.prototype.$http.post(\n '/paytrac/budgettracking/',\n projectBudget\n )\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n @Mutation\n updateProjectBudget(project: IBudget) {\n const foundIndex = this.projectBudgetList.findIndex((p) => p.id === project.id)\n if (foundIndex === -1) {\n return\n }\n // trigger change detection\n Vue.set(this.projectBudgetList, foundIndex, project)\n }\n @Action({ commit: 'updateProjectBudget' })\n async updateProjectBudgetAction(editedProject: IBudget) {\n // convert the date for the backend\n if (!this.isAdmin) {\n return\n }\n try {\n const result = await Vue.prototype.$http.patch(\n `/paytrac/budgettracking/${editedProject.id}/`,\n editedProject\n )\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n deleteProjectBudget(id: number) {\n // find the index of the deleted element in the array\n const foundIndex = this.projectBudgetList.findIndex((p) => p.id === id)\n if (foundIndex === -1) {\n return\n }\n // splice can also delete the item\n this.projectBudgetList.splice(foundIndex, 1)\n }\n @Action({ commit: 'deleteProjectBudget' })\n async deleteProjectBudgetAction(id: number) {\n if (!this.isAdmin) {\n return\n }\n try {\n await Vue.prototype.$http.delete(`/paytrac/budgettracking/${id}/`)\n // just pass the id here, since on a successful response we can assume the item got deleted\n return id\n } catch (e) {\n console.log(e)\n }\n }\n // Costs to calculate with\n // to add a project in financial way it has to be added first ONLY UPDATE POSSIBLE\n generalCostsList: Array = []\n\n get getGeneralCosts(): IGeneralCosts {\n return this.generalCosts\n }\n get getGeneralCostsList(): Array | null {\n return this.generalCostsList\n }\n @Mutation\n setGeneralCosts(generalCosts: IGeneralCosts[]) {\n if (generalCosts) this.generalCostsList = generalCosts\n }\n\n @Action({ commit: 'setGeneralCosts' })\n async fetchGeneralCosts() {\n if (!this.isAdmin) {\n return\n }\n try {\n const result = await Vue.prototype.$http.get('/paytrac/generalcosts/')\n // convert `amount` from string to float\n const data = result.data.map((generalCosts) => {\n const amount = Number.parseFloat(generalCosts.amount)\n return {\n ...generalCosts,\n amount,\n }\n })\n return data\n } catch (e) {\n console.log(e)\n }\n }\n @Mutation\n createGeneralCosts(generalCosts: IGeneralCosts) {\n if (generalCosts) this.generalCostsList.push(generalCosts)\n }\n @Action({ commit: 'createGeneralCosts' })\n async createGeneralCostsAction(generalCosts: IGeneralCosts) {\n if (!this.isAdmin) {\n return\n }\n try {\n const result = await Vue.prototype.$http.post(\n '/paytrac/generalcosts/',\n generalCosts\n )\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n updateGeneralCosts(costs: IGeneralCosts) {\n // find the index of the edited element in the array\n const foundIndex = this.generalCostsList.findIndex((c) => c.id === costs.id)\n if (foundIndex === -1) {\n return\n }\n // trigger change detection\n Vue.set(this.generalCostsList, foundIndex, costs)\n }\n @Action({ commit: 'updateGeneralCosts' })\n async updateGeneralCostsAction(editedGeneralCosts: IGeneralCosts) {\n if (!this.isAdmin) {\n return\n }\n try {\n const result = await Vue.prototype.$http.patch(\n `/paytrac/generalcosts/${editedGeneralCosts.id}/`,\n editedGeneralCosts\n )\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n deleteGeneralCosts(id: number) {\n // find the index of the deleted element in the array\n const foundIndex = this.generalCostsList.findIndex((p) => p.id === id)\n if (foundIndex === -1) {\n return\n }\n // splice can also delete the item\n this.generalCostsList.splice(foundIndex, 1)\n }\n @Action({ commit: 'deleteGeneralCosts' })\n async deleteGeneralCostsAction(id: number) {\n if (!this.isAdmin) {\n return\n }\n try {\n await Vue.prototype.$http.delete(`/paytrac/generalcosts/${id}/`)\n // just pass the id here, since on a successful response we can assume the item got deleted\n return id\n } catch (e) {\n console.log(e)\n }\n }\n\n // Projectcosts to calculate with\n // to add a project in financial way it has to be added first ONLY UPDATE POSSIBLE\n projectCostsList: Array = []\n\n get getProjectCosts(): IProjectCosts {\n return this.projectCosts\n }\n get getProjectCostsList(): Array | null {\n return this.projectCostsList\n }\n @Mutation\n setProjectCosts(projectCosts: IProjectCosts[]) {\n if (projectCosts) this.projectCostsList = projectCosts\n }\n\n @Action({ commit: 'setProjectCosts' })\n async fetchProjectCosts() {\n if (!this.isAdmin) {\n return\n }\n try {\n const result = await Vue.prototype.$http.get('/paytrac/projectcosts/')\n // convert `amount` from string to float\n const data = result.data.map((projectCosts) => {\n const amount = Number.parseFloat(projectCosts.amount)\n return {\n ...projectCosts,\n amount,\n }\n })\n return data\n } catch (e) {\n console.log(e)\n }\n }\n @Mutation\n createProjectCosts(projectCosts: IProjectCosts) {\n if (projectCosts) this.projectCostsList.push(projectCosts)\n }\n @Action({ commit: 'createProjectCosts' })\n async createProjectCostsAction(projectCosts: IProjectCosts) {\n if (!this.isAdmin) {\n return\n }\n try {\n const result = await Vue.prototype.$http.post(\n '/paytrac/projectcosts/',\n projectCosts\n )\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n @Mutation\n updateProjectCosts(costs: IProjectCosts) {\n //find the index of the edited element in the array\n const foundIndex = this.projectCostsList.findIndex((p) => p.id === costs.id)\n if (foundIndex === -1) {\n return\n }\n //trigger change detection\n Vue.set(this.projectCostsList, foundIndex, costs)\n }\n @Action({ commit: 'updateProjectCosts' })\n async updateProjectCostsAction(editedProjectCosts: IProjectCosts) {\n if (!this.isAdmin) {\n return\n }\n try {\n const result = await Vue.prototype.$http.patch(\n `/paytrac/projectcosts/${editedProjectCosts.id}/`,\n editedProjectCosts\n )\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n deleteProjectCosts(id: number) {\n // find the index of the deleted element in the array\n const foundIndex = this.projectCostsList.findIndex((p) => p.id === id)\n if (foundIndex === -1) {\n return\n }\n // splice can also delete the item\n this.projectCostsList.splice(foundIndex, 1)\n }\n @Action({ commit: 'deleteProjectCosts' })\n async deleteProjectCostsAction(id: number) {\n if (!this.isAdmin) {\n return\n }\n try {\n await Vue.prototype.$http.delete(`/paytrac/projectcosts/${id}/`)\n // just pass the id here, since on a successful response we can assume the item got deleted\n return id\n } catch (e) {\n console.log(e)\n }\n }\n}\nexport const FinanceModule = getModule(Finance)\n","import { VuexModule, Module, Mutation, getModule, Action } from 'vuex-module-decorators'\nimport store from '@/store'\nimport Vue from 'vue'\nimport { callCalendar } from '@/plugins/msal/index'\nimport i18N from '@/plugins/i18n'\n\nimport { AxiosResponse } from 'axios'\nimport { ICalendarSortedEvents, ITaskList } from '@/interfaces'\n\n@Module({\n name: 'calendar',\n store: store,\n dynamic: true,\n namespaced: true,\n})\nclass Calendar extends VuexModule {\n sortedCalendarEvents: ICalendarSortedEvents = {\n importantTasks: [],\n urgentTasks: [],\n mediumTasks: [],\n importantProjects: [],\n urgentProjects: [],\n mediumProjects: [],\n }\n tasks: ITaskList = {}\n\n get getSortedCalendarEvents() {\n return this.sortedCalendarEvents\n }\n @Mutation\n initializeCalendarValues(values: ICalendarSortedEvents) {\n this.sortedCalendarEvents = values\n }\n\n @Action({ commit: 'initializeCalendarValues' })\n async fetchCalendarValues() {\n try {\n const result = await Vue.prototype.$http.get('/overall/calendar-data/')\n return result.data\n } catch (err) {\n console.error(err)\n }\n }\n\n get tasksWithTimeTracking() {\n return this.tasks\n }\n @Mutation\n initializeTasks(values: ITaskList) {\n this.tasks = values\n }\n\n @Action({ commit: 'initializeTasks' })\n async fetchTasksWithTimetracking() {\n try {\n const result = await Vue.prototype.$http.get('/overall/tasks-with-timetracking/')\n return result.data\n } catch (err) {\n console.error(err)\n }\n }\n\n @Action\n async syncMSCalendar() {\n // TODO has to be optimized\n const response: AxiosResponse | undefined = await callCalendar()\n if (!response) {\n this.context.dispatch(\n 'UI/showSnackbar',\n { text: i18N.t('calendar.microsoft.snackBars.syncError'), type: 'error' },\n { root: true }\n )\n return\n }\n if (response.status === 200) {\n // MS outlook sync caused changes -> update tasks and busyList entries\n this.context.dispatch('projects/fetchAllTasks', true, { root: true })\n this.context.dispatch('Timetracking/fetchTimetracking', null, { root: true })\n }\n }\n}\n\nexport const CalendarModule = getModule(Calendar)\n","import { VuexModule, Module, Mutation, getModule, Action } from 'vuex-module-decorators'\nimport store from '@/store'\nimport { IProject, IProjectList, ITask, ITaskList, ITag, ITagList } from '@/interfaces'\nimport Vue from 'vue'\nimport i18N from '@/plugins/i18n'\nimport { getAccessMSToken } from '@/plugins/msal'\n\n@Module({\n name: 'projects',\n store: store,\n dynamic: true,\n namespaced: true,\n})\nclass Projects extends VuexModule {\n // flags\n isInitializedProjects = false\n isInitializedTasks = false\n isInitializedTags = false\n isInitializingProjects = false\n isInitializingTasks = false\n isInitializingTags = false\n // data\n projectsList: IProjectList = {}\n taskList: ITaskList = {}\n tagList: ITagList = {}\n /*\n * The urgency of a task is saved as an integer from 0 to 4.\n * This array maps the urgency to an object containing the\n * icon and text respectively\n */\n taskUrgency = [\n {\n icon: require('@/assets/icon_urgency_1.svg'),\n text: i18N.t('homePage.quickTaskCreator.taskUrgency.notUrgent'),\n },\n {\n icon: require('@/assets/icon_urgency_2.svg'),\n text: i18N.t('homePage.quickTaskCreator.taskUrgency.putOff'),\n },\n {\n icon: require('@/assets/icon_urgency_3.svg'),\n text: i18N.t('homePage.quickTaskCreator.taskUrgency.schedule'),\n },\n {\n icon: require('@/assets/icon_urgency_4.svg'),\n text: i18N.t('homePage.quickTaskCreator.taskUrgency.urgent'),\n },\n ]\n\n get needToInitProjects(): boolean {\n return !this.isInitializedProjects && !this.isInitializingProjects\n }\n\n get needToInitTasks(): boolean {\n return !this.isInitializedTasks && !this.isInitializingTasks\n }\n\n get needToInitTags(): boolean {\n return !this.isInitializedTags && !this.isInitializingTags\n }\n\n /**\n * Get all projects that the current user is part of\n */\n get getProjects(): IProjectList {\n const userId = this.context.rootGetters['user/getUserID']\n return Object.fromEntries(\n Object.entries(this.projectsList).filter(([_, project]: Array) =>\n project.users.includes(userId)\n )\n )\n }\n\n /**\n * Get all projects of the company (admin)\n */\n get getAllProjects(): IProjectList {\n return this.projectsList\n }\n\n /**\n * Get the default project ID of the current user\n */\n get getDefaultProjectId() {\n const defaultProject = Object.values(this.getProjects).find(\n (p) => p.is_default\n )\n return defaultProject?.id || 0\n }\n\n get getTasks(): ITaskList {\n const userId = this.context.rootGetters['user/getUserID']\n // show tasks that are assigned to nobody or to the requesting user\n const tasksFiltered = Object.entries(this.taskList).filter(([key, task]) => {\n return (\n (!task.assigned_to && task.user === userId) || task.assigned_to_id === userId\n )\n })\n return Object.fromEntries(tasksFiltered)\n }\n\n get getAllTags(): ITagList {\n return this.tagList\n }\n\n get getTaskUrgency() {\n return (value: number) => {\n return this.taskUrgency[value] || {}\n }\n }\n\n get getTasksByProjectId() {\n return (id: number): ITaskList => {\n const tasks = {}\n const taskIds = this.projectsList[id]?.tasks\n if (!taskIds) {\n return tasks\n }\n for (const taskId of taskIds) {\n const task = this.taskList[taskId]\n if (!task) {\n // TODO fetch missing task\n continue\n }\n tasks[taskId] = task\n }\n return tasks\n }\n }\n\n @Mutation\n setIsInitializingProjects(value: boolean) {\n this.isInitializingProjects = value\n }\n\n @Mutation\n setIsInitializingTasks(value: boolean) {\n this.isInitializingTasks = value\n }\n\n @Mutation\n setIsInitializingTags(value: boolean) {\n this.isInitializingTags = value\n }\n\n @Mutation\n setProjects(projects: IProjectList) {\n if (projects) {\n this.projectsList = projects\n this.isInitializedProjects = true\n this.isInitializingProjects = false\n }\n }\n\n @Action({ commit: 'setProjects' })\n async fetchProjects(force = false) {\n if (!this.needToInitProjects && !force) {\n return\n }\n this.setIsInitializingProjects(true)\n try {\n const result = await Vue.prototype.$http.get('/api/project/')\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n addProject(newProject: IProject) {\n // only add on success\n if (newProject) Vue.set(this.projectsList, newProject.id, newProject)\n }\n @Action({ commit: 'addProject' })\n async addProjectAction(newProject: IProject) {\n // convert the date for the backend\n if (newProject.due_date)\n newProject.due_date = new Date(newProject.due_date).toISOString()\n try {\n const result = await Vue.prototype.$http.post('/api/project/', newProject)\n return result.data\n } catch (e) {\n console.error({ error: e })\n if (e?.response?.status === 409) {\n // duplicate project name\n this.context.dispatch(\n 'UI/showSnackbar',\n {\n text: `${i18N.t('modules.projectsModule.projectExists')}`,\n type: 'error',\n },\n { root: true }\n )\n } else {\n // other error\n this.context.dispatch(\n 'UI/showSnackbar',\n {\n text: `${i18N.t('modules.projectsModule.errorCreating')}`,\n type: 'error',\n },\n { root: true }\n )\n }\n }\n }\n\n @Mutation\n updateProject(project: IProject) {\n // trigger change detection\n Vue.set(this.projectsList, project.id, project)\n }\n @Action({ commit: 'updateProject' })\n async updateProjectAction(editedProject: IProject) {\n // convert the date for the backend\n if (editedProject.due_date)\n editedProject.due_date = new Date(editedProject.due_date).toISOString()\n try {\n const result = await Vue.prototype.$http.put(\n `/api/project/${editedProject.id}/`,\n editedProject\n )\n return result.data\n } catch (e) {\n console.error({ error: e })\n if (e?.response?.status === 409) {\n // duplicate project name\n this.context.dispatch(\n 'UI/showSnackbar',\n {\n text: `${i18N.t('modules.projectsModule.projectExists')}`,\n type: 'error',\n },\n { root: true }\n )\n } else {\n // other error\n this.context.dispatch(\n 'UI/showSnackbar',\n {\n text: `${i18N.t('modules.projectsModule.errorCreating')}`,\n type: 'error',\n },\n { root: true }\n )\n }\n }\n }\n\n @Mutation\n deleteProject(id: number) {\n // TODO it seems redundant to have the tasks in two places\n // delete item with the given id and ensure reactivity\n Vue.delete(this.projectsList, id)\n // delete all tasks with deleted project ID\n for (const task of Object.values(this.taskList)) {\n if (task.project === id) {\n delete this.taskList[task.id]\n }\n }\n this.taskList = { ...this.taskList }\n }\n @Action({ commit: 'deleteProject' })\n async deleteProjectAction(id: number) {\n try {\n await Vue.prototype.$http.delete(`/api/project/${id}/`)\n // just pass the id here, since on a successful response we can assume the item got deleted\n return id\n } catch (e) {\n console.error({ error: e })\n this.context.dispatch(\n 'UI/showSnackbar',\n {\n text: `${i18N.t('modules.projectsModule.projectCantBeDeleted')}`,\n type: 'error',\n },\n { root: true }\n )\n }\n }\n\n /**\n * Tasks\n */\n\n @Mutation\n setTask(task: ITask) {\n if (task) {\n this.taskList[task.id] = task\n }\n }\n\n @Mutation\n setTasks(tasks: ITaskList) {\n // TODO this should also update the tasks for each project in `this.projectsList`\n if (tasks) {\n this.taskList = tasks\n this.isInitializedTasks = true\n this.isInitializingTasks = false\n }\n }\n\n @Action({ commit: 'setTasks' })\n async fetchAllTasks(force = false) {\n if (!this.needToInitTasks && !force) {\n return\n }\n this.setIsInitializingTasks(true)\n try {\n const result = await Vue.prototype.$http.get('/api/task/')\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n @Action\n async fetchTaskByID(id: number) {\n try {\n const result = await Vue.prototype.$http.get(`/api/task/${id}/`)\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n addTask(task: ITask) {\n if (!task || !task.project) {\n return\n }\n // TODO it seems redundant to have the tasks in two places\n this.projectsList[task.project].tasks.push(task.id)\n Vue.set(this.taskList, task.id, task)\n }\n\n @Action({ commit: 'addTask' })\n async addTaskAction(addObject: { projectId: number; task: ITask }) {\n try {\n const body = { ...addObject.task, project: addObject.projectId }\n const result = await Vue.prototype.$http.post('/api/task/', body)\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n @Mutation\n updateTask(task: ITask) {\n if (!task || !task.project) {\n return\n }\n //trigger change detection\n Vue.set(this.taskList, task.id, task)\n }\n @Action({ commit: 'updateTask' })\n async updateTaskAction(addObject: {\n projectId: number\n task: ITask\n taskId: number\n }) {\n try {\n const ms_auth = await getAccessMSToken()\n const body = { ...addObject.task, project: addObject.projectId }\n const result = await Vue.prototype.$http.put(\n `/api/task/${addObject['taskId']}/?ms_auth=${ms_auth}`,\n body\n )\n\n const finalData = result.data\n const activeTaskId = this.context.rootGetters['Timetracking/getActiveTaskId']\n\n if (finalData.is_completed && activeTaskId === finalData.id) {\n this.context.dispatch('Timetracking/doCheckOutWhenTaskCompleted', finalData, {\n root: true,\n })\n }\n return finalData\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n deleteTask(ids: { id: number; projectId: number | undefined }) {\n // find the index of the deleted element in the array\n Vue.delete(this.taskList, ids.id)\n if (ids.projectId) {\n const idx = this.projectsList[ids.projectId].tasks.findIndex(\n (taskId) => taskId === ids.id\n )\n this.projectsList[ids.projectId].tasks.splice(idx, 1)\n }\n }\n @Action({ commit: 'deleteTask' })\n async deleteTaskAction(ids: { id: number; projectId: number | undefined }) {\n const ms_token = await getAccessMSToken()\n try {\n await Vue.prototype.$http.delete(`/api/task/${ids.id}/?ms_auth=${ms_token}`)\n // just pass the id here, since on a successful response we can assume the item got deleted\n return ids\n } catch (e) {\n console.log(e)\n }\n }\n\n /**\n * Tags\n */\n\n @Mutation\n setTags(tags: ITagList) {\n if (tags) {\n this.tagList = tags\n this.isInitializedTags = true\n this.isInitializingTags = false\n }\n }\n\n @Action({ commit: 'setTags' })\n async fetchAllTags(force = false) {\n if (!this.needToInitTags && !force) {\n return\n }\n this.setIsInitializingTags(true)\n try {\n const result = await Vue.prototype.$http.get('/overall/tasks/tags/')\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n\n @Action({ commit: 'setTask' })\n async fetchTagsForTask(taskId) {\n if (!taskId) {\n return []\n }\n const task = this.taskList[taskId]\n if (!task) {\n return []\n }\n try {\n const result = await Vue.prototype.$http.get(`/overall/tasks/${taskId}/tags/`)\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n addTagToTask(addObject: { tag: ITag; taskId: number } | undefined) {\n if (!addObject) {\n return\n }\n if (!this.taskList[addObject.taskId].tags) {\n this.taskList[addObject.taskId].tags = []\n }\n this.taskList[addObject.taskId].tags!.push(addObject.tag.id)\n Vue.set(this.tagList, addObject.tag.id, addObject.tag)\n }\n\n @Action({ commit: 'addTagToTask' })\n async addTagToTaskAction(addObject: { tag: ITag; taskId: number }) {\n try {\n const result = await Vue.prototype.$http.post(\n `/overall/tasks/${addObject.taskId}/tags/`,\n addObject.tag\n )\n return {\n tag: { ...result.data },\n taskId: addObject.taskId,\n }\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n deleteTagFromTask(ids: { tagId: number; taskId: number }) {\n // Vue.delete(this.tagList, ids.tagId)\n // find the index of the deleted element in the array\n const tags = this.taskList[ids.taskId].tags\n if (!tags) {\n return\n }\n const idx = tags.findIndex((tagId) => tagId === ids.tagId)\n tags.splice(idx, 1)\n }\n\n @Action({ commit: 'deleteTagFromTask' })\n async deleteTagFromTaskTaskAction(ids: { tagId: number; taskId: number }) {\n try {\n await Vue.prototype.$http.delete(\n `/overall/tasks/${ids.taskId}/tags/${ids.tagId}/`\n )\n // just pass the id here, since on a successful response we can assume the item got deleted\n return ids\n } catch (e) {\n console.log(e)\n }\n }\n}\n\nexport const ProjectsModule = getModule(Projects)\n","import Vue from 'vue'\nimport { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators'\nimport { generateIssueID } from '@/services/tiktrac'\nimport i18N from '@/plugins/i18n'\n\nimport type Tiktrac from 'vue/types/tiktrac'\nimport { AxiosError, AxiosResponse } from 'axios'\n\nexport enum AttendanceState {\n UNKNOWN = -1,\n INACTIVE = 0,\n ACTIVE = 1,\n}\n\n@Module({ namespaced: true })\nclass Attendance extends VuexModule {\n attendanceState: AttendanceState = AttendanceState.UNKNOWN\n\n get isAgencyMode() {\n return !!this.context.rootGetters['user/getUserInfo']?.company?.agency_mode\n }\n\n get getTimetracking(): Tiktrac.Timetracking {\n return this.context.rootGetters['Timetracking/getTimetracking']\n }\n\n get getAttendanceList(): Tiktrac.AttendanceList {\n return this.getTimetracking.attendanceList || {}\n }\n\n get getAttendanceActiveTimer(): string {\n return this.getTimetracking.properties?.attendanceActiveTimer || ''\n }\n\n get getAttendanceActiveTimerLimit(): number | null {\n return this.getTimetracking.properties?.attendanceActiveTimerLimit || null\n }\n\n get getAttendanceActiveStartTime(): number {\n if (!this.getTimetracking.attendanceList || !this.getTimetracking.properties) {\n return 0\n }\n const issue =\n this.getTimetracking.attendanceList[\n this.getTimetracking.properties.attendanceActiveTimer\n ] || null\n return issue ? issue.start : 0\n }\n\n get getAttendanceToday(): Tiktrac.AttendanceListElem | null {\n const list = this.getAttendanceList\n const today = new Date()\n\n let attendance: null | Tiktrac.AttendanceListElem = null\n\n const todayStartDateObject = new Date(\n today.getFullYear(),\n today.getMonth(),\n today.getDate(),\n 0,\n 0,\n 0,\n 0\n )\n\n const todayEndDateObject = new Date(\n today.getFullYear(),\n today.getMonth(),\n today.getDate() + 1,\n 0,\n 0,\n 0,\n 0\n )\n\n const todayStart = todayStartDateObject.getTime()\n const todayEnd = todayEndDateObject.getTime() - 1\n\n for (const a in list) {\n const instance = list[a]\n if (instance.end > todayStart && instance.start < todayEnd) {\n attendance = instance\n }\n }\n return attendance\n }\n\n get getAttendanceState(): AttendanceState {\n return this.attendanceState\n }\n\n @Mutation\n public SET_ATTENDANCE(data: {\n month: string\n userId: string\n attendanceList: Tiktrac.AttendanceList\n }) {\n const month = this.getTimetracking[data.month]\n const timetracking = month[data.userId] as Tiktrac.Timetracking\n timetracking.attendanceList = { ...data.attendanceList }\n }\n\n @Mutation\n public SET_ATTENDANCE_STATE(state: AttendanceState) {\n this.attendanceState = state\n }\n\n @Action\n async checkIn(): Promise {\n // check if there already is an active timer\n if (this.getAttendanceState === AttendanceState.ACTIVE) {\n this.context.dispatch(\n 'UI/showSnackbar',\n {\n text: `${i18N.t(\n 'ticktrack.A_presence_timer_is_already_active!_Please_end_this_first'\n )}`,\n type: 'warning',\n },\n { root: true }\n )\n return false\n }\n\n // create new issue\n const { issueId, now } = generateIssueID()\n\n const issue: Tiktrac.AttendanceListElem = {\n id: issueId,\n start: now,\n end: now,\n split: 0,\n split_count: 0,\n }\n\n const data = {\n intent: 'checkin',\n entry: issue,\n }\n\n const { curMonth, curUserId } = this.context.rootGetters['Timetracking/getCurrent']\n\n const response: AxiosResponse = await Vue.prototype.$http\n .post(`tiktrac/attendances/${curMonth}/${curUserId}/${issueId}/`, data)\n .catch((error: AxiosError) => {\n if (error.response?.status === 409) {\n // conflict\n this.context.dispatch(\n 'UI/showSnackbar',\n {\n text: `${i18N.t('ticktrack.ticktrackMini.snackBars.checkoutError')}`,\n type: 'error',\n },\n { root: true }\n )\n } else {\n // error\n this.context.dispatch(\n 'UI/showSnackbar',\n {\n text: `${i18N.t('ticktrack.ticktrackMini.snackBars.checkoutTimeError')}`,\n type: 'error',\n },\n { root: true }\n )\n }\n })\n if (!response) {\n return false\n }\n // set data\n this.context.commit(\n 'Timetracking/SET_TIMETRACKING',\n {\n month: curMonth,\n userId: curUserId,\n timetracking: response.data.timetracking,\n },\n { root: true }\n )\n this.context.commit('SET_ATTENDANCE_STATE', AttendanceState.ACTIVE)\n return true\n }\n\n @Action({ rawError: true })\n async checkOut(): Promise {\n const data = {\n intent: 'checkout',\n time: Date.now(),\n }\n const issueId = this.getAttendanceActiveTimer || 'none'\n const response: AxiosResponse = await Vue.prototype.$http\n .put(`tiktrac/attendances/${issueId}/`, data)\n .catch((error: AxiosError) => {\n return {\n error: error,\n responseCode: error.response?.status || 0,\n }\n })\n if (!response) {\n return {\n error: 'Internal Server Error',\n responseCode: 500,\n }\n }\n // set data\n this.context.commit(\n 'Timetracking/SET_TIMETRACKING',\n {\n month: response.data.month,\n userId: response.data.user,\n timetracking: response.data.timetracking,\n },\n { root: true }\n )\n this.context.commit('SET_ATTENDANCE_STATE', AttendanceState.INACTIVE)\n return { responseCode: 200 }\n }\n\n @Action({ rawError: true })\n async doUpdate(data: {\n issueId: string\n entry: Tiktrac.AttendanceListElemPartial\n }): Promise {\n const issueId = data.issueId || 'none'\n const { curUserId } = this.context.rootGetters['Timetracking/getCurrent']\n data['intent'] = 'update'\n const response: AxiosResponse = await Vue.prototype.$http\n .put(`tiktrac/attendances/${issueId}/`, data)\n .catch((error: AxiosError) => {\n return {\n error: error,\n responseCode: error.response?.status || 0,\n }\n })\n if (!response) {\n return {\n error: 'Internal Server Error',\n responseCode: 500,\n }\n }\n // set data\n this.context.commit(\n 'Timetracking/SET_TIMETRACKING',\n {\n month: response.data.month,\n userId: response.data.user,\n timetracking: response.data.timetracking,\n },\n { root: true }\n )\n return { responseCode: 200 }\n }\n\n @Action({ rawError: true })\n async doDeleteIssue(data: { issueId: string }): Promise {\n const issueId = data.issueId || 'none'\n const response: AxiosResponse = await Vue.prototype.$http\n .delete(`tiktrac/attendances/${issueId}/`)\n .catch((error: AxiosError) => {\n return {\n error: error,\n responseCode: error.response?.status || 0,\n }\n })\n if (!response) {\n return {\n error: 'Internal Server Error',\n responseCode: 500,\n }\n }\n const { curMonth } = this.context.rootGetters['Timetracking/getCurrent']\n // set data\n if (response.data.month === curMonth) {\n this.context.commit(\n 'Timetracking/SET_TIMETRACKING',\n {\n month: response.data.month,\n userId: response.data.user,\n timetracking: response.data.timetracking,\n },\n { root: true }\n )\n }\n return { responseCode: 200 }\n }\n}\nexport default Attendance\n","import Vue from 'vue'\nimport { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators'\nimport { generateIssueID, getMonth } from '@/services/tiktrac'\n\nimport type Tiktrac from 'vue/types/tiktrac'\nimport { AttendanceState } from '@/store/modules/tiktrac/attendance'\nimport { ITask } from '@/interfaces'\nimport { AxiosError, AxiosResponse } from 'axios'\nimport i18N from '@/plugins/i18n'\nimport { getAccessMSToken } from '@/plugins/msal'\n\nexport enum TimetrackingState {\n UNKNOWN = -1,\n INACTIVE = 0,\n ACTIVE = 1,\n PAUSED = 2,\n}\n\n@Module({ namespaced: true })\nclass Timetracking extends VuexModule {\n isInitializing = true\n timetrackingState: TimetrackingState = TimetrackingState.UNKNOWN\n timetrackings: Tiktrac.TimetrackingsPerMonth = {}\n\n get getCurrent(): { curUserId: string; curMonth: string; isAdmin: boolean } {\n const curUserId = this.context.rootGetters['user/getUserID']\n const curMonth = getMonth()\n const isAdmin = this.context.rootGetters['user/isUserAdmin']\n return { curUserId, curMonth, isAdmin }\n }\n\n get getIsInitializing(): boolean {\n return this.isInitializing\n }\n\n /**\n * Get timetracking for the current user and the current month\n */\n get getTimetracking(): Tiktrac.Timetracking | Tiktrac.LooseObject {\n const { curMonth, curUserId } = this.getCurrent\n const curTimetrackings = this.timetrackings[curMonth]\n if (!curTimetrackings) {\n return {}\n }\n return curTimetrackings[curUserId] || {}\n }\n\n /**\n * Get `this.timetrackings`\n */\n get getAllTimetrackings(): Tiktrac.TimetrackingsPerMonth {\n return this.timetrackings\n }\n\n get getBusyList(): Tiktrac.BusyList {\n return this.getTimetracking.busyList || {}\n }\n\n get getActiveTaskId(): number {\n return this.getBusyList[this.getActiveTimer]?.task || 0\n }\n\n get getActiveTimer(): string {\n return this.getTimetracking.properties?.activeTimer || ''\n }\n\n get getActiveTimerLimit(): number | null {\n return this.getTimetracking.properties?.activeTimerLimit || null\n }\n\n get getActivePause(): number | null {\n return this.getTimetracking.properties?.activePause || null\n }\n\n get getActivePauses(): Array {\n return this.getTimetracking.properties?.activePauses || []\n }\n\n get getPauseTime(): number {\n if (!this.getTimetracking.busyList || !this.getTimetracking.properties) {\n return 0\n }\n const issue =\n this.getTimetracking.busyList[this.getTimetracking.properties.activeTimer] || null\n return issue ? issue.pause : 0\n }\n\n get getActiveStartTime(): number {\n if (!this.getTimetracking.busyList || !this.getTimetracking.properties) {\n return 0\n }\n const issue =\n this.getTimetracking.busyList[this.getTimetracking.properties.activeTimer] || null\n return issue ? issue.start : 0\n }\n\n get getState(): TimetrackingState {\n return this.timetrackingState\n }\n\n @Mutation\n public SET_IS_INITIALIZING(value: boolean) {\n this.isInitializing = value\n }\n\n @Mutation\n public SET_ALL_TIMETRACKINGS(timetrackings: Tiktrac.TimetrackingsPerMonth) {\n this.timetrackings = { ...timetrackings }\n }\n\n @Mutation\n public SET_TIMETRACKING(data: {\n month: string\n timetracking: Tiktrac.Timetracking\n userId: string\n }) {\n const timetrackings = {\n ...this.timetrackings[data.month],\n }\n\n timetrackings[data.userId] = data.timetracking\n Vue.set(this.timetrackings, data.month, timetrackings)\n }\n\n @Mutation\n public SET_TIMETRACKING_STATE(state: TimetrackingState) {\n this.timetrackingState = state\n }\n\n @Mutation\n public TOGGLE_PAUSE(data: {\n time: number\n pauseStart: boolean\n timetracking: Tiktrac.Timetracking | Tiktrac.LooseObject\n }) {\n const timetracking = data.timetracking\n if (!Object.keys(timetracking).length) {\n // Abort if there is no current timetracking.\n // This should be not possible, since a pause can\n // only be toggled on an existing timetracking.\n return\n }\n if (data.pauseStart) {\n // pause\n timetracking.properties.activePause = data.time\n timetracking.properties.activePauses.push({\n start: data.time,\n end: 0,\n })\n this.timetrackingState = TimetrackingState.PAUSED\n } else {\n // end\n const startTime = timetracking.properties.activePause || 0\n timetracking.properties.activePause = null\n const activePauses = timetracking.properties.activePauses\n activePauses[activePauses.length - 1].end = data.time\n timetracking.busyList[timetracking.properties.activeTimer].pause +=\n data.time - startTime\n this.timetrackingState = TimetrackingState.ACTIVE\n }\n }\n\n @Action\n public fetchAllTimetrackings(month: string = ''): Promise {\n const { curMonth, curUserId, isAdmin } = this.getCurrent\n if (!month) {\n month = curMonth\n }\n return new Promise((resolve, reject) => {\n if (!isAdmin) {\n reject({\n error: 'Unauthorized',\n responseCode: 401,\n })\n }\n Vue.prototype.$http\n .get(`tiktrac/timetracking/${month}/all/`)\n .then((response: AxiosResponse) => {\n const data = response.data as Array<{\n month: string\n timetracking: Tiktrac.Timetracking\n user: string\n }>\n const allTimetrackings = this.getAllTimetrackings\n for (const user of data) {\n if (!allTimetrackings[user.month]) {\n allTimetrackings[user.month] = {}\n }\n allTimetrackings[user.month][user.user] = user.timetracking\n }\n // set data\n this.context.commit('SET_ALL_TIMETRACKINGS', allTimetrackings)\n // update state\n if (month === curMonth) {\n let timetracking: Tiktrac.Timetracking | undefined = undefined\n try {\n timetracking = allTimetrackings[curMonth][curUserId]\n } catch (_) {\n timetracking = undefined\n }\n if (timetracking) {\n if (timetracking.properties.activeTimer) {\n if (timetracking.properties.activePause) {\n this.context.commit(\n 'SET_TIMETRACKING_STATE',\n TimetrackingState.PAUSED\n )\n } else {\n this.context.commit(\n 'SET_TIMETRACKING_STATE',\n TimetrackingState.ACTIVE\n )\n }\n } else {\n this.context.commit(\n 'SET_TIMETRACKING_STATE',\n TimetrackingState.INACTIVE\n )\n }\n }\n }\n resolve({\n response: allTimetrackings,\n responseCode: 200,\n })\n })\n .catch((error: AxiosError) => {\n if (error.response?.status === 404) {\n resolve({ responseCode: 404 })\n }\n reject({\n error: error,\n responseCode: error.response?.status || 0,\n })\n })\n .finally(() => {\n this.context.commit('SET_IS_INITIALIZING', false)\n })\n })\n }\n\n @Action\n public fetchTimetracking(month: string = ''): Promise {\n const { curMonth } = this.getCurrent\n if (!month) {\n month = curMonth\n }\n const { issueId } = generateIssueID()\n return new Promise((resolve, reject) => {\n Vue.prototype.$http\n .get(`tiktrac/timetracking/${month}/?daily_attendance=${issueId}`)\n .then((response: AxiosResponse) => {\n const data = response.data\n // set data\n this.context.commit('SET_TIMETRACKING', {\n month: data.month,\n timetracking: data.timetracking as Tiktrac.Timetracking,\n userId: data.user,\n })\n // update state\n if (month === curMonth) {\n // set busyList properties\n if (data.timetracking.properties.activeTimer) {\n if (data.timetracking.properties.activePause) {\n this.context.commit('SET_TIMETRACKING_STATE', TimetrackingState.PAUSED)\n } else {\n this.context.commit('SET_TIMETRACKING_STATE', TimetrackingState.ACTIVE)\n }\n } else {\n this.context.commit('SET_TIMETRACKING_STATE', TimetrackingState.INACTIVE)\n }\n // set attendanceList properties\n if (data.timetracking.properties.attendanceActiveTimer) {\n this.context.commit(\n 'Attendance/SET_ATTENDANCE_STATE',\n AttendanceState.ACTIVE,\n { root: true }\n )\n } else {\n this.context.commit(\n 'Attendance/SET_ATTENDANCE_STATE',\n AttendanceState.INACTIVE,\n { root: true }\n )\n }\n }\n resolve({\n response: data.timetracking,\n responseCode: 200,\n })\n })\n .catch((error: AxiosError) => {\n reject({\n error: error,\n responseCode: error.response?.status || 0,\n })\n })\n .finally(() => {\n this.context.commit('SET_IS_INITIALIZING', false)\n })\n })\n }\n\n @Action({ rawError: true })\n public async doAddIssue(data: {\n entry: Tiktrac.BusyListElem\n }): Promise {\n const userId = this.context.rootGetters['user/getUserID']\n const month = getMonth(data.entry.start)\n const issueId = data.entry.id || 'none'\n const ms_auth = await getAccessMSToken()\n data['intent'] = 'issueAdd'\n data['ms_auth'] = ms_auth\n return new Promise((resolve, reject) => {\n Vue.prototype.$http\n .post(`tiktrac/timetracking/${userId}/${month}/${issueId}/`, data)\n .then((response: AxiosResponse) => {\n const data = response.data\n const monthCurrent = getMonth()\n // set data\n if (data.month === monthCurrent) {\n this.context.commit('SET_TIMETRACKING', {\n month: data.month,\n timetracking: data.timetracking,\n userId: userId,\n })\n // TODO check if state active?\n // this.context.commit('SET_TIMETRACKING_STATE', TimetrackingState.ACTIVE)\n }\n resolve({ responseCode: 201 })\n })\n .catch((error: AxiosError) => {\n reject({\n error: error.message,\n responseCode: error.response?.status || 0,\n })\n })\n })\n }\n\n @Action\n async checkIn(task: ITask | undefined = undefined): Promise {\n // check if there already is an active timer\n if (this.getState === TimetrackingState.ACTIVE) {\n this.context.dispatch(\n 'UI/showSnackbar',\n {\n text: `${i18N.t(\n 'ticktrack.A_presence_timer_is_already_active!_Please_end_this_first'\n )}`,\n type: 'warning',\n },\n { root: true }\n )\n return false\n }\n\n // create new issue\n const { issueId, now } = generateIssueID()\n const projectId = task && task.project ? task.project : 0\n const taskId = task ? task.id : 0\n\n const issue: Tiktrac.BusyListElem = {\n id: issueId,\n start: now,\n end: now,\n pause: 0,\n status: 1, // employee is working\n status_descr: '',\n split: 0,\n split_count: 0,\n project: projectId,\n task: taskId,\n }\n\n const data = {\n intent: 'checkin',\n entry: issue,\n }\n\n const userId = this.context.rootGetters['user/getUserID']\n const month = getMonth()\n\n const response: AxiosResponse = await Vue.prototype.$http\n .post(`tiktrac/timetracking/${userId}/${month}/${issueId}/`, data)\n .catch((error: AxiosError) => {\n if (error.response?.status === 409) {\n // conflict\n this.context.dispatch(\n 'UI/showSnackbar',\n {\n text: `${i18N.t('ticktrack.ticktrackMini.snackBars.checkoutError')}`,\n type: 'error',\n },\n { root: true }\n )\n } else {\n // error\n this.context.dispatch(\n 'UI/showSnackbar',\n {\n text: `${i18N.t('ticktrack.ticktrackMini.snackBars.checkoutTimeError')}`,\n type: 'error',\n },\n { root: true }\n )\n }\n })\n if (!response) {\n return false\n }\n // set data\n this.context.commit('SET_TIMETRACKING', {\n month: response.data.month,\n timetracking: response.data.timetracking,\n userId: userId,\n })\n this.context.commit('SET_TIMETRACKING_STATE', TimetrackingState.ACTIVE)\n return true\n }\n\n @Action({ rawError: true })\n public doCheckOut(data: {\n intent: string\n issueId: string\n time: number\n project: number\n taskName: string\n taskId: number\n }): Promise {\n const { curUserId } = this.getCurrent\n return new Promise((resolve, reject) => {\n const issueId = data.issueId || 'none'\n Vue.prototype.$http\n .put(`tiktrac/timetracking/issues/${issueId}/`, data)\n .then((response: AxiosResponse) => {\n const data = response.data\n // set data\n this.context.commit('SET_TIMETRACKING', {\n month: data.month,\n timetracking: data.timetracking,\n userId: curUserId,\n })\n this.context.commit('SET_TIMETRACKING_STATE', TimetrackingState.INACTIVE)\n // TODO update projects and tasks\n resolve({ responseCode: 200 })\n })\n .catch((error: AxiosError) => {\n reject({\n error: error,\n responseCode: error.response?.status || 0,\n })\n })\n })\n }\n\n @Action({ rawError: true })\n public doCheckOutWhenTaskCompleted(task: ITask) {\n const data = {\n intent: 'checkout',\n issueId: this.getActiveTimer,\n time: Date.now(),\n project: task.project || 0,\n taskName: task.name,\n taskId: task.id,\n taskCompleted: task.is_completed,\n }\n this.context.dispatch('Timetracking/doCheckOut', data, {\n root: true,\n })\n }\n\n @Action({ rawError: true })\n public doPauseStart(data: {\n intent: string\n issueId: string\n time: number\n }): Promise {\n return new Promise((resolve, reject) => {\n const issueId = data.issueId || 'none'\n Vue.prototype.$http\n .put(`tiktrac/timetracking/issues/${issueId}/`, data)\n .then((_) => {\n // set data\n this.context.commit('TOGGLE_PAUSE', {\n time: data.time,\n pauseStart: true,\n timetracking: this.getTimetracking,\n })\n resolve({ responseCode: 200 })\n })\n .catch((error: AxiosError) => {\n reject({\n error: error,\n responseCode: error.response?.status || 0,\n })\n })\n })\n }\n\n @Action({ rawError: true })\n public doPauseEnd(data: {\n intent: string\n issueId: string\n time: number\n }): Promise {\n return new Promise((resolve, reject) => {\n const issueId = data.issueId || 'none'\n Vue.prototype.$http\n .put(`tiktrac/timetracking/issues/${issueId}/`, data)\n .then((response: AxiosResponse) => {\n // set data\n this.context.commit('TOGGLE_PAUSE', {\n time: data.time,\n pauseStart: false,\n timetracking: this.getTimetracking,\n })\n resolve({ responseCode: 200 })\n })\n .catch((error: AxiosError) => {\n reject({\n error: error,\n responseCode: error.response?.status || 0,\n })\n })\n })\n }\n\n // TODO update function signature\n @Action({ rawError: true })\n public async doUpdate(data: {\n issueId: string\n entry: Tiktrac.BusyListElemPartial\n }): Promise {\n const token = await getAccessMSToken()\n return new Promise((resolve, reject) => {\n const issueId = data.issueId || 'none'\n const { curUserId } = this.getCurrent\n data['intent'] = 'update'\n Vue.prototype.$http\n .put(`tiktrac/timetracking/issues/${issueId}/?ms_auth=${token}`, data)\n .then((response: AxiosResponse) => {\n const data = response.data\n // set data\n this.context.commit('SET_TIMETRACKING', {\n month: data.month,\n timetracking: data.timetracking,\n userId: curUserId,\n })\n resolve({ responseCode: 200 })\n })\n .catch((error: AxiosError) => {\n reject({\n error: error,\n responseCode: error.response?.status || 0,\n })\n })\n })\n }\n\n @Action({ rawError: true })\n public async doDeleteIssue(data: {\n issueId: string\n msSeriesMasterId?: string\n }): Promise {\n const token = await getAccessMSToken()\n return new Promise((resolve, reject) => {\n const issueId = data.issueId || 'none'\n const msSeriesMasterId = data.msSeriesMasterId || 'none'\n Vue.prototype.$http\n .delete(\n `tiktrac/timetracking/issues/${issueId}/?ms_auth=${token}&ms_series_master_id=${msSeriesMasterId}`\n )\n .then((response: AxiosResponse) => {\n const data = response.data\n const { curMonth, curUserId } = this.getCurrent\n // set data\n if (data.month === curMonth) {\n this.context.commit('SET_TIMETRACKING', {\n month: data.month,\n timetracking: data.timetracking,\n userId: curUserId,\n })\n // TODO check if state active?\n // this.context.commit('SET_TIMETRACKING_STATE', TimetrackingState.ACTIVE)\n }\n resolve({ responseCode: 200 })\n })\n .catch((error: AxiosError) => {\n reject({\n error: error,\n responseCode: error.response?.status || 0,\n })\n })\n })\n }\n}\nexport default Timetracking\n","import { VuexModule, Module, Mutation, Action, getModule } from 'vuex-module-decorators'\nimport store from '@/store'\nimport Vue from 'vue'\nimport { IUserData, IUserFields } from '@/interfaces'\nimport { LooseObject } from 'vue/types/tiktrac'\n\n@Module({\n name: 'user',\n store: store,\n dynamic: true,\n namespaced: true,\n})\nclass User extends VuexModule {\n userInfo: IUserData = {\n uid: '',\n first_name: '',\n last_name: '',\n role: '',\n profile_picture: '',\n email: '',\n wage: '',\n availability: '',\n msal_active: false,\n msal_fullsync: false,\n settings: {},\n company: {\n id: 0,\n name: '',\n max_users: 0,\n subscription_expiration_date: '',\n agency_mode: false,\n },\n }\n hasLocalPicture: boolean = false\n userList: Array = []\n\n get getUserID(): string {\n return this.userInfo.uid\n }\n\n get getUserInfo(): IUserData {\n return this.userInfo\n }\n\n get getUserSettings(): LooseObject {\n return this.userInfo.settings\n }\n\n get getUserList(): Array {\n return this.userList\n }\n\n get getUserName(): string {\n return this.userInfo.first_name + ' ' + this.userInfo.last_name\n }\n\n get isUserAdmin() {\n return this.userInfo.role === 'admin'\n }\n\n get getProfilePicture(): string | File | null {\n if (this.hasLocalPicture) return this.userInfo.profile_picture\n const picturePath = process.env.VUE_APP_FILES_BASE_URL || ''\n return this.userInfo.profile_picture\n ? picturePath + this.userInfo.profile_picture\n : ''\n }\n\n get getUserById() {\n return (id: string) => {\n const users = this.getUserList || []\n return users.find((u) => u.uid === id) || null\n }\n }\n\n @Mutation\n setLocalPicture(newPicture: string) {\n this.userInfo.profile_picture = newPicture\n this.hasLocalPicture = true\n }\n\n @Mutation\n setUserInfo(userInfo: IUserData) {\n if (userInfo) this.userInfo = userInfo\n }\n\n @Action({ commit: 'setUserInfo' })\n async fetchUserInfo() {\n try {\n const result = await Vue.prototype.$http.get('/overall/userinfo/')\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n setUserList(userList: Array) {\n if (userList) this.userList = userList\n }\n\n @Action({ commit: 'setUserList' })\n async fetchUserList() {\n try {\n const result = await Vue.prototype.$http.get('/overall/')\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n createUser(user: IUserData) {\n if (user) this.userList.push(user)\n }\n\n @Action({ commit: 'createUser' })\n async createUserAction(user: IUserFields) {\n try {\n const result = await Vue.prototype.$http.post('/overall/', user) // TODO feedback if you try to add the same email multiple times\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n updateUser(user: IUserData) {\n if (user.uid === this.userInfo.uid) {\n this.userInfo = { ...user }\n }\n this.userList.forEach((userOld) => {\n if (userOld.uid === user.uid) {\n userOld.first_name = user.first_name\n userOld.last_name = user.last_name\n userOld.wage = user.wage\n userOld.availability = user.availability\n userOld.role = user.role\n }\n })\n }\n\n @Action({ commit: 'updateUser' })\n async updateUserAction(user: IUserFields) {\n try {\n const result = await Vue.prototype.$http.put(\n '/overall/keycloak/' + user.uid + '/',\n user\n )\n return result.data\n } catch (e) {\n console.log(e)\n }\n }\n\n @Mutation\n deleteUser(userid: string) {\n this.userList = this.userList.filter((user) => user.uid != userid)\n }\n\n @Action({ commit: 'deleteUser' })\n async deleteUserAction(userid: string) {\n try {\n await Vue.prototype.$http.delete('/overall/keycloak/' + userid + '/')\n return userid\n } catch (e) {\n console.log(e)\n }\n }\n}\n\nexport const UserModule = getModule(User)\n","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 86666,\n\t\"./nl-be.js\": 86666,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","var map = {\n\t\"./Eisenhower_icon.svg\": 26454,\n\t\"./Frame.svg\": 6785,\n\t\"./Icon-awesome-pen.svg\": 35910,\n\t\"./Icon-open-task.svg\": 31438,\n\t\"./Icon-project-diagram.svg\": 25051,\n\t\"./arrow-sender.svg\": 9330,\n\t\"./arrowHoverEisen.svg\": 67474,\n\t\"./atthene_chat_logo.svg\": 85615,\n\t\"./atthene_welcome.svg\": 85557,\n\t\"./avatar.svg\": 26985,\n\t\"./drag_label.svg\": 30740,\n\t\"./event_busy.svg\": 53523,\n\t\"./grid.svg\": 36461,\n\t\"./icon_account.svg\": 57792,\n\t\"./icon_atthene_interaction.svg\": 6967,\n\t\"./icon_atthene_interaction_primary_green.svg\": 62971,\n\t\"./icon_calendar_times.svg\": 85376,\n\t\"./icon_effort.svg\": 69588,\n\t\"./icon_menu.svg\": 70325,\n\t\"./icon_people.svg\": 50508,\n\t\"./icon_people_active.svg\": 92675,\n\t\"./icon_urgency_1.svg\": 71158,\n\t\"./icon_urgency_2.svg\": 30971,\n\t\"./icon_urgency_3.svg\": 18702,\n\t\"./icon_urgency_4.svg\": 94780,\n\t\"./loading_bar.svg\": 67362,\n\t\"./logo_atthene_app.svg\": 95948,\n\t\"./logo_tiktrac_plain.svg\": 72734,\n\t\"./noti_active.svg\": 68813,\n\t\"./noti_icon.svg\": 70799,\n\t\"./pause-circle.svg\": 33412,\n\t\"./person.svg\": 41884,\n\t\"./play-circle.svg\": 59814\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 82874;","var map = {\n\t\"./icon_people.svg\": 50508,\n\t\"./icon_people_active.svg\": 92675\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 13945;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + (chunkId === 443 ? \"about\" : chunkId) + \".\" + {\"120\":\"520138d4\",\"165\":\"4ea90387\",\"177\":\"888f7835\",\"227\":\"6884c546\",\"276\":\"adbe2448\",\"432\":\"6e983fae\",\"443\":\"31349c0f\",\"474\":\"1e81cce5\",\"637\":\"09f7b82a\",\"856\":\"54f7fa3f\",\"860\":\"13a332bc\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"177\":\"48f628cc\",\"227\":\"7ee2fce6\",\"276\":\"00dab2fb\",\"432\":\"c2aedf8d\",\"474\":\"cb25628d\",\"637\":\"8375d02f\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"frontend:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"177\":1,\"227\":1,\"276\":1,\"432\":1,\"474\":1,\"637\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfrontend\"] = self[\"webpackChunkfrontend\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(59284); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","_setupProxy","staticRenderFns","StoreTiktrac","namespace","StoreUI","DailyBaseComponent","Vue","async","task","taskData","data","projectId","project","taskId","id","ProjectsModule","showSnackbar","text","$t","type","editTask","item","taskDialog","editTimetracking","deleteTask","showDialog","then","response","getActiveTaskId","__decorate","Getter","Action","Ref","Component","components","TaskDialog","component","model","dialog","callback","expression","staticClass","DialogContent","Prop","default","VModel","is_default","save","value","projectData","_v","attrs","class","on","ref","state","fn","require","key","$set","staticStyle","importance","loading","authorizeResponsibility","scopedSlots","idx","menuParticipantAdd","filterUserList","menuParticipantAddId","click","$event","proxy","getEffortSum","creatorName","_u","deleteProject","is_active","_e","tab","$$v","description","ProjectDialog","constructor","abort","menuParticipants","isEdit","name","disabled","effort","due_date","main_responsibility_id","highlightedTiktracEntry","tasks","users","creator","main_responsibility","nameRules","v","length","userID","UserModule","getUserList","allEfforts","Object","values","creator_id","first_name","last_name","projectBudgets","FinanceModule","projectCosts","getUserListFiltered","userList","filter","user","includes","uid","getParticipants","user_list","userEl","push","getParticipantCount","getImportanceText","onDialogToggle","val","oldVal","initDialog","initData","onToggleMenuParticipants","mounted","setProcessingState","property","setDisabled","setLoading","prototype","hasOwnProperty","call","prop","varName","saveProperty","newProject","console","log","$refs","valid","catch","consentText","pBudgets","p","project_id","pCosts","pBudget","pCost","costSentence","forEach","amount","consent","queryText","toLowerCase","q","indexOf","editProject","createProject","Watch","BaseMenuButton","DatePicker","InlineEdit","TaskTable","TextEditor","getProjectList","getTaskUrgencyArray","getTaskIsNotEmpty","style","background","e","getMsStatus","minHeight","tagInput","getTaskTags","preventDefault","saveChecklistItem","checklistAddFormInput","headers","page","newIssue","formatDecimal","numberRules","calcTimeForIssue","addIssue","isAddingNewIssue","start","pause","hoursToDecimal","editIssue","getAPIissues","TaskTimetrackingList","isAddingNewIssueProcess","busyListElemId","itemsPerPage","updateProcess","dates","end","issues","Number","parseFloat","align","getIssues","issue","dStart","Date","dEnd","dateStrings","toISODateString","time","decimalToHours","sort","a","b","resetTiktracField","assign","initialStateOfTiktrac","onTaskLoad","oldTask","fetchIssues","highlightIssue","highlightedIssueId","findIndex","i","Math","ceil","$http","get","formatFunction","dateStart","dateEnd","dateTimeStart","dateTimeEnd","setHours","getHours","setMinutes","getMinutes","isNaN","diff","getTime","number","toFixedNumber","hours","idxDelimiter","h","parseInt","substr","m","decimal","formatterDecimalNumber","validateNewIssue","issueId","generateIssueID","mergeDateAndTime","status","status_descr","split","split_count","taskName","taskCompleted","is_completed","doAddIssue","entry","error","responseCode","finally","date","dateDate","dateTime","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","updateIssue","doUpdate","doDeleteIssue","$delete","isCurrentTaskActive","getActiveTimer","handleCloseDialog","immediate","TimePicker","TrackingEntry","assigned_to_id","urgency","checklistAddForm","created","tags","notes","taskConvertationsIsLoading","busyList","microsoftSwitcherIsHovered","createdBy","creatorData","getTaskUrgencyIcon","icon","urgencies","getAllTags","allTags","$deepCopy","tag","tagId","getChecklist","checklist","t","getBusyList","elem","list","is_ms_event","recalculateMsStatus","saveTag","created_by","$nextTick","deleteTag","resetChecklistAddForm","ms_auth","getAccessMSToken","intent","res","err","month","fetchTimetracking","find","newTask","updateSelProjects","createTask","isTextField","isReadonly","getDateString","img","label","menu","close","origValue","isDense","isProp","dense","isHideDetails","hideDetails","readonly","textField","getDelimiter","Array","isArray","dateString","formatterDate","onToggleMenu","hasChanged","clear","$emit","String","Boolean","Function","Promise","_setup","getClasses","isAlwaysShowInput","apply","isDisabled","isLoading","placeholder","rules","valueRepr","disabledInput","editing","alwaysShowInput","isOutlined","outlined","classes","toRepr","valueSync","fromRepr","onToggleEditing","isInputValid","open","event","atEditTextArea","copyDesc","isActiveBtnsBar","customToolbar","font","size","color","delta","ops","reset","BaseButton","VueEditor","getTimeString","domProps","getISOTimeString","formatterTime","toTimeString","timeString","hoursString","minutesString","setSeconds","setMilliseconds","openProjectDetails","ProjectList","projects","slice","check_default","projectDetails","isAddingNewEntry","_n","isAddingNewEntryProcess","openDetail","stopPropagation","timetrackingsSum","minutes","getTaskList","getTasks","resetFieldTask","initialStateOfTask","onTaskListUpdate","fetchTasks","oldProject","highlightedEntryId","getTimetrackingsSum","$watch","getUserNameById","userId","u","trunc","getTaskUrgency","taskDialogRef","validateNewEntry","refName","refEffort","deep","selTasks","selectedTaskName","rulesName","isCompleted","checkInProcess","nativeOn","handlerSaveIssue","selectedProject","checkIn","checkOut","comment","formValid","selProjects","selTaskChangeProject","undefined","getProjects","setDateInfoToForm","format","startSearchTaskByBusyList","searchedTaskId","taskSearched","onDateStartUpdate","dateOld","onDateEndUpdate","getSelProjectList","getSelTaskList","projectName","getIsInitializing","initFormPreset","init","isInitializing","projectsUpdated","resetForm","updateSelectedProject","issueStart","issueEnd","target","relatedTarget","input","blur","selectedTaskId","form","validate","saveFunction","document","getElementById","resetValidation","isPlain","xSmall","plain","isEven","LayoutTwoColumns","even","showTutorial","breakpoint","mobile","snackbar","quickNotify","imagePath","AppBar","userInfo","isActive","active","isPaused","isInactive","checkOutProcess","togglePause","dialogMobile","dialogCheckOut","handleClickButton","_s","isTaskDone","TiktracMini","isTimerInitialized","now","checkOutTime","constProgressFull","segments","timePassed","pauseTimePassed","intervalDateTime","intervalTimetracking","intervalPause","isActivePlusButton","inputTask","currentTaskNameNotCheckin","togglePauseProcess","passedTimeFormatted","toISOString","pauseTimeFormatted","getState","TimetrackingState","curSegmentRotate","segLen","rotate","curSegmentProgressPercent","progressPercent","curSegmentColor","curDateTime","getWorkedHoursString","getActivePause","wh","getActiveStartTime","getCurrentTaskName","loadFormPreset","initializeTimers","changeCurrentTask","getTimetracking","is_all_day","currentItemTaskId","toggleTimer","oldState","stateChange","clearInterval","getPauseTime","startTime","calcRotation","initializeInterval","clearAllIntervals","addProgressSegment","svgs","querySelectorAll","remove","overlay","querySelector","calcProgressPixel","firstSegment","svg","svgNew","cloneNode","insertAdjacentElement","underlay","stroke","progress","transform","timeDelta","calcTimeDelta","onDialogCheckoutToggle","beforeDestroy","changeInputBgColor","setSegments","window","setInterval","getActiveTimerLimit","updateCurrentProgress","trackingTimePassed","getActivePauses","timeActive","timePause","calcProgressPercent","timeOfDay","range","attributes","deltaHours","offset","toString","segment","activeIssue","is_autogenerated","openPopupOnMobile","$vuetify","mdAndUp","silent","alert","doCheckOut","curTime","doPauseStart","doPauseEnd","param","fieldsetEl","parentElement","previousElementSibling","classList","add","whenTaskIsTyping","selectedTaskNameVal","focus","route","href","NavigationDrawerContent","drawerOpen","allRoutesApps","logo","to","adminOnly","allRoutesTop","allRoutesBottom","routesTop","filterRoutes","routesBottom","routesApps","routes","UserInfoMini","NavigationDrawerOverall","getDrawerIcon","unreadNotifications","_l","index","openNotification","notificationMsg","NotificationItem","verb","target_object_id","slug","NotificationList","isNewNotification","notifyIconState","openDialog","readNotification","projectDialog","calculateTimeFromNow","timestamp","moment","fromNow","getNotificationTitle","notifyIconChangeSrc","changeNotifyIconState","State","StoreAttendance","attendanceStateActive","attendanceStateLoading","company","onStateChange","AttendanceState","redirectToHome","acceptedEULA","EULADialog","location","localStorage","setItem","NavigationDrawerMobile","toggleDrawer","show","$attrs","BaseSnackbar","emitShow","toggleShow","accept","dialogPromiseResolve","decline","timeout","dismissible","isEditing","keyup","keydown","addTask","handleIsOpenForm","QuickTaskCreatorForm","getCurrentProjects","QuickTaskCreator","onAddTask","setIsEditing","isTrackingEntryActive","boxShadow","isQuickTaskFormActive","bottom","fontWeight","fontSize","right","marginTop","items","textAlign","paddingRight","DailyTeamOverviewDialog","title","createDialog","ChatbotModule","ChatBotMenu","isTaskWasAdded","isChatBarActive","stateChatBar","isChatListActive","setToFalseVal","addEventListener","activatorChatList","inactiveChatList","TaskWasAddedClose","inactiveTrackingEntry","NewTimeTrackingToggle","toggleValFlag","setIsEditingFromChatMenu","NewTaskToggle","NewProjectToggle","editTaskDetail","currentTask","atEditTask","Mutation","isChatOpen","openChat","icons","handleOnType","scopedProps","message","validateTime","sentUserList","dataAttendenceMeeting","ChatBotBusyListForm","Model","child","openTaskInDialog","TasksListChatBot","id_Task","ChatBotBtn","buttonSendAction","payload","AttendenceMeeting","RasaIntent","ChatBotBeauty","file","closeSvg","dataBusyList","dateTestStart","dateTestEnd","durationTimeTest","isValidateTime","attendenceUsers","valueUsers","participants","imageUrl","messageList","author","newMessagesCount","message1","buttonsList","showTypingIndicator","colors","header","bg","launcher","sentMessage","receivedMessage","userInput","alwaysScrollToBottom","messageStyling","startTimeAppoinment","endTimeAppoinment","testTaskOnly","helpQuery","sendMsgToChatbot","reviewDataStructAndKeys","x","liked","closeChat","unixFormat","round","testdataEnd","takeDataEndAppointment","unixFormatEnd","setValidTime","$root","sender","test","newQuery","readyQueryBtn","year","padStart","day","showAllTeamOverview","dailyDialogDetails","showAllDetailsDialog","curentTask_id","calcDurationTime","durationTime","floor","min","UserArr","entries","map","userUid","firstSplit","secondSplit","join","updateTask","pop","doneTasksList","timerActive","tasks_details","user_info","userName","duration","msgData","generateMsgType","attendeesUsersList","details","btnElem","generateMsgFromRasa","generateButton","btnData","dataSet","specifData","msg","generateTaskWindow","executeDependsOnRasaIntent","Appointment","OtherUserTasksDone","ShowTasks","ShowUsersList","GenerateTaskWindow","CheckReminder","task_id","arrayItem","onMessageWasSent","DataFromCall","ChatPopup","localChatFlagVal","setTimeout","sendReminderRequest","onStateChatFlagVal","vMenuSetVal","chatFlag","vMenuFlag","reminderUpdate","getItem","botBeauty","PageLoader","toggle","button","isCurrentVideoFinished","completeTutorial","TutorialDialog","videoDialog","completedTutorials","playButtons","allTutorialsFinished","isLastVideo","markVideoAsDone","closeTutorialDialog","closeVideoDialog","userFields","role","wage","availability","settings","tutorial_completed","skipTutorial","markTutorialAsRead","startTutorial","isVideoCompleted","video","nextTutorial","toggleObject","QuickNotificationItem","StoreTimetracking","App","drawer","showEULA","interval_ms_events","getUserMSAL","unqueueSnackbar","getNextInQueue","unqueueQuickNotify","getNextInQueueQuickNotify","showQuickNotify","avatar","whoAssigned","updateOnStateChange","updateIfMSAL","CalendarModule","fetchNotifications","overallDrawer","BaseDialog","tiktracRoutes","path","paytracRoutes","paddingBottom","gap","openEisenhoverDialog","dragOverHandler","dropTaskFromTaskList","timed","isActiveEvent","extendBottom","week","first","menuActivator","_g","activeTask","isTaskIsActiveNow","pl2","line","editCurrentTask","EisenHoverMatrixDialog","matrix11","matrix12","matrix13","matrix14","matrix21","matrix22","matrix23","matrix24","matrix31","matrix32","matrix33","matrix34","matrix41","matrix42","matrix43","matrix44","container","busylist","limiter","polling","currentTime","testonly2","toggleDialog","initValues","inint","limiterchanger","initBusy","displayUptime","idTask","filterResult","sum","busyListElem","asHours","getProjectNameById","getProjectDeadlineById","updated","CalculateTasksLimiter","clientWidth","clientHeight","myWatcherResizer","destroyed","removeEventListener","width","height","taskWidth","taskHeight","amountTaskWidth","amountTaskHeight","filterByImportanceAndUrgency","result","maximum","count","timetrackingPerUser","getAllTimetrackings","getCurrent","curUserId","bl","top","startCoordinate","barHeight","display","barDisplay","expandTop","expandBottom","AttendanceBar","calendarMinutesSum","isAttendanceListLoaded","attendance","isExpandingTop","isExpandingBottom","dayStart","setDayStart","getAttendanceToday","logTimetracking","toggleLoaded","toggleAttendanceState","createBar","calculateAttendance","doAttendanceUpdate","extendTop","attendanceStart","attendanceEnd","minuteLength","minutesOffset","DailyPlanner","hideHeader","ready","selectedOpen","selectedEvent","taskList","firstPoint","moveTime","moveTimeInterval","isDragging","isExpanding","timetrackingCollision","attendancebarRef","updatedEntry","newEvent","isDailyPlannerLoading","getProjectsArray","events","d","dayEnd","getMilliseconds","timetracking","is_today","getUTCDate","setIssueEndToNow","cal","calendar","nowY","timeToY","times","onBusyListUpdate","scrollToTime","updateTime","updateActiveEvent","mountAttendanceBarNode","initTaskList","remountAttendanceBarNode","unmountAttendanceBarNode","endIntervalDrag","moveInterval","toTime","roundTime","dailyPlannerIntervals","position","attendanceBar","createElement","setAttribute","prepend","el","store","parent","attendaceBar","timestampToString","calendarDragHandler","mouseMove","tms","endDrag","dataTransfer","getData","calendarHead","headHeight","offsetHeight","calendarHeight","$el","amountOfHoursInCalendar","intervalOffset","offsetTop","clientY","getBoundingClientRect","saveTimetracking","dragLeaveHandler","createNewEvent","getTimeSlot","resetNewEvent","cancelMenuEvent","confirmMenuEvent","openMenu","_prevClass","down","roundTo","roundDownTime","minute","hour","getCurrentTime","getTaskByEvent","max","keys","updateTimes","ms_series_master_id","msSeriesMasterId","EisenHoverMatrixDialogRef","amountTask","priorityUrgency","priorityImportance","dragStart","handleCheckItem","triggerAction","isActiveTask","action","DailyTaskList","actionProcess","checkedItems","tasksToday","taskActions","tasksToDo","getTaskListDone","getDoneTasksPerWeek","isBetweenLastMondayAndNow","completion_date","todaysTasks","completeTask","lastMonday","getDay","effortText","taskAction","setData","addProject","email","Home","tasksWithTimeTracking","newTaskCheck","QuickProjectCreator","VueRouter","router","mode","base","process","Vuetify","theme","options","customProperties","themes","light","primary","secondary","accent","info","success","warning","lang","locales","de","en","current","i18N","url","realm","clientId","_keycloak","Keycloak","KCPlugin","install","$keycloak","defineProperties","AxiosPlugin","Axios","baseURL","baseUrl","interceptors","request","use","token","authService","config","common","getTimezoneOffset","MomentPlugin","$moment","FunctionsPlugin","obj","JSON","parse","stringify","vueInit","vuetify","i18n","$mount","Chat","Vuelidate","onLoad","checkLoginIframe","VueI18n","messages","hyphenIdx","navigator","language","locale","localStorageLang","VUE_APP_I18N_LOCALE","fallbackLocale","VUE_APP_I18N_FALLBACK_LOCALE","GRAPH_CONFIG","GRAPH_ME_ENDPT","GRAPH_MAIL_ENDPT","UIManager","static","account","cardDiv","welcomeDiv","innerHTML","username","signInButton","nextElementSibling","tabList","tabContent","endpoint","setProfile","setMail","profile","clearTabs","appendChild","mailInfo","createAndAppendListItem","createAndAppendContentItem","listItem","subject","contentItem","from","emailAddress","address","bodyPreview","mailButton","profileButton","profileDiv","MSAL_CONFIG","auth","redirectUri","VUE_APP_MSAL_REDIRECT_URI","navigateToLoginRequestUrl","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","containsPii","LogLevel","debug","warn","AuthModule","myMSALObj","PublicClientApplication","loginRequest","scopes","loginRedirectRequest","redirectStartPage","profileRequest","profileRedirectRequest","mailRequest","mailRedirectRequest","silentProfileRequest","forceRefresh","silentMailRequest","silentLoginRequest","loginHint","getAccount","currentAccounts","getAllAccounts","loadAuthModule","handleRedirectPromise","resp","handleResponse","attemptSsoSilent","ssoSilent","InteractionRequiredAuthError","login","signInType","loginPopup","msal_active","msal_fullsync","loginRedirect","logout","logOutRequest","logoutPopup","getTokenRedirect","getTokenPopup","silentRequest","interactiveRequest","acquireTokenSilent","accessToken","BrowserAuthError","acquireTokenPopup","acquireTokenRedirect","FetchManager","Headers","bearer","append","method","fetch","json","Authorization","ua","userAgent","msie","msie11","isIE","authModule","networkModule","signIn","signOut","callCalendar","callBackendWithToken","getProfileTokenRedirect","getProfileTokenPopup","formatDate","weekday","formatTime","formatDecimalNumber","minimumFractionDigits","maximumFractionDigits","Intl","DateTimeFormat","NumberFormat","substring","showSeconds","worked_hours","wm","worked_minutes","worked_seconds","n","digits","pow","updateToken","deleteAccount","setTime","random","UI","VuexModule","dialogPromise","queue","queueQuickNotify","navWindow","ACTIVATE_DIALOG","resolve","context","commit","ACTIVATE_SNACKBAR","unshift","setNotifications","removeReadNotification","ACTIVE_QUICKNOTIFY","RESET_NAV_WINDOW","navigateReset","DECREMENT_NAV_WINDOW","navigateBack","INCREMENT_NAV_WINDOW","navigateForward","Module","namespaced","vMenuVal","messageTxt","Vuex","modules","Attendance","Timetracking","Finance","timeSlots","workingcostlist","projectBudget","calculated_days","recurring","generalCosts","projectBudgetList","generalCostsList","projectCostsList","isAdmin","rootGetters","getTimeSlots","getprojectBudget","getProjectBudgetList","setProjectBudgets","budget","createProjectBudget","updateProjectBudget","foundIndex","editedProject","deleteProjectBudget","splice","getGeneralCosts","getGeneralCostsList","setGeneralCosts","createGeneralCosts","updateGeneralCosts","costs","c","editedGeneralCosts","deleteGeneralCosts","getProjectCosts","getProjectCostsList","setProjectCosts","createProjectCosts","updateProjectCosts","editedProjectCosts","deleteProjectCosts","dynamic","getModule","Calendar","sortedCalendarEvents","importantTasks","urgentTasks","mediumTasks","importantProjects","urgentProjects","mediumProjects","getSortedCalendarEvents","initializeCalendarValues","initializeTasks","dispatch","root","Projects","isInitializedProjects","isInitializedTasks","isInitializedTags","isInitializingProjects","isInitializingTasks","isInitializingTags","projectsList","tagList","taskUrgency","needToInitProjects","needToInitTasks","needToInitTags","fromEntries","_","getAllProjects","getDefaultProjectId","defaultProject","tasksFiltered","assigned_to","getTasksByProjectId","taskIds","setIsInitializingProjects","setIsInitializingTasks","setIsInitializingTags","setProjects","force","updateProject","setTask","setTasks","addObject","body","finalData","activeTaskId","ids","ms_token","setTags","addTagToTask","deleteTagFromTask","attendanceState","UNKNOWN","isAgencyMode","agency_mode","getAttendanceList","attendanceList","getAttendanceActiveTimer","properties","attendanceActiveTimer","getAttendanceActiveTimerLimit","attendanceActiveTimerLimit","getAttendanceActiveStartTime","today","todayStartDateObject","todayEndDateObject","todayStart","todayEnd","instance","getAttendanceState","SET_ATTENDANCE","SET_ATTENDANCE_STATE","ACTIVE","curMonth","INACTIVE","rawError","timetrackingState","timetrackings","curTimetrackings","activeTimer","activeTimerLimit","activePause","activePauses","SET_IS_INITIALIZING","SET_ALL_TIMETRACKINGS","SET_TIMETRACKING","SET_TIMETRACKING_STATE","TOGGLE_PAUSE","pauseStart","PAUSED","fetchAllTimetrackings","reject","allTimetrackings","monthCurrent","doCheckOutWhenTaskCompleted","User","profile_picture","max_users","subscription_expiration_date","hasLocalPicture","getUserID","getUserInfo","getUserSettings","getUserName","isUserAdmin","getProfilePicture","picturePath","getUserById","setLocalPicture","newPicture","setUserInfo","setUserList","createUser","updateUser","userOld","deleteUser","userid","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","code","module","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","amdO","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","r","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","__proto__","ns","create","def","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","all","reduce","promises","miniCssF","g","globalThis","inProgress","dataWebpackPrefix","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","nc","src","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","head","Symbol","toStringTag","nmd","paths","children","createStylesheet","fullhref","oldTag","linkTag","rel","onLinkComplete","errorType","realHref","insertBefore","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}