{"version":3,"sources":["webpack:///./src/components/state-kpi/state-kpi.ts","webpack:///./src/components/state-kpi/state-kpi.html","webpack:///./src/components/state-plan-copy/state-plan-copy.ts","webpack:///./src/components/state-plan-copy/state-plan-copy.html","webpack:///./src/components/state-plan-edit/state-plan-edit.ts","webpack:///./src/components/state-plan-edit/state-plan-edit.html","webpack:///./src/components/state-plan-view/state-plan-view.ts","webpack:///./src/components/state-plan-view/state-plan-view.html","webpack:///./src/components/state-report-edit/state-report-edit.ts","webpack:///./src/components/state-report-edit/state-report-edit.html","webpack:///./src/components/state-report-lastperiod-edit/state-report-lastperiod-edit.ts","webpack:///./src/components/state-report-lastperiod-edit/state-report-lastperiod-edit.html","webpack:///./src/components/state-report-view/state-report-view.ts","webpack:///./src/components/state-report-view/state-report-view.html"],"names":["service","activate","params","this","planid","attached","loadPlan","getPlan","statePlan","console","log","kpi","workingMeetingKpi","tarbiyahMeetingKpi","dawahEventKpi","associateMemberKpi","preliminaryMemberKpi","reportSubmissionKpi","description","reportStatus","organization","reportingPeriod","efficiencyPercentage","fiscalYear","expectedMeetingPerPeriod","expectedIncrease","periodKpiBreakdown","reduce","total","periodData","associateMemberActual","preliminaryMemberActual","workingMeetingActual","tarbiyahMeetingActual","dawahEventActual","overallEfficiency","statusSummary","unitCount","StateKpi","module","exports","reportingPeriodService","signalr","router","auth","ea","reportingPeriods","signalreventhandlers","copyPlan","copy","id","selectedReportingPeriod","year","reportingTerm","reportingFrequency","toastr","error","isCopyingPlan","onStatePlanCopied","success","navigate","onStatePlanCopyFailed","e","$values","join","key","hasOwnProperty","on","subscription","subscribe","_","detached","off","dispose","isSystemAdmin","getReportingPeriodsToCreatePlan","allReportingPeriods","filter","r","getNextReportingPeriod","nextReportingPeriod","StatePlanCopy","isSaving","isSubmitting","isCancelling","afterSave","initialJson","save","isDirty","updatePlan","getPlanData","submitPlan","saveAndSubmitPlan","push","onStatePlanUpdated","setInitialData","length","pop","onStatePlanUpdateFailed","onStatePlanSubmitted","onStatePlanSubmitFailed","initialData","JSON","stringify","makeMemberPlanData","associateMemberPlanData","preliminaryMemberPlanData","supporterMemberPlanData","memberMemberPlanData","makeUnitOrganizationPlanData","dawahUnitOrganizationPlanData","organizationUnitOrganizationPlanData","ymbUnitOrganizationPlanData","ymsUnitOrganizationPlanData","lmUnitOrganizationPlanData","makeMeetingProgramPlanData","workerMeetingProgramPlanData","cmsMeetingProgramPlanData","smMeetingProgramPlanData","memberMeetingProgramPlanData","makeDawahProgramPlanData","dawahMeetingProgramPlanData","stateLeaderMeetingProgramPlanData","stateOutingMeetingProgramPlanData","iftarMeetingProgramPlanData","learningMeetingProgramPlanData","socialDawahMeetingProgramPlanData","dawahGroupMeetingProgramPlanData","nextGMeetingProgramPlanData","tafsirMeetingProgramPlanData","unitMeetingProgramPlanData","bbqMeetingProgramPlanData","gatheringMeetingProgramPlanData","familyVisitMeetingProgramPlanData","eidReunionMeetingProgramPlanData","otherMeetingProgramPlanData","makeTeachingLearningProgramPlanData","groupStudyTeachingLearningProgramPlanData","studyCircleForAssociateMemberTeachingLearningProgramPlanData","studyCircleTeachingLearningProgramPlanData","practiceDarsTeachingLearningProgramPlanData","stateLearningCampTeachingLearningProgramPlanData","quranStudyTeachingLearningProgramPlanData","hadithTeachingLearningProgramPlanData","quranClassTeachingLearningProgramPlanData","weekendIslamicSchoolTeachingLearningProgramPlanData","memorizingAyatTeachingLearningProgramPlanData","memorizingHadithTeachingLearningProgramPlanData","memorizingDoaTeachingLearningProgramPlanData","stateLearningSessionTeachingLearningProgramPlanData","stateQiyamulLailTeachingLearningProgramPlanData","otherTeachingLearningProgramPlanData","makeSocialWelfarePlanData","qardeHasanaSocialWelfarePlanData","patientVisitSocialWelfarePlanData","socialVisitSocialWelfarePlanData","transportSocialWelfarePlanData","shiftingSocialWelfarePlanData","shoppingSocialWelfarePlanData","foodDistributionSocialWelfarePlanData","cleanUpAustraliaSocialWelfarePlanData","otherSocialWelfarePlanData","makeMaterialPlanData","bookSaleMaterialPlanData","bookDistributionMaterialPlanData","vhsSaleMaterialPlanData","vhsDistributionMaterialPlanData","emailDistributionMaterialPlanData","ipdcLeafletDistributionMaterialPlanData","otherSaleMaterialPlanData","otherDistributionMaterialPlanData","makeFinancePlanData","baitulMalFinancePlanData","aDayMasjidProjectFinancePlanData","masjidTableBankFinancePlanData","original","target","dateAndAction","nameAndContactNumber","action","upgradeTarget","workerPromiseIncreaseTarget","otherSourceAction","otherSourceIncreaseTarget","cancelChanges","StatePlanEdit","StatePlanView","updateReport","stateReport","reportid","getReportData","onStateReportUpdated","loadReport","onStateReportUpdateFailed","saveAndSubmitReport","submitReport","onReportSubmitted","onReportSubmitFailed","SingleTimeLastPeriodValuesUpdate","lastPeriodValuesUpdateNeeded","window","localStorage","Submitted","getItem","removeItem","updateReportLastPeriodFromModel","getReport","dto","makeMemberData","associateMemberData","preliminaryMemberData","supporterMemberData","memberMemberData","makeUnitOrganizationData","dawahUnitOrganizationData","organizationUnitOrganizationData","ymbUnitOrganizationData","ymsUnitOrganizationData","lmUnitOrganizationData","makeMeetingProgramData","workerMeetingProgramData","cmsMeetingProgramData","smMeetingProgramData","memberMeetingProgramData","makeDawahProgramData","dawahMeetingProgramData","stateLeaderMeetingProgramData","stateOutingMeetingProgramData","iftarMeetingProgramData","learningMeetingProgramData","socialDawahMeetingProgramData","dawahGroupMeetingProgramData","nextGMeetingProgramData","tafsirMeetingProgramData","unitMeetingProgramData","bbqMeetingProgramData","gatheringMeetingProgramData","familyVisitMeetingProgramData","eidReunionMeetingProgramData","otherMeetingProgramData","makeTeachingLearningProgramData","groupStudyTeachingLearningProgramData","studyCircleForAssociateMemberTeachingLearningProgramData","studyCircleTeachingLearningProgramData","practiceDarsTeachingLearningProgramData","stateLearningCampTeachingLearningProgramData","quranStudyTeachingLearningProgramData","hadithTeachingLearningProgramData","quranClassTeachingLearningProgramData","weekendIslamicSchoolTeachingLearningProgramData","memorizingAyatTeachingLearningProgramData","memorizingHadithTeachingLearningProgramData","memorizingDoaTeachingLearningProgramData","stateLearningSessionTeachingLearningProgramData","stateQiyamulLailTeachingLearningProgramData","otherTeachingLearningProgramData","makeMaterialData","bookSaleMaterialData","bookDistributionMaterialData","vhsSaleMaterialData","vhsDistributionMaterialData","emailDistributionMaterialData","ipdcLeafletDistributionMaterialData","otherSaleMaterialData","otherDistributionMaterialData","makeLibraryStockData","bookLibraryStockData","vhsLibraryStockData","otherLibraryStockData","makeFinanceData","baitulMalFinanceData","aDayMasjidProjectFinanceData","masjidTableBankFinanceData","makeSocialWelfareData","qardeHasanaSocialWelfareData","patientVisitSocialWelfareData","socialVisitSocialWelfareData","transportSocialWelfareData","shiftingSocialWelfareData","shoppingSocialWelfareData","foodDistributionSocialWelfareData","cleanUpAustraliaSocialWelfareData","otherSocialWelfareData","comment","lastPeriod","thisPeriod","increased","decreased","personalContact","actual","averageAttendance","workerPromiseLastPeriod","workerPromiseIncreased","workerPromiseDecreased","workerPromiseThisPeriod","totalIncreaseTarget","collection","expense","nisabPaidToCentral","balance","StateReportEdit","updateReportLastPeriod","getReportLastPeriodUpdateData","makeFinanceReportData","makeLibraryStockReportData","StateReportLastPeriodEdit","isDownloadingList","isDownloadingDetail","isResettingPlan","isResettingReport","isRecalculatingPlan","isRecalculatingYPlanFromQ","isRecalculatingReport","isRecalculatingYReportFromQ","getStateReport","StateReportView"],"mappings":"i8DAOA,aAII,WAAmBA,GAAA,KAAAA,UA4HvB,OA1HI,YAAAC,SAAA,SAASC,GACLC,KAAKC,OAASF,EAAOE,QAGnB,YAAAC,SAAN,W,wFACI,SAAMF,KAAKG,Y,cAAX,S,UAGE,YAAAA,SAAN,W,8FACqB,OAAjB,EAAAH,KAAiB,GAAMA,KAAKH,QAAQO,QAAQJ,KAAKC,QAAQ,I,cAAzD,EAAKI,UAAY,SACjBC,QAAQC,IAAI,cAAeP,KAAKK,WAChCL,KAAKQ,IAAMR,KAAKK,UAAUG,IAC1BF,QAAQC,IAAI,YAAaP,KAAKQ,KAC1BR,KAAKQ,MACLF,QAAQC,IAAI,uBAAwBP,KAAKQ,IAAIC,mBAC7CH,QAAQC,IAAI,wBAAyBP,KAAKQ,IAAIE,oBAC9CJ,QAAQC,IAAI,mBAAoBP,KAAKQ,IAAIG,eACzCL,QAAQC,IAAI,wBAAyBP,KAAKQ,IAAII,oBAC9CN,QAAQC,IAAI,0BAA2BP,KAAKQ,IAAIK,sBAChDP,QAAQC,IAAI,yBAA0BP,KAAKQ,IAAIM,sB,UAIvD,sBAAI,yBAAU,C,IAAd,WACI,GAAId,KAAKK,UACT,OAAO,IAAI,IAAqB,aAAcL,KAAKC,OAAQD,KAAKK,UAAUU,YAAaf,KAAKK,UAAUW,aAAchB,KAAKK,UAAUY,aAAcjB,KAAKK,UAAUa,kB,gCAGpK,sBAAI,gCAAiB,C,IAArB,WACI,OAAOlB,KAAKQ,IAAIC,kBAAkBU,sB,gCAGtC,sBAAI,iCAAkB,C,IAAtB,WACI,OAAOnB,KAAKQ,IAAIE,mBAAmBS,sB,gCAGvC,sBAAI,4BAAa,C,IAAjB,WACI,OAAOnB,KAAKQ,IAAIG,cAAcQ,sB,gCAGlC,sBAAI,iCAAkB,C,IAAtB,WACI,OAAOnB,KAAKQ,IAAII,mBAAmBO,sB,gCAGvC,sBAAI,mCAAoB,C,IAAxB,WACI,OAAOnB,KAAKQ,IAAIK,qBAAqBM,sB,gCAGzC,sBAAI,kCAAmB,C,IAAvB,WACI,OAAOnB,KAAKQ,IAAIM,oBAAoBK,sB,gCAGxC,sBAAI,yBAAU,C,IAAd,WACI,OAAOnB,KAAKQ,IAAIY,Y,gCAGpB,sBAAI,4CAA6B,C,IAAjC,WACI,OAAKpB,KAAKQ,KAAQR,KAAKQ,IAAIC,kBACpBT,KAAKQ,IAAIC,kBAAkBY,yBADmB,G,gCAIzD,sBAAI,6CAA8B,C,IAAlC,WACI,OAAKrB,KAAKQ,KAAQR,KAAKQ,IAAIE,mBACpBV,KAAKQ,IAAIE,mBAAmBW,yBADmB,G,gCAI1D,sBAAI,wCAAyB,C,IAA7B,WACI,OAAKrB,KAAKQ,KAAQR,KAAKQ,IAAIG,cACpBX,KAAKQ,IAAIG,cAAcU,yBADmB,G,gCAIrD,sBAAI,uCAAwB,C,IAA5B,WACI,OAAKrB,KAAKQ,KAAQR,KAAKQ,IAAII,mBACpBZ,KAAKQ,IAAII,mBAAmBU,iBADmB,G,gCAI1D,sBAAI,uCAAwB,C,IAA5B,WACI,OAAKtB,KAAKQ,KAAQR,KAAKQ,IAAIK,qBACpBb,KAAKQ,IAAIK,qBAAqBS,iBADmB,G,gCAI5D,sBAAI,oCAAqB,C,IAAzB,WACI,OAAKtB,KAAKQ,KAAQR,KAAKQ,IAAIe,mBACpBvB,KAAKQ,IAAIe,mBAAmBC,OAAO,SAACC,EAAOC,GAC9C,OAAAD,EAAQC,EAAWC,uBAAuB,GAFQ,G,gCAK1D,sBAAI,sCAAuB,C,IAA3B,WACI,OAAK3B,KAAKQ,KAAQR,KAAKQ,IAAIe,mBACpBvB,KAAKQ,IAAIe,mBAAmBC,OAAO,SAACC,EAAOC,GAC9C,OAAAD,EAAQC,EAAWE,yBAAyB,GAFM,G,gCAK1D,sBAAI,mCAAoB,C,IAAxB,WACI,OAAK5B,KAAKQ,KAAQR,KAAKQ,IAAIe,mBACpBvB,KAAKQ,IAAIe,mBAAmBC,OAAO,SAACC,EAAOC,GAC9C,OAAAD,EAAQC,EAAWG,sBAAsB,GAFS,G,gCAK1D,sBAAI,oCAAqB,C,IAAzB,WACI,OAAK7B,KAAKQ,KAAQR,KAAKQ,IAAIe,mBACpBvB,KAAKQ,IAAIe,mBAAmBC,OAAO,SAACC,EAAOC,GAC9C,OAAAD,EAAQC,EAAWI,uBAAuB,GAFQ,G,gCAK1D,sBAAI,+BAAgB,C,IAApB,WACI,OAAK9B,KAAKQ,KAAQR,KAAKQ,IAAIe,mBACpBvB,KAAKQ,IAAIe,mBAAmBC,OAAO,SAACC,EAAOC,GAC9C,OAAAD,EAAQC,EAAWK,kBAAkB,GAFa,G,gCAK1D,sBAAI,gCAAiB,C,IAArB,WACI,OAAO/B,KAAKQ,IAAIwB,mB,gCAGpB,sBAAI,4BAAa,C,IAAjB,WACI,OAAOhC,KAAKQ,IAAIyB,e,gCAGpB,sBAAI,wBAAS,C,IAAb,WACI,OAAOjC,KAAKQ,IAAMR,KAAKQ,IAAI0B,UAAY,G,gCA9HlCC,EAAQ,GADpB,I,uBAK+B,OAJnBA,GAAb,I,kFCPAC,EAAOC,QAAU,wxL,q/DCajB,aASI,WAAmBxC,EAAwCyC,EAAuDC,EACvGC,EAA0BC,EAA0BC,GAD/D,WAAmB,KAAA7C,UAAwC,KAAAyC,yBAAuD,KAAAC,UACvG,KAAAC,SAA0B,KAAAC,OAA0B,KAAAC,KAP/D,KAAAC,iBAA+C,GAI/C,KAAAC,qBAA4B,GAiD5B,KAAAC,SAAW,+C,uDAEH,O,sBAAA,GAAM7C,KAAKH,QAAQiD,KAAK9C,KAAKK,UAAU0C,GAAI/C,KAAKK,UAAUY,aACtDjB,KAAKgD,wBAAwBC,KAAMjD,KAAKgD,wBAAwBE,cAAelD,KAAKgD,wBAAwBG,qB,cADhH,S,aAIA,O,WADAC,OAAOC,MAAM,GACb,I,cAEJrD,KAAKsD,eAAgB,E,UAGzB,KAAAC,kBAAoB,SAACtD,GACjBmD,OAAOI,QAAQ,eACf,EAAKhB,OAAOiB,SAAS,mBAAmBxD,IAG5C,KAAAyD,sBAAwB,SAACC,GACrB,EAAKL,eAAgB,EACrBF,OAAOC,MAAMM,EAAEC,QAAQC,KAAK,QA/D5B7D,KAAK4C,qBAAuB,CACxB,gBAAmB5C,KAAKuD,kBACxB,oBAAuBvD,KAAK0D,uBA+DxC,OA3DI,YAAA5D,SAAA,SAASC,GACLC,KAAKC,OAASF,EAAOE,QAGnB,YAAAC,SAAN,W,qGACI,IAAW4D,KAAO9D,KAAK4C,qBACf5C,KAAK4C,qBAAqBmB,eAAeD,IACzC9D,KAAKuC,QAAQyB,GAAGF,EAAK9D,KAAK4C,qBAAqBkB,IAIvD,OADA9D,KAAKiE,aAAejE,KAAK0C,GAAGwB,UAAU,IAAoB,SAAAC,GAAK,SAAKhE,aACpE,GAAMH,KAAKG,Y,cAAX,S,UAGJ,YAAAiE,SAAA,WACI,IAAI,IAAMN,KAAO9D,KAAK4C,qBACd5C,KAAK4C,qBAAqBmB,eAAeD,IACzC9D,KAAKuC,QAAQ8B,IAAIP,EAAK9D,KAAK4C,qBAAqBkB,IAGxD9D,KAAKiE,aAAaK,WAGhB,YAAAnE,SAAN,W,yGACqB,OAAjB,EAAAH,KAAiB,GAAMA,KAAKH,QAAQO,QAAQJ,KAAKC,S,cAAjD,EAAKI,UAAY,SACdL,KAAKyC,KAAK8B,cACmB,GAAMvE,KAAKsC,uBAAuBkC,gCAAgCxE,KAAKK,UAAUY,aAAa8B,KAD3H,M,cACO0B,EAAsB,SAC5BzE,KAAK2C,iBAAmB8B,EAAoBC,OAAO,SAAAC,GAAK,OAAAA,EAAExB,qBAAuB,EAAK9C,UAAUa,gBAAgBiC,qB,aAEpF,SAAMnD,KAAKsC,uBAAuBsC,uBAAuB5E,KAAKK,UAAU0C,K,OAA9F8B,EAAsB,SAC5B7E,KAAK2C,iBAAmB,CAACkC,G,iCAIjC,sBAAI,yBAAU,C,IAAd,WACI,GAAI7E,KAAKK,UACT,OAAO,IAAI,IAAqB,aAAcL,KAAKC,OAAQD,KAAKK,UAAUU,YAAaf,KAAKK,UAAUW,aAAchB,KAAKK,UAAUY,aAAcjB,KAAKK,UAAUa,kB,gCArD3J4D,EAAa,GADzB,I,uBAU+B,IAAuD,IAAwC,IACxG,IAAwB,IAAyB,OAV3DA,GAAb,I,8FCbA1C,EAAOC,QAAU,wrE,qlECoBjB,aAWI,WAAmBxC,EAAwC0C,EAAgCC,EAA0BE,GAArH,WAAmB,KAAA7C,UAAwC,KAAA0C,UAAgC,KAAAC,SAA0B,KAAAE,KARrH,KAAAqC,UAAW,EACX,KAAAC,cAAe,EACf,KAAAC,cAAe,EACf,KAAAC,UAAqC,GACrC,KAAAC,YAAc,GAEd,KAAAvC,qBAA2B,GAiJ3B,KAAAwC,KAAO,+C,uDACH,IAAKpF,KAAKqF,QAAS,U,iBAEf,O,sBAAA,GAAMrF,KAAKH,QAAQyF,WAAWtF,KAAKK,UAAUY,aAAa8B,GAAI/C,KAAKC,OAAQD,KAAKuF,gB,cAAhF,SACAvF,KAAK+E,UAAW,E,+BAEhB,QAAa,EAAO,qB,6BAI5B,KAAAS,WAAa,+C,uDAEP,O,sBAAA,GAAMxF,KAAKH,QAAQ2F,WAAWxF,KAAKK,UAAUY,aAAa8B,GAAI/C,KAAKC,S,cAAnE,SACAD,KAAKgF,cAAe,E,+BAEpB,QAAa,EAAO,yB,6BAI5B,KAAAS,kBAAoB,+C,wDACZzF,KAAKqF,QAEP,GAAMrF,KAAKoF,QAFT,M,OAIF,OAFA,SACApF,KAAKkF,UAAUQ,KAAK1F,KAAKwF,YACzB,I,OAEF,SAAMxF,KAAKwF,c,cAAX,S,UA0BF,KAAAG,mBAAqB,SAAO5C,GAAU,oC,iDAIlC,OAHA/C,KAAK+E,UAAW,EAChB,UAAe,cACf/E,KAAK4F,iBACwB,IAA1B5F,KAAKkF,UAAUW,OAAc,IAChC,GAAM7F,KAAKkF,UAAUY,KAAf9F,I,cAAN,S,UAGJ,KAAA+F,wBAA0B,SAACpC,GACvB,EAAKoB,UAAW,EAChB,QAAapB,EAAEC,QAAQC,KAAK,MAAO,qBACN,IAA1B,EAAKqB,UAAUW,QAClB,EAAKX,UAAUY,OAGrB,KAAAE,qBAAuB,SAACjD,GACpB,EAAKiC,cAAe,EACpB,UAAe,kBACf,EAAKxC,OAAOiB,SAAS,mBAAmBV,IAG5C,KAAAkD,wBAA0B,SAACtC,GACvB,EAAKqB,cAAe,EACpB,QAAarB,EAAEC,QAAQC,KAAK,MAAO,0BAzNjC7D,KAAK4C,qBAAuB,CACxB,iBAAoB5C,KAAK2F,mBACzB,sBAAyB3F,KAAK+F,wBAC9B,mBAAsB/F,KAAKgG,qBAC3B,sBAAyBhG,KAAKiG,yBA6N1C,OAzNI,YAAAnG,SAAA,SAASC,GACLC,KAAKC,OAASF,EAAOE,QAGnB,YAAAC,SAAN,W,qGACI,IAAW4D,KAAO9D,KAAK4C,qBACf5C,KAAK4C,qBAAqBmB,eAAeD,IACzC9D,KAAKuC,QAAQyB,GAAGF,EAAK9D,KAAK4C,qBAAqBkB,IAIvD,OADA9D,KAAKiE,aAAejE,KAAK0C,GAAGwB,UAAU,IAAoB,SAAAC,GAAK,SAAKhE,aACpE,GAAMH,KAAKG,Y,cAAX,S,UAGJ,YAAAiE,SAAA,WACI,IAAK,IAAMN,KAAO9D,KAAK4C,qBACf5C,KAAK4C,qBAAqBmB,eAAeD,IACzC9D,KAAKuC,QAAQ8B,IAAIP,EAAK9D,KAAK4C,qBAAqBkB,IAGxD9D,KAAKiE,aAAaK,WAGhB,YAAAnE,SAAN,W,8FACsB,SAAMH,KAAKH,QAAQO,QAAQJ,KAAKC,S,cAA5CI,EAAY,SAClBL,KAAKK,UAAYA,EACjBL,KAAK4F,iB,UAGT,YAAAA,eAAA,WACI,IAAMM,EAAclG,KAAKuF,cACzBvF,KAAKmF,YAAcgB,KAAKC,UAAUF,IAGtC,YAAAX,YAAA,WACI,OAAO,IAAI,IACPvF,KAAKqG,mBAAmBrG,KAAKK,UAAUiG,yBACvCtG,KAAKqG,mBAAmBrG,KAAKK,UAAUkG,2BACvCvG,KAAKqG,mBAAmBrG,KAAKK,UAAUmG,yBACvCxG,KAAKqG,mBAAmBrG,KAAKK,UAAUoG,sBACvCzG,KAAK0G,6BAA6B1G,KAAKK,UAAUsG,+BACjD3G,KAAK0G,6BAA6B1G,KAAKK,UAAUuG,sCACjD5G,KAAK0G,6BAA6B1G,KAAKK,UAAUwG,6BACjD7G,KAAK0G,6BAA6B1G,KAAKK,UAAUyG,6BACjD9G,KAAK0G,6BAA6B1G,KAAKK,UAAU0G,4BACjD/G,KAAKgH,2BAA2BhH,KAAKK,UAAU4G,8BAC/CjH,KAAKgH,2BAA2BhH,KAAKK,UAAU6G,2BAC/ClH,KAAKgH,2BAA2BhH,KAAKK,UAAU8G,0BAC/CnH,KAAKgH,2BAA2BhH,KAAKK,UAAU+G,8BAC/CpH,KAAKqH,yBAAyBrH,KAAKK,UAAUiH,6BAC7CtH,KAAKgH,2BAA2BhH,KAAKK,UAAUkH,mCAC/CvH,KAAKqH,yBAAyBrH,KAAKK,UAAUmH,mCAC7CxH,KAAKgH,2BAA2BhH,KAAKK,UAAUoH,6BAC/CzH,KAAKgH,2BAA2BhH,KAAKK,UAAUqH,gCAC/C1H,KAAKqH,yBAAyBrH,KAAKK,UAAUsH,mCAC7C3H,KAAKgH,2BAA2BhH,KAAKK,UAAUuH,kCAC/C5H,KAAKgH,2BAA2BhH,KAAKK,UAAUwH,6BAC/C7H,KAAKgH,2BAA2BhH,KAAKK,UAAUyH,8BAC/C9H,KAAKgH,2BAA2BhH,KAAKK,UAAU0H,4BAC/C/H,KAAKgH,2BAA2BhH,KAAKK,UAAU2H,2BAC/ChI,KAAKgH,2BAA2BhH,KAAKK,UAAU4H,iCAC/CjI,KAAKgH,2BAA2BhH,KAAKK,UAAU6H,mCAC/ClI,KAAKgH,2BAA2BhH,KAAKK,UAAU8H,kCAC/CnI,KAAKgH,2BAA2BhH,KAAKK,UAAU+H,6BAC/CpI,KAAKqI,oCAAoCrI,KAAKK,UAAUiI,2CACxDtI,KAAKqI,oCAAoCrI,KAAKK,UAAUkI,8DACxDvI,KAAKqI,oCAAoCrI,KAAKK,UAAUmI,4CACxDxI,KAAKqI,oCAAoCrI,KAAKK,UAAUoI,6CACxDzI,KAAKqI,oCAAoCrI,KAAKK,UAAUqI,kDACxD1I,KAAKqI,oCAAoCrI,KAAKK,UAAUsI,2CACxD3I,KAAKqI,oCAAoCrI,KAAKK,UAAUuI,uCACxD5I,KAAKqI,oCAAoCrI,KAAKK,UAAUwI,2CACxD7I,KAAKqI,oCAAoCrI,KAAKK,UAAUyI,qDACxD9I,KAAKqI,oCAAoCrI,KAAKK,UAAU0I,+CACxD/I,KAAKqI,oCAAoCrI,KAAKK,UAAU2I,iDACxDhJ,KAAKqI,oCAAoCrI,KAAKK,UAAU4I,8CACxDjJ,KAAKqI,oCAAoCrI,KAAKK,UAAU6I,qDACxDlJ,KAAKqI,oCAAoCrI,KAAKK,UAAU8I,iDACxDnJ,KAAKqI,oCAAoCrI,KAAKK,UAAU+I,sCACxDpJ,KAAKqJ,0BAA0BrJ,KAAKK,UAAUiJ,kCAC9CtJ,KAAKqJ,0BAA0BrJ,KAAKK,UAAUkJ,mCAC9CvJ,KAAKqJ,0BAA0BrJ,KAAKK,UAAUmJ,kCAC9CxJ,KAAKqJ,0BAA0BrJ,KAAKK,UAAUoJ,gCAC9CzJ,KAAKqJ,0BAA0BrJ,KAAKK,UAAUqJ,+BAC9C1J,KAAKqJ,0BAA0BrJ,KAAKK,UAAUsJ,+BAC9C3J,KAAKqJ,0BAA0BrJ,KAAKK,UAAUuJ,uCAC9C5J,KAAKqJ,0BAA0BrJ,KAAKK,UAAUwJ,uCAC9C7J,KAAKqJ,0BAA0BrJ,KAAKK,UAAUyJ,4BAC9C9J,KAAK+J,qBAAqB/J,KAAKK,UAAU2J,0BACzChK,KAAK+J,qBAAqB/J,KAAKK,UAAU4J,kCACzCjK,KAAK+J,qBAAqB/J,KAAKK,UAAU6J,yBACzClK,KAAK+J,qBAAqB/J,KAAKK,UAAU8J,iCACzCnK,KAAK+J,qBAAqB/J,KAAKK,UAAU+J,mCACzCpK,KAAK+J,qBAAqB/J,KAAKK,UAAUgK,yCACzCrK,KAAK+J,qBAAqB/J,KAAKK,UAAUiK,2BACzCtK,KAAK+J,qBAAqB/J,KAAKK,UAAUkK,mCACzCvK,KAAKwK,oBAAoBxK,KAAKK,UAAUoK,0BACxCzK,KAAKwK,oBAAoBxK,KAAKK,UAAUqK,kCACxC1K,KAAKwK,oBAAoBxK,KAAKK,UAAUsK,kCAIxC,YAAA3D,2BAAR,SAAmC4D,GAC/B,OAAO,IAAI,IAAuBA,EAASC,OAAQD,EAASE,gBAGxD,YAAAzE,mBAAR,SAA2BuE,GACvB,OAAO,IAAI,IAAeA,EAASG,qBAAsBH,EAASI,OAAQJ,EAASK,gBAG/E,YAAAvE,6BAAR,SAAqCkE,GACjC,OAAO,IAAI,IAAyBA,EAASI,OAAQJ,EAASK,gBAG1D,YAAA5C,oCAAR,SAA4CuC,GACxC,OAAO,IAAI,IAAgCA,EAASC,OAAQD,EAASE,gBAGjE,YAAAzD,yBAAR,SAAiCuD,GAC7B,OAAO,IAAI,IAAqBA,EAASC,OAAQD,EAASE,gBAGtD,YAAAf,qBAAR,SAA6Ba,GACzB,OAAO,IAAI,IAAiBA,EAASC,OAAQD,EAASE,gBAGlD,YAAAN,oBAAR,SAA4BI,GACxB,OAAO,IAAI,IAAgBA,EAASI,OAAQJ,EAASM,4BAA6BN,EAASO,kBAAmBP,EAASQ,4BAGnH,YAAA/B,0BAAR,SAAkCuB,GAC9B,OAAO,IAAI,IAAsBA,EAASC,OAAQD,EAASE,gBAgC/D,sBAAI,sBAAO,C,IAAX,WAEI,OADmB3E,KAAKC,UAAUpG,KAAKuF,iBACjBvF,KAAKmF,a,gCAGzB,YAAAkG,cAAN,W,wFAEI,OADArL,KAAKiF,cAAe,EACpB,GAAMjF,KAAKG,Y,cAAX,SACAH,KAAKiF,cAAe,E,UAGxB,sBAAI,sBAAO,C,IAAX,WACI,OAAOjF,KAAKqF,UAAYrF,KAAKiF,eAAiBjF,KAAK+E,WAAa/E,KAAKgF,c,gCAGzE,sBAAI,wBAAS,C,IAAb,WACI,OAAQhF,KAAKiF,eAAiBjF,KAAK+E,WAAa/E,KAAKgF,c,gCAGzD,sBAAI,wBAAS,C,IAAb,WACE,QAAQhF,KAAKqF,SAAYrF,KAAKiF,cAAiBjF,KAAK+E,UAAa/E,KAAKgF,e,gCA6B1E,sBAAI,yBAAU,C,IAAd,WACI,GAAIhF,KAAKK,UACT,OAAO,IAAI,IAAqB,aAAcL,KAAKC,OAAQD,KAAKK,UAAUU,YAAaf,KAAKK,UAAUW,aAAchB,KAAKK,UAAUY,aAAcjB,KAAKK,UAAUa,kB,gCA1OzJoK,EAAa,GADzB,I,uBAY+B,IAAwC,IAA+B,IAAuB,OAXjHA,GAAb,I,8FCpBAlJ,EAAOC,QAAU,sioB,q8DCQjB,aAII,WAAmBxC,EAAwC6C,GAAxC,KAAA7C,UAAwC,KAAA6C,KAuB/D,OArBI,YAAA5C,SAAA,SAASC,GACLC,KAAKC,OAASF,EAAOE,QAGnB,YAAAC,SAAN,W,mGAEI,OADAF,KAAKiE,aAAejE,KAAK0C,GAAGwB,UAAU,IAAoB,SAAAC,GAAK,SAAKhE,aACpE,GAAMH,KAAKG,Y,cAAX,S,UAGJ,YAAAiE,SAAA,WACIpE,KAAKiE,aAAaK,WAGhB,YAAAnE,SAAN,W,8FACqB,OAAjB,EAAAH,KAAiB,GAAMA,KAAKH,QAAQO,QAAQJ,KAAKC,S,cAAjD,EAAKI,UAAY,S,UAGrB,sBAAI,yBAAU,C,IAAd,WACI,GAAIL,KAAKK,UACT,OAAO,IAAI,IAAqB,aAAcL,KAAKC,OAAQD,KAAKK,UAAUU,YAAaf,KAAKK,UAAUW,aAAchB,KAAKK,UAAUY,aAAcjB,KAAKK,UAAUa,kB,gCAzB3JqK,EAAa,GADzB,I,uBAK+B,IAAoC,OAJvDA,GAAb,I,8FCRAnJ,EAAOC,QAAU,ogkB,mnECsBjB,aAYI,WAAmBxC,EAAwC0C,EAAgCC,EAA0BE,GAArH,WAAmB,KAAA7C,UAAwC,KAAA0C,UAAgC,KAAAC,SAA0B,KAAAE,KATrH,KAAAqC,UAAW,EACX,KAAAC,cAAe,EACf,KAAAC,cAAe,EACf,KAAAC,UAAqC,GAErC,KAAAC,YAAc,GAEd,KAAAvC,qBAA4B,GAyI5B,KAAAwC,KAAO,+C,uDAEC,O,sBAAA,GAAMpF,KAAKH,QAAQ2L,aAAaxL,KAAKyL,YAAYxK,aAAa8B,GAAI/C,KAAK0L,SAAU1L,KAAK2L,kB,cAAtF,S,aAGA,O,WADA,QAAa,EAAO,uBACpB,I,cAEJ3L,KAAK+E,UAAW,EAChB,UAAe,gB,UA0EnB,KAAA6G,qBAAuB,SAAO7I,GAAU,oC,iDAEpC,OADA/C,KAAK+E,UAAW,EAChB,GAAM/E,KAAK6L,WAAW,I,OACtB,OADA,SAC6B,IAA1B7L,KAAKkF,UAAUW,OAAc,IAChC,GAAM7F,KAAKkF,UAAUY,KAAf9F,I,cAAN,S,UAGJ,KAAA8L,0BAA4B,SAACnI,GACzB,EAAKoB,UAAW,EAChB,QAAapB,EAAEC,QAAQC,KAAK,MAAO,uBACN,IAA1B,EAAKqB,UAAUW,QAClB,EAAKX,UAAUY,OAGnB,KAAAiG,oBAAsB,+C,wDACd/L,KAAKqF,QAEP,GAAMrF,KAAKoF,QAFT,M,OAIF,OAFA,SACApF,KAAKkF,UAAUQ,KAAK1F,KAAKgM,cACzB,I,OAEF,SAAMhM,KAAKgM,gB,cAAX,S,UAGJ,KAAAA,aAAe,+C,uDAEP,O,sBAAA,GAAMhM,KAAKH,QAAQmM,aAAahM,KAAKyL,YAAYxK,aAAa8B,GAAI/C,KAAK0L,W,cAAvE,S,+BAEA,QAAa,EAAO,2B,oBAExB1L,KAAKgF,cAAe,E,UAGxB,KAAAiH,kBAAoB,SAAClJ,GACjB,EAAKiC,cAAe,EACpB,UAAe,oBACf,EAAKxC,OAAOiB,SAAS,qBAAqBV,IAG9C,KAAAmJ,qBAAuB,SAACvI,GACpB,EAAKqB,cAAe,EACpB,QAAarB,EAAEC,QAAQC,KAAK,MAAO,4BAjQnC7D,KAAK4C,qBAAuB,CACxB,mBAAsB5C,KAAK4L,qBAC3B,wBAA2B5L,KAAK8L,0BAChC,gBAAmB9L,KAAKiM,kBACxB,mBAAsBjM,KAAKkM,sBAoQvC,OAhQI,YAAApM,SAAA,SAASC,GACLC,KAAK0L,SAAW3L,EAAO2L,UAGrB,YAAAxL,SAAN,W,qGACI,IAAW4D,KAAO9D,KAAK4C,qBACf5C,KAAK4C,qBAAqBmB,eAAeD,IACzC9D,KAAKuC,QAAQyB,GAAGF,EAAK9D,KAAK4C,qBAAqBkB,IAIvD,OADA9D,KAAKiE,aAAejE,KAAK0C,GAAGwB,UAAU,IAAoB,SAAAC,GAAK,SAAK0H,WAAW,KAC/E,GAAM7L,KAAK6L,WAAW,I,cAAtB,S,UAGJ,YAAAzH,SAAA,WACI,IAAK,IAAMN,KAAO9D,KAAK4C,qBACf5C,KAAK4C,qBAAqBmB,eAAeD,IACzC9D,KAAKuC,QAAQ8B,IAAIP,EAAK9D,KAAK4C,qBAAqBkB,IAGxD9D,KAAKiE,aAAaK,WAGtB,YAAA6H,iCAAA,SAAiCC,GAQzBC,OAAOC,cAAiD,IAAjCF,GAAsCpM,KAAKyL,YAAYzK,eAAiB,IAAauL,YACvGF,OAAOC,aAAaE,QAAQ,aAK7BH,OAAOC,aAAaG,WAAW,cAJ/BzM,KAAKH,QAAQ6M,gCAAgC1M,KAAK0L,UAClDW,OAAOC,aAAwB,WAAI,KAQzC,YAAAT,WAAN,SAAiBO,G,8FACD,SAAMpM,KAAKH,QAAQ8M,UAAU3M,KAAK0L,W,cAAxCkB,EAAM,SACZ5M,KAAKyL,YAAcmB,EACnB5M,KAAK4F,iBACL5F,KAAKmM,iCAAiCC,G,UAG1C,YAAAxG,eAAA,WACI,IAAMM,EAAclG,KAAK2L,gBACzB3L,KAAKmF,YAAcgB,KAAKC,UAAUF,IAGtC,YAAAyF,cAAA,WACI,OAAO,IAAI,IACP3L,KAAK6M,eAAe7M,KAAKyL,YAAYqB,qBACrC9M,KAAK6M,eAAe7M,KAAKyL,YAAYsB,uBACrC/M,KAAK6M,eAAe7M,KAAKyL,YAAYuB,qBACrChN,KAAK6M,eAAe7M,KAAKyL,YAAYwB,kBACrCjN,KAAKkN,yBAAyBlN,KAAKyL,YAAY0B,2BAC/CnN,KAAKkN,yBAAyBlN,KAAKyL,YAAY2B,kCAC/CpN,KAAKkN,yBAAyBlN,KAAKyL,YAAY4B,yBAC/CrN,KAAKkN,yBAAyBlN,KAAKyL,YAAY6B,yBAC/CtN,KAAKkN,yBAAyBlN,KAAKyL,YAAY8B,wBAC/CvN,KAAKwN,uBAAuBxN,KAAKyL,YAAYgC,0BAC7CzN,KAAKwN,uBAAuBxN,KAAKyL,YAAYiC,uBAC7C1N,KAAKwN,uBAAuBxN,KAAKyL,YAAYkC,sBAC7C3N,KAAKwN,uBAAuBxN,KAAKyL,YAAYmC,0BAC7C5N,KAAK6N,qBAAqB7N,KAAKyL,YAAYqC,yBAC3C9N,KAAKwN,uBAAuBxN,KAAKyL,YAAYsC,+BAC7C/N,KAAK6N,qBAAqB7N,KAAKyL,YAAYuC,+BAC3ChO,KAAKwN,uBAAuBxN,KAAKyL,YAAYwC,yBAC7CjO,KAAKwN,uBAAuBxN,KAAKyL,YAAYyC,4BAC7ClO,KAAK6N,qBAAqB7N,KAAKyL,YAAY0C,+BAC3CnO,KAAKwN,uBAAuBxN,KAAKyL,YAAY2C,8BAC7CpO,KAAKwN,uBAAuBxN,KAAKyL,YAAY4C,yBAC7CrO,KAAKwN,uBAAuBxN,KAAKyL,YAAY6C,0BAC7CtO,KAAKwN,uBAAuBxN,KAAKyL,YAAY8C,wBAC7CvO,KAAKwN,uBAAuBxN,KAAKyL,YAAY+C,uBAC7CxO,KAAKwN,uBAAuBxN,KAAKyL,YAAYgD,6BAC7CzO,KAAKwN,uBAAuBxN,KAAKyL,YAAYiD,+BAC7C1O,KAAKwN,uBAAuBxN,KAAKyL,YAAYkD,8BAC7C3O,KAAKwN,uBAAuBxN,KAAKyL,YAAYmD,yBAC7C5O,KAAK6O,gCAAgC7O,KAAKyL,YAAYqD,uCACtD9O,KAAK6O,gCAAgC7O,KAAKyL,YAAYsD,0DACtD/O,KAAK6O,gCAAgC7O,KAAKyL,YAAYuD,wCACtDhP,KAAK6O,gCAAgC7O,KAAKyL,YAAYwD,yCACtDjP,KAAK6O,gCAAgC7O,KAAKyL,YAAYyD,8CACtDlP,KAAK6O,gCAAgC7O,KAAKyL,YAAY0D,uCACtDnP,KAAK6O,gCAAgC7O,KAAKyL,YAAY2D,mCACtDpP,KAAK6O,gCAAgC7O,KAAKyL,YAAY4D,uCACtDrP,KAAK6O,gCAAgC7O,KAAKyL,YAAY6D,iDACtDtP,KAAK6O,gCAAgC7O,KAAKyL,YAAY8D,2CACtDvP,KAAK6O,gCAAgC7O,KAAKyL,YAAY+D,6CACtDxP,KAAK6O,gCAAgC7O,KAAKyL,YAAYgE,0CACtDzP,KAAK6O,gCAAgC7O,KAAKyL,YAAYiE,iDACtD1P,KAAK6O,gCAAgC7O,KAAKyL,YAAYkE,6CACtD3P,KAAK6O,gCAAgC7O,KAAKyL,YAAYmE,kCACtD5P,KAAK6P,iBAAiB7P,KAAKyL,YAAYqE,sBACvC9P,KAAK6P,iBAAiB7P,KAAKyL,YAAYsE,8BACvC/P,KAAK6P,iBAAiB7P,KAAKyL,YAAYuE,qBACvChQ,KAAK6P,iBAAiB7P,KAAKyL,YAAYwE,6BACvCjQ,KAAK6P,iBAAiB7P,KAAKyL,YAAYyE,+BACvClQ,KAAK6P,iBAAiB7P,KAAKyL,YAAY0E,qCACvCnQ,KAAK6P,iBAAiB7P,KAAKyL,YAAY2E,uBACvCpQ,KAAK6P,iBAAiB7P,KAAKyL,YAAY4E,+BACvCrQ,KAAKsQ,qBAAqBtQ,KAAKyL,YAAY8E,sBAC3CvQ,KAAKsQ,qBAAqBtQ,KAAKyL,YAAY+E,qBAC3CxQ,KAAKsQ,qBAAqBtQ,KAAKyL,YAAYgF,uBAC3CzQ,KAAK0Q,gBAAgB1Q,KAAKyL,YAAYkF,sBACtC3Q,KAAK0Q,gBAAgB1Q,KAAKyL,YAAYmF,8BACtC5Q,KAAK0Q,gBAAgB1Q,KAAKyL,YAAYoF,4BACtC7Q,KAAK8Q,sBAAsB9Q,KAAKyL,YAAYsF,8BAC5C/Q,KAAK8Q,sBAAsB9Q,KAAKyL,YAAYuF,+BAC5ChR,KAAK8Q,sBAAsB9Q,KAAKyL,YAAYwF,8BAC5CjR,KAAK8Q,sBAAsB9Q,KAAKyL,YAAYyF,4BAC5ClR,KAAK8Q,sBAAsB9Q,KAAKyL,YAAY0F,2BAC5CnR,KAAK8Q,sBAAsB9Q,KAAKyL,YAAY2F,2BAC5CpR,KAAK8Q,sBAAsB9Q,KAAKyL,YAAY4F,mCAC5CrR,KAAK8Q,sBAAsB9Q,KAAKyL,YAAY6F,mCAC5CtR,KAAK8Q,sBAAsB9Q,KAAKyL,YAAY8F,wBAC5CvR,KAAKyL,YAAY+F,UAejB,YAAA3E,eAAR,SAAuBD,GACnB,OAAO,IAAI,IAAWA,EAAI7B,qBAAsB6B,EAAI5B,OAAQ4B,EAAI6E,WAC5D7E,EAAI3B,cAAe2B,EAAI8E,WAAY9E,EAAI+E,UAAW/E,EAAIgF,UACtDhF,EAAI4E,QAAS5E,EAAIiF,kBAGjB,YAAA3E,yBAAR,SAAiCN,GAC7B,OAAO,IAAI,IACPA,EAAI5B,OACJ4B,EAAI6E,WACJ7E,EAAI3B,cACJ2B,EAAI8E,WACJ9E,EAAI+E,UACJ/E,EAAIgF,UACJhF,EAAI4E,UAIJ,YAAAhE,uBAAR,SAA+BZ,GAC3B,OAAO,IAAI,IAAmBA,EAAI/B,OAAQ+B,EAAI9B,cAAe8B,EAAIkF,OAAQlF,EAAImF,kBAAmBnF,EAAI4E,UAGhG,YAAA3C,gCAAR,SAAwCjC,GACpC,OAAO,IAAI,IAA4BA,EAAI/B,OAAQ+B,EAAI9B,cAAe8B,EAAIkF,OAAQlF,EAAImF,kBAAmBnF,EAAI4E,UAGzG,YAAA3D,qBAAR,SAA6BjB,GACzB,OAAO,IAAI,IAAiBA,EAAI/B,OAAQ+B,EAAI9B,cAAe8B,EAAIkF,OAAQlF,EAAImF,kBAAmBnF,EAAI4E,UAG9F,YAAA3B,iBAAR,SAAyBjD,GACrB,OAAO,IAAI,IAAaA,EAAI/B,OAAQ+B,EAAI9B,cAAe8B,EAAIkF,OAAQlF,EAAI4E,UAGnE,YAAAlB,qBAAR,SAA6B1D,GACzB,OAAO,IAAI,IAAiBA,EAAI6E,WAAY7E,EAAI8E,WAAY9E,EAAI+E,UAAW/E,EAAIgF,UAAWhF,EAAI4E,UAG1F,YAAAd,gBAAR,SAAwB9D,GACpB,OAAO,IAAI,IAAYA,EAAIoF,wBAAyBpF,EAAI6E,WAAW7E,EAAI1B,4BAA6B0B,EAAIqF,uBAAwBrF,EAAIsF,uBAChItF,EAAIuF,wBAAyBvF,EAAIxB,0BAA2BwB,EAAIwF,oBAAqBxF,EAAIyF,WAAYzF,EAAI0F,QAAS1F,EAAI2F,mBACtH3F,EAAI4F,QAAS5F,EAAI4E,QAAS5E,EAAI5B,OAAQ4B,EAAIzB,oBAG1C,YAAA2F,sBAAR,SAA8BlE,GAC1B,OAAO,IAAI,IAAkBA,EAAI/B,OAAQ+B,EAAI9B,cAAe8B,EAAIkF,OAAQlF,EAAI4E,UAGhF,sBAAI,sBAAO,C,IAAX,WAEI,OADmBrL,KAAKC,UAAUpG,KAAK2L,mBACjB3L,KAAKmF,a,gCAGzB,YAAAkG,cAAN,W,wFAEI,OADArL,KAAKiF,cAAe,EACpB,GAAMjF,KAAK6L,WAAW,I,cAAtB,SACA7L,KAAKiF,cAAe,E,UAGxB,sBAAI,sBAAO,C,IAAX,WACI,OAAOjF,KAAKqF,UAAYrF,KAAKiF,eAAiBjF,KAAK+E,WAAa/E,KAAKgF,c,gCAGzE,sBAAI,wBAAS,C,IAAb,WACI,OAAQhF,KAAKiF,eAAiBjF,KAAK+E,WAAa/E,KAAKgF,c,gCAGzD,sBAAI,wBAAS,C,IAAb,WACI,QAAQhF,KAAKqF,SAAYrF,KAAKiF,cAAiBjF,KAAK+E,UAAa/E,KAAKgF,e,gCA+C1E,sBAAI,yBAAU,C,IAAd,WACI,GAAIhF,KAAKyL,YACT,OAAO,IAAI,IAAqB,eAAgBzL,KAAK0L,SAAU1L,KAAKyL,YAAY1K,YAAaf,KAAKyL,YAAYzK,aAAchB,KAAKyL,YAAYxK,aAAcjB,KAAKyL,YAAYvK,kB,gCAnRvKuR,EAAe,GAD3B,I,uBAa+B,IAAwC,IAA+B,IAAuB,OAZjHA,GAAb,I,kGCtBArQ,EAAOC,QAAU,07pB,+hECkBjB,aAQI,WAAmBxC,EAAwC0C,EAAgCC,GAA3F,WAAmB,KAAA3C,UAAwC,KAAA0C,UAAgC,KAAAC,SAL3F,KAAAuC,UAAW,EACX,KAAAE,cAAe,EACf,KAAAE,YAAc,GAEd,KAAAvC,qBAA4B,GA2D5B,KAAAwC,KAAO,+C,uDACL,IAAKpF,KAAKqF,QAAS,U,iBAEb,O,sBAAA,GAAMrF,KAAKH,QAAQ6S,uBAAuB1S,KAAKyL,YAAYxK,aAAa8B,GAAI/C,KAAK0L,SAAU1L,KAAK2S,kC,cAAhG,S,aAGA,O,WADA,QAAa,EAAO,uBACpB,I,cAEJ3S,KAAK+E,UAAW,E,UA6CpB,KAAA6G,qBAAuB,SAAO7I,GAAU,oC,iDAGpC,OAFA/C,KAAK+E,UAAW,EAChB,UAAe,gBACf,GAAM/E,KAAK6L,c,cAAX,S,UAGJ,KAAAC,0BAA4B,SAACnI,GACzB,EAAKoB,UAAW,EAChB,QAAapB,EAAEC,QAAQC,KAAK,MAAO,wBAtHnC7D,KAAK4C,qBAAuB,CACxB,mBAAsB5C,KAAK4L,qBAC3B,wBAA2B5L,KAAK8L,2BA2H5C,OAvHI,YAAAhM,SAAA,SAASC,GACLC,KAAK0L,SAAW3L,EAAO2L,UAGrB,YAAAxL,SAAN,W,8FACI,IAAW4D,KAAO9D,KAAK4C,qBACf5C,KAAK4C,qBAAqBmB,eAAeD,IACzC9D,KAAKuC,QAAQyB,GAAGF,EAAK9D,KAAK4C,qBAAqBkB,IAGvD,SAAM9D,KAAK6L,c,cAAX,S,UAGJ,YAAAzH,SAAA,WACI,IAAK,IAAMN,KAAO9D,KAAK4C,qBACf5C,KAAK4C,qBAAqBmB,eAAeD,IACzC9D,KAAKuC,QAAQ8B,IAAIP,EAAK9D,KAAK4C,qBAAqBkB,KAKtD,YAAA+H,WAAN,W,8FACuB,OAAnB,EAAA7L,KAAmB,GAAMA,KAAKH,QAAQ8M,UAAU3M,KAAK0L,W,cAArD,EAAKD,YAAc,SACnBzL,KAAK4F,iB,UAGT,YAAAA,eAAA,WACI,IAAMM,EAAclG,KAAK2S,gCACzB3S,KAAKmF,YAAcgB,KAAKC,UAAUF,IAGtC,YAAAyM,8BAAA,WACI,OAAO,IAAI,IACP3S,KAAK6M,eAAe7M,KAAKyL,YAAYwB,kBACrCjN,KAAK6M,eAAe7M,KAAKyL,YAAYqB,qBACrC9M,KAAK6M,eAAe7M,KAAKyL,YAAYsB,uBACrC/M,KAAK6M,eAAe7M,KAAKyL,YAAYuB,qBACrChN,KAAKkN,yBAAyBlN,KAAKyL,YAAY0B,2BAC/CnN,KAAKkN,yBAAyBlN,KAAKyL,YAAY2B,kCAC/CpN,KAAKkN,yBAAyBlN,KAAKyL,YAAY4B,yBAC/CrN,KAAKkN,yBAAyBlN,KAAKyL,YAAY6B,yBAC/CtN,KAAKkN,yBAAyBlN,KAAKyL,YAAY8B,wBAC/CvN,KAAK4S,sBAAsB5S,KAAKyL,YAAYkF,sBAC5C3Q,KAAK4S,sBAAsB5S,KAAKyL,YAAYmF,8BAC5C5Q,KAAK4S,sBAAsB5S,KAAKyL,YAAYoF,4BAC5C7Q,KAAK6S,2BAA2B7S,KAAKyL,YAAY8E,sBACjDvQ,KAAK6S,2BAA2B7S,KAAKyL,YAAY+E,qBACjDxQ,KAAK6S,2BAA2B7S,KAAKyL,YAAYgF,yBAejD,YAAA5D,eAAR,SAAuBjC,GACnB,OAAO,IAAI,IAAiBA,EAAS6G,WAAY7G,EAAS+G,UAAW/G,EAASgH,UAAWhH,EAAS4G,QAAS5G,EAASiH,kBAGhH,YAAA3E,yBAAR,SAAiCtC,GAC7B,OAAO,IAAI,IAA2BA,EAAS6G,WAAY7G,EAAS+G,UAAW/G,EAASgH,UAAWhH,EAAS4G,UAGxG,YAAAqB,2BAAR,SAAmCjI,GAC/B,OAAO,IAAI,IAAuBA,EAAS6G,WAAY7G,EAAS+G,UAAW/G,EAASgH,UAAWhH,EAAS4G,UAGpG,YAAAoB,sBAAR,SAA8BhI,GAC1B,OAAO,IAAI,IAAkBA,EAASoH,wBAClCpH,EAAS6G,WACT7G,EAASqH,uBACTrH,EAASsH,uBACTtH,EAASyH,WACTzH,EAAS0H,QACT1H,EAAS2H,mBACT3H,EAAS4G,UAGjB,sBAAI,sBAAO,C,IAAX,WAEI,OADmBrL,KAAKC,UAAUpG,KAAK2S,mCACjB3S,KAAKmF,a,gCAGzB,YAAAkG,cAAN,W,wFAEI,OADArL,KAAKiF,cAAe,EACpB,GAAMjF,KAAK6L,c,cAAX,SACA7L,KAAKiF,cAAe,E,UAGxB,sBAAI,sBAAO,C,IAAX,WACI,OAAOjF,KAAKqF,UAAYrF,KAAKiF,eAAiBjF,KAAK+E,U,gCAGvD,sBAAI,wBAAS,C,IAAb,WACI,OAAQ/E,KAAKiF,eAAiBjF,KAAK+E,U,gCAcvC,sBAAI,yBAAU,C,IAAd,WACI,GAAI/E,KAAKyL,YACT,OAAO,IAAI,IAAqB,eAAgBzL,KAAK0L,SAAU1L,KAAKyL,YAAY1K,YAAaf,KAAKyL,YAAYzK,aAAchB,KAAKyL,YAAYxK,aAAcjB,KAAKyL,YAAYvK,kB,gCApIvK4R,EAAyB,GADrC,I,uBAS+B,IAAwC,IAA+B,OAR1FA,GAAb,I,wHClBA1Q,EAAOC,QAAU,ojN,u9DCSjB,aAYI,WAAmBxC,EAAwC6C,GAAxC,KAAA7C,UAAwC,KAAA6C,KAT3D,KAAAqQ,mBAAoB,EACpB,KAAAC,qBAAsB,EACtB,KAAAC,iBAAkB,EAClB,KAAAC,mBAAoB,EACpB,KAAAC,qBAAsB,EACtB,KAAAC,2BAA4B,EAC5B,KAAAC,uBAAwB,EACxB,KAAAC,6BAA8B,EAiDlC,OA7CI,YAAAxT,SAAA,SAASC,GACLC,KAAK0L,SAAW3L,EAAO2L,UAGrB,YAAAxL,SAAN,W,mGAEI,OADAF,KAAKiE,aAAejE,KAAK0C,GAAGwB,UAAU,IAAoB,SAAAC,GAAK,SAAK0H,WAAW,KAC/E,GAAM7L,KAAK6L,WAAW,I,cAAtB,S,UAGJ,YAAAzH,SAAA,WACIpE,KAAKiE,aAAaK,WAGtB,YAAA6H,iCAAA,SAAiCC,GAQzBC,OAAOC,cAAiD,IAAjCF,GAAsCpM,KAAKyL,YAAYzK,eAAiB,IAAauL,YACvGF,OAAOC,aAAaE,QAAQ,aAK7BH,OAAOC,aAAaG,WAAW,cAJ/BzM,KAAKH,QAAQ6M,gCAAgC1M,KAAK0L,UAClDW,OAAOC,aAAwB,WAAI,KAQzC,YAAAiH,eAAN,SAAqBnH,G,8FACE,OAAnB,EAAApM,KAAmB,GAAMA,KAAKH,QAAQ8M,UAAU3M,KAAK0L,W,cAArD,EAAKD,YAAc,SACnBzL,KAAKmM,iCAAiCC,G,UAGpC,YAAAP,WAAN,SAAiBO,G,wEACbpM,KAAKuT,eAAenH,G,SAGxB,sBAAI,yBAAU,C,IAAd,WACI,GAAIpM,KAAKyL,YACT,OAAO,IAAI,IAAqB,eAAgBzL,KAAK0L,SAAU1L,KAAKyL,YAAY1K,YAAaf,KAAKyL,YAAYzK,aAAchB,KAAKyL,YAAYxK,aAAcjB,KAAKyL,YAAYvK,kB,gCAzDvKsS,EAAe,GAD3B,I,uBAa+B,IAAoC,OAZvDA,GAAb,I,kGCTApR,EAAOC,QAAU","file":"app~16244a36.ad24dabf8b3f1ee8128d.chunk.js","sourcesContent":["import { autoinject } from \"aurelia-framework\";\r\nimport { StatePlanReportService } from \"services/StatePlanReportService\";\r\nimport { StatePlanViewModelDto } from \"models/StatePlanViewModelDto\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { StateDetailedKpi } from \"models/StateDetailedKpi\";\r\n\r\n@autoinject\r\nexport class StateKpi {\r\n planid: number;\r\n statePlan: StatePlanViewModelDto;\r\n kpi: StateDetailedKpi;\r\n constructor(public service: StatePlanReportService) {}\r\n\r\n activate(params: {planid: number}) {\r\n this.planid = params.planid;\r\n }\r\n\r\n async attached() {\r\n await this.loadPlan();\r\n }\r\n\r\n async loadPlan() {\r\n this.statePlan = await this.service.getPlan(this.planid, true);\r\n console.log('State Plan:', this.statePlan);\r\n this.kpi = this.statePlan.kpi;\r\n console.log('KPI Data:', this.kpi);\r\n if (this.kpi) {\r\n console.log('Working Meeting KPI:', this.kpi.workingMeetingKpi);\r\n console.log('Tarbiyah Meeting KPI:', this.kpi.tarbiyahMeetingKpi);\r\n console.log('Dawah Event KPI:', this.kpi.dawahEventKpi);\r\n console.log('Associate Member KPI:', this.kpi.associateMemberKpi);\r\n console.log('Preliminary Member KPI:', this.kpi.preliminaryMemberKpi);\r\n console.log('Report Submission KPI:', this.kpi.reportSubmissionKpi);\r\n }\r\n }\r\n\r\n get headerData() {\r\n if(!this.statePlan) return undefined;\r\n return new PlanReportHeaderData(\"State Plan\", this.planid, this.statePlan.description, this.statePlan.reportStatus, this.statePlan.organization, this.statePlan.reportingPeriod);\r\n }\r\n\r\n get workingMeetingKpi(): number {\r\n return this.kpi.workingMeetingKpi.efficiencyPercentage;\r\n }\r\n\r\n get tarbiyahMeetingKpi(): number {\r\n return this.kpi.tarbiyahMeetingKpi.efficiencyPercentage;\r\n }\r\n\r\n get dawahEventKpi(): number {\r\n return this.kpi.dawahEventKpi.efficiencyPercentage;\r\n }\r\n\r\n get associateMemberKpi(): number {\r\n return this.kpi.associateMemberKpi.efficiencyPercentage;\r\n }\r\n\r\n get preliminaryMemberKpi(): number {\r\n return this.kpi.preliminaryMemberKpi.efficiencyPercentage;\r\n }\r\n\r\n get reportSubmissionKpi(): number {\r\n return this.kpi.reportSubmissionKpi.efficiencyPercentage;\r\n }\r\n\r\n get fiscalYear(): number {\r\n return this.kpi.fiscalYear;\r\n }\r\n\r\n get expectedWorkingMeetingsPeriod(): number {\r\n if (!this.kpi || !this.kpi.workingMeetingKpi) return 0;\r\n return this.kpi.workingMeetingKpi.expectedMeetingPerPeriod;\r\n }\r\n\r\n get expectedTarbiyahMeetingsPeriod(): number {\r\n if (!this.kpi || !this.kpi.tarbiyahMeetingKpi) return 0;\r\n return this.kpi.tarbiyahMeetingKpi.expectedMeetingPerPeriod;\r\n }\r\n\r\n get expectedDawahEventsPeriod(): number {\r\n if (!this.kpi || !this.kpi.dawahEventKpi) return 0;\r\n return this.kpi.dawahEventKpi.expectedMeetingPerPeriod;\r\n }\r\n\r\n get expectedAmIncreaseYearly(): number {\r\n if (!this.kpi || !this.kpi.associateMemberKpi) return 0;\r\n return this.kpi.associateMemberKpi.expectedIncrease;\r\n }\r\n\r\n get expectedPmIncreaseYearly(): number {\r\n if (!this.kpi || !this.kpi.preliminaryMemberKpi) return 0;\r\n return this.kpi.preliminaryMemberKpi.expectedIncrease;\r\n }\r\n\r\n get totalAssociateMembers(): number {\r\n if (!this.kpi || !this.kpi.periodKpiBreakdown) return 0;\r\n return this.kpi.periodKpiBreakdown.reduce((total, periodData) =>\r\n total + periodData.associateMemberActual, 0);\r\n }\r\n\r\n get totalPreliminaryMembers(): number {\r\n if (!this.kpi || !this.kpi.periodKpiBreakdown) return 0;\r\n return this.kpi.periodKpiBreakdown.reduce((total, periodData) =>\r\n total + periodData.preliminaryMemberActual, 0);\r\n }\r\n\r\n get totalWorkingMeetings(): number {\r\n if (!this.kpi || !this.kpi.periodKpiBreakdown) return 0;\r\n return this.kpi.periodKpiBreakdown.reduce((total, periodData) =>\r\n total + periodData.workingMeetingActual, 0);\r\n }\r\n\r\n get totalTarbiyahMeetings(): number {\r\n if (!this.kpi || !this.kpi.periodKpiBreakdown) return 0;\r\n return this.kpi.periodKpiBreakdown.reduce((total, periodData) =>\r\n total + periodData.tarbiyahMeetingActual, 0);\r\n }\r\n\r\n get totalDawahEvents(): number {\r\n if (!this.kpi || !this.kpi.periodKpiBreakdown) return 0;\r\n return this.kpi.periodKpiBreakdown.reduce((total, periodData) =>\r\n total + periodData.dawahEventActual, 0);\r\n }\r\n\r\n get overallEfficiency(): number {\r\n return this.kpi.overallEfficiency;\r\n }\r\n\r\n get statusSummary(): string {\r\n return this.kpi.statusSummary;\r\n }\r\n\r\n get unitCount(): number {\r\n return this.kpi ? this.kpi.unitCount : 0;\r\n }\r\n}\r\n","module.exports = \"\\r\\n\";","import { autoinject } from \"aurelia-framework\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { ReportingPeriodViewModel } from \"models/ReportingPeriodViewModel\";\r\nimport { AppRouter } from \"aurelia-router\";\r\nimport { SignalrWrapper } from \"signalrwrapper\";\r\nimport { StatePlanViewModelDto } from \"models/StatePlanViewModelDto\";\r\nimport { StatePlanReportService } from \"services/StatePlanReportService\";\r\nimport { Subscription, EventAggregator } from \"aurelia-event-aggregator\";\r\nimport { StateReportUpdated } from \"resources/plan-report-header/StateReportUpdated\";\r\nimport { ReportingPeriodService } from \"services/ReportingPeriodService\";\r\nimport { AuthService } from \"auth-service\";\r\n\r\n@autoinject\r\nexport class StatePlanCopy {\r\n planid: number;\r\n statePlan: StatePlanViewModelDto;\r\n reportingPeriods: ReportingPeriodViewModel[] = [];\r\n selectedReportingPeriod: ReportingPeriodViewModel;\r\n isCopyingPlan: boolean;\r\n\r\n signalreventhandlers: any = {};\r\n subscription: Subscription;\r\n constructor(public service: StatePlanReportService, public reportingPeriodService: ReportingPeriodService, public signalr: SignalrWrapper, \r\n public router: AppRouter, public auth: AuthService, public ea?: EventAggregator) {\r\n this.signalreventhandlers = {\r\n \"StatePlanCopied\": this.onStatePlanCopied,\r\n \"StatePlanCopyFailed\": this.onStatePlanCopyFailed\r\n };\r\n }\r\n \r\n activate(params: {planid: number}) {\r\n this.planid = params.planid;\r\n }\r\n\r\n async attached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.on(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n this.subscription = this.ea.subscribe(StateReportUpdated, _ => this.loadPlan());\r\n await this.loadPlan();\r\n }\r\n\r\n detached() {\r\n for(const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.off(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n this.subscription.dispose();\r\n }\r\n\r\n async loadPlan() {\r\n this.statePlan = await this.service.getPlan(this.planid);\r\n if(this.auth.isSystemAdmin) {\r\n const allReportingPeriods = await this.reportingPeriodService.getReportingPeriodsToCreatePlan(this.statePlan.organization.id);\r\n this.reportingPeriods = allReportingPeriods.filter(r => r.reportingFrequency === this.statePlan.reportingPeriod.reportingFrequency);\r\n } else {\r\n const nextReportingPeriod = await this.reportingPeriodService.getNextReportingPeriod(this.statePlan.id);\r\n this.reportingPeriods = [nextReportingPeriod];\r\n }\r\n }\r\n\r\n get headerData() {\r\n if(!this.statePlan) return undefined;\r\n return new PlanReportHeaderData(\"State Plan\", this.planid, this.statePlan.description, this.statePlan.reportStatus, this.statePlan.organization, this.statePlan.reportingPeriod);\r\n }\r\n\r\n copyPlan = async () => {\r\n try {\r\n await this.service.copy(this.statePlan.id, this.statePlan.organization, \r\n this.selectedReportingPeriod.year, this.selectedReportingPeriod.reportingTerm, this.selectedReportingPeriod.reportingFrequency);\r\n } catch(error) {\r\n toastr.error(error);\r\n return;\r\n }\r\n this.isCopyingPlan = true;\r\n }\r\n\r\n onStatePlanCopied = (planid: number) => {\r\n toastr.success(\"Plan Copied\");\r\n this.router.navigate(`state-plan-edit/${planid}`);\r\n }\r\n\r\n onStatePlanCopyFailed = (e: {$values: string[]}) => {\r\n this.isCopyingPlan = false;\r\n toastr.error(e.$values.join(\", \"));\r\n }\r\n}","module.exports = \"\\r\\n\";","import { autoinject } from \"aurelia-framework\";\r\nimport * as toastr from \"toastr\";\r\nimport { StatePlanReportService } from \"services/StatePlanReportService\";\r\nimport { StatePlanViewModelDto } from \"models/StatePlanViewModelDto\";\r\nimport { SignalrWrapper } from \"signalrwrapper\";\r\nimport { PlanData } from \"models/PlanData\";\r\nimport { MemberPlanData } from \"models/MemberPlanData\";\r\nimport { UnitOrganizationPlanData } from \"models/UnitOrganizationPlanData\";\r\nimport { MeetingProgramPlanData } from \"models/MeetingProgramPlanData\";\r\nimport { AppRouter } from \"aurelia-router\";\r\nimport { TeachingLearningProgramPlanData } from \"models/TeachingLearningProgramPlanData\";\r\nimport { DawahProgramPlanData } from \"models/DawahProgramPlanData\";\r\nimport { MaterialPlanData } from \"models/MaterialPlanData\";\r\nimport { FinancePlanData } from \"models/FinancePlanData\";\r\nimport { SocialWelfarePlanData } from \"models/SocialWelfarePlanData\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { Subscription, EventAggregator } from \"aurelia-event-aggregator\";\r\nimport { StateReportUpdated } from \"resources/plan-report-header/StateReportUpdated\";\r\n\r\n@autoinject\r\nexport class StatePlanEdit {\r\n planid: number;\r\n statePlan: StatePlanViewModelDto;\r\n isSaving = false;\r\n isSubmitting = false;\r\n isCancelling = false;\r\n afterSave: (() => Promise)[] = [];\r\n initialJson = \"\";\r\n\r\n signalreventhandlers: any= {};\r\n subscription: Subscription;\r\n constructor(public service: StatePlanReportService, public signalr: SignalrWrapper, public router: AppRouter, public ea?: EventAggregator) {\r\n this.signalreventhandlers = {\r\n \"StatePlanUpdated\": this.onStatePlanUpdated,\r\n \"StatePlanUpdateFailed\": this.onStatePlanUpdateFailed,\r\n \"StatePlanSubmitted\": this.onStatePlanSubmitted,\r\n \"StatePlanSubmitFailed\": this.onStatePlanSubmitFailed\r\n };\r\n }\r\n \r\n activate(params: {planid: number}) {\r\n this.planid = params.planid;\r\n }\r\n\r\n async attached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.on(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n this.subscription = this.ea.subscribe(StateReportUpdated, _ => this.loadPlan());\r\n await this.loadPlan();\r\n }\r\n\r\n detached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.off(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n this.subscription.dispose();\r\n }\r\n\r\n async loadPlan() {\r\n const statePlan = await this.service.getPlan(this.planid);\r\n this.statePlan = statePlan;\r\n this.setInitialData();\r\n }\r\n\r\n setInitialData() {\r\n const initialData = this.getPlanData();\r\n this.initialJson = JSON.stringify(initialData);\r\n }\r\n\r\n getPlanData(): PlanData {\r\n return new PlanData(\r\n this.makeMemberPlanData(this.statePlan.associateMemberPlanData),\r\n this.makeMemberPlanData(this.statePlan.preliminaryMemberPlanData),\r\n this.makeMemberPlanData(this.statePlan.supporterMemberPlanData),\r\n this.makeMemberPlanData(this.statePlan.memberMemberPlanData),\r\n this.makeUnitOrganizationPlanData(this.statePlan.dawahUnitOrganizationPlanData),\r\n this.makeUnitOrganizationPlanData(this.statePlan.organizationUnitOrganizationPlanData),\r\n this.makeUnitOrganizationPlanData(this.statePlan.ymbUnitOrganizationPlanData),\r\n this.makeUnitOrganizationPlanData(this.statePlan.ymsUnitOrganizationPlanData),\r\n this.makeUnitOrganizationPlanData(this.statePlan.lmUnitOrganizationPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.workerMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.cmsMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.smMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.memberMeetingProgramPlanData),\r\n this.makeDawahProgramPlanData(this.statePlan.dawahMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.stateLeaderMeetingProgramPlanData),\r\n this.makeDawahProgramPlanData(this.statePlan.stateOutingMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.iftarMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.learningMeetingProgramPlanData),\r\n this.makeDawahProgramPlanData(this.statePlan.socialDawahMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.dawahGroupMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.nextGMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.tafsirMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.unitMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.bbqMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.gatheringMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.familyVisitMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.eidReunionMeetingProgramPlanData),\r\n this.makeMeetingProgramPlanData(this.statePlan.otherMeetingProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.groupStudyTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.studyCircleForAssociateMemberTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.studyCircleTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.practiceDarsTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.stateLearningCampTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.quranStudyTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.hadithTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.quranClassTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.weekendIslamicSchoolTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.memorizingAyatTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.memorizingHadithTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.memorizingDoaTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.stateLearningSessionTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.stateQiyamulLailTeachingLearningProgramPlanData),\r\n this.makeTeachingLearningProgramPlanData(this.statePlan.otherTeachingLearningProgramPlanData),\r\n this.makeSocialWelfarePlanData(this.statePlan.qardeHasanaSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.statePlan.patientVisitSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.statePlan.socialVisitSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.statePlan.transportSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.statePlan.shiftingSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.statePlan.shoppingSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.statePlan.foodDistributionSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.statePlan.cleanUpAustraliaSocialWelfarePlanData),\r\n this.makeSocialWelfarePlanData(this.statePlan.otherSocialWelfarePlanData),\r\n this.makeMaterialPlanData(this.statePlan.bookSaleMaterialPlanData),\r\n this.makeMaterialPlanData(this.statePlan.bookDistributionMaterialPlanData),\r\n this.makeMaterialPlanData(this.statePlan.vhsSaleMaterialPlanData),\r\n this.makeMaterialPlanData(this.statePlan.vhsDistributionMaterialPlanData),\r\n this.makeMaterialPlanData(this.statePlan.emailDistributionMaterialPlanData),\r\n this.makeMaterialPlanData(this.statePlan.ipdcLeafletDistributionMaterialPlanData),\r\n this.makeMaterialPlanData(this.statePlan.otherSaleMaterialPlanData),\r\n this.makeMaterialPlanData(this.statePlan.otherDistributionMaterialPlanData),\r\n this.makeFinancePlanData(this.statePlan.baitulMalFinancePlanData),\r\n this.makeFinancePlanData(this.statePlan.aDayMasjidProjectFinancePlanData),\r\n this.makeFinancePlanData(this.statePlan.masjidTableBankFinancePlanData)\r\n );\r\n }\r\n\r\n private makeMeetingProgramPlanData(original: MeetingProgramPlanData): MeetingProgramPlanData {\r\n return new MeetingProgramPlanData(original.target, original.dateAndAction);\r\n }\r\n\r\n private makeMemberPlanData(original: MemberPlanData): MemberPlanData {\r\n return new MemberPlanData(original.nameAndContactNumber, original.action, original.upgradeTarget);\r\n }\r\n\r\n private makeUnitOrganizationPlanData(original: UnitOrganizationPlanData): UnitOrganizationPlanData {\r\n return new UnitOrganizationPlanData(original.action, original.upgradeTarget);\r\n }\r\n\r\n private makeTeachingLearningProgramPlanData(original: TeachingLearningProgramPlanData): TeachingLearningProgramPlanData {\r\n return new TeachingLearningProgramPlanData(original.target, original.dateAndAction);\r\n }\r\n\r\n private makeDawahProgramPlanData(original: DawahProgramPlanData): DawahProgramPlanData {\r\n return new DawahProgramPlanData(original.target, original.dateAndAction);\r\n }\r\n\r\n private makeMaterialPlanData(original: MaterialPlanData): MaterialPlanData {\r\n return new MaterialPlanData(original.target, original.dateAndAction);\r\n }\r\n\r\n private makeFinancePlanData(original: FinancePlanData): FinancePlanData {\r\n return new FinancePlanData(original.action, original.workerPromiseIncreaseTarget, original.otherSourceAction, original.otherSourceIncreaseTarget);\r\n }\r\n\r\n private makeSocialWelfarePlanData(original: SocialWelfarePlanData): SocialWelfarePlanData {\r\n return new SocialWelfarePlanData(original.target, original.dateAndAction);\r\n }\r\n\r\n save = async () => {\r\n if (!this.isDirty) return;\r\n try {\r\n await this.service.updatePlan(this.statePlan.organization.id, this.planid, this.getPlanData());\r\n this.isSaving = true;\r\n } catch(error) {\r\n toastr.error(error, \"Error Saving Plan\");\r\n }\r\n }\r\n\r\n submitPlan = async () => {\r\n try {\r\n await this.service.submitPlan(this.statePlan.organization.id, this.planid);\r\n this.isSubmitting = true;\r\n } catch(error) {\r\n toastr.error(error, \"Error Submitting Plan\");\r\n }\r\n }\r\n\r\n saveAndSubmitPlan = async () => {\r\n if (this.isDirty)\r\n {\r\n await this.save();\r\n this.afterSave.push(this.submitPlan);\r\n return;\r\n } \r\n await this.submitPlan();\r\n }\r\n\r\n get isDirty() {\r\n const latestJson = JSON.stringify(this.getPlanData());\r\n return latestJson !== this.initialJson;\r\n }\r\n\r\n async cancelChanges() {\r\n this.isCancelling = true;\r\n await this.loadPlan();\r\n this.isCancelling = false;\r\n }\r\n\r\n get canSave() {\r\n return this.isDirty && !this.isCancelling && !this.isSaving && !this.isSubmitting;\r\n }\r\n\r\n get canCancel() {\r\n return !this.isCancelling && !this.isSaving && !this.isSubmitting;\r\n }\r\n\r\n get canSubmit() {\r\n return !this.isDirty && !this.isCancelling && !this.isSaving && !this.isSubmitting;\r\n }\r\n\r\n onStatePlanUpdated = async (id: number) => {\r\n this.isSaving = false;\r\n toastr.success(\"Plan Saved\");\r\n this.setInitialData();\r\n if(this.afterSave.length === 0) return;\r\n await this.afterSave.pop()();\r\n }\r\n\r\n onStatePlanUpdateFailed = (e: {$values: string[]}) => {\r\n this.isSaving = false;\r\n toastr.error(e.$values.join(\"\\n\"), \"Error Saving Plan\");\r\n if(this.afterSave.length === 0) return;\r\n this.afterSave.pop();\r\n }\r\n\r\n onStatePlanSubmitted = (id: number) => {\r\n this.isSubmitting = false;\r\n toastr.success(\"Plan Submitted\");\r\n this.router.navigate(`state-plan-view/${id}`);\r\n }\r\n\r\n onStatePlanSubmitFailed = (e: {$values: string[]}) => {\r\n this.isSubmitting = false;\r\n toastr.error(e.$values.join(\"\\n\"), \"Error Submitting Plan\");\r\n }\r\n\r\n get headerData() {\r\n if(!this.statePlan) return undefined;\r\n return new PlanReportHeaderData(\"State Plan\", this.planid, this.statePlan.description, this.statePlan.reportStatus, this.statePlan.organization, this.statePlan.reportingPeriod);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\";","import { autoinject } from \"aurelia-framework\";\r\nimport {StatePlanReportService} from \"../../services/StatePlanReportService\";\r\nimport {StatePlanViewModelDto} from \"../../models/StatePlanViewModelDto\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { Subscription, EventAggregator } from \"aurelia-event-aggregator\";\r\nimport { StateReportUpdated } from \"resources/plan-report-header/StateReportUpdated\";\r\n\r\n@autoinject\r\nexport class StatePlanView {\r\n planid: number;\r\n statePlan: StatePlanViewModelDto;\r\n subscription: Subscription;\r\n constructor(public service: StatePlanReportService, public ea?: EventAggregator) {}\r\n \r\n activate(params: {planid: number}) {\r\n this.planid = params.planid;\r\n }\r\n\r\n async attached() {\r\n this.subscription = this.ea.subscribe(StateReportUpdated, _ => this.loadPlan());\r\n await this.loadPlan();\r\n }\r\n\r\n detached() {\r\n this.subscription.dispose();\r\n }\r\n \r\n async loadPlan() {\r\n this.statePlan = await this.service.getPlan(this.planid);\r\n }\r\n\r\n get headerData() {\r\n if(!this.statePlan) return undefined;\r\n return new PlanReportHeaderData(\"State Plan\", this.planid, this.statePlan.description, this.statePlan.reportStatus, this.statePlan.organization, this.statePlan.reportingPeriod);\r\n }\r\n}\r\n","module.exports = \"\";","import { autoinject } from \"aurelia-framework\";\r\nimport * as toastr from \"toastr\";\r\nimport { AppRouter } from \"aurelia-router\";\r\nimport { StatePlanReportService } from \"services/StatePlanReportService\";\r\nimport { StateReportViewModelDto } from \"models/StateReportViewModelDto\";\r\nimport { SignalrWrapper } from \"signalrwrapper\";\r\nimport { ReportData } from \"models/ReportData\";\r\nimport { MemberData } from \"models/MemberData\";\r\nimport { UnitOrganizationData } from \"models/UnitOrganizationData\";\r\nimport { MeetingProgramData } from \"models/MeetingProgramData\";\r\nimport { ReportStatus } from \"models/ReportStatus\";\r\nimport { TeachingLearningProgramData } from \"models/TeachingLearningProgramData\";\r\nimport { DawahProgramData } from \"models/DawahProgramData\";\r\nimport { MaterialData } from \"models/MaterialData\";\r\nimport { LibraryStockData } from \"models/LibraryStockData\";\r\nimport { FinanceData } from \"models/FinanceData\";\r\nimport { SocialWelfareData } from \"models/SocialWelfareData\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { Subscription, EventAggregator } from \"aurelia-event-aggregator\";\r\nimport { StateReportUpdated } from \"resources/plan-report-header/StateReportUpdated\";\r\n\r\n@autoinject\r\nexport class StateReportEdit {\r\n reportid: number;\r\n stateReport: StateReportViewModelDto;\r\n isSaving = false;\r\n isSubmitting = false;\r\n isCancelling = false;\r\n afterSave: (() => Promise)[] = [];\r\n\r\n initialJson = \"\";\r\n\r\n signalreventhandlers: any = {};\r\n subscription: Subscription;\r\n constructor(public service: StatePlanReportService, public signalr: SignalrWrapper, public router: AppRouter, public ea?: EventAggregator) {\r\n this.signalreventhandlers = {\r\n \"StateReportUpdated\": this.onStateReportUpdated,\r\n \"StateReportUpdateFailed\": this.onStateReportUpdateFailed,\r\n \"ReportSubmitted\": this.onReportSubmitted,\r\n \"ReportSubmitFailed\": this.onReportSubmitFailed\r\n };\r\n }\r\n\r\n activate(params: { reportid: number }) {\r\n this.reportid = params.reportid;\r\n }\r\n\r\n async attached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.on(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n this.subscription = this.ea.subscribe(StateReportUpdated, _ => this.loadReport(1));\r\n await this.loadReport(1);\r\n }\r\n\r\n detached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.off(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n this.subscription.dispose();\r\n }\r\n\r\n SingleTimeLastPeriodValuesUpdate(lastPeriodValuesUpdateNeeded: number) {\r\n /*\r\n Calls `updateReportLastPeriodFromModel()` for a single time\r\n when the report status is `Report Not Submitted`.\r\n\r\n `updateReportLastPeriodFromModel()` automatically calls `loadReport()`\r\n which causes the circular calling.\r\n */\r\n if( window.localStorage && lastPeriodValuesUpdateNeeded === 1 && this.stateReport.reportStatus !== ReportStatus.Submitted ) {\r\n if( !window.localStorage.getItem('firstLoad') ) {\r\n this.service.updateReportLastPeriodFromModel(this.reportid);\r\n window.localStorage['firstLoad'] = true;\r\n }\r\n else {\r\n window.localStorage.removeItem('firstLoad');\r\n }\r\n };\r\n }\r\n\r\n async loadReport(lastPeriodValuesUpdateNeeded: number) {\r\n const dto = await this.service.getReport(this.reportid);\r\n this.stateReport = dto;\r\n this.setInitialData();\r\n this.SingleTimeLastPeriodValuesUpdate(lastPeriodValuesUpdateNeeded);\r\n }\r\n\r\n setInitialData() {\r\n const initialData = this.getReportData();\r\n this.initialJson = JSON.stringify(initialData);\r\n }\r\n\r\n getReportData(): ReportData {\r\n return new ReportData(\r\n this.makeMemberData(this.stateReport.associateMemberData),\r\n this.makeMemberData(this.stateReport.preliminaryMemberData),\r\n this.makeMemberData(this.stateReport.supporterMemberData),\r\n this.makeMemberData(this.stateReport.memberMemberData),\r\n this.makeUnitOrganizationData(this.stateReport.dawahUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.stateReport.organizationUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.stateReport.ymbUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.stateReport.ymsUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.stateReport.lmUnitOrganizationData),\r\n this.makeMeetingProgramData(this.stateReport.workerMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.cmsMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.smMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.memberMeetingProgramData),\r\n this.makeDawahProgramData(this.stateReport.dawahMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.stateLeaderMeetingProgramData),\r\n this.makeDawahProgramData(this.stateReport.stateOutingMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.iftarMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.learningMeetingProgramData),\r\n this.makeDawahProgramData(this.stateReport.socialDawahMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.dawahGroupMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.nextGMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.tafsirMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.unitMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.bbqMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.gatheringMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.familyVisitMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.eidReunionMeetingProgramData),\r\n this.makeMeetingProgramData(this.stateReport.otherMeetingProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.groupStudyTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.studyCircleForAssociateMemberTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.studyCircleTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.practiceDarsTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.stateLearningCampTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.quranStudyTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.hadithTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.quranClassTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.weekendIslamicSchoolTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.memorizingAyatTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.memorizingHadithTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.memorizingDoaTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.stateLearningSessionTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.stateQiyamulLailTeachingLearningProgramData),\r\n this.makeTeachingLearningProgramData(this.stateReport.otherTeachingLearningProgramData),\r\n this.makeMaterialData(this.stateReport.bookSaleMaterialData),\r\n this.makeMaterialData(this.stateReport.bookDistributionMaterialData),\r\n this.makeMaterialData(this.stateReport.vhsSaleMaterialData),\r\n this.makeMaterialData(this.stateReport.vhsDistributionMaterialData),\r\n this.makeMaterialData(this.stateReport.emailDistributionMaterialData),\r\n this.makeMaterialData(this.stateReport.ipdcLeafletDistributionMaterialData),\r\n this.makeMaterialData(this.stateReport.otherSaleMaterialData),\r\n this.makeMaterialData(this.stateReport.otherDistributionMaterialData),\r\n this.makeLibraryStockData(this.stateReport.bookLibraryStockData),\r\n this.makeLibraryStockData(this.stateReport.vhsLibraryStockData),\r\n this.makeLibraryStockData(this.stateReport.otherLibraryStockData),\r\n this.makeFinanceData(this.stateReport.baitulMalFinanceData),\r\n this.makeFinanceData(this.stateReport.aDayMasjidProjectFinanceData),\r\n this.makeFinanceData(this.stateReport.masjidTableBankFinanceData),\r\n this.makeSocialWelfareData(this.stateReport.qardeHasanaSocialWelfareData),\r\n this.makeSocialWelfareData(this.stateReport.patientVisitSocialWelfareData),\r\n this.makeSocialWelfareData(this.stateReport.socialVisitSocialWelfareData),\r\n this.makeSocialWelfareData(this.stateReport.transportSocialWelfareData),\r\n this.makeSocialWelfareData(this.stateReport.shiftingSocialWelfareData),\r\n this.makeSocialWelfareData(this.stateReport.shoppingSocialWelfareData),\r\n this.makeSocialWelfareData(this.stateReport.foodDistributionSocialWelfareData),\r\n this.makeSocialWelfareData(this.stateReport.cleanUpAustraliaSocialWelfareData),\r\n this.makeSocialWelfareData(this.stateReport.otherSocialWelfareData),\r\n this.stateReport.comment\r\n );\r\n }\r\n\r\n save = async () => {\r\n try {\r\n await this.service.updateReport(this.stateReport.organization.id, this.reportid, this.getReportData());\r\n } catch (error) {\r\n toastr.error(error, \"Error Saving Report\");\r\n return;\r\n }\r\n this.isSaving = true;\r\n toastr.success(\"Report Saved\");\r\n }\r\n\r\n private makeMemberData(dto: MemberData): MemberData {\r\n return new MemberData(dto.nameAndContactNumber, dto.action, dto.lastPeriod, \r\n dto.upgradeTarget, dto.thisPeriod, dto.increased, dto.decreased, \r\n dto.comment, dto.personalContact);\r\n }\r\n\r\n private makeUnitOrganizationData(dto: UnitOrganizationData): UnitOrganizationData {\r\n return new UnitOrganizationData(\r\n dto.action,\r\n dto.lastPeriod, \r\n dto.upgradeTarget,\r\n dto.thisPeriod,\r\n dto.increased,\r\n dto.decreased, \r\n dto.comment,\r\n );\r\n }\r\n\r\n private makeMeetingProgramData(dto: MeetingProgramData) {\r\n return new MeetingProgramData(dto.target, dto.dateAndAction, dto.actual, dto.averageAttendance, dto.comment);\r\n }\r\n\r\n private makeTeachingLearningProgramData(dto: TeachingLearningProgramData) {\r\n return new TeachingLearningProgramData(dto.target, dto.dateAndAction, dto.actual, dto.averageAttendance, dto.comment);\r\n }\r\n\r\n private makeDawahProgramData(dto: DawahProgramData) {\r\n return new DawahProgramData(dto.target, dto.dateAndAction, dto.actual, dto.averageAttendance, dto.comment);\r\n }\r\n\r\n private makeMaterialData(dto: MaterialData) {\r\n return new MaterialData(dto.target, dto.dateAndAction, dto.actual, dto.comment);\r\n }\r\n\r\n private makeLibraryStockData(dto: LibraryStockData) {\r\n return new LibraryStockData(dto.lastPeriod, dto.thisPeriod, dto.increased, dto.decreased, dto.comment);\r\n }\r\n\r\n private makeFinanceData(dto: FinanceData) {\r\n return new FinanceData(dto.workerPromiseLastPeriod, dto.lastPeriod,dto.workerPromiseIncreaseTarget, dto.workerPromiseIncreased, dto.workerPromiseDecreased, \r\n dto.workerPromiseThisPeriod, dto.otherSourceIncreaseTarget, dto.totalIncreaseTarget, dto.collection, dto.expense, dto.nisabPaidToCentral, \r\n dto.balance, dto.comment, dto.action, dto.otherSourceAction);\r\n }\r\n\r\n private makeSocialWelfareData(dto: SocialWelfareData) {\r\n return new SocialWelfareData(dto.target, dto.dateAndAction, dto.actual, dto.comment);\r\n }\r\n\r\n get isDirty() {\r\n const latestJson = JSON.stringify(this.getReportData());\r\n return latestJson !== this.initialJson;\r\n }\r\n\r\n async cancelChanges() {\r\n this.isCancelling = true;\r\n await this.loadReport(0);\r\n this.isCancelling = false;\r\n }\r\n\r\n get canSave() {\r\n return this.isDirty && !this.isCancelling && !this.isSaving && !this.isSubmitting;\r\n }\r\n\r\n get canCancel() {\r\n return !this.isCancelling && !this.isSaving && !this.isSubmitting;\r\n }\r\n\r\n get canSubmit() {\r\n return !this.isDirty && !this.isCancelling && !this.isSaving && !this.isSubmitting;\r\n }\r\n\r\n onStateReportUpdated = async (id: number) => {\r\n this.isSaving = false;\r\n await this.loadReport(0);\r\n if(this.afterSave.length === 0) return;\r\n await this.afterSave.pop()();\r\n }\r\n\r\n onStateReportUpdateFailed = (e: {$values: string[]}) => {\r\n this.isSaving = false;\r\n toastr.error(e.$values.join(\"\\n\"), \"Error Saving Report\");\r\n if(this.afterSave.length === 0) return;\r\n this.afterSave.pop();\r\n }\r\n\r\n saveAndSubmitReport = async () => {\r\n if (this.isDirty)\r\n {\r\n await this.save();\r\n this.afterSave.push(this.submitReport);\r\n return;\r\n } \r\n await this.submitReport();\r\n }\r\n\r\n submitReport = async () => {\r\n try {\r\n await this.service.submitReport(this.stateReport.organization.id, this.reportid);\r\n } catch(error) {\r\n toastr.error(error, \"Error Submitting Report\");\r\n }\r\n this.isSubmitting = true;\r\n }\r\n\r\n onReportSubmitted = (id: number) => {\r\n this.isSubmitting = false;\r\n toastr.success(\"Report Submitted\");\r\n this.router.navigate(`state-report-view/${id}`);\r\n }\r\n\r\n onReportSubmitFailed = (e: {$values: string[]}) => {\r\n this.isSubmitting = false;\r\n toastr.error(e.$values.join(\"\\n\"), \"Error Submitting Report\");\r\n }\r\n \r\n get headerData() {\r\n if(!this.stateReport) return undefined;\r\n return new PlanReportHeaderData(\"State Report\", this.reportid, this.stateReport.description, this.stateReport.reportStatus, this.stateReport.organization, this.stateReport.reportingPeriod);\r\n }\r\n}\r\n","module.exports = \"\\r\\n\";","import { autoinject } from \"aurelia-framework\";\r\nimport { AppRouter } from \"aurelia-router\";\r\nimport * as toastr from \"toastr\";\r\nimport { SignalrWrapper } from \"signalrwrapper\";\r\nimport { MemberReportData } from \"models/MemberReportData\";\r\nimport { UnitOrganizationReportData } from \"models/UnitOrganizationReportData\";\r\nimport { LibraryStockData } from \"models/LibraryStockData\";\r\nimport { FinanceReportData } from \"models/FinanceReportData\";\r\nimport { FinanceData } from \"models/FinanceData\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { LibraryStockReportData } from \"models/LibraryStockReportData\";\r\nimport { ReportLastPeriodUpdateData } from \"models/ReportLastPeriodUpdateData\";\r\nimport { StatePlanReportService } from \"services/StatePlanReportService\";\r\nimport { StateReportViewModelDto } from \"models/StateReportViewModelDto\";\r\nimport { MemberData } from \"models/MemberData\";\r\nimport { UnitOrganizationData } from \"models/UnitOrganizationData\";\r\n\r\n@autoinject\r\nexport class StateReportLastPeriodEdit {\r\n reportid: number;\r\n stateReport: StateReportViewModelDto;\r\n isSaving = false;\r\n isCancelling = false;\r\n initialJson = \"\";\r\n\r\n signalreventhandlers: any = {};\r\n constructor(public service: StatePlanReportService, public signalr: SignalrWrapper, public router: AppRouter) {\r\n this.signalreventhandlers = {\r\n \"StateReportUpdated\": this.onStateReportUpdated,\r\n \"StateReportUpdateFailed\": this.onStateReportUpdateFailed,\r\n };\r\n }\r\n\r\n activate(params: { reportid: number }) {\r\n this.reportid = params.reportid;\r\n }\r\n\r\n async attached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.on(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n await this.loadReport();\r\n }\r\n\r\n detached() {\r\n for (const key in this.signalreventhandlers) {\r\n if (this.signalreventhandlers.hasOwnProperty(key)) {\r\n this.signalr.off(key, this.signalreventhandlers[key]);\r\n }\r\n }\r\n }\r\n\r\n async loadReport() {\r\n this.stateReport = await this.service.getReport(this.reportid);\r\n this.setInitialData();\r\n }\r\n\r\n setInitialData() {\r\n const initialData = this.getReportLastPeriodUpdateData();\r\n this.initialJson = JSON.stringify(initialData);\r\n }\r\n\r\n getReportLastPeriodUpdateData(): ReportLastPeriodUpdateData {\r\n return new ReportLastPeriodUpdateData(\r\n this.makeMemberData(this.stateReport.memberMemberData),\r\n this.makeMemberData(this.stateReport.associateMemberData),\r\n this.makeMemberData(this.stateReport.preliminaryMemberData),\r\n this.makeMemberData(this.stateReport.supporterMemberData),\r\n this.makeUnitOrganizationData(this.stateReport.dawahUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.stateReport.organizationUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.stateReport.ymbUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.stateReport.ymsUnitOrganizationData),\r\n this.makeUnitOrganizationData(this.stateReport.lmUnitOrganizationData),\r\n this.makeFinanceReportData(this.stateReport.baitulMalFinanceData),\r\n this.makeFinanceReportData(this.stateReport.aDayMasjidProjectFinanceData),\r\n this.makeFinanceReportData(this.stateReport.masjidTableBankFinanceData),\r\n this.makeLibraryStockReportData(this.stateReport.bookLibraryStockData),\r\n this.makeLibraryStockReportData(this.stateReport.vhsLibraryStockData),\r\n this.makeLibraryStockReportData(this.stateReport.otherLibraryStockData)\r\n );\r\n }\r\n\r\n save = async () => {\r\n if (!this.isDirty) return;\r\n try {\r\n await this.service.updateReportLastPeriod(this.stateReport.organization.id, this.reportid, this.getReportLastPeriodUpdateData());\r\n } catch (error) {\r\n toastr.error(error, \"Error Saving Report\");\r\n return;\r\n }\r\n this.isSaving = true;\r\n } \r\n\r\n private makeMemberData(original: MemberData): MemberReportData {\r\n return new MemberReportData(original.lastPeriod, original.increased, original.decreased, original.comment, original.personalContact);\r\n }\r\n\r\n private makeUnitOrganizationData(original: UnitOrganizationData): UnitOrganizationReportData {\r\n return new UnitOrganizationReportData(original.lastPeriod, original.increased, original.decreased, original.comment);\r\n }\r\n\r\n private makeLibraryStockReportData(original: LibraryStockData): LibraryStockReportData {\r\n return new LibraryStockReportData(original.lastPeriod, original.increased, original.decreased, original.comment);\r\n }\r\n\r\n private makeFinanceReportData(original: FinanceData): FinanceReportData {\r\n return new FinanceReportData(original.workerPromiseLastPeriod,\r\n original.lastPeriod,\r\n original.workerPromiseIncreased,\r\n original.workerPromiseDecreased,\r\n original.collection,\r\n original.expense,\r\n original.nisabPaidToCentral,\r\n original.comment);\r\n }\r\n\r\n get isDirty() {\r\n const latestJson = JSON.stringify(this.getReportLastPeriodUpdateData());\r\n return latestJson !== this.initialJson;\r\n }\r\n\r\n async cancelChanges() {\r\n this.isCancelling = true;\r\n await this.loadReport();\r\n this.isCancelling = false;\r\n }\r\n\r\n get canSave() {\r\n return this.isDirty && !this.isCancelling && !this.isSaving;\r\n }\r\n\r\n get canCancel() {\r\n return !this.isCancelling && !this.isSaving;\r\n }\r\n\r\n onStateReportUpdated = async (id: number) => {\r\n this.isSaving = false;\r\n toastr.success(\"Report Saved\");\r\n await this.loadReport();\r\n }\r\n\r\n onStateReportUpdateFailed = (e: {$values: string[]}) => {\r\n this.isSaving = false;\r\n toastr.error(e.$values.join(\"\\n\"), \"Error Saving Report\");\r\n }\r\n\r\n get headerData() {\r\n if(!this.stateReport) return undefined;\r\n return new PlanReportHeaderData(\"State Report\", this.reportid, this.stateReport.description, this.stateReport.reportStatus, this.stateReport.organization, this.stateReport.reportingPeriod);\r\n }\r\n}\r\n","module.exports = \"\\r\\n\";","import { autoinject } from \"aurelia-framework\";\r\nimport { StatePlanReportService } from \"services/StatePlanReportService\";\r\nimport { StateReportViewModelDto } from \"models/StateReportViewModelDto\";\r\nimport { PlanReportHeaderData } from \"resources/plan-report-header/PlanReportHeaderData\";\r\nimport { Subscription, EventAggregator } from \"aurelia-event-aggregator\";\r\nimport { ReportStatus } from \"models/ReportStatus\";\r\nimport { StateReportUpdated } from \"resources/plan-report-header/StateReportUpdated\";\r\n\r\n@autoinject\r\nexport class StateReportView {\r\n reportid: number;\r\n stateReport: StateReportViewModelDto;\r\n isDownloadingList = false;\r\n isDownloadingDetail = false;\r\n isResettingPlan = false;\r\n isResettingReport = false;\r\n isRecalculatingPlan = false;\r\n isRecalculatingYPlanFromQ = false;\r\n isRecalculatingReport = false;\r\n isRecalculatingYReportFromQ = false;\r\n subscription: Subscription;\r\n constructor(public service: StatePlanReportService, public ea?: EventAggregator) { }\r\n\r\n activate(params: {reportid: number}) {\r\n this.reportid = params.reportid;\r\n }\r\n\r\n async attached() {\r\n this.subscription = this.ea.subscribe(StateReportUpdated, _ => this.loadReport(1));\r\n await this.loadReport(1);\r\n }\r\n\r\n detached() {\r\n this.subscription.dispose();\r\n }\r\n\r\n SingleTimeLastPeriodValuesUpdate(lastPeriodValuesUpdateNeeded: number) {\r\n /*\r\n Calls `updateReportLastPeriodFromModel()` for a single time\r\n when the report status is `Report Not Submitted`.\r\n\r\n `updateReportLastPeriodFromModel()` automatically calls `loadReport()`\r\n which causes the circular calling.\r\n */\r\n if( window.localStorage && lastPeriodValuesUpdateNeeded === 1 && this.stateReport.reportStatus !== ReportStatus.Submitted ) {\r\n if( !window.localStorage.getItem('firstLoad') ) {\r\n this.service.updateReportLastPeriodFromModel(this.reportid);\r\n window.localStorage['firstLoad'] = true;\r\n }\r\n else {\r\n window.localStorage.removeItem('firstLoad');\r\n }\r\n };\r\n }\r\n\r\n async getStateReport(lastPeriodValuesUpdateNeeded: number) {\r\n this.stateReport = await this.service.getReport(this.reportid);\r\n this.SingleTimeLastPeriodValuesUpdate(lastPeriodValuesUpdateNeeded);\r\n }\r\n\r\n async loadReport(lastPeriodValuesUpdateNeeded: number) {\r\n this.getStateReport(lastPeriodValuesUpdateNeeded);\r\n }\r\n\r\n get headerData() {\r\n if(!this.stateReport) return undefined;\r\n return new PlanReportHeaderData(\"State Report\", this.reportid, this.stateReport.description, this.stateReport.reportStatus, this.stateReport.organization, this.stateReport.reportingPeriod);\r\n }\r\n}\r\n","module.exports = \"\\r\\n\";"],"sourceRoot":""}