{"version":3,"mappings":"kMAEEA,iBACEA,kBAAMA,2DAASC,EAATC,MAASD,aACbD,SACFA,QACFA,oCAFIA,+HCKC,IAAMG,EAAb,MAAM,QAEJC,YAAqBC,4BAIrBC,YAGAC,KAAKC,GAGHC,KAAKJ,kBAAkBK,QAAQF,iDAZtBL,GAAgCH,sCAAhCG,EAAgCQ,4MDT7CX,iBAEEA,uBAMFA,eAN+CA,mOCOlCG,GAAb,+GCFMH,sBACEA,uBAAuBA,SAA4CA,QACnEA,sBAEUA,kDAASY,iCAAsCZ,QAC3DA,gCAJyBA,sIAMzBA,sBACEA,sBAGFA,eADQA,iFAKNA,sBAEMA,iDAASa,WACeb,4DCT/B,IAAMc,EAAb,MAAM,QAaJV,YAAqBW,EACAC,EACAC,EACAZ,EACAa,GAInB,GARmBT,sBACAA,wBACAA,wBACAA,yBACAA,0BAbrBA,oBAAiB,GACjBA,iBAAc,GACdA,mBAA4B,KAE5BA,uCAA4C,EAC5CA,uCAAoD,GAUlDA,KAAKU,cAAgBV,KAAKM,eAAeK,mBAEtCC,SAASC,SAASC,QAAQ,iDAAgD,EAAG,CAC9Ed,KAAKe,kCAAmC,EAExCf,KAAKgB,qBAAqB,mBAG1B,MAAMC,KAASC,KAAS,KACxBlB,KAAKmB,aAAeF,EAAOG,UAAUC,GAAOrB,KAAKgB,qBAAqB,4BAE/DJ,SAASC,SAASC,QAAQ,iDAAgD,EAAG,CAEpFd,KAAKe,kCAAmC,EACxCf,KAAKgB,qBAAqB,gBAG1B,MAAMC,KAASC,KAAS,KACxBlB,KAAKmB,aAAeF,EAAOG,UAAUC,GAAOrB,KAAKgB,qBAAqB,sBAGtEhB,KAAKe,kCAAmC,EACpCf,KAAKmB,cACPnB,KAAKmB,aAAaG,cAKxBN,qBAAqBO,GAEA,mBAAhBA,EACDvB,KAAKQ,iBAAiBgB,qCAAqCJ,UAAU,CACnEK,KAAMC,IACJ1B,KAAK2B,kCAAqCD,GAG5CE,MAAOA,IACLC,QAAQC,IAAIF,MAIS,gBAAlBL,GAEPvB,KAAKQ,iBAAiBuB,qCAAqCX,UAAU,CACnEK,KAAMC,IACJ1B,KAAK2B,kCAAqCD,GAG5CE,MAAOA,IACLC,QAAQC,IAAIF,MASpB/B,YAIAmC,cAGKhC,KAAKmB,cACNnB,KAAKmB,aAAaG,cAQrBW,YAAYC,EAAOC,GAElB,IAAIC,EAAUC,SAASC,eAAeH,GAEnCC,IACDA,EAAQG,MAAMC,WAAa,UAS/BC,YAAYN,GAEVnC,KAAK0C,eAAiBP,EAEtB,IAAIC,EAAUC,SAASC,eAAeH,GAEnCC,IACDA,EAAQG,MAAMC,WAAa,WAU/BG,gBAAgBR,GAEdnC,KAAK0C,eAAiBP,EAEtB,IAAIC,EAAUC,SAASC,eAAeH,GAEnCC,IAGCA,EAAQG,MAAMC,WADgB,YAA7BJ,EAAQG,MAAMC,WACY,SAEA,WAQjCI,SAASC,GAEJA,GACD7C,KAAKO,iBAAiBqC,SAASC,GAKnCC,SACE9C,KAAKM,eAAeyC,iBAAiB,MACrC/C,KAAKO,iBAAiBqC,SAAS,sBAK3BI,4BAA4Bd,iDAEhC,IAAIX,EAAiB,kBAClBX,SAASC,SAASC,QAAQ,iDAAgD,IAC3ES,EAAiB,gBAEnB,MAAM0B,QAAgBjD,KAAKJ,kBAAkBsD,OAAO,CAClDC,UAAWzD,EACX0D,eAAgB,CAAEC,WAAcrD,KAAK2B,kCACnBJ,eAAkBA,GACpC+B,aAAa,EACbC,cAAc,EACdC,iBAAiB,EACjBtB,MAAOA,EACPuB,QAASvB,UAKLe,EAAQS,gBAGRT,EAAQU,eAAeC,KAAMC,IAGjC,GAAGA,GAAQA,EAAKA,KAAK,CAInB7D,KAAKS,mBAAmBqD,uBAAuBrC,KAAMoC,EAAKA,MAG1D,QAAQE,EAAE,EAAGA,EAAE/D,KAAK2B,kCAAkCqC,OAAQD,IAGxD/D,KAAK2B,kCAAkCoC,GAAGE,IAAMJ,EAAKA,OAGpC,mBAAhBtC,EACDvB,KAAK2B,kCAAkCoC,GAAGG,4CAA8C,IAAIC,KACrE,gBAAhB5C,IACPvB,KAAK2B,kCAAkCoC,GAAGK,4CAA8C,IAAID,MAI9FnE,KAAKQ,iBAAiB6D,OAAOrE,KAAK2B,kCAAkCoC,IAAI3C,UAAU,CAChFK,KAAMC,IAGJ1B,KAAKgB,qBAAqBO,IAG5BK,MAAOA,IACLC,QAAQC,IAAIF,0DAnNfvB,GAAiBd,kFAAjBc,EAAiBH,sgBDhB9BX,sBAEEA,uBACEA,iBAEAA,yBAEEA,4BAOAA,4BAOAA,sBACEA,4BAIFA,QAIFA,QAKFA,QAEFA,eAlC+DA,wCAIIA,wGAOAA,qEAWpDA,w0ECTFc,GAAb,qCChBO,MAAMiE,EAAe,CAExBC,OAAQ,SACRC,IAAK,MACLC,MAAO,QACPC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,IAAK,MACLC,IAAK,MACLC,IAAK,sKCNH,+ECFA,6CCDA,wBCEA,6GCMC,IAAMC,EAAb,MAAM,QAEJrF,YAAoBsF,eAGpBC,OAAOC,GAGL,OAAOnF,KAAKiF,KAAKG,KAAWC,WAAkB,cAClBF,EACA,CAAEG,QAAS,aAIzCjB,OAAOc,GAEL,OAAOnF,KAAKiF,KAAKM,IAAUF,WAAkB,eAAiBF,EAAalB,GAChDkB,EACA,CAAEG,QAAS,aAKxCE,UAEE,OAAOxF,KAAKiF,KAAKQ,IAAqBJ,WAAkB,eAK1DvF,KAAKmE,GAEH,OAAOjE,KAAKiF,KAAKQ,IAAmBJ,WAAkB,eAAiBpB,GAIzEyB,OAAOzB,GAEL,OAAOjE,KAAKiF,KAAKS,OAAc,GAAGL,yBAAqCpB,mDAtC9De,GAAgBzF,wCAAhByF,EAAgBW,QAAhBX,EAAgB,qBAFf,SAEDA,GAAb,wCCAO,IAAMY,EAAb,MAAM,QAEJjG,YAAoBsF,eAGpBC,OAAOW,GAGL,OAAO7F,KAAKiF,KAAKG,KAAWC,WAAkB,eAClBQ,EACA,CAAEP,QAAS,aAIzCjB,OAAOwB,GACLhE,eAAQC,IAAI+D,GAEL7F,KAAKiF,KAAKM,IAAUF,WAAkB,gBAAkBQ,EAAc5B,GAClD4B,EACA,CAAEP,QAAS,aAKxCE,UAEE,OAAOxF,KAAKiF,KAAKQ,IAAsBJ,WAAkB,gBAK3DvF,KAAKmE,GAEH,OAAOjE,KAAKiF,KAAKQ,IAAoBJ,WAAkB,gBAAkBpB,GAI3EyB,OAAOzB,GAEL,OAAOjE,KAAKiF,KAAKS,OAAc,GAAGL,0BAAsCpB,mDAvC/D2B,GAAiBrG,wCAAjBqG,EAAiBD,QAAjBC,EAAiB,qBAFhB,SAEDA,GAAb,gFCwDYrG,iCAA0EA,SAAiBA,kCAArCA,iBAAoBA,iDAkB5EA,iCAAmFA,SAAoBA,kCAA3CA,iBAAuBA,kDAiBnFA,iCAAgFA,SAAmBA,kCAAzCA,iBAAsBA,iEAgE9EA,wBAAwDA,mEAASuG,EAATrG,MAASqG,iBAAiB,EAACC,KAAuDxG,kDAC1IA,wBAAgDA,mEAASyG,EAATvG,MAASuG,iBAAiB,EAACD,KAAqDxG,kDAEhIA,wBAAwDA,mEAAS0G,EAATxG,MAASwG,iBAAiB,EAACF,KAAqDxG,kDACxIA,wBAAgDA,mEAAS2G,EAATzG,MAASyG,iBAAiB,EAACH,KAAqDxG,kDAEhIA,wBAAwDA,mEAAS4G,EAAT1G,MAAS0G,iBAAiB,EAACJ,KAAqDxG,kDACxIA,wBAAgDA,mEAAS6G,EAAT3G,MAAS2G,iBAAiB,EAACL,KAAqDxG,kDAEhIA,wBAAwDA,mEAAS8G,EAAT5G,MAAS4G,iBAAiB,EAACN,KAAqDxG,kDACxIA,wBAAgDA,mEAAS+G,EAAT7G,MAAS6G,iBAAiB,EAACP,KAAqDxG,kDAEhIA,wBAAwDA,mEAASgH,EAAT9G,MAAS8G,iBAAiB,EAACR,KAAqDxG,kDACxIA,wBAAgDA,mEAASiH,EAAT/G,MAAS+G,iBAAiB,EAACT,KAAqDxG,kDA1BlIA,wBAEEA,4BAGcA,0EAAakH,EAAbhH,MAAagH,uBAA4ClH,QAEvEA,6BAMAA,+BACAA,+BAEAA,+BACAA,+BAEAA,+BACAA,+BAEAA,gCACAA,gCAEAA,gCACAA,gCAGFA,8CAzBgBA,mDAGHA,8CAIDA,4CAEwFA,iDACRA,gDAEQA,gDACRA,gDAEQA,gDACRA,gDAEQA,gDACRA,gDAEQA,gDACRA,0FAmCxFA,wBACEA,4BAGcA,oFAAamH,EAAbjH,MAAaiH,uBAAuCnH,QAClEA,qBAAWA,SAAoBA,QACjCA,kEANuCA,0CAGvBA,+CAEHA,2EAnBjBA,mBAGEA,4BAGcA,gEAAaoH,EAAblH,MAAakH,uBAAkCpH,QAE7DA,wBACEA,SACFA,QAGAA,wBACEA,+BAQAA,cAIAA,mBACEA,qBAAWA,aAAGA,8BAAaA,QAAIA,QAC/BA,2BACYA,gEAAaqH,EAAbnH,MAAamH,2BACzBrH,QACFA,QACAA,oBACEA,yBAEEA,0BACSA,gEAAasH,EAAbpH,MAAaoH,kBAItBtH,QAEFA,QACFA,QAGAA,oBACEA,sBAAWA,iBAAMA,cAAGA,6BAAaA,QAAIA,QACrCA,2BACYA,gEAAauH,EAAbrH,MAAaqH,gCACzBvH,QACFA,QACAA,oBAEEA,yBACEA,0BACUA,gEAAawH,EAAbtH,MAAasH,uBAIvBxH,QACFA,QACFA,QAGAA,oBACEA,sBAAWA,iBAAMA,cAAGA,yBAAYA,QAAIA,QACpCA,2BACYA,gEAAayH,EAAbvH,MAAauH,gCACzBzH,QACFA,QACAA,oBACEA,yBACEA,0BACUA,gEAAa0H,EAAbxH,MAAawH,uBAIvB1H,QACFA,QACFA,QAIFA,QACFA,8CAhFgBA,wCAIZA,mCAK4BA,mCAYLA,oFAETA,mDAOCA,wCAA6B,sCAWrBA,yFAETA,wDAOCA,6CAAkC,2CAU1BA,yFAETA,wDAMCA,6CAAkC,mEA6CvDA,wBACEA,yBACEA,sCACFA,QACFA,mCAEAA,wBACEA,mBACFA,8BADOA,kIA4BPA,wBACEA,yBACEA,wCACFA,QACFA,kDAEAA,wBAEEA,+BACEA,wBACEA,wBAAiDA,iDAAS2H,4BAA2B3H,QACvFA,QACFA,QAEAA,4BACEA,sBACFA,QAEFA,gCAHYA,+GA0IZA,wBACEA,yBACEA,sCACFA,QACFA,kDAGAA,wBACEA,uBAAsDA,2DAAS4H,EAAT1H,MAAS0H,QAAU,KAAgC5H,QACzGA,yBAAWA,2DAAS6H,EAAT3H,MAAS2H,QAAU,KAAgC7H,SAAwBA,QACtFA,wBAAkCA,+DAAS8H,2BAA0B9H,QACvEA,8CAJmFA,uDAEnBA,6DAyGhEA,wBACEA,yBACEA,kDACFA,QACFA,kDAoBIA,wBAEEA,+BACEA,wBACEA,wBAAiDA,uEAAS+H,2BAA0B/H,QACtFA,QACFA,QAEAA,4BACEA,mBACFA,QAEFA,oDAZUA,iDASDA,+GAVXA,yDAmDFA,wBACEA,yBACEA,kDACFA,QACFA,kDAqBIA,wBAEEA,+BACEA,wBACEA,wBAAiDA,uEAASgI,8BAA6BhI,QACzFA,QACFA,QAEAA,4BACEA,mBACFA,QAGFA,oDAbUA,mDASDA,+GAVXA,yDAyGFA,wBACEA,yBACEA,sCACFA,QACFA,kDA+BgBA,wBAAyHA,gEAASiI,EAAT/H,MAAS+H,8BAA6BjI,kDAG/JA,wBAAmJA,gEAASkI,EAAThI,MAASgI,wBAAwB,KAAIlI,kDAdpMA,wBAEEA,+BAEEA,wBACEA,oBACEA,mBACEA,mBAGAA,uBACEA,+BACFA,QACAA,uBACEA,+BACFA,QACAA,wBACEA,yBAAmDA,uEAASmI,2BAA0BnI,QACxFA,QACFA,QACFA,QAEFA,QAEFA,QAEAA,6BACEA,yBAEAA,oBAA8EA,2EAASoI,EAATlI,MAASkI,4BAAvFpI,QAGAA,8BAAWA,6EAO0DA,QAGrEA,8BAAWA,sFAO0DA,QAGrEA,yBACEA,yBACEA,qBACFA,QACFA,QAEAA,4BAAcA,+EAA+B,+EAAuDqI,gCAClGrI,mBACEA,sBACEA,sBAAkBA,sBAAMA,QACxBA,sBAAkBA,yBAASA,QAC3BA,sBAAkBA,mBAAMA,QAC1BA,QAEAA,oBACEA,sBACAA,sBACAA,sBACAA,sBACFA,QAEAA,oBACEA,sBACEA,sBACAA,sBACAA,sBACAA,sBACJA,QACAA,QAEAA,oBACEA,sBACAA,sBACFA,QAEAA,oBACEA,sBACAA,sBACAA,sBACAA,sBACFA,QAEAA,oBACEA,sBACFA,QACFA,QACFA,QAEAA,mBACEA,yBAA8BA,UAAmFA,QAAYA,eAC7HA,yBAA8BA,UAAmDA,QACnFA,QAEFA,QAEFA,oDA3GUA,gDAWyFA,yCAGGA,kEAe7FA,8HAGMA,iCAUAA,0CAgBGA,mCASgBA,mCACEA,qCACGA,qCACHA,kCA+BAA,2GACAA,+FAvGtCA,2DAgKFA,wBACEA,yBACEA,+CACFA,QACFA,kDAqBIA,wBAEEA,+BACEA,wBACEA,wBAAiDA,uEAASsI,4BAA2BtI,QACvFA,QACFA,QAEAA,4BACEA,sBACFA,QAEFA,oDAZUA,8CASEA,sFAXdA,2EAwIJA,uBACEA,wBAAYA,iDAASuI,SACnBvI,4BACAA,sBACFA,QACFA,SC1mCNwI,SAAe,CAACC,KAAUC,KAAUC,KAAYC,KAAYC,KAAWC,KAAMC,KAAYC,KAAYC,KAAiBC,KAAYC,KAAaC,KAAgBC,OAG/J,MAAMC,EAAQC,EAAMC,OAAO,YCpCrBC,GAAiB,CACrB,CACEnG,KAAM,GACNM,UDwCJ,MAAM,QAyCJxD,YAAqBY,EACA0I,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACApJ,GACAqJ,GACAC,GACAC,IAdA7J,wBACAA,oBACAA,0BACAA,uBACAA,yBACAA,oBACAA,sBACAA,yBACAA,uBACAA,kBACAA,uBACAA,uBACAA,0BACAA,+BACAA,cAhDrBA,WAAkB,IAAI8J,IACtB9J,kBAAiC,GACjCA,eAA2B,GAC3BA,iBAA+B,GAC/BA,YAAqB,GACrBA,cAAyB,GAEzBA,gBAA6B,GAC7BA,iBAA0B,IAAI+J,IAG9B/J,yCAAsC,EACtCA,qCAAkC,EAClCA,oCAAiC,IACjCA,yBAAsB,sBAGtBA,0CAAuC,EACvCA,sCAAmC,EACnCA,qCAAkC,IAClCA,0BAAuB,iBAGvBA,2CAAwC,EACxCA,uCAAoC,EACpCA,sCAAmC,IACnCA,2BAAwB,mBAGxBA,gCAA6B,EAC7BA,4BAAyB,EACzBA,2BAAwB,IACxBA,gBAAa,aAmBX6I,EAAMmB,KAAU,IAChBnB,EAAMoB,OAAY,IAClBpB,EAAMqB,UAAe,IACrBrB,EAAMsB,OAAY,KAGpBtK,YAGAuK,mBAEEpK,KAAKO,iBAAiB8J,iBAGtBrK,KAAKsK,qBAELtK,KAAKuK,MAAQ,IAAIT,IACjB9J,KAAKuK,MAAMC,mBAAqB,mCAGhCxK,KAAKmJ,gBAAgB3D,UAAUpE,UAC7BM,IAEE1B,KAAKyK,UAAY/I,EACjB1B,KAAKO,iBAAiBmK,UAAU1K,KAAKyK,YAGvC7I,IACE5B,KAAKO,iBAAiBoK,iBACtB9I,QAAQC,IAAIF,KAKhB5B,KAAKoJ,kBAAkB5D,UAAUpE,UAC/BM,IAEE1B,KAAK4K,YAAclJ,EACnB1B,KAAKO,iBAAiBmK,UAAU1K,KAAK4K,cAGvChJ,IACE5B,KAAKO,iBAAiBoK,iBACtB9I,QAAQC,IAAIF,KAKhB5B,KAAKqJ,aAAa7D,UAAUpE,UAC1BM,IAEE1B,KAAK6K,OAASnJ,EACd1B,KAAKO,iBAAiBmK,UAAU1K,KAAK6K,SAGvCjJ,IACE5B,KAAKO,iBAAiBoK,iBACtB9I,QAAQC,IAAIF,KAMhB5B,KAAKsJ,eAAe9D,UAAUpE,UAC5BM,IAEE1B,KAAK8K,SAAWpJ,EAChB1B,KAAKO,iBAAiBmK,UAAU1K,KAAK8K,WAGvClJ,IACE5B,KAAKO,iBAAiBoK,iBACtB9I,QAAQC,IAAIF,KAKhB5B,KAAKuJ,iBAAiB/D,UAAUpE,UAC9BM,IAEE1B,KAAK+K,WAAarJ,EAClB1B,KAAKO,iBAAiBmK,UAAU1K,KAAK+K,YACrC/K,KAAKO,iBAAiBoK,kBAExB/I,IACE5B,KAAKO,iBAAiBoK,iBACtB9I,QAAQC,IAAIF,KAKd,MAAMoJ,EAAUhL,KAAK6J,MAAMoB,SAASC,OAAOF,QAExCA,GAEDhL,KAAKiJ,aAAanJ,KAAKkL,GAAS5J,UAC9BM,IACE1B,KAAKuK,MAAQ7I,EAKX1B,KAAKuK,MAAMY,UADbnL,KAASuK,MAAMa,MAAQpL,KAAKuK,MAAMa,KAAKpH,OAAS,EACvBhE,KAAKuK,MAAMa,KAAKC,KAAK,MAErB,GAGzBrL,KAAKsL,gCAEDtL,KAAKuK,MAAMC,qBACbxK,KAAKuK,MAAMC,mBAAqBe,0BAG9BvL,KAAKuK,MAAMiB,uBACbxL,KAAKuK,MAAMiB,qBAAuBD,4BAIpCvL,KAAKuK,MAAMkB,YAAYC,KAAK,SAAUC,EAAGC,GACvC,OAAID,EAAEE,cAAgBD,EAAEC,cACf,EAELF,EAAEE,cAAgBD,EAAEC,eACf,EAGF,IAET7L,KAAKO,iBAAiBoK,kBAExB/I,IACEC,QAAQC,IAAIF,KAQtB0J,gCAEMtL,KAAKuK,MAAMuB,kBAAoB9L,KAAKuK,MAAMuB,iBAAiB9H,OAAS,GAEpEhE,KAAKuK,MAAMuB,iBAAiBC,QAAQC,IAEhC,MAAMC,EAAkB5J,SAASC,eAAe,WAAW0J,EAAgBE,QAAQjI,MAE/EgI,GAAmBD,EAAgBG,aACnCF,EAAgBG,SAAU,EAC1BpM,KAAKqM,gBAAgB,CAAEC,OAAQ,CAAEF,SAAS,IAAUJ,EAAgBE,UAIxEF,EAAgBO,sBAAsBR,QAAQS,IAC1C,MAAMC,EAAgBpK,SAASC,eAAe,SAAS0J,EAAgBE,QAAQjI,MAAMuI,EAAGE,MAAMzI,MAE1FwI,GAAiBD,EAAGL,aACpBM,EAAcL,SAAU,EACxBpM,KAAK2M,cAAc,CAAEL,OAAQ,CAAEF,SAAS,IAAUI,EAAGE,MAAOV,EAAgBE,cAQ9F5B,qBAEEtK,KAAK4J,uBAAuBgD,iBAAiBC,OAAOjM,SAASkM,MAAM1L,UAAU,CAC3EK,KAAMC,IACJ1B,KAAK+M,cAAgBrL,GAEvBE,MAAOA,IACL5B,KAAK+M,eAAgB,KAIzB/M,KAAK4J,uBAAuBoD,UAAUH,OAAOjM,SAASkM,MAAM1L,UAAU,CACpEK,KAAMC,IACJ1B,KAAKgN,UAAYtL,GAEnBE,MAAOA,IACL5B,KAAKgN,WAAY,KAOvBC,QAAQC,EAAWC,GACjB,OAAOD,GAAQC,EAAOD,EAAKjJ,IAAMkJ,EAAKlJ,GAAKiJ,GAAQC,EAIrDC,yBAEEpN,KAAKO,iBAAiB8J,iBAEtBrK,KAAKkJ,mBAAmBmE,eAAkC,QAAnBC,OAAK/C,MAAMgD,gBAAQC,eAAEvJ,IAAI7C,UAC9DM,IAEE1B,KAAKyN,aAAe/L,EACpB1B,KAAKO,iBAAiBmK,UAAU1K,KAAKyN,cAGP,IAA3BzN,KAAKyN,aAAazJ,SACnBhE,KAAKuK,MAAMmD,YAAc,MAG3B1N,KAAKO,iBAAiBoK,kBAGxB/I,IAEEC,QAAQC,IAAIF,GACZ5B,KAAKO,iBAAiBoK,mBAQtBgD,qDAEJ,MAAM3C,EAAUhL,KAAK6J,MAAMoB,SAASC,OAAOF,QAGzChL,KAAKO,iBAAiBqN,SADrB5C,EAC8B,+BAAiCA,EAEjC,iCAOnC6C,gBAAgBC,EAA0BC,GAKxC,GAHAD,EAAeE,UAAYF,EAAeE,SAGvCF,EAAeE,UAEhB,QAAQjK,EAAE,EAAGA,EAAE/D,KAAKuK,MAAM0D,gBAAgBjK,OAAQD,IAChD,GAAG/D,KAAKuK,MAAM0D,gBAAgBlK,GAAGmK,cAAcH,EAAU9J,GAEvD,YADAjE,KAAKuK,MAAM0D,gBAAgBE,OAAOpK,EAAE,OAKrC,CAEH,IAAIqK,EAAiB,IAAIC,EACzBD,EAAeF,YAAcH,EAAU9J,GACvCmK,EAAeE,cAAgBP,EAAUQ,KACzCH,EAAeI,KAAO,EAElBxO,KAAKuK,MAAM0D,kBACbjO,KAAKuK,MAAM0D,gBAAkB,IAG/B,IAAIQ,GAAQ,EACZ,IAAQ1K,EAAE,EAAGA,EAAE/D,KAAKuK,MAAM0D,gBAAgBjK,OAAQD,IAC7C/D,KAAKuK,MAAM0D,gBAAgBlK,GAAGmK,cAAcH,EAAU9J,KACvDwK,GAAQ,GAIRA,GACFzO,KAAKuK,MAAM0D,gBAAgBS,KAAKN,IAQtCO,oBAAoBZ,GAElB,UAAQhK,EAAE,EAAGA,GAA4B,QAA1BA,OAAKwG,MAAM0D,uBAAeT,eAAExJ,QAAQD,IACjD,GAAG/D,KAAKuK,MAAM0D,gBAAgBlK,GAAGmK,cAAgBH,EAAU9J,GACzD,OAAO,EAIX,OAAO,EAIT2K,iBAAkBJ,EAAcT,GAE9B,UAAQhK,EAAE,EAAGA,GAA4B,QAA1B8K,OAAKtE,MAAM0D,uBAAeT,eAAExJ,QAAQD,IAEjD,GAAG/D,KAAKuK,MAAM0D,gBAAgBlK,GAAGmK,cAAgBH,EAAU9J,GAEzD,YADAjE,KAAKuK,MAAM0D,gBAAgBlK,GAAGyK,KAAOA,GAQ3CM,iBAAkBf,GAEhB,UAAQhK,EAAE,EAAGA,GAA4B,QAA1BA,OAAKwG,MAAM0D,uBAAeT,eAAExJ,QAAQD,IACjD,GAAG/D,KAAKuK,MAAM0D,gBAAgBlK,GAAGmK,cAAgBH,EAAU9J,GACzD,OAAOjE,KAAKuK,MAAM0D,gBAAgBlK,GAAGyK,KAIzC,OAAO,EAKTO,iBAAkBR,EAAcR,GAE9B,UAAQhK,EAAE,EAAGA,GAA4B,QAA1B8K,OAAKtE,MAAM0D,uBAAeT,eAAExJ,QAAQD,IAEjD,GAAG/D,KAAKuK,MAAM0D,gBAAgBlK,GAAGmK,cAAgBH,EAAU9J,GAEzD,YADAjE,KAAKuK,MAAM0D,gBAAgBlK,GAAGuK,cAAgBC,GAQpDS,iBAAkBjB,GAEhB,UAAQhK,EAAE,EAAGA,GAA4B,QAA1BA,OAAKwG,MAAM0D,uBAAeT,eAAExJ,QAAQD,IACjD,GAAG/D,KAAKuK,MAAM0D,gBAAgBlK,GAAGmK,cAAgBH,EAAU9J,GACzD,OAAOjE,KAAKuK,MAAM0D,gBAAgBlK,GAAGuK,cAIzC,OAAOP,EAAUQ,KAOnBU,aAAaC,GAEX,IAAIC,EAAOnP,KAEXkP,EAAWE,SAAW,WAIpBD,EAAK3F,eAAe6F,OAFPH,EAAWI,MAAM,GAGFC,UACAJ,EAAK5E,MAAMtG,GACXuL,WACAlL,YAAsBlD,UAChDM,IAEEyN,EAAK5E,MAAMkF,gBAAkB/N,EAAKgO,KAClCR,EAAWS,MAAQ,IAErB/N,IACEC,QAAQC,IAAIF,MAMlBsN,EAAWU,QAMbC,sBAAsBX,GAEpB,IAAIC,EAAOnP,KAEXkP,EAAWE,SAAW,WAIpBD,EAAK3F,eAAe6F,OAFPH,EAAWI,MAAM,GAGFC,UACAJ,EAAK5E,MAAMtG,GACXuL,wBACAlL,SAAmBlD,UAC7CM,IAEMyN,EAAK5E,MAAMuF,qBACbX,EAAK5E,MAAMuF,mBAAqB,IAElCX,EAAK5E,MAAMuF,mBAAmBpB,KAAKhN,EAAKgO,MACxCR,EAAWS,MAAQ,IAGrB/N,IACEC,QAAQC,IAAIF,MAMlBsN,EAAWU,QAMbG,mBAAmBb,GAEjB,IAAIC,EAAOnP,KAEXkP,EAAWE,SAAW,WAGpBD,EAAK3F,eAAe6F,OADPH,EAAWI,MAAM,GAEFC,UACAJ,EAAK5E,MAAMtG,GACXuL,kBACAlL,YAAsBlD,UAChDM,IAEMyN,EAAK5E,MAAMyF,eACbb,EAAK5E,MAAMyF,aAAe,IAG5B,IAAIC,EAAmBvO,EAAKgO,KAC5BO,EAAK1F,MAAQ,IAAIT,IACjBmG,EAAK1F,MAAMtG,GAAKkL,EAAK5E,MAAMtG,GAE3BgM,EAAKC,QAAU,mCACff,EAAK5E,MAAMyF,aAAatB,KAAKuB,GAC7Bf,EAAWS,MAAQ,IAErB/N,IACEC,QAAQC,IAAIF,MAMlBsN,EAAWU,QAKbO,qBAAqBjB,GAEnB,IAAIC,EAAOnP,KAEXkP,EAAWE,SAAW,WAIpBD,EAAK3F,eAAe6F,OAFPH,EAAWI,MAAM,GAGFC,UACAJ,EAAK5E,MAAMtG,GACXuL,oBACAlL,YAAsBlD,UAChDM,IAEMyN,EAAK5E,MAAM6F,iBACbjB,EAAK5E,MAAM6F,eAAiB,IAG9BjB,EAAK5E,MAAM6F,eAAe1B,KAAKhN,EAAKgO,MACpCR,EAAWS,MAAQ,IAErB/N,IACEC,QAAQC,IAAIF,MAMlBsN,EAAWU,QAMbS,qBAAqBnB,EAA8BoB,GAEjD,IAAInB,EAAOnP,KAEXkP,EAAWE,SAAW,WAIpBD,EAAK3F,eAAe6F,OAFTH,EAAWI,MAAM,GAGAC,UACAJ,EAAK5E,MAAMtG,GACXuL,wBACAlL,YAAsBlD,UAChDM,IAEEyN,EAAK5E,MAAMkB,YAAY6E,GAAiBL,KAAOvO,EAAKgO,KACpDR,EAAWS,MAAQ,IAErB/N,IACEC,QAAQC,IAAIF,MAKlBsN,EAAWU,QAMbW,iBAAiBC,EAAkBC,GAEjC,OAAID,GAAaC,EAIVzQ,KAAKwJ,eAAe+G,iBAAiBC,EAAUC,GAH7CpL,2BAAoC,kBAO/CqL,uBAEE1Q,KAAKO,iBAAiBoQ,yBAA0B,WACA,wCACA,KACD,WACC,kBACA,IAAK/M,KAAKgN,IAExD,GAAGA,EAED,IAAGA,EAAIC,WAAW/P,QAAQ,iCAAiC,EAEzD,YADAd,KAAKO,iBAAiBuQ,UAAU,iBAAY,6HAA8G,CAAC,OAExJ,CAEH,IAAIC,EAAoB,IAAIC,IAC5BD,EAAME,aAAe,IAAI9M,KACzB4M,EAAMlO,KAAO+N,EACbG,EAAMG,KAAO5M,UACbyM,EAAMI,UAAY,8BAClBnR,KAAKuK,MAAMwG,MAAQA,MAW3BK,mBAEEpR,KAAKO,iBAAiBoQ,yBAA0B,WACA,wCACA,KACD,WACC,kBACA,IAAK/M,KAAKgN,IAExD,GAAGA,EAED,IAAGA,EAAIC,WAAW/P,QAAQ,iCAAiC,EAEzD,YADAd,KAAKO,iBAAiBuQ,UAAU,iBAAY,6HAA8G,CAAC,OAExJ,CAEH,IAAIC,EAAoB,IAAIC,IAC5BD,EAAME,aAAe,IAAI9M,KACzB4M,EAAMlO,KAAO+N,EACbG,EAAMG,KAAO5M,UACbyM,EAAMI,UAAY,uBAEdnR,KAAKuK,MAAM8G,gBACbrR,KAAKuK,MAAM8G,cAAgB,IAG7BrR,KAAKuK,MAAM8G,cAAc3C,KAAKqC,OAUtCO,WAAWV,GACT,OAAO5Q,KAAKyJ,UAAU8H,+BAA+BX,GAIvDY,UAAUtP,EAAOuP,EAAeC,GAG3BD,IAAUzR,KAAK2R,qBAGbzP,EAAM0P,OAAOC,KAAKC,UAAU9N,OAAOhE,KAAK+R,iCAGzC7P,EAAM0P,OAAOC,KAAKC,UAAY5P,EAAM0P,OAAOC,KAAKC,UAAUE,OAAO,EAAEhS,KAAK+R,+BAA+B,GAAK,OAG5G/R,KAAKuK,MAAM0H,mBAAqB/P,EAAM0P,OAAOC,KAAKC,WAMlD9R,KAAKkS,gCAD0B,gBAA9BhQ,EAAM0P,OAAOC,KAAKC,UACoB,EAEA5P,EAAM0P,OAAOC,KAAKC,UAAU9N,OAGrEhE,KAAKmS,oCAAsCjQ,EAAM0P,OAAOQ,YAAY,GAKhErO,IAAa/D,KAAKqS,sBAEnBnQ,EAAM0P,OAAOC,KAAKC,UAAU9N,OAAOhE,KAAKsS,kCAEzCpQ,EAAM0P,OAAOC,KAAKC,UAAY5P,EAAM0P,OAAOC,KAAKC,UAAUE,OAAO,EAAEhS,KAAKsS,gCAAgC,GAAK,OAG7GtS,KAAKuK,MAAMgI,mBAAqBrQ,EAAM0P,OAAOC,KAAKC,WAKnB,gBAAjCxE,EAASsE,OAAOC,KAAKC,WACnB5P,EAAM0P,OAAOC,KAAKC,UAAY,GAC9B9R,KAAKwS,iCAAmC,GAExCxS,KAAKwS,iCAAmCtQ,EAAM0P,OAAOC,KAAKC,UAAU9N,OAGtEhE,KAAKyS,qCAAuCvQ,EAAM0P,OAAOQ,YAAY,GAM9DX,IAAUzR,KAAK0S,uBAEnBxQ,EAAM0P,OAAOC,KAAKC,UAAU9N,OAAOhE,KAAK2S,mCAEzCzQ,EAAM0P,OAAOC,KAAKC,UAAY5P,EAAM0P,OAAOC,KAAKC,UAAUE,OAAO,EAAEhS,KAAK2S,iCAAiC,GAAK,OAE9G3S,KAAKuK,MAAMiB,qBAAuBtJ,EAAM0P,OAAOC,KAAKC,WAKpD9R,KAAK4S,kCAD0B,gBAA9B1Q,EAAM0P,OAAOC,KAAKC,UACsB,EAEA5P,EAAM0P,OAAOC,KAAKC,UAAU9N,OAGvEhE,KAAK6S,sCAAwC3Q,EAAM0P,OAAOQ,YAAY,GAK/DX,IAAUzR,KAAK8S,aAEnB5Q,EAAM0P,OAAOC,KAAKC,UAAU9N,OAAOhE,KAAK+S,wBAEzC7Q,EAAM0P,OAAOC,KAAKC,UAAY5P,EAAM0P,OAAOC,KAAKC,UAAUE,OAAO,EAAEhS,KAAK+S,sBAAsB,GAAK,OAGnG/S,KAAKuK,MAAMkB,YAAYiG,GAAOsB,OAAS9Q,EAAM0P,OAAOC,KAAKC,WAK1B,gBAAjCxE,EAASsE,OAAOC,KAAKC,WACnB5P,EAAM0P,OAAOC,KAAKC,UAAY,GAC9B9R,KAAKiT,uBAAyB,GAE9BjT,KAAKiT,uBAAyB/Q,EAAM0P,OAAOC,KAAKC,UAAU9N,OAG5DhE,KAAKkT,2BAA6BhR,EAAM0P,OAAOQ,YAAY,GASzDe,sBAAsBzB,iDAE1B,IAAI0B,EAAmBpT,KAAKuK,MAAMuF,mBAAmB4B,WAE9B1R,KAAKO,iBAAiB8S,iBAAkB,YACA,+CAA8CD,EAAgB7E,KAAO,IACrE,YACA,eAO/DvO,KAAKO,iBAAiB8J,iBAGtBrK,KAAKwJ,eAAe9D,OAAO0N,EAAgBnP,IAAI7C,UAC7CM,IACE1B,KAAKuK,MAAMuF,mBAAmB3B,OAAOuD,EAAM,GAC3C1R,KAAKO,iBAAiBoK,kBAExB/I,IACEC,QAAQC,IAAIF,GACZ5B,KAAKO,iBAAiBoK,sBAK5B2I,sBAAsB5B,GAEpB1R,KAAKO,iBAAiB8J,iBAGtBrK,KAAKwJ,eAAe9D,OADR1F,KAAKuK,MAAMyF,aAAa0B,GACJzN,IAAI7C,UAClCM,IACE1B,KAAKuK,MAAMyF,aAAa7B,OAAOuD,EAAM,GACrC1R,KAAKO,iBAAiBoK,kBAExB/I,IACEC,QAAQC,IAAIF,GACZ5B,KAAKO,iBAAiBoK,mBAM5B4I,uBAAuB7B,GAErB1R,KAAKuK,MAAM8G,cAAclD,OAAOuD,EAAM,GAKxC8B,0BAEExT,KAAKuK,MAAMwG,MAAQ,KAMrB0C,yBAAyB/B,GAEvB1R,KAAKO,iBAAiB8J,iBAGtBrK,KAAKwJ,eAAe9D,OADR1F,KAAKuK,MAAM6F,eAAesB,GACNzN,IAAI7C,UAClCM,IACE1B,KAAKuK,MAAM6F,eAAejC,OAAOuD,EAAM,GACvC1R,KAAKO,iBAAiBoK,kBAExB/I,IACEC,QAAQC,IAAIF,GACZ5B,KAAKO,iBAAiBoK,mBAM5B+I,sBAAsBhC,GAEpB1R,KAAKO,iBAAiB8J,iBAEtB,IAAIsJ,EAAc3T,KAAKuK,MAAMkB,YAAYiG,GAEtCiC,EAAW1P,GAEZjE,KAAK2J,kBAAkBjE,OAAOiO,EAAW1P,IAAI7C,UAC3CM,IACE1B,KAAKuK,MAAMkB,YAAY0C,OAAOuD,EAAM,GACpC1R,KAAKO,iBAAiBoK,kBAExB/I,IACEC,QAAQC,IAAIF,GACZ5B,KAAKO,iBAAiBoK,oBAK1B3K,KAAKuK,MAAMkB,YAAY0C,OAAOuD,EAAM,GACpC1R,KAAKO,iBAAiBoK,kBAM1BiJ,KAAKC,EAAqBC,GAAqB,GAE7C,MAAMC,EAAY/T,KAAKuQ,iBAAiBsD,EAAQhR,KAAMgR,EAAQtF,MAE9DvO,KAAKO,iBAAiBqC,SAASmR,EAAUD,GAI3CE,aAAaC,EAAmCC,GAE3CD,EAAuB7H,UACxB8H,EAAuB9H,SAAU,EACjCpM,KAAKmU,eAAexE,MAAQ,gBAG3BuE,EAAuB9H,UACxB6H,EAAuB7H,SAAU,EACjCpM,KAAKmU,eAAexE,MAAQ,kBAMhCyE,gBAEMpU,KAAKuK,MAAMkB,cACbzL,KAAKuK,MAAMkB,YAAc,IAG3B,IAAIkI,EAAa,IAAIU,EACrBV,EAAW1D,KAAO,IAAIe,IACtB2C,EAAW9H,cAAgB7L,KAAKuK,MAAMkB,YAAYzH,OAAS,EAE3DhE,KAAKuK,MAAMkB,YAAYiD,KAAKiF,GAI9BW,sBAAsB5C,EAAc6C,GAIlC,IAAIC,EAAMxU,KAAKuK,MAAMkB,YAAYiG,GACjC8C,EAAI3I,eAAmB0I,EAEvB,IAAIE,EAAUzU,KAAKuK,MAAMkB,YAAYiG,EAAS6C,GAC9CE,EAAQ5I,eAAkB0I,EAC1BvU,KAAKuK,MAAMkB,YAAYiG,GAAS+C,EAEhCzU,KAAKuK,MAAMkB,YAAYiG,EAAS6C,GAASC,EAM3CE,mBAEE,OAAGC,OAAOC,MAAM,IACP,EAEA,EAKXC,qCAEE,OAAO7U,KAAKuK,MAAMuB,iBAAiBgJ,MAAMC,cAEvC,OAAIA,EAAE5I,YAAwD,OAA1CnM,KAAKuK,MAAMyK,WAAWzG,KAAK0G,gBAEf,QAAvBlR,IAAEwI,6BAAqBiB,eAAExJ,QAAO,GAAwD,QAAlDkR,EAAuB,QAAvBrG,IAAEtC,6BAAqB4I,eAAEC,KAAK5I,GAAMA,EAAGL,mBAAWkJ,WAQrGC,OAEMtV,KAAK6U,sCAIT7U,KAAKO,iBAAiB8J,iBAGtBrK,KAAKuV,cAEDvV,KAAKuK,MAAMtG,IA4BbjE,KAAKuK,MAAMiL,aAAexV,KAAKM,eAAeK,mBAC9CX,KAAKuK,MAAMkL,iBAAmB,IAAItR,KAElCnE,KAAKiJ,aAAa5E,OAAOrE,KAAKuK,OAAOnJ,UACnCM,IAEE1B,KAAKuK,MAAQ7I,EAAKgO,KAClB1P,KAAKO,iBAAiBoK,iBACtB3K,KAAKO,iBAAiBuQ,UAAW,WACA,4BACA,CAAC,QAEpClP,IACE5B,KAAKO,iBAAiBoK,iBACtB9I,QAAQC,IAAIF,OAvChB5B,KAAKuK,MAAMmL,QAAU1V,KAAKM,eAAeK,mBACzCX,KAAKuK,MAAMoL,YAAc,IAAIxR,KAE7BnE,KAAKuK,MAAMiL,aAAexV,KAAKM,eAAeK,mBAC9CX,KAAKuK,MAAMkL,iBAAmB,IAAItR,KAGlCnE,KAAKiJ,aAAa/D,OAAOlF,KAAKuK,OAAOnJ,UACnCM,IAEE1B,KAAKuK,MAAQ7I,EAAKgO,KAClB1P,KAAKO,iBAAiBoK,iBACtB3K,KAAKO,iBAAiBuQ,UAAW,WAC7B,4BACA,CAAC,QAGPlP,IACE5B,KAAKO,iBAAiBoK,iBACtB9I,QAAQC,IAAIF,OA9BhB5B,KAAKO,iBAAiBuQ,UAAU,iBAAY,2FAAyF,CAAC,OA6D1IzE,gBAAgBnK,EAAYgK,GAC1B,GAAIhK,EAAMoK,OAAOF,QAAS,CAEnBpM,KAAKuK,MAAMuB,mBACd9L,KAAKuK,MAAMuB,iBAAmB,IAGhC,MAAM4F,EAAQ1R,KAAKuK,MAAMuB,iBAAiB8J,UAAUb,GAAKA,EAAE7I,QAAQjI,KAAOiI,EAAQjI,IAElF,IAAa,GAATyN,EAAa,CACf,IAAI1F,EAAkB,IAAI6J,EAC1B7J,EAAgBE,QAAUA,EAC1BF,EAAgBG,YAAa,EAC7BnM,KAAKuK,MAAMuB,iBAAiB4C,KAAK1C,QAEjChM,KAAKuK,MAAMuB,iBAAiB4F,GAAOvF,YAAa,MAG7C,CACL,MAAMuF,EAAQ1R,KAAKuK,MAAMuB,iBAAiB8J,UAAUb,GAAMA,EAAE7I,QAAQjI,KAAOiI,EAAQjI,KACrE,IAAVyN,IACF1R,KAAKuK,MAAMuB,iBAAiB4F,GAAOvF,YAAa,IAKtDQ,cAAczK,EAAYwK,EAAiBR,SACzC,IAAIF,EAAkBhM,KAAKuK,MAAMuB,iBAAiBhM,KAAKiV,GAAKA,EAAE7I,QAAQjI,KAAOiI,EAAQjI,IAErF,GAAI+H,EAEF,GAAI9J,EAAMoK,OAAOF,QAAS,CAEpBJ,EAAgBO,wBAClBP,EAAgBO,sBAAwB,IAG1C,MAAMmF,EAA6C,QAArCwD,IAAgB3I,6BAAqBiB,eAAEoI,UAAUpJ,GAAMA,EAAGE,MAAMzI,KAAOyI,EAAMzI,IAE3F,IAAU,GAAPyN,EAAU,CACX,IAAIoE,EAAM,IAAIC,EACdD,EAAIpJ,MAAQA,EACZoJ,EAAI3J,YAAa,EACjBH,EAAgBO,sBAAsBmC,KAAKoH,QAE3C9J,EAAgBO,sBAAsBmF,GAAOvF,YAAa,MAGvD,CACL,MAAMuF,EAAQ1F,EAAgBO,sBAAsBqJ,UAAUpJ,GAAOA,EAAGE,MAAMzI,KAAOyI,EAAMzI,IAAMuI,EAAGL,aAEtF,IAAVuF,IACF1F,EAAgBO,sBAAsBmF,GAAOvF,YAAa,IAMlE6J,kBAAkB9J,SAChB,OAAkC,QAA3BnI,OAAKwG,MAAMuB,wBAAgB0B,eAAE4H,KAAKa,GAAOA,EAAG/J,QAAQjI,KAAOiI,EAAQjI,IAAMgS,EAAG9J,YAGrF+J,gBAAgBxJ,EAAiBR,SAC/B,MAAMF,EAAkBhM,KAAKuK,MAAMuB,iBAAiBhM,KAAKmW,GAAOA,EAAG/J,QAAQjI,KAAOiI,EAAQjI,IAAOgS,EAAG9J,YACpG,QAAOH,IAAuD,QAArC6C,IAAgBtC,6BAAqBiB,eAAE4H,KAAK5I,GAAOA,EAAGE,MAAMzI,KAAOyI,EAAMzI,IAAMuI,EAAGL,aAI7GgK,mBAAmBjK,SACjB,OAAkC,QAA3BnI,OAAKwG,MAAMuB,wBAAgB0B,eAAE1N,KAAKiV,GAAKA,EAAE7I,QAAQjI,KAAOiI,EAAQjI,IAAM8Q,EAAE5I,YAGjFiK,WAAWlK,SACT,OAAuC,QAAhCnI,OAAKoS,mBAAmBjK,UAAQsB,eAAE6I,UAAW,GAGtDC,WAAWpU,EAAYgK,GACnB,MAAMqK,EAAevW,KAAKmW,mBAAmBjK,GACzCqK,IACAA,EAAaF,QAAUnU,EAAMsU,OAAO7G,OAI5C8G,oBAAoBvK,SAChB,OAAuC,QAAhCnI,OAAKoS,mBAAmBjK,UAAQsB,eAAEkJ,oBAAoB,EAGjEC,oBAAoBzU,EAAYgK,GAC5B,MAAMqK,EAAevW,KAAKmW,mBAAmBjK,GACzCqK,IACAA,EAAaG,iBAAmBxU,EAAMsU,OAAOpK,SAMrDwK,gBAAgB1K,SACZ,OAAuC,QAAhCnI,OAAKoS,mBAAmBjK,UAAQsB,eAAEqJ,eAAgB,GAG7DC,gBAAgB5U,EAAYgK,GACxB,MAAMqK,EAAevW,KAAKmW,mBAAmBjK,GACzCqK,IACAA,EAAaM,aAAe3U,EAAMsU,OAAO7G,OAIjDoH,yBAAyB7K,SACrB,OAAuC,QAAhCnI,OAAKoS,mBAAmBjK,UAAQsB,eAAEwJ,yBAAyB,EAGtEC,yBAAyB/U,EAAYgK,GACjC,MAAMqK,EAAevW,KAAKmW,mBAAmBjK,GACzCqK,IACAA,EAAaS,sBAAwB9U,EAAMsU,OAAOpK,SAI1D8K,gBAAgBhL,SACZ,OAAuC,QAAhCnI,OAAKoS,mBAAmBjK,UAAQsB,eAAE2J,eAAgB,GAG7DC,gBAAgBlV,EAAYgK,GACxB,MAAMqK,EAAevW,KAAKmW,mBAAmBjK,GACzCqK,IACAA,EAAaY,aAAejV,EAAMsU,OAAO7G,OAIjD0H,yBAAyBnL,SACrB,OAAuC,QAAhCnI,OAAKoS,mBAAmBjK,UAAQsB,eAAE8J,yBAAyB,EAGtEC,yBAAyBrV,EAAYgK,GACjC,MAAMqK,EAAevW,KAAKmW,mBAAmBjK,GACzCqK,IACAA,EAAae,sBAAwBpV,EAAMsU,OAAOpK,SAM1DmJ,cACE,GAAIvV,KAAKuK,MAAMY,UAAW,CAExB,MAAMqM,EAAYxX,KAAKuK,MAAMY,UAAUsM,MAAM,KAC1CC,IAAIC,GAAOA,EAAIC,QACfC,OAAO,CAACF,EAAKjG,EAAOoG,IAASH,GAAOA,EAAI3T,QAAU,IAAM8T,EAAKhX,QAAQ6W,KAASjG,GACjF1R,KAAKuK,MAAMa,KAAOoM,OAElBxX,KAAKuK,MAAMa,KAAO,iDAnoCX2M,GAAoBxY,8LAApBwY,EAAoB7X,uuPDhDjCX,yBAEAA,yBAIEA,qBAEEA,4BAAgBA,gCAASyY,WACvBzY,sBACFA,QAEAA,4BAAgBA,gCAASyY,WACvBzY,sBACFA,QAEFA,QAGAA,sBACEA,qBAAWA,6BAAiBA,QAC9BA,QAGAA,oCAGEA,4BAGEA,wBACEA,sBAAWA,6BAAaA,QAC1BA,QAEAA,mBAGEA,wBACEA,sBAAWA,iBAAIA,QACjBA,QAEAA,wBACEA,4BAAWA,0DAMgBA,QAC7BA,QAGAA,wBACEA,sBAAWA,2BAAQA,QACrBA,QACAA,wBACEA,6BAIYA,8DAA4B,8BACfyY,uBAIvBzY,uCACFA,QACFA,QAGAA,wBACEA,sBAAWA,8BAAWA,QACxBA,QACAA,wBACEA,6BAAYA,iEASZA,uCACAA,QACFA,QAGAA,wBACEA,sBAAWA,uBAAUA,QACvBA,QACAA,wBACEA,6BAIYA,gEAIZA,wCACAA,QACFA,QAGAA,wBACEA,sBAAWA,+BAAeA,QAC5BA,QAEAA,wBACEA,4BAAWA,4DAMeA,QAC5BA,QAIAA,wBACEA,sBAAWA,sCAAmBA,QAChCA,QACAA,wBACEA,4BAAWA,qEAMeA,QAC5BA,QAKFA,QACFA,QAGAA,4BAGEA,wBACEA,sBAAWA,6BAAUA,QACvBA,QAEAA,mBAEEA,qBACEA,iCA8BFA,QAEFA,QACFA,QAIAA,4BAEEA,wBACEA,sBAAWA,8BAAWA,QACxBA,QAEAA,mBAEEA,wBAEEA,4BAsFFA,QACFA,QACFA,QAQAA,4BAGEA,wBACEA,sBAAWA,mBAAMA,QACnBA,QAEAA,mBAGEA,wBACEA,yBAAyBA,4BAAeA,QAExCA,wBAEAA,0BAAYA,2DAASyY,oBACnBzY,oCACAA,wBACFA,QAEFA,QAEAA,+BAMAA,+BAIFA,QACFA,QAIAA,4BAGEA,wBACEA,sBAAWA,wCAAqBA,QAClCA,QAEAA,mBAGEA,wBACEA,yBAAyBA,iCAAiBA,QAE1CA,0BAAaA,gCAASyY,2BACpBzY,yCACAA,wBACFA,QACFA,QAGAA,+BAMAA,+BAiBAA,wBACEA,yBACEA,sCACFA,QACFA,QAEAA,oBACEA,6BAAcA,wEAAsC,sCAAuDyY,oCAAuC,QAChJzY,oBACEA,uBACEA,uBAAkBA,uBAAMA,QACxBA,uBAAkBA,0BAASA,QAC3BA,uBAAkBA,oBAAMA,QAC1BA,QAEAA,qBACEA,uBACAA,uBACAA,uBACAA,uBACFA,QAEAA,qBACEA,uBACEA,uBACAA,uBACAA,uBACAA,uBACJA,QACAA,QAEAA,qBACEA,uBACAA,uBACFA,QAEAA,qBACEA,uBACAA,uBACAA,uBACAA,uBACFA,QAEAA,qBACEA,uBACFA,QACFA,QACFA,QACAA,oBACEA,0BAA8BA,WAAqGA,QAAYA,gBAC/IA,0BAA8BA,WAA4DA,QAC5FA,QACFA,QAEFA,QACFA,QAIAA,6BAGEA,yBACEA,uBAAWA,2CAAoBA,QACjCA,QAEAA,oBAGEA,sBAEEA,uBACEA,mCACFA,QAEAA,2BAAuBA,8EAA6CA,QACpEA,0BAA2DA,wCAA4BA,QACzFA,QAGAA,yBACEA,uBACEA,yCACFA,QAEAA,2BAAuBA,4EAA2CA,QAClEA,0BAA2DA,2BAAeA,QAC5EA,QAEAA,yBACEA,0BAAWA,mEAOqBA,QAClCA,QAGAA,yBAEEA,uBACEA,uCACFA,QAEAA,2BAAuBA,4EAA2CA,QAClEA,0BAA2DA,2BAAeA,QAC5EA,QAGAA,yBAEEA,uBACEA,4CACFA,QAEAA,2BAAYA,4DAASyY,6BACnBzY,oCACAA,yBACFA,QAEAA,yBAEAA,2BAAuBA,iFAAgDA,QACvEA,0BAA2DA,2BAAeA,QAE5EA,QAEAA,gCAOAA,gCAMFA,QACFA,QAIAA,iCAGEA,yBAEEA,uBAAiEA,kCAAoBA,QACrFA,yBACEA,8BAAYA,2EAAyC,mEAAkCyY,sBAA8DzY,QACrJA,uBAAWA,uBAASA,QACtBA,QACFA,QAEAA,oBAGEA,yBACEA,uBAAWA,oCAAgBA,QAC7BA,QAEAA,yBACEA,6BAAWA,wEAMeA,QAC5BA,QAEAA,yBACEA,0BACEA,0BACFA,QACFA,QAEAA,oBACEA,6BAAcA,wEAAsC,sCAAuDyY,qCAAwC,QACjJzY,oBACEA,uBACEA,uBAAkBA,uBAAMA,QACxBA,uBAAkBA,0BAASA,QAC3BA,uBAAkBA,oBAAMA,QAC1BA,QAEAA,qBACEA,uBACAA,uBACAA,uBACAA,uBACFA,QAEAA,qBACEA,uBACEA,uBACAA,uBACAA,uBACAA,uBACJA,QACAA,QAEAA,qBACEA,uBACAA,uBACFA,QAEAA,qBACEA,uBACAA,uBACAA,uBACAA,uBACFA,QAEAA,qBACEA,uBACFA,QACFA,QACFA,QAEAA,oBACEA,0BAA8BA,WAAuGA,QAAYA,gBACjJA,0BAA8BA,WAA6DA,QAC7FA,QACFA,QAGAA,yBACEA,0BAAyBA,qBAAOA,QAEhCA,yBAEAA,2BAA4BA,4DAASyY,0BACnCzY,mCACAA,yBACFA,QACFA,QAEAA,gCAOAA,uBAgBEA,4BAiBFA,QAEFA,QACFA,QAIAA,iCAGEA,yBAEEA,uBAAmEA,kCAAoBA,QACvFA,yBACEA,8BAAYA,6EAA2C,mEAAkCyY,sBAA8DzY,QACvJA,uBAAWA,uBAASA,QACtBA,QAEFA,QAEAA,oBAGEA,yBACEA,0BAAyBA,qBAAOA,QAEhCA,yBAEAA,2BAA4BA,4DAASyY,4BACnCzY,qCACAA,yBACFA,QACFA,QAEAA,gCAQAA,uBAgBEA,4BAkBFA,QAEFA,QACFA,QAKAA,8BAGEA,yBAEEA,uBAAgEA,yBAAWA,QAC3EA,yBACEA,2BAAYA,0EAAyCA,QACrDA,uBAAWA,uBAASA,QACtBA,QAEFA,QAEAA,oBAGEA,yBACEA,uBAAWA,mDAA4BA,QACzCA,QAEAA,oBACEA,6BAAcA,0EAAwC,sCAAuDyY,sCAAyC,QAEpJzY,oBACEA,uBACEA,uBAAkBA,uBAAMA,QACxBA,uBAAkBA,0BAASA,QAC3BA,uBAAkBA,oBAAMA,QAC1BA,QAEAA,qBACEA,uBACAA,uBACAA,uBACAA,uBACFA,QAEAA,qBACEA,uBACEA,uBACAA,uBACAA,uBACAA,uBACJA,QACAA,QAEAA,qBACEA,uBACAA,uBACFA,QAEAA,qBACEA,uBACAA,uBACAA,uBACAA,uBACFA,QAEAA,qBACEA,uBACFA,QACFA,QACFA,QACFA,QAEAA,oBACEA,0BAA8BA,WAAyGA,QAAYA,gBACnJA,0BAA8BA,WAA8DA,QAC9FA,QAGAA,yBAEEA,2BAA4BA,gCAASyY,oBACnCzY,wCACAA,yBACFA,QACFA,QAEAA,gCAOAA,uBAgBEA,4BAgHFA,QAEFA,QACFA,QAKAA,6BAGEA,yBAEEA,uBAA8DA,wBAAUA,QACxEA,yBACEA,2BAAYA,wEAAuCA,QACnDA,uBAAWA,uBAASA,QACtBA,QAEFA,QAEAA,oBAGEA,yBACEA,uBAAWA,oCAAgBA,QAC7BA,QAEAA,yBACEA,6BAAWA,qEAMeA,QAC5BA,QAGAA,yBACEA,0BAAyBA,uBAAMA,QAE/BA,2BAAaA,gCAASyY,uBACpBzY,0CACAA,yBACFA,QACFA,QAEAA,gCAOAA,uBAgBEA,4BAkBFA,QAEFA,QACFA,QAIAA,6BAGEA,yBAEEA,uBAAWA,8BAAgBA,QAE7BA,QAEAA,oBAGEA,yBACEA,uBAAWA,sCAAkBA,QAC/BA,QAEAA,yBACEA,6BAAWA,uEAMeA,QAC5BA,QAIFA,QACFA,QAIAA,6BAEEA,yBACEA,uBAAWA,iBAAGA,QAChBA,QAGAA,oBAEEA,yBACEA,uBAAWA,kBAAIA,QACjBA,QACAA,0BAEEA,2BACEA,+DAGFA,QACFA,QAGAA,yBACEA,uBAAWA,uBAASA,QACtBA,QACAA,0BACEA,2BACEA,8DAGFA,QACFA,QAGAA,yBACEA,uBAAWA,8BAAgBA,QAC7BA,QACAA,0BACEA,2BACEA,qEAGFA,QACFA,QACFA,QACFA,QAEFA,QAsBAA,0BACEA,qBACEA,qBACEA,0BAAYA,gCAASyY,WACnBzY,8BACAA,wBACFA,QACFA,QAEAA,gCAOFA,QACFA,QAGFA,gDAppCaA,gCAwCQA,wCAkBCA,2CAA4B,yBAKEA,sCAc9BA,qDALAA,qCAA+B,yBASAA,yCAa/BA,6CAA8B,yBAIAA,wCAU/BA,yCAeAA,kDA0BqBA,uCA+CPA,qCAsHhBA,iDAMaA,+CA6BbA,uCAMsBA,qCAwBjBA,qDASgBA,mCACEA,qCACGA,qCACHA,kCA8BAA,6HACAA,iFAqBrBA,mEAAwD,0CAI5CA,2DAMZA,iEAAsD,wCAI1CA,yDAKZA,gDAAiC,4CAajCA,iEAAsD,wCAI1CA,yDAOZA,sEAA2D,6CAIHA,gEAO5CA,8DAKDA,kIAOeA,qDAWgBA,qCAK5CA,gEAEGA,wDAQuBA,0DAIqDA,0DAC7EA,qDAgBGA,qDASgBA,mCACEA,qCACGA,qCACHA,kCA+BAA,+HACAA,kFAK6BA,0DAWvCA,gHAOhBA,8BAAkB,cAAlBA,CAAkB,gBAAlBA,CAAkB,eAAlBA,CAAkB,UAAlBA,CAAkB,gBAAlBA,CAAkB,YAAlBA,CAAkB,qBAAlBA,CAAkB,gBAAlBA,CAAkB,mBAAlBA,CAAkB,oBAAlBA,CAAkB,kBAAlBA,CAAkB,UAAlBA,CAAkB,sCAgBkBA,+CAwBaA,qCAK9CA,kEAEGA,0DASUA,4DAWAA,sHAQhBA,8BAAkB,cAAlBA,CAAkB,gBAAlBA,CAAkB,eAAlBA,CAAkB,UAAlBA,CAAkB,gBAAlBA,CAAkB,YAAlBA,CAAkB,qBAAlBA,CAAkB,gBAAlBA,CAAkB,mBAAlBA,CAAkB,oBAAlBA,CAAkB,kBAAlBA,CAAkB,UAAlBA,CAAkB,sCAgBoBA,iDA+BnCA,+DAEGA,uDASuBA,yDAKrBA,uDAUgBA,mCACEA,qCACGA,qCACHA,kCAgCFA,iIACAA,mFAIRA,yDAQAA,6GAOhBA,8BAAkB,cAAlBA,CAAkB,gBAAlBA,CAAkB,eAAlBA,CAAkB,UAAlBA,CAAkB,gBAAlBA,CAAkB,YAAlBA,CAAkB,qBAAlBA,CAAkB,gBAAlBA,CAAkB,mBAAlBA,CAAkB,oBAAlBA,CAAkB,kBAAlBA,CAAkB,UAAlBA,CAAkB,sCAgBwBA,8CA6HvCA,6DAEGA,qDASuBA,uDAIqDA,uDAC7EA,kDAUkDA,uDASvCA,mHAOhBA,8BAAkB,cAAlBA,CAAkB,gBAAlBA,CAAkB,eAAlBA,CAAkB,UAAlBA,CAAkB,gBAAlBA,CAAkB,YAAlBA,CAAkB,qBAAlBA,CAAkB,gBAAlBA,CAAkB,mBAAlBA,CAAkB,oBAAlBA,CAAkB,kBAAlBA,CAAkB,UAAlBA,CAAkB,sCAgBmBA,gDA0ChCA,qDA+BTA,6CAYAA,2CAYAA,kDAgCGA,+CAAoC,oCAO2CA,s9FC3lCjFwY,GAAb,KChCO,IAAME,GAAb,MAAM,sDAAOA,4DAHF,CAACC,cAAsBlP,KACtBkP,QAECD,GAAb,GCSaE,GAAb,MAAM,sDAAOA,4DAXF,CACPC,KACAC,KACAC,KACAL,GACAM,IACAC,KACAC,SAISN,GAAb,+DCnBO,IAAMO,EAAb,MAAM,QASJ/Y,cANOK,oBAA2C,IAAI2Y,KAAyB,GAGxE3Y,4BAAkD,IAAI2Y,IAAwB,iDAN1ED,gCAAkB/S,QAAlB+S,EAAkB,qBAFjB,SAEDA,GAAb,0ECGO,IAAME,EAAb,MAAM,QAEJjZ,YAAoBsF,eAGpBC,OAAO2T,GAGL,OAAO7Y,KAAKiF,KAAKG,KAAWC,WAAkB,UAClBwT,EACA,CAAEvT,QAAS,aAIzCjB,OAAOwU,GAEL,OAAO7Y,KAAKiF,KAAKM,IAAUF,WAAkB,WAAawT,EAAS5U,GACxC4U,EACA,CAAEvT,QAAS,aAKxCE,UAEE,OAAOxF,KAAKiF,KAAKQ,IAAiBJ,WAAkB,WAItDyT,aAAaC,EAAgBC,EAAcC,EAAkBvN,EAAe,OAE1E,OAAO1L,KAAKiF,KAAKQ,IAAiBJ,WAAkB,+BAA+B0T,EAAO,SAASC,EAAK,SAASC,EAAS,SAASvN,GAIrI2B,eAAe6L,GAEb,OAAOlZ,KAAKiF,KAAKQ,IAAiBJ,WAAkB,qCAAqC6T,GAI3FC,6CAA6CC,EAA0BC,EAAwBC,GAE7F,OAAOtZ,KAAKiF,KAAKQ,IAAiBJ,WAAkB,uEAAuE+T,EAAe,iBAAiBC,EAAa,oBAAoBC,GAI9LC,aAAaC,GAEX,OAAOxZ,KAAKiF,KAAKQ,IAAiBJ,WAAkB,+BAA+BmU,GAKrF1Z,KAAKmE,GAEH,OAAOjE,KAAKiF,KAAKQ,IAAeJ,WAAkB,WAAapB,GAIjEyB,OAAOzB,GAEL,OAAOjE,KAAKiF,KAAKS,OAAc,GAAGL,qBAAiCpB,KAKrEwV,2BAA2BC,EAAgCC,mBAEzD,GAA8B,GAA3BD,EAAmB1V,OAEpB,MAAO,2BAEF,GAAG0V,EAAmB1V,QAAQ2V,EAAY3V,OAE/C,MAAO,kBAEH,GAAG0V,EAAmB1V,OAAO,EAAE,CAEnC,IAAI4V,EAA0B,GAC9B,QAAQ7V,EAAE,EAAGA,EAAE2V,EAAmB1V,OAAQD,IAGtC6V,GADCF,EAAmB3V,GAAG2J,YACIgM,EAAmB3V,GAAGwK,KAAO,OAAyC,QAAjCsL,IAAmB9V,GAAG2J,mBAAWF,eAAEe,MAAO,MAAuC,QAAhCuL,IAAmB/V,GAAGiR,kBAAUG,eAAE5G,MAAO,MAE/HmL,EAAmB3V,GAAGwK,KAAO,MAAuC,QAAhC3C,IAAmB7H,GAAGiR,kBAAUK,eAAE9G,MAAO,MAK5GqL,SAA0BA,EAAwBG,UAAU,EAAGH,EAAwB5V,OAAO,GACvF4V,EAGJ,CAEH,IAAIA,EAA0B,GAC9B,IAAQ7V,EAAE,EAAGA,EAAE,EAAGA,IAGd6V,GADCF,EAAmB3V,GAAG2J,YACIgM,EAAmB3V,GAAGwK,KAAO,OAAyC,QAAjCyL,IAAmBjW,GAAG2J,mBAAWuM,eAAE1L,MAAO,MAAuC,QAAhC2L,IAAmBnW,GAAGiR,kBAAUmF,eAAE5L,MAAO,MAE/HmL,EAAmB3V,GAAGwK,KAAO,MAAuC,QAAhC6L,IAAmBrW,GAAGiR,kBAAUqF,eAAE9L,MAAO,MAK5GqL,SAA0BA,EAAwBG,UAAU,EAAGH,EAAwB5V,OAAO,GAC9F4V,GAA2B,cAAgBF,EAAmB1V,OAAO,GAAK,UACnE4V,iDA7GAhB,GAAYrZ,wCAAZqZ,EAAYjT,QAAZiT,EAAY,qBAFX,SAEDA,GAAb,0ECAO,IAAM0B,EAAb,MAAM,QAEJ3a,YAAoBsF,eAGpBC,OAAOqV,GAGL,OAAOva,KAAKiF,KAAKG,KAAWC,WAAkB,UAClBkV,EACA,CAAEjV,QAAS,aAIzCjB,OAAOkW,GAEL,OAAOva,KAAKiF,KAAKM,IAAUF,WAAkB,WAAakV,EAAStW,GACxCsW,EACA,CAAEjV,QAAS,aAKxCE,UAEE,OAAOxF,KAAKiF,KAAKQ,IAAiBJ,WAAkB,WAKtDvF,KAAKmE,GAEH,OAAOjE,KAAKiF,KAAKQ,IAAeJ,WAAkB,WAAapB,GAIjEyB,OAAOzB,GAEL,OAAOjE,KAAKiF,KAAKS,OAAc,GAAGL,qBAAiCpB,mDAtC1DqW,GAAY/a,wCAAZ+a,EAAY3U,QAAZ2U,EAAY,qBAFX,SAEDA,GAAb,yECAO,IAAME,EAAb,MAAM,QAEJ7a,YAAoBsF,eAGpBC,OAAOuV,GAGL,OAAOza,KAAKiF,KAAKG,KAAWC,WAAkB,YAClBoV,EACA,CAAEnV,QAAS,aAIzCjB,OAAOoW,GAEL,OAAOza,KAAKiF,KAAKM,IAAUF,WAAkB,aAAeoV,EAAWxW,GAC5CwW,EACA,CAAEnV,QAAS,aAKxCE,UAEE,OAAOxF,KAAKiF,KAAKQ,IAAmBJ,WAAkB,aAKxDvF,KAAKmE,GAEH,OAAOjE,KAAKiF,KAAKQ,IAAiBJ,WAAkB,aAAepB,GAIrEyB,OAAOzB,GAEL,OAAOjE,KAAKiF,KAAKS,OAAc,GAAGL,uBAAmCpB,mDAtC5DuW,GAAcjb,wCAAdib,EAAc7U,QAAd6U,EAAc,qBAFb,SAEDA,GAAb","names":["i0","ctx_r2","oxw","PopoverListarInscricoesComponent","constructor","popoverController","ngOnInit","find","idInscricao","this","dismiss","selectors","ctx_r3","ctx_r5","HeaderGcComponent","storageService","functionsService","inscricaoService","dataSharingService","usuarioLogado","getUsuarioLogado","location","pathname","indexOf","showNotificacaoNovosDocsEnviados","getMostRecentUpdated","source","interval","subscription","subscribe","val","unsubscribe","tipoDocumentos","findByUltimosDocsInscricaoEnviados","next","resp","inscricoesRecentementeAtualizadas","error","console","log","findByUltimosDocsMatriculaEnviados","ngOnDestroy","hideSubmenu","event","idSubmenu","element","document","getElementById","style","visibility","showSubmenu","showingSubmenu","showHideSubmenu","goToPath","path","logoff","setUsuarioLogado","openPopoverListarInscricoes","popover","create","component","componentProps","inscricoes","translucent","showBackdrop","backdropDismiss","trigger","present","onDidDismiss","then","data","idInscricaoSelecionada","i","length","id","dataUltimaVisualizacaoDocumentacaoInscricao","Date","dataUltimaVisualizacaoDocumentacaoMatricula","update","TIPO_ARQUIVO","IMAGEM","PDF","VIDEO","DOCX","XLSX","PPTX","JPG","PNG","ZIP","AvaliacaoService","http","insert","avaliacaoDTO","post","API_CONFIG","observe","put","findAll","get","delete","factory","DepoimentoService","depoimentoDTO","ctx_r53","avaliacao_r41","ctx_r56","ctx_r59","ctx_r62","ctx_r65","ctx_r68","ctx_r71","ctx_r74","ctx_r77","ctx_r80","ctx_r83","ctx_r88","ctx_r92","ctx_r94","ctx_r95","ctx_r96","ctx_r97","ctx_r98","ctx_r99","ctx_r100","ctx_r104","ctx_r106","ctx_r107","ctx_r111","ctx_r118","ctx_r130","ctx_r133","ctx_r136","ctx_r139","ctx_r147","ctx_r153","ctx_r157","SwiperCore","Autoplay","Keyboard","Pagination","Navigation","Scrollbar","Zoom","EffectFade","EffectCube","EffectCoverflow","EffectFlip","EffectCards","EffectCreative","Lazy","icons","quill","import","routes","cursoService","habilitacaoService","formacaoService","modalidadeService","turnoService","unidadeService","avaliacaoService","arquivoService","sanitizer","activatedRoute","depoimentoService","permissaoAcessoService","route","CursoDTO","UnidadeDTO","bold","italic","underline","strike","ionViewWillEnter","presentLoading","checkAccessControl","curso","tituloGaleriaFotos","formacoes","sortArray","dismissLoading","modalidades","turnos","unidades","avaliacoes","idCurso","snapshot","params","tagsInput","tags","join","preencherUnidadesSelecionadas","CURSO_CONFIG","textoAreaDepoimentos","depoimentos","sort","a","b","ordemExibicao","disponibilidades","forEach","disponibilidade","unidadeCheckbox","unidade","habilitado","checked","onUnidadeChange","target","disponibilidadeTurnos","dt","turnoCheckbox","turno","onTurnoChange","canCreateAndEdit","window","href","canCreateEdit","canRemove","compare","obj1","obj2","findHabilitacoes","findByFormacao","e","formacao","_a","habilitacoes","habilitacao","quit","navigate","enableAvaliacao","inputAvaliacao","avaliacao","disabled","avaliacoesCurso","idAvaliacao","splice","avaliacaoCurso","AvaliacaoCursoDTO","nomeAvaliacao","nome","nota","achou","push","isAvaliacaoSelected","setNotaAvaliacao","n","getNotaAvaliacao","setNomeAvaliacao","getNomeAvaliacao","uploadBanner","fileLoader","that","onchange","upload","files","ENTIDADE","DIRETORIO","bannerPrincipal","body","value","click","uploadGradeCurricular","gradesCurriculares","uploadGaleriaFotos","galeriaFotos","foto","legenda","uploadGaleriaBanners","galeriaBanners","uploadFotoDepoimento","indexDepoimento","getFilePublicURL","fullPath","fileName","addVideoApresentacao","showConfirmAlertGetValue","url","toString","showAlert","video","ArquivoDTO","dataGravacao","tipo","descricao","addGaleriaVideos","galeriaVideos","getSafeURL","bypassSecurityTrustResourceUrl","setLength","field","index","DESCRICAO_DETALHADA","editor","root","innerHTML","MAX_LENGTH_DESCRICAO_DETALHADA","substr","descricaoDetalhada","LENGTH_REAL_DESCRICAO_DETALHADA","LENGTH_APARENTE_DESCRICAO_DETALHADA","getLength","RESUMO_GALERIA_FOTOS","MAX_LENGTH_RESUMO_GALERIA_FOTOS","resumoGaleriaFotos","LENGTH_REAL_RESUMO_GALERIA_FOTOS","LENGTH_APARENTE_RESUMO_GALERIA_FOTOS","TEXTO_AREA_DEPOIMENTO","MAX_LENGTH_TEXTO_AREA_DEPOIMENTO","LENGTH_REAL_TEXTO_AREA_DEPOIMENTO","LENGTH_APARENTE_TEXTO_AREA_DEPOIMENTO","DEPOIMENTO","MAX_LENGTH_DEPOIMENTO","resumo","LENGTH_REAL_DEPOIMENTO","LENGTH_APARENTE_DEPOIMENTO","removeGradeCurricular","gradeCurricular","showConfirmAlert","removeFromGaleriaFoto","removeFromGaleriaVideo","removeVideoApresentacao","removeFromGaleriaBanners","removeFromDepoimentos","depoimento","open","arquivo","newWindow","publicURL","enableGalery","toggleCarrosselImagens","toggleCarrosselBanners","accordionGroup","addDepoimento","DepoimentoDTO","changeOrdemDepoimento","move","aux","vizinho","getSlidesPerView","screen","width","validaUnidadesComTurnosHabilitados","every","d","modalidade","toUpperCase","t","_b","some","_c","save","processTags","ultimoEditor","dataUltimaEdicao","criador","dataCriacao","findIndex","DisponibilidadeCursoDTO","dct","DisponibilidadeCursoTurnoDTO","isUnidadeSelected","ut","isTurnoSelected","getDisponibilidade","getDuracao","duracao","setDuracao","unidadeTurno","detail","getHabilitarDuracao","habilitarDuracao","setHabilitarDuracao","getCargaHoraria","cargaHoraria","setCargaHoraria","getHabilitarCargaHoraria","habilitarCargaHoraria","setHabilitarCargaHoraria","getInvestimento","investimento","setInvestimento","getHabilitarInvestimento","habilitarInvestimento","setHabilitarInvestimento","tagsArray","split","map","tag","trim","filter","self","GcCadastrarCursoPage","ctx","GcCadastrarCursoPageRoutingModule","RouterModule","GcCadastrarCursoPageModule","CommonModule","FormsModule","IonicModule","ComponentsModule","QuillModule","SwiperModule","DataSharingService","BehaviorSubject","CursoService","cursoDTO","findByFilter","filtro","page","pageSize","idFormacao","findByModalidadesAndFormacoesAndHabilitacoes","idsModalidades","idsFormacoes","idsHabilitacoes","findByStatus","status","getTextoCursosSelecionados","cursosSelecionados","todosCursos","textoCursosSelecionados","x","N","substring","S","_d","M","_e","q","_f","TurnoService","turnoDTO","UnidadeService","unidadeDTO"],"sources":["./src/app/components/header-gc/components/popover-listar-inscricoes/popover-listar-inscricoes.component.html","./src/app/components/header-gc/components/popover-listar-inscricoes/popover-listar-inscricoes.component.ts","./src/app/components/header-gc/header-gc.component.html","./src/app/components/header-gc/header-gc.component.ts","./src/app/config/tipo-arquivo.config.ts","./src/app/models/curso/disponibilidadeCurso.ts","./src/app/models/curso/avaliacaoCursoDTO.ts","./src/app/models/curso/depoimentoDTO.ts","./src/app/models/curso/disponibilidadeCursoTurnoDTO.ts","./src/app/services/avaliacao/avaliacao.service.ts","./src/app/services/depoimento/depoimento.service.ts","./src/app/pages/modulo-gc/curso/gc-cadastrar-curso/gc-cadastrar-curso.page.html","./src/app/pages/modulo-gc/curso/gc-cadastrar-curso/gc-cadastrar-curso.page.ts","./src/app/pages/modulo-gc/curso/gc-cadastrar-curso/gc-cadastrar-curso-routing.module.ts","./src/app/pages/modulo-gc/curso/gc-cadastrar-curso/gc-cadastrar-curso.module.ts","./src/app/services/common/data-sharing.service.ts","./src/app/services/curso/curso.service.ts","./src/app/services/turno/turno.service.ts","./src/app/services/unidade/unidade.service.ts"],"sourcesContent":["
\n\n
\n \n {{inscricao.candidato.nome}} {{inscricao.candidato.sobrenome}}, inscrição {{inscricao.id}}, enviou nova documentação.\n \n
\n\n
","import { PopoverController } from '@ionic/angular';\nimport { InscricaoDTO } from '../../../../models/vestibular/inscricaoDTO';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-popover-listar-inscricoes',\n templateUrl: './popover-listar-inscricoes.component.html',\n styleUrls: ['./popover-listar-inscricoes.component.scss'],\n})\nexport class PopoverListarInscricoesComponent implements OnInit {\n\n constructor( private popoverController: PopoverController ) { }\n\n inscricoes: InscricaoDTO[];\n\n ngOnInit() {}\n\n\n find(idInscricao: number){\n\n //fecha o popover e indica o id da inscrição para disparar o método find do componente header-gc\n this.popoverController.dismiss(idInscricao);\n }\n}\n"," \n\n \n \"logo\"\n\n \n\n 0\">\n {{inscricoesRecentementeAtualizadas.length}}\n \n \n\n \n \n \n \n \n \n \n \n \n\n\n \n \n\n \n\n \n\n\n\n\n\n","import { DataSharingService } from './../../services/common/data-sharing.service';\nimport { PopoverListarInscricoesComponent } from './components/popover-listar-inscricoes/popover-listar-inscricoes.component';\nimport { PopoverController } from '@ionic/angular';\nimport { InscricaoDTO } from '../../models/vestibular/inscricaoDTO';\nimport { InscricaoService } from './../../services/inscricao/inscricao.service';\nimport { UsuarioDTO } from '../../models/controle-acesso/usuarioDTO';\nimport { StorageService } from './../../services/storage/storage.service';\nimport { FunctionsService } from './../../services/common/functions.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { interval, Subscription } from 'rxjs';\n\n@Component({\n selector: 'app-header-gc',\n templateUrl: './header-gc.component.html',\n styleUrls: ['./header-gc.component.scss'],\n})\nexport class HeaderGcComponent implements OnInit {\n\n \n\n showingSubmenu = '';\n menuGCItems = [];\n usuarioLogado: UsuarioDTO = null;\n\n showNotificacaoNovosDocsEnviados: boolean = false;\n inscricoesRecentementeAtualizadas: InscricaoDTO[] = [];\n\n subscription: Subscription;\n\n constructor( private storageService : StorageService\n , private functionsService: FunctionsService\n , private inscricaoService: InscricaoService\n , private popoverController: PopoverController\n , private dataSharingService: DataSharingService ) { \n\n this.usuarioLogado = this.storageService.getUsuarioLogado(); \n \n if(location.pathname.indexOf('modulo-gc/gc-analisar-documentacao-inscricao')>-1){\n this.showNotificacaoNovosDocsEnviados = true;\n \n this.getMostRecentUpdated('inscrição');\n\n //repetir a consulta de inscrições recentemente atualizadas a cada 60 segundos\n const source = interval(60000);\n this.subscription = source.subscribe(val => this.getMostRecentUpdated('inscrição'));\n\n }else if(location.pathname.indexOf('modulo-gc/gc-analisar-documentacao-matricula')>-1){\n \n this.showNotificacaoNovosDocsEnviados = true;\n this.getMostRecentUpdated('matrícula');\n\n //repetir a consulta de inscrições recentemente atualizadas a cada 60 segundos\n const source = interval(60000);\n this.subscription = source.subscribe(val => this.getMostRecentUpdated('matrícula'));\n }else {\n // Cancelar a execução de this.getMostRecentUpdated\n this.showNotificacaoNovosDocsEnviados = false;\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n }\n\n getMostRecentUpdated(tipoDocumentos: string){\n\n if(tipoDocumentos=='inscrição'){\n this.inscricaoService.findByUltimosDocsInscricaoEnviados().subscribe({\n next:(resp)=>{\n this.inscricoesRecentementeAtualizadas = resp;\n \n },\n error:(error)=>{\n console.log(error);\n }\n });\n \n }else if(tipoDocumentos == 'matrícula'){\n\n this.inscricaoService.findByUltimosDocsMatriculaEnviados().subscribe({\n next:(resp)=>{\n this.inscricoesRecentementeAtualizadas = resp;\n \n },\n error:(error)=>{\n console.log(error);\n }\n });\n\n }\n \n\n }\n\n ngOnInit() {\n \n }\n\n ngOnDestroy() {\n \n //mata a repetição das consultas de atualização da tela\n if(this.subscription){\n this.subscription.unsubscribe();\n }\n \n }\n\n /**\n * método disparado pelo evento mouseout \n */\n hideSubmenu(event, idSubmenu: string) { \n \n let element = document.getElementById(idSubmenu);\n //this.showingSubmenu = idSubmenu; \n if(element){\n element.style.visibility = 'hidden';\n }\n \n \n }\n\n /**\n * método disparado pelo evento mouseenter \n */\n showSubmenu(idSubmenu: string){\n \n this.showingSubmenu = idSubmenu;\n\n let element = document.getElementById(idSubmenu);\n \n if(element){\n element.style.visibility = 'visible';\n }\n \n\n }\n\n\n /*\n método usado para tablets, disparado através do click no menu, pois em tablet não tem cursor do mouse\n */\n showHideSubmenu(idSubmenu: string){\n \n this.showingSubmenu = idSubmenu;\n\n let element = document.getElementById(idSubmenu);\n \n if(element){\n\n if(element.style.visibility === 'visible'){\n element.style.visibility = 'hidden';\n }else{\n element.style.visibility = 'visible';\n }\n }\n \n }\n\n\n \n goToPath(path:string){\n\n if(path){\n this.functionsService.goToPath(path);\n }\n }\n \n\n logoff(){\n this.storageService.setUsuarioLogado(null);\n this.functionsService.goToPath('modulo-gc/gc-login');\n\n }\n\n\n async openPopoverListarInscricoes(event) {\n \n let tipoDocumentos = 'inscrição';\n if(location.pathname.indexOf('modulo-gc/gc-analisar-documentacao-matricula')>-1){\n tipoDocumentos = 'matrícula'\n }\n const popover = await this.popoverController.create({\n component: PopoverListarInscricoesComponent,\n componentProps: { 'inscricoes': this.inscricoesRecentementeAtualizadas\n , 'tipoDocumentos': tipoDocumentos},\n translucent: false,\n showBackdrop: true,\n backdropDismiss: true,\n event: event,\n trigger: event,\n //cssClass: 'popover-listar-inscricoes', //definido no global.css \n \n });\n\n await popover.present();\n \n //quando fechar o popover\n await popover.onDidDismiss().then((data)=>{\n\n //se tiver selecionado uma inscrição o campo data.data estará preenchido do contrário será null\n if(data && data.data){\n\n //informa ao serviço de notificação/compartilhamento de dados entre componentes o id da inscrição selecionada\n //este id será utilizado para preencher a tela de análise de docs com a inscrição selecionada\n this.dataSharingService.idInscricaoSelecionada.next( data.data ); \n\n //atualiza a inscrição selecionada para ela sair da lista\n for(var i=0; i{\n\n //atualizar o contador no ícone de notificações\n this.getMostRecentUpdated(tipoDocumentos);\n\n },\n error:(error)=>{\n console.log(error);\n }\n });\n\n }\n }\n \n }\n \n });\n \n }\n}\n","export const TIPO_ARQUIVO = {\r\n \r\n IMAGEM: \"IMAGEM\",\r\n PDF: \"PDF\",\r\n VIDEO: \"VIDEO\" ,\r\n DOCX: \"DOCX\",\r\n XLSX: \"XLSX\",\r\n PPTX: \"PPTX\",\r\n JPG: \"JPG\",\r\n PNG: \"PNG\",\r\n ZIP: \"ZIP\"\r\n}","import { UnidadeDTO } from './unidadeDTO';\r\nimport { TurnoDTO } from './turnoDTO';\r\nimport { DisponibilidadeCursoTurnoDTO } from './disponibilidadeCursoTurnoDTO';\r\n\r\nexport class DisponibilidadeCursoDTO {\r\n unidade!: UnidadeDTO;\r\n\r\n habilitarDuracao!: boolean;\r\n duracao!: string;\r\n \r\n habilitarCargaHoraria!:boolean;\r\n cargaHoraria!:string;\r\n\r\n habilitarInvestimento!: boolean;\r\n investimento!: string;\r\n\r\n disponibilidadeTurnos!: DisponibilidadeCursoTurnoDTO[];\r\n \r\n habilitado!: boolean;\r\n}\r\n","import { CursoDTO } from './cursoDTO';\r\n\r\nexport class AvaliacaoCursoDTO{\r\n\r\n id!: number;\r\n idAvaliacao!: number;\r\n nomeAvaliacao!: string;\r\n nota!:number;\r\n \r\n}","import { ArquivoDTO } from 'src/app/models/arquivoDTO';\r\nexport class DepoimentoDTO{\r\n\r\n id!: number;\r\n resumo!: string;\r\n foto!: ArquivoDTO;\r\n ordemExibicao!: number;\r\n nome!: string;\r\n sobreDepoente!: string;\r\n}","import { UnidadeDTO } from './unidadeDTO';\r\nimport { TurnoDTO } from './turnoDTO';\r\n\r\nexport class DisponibilidadeCursoTurnoDTO {\r\n \r\n turno!: TurnoDTO;\r\n habilitado!: boolean;\r\n}\r\n","import { AvaliacaoDTO } from '../../models/curso/avaliacaoDTO';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { API_CONFIG } from './../../config/api.config';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AvaliacaoService {\n\n constructor(private http: HttpClient){ \n }\n\n insert(avaliacaoDTO: AvaliacaoDTO) : Observable {\n \n\n return this.http.post( API_CONFIG.apiURL+'/avaliacoes'\n , avaliacaoDTO\n , { observe: 'response' }); //.pipe(timeout(100000))\n\n }\n\n update(avaliacaoDTO: AvaliacaoDTO) : Observable {\n \n return this.http.put( API_CONFIG.apiURL+'/avaliacoes/' + avaliacaoDTO.id\n , avaliacaoDTO\n , { observe: 'response' });\n\n }\n\n\n findAll() : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/avaliacoes');\n\n }\n\n \n find(id: number) : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/avaliacoes/' + id);\n\n }\n\n delete(id: number) : Observable {\n\n return this.http.delete( `${API_CONFIG.apiURL}${'/avaliacoes/'}${id}`);\n\n }\n\n}\n","import { API_CONFIG } from './../../config/api.config';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { DepoimentoDTO } from '../../models/curso/depoimentoDTO';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DepoimentoService {\n\n constructor(private http: HttpClient){ \n }\n\n insert(depoimentoDTO: DepoimentoDTO) : Observable {\n \n\n return this.http.post( API_CONFIG.apiURL+'/depoimentos'\n , depoimentoDTO\n , { observe: 'response' }); //.pipe(timeout(100000))\n\n }\n\n update(depoimentoDTO: DepoimentoDTO) : Observable {\n console.log(depoimentoDTO);\n \n return this.http.put( API_CONFIG.apiURL+'/depoimentos/' + depoimentoDTO.id\n , depoimentoDTO\n , { observe: 'response' });\n\n }\n\n\n findAll() : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/depoimentos');\n\n }\n\n \n find(id: number) : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/depoimentos/' + id);\n\n }\n\n delete(id: number) : Observable {\n\n return this.http.delete( `${API_CONFIG.apiURL}${'/depoimentos/'}${id}`);\n\n }\n}\n","\n\n\n\n \n\n \n\n \n \n \n \n \n \n \n\n \n\n\n \n CADASTRO DE CURSO\n \n\n\n \n\n \n \n\n \n \n Dados Básicos \n \n \n
\n\n \n \n Nome\n \n \n \n \n \n \n \n \n Formação\n \n \n \n {{formacao.nome}}\n \n \n\n \n \n Habilitação\n \n \n \n {{habilitacao.nome}}\n \n \n \n \n \n Modalidade\n \n \n \n {{modalidade.nome}}\n \n \n \n \n \n Código do Curso\n \n \n \n \n \n\n\n \n \n Código do Currículo\n \n \n \n \n\n \n\n \n
\n
\n\n \n \n \n \n \n Avaliações \n \n \n
\n\n \n \n \n \n\n \n \n \n =1\">\n \n \n =2\">\n \n \n =3\">\n \n \n =4\">\n \n \n =5\"> \n \n\n \n \n\n
\n
\n\n\n \n \n \n \n Informações \n \n \n
\n \n \n \n
\n \n \n \n \n \n  {{unidade.nome}}\n \n \n \n \n \n \n  {{turno.nome}}\n \n \n
\n\n \n \n
\n  Duração\n \n \n
\n
\n \n\n \n \n\n \n
\n \n \n
\n  Carga Horária\n \n \n
\n
\n\n \n \n \n \n
\n\n \n
\n  Investimento\n \n \n
\n
\n \n \n \n \n
\n\n\n \n
\n
\n
\n
\n
\n \n \n \n \n\n\n \n \n \n \n \n Banner \n \n \n
\n\n \n \n Banner do Curso \n\n \n \n \n Upload Banner  \n \n \n \n \n \n \n \n Nenhum banner adicionado\n \n \n \n \n \n \n\n
\n
\n\n\n \n \n \n \n \n Apresentação do Curso \n \n \n
\n\n \n \n Vídeo Informativo \n\n \n Adicionar Vídeo  \n \n \n \n\n \n \n \n Nenhum vídeo adicionado\n \n \n\n \n \n \n \n \n \n \n\n \n \n \n\n \n\n \n \n \n \n \n  Apresentação\n \n \n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n {{LENGTH_REAL_DESCRICAO_DETALHADA}} caracteres reais de {{MAX_LENGTH_DESCRICAO_DETALHADA}} permitidos
\n {{LENGTH_APARENTE_DESCRICAO_DETALHADA}} caracteres aparentes \n
\n
\n\n
\n
\n\n\n \n \n \n \n \n Botões de Informação \n \n \n
\n\n \n \n \n \n Botão Informe-se\n \n\n \n  Exibir Permanentemente\n \n\n \n \n \n Botão Rede Social/Blog\n \n\n \n  Habilitar\n \n \n \n \n \n \n \n \n \n \n Botão Como Ingressar\n \n\n \n  Habilitar\n \n\n \n \n \n \n Botão Grades Curriculares\n \n \n \n Upload Grade  \n \n \n \n \n \n \n  Habilitar\n \n \n \n \n \n Nenhuma grade curricular\n \n \n \n \n \n \n   {{pdf.nome}}\n \n \n \n
\n
\n\n\n \n \n \n \n \n\n Carrossel de Imagens \n \n \n Habilitar\n \n \n \n
\n\n \n \n Título da Sessão\n \n\n \n \n \n\n \n \n  Resumo\n \n \n\n
\n \n
\n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n
\n
\n\n
\n {{LENGTH_REAL_RESUMO_GALERIA_FOTOS}} caracteres reais de {{MAX_LENGTH_RESUMO_GALERIA_FOTOS}} permitidos
\n {{LENGTH_APARENTE_RESUMO_GALERIA_FOTOS}} caracteres aparentes\n
\n
\n \n \n \n Imagens \n\n \n \n \n Upload Foto  \n \n \n \n\n \n \n O carrossel de imagens está vazio\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n
\n
\n\n\n \n \n \n \n \n\n Carrossel de Banners \n \n \n Habilitar\n \n\n \n \n
\n\n \n \n Banners \n\n \n \n \n Upload Banner  \n \n \n \n\n \n \n O carrossel de banners está vazio\n \n \n\n\n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n
\n
\n\n\n \n \n \n \n \n \n\n Depoimentos \n \n \n Habilitar\n \n \n \n \n
\n\n \n \n Texto Apresentação da Sessão\n \n\n
\n \n \n
\n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n
\n
\n
\n\n
\n {{LENGTH_REAL_TEXTO_AREA_DEPOIMENTO}} caracteres reais de {{MAX_LENGTH_TEXTO_AREA_DEPOIMENTO}} permitidos
\n {{LENGTH_APARENTE_TEXTO_AREA_DEPOIMENTO}} caracteres aparentes\n
\n\n \n \n \n \n Criar Depoimento  \n \n \n \n\n \n \n Não há depoimentos\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n 1\" (click)=\"changeOrdemDepoimento(i,-1)\">\n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n \n\n \n \n\n \n \n \n Resumo\n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n\n
\n {{LENGTH_REAL_DEPOIMENTO}} caracteres reais de {{MAX_LENGTH_DEPOIMENTO}} permitidos
\n {{LENGTH_APARENTE_DEPOIMENTO}} caracteres aparentes\n
\n\n
\n\n
\n \n
\n\n
\n \n
\n
\n\n\n\n \n \n \n \n \n\n Saiba Mais \n \n \n Habilitar\n \n \n \n \n
\n\n \n \n Título da Sessão\n \n \n \n \n \n\n \n \n Vídeos \n\n \n Adicionar Vídeo  \n \n \n \n\n \n \n Não há vídeos na galeria\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n
\n
\n\n\n \n \n \n \n \n\n Compartilhamento \n \n \n \n
\n\n \n \n Descrição Resumida\n \n \n \n \n \n\n \n \n
\n
\n \n\n \n \n \n \n SEO\n \n \n \n
\n \n \n Tags\n \n \n \n \n \n \n \n \n \n Title Tag\n \n \n \n \n \n \n \n \n Meta Description\n \n \n \n \n \n
\n
\n\n
\n\n\n\n\n \n\n\n \n\n\n \n\n \n\n \n\n\n \n\n\n \n \n \n \n \n Voltar  \n \n \n \n\n \n \n Salvar  \n \n \n \n \n \n \n\n\n
\n","import { DisponibilidadeCursoDTO } from './../../../../models/curso/disponibilidadeCurso';\nimport { PermissaoAcessoService } from '../../../../services/permissao-acesso/permissao-acesso.service';\nimport { CURSO_CONFIG } from '../../../../config/curso.config';\nimport { FormacaoService } from '../../../../services/formacao/formacao.service';\nimport { FormacaoDTO } from '../../../../models/curso/formacaoDTO';\nimport { DepoimentoService } from '../../../../services/depoimento/depoimento.service';\nimport { StorageService } from '../../../../services/storage/storage.service';\nimport { TurnoCursoDTO } from '../../../../models/curso/turnoCursoDTO';\nimport { ActivatedRoute } from '@angular/router';\nimport { API_CONFIG } from '../../../../config/api.config';\nimport { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';\nimport { ArquivoDTO } from '../../../../models/arquivoDTO';\nimport { ArquivoService } from '../../../../services/arquivo/arquivo.service';\nimport { TIPO_ARQUIVO } from '../../../../config/tipo-arquivo.config';\nimport { DIRETORIO } from '../../../../config/diretorio.config';\nimport { ENTIDADE } from '../../../../config/entidade.config';\nimport { AvaliacaoCursoDTO } from '../../../../models/curso/avaliacaoCursoDTO';\nimport { IonInput, IonToggle, IonAccordion, IonAccordionGroup } from '@ionic/angular';\nimport { AvaliacaoService } from '../../../../services/avaliacao/avaliacao.service';\nimport { TurnoDTO } from '../../../../models/curso/turnoDTO';\nimport { ModalidadeDTO } from '../../../../models/curso/modalidadeDTO';\nimport { TurnoService } from '../../../../services/turno/turno.service';\nimport { ModalidadeService } from '../../../../services/modalidade/modalidade.service';\nimport { CursoService } from '../../../../services/curso/curso.service';\nimport { FunctionsService } from '../../../../services/common/functions.service';\nimport { HabilitacaoService } from '../../../../services/habilitacao/habilitacao.service';\nimport { HabilitacaoDTO } from '../../../../models/curso/habilitacaoDTO';\nimport { CursoDTO } from '../../../../models/curso/cursoDTO';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { AvaliacaoDTO } from 'src/app/models/curso/avaliacaoDTO';\nimport * as Quill from 'quill'\n\nimport SwiperCore, { Autoplay, Keyboard, Pagination, Navigation, Scrollbar, Zoom, EffectFade, EffectCube, EffectCoverflow, EffectFlip, EffectCards, EffectCreative, Lazy } from 'swiper';\nimport { DepoimentoDTO } from 'src/app/models/curso/depoimentoDTO';\nimport { UnidadeDTO } from 'src/app/models/curso/unidadeDTO';\nimport { UnidadeService } from 'src/app/services/unidade/unidade.service';\nimport { DisponibilidadeCursoTurnoDTO } from 'src/app/models/curso/disponibilidadeCursoTurnoDTO';\n\nSwiperCore.use([Autoplay, Keyboard, Pagination, Navigation, Scrollbar, Zoom, EffectFade, EffectCube, EffectCoverflow, EffectFlip, EffectCards, EffectCreative, Lazy]);\n\nconst quill: any = Quill\nconst icons = quill.import('ui/icons');\n\n@Component({\n selector: 'app-gc-cadastrar-curso',\n templateUrl: './gc-cadastrar-curso.page.html',\n styleUrls: ['./gc-cadastrar-curso.page.scss'],\n})\nexport class GcCadastrarCursoPage implements OnInit {\n\n canCreateEdit: boolean;\n canRemove: boolean; \n\n @ViewChild('accordionGroup') accordionGroup: IonAccordionGroup;\n \n curso: CursoDTO = new CursoDTO();\n habilitacoes: HabilitacaoDTO[] = [];\n formacoes: FormacaoDTO[] = [];\n modalidades: ModalidadeDTO[] = [];\n turnos: TurnoDTO[] = [];\n unidades: UnidadeDTO[] = [];\n\n avaliacoes: AvaliacaoDTO[] = [];\n novaUnidade: UnidadeDTO = new UnidadeDTO();\n\n //USADOS PARA CONTROLAR O TAMANHO DO TEXTO DA DESCRIÇÃO DETALHADA NO MÉTODO SETLENGTH\n LENGTH_APARENTE_DESCRICAO_DETALHADA = 0;\n LENGTH_REAL_DESCRICAO_DETALHADA = 0;\n MAX_LENGTH_DESCRICAO_DETALHADA = 20000;\n DESCRICAO_DETALHADA = 'DESCRICAO_DETALHADA';\n \n //USADOS PARA CONTROLAR O TAMANHO DO TEXTO DA DESCRIÇÃO DAS FOTOS NO MÉTODO SETLENGTH\n LENGTH_APARENTE_RESUMO_GALERIA_FOTOS = 0;\n LENGTH_REAL_RESUMO_GALERIA_FOTOS = 0;\n MAX_LENGTH_RESUMO_GALERIA_FOTOS = 150;\n RESUMO_GALERIA_FOTOS = 'DESCRICAO_FOTO';\n\n //USADOS PARA CONTROLAR O TAMANHO DO TEXTO DOS DEPOIMENTOS\n LENGTH_APARENTE_TEXTO_AREA_DEPOIMENTO = 0;\n LENGTH_REAL_TEXTO_AREA_DEPOIMENTO = 0;\n MAX_LENGTH_TEXTO_AREA_DEPOIMENTO = 200;\n TEXTO_AREA_DEPOIMENTO = 'TEXTO DEPOIMENTO';\n\n //USADOS PARA CONTROLAR O TAMANHO DO TEXTO DOS DEPOIMENTOS\n LENGTH_APARENTE_DEPOIMENTO = 0;\n LENGTH_REAL_DEPOIMENTO = 0;\n MAX_LENGTH_DEPOIMENTO = 200;\n DEPOIMENTO = 'DEPOIMENTO';\n\n constructor( private functionsService: FunctionsService\n , private cursoService: CursoService\n , private habilitacaoService: HabilitacaoService\n , private formacaoService: FormacaoService\n , private modalidadeService: ModalidadeService\n , private turnoService: TurnoService\n , private unidadeService: UnidadeService\n , private avaliacaoService: AvaliacaoService\n , private arquivoService: ArquivoService\n , private sanitizer: DomSanitizer \n , private activatedRoute: ActivatedRoute\n , private storageService: StorageService\n , private depoimentoService: DepoimentoService\n , private permissaoAcessoService: PermissaoAcessoService \n , private route: ActivatedRoute ) { \n\n //altera os ícones do quill editor, pois os defaults são em inglês\n icons['bold'] = 'N';\n icons['italic'] = 'I';\n icons['underline'] = 'S';\n icons['strike'] = 'ab'; \n }\n\n ngOnInit() {\n }\n\n ionViewWillEnter(){\n \n this.functionsService.presentLoading();\n\n //verificar as permissões de acesso\n this.checkAccessControl();\n\n this.curso = new CursoDTO();\n this.curso.tituloGaleriaFotos = 'Laboratórios e Infraestrutura';\n\n //FORMAÇÕES\n this.formacaoService.findAll().subscribe(\n resp=>{\n\n this.formacoes = resp;\n this.functionsService.sortArray(this.formacoes);\n\n },\n error=>{\n this.functionsService.dismissLoading();\n console.log(error);\n \n });\n \n //MODALIDADES \n this.modalidadeService.findAll().subscribe(\n resp=>{\n\n this.modalidades = resp;\n this.functionsService.sortArray(this.modalidades);\n \n },\n error=>{\n this.functionsService.dismissLoading();\n console.log(error);\n\n });\n\n //TURNOS\n this.turnoService.findAll().subscribe(\n resp=>{\n \n this.turnos = resp;\n this.functionsService.sortArray(this.turnos);\n \n },\n error=>{\n this.functionsService.dismissLoading();\n console.log(error);\n \n }); \n\n\n //UNIDADES\n this.unidadeService.findAll().subscribe(\n resp=>{\n \n this.unidades = resp;\n this.functionsService.sortArray(this.unidades);\n \n },\n error=>{\n this.functionsService.dismissLoading();\n console.log(error);\n \n }); \n \n //AVALIAÇÕES \n this.avaliacaoService.findAll().subscribe(\n resp=>{\n \n this.avaliacoes = resp;\n this.functionsService.sortArray(this.avaliacoes);\n this.functionsService.dismissLoading(); \n },\n error=>{\n this.functionsService.dismissLoading();\n console.log(error);\n \n }); \n\n //se for edição de um curso\n const idCurso = this.route.snapshot.params['idCurso'];\n\n if(idCurso){\n\n this.cursoService.find(idCurso).subscribe(\n resp=>{\n this.curso = resp;\n \n\n //para tratamentos das tags SEO\n if (this.curso.tags && this.curso.tags.length > 0) {\n this.curso.tagsInput = this.curso.tags.join(', ');\n } else {\n this.curso.tagsInput = '';\n }\n \n this.preencherUnidadesSelecionadas();\n\n if(!this.curso.tituloGaleriaFotos){\n this.curso.tituloGaleriaFotos = CURSO_CONFIG.TITULO_GALERIA_FOTOS;\n }\n\n if(!this.curso.textoAreaDepoimentos){\n this.curso.textoAreaDepoimentos = CURSO_CONFIG.TEXTO_AREA_DEPOIMENTOS\n }\n\n //ordena os depoimentos pela ordem de exibição\n this.curso.depoimentos.sort(function (a, b) {\n if (a.ordemExibicao > b.ordemExibicao) {\n return 1;\n }\n if (a.ordemExibicao < b.ordemExibicao) {\n return -1;\n }\n // a must be equal to b\n return 0;\n });\n this.functionsService.dismissLoading();\n },\n error=>{\n console.log(error);\n });\n }\n\n \n }\n\n\n preencherUnidadesSelecionadas() {\n\n if (this.curso.disponibilidades && this.curso.disponibilidades.length > 0) {\n\n this.curso.disponibilidades.forEach(disponibilidade => {\n // Seleciona a unidade\n const unidadeCheckbox = document.getElementById(`unidade-${disponibilidade.unidade.id}`) as HTMLIonCheckboxElement;\n \n if (unidadeCheckbox && disponibilidade.habilitado) {\n unidadeCheckbox.checked = true;\n this.onUnidadeChange({ target: { checked: true } }, disponibilidade.unidade);\n }\n\n // Seleciona os turnos dessa unidade\n disponibilidade.disponibilidadeTurnos.forEach(dt => {\n const turnoCheckbox = document.getElementById(`turno-${disponibilidade.unidade.id}-${dt.turno.id}`) as HTMLIonCheckboxElement;\n \n if (turnoCheckbox && dt.habilitado) {\n turnoCheckbox.checked = true;\n this.onTurnoChange({ target: { checked: true } }, dt.turno, disponibilidade.unidade);\n }\n });\n });\n }\n}\n\n\n checkAccessControl(){\n\n this.permissaoAcessoService.canCreateAndEdit(window.location.href).subscribe({\n next:(resp)=>{\n this.canCreateEdit = resp;\n },\n error:(error)=>{\n this.canCreateEdit = false;\n }\n });\n\n this.permissaoAcessoService.canRemove(window.location.href).subscribe({\n next:(resp)=>{\n this.canRemove = resp;\n },\n error:(error)=>{\n this.canRemove = false;\n }\n });\n\n\n }\n \n compare(obj1: any, obj2: any): boolean {\n return obj1 && obj2 ? obj1.id == obj2.id : obj1 == obj2;\n }\n\n \n findHabilitacoes(){\n\n this.functionsService.presentLoading();\n\n this.habilitacaoService.findByFormacao(this.curso.formacao?.id).subscribe(\n resp=>{\n\n this.habilitacoes = resp;\n this.functionsService.sortArray(this.habilitacoes);\n \n //há formações que não possuem habilitação\n if(this.habilitacoes.length===0){\n this.curso.habilitacao = null;\n }\n \n this.functionsService.dismissLoading();\n \n },\n error=>{\n\n console.log(error);\n this.functionsService.dismissLoading();\n\n });\n\n }\n\n\n \n async quit(){\n \n const idCurso = this.route.snapshot.params['idCurso'];\n\n if(idCurso){\n this.functionsService.navigate('/modulo-gc/gc-listar-cursos/' + idCurso);\n }else{\n this.functionsService.navigate('/modulo-gc/gc-listar-cursos');\n }\n \n \n }\n\n\n enableAvaliacao(inputAvaliacao: IonInput, avaliacao: AvaliacaoDTO){\n \n inputAvaliacao.disabled = !inputAvaliacao.disabled;\n\n //desabilitou então tem que remover a avaliação da lista de avaliações do curso\n if(inputAvaliacao.disabled){\n\n for(var i=0; i{\n \n that.curso.bannerPrincipal = resp.body;\n fileLoader.value = '';\n },\n error=>{\n console.log(error);\n }\n ); \n \n }\n\n fileLoader.click();\n\n \n }\n\n\n uploadGradeCurricular(fileLoader: HTMLInputElement){\n\n let that = this;\n\n fileLoader.onchange = function () {\n\n let banner = fileLoader.files[0];\n \n that.arquivoService.upload( banner\n , ENTIDADE.CURSO\n , that.curso.id\n , DIRETORIO.GRADES_CURRICULARES\n , TIPO_ARQUIVO.PDF ).subscribe(\n resp=>{\n \n if(!that.curso.gradesCurriculares){\n that.curso.gradesCurriculares = [];\n }\n that.curso.gradesCurriculares.push(resp.body);\n fileLoader.value = '';\n\n },\n error=>{\n console.log(error);\n }\n ); \n \n }\n\n fileLoader.click();\n\n \n }\n\n\n uploadGaleriaFotos(fileLoader: HTMLInputElement){\n\n let that = this;\n\n fileLoader.onchange = function () {\n\n let banner = fileLoader.files[0];\n that.arquivoService.upload( banner\n , ENTIDADE.CURSO\n , that.curso.id\n , DIRETORIO.GALERIA_FOTOS\n , TIPO_ARQUIVO.IMAGEM ).subscribe(\n resp=>{\n \n if(!that.curso.galeriaFotos){\n that.curso.galeriaFotos = [];\n }\n\n let foto: ArquivoDTO = resp.body;\n foto.curso = new CursoDTO();\n foto.curso.id = that.curso.id;\n //legenda default\n foto.legenda = 'Laboratórios e Infraestrutura';\n that.curso.galeriaFotos.push(foto);\n fileLoader.value = '';\n },\n error=>{\n console.log(error);\n }\n ); \n \n }\n\n fileLoader.click();\n\n \n }\n\n uploadGaleriaBanners(fileLoader: HTMLInputElement){\n\n let that = this;\n\n fileLoader.onchange = function () {\n\n let banner = fileLoader.files[0];\n \n that.arquivoService.upload( banner\n , ENTIDADE.CURSO\n , that.curso.id\n , DIRETORIO.GALERIA_BANNERS\n , TIPO_ARQUIVO.IMAGEM ).subscribe(\n resp=>{\n \n if(!that.curso.galeriaBanners){\n that.curso.galeriaBanners = [];\n }\n\n that.curso.galeriaBanners.push(resp.body);\n fileLoader.value = '';\n },\n error=>{\n console.log(error);\n }\n ); \n \n }\n\n fileLoader.click();\n\n \n }\n\n\n uploadFotoDepoimento(fileLoader: HTMLInputElement, indexDepoimento: number){\n\n let that = this;\n\n fileLoader.onchange = function () {\n\n let foto = fileLoader.files[0];\n \n that.arquivoService.upload( foto\n , ENTIDADE.CURSO\n , that.curso.id\n , DIRETORIO.GALERIA_DEPOIMENTOS\n , TIPO_ARQUIVO.IMAGEM ).subscribe(\n resp=>{\n \n that.curso.depoimentos[indexDepoimento].foto = resp.body;\n fileLoader.value = '';\n },\n error=>{\n console.log(error);\n }); \n \n }\n\n fileLoader.click();\n\n \n }\n\n\n getFilePublicURL(fullPath: string, fileName: string): string{\n \n if(!fullPath || !fileName){\n return API_CONFIG.iisVirtualDirectoryURL + 'empty_photo.jpg';\n }\n\n return this.arquivoService.getFilePublicURL(fullPath, fileName);\n }\n\n\n addVideoApresentacao(){\n\n this.functionsService.showConfirmAlertGetValue( 'Vídeo'\n , 'Informe a URL do vídeo no Youtube.'\n , 'Ok'\n ,'Cancelar'\n , 'URL do vídeo'\n , '' ).then(url=>{\n \n if(url){\n \n if(url.toString().indexOf('https://www.youtube.com/embed')<0){\n this.functionsService.showAlert('Atenção!', 'A URL informada não é válida.
Uma URL válida é iniciada da seguinte forma: https://www.youtube.com/embed',['Ok']);\n return;\n }else{\n\n let video: ArquivoDTO = new ArquivoDTO();\n video.dataGravacao = new Date();\n video.path = url;\n video.tipo = TIPO_ARQUIVO.VIDEO;\n video.descricao = 'Apresentação do Curso';\n this.curso.video = video;\n \n \n }\n }\n });\n\n \n }\n\n\n addGaleriaVideos(){\n\n this.functionsService.showConfirmAlertGetValue( 'Vídeo'\n , 'Informe a URL do vídeo no Youtube.'\n , 'Ok'\n ,'Cancelar'\n , 'URL do vídeo'\n , '' ).then(url=>{\n \n if(url){\n \n if(url.toString().indexOf('https://www.youtube.com/embed')<0){\n this.functionsService.showAlert('Atenção!', 'A URL informada não é válida.
Uma URL válida é iniciada da seguinte forma: https://www.youtube.com/embed',['Ok']);\n return;\n }else{\n\n let video: ArquivoDTO = new ArquivoDTO();\n video.dataGravacao = new Date();\n video.path = url;\n video.tipo = TIPO_ARQUIVO.VIDEO;\n video.descricao = 'Galeria de Vídeos';\n\n if(!this.curso.galeriaVideos){\n this.curso.galeriaVideos = [];\n }\n \n this.curso.galeriaVideos.push(video); \n\n }\n }\n });\n\n \n }\n\n\n getSafeURL(url: string): SafeResourceUrl{\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n\n\n setLength(event, field: string, index: number){\n \n //******DESCRIÇÃO DETALHADA*******/\n if(field === this.DESCRICAO_DETALHADA){\n \n \n if(event.editor.root.innerHTML.length>this.MAX_LENGTH_DESCRICAO_DETALHADA){\n \n //retira o último caracter digitado +

o que totalizam 5 caracteres e depois add

novamente\n event.editor.root.innerHTML = event.editor.root.innerHTML.substr(0,this.MAX_LENGTH_DESCRICAO_DETALHADA-4) + '

';\n \n //atualiza a propriedade associada ao editor\n this.curso.descricaoDetalhada = event.editor.root.innerHTML; \n\n }\n \n //o editor é iniciado com


quando está vazio\n if(event.editor.root.innerHTML==='


'){\n this.LENGTH_REAL_DESCRICAO_DETALHADA = 0;\n }else{\n this.LENGTH_REAL_DESCRICAO_DETALHADA = event.editor.root.innerHTML.length;\n }\n //quantidade de caracteres que realmente são exibidos no editor\n this.LENGTH_APARENTE_DESCRICAO_DETALHADA = event.editor.getLength()-1;\n\n\n\n /*******GALERIA DE FOTOS*******/ \n }else if(field === this.RESUMO_GALERIA_FOTOS){\n\n if(event.editor.root.innerHTML.length>this.MAX_LENGTH_RESUMO_GALERIA_FOTOS){\n //retira o último caracter digitado +

o que totalizam 5 caracteres e depois add

novamente\n event.editor.root.innerHTML = event.editor.root.innerHTML.substr(0,this.MAX_LENGTH_RESUMO_GALERIA_FOTOS-4) + '

';\n \n //atualiza a propriedade associada ao editor\n this.curso.resumoGaleriaFotos = event.editor.root.innerHTML;\n \n }\n\n //o editor é iniciado com


quando está vazio\n if(event.editor.root.innerHTML==='


'){\n event.editor.root.innerHTML = '';\n this.LENGTH_REAL_RESUMO_GALERIA_FOTOS = 0;\n }else{\n this.LENGTH_REAL_RESUMO_GALERIA_FOTOS = event.editor.root.innerHTML.length;\n }\n //quantidade de caracteres que realmente são exibidos no editor \n this.LENGTH_APARENTE_RESUMO_GALERIA_FOTOS = event.editor.getLength()-1;\n\n\n\n \n /******DESCRIÇÃO DA ÁREA DE DEPOIMENTOS********/ \n }else if(field === this.TEXTO_AREA_DEPOIMENTO){\n\n if(event.editor.root.innerHTML.length>this.MAX_LENGTH_TEXTO_AREA_DEPOIMENTO){\n //retira o último caracter digitado +

o que totalizam 5 caracteres e depois add

novamente\n event.editor.root.innerHTML = event.editor.root.innerHTML.substr(0,this.MAX_LENGTH_TEXTO_AREA_DEPOIMENTO-4) + '

';\n //atualiza a propriedade associada ao editor\n this.curso.textoAreaDepoimentos = event.editor.root.innerHTML;\n }\n\n //o editor é iniciado com


quando está vazio\n if(event.editor.root.innerHTML==='


'){\n this.LENGTH_REAL_TEXTO_AREA_DEPOIMENTO = 0;\n }else{\n this.LENGTH_REAL_TEXTO_AREA_DEPOIMENTO = event.editor.root.innerHTML.length;\n }\n //quantidade de caracteres que realmente são exibidos no editor \n this.LENGTH_APARENTE_TEXTO_AREA_DEPOIMENTO = event.editor.getLength()-1;\n\n\n\n /********TEXTO DO DEPOIMENTO*********/\n }else if(field === this.DEPOIMENTO){\n\n if(event.editor.root.innerHTML.length>this.MAX_LENGTH_DEPOIMENTO){\n //retira o último caracter digitado +

o que totalizam 5 caracteres e depois add

novamente\n event.editor.root.innerHTML = event.editor.root.innerHTML.substr(0,this.MAX_LENGTH_DEPOIMENTO-4) + '

';\n \n //atualiza a propriedade associada ao editor\n this.curso.depoimentos[index].resumo = event.editor.root.innerHTML;\n\n }\n\n //o editor é iniciado com


quando está vazio\n if(event.editor.root.innerHTML==='


'){\n event.editor.root.innerHTML = '';\n this.LENGTH_REAL_DEPOIMENTO = 0;\n }else{\n this.LENGTH_REAL_DEPOIMENTO = event.editor.root.innerHTML.length;\n }\n //quantidade de caracteres que realmente são exibidos no editor \n this.LENGTH_APARENTE_DEPOIMENTO = event.editor.getLength()-1;\n \n }\n \n \n \n }\n\n\n async removeGradeCurricular(index: number){\n \n let gradeCurricular = this.curso.gradesCurriculares[index];\n\n const confirma = await this.functionsService.showConfirmAlert( \"Confirma?\"\n , \"Confirma a exclusão da grade curricular #\" + gradeCurricular.nome + \"?\"\n , \"Confirmar\"\n , \"Cancelar\" );\n\n\n if(!confirma){\n return;\n }\n\n this.functionsService.presentLoading();\n\n \n this.arquivoService.delete(gradeCurricular.id).subscribe(\n resp=>{\n this.curso.gradesCurriculares.splice(index,1);\n this.functionsService.dismissLoading();\n },\n error=>{\n console.log(error);\n this.functionsService.dismissLoading();\n }\n );\n }\n\n removeFromGaleriaFoto(index: number){\n \n this.functionsService.presentLoading();\n\n let foto = this.curso.galeriaFotos[index];\n this.arquivoService.delete(foto.id).subscribe(\n resp=>{\n this.curso.galeriaFotos.splice(index,1);\n this.functionsService.dismissLoading();\n },\n error=>{\n console.log(error);\n this.functionsService.dismissLoading();\n }\n );\n }\n\n\n removeFromGaleriaVideo(index: number){\n \n this.curso.galeriaVideos.splice(index,1);\n \n \n }\n\n removeVideoApresentacao(){\n \n this.curso.video = null;\n \n \n }\n\n\n removeFromGaleriaBanners(index: number){\n \n this.functionsService.presentLoading();\n\n let foto = this.curso.galeriaBanners[index];\n this.arquivoService.delete(foto.id).subscribe(\n resp=>{\n this.curso.galeriaBanners.splice(index,1);\n this.functionsService.dismissLoading();\n },\n error=>{\n console.log(error);\n this.functionsService.dismissLoading();\n }\n );\n }\n\n\n removeFromDepoimentos(index: number){\n \n this.functionsService.presentLoading();\n\n let depoimento = this.curso.depoimentos[index];\n\n if(depoimento.id){\n\n this.depoimentoService.delete(depoimento.id).subscribe(\n resp=>{\n this.curso.depoimentos.splice(index,1);\n this.functionsService.dismissLoading();\n },\n error=>{\n console.log(error);\n this.functionsService.dismissLoading();\n }\n );\n\n }else{\n this.curso.depoimentos.splice(index,1);\n this.functionsService.dismissLoading();\n }\n \n \n }\n\n open(arquivo: ArquivoDTO, newWindow: boolean = true){\n\n const publicURL = this.getFilePublicURL(arquivo.path, arquivo.nome);\n\n this.functionsService.goToPath(publicURL,newWindow);\n }\n\n\n enableGalery(toggleCarrosselImagens: IonToggle, toggleCarrosselBanners: IonToggle){\n\n if(toggleCarrosselImagens.checked){\n toggleCarrosselBanners.checked = false;\n this.accordionGroup.value = 'GaleriaFotos';\n }\n \n if(toggleCarrosselBanners.checked){\n toggleCarrosselImagens.checked = false;\n this.accordionGroup.value = 'GaleriaBanners';\n }\n\n }\n\n\n addDepoimento(){\n\n if(!this.curso.depoimentos){\n this.curso.depoimentos = [];\n }\n\n let depoimento = new DepoimentoDTO();\n depoimento.foto = new ArquivoDTO();\n depoimento.ordemExibicao = this.curso.depoimentos.length + 1;\n\n this.curso.depoimentos.push(depoimento);\n }\n\n\n changeOrdemDepoimento(index:number, move: number){\n //se move igual a +1 move pra frente, igual a -1 move pra traz\n\n //guarda o objeto que está na posição que se deseja movimentar\n let aux = this.curso.depoimentos[index];\n aux.ordemExibicao += (move); //nova ordem de exibição dele\n\n let vizinho = this.curso.depoimentos[index + (move)]; //o vizinho que está em aux + move vai pra posição do objeto movido\n vizinho.ordemExibicao -= (move);\n this.curso.depoimentos[index] = vizinho;\n \n this.curso.depoimentos[index + (move)] = aux; //a posição que era do vizinho recebe o objeto movido\n\n \n }\n\n\n getSlidesPerView(): number{\n \n if(screen.width>700){\n return 3;\n }else{\n return 1;\n }\n }\n\n\n validaUnidadesComTurnosHabilitados(): boolean {\n // Verifica se todas as unidades habilitadas têm pelo menos um turno habilitado\n return this.curso.disponibilidades.every(d => {\n\n if (d.habilitado && this.curso.modalidade.nome.toUpperCase()!='EAD') {\n // Verifica se a unidade habilitada possui turnos e pelo menos um turno habilitado\n return d.disponibilidadeTurnos?.length>0 && (d.disponibilidadeTurnos?.some(dt => dt.habilitado) ?? false);\n }\n return true; // Se a unidade não estiver habilitada, ignoramos a verificação\n });\n }\n\n \n\n save(){\n\n if(!this.validaUnidadesComTurnosHabilitados()){\n this.functionsService.showAlert('Atenção!', 'Se uma unidade estiver habilitada então ela deve oferecer ao menos um turno de aulas.', ['Ok']);\n return;\n }\n this.functionsService.presentLoading();\n \n\n this.processTags();\n\n if(!this.curso.id){\n\n //dados do usuário criador\n this.curso.criador = this.storageService.getUsuarioLogado();\n this.curso.dataCriacao = new Date();\n //o criador é o último editor\n this.curso.ultimoEditor = this.storageService.getUsuarioLogado();\n this.curso.dataUltimaEdicao = new Date();\n \n \n this.cursoService.insert(this.curso).subscribe(\n resp=>{\n\n this.curso = resp.body;\n this.functionsService.dismissLoading();\n this.functionsService.showAlert( \"Sucesso!\"\n , \"Dados salvos com sucesso!\"\n , ['Ok'] );\n\n },\n error=>{\n this.functionsService.dismissLoading();\n console.log(error);\n });\n \n }else{\n\n //dados do usuário que está logado editando\n this.curso.ultimoEditor = this.storageService.getUsuarioLogado();\n this.curso.dataUltimaEdicao = new Date();\n\n this.cursoService.update(this.curso).subscribe(\n resp=>{\n \n this.curso = resp.body;\n this.functionsService.dismissLoading();\n this.functionsService.showAlert( \"Sucesso!\"\n , \"Dados salvos com sucesso!\"\n , ['Ok'] );\n },\n error=>{\n this.functionsService.dismissLoading();\n console.log(error);\n });\n\n }\n \n\n }\n\n \n\n \n onUnidadeChange(event: any, unidade: UnidadeDTO) {\n if (event.target.checked) {\n\n if (!this.curso.disponibilidades) {\n this.curso.disponibilidades = [];\n }\n\n const index = this.curso.disponibilidades.findIndex(d => d.unidade.id === unidade.id);\n \n if (index == -1) {\n let disponibilidade = new DisponibilidadeCursoDTO;\n disponibilidade.unidade = unidade;\n disponibilidade.habilitado = true;\n this.curso.disponibilidades.push(disponibilidade);\n }else{\n this.curso.disponibilidades[index].habilitado = true;\n }\n \n } else {\n const index = this.curso.disponibilidades.findIndex(d => (d.unidade.id === unidade.id));\n if (index !== -1) {\n this.curso.disponibilidades[index].habilitado = false;\n }\n }\n }\n\n onTurnoChange(event: any, turno: TurnoDTO, unidade: UnidadeDTO) {\n let disponibilidade = this.curso.disponibilidades.find(d => d.unidade.id === unidade.id);\n\n if (disponibilidade) {\n \n if (event.target.checked) {\n\n if(!disponibilidade.disponibilidadeTurnos){\n disponibilidade.disponibilidadeTurnos = [];\n }\n\n const index = disponibilidade.disponibilidadeTurnos?.findIndex(dt => dt.turno.id === turno.id);\n \n if(index==-1){\n let dct = new DisponibilidadeCursoTurnoDTO();\n dct.turno = turno;\n dct.habilitado = true;\n disponibilidade.disponibilidadeTurnos.push(dct);\n }else{\n disponibilidade.disponibilidadeTurnos[index].habilitado = true;\n }\n \n } else {\n const index = disponibilidade.disponibilidadeTurnos.findIndex(dt => (dt.turno.id === turno.id && dt.habilitado));\n \n if (index !== -1) {\n disponibilidade.disponibilidadeTurnos[index].habilitado = false;\n }\n }\n }\n }\n\n isUnidadeSelected(unidade: UnidadeDTO): boolean {\n return this.curso.disponibilidades?.some(ut => (ut.unidade.id === unidade.id && ut.habilitado));\n }\n\n isTurnoSelected(turno: TurnoDTO, unidade: UnidadeDTO): boolean {\n const disponibilidade = this.curso.disponibilidades.find(ut => (ut.unidade.id === unidade.id && ut.habilitado));\n return disponibilidade ? disponibilidade.disponibilidadeTurnos?.some(dt => (dt.turno.id === turno.id && dt.habilitado)) : false;\n }\n\n\n getDisponibilidade(unidade: UnidadeDTO): DisponibilidadeCursoDTO | undefined {\n return this.curso.disponibilidades?.find(d => d.unidade.id === unidade.id && d.habilitado);\n }\n\n getDuracao(unidade: UnidadeDTO): string {\n return this.getDisponibilidade(unidade)?.duracao || '';\n }\n\n setDuracao(event: any, unidade: UnidadeDTO): void {\n const unidadeTurno = this.getDisponibilidade(unidade);\n if (unidadeTurno) {\n unidadeTurno.duracao = event.detail.value;\n }\n }\n\n getHabilitarDuracao(unidade: UnidadeDTO): boolean {\n return this.getDisponibilidade(unidade)?.habilitarDuracao || false;\n }\n\n setHabilitarDuracao(event: any, unidade: UnidadeDTO): void {\n const unidadeTurno = this.getDisponibilidade(unidade);\n if (unidadeTurno) {\n unidadeTurno.habilitarDuracao = event.detail.checked;\n }\n }\n\n // Repita a mesma lógica para Carga Horária e Investimento\n\n getCargaHoraria(unidade: UnidadeDTO): string {\n return this.getDisponibilidade(unidade)?.cargaHoraria || '';\n }\n\n setCargaHoraria(event: any, unidade: UnidadeDTO): void {\n const unidadeTurno = this.getDisponibilidade(unidade);\n if (unidadeTurno) {\n unidadeTurno.cargaHoraria = event.detail.value;\n }\n }\n\n getHabilitarCargaHoraria(unidade: UnidadeDTO): boolean {\n return this.getDisponibilidade(unidade)?.habilitarCargaHoraria || false;\n }\n\n setHabilitarCargaHoraria(event: any, unidade: UnidadeDTO): void {\n const unidadeTurno = this.getDisponibilidade(unidade);\n if (unidadeTurno) {\n unidadeTurno.habilitarCargaHoraria = event.detail.checked;\n }\n }\n\n getInvestimento(unidade: UnidadeDTO): string {\n return this.getDisponibilidade(unidade)?.investimento || '';\n }\n\n setInvestimento(event: any, unidade: UnidadeDTO): void {\n const unidadeTurno = this.getDisponibilidade(unidade);\n if (unidadeTurno) {\n unidadeTurno.investimento = event.detail.value;\n }\n }\n\n getHabilitarInvestimento(unidade: UnidadeDTO): boolean {\n return this.getDisponibilidade(unidade)?.habilitarInvestimento || false;\n }\n\n setHabilitarInvestimento(event: any, unidade: UnidadeDTO): void {\n const unidadeTurno = this.getDisponibilidade(unidade);\n if (unidadeTurno) {\n unidadeTurno.habilitarInvestimento = event.detail.checked;\n }\n }\n\n\n\n processTags(): void {\n if (this.curso.tagsInput) {\n // Separa as tags pela vírgula, remove espaços e filtra duplicatas e tags que ultrapassem 50 caracteres\n const tagsArray = this.curso.tagsInput.split(',')\n .map(tag => tag.trim())\n .filter((tag, index, self) => tag && tag.length <= 50 && self.indexOf(tag) === index);\n this.curso.tags = tagsArray;\n } else {\n this.curso.tags = [];\n }\n }\n \n\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { GcCadastrarCursoPage } from './gc-cadastrar-curso.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: GcCadastrarCursoPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class GcCadastrarCursoPageRoutingModule {}\n","import { SwiperModule } from 'swiper/angular';\nimport { QuillModule } from 'ngx-quill';\nimport { ComponentsModule } from '../../../../components/components.module';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { GcCadastrarCursoPageRoutingModule } from './gc-cadastrar-curso-routing.module';\n\nimport { GcCadastrarCursoPage } from './gc-cadastrar-curso.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n GcCadastrarCursoPageRoutingModule,\n ComponentsModule,\n QuillModule,\n SwiperModule\n ],\n declarations: [GcCadastrarCursoPage]\n})\nexport class GcCadastrarCursoPageModule {}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataSharingService {\n\n //serviço usado para emitir a mensagem para outros componentes que precisem saber quando o usuário está logado ou não\n public isUserLoggedIn: BehaviorSubject = new BehaviorSubject(false);\n \n //serviço usado para emitir a mensagem do header para a página gc-analisar-documentacao\n public idInscricaoSelecionada: BehaviorSubject = new BehaviorSubject(0);\n \n \n constructor() { }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { CursoDTO } from '../../models/curso/cursoDTO';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { API_CONFIG } from './../../config/api.config';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CursoService {\n\n constructor(private http: HttpClient){ \n }\n\n insert(cursoDTO: CursoDTO) : Observable {\n \n\n return this.http.post( API_CONFIG.apiURL+'/cursos'\n , cursoDTO\n , { observe: 'response' }); //.pipe(timeout(100000))\n\n }\n\n update(cursoDTO: CursoDTO) : Observable {\n \n return this.http.put( API_CONFIG.apiURL+'/cursos/' + cursoDTO.id\n , cursoDTO\n , { observe: 'response' });\n\n }\n\n\n findAll() : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/cursos');\n\n }\n\n findByFilter(filtro: string, page: number, pageSize: number, sort: string = 'ASC') : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/cursos/findByFilter?filter='+filtro+'&page='+page+'&size='+pageSize+'&sort='+sort);\n\n }\n\n findByFormacao(idFormacao: number) : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/cursos/findByFormacao?idFormacao='+idFormacao);\n\n }\n\n findByModalidadesAndFormacoesAndHabilitacoes(idsModalidades: number[], idsFormacoes: number[], idsHabilitacoes: number[]) : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/cursos/findByModalidadesAndFormacoesAndHabilitacoes?idsModalidades='+idsModalidades+'&idsFormacoes='+idsFormacoes+'&idsHabilitacoes='+idsHabilitacoes);\n\n }\n\n findByStatus(status: string) : Observable {\n \n return this.http.get( API_CONFIG.apiURL+'/cursos/findByStatus?status='+status);\n\n }\n\n \n find(id: number) : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/cursos/' + id);\n\n }\n\n delete(id: number) : Observable {\n\n return this.http.delete( `${API_CONFIG.apiURL}${'/cursos/'}${id}`);\n\n }\n\n\n getTextoCursosSelecionados(cursosSelecionados: CursoDTO[], todosCursos: CursoDTO[]){\n\n if(cursosSelecionados.length==0){\n\n return 'Nenhum curso selecionado';\n\n }else if(cursosSelecionados.length==todosCursos.length){\n \n return 'Todos os cursos';\n \n }else if(cursosSelecionados.length<4){\n \n let textoCursosSelecionados = '';\n for(var i=0; i {\n \n\n return this.http.post( API_CONFIG.apiURL+'/turnos'\n , turnoDTO\n , { observe: 'response' }); //.pipe(timeout(100000))\n\n }\n\n update(turnoDTO: TurnoDTO) : Observable {\n \n return this.http.put( API_CONFIG.apiURL+'/turnos/' + turnoDTO.id\n , turnoDTO\n , { observe: 'response' });\n\n }\n\n\n findAll() : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/turnos');\n\n }\n\n \n find(id: number) : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/turnos/' + id);\n\n }\n\n delete(id: number) : Observable {\n\n return this.http.delete( `${API_CONFIG.apiURL}${'/turnos/'}${id}`);\n\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { API_CONFIG } from 'src/app/config/api.config';\nimport { UnidadeDTO } from 'src/app/models/curso/unidadeDTO';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UnidadeService {\n\n constructor(private http: HttpClient){ \n }\n\n insert(unidadeDTO: UnidadeDTO) : Observable {\n \n\n return this.http.post( API_CONFIG.apiURL+'/unidades'\n , unidadeDTO\n , { observe: 'response' }); //.pipe(timeout(100000))\n\n }\n\n update(unidadeDTO: UnidadeDTO) : Observable {\n \n return this.http.put( API_CONFIG.apiURL+'/unidades/' + unidadeDTO.id\n , unidadeDTO\n , { observe: 'response' });\n\n }\n\n\n findAll() : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/unidades');\n\n }\n\n \n find(id: number) : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/unidades/' + id);\n\n }\n\n delete(id: number) : Observable {\n\n return this.http.delete( `${API_CONFIG.apiURL}${'/unidades/'}${id}`);\n\n }\n\n\n}\n"],"sourceRoot":"webpack:///","file":"705.8ca9cda682e04268.js"}