{"version":3,"mappings":"gHAAA,cAGA,yCACA,8CACA,gCACAA,IAGAC,kBAA6C,UAC7CA,YACAA,WACAC,yGCPO,MAAMC,EAAoD,EAC/DH,0BAA0C,CAC1CI,KAAM,qBACNC,aAAcC,sBACdC,eAAgBD,UAChBE,UAAU,IAEVR,4BAA4C,CAC5CI,KAAM,4BACNC,aAAcC,sBACdC,eAAgBD,YAChBE,UAAU,IAEVR,6BAA6C,CAC7CI,KAAM,+CACNC,aAAcC,eACdC,eAAgBD,UAChBE,UAAU,IAEVR,4BAA4C,CAC5CI,KAAM,8CACNC,aAAcC,sBACdC,eAAgBD,YAChBE,UAAU,IAEVR,oBAAoC,CACpCI,KAAM,qCACNC,aAAcC,qBACdC,eAAgBD,UAChBE,UAAU,wCClCZ,IAAYR,6CAAmB,KAE9BM,+CAEAA,mDACAA,6DACAA,2EACAA,qFACAA,qEACAA,qEACAA,+DACAA,+DAEAA,iEACAA,gEACAA,gEACAA,8DACAA,kEAEAA,sCACAA,8DACAA,oEACAA,gDACAA,wCACAA,wDACAA,sEAEAA,gDACAA,kDACAA,gFACAA,kEACAA,8EACAA,oDAEAA,8CACAA,0CACAA,8BACAA,0ECrCD,IAAYN,6CAAU,KACrBM,yBACAA,uBACAA,qDCHD,IAAYN,6CAAkB,KAC7BM,iDACAA,uDACAA,yDACAA,uDACAA,2ECLD,IAAYN,6CAAiB,KAC5BM,gBACAA,2BACAA,kCACAA,2DCJD,IAAYN,6CAAe,KAC1BM,gBACAA,yBACAA,+BACAA,mCACAA,+DCLD,IAAYN,6CAAsB,KACjCM,uBACAA,2BACAA,uBACAA,uBACAA,oCACAA,wCACAA,0CACAA,+DCRD,IAAYN,6CAAkB,KAC7BM,uBACAA,2BACAA,uBACAA,uBACAA,oCACAA,wCACAA,8ECPD,IAAYN,6CAAc,KACzBM,uBACAA,2BACAA,2CACAA,+BACAA,2BACAA,mECND,IAAYN,6CAAU,KACrBM,+BACAA,mCACAA,uCACAA,yBACAA,2BACAA,6BACAA,uBACAA,+BACAA,qCACAA,4BACAA,0BACAA,wDACAA,8CACAA,8CACAA,wCACAA,4CACAA,oBACAA,sBACAA,4CACAA,gDACAA,wCACAA,oCACAA,sCACAA,8CACAA,wBACAA,wCACAA,wBACAA,0CAEAA,sCACAA,oCACAA,oCACAA,kDACAA,0CACAA,gDACAA,0CACAA,8CACAA,8BACAA,0CACAA,sCACAA,oCACAA,0BACAA,4CACAA,oCACAA,kCACAA,sBACAA,kBACAA,oBACAA,0CACAA,oCACAA,kCACAA,0CACAA,oBACAA,kCACAA,oCACAA,kCACAA,oBACAA,gDACAA,oCACAA,kDACAA,gDACAA,wDACAA,4CACAA,8CACAA,8CACAA,8CACAA,4CACAA,wDACAA,gDACAA,wDACAA,kCACAA,4CACAA,kDACAA,8BACAA,oEACAA,sDACAA,4CACAA,qBACAA,yBACAA,yDACAA,6BACAA,yCACAA,6BACAA,iCACAA,+CACAA,uDACAA,mBACAA,uDACAA,qCACAA,yCAGAA,oBACAA,sDC9FD,IAAYN,6CAAc,KACzBM,6BACAA,uBACAA,2BACAA,+DCJD,IAAYN,6CAAc,KACzBM,iBACAA,yBACAA,qBACAA,6BACAA,mBACAA,6BACAA,mBACAA,mCACAA,2BACAA,uBACAA,4BACAA,0BACAA,sCACAA,gCACAA,kDACAA,0BACAA,4CACAA,oDACAA,0CACAA,gCACAA,4CACAA,sCACAA,8DACAA,0CACAA,sCACAA,gDACAA,0CACAA,kFC5BD,IAAYN,6CAAQ,KACnBS,sBACAH,0BACAA,uDACAA,qCACAA,oBACAA,mBACAA,mCACAA,mCACAA,qBACAA,oDACAA,+BACAA,gEACAA,iEACAA,oDACAA,yCACAA,yCACAA,sDACAA,yBACAA,+BACAA,uBACAA,qBACAA,eACAA,yBACAA,qCACAA,6BACAA,kBACAA,mCACAA,gBACAA,mCACAA,iCACAA,8DACAA,yEACAA,0DACAA,qEACAA,8DACAA,0DACAA,cACAA,qEACAA,gBACAA,yBACAA,cACAA,yCACAA,6BACAA,sCACAA,+CACAA,2CACAA,gCACAA,gCACAA,wDACAA,4DACAA,0DACAA,0BACAA,qEACAA,uDACAA,qCACAA,4DACAA,oBACAA,+CACAA,qCACAA,qCACAA,0DACAA,uCACAA,gFACAA,wDACAA,kDACAA,4DACAA,uCACAA,yCACAA,yDACAA,gDACAA,2CACAA,iCACAA,4FACAA,6CACAA,wDACAA,wDACAA,qEACAA,qCACAA,8BACAA,gCACAA,sDACAA,oEACAA,uCACAA,sDACAA,yCACAA,2EACAA,+EACAA,+DACAA,uCACAA,sBACAA,sBACAA,kCACAA,6DACAA,4DACAA,qCACAA,kDACAA,qEACAA,iEACAA,sDACAA,kDACAA,6EACAA,mFACAA,mCACAA,6CACAA,qCACAA,mFACAA,2DACAA,yEACAA,yEACAA,qCACAA,0CACAA,wDACAA,yDACAA,0CACAA,gEACAA,iCACAA,2CACAA,+DACAA,8DACAA,+BACAA,qCACAA,iDACAA,YACAA,2BACAA,mCACAA,6EACAA,6BACAA,uCACAA,yCACAA,6BACAA,uEACAA,mCACAA,0CACAA,kDACAA,uEACAA,sBACAA,oDACAA,2EACAA,2EACAA,+BACAA,oEACAA,0CACAA,sFACAA,8CACAA,yDACAA,8CACAA,iDACAA,gDACAA,yEACAA,2EACAA,uEACAA,wDACAA,uEACAA,mEACAA,kDACAA,oDACAA,kDACAA,iCACAA,qCACAA,iEChKD,IAAYN,6CAAiB,KAC5BU,wDACAJ,oECFD,IAAYN,6CAAS,KACpBW,YACAL,sBACAA,sDCHD,IAAYN,6CAAY,KACvBM,mBACAA,6BACAA,6BACAA,iECJD,IAAYN,6CAAI,KACfM,mCACAA,gCACAA,8BACAA,6DCJD,IAAYN,6CAAgB,KAC3BY,6BACAN,+BACAA,oBACAA,sBACAA,qBACAA,uCACAA,0CACAA,iCACAA,wBACAA,kCACAA,mBACAA,4BACAA,8BACAA,wCACAA,kCACAA,2BACAA,qECjBD,IAAYN,6CAAU,KACrBM,2BACAA,iCACAA,6BACAA,yBACAA,2BACAA,mCACAA,yBACAA,2BACAA,2BACAA,+CACAA,gDACAA,4CACAA,4BACAA,wBACAA,sBACAA,4BACAA,gECjBD,IAAYN,6CAAQ,KACnBM,gBACAA,2BACAA,iCACAA,mCACAA,+BACAA,2CACAA,yBACAA,iCACAA,mDACAA,mCACAA,4CACAA,oCACAA,wBACAA,kDACAA,8CACAA,sDACAA,kDACAA,4CACAA,kCACAA,oCACAA,kDACAA,gCACAA,oCACAA,sDACAA,kCACAA,gDACAA,8BACAA,kCACAA,sDACAA,oDACAA,0DACAA,wCACAA,wBACAA,8CACAA,kDACAA,4CACAA,4CACAA,wCACAA,oDACAA,8CACAA,4CACAA,8DACAA,0EC3CD,IAAYN,IAsCAM,EASAH,EA4BAU,EAuBAC,EAkBAC,EAaAC,EAWAC,EAeAC,EAKAC,EAUAC,EAcAC,EAUAC,EAUAC,EAKAC,EAmBAC,EAmBAC,EAOAC,EAKAC,odAnQAC,QAAgB,KAC3BA,+BACAA,0BACAA,8CACAA,4BACAA,wCACAA,wBACAA,wBACAA,mDACAA,2CACAA,+CACAA,4BACAA,qCACAA,6CACAA,+BACAA,yBACAA,uBACAA,qBACAA,2BACAA,qBACAA,+BACAA,+CACAA,2BACAA,uBACAA,uBACAA,yBACAA,mCACAA,6CACAA,+CACAA,mCACAA,2BACAA,yCACAA,iCACAA,+CACAA,uCACAA,uCAGD,SAAYA,GACXA,mBACAA,uBACAA,uBACAA,uBACAA,uBACAA,2BAND,CAAYvB,MAAS,KASrB,SAAYuB,GACXA,oBACAA,4BACAA,0CACAA,gCACAA,wBACAA,sBACAA,0BACAA,0CACAA,sBACAA,wCACAA,4CACAA,sBACAA,4BACAA,kCACAA,0CACAA,sDACAA,gDACAA,4BACAA,+BACAA,uDACAA,6DACAA,iDACAA,qCACAA,iCACAA,2BAzBD,CAAY1B,MAAiB,KA4B7B,SAAY0B,GACXA,oBACAA,4BACAA,8BACAA,sBACAA,0BACAA,sBACAA,wCACAA,4CACAA,sBACAA,oCACAA,gCACAA,4BACAA,4BACAA,sDACAA,kCACAA,oDACAA,+BACAA,iDACAA,2BACAA,iDApBD,CAAYhB,MAAkB,KAuB9B,SAAYgB,GACXA,oBACAA,4BACAA,8BACAA,gCACAA,sBACAA,wBACAA,sBACAA,sBACAA,4BACAA,+CACAA,6BACAA,iDACAA,iCACAA,uDACAA,2BAfD,CAAYf,MAAwB,KAkBpC,SAAYe,GACXA,oBACAA,4BACAA,sBACAA,kCACAA,0BACAA,sBACAA,sBACAA,8CACAA,4BACAA,2BAVD,CAAYd,MAAgB,KAa5B,SAAYc,GACXA,oBACAA,4BACAA,sBACAA,0BACAA,sBACAA,gCACAA,0BACAA,sBARD,CAAYb,MAAgB,KAW5B,SAAYa,GACXA,qBACAA,iCACAA,6BACAA,yBACAA,2CACAA,iCACAA,iDACAA,6CACAA,2BACAA,uBACAA,uBACAA,+CAZD,CAAYZ,MAA6B,KAezC,SAAYY,GACXA,6CACAA,uBAFD,CAAYX,MAAyB,KAKrC,SAAYW,GACXA,qBACAA,2CACAA,6BACAA,uBACAA,6BACAA,uBACAA,qCAPD,CAAYV,MAAe,KAU3B,SAAYU,GACXA,qBACAA,+BACAA,iCACAA,uBACAA,uCACAA,iCACAA,2BACAA,uBACAA,yCACAA,mDACAA,+CAXD,CAAYT,MAAoB,KAchC,SAAYS,GACXA,qBACAA,6BACAA,+BACAA,6BACAA,uBACAA,uBACAA,qCAPD,CAAYR,MAAc,KAU1B,SAAYQ,GACXA,qBACAA,uBACAA,uBACAA,2BACAA,qCACAA,uDACAA,uDAPD,CAAYP,MAAiB,KAU7B,SAAYO,GACXA,qBACAA,2BAFD,CAAYN,MAAmB,KAK/B,SAAYM,GACXA,oBACAA,kCACAA,4BACAA,gCACAA,8BACAA,sBACAA,wBACAA,8CACAA,gCACAA,gDACAA,2BACAA,+CACAA,uCACAA,2BACAA,uBACAA,qCAhBD,CAAYL,MAAiB,KAmB7B,SAAYK,GACXA,yBACAA,yBACAA,+BACAA,yCACAA,2CACAA,mCACAA,2BACAA,yCACAA,sBACAA,0CACAA,4BACAA,gCACAA,qCACAA,mCACAA,6BACAA,iDAhBD,CAAYJ,MAAqB,KAmBjC,SAAYI,GACXA,qBACAA,6BACAA,qCACAA,uBAJD,CAAYH,MAAc,KAO1B,SAAYG,GACXA,uBACAA,uCAFD,CAAYF,MAAc,KAK1B,SAAYE,GACXA,mCADD,CAAYD,MAAc,yCCnQ1B,IAAY5B,6CAAY,KACvBM,mCACAA,uCACAA,0ECHD,IAAYN,6CAAY,KACvBM,qBACAA,mBACAA,yBACAA,uBACAA,2DCLD,IAAYN,6CAAsB,KACjCM,uBACAA,yECFD,IAAYN,yCAAkB,KAC7B8B,yECDD,IAAY9B,6CAAY,KACvB+B,kBACAzB,sBACAA,kCACAA,oBACAA,cACAA,gBACAA,cACAA,4BACAA,gBACAA,gBACAA,gBACAA,gBACAA,wCACAA,0CACAA,oCACAA,oBACAA,oBACAA,8BACAA,4BACAA,sCACAA,0CACAA,oECtBD,IAAYN,6CAAQ,KACnBM,iBACAA,qCACAA,iCACAA,mCACAA,+CACAA,iCACAA,+BACAA,+BACAA,2CACAA,yCACAA,oCACAA,gCACAA,8BACAA,wCACAA,8BACAA,4DACAA,oDACAA,wDACAA,4DACAA,kCACAA,wCACAA,0CACAA,kDACAA,8CACAA,oCACAA,wDACAA,0DACAA,8BACAA,wDACAA,0DACAA,8DACAA,sEACAA,sCACAA,gDACAA,4BACAA,sDACAA,wGACAA,gFCtCD,IAAYN,6CAAgB,KAC3BM,+BACAA,uCACAA,yBACAA,2BACAA,uBACAA,qCACAA,4BACAA,0BACAA,8CACAA,8CACAA,gDACAA,4CACAA,4CACAA,sBACAA,wBACAA,wCACAA,wBACAA,0CACAA,sCACAA,8BACAA,0CACAA,sCACAA,oCACAA,0BACAA,oCACAA,oBACAA,oBACAA,8DC5BD,IAAYN,6CAAe,KAC1BM,eACAA,+BACAA,qDACAA,iDACAA,uEACAA,mGCND,IAAYN,6CAAgB,KAC3BM,eACAA,qCACAA,+BACAA,+CACAA,2CACAA,2CACAA,2DACAA,yDACAA,6CACAA,iGCVM,SAEUN,UAAU,IAAIgC,OAAO,YAGrBhC,WAAW,IAAIgC,OAAO,0DAGtBhC,YAAY,IAAIgC,OAC/B,8FAIehC,eAAe,IAAIgC,OAAO,kBAE1BhC,aAAa,IAAIgC,OAAO,+BAGxBhC,cAAc,IAAIgC,OAAO,uBAGtBhC,eAAuB,IAAIgC,OAAO,2CCrBtD,IAAYhC,6CAAsB,KACjCM,eACAA,eACAA,uBACAA,+CACAA,mDACAA,qDACAA,qBACAA,mCAC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gBkkC,MACvCnkC,gBAAyB,CACxB+iC,GACAI,GACAlC,GACA/vB,EACA6N,EACAoB,EACAqjB,GACA5C,GACAphB,QC/BI,iDAAM4kB,gEAHH,CAACvlC,yBCkBJ,iDAAMwlC,iEAFD,CAACC,MAA0BC,SAf7B,wECTV59B,SACCA,iBACAA,SACDA,8BAFmBA,kGAClBA,8CCMM,SAGNmoB,OAAO0N,GACN57B,KAAKsD,OAASs4B,EAGfxN,UACC,OAAO,0CARIwV,iCAA4BhgB,4HDRzC7d,sCAAeA,oQE2NR,iDAAM89B,gEAlJH,CAAC5lC,+FCrDJ,iDAAM6lC,gEATXC,MACAC,MACAC,MACAC,MACAC,MACAC,MACAC,wECXK,SACNtkC,YAAoB67B,0BAEpB5B,UAAU4B,EAAYC,EAAS,IAC9B,OAAKD,EAGU,SAAXC,EACI77B,KAAKskC,gBAAgBr1B,iBAAiB2sB,GAEtC,IAAIvsB,KAAKusB,GALT,6CALG2I,IAAYx+B,2DAAZw+B,GAAYtK,0HCqhClB,iDAAMuK,iEArBD,CACV,CACCC,QAASvlC,KACTwlC,SA7nBuE,CACzEC,iBAAiB,IA8nBhBC,KACAzlC,IACAlB,KACA4mC,KACAC,KACAC,KACAR,GACAS,KACAC,KACAC,KACAC,KACAC,KACAC,KACAvnC,KACA6lC,SA7QQ,CACR1lC,KACAW,KACAD,KACAA,KACAO,KACA4jC,GACAe,GACAJ,GACA1kC,eACAA,eACAykC,GACA1kC,oBAA4B,CAC3B8kC,GACA0B,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,OAEDtnC,KACAA,IACAH,KACAilC,GACA7kC,KACAb,MAGA0lC,GACAD,GACAJ,GACAD,GACAtkC,KACAJ,4CCtzBF,IAAYhB,gEAAqB,KAChCyoC,+CAGM,QAGNxmC,YAAmBpB,kBAFVqB,UAAOlC,EAAsByoC,uDCJvC,IAAYzoC,8XAAsB,KACjC0oC,wDACAhnC,sEACAA,mEACAA,qGACAA,8GACAA,6DACAA,4EACAA,+DACAA,uEACAA,2EACAA,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mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,sBACA,mBACA,sBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,eACA,kBACA,gBACA,aACA,gBACA,WACA,cACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,YACA,eACA,YACA,eACA,YACA,eACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,iBACA,oBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,cACA,iBACA,aACA,gBACA,cACA,iBACA,cACA,mBACA,sBACA,iBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,aACA,gBACA,mBACA,sBACA,aACA,gBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,oBAIA,cACA,WACA,YAEA,cACA,cACA,8CACA,gCACAtiC,EAEA,YAEAR,kBACA,uBAEAA,YACAJ,YACAI","names":["t","m","O","u","path","permissionId","e","permissionType","isModule","COMPANIES","DoNotToastValidationErrors","Text","LOGIN_DATA_STORAGE_KEY","l","r","a","i","c","p","s","v","f","h","d","g","I","E","A","C","o","NavigateAfterLogin","Company","RegExp","constructor","this","accessToken","tokenType","refreshToken","errorDescription","expireDate","expireIn","isAfter","keyword","maxCount","excludedIds","super","filterType","Number","isNaN","entityTypeId","businessEntityTypeId","hasUser","isParentVendor","activeType","isApplicationSearch","loadInvoice","http","get","appConfig","api","service","getApplicationSearchTransactionGrid","post","getPoNumberTypes","getInvoiceSendingMethods","getCompanySearchTransactionGrid","getPrivateLabelerSearchTransactionGrid","generate","invoiceTypeId","generateInvoiceBulkAccountRenewal","headers","generateInvoiceVisit","generateInvoiceTrip","generateInvoiceCompletedVisitsAndTrips","generateCreditMemo","invoicePreviewDetails","invoicePreviewFacilities","invoicePreviewHeader","invoiceHeaderGroup","export","hasPrintAvailable","getInvoiceSummary","saveReplyPO","visitTransactionGrid","tripTransactionGrid","getPaymentMethods","useDefault","visibleOnExpensesPage","params","generateAdditionalFees","getAgreementRegionalDerfaultFees","getAcumaticaLogDetails","syncCompanyContractSnapShot","loadJournalTransactionsByFilePaymentItemIds","loadJournalTransactionsByExpenseIds","getSyncDetails","resyncInvoice","factory","findBusinessEntityLight","appConfigurationService","findBusinessEntity","product","findAgency","findVendor","findMasterIngredient","findVisits","findTasks","ownerAutocomplete","keywordMinimumLength","businessEntityId","constructKeywordQueryParam","valueOrDefault","urlHelper","addQueryParam","brandAutocomplete","companyId","contactAutocomplete","visitProductAutocomplete","facilityId","lifecycleStatusId","producerAutocomplete","usersAutocomplete","auth","internalContactsAutocomplete","subscribe","String","indexOf","next","filter","_","id","search","name","toLowerCase","displayName","fieldRepsAutocomplete","brandApprovedByAutocomplete","getContactsByType","rabbiCoordinatorsAndAccountRepsAutocomplete","rabbiCoordinatorsAndAgencyUsersAutocomplete","rabbiCoordinatorsAutocomplete","rcAndFieldRepsAutocomplete","accountRepsAutocomplete","getRCAutocomplete","visitContactsAutocomplete","entityType","certificateGroupAutocomplete","autocompleteIdentityCode","companyAutocomplete","isForBatch","visitFacilitiesAutocomplete","toString","fieldRepId","contactRepType","facilitiesByFieldRepAutocomplete","ukdAutocomplete","Object","ukdSearch","push","companiesByFieldRepAutocomplete","companiesByFieldRepHistoryBasedAutocomplete","model","criteria","filterDropdown","template","exportSearch","editMultiple","getBatchIngredientsSummary","loadBatchIngredients","load","loadMultiple","saveBatchItem","batchId","item","saveBatchItems","removeItems","batchIngredientItemLoad","batchIngredientItemsLoad","sendForReview","validatePackaging","validateGroupAndPackaging","toggleAccordion","setTimeout","toggleAccordion$","canView","length","forEach","getPermissionItem","getRightValue","some","currentRouteData","canCreatePermission","canUpdatePermission","canDeletePermission","canExport","canActivate","getCurrentUserData","localStorageService","userPermissions","permissions","userAdvancedPermissions","advancedPermissions","loadPermissions","startPermissionPolling","stopPermissionPolling","userPermissionPolling","setInterval","idle","pollingInterval","clearInterval","setPermissions","isAnyTabViewable","tabsService","getTabs","checkCurrentRoutePermission","router","navigate","checkPermissions","setPermissionsDictionary","items","hasAdvancedPermission","advancedPermissionId","value","permissionEntity","getRightByType","rights","userId","loadGeneralPermissions","loadAdvancedPermissions","permissionsLoaded$","userSettingsService","getUserPermissions","pipe","getUserAdvancedPermissions","getModule","getModulePermission","find","permissionRightId","Map","getHebrewDate","cacheMap","set","getServerUtcDate","getEnvironment","contacts","getFlat","summary","contactInfoSummary","contactsListInfoSummary","save","activateInactivateContact","infoSummary","getContactName","getContactsByEmailAddress","getInternalContacts","getAddresses","loadUserContacts","hasRabbinicalAssignments","contactId","hasAccountRepAssignments","base64ToArrayBuffer","window","atob","Uint8Array","charCodeAt","saveByteArray","Blob","type","document","createElement","href","URL","createObjectURL","download","click","getFormattedTime","toLocaleString","minimumIntegerDigits","useGrouping","Date","setHours","substring","getFormattedTimeForHTML","formattedElapsedDate","days","hours","minutes","getIntervalDates","getDateWithoutTime","setDate","getDate","getTime","getEntityUrl","getEntityUrlByTabType","getRouteIfAllowed","getIngredientBatchItemRoute","$","getBusinessEntityUrl","getBusinessentityLinkUrl","getApplicationUrlByType","getApplicationUrlByTypeAndStatus","permissionService","getTaskEntityUrl","K","urlHelperService","replaceIdInUrl","getEntityActivateUrl","getEntityInactivateUrl","getByIdentifier","navigateByIdentifier","url","generalSetter","generalGetter","clearActiveMode","clearLocalStorage","cleanAccordionStatuses","renewalPageCompanies","magicReviewPageIds","productReviewIds","loginData","currentUser","lastTabClosedAt","updateMasterIngredientIds","userGlobalSearchData","sidenavBackgroundClass","encrypt","decrypt","accordions","keys","urlsMatch","split","includes","findIndex","every","getCountries","getContinents","getWorkProcess","useDefaultValue","getContractStatuses","getStates","countryId","getBusinessCategories","getContactTypes","getPaymentFrequencies","getFinancialInvoiceTypes","getContactRoleTypes","isRequired","getAgreementTypes","getAgreementTerms","getContactRepTypes","getJobs","main","getTitleTypes","getBusinessEntitySummary","getApplicationSummary","getContactMethods","getNoteTypes","isMain","noteGroupType","getPickNoteTypes","getLocations","getCommissionTypes","getCurrencies","getApplicationSources","getRabinicals","getVisitFrequencies","getVisitTypes","getBusinessEntityTypes","getBusinessEntityApplicationTypes","getBusinessEntityLinkTypes","entityLinkId","getApplicationStatus","getApplicationStatuses","getVisitStatus","getNatureOfFacility","getProcessReasons","getInvoiceTypes","getInvoiceStatuses","addBlankValue","getEndInvoiceNoteVarriables","getTaskEntityTypes","getAssignedTaskEntityTypes","getTaskPriorities","getTaskStatusesByGroup","taskStatusGroup","getTaskModels","getTaskStages","getTaskCategories","getTaskTypes","getTaskSources","getTaskPrivacyOptions","getTaskIssueTypes","getTaskResolutions","getPlatforms","getPermissions","getPermissionRole","getIngredientEvaluationStatuses","getTwoFactorAuthentication","getJiraFeedBackFormEnabled","getIngredientCertificateStatuses","getIngredientEvaluationAttributes","getIngredientCertificateAttributes","getEvaluationGroups","getEvaluationGroupVariations","getIngredientCategories","getVisitsByInspectionType","getEvaluationsApprovalStatuses","getEvaluationsLifecycleStatuses","getCategoryOfType","categoryHeaderId","map","getCategories","getApplicationPDF","getIngredientStatuses","getMarketedAs","packageTypes","getEntityAttributes","getProductSources","getRecipientType","getEvaluationPassoverStatuses","getHandlingTypes","getProcessingStatuses","getSubsets","getSearchIntervals","getEntitySummary","getProductCategoryTypes","getSecurityLevelTypes","getBatchIngredientReviewStatus","getFacilityIngredientUtilityStatus","getStatusesByType","getEvaluationGroupAttributes","getDependencyLevels","getProductTypes","getIdentitySourceType","getCodeChangeUtilityUpdateFields","getCodeChangeUtilityDataStatuses","getTaskStatusesWithGroups","getFeeAdjustmentReason","getMonths","getListBy","uploadBachFile","uploadController","confirmBatchItemsUpload","batchController","loadIngredientBatch","getBatchIngredientProcessStatus","getBatchIngredientOriginStatus","getBatchIngredientPurposeStatus","compare","merge","unmerge","process","executeBatchItemReviewAction","productBatchController","assignBatchTo","ingredientBatchHeaderIds","assignedToUserId","updateChanges","addNavigationHistory","getNavigationHistory","entityId","pageTitle","route","_navigationHistoryList","clearNavigationHistory","getFilteredNavigationHistory","slice","Math","max","getCurrentPage","removeLastItemNavigationHistory","splice","noteController","noteId","loadByEntityType","join","loadByNoteType","loadListByEntityType","loadByEntityHistory","saveMultiple","deleteNote","getNoteSummary","getPickNotes","savePickNote","saveComment","saveCommentBulk","loadNoteAttachments","getNoteCount","getNoteCountByEntityIds","append","loadMultipleByNoteGroupTypeId","loadMultipleByNoteTypeId","setFilter","filters","getFilter","clearFilter","page","pageSize","fields","globalSearchParams","globalSearchParamsSource","asObservable","changeGlobalSearchParam","searchVisits","searchContacts","searchEntities","searchBusinessEntities","searchApplications","alternativePath","hidden","ee","ue","V","fe","G","x","w","P","T","W","z","de","te","he","ie","_e","q","Y","getTabsObservable","ne","b","complete","k","setAccountingRenewalTabPath","appendApplicationTypeRoute","le","J","M","Z","publish","applicationSummary","applicationInfo","applicationInfoSave","getApplicationFacilities","applicationContacts","businessEntities","saveApplicationContacts","saveApplicationFacilities","linkFacilityToApplication","applicationId","saveFacility","applicationCompanyInfo","saveApplicationCompanyInfo","getMergedBusinessEntity","applicationBusinessEntityId","insertMergeDetails","updateMergeDetails","deleteMergedApplicationBusinessEntity","mergeApplication","getInvoicesGroups","getInvoicesGroupsDropdown","getPrivateLabelerInvoicingGroupSelected","savePrivateLabelerInvoicingGroup","saveInvoiceGroup","saveFacilityContract","getContractVisitTypes","getContractTermAudit","saveApplicationAgreementTypeId","getApplicationBusinessEntities","getMappingTypes","saveBEMapping","loadBEMapping","U","j","controls","errors","mustMatch","setErrors","confirmForm","fb","group","password","confirmPassword","validator","ngOnInit","activatedRoute","paramMap","key","pageLoading","authService","checkRegistrationCode","isRegistrationCodeAvailable","confirm","invalid","values","form","markAsDirty","buttonLoading","confirmAccount","notifier","notify","navigateByUrl","status","error","notifications","message","selectors","forgotPasswordForm","username","forgotPassword","loading","forgotPasswordResponse","Qe","Oe","ge","userIdleService","stop","loginForm","pin","navigateToDashboard","handleLogin","bind","addEventListener","indexService","setValidators","updateValueAndValidity","isTwoFactorAuthentication","isTwoFactorAuthenticationLoading","ngOnDestroy","removeEventListener","login","store","dispatch","loginResponse","getCurrentUser","navigateAfterLogin","handleErrors","configurationService","utcDate","sessionStorage","getItem","removeItem","component","redirectTo","pathMatch","forRoot","ngModule","providers","FormData","validateCurrentUser","platform","logout","renewalIngredientReport","loadWithAttributes","getCustomerIngredientSummary","getCustomerIngredientStaticBarSummary","inactivateReactivate","editMultipleCustomerIngredients","updateIngredientFacilities","savePurchaseHistory","loadPurchaseHistoryItem","togglePurchaseHistoryItemStatus","loadCodeChangeUtility","saveCodeChangeUtility","validateCodeChangeUtility","processCodeChangeUtility","uploadCodeChangeUtility","masterIngredientController","getMasterIngredientsSummary","saveMultipleIngredients","getHistoryList","getAudit","infoIngredientIdentityId","compareIngredientIdentityId","loadMultipleMasterIngredients","generateKid","acknowledgeChangedMasterIngredients","ingredientIdentityChangeId","reviewChangedMasterIngredients","getStaticBarSummary","getUser","getUserInfo","sync","getRoles","savePermissions","saveInfo","updateRole","roleId","changePassword","resetPassword","getIPs","saveIPs","resendAuthenticationCode","resendInvitation","getAllRoles","getAllActiveUsers","componentId","field","patchValue","autoValidate","validate","_model","_disabled","setDisabledStatus","_required","setInputValidators","_readonly","handleAnyKeyUp","keyUp","emit","handleKeyUp","blurOnEnter","getElementById","activeElement","inputRef","nativeElement","preventDefault","stopImmediatePropagation","executeBlurOnEnter","initInput","setField","focusChanges","focus","emitChange","modelChange","blurChanges","onBlur","emitCustomChange","blur","markAsTouched","revertToOriginalValue","fieldValueChanged","originalValue","markAsUntouched","markAsPristine","isParentFieldSetDisabled","nodeName","disabled","parentNode","clearInput","touched","dirty","fieldChanged","fieldEmpty","trim","hasRequiredValidator","required","validators","addValidators","removeValidators","compareToOriginalValue","valueChanged","setValue","disable","enable","falseyValue","Boolean","viewQuery","toggleSubscription$","communicationService","identifier","toggle","ngAfterViewInit","setInitialState","unsubscribe","opened","hide","show","renderer","addClass","elementRef","removeClass","agInit","isEditable","refresh","node","customParams","colDef","toggleValue","onCheckboxClick","editable","immutable","data","onCheck","canBeSelected","resetValuesToOriginalState","refreshCells","onRowsSelectionChanged","adjustColumnWidthByKey","column","colId","allowClick","warning","allowSelection","checkedValue","isChild","level","isViewSelectionDisabled","getUserProvidedColDef","ngDoCheck","checkSelectedStatus","forEachNode","selected","nodeSelectable","onHeaderCheck","onViewSelection","nodeCustomParams","invoiceId","isAP","isResultSuccess","result","invoiceHeaderId","invoiceNumber","endsWith","downloadInvoice","accountingSvc","byteArrayHelperService","content","notifierService","gridType","selectedOption","feeAdjustmentReasonId","frequencyId","pushDropdownInput","isDropdownOpened","autoFocus","input","onKeyDown","isLeftOrRight","deleteOrBackspace","stopPropagation","finishedEditingPressed","isKeyPressedNumeric","isInvalid","increasePercentage","hideClearIcon","getCharCodeFromEvent","event","which","keyCode","isCharNumeric","test","fromCharCode","pushChangesGridInput","setLoading","noteComp","isNoteLoading","initComponent","noteTypeId","onLoadNote","saveNote","hasChanges","saveAsync","pushNoteInput","mouseDblClick","onHeaderClick","afterGuiAttached","isCompare","cssClass","calculateClasses","oldValue","newValue","inputValueSuffix","inputDecimalDigits","FACILITY_ANNUAL_FEE_COLUMN_ID","PL_RATE_COLUMN_ID","isCharCommaOrPeriod","target","pushChangesGridBlur","parseFloat","toFixed","inputValue","checkboxValue","pushCheckboxInput","isChecked","pushHeaderCheckboxInput","isDisabled","onUndoClick","unformattedNewValue","unformattedOldValue","refreshCell","forceRefresh","setWarning","onViewClick","enabled","alwaysEnableViewColumn","hasWarning","viewImageHasWarningColumnName","hasMasterIngredientDiscrepancies","inputs","openLinkInNewTab","open","getCheckMarkDefaultClasses","readonly","clickable","noteForm","reloadInfo","valueChanges","changesOnForm","ngOnChanges","isFirstChange","addMode","setPickNote","isPickNote","loadFromMainTable","noteSvc","loadAll","getFormChanged","notes","manageNote","entityHistoryId","saveWithoutReloadAsync","deleteNoteAsync","initEmptyNote","discardChanges","currentNote","reset","noteFormValue","appendnoteFormValue","currentCursor","addVarriable","varriableParam","oxw","labelBadgeClicked","badgeClicked","initialType","parseNumbers","precision","toPrecision","size","inputCls","onLabelClick","maxDecimals","minDecimals","onChangeType","searchIconClicked","isFieldDisabled","clear","autoSize","setHeight","selectionStart","selectionEnd","style","height","scrollHeight","onClose","close","canOverrideRulesEngine","rulesEngineProductValidation","response","productValidations","entityUrl","entityUrlHelper","entityObservable$","validations","validationResponse","info","validationInfo","onConfirm","request","answerId","overrideRulesEngine","transform","pure","toLocaleLowerCase","charAt","toUpperCase","prototype","hasOwnProperty","call","domSanitizer","bypassSecurityTrustHtml","alternativeOptionId","alternativeOptions","setItem","canDeactivate","ignoreFormChanges","saving","formInvalid","simpleModalService","addModal","title","messageType","answers","formChanged","getDataLossObservable","handleObs","discardData","canActivateChild","parseUrl","D","N","actions$","X","localStorage","JSON","stringify","payload","activeMode","parseInt","H","appSummaryLoading","se","applicationSvc","We","statusId","applicationPublished","appSummary","select","appFacilitiesEntities","appFacilities","facility","validateAddress","ht","gt","oe","removeAll","persistentFiltersService","visible","indexSvc","currencies","et","batchItemIds","batchIngredientService","tt","pe","ce","He","Ce","ingredientIdentityId","customerIngredientId","reviewingById","Ye","action","batchIngredient","showNotification","fn","masterIngredientService","_n","customerIngredientService","customerIngredient","masterIngredients","nt","it","_t","ft","Ct","masterIngredient","vt","ingredientIdentity","vn","ingredient","ingredientClone","batchIngredientClone","ingredients","ingredientIndex","ingredientBatchesService","mt","Ie","$e","contactSvc","extraParams","asyncEntity","Ae","re","Se","ye","De","xe","Re","Me","be","Le","we","Ue","me","F","B","getMenuItems","ct","R","icon","activeOnSubRoutes","permissionIds","y","S","lt","pt","ut","Q","ze","sidenavService","menuItems","ae","Xe","tabs","ve","Ee","qe","autocompleteService","searchCriteria","users","Be","Et","je","L","Dt","xt","At","St","Rt","yt","Ot","Mt","Fe","Ne","bt","imports","Je","ke","Ze","Yt","Qt","Jt","Gt","qt","zt","Xt","dateTimeService","Ge","Ve","provide","useValue","suppressScrollX","rn","tn","nn","on","en","pn","un","cn","an","ln","Lt","wt","hn","Vt","Ut","$t","Kt","Bt","Ht","Nt","jt","Zt","Ft","Wt","kt","dn","gn","ActiveModeUpdate","ApplicationSummaryLoad","ApplicationSummaryLoaded","ApplicationSummaryLoading","ApplicationSummarySaveGeneral","ApplicationSummarySave","ApplicationSummarySaveSuccess","ApplicationPublishUpdate","ApplicationFacilitiesLoad","ApplicationFacilitiesLoaded","ApplicationFacilitiesSave","ApplicationFacilitiesSaveSuccess","ApplicationFacilitySelect","ApplicationFacilitySaveResult","ApplicationCleanUp","LoginAction","LogoutAction","CurrencyLoad","CurrencyLoaded","CurrencyUpdate","UserLogOut","TabAdded","TabRemoved","MagicReviewPageLoading","LoadMagicReviewPage","SetIngredients","SafeSelectIngredientInQueue","SelectIngredientInQueue","ExecuteBatchItemReviewAction","RemoveCurrentlySelectedItem","SideInfoToggle","SideInfoLoadedAsyncEntity","EditRoleUpdate","DeleteRoleUpdate","EditNoteUpdate","DeleteNoteUpdate","EditGroupUpdate","DeleteGroupUpdate","UnlinkContactUpdate","DeleteVisitProductUpdate","EditVisitProductUpdate","MenuItemsRequested","MenuItemsLoaded","TabsRequested","TabsLoaded","EntityUpdate","EntityClear","LoadUsers","LoadUsersSuccess","appSummarySaved","appFacilitiesSaveResult","loadingAppFacilites","appFacilitiesSaved","referralInfo","referralFees","generalInfo","isActive","loggedIn","updatedCurrency","isUserLoggingOut","inactiveTabs","tab","concat","safeSelectIngredientIndex","selectIndex","newlySelectedIngredients","prev","getInitialState","setAll","selectAll","selectEntities","selectIds","selectTotal","getSelectors","display","agreementId","froala","googleMapsApi","logRocket","production","debugMode","loadChildren","Promise","then","AuthModule","n","AdminMasterPageModule","relativeLinkResolution","paramsInheritanceStrategy","Te","dt","checkUserLoginStatus","setGlobalSearch","events","firstChild","tabsType","setEntityPageTitle","setApplicationPageTitle","setUkdPageTitle","setBatchItemPageTitle","setCodeChangeUtilityPageTitle","setApplicationMergePageTitle","getBatchProductPageTitle","bachIngredientId","getBusinessEntityPageTitle","setDefaultPageTitle","setNoEntityPageTitle","setTabsNotificationIcon","setPageTitle","globalSearchService","setNavigationHistory","navigationHistoryService","tabTitle","setTitle","entityName","typeId","tabNotifications$","tabName","notificationsCount","intercept","handle","addTokenToRequest","handle401Error","clone","setHeaders","isRefreshingToken","tokenSubject","at","Pe","Ke","PageTitleUpdate","roleDetails","noteDetails","groupDetails","groupId","visitProductId","visitProductDetails","sidenav","ot","updateType","sideinfo","application","global","magicReviewPage","bootstrap","useClass","multi","useFactory","location","hostname","port","navigator","agGridLicenseKey","deps","rt","metaReducers","runtimeChecks","strictStateImmutability","strictActionImmutability","container","body","closeOnEscape","closeOnClickOutside","position","horizontal","vertical","bootstrapModule","catch","console"],"sources":["webpack:///$_lazy_route_resources|lazy|groupOptions:%20%7B%7D|namespace%20object","webpack:///src/app/core/constants/app-routes.const.ts","webpack:///src/app/core/enums/accordion-identifier.enum.ts","webpack:///src/app/core/enums/active-type.enum.ts","webpack:///src/app/core/enums/app-route-identifier.enum.ts","webpack:///src/app/core/enums/application-status.enum.ts","webpack:///src/app/core/enums/application-type.enum.ts","webpack:///src/app/core/enums/business-entity-link-type.enum.ts","webpack:///src/app/core/enums/business-entity-type.enum.ts","webpack:///src/app/core/enums/contact-rep-type.enum.ts","webpack:///src/app/core/enums/entity-type.enum.ts","webpack:///src/app/core/enums/find-filter-type.enum.ts","webpack:///src/app/core/enums/grid-column-type.enum.ts","webpack:///src/app/core/enums/grid-type.enum.ts","webpack:///src/app/core/enums/http-request-headers.enum.ts","webpack:///src/app/core/enums/input-type.enum.ts","webpack:///src/app/core/enums/interval-type.enum.ts","webpack:///src/app/core/enums/keys.enum.ts","webpack:///src/app/core/enums/local-storage-keys.enum.ts","webpack:///src/app/core/enums/module-type.enum.ts","webpack:///src/app/core/enums/note-type.enum.ts","webpack:///src/app/core/enums/permission-module.enum.ts","webpack:///src/app/core/enums/platform-type.enum.ts","webpack:///src/app/core/enums/review-action.enum.ts","webpack:///src/app/core/enums/rules-engine-message-type.enum.ts","webpack:///src/app/core/enums/session-storage-keys.enum.ts","webpack:///src/app/core/enums/side-info-type.enum.ts","webpack:///src/app/core/enums/tabs-type.enum.ts","webpack:///src/app/core/enums/task-entity-type.enum.ts","webpack:///src/app/core/enums/task-status-group.enum.ts","webpack:///src/app/core/enums/validation/http-custom-status.enum.ts","webpack:///src/app/core/enums/validation/regex-patterns.enum.ts","webpack:///src/app/core/enums/validation/validation-answer-types.enum.ts","webpack:///src/app/core/enums/validation/validation-message-response-types.enum.ts","webpack:///src/app/core/enums/visit-entity-type.enum.ts","webpack:///src/app/core/models/auth/login.response.ts","webpack:///src/app/core/models/base.model.ts","webpack:///src/app/core/models/cell-renderer-custom-params.model.ts","webpack:///src/app/core/models/general/search-criteria.model.ts","webpack:///src/app/core/models/ingredients/customer-ingredient.model.ts","webpack:///src/app/core/models/ingredients/ingredient-batch-review-action.model.ts","webpack:///src/app/core/services/accounting.service.ts","webpack:///src/app/core/services/autocomplete.service.ts","webpack:///src/app/core/services/batch-ingredient.service.ts","webpack:///src/app/core/services/communication/accordion-communication.service.ts","webpack:///src/app/core/services/communication/permission.service.ts","webpack:///src/app/core/services/configuration.service.ts","webpack:///src/app/core/services/contact.service.ts","webpack:///src/app/core/services/global.service.ts","webpack:///src/app/core/services/helpers/byte-array-helper.service.ts","webpack:///src/app/core/services/helpers/date-time.service.ts","webpack:///src/app/core/services/helpers/entity-url-helper.service.ts","webpack:///src/app/core/services/helpers/local-storage.service.ts","webpack:///src/app/core/services/helpers/url-helper.service.ts","webpack:///src/app/core/enums/lifecycle-category.enum.ts","webpack:///src/app/core/services/index.service.ts","webpack:///src/app/core/services/ingredient-batches.service.ts","webpack:///src/app/core/services/navigation-history.service.ts","webpack:///src/app/core/services/notes.service.ts","webpack:///src/app/core/services/persistent-filters.service.ts","webpack:///src/app/core/services/search-services/global-search.service.ts","webpack:///src/app/core/constants/entity-tabs/accounting-renewal-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/agency-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/analyze-products-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/company-application-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/company-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/company-module-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/contact-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/current-user-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/customer-ingredient-code-changes-utility.tabs.ts","webpack:///src/app/core/constants/entity-tabs/customer-ingredient-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/customer-ingredient-module-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/facility-application-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/facility-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/group-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/ingredient-batch-info-constant.ts","webpack:///src/app/core/constants/entity-tabs/kosher-certificate-module-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/master-ingredient-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/master-ingredient-module-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/private-labeler-application-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/private-labeler-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/product-batch-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/product-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/product-module-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/restaurant-application-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/settings-module-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/submit-certificate.constant.ts","webpack:///src/app/core/constants/entity-tabs/task-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/trips-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/ukd-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/user-settings-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/vendor-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/visit-info-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/visit-module-tabs.constant.ts","webpack:///src/app/core/constants/entity-tabs/role-settings-info-tabs.constant.ts","webpack:///src/app/core/services/tabs.service.ts","webpack:///src/app/modules/applications/shared/services/applications.service.ts","webpack:///src/app/shared/validators/must-match.validator.ts","webpack:///src/app/modules/auth/confirm-account/confirm-account.component.html","webpack:///src/app/modules/auth/confirm-account/confirm-account.component.ts","webpack:///src/app/modules/auth/forgot-password/forgot-password.component.html","webpack:///src/app/modules/auth/forgot-password/forgot-password.component.ts","webpack:///src/app/modules/auth/login/login.component.html","webpack:///src/app/modules/auth/login/login.component.ts","webpack:///src/app/modules/auth/logout/logout.component.ts","webpack:///src/app/modules/auth/auth-routing.module.ts","webpack:///src/app/modules/auth/auth.module.ts","webpack:///src/app/modules/auth/auth.service.ts","webpack:///src/app/modules/ingredients/shared/services/customer-ingridients.service.ts","webpack:///src/app/modules/master-ingredients/shared/services/master-ingredients.service.ts","webpack:///src/app/modules/user-settings/shared/services/user-settings/user-settings.service.ts","webpack:///src/app/shared/component-bases/input-base.ts","webpack:///src/app/shared/directives/accordion/accordion-content.directive.ts","webpack:///src/app/shared/grid-components/boolean-cell-renderer/boolean-cell-renderer.component.ts","webpack:///src/app/shared/grid-components/boolean-cell-renderer/boolean-cell-renderer.component.html","webpack:///src/app/shared/grid-components/check-cell-renderer/check-cell-renderer.component.html","webpack:///src/app/shared/grid-components/check-cell-renderer/check-cell-renderer.component.ts","webpack:///src/app/shared/grid-components/check-cell-renderer/group-check-cell-renderer.component.html","webpack:///src/app/shared/grid-components/check-cell-renderer/group-check-cell-renderer.component.ts","webpack:///src/app/shared/grid-components/check-cell-renderer/readonly-check-cell-renderer.component.ts","webpack:///src/app/shared/grid-components/check-cell-renderer/readonly-check-cell-renderer.component.html","webpack:///src/app/shared/grid-components/check-header-renderer/check-header-renderer.component.html","webpack:///src/app/shared/grid-components/check-header-renderer/check-header-renderer.component.ts","webpack:///src/app/shared/grid-components/download-button-renderer/download-invoice-renderer.component.html","webpack:///src/app/shared/grid-components/download-button-renderer/download-invoice-renderer.component.ts","webpack:///src/app/shared/grid-components/dropdown-cell-renderer/dropdown-cell-renderer.component.ts","webpack:///src/app/shared/grid-components/dropdown-cell-renderer/dropdown-cell-renderer.component.html","webpack:///src/app/shared/grid-components/fee-text-input-cell-renderer/fee-text-input-cell-renderer.component.ts","webpack:///src/app/shared/grid-components/fee-text-input-cell-renderer/fee-text-input-cell-renderer.component.html","webpack:///src/app/shared/grid-components/note-cell-renderer/note-cell-renderer.component.ts","webpack:///src/app/shared/grid-components/note-cell-renderer/note-cell-renderer.component.html","webpack:///src/app/shared/grid-components/permissions-header/permissions-header.component.ts","webpack:///src/app/shared/grid-components/permissions-header/permissions-header.component.html","webpack:///src/app/shared/grid-components/text-cell-renderer/text-cell-renderer.component.html","webpack:///src/app/shared/grid-components/text-cell-renderer/text-cell-renderer.component.ts","webpack:///src/app/shared/grid-components/text-input-cell-renderer/text-input-cell-renderer.component.html","webpack:///src/app/shared/grid-components/text-input-cell-renderer/text-input-cell-renderer.component.ts","webpack:///src/app/shared/grid-components/text-input-checkbox-cell-renderer/text-input-checkbox-cell-renderer.component.html","webpack:///src/app/shared/grid-components/text-input-checkbox-cell-renderer/text-input-checkbox-cell-renderer.component.ts","webpack:///src/app/shared/grid-components/title-checkbox-label-header-renderer/title-checkbox-label-header-renderer.component.html","webpack:///src/app/shared/grid-components/title-checkbox-label-header-renderer/title-checkbox-label-header-renderer.component.ts","webpack:///src/app/shared/grid-components/tooltip-renderer/tooltip-renderer.component.html","webpack:///src/app/shared/grid-components/tooltip-renderer/tooltip-renderer.component.ts","webpack:///src/app/shared/grid-components/undo-cell-renderer/undo-cell-renderer.component.ts","webpack:///src/app/shared/grid-components/undo-cell-renderer/undo-cell-renderer.component.html","webpack:///src/app/shared/grid-components/view-cell-renderer/view-cell-renderer.component.html","webpack:///src/app/shared/grid-components/view-cell-renderer/view-cell-renderer.component.ts","webpack:///src/app/shared/icons/base-icon.ts","webpack:///src/app/shared/icons/icon-check/icon-check.component.ts","webpack:///src/app/shared/icons/icon-check/icon-check.component.html","webpack:///src/app/shared/icons/icon-download/icon-download.component.html","webpack:///src/app/shared/icons/icon-download/icon-download.component.ts","webpack:///src/app/shared/icons/icon-info/icon-info.component.ts","webpack:///src/app/shared/icons/icon-info/icon-info.component.html","webpack:///src/app/shared/icons/icon-new-tab/icon-new-tab.component.ts","webpack:///src/app/shared/icons/icon-new-tab/icon-new-tab.component.html","webpack:///src/app/shared/icons/icon-people/icon-people.component.ts","webpack:///src/app/shared/icons/icon-people/icon-people.component.html","webpack:///src/app/shared/icons/icon-refresh/icon-refresh.component.ts","webpack:///src/app/shared/icons/icon-refresh/icon-refresh.component.html","webpack:///src/app/shared/icons/icon-search/icon-search.component.ts","webpack:///src/app/shared/icons/icon-search/icon-search.component.html","webpack:///src/app/shared/icons/icon-settings/icon-settings.component.ts","webpack:///src/app/shared/icons/icon-settings/icon-settings.component.html","webpack:///src/app/shared/icons/icon-view/icon-view.component.ts","webpack:///src/app/shared/icons/icon-view/icon-view.component.html","webpack:///src/app/shared/icons/icon-visits/icon-visits.component.ts","webpack:///src/app/shared/icons/icon-visits/icon-visits.component.html","webpack:///src/app/shared/icons/icon-warning/icon-warning.component.ts","webpack:///src/app/shared/icons/icon-warning/icon-warning.component.html","webpack:///src/app/shared/inputs/checkbox/checkbox.component.html","webpack:///src/app/shared/inputs/checkbox/checkbox.component.ts","webpack:///src/app/shared/inputs/input-error-messages/input-error-messages.component.html","webpack:///src/app/shared/inputs/input-error-messages/input-error-messages.component.ts","webpack:///src/app/shared/inputs/note-form/note-form.component.html","webpack:///src/app/shared/inputs/note-form/note-form.component.ts","webpack:///src/app/shared/inputs/text-input/text-input.component.html","webpack:///src/app/shared/inputs/text-input/text-input.component.ts","webpack:///src/app/shared/inputs/textarea-input/textarea-input.component.html","webpack:///src/app/shared/inputs/textarea-input/textarea-input.component.ts","webpack:///src/app/shared/modals/data-loss-modal/data-loss-modal.component.ts","webpack:///src/app/shared/modals/data-loss-modal/data-loss-modal.component.html","webpack:///src/app/shared/modals/generic-validation-modal/generic-validation-modal.component.html","webpack:///src/app/shared/modals/generic-validation-modal/generic-validation-modal.component.ts","webpack:///src/app/shared/pipes/array-lenght-is.pipe.ts","webpack:///src/app/shared/pipes/audit.pipe.ts","webpack:///src/app/shared/pipes/camelcase-display.pipe.ts","webpack:///src/app/shared/pipes/conditional-value.pipe.ts","webpack:///src/app/shared/pipes/filter.pipe.ts","webpack:///src/app/shared/pipes/no-sanitize.pipe.ts","webpack:///src/app/shared/pipes/option.pipe.ts","webpack:///src/app/shared/pipes/purify.pipe.ts","webpack:///src/app/shared/pipes/render-list-value.pipe.ts","webpack:///src/app/shared/route-guards/auth.guard.ts","webpack:///src/app/shared/route-guards/company-default-invoiceGroup-guard.ts","webpack:///src/app/shared/route-guards/data-loss-prevention.route-guard.ts","webpack:///src/app/shared/route-guards/user-permission.route-guard.ts","webpack:///src/app/store/effects/active-mode.effects.ts","webpack:///src/app/store/effects/application.effects.ts","webpack:///src/app/core/models/auth/logout-request.model.ts","webpack:///src/app/store/effects/auth.effects.ts","webpack:///src/app/store/effects/global.effects.ts","webpack:///src/app/store/effects/magic-review-page.effects.ts","webpack:///src/app/store/effects/sideinfo.effects.ts","webpack:///src/app/shared/icons/icon-companies/icon-companies.component.ts","webpack:///src/app/shared/icons/icon-companies/icon-companies.component.html","webpack:///src/app/shared/icons/icon-applications/icon-applications.component.ts","webpack:///src/app/shared/icons/icon-applications/icon-applications.component.html","webpack:///src/app/shared/icons/icon-facilities/icon-facilities.component.ts","webpack:///src/app/shared/icons/icon-facilities/icon-facilities.component.html","webpack:///src/app/shared/icons/icon-private-label/icon-private-label.component.ts","webpack:///src/app/shared/icons/icon-private-label/icon-private-label.component.html","webpack:///src/app/shared/icons/icon-vendor/icon-vendor.component.ts","webpack:///src/app/shared/icons/icon-vendor/icon-vendor.component.html","webpack:///src/app/shared/icons/icon-agency/icon-agency.component.ts","webpack:///src/app/shared/icons/icon-agency/icon-agency.component.html","webpack:///src/app/shared/icons/icon-products/icon-products.component.ts","webpack:///src/app/shared/icons/icon-products/icon-products.component.html","webpack:///src/app/shared/icons/icon-certificate/icon-certificate.component.ts","webpack:///src/app/shared/icons/icon-certificate/icon-certificate.component.html","webpack:///src/app/shared/icons/icon-ingredient/icon-ingredient.component.ts","webpack:///src/app/shared/icons/icon-ingredient/icon-ingredient.component.html","webpack:///src/app/shared/icons/icon-master-ingredient/icon-master-ingredient.component.ts","webpack:///src/app/shared/icons/icon-master-ingredient/icon-master-ingredient.component.html","webpack:///src/app/shared/icons/icon-tasks/icon-tasks.component.ts","webpack:///src/app/shared/icons/icon-tasks/icon-tasks.component.html","webpack:///src/app/shared/icons/icon-dashboard/icon-dashboard.component.ts","webpack:///src/app/shared/icons/icon-dashboard/icon-dashboard.component.html","webpack:///src/app/shared/icons/icon-invoices/icon-invoices.component.ts","webpack:///src/app/shared/icons/icon-invoices/icon-invoices.component.html","webpack:///src/app/core/services/sidenav.service.ts","webpack:///src/app/store/effects/sidenav.effects.ts","webpack:///src/app/store/effects/tabs.effects.ts","webpack:///src/app/store/effects/users.effects.ts","webpack:///src/app/store/reducers/active-mode.reducer.ts","webpack:///src/app/store/store.module.ts","webpack:///src/app/shared/components/tabs/tabs.module.ts","webpack:///src/app/shared/directives/custom-directives.module.ts","webpack:///src/app/shared/grid-components/country-cell-renderer/country-cell-renderer.component.html","webpack:///src/app/shared/grid-components/country-cell-renderer/country-cell-renderer.component.ts","webpack:///src/app/shared/icons/icons.module.ts","webpack:///src/app/shared/modules/material.module.ts","webpack:///src/app/shared/pipes/date-time.pipe.ts","webpack:///src/app/shared/shared.module.ts","webpack:///src/app/store/actions/active-mode.action.ts","webpack:///src/app/store/actions/application.actions.ts","webpack:///src/app/store/actions/auth.actions.ts","webpack:///src/app/store/actions/global.action.ts","webpack:///src/app/store/actions/inactive-tabs.actions.ts","webpack:///src/app/store/actions/magic-review-page.actions.ts","webpack:///src/app/store/actions/side-info.action.ts","webpack:///src/app/store/actions/sidenav.actions.ts","webpack:///src/app/store/actions/tabs.actions.ts","webpack:///src/app/store/actions/users.action.ts","webpack:///src/app/store/reducers/application.reducer.ts","webpack:///src/app/store/reducers/auth.reducer.ts","webpack:///src/app/store/reducers/global.reducer.ts","webpack:///src/app/store/reducers/inactive-tabs.reducer.ts","webpack:///src/app/store/reducers/magic-review-page.reducer.ts","webpack:///src/app/store/reducers/sidenav.reducer.ts","webpack:///src/app/store/reducers/tabs.reducer.ts","webpack:///src/app/store/reducers/users.reducer.ts","webpack:///src/app/store/selectors/active-mode.selectors.ts","webpack:///src/app/store/selectors/application.selectors.ts","webpack:///src/app/store/selectors/auth.selectors.ts","webpack:///src/app/store/selectors/magic-review-page.selectors.ts","webpack:///src/app/store/selectors/tabs.selectors.ts","webpack:///src/config/app-configuration.service.ts","webpack:///src/environments/environment.ts","webpack:///src/app/app-routing.module.ts","webpack:///src/app/core/models/general/page-title.model.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/core/core.module.ts","webpack:///src/app/modules/auth/auth.interceptor.ts","webpack:///src/app/store/actions/page-title.action.ts","webpack:///src/app/store/reducers/page-title.reducer.ts","webpack:///src/app/store/reducers/sideinfo.reducer.ts","webpack:///src/app/store/reducers/index.ts","webpack:///src/app/app.module.ts","webpack:///src/main.ts","webpack:///home/vsts/work/1/s/frontend/node_modules/moment/locale|sync|/^//.*$/"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","import { AppRouteIdentifier } from '../enums/app-route-identifier.enum';\nimport { PermissionModule, RightType } from '../enums/permission-module.enum';\nimport { AppRouteModel } from '../models/app-route.model';\n\n/** Represents all the routes that are not tied to any specific entity, used to navigate to a specific route just by route id */\nexport const appSpecialRoutes: { [id: number]: AppRouteModel } = {\n\t[AppRouteIdentifier.MasterIngredientList]: {\n\t\tpath: '/master-ingredient',\n\t\tpermissionId: PermissionModule.MasterIngredient,\n\t\tpermissionType: RightType.View,\n\t\tisModule: true,\n\t},\n\t[AppRouteIdentifier.UpdateMasterIngredient]: {\n\t\tpath: '/master-ingredient/update',\n\t\tpermissionId: PermissionModule.MasterIngredient,\n\t\tpermissionType: RightType.Update,\n\t\tisModule: true,\n\t},\n\t[AppRouteIdentifier.ChangedMasterIngredient]: {\n\t\tpath: '/master-ingredient/changed/master-ingredient',\n\t\tpermissionId: PermissionModule.ChangedMI,\n\t\tpermissionType: RightType.View,\n\t\tisModule: true,\n\t},\n\t[AppRouteIdentifier.SubmitMasterIngredient]: {\n\t\tpath: '/master-ingredient/submit/master-ingredient',\n\t\tpermissionId: PermissionModule.MasterIngredient,\n\t\tpermissionType: RightType.Create,\n\t\tisModule: true,\n\t},\n\t[AppRouteIdentifier.ProductAnalyze]: {\n\t\tpath: '/products/analyze-products/analyze',\n\t\tpermissionId: PermissionModule.IngredientBatch,\n\t\tpermissionType: RightType.View,\n\t\tisModule: true,\n\t},\n};\n","export enum AccordionIdentifier {\n\t// Ingredient Batch Page\n\tIngredientBatchInfo,\n\t// Magic Review Page\n\tReviewIngredientInfo,\n\tReviewIngredientInfoNotes,\n\tReviewIngredientMasterIngredient,\n\tReviewIngredientMasterIngredientNotes,\n\tReviewIngredientCommunication,\n\tReviewIngredientVendorProfile,\n\tReviewIngredientFacilities,\n\tReviewIngredientGuidelines,\n\t// Master ingredient info page\n\tMasterIngredientGeneralInfo,\n\tMasterIngredientKosherInfo,\n\tMasterIngredientEvaluation,\n\tMasterIngredientPackaging,\n\tMasterIngredientCertificate,\n\t// Edit batch ingredient item page\n\tBatchItemInfo,\n\tBatchItemMasterIngredient,\n\tBatchCustomerIngredientNotes,\n\tBatchItemPackaging,\n\tBatchItemNotes,\n\tBatchItemCommunication,\n\tBatchItemIngredientFacilities,\n\t// Permissions Tab\n\tGeneralPermissions,\n\tAdvancedPermissions,\n\tProductReviewPageProductEvaluation,\n\tUnapproveProductEvaluations,\n\tInternalProductsRequiringApproval,\n\tProductFormulaReport,\n\t// Facility Contract\n\tFacilityContracts,\n\tContractDetails,\n\tVisitFees,\n\tFieldRepTerms,\n}\n","export enum ActiveType {\n\tInactive = 0,\n\tActive = 1,\n\tAll = 2,\n}\n","export enum AppRouteIdentifier {\n\tMasterIngredientList,\n\tUpdateMasterIngredient,\n\tChangedMasterIngredient,\n\tSubmitMasterIngredient,\n\tProductAnalyze,\n}\n","export enum ApplicationStatus {\n\tAll = -1,\n\tProspect = 1,\n\tAppComplete = 17,\n\tMerged = 25,\n}\n","export enum ApplicationType {\n\tAll = -1,\n\tCompany = 1,\n\tRestaurant = 2,\n\tPrivateLabel = 3,\n\tFacility = 4,\n}\n","export enum BusinessEntityLinkType {\n\tCompany = 1,\n\tFacility = 2,\n\tVendor = 4,\n\tAgency = 8,\n\tManufacturer = 16,\n\tPrivateLabeler = 32,\n\tCompanyDivision = 64,\n\tContact = 128,\n}\n","export enum BusinessEntityType {\n\tCompany = 1,\n\tFacility = 2,\n\tVendor = 4,\n\tAgency = 8,\n\tManufacturer = 16,\n\tPrivateLabeler = 32,\n\tCompanyDivision = 64,\n}\n","export enum ContactRepType {\n\tContact = 1,\n\tFieldRep = 2,\n\tRabbiCoordinator = 3,\n\tAccountRep = 4,\n\tKCSigner = 5,\n\tAgencyUser = 6,\n}\n","export enum EntityType {\n\tApplication = 1,\n\tBusinessRole = 2,\n\tBusinessEntity = 3,\n\tCompany = 4,\n\tFacility = 5,\n\tAgreement = 6,\n\tPerson = 7,\n\tAgencyUser = 8,\n\tContactDetail = 9,\n\tWorkflow = 10,\n\tProduct = 11,\n\tCertificationAgreement = 12,\n\tProductEvaluation = 13,\n\tKosherCertificate = 14,\n\tIngredientInfo = 15,\n\tKosherEvaluation = 16,\n\tK_ID = 17,\n\tVisit = 18,\n\tMasterIngredient = 19,\n\tFacilityIngredient = 20,\n\tMonthlyRequest = 21,\n\tMonReqDetail = 22,\n\tIngValidation = 23,\n\tProductValidation = 24,\n\tAgency = 25,\n\tPrivateLabeler = 26,\n\tVendor = 27,\n\tBatchIngredient = 28,\n\t// KosherCertificate = 29,\n\tFormulaImport = 30,\n\tFRBERelation = 31,\n\tRCBERelation = 32,\n\tProductAutoApproval = 50,\n\tIngAutoApproval = 51,\n\tCntrctRelationship = 52,\n\tContractInvoice = 53,\n\tAccountingPayment = 54,\n\tVisitForm = 55,\n\tPaperSubmission = 56,\n\tCommunication = 57,\n\tCommActivity = 58,\n\tProject = 59,\n\tFacilityContract = 61,\n\tProductLabel = 65,\n\tTransaction = 66,\n\tBrand = 67,\n\tTag = 68,\n\tNote = 69,\n\tCompanyReferral = 70,\n\tContractItem = 71,\n\tContactTerm = 72,\n\tCompanyFacility = 73,\n\tTask = 75,\n\tTripExpense = 76,\n\tManufacturer = 77,\n\tKosherGroup = 78,\n\tUser = 79,\n\tCustomerIngredient = 80,\n\tBatchUkdFile = 81,\n\tBatchIngredientItem = 82,\n\tBatchProductHeader = 83,\n\tBatchProductIngredient = 84,\n\tCertificateGroup = 85,\n\tCertificateHeader = 86,\n\tGenerateARInvoice = 87,\n\tGenerateSystemRMC = 88,\n\tTemplateContract = 89,\n\tBusinessEntityContract = 90,\n\tGenerateCRMInvoice = 91,\n\tContractSignatureAudit = 92,\n\tFormulaItem = 93,\n\tBatchFormulaItem = 94,\n\tApplicationFormView = 95,\n\tVisitType = 96,\n\tKosherBatchProductEvaluation = 97,\n\tFormulaItemIngredient = 98,\n\tReviewIngredient = 99,\n\tAmex = 103,\n\tScript = 106,\n\tExecutionScriptHistory = 106,\n\tCategory = 107,\n\tEntityCategory = 108,\n\tUserNote = 109,\n\tSystemNote = 110,\n\tCodeChangeUtility = 111,\n\tCodeChangeUtilityData = 112,\n\tUkd = 113,\n\tNotificationWhitelist = 114,\n\tSecurityRole = 115,\n\tInvoicingGroup = 116,\n\n\t// USED ONLY ON UI\n\tTrip = 0.1,\n\tUKD = 0.2,\n}\n","export enum FindFilterType {\n\tBeginsWith = 1,\n\tEquals = 2,\n\tContains = 3,\n\tIdEquals = 4,\n}\n","export enum GridColumnType {\n\tText = 0,\n\tBoolean = 1,\n\tCheck = 2,\n\tTextInput = 3,\n\tView = 4,\n\tNoteInput = 5,\n\tHTML = 6,\n\tRelativeDate = 7,\n\tDuration = 8,\n\tButton = 9,\n\tProgress = 10,\n\tUtcDate = 11,\n\tColoredStatus = 12,\n\tAttachment = 13,\n\tPreviewAndSendEmail = 14,\n\tDecimal = 15,\n\tTextCellRenderer = 16,\n\tDropdownCellRenderer = 17,\n\tDownloadInvoice = 18,\n\tGroupCheck = 19,\n\tApOrArNumberList = 20,\n\tReadonlyCheck = 21,\n\tAcumaticaApOrArNumberList = 22,\n\tInvoiceEntities = 23,\n\tInvoiceStatus = 24,\n\tViewInvoiceDetails = 25,\n\tTryInvoiceAgain = 26,\n\tExpensesVisitList = 27,\n}\n","export enum GridType {\n\tCOMPANIES = 'Companies',\n\tFACILITIES = 'Facilities',\n\tADD_NEW_PRODUCT_FACILITIES = 'AddNewProductFacilities',\n\tPRIVATE_LABELERS = 'PrivateLabelers',\n\tAGENCIES = 'Agency',\n\tVENDORS = 'Vendor',\n\tVENDOR_AGENCIES = 'VendorAgencies',\n\tVENDOR_CHILDREN = 'VendorChildren',\n\tCONTACTS = 'Contact',\n\tBUSINESS_ENTITY_CONTACTS = 'BusinessEntityContacts',\n\tCONTACT_LINKS = 'ContactLinks',\n\tCONTACT_RABBINICAL_ASSIGNMENTS = 'ContactRabbinicalAssignments',\n\tCONTACT_ACCOUNT_REP_ASSIGNMENTS = 'ContactAccountRepAssignments',\n\tCOMPANY_PRIVATE_LABELERS = 'CompanyPrivateLabelers',\n\tFACILITY_COMPANIES = 'FacilityCompanies',\n\tCOMPANY_FACILITIES = 'CompanyFacilities',\n\tPRIVATE_LABELER_COMPANIES = 'PrivateLabelerCompanies',\n\tENTITY_BRANDS = 'Brands',\n\tBRANDS_LOOKUP = 'LookUpBrands',\n\tENTITY_ALIAS = 'Alias',\n\tPERMISSIONS = 'Role',\n\tROLES = 'Role',\n\tROLE_USERS = 'RoleUsers',\n\tENTITY_NOTES = 'BusinessEntityNotes',\n\tAPPLICATIONS = 'Application',\n\tVISITS = 'Visits',\n\tADD_VISIT_TO_TRIP = 'VisitsToTrip',\n\tTRIPS = 'Trips',\n\tFACILITY_VISITS = 'FacilityVisits',\n\tFACILITY_TRIPS = 'FacilityTrips',\n\tCOMPANY_FACILITIES_INACTIVATE = 'CompanyFacilitiesInactivate',\n\tCOMPANY_PRIVATE_LABELERS_INACTIVATE = 'CompanyPrivateLabelersInactivate',\n\tCOMPANY_FACILITIES_ACTIVATE = 'CompanyFacilitiesActivate',\n\tCOMPANY_PRIVATE_LABELERS_ACTIVATE = 'CompanyPrivateLabelersActivate',\n\tFACILITY_COMPANIES_INACTIVATE = 'FacilityCompaniesInactivate',\n\tFACILITY_COMPANIES_ACTIVATE = 'FacilityCompaniesActivate',\n\tTASK = 'Task',\n\tCOMPANY_PRIVATE_LABELER_AGREEMENT = 'CompanyPrivateLabelerAgreement',\n\tGROUP = 'Group',\n\tUSER_GROUP = 'UserGroup',\n\tUSER = 'User',\n\tMASTER_INGREDIENTS = 'MasterIngredients',\n\tFILE_PAYMENT = 'FilePayment',\n\tFILE_PAYMENT_ITEM = 'FilePaymentItem',\n\tFILE_PAYMENT_TRIP_ITEM = 'FilePaymentTripItem',\n\tCUSTOMER_INGREDIENT = 'CustomerIngredient',\n\tLOOK_UP_AGENCY = 'LookUpAgency',\n\tLOOK_UP_VENDOR = 'LookUpVendor',\n\tINGREDIENT_BATCHES_HEADERS = 'IngredientBatchesHeaders',\n\tMASTER_INGREDIENT_FACILITIES = 'MasterIngredientFacilities',\n\tMASTER_INGREDIENT_COMPANIES = 'MasterIngredientCompanies',\n\tLOOK_UP_UKD = 'LookUpUKD',\n\tCLEANUP_CONTRACT_COMPANY_FACILITY = 'CleanupContractCompanyFacility',\n\tCLEANUP_CONTRACT_FIELD_REP = 'CleanupContractFieldRep',\n\tPURCHASE_HISTORY = 'PurchaseHistory',\n\tCUSTOMER_INGREDIENT_FACILITY = 'CustomerIngredientFacility',\n\tPRODUCT = 'Product',\n\tFACILITY_INSTRUCTIONS = 'FacilityInstructions',\n\tFACILITY_PRODUCT = 'FacilityProduct',\n\tPRODUCT_FACILITY = 'ProductFacility',\n\tSELECTABLE_PRODUCT_FACILITY = 'SelectableProductFacility',\n\tPRODUCT_PROCESSES = 'ProductProcesses',\n\tCUSTOMER_INGREDIENT_SIMILAR_INGREDIENT = 'CustomerIngredientSimilarIngredients',\n\tCOMPANY_FACILITY_AGREEMENT = 'CompanyFacilityAgreement',\n\tPRODUCT_BATCHES_HEADERS = 'ProductBatchesHeaders',\n\tPRODUCTS_SAME_AS_BASE_PRODUCT = 'ProductsSameAsBaseProduct',\n\tENTITY_FACILITIES = 'EntityFacilities',\n\tDEPENDENT_PRODUCTS = 'DependentProducts',\n\tCUSTOMER_INGREDIENT_LOOKUP = 'CustomerIngredientLookup ',\n\tBATCH_INGREDIENT_ITEMS = 'BatchIngredientItems',\n\tINGREDIENT_CATEGORY = 'IngredientCategory',\n\tVISIT_PRODUCTS = 'VisitProducts',\n\tCUSTOMER_INGREDIENT_RELATED_BATCH_INGREDIENTS = 'CustomerIngredientRelatedBatchIngredients',\n\tPRODUCT_CERTIFICATES = 'ProductCertificates',\n\tPRODUCT_PRODUCTION_HISTORY = 'ProductProductionHistory',\n\tCUSTOMER_INGREDIENT_SUBSET = 'CustomerIngredientSubset',\n\tPRODUCT_EVALUATION_IDENTITY_CODES = 'ProductEvaluationIdentityCodes',\n\tPRODUCT_FORMULAS = 'ProductFormulas',\n\tCERTIFICATES = 'Certificates',\n\tPRODUCT_LABELS = 'ProductLabel',\n\tPRODUCT_CERTIFICATE_GROUP = 'ProductCertificateGroup',\n\tPRODUCT_BATCH_CERTIFICATE_GROUP = 'ProductBatchesCertificateGroups',\n\tCOMPANIES_RENEWAL = 'CompaniesRenewal',\n\tMASTER_INGREDIENT_HISTORY = 'MasterIngredientHistory',\n\tDOCUMENT_TEMPLATES = 'DocumentTemplates',\n\tMASTER_INGREDIENT_DEPENDENT_PRODUCTS = 'MasterIngredientDependentProducts',\n\tCUSTOMER_INGREDIENT_DEPENDENT_PRODUCTS = 'CustomerIngredientDependentProducts',\n\tRELATED_BATCH_INGREDIENT_ITEMS = 'RelatedBatchIngredientItems',\n\tCERTIFICATE_GROUP = 'CertificateGroup',\n\tINVOICES = 'Invoices',\n\tPRODUCER = 'Producer',\n\tLOOK_UP_CONTACT = 'LookUpContact',\n\tREVIEW_BATCH_INGREDIENT_ITEMS = 'ReviewBatchIngredientItems',\n\tCOMPANIES_UNDERGOING_RENEWAL = 'CompaniesUndergoingRenewal',\n\tRENEWAL_INVOICES = 'RenewalInvoices',\n\tBUSINESS_ENTITIES_OWNERS = 'BusinessEntityOwners',\n\tCUSTOMER_INGREDIENT_RELATED_PRODUCTS = 'ProductToCustomerIngredient',\n\tMASTER_INGREDIENTS_UNIVERSAL_INGREDIENT = 'UniversalIngredients',\n\tMASTER_INGREDIENT_CHANGES = 'MasterIngredientChanges',\n\tCOMPANY_RENEWAL_HISTORY = 'CompanyRenewalHistory',\n\tCOMPANY_SECONDARY_ROUTING_INFO = 'CompanyKosherCertInfoSecondaryRoutingInfo',\n\tMASTER_INGREDIENT_SAME_AS_BASE_INGREDIENT = 'MasterIngredientSameAsBaseIngredient',\n\tLOOKUP_KID = 'IdentityCodeProduct',\n\tCERTIFICATE_IDENTITY = 'CertificateIdentity',\n\tCERTIFICATE_ITEM = 'CertificateItem',\n\tPRODUCT_BATCHES_FORMULA_ITEM_RELATED_ITEM = 'ProductBatchesFormulaItemRelatedItem',\n\tPRODUCT_BATCHES_FORMULA_ITEM = 'ProductBatchesFormulaItem',\n\tPRODUCT_BATCHES_FORMULA_EVALUATIONS = 'ProductBatchesFormulaEvaluations',\n\tPRODUCT_BATCHES_EVALUATION_FORMULAS = 'ProductBatchesEvaluationFormulas',\n\tPRODUCT_FORMULA_ITEM = 'FormulaItem',\n\tPRODUCT_EVALUATIONS = 'ProductEvaluation',\n\tPRODUCT_FORMULA_RELATED_ITEM = 'FormulaItemRelatedItem',\n\tPRODUCT_FORMULA_FACILITIES = 'ProductFormulasFacilities',\n\tLOOKUP_FORMULA_ITEM = 'LookUpFormulaItem',\n\tLOOKUP_FORMULA_ITEM_INGREDIENT = 'LookUpFormulaItemIngredients',\n\tPRODUCT_LOOKUP = 'LookUpProduct',\n\tCOMPANY_CERTIFICATE = 'CompanyCertificate',\n\tIDENTITY_CODE_PRODUCT_MULTIPLE = 'IdentityCodeProductMultiple',\n\tFACILITY_CUSTOMER_INGREDIENTS = 'FacilityCustomerIngredients',\n\tAGENCY_VENDOR = 'AgencyVendor',\n\tAGENCY_FACILITIES = 'AgencyFacility',\n\tINCOMPLETE_APPLICATION = 'IncompleteApplication',\n\tUKD = 'Ukd',\n\tUKD_HISTORY = 'UkdHistory',\n\tDASHBOARD_TASKS = 'DashboardTasks',\n\tDASHBOARD_LATEST_COMMUNICATIONS_TASKS = 'DashboardLatestCommunicationsTasks',\n\tENTITY_TASKS = 'EntityTasks',\n\tCOMPANY_PROCESSES = 'CompanyProcesses',\n\tFACILITY_PROCESSES = 'FacilityProcesses',\n\tENTITY_AUDIT = 'EntityAudit',\n\tPRODUCT_BATCHES_FORMULA_FACILITIES = 'ProductBatchesFormulaFacilities',\n\tREVIEW_PRODUCTS = 'ReviewProducts',\n\tBATCH_PRODUCT_ITEMS = 'BatchProductItems',\n\tUNMATCHED_FORMULA_ITEMS = 'UnmatchedFormulaItems',\n\tUNPROCESSED_DEPENDENT_BATCHES_ITEMS = 'UnprocessedDependentBatchItems',\n\tCATEGORY = 'Category',\n\tCATEGORY_LINKED_ENTITIES = 'CategoryLinkedEntities',\n\tFACILITY_FORMULA_INGREDIENTS_UTILITY = 'FacilityFormulaIngredientsUtility',\n\tDASHBOARD_INGREDIENT_BATCHES_HEADERS = 'DashboardIngredientBatchesHeaders',\n\tPRODUCTS_ONLY = 'ProductsOnly',\n\tFACILITY_CONTRACT_FIELD_REP_TERMS = 'FacilityContractFieldRepTerms',\n\tCODE_CHANGE_UTILITY = 'CodeChangeUtility',\n\tCUSTOMER_INGREDIENT_MERGE_BATCH_INGREDIENT = 'CustomerIngredientMergeBatchIngredient',\n\tREGION_FEE_ATTRIBUTES = 'RegionFeeAttributes',\n\tCOMPANY_FACILITY_VISIT_INFO = 'CompanyFacilityVisitInfo',\n\tCERTIFICATE_SUB_GROUP = 'CertificateSubGroup',\n\tNOTIFICATION_WHITELIST = 'NotificationWhiteList',\n\tPRODUCTS_ONLY_FACILITY = 'ProductsOnlyFacility',\n\tCONTACTS_FOR_NOTIFICATION_WHITELIST = 'ContactsForNotificationWhiteList',\n\tPRIVATE_LABELER_COMPANIES_INACTIVATE = 'PrivateLabelerCompaniesInactivate',\n\tPRIVATE_LABELER_COMPANIES_ACTIVATE = 'PrivateLabelerCompaniesActivate',\n\tCOMPANY_RENEWAL_FACILITIES = 'CompanyRenewalFacilities',\n\tCOMPANY_RENEWAL_FACILITIES_HISTORY = 'CompanyRenewalFacilitiesHistory',\n\tCOMPANY_RENEWAL_PRIVATE_LABELERS = 'CompanyRenewalPrivateLabelers',\n\tFACILITY_CONTRACT_NOTES = 'FacilityContractNotes',\n\tVISITS_GENERATE_INVOICES = 'VisitsGenerateInvoices',\n\tTRIPS_GENERATE_INVOICES = 'TripsGenerateInvoices',\n\tACUMATICA_LOGS = 'AcumaticaLogs',\n\tTWO_WAY_SYNC_LOGS = 'TwoWaySyncLogs',\n\tALL_INVOICES = 'AllInvoices',\n}\n","export enum HttpRequestHeader {\n\tDoNotToastValidationErrors = 'DoNotToastValidationErrors',\n\tAuthorization = 'Authorization',\n}\n","export enum InputType {\n\tText = 'text',\n\tPassword = 'password',\n\tNumber = 'number',\n}\n","export enum IntervalType {\n\tToday = 1,\n\tYesterday = 2,\n\tLast7Days = 3,\n\tLastMonth = 4\n}\n\n","export enum Keys {\n\tKEY_BACKSPACE = 8,\n\tKEY_DELETE = 46,\n\tKEY_ENTER = 13,\n\tKEY_TAB = 9,\n}\n","export enum LocalStorageKeys {\n\tLOGIN_DATA_STORAGE_KEY = 'lgn',\n\tACTIVE_MODE_STORAGE_KEY = 'am',\n\tUSER_ID_KEY = 'uid',\n\tCURRENT_USER = 'cusr',\n\tVIEW_MODE_KEY = 'vm',\n\tADMIN_MAGIC_REVIEW_PAGE_IDS = 'mrpids',\n\tADMIN_PRODUCT_REVIEW_PAGE_IDS = 'aprpids',\n\tADMIN_RENEWAL_PAGE_IDS = 'rpids',\n\tUSER_PERMISSIONS = 'up',\n\tUSER_ACCORDIONS_STATUS = 'accsts',\n\tUSER_IDLE = 'idle',\n\tLAST_TAB_CLOSED_AT = 'ltca',\n\tANALYZE_PRODUCT_IDS = 'apids',\n\tUPDATE_MASTER_INGREDIENT_IDS = 'umiids',\n\tUSER_ADVANCED_PERMISSIONS = 'uap',\n\tGLOBAL_SEARCH_DATA = 'gsd',\n\tSIDENAV_BACKGROUND_CLASS = 'sbc',\n}\n","export enum ModuleType {\n\tDashboard,\n\tApplication,\n\tUKDSearch,\n\tCompany,\n\tFacility,\n\tPrivateLabel,\n\tVendors,\n\tAgencies,\n\tProducts,\n\tKosherCertificates,\n\tCustomerIngredient,\n\tMasterIngredient,\n\tContacts,\n\tVisits,\n\tTasks,\n\tSettings,\n\tInvoices,\n}\n","export enum NoteType {\n\tAll = -1,\n\tComments = 1,\n\tFeeComments = 2,\n\tGeneralNotes = 3,\n\tDirections = 4,\n\tKosherLetterNote = 5,\n\tHistory = 6,\n\tKCGuideline = 7,\n\tKosherEvaluationNote = 8,\n\tThankYouNote = 9,\n\tFormulaGuideline = 10,\n\tProductNotes = 11,\n\tKCNote = 12,\n\tIngredientGuideline = 13,\n\tAccountingPayNote = 18,\n\tCommunicationActivity = 19,\n\tKashrusInstructions = 20,\n\tBatchProductItem = 21,\n\tInstruction = 22,\n\tInternalNote = 23,\n\tInternalNoteToRabbi = 24,\n\tPublicNote = 25,\n\tCustomerNote = 26,\n\tIncreaseAnnualFeeNote = 27,\n\tTravelNotes = 28,\n\tAccommodationNotes = 29,\n\tVisitNote = 30,\n\tRenewalNote = 31,\n\tKosherCertificateNote = 32,\n\tFacilityContractNote = 33,\n\tVisitReportQuestionNote = 34,\n\tPublicVoidNote = 35,\n\tOnHold = 36,\n\tAPTripExpenseNote = 37,\n\tCompanyContractNote = 38,\n\tInactivationNote = 39,\n\tInvoiceBeginNote = 40,\n\tInvoiceEndNote = 41,\n\tCompanyNoteOnInvoice = 43,\n\tARTripExpenseNote = 44,\n\tVisitPaymentNote = 45,\n\tContractFeeAdjustmentNote = 46,\n\tARInvoiceNote = 47,\n}\n","export enum PermissionModule {\n\tApplication = 1,\n\tCompany = 15,\n\tAccountingRenewal = 35,\n\tFacility = 39,\n\tPrivateLabeler = 57,\n\tVendor = 68,\n\tAgency = 79,\n\tCustomerIngredients = 109,\n\tIngredientBatch = 123,\n\tReviewIngredients = 126,\n\tProducts = 89,\n\tProductBatch = 105,\n\tMasterIngredient = 127,\n\tChangedMI = 140,\n\tVisits = 145,\n\tTrips = 152,\n\tAmex = 158,\n\tContact = 141,\n\tTask = 159,\n\tUKDSearch = 174,\n\tKosherCertificate = 106,\n\tKCGroup = 108,\n\tUsers = 160,\n\tRoles = 165,\n\tGroups = 166,\n\tPermissions = 169,\n\tProfileTemplates = 170,\n\tDocumentTemplates = 171,\n\tRulesEngine = 175,\n\tScripts = 186,\n\tReviewProducts = 187,\n\tCategories = 190,\n\tCodeChangeUtility = 201,\n\tDefaultValues = 203,\n\tNotifications = 204,\n}\n\nexport enum RightType {\n\tView = 1,\n\tCreate = 2,\n\tUpdate = 3,\n\tDelete = 4,\n\tExport = 5,\n\tActivate = 6,\n}\n\nexport enum CompanyModuleTabs {\n\tInfo = 16,\n\tContacts = 17,\n\tPrivateLabelers = 18,\n\tFacilities = 19,\n\tBrands = 20,\n\tAlias = 21,\n\tProfile = 22,\n\tCurrentContract = 23,\n\tNotes = 24,\n\tInvoicingGroup = 25,\n\tFacilityContract = 26,\n\tTasks = 27,\n\tInvoices = 28,\n\tIngredients = 29,\n\tCompanyProducts = 30,\n\tKosherCertificateInfo = 31,\n\tKosherCertificates = 32,\n\tReferral = 33,\n\tProcesses = 184,\n\tFinancialSnapshotInfo = 188,\n\tFinancialSnapshotHistory = 189,\n\tProductPublication = 191,\n\tAutoApproval = 194,\n\tGuidelines = 195,\n\tHistory = 198,\n}\n\nexport enum FacilityModuleTabs {\n\tInfo = 40,\n\tContacts = 41,\n\tCompanies = 42,\n\tAlias = 43,\n\tProfile = 44,\n\tNotes = 45,\n\tVisitsAndTrips = 46,\n\tFacilityContract = 47,\n\tTasks = 48,\n\tInstructions = 49,\n\tGuidelines = 50,\n\tProducts = 51,\n\tInvoices = 52,\n\tKosherCertificateInfo = 53,\n\tIngredients = 54,\n\tVisitReportQuestions = 55,\n\tProcesses = 185,\n\tProductPublication = 192,\n\tHistory = 206,\n\tKosherCertificates = 208,\n}\n\nexport enum PrivateLabelerModuleTabs {\n\tInfo = 58,\n\tContacts = 59,\n\tCompanies = 60,\n\tPLContract = 61,\n\tAlias = 62,\n\tBrands = 63,\n\tNotes = 64,\n\tTasks = 65,\n\tInvoices = 66,\n\tKosherCertificate = 179,\n\tProducts = 180,\n\tProductPublication = 193,\n\tGuidelines = 197,\n\tKosherCertificateInfo = 200,\n\tHistory = 205,\n}\n\nexport enum VendorModuleTabs {\n\tInfo = 69,\n\tContacts = 70,\n\tAlias = 71,\n\tVendorLinks = 72,\n\tProfile = 73,\n\tNotes = 74,\n\tTasks = 75,\n\tMasterIngredients = 76,\n\tAgencies = 77,\n\tHistory = 207,\n}\n\nexport enum AgencyModuleTabs {\n\tInfo = 80,\n\tContacts = 81,\n\tAlias = 82,\n\tProfile = 83,\n\tNotes = 84,\n\tFacilities = 85,\n\tVendors = 86,\n\tTasks = 87,\n}\n\nexport enum CustomerIngredientsModuleTabs {\n\tInfo = 111,\n\tFacilities = 112,\n\tProducts = 113,\n\tSubset = 114,\n\tPurchaseHistory = 115,\n\tGuidelines = 116,\n\tSimilarIngredients = 117,\n\tBatchIngredients = 118,\n\tHistory = 119,\n\tNotes = 120,\n\tTasks = 121,\n\tDependentProducts = 122,\n}\n\nexport enum IngredientBatchModuleTabs {\n\tBatchIngredients = 124,\n\tTasks = 125,\n}\n\nexport enum VisitModuleTabs {\n\tInfo = 146,\n\tReportQuestions = 147,\n\tProducts = 148,\n\tNotes = 149,\n\tExpenses = 150,\n\tTasks = 151,\n\tPaymentNotes = 211,\n}\n\nexport enum MasterIngredientTabs {\n\tInfo = 129,\n\tCompanies = 130,\n\tFacilities = 131,\n\tTasks = 132,\n\tKosherLetters = 133,\n\tCategories = 134,\n\tHistory = 135,\n\tNotes = 136,\n\tChangesHistory = 137,\n\tCustomerIngredients = 138,\n\tDependentProducts = 139,\n}\n\nexport enum TripModuleTabs {\n\tInfo = 153,\n\tExpenses = 154,\n\tItinerary = 155,\n\tInvoices = 156,\n\tTasks = 157,\n\tNotes = 209,\n\tPaymentNotes = 210,\n}\n\nexport enum ContactModuleTabs {\n\tInfo = 142,\n\tNotes = 143,\n\tTasks = 144,\n\tHistory = 145,\n\tContactLinks = 146,\n\tRabbinicalAssignments = 147,\n\tAccountRepAssignments = 148,\n}\n\nexport enum UKDSearchModuleTabs {\n\tInfo = 176,\n\tHistory = 177,\n}\n\nexport enum ProductModuleTabs {\n\tInfo = 90,\n\tEvaluations = 91,\n\tFormulas = 92,\n\tFacilities = 93,\n\tProcesses = 94,\n\tNotes = 95,\n\tSameAs = 96,\n\tDependentProducts = 97,\n\tCategories = 98,\n\tKosherCertificates = 99,\n\tHistory = 100,\n\tProductionHistory = 101,\n\tProductLabels = 102,\n\tKCGroup = 103,\n\tTasks = 104,\n\tProductBatch = 105,\n}\n\nexport enum ApplicationModuleTabs {\n\tSummary = 2,\n\tCompany = 3,\n\tFacilities = 4,\n\tCompanyContract = 5,\n\tFacilityContract = 6,\n\tInitialVisit = 7,\n\tContacts = 8,\n\tInvoicingGroups = 9,\n\tTasks = 10,\n\tApplicationInfo = 11,\n\tReferral = 12,\n\tPLcontract = 14,\n\tPrivateLabel = 173,\n\tIngredients = 182,\n\tProducts = 183,\n\tKosherCertificates = 181,\n}\n\nexport enum UserModuleTabs {\n\tInfo = 161,\n\tSecurity = 162,\n\tRestrictions = 163,\n\tTasks = 164,\n}\n\nexport enum UserGroupsTabs {\n\tUsers = 167,\n\tNotifications = 168,\n}\n\nexport enum RoleModuleTabs {\n\tPermissions = 221,\n}\n","export enum PlatformType {\n\tCompanyPortal = 1,\n\tCustomerPortal = 2,\n\tFieldRepPortal = 3,\n}\n","export enum ReviewAction {\n\tCancel = 1,\n\tSave = 2,\n\tApprove = 3,\n\tReject = 4,\n\tReview = 5,\n}\n","export enum RulesEngineMessageType {\n\tWarning = 1,\n\tContradiction = 2,\n}\n","export enum SessionStorageKeys {\n\tNavigateAfterLogin = 'nav-after-login',\n}\n","export enum SideInfoType {\n\tCompany = 'Company',\n\tFacility = 'Facility',\n\tPrivateLabeler = 'PrivateLabeler',\n\tContact = 'Contact',\n\tRole = 'Role',\n\tBrand = 'Brand',\n\tNote = 'Note',\n\tApplication = 'Application',\n\tVisit = 'Visit',\n\tTrips = 'Trips',\n\tTasks = 'Tasks',\n\tGroup = 'Group',\n\tMasterIngredients = 'MasterIngredients',\n\tCustomerIngredient = 'CustomerIngredient',\n\tIngredientBatch = 'IngredientBatch',\n\tProduct = 'Product',\n\tInvoice = 'Invoice',\n\tNotification = 'Notification',\n\tMagicReview = 'MagicReview',\n\tCompanySnapshots = 'CompanySnapshots',\n\tProductReviewQueue = 'ProductReviewQueue',\n\tAcumaticaLogs = 'AcumaticaLogs',\n}\n","export enum TabsType {\n\tNone,\n\tCompanyModule,\n\tCompanyInfo,\n\tFacilityInfo,\n\tPrivateLabelerInfo,\n\tContactInfo,\n\tVendorInfo,\n\tAgencyInfo,\n\tUserSettingsInfo,\n\tCurrentUserInfo,\n\tVisitsModule,\n\tVisitsInfo,\n\tTripsInfo,\n\tSettingsModule,\n\tGroupInfo,\n\tCustomerIngredientModule,\n\tMasterIngredientInfo,\n\tCustomerIngredientInfo,\n\tSubmitCustomerIngredient,\n\tProductInfo,\n\tProductsModule,\n\tContractCleanup,\n\tIngredientBatchInfo,\n\tAccountingRenewal,\n\tProductBatch,\n\tMasterIngredientModule,\n\tKosherCertificateModule,\n\tDashboard,\n\tCompanyApplicationInfo,\n\tFacilityApplicationInfo,\n\tRestaurantApplicationInfo,\n\tPrivateLabelerApplicationInfo,\n\tUkdSearchInfo,\n\tAnalyzeProductInfo,\n\tTaskInfo,\n\tSubmitCertificateInfo,\n\tCustomerIngredientCodeChangesUtilityModuleTabs,\n\tRoleSettingsInfo,\n}\n","export enum TaskEntityTypeId {\n\tApplication = 1,\n\tBusinessEntity = 3,\n\tCompany = 4,\n\tFacility = 5,\n\tPerson = 7,\n\tContactDetail = 9,\n\tWorkflow = 10,\n\tProduct = 11,\n\tProductEvaluation = 13,\n\tKosherCertificate = 14,\n\tCustomerIngredient = 15,\n\tKosherEvaluation = 16,\n\tMasterIngredient = 17,\n\tVisit = 18,\n\tAgency = 25,\n\tPrivateLabeler = 26,\n\tVendor = 27,\n\tBatchIngredient = 28,\n\tFormulaImport = 30,\n\tVisitForm = 55,\n\tPaperSubmission = 56,\n\tCommunication = 57,\n\tCommActivity = 58,\n\tProject = 59,\n\tProductBatch = 83,\n\tTrip = 97,\n\tTask = 98,\n\tSubTask = 99,\n}\n","export enum TaskStatusGroup {\n\tAll = 1,\n\tAssignable = 2,\n\tAssignableAndUnopened = 3,\n\tAssignableOnSubTask = 4,\n\tAssignableAndUnopenedOnProduct = 5,\n\tAssignableOnProductSubTask = 6,\n}\n","export enum HttpCustomStatus {\n\tOK = 200,\n\tUnauthorized = 401,\n\tForbidden = 403,\n\tBusinessException = 500,\n\tBusinessSuccess = 601,\n\tBusinessWarning = 602,\n\tBusinessValidationError = 603,\n\tRequestValidationError = 604,\n\tBEExportOverflow = 605,\n\tCorsError = 0,\n}\n","export class RegexPatterns {\n\t/** Strings containing numbers only */\n\tstatic readonly Numbers = new RegExp('^[0-9]*$');\n\n\t/** Strings containing uppercase letters, numbers and symbols */\n\tstatic readonly Password = new RegExp(/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z\\d]).{8,}$/);\n\n\t/** Strings that represents a valid IP address */\n\tstatic readonly IpAddress = new RegExp(\n\t\t'(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'\n\t);\n\n\t/** Matches the row count segment in a string (** Rows) */\n\tstatic readonly GridRowCount = new RegExp(/\\((.*?Rows)\\)/g);\n\n\tstatic readonly CASPattern = new RegExp(/(^\\d{2,7})-(\\d{2})-(\\d{1})$/);\n\n\t/** Validation for phone numbers, accepts numbers and the following symbols: . - ( ) + */\n\tstatic readonly PhoneNumber = new RegExp(/^[0-9.\\-\\+\\(\\)\\s]+$/);\n\n /** Match white space text */\n static readonly NoWhitespace: RegExp = new RegExp(\"\\\\S\");\n}\n","export enum ValidationAnswersTypes {\n\tYes = 1,\n\tNo = 2,\n\tCancel = 3,\n\tUpdateFormulaItems = 4,\n\tOnlyUpdateIngredient = 5,\n\tOnlyUpdateProductCode = 6,\n\tClose = 7,\n\tOpenProducer = 8,\n\tPublishWithout = 9,\n}\n","export enum ValidationMessageResponseTypes {\n\tQuestion = 1,\n\tContradiction = 2,\n\tSuccess = 3,\n\tWarning = 4,\n\tError = 5,\n}\n","export enum VisitEntityType {\n\tTrip = 1,\n\tVisit = 2,\n\tChildVisit = 3,\n}\n","import * as moment from 'moment';\n\nexport class LoginResponse {\n\taccessToken: string;\n\ttokenType?: string;\n\trefreshToken?: string;\n\terrorDescription?: string;\n\texpireDate?: Date;\n\texpireIn?: number;\n\n\tconstructor(value?: LoginResponse) {\n\t\tif (value) {\n\t\t\tthis.accessToken = value.accessToken;\n\t\t\tthis.tokenType = value.tokenType;\n\t\t\tthis.refreshToken = value.refreshToken;\n\t\t\tthis.errorDescription = value.errorDescription;\n\t\t\tthis.expireDate = value.expireDate;\n\t\t\tthis.expireIn = value.expireIn;\n\t\t}\n\t}\n\n\tstatic isTokenValid(currentDate, expireDate): boolean {\n\t\tif (expireDate) {\n\t\t\tconst tokenExpirationDate = moment.utc(expireDate);\n\t\t\tconst now = moment.utc(currentDate);\n\t\t\treturn tokenExpirationDate.isAfter(now);\n\t\t}\n\t\treturn false;\n\t}\n}\n","import { CategoryHeader } from '../enums/category-header.enum';\nimport { EntityAttributeType } from '../enums/entity-attribute-type.enum';\n\nexport class BaseModel {\n\tid: any;\n\tname: string;\n\n\t// UI\n\tgroup?: string;\n\tselected?: boolean;\n}\n\nexport class BaseIndexModel extends BaseModel {\n\tabbreviation: string;\n\tallowEdit: boolean;\n\tdescription: string;\n\tdetail: string;\n\thasCustomValue: boolean;\n\tsortOrder: number;\n}\n\nexport class BaseModelCategory extends BaseIndexModel {\n\tcategoryHeaderId: CategoryHeader;\n}\n\nexport class BaseModelRole extends BaseIndexModel {\n\tbusinessEntityRoleId: number;\n}\n\nexport class BaseModelInvoicesGroups extends BaseModel {\n\trelatedEntityId?: number;\n\tinvoicingGroupId?: number;\n\tcompanyId?: number;\n\tisDefault?: boolean;\n\tactive?: boolean;\n}\n\nexport class OwnerAutocomplete extends BaseModel {\n\tentityTypeId: number;\n\texpirationDate?: Date | string;\n\texpirationDateFormat?: Date | string;\n}\n\nexport class JobModel {\n\tid: any;\n\tname: string;\n\tmain: boolean;\n\tisOther: boolean;\n}\n\nexport class CountryModel extends BaseIndexModel {\n\tcontinent: string;\n\tcontinentId: number;\n\tcontinentRegionId: number;\n\tregex: string;\n}\n\nexport class VisitStatusBaseModel extends BaseModel {\n\tallowEditExpenses: boolean;\n\tallowSendForProcessing: boolean;\n\tallowReopen: boolean;\n}\n\nexport class FindBaseModel extends BaseModel {\n\tactive: boolean;\n\tdisabled: boolean;\n\tdisplayName: string;\n}\n\nexport class ColorBaseModel extends BaseModel {\n\tcolor: string;\n}\n\nexport class BaseModelEvaluationGroup extends BaseIndexModel {\n\tevaluationGroupId: number;\n\tvalue: string;\n\tattributeId: EntityAttributeType;\n}\n","export class CustomParamsDictionary {\n\t/** The id is the grid columns key */\n\t[id: string]: CellRendererCustomParams;\n}\n\nexport class CellRendererCustomParams {\n\tdisabled: boolean;\n\twarning: boolean;\n\timmutable: boolean;\n\teditable: boolean;\n}\n","import { ActiveType } from '../../enums/active-type.enum';\nimport { FindFilterType } from '../../enums/find-filter-type.enum';\n\nexport class SearchCriteria {\n\tkeyword: string;\n\tmaxCount: number;\n\texcludedIds: number[];\n\n\tconstructor(keyword: string, maxCount: number, excludedIds: number[]) {\n\t\tthis.keyword = keyword || '';\n\t\tthis.maxCount = maxCount;\n\t\tthis.excludedIds = excludedIds;\n\t}\n}\n\nexport class FindSearchCriteria extends SearchCriteria {\n\tentityTypeId: number;\n\tbusinessEntityTypeId: number;\n\tfilterType: FindFilterType;\n\thasUser? = null;\n\tisParentVendor?: boolean;\n\tactiveType?: ActiveType;\n\tisApplicationSearch = false;\n\n\tconstructor(\n\t\tkeyword: string,\n\t\tmaxCount: number,\n\t\tentityTypeId: number,\n\t\texcludedIds: number[],\n\t\tbusinessEntityTypeId?: number,\n\t\thasUser?: boolean,\n\t\tisParentVendor?: boolean,\n\t\tactiveType?: ActiveType,\n\t\tisApplicationSearch: boolean = false\n\t) {\n\t\tsuper(keyword, maxCount, excludedIds);\n\n\t\tthis.filterType = keyword && !Number.isNaN(+keyword) ? FindFilterType.IdEquals : FindFilterType.BeginsWith;\n\n\t\tthis.entityTypeId = entityTypeId;\n\t\tthis.businessEntityTypeId = businessEntityTypeId;\n\t\tthis.hasUser = hasUser;\n\t\tthis.isParentVendor = isParentVendor;\n\t\tthis.activeType = activeType;\n\t\tthis.isApplicationSearch = isApplicationSearch;\n\t}\n}\n","import { MasterIngredientExtended } from './master-ingredient.model';\nimport { EntityAttribute } from '../entity-attribute.model';\nimport { EntityHistory } from '../../models/history.model';\n\nexport class CustomerIngredient {\n\tid: number;\n\tcustomerKey: any;\n\tdkIngredientId: number;\n\teffectiveExpirationDate: string;\n\tingredientIdentityId: number;\n\tingredientOwnerId: number;\n\townerId: number;\n\tingredientSourceId: number;\n\tingredientStatusId: number;\n\tingredientTypeId: number;\n\tkey: any;\n\tname: string;\n\trmc: string;\n\tsubmittedDate: string;\n\tsystemRMC: string;\n\tvendorId: number;\n\tvendorName: string;\n\tattributes: EntityAttribute[];\n\thistory: EntityHistory;\n\tdistributor: string;\n\tpackageTypeId: number;\n\testimatedRestockDate?: Date | string;\n\tpurchaseDate?: Date | string;\n\tlotNumber?: string;\n}\n\nexport class CustomerIngredientExtended {\n\tinfo: CustomerIngredient;\n\tmasterIngredient: MasterIngredientExtended;\n\tsystemRMC?: string;\n}\n","import { ReviewAction } from '../../enums/review-action.enum';\nimport { IngredientApproval } from '../../enums/ingredient-approval-status.enum';\nimport { BatchIngredientItem } from './batch-ingredient.model';\nimport { MasterIngredientExtended } from './master-ingredient.model';\n\nexport class IngredientBatchReviewAction {\n\taction: ReviewAction;\n\tapprovalStatus?: IngredientApproval;\n\tbatchIngredient?: BatchIngredientItem;\n\tmasterIngredient?: MasterIngredientExtended;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport {\n\tInvoicePreviewFacility,\n\tInvoicePreviewDetail,\n\tInvoicePreviewHeader,\n\tInvoicePreviewHeaderRequest,\n\tInvoicePreviewFacilitiesRequest,\n} from '../models/invoice-preview.model';\nimport { Invoice } from '../models/invoice.model';\nimport { InvoiceSummary } from '../models/invoice-summary.model';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport { BaseModel, FindBaseModel } from '../models/base.model';\nimport { TransactionGridDto } from '../models/transaction-grid-dto.model';\nimport { AdditionalFeeInvoice } from '../models/additional-fee-invoice.model';\nimport { Fee } from '../models/fee.model';\nimport { AcumaticaLogRecord } from '../models/log-record.model';\nimport { JournalTransaction } from '../models/journal-transaction.model';\nimport { InvoiceSyncDetail } from '../models/invoice-sync-detail.model';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class AccountingService {\n\tconstructor(private http: HttpClient, private appConfig: AppConfigurationService) {}\n\n\tloadInvoice(id: number): Observable {\n\t\treturn this.http.get(`${this.appConfig.api.service}/Accounting/Invoice/Load?invoiceHeaderId=${id}`);\n\t}\n\n\tgetApplicationSearchTransactionGrid(\n\t\tentityId: number,\n\t\tentityTypeId: number,\n\t\tapplicationTypeId: number,\n\t\tids\n\t): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/accounting/application/searchtransactiongrid?entityId=${entityId}&entityTypeId=${entityTypeId}&applicationTypeId=${applicationTypeId}`,\n\t\t\tids\n\t\t);\n\t}\n\n\tgetPoNumberTypes(): Observable {\n\t\treturn this.http.get(`${this.appConfig.api.service}/index/po_number_types`);\n\t}\n\n\tgetInvoiceSendingMethods(): Observable {\n\t\treturn this.http.get(`${this.appConfig.api.service}/index/invoice_sending_methods`);\n\t}\n\n\tgetCompanySearchTransactionGrid(\n\t\tentityId: number,\n\t\tentityTypeId: number,\n\t\tinvoicingGroupId: number,\n\t\tfinancialInvoiceType: number,\n\t\tids\n\t): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/accounting/company/searchtransactiongrid?entityId=${entityId}&entityTypeId=${entityTypeId}&invoicingGroupId=${invoicingGroupId}&financialInvoiceTypeId=${financialInvoiceType}`,\n\t\t\tids\n\t\t);\n\t}\n\n\tgetPrivateLabelerSearchTransactionGrid(\n\t\tentityId: number,\n\t\tentityTypeId: number,\n\t\tinvoicingGroupId: number,\n\t\tids\n\t): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/accounting/PrivateLabeler/searchtransactiongrid?entityId=${entityId}&entityTypeId=${entityTypeId}&invoicingGroupId=${invoicingGroupId}`,\n\t\t\tids\n\t\t);\n\t}\n\n\tgenerate(generateInvoicesParams): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/accounting/generate?invoiceTypeId=${generateInvoicesParams.invoiceTypeId}`,\n\t\t\tgenerateInvoicesParams\n\t\t);\n\t}\n\n\tgenerateInvoiceBulkAccountRenewal(generateInvoicesParams): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/accounting/accountRenewal/bulkGenerate`,\n\t\t\tgenerateInvoicesParams,\n\t\t\t{ headers: { 'Content-Type': 'application/json' } }\n\t\t);\n\t}\n\n\tgenerateInvoiceVisit(generateInvoicesParams): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/accounting/visit/generate?invoiceTypeId=${generateInvoicesParams.invoiceTypeId}`,\n\t\t\tgenerateInvoicesParams\n\t\t);\n\t}\n\n\tgenerateInvoiceTrip(generateInvoicesParams): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/accounting/Trip/Generate?invoiceTypeId=${generateInvoicesParams.invoiceTypeId}`,\n\t\t\tgenerateInvoicesParams\n\t\t);\n\t}\n\n\tgenerateInvoiceCompletedVisitsAndTrips(generateInvoicesParams): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/accounting/CompletedVisitsAndTrips/Generate`,\n\t\t\tgenerateInvoicesParams\n\t\t);\n\t}\n\n\tgenerateCreditMemo(invoice: Invoice) {\n\t\treturn this.http.post(`${this.appConfig.api.service}/Accounting/CreditMemo/Generate`, invoice);\n\t}\n\n\tinvoicePreviewDetails(generateInvoicesParams): Observable<{ [id: number]: InvoicePreviewDetail[] }> {\n\t\treturn this.http.post<{ [id: number]: InvoicePreviewDetail[] }>(\n\t\t\t`${this.appConfig.api.service}/accounting/application/invoicePreviewDetails?invoiceTypeId=${generateInvoicesParams.invoiceTypeId}`,\n\t\t\tgenerateInvoicesParams\n\t\t);\n\t}\n\n\tinvoicePreviewFacilities(\n\t\tinvoicePreviewFacilitiesParams: InvoicePreviewFacilitiesRequest\n\t): Observable<{ [id: number]: InvoicePreviewFacility[] }> {\n\t\treturn this.http.post<{ [id: number]: InvoicePreviewFacility[] }>(\n\t\t\t`${this.appConfig.api.service}/accounting/application/InvoicePreviewFacilities`,\n\t\t\tinvoicePreviewFacilitiesParams\n\t\t);\n\t}\n\n\tinvoicePreviewHeader(invoicePreviewHeaderParams: InvoicePreviewHeaderRequest): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/accounting/application/invoicePreviewHeader`,\n\t\t\tinvoicePreviewHeaderParams\n\t\t);\n\t}\n\n\tinvoiceHeaderGroup(\n\t\tentityId: number,\n\t\tentityTypeId: number,\n\t\tids: { businessEntityId: number; businessEntityTypeId: number }[]\n\t): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/accounting/InvoiceHeaderGroup/Load?entityId=${entityId}&entityTypeId=${entityTypeId}`,\n\t\t\tids\n\t\t);\n\t}\n\n\texport(id): Observable {\n\t\treturn this.http.post(`${this.appConfig.api.service}/Accounting/Print?invoiceHeaderId=${id}`, id);\n\t}\n\n\thasPrintAvailable(printIdList: number[]) {\n\t\treturn this.http.post(`${this.appConfig.api.service}/Accounting/HasPrintAvailable`, printIdList);\n\t}\n\n\tgetInvoiceSummary(invoiceId: number): Observable {\n\t\treturn this.http.get(`${this.appConfig.api.service}/Summary/invoice?id=${invoiceId}`);\n\t}\n\n\tsaveReplyPO(invoiceHeaderId: number, poNumber: string) {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/Accounting/SaveReplyPO?invoiceHeaderId=${invoiceHeaderId}&replyPONumber=${poNumber}`,\n\t\t\t{}\n\t\t);\n\t}\n\n\tvisitTransactionGrid(visitId: number, ids): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/Accounting/Visit/SearchTransactionGrid?visitId=${visitId}`,\n\t\t\tids\n\t\t);\n\t}\n\n\ttripTransactionGrid(visitId: number): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/Accounting/Trip/SearchTransactionGrid?tripId=${visitId}`,\n\t\t\t{}\n\t\t);\n\t}\n\n\tgetPaymentMethods(isDefault: boolean, visibleOnExpensesPage: boolean = null): Observable {\n\t\tconst params = {\n\t\t\tuseDefault: isDefault,\n\t\t};\n\t\tif (visibleOnExpensesPage !== null) {\n\t\t\tparams['visibleOnExpensesPage'] = visibleOnExpensesPage;\n\t\t}\n\t\treturn this.http.get(`${this.appConfig.api.service}/index/payment_methods`, {\n\t\t\tparams,\n\t\t});\n\t}\n\n\tgenerateAdditionalFees(additionalFees: AdditionalFeeInvoice): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/Accounting/AdditionalFees/Generate`,\n\t\t\tadditionalFees\n\t\t);\n\t}\n\n\tgetAgreementRegionalDerfaultFees(countryId: number): Observable {\n\t\treturn this.http.get(`${this.appConfig.api.service}/Financial/agreement_regional_fees/${countryId}`);\n\t}\n\n\tgetAcumaticaLogDetails(requestId: number): Observable {\n\t\treturn this.http.get(`${this.appConfig.api.service}/Accounting/Logs/${requestId}`);\n\t}\n\n\tsyncCompanyContractSnapShot(companyId: number): Observable {\n\t\treturn this.http.post(`${this.appConfig.api.service}/Company/Renewal/Sync`, [companyId]);\n\t}\n\n\tloadJournalTransactionsByFilePaymentItemIds(ids: number[]): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/Accounting/Financial/JournalTransaction/LoadByFilePaymentItemIds`,\n\t\t\tids\n\t\t);\n\t}\n\n\tloadJournalTransactionsByExpenseIds(ids: number[]): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/Accounting/Financial/JournalTransaction/LoadByExpenseIds`,\n\t\t\tids\n\t\t);\n\t}\n\n\tgetSyncDetails(queueId): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfig.api.service}/Accounting/InvoiceSyncDetails/${queueId}`\n\t\t);\n\t}\n\n\tresyncInvoice(invoiceHeaderId): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfig.api.service}/Accounting/ReSyncInvoice/${invoiceHeaderId}`,\n\t\t\tinvoiceHeaderId\n\t\t);\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport { ActiveType } from '../enums/active-type.enum';\nimport { BusinessEntityLinkType } from '../enums/business-entity-link-type.enum';\nimport { ContactRepType } from '../enums/contact-rep-type.enum';\nimport { EntityType } from '../enums/entity-type.enum';\nimport { FindFilterType } from '../enums/find-filter-type.enum';\nimport { LifecycleStatus } from '../enums/lifecycle-status.enum';\nimport { VisitEntityType } from '../enums/visit-entity-type.enum';\nimport { BaseModel, BaseIndexModel, OwnerAutocomplete } from '../models/base.model';\nimport { BaseBusinessEntity, BusinessEntitySearchResult } from '../models/business-entity.model';\nimport { ContactFlat, ContactPerson } from '../models/contact.model';\nimport { FindSearchCriteria } from '../models/general/search-criteria.model';\nimport { VisitProduct } from '../models/visit-product.model';\nimport { VisitSearchResult } from '../models/visit.model';\nimport { UrlHelperService } from './helpers/url-helper.service';\nimport { UkdItem } from '../models/ukd-search-item.model';\nimport { AutocompleteModel } from '../models/autocomplete.model';\nimport { TaskIssueType } from '../enums/task-issue-type.enum';\nimport { TaskSearchResult } from '../models/task.model';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class AutocompleteService {\n\tconstructor(\n\t\tprivate http: HttpClient,\n\t\tprivate appConfigurationService: AppConfigurationService,\n\t\tprivate urlHelper: UrlHelperService\n\t) {}\n\n\t// SERVICE CONVENTION\n\t// When adding a new method if it uses the 'FindSearchCriteria' class\n\t// use the 'find' PREFIX when naming, for any other method that is NOT using it\n\t// use the 'Autocomplete' SUFFIX when naming.\n\n\tfindBusinessEntityLight(searchCriteria: FindSearchCriteria): Observable {\n\t\tswitch (searchCriteria.entityTypeId) {\n\t\t\tcase EntityType.Application:\n\t\t\t\treturn this.http.post(\n\t\t\t\t\t`${this.appConfigurationService.api.service}/be/application/FindLight/`,\n\t\t\t\t\tsearchCriteria\n\t\t\t\t);\n\t\t\tcase EntityType.ContactDetail:\n\t\t\tcase EntityType.Person:\n\t\t\t\treturn this.http.post(\n\t\t\t\t\t`${this.appConfigurationService.api.service}/contact/FindLight/`,\n\t\t\t\t\tsearchCriteria\n\t\t\t\t);\n\t\t\tcase EntityType.BusinessEntity:\n\t\t\t\treturn this.http.post(\n\t\t\t\t\t`${this.appConfigurationService.api.service}/be/bussinessEntity/FindLight/`,\n\t\t\t\t\tsearchCriteria\n\t\t\t\t);\n\t\t}\n\t}\n\n\tfindBusinessEntity(searchCriteria: FindSearchCriteria): Observable {\n\t\tswitch (searchCriteria.entityTypeId) {\n\t\t\tcase EntityType.Application:\n\t\t\t\treturn this.http.post(\n\t\t\t\t\t`${this.appConfigurationService.api.service}/be/application/find/`,\n\t\t\t\t\tsearchCriteria\n\t\t\t\t);\n\t\t\tcase EntityType.BusinessEntity:\n\t\t\t\treturn this.http.post(\n\t\t\t\t\t`${this.appConfigurationService.api.service}/be/bussinessEntity/find/`,\n\t\t\t\t\tsearchCriteria\n\t\t\t\t);\n\t\t\tcase EntityType.Person:\n\t\t\t\tlet params = {};\n\t\t\t\tif (searchCriteria.hasUser === false || searchCriteria.hasUser === true) {\n\t\t\t\t\tparams = {\n\t\t\t\t\t\thasUser: searchCriteria.hasUser,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn this.http.post(\n\t\t\t\t\t`${this.appConfigurationService.api.service}/contact/find`,\n\t\t\t\t\tsearchCriteria,\n\t\t\t\t\t{ params: params }\n\t\t\t\t);\n\t\t\tcase EntityType.Product:\n\t\t\t\treturn this.http.post(\n\t\t\t\t\t`${this.appConfigurationService.api.product}/Product/Find/`,\n\t\t\t\t\tsearchCriteria\n\t\t\t\t);\n\t\t\tcase EntityType.IngredientInfo:\n\t\t\t\treturn this.http.post(\n\t\t\t\t\t`${this.appConfigurationService.api.product}/CustomerIngredient/Find/`,\n\t\t\t\t\tsearchCriteria\n\t\t\t\t);\n\t\t\tcase EntityType.K_ID:\n\t\t\t\treturn this.http.post(\n\t\t\t\t\t`${this.appConfigurationService.api.product}/MasterIngredient/Find/`,\n\t\t\t\t\tsearchCriteria\n\t\t\t\t);\n\t\t\tcase EntityType.BatchIngredient:\n\t\t\t\treturn this.http.post(\n\t\t\t\t\t`${this.appConfigurationService.api.product}/IngredientBatches/Find/`,\n\t\t\t\t\tsearchCriteria\n\t\t\t\t);\n\t\t\tcase EntityType.BatchProductHeader:\n\t\t\t\treturn this.http.post(\n\t\t\t\t\t`${this.appConfigurationService.api.product}/ProductBatches/Find/`,\n\t\t\t\t\tsearchCriteria\n\t\t\t\t);\n\t\t\tcase EntityType.KosherCertificate:\n\t\t\t\treturn this.http.post(\n\t\t\t\t\t`${this.appConfigurationService.api.product}/Certificate/Find/`,\n\t\t\t\t\tsearchCriteria\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tfindAgency(keyword: string): Observable {\n\t\tconst criteria: FindSearchCriteria = new FindSearchCriteria(\n\t\t\tkeyword,\n\t\t\t1000,\n\t\t\tEntityType.BusinessEntity,\n\t\t\t[],\n\t\t\tBusinessEntityLinkType.Agency\n\t\t);\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/be/bussinessEntity/find/`,\n\t\t\tcriteria\n\t\t);\n\t}\n\n\tfindVendor(keyword: string, extraParams = { isParentVendor: undefined }): Observable {\n\t\tconst criteria: FindSearchCriteria = new FindSearchCriteria(\n\t\t\tkeyword,\n\t\t\t1000,\n\t\t\tEntityType.BusinessEntity,\n\t\t\t[],\n\t\t\tBusinessEntityLinkType.Vendor\n\t\t);\n\t\tcriteria.isParentVendor = extraParams.isParentVendor;\n\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/be/bussinessEntity/find/`,\n\t\t\tcriteria\n\t\t);\n\t}\n\n\tfindMasterIngredient(keyword: string, extraParams = { activeType: ActiveType.All }) {\n\t\tconst searchCriteria = new FindSearchCriteria(\n\t\t\tkeyword,\n\t\t\t50,\n\t\t\tEntityType.IngredientInfo,\n\t\t\t[],\n\t\t\tnull,\n\t\t\tnull,\n\t\t\tnull,\n\t\t\textraParams?.activeType\n\t\t);\n\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/MasterIngredient/Find/`,\n\t\t\tsearchCriteria\n\t\t);\n\t}\n\n\tfindVisits(searchCriteria: FindSearchCriteria, visitEntityType?: VisitEntityType): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/visit/find?visitEntityType=${visitEntityType}`,\n\t\t\tsearchCriteria\n\t\t);\n\t}\n\n\tfindTasks(searchCriteria: FindSearchCriteria, taskIssueType?: TaskIssueType): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/task/find?taskIssueType=${taskIssueType}`,\n\t\t\tsearchCriteria\n\t\t);\n\t}\n\n\townerAutocomplete(\n\t\tkeyword: string,\n\t\textraParams = { keywordMinimumLength: null, businessEntityId: null, activeType: null }\n\t): Observable {\n\t\tconst params = this.constructKeywordQueryParam(keyword, {});\n\n\t\tconst keywordMin = this.valueOrDefault(extraParams.keywordMinimumLength, 2);\n\t\tconst businessEntityId = this.valueOrDefault(extraParams.businessEntityId, null);\n\t\tconst activeType = this.valueOrDefault(extraParams.activeType, ActiveType.All);\n\n\t\tthis.urlHelper.addQueryParam(params, keywordMin, 'keywordMinimumLength', false);\n\t\tthis.urlHelper.addQueryParam(params, businessEntityId, 'businessEntityId', false);\n\t\tthis.urlHelper.addQueryParam(params, activeType, 'activeType', false);\n\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/be/bussinessEntity/owners/findAutocomplete`,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tbrandAutocomplete(\n\t\tkeyword: string,\n\t\textraParams = { companyId: null, activeType: ActiveType.All }\n\t): Observable {\n\t\tlet params = this.constructKeywordQueryParam(keyword, {});\n\t\tthis.urlHelper.addQueryParam(params, extraParams?.companyId, 'companyId', false);\n\t\tthis.urlHelper.addQueryParam(params, extraParams?.activeType, 'activeType', false);\n\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/brand/Autocomplete`,\n\t\t\tnull,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tcontactAutocomplete(\n\t\tkeyword: string,\n\t\textraParams = { businessEntityId: null, keywordMinimumLength: 2, activeType: ActiveType.All }\n\t): Observable {\n\t\tconst params = this.constructKeywordQueryParam(keyword, {});\n\t\tthis.urlHelper.addQueryParam(params, extraParams.keywordMinimumLength, 'keywordMinimumLength', false);\n\t\tthis.urlHelper.addQueryParam(params, extraParams.businessEntityId, 'businessEntityId', false);\n\t\tthis.urlHelper.addQueryParam(params, extraParams.activeType, 'activeType', false);\n\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/contact/autocomplete`, {\n\t\t\tparams,\n\t\t});\n\t}\n\n\tvisitProductAutocomplete(\n\t\tkeyword: string,\n\t\textraParams: { facilityId: number; lifecycleStatusId: LifecycleStatus; activeType: ActiveType }\n\t): Observable {\n\t\tlet params = this.constructKeywordQueryParam(keyword, {});\n\n\t\tthis.urlHelper.addQueryParam(params, extraParams.facilityId, 'facilityId');\n\t\tthis.urlHelper.addQueryParam(params, extraParams.lifecycleStatusId, 'lifecycleStatusId');\n\t\tthis.urlHelper.addQueryParam(params, extraParams.activeType, 'activeType');\n\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/Product/Facility/Autocomplete`,\n\t\t\t{},\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tproducerAutocomplete(\n\t\tkeyword: string,\n\t\textraParams = { businessEntityId: null, keywordMinimumLength: 2, activeType: ActiveType.All }\n\t): Observable {\n\t\tlet params = this.constructKeywordQueryParam(keyword, {});\n\t\tif (!extraParams.businessEntityId) {\n\t\t\treturn of([]);\n\t\t}\n\t\tthis.urlHelper.addQueryParam(params, extraParams.businessEntityId, 'businessEntityId', false);\n\t\tthis.urlHelper.addQueryParam(params, extraParams.keywordMinimumLength, 'keywordMinimumLength', false);\n\t\tthis.urlHelper.addQueryParam(params, extraParams.activeType, 'activeType', false);\n\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/be/BussinessEntity/Producer/Autocomplete`,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tusersAutocomplete(keyword = '', extraParams: { activeType?: ActiveType }): Observable {\n\t\tlet params = this.constructKeywordQueryParam(keyword, {});\n\t\tthis.urlHelper.addQueryParam(params, extraParams?.activeType, 'activeType', false);\n\n\t\treturn this.http.get(`${this.appConfigurationService.api.auth}/user/autocomplete`, { params });\n\t}\n\n\tinternalContactsAutocomplete(keyword: string, useDefaultValue = false) {\n\t\tconst params = this.urlHelper.addQueryParam({}, useDefaultValue, 'useDefaultValue');\n\t\treturn new Observable(observer => {\n\t\t\tthis.http\n\t\t\t\t.get(`${this.appConfigurationService.api.service}/contact/loadinternal`, {\n\t\t\t\t\tparams,\n\t\t\t\t})\n\t\t\t\t.subscribe(res => {\n\t\t\t\t\tlet displayNameSearch = keyword && String(keyword).indexOf(',') > -1;\n\t\t\t\t\tobserver.next(\n\t\t\t\t\t\tres.filter(\n\t\t\t\t\t\t\tcontact =>\n\t\t\t\t\t\t\t\tString(contact.id).search(keyword) > -1 ||\n\t\t\t\t\t\t\t\tString(contact.name).toLowerCase().search(String(keyword).toLowerCase()) > -1 ||\n\t\t\t\t\t\t\t\t(displayNameSearch &&\n\t\t\t\t\t\t\t\t\tString(contact.displayName).toLowerCase().search(String(keyword).toLowerCase()) >\n\t\t\t\t\t\t\t\t\t\t-1)\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t});\n\t}\n\n\tfieldRepsAutocomplete(keyword: string, extraParams: { activeType?: ActiveType }): Observable {\n\t\tlet params = this.constructKeywordQueryParam(keyword, {});\n\n\t\tthis.urlHelper.addQueryParam(params, extraParams?.activeType, 'activeType', false);\n\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/contact/fieldRepsAutocomplete`,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tbrandApprovedByAutocomplete(\n\t\tkeyword: string,\n\t\textraParams: { activeType?: ActiveType }\n\t): Observable {\n\t\treturn this.getContactsByType(\n\t\t\tkeyword,\n\t\t\t[ContactRepType.AgencyUser, ContactRepType.RabbiCoordinator],\n\t\t\textraParams\n\t\t);\n\t}\n\n\trabbiCoordinatorsAndAccountRepsAutocomplete(\n\t\tkeyword: string,\n\t\textraParams: { activeType?: ActiveType }\n\t): Observable {\n\t\treturn this.getContactsByType(\n\t\t\tkeyword,\n\t\t\t[ContactRepType.RabbiCoordinator, ContactRepType.AccountRep],\n\t\t\textraParams\n\t\t);\n\t}\n\n\trabbiCoordinatorsAndAgencyUsersAutocomplete(\n\t\tkeyword: string,\n\t\textraParams: { activeType?: ActiveType }\n\t): Observable {\n\t\treturn this.getContactsByType(\n\t\t\tkeyword,\n\t\t\t[ContactRepType.RabbiCoordinator, ContactRepType.AgencyUser],\n\t\t\textraParams\n\t\t);\n\t}\n\n\trabbiCoordinatorsAutocomplete(\n\t\tkeyword: string,\n\t\textraParams: { activeType?: ActiveType }\n\t): Observable {\n\t\treturn this.getContactsByType(keyword, [ContactRepType.RabbiCoordinator], extraParams);\n\t}\n\n\trcAndFieldRepsAutocomplete(keyword: string, extraParams: { activeType?: ActiveType }): Observable {\n\t\treturn this.getContactsByType(keyword, [ContactRepType.RabbiCoordinator, ContactRepType.FieldRep], extraParams);\n\t}\n\n\taccountRepsAutocomplete(keyword: string, extraParams: { activeType?: ActiveType }): Observable {\n\t\tlet params = this.constructKeywordQueryParam(keyword, {});\n\t\tthis.urlHelper.addQueryParam(params, extraParams?.activeType, 'activeType', false);\n\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/contact/AccountRepresentativeAutocomplete`,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tgetRCAutocomplete(keyword: string, extraParams: { activeType?: ActiveType }): Observable {\n\t\tlet params = this.constructKeywordQueryParam(keyword, {});\n\t\tthis.urlHelper.addQueryParam(params, extraParams?.activeType, 'activeType', false);\n\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/contact/rabbicoordinatorautocomplete`,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tvisitContactsAutocomplete(\n\t\tkeyword: string,\n\t\textraParams: { facilityId?: number; activeType?: ActiveType; entityType?: EntityType }\n\t): Observable {\n\t\tlet params = this.constructKeywordQueryParam(keyword, {});\n\t\tthis.urlHelper.addQueryParam(params, extraParams?.facilityId, 'facilityId', false);\n\t\tthis.urlHelper.addQueryParam(params, extraParams?.activeType, 'activeType', false);\n\t\tthis.urlHelper.addQueryParam(params, extraParams?.entityType, 'entityType', false);\n\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/contact/visitcontactautocomplete`,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tcertificateGroupAutocomplete(keyword: string, extraParams: { businessEntityId?: number; activeType?: ActiveType }) {\n\t\tconst params = this.urlHelper.addQueryParam({}, extraParams?.businessEntityId, 'businessEntityId', false);\n\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/CertificateGroup/Find`,\n\t\t\t{ keyword, maxCount: 100, activeType: extraParams?.activeType },\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tautocompleteIdentityCode(keyword, businessEntityId = null) {\n\t\tconst params = this.urlHelper.addQueryParam({}, businessEntityId, 'businessEntityId', false);\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/CertificateGroup/IdentityCode/Find`,\n\t\t\t{ keyword, maxCount: 100 },\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tcompanyAutocomplete(\n\t\tkeyword: string,\n\t\textraParams = { isForBatch: null, activeType: null }\n\t): Observable {\n\t\tconst params = this.constructKeywordQueryParam(keyword, {});\n\t\tthis.urlHelper.addQueryParam(params, extraParams.isForBatch, 'isForBatch', false);\n\t\tthis.urlHelper.addQueryParam(params, extraParams.activeType, 'activeType', false);\n\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/be/company/findAutocomplete`, {\n\t\t\tparams,\n\t\t});\n\t}\n\n\tvisitFacilitiesAutocomplete(\n\t\tkeyword: string,\n\t\tcontainer: { fieldRepId?: number; contactRepType?: number; facilityId?: number; activeType?: ActiveType }\n\t): Observable {\n\t\tif (!container.facilityId) {\n\t\t\tif (!container.fieldRepId && !container.contactRepType) {\n\t\t\t\treturn of([]);\n\t\t\t}\n\n\t\t\tlet params = this.constructKeywordQueryParam(keyword, {});\n\t\t\tthis.urlHelper.addQueryParam(params, container.fieldRepId, 'fieldRepId');\n\t\t\tthis.urlHelper.addQueryParam(params, container.contactRepType, 'contactRepType');\n\t\t\tthis.urlHelper.addQueryParam(params, container.activeType, 'activeType');\n\n\t\t\treturn this.http.get(\n\t\t\t\t`${this.appConfigurationService.api.service}/facility/loadByFieldRepAutocomplete`,\n\t\t\t\t{ params }\n\t\t\t);\n\t\t} else {\n\t\t\tlet params = this.constructKeywordQueryParam(container.facilityId.toString(), {});\n\t\t\tthis.urlHelper.addQueryParam(params, container.activeType, 'activeType');\n\n\t\t\treturn this.http.get(\n\t\t\t\t`${this.appConfigurationService.api.service}/Facility/loadAutocomplete`,\n\t\t\t\t{ params }\n\t\t\t);\n\t\t}\n\t}\n\n\tfacilitiesByFieldRepAutocomplete(\n\t\tkeyword: string,\n\t\tfieldRepId: number,\n\t\tcontactRepType: any\n\t): Observable {\n\t\tlet params = this.constructKeywordQueryParam(keyword, {});\n\t\tparams = this.urlHelper.addQueryParam(params, fieldRepId, 'fieldRepId');\n\t\tparams = this.urlHelper.addQueryParam(params, contactRepType, 'contactRepType');\n\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/facility/loadByFieldRepAutocomplete`,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tukdAutocomplete(keyword: string, params: any): Observable {\n\t\tparams = { ...params, ...this.constructKeywordQueryParam(keyword, {}) };\n\n\t\treturn this.http.post(`${this.appConfigurationService.api.product}/Ukd/autocomplete`, null, {\n\t\t\tparams,\n\t\t});\n\t}\n\n\tukdSearch(keyword: string): Observable {\n\t\tconst params = this.constructKeywordQueryParam(keyword, {}, 'ukd');\n\t\tconst arr = [];\n\t\treturn new Observable(observer => {\n\t\t\tthis.http\n\t\t\t\t.get(`${this.appConfigurationService.api.product}/Ukd/Load`, { params })\n\t\t\t\t.subscribe(res => {\n\t\t\t\t\tif (res) arr.push(res);\n\t\t\t\t\tobserver.next(arr);\n\t\t\t\t});\n\t\t});\n\t}\n\n\tcompaniesByFieldRepAutocomplete(\n\t\tkeyword: string,\n\t\tfieldRepId: number,\n\t\tfacilityId: number,\n\t\tcontactRepType: number,\n\t\tactiveType: ActiveType\n\t): Observable {\n\t\tlet params = this.constructKeywordQueryParam(keyword, {});\n\t\tparams = this.urlHelper.addQueryParam(params, fieldRepId, 'fieldRepId');\n\t\tparams = this.urlHelper.addQueryParam(params, facilityId, 'facilityId');\n\t\tparams = this.urlHelper.addQueryParam(params, contactRepType, 'contactRepType');\n\t\tparams = this.urlHelper.addQueryParam(params, activeType, 'activeType');\n\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/be/company/loadByFieldRepAutocomplete`,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tcompaniesByFieldRepHistoryBasedAutocomplete(\n\t\tkeyword: string,\n\t\tfieldRepId: number,\n\t\tfacilityId: number,\n\t\tcontactRepType: number,\n\t\tactiveType: ActiveType,\n\t\tvisitStartDate: string\n\t): Observable {\n\t\tlet params = this.constructKeywordQueryParam(keyword, {});\n\t\tparams = this.urlHelper.addQueryParam(params, fieldRepId, 'fieldRepId');\n\t\tparams = this.urlHelper.addQueryParam(params, facilityId, 'facilityId');\n\t\tparams = this.urlHelper.addQueryParam(params, contactRepType, 'contactRepType');\n\t\tparams = this.urlHelper.addQueryParam(params, activeType, 'activeType');\n\t\tparams = this.urlHelper.addQueryParam(params, visitStartDate, 'historyDatetime');\n\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/be/company/LoadByFieldRepHistoryBasedAutocomplete`,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tprivate getContactsByType(keyword: string, types: ContactRepType[], extraParams: { activeType?: ActiveType }) {\n\t\tconst params = this.constructKeywordQueryParam(keyword, {});\n\t\tthis.urlHelper.addQueryParam(params, extraParams?.activeType, 'activeType', false);\n\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/contact/byTypeAutocomplete`,\n\t\t\ttypes,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tprivate constructKeywordQueryParam(keyword: string, params: { [id: string]: string | number }, key = 'keyword') {\n\t\tparams[key] = keyword;\n\t\tif (keyword && !Number.isNaN(+keyword)) {\n\t\t\tparams['filterType'] = FindFilterType.IdEquals;\n\t\t}\n\t\treturn params;\n\t}\n\n\tprivate valueOrDefault(value: any, defaultValue: any) {\n\t\tif (value !== null) {\n\t\t\treturn value;\n\t\t}\n\t\treturn defaultValue;\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { IDataService } from '../interfaces/i-data-service.interface';\nimport { SearchPaging } from '../models/general/search-paging.model';\nimport { GridType } from '../enums/grid-type.enum';\nimport { Observable } from 'rxjs';\nimport { BatchIngredientSummary } from '../models/ingredients/batch-ingredients-summary.model';\nimport { BatchIngredientItem } from '../models/ingredients/batch-ingredient.model';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport { PackageValidation } from '../models/package-validation.model';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class BatchIngredientService implements IDataService {\n\tconstructor(private http: HttpClient, private appConfigurationService: AppConfigurationService) {}\n\n\tsearch(request: SearchPaging, filters: any, gridType: GridType) {\n\t\tconst requestModel = {\n\t\t\tmodel: request,\n\t\t\tcriteria: {\n\t\t\t\tkeyword: filters.keyword,\n\t\t\t\tfilterDropdown: filters.filterDropdown,\n\t\t\t},\n\t\t\ttemplate: gridType,\n\t\t};\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/IngredientBatches/Items/Search`,\n\t\t\trequestModel\n\t\t);\n\t}\n\n\texportSearch(request: SearchPaging, filters: any, gridType: GridType) {}\n\n\teditMultiple(data: { ingredientBatchItemIds: number[]; ingredientApprovalId: number; evaluatedById: number }) {\n\t\treturn this.http.post(`${this.appConfigurationService.api.product}/IngredientBatches/Items/SaveMultiple`, data);\n\t}\n\n\tgetBatchIngredientsSummary(batchIngredientId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/Summary/batchIngredient?id=${batchIngredientId}`\n\t\t);\n\t}\n\n\tloadBatchIngredients(batchIngredientIds: number[]): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/IngredientBatches/items/load`,\n\t\t\tbatchIngredientIds\n\t\t);\n\t}\n\n\tload(id) {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/IngredientBatch/item/${id}/load`\n\t\t);\n\t}\n\n\tloadMultiple(ids: number[]): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/IngredientBatch/item/loadByIds`,\n\t\t\tids\n\t\t);\n\t}\n\n\tsaveBatchItem(\n\t\tbatchId: number,\n\t\titem: BatchIngredientItem,\n\t\tkeepFacilitiesTheSame?: boolean\n\t): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/IngredientBatch/item/save?keepFacilitiesTheSame=${keepFacilitiesTheSame}`,\n\t\t\t{\n\t\t\t\tbatchId,\n\t\t\t\titem,\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveBatchItems(\n\t\tbatchId: number,\n\t\titems: BatchIngredientItem[],\n\t\tkeepFacilitiesTheSame: boolean\n\t): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/IngredientBatch/items/save?batchId=${batchId}&keepFacilitiesTheSame=${keepFacilitiesTheSame}`,\n\t\t\titems\n\t\t);\n\t}\n\n\tremoveItems(batchHeaderId: number, ingredientBatchItemIds: number[]) {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/IngredientBatches/Items/Delete?batchHeaderId=${batchHeaderId}`,\n\t\t\tingredientBatchItemIds\n\t\t);\n\t}\n\n\tbatchIngredientItemLoad(ingredientBatchItemId: number) {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/IngredientBatches/IngredientItem/Load?ingredientBatchItemId=${ingredientBatchItemId}`,\n\t\t\t{}\n\t\t);\n\t}\n\n\tbatchIngredientItemsLoad(ingredientBatchItemsIds: number[]) {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/IngredientBatches/IngredientItems/Load?ingredientBatchItemIds=${ingredientBatchItemsIds}`,\n\t\t\t{}\n\t\t);\n\t}\n\n\tsendForReview(batchHeaderId: number): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/IngredientBatches/review/sendForReview`,\n\t\t\tbatchHeaderId\n\t\t);\n\t}\n\n\tvalidatePackaging(packageValidation: PackageValidation): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/IngredientBatches/packagingType/validate`,\n\t\t\tpackageValidation\n\t\t);\n\t}\n\n\tvalidateGroupAndPackaging(packageValidation: PackageValidation): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/IngredientBatches/packagingType/validateEvaluationGroup`,\n\t\t\tpackageValidation\n\t\t);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AccordionIdentifier } from '../../enums/accordion-identifier.enum';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class AccordionCommunicationService {\n\ttoggleAccordion$: Subject = new Subject();\n\n\ttoggleAccordion(id: AccordionIdentifier) {\n\t\tsetTimeout(() => {\n\t\t\tthis.toggleAccordion$.next(id);\n\t\t});\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { forkJoin, Observable, ReplaySubject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { UserSettingsService } from 'src/app/modules/user-settings/shared/services/user-settings/user-settings.service';\nimport { PermissionModule, RightType } from '../../enums/permission-module.enum';\nimport { TabsType } from '../../enums/tabs-type.enum';\nimport { CustomRouteData } from '../../interfaces/custom-routes.interface';\nimport { AdvancedPermission, Permission, Right } from '../../models/permission.model';\nimport { LocalStorageService } from '../helpers/local-storage.service';\nimport { TabsService } from '../tabs.service';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class PermissionService {\n\tpermissionsLoaded$: ReplaySubject = new ReplaySubject();\n\n\tcurrentRouteData: CustomRouteData;\n\n\tprivate permissions: Permission[] = [];\n\tprivate advancedPermissions: AdvancedPermission[] = [];\n\tprivate userPermissionPolling: NodeJS.Timeout;\n\n\t// Polling interval in seconds\n\tprivate pollingInterval = 60;\n\n\tcanDeletePermission: { [id: number]: boolean } = {};\n\tcanUpdatePermission: { [id: number]: boolean } = {};\n\tcanCreatePermission: { [id: number]: boolean } = {};\n\thasAdvancedPermission: { [id: number]: boolean } = {};\n\n\tconstructor(\n\t\tprivate userSettingsService: UserSettingsService,\n\t\tprivate localStorageService: LocalStorageService,\n\t\tprivate router: Router,\n\t\tprivate tabsService: TabsService\n\t) {}\n\n\t//#region Permission methods\n\tcanView(permissionIds: number[], isModule = false): boolean {\n\t\tif (permissionIds?.length > 0) {\n\t\t\tconst subModules = [];\n\t\t\tpermissionIds.forEach(id => {\n\t\t\t\tconst item = this.getPermissionItem(id, isModule);\n\t\t\t\tsubModules.push(item);\n\t\t\t});\n\t\t\tconst rightValues = [];\n\t\t\tsubModules.forEach(subModule => {\n\t\t\t\trightValues.push(this.getRightValue(subModule, RightType.View));\n\t\t\t});\n\t\t\treturn rightValues.some(value => value === true);\n\t\t}\n\t\treturn true;\n\t}\n\n\tget canCreate(): boolean {\n\t\tconst currentPermission = this?.currentRouteData.permissionId;\n\t\treturn this?.canCreatePermission[currentPermission];\n\t}\n\n\tget canUpdate(): boolean {\n\t\tconst currentPermission = this.currentRouteData.permissionId;\n\t\treturn this.canUpdatePermission[currentPermission];\n\t}\n\n\tget canDelete(): boolean {\n\t\tconst currentPermission = this.currentRouteData.permissionId;\n\t\treturn this.canDeletePermission[currentPermission];\n\t}\n\n\tcanExport(permissionId: number, isModule = false): boolean {\n\t\tconst permissionItem = this.getPermissionItem(permissionId, isModule);\n\t\treturn this.getRightValue(permissionItem, RightType.Export);\n\t}\n\n\tcanActivate(permissionId: number, isModule = false): boolean {\n\t\tconst permissionItem = this.getPermissionItem(permissionId, isModule);\n\t\treturn this.getRightValue(permissionItem, RightType.Activate);\n\t}\n\t//#endregion\n\n\t//#region Data Management methods\n\tgetCurrentUserData() {\n\t\tconst permissions = this.localStorageService.userPermissions;\n\t\tif (permissions) {\n\t\t\tthis.permissions = permissions;\n\t\t}\n\n\t\tconst advancedPermissions = this.localStorageService.userAdvancedPermissions;\n\t\tif (advancedPermissions) {\n\t\t\tthis.advancedPermissions = advancedPermissions;\n\t\t}\n\n\t\tthis.loadPermissions();\n\t}\n\n\tstartPermissionPolling() {\n\t\tthis.stopPermissionPolling();\n\t\tthis.userPermissionPolling = setInterval(() => {\n\t\t\tif (!this.localStorageService.idle) {\n\t\t\t\tthis.getCurrentUserData();\n\t\t\t}\n\t\t}, this.pollingInterval * 1000);\n\t}\n\n\tstopPermissionPolling() {\n\t\tif (this.userPermissionPolling) {\n\t\t\tclearInterval(this.userPermissionPolling);\n\t\t}\n\t}\n\n\tsetPermissions(permissions: Permission[]) {\n\t\tthis.permissions = permissions;\n\t}\n\t//#endregion\n\n\t//#region Helper methods\n\tisAnyTabViewable(type: TabsType): boolean {\n\t\tconst tabs = this.tabsService.getTabs(type);\n\t\tif (tabs.length > 0) {\n\t\t\treturn tabs.some(tab => this.canView([tab.permissionId], tab.isModule));\n\t\t}\n\t\treturn false;\n\t}\n\n\tcheckCurrentRoutePermission() {\n\t\tif (this.currentRouteData) {\n\t\t\tswitch (false) {\n\t\t\t\tcase this.canView([this.currentRouteData?.permissionId], this.currentRouteData?.isModule):\n\t\t\t\t\tthis.router.navigate(['/forbidden']);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tcheckPermissions(): void {\n\t\tthis.permissions.forEach(p => {\n\t\t\tthis.setPermissionsDictionary(p);\n\n\t\t\tp.items.forEach(i => {\n\t\t\t\tthis.setPermissionsDictionary(i);\n\t\t\t});\n\t\t});\n\n\t\tthis.advancedPermissions.forEach(permission => {\n\t\t\tthis.hasAdvancedPermission[permission.advancedPermissionId] = permission.value;\n\t\t});\n\t}\n\n\t//#endregion\n\n\t//#region Private Methods\n\n\tprivate setPermissionsDictionary(permission: Permission) {\n\t\tthis.canDeletePermission[permission.permissionEntity.id] = this.getRightByType(\n\t\t\tpermission.rights,\n\t\t\tRightType.Delete\n\t\t).value;\n\n\t\tthis.canUpdatePermission[permission.permissionEntity.id] = this.getRightByType(\n\t\t\tpermission.rights,\n\t\t\tRightType.Update\n\t\t).value;\n\n\t\tthis.canCreatePermission[permission.permissionEntity.id] = this.getRightByType(\n\t\t\tpermission.rights,\n\t\t\tRightType.Create\n\t\t).value;\n\t}\n\n\tprivate loadPermissions() {\n\t\tconst userId = this.localStorageService.userId;\n\t\tif (userId) {\n\t\t\tconst permissionsObservables = [this.loadGeneralPermissions(userId), this.loadAdvancedPermissions(userId)];\n\t\t\tforkJoin(permissionsObservables).subscribe(() => {\n\t\t\t\tthis.checkCurrentRoutePermission();\n\t\t\t\tthis.checkPermissions();\n\t\t\t\tthis.permissionsLoaded$.next();\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate loadGeneralPermissions(userId: number): Observable {\n\t\treturn this.userSettingsService.getUserPermissions(userId).pipe(\n\t\t\ttap(permissions => {\n\t\t\t\tif (permissions) {\n\t\t\t\t\tthis.permissions = permissions;\n\t\t\t\t\tthis.localStorageService.userPermissions = this.permissions;\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate loadAdvancedPermissions(userId: number): Observable {\n\t\treturn this.userSettingsService.getUserAdvancedPermissions(userId).pipe(\n\t\t\ttap(advancedPermissions => {\n\t\t\t\tif (advancedPermissions) {\n\t\t\t\t\tthis.advancedPermissions = advancedPermissions;\n\t\t\t\t\tthis.localStorageService.userAdvancedPermissions = this.advancedPermissions;\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate getRightValue(permission: Permission, rightType: RightType): boolean {\n\t\tif (permission) {\n\t\t\tconst right = this.getRightByType(permission.rights, rightType);\n\t\t\tif (right) {\n\t\t\t\treturn right.value;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn true;\n\t}\n\n\tprivate getPermissionItem(permissionId: number, isModule = false): Permission {\n\t\tif (isModule) {\n\t\t\treturn this.getModule(permissionId);\n\t\t} else {\n\t\t\treturn this.getModulePermission(permissionId);\n\t\t}\n\t}\n\n\tprivate getModule(moduleId: PermissionModule): Permission {\n\t\tconst module = this.permissions.find(p => p.permissionEntity.id === moduleId);\n\t\treturn module;\n\t}\n\n\tprivate getModulePermission(permissionId: number): Permission {\n\t\tconst module = this.permissions.find(p => p.items.some(i => i.permissionEntity.id === permissionId));\n\t\treturn module?.items?.find(i => i.permissionEntity.id === permissionId);\n\t}\n\n\tprivate getRightByType(rights: Right[], type: RightType): Right {\n\t\treturn rights.find(r => r.permissionRightId === type);\n\t}\n\t//#endregion\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport { Observable, of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ConfigurationService {\n\tcacheMap = new Map();\n\n\tconstructor(private http: HttpClient, private appConfigurationService: AppConfigurationService) {}\n\n\tgetHebrewDate(date: Date | string) {\n\t\tconst entry = this.cacheMap.get(date);\n\t\tif (!entry) {\n\t\t\treturn this.http.get(`${this.appConfigurationService.api.service}/configuration/hebrew?date=${date}`).pipe(\n\t\t\t\ttap(data => {\n\t\t\t\t\tthis.cacheMap.set(date, data);\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\treturn of(entry);\n\t}\n\n\tgetServerUtcDate(): Observable<{ utcDate: string }> {\n\t\treturn this.http.get<{ utcDate: string }>(\n\t\t\t`${this.appConfigurationService.api.service}/configuration/currentUtcDate`\n\t\t);\n\t}\n\n\tgetEnvironment(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/configuration/environment`);\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GridType } from 'src/app/core/enums/grid-type.enum';\nimport { IDataService } from 'src/app/core/interfaces/i-data-service.interface';\nimport {\n\tContact,\n\tContactFlat,\n\tContactInfo,\n\tContactPerson,\n\tContactSummary,\n\tContactSummaryDto,\n} from 'src/app/core/models/contact.model';\nimport { SearchPaging } from 'src/app/core/models/general/search-paging.model';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport { ActiveType } from '../enums/active-type.enum';\nimport { Address } from '../models/address.model';\nimport { BaseModel } from '../models/base.model';\nimport { ContactAction } from '../enums/contat-actions.enum';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ContactService implements IDataService {\n\tconstructor(private http: HttpClient, private appConfigurationService: AppConfigurationService) {}\n\n\tsearch(request: SearchPaging, filter: any, gridType: GridType) {\n\t\tconst requestModel = {\n\t\t\tmodel: request,\n\t\t\tcriteria: {\n\t\t\t\tkeyword: filter.keyword,\n\t\t\t\tfilterDropdown: filter.filterDropdown,\n\t\t\t\tcontacts: filter.contacts,\n\t\t\t\tfilterType: filter.filterType,\n\t\t\t},\n\t\t\ttemplate: gridType,\n\t\t};\n\n\t\treturn this.http.post(`${this.appConfigurationService.api.service}/contact/search`, requestModel);\n\t}\n\n\tget(id): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/contact/load`, { params: { id } });\n\t}\n\n\tgetFlat(id, businessEntityId = null): Observable {\n\t\tif (businessEntityId) {\n\t\t\treturn this.http.get(`${this.appConfigurationService.api.service}/contact/load/flat`, {\n\t\t\t\tparams: { id, businessEntityId },\n\t\t\t});\n\t\t} else {\n\t\t\treturn this.http.get(`${this.appConfigurationService.api.service}/contact/load/flat`, {\n\t\t\t\tparams: { id },\n\t\t\t});\n\t\t}\n\t}\n\n\tsummary(id: number, activeType: ActiveType): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/Contact/${id}/Summary?activeType=${activeType}`\n\t\t);\n\t}\n\n\tcontactInfoSummary(id): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/summary/contact?id=${id}`);\n\t}\n\n\tcontactsListInfoSummary(contactIds): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/summary/contacts`,\n\t\t\tcontactIds\n\t\t);\n\t}\n\n\tsave(contact: Contact, validateAddress = false): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/contact/save?validateAddress=${validateAddress}`,\n\t\t\tcontact\n\t\t);\n\t}\n\n\tactivateInactivateContact(contactId: number, contactAction: ContactAction): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/contact/activating_inactivating?contactId=${contactId}&contactAction=${contactAction}`,\n\t\t\t{}\n\t\t);\n\t}\n\n\tinfoSummary(id): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/be/BussinessEntity/${id}/ContactSummary`\n\t\t);\n\t}\n\n\texportSearch(request: SearchPaging, filters: any, gridType: GridType) {\n\t\tconst requestModel = {\n\t\t\tmodel: request,\n\t\t\tcriteria: {\n\t\t\t\tkeyword: filters.keyword,\n\t\t\t\tfilterDropdown: filters.filterDropdown,\n\t\t\t},\n\t\t\ttemplate: gridType,\n\t\t};\n\n\t\treturn this.http.post(`${this.appConfigurationService.api.service}/contact/export`, requestModel);\n\t}\n\n\tgetContactName(id): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/contact/load/flat`, {\n\t\t\tparams: { id },\n\t\t});\n\t}\n\n\tgetContactsByEmailAddress(email: string): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/Contact/Load/FlatByEmailAddress?emailAddress=${email}`\n\t\t);\n\t}\n\n\tgetInternalContacts(useDefaultValue = false): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/contact/loadinternal?useDefaultValue=${useDefaultValue}`\n\t\t);\n\t}\n\n\tgetAddresses(ids: number[]) {\n\t\treturn this.http.post(`${this.appConfigurationService.api.service}/contact/Address/Load`, ids);\n\t}\n\n\tloadUserContacts(userId: number) {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/contact/loadUsersContacts`,\n\t\t\t[userId]\n\t\t);\n\t}\n\n\thasRabbinicalAssignments(contactId): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/contact/has-rabbinical-assignments`,\n\t\t\t{ params: { contactId } }\n\t\t);\n\t}\n\n\thasAccountRepAssignments(contactId): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/contact/has-account-rep-assignments`,\n\t\t\t{ params: { contactId } }\n\t\t);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { PageTitle } from '../models/general/page-title.model';\n\n@Injectable()\nexport class Global {\n\tentityName: string = '';\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ByteArrayHelperService {\n\tconstructor() {}\n\n\tbase64ToArrayBuffer(base64) {\n\t\tconst binaryString = window.atob(base64);\n\t\tconst binaryLen = binaryString.length;\n\t\tconst bytes = new Uint8Array(binaryLen);\n\t\tfor (let i = 0; i < binaryLen; i++) {\n\t\t\tconst ascii = binaryString.charCodeAt(i);\n\t\t\tbytes[i] = ascii;\n\t\t}\n\t\treturn bytes;\n\t}\n\n\tsaveByteArray(fileName, byte, mimeType, url?: boolean) {\n\t\tconst blob = new Blob([byte], { type: mimeType });\n\t\tconst link = document.createElement('a');\n\t\tlink.href = window.URL.createObjectURL(blob);\n\t\tlink.download = fileName;\n\t\tif (url) {\n\t\t\treturn link.href;\n\t\t} else {\n\t\t\tlink.click();\n\t\t}\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport * as moment from 'moment';\nimport { IntervalType } from '../../enums/interval-type.enum';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class DateTimeService {\n\tconstructor() {}\n\n\t/**\n\t * Transform from format \"hhmm\" 24-hour to date.\n\t *\n\t * E.g 1345 => new Date() with 13 hours and 45 minutes\n\t *\n\t * @param time: max 4 numbers with format \"hhmm\" (E.g 1 => 00:01, 12 => 00:12, 123 => 01:23, 1234 => 12:34)\n\t */\n\tpublic getFormattedTime(time: number) {\n\t\tif (time) {\n\t\t\tconst formattedTime = time.toLocaleString('en-us', { minimumIntegerDigits: 4, useGrouping: false });\n\t\t\tconst date = new Date();\n\t\t\tdate.setHours(+formattedTime.substring(0, 2), +formattedTime.substring(2, 4), 0, 0);\n\t\t\treturn date;\n\t\t} else {\n\t\t\treturn new Date();\n\t\t}\n\t}\n\n\tpublic getFormattedTimeForHTML(time: number) {\n\t\tif (time) {\n\t\t\tconst formattedTime = time.toLocaleString('en-us', { minimumIntegerDigits: 4, useGrouping: false });\n\t\t\treturn `${+formattedTime.substring(0, 2)}:${formattedTime.substring(2, 4)}`;\n\t\t} else {\n\t\t\treturn '-';\n\t\t}\n\t}\n\n\tpublic formattedElapsedDate(date) {\n\t\tif (date) {\n\t\t\tconst formatElapsedTime = moment.duration(date, 's');\n\t\t\tlet elapsedTime = [];\n\t\t\tif (formatElapsedTime.days() > 0) {\n\t\t\t\telapsedTime.push(formatElapsedTime.days() + 'd');\n\t\t\t}\n\t\t\tif (formatElapsedTime.hours() > 0) {\n\t\t\t\telapsedTime.push(' ' + formatElapsedTime.hours() + 'h');\n\t\t\t}\n\t\t\tif (formatElapsedTime.minutes() > 0) {\n\t\t\t\telapsedTime.push(' ' + formatElapsedTime.minutes() + 'm');\n\t\t\t}\n\t\t\tlet string = '';\n\t\t\telapsedTime.forEach(e => {\n\t\t\t\tstring += e;\n\t\t\t});\n\t\t\treturn string;\n\t\t}\n\t}\n\n\tpublic getIntervalDates(intervalType: IntervalType): Date[] {\n\t\tlet startDate: Date;\n\t\tlet endDate: Date;\n\t\tswitch (intervalType) {\n\t\t\tcase IntervalType.Today:\n\t\t\t\tstartDate = this.getDateWithoutTime(new Date());\n\t\t\t\tendDate = this.getDateWithoutTime(new Date());\n\t\t\t\tendDate.setDate(endDate.getDate() + 1);\n\t\t\t\tendDate.setHours(-1);\n\t\t\t\tbreak;\n\t\t\tcase IntervalType.Yesterday:\n\t\t\t\tstartDate = this.getDateWithoutTime(new Date());\n\t\t\t\tstartDate.setDate(startDate.getDate() - 1);\n\t\t\t\tendDate = this.getDateWithoutTime(new Date());\n\t\t\t\tendDate.setHours(-1);\n\t\t\t\tbreak;\n\t\t\tcase IntervalType.Last7Days:\n\t\t\t\tstartDate = this.getDateWithoutTime(new Date());\n\t\t\t\tstartDate.setDate(startDate.getDate() - 6);\n\t\t\t\tendDate = this.getDateWithoutTime(new Date());\n\t\t\t\tendDate.setDate(endDate.getDate() + 1);\n\t\t\t\tendDate.setHours(-1);\n\t\t\t\tbreak;\n\t\t\tcase IntervalType.LastMonth:\n\t\t\t\tstartDate = this.getDateWithoutTime(new Date());\n\t\t\t\tstartDate.setDate(startDate.getDate() - 30);\n\t\t\t\tendDate = this.getDateWithoutTime(new Date());\n\t\t\t\tendDate.setDate(endDate.getDate() + 1);\n\t\t\t\tendDate.setHours(-1);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn [startDate, endDate];\n\t}\n\n\tprivate getDateWithoutTime(date: Date): Date {\n\t\tvar date = new Date(date.getTime());\n\t\tdate.setHours(0, 0, 0, 0);\n\t\treturn date;\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { appSpecialRoutes } from '../../constants/app-routes.const';\nimport { AppRouteIdentifier } from '../../enums/app-route-identifier.enum';\nimport { ApplicationStatus } from '../../enums/application-status.enum';\nimport { ApplicationType } from '../../enums/application-type.enum';\nimport { BusinessEntityLinkType } from '../../enums/business-entity-link-type.enum';\nimport { BusinessEntityType } from '../../enums/business-entity-type.enum';\nimport { EntityType } from '../../enums/entity-type.enum';\nimport { PermissionModule, ProductModuleTabs, RightType } from '../../enums/permission-module.enum';\nimport { TabsType } from '../../enums/tabs-type.enum';\nimport { TaskEntityTypeId } from '../../enums/task-entity-type.enum';\nimport { Tab } from '../../models/tab.model';\nimport { PermissionService } from '../communication/permission.service';\nimport { TabsService } from '../tabs.service';\nimport { UrlHelperService } from './url-helper.service';\nimport { VisitType } from '../../models/visit.model';\nimport { VisitEntityType } from '../../enums/visit-entity-type.enum';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class EntityUrlHelperService {\n\tconstructor(\n\t\tprivate permissionService: PermissionService,\n\t\tprivate tabsService: TabsService,\n\t\tprivate urlHelperService: UrlHelperService,\n\t\tprivate router: Router\n\t) {}\n\n\tgetEntityUrl(type: EntityType, id?: number | string, permissionId?: number): string | null {\n\t\tswitch (type) {\n\t\t\tcase EntityType.Company:\n\t\t\tcase EntityType.Manufacturer:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.CompanyInfo, id, permissionId);\n\t\t\tcase EntityType.Facility:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.FacilityInfo, id, permissionId);\n\t\t\tcase EntityType.PrivateLabeler:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.PrivateLabelerInfo, id, permissionId);\n\t\t\tcase EntityType.Vendor:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.VendorInfo, id, permissionId);\n\t\t\tcase EntityType.Agency:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.AgencyInfo, id, permissionId);\n\t\t\tcase EntityType.KosherCertificate:\n\t\t\t\treturn this.getRouteIfAllowed(\n\t\t\t\t\t'/certificates/submit-certificate/:id',\n\t\t\t\t\tPermissionModule.KosherCertificate,\n\t\t\t\t\ttrue,\n\t\t\t\t\tid\n\t\t\t\t);\n\t\t\tcase EntityType.CustomerIngredient:\n\t\t\tcase EntityType.IngredientInfo:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.CustomerIngredientInfo, id, permissionId);\n\t\t\tcase EntityType.BatchIngredient:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.IngredientBatchInfo, id, permissionId);\n\t\t\tcase EntityType.BatchIngredientItem:\n\t\t\t\treturn this.getIngredientBatchItemRoute(PermissionModule.IngredientBatch, id);\n\t\t\tcase EntityType.MasterIngredient:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.MasterIngredientInfo, id, permissionId);\n\t\t\tcase EntityType.Product:\n\t\t\tcase EntityType.ProductEvaluation:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.ProductInfo, id, permissionId);\n\t\t\tcase EntityType.ContactDetail:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.ContactInfo, id, permissionId);\n\t\t\tcase EntityType.Visit:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.VisitsInfo, id, permissionId);\n\t\t\tcase EntityType.Trip:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.TripsInfo, id, permissionId);\n\t\t\tcase EntityType.Amex:\n\t\t\t\treturn this.getRouteIfAllowed('amex/:id', PermissionModule.Amex, true, id);\n\t\t\tcase EntityType.Task:\n\t\t\t\treturn this.getRouteIfAllowed('tasks/:id', PermissionModule.Task, true, id);\n\t\t\tcase EntityType.BatchProductHeader:\n\t\t\t\tconst url = '/products/product-batch/item/:id/add';\n\t\t\t\treturn this.getRouteIfAllowed(url, PermissionModule.ProductBatch, true, id);\n\t\t\tcase EntityType.UKD:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.UkdSearchInfo, id, permissionId);\n\t\t\tcase EntityType.User:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.UserSettingsInfo, id, permissionId);\n\t\t\tcase EntityType.SecurityRole:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.RoleSettingsInfo, id, permissionId);\n\t\t\tcase EntityType.CodeChangeUtility:\n\t\t\t\tconst codeChangeUtilityUrl = '/ingredients/code-change-utility/:id';\n\t\t\t\treturn this.getRouteIfAllowed(codeChangeUtilityUrl, PermissionModule.CodeChangeUtility, false, id);\n\t\t\tcase EntityType.NotificationWhitelist:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.ContactInfo, id, permissionId);\n\t\t\tcase EntityType.InvoicingGroup:\n\t\t\t\treturn this.getRouteIfAllowed('/companies/:id/invoicing-group', PermissionModule.Company, true, id);\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\tgetBusinessEntityUrl(type: BusinessEntityType, id?: number): string | null {\n\t\tswitch (type) {\n\t\t\tcase BusinessEntityType.Company:\n\t\t\tcase BusinessEntityType.Manufacturer:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.CompanyInfo, id);\n\t\t\tcase BusinessEntityType.Facility:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.FacilityInfo, id);\n\t\t\tcase BusinessEntityType.PrivateLabeler:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.PrivateLabelerInfo, id);\n\t\t\tcase BusinessEntityType.Vendor:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.VendorInfo, id);\n\t\t\tcase BusinessEntityType.Agency:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.AgencyInfo, id);\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\tgetBusinessentityLinkUrl(type: BusinessEntityLinkType, id?: number): string | null {\n\t\tswitch (type) {\n\t\t\tcase BusinessEntityLinkType.Company:\n\t\t\tcase BusinessEntityLinkType.Manufacturer:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.CompanyInfo, id);\n\t\t\tcase BusinessEntityLinkType.Facility:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.FacilityInfo, id);\n\t\t\tcase BusinessEntityLinkType.PrivateLabeler:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.PrivateLabelerInfo, id);\n\t\t\tcase BusinessEntityLinkType.Vendor:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.VendorInfo, id);\n\t\t\tcase BusinessEntityLinkType.Agency:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.AgencyInfo, id);\n\t\t\tcase BusinessEntityLinkType.Contact:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.ContactInfo, id);\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\tgetApplicationUrlByType(type: ApplicationType, id?: number): string | null {\n\t\tswitch (type) {\n\t\t\tcase ApplicationType.Company:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.CompanyApplicationInfo, id);\n\t\t\tcase ApplicationType.Facility:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.FacilityApplicationInfo, id);\n\t\t\tcase ApplicationType.PrivateLabel:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.PrivateLabelerApplicationInfo, id);\n\t\t\tcase ApplicationType.Restaurant:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.RestaurantApplicationInfo, id);\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\tgetApplicationUrlByTypeAndStatus(id: number, status: ApplicationStatus, type: ApplicationType) {\n\t\tif (status === ApplicationStatus.Prospect) {\n\t\t\tif (this.permissionService.canView([PermissionModule.Application], true)) {\n\t\t\t\treturn `/applications/merge/${id}/${type}`;\n\t\t\t}\n\t\t\treturn null;\n\t\t} else {\n\t\t\treturn this.getApplicationUrlByType(type, id);\n\t\t}\n\t}\n\n\tgetTaskEntityUrl(\n\t\ttaskEntityTypeId: TaskEntityTypeId,\n\t\tid: number,\n\t\tapplicationTypeId?: ApplicationType,\n\t\tapplicationStatusId?: ApplicationStatus\n\t): string | null {\n\t\tswitch (taskEntityTypeId) {\n\t\t\tcase TaskEntityTypeId.Visit:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.VisitsInfo, id);\n\t\t\tcase TaskEntityTypeId.Trip:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.TripsInfo, id);\n\t\t\tcase TaskEntityTypeId.Product:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.ProductInfo, id);\n\t\t\tcase TaskEntityTypeId.ProductBatch:\n\t\t\t\tconst url = '/products/product-batch/item/:id/add';\n\t\t\t\treturn this.getRouteIfAllowed(url, PermissionModule.ProductBatch, true, id);\n\t\t\tcase TaskEntityTypeId.CustomerIngredient:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.CustomerIngredientInfo, id);\n\t\t\tcase TaskEntityTypeId.BatchIngredient:\n\t\t\t\treturn `/ingredients/ingredient-batch/${id}`;\n\t\t\tcase TaskEntityTypeId.MasterIngredient:\n\t\t\t\treturn `/master-ingredient/${id}`;\n\t\t\tcase TaskEntityTypeId.ContactDetail:\n\t\t\tcase TaskEntityTypeId.Person:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.ContactInfo, id);\n\t\t\tcase TaskEntityTypeId.Application:\n\t\t\t\treturn this.getApplicationUrlByTypeAndStatus(id, applicationStatusId, applicationTypeId);\n\t\t\tcase TaskEntityTypeId.KosherEvaluation:\n\t\t\t\treturn this.getRouteIfAllowed('products/:id/evaluations', ProductModuleTabs.Evaluations, false, id);\n\t\t\tcase TaskEntityTypeId.Task:\n\t\t\tcase TaskEntityTypeId.SubTask:\n\t\t\t\treturn this.getEntityUrlByTabType(TabsType.TaskInfo, id);\n\t\t}\n\t}\n\n\tgetEntityUrlByTabType(type: TabsType, entityId?: number | string, permissionId?: number): string | null {\n\t\tif (this.permissionService.isAnyTabViewable(type)) {\n\t\t\tconst tabs = this.tabsService.getTabs(type, entityId);\n\t\t\tlet viewableTab: Tab;\n\t\t\tif (permissionId) {\n\t\t\t\tviewableTab = tabs.find(\n\t\t\t\t\ttab =>\n\t\t\t\t\t\tpermissionId === tab.permissionId &&\n\t\t\t\t\t\tthis.permissionService.canView([tab.permissionId], tab.isModule)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tviewableTab = tabs.find(tab => this.permissionService.canView([tab.permissionId], tab.isModule));\n\t\t\t}\n\t\t\tif (entityId) {\n\t\t\t\treturn this.urlHelperService.replaceIdInUrl(viewableTab.path, entityId);\n\t\t\t} else {\n\t\t\t\treturn viewableTab.path;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tgetEntityActivateUrl(type: EntityType, id?: number) {\n\t\tswitch (type) {\n\t\t\tcase EntityType.Company:\n\t\t\t\treturn `/companies/${id}/activate`;\n\t\t\tcase EntityType.Facility:\n\t\t\t\treturn `/facilities/${id}/activate`;\n\t\t\tcase EntityType.PrivateLabeler:\n\t\t\t\treturn `/private-label/${id}/activate`;\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\tgetEntityInactivateUrl(type: EntityType, id?: number, visitType: VisitEntityType = VisitEntityType.Visit) {\n\t\tswitch (type) {\n\t\t\tcase EntityType.Company:\n\t\t\t\treturn `/companies/${id}/inactivate`;\n\t\t\tcase EntityType.Facility:\n\t\t\t\treturn `/facilities/${id}/inactivate`;\n\t\t\tcase EntityType.PrivateLabeler:\n\t\t\t\treturn `/private-label/${id}/inactivate`;\n\t\t\tcase EntityType.Visit:\n\t\t\t\tif (visitType == VisitEntityType.Trip) {\n\t\t\t\t\treturn `/trips/${id}/inactivate`;\n\t\t\t\t}\n\t\t\t\treturn `/visits/${id}/inactivate`;\n\t\t\tcase EntityType.Trip:\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\tgetByIdentifier(routeId: AppRouteIdentifier, entityId?: number) {\n\t\tconst found = appSpecialRoutes[routeId];\n\t\tlet url = null;\n\t\tswitch (found.permissionType) {\n\t\t\tcase RightType.View:\n\t\t\t\turl = this.getRouteIfAllowed(found.path, found.permissionId, found.isModule, entityId);\n\t\t\t\tbreak;\n\t\t\tcase RightType.Update:\n\t\t\t\tconst canUpdate = this.permissionService.canUpdatePermission[found.permissionId];\n\t\t\t\tif (canUpdate) {\n\t\t\t\t\turl = this.getRouteIfAllowed(found.path, found.permissionId, found.isModule, entityId);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase RightType.Create:\n\t\t\t\tconst canCreate = this.permissionService.canCreatePermission[found.permissionId];\n\t\t\t\tif (canCreate) {\n\t\t\t\t\turl = this.getRouteIfAllowed(found.path, found.permissionId, found.isModule, entityId);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t\treturn url;\n\t}\n\n\tnavigateByIdentifier(routeId: AppRouteIdentifier, returnUrl = false, entityId?: number) {\n\t\tconst found = appSpecialRoutes[routeId];\n\t\tif (found) {\n\t\t\tlet url = null;\n\t\t\tswitch (found.permissionType) {\n\t\t\t\tcase RightType.View:\n\t\t\t\t\turl = this.getRouteIfAllowed(found.path, found.permissionId, found.isModule, entityId);\n\t\t\t\t\tbreak;\n\t\t\t\tcase RightType.Update:\n\t\t\t\t\tconst canUpdate = this.permissionService.canUpdatePermission[found.permissionId];\n\t\t\t\t\tif (canUpdate) {\n\t\t\t\t\t\turl = this.getRouteIfAllowed(found.path, found.permissionId, found.isModule, entityId);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase RightType.Create:\n\t\t\t\t\tconst canCreate = this.permissionService.canCreatePermission[found.permissionId];\n\t\t\t\t\tif (canCreate) {\n\t\t\t\t\t\turl = this.getRouteIfAllowed(found.path, found.permissionId, found.isModule, entityId);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (url) {\n\t\t\t\tthis.router.navigate([url]);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate getRouteIfAllowed(\n\t\troute: string,\n\t\tpermissionId: number,\n\t\tisModule: boolean,\n\t\tid?: number | string\n\t): string | null {\n\t\tconst canView = this.permissionService.canView([permissionId], isModule);\n\t\tif (canView) {\n\t\t\tif (id) {\n\t\t\t\treturn this.urlHelperService.replaceIdInUrl(route, id);\n\t\t\t}\n\t\t\treturn route;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate getIngredientBatchItemRoute(permissionId: number, id?: number | string): string | null {\n\t\tconst canView = this.permissionService.canView([permissionId], true);\n\t\tif (canView) {\n\t\t\treturn this.router.url + '/' + id;\n\t\t}\n\t\treturn null;\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { LocalStorageKeys } from '../../enums/local-storage-keys.enum';\nimport { SelectedRenewalCompany } from '../../interfaces/selected-renewal-company-list.interface';\nimport { LoginResponse } from '../../models/auth/login.response';\nimport ls from 'localstorage-slim';\nimport { AdvancedPermission, Permission } from '../../models/permission.model';\nimport { UserInfo } from '../../models/auth/user.model';\nimport { AccordionIdentifier } from '../../enums/accordion-identifier.enum';\nimport { ProductReviewIdPair } from '../../models/products/product-review-id-pair.model';\nimport { GlobalFilterData } from '../../models/general/search-paging.model';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class LocalStorageService {\n\tconstructor() {}\n\n\tset magicReviewPageIds(ids: number[]) {\n\t\tthis.generalSetter(ids, LocalStorageKeys.ADMIN_MAGIC_REVIEW_PAGE_IDS);\n\t}\n\tget magicReviewPageIds(): number[] {\n\t\treturn this.generalGetter(LocalStorageKeys.ADMIN_MAGIC_REVIEW_PAGE_IDS);\n\t}\n\n\tset productReviewIds(ids: ProductReviewIdPair[]) {\n\t\tthis.generalSetter(ids, LocalStorageKeys.ADMIN_PRODUCT_REVIEW_PAGE_IDS);\n\t}\n\tget productReviewIds(): ProductReviewIdPair[] {\n\t\treturn this.generalGetter(LocalStorageKeys.ADMIN_PRODUCT_REVIEW_PAGE_IDS);\n\t}\n\n\tset renewalPageCompanies(ids: SelectedRenewalCompany[]) {\n\t\tthis.generalSetter(ids, LocalStorageKeys.ADMIN_RENEWAL_PAGE_IDS);\n\t}\n\tget renewalPageCompanies(): SelectedRenewalCompany[] {\n\t\treturn this.generalGetter(LocalStorageKeys.ADMIN_RENEWAL_PAGE_IDS);\n\t}\n\n\tset loginData(value: LoginResponse) {\n\t\tthis.generalSetter(value, LocalStorageKeys.LOGIN_DATA_STORAGE_KEY);\n\t}\n\tget loginData(): LoginResponse {\n\t\tconst value = this.generalGetter(LocalStorageKeys.LOGIN_DATA_STORAGE_KEY);\n\t\tif (value) {\n\t\t\treturn new LoginResponse(value);\n\t\t}\n\t\treturn null;\n\t}\n\n\tset userPermissions(value: Permission[]) {\n\t\tthis.generalSetter(value, LocalStorageKeys.USER_PERMISSIONS);\n\t}\n\tget userPermissions(): Permission[] {\n\t\treturn this.generalGetter(LocalStorageKeys.USER_PERMISSIONS);\n\t}\n\n\tset userAdvancedPermissions(value: AdvancedPermission[]) {\n\t\tthis.generalSetter(value, LocalStorageKeys.USER_ADVANCED_PERMISSIONS);\n\t}\n\tget userAdvancedPermissions(): AdvancedPermission[] {\n\t\treturn this.generalGetter(LocalStorageKeys.USER_ADVANCED_PERMISSIONS);\n\t}\n\n\tset userGlobalSearchData(value: GlobalFilterData) {\n\t\tthis.generalSetter(value, LocalStorageKeys.GLOBAL_SEARCH_DATA);\n\t}\n\tget userGlobalSearchData(): GlobalFilterData {\n\t\treturn this.generalGetter(LocalStorageKeys.GLOBAL_SEARCH_DATA);\n\t}\n\n\tset userId(value: number) {\n\t\tthis.generalSetter(value, LocalStorageKeys.USER_ID_KEY);\n\t}\n\tget userId(): number {\n\t\treturn this.generalGetter(LocalStorageKeys.USER_ID_KEY);\n\t}\n\n\tset currentUser(value: UserInfo) {\n\t\tthis.generalSetter(value, LocalStorageKeys.CURRENT_USER);\n\t}\n\tget currentUser(): UserInfo {\n\t\treturn this.generalGetter(LocalStorageKeys.CURRENT_USER);\n\t}\n\n\tset idle(value: boolean) {\n\t\tthis.generalSetter(value, LocalStorageKeys.USER_IDLE);\n\t}\n\tget idle(): boolean {\n\t\treturn this.generalGetter(LocalStorageKeys.USER_IDLE);\n\t}\n\n\tset lastTabClosedAt(value: string) {\n\t\tthis.generalSetter(value, LocalStorageKeys.LAST_TAB_CLOSED_AT);\n\t}\n\tget lastTabClosedAt(): string {\n\t\treturn this.generalGetter(LocalStorageKeys.LAST_TAB_CLOSED_AT);\n\t}\n\n\tset accordions(value: { [id: number]: boolean }) {\n\t\tthis.generalSetter(value, LocalStorageKeys.USER_ACCORDIONS_STATUS);\n\t}\n\tget accordions(): { [id: number]: boolean } {\n\t\tconst value = this.generalGetter(LocalStorageKeys.USER_ACCORDIONS_STATUS);\n\t\tif (value) {\n\t\t\treturn value;\n\t\t}\n\t\treturn {};\n\t}\n\n\tset updateMasterIngredientIds(ids: number[]) {\n\t\tthis.generalSetter(ids, LocalStorageKeys.UPDATE_MASTER_INGREDIENT_IDS);\n\t}\n\tget updateMasterIngredientIds(): number[] {\n\t\treturn this.generalGetter(LocalStorageKeys.UPDATE_MASTER_INGREDIENT_IDS);\n\t}\n\n\tset sidenavBackgroundClass(value: string) {\n\t\tthis.generalSetter(value, LocalStorageKeys.SIDENAV_BACKGROUND_CLASS);\n\t}\n\tget sidenavBackgroundClass(): string {\n\t\treturn this.generalGetter(LocalStorageKeys.SIDENAV_BACKGROUND_CLASS);\n\t}\n\n\tclearActiveMode() {\n\t\tthis.generalSetter(null, LocalStorageKeys.ACTIVE_MODE_STORAGE_KEY);\n\t}\n\n\tclearLocalStorage() {\n\t\tthis.cleanAccordionStatuses();\n\t\tthis.renewalPageCompanies = null;\n\t\tthis.magicReviewPageIds = null;\n\t\tthis.productReviewIds = null;\n\t\tthis.loginData = null;\n\t\tthis.userId = null;\n\t\tthis.userPermissions = null;\n\t\tthis.currentUser = null;\n\t\tthis.lastTabClosedAt = null;\n\t\tthis.updateMasterIngredientIds = null;\n\t\tthis.userGlobalSearchData = null;\n\t\tthis.sidenavBackgroundClass = null;\n\t}\n\n\tprivate generalSetter(value: any, key: LocalStorageKeys) {\n\t\tif (value !== null && value !== undefined) {\n\t\t\tls.set(key, value, { encrypt: true });\n\t\t} else {\n\t\t\tls.remove(key);\n\t\t}\n\t}\n\n\tprivate generalGetter(key: LocalStorageKeys): any {\n\t\tconst value = ls.get(key, { decrypt: true });\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate cleanAccordionStatuses() {\n\t\tconst keysToRemove = [];\n\t\tconst value = this.accordions;\n\t\tObject.keys(value).forEach(key => {\n\t\t\tif (AccordionIdentifier[key] === undefined) {\n\t\t\t\tkeysToRemove.push(key);\n\t\t\t}\n\t\t});\n\n\t\tkeysToRemove.forEach(key => {\n\t\t\tdelete value[key];\n\t\t});\n\t\tthis.accordions = value;\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class UrlHelperService {\n\tconstructor() { }\n\n\turlsMatch(currentUrl: string, urlToCompare: string) {\n\t\tconst currentUrlSubsets = currentUrl.split('/');\n\t\tconst urlToCompareSubsets = urlToCompare.split('/');\n\t\tif (urlToCompareSubsets.some((subset: string) => subset.includes('**'))) {\n\t\t\tconst anyIndex = urlToCompareSubsets.findIndex(val => val.includes('**'));\n\t\t\tconst indexes = [];\n\t\t\tfor (let i = 0; i < anyIndex + 1; i++) {\n\t\t\t\tindexes.push(i);\n\t\t\t}\n\t\t\treturn indexes.every(i => {\n\t\t\t\tif (urlToCompareSubsets[i].includes('**')) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (urlToCompareSubsets[i].includes(':') && currentUrlSubsets[i]) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn currentUrlSubsets[i] === urlToCompareSubsets[i];\n\t\t\t});\n\t\t} else if (currentUrlSubsets?.length === urlToCompareSubsets?.length) {\n\t\t\tconst indexes = [];\n\t\t\tfor (let i = 0; i < currentUrlSubsets.length; i++) {\n\t\t\t\tindexes.push(i);\n\t\t\t}\n\t\t\treturn indexes.every(i => {\n\t\t\t\tif (urlToCompareSubsets[i].includes(':') && currentUrlSubsets[i]) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn currentUrlSubsets[i] === urlToCompareSubsets[i];\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t}\n\n\t/** The url param must be written by the angular route standard\n\t *\n\t * This means that if you want to replace a part of the url with a number\n\t * it must pe prefixed with ':' .\n\t *\n\t * Example : /entity/:id/info\n\t */\n\treplaceIdInUrl(url: string, id: number | string) {\n\t\tconst params = url.split('/');\n\t\turl = '';\n\t\tparams.forEach(param => {\n\t\t\tif (param !== '') {\n\t\t\t\tif (param.includes(':')) {\n\t\t\t\t\turl += '/' + id;\n\t\t\t\t} else {\n\t\t\t\t\turl += '/' + param;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn url;\n\t}\n\n\taddQueryParam(params: { [id: string]: string | number }, value: any, key: string, required = true) {\n\t\tif (required || (!required && value !== undefined && value !== null)) {\n\t\t\tparams[key] = value;\n\t\t}\n\t\treturn params;\n\t}\n}\n","export enum LifecycleCategories {\n\tKosherEvaluation = 1,\n\tFacilityIngredient = 2,\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport {\n\tBaseModel,\n\tJobModel,\n\tBaseModelCategory,\n\tCountryModel,\n\tVisitStatusBaseModel,\n\tBaseIndexModel,\n\tColorBaseModel,\n\tBaseModelEvaluationGroup,\n} from '../models/base.model';\nimport { ContactMethod } from '../models/contact.model';\nimport { EntityLinkTypeModel } from '../models/entity-link.model';\nimport { TaskEntityType } from '../models/task-entity-type.model';\nimport { CategoryHeader } from '../enums/category-header.enum';\nimport { VisitType } from '../models/visit.model';\nimport { DocumentInfo } from '../models/document.model';\nimport { EntityType } from '../enums/entity-type.enum';\nimport { LifecycleCategories } from '../enums/lifecycle-category.enum';\nimport { Attribute } from '../models/attribute.model';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport { TaskStatusGroup } from '../enums/task-status-group.enum';\nimport { TaskStatusGroupModel } from '../models/tasks-status-group.model';\nimport { BusinessEntityBase } from '../models/business-entity.model';\nimport { LifecycleStatus } from '../models/lifecycle-status.model';\nimport { DependencyLevelType } from '../models/products/dependency-level-type.model';\nimport { IngredientStatusModel } from '../models/ingredient-status.model';\nimport { NoteGroupType } from '../enums/note-group-type.enum';\nimport { CertificateAttributeIndexModel, EvaluationAttributeIndexModel } from '../models/ingredients/evaluation.model';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class IndexService {\n\tconstructor(private http: HttpClient, private appConfigurationService: AppConfigurationService) {}\n\n\tget(method): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/${method}`);\n\t}\n\n\tgetCountries(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/countries`);\n\t}\n\n\tgetContinents(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/continents`);\n\t}\n\n\tgetWorkProcess(useDefaultValue = true) {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/work_process`, {\n\t\t\tparams: { useDefaultValue: useDefaultValue.toString() },\n\t\t});\n\t}\n\n\tgetContractStatuses(useDefaultValue = false) {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/contract_statuses`, {\n\t\t\tparams: { useDefaultValue: useDefaultValue.toString() },\n\t\t});\n\t}\n\n\tgetStates(countryId): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/states`, {\n\t\t\tparams: { countryId },\n\t\t});\n\t}\n\n\tgetBusinessCategories(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/business_categories`);\n\t}\n\n\tgetContactTypes(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/contact_types`);\n\t}\n\n\tgetPaymentFrequencies(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/payment_frequencies`);\n\t}\n\n\tgetFinancialInvoiceTypes(useDefaultValue: boolean): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/financial_invoice_types?useDefaultValue=${useDefaultValue}`\n\t\t);\n\t}\n\n\tgetContactRoleTypes(isRequired: boolean = null, useDefaultValue: boolean = false): Observable {\n\t\tlet params = {};\n\t\tif (isRequired != null) {\n\t\t\tparams = { isRequired: isRequired.toString(), useDefaultValue: useDefaultValue.toString() };\n\t\t} else {\n\t\t\tparams = { useDefaultValue: useDefaultValue.toString() };\n\t\t}\n\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/contact_role_types`, {\n\t\t\tparams: params,\n\t\t});\n\t}\n\n\tgetAgreementTypes(useDefaultValue = false): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/agreement_types`, {\n\t\t\tparams: { useDefaultValue: useDefaultValue.toString() },\n\t\t});\n\t}\n\n\tgetAgreementTerms(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/agreement_terms`);\n\t}\n\n\tgetContactRepTypes(useDefaultValue = false): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/contact_rep_types`, {\n\t\t\tparams: { useDefaultValue: useDefaultValue.toString() },\n\t\t});\n\t}\n\n\tgetJobs(main: boolean = null): Observable {\n\t\tlet params = {};\n\t\tif (main != null) {\n\t\t\tparams = { main: main.toString() };\n\t\t}\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/jobs`, { params });\n\t}\n\n\tgetTitleTypes(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/title_types`);\n\t}\n\n\tgetBusinessEntitySummary(id): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/be/BussinessEntity/${id}/Summary`);\n\t}\n\n\tgetApplicationSummary(id: number): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/Summary/application?id=${id}`);\n\t}\n\n\tgetContactMethods(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/contact_methods`);\n\t}\n\n\tgetNoteTypes(useDefaultValue: boolean, isMain: boolean, noteGroupType?: NoteGroupType): Observable {\n\t\tconst params = {\n\t\t\tuseDefaultValue: useDefaultValue.toString(),\n\t\t};\n\n\t\tif (isMain) {\n\t\t\tparams['isMain'] = isMain;\n\t\t}\n\n\t\tif (noteGroupType) {\n\t\t\tparams['noteGroupType'] = noteGroupType;\n\t\t}\n\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/note_types`, {\n\t\t\tparams,\n\t\t});\n\t}\n\n\tgetPickNoteTypes(useDefaultValue): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/pick_note_types`, {\n\t\t\tparams: {\n\t\t\t\tuseDefaultValue: useDefaultValue.toString(),\n\t\t\t},\n\t\t});\n\t}\n\n\tgetLocations(useDefaultValue) {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/locations`, {\n\t\t\tparams: {\n\t\t\t\tuseDefaultValue: useDefaultValue.toString(),\n\t\t\t},\n\t\t});\n\t}\n\n\tgetCommissionTypes(useDefaultValue = false): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/commission_types`, {\n\t\t\tparams: {\n\t\t\t\tuseDefaultValue: useDefaultValue.toString(),\n\t\t\t},\n\t\t});\n\t}\n\n\tgetCurrencies(useDefaultValue) {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/currencies`, {\n\t\t\tparams: {\n\t\t\t\tuseDefaultValue: useDefaultValue.toString(),\n\t\t\t},\n\t\t});\n\t}\n\n\tgetApplicationSources(useDefaultValue): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/application_sources`, {\n\t\t\tparams: {\n\t\t\t\tuseDefaultValue: useDefaultValue.toString(),\n\t\t\t},\n\t\t});\n\t}\n\n\tgetRabinicals() {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/contact/rabinicals`);\n\t}\n\n\tgetVisitFrequencies(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/visit_frequencies`);\n\t}\n\n\tgetVisitTypes(useDefaultValue = false): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/visit_types`, {\n\t\t\tparams: { useDefaultValue: useDefaultValue.toString() },\n\t\t});\n\t}\n\n\tgetBusinessEntityTypes(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/business_entity_types`);\n\t}\n\n\tgetBusinessEntityApplicationTypes(useDefaultValue = false): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/application_types?useDefaultValue=${useDefaultValue}`\n\t\t);\n\t}\n\n\tgetBusinessEntityLinkTypes(entityLinkId: number, useDefaultValue = false): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/business_entity_link_types`,\n\t\t\t{\n\t\t\t\tparams: {\n\t\t\t\t\tentityLinkId: entityLinkId.toString(),\n\t\t\t\t\tuseDefaultValue: useDefaultValue.toString(),\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}\n\n\tgetApplicationStatus(id) {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/application_status?id=${id}`);\n\t}\n\n\tgetApplicationStatuses(useDefaultValue = false): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/application_statuses?useDefaultValue=${useDefaultValue}`\n\t\t);\n\t}\n\n\tgetVisitStatus(useDefaultValue = false): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/visit_status`, {\n\t\t\tparams: {\n\t\t\t\tuseDefaultValue: useDefaultValue.toString(),\n\t\t\t},\n\t\t});\n\t}\n\n\tgetNatureOfFacility(useDefaultValue = false): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/nature_of_facility?useDefaultValue=${useDefaultValue}`\n\t\t);\n\t}\n\n\tgetProcessReasons(reasonTypeId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/process_reasons?reasonTypeId=${reasonTypeId}`\n\t\t);\n\t}\n\n\tgetInvoiceTypes(entityTypeId: number, applicationTypeId: number): Observable {\n\t\tlet queryParams = `entityTypeId=${entityTypeId}`;\n\t\tif (applicationTypeId) {\n\t\t\tqueryParams += `&applicationTypeId=${applicationTypeId}`;\n\t\t}\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/invoice_types?${queryParams}`\n\t\t);\n\t}\n\n\tgetInvoiceStatuses(useDefaultValue = false, addBlankValue = false) {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/invoice_statuses`, {\n\t\t\tparams: { useDefaultValue: useDefaultValue.toString(), addBlankValue: addBlankValue.toString() },\n\t\t});\n\t}\n\n\tgetEndInvoiceNoteVarriables(useDefaultValue = false): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/invoice_end_notes_varriables`,\n\t\t\t{\n\t\t\t\tparams: { useDefaultValue: useDefaultValue.toString() },\n\t\t\t}\n\t\t);\n\t}\n\n\tgetTaskEntityTypes(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/task_entity`);\n\t}\n\n\tgetAssignedTaskEntityTypes(useDefaultValue = false): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/task_entity_assigned`,\n\t\t\t{\n\t\t\t\tparams: { useDefaultValue },\n\t\t\t}\n\t\t);\n\t}\n\n\tgetTaskPriorities(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/task_priority`);\n\t}\n\n\tgetTaskStatusesByGroup(\n\t\ttaskStatusGroup = TaskStatusGroup.All,\n\t\tuseDefaultValue = false\n\t): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/task_status_by_group`,\n\t\t\t{\n\t\t\t\tparams: { taskStatusGroup, useDefaultValue },\n\t\t\t}\n\t\t);\n\t}\n\n\tgetTaskModels(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/task_model`);\n\t}\n\n\tgetTaskStages(useDefaultValue = false): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/task_stage`, {\n\t\t\tparams: { useDefaultValue },\n\t\t});\n\t}\n\n\tgetTaskCategories(useDefaultValue = false): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/task_category`, {\n\t\t\tparams: { useDefaultValue },\n\t\t});\n\t}\n\n\tgetTaskTypes(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/task_type`);\n\t}\n\n\tgetTaskSources(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/task_source`);\n\t}\n\n\tgetTaskPrivacyOptions(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/task_privacy`);\n\t}\n\n\tgetTaskIssueTypes(useDefaultValue = false): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/task_issue`, {\n\t\t\tparams: { useDefaultValue },\n\t\t});\n\t}\n\n\tgetTaskResolutions(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/task_resolution`);\n\t}\n\n\tgetPlatforms(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/platform`);\n\t}\n\n\tgetPermissions(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.auth}/permission/loadall`);\n\t}\n\n\tgetPermissionRole(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.auth}/role/loadall`);\n\t}\n\n\tgetIngredientEvaluationStatuses() {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/evaluation_statuses`);\n\t}\n\n\tgetTwoFactorAuthentication(platformId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/platform/twoFactorAuthentication?platformId=${platformId}`\n\t\t);\n\t}\n\n\tgetJiraFeedBackFormEnabled(platformId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/platform/isJiraFeedBackFormEnabled?platformId=${platformId}`\n\t\t);\n\t}\n\n\tgetIngredientCertificateStatuses(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/certificate_statuses`);\n\t}\n\n\tgetIngredientEvaluationAttributes(statusId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/evaluation_status_attributes?statusId=${statusId}`\n\t\t);\n\t}\n\n\tgetIngredientCertificateAttributes(statusId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/certificate_status_attributes?statusId=${statusId}`\n\t\t);\n\t}\n\n\tgetEvaluationGroups(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/evaluation_groups`);\n\t}\n\n\tgetEvaluationGroupVariations(): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/evaluation_group_variations`\n\t\t);\n\t}\n\n\tgetIngredientCategories(): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/ingredient_category_types`\n\t\t);\n\t}\n\n\tgetVisitsByInspectionType(inspectionType: number) {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/${inspectionType}/visit_types`\n\t\t);\n\t}\n\n\tgetEvaluationsApprovalStatuses(): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/evaluation_approval_statuses`\n\t\t);\n\t}\n\n\tgetEvaluationsLifecycleStatuses(): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/lifecycle_statuses_by_category?categoryId=${LifecycleCategories.KosherEvaluation}`\n\t\t);\n\t}\n\n\tgetCategoryOfType(type: CategoryHeader): Observable {\n\t\treturn new Observable(observer => {\n\t\t\tthis.http\n\t\t\t\t.get(`${this.appConfigurationService.api.service}/index/categories`)\n\t\t\t\t.subscribe(res => {\n\t\t\t\t\tconst result = res\n\t\t\t\t\t\t.filter(r => +r.categoryHeaderId === +type)\n\t\t\t\t\t\t.map(t => {\n\t\t\t\t\t\t\tconst model = new BaseModel();\n\t\t\t\t\t\t\tmodel.id = t.id;\n\t\t\t\t\t\t\tmodel.name = `${t.name}, #${t.id}`;\n\t\t\t\t\t\t\treturn model;\n\t\t\t\t\t\t});\n\t\t\t\t\tobserver.next(result);\n\t\t\t\t});\n\t\t});\n\t}\n\n\tgetCategories(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/categories`);\n\t}\n\n\tgetApplicationPDF(entityId: number, entityTypeId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/document/entity/${entityId}?entityTypeId=${entityTypeId}`\n\t\t);\n\t}\n\n\tgetIngredientStatuses(isDefault: boolean): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/ingredient_statuses?useDefaultValue=${isDefault}`\n\t\t);\n\t}\n\n\tgetMarketedAs(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/marketed_as`);\n\t}\n\n\tpackageTypes(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/package_type`);\n\t}\n\n\tgetEntityAttributes(entityType: EntityType): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/Attributes?entityType=${entityType}`\n\t\t);\n\t}\n\n\tgetProductSources(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/product_sources`);\n\t}\n\n\tgetRecipientType(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/recipient_type`);\n\t}\n\n\tgetEvaluationPassoverStatuses(): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/evaluation_passover_statuses`\n\t\t);\n\t}\n\n\tgetHandlingTypes(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/handling_types`);\n\t}\n\n\tgetProcessingStatuses(useDefaultValue = false): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/processing_statuses`, {\n\t\t\tparams: { useDefaultValue: useDefaultValue.toString() },\n\t\t});\n\t}\n\n\tgetSubsets(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/subset_groups`);\n\t}\n\n\tgetSearchIntervals(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/interval_types`);\n\t}\n\n\tgetEntitySummary(entityId: number, entityTypeId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/Summary/${entityId}/${entityTypeId}/title`\n\t\t);\n\t}\n\n\tgetProductCategoryTypes(useDefaultValue = false): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/Index/product_category_types`, {\n\t\t\tparams: { useDefaultValue },\n\t\t});\n\t}\n\n\tgetSecurityLevelTypes(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/Index/security_level_types`);\n\t}\n\n\tgetBatchIngredientReviewStatus(useDefaultValue = false): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/batch_ingredient_review_status?useDefaultValue=${useDefaultValue}`\n\t\t);\n\t}\n\n\tgetFacilityIngredientUtilityStatus(useDefaultValue = false): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/facility_ingredient_utility_statuses?useDefaultValue=${useDefaultValue}`\n\t\t);\n\t}\n\n\tgetStatusesByType(type: number, useDefaultValue = false): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/statuses_by_type?type=${type}&?useDefaultValue=${useDefaultValue}`\n\t\t);\n\t}\n\n\tgetEvaluationGroupAttributes(groupId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/evaluation_group_attributes?groupId=${groupId}`\n\t\t);\n\t}\n\n\tgetDependencyLevels(): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/dependency_level_types`\n\t\t);\n\t}\n\n\tgetProductTypes(useDefaultValue: boolean): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/product_types?useDefaultValue=${useDefaultValue}`\n\t\t);\n\t}\n\n\tgetIdentitySourceType(): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/identity_code_source_type`\n\t\t);\n\t}\n\n\tgetCodeChangeUtilityUpdateFields(): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/code_change_utility_update_field`\n\t\t);\n\t}\n\n\tgetCodeChangeUtilityDataStatuses(): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/code_change_utility_data_statuses`\n\t\t);\n\t}\n\n\tgetTaskStatusesWithGroups(useDefaultValue = false): Observable<{ [id: number]: TaskStatusGroupModel[] }> {\n\t\treturn this.http.get<{ [id: number]: TaskStatusGroupModel[] }>(\n\t\t\t`${this.appConfigurationService.api.service}/index/task_status_with_groups?useDefaultValue=${useDefaultValue}`\n\t\t);\n\t}\n\n\tgetFeeAdjustmentReason(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/fee_adjustment_reason`);\n\t}\n\n\tgetMonths(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/months`);\n\t}\n\n\tgetListBy(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/kfg_list_as`);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { BatchSave, BatchFileUploadResponse, BatchIngredientItem } from '../models/ingredients/batch-ingredient.model';\nimport { Observable } from 'rxjs';\nimport { BaseModel } from '../models/base.model';\nimport { IngredientBatchReviewAction } from '../models/ingredients/ingredient-batch-review-action.model';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport { ProcessBatchIngredientHeaderRequest } from '../models/ingredients/process-batch-ingredient-request.model';\nimport { ProcessBatchIngredientHeaderResult } from '../models/ingredients/process-batch-ingredient-response.model';\nimport { CompareIngredient, CompareIngredientExtended } from '../models/compare-ingredient.model';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class IngredientBatchesService {\n\tconstructor(private http: HttpClient, private appConfigurationService: AppConfigurationService) {}\n\n\tprivate get uploadController() {\n\t\treturn `${this.appConfigurationService.api?.service}/file`;\n\t}\n\tprivate get batchController() {\n\t\treturn `${this.appConfigurationService.api?.service}/IngredientBatch`;\n\t}\n\tprivate get productBatchController() {\n\t\treturn `${this.appConfigurationService.api?.product}/IngredientBatches`;\n\t}\n\n\tuploadBachFile(documentContainer): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.uploadController}/ingredients/upload`,\n\t\t\tdocumentContainer\n\t\t);\n\t}\n\n\tconfirmBatchItemsUpload(batchSaveData: BatchSave): Observable {\n\t\treturn this.http.post(`${this.batchController}/confirm`, batchSaveData);\n\t}\n\n\tloadIngredientBatch(entityId): Observable {\n\t\treturn this.http.get(`${this.batchController}/${entityId}/load`);\n\t}\n\n\tsave(container: BatchSave): Observable {\n\t\treturn this.http.post(`${this.batchController}/save`, container);\n\t}\n\n\tgetBatchIngredientProcessStatus(): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/batch_ingredient_process_status`\n\t\t);\n\t}\n\n\tgetBatchIngredientOriginStatus(useDefaultValue = false): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/batch_ingredient_origin?useDefaultValue=${useDefaultValue}`\n\t\t);\n\t}\n\n\tgetBatchIngredientPurposeStatus(useDefaultValue = false): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/index/batch_ingredient_purpose?useDefaultValue=${useDefaultValue}`\n\t\t);\n\t}\n\n\tcompare(batchItemId: number): Observable {\n\t\treturn this.http.get(`${this.batchController}/${batchItemId}/compare`);\n\t}\n\n\tmerge(data) {\n\t\treturn this.http.post(`${this.batchController}/merge`, data);\n\t}\n\n\tunmerge(batchIngredientItemIds: number[]) {\n\t\treturn this.http.post(`${this.batchController}/un-merge`, batchIngredientItemIds);\n\t}\n\n\tprocess(request: ProcessBatchIngredientHeaderRequest): Observable {\n\t\treturn this.http.post(`${this.batchController}/process`, request);\n\t}\n\n\texecuteBatchItemReviewAction(action: IngredientBatchReviewAction[]): Observable {\n\t\treturn this.http.post(`${this.productBatchController}/Review/Actions`, action);\n\t}\n\n\tassignBatchTo(ingredientBatchHeaderIds: number[], assignedToUserId: number): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/IngredientBatches/header/saveMultiple`,\n\t\t\t{\n\t\t\t\tingredientBatchHeaderIds,\n\t\t\t\tassignedToUserId,\n\t\t\t}\n\t\t);\n\t}\n\n\tupdateChanges(compareIngredient: CompareIngredient): Observable {\n\t\treturn this.http.post(`${this.batchController}/updateChanges`, compareIngredient);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { PageTitle } from '../models/general/page-title.model';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class NavigationHistoryService {\n\tconstructor() {}\n\n\tprivate _navigationHistoryList: PageTitle[] = [];\n\n\taddNavigationHistory(item: PageTitle): void {\n\t\tconst navHistory = this.getNavigationHistory();\n\t\tconst newEntry = navHistory.find(el => el.entityId === item.entityId && el.entityTypeId === item.entityTypeId);\n\t\tif (newEntry === undefined && item.pageTitle && item.route) {\n\t\t\tthis._navigationHistoryList.push(item);\n\t\t}\n\t}\n\n\tclearNavigationHistory(): void {\n\t\tthis._navigationHistoryList = [];\n\t}\n\n\tgetFilteredNavigationHistory(): PageTitle[] {\n\t\tif (this._navigationHistoryList.length <= 2) {\n\t\t\treturn this._navigationHistoryList;\n\t\t} else {\n\t\t\treturn this._navigationHistoryList.slice(Math.max(this._navigationHistoryList.length - 2, 1));\n\t\t}\n\t}\n\n\tgetCurrentPage(): PageTitle {\n\t\tconst navigationLenght = this.getFilteredNavigationHistory().length;\n\t\tif (navigationLenght !== 0) {\n\t\t\treturn this._navigationHistoryList[navigationLenght - 1];\n\t\t}\n\t\treturn;\n\t}\n\n\tgetNavigationHistory(): PageTitle[] {\n\t\treturn this._navigationHistoryList;\n\t}\n\n\tremoveLastItemNavigationHistory() {\n\t\tif (this._navigationHistoryList.length !== 0) {\n\t\t\tthis._navigationHistoryList.splice(-1);\n\t\t}\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport { EntityType } from '../enums/entity-type.enum';\nimport { NoteGroupType } from '../enums/note-group-type.enum';\nimport { NoteType } from '../enums/note-type.enum';\nimport { NoteGroup } from '../models/note-group.model';\nimport { Note, NoteComment, NoteCommentTasksDto } from '../models/note.model';\nimport { PickNote } from '../models/picknote.model';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class NotesService {\n\treloadNotesCount$ = new Subject();\n\n\tconstructor(private http: HttpClient, private appConfigurationService: AppConfigurationService) {}\n\n\tprivate get noteController() {\n\t\treturn `${this.appConfigurationService.api?.service}/note`;\n\t}\n\n\tload(noteId): Observable {\n\t\treturn this.http.get(`${this.noteController}/load`, { params: { noteId } });\n\t}\n\n\tloadByEntityType(\n\t\tentityId: number,\n\t\tentityTypeId: number,\n\t\tnoteTypeId?: NoteType,\n\t\texpirationDate?: Date\n\t): Observable {\n\t\tlet url = `${this.noteController}/${entityId}/${entityTypeId}/load`;\n\n\t\tconst params = [];\n\t\tif (noteTypeId) {\n\t\t\tparams.push(`noteTypeId=${noteTypeId}`);\n\t\t}\n\t\tif (expirationDate) {\n\t\t\tparams.push(`expirationDate=${expirationDate}`);\n\t\t}\n\n\t\tif (params.length > 0) {\n\t\t\turl += `?${params.join('&')}`;\n\t\t}\n\n\t\treturn this.http.get(url);\n\t}\n\n\tloadByNoteType(entityId: number, entityTypeId: number, noteTypeId: NoteType): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/note/${entityId}/${entityTypeId}/${noteTypeId}/load`\n\t\t);\n\t}\n\n\tloadListByEntityType(entityId, entityTypeId): Observable {\n\t\treturn this.http.get(`${this.noteController}/${entityId}/${entityTypeId}/list`);\n\t}\n\n\tloadMultiple(data: { entityId: number; entityTypeId: EntityType; noteTypeId?: NoteType }[]): Observable {\n\t\treturn this.http.post(`${this.noteController}/loadMultiple`, data);\n\t}\n\n\tloadByEntityHistory(entityHistoryId, entityTypeId) {\n\t\treturn this.http.get(`${this.noteController}/${entityHistoryId}/${entityTypeId}/history`);\n\t}\n\n\tsave(note): Observable {\n\t\treturn this.http.post(`${this.noteController}/save`, note);\n\t}\n\n\tsaveMultiple(notes: Note[]): Observable {\n\t\treturn this.http.post(`${this.noteController}/save/multiple`, notes);\n\t}\n\n\tdeleteNote(noteId: any) {\n\t\treturn this.http.post(`${this.appConfigurationService.api.service}/Note/delete?noteId=${noteId}`, null);\n\t}\n\n\tgetNoteSummary(id) {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/Summary/note?id=${id}`);\n\t}\n\n\tgetPickNotes(pickNoteTypeId: number, expirationDate?: Date) {\n\t\tvar url = `${this.appConfigurationService.api.service}/Note/${pickNoteTypeId}/loadNotePicklistByType`;\n\n\t\tif (expirationDate) {\n\t\t\turl += `?expirationDate=${expirationDate}`;\n\t\t}\n\n\t\treturn this.http.get(url);\n\t}\n\tsavePickNote(pickNote: PickNote): Observable {\n\t\treturn this.http.post(`${this.appConfigurationService.api.service}/note/saveNotePicklist`, pickNote);\n\t}\n\n\tsaveComment(comment: NoteComment): Observable {\n\t\treturn this.http.post(`${this.noteController}/comment`, comment);\n\t}\n\n\tsaveCommentBulk(noteCommentTasks: NoteCommentTasksDto) {\n\t\treturn this.http.post(`${this.noteController}/comment-bulk`, noteCommentTasks);\n\t}\n\n\tloadNoteAttachments(entityIds: any) {\n\t\treturn this.http.post(`${this.appConfigurationService.api.service}/Document/Entity/Load`, entityIds);\n\t}\n\n\tgetNoteCount(entityId: number, entityTypeId: EntityType, noteTypeId: NoteType): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/Note/${entityId}/${entityTypeId}/${noteTypeId}/count`\n\t\t);\n\t}\n\n\tgetNoteCountByEntityIds(entityIds: number[], entityTypeId: EntityType, noteTypeId: NoteType): Observable {\n\t\tlet params = new HttpParams();\n\t\tentityIds.forEach(id => {\n\t\t\tparams = params.append('entityIds', id.toString());\n\t\t});\n\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/Note/${entityTypeId}/${noteTypeId}/count`,\n\t\t\t{ params: params }\n\t\t);\n\t}\n\n\tloadMultipleByNoteGroupTypeId(noteGroupTypeId: NoteGroupType, noteGroup: NoteGroup[]): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/Note/${noteGroupTypeId}/loadMultipleByNoteGroupTypeId`,\n\t\t\tnoteGroup\n\t\t);\n\t}\n\n\tloadMultipleByNoteTypeId(noteGroup: NoteGroup[]): Observable {\n\t\treturn this.http.post(`${this.appConfigurationService.api.service}/Note/loadMultiple`, noteGroup);\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class PersistentFiltersService {\n\tconstructor() {}\n\n\tfilters: { [key: string]: any } = {};\n\n\tsetFilter(key, filter) {\n\t\tthis.filters[key] = filter;\n\t}\n\n\tgetFilter(key) {\n\t\treturn this.filters[key];\n\t}\n\n\tclearFilter() {\n\t\tthis.filters = {};\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { GlobalFilterData, SearchPaging } from '../../models/general/search-paging.model';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport { Criteria } from '../../models/grid/search-request.model';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class GlobalSearchService {\n\tmodel: SearchPaging = { page: 1, pageSize: 5, fields: [] };\n\n\tpublic globalSearchParams = null;\n\tprivate globalSearchParamsSource = new BehaviorSubject(this.globalSearchParams);\n\n\tcurrentGlobalSearchParam = this.globalSearchParamsSource.asObservable();\n\n\tchangeGlobalSearchParam(gridFilterParam: GlobalFilterData) {\n\t\tthis.globalSearchParamsSource.next(gridFilterParam);\n\t\tsetTimeout(() => {\n\t\t\tthis.globalSearchParamsSource.next(null);\n\t\t}, 1500);\n\t}\n\n\tconstructor(private http: HttpClient, private appConfigurationService: AppConfigurationService) {}\n\n\tsearchVisits(filters: Criteria) {\n\t\tconst requestModel = {\n\t\t\tmodel: this.model,\n\t\t\tcriteria: {\n\t\t\t\tkeyword: filters.keyword,\n\t\t\t\tfilterDropdown: filters.filterDropdown,\n\t\t\t\tfilterType: filters.filterType,\n\t\t\t},\n\t\t};\n\t\treturn this.http.post(`${this.appConfigurationService.api.service}/Visit/Global/Search`, requestModel);\n\t}\n\n\tsearchContacts(filters: Criteria) {\n\t\tconst requestModel = {\n\t\t\tmodel: this.model,\n\t\t\tcriteria: {\n\t\t\t\tkeyword: filters.keyword,\n\t\t\t\tfilterDropdown: filters.filterDropdown,\n\t\t\t\tfilterType: filters.filterType,\n\t\t\t},\n\t\t};\n\t\treturn this.http.post(`${this.appConfigurationService.api.service}/Contact/Global/Search`, requestModel);\n\t}\n\n\tsearchEntities(filters: Criteria) {\n\t\tconst requestModel = {\n\t\t\tmodel: this.model,\n\t\t\tcriteria: {\n\t\t\t\tkeyword: filters.keyword,\n\t\t\t\tfilterDropdown: filters.filterDropdown,\n\t\t\t\tfilterType: filters.filterType,\n\t\t\t},\n\t\t};\n\t\treturn this.http.post(`${this.appConfigurationService.api.product}/Entity/Global/Search`, requestModel);\n\t}\n\n\tsearchBusinessEntities(filters: Criteria) {\n\t\tconst requestModel = {\n\t\t\tmodel: this.model,\n\t\t\tcriteria: {\n\t\t\t\tkeyword: filters.keyword,\n\t\t\t\tfilterDropdown: filters.filterDropdown,\n\t\t\t\tfilterType: filters.filterType,\n\t\t\t},\n\t\t};\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/be/BussinessEntity/Global/Search`,\n\t\t\trequestModel\n\t\t);\n\t}\n\n\tsearchApplications(filters: Criteria) {\n\t\tconst requestModel = {\n\t\t\tmodel: this.model,\n\t\t\tcriteria: {\n\t\t\t\tkeyword: filters.keyword,\n\t\t\t\tfilterDropdown: filters.filterDropdown,\n\t\t\t\tfilterType: filters.filterType,\n\t\t\t},\n\t\t};\n\t\treturn this.http.post(`${this.appConfigurationService.api.service}/be/Application/Global/Search`, requestModel);\n\t}\n}\n","export const accountingRenewalInfoTabs = [\n\t{\n\t\tname: 'Accounting Renewal',\n\t\tpath: 'companies/accounting-renewal/info',\n\t\talternativePath: 'companies/accounting-renewal/info/:id'\n\t},\n];\n","import { AgencyModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const agencyInfoTabs: Tab[] = [\n\t{\n\t\tname: 'Info',\n\t\tpath: '/agencies/:id',\n\t\tpermissionId: AgencyModuleTabs.Info,\n\t},\n\t{\n\t\tname: 'Contacts',\n\t\tpath: '/agencies/:id/contacts',\n\t\tpermissionId: AgencyModuleTabs.Contacts,\n\t},\n\t{\n\t\tname: 'Alias',\n\t\tpath: '/agencies/:id/alias',\n\t\tpermissionId: AgencyModuleTabs.Alias,\n\t},\n\t{\n\t\tname: 'Profile',\n\t\tpath: '/agencies/:id/profile',\n\t\tpermissionId: AgencyModuleTabs.Profile,\n\t},\n\t{\n\t\tname: 'Notes',\n\t\tpath: '/agencies/:id/notes',\n\t\tpermissionId: AgencyModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'Facilities',\n\t\tpath: '/agencies/:id/facilities',\n\t\tpermissionId: AgencyModuleTabs.Facilities,\n\t},\n\t{\n\t\tname: 'Vendors',\n\t\tpath: '/agencies/:id/vendors',\n\t\tpermissionId: AgencyModuleTabs.Vendors,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: '/agencies/:id/tasks',\n\t\tpermissionId: AgencyModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `/agencies/:id/audit-trail`,\n\t},\n];\n","import { Tab } from '../../models/tab.model';\n\nexport const analyzeProductsTabs: Tab[] = [\n\t{\n\t\tname: 'Analyze',\n\t\tpath: `/products/analyze-products/analyze`,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `/products/analyze-products/batch-related-tasks`,\n\t},\n];\n","import { ApplicationModuleTabs, CompanyModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const companyApplicationTabs: Tab[] = [\n\t{\n\t\tname: 'Summary',\n\t\tpath: `:id/summary`,\n\t\tpermissionId: ApplicationModuleTabs.Summary,\n\t},\n\t{\n\t\tname: 'Company',\n\t\tpath: `:id/company`,\n\t\tpermissionId: ApplicationModuleTabs.Company,\n\t},\n\t{\n\t\tname: 'Facilities',\n\t\tpath: `:id/facilities`,\n\t\tpermissionId: ApplicationModuleTabs.Facilities,\n\t},\n\t{\n\t\tname: 'Company Contract',\n\t\tpath: `:id/company-contract`,\n\t\tpermissionId: ApplicationModuleTabs.CompanyContract,\n\t},\n\t{\n\t\tname: 'Facility Contract',\n\t\tpath: `:id/facility-contract`,\n\t\tpermissionId: ApplicationModuleTabs.FacilityContract,\n\t},\n\t{\n\t\tname: 'Initial Visit',\n\t\tpath: `:id/initial-visit`,\n\t\tpermissionId: ApplicationModuleTabs.InitialVisit,\n\t},\n\t{\n\t\tname: 'Contacts',\n\t\tpath: `:id/contacts`,\n\t\tpermissionId: ApplicationModuleTabs.Contacts,\n\t},\n\t{\n\t\tname: 'Invoicing Groups',\n\t\tpath: `:id/invoicing-groups`,\n\t\tpermissionId: ApplicationModuleTabs.InvoicingGroups,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `:id/tasks`,\n\t\tpermissionId: ApplicationModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Application Info',\n\t\tpath: `:id/application-info`,\n\t\tpermissionId: ApplicationModuleTabs.ApplicationInfo,\n\t},\n\t{\n\t\tname: 'Referral',\n\t\tpath: `:id/referral`,\n\t\tpermissionId: ApplicationModuleTabs.Referral,\n\t\thidden: true,\n\t},\n\t{\n\t\tname: 'Products',\n\t\tpath: `:id/products`,\n\t\tpermissionId: ApplicationModuleTabs.Products,\n\t},\n\t{\n\t\tname: 'Ingredients',\n\t\tpath: `:id/ingredients`,\n\t\tpermissionId: ApplicationModuleTabs.Ingredients,\n\t},\n\t{\n\t\tname: 'History',\n\t\tpath: ':id/history',\n\t\tpermissionId: CompanyModuleTabs.History,\n\t},\n\t{\n\t\tname: 'Notes',\n\t\tpath: `:id/notes`,\n\t\tpermissionId: CompanyModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `:id/audit-trail`,\n\t},\n];\n","import { CompanyModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\nexport const companyInfoTabs: Tab[] = [\n\t{\n\t\tname: 'Info',\n\t\tpath: '/companies/:id',\n\t\tpermissionId: CompanyModuleTabs.Info,\n\t},\n\t{\n\t\tname: 'Contacts',\n\t\tpath: '/companies/:id/contacts',\n\t\tpermissionId: CompanyModuleTabs.Contacts,\n\t},\n\t{\n\t\tname: 'Private Labelers',\n\t\tpath: '/companies/:id/private-labelers',\n\t\tpermissionId: CompanyModuleTabs.PrivateLabelers,\n\t},\n\t{\n\t\tname: 'Facilities',\n\t\tpath: '/companies/:id/facilities',\n\t\tpermissionId: CompanyModuleTabs.Facilities,\n\t},\n\t{\n\t\tname: 'Brands',\n\t\tpath: '/companies/:id/brands',\n\t\tpermissionId: CompanyModuleTabs.Brands,\n\t},\n\t{\n\t\tname: 'Alias',\n\t\tpath: '/companies/:id/alias',\n\t\tpermissionId: CompanyModuleTabs.Alias,\n\t},\n\t{\n\t\tname: 'Profile',\n\t\tpath: '/companies/:id/profile',\n\t\tpermissionId: CompanyModuleTabs.Profile,\n\t},\n\t{\n\t\tname: 'Current Contract',\n\t\tpath: '/companies/:id/current-contract',\n\t\tpermissionId: CompanyModuleTabs.CurrentContract,\n\t},\n\t{\n\t\tname: 'History',\n\t\tpath: '/companies/:id/history',\n\t\tpermissionId: CompanyModuleTabs.History,\n\t},\n\t{\n\t\tname: 'Notes',\n\t\tpath: '/companies/:id/notes',\n\t\tpermissionId: CompanyModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'Guidelines',\n\t\tpath: `/companies/:id/guidelines`,\n\t\tpermissionId: CompanyModuleTabs.Guidelines,\n\t},\n\t{\n\t\tname: 'Invoicing Group',\n\t\tpath: '/companies/:id/invoicing-group',\n\t\tpermissionId: CompanyModuleTabs.InvoicingGroup,\n\t},\n\t{\n\t\tname: 'Facility Contract',\n\t\tpath: '/companies/:id/facility-contract',\n\t\tpermissionId: CompanyModuleTabs.FacilityContract,\n\t},\n\t{\n\t\tname: 'Product Publication',\n\t\tpath: '/companies/:id/product-publication',\n\t\tpermissionId: CompanyModuleTabs.ProductPublication,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: '/companies/:id/tasks',\n\t\tpermissionId: CompanyModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Invoices',\n\t\tpath: '/companies/:id/invoices',\n\t\tpermissionId: CompanyModuleTabs.Invoices,\n\t},\n\t{\n\t\tname: 'Ingredients',\n\t\tpath: '/companies/:id/ingredients',\n\t\tpermissionId: CompanyModuleTabs.Ingredients,\n\t},\n\t{\n\t\tname: 'Products',\n\t\tpath: '/companies/:id/company-products',\n\t\tpermissionId: CompanyModuleTabs.CompanyProducts,\n\t},\n\t{\n\t\tname: 'Processes',\n\t\tpath: '/companies/:id/processes',\n\t\tpermissionId: CompanyModuleTabs.Processes,\n\t},\n\t{\n\t\tname: 'Kosher Certificate Info',\n\t\tpath: '/companies/:id/kosher-certificate-info',\n\t\tpermissionId: CompanyModuleTabs.KosherCertificateInfo,\n\t},\n\t{\n\t\tname: 'Kosher Certificates',\n\t\tpath: '/companies/:id/kosher-certificates',\n\t\tpermissionId: CompanyModuleTabs.KosherCertificates,\n\t},\n\t{\n\t\tname: 'Referral',\n\t\tpath: '/companies/:id/referral',\n\t\tpermissionId: CompanyModuleTabs.Referral,\n\t\thidden: true,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `/companies/:id/audit-trail`,\n\t},\n\t{\n\t\tname: 'Auto Approval',\n\t\tpath: `/companies/:id/auto-approval`,\n\t\tpermissionId: CompanyModuleTabs.AutoApproval,\n\t},\n];\n","import { PermissionModule } from '../../enums/permission-module.enum';\n\nexport const companyModuleTabs = [\n\t{\n\t\tname: 'Companies',\n\t\tpath: '/companies',\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.Company,\n\t},\n\t{\n\t\tname: 'Accounting Renewal',\n\t\tpath: '/companies/accounting-renewal',\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.AccountingRenewal,\n\t},\n];\n","import { ContactModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const contactInfoTabs: Tab[] = [\n\t{\n\t\tname: 'Info',\n\t\tpath: `/contacts/:id`,\n\t\tpermissionId: ContactModuleTabs.Info,\n\t},\n\t{\n\t\tname: 'Contact Links',\n\t\tpath: `/contacts/:id/contact-links`,\n\t\tpermissionId: ContactModuleTabs.ContactLinks,\n\t},\n\t{\n\t\tname: 'Rabbinical Assignments',\n\t\tpath: `/contacts/:id/rabbinical-assignments`,\n\t\tpermissionId: ContactModuleTabs.RabbinicalAssignments,\n\t},\n\t{\n\t\tname: 'Account Rep Assignments',\n\t\tpath: `/contacts/:id/account-rep-assignments`,\n\t\tpermissionId: ContactModuleTabs.AccountRepAssignments,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `/contacts/:id/tasks`,\n\t\tpermissionId: ContactModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Notes',\n\t\tpath: `/contacts/:id/notes`,\n\t\tpermissionId: ContactModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'History',\n\t\tpath: '/contacts/:id/history',\n\t\tpermissionId: ContactModuleTabs.History,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `/contacts/:id/audit-trail`,\n\t},\n];\n","export const currentUserSettingInfoTabs = [\n\t{\n\t\tname: 'Info',\n\t\tpath: `/my-account`,\n\t},\n\t{\n\t\tname: 'Security',\n\t\tpath: `/my-account/security`,\n\t},\n\t{\n\t\tname: 'Restrictions',\n\t\tpath: `/my-account/restrictions`,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `/my-account/tasks`,\n\t},\n];\n","import { PermissionModule } from '../../enums/permission-module.enum';\n\nexport const customerIngredientCodeChangesUtilityModuleTabs = [\n\t{\n\t\tname: 'Ingredients',\n\t\tpath: `/ingredients/customer-ingredients`,\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.CustomerIngredients,\n\t},\n\t{\n\t\tname: 'Ingredient Batch',\n\t\tpath: `/ingredients/ingredient-batch`,\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.IngredientBatch,\n\t},\n\t{\n\t\tname: 'Review Ingredients',\n\t\tpath: `/ingredients/review-ingredients`,\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.ReviewIngredients,\n\t},\n\t{\n\t\tname: 'Code Change Utility',\n\t\tpath: `/ingredients/code-change-utilities`,\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.ReviewIngredients,\n\t},\n];\n","import { CustomerIngredientsModuleTabs } from '../../enums/permission-module.enum';\n\nexport const customerIngredientInfoTabs = [\n\t{\n\t\tname: 'Info',\n\t\tpath: `/ingredients/customer-ingredient/:id`,\n\t\tpermissionId: CustomerIngredientsModuleTabs.Info,\n\t},\n\t{\n\t\tname: 'Facilities',\n\t\tpath: `/ingredients/customer-ingredient/:id/facilities`,\n\t\tpermissionId: CustomerIngredientsModuleTabs.Facilities,\n\t},\n\t{\n\t\tname: 'Products',\n\t\tpath: `/ingredients/customer-ingredient/:id/products`,\n\t\tpermissionId: CustomerIngredientsModuleTabs.Products,\n\t},\n\t{\n\t\tname: 'Subset',\n\t\tpath: `/ingredients/customer-ingredient/:id/subset`,\n\t\tpermissionId: CustomerIngredientsModuleTabs.Subset,\n\t},\n\t{\n\t\tname: 'Purchase History',\n\t\tpath: `/ingredients/customer-ingredient/:id/purchase-history`,\n\t\tpermissionId: CustomerIngredientsModuleTabs.PurchaseHistory,\n\t},\n\t{\n\t\tname: 'Guidelines',\n\t\tpath: `/ingredients/customer-ingredient/:id/guidelines`,\n\t\tpermissionId: CustomerIngredientsModuleTabs.Guidelines,\n\t},\n\t{\n\t\tname: 'Similar Ingredients',\n\t\tpath: `/ingredients/customer-ingredient/:id/similar-ingredients`,\n\t\tpermissionId: CustomerIngredientsModuleTabs.SimilarIngredients,\n\t},\n\t{\n\t\tname: 'Batch Ingredients',\n\t\tpath: `/ingredients/customer-ingredient/:id/customer-related-batch-ingredients`,\n\t\tpermissionId: CustomerIngredientsModuleTabs.BatchIngredients,\n\t},\n\t{\n\t\tname: 'History',\n\t\tpath: `/ingredients/customer-ingredient/:id/history`,\n\t\tpermissionId: CustomerIngredientsModuleTabs.History,\n\t},\n\t{\n\t\tname: 'Notes',\n\t\tpath: `/ingredients/customer-ingredient/:id/notes`,\n\t\tpermissionId: CustomerIngredientsModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `/ingredients/customer-ingredient/:id/tasks`,\n\t\tpermissionId: CustomerIngredientsModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Dependent Products',\n\t\tpath: `/ingredients/customer-ingredient/:id/dependent-products`,\n\t\tpermissionId: CustomerIngredientsModuleTabs.DependentProducts,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `/ingredients/customer-ingredient/:id/audit-trail`,\n\t},\n];\n","import { PermissionModule } from '../../enums/permission-module.enum';\n\nexport const customerIngredientModuleTabs = [\n\t{\n\t\tname: 'Ingredients',\n\t\tpath: `/ingredients/customer-ingredients`,\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.CustomerIngredients,\n\t},\n\t{\n\t\tname: 'Ingredient Batch',\n\t\tpath: `/ingredients/ingredient-batch`,\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.IngredientBatch,\n\t},\n\t{\n\t\tname: 'Review Ingredients',\n\t\tpath: `/ingredients/review-ingredients`,\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.ReviewIngredients,\n\t},\n\t{\n\t\tname: 'Code Change Utility',\n\t\tpath: `/ingredients/code-change-utilities`,\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.ReviewIngredients,\n\t},\n];\n","import { ApplicationModuleTabs, FacilityModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const facilityApplicationTabs: Tab[] = [\n\t{\n\t\tname: 'Summary',\n\t\tpath: `:id/summary`,\n\t\tpermissionId: ApplicationModuleTabs.Summary,\n\t},\n\t{\n\t\tname: 'Facilities',\n\t\tpath: `:id/facilities`,\n\t\tpermissionId: ApplicationModuleTabs.Facilities,\n\t},\n\t{\n\t\tname: 'Facility Contract',\n\t\tpath: `:id/facility-contract`,\n\t\tpermissionId: ApplicationModuleTabs.FacilityContract,\n\t},\n\t{\n\t\tname: 'Initial Visit',\n\t\tpath: `:id/initial-visit`,\n\t\tpermissionId: ApplicationModuleTabs.InitialVisit,\n\t},\n\t{\n\t\tname: 'Contacts',\n\t\tpath: `:id/contacts`,\n\t\tpermissionId: ApplicationModuleTabs.Contacts,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `:id/tasks`,\n\t\tpermissionId: ApplicationModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Application Info',\n\t\tpath: `:id/application-info`,\n\t\tpermissionId: ApplicationModuleTabs.ApplicationInfo,\n\t},\n\t{\n\t\tname: 'Referral',\n\t\tpath: `:id/referral`,\n\t\tpermissionId: ApplicationModuleTabs.Referral,\n\t\thidden: true,\n\t},\n\t{\n\t\tname: 'Products',\n\t\tpath: `:id/products`,\n\t\tpermissionId: ApplicationModuleTabs.Products,\n\t},\n\t{\n\t\tname: 'Ingredients',\n\t\tpath: `:id/ingredients`,\n\t\tpermissionId: ApplicationModuleTabs.Ingredients,\n\t},\n\t{\n\t\tname: 'History',\n\t\tpath: ':id/history',\n\t\tpermissionId: FacilityModuleTabs.History,\n\t},\n\t{\n\t\tname: 'Notes',\n\t\tpath: `:id/notes`,\n\t\tpermissionId: FacilityModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `:id/audit-trail`,\n\t},\n];\n","import { FacilityModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const facilityInfoTabs: Tab[] = [\n\t{\n\t\tname: 'Info',\n\t\tpath: `/facilities/:id`,\n\t\tpermissionId: FacilityModuleTabs.Info,\n\t},\n\t{\n\t\tname: 'Contacts',\n\t\tpath: `/facilities/:id/contacts`,\n\t\tpermissionId: FacilityModuleTabs.Contacts,\n\t},\n\t{\n\t\tname: 'Companies',\n\t\tpath: `/facilities/:id/companies`,\n\t\tpermissionId: FacilityModuleTabs.Companies,\n\t},\n\t{\n\t\tname: 'Alias',\n\t\tpath: `/facilities/:id/alias`,\n\t\tpermissionId: FacilityModuleTabs.Alias,\n\t},\n\t{\n\t\tname: 'Profile',\n\t\tpath: `/facilities/:id/profile`,\n\t\tpermissionId: FacilityModuleTabs.Profile,\n\t},\n\t{\n\t\tname: 'Visits',\n\t\tpath: `/facilities/:id/visits`,\n\t\tpermissionId: FacilityModuleTabs.VisitsAndTrips,\n\t},\n\t{\n\t\tname: 'Facility Contract',\n\t\tpath: `/facilities/:id/contracts`,\n\t\tpermissionId: FacilityModuleTabs.FacilityContract,\n\t},\n\t{\n\t\tname: 'Product Publication',\n\t\tpath: `/facilities/:id/product-publication`,\n\t\tpermissionId: FacilityModuleTabs.ProductPublication,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `/facilities/:id/tasks`,\n\t\tpermissionId: FacilityModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Instructions',\n\t\tpath: `/facilities/:id/instructions`,\n\t\tpermissionId: FacilityModuleTabs.Instructions,\n\t},\n\t{\n\t\tname: 'Guidelines',\n\t\tpath: `/facilities/:id/guidelines`,\n\t\tpermissionId: FacilityModuleTabs.Guidelines,\n\t},\n\t{\n\t\tname: 'Products',\n\t\tpath: `/facilities/:id/products`,\n\t\tpermissionId: FacilityModuleTabs.Products,\n\t},\n\t{\n\t\tname: 'Invoices',\n\t\tpath: `/facilities/:id/invoices`,\n\t\tpermissionId: FacilityModuleTabs.Invoices,\n\t},\n\t{\n\t\tname: 'Processes',\n\t\tpath: `/facilities/:id/processes`,\n\t\tpermissionId: FacilityModuleTabs.Processes,\n\t},\n\t{\n\t\tname: 'Kosher Certificate Info',\n\t\tpath: `/facilities/:id/kosher-certificate-info`,\n\t\tpermissionId: FacilityModuleTabs.KosherCertificateInfo,\n\t},\n {\n\t\tname: 'Kosher Certificates',\n\t\tpath: '/facilities/:id/kosher-certificates',\n\t\tpermissionId: FacilityModuleTabs.KosherCertificates,\n\t},\n\t{\n\t\tname: 'Ingredients',\n\t\tpath: `/facilities/:id/ingredients`,\n\t\tpermissionId: FacilityModuleTabs.Ingredients,\n\t},\n\t{\n\t\tname: 'Visit Report Questions',\n\t\tpath: `/facilities/:id/visit-report-questions`,\n\t\tpermissionId: FacilityModuleTabs.VisitReportQuestions,\n\t},\n\t{\n\t\tname: 'Notes',\n\t\tpath: `/facilities/:id/notes`,\n\t\tpermissionId: FacilityModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'History',\n\t\tpath: '/facilities/:id/history',\n\t\tpermissionId: FacilityModuleTabs.History,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `/facilities/:id/audit-trail`,\n\t},\n];\n","import { UserGroupsTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const groupInfoTabs: Tab[] = [\n\t{\n\t\tname: 'Users',\n\t\tpath: `/settings/groups/:id/users`,\n\t\tpermissionId: UserGroupsTabs.Users,\n\t},\n\t{\n\t\tname: 'Notifications',\n\t\tpath: `/settings/groups/:id/notifications`,\n\t\tpermissionId: UserGroupsTabs.Notifications,\n\t},\n];\n","import { IngredientBatchModuleTabs } from '../../enums/permission-module.enum';\n\nexport const ingredientBatchInfoTabs = [\n\t{\n\t\tname: 'Batch ingredients',\n\t\tpath: `ingredients/ingredient-batch/:id`,\n\t\tpermissionId: IngredientBatchModuleTabs.BatchIngredients,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `ingredients/ingredient-batch/:id/tasks`,\n\t\tpermissionId: IngredientBatchModuleTabs.Tasks,\n\t},\n];\n","import { PermissionModule } from '../../enums/permission-module.enum';\n\nexport const kosherCertificateModuleTabs = [\n\t{\n\t\tname: 'Kosher Certificates',\n\t\tpath: `/certificates`,\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.KosherCertificate,\n\t},\n\t{\n\t\tname: 'KC Groups',\n\t\tpath: `/certificates/kc-groups`,\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.KCGroup,\n\t},\n];\n","import { MasterIngredientTabs } from '../../enums/permission-module.enum';\n\nexport const masterIngredientInfoTabs = [\n\t{\n\t\tname: 'Info',\n\t\tpath: `/master-ingredient/:id`,\n\t\tpermissionId: MasterIngredientTabs.Info,\n\t},\n\t{\n\t\tname: 'Companies',\n\t\tpath: `/master-ingredient/:id/companies`,\n\t\tpermissionId: MasterIngredientTabs.Companies,\n\t},\n\t{\n\t\tname: 'Facilities',\n\t\tpath: `/master-ingredient/:id/facilities`,\n\t\tpermissionId: MasterIngredientTabs.Facilities,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `/master-ingredient/:id/tasks`,\n\t\tpermissionId: MasterIngredientTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Kosher Letters',\n\t\tpath: `/master-ingredient/:id/kosher-letters`,\n\t\tpermissionId: MasterIngredientTabs.KosherLetters,\n\t},\n\t{\n\t\tname: 'Categories',\n\t\tpath: `/master-ingredient/:id/categories`,\n\t\tpermissionId: MasterIngredientTabs.Companies,\n\t},\n\t{\n\t\tname: 'History',\n\t\tpath: `/master-ingredient/:id/history`,\n\t\tpermissionId: MasterIngredientTabs.History,\n\t},\n\t{\n\t\tname: 'Notes',\n\t\tpath: `/master-ingredient/:id/notes`,\n\t\tpermissionId: MasterIngredientTabs.Notes,\n\t},\n\t{\n\t\tname: 'Changes History',\n\t\tpath: `/master-ingredient/:id/changes-history`,\n\t\tpermissionId: MasterIngredientTabs.ChangesHistory,\n\t},\n\t{\n\t\tname: 'Customer Ingredients',\n\t\tpath: `/master-ingredient/:id/customer-ingredients`,\n\t\tpermissionId: MasterIngredientTabs.CustomerIngredients,\n\t},\n\t{\n\t\tname: 'Dependent Products',\n\t\tpath: `/master-ingredient/:id/dependent-products`,\n\t\tpermissionId: MasterIngredientTabs.DependentProducts,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `/master-ingredient/:id/audit-trail`,\n\t},\n];\n","import { AppRouteIdentifier } from '../../enums/app-route-identifier.enum';\nimport { appSpecialRoutes } from '../app-routes.const';\n\nexport const masterIngredientModuleTabs = [\n\t{\n\t\tname: 'Master Ingredients',\n\t\tpath: appSpecialRoutes[AppRouteIdentifier.MasterIngredientList].path,\n\t\tisModule: appSpecialRoutes[AppRouteIdentifier.MasterIngredientList].isModule,\n\t\tpermissionId: appSpecialRoutes[AppRouteIdentifier.MasterIngredientList].permissionId,\n\t},\n\t{\n\t\tname: 'Changed MI',\n\t\tpath: appSpecialRoutes[AppRouteIdentifier.ChangedMasterIngredient].path,\n\t\tisModule: appSpecialRoutes[AppRouteIdentifier.ChangedMasterIngredient].isModule,\n\t\tpermissionId: appSpecialRoutes[AppRouteIdentifier.ChangedMasterIngredient].permissionId,\n\t},\n];\n","import { ApplicationModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const applicationPrivateLabelerTabs: Tab[] = [\n\t{\n\t\tname: 'Private Label',\n\t\tpath: `:id/private-label`,\n\t\tpermissionId: ApplicationModuleTabs.PrivateLabel,\n\t},\n\t{\n\t\tname: 'Company',\n\t\tpath: `:id/company`,\n\t\tpermissionId: ApplicationModuleTabs.Company,\n\t},\n\t{\n\t\tname: 'PL contract',\n\t\tpath: `:id/pl-contract`,\n\t\tpermissionId: ApplicationModuleTabs.PLcontract,\n\t},\n\t{\n\t\tname: 'Contacts',\n\t\tpath: `:id/contacts`,\n\t\tpermissionId: ApplicationModuleTabs.Contacts,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `:id/tasks`,\n\t\tpermissionId: ApplicationModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Application Info',\n\t\tpath: `:id/application-info`,\n\t\tpermissionId: ApplicationModuleTabs.ApplicationInfo,\n\t},\n\t{\n\t\tname: 'Products',\n\t\tpath: `:id/products`,\n\t\tpermissionId: ApplicationModuleTabs.Products,\n\t},\n\t{\n\t\tname: 'Kosher Certificates',\n\t\tpath: `:id/certificates`,\n\t\tpermissionId: ApplicationModuleTabs.KosherCertificates,\n\t},\n\t{\n\t\tname: 'Invoicing Group',\n\t\tpath: `:id/invoicing-group`,\n\t\tpermissionId: ApplicationModuleTabs.InvoicingGroups,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `:id/audit-trail`,\n\t},\n];\n","import { PrivateLabelerModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const privateLabelerInfoTabs: Tab[] = [\n\t{\n\t\tname: 'Info',\n\t\tpath: `/private-label/:id`,\n\t\tpermissionId: PrivateLabelerModuleTabs.Info,\n\t},\n\t{\n\t\tname: 'Contacts',\n\t\tpath: `/private-label/:id/contacts`,\n\t\tpermissionId: PrivateLabelerModuleTabs.Contacts,\n\t},\n\t{\n\t\tname: 'Companies',\n\t\tpath: `/private-label/:id/companies`,\n\t\tpermissionId: PrivateLabelerModuleTabs.Companies,\n\t},\n\t{\n\t\tname: 'PL Contract',\n\t\tpath: `/private-label/:id/pl-contract`,\n\t\tpermissionId: PrivateLabelerModuleTabs.PLContract,\n\t},\n\t{\n\t\tname: 'Alias',\n\t\tpath: `/private-label/:id/alias`,\n\t\tpermissionId: PrivateLabelerModuleTabs.Alias,\n\t},\n\t{\n\t\tname: 'Brands',\n\t\tpath: `/private-label/:id/brands`,\n\t\tpermissionId: PrivateLabelerModuleTabs.Brands,\n\t},\n {\n\t\tname: 'History',\n\t\tpath: '/private-label/:id/history',\n\t\tpermissionId: PrivateLabelerModuleTabs.History,\n\t},\n\t{\n\t\tname: 'Notes',\n\t\tpath: `/private-label/:id/notes`,\n\t\tpermissionId: PrivateLabelerModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'Guidelines',\n\t\tpath: `/private-label/:id/guidelines`,\n\t\tpermissionId: PrivateLabelerModuleTabs.Guidelines,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `/private-label/:id/tasks`,\n\t\tpermissionId: PrivateLabelerModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Invoices',\n\t\tpath: `/private-label/:id/invoices`,\n\t\tpermissionId: PrivateLabelerModuleTabs.Invoices,\n\t},\n\t{\n\t\tname: 'Kosher Certificate Info',\n\t\tpath: '/private-label/:id/kosher-certificate-info',\n\t\tpermissionId: PrivateLabelerModuleTabs.KosherCertificateInfo,\n\t},\n\t{\n\t\tname: 'Kosher Certificates',\n\t\tpath: '/private-label/:id/kosher-certificates',\n\t\tpermissionId: PrivateLabelerModuleTabs.KosherCertificate,\n\t},\n\t{\n\t\tname: 'Products',\n\t\tpath: '/private-label/:id/products',\n\t\tpermissionId: PrivateLabelerModuleTabs.Products,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `/private-label/:id/audit-trail`,\n\t},\n];\n","export const productBatchInfoTabs = [\n\t{\n\t\tname: 'Batch products',\n\t\tpath: `product/product-batch/item/:id`,\n\t},\n];\n","import { ProductModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const productInfoTabs: Tab[] = [\n\t{\n\t\tname: 'Info',\n\t\tpath: '/products/:id',\n\t\tpermissionId: ProductModuleTabs.Info,\n\t},\n\t{\n\t\tname: 'Evaluations',\n\t\tpath: '/products/:id/evaluations',\n\t\tpermissionId: ProductModuleTabs.Evaluations,\n\t},\n\t{\n\t\tname: 'Formulas',\n\t\tpath: '/products/:id/formulas',\n\t\tpermissionId: ProductModuleTabs.Formulas,\n\t},\n\t{\n\t\tname: 'Facilities',\n\t\tpath: '/products/:id/facilities',\n\t\tpermissionId: ProductModuleTabs.Facilities,\n\t},\n\t{\n\t\tname: 'Processes',\n\t\tpath: '/products/:id/processes',\n\t\tpermissionId: ProductModuleTabs.Processes,\n\t},\n\t{\n\t\tname: 'Same As Products',\n\t\tpath: '/products/:id/same-as',\n\t\tpermissionId: ProductModuleTabs.SameAs,\n\t},\n\t{\n\t\tname: 'Dependent Products',\n\t\tpath: '/products/:id/dependent-products',\n\t\tpermissionId: ProductModuleTabs.DependentProducts,\n\t},\n\t{\n\t\tname: 'Notes',\n\t\tpath: '/products/:id/notes',\n\t\tpermissionId: ProductModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'History Notes',\n\t\tpath: '/products/:id/history',\n\t\tpermissionId: ProductModuleTabs.History,\n\t},\n\t{\n\t\tname: 'Categories',\n\t\tpath: '/products/:id/categories',\n\t\tpermissionId: ProductModuleTabs.Categories,\n\t},\n\t{\n\t\tname: 'Kosher Certificates',\n\t\tpath: '/products/:id/kosher-certificates',\n\t\tpermissionId: ProductModuleTabs.KosherCertificates,\n\t},\n\n\t{\n\t\tname: 'Production History',\n\t\tpath: '/products/:id/production-history',\n\t\tpermissionId: ProductModuleTabs.ProductionHistory,\n\t},\n\t{\n\t\tname: 'Product Labels',\n\t\tpath: '/products/:id/product-labels',\n\t\tpermissionId: ProductModuleTabs.ProductLabels,\n\t},\n\t{\n\t\tname: 'KC Group',\n\t\tpath: '/products/:id/kc-group',\n\t\tpermissionId: ProductModuleTabs.KCGroup,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: '/products/:id/tasks',\n\t\tpermissionId: ProductModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `/products/:id/audit-trail`,\n\t},\n];\n","import { PermissionModule } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const productModuleTabs: Tab[] = [\n\t{\n\t\tname: 'Products',\n\t\tpath: `/products`,\n\t\tpermissionId: PermissionModule.Products,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Product Batch',\n\t\tpath: `/products/product-batch/list`,\n\t\tpermissionId: PermissionModule.ProductBatch,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Review Products',\n\t\tpath: `/products/review-products/list`,\n\t\tpermissionId: PermissionModule.ReviewProducts,\n\t\tisModule: true,\n\t},\n];\n","import { ApplicationModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const restaurantApplicationTabs: Tab[] = [\n\t{\n\t\tname: 'Summary',\n\t\tpath: `:id/summary`,\n\t\tpermissionId: ApplicationModuleTabs.Summary,\n\t},\n\t{\n\t\tname: 'Company',\n\t\tpath: `:id/company`,\n\t\tpermissionId: ApplicationModuleTabs.Company,\n\t},\n\t{\n\t\tname: 'Facilities',\n\t\tpath: `:id/facilities`,\n\t\tpermissionId: ApplicationModuleTabs.Facilities,\n\t},\n\t{\n\t\tname: 'Company Contract',\n\t\tpath: `:id/company-contract`,\n\t\tpermissionId: ApplicationModuleTabs.CompanyContract,\n\t},\n\t{\n\t\tname: 'Facility Contract',\n\t\tpath: `:id/facility-contract`,\n\t\tpermissionId: ApplicationModuleTabs.FacilityContract,\n\t},\n\t{\n\t\tname: 'Initial Visit',\n\t\tpath: `:id/initial-visit`,\n\t\tpermissionId: ApplicationModuleTabs.InitialVisit,\n\t},\n\t{\n\t\tname: 'Contacts',\n\t\tpath: `:id/contacts`,\n\t\tpermissionId: ApplicationModuleTabs.Contacts,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `:id/tasks`,\n\t\tpermissionId: ApplicationModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Application Info',\n\t\tpath: `:id/application-info`,\n\t\tpermissionId: ApplicationModuleTabs.ApplicationInfo,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `:id/audit-trail`,\n\t},\n];\n","import { PermissionModule } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const settingsModuleTabs: Tab[] = [\n\t{\n\t\tname: 'Users',\n\t\tpath: `/settings/users`,\n\t\tpermissionId: PermissionModule.Users,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Roles',\n\t\tpath: `/settings/roles`,\n\t\tpermissionId: PermissionModule.Roles,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Groups',\n\t\tpath: `/settings/groups`,\n\t\tpermissionId: PermissionModule.Groups,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Profile Templates',\n\t\tpath: `/settings/profile-templates`,\n\t\tpermissionId: PermissionModule.ProfileTemplates,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Document Templates',\n\t\tpath: `/settings/document-templates`,\n\t\tpermissionId: PermissionModule.DocumentTemplates,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Managing Rules',\n\t\tpath: `/settings/managing-rules`,\n\t\tpermissionId: PermissionModule.RulesEngine,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Scripts',\n\t\tpath: `/settings/scripts`,\n\t\tpermissionId: PermissionModule.Scripts,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Categories',\n\t\tpath: `/settings/categories`,\n\t\tpermissionId: PermissionModule.Categories,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Default Values',\n\t\tpath: `/settings/default-values`,\n\t\tpermissionId: PermissionModule.DefaultValues,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Notifications',\n\t\tpath: `/settings/notifications-whitelist`,\n\t\tpermissionId: PermissionModule.Notifications,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Acumatica Logs',\n\t\tpath: `/settings/accounting-logs`,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: '2-Way Sync Logs',\n\t\tpath: `/settings/two-way-sync-logs`,\n\t\tisModule: true,\n\t},\n];\n","import { PermissionModule } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const submitCertificateTabs: Tab[] = [\n\t{\n\t\tname: 'Info',\n\t\tpath: `/certificates/submit-certificate/:id`,\n\t\tpermissionId: PermissionModule.KosherCertificate,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `/certificates/submit-certificate/:id/audit-trail`,\n\t},\n];\n","import { PermissionModule } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const taskModuleTabs: Tab[] = [\n\t{\n\t\tname: 'Info',\n\t\tpath: `/tasks/:id`,\n\t\tpermissionId: PermissionModule.Task,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `/tasks/:id/audit-trail`,\n\t},\n];\n","import { TripModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const tripInfoTabs: Tab[] = [\n\t{\n\t\tname: 'Info',\n\t\tpath: `/trips/:id`,\n\t\tpermissionId: TripModuleTabs.Info,\n\t},\n\t{\n\t\tname: 'Expenses',\n\t\tpath: `/trips/:id/expenses`,\n\t\tpermissionId: TripModuleTabs.Expenses,\n\t},\n\t{\n\t\tname: 'Itinerary',\n\t\tpath: `/trips/:id/itinerary`,\n\t\tpermissionId: TripModuleTabs.Itinerary,\n\t},\n\t{\n\t\tname: 'Invoices',\n\t\tpath: `/trips/:id/invoices`,\n\t\tpermissionId: TripModuleTabs.Invoices,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `/trips/:id/tasks`,\n\t\tpermissionId: TripModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Payment Notes',\n\t\tpath: `/trips/:id/payment-notes`,\n\t\tpermissionId: TripModuleTabs.PaymentNotes,\n\t},\n\t{\n\t\tname: 'Notes',\n\t\tpath: `/trips/:id/notes`,\n\t\tpermissionId: TripModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'Facility Contract Notes',\n\t\tpath: `/trips/:id/facility-contract-notes`,\n\t\tpermissionId: TripModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `/trips/:id/audit-trail`,\n\t},\n];\n","import { UKDSearchModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const ukdInfoTabs: Tab[] = [\n\t{\n\t\tname: 'Info',\n\t\tpath: `/ukd-search/:id/info`,\n\t\tpermissionId: UKDSearchModuleTabs.Info,\n\t},\n\t{\n\t\tname: 'History',\n\t\tpath: `/ukd-search/:id/history`,\n\t\tpermissionId: UKDSearchModuleTabs.History,\n\t},\n];\n","import { UserModuleTabs } from '../../enums/permission-module.enum';\n\nexport const userSettingInfoTabs = [\n\t{\n\t\tname: 'Info',\n\t\tpath: `/user-settings/:id`,\n\t\tpermissionId: UserModuleTabs.Info,\n\t},\n\t{\n\t\tname: 'Security',\n\t\tpath: `/user-settings/:id/security`,\n\t\tpermissionId: UserModuleTabs.Security,\n\t},\n\t{\n\t\tname: 'Restrictions',\n\t\tpath: `/user-settings/:id/restrictions`,\n\t\tpermissionId: UserModuleTabs.Restrictions,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `/user-settings/:id/tasks`,\n\t\tpermissionId: UserModuleTabs.Tasks,\n\t},\n];\n","import { VendorModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const vendorInfoTabs: Tab[] = [\n\t{\n\t\tname: 'Info',\n\t\tpath: `/vendors/:id`,\n\t\tpermissionId: VendorModuleTabs.Info,\n\t},\n\t{\n\t\tname: 'Contacts',\n\t\tpath: `/vendors/:id/contacts`,\n\t\tpermissionId: VendorModuleTabs.Contacts,\n\t},\n\t{\n\t\tname: 'Alias',\n\t\tpath: `/vendors/:id/alias`,\n\t\tpermissionId: VendorModuleTabs.Alias,\n\t},\n\t{\n\t\tname: 'Vendor Links',\n\t\tpath: `/vendors/:id/parent-vendor-links`,\n\t\tpermissionId: VendorModuleTabs.VendorLinks,\n\t},\n\t{\n\t\tname: 'Profile',\n\t\tpath: `/vendors/:id/profile`,\n\t\tpermissionId: VendorModuleTabs.Profile,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `/vendors/:id/tasks`,\n\t\tpermissionId: VendorModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Master Ingredients',\n\t\tpath: `/vendors/:id/master-ingredients`,\n\t\tpermissionId: VendorModuleTabs.MasterIngredients,\n\t},\n\t{\n\t\tname: 'Agencies',\n\t\tpath: `/vendors/:id/agencies`,\n\t\tpermissionId: VendorModuleTabs.Agencies,\n\t},\n {\n\t\tname: 'History',\n\t\tpath: `/vendors/:id/history`,\n\t\tpermissionId: VendorModuleTabs.History,\n\t},\n\t{\n\t\tname: 'Notes',\n\t\tpath: `/vendors/:id/notes`,\n\t\tpermissionId: VendorModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `/vendors/:id/audit-trail`,\n\t},\n];\n","import { VisitModuleTabs } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const visitInfoTabs: Tab[] = [\n\t{\n\t\tname: 'Info',\n\t\tpath: `/visits/:id`,\n\t\tpermissionId: VisitModuleTabs.Info,\n\t},\n\t{\n\t\tname: 'Report questions',\n\t\tpath: `/visits/:id/report-questions`,\n\t\tpermissionId: VisitModuleTabs.ReportQuestions,\n\t},\n\t{\n\t\tname: 'Products',\n\t\tpath: `/visits/:id/products`,\n\t\tpermissionId: VisitModuleTabs.Products,\n\t},\n\t{\n\t\tname: 'Payment Notes',\n\t\tpath: `/visits/:id/payment-notes`,\n\t\tpermissionId: VisitModuleTabs.PaymentNotes,\n\t},\n\t{\n\t\tname: 'Notes',\n\t\tpath: `/visits/:id/notes`,\n\t\tpermissionId: VisitModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'Facility Contract Notes',\n\t\tpath: `/visits/:id/facility-contract-notes`,\n\t\tpermissionId: VisitModuleTabs.Notes,\n\t},\n\t{\n\t\tname: 'Expenses',\n\t\tpath: `/visits/:id/expenses`,\n\t\tpermissionId: VisitModuleTabs.Expenses,\n\t},\n\t{\n\t\tname: 'Tasks',\n\t\tpath: `/visits/:id/tasks`,\n\t\tpermissionId: VisitModuleTabs.Tasks,\n\t},\n\t{\n\t\tname: 'Audit Trail',\n\t\tpath: `/visits/:id/audit-trail`,\n\t},\n];\n","import { PermissionModule } from '../../enums/permission-module.enum';\nimport { Tab } from '../../models/tab.model';\n\nexport const visitModuleTabs: Tab[] = [\n\t{\n\t\tname: 'Visits',\n\t\tpath: `/visits`,\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.Visits,\n\t},\n\t{\n\t\tname: 'Trips',\n\t\tpath: `/trips`,\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.Trips,\n\t},\n\t{\n\t\tname: 'Generate Invoices',\n\t\tpath: `/generateInvoices`,\n\t\tisModule: true,\n\t},\n\t{\n\t\tname: 'Amex',\n\t\tpath: `/amex`,\n\t\tisModule: true,\n\t\tpermissionId: PermissionModule.Amex,\n\t},\n];\n","import { RoleModuleTabs } from '../../enums/permission-module.enum';\n\nexport const roleSettingInfoTabs = [\n\t{\n\t\tname: 'Permissions',\n\t\tpath: `/role-settings/:id`,\n\t\tpermissionId: RoleModuleTabs.Permissions,\n\t},\n];\n","import { Injectable } from '@angular/core';\nimport { cloneDeep } from 'lodash';\nimport { Observable, Subject } from 'rxjs';\nimport { accountingRenewalInfoTabs } from '../constants/entity-tabs/accounting-renewal-info-tabs.constant';\nimport { agencyInfoTabs } from '../constants/entity-tabs/agency-info-tabs.constant';\nimport { analyzeProductsTabs } from '../constants/entity-tabs/analyze-products-info-tabs.constant';\nimport { companyApplicationTabs } from '../constants/entity-tabs/company-application-tabs.constant';\nimport { companyInfoTabs } from '../constants/entity-tabs/company-info-tabs.constant';\nimport { companyModuleTabs } from '../constants/entity-tabs/company-module-tabs.constant';\nimport { contactInfoTabs } from '../constants/entity-tabs/contact-info-tabs.constant';\nimport { currentUserSettingInfoTabs } from '../constants/entity-tabs/current-user-info-tabs.constant';\nimport { customerIngredientCodeChangesUtilityModuleTabs } from '../constants/entity-tabs/customer-ingredient-code-changes-utility.tabs';\nimport { customerIngredientInfoTabs } from '../constants/entity-tabs/customer-ingredient-info-tabs.constant';\nimport { customerIngredientModuleTabs } from '../constants/entity-tabs/customer-ingredient-module-tabs.constant';\nimport { facilityApplicationTabs } from '../constants/entity-tabs/facility-application-tabs.constant';\nimport { facilityInfoTabs } from '../constants/entity-tabs/facility-info-tabs.constant';\nimport { groupInfoTabs } from '../constants/entity-tabs/group-info-tabs.constant';\nimport { ingredientBatchInfoTabs } from '../constants/entity-tabs/ingredient-batch-info-constant';\nimport { kosherCertificateModuleTabs } from '../constants/entity-tabs/kosher-certificate-module-tabs.constant';\nimport { masterIngredientInfoTabs } from '../constants/entity-tabs/master-ingredient-info-tabs.constant';\nimport { masterIngredientModuleTabs } from '../constants/entity-tabs/master-ingredient-module-tabs.constant';\nimport { applicationPrivateLabelerTabs as privateLabelerApplicationTabs } from '../constants/entity-tabs/private-labeler-application-tabs.constant';\nimport { privateLabelerInfoTabs } from '../constants/entity-tabs/private-labeler-info-tabs.constant';\nimport { productBatchInfoTabs } from '../constants/entity-tabs/product-batch-info-tabs.constant';\nimport { productInfoTabs } from '../constants/entity-tabs/product-info-tabs.constant';\nimport { productModuleTabs } from '../constants/entity-tabs/product-module-tabs.constant';\nimport { restaurantApplicationTabs } from '../constants/entity-tabs/restaurant-application-tabs.constant';\nimport { settingsModuleTabs } from '../constants/entity-tabs/settings-module-tabs.constant';\nimport { submitCertificateTabs } from '../constants/entity-tabs/submit-certificate.constant';\nimport { taskModuleTabs } from '../constants/entity-tabs/task-info-tabs.constant';\nimport { tripInfoTabs } from '../constants/entity-tabs/trips-info-tabs.constant';\nimport { ukdInfoTabs } from '../constants/entity-tabs/ukd-info-tabs.constant';\nimport { userSettingInfoTabs } from '../constants/entity-tabs/user-settings-info-tabs.constant';\nimport { vendorInfoTabs } from '../constants/entity-tabs/vendor-info-tabs.constant';\nimport { visitInfoTabs } from '../constants/entity-tabs/visit-info-tabs.constant';\nimport { visitModuleTabs } from '../constants/entity-tabs/visit-module-tabs.constant';\nimport { ApplicationType } from '../enums/application-type.enum';\nimport { TabsType } from '../enums/tabs-type.enum';\nimport { Tab } from '../models/tab.model';\nimport { UrlHelperService } from './helpers/url-helper.service';\nimport { roleSettingInfoTabs } from '../constants/entity-tabs/role-settings-info-tabs.constant';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class TabsService {\n\ttabNotifications$ = new Subject<{ value: number; tabName: string }>();\n\n\tconstructor(private urlHelperService: UrlHelperService) {}\n\n\tgetTabsObservable(type: TabsType, entityId?: number | string): Observable {\n\t\treturn new Observable(observer => {\n\t\t\tobserver.next(this.getTabs(type, entityId));\n\t\t\tobserver.complete();\n\t\t});\n\t}\n\n\tgetTabs(type: TabsType, entityId?: number | string): Tab[] {\n\t\tlet tabs: Tab[] = [];\n\t\tswitch (type) {\n\t\t\tcase TabsType.CompanyModule:\n\t\t\t\ttabs = cloneDeep(companyModuleTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.CompanyInfo:\n\t\t\t\ttabs = cloneDeep(companyInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.FacilityInfo:\n\t\t\t\ttabs = cloneDeep(facilityInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.PrivateLabelerInfo:\n\t\t\t\ttabs = cloneDeep(privateLabelerInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.VendorInfo:\n\t\t\t\ttabs = cloneDeep(vendorInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.AgencyInfo:\n\t\t\t\ttabs = cloneDeep(agencyInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.ContactInfo:\n\t\t\t\ttabs = cloneDeep(contactInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.UserSettingsInfo:\n\t\t\t\ttabs = cloneDeep(userSettingInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.RoleSettingsInfo:\n\t\t\t\ttabs = cloneDeep(roleSettingInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.CurrentUserInfo:\n\t\t\t\ttabs = cloneDeep(currentUserSettingInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.VisitsInfo:\n\t\t\t\ttabs = cloneDeep(visitInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.TripsInfo:\n\t\t\t\ttabs = cloneDeep(tripInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.VisitsModule:\n\t\t\t\ttabs = cloneDeep(visitModuleTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.SettingsModule:\n\t\t\t\ttabs = cloneDeep(settingsModuleTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.GroupInfo:\n\t\t\t\ttabs = cloneDeep(groupInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.MasterIngredientInfo:\n\t\t\t\ttabs = cloneDeep(masterIngredientInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.CustomerIngredientInfo:\n\t\t\t\ttabs = cloneDeep(customerIngredientInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.CustomerIngredientModule:\n\t\t\t\ttabs = cloneDeep(customerIngredientModuleTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.ProductInfo:\n\t\t\t\ttabs = cloneDeep(productInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.ProductsModule:\n\t\t\t\ttabs = cloneDeep(productModuleTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.IngredientBatchInfo:\n\t\t\t\ttabs = cloneDeep(ingredientBatchInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.ProductBatch:\n\t\t\t\ttabs = cloneDeep(productBatchInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.AccountingRenewal:\n\t\t\t\ttabs = cloneDeep(accountingRenewalInfoTabs);\n\t\t\t\tthis.setAccountingRenewalTabPath(tabs, entityId);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.MasterIngredientModule:\n\t\t\t\ttabs = cloneDeep(masterIngredientModuleTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.KosherCertificateModule:\n\t\t\t\ttabs = cloneDeep(kosherCertificateModuleTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.CompanyApplicationInfo:\n\t\t\t\ttabs = cloneDeep(companyApplicationTabs);\n\t\t\t\tthis.appendApplicationTypeRoute(tabs, ApplicationType.Company);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.FacilityApplicationInfo:\n\t\t\t\ttabs = cloneDeep(facilityApplicationTabs);\n\t\t\t\tthis.appendApplicationTypeRoute(tabs, ApplicationType.Facility);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.PrivateLabelerApplicationInfo:\n\t\t\t\ttabs = cloneDeep(privateLabelerApplicationTabs);\n\t\t\t\tthis.appendApplicationTypeRoute(tabs, ApplicationType.PrivateLabel);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.RestaurantApplicationInfo:\n\t\t\t\ttabs = cloneDeep(restaurantApplicationTabs);\n\t\t\t\tthis.appendApplicationTypeRoute(tabs, ApplicationType.Restaurant);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.UkdSearchInfo:\n\t\t\t\ttabs = cloneDeep(ukdInfoTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.AnalyzeProductInfo:\n\t\t\t\ttabs = cloneDeep(analyzeProductsTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.TaskInfo:\n\t\t\t\ttabs = cloneDeep(taskModuleTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.SubmitCertificateInfo:\n\t\t\t\ttabs = cloneDeep(submitCertificateTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.CustomerIngredientCodeChangesUtilityModuleTabs:\n\t\t\t\ttabs = cloneDeep(customerIngredientCodeChangesUtilityModuleTabs);\n\t\t\t\tbreak;\n\t\t\tcase TabsType.None:\n\t\t\tdefault:\n\t\t\t\ttabs = [];\n\t\t}\n\n\t\tif (entityId) {\n\t\t\ttabs.forEach(tab => {\n\t\t\t\ttab.path = this.urlHelperService.replaceIdInUrl(tab.path, entityId);\n\t\t\t});\n\t\t}\n\n\t\treturn tabs;\n\t}\n\n\tprivate appendApplicationTypeRoute(tabs: Tab[], applicationType: ApplicationType) {\n\t\tlet prefix = '';\n\t\tswitch (applicationType) {\n\t\t\tcase ApplicationType.Company:\n\t\t\t\tprefix = '/applications/company-application/';\n\t\t\t\tbreak;\n\t\t\tcase ApplicationType.Facility:\n\t\t\t\tprefix = '/applications/facility-application/';\n\t\t\t\tbreak;\n\t\t\tcase ApplicationType.PrivateLabel:\n\t\t\t\tprefix = '/applications/private-label-application/';\n\t\t\t\tbreak;\n\t\t\tcase ApplicationType.Restaurant:\n\t\t\t\tprefix = '/applications/restaurant-application/';\n\t\t\t\tbreak;\n\t\t}\n\t\ttabs.forEach(tab => {\n\t\t\ttab.path = prefix + tab.path;\n\t\t});\n\t}\n\n\tprivate setAccountingRenewalTabPath(tabs: Tab[], entityId: number | string): void {\n\t\tif (entityId) {\n\t\t\ttabs.forEach(t => {\n\t\t\t\tt.path = t.alternativePath ?? t.path;\n\t\t\t});\n\t\t}\n\t}\n}\n","import { ActiveType } from 'src/app/core/enums/active-type.enum';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { AgreementType } from 'src/app/core/enums/agreement-type.enum';\nimport { ApplicationType } from 'src/app/core/enums/application-type.enum';\nimport { BusinessEntityType } from 'src/app/core/enums/business-entity-type.enum';\nimport {\n\tApplicationBusinessEntityMerge,\n\tApplicationBusinessEntityMergeValue,\n} from 'src/app/core/models/application-business-entity-merge.model';\nimport {\n\tApplicationBusinessEntity,\n\tApplicationCompany,\n\tApplicationContact,\n\tApplicationContacts,\n\tApplicationDetail,\n\tApplicationFacility,\n\tApplicationInvoicingGroup,\n\tApplicationSaveContactsContainer,\n\tApplicationSummaryLight,\n} from 'src/app/core/models/application.model';\nimport { BaseModel } from 'src/app/core/models/base.model';\nimport { ContractInfoDto } from 'src/app/core/models/contract-info.model';\nimport { InvoicingGroup } from 'src/app/core/models/invoicing-group.model';\nimport { MappingEntity } from 'src/app/core/models/mapping-entity.model';\nimport { CompareItemModel } from 'src/app/shared/shared-grids/compare-list/model/compare-item.model';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ApplicationsService {\n\tconstructor(private http: HttpClient, private appConfigurationService: AppConfigurationService) {}\n\n\tpublish(id): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/application/publish?id=${id}`);\n\t}\n\n\tapplicationSummary(id): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/summary/application`,\n\t\t\t{\n\t\t\t\tparams: { id },\n\t\t\t}\n\t\t);\n\t}\n\n\tapplicationInfo(id: number, activeType = ActiveType.All): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/application/manage/info?id=${id}&activeType=${activeType}`\n\t\t);\n\t}\n\n\tapplicationInfoSave(applicatioDetail): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/application/manage/info/save`,\n\t\t\tapplicatioDetail\n\t\t);\n\t}\n\n\tgetApplicationFacilities(ids: ApplicationBusinessEntity[]): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/application/manage/facilities`,\n\t\t\tids\n\t\t);\n\t}\n\n\tapplicationContacts(\n\t\tbusinessEntities: ApplicationBusinessEntity[],\n\t\tcontacts: ApplicationContact[],\n\t\tapplicationType: ApplicationType = ApplicationType.Company\n\t): Observable {\n\t\treturn this.http.post(`${this.appConfigurationService.api.service}/application/manage/contacts`, {\n\t\t\tbusinessEntities,\n\t\t\tcontacts,\n\t\t\ttype: applicationType,\n\t\t});\n\t}\n\n\tsaveApplicationContacts(request: ApplicationSaveContactsContainer): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/application/manage/contacts/save`,\n\t\t\trequest\n\t\t);\n\t}\n\n\tsaveApplicationFacilities(facilities, validateAddress: boolean = true): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/application/manage/facilities/save?validateAddress=${validateAddress}`,\n\t\t\tfacilities\n\t\t);\n\t}\n\n\tlinkFacilityToApplication(applicationId: number, companyId: number, facilityId: number) {\n\t\treturn this.http.post(`${this.appConfigurationService.api.service}/application/link`, {\n\t\t\tapplicationId,\n\t\t\tcompanyId,\n\t\t\tfacilityId,\n\t\t});\n\t}\n\n\tsaveFacility(container: any) {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/Application/Company/Facility/Save`,\n\t\t\tcontainer\n\t\t);\n\t}\n\n\tapplicationCompanyInfo(id): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/application/manage/company`,\n\t\t\t{\n\t\t\t\tparams: { id },\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveApplicationCompanyInfo(company): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/application/manage/company/save`,\n\t\t\tcompany\n\t\t);\n\t}\n\n\tgetMergedBusinessEntity(applicationBusinessEntityId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/application/businessEntity/merge/load`,\n\t\t\t{ params: { applicationBusinessEntityId: applicationBusinessEntityId.toString() } }\n\t\t);\n\t}\n\n\tinsertMergeDetails(\n\t\tmergeValue: ApplicationBusinessEntityMergeValue,\n\t\tapplicationBusinessEntityId: number,\n\t\tmergedBusinessEntityId: number\n\t): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/application/businessEntity/merge/insert?applicationBusinessEntityId=${applicationBusinessEntityId}&mergedBusinessEntityId=${mergedBusinessEntityId}`,\n\t\t\tmergeValue\n\t\t);\n\t}\n\n\tupdateMergeDetails(mergeValue: ApplicationBusinessEntityMerge): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/application/businessEntity/merge/update`,\n\t\t\tmergeValue\n\t\t);\n\t}\n\n\tdeleteMergedApplicationBusinessEntity(id: number): Observable {\n\t\tlet params = new HttpParams();\n\t\tparams = params.append('applicationBusinessEntityId', id.toString());\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/application/businessEntity/merge/undo`,\n\t\t\tnull,\n\t\t\t{\n\t\t\t\tparams,\n\t\t\t}\n\t\t);\n\t}\n\n\tmergeApplication(id: number): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/application/merge`, {\n\t\t\tparams: { id: id.toString() },\n\t\t});\n\t}\n\n\tgetInvoicesGroups(\n\t\tcompanyId: number,\n\t\tincludeRelatedEntities = false,\n\t\tactiveType = ActiveType.All\n\t): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/application/manage/invoicegroup/list?includeRelatedEntities=${includeRelatedEntities}&companyId=${companyId}&activeType=${activeType}`\n\t\t);\n\t}\n\n\tgetInvoicesGroupsDropdown(companyId: number, includeRelatedEntities = false): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/application/manage/invoicegroup/select?includeRelatedEntities=${includeRelatedEntities}`,\n\t\t\t{\n\t\t\t\tparams: { companyId: companyId.toString() },\n\t\t\t}\n\t\t);\n\t}\n\n\tgetPrivateLabelerInvoicingGroupSelected(companyId: number, privateLabelerId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/Company/InvoicingGroupEntity/PrivateLabeler/Selected/Load?companyId=${companyId}&privateLabelerId=${privateLabelerId}`\n\t\t);\n\t}\n\n\tsavePrivateLabelerInvoicingGroup(\n\t\tcompanyId: number,\n\t\tprivateLabelerId: number,\n\t\tinvoicingGroupId: number,\n\t\tisPaidByPrivateLabeler: boolean\n\t): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/Company/InvoicingGroupEntity/PrivateLabeler/Selected/Save?companyId=${companyId}&privateLabelerId=${privateLabelerId}&invoicingGroupId=${invoicingGroupId}&isPaidByPrivateLabeler=${isPaidByPrivateLabeler}`,\n\t\t\t{}\n\t\t);\n\t}\n\n\tsaveInvoiceGroup(invoiceGroup: InvoicingGroup): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/application/manage/invoicegroup/save`,\n\t\t\tinvoiceGroup\n\t\t);\n\t}\n\n\tsaveFacilityContract(contractInfo: ContractInfoDto): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/contract/save`,\n\t\t\tcontractInfo\n\t\t);\n\t}\n\n\tgetContractVisitTypes(companyId: number, facilityId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/contract/${companyId}/${facilityId}/visitTypes`\n\t\t);\n\t}\n\n\tgetContractTermAudit(contractTermId: number, year: number): Observable<{ [id: string]: CompareItemModel[] }> {\n\t\treturn this.http.get<{ [id: string]: CompareItemModel[] }>(\n\t\t\t`${this.appConfigurationService.api.service}/contract/term/audit?id=${contractTermId}&year=${year}`\n\t\t);\n\t}\n\n\tsaveApplicationAgreementTypeId(\n\t\tapplicationBusinessEntityId: number,\n\t\tagreementTypeId: AgreementType\n\t): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/Application/ApplicationBusinessEntity/AgreementTypeId/Save?applicationBusinessEntityId=${applicationBusinessEntityId}&agreementTypeId=${agreementTypeId}`,\n\t\t\t{}\n\t\t);\n\t}\n\n\tgetApplicationBusinessEntities(\n\t\tapplicationId: number,\n\t\tbusinessEntityTypeId: BusinessEntityType\n\t): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/be/Application/BusinessEntity/LoadByApplicationId?applicationId=${applicationId}&businessEntityTypeId=${businessEntityTypeId}`\n\t\t);\n\t}\n\n\t// DEPRECATED, DELETE LATER\n\tgetMappingTypes() {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/index/entity_mapping_types`);\n\t}\n\n\tsaveBEMapping(mappingEntities: MappingEntity[]) {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/Configuration/EntityMapping/Save`,\n\t\t\tmappingEntities\n\t\t);\n\t}\n\n\tloadBEMapping(entityId: number, entityTypeId: number) {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/Configuration/EntityMapping/${entityId}/${entityTypeId}/Load`\n\t\t);\n\t}\n\n\t// DEPRECATED, DELETE LATER --- END\n}\n","import { FormGroup } from '@angular/forms';\n// custom validator to check that two fields match\nexport function MustMatch(controlName: string, matchingControlName: string) {\n\treturn (formGroup: FormGroup) => {\n\t\tconst control = formGroup.controls[controlName];\n\t\tconst matchingControl = formGroup.controls[matchingControlName];\n\t\tif (matchingControl.errors && !matchingControl.errors.mustMatch) {\n\t\t\t// return if another validator has already found an error on the matchingControl\n\t\t\treturn;\n\t\t}\n\t\t// set error on matchingControl if validation fails\n\t\tif (control.value !== matchingControl.value) {\n\t\t\tmatchingControl.setErrors({ mustMatch: true });\n\t\t} else {\n\t\t\tmatchingControl.setErrors(null);\n\t\t}\n\t};\n}\n","
\n\t
\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t{{\n\t\t\t\t\tisRegistrationCodeAvailable\n\t\t\t\t\t\t? 'Welcome! Please setup the password for your account.'\n\t\t\t\t\t\t: 'Invitation to OK Kosher'\n\t\t\t\t}}\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tConfirm\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tThe invitation link is no longer active.\n\t\t\t\t
\n\t\t\t\tPlease request a new link from an administrator or contact the IT Support team at\n\t\t\t\t\tit@ok.org.\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\tTerms of use \n\t\t\tPrivacy policy\n\t\t
\n\t
\n
\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NotifierService } from 'angular-notifier';\nimport { map } from 'rxjs/operators';\nimport { MustMatch } from 'src/app/shared/validators/must-match.validator';\nimport { AuthService } from '../auth.service';\nimport { InputType } from 'src/app/core/enums/input-type.enum';\nimport { RegexPatterns } from 'src/app/core/enums/validation/regex-patterns.enum';\n\n@Component({\n\tselector: 'app-confirm-account',\n\ttemplateUrl: './confirm-account.component.html',\n\tstyleUrls: ['./confirm-account.component.scss'],\n})\nexport class ConfirmAccountComponent implements OnInit {\n\tconfirmForm: FormGroup;\n\tkey: string;\n\tbuttonLoading = false;\n\tpageLoading = false;\n\tisRegistrationCodeAvailable: boolean;\n\tInputType = InputType;\n\n\tconstructor(\n\t\tprivate authService: AuthService,\n\t\tprivate fb: FormBuilder,\n\t\tprivate router: Router,\n\t\tprivate notifier: NotifierService,\n\t\tprivate activatedRoute: ActivatedRoute\n\t) {\n\t\tthis.confirmForm = this.fb.group(\n\t\t\t{\n\t\t\t\tpassword: ['', [Validators.required, Validators.pattern(RegexPatterns.Password)]],\n\t\t\t\tconfirmPassword: ['', [Validators.required, Validators.pattern(RegexPatterns.Password)]],\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalidator: MustMatch('password', 'confirmPassword'),\n\t\t\t}\n\t\t);\n\t}\n\n\tngOnInit() {\n\t\tthis.activatedRoute.paramMap.pipe(map((paramsMap: any) => paramsMap.params)).subscribe(params => {\n\t\t\tthis.key = params.key;\n\t\t\tthis.pageLoading = true;\n\n\t\t\tthis.authService.checkRegistrationCode(this.key).subscribe(\n\t\t\t\tresponse => {\n\t\t\t\t\tthis.isRegistrationCodeAvailable = response;\n\t\t\t\t\tthis.pageLoading = false;\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tthis.pageLoading = false;\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t}\n\tget form() {\n\t\treturn this.confirmForm.controls;\n\t}\n\n\tconfirm() {\n\t\tif (this.confirmForm.invalid) {\n\t\t\t(Object).values(this.form).forEach(control => {\n\t\t\t\tcontrol.markAsDirty();\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tthis.buttonLoading = true;\n\n\t\tlet confirmAccountContainer = {\n\t\t\tkey: this.key,\n\t\t\tpassword: this.confirmForm.value.password,\n\t\t\tconfirmPassword: this.confirmForm.value.confirmPassword,\n\t\t};\n\n\t\tthis.authService.confirmAccount(confirmAccountContainer).subscribe(\n\t\t\t() => {\n\t\t\t\tthis.buttonLoading = false;\n\t\t\t\tthis.notifier.notify('success', 'Your account was confirmed. Please login to continue');\n\t\t\t\tthis.router.navigateByUrl('/login');\n\t\t\t},\n\t\t\t(error: HttpErrorResponse) => {\n\t\t\t\tswitch (error.status) {\n\t\t\t\t\tcase 604:\n\t\t\t\t\t\terror.error.notifications.forEach(err => {\n\t\t\t\t\t\t\tthis.notifier.notify('error', err.message);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 500:\n\t\t\t\t\t\tthis.notifier.notify('error', 'There was a problem when trying to save your changes');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 602:\n\t\t\t\t\t\tthis.notifier.notify('error', error.error.message);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 603:\n\t\t\t\t\t\tthis.notifier.notify('error', error.error.message);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tthis.buttonLoading = false;\n\t\t\t}\n\t\t);\n\t}\n}\n","
\n\t
\n\t\t
\n\t\t\t\n\t\t\t
Forgot Password
\n\t\t\t
\n\t\t\t\tWe've sent your new password to your email: {{ form.username.value }}.\n\t\t\t\t
\n\t\t\t\tPlease change your password after your first login.\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tReset Password\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tBack to Login\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\tTerms of use \n\t\t\tPrivacy policy\n\t\t
\n\t
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { AuthService } from '../auth.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { NotifierService } from 'angular-notifier';\n\n@Component({\n\tselector: 'app-forgot-password',\n\ttemplateUrl: './forgot-password.component.html',\n\tstyleUrls: ['./forgot-password.component.scss'],\n})\nexport class ForgotPasswordComponent implements OnInit {\n\tforgotPasswordForm: FormGroup;\n\n\tloading = false;\n\tforgotPasswordResponse = false;\n\n\tconstructor(private fb: FormBuilder, private auth: AuthService, private notifier: NotifierService) {}\n\n\tngOnInit() {\n\t\tthis.forgotPasswordForm = this.fb.group({\n\t\t\tusername: ['', [Validators.required]],\n\t\t});\n\t}\n\n\tget form() {\n\t\treturn this.forgotPasswordForm.controls;\n\t}\n\n\tforgotPassword() {\n\t\tif (this.forgotPasswordForm.invalid) {\n\t\t\t(Object).values(this.form).forEach(control => {\n\t\t\t\tcontrol.markAsDirty();\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tthis.loading = true;\n\t\tthis.auth.forgotPassword(this.form.username.value).subscribe(\n\t\t\t() => {\n\t\t\t\tthis.loading = false;\n\t\t\t\tthis.forgotPasswordResponse = true;\n\t\t\t},\n\t\t\t(errorResponse: HttpErrorResponse) => {\n\t\t\t\tthis.loading = false;\n\t\t\t\tswitch (errorResponse.status) {\n\t\t\t\t\tcase 401:\n\t\t\t\t\t\tthis.notifier.notify('error', errorResponse.error.message);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.notifier.notify('error', 'There was an error. Please contact support');\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n}\n","
\n\t
\n\t\t
\n\t\t\t\n\t\t\t
Welcome back! Please login to your account.
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tForgot Password ?\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\tTerms of use \n\t\t\tPrivacy policy\n\t\t
\n\t
\n
\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { Idle } from '@ng-idle/core';\nimport { Store } from '@ngrx/store';\nimport { NotifierService } from 'angular-notifier';\nimport { InputType } from 'src/app/core/enums/input-type.enum';\nimport { LocalStorageKeys } from 'src/app/core/enums/local-storage-keys.enum';\nimport { PlatformType } from 'src/app/core/enums/platform-type.enum';\nimport { SessionStorageKeys } from 'src/app/core/enums/session-storage-keys.enum';\nimport { LoginResponse } from 'src/app/core/models/auth/login.response';\nimport { ConfigurationService } from 'src/app/core/services/configuration.service';\nimport { LocalStorageService } from 'src/app/core/services/helpers/local-storage.service';\nimport { IndexService } from 'src/app/core/services/index.service';\nimport { AppState } from 'src/app/store/reducers';\nimport { UserSettingsService } from '../../user-settings/shared/services/user-settings/user-settings.service';\nimport { Login } from '../../../store/actions/auth.actions';\nimport { AuthService } from '../auth.service';\n\n@Component({\n\tselector: 'app-login',\n\ttemplateUrl: './login.component.html',\n\tstyleUrls: ['./login.component.scss'],\n})\nexport class LoginComponent implements OnInit, OnDestroy {\n\tloginForm: FormGroup;\n\tisTwoFactorAuthentication = true;\n\tisTwoFactorAuthenticationLoading = true;\n\tInputType = InputType;\n\n\tloading = false;\n\n\tconstructor(\n\t\tprivate auth: AuthService,\n\t\tprivate fb: FormBuilder,\n\t\tprivate router: Router,\n\t\tprivate notifier: NotifierService,\n\t\tprivate store: Store,\n\t\tprivate localStorageService: LocalStorageService,\n\t\tprivate indexService: IndexService,\n\t\tprivate userSettingsService: UserSettingsService,\n\t\tprivate configurationService: ConfigurationService,\n\t\tprivate userIdleService: Idle\n\t) {}\n\n\tngOnInit() {\n\t\tthis.userIdleService.stop();\n\t\tthis.loginForm = this.fb.group({\n\t\t\tusername: ['', [Validators.required]],\n\t\t\tpassword: ['', [Validators.required]],\n\t\t\tpin: ['', [Validators.required]],\n\t\t});\n\t\tthis.navigateToDashboard();\n\t\tthis.handleLogin = this.handleLogin.bind(this);\n\t\twindow.addEventListener('storage', this.handleLogin);\n\n\t\tthis.indexService.getTwoFactorAuthentication(PlatformType.CompanyPortal).subscribe(\n\t\t\tresponse => {\n\t\t\t\tif (!response) {\n\t\t\t\t\tthis.loginForm.controls.pin.setValidators(null);\n\t\t\t\t\tthis.loginForm.controls.pin.updateValueAndValidity();\n\t\t\t\t}\n\t\t\t\tthis.isTwoFactorAuthentication = response;\n\t\t\t\tthis.isTwoFactorAuthenticationLoading = false;\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tthis.isTwoFactorAuthenticationLoading = false;\n\t\t\t\tthis.loginForm.controls.pin.setValidators(null);\n\t\t\t\tthis.loginForm.controls.pin.updateValueAndValidity();\n\t\t\t}\n\t\t);\n\t}\n\n\tngOnDestroy() {\n\t\twindow.removeEventListener('storage', this.handleLogin);\n\t}\n\n\tget form() {\n\t\treturn this.loginForm.controls;\n\t}\n\n\tlogin() {\n\t\tif (this.loginForm.invalid) {\n\t\t\t(Object).values(this.form).forEach(control => {\n\t\t\t\tcontrol.markAsDirty();\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tthis.loading = true;\n\n\t\tthis.auth.login(this.form.username.value, this.form.password.value, this.form.pin.value).subscribe(\n\t\t\tloginResponse => {\n\t\t\t\tif (loginResponse) {\n\t\t\t\t\tthis.store.dispatch(new Login({ loginResponse }));\n\t\t\t\t\tthis.userSettingsService.getCurrentUser().subscribe(\n\t\t\t\t\t\tuser => {\n\t\t\t\t\t\t\tthis.loading = false;\n\t\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\t\tthis.localStorageService.currentUser = user;\n\t\t\t\t\t\t\t\tthis.localStorageService.userId = user.userId;\n\t\t\t\t\t\t\t\tthis.navigateAfterLogin();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror => this.handleErrors(error)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t\t(errorResponse: HttpErrorResponse) => {\n\t\t\t\tthis.handleErrors(errorResponse);\n\t\t\t}\n\t\t);\n\t}\n\n\thandleLogin(e: StorageEvent) {\n\t\tif (e.key === LocalStorageKeys.CURRENT_USER) {\n\t\t\tthis.navigateToDashboard();\n\t\t}\n\t}\n\n\tnavigateToDashboard() {\n\t\tconst loginData = this.localStorageService.loginData;\n\t\tif (loginData) {\n\t\t\tthis.configurationService.getServerUtcDate().subscribe(res => {\n\t\t\t\tconst loginData = this.localStorageService.loginData;\n\t\t\t\tif (loginData && LoginResponse.isTokenValid(res.utcDate, loginData.expireDate)) {\n\t\t\t\t\tthis.store.dispatch(new Login({ loginResponse: loginData }));\n\t\t\t\t\tthis.router.navigateByUrl('/dashboard');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\thandleErrors(errorResponse: HttpErrorResponse) {\n\t\tthis.loading = false;\n\t\tswitch (errorResponse.status) {\n\t\t\tcase 401:\n\t\t\t\tlet message = errorResponse.error?.message || 'Invalid credentials!';\n\t\t\t\tthis.notifier.notify('error', message + ' Please try again.');\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.notifier.notify('error', 'There was an error. Please contact support.');\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprivate navigateAfterLogin() {\n\t\tconst url = sessionStorage.getItem(SessionStorageKeys.NavigateAfterLogin);\n\t\tif (url) {\n\t\t\tthis.router.navigateByUrl(url);\n\t\t\tsessionStorage.removeItem(SessionStorageKeys.NavigateAfterLogin);\n\t\t} else {\n\t\t\tthis.router.navigateByUrl('/dashboard');\n\t\t}\n\t}\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Logout } from 'src/app/store/actions/auth.actions';\nimport { AppState } from 'src/app/store/reducers';\n\n@Component({\n\tselector: 'app-logout',\n\ttemplateUrl: './logout.component.html',\n\tstyleUrls: ['./logout.component.scss'],\n})\nexport class LogoutComponent implements OnInit {\n\tconstructor(private store: Store) {}\n\n\tngOnInit(): void {\n\t\tthis.store.dispatch(new Logout());\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CustomRoute } from 'src/app/core/interfaces/custom-routes.interface';\nimport { ConfirmAccountComponent } from './confirm-account/confirm-account.component';\nimport { ForgotPasswordComponent } from './forgot-password/forgot-password.component';\nimport { LoginComponent } from './login/login.component';\nimport { LogoutComponent } from './logout/logout.component';\n\nconst routes: CustomRoute[] = [\n\t{\n\t\tpath: 'login',\n\t\tcomponent: LoginComponent,\n\t},\n\t{\n\t\tpath: 'logout',\n\t\tcomponent: LogoutComponent,\n\t},\n\t{\n\t\tpath: 'forgot-password',\n\t\tcomponent: ForgotPasswordComponent,\n\t},\n\t{\n\t\tpath: 'confirm-account/:key',\n\t\tcomponent: ConfirmAccountComponent,\n\t},\n\t{ path: '', redirectTo: '/dashboard', pathMatch: 'full' },\n];\n\n@NgModule({\n\timports: [RouterModule.forChild(routes)],\n\texports: [RouterModule],\n})\nexport class AuthRoutingModule {}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { AuthGuard } from '../../shared/route-guards/auth.guard';\nimport { AuthRoutingModule } from './auth-routing.module';\nimport { AuthService } from './auth.service';\nimport { ConfirmAccountComponent } from './confirm-account/confirm-account.component';\nimport { ForgotPasswordComponent } from './forgot-password/forgot-password.component';\nimport { LoginComponent } from './login/login.component';\nimport { LogoutComponent } from './logout/logout.component';\n\n@NgModule({\n\tdeclarations: [LoginComponent, ForgotPasswordComponent, ConfirmAccountComponent, LogoutComponent],\n\timports: [CommonModule, AuthRoutingModule, ReactiveFormsModule, SharedModule],\n})\nexport class AuthModule {\n\tstatic forRoot(): ModuleWithProviders {\n\t\treturn {\n\t\t\tngModule: AuthModule,\n\t\t\tproviders: [AuthService, AuthGuard],\n\t\t};\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { LoginResponse } from 'src/app/core/models/auth/login.response';\nimport { Observable } from 'rxjs';\nimport { PlatformType } from 'src/app/core/enums/platform-type.enum';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport { LogoutRequest } from 'src/app/core/models/auth/logout-request.model';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class AuthService {\n\tconstructor(private http: HttpClient, private appConfigurationService: AppConfigurationService) {}\n\n\tlogin(username: string, password: string, pin: string = null): Observable {\n\t\tconst formData = new FormData();\n\t\tformData.append('username', username);\n\t\tformData.append('password', password);\n\t\tformData.append('pin', pin);\n\t\tformData.append('platform', PlatformType.CompanyPortal.toString());\n\t\treturn this.http.post(`${this.appConfigurationService.api.auth}/Auth/token`, formData);\n\t}\n\n\tvalidateCurrentUser(username: string, password: string, pin: string = null): Observable {\n\t\tconst formData = new FormData();\n\t\tformData.append('username', username);\n\t\tformData.append('password', password);\n\t\tformData.append('pin', pin);\n\t\tformData.append('platform', PlatformType.CompanyPortal.toString());\n\t\treturn this.http.post(`${this.appConfigurationService.api.auth}/Auth/validate_current_user`, formData);\n\t}\n\n\trefreshToken(token: string) {\n\t\treturn this.http.post(`${this.appConfigurationService.api.auth}/Auth/refresh_token`, {\n\t\t\trefreshToken: token,\n\t\t\tplatform: PlatformType.CompanyPortal.toString(),\n\t\t});\n\t}\n\n\tforgotPassword(username: string): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.auth}/Auth/forgot_password?username=${username}&platformId=${PlatformType.CompanyPortal}`,\n\t\t\tnull\n\t\t);\n\t}\n\n\tconfirmAccount(confirmAccountContainer) {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.auth}/user/confirmAccount`,\n\t\t\tconfirmAccountContainer\n\t\t);\n\t}\n\n\tcheckRegistrationCode(registrationCode: string): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.auth}/user/RegistrationCode/Valid?registrationCode=${registrationCode}`\n\t\t);\n\t}\n\n\tlogout(logoutRequest: LogoutRequest): Observable {\n\t\treturn this.http.post(`${this.appConfigurationService.api.auth}/Auth/logout`, logoutRequest);\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { FileUpload, FileUploadResponse } from 'src/app/core/models/file-upload.model';\nimport { CodeChangeUtility } from 'src/app/core/models/code-change-utility.model';\nimport { IngredientFacility } from 'src/app/core/models/facility.model';\nimport { UpdateIngredientFacilities } from 'src/app/core/models/ingredients-facilities-model';\nimport { CustomerIngredientExtended } from 'src/app/core/models/ingredients/customer-ingredient.model';\nimport { PurchaseHistory } from 'src/app/core/models/purchase-history.model';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport {\n\tCustomerIngredientStaticBarSummary,\n\tCustomerIngredientSummary,\n} from '../../../../core/interfaces/customer-ingredient-summary.interface';\nimport { BatchSave } from '../../../../core/models/ingredients/batch-ingredient.model';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class CustomerIngredientsService {\n\tconstructor(private http: HttpClient, private appConfigurationService: AppConfigurationService) {}\n\n\trenewalIngredientReport(companyId: number) {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/customeringredient/RenewalIngredientReport?companyId=${companyId}`\n\t\t);\n\t}\n\n\tload(id: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.product}/customeringredient/load?id=${id}`\n\t\t);\n\t}\n\n\tloadMultiple(customerIngredientIds: number[]): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/CustomerIngredient/loadMultiple`,\n\t\t\tcustomerIngredientIds\n\t\t);\n\t}\n\n\tloadWithAttributes(id: number): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/customeringredient/load?customerIngredientId=${id}`,\n\t\t\tnull\n\t\t);\n\t}\n\n\tgetCustomerIngredientSummary(customerIngredient: number) {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/Summary/customerIngredient?id=${customerIngredient}`\n\t\t);\n\t}\n\n\tgetCustomerIngredientStaticBarSummary(\n\t\tcustomerIngredientId: number\n\t): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.product}/CustomerIngredient/${customerIngredientId}/Summary`\n\t\t);\n\t}\n\n\tsave(customerIngredient: CustomerIngredientExtended) {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/customeringredient/save`,\n\t\t\tcustomerIngredient\n\t\t);\n\t}\n\n\tinactivateReactivate(customerIngredient: CustomerIngredientExtended): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/customeringredient/Inactivate_Reactivate`,\n\t\t\tcustomerIngredient\n\t\t);\n\t}\n\n\teditMultipleCustomerIngredients(customerIngredientsIds: number[]): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/customeringredient/EditMultiple`,\n\t\t\tcustomerIngredientsIds\n\t\t);\n\t}\n\n\tupdateIngredientFacilities(\n\t\tUpdateIngredientFacilities: UpdateIngredientFacilities\n\t): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/CustomerIngredient/Facility/SaveMultiple`,\n\t\t\tUpdateIngredientFacilities\n\t\t);\n\t}\n\n\tsavePurchaseHistory(purchaseHistory: PurchaseHistory): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/CustomerIngredient/purchaseHistory/save`,\n\t\t\tpurchaseHistory\n\t\t);\n\t}\n\n\tloadPurchaseHistoryItem(purchaseHistoryId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.product}/CustomerIngredient/purchaseHistory/load?purchaseHistoryId=${purchaseHistoryId}`,\n\t\t\t{}\n\t\t);\n\t}\n\n\ttogglePurchaseHistoryItemStatus(purchaseHistoryId: number, active: boolean): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/CustomerIngredient/purchaseHistory/${purchaseHistoryId}/toggleActive?active=${active}`,\n\t\t\t{}\n\t\t);\n\t}\n\n\tloadCodeChangeUtility(codeChangeUtilityId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.product}/CodeChangeUtility/load?codeChangeUtilityId=${codeChangeUtilityId}`\n\t\t);\n\t}\n\n\tsaveCodeChangeUtility(codeChangeUtility: CodeChangeUtility): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/CodeChangeUtility/save`,\n\t\t\tcodeChangeUtility\n\t\t);\n\t}\n\n\tvalidateCodeChangeUtility(codeChangeUtility: CodeChangeUtility): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.product}/CodeChangeUtility/validate`,\n\t\t\tcodeChangeUtility\n\t\t);\n\t}\n\n\tprocessCodeChangeUtility(codeChangeUtility: CodeChangeUtility): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/CodeChangeUtility/process`,\n\t\t\tcodeChangeUtility\n\t\t);\n\t}\n\n\tuploadCodeChangeUtility(codeChangeUtilityFile: FileUpload): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/File/codeChangeUtilityDatas/upload`,\n\t\t\tcodeChangeUtilityFile\n\t\t);\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { IngredientIdentity } from 'src/app/core/models/ingredients/ingredient-identity.model';\nimport {\n\tMasterIngredientAudit,\n\tMasterIngredientExtended,\n\tMultipleIngredients,\n} from 'src/app/core/models/ingredients/master-ingredient.model';\nimport { KID } from 'src/app/core/models/kid.model';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport {\n\tMasterIngredientStaticBarSummary,\n\tMasterIngredientSummary,\n} from '../../../../core/interfaces/master-ingredient-summary.interface';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class MasterIngredientsService {\n\tconstructor(private http: HttpClient, private appConfigurationService: AppConfigurationService) {}\n\n\tprivate get masterIngredientController() {\n\t\treturn `${this.appConfigurationService.api.product}/masteringredient`;\n\t}\n\n\tload(id: number): Observable {\n\t\treturn this.http.get(`${this.masterIngredientController}/load?id=${id}`);\n\t}\n\n\tgetMasterIngredientsSummary(masterIngredientId: number) {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/Summary/masterIngredient?id=${masterIngredientId}`\n\t\t);\n\t}\n\n\tsave(masterIngredient: MasterIngredientExtended) {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/masterIngredient/save`,\n\t\t\tmasterIngredient\n\t\t);\n\t}\n\n\tsaveMultipleIngredients(container: MultipleIngredients) {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/MasterIngredient/saveMultiple`,\n\t\t\tcontainer\n\t\t);\n\t}\n\tgetHistoryList(masterIngredientId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.masterIngredientController}/history/list?ingredientIdentityId=${masterIngredientId}`\n\t\t);\n\t}\n\n\tgetAudit(infoIngredientIdentityId: number, compareIngredientIdentityId: number): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/masterIngredient/audit`,\n\t\t\t{\n\t\t\t\tinfoIngredientIdentityId,\n\t\t\t\tcompareIngredientIdentityId,\n\t\t\t}\n\t\t);\n\t}\n\n\tloadMultipleMasterIngredients(ingredientIds: number[]): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.masterIngredientController}/LoadByIds`,\n\t\t\tingredientIds\n\t\t);\n\t}\n\n\tgenerateKid(): Observable {\n\t\treturn this.http.get(`${this.masterIngredientController}/identity/get/code`);\n\t}\n\n\tacknowledgeChangedMasterIngredients(changedMasterIngredientsIds: number[], value: boolean): Observable {\n\t\treturn this.http.post(`${this.masterIngredientController}/change/acknowledge`, {\n\t\t\tingredientIdentityChangeId: changedMasterIngredientsIds,\n\t\t\tvalue,\n\t\t});\n\t}\n\n\t//DEPRECATED\n\treviewChangedMasterIngredients(changedMasterIngredientsIds: number[], value: boolean): Observable {\n\t\treturn this.http.post(`${this.masterIngredientController}/change/review`, {\n\t\t\tingredientIdentityChangeId: changedMasterIngredientsIds,\n\t\t\tvalue,\n\t\t});\n\t}\n\n\tgetStaticBarSummary(id: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.service}/MasterIngredient/${id}/Summary`\n\t\t);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ChangePassword, ChangeUserPassword } from 'src/app/core/models/change-password.model';\nimport { RestrictionContainer } from 'src/app/core/models/restriction.model';\nimport { Observable } from 'rxjs';\nimport { User, UserInfo } from 'src/app/core/models/auth/user.model';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport { ResendCode } from 'src/app/core/models/resend-code.model';\nimport { AdvancedPermission, Permission } from 'src/app/core/models/permission.model';\nimport { BaseModel } from 'src/app/core/models/base.model';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class UserSettingsService {\n\tconstructor(private http: HttpClient, private appConfigurationService: AppConfigurationService) {}\n\n\tgetUser(userId: number): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.service}/Security/User/Load?id=${userId}`);\n\t}\n\n\tgetUserInfo(userId: number): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.auth}/user/${userId}`);\n\t}\n\n\tgetCurrentUser(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.auth}/user/myprofile`);\n\t}\n\n\tgetUserPermissions(id: number): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.auth}/user/${id}/permissions`);\n\t}\n\n\tgetUserAdvancedPermissions(userId: number): Observable {\n\t\treturn this.http.get(\n\t\t\t`${this.appConfigurationService.api.auth}/user/${userId}/advancedPermissions`\n\t\t);\n\t}\n\n\tsync() {\n\t\treturn this.http.post(`${this.appConfigurationService.api.service}/Sync/DailySync`, {});\n\t}\n\n\tgetRoles(userId) {\n\t\treturn this.http.get(`${this.appConfigurationService.api.auth}/User/${userId}/roles`);\n\t}\n\n\tgetPermissions(userId, roleId) {\n\t\treturn this.http.get(`${this.appConfigurationService.api.auth}/User/${userId}/${roleId}/permissions`);\n\t}\n\n\tsavePermissions(userId, permissions) {\n\t\treturn this.http.post(`${this.appConfigurationService.api.auth}/User/${userId}/savePermissions`, permissions);\n\t}\n\n\tsaveInfo(userDto): Observable {\n\t\treturn this.http.post(`${this.appConfigurationService.api.auth}/User/Save`, userDto);\n\t}\n\n\tupdateRole(userId: number, roleId: number) {\n\t\treturn this.http.post(`${this.appConfigurationService.api.auth}/User/updateRole`, {\n\t\t\tuserId,\n\t\t\troleId,\n\t\t});\n\t}\n\n\tchangePassword(changePassword: ChangePassword): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.auth}/Auth/change_password`,\n\t\t\tchangePassword\n\t\t);\n\t}\n\n\tresetPassword(userName: string, platformId: number) {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.auth}/Auth/forgot_password?userName=${userName}&platformId=${platformId}`,\n\t\t\tnull\n\t\t);\n\t}\n\n\tgetIPs(userId) {\n\t\treturn this.http.get(`${this.appConfigurationService.api.auth}/BlackList/Search?userId=${userId}`);\n\t}\n\n\tsaveIPs(restrictionContainer: RestrictionContainer) {\n\t\treturn this.http.post(`${this.appConfigurationService.api.auth}/BlackList/Save`, restrictionContainer);\n\t}\n\n\tresendAuthenticationCode(resendCode: ResendCode): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/Security/User/ResendAuthenticationCode`,\n\t\t\tresendCode\n\t\t);\n\t}\n\n\tresendInvitation(resendCode: ResendCode): Observable {\n\t\treturn this.http.post(\n\t\t\t`${this.appConfigurationService.api.service}/Security/User/ResendInvitation`,\n\t\t\tresendCode\n\t\t);\n\t}\n\n\tgetAllRoles(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.auth}/Role/LoadAll`);\n\t}\n\n\tgetAllActiveUsers(): Observable {\n\t\treturn this.http.get(`${this.appConfigurationService.api.auth}/user/loadall-active`);\n\t}\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';\nimport { AbstractControl, FormControl, ValidatorFn, Validators } from '@angular/forms';\nimport { environment } from 'src/environments/environment';\nimport * as uuid from 'uuid';\n\n@Directive()\nexport class InputBase {\n\tcomponentId = uuid.v4();\n\t/** Model propriety, can be any primitive data type */\n\tprivate _model: any = this.componentId;\n\t@Input() set model(value: any) {\n\t\tif (value !== undefined) {\n\t\t\tif (this.field) {\n\t\t\t\tthis.field.patchValue(value);\n\t\t\t}\n\t\t}\n\t\tif (this.autoValidate) {\n\t\t\tthis.validate();\n\t\t}\n\t\tthis._model = value;\n\t}\n\tget model() {\n\t\treturn this._model;\n\t}\n\n\tdebugMode = environment?.debugMode;\n\n\t@Output() modelChange = new EventEmitter();\n\n\t@Input() field: AbstractControl;\n\t@Output() fieldChange = new EventEmitter();\n\t@Output() onBlur = new EventEmitter();\n\t@Output() focus = new EventEmitter();\n\t@Output() keyUp = new EventEmitter();\n\n\tprivate _disabled: boolean;\n\t/** Input disabled propriety */\n\t@Input() set disabled(value: boolean) {\n\t\tthis._disabled = value;\n\t\tthis.setDisabledStatus();\n\t}\n\tget disabled() {\n\t\treturn this._disabled;\n\t}\n\n\tprivate _required;\n\t/** Required input, dynamically sets the required validator of the input */\n\t@Input() set required(value: boolean) {\n\t\tthis._required = value;\n\t\tif (this.field) {\n\t\t\tthis.setInputValidators();\n\t\t}\n\t}\n\tget required() {\n\t\treturn this._required;\n\t}\n\n\tprivate _readonly = false;\n\t/** Forces a disabled status on the input */\n\t@Input() set readonly(value: boolean) {\n\t\tthis._readonly = value;\n\t\tthis.setDisabledStatus();\n\t}\n\tget readonly() {\n\t\treturn this._readonly;\n\t}\n\n\t/** Validates the input without the need for the user to touch it */\n\t@Input() autoValidate = false;\n\n\t@Input() inputCls: string;\n\t@Input() details: string;\n\t@Input() label: string;\n\t@Input() size: string;\n\t@Input() placeholder = '';\n\t@Input() blurOnEnter = false;\n\n\t/** To achieve dynamic validator change use this prop */\n\t@Input() validators: ValidatorFn[];\n\t@Input() customValidatorMessage: string;\n\n\t@Output() enter = new EventEmitter();\n\n\t@Input() originalValue;\n\t@Input() compareToOriginalValue;\n\n\t@ViewChild('inputRef') inputRef: ElementRef;\n\n\t@HostListener('keyup', ['$event'])\n\thandleAnyKeyUp(e: KeyboardEvent) {\n\t\tthis.keyUp.emit(e);\n\t}\n\n\t@HostListener('keyup.enter', ['$event'])\n\thandleKeyUp(e: KeyboardEvent) {\n\t\tif (this.blurOnEnter) {\n\t\t\tconst element = document.getElementById(this.componentId);\n\t\t\tif (element && document.activeElement.id === element.id) {\n\t\t\t\tif (this.inputRef?.nativeElement) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopImmediatePropagation();\n\t\t\t\t\tthis.executeBlurOnEnter(this.inputRef.nativeElement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tinitInput() {\n\t\tthis.setField();\n\t\tthis.setDisabledStatus();\n\t\tthis.setInputValidators();\n\n\t\tif (this.autoValidate) {\n\t\t\tthis.validate();\n\t\t}\n\n\t\tif (this.model === this.componentId) {\n\t\t\tthis.model = undefined;\n\t\t}\n\t}\n\n\tfocusChanges() {\n\t\tthis.focus.emit(this.field?.value);\n\t}\n\n\temitChange() {\n\t\tthis.modelChange.emit(this.field?.value);\n\t}\n\n\tblurChanges() {\n\t\tthis.onBlur.emit(this.field?.value);\n\t}\n\n\temitCustomChange(value: any) {\n\t\tthis.modelChange.emit(value);\n\t}\n\n\texecuteBlurOnEnter(element) {\n\t\tif (element && element.blur && this.blurOnEnter) {\n\t\t\tsetTimeout(() => {\n\t\t\t\telement.blur();\n\t\t\t}, 100);\n\t\t}\n\t}\n\n\tvalidate() {\n\t\tif (this.field) {\n\t\t\tthis.field.markAsDirty();\n\t\t\tthis.field.markAsTouched();\n\t\t\tthis.field.updateValueAndValidity();\n\t\t}\n\t}\n\n\trevertToOriginalValue() {\n\t\tif (this.fieldValueChanged()) {\n\t\t\tthis.field.patchValue(this.originalValue);\n\t\t\tthis.field.markAsUntouched();\n\t\t\tthis.field.markAsPristine();\n\t\t\tthis.emitChange();\n\t\t}\n\t}\n\n\tisParentFieldSetDisabled(ref) {\n\t\tif (ref) {\n\t\t\tif (ref.nodeName === 'FIELDSET') {\n\t\t\t\treturn ref.disabled;\n\t\t\t} else {\n\t\t\t\treturn this.isParentFieldSetDisabled(ref.parentNode);\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tclearInput() {\n\t\tthis.field.patchValue(null);\n\t\tthis.field.markAsUntouched();\n\t\tthis.field.markAsPristine();\n\t}\n\n\tget showFieldErrors(): boolean {\n\t\treturn this.field && (this.field.touched || this.field.dirty) && !!this.field.errors;\n\t}\n\n\tget fieldInvalid(): boolean {\n\t\tif (this.field) {\n\t\t\treturn this.field && (this.field.touched || this.field.dirty) && this.field.invalid;\n\t\t}\n\t\treturn false;\n\t}\n\n\tget fieldChanged() {\n\t\tif (this.field && (this.field.dirty || this.field.touched)) {\n\t\t\treturn this.fieldValueChanged();\n\t\t}\n\t\treturn false;\n\t}\n\n\tget fieldEmpty() {\n\t\tif (!this.disabled) {\n\t\t\treturn !this.field.value || String(this.field.value).trim().length === 0;\n\t\t}\n\t\treturn false;\n\t}\n\n\tget hasRequiredValidator() {\n\t\tif (this.field && this.field.validator) {\n\t\t\tconst validator = this.field.validator({} as AbstractControl);\n\t\t\tif (validator && validator.required) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tsetInputValidators() {\n\t\tif (this.field !== undefined) {\n\t\t\tif (this.validators && this.validators.length > 0) {\n\t\t\t\tthis.field.setValidators(this.validators);\n\t\t\t}\n\t\t\tif (this.required === true) {\n\t\t\t\tthis.field.addValidators(Validators.required);\n\t\t\t} else if (this.required === false) {\n\t\t\t\tthis.field.removeValidators(Validators.required);\n\t\t\t}\n\t\t\tthis.field.updateValueAndValidity();\n\t\t}\n\t}\n\n\t/** checks if the raw value of the field changed regardless if the user touched it or not */\n\tprivate fieldValueChanged() {\n\t\tif (this.originalValue !== undefined) {\n\t\t\tif (this.compareToOriginalValue !== undefined) {\n\t\t\t\treturn this.valueChanged(this.compareToOriginalValue, this.originalValue);\n\t\t\t}\n\t\t\treturn this.valueChanged(this.field.value, this.originalValue);\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate setField() {\n\t\tif (this.model !== this.componentId) {\n\t\t\tthis.field = new FormControl();\n\t\t\tthis.field.setValue(this.model);\n\t\t}\n\t\tif (this.model === this.componentId && this.field === undefined) {\n\t\t\tthis.field = new FormControl();\n\t\t}\n\t}\n\n\tprivate setDisabledStatus() {\n\t\tif (this.field) {\n\t\t\tif (this.disabled) {\n\t\t\t\tthis.field.disable();\n\t\t\t} else {\n\t\t\t\tthis.field.enable();\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate valueChanged(valueA, valueB) {\n\t\tlet originalVal = valueA;\n\t\tlet newVal = valueB;\n\t\tif (this.falseyValue(originalVal) && this.falseyValue(newVal)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof originalVal !== 'string') {\n\t\t\toriginalVal = String(originalVal);\n\t\t}\n\n\t\tif (typeof newVal !== 'string') {\n\t\t\tnewVal = String(newVal);\n\t\t}\n\t\treturn originalVal !== newVal;\n\t}\n\n\t// checks if value is falsey except for boolean values\n\tprivate falseyValue(value: any): boolean {\n\t\tif (String(value).length === 0) {\n\t\t\treturn true;\n\t\t}\n\t\tif (value == false || value == true) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !Boolean(value);\n\t}\n}\n","import { AfterViewInit, Directive, ElementRef, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { AccordionIdentifier } from 'src/app/core/enums/accordion-identifier.enum';\nimport { AccordionCommunicationService } from 'src/app/core/services/communication/accordion-communication.service';\nimport { LocalStorageService } from 'src/app/core/services/helpers/local-storage.service';\n\n@Directive({\n\tselector: '[accordionContent]',\n\texportAs: 'accordionContent',\n})\nexport class AccordionContentDirective implements OnInit, OnDestroy, AfterViewInit {\n\t@Input() identifier: AccordionIdentifier;\n\tprivate toggleSubscription$: Subscription;\n\tprivate opened = true;\n\n\tconstructor(\n\t\tprivate communicationService: AccordionCommunicationService,\n\t\tprivate elementRef: ElementRef,\n\t\tprivate renderer: Renderer2,\n\t\tprivate localStorageService: LocalStorageService\n\t) {}\n\n\tngOnInit() {\n\t\tthis.toggleSubscription$ = this.communicationService.toggleAccordion$\n\t\t\t.pipe(filter(id => id !== undefined && +id === +this.identifier))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.toggle();\n\t\t\t});\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.setInitialState();\n\t}\n\n\tngOnDestroy() {\n\t\tif (this.toggleSubscription$) {\n\t\t\tthis.toggleSubscription$.unsubscribe();\n\t\t}\n\t}\n\n\ttoggle() {\n\t\tconst state = this.localStorageService.accordions;\n\t\tif (this.opened) {\n\t\t\tthis.hide();\n\t\t} else {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\tsetInitialState() {\n\t\tconst value = this.localStorageService.accordions[this.identifier];\n\t\tif (this.identifier !== undefined && value !== undefined) {\n\t\t\tif (value === true) {\n\t\t\t\tthis.show();\n\t\t\t} else {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\thide() {\n\t\tconst state = this.localStorageService.accordions;\n\t\tthis.renderer.addClass(this.elementRef.nativeElement, 'accordion-hidden');\n\t\tthis.opened = false;\n\t\tstate[this.identifier] = false;\n\t\tthis.localStorageService.accordions = state;\n\t}\n\n\tshow() {\n\t\tconst state = this.localStorageService.accordions;\n\t\tthis.renderer.removeClass(this.elementRef.nativeElement, 'accordion-hidden');\n\t\tthis.opened = true;\n\t\tstate[this.identifier] = true;\n\t\tthis.localStorageService.accordions = state;\n\t}\n}\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { CellRendererCustomParams } from 'src/app/core/models/cell-renderer-custom-params.model';\n\n@Component({\n\tselector: 'app-boolean-cell-renderer',\n\ttemplateUrl: './boolean-cell-renderer.component.html',\n\tstyleUrls: ['./boolean-cell-renderer.component.scss'],\n})\nexport class BooleanCellRendererComponent implements ICellRendererAngularComp {\n\tpublic params: any;\n\tisEditable: boolean;\n\n\tagInit(params: any): void {\n\t\tthis.params = params;\n\t\tthis.params.isEditable = false;\n\t}\n\n\trefresh(): boolean {\n\t\treturn false;\n\t}\n\n\tget customParams(): CellRendererCustomParams {\n\t\tconst defaultParams = new CellRendererCustomParams();\n\t\tdefaultParams.disabled = true;\n\n\t\tif (this.params.node.customParams && Object.keys(this.params.node.customParams).length > 0) {\n\t\t\tconst customParams = this.params.node.customParams[this.params.colDef.field];\n\t\t\tif (!customParams || Object.keys(customParams).length === 0) {\n\t\t\t\treturn defaultParams;\n\t\t\t}\n\t\t\treturn customParams;\n\t\t}\n\t\treturn defaultParams;\n\t}\n\n\ttoggleValue() {\n\t\tthis.params.value = !this.params.value;\n\t\tthis.params.api.onCheckboxClick(this.params.value, this.params);\n\t}\n}\n","
\n\t\n
\n","
\n\t\n
\n\n
\n\t\n
\n\n
\n\t\n
\n\n
\n\t\n
\n","import { Component, EventEmitter, Output } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { GridColumnType } from 'src/app/core/enums/grid-column-type.enum';\nimport { CellRendererCustomParams } from '../../../core/models/cell-renderer-custom-params.model';\n\n@Component({\n\tselector: 'app-check-cell-renderer',\n\ttemplateUrl: './check-cell-renderer.component.html',\n\tstyleUrls: ['./check-cell-renderer.component.scss'],\n})\nexport class CheckCellRendererComponent implements ICellRendererAngularComp {\n\t@Output() onClick = new EventEmitter();\n\n\tconstructor() {}\n\n\tpublic params: any;\n\tpublic type = GridColumnType.Check;\n\n\tagInit(params: any): void {\n\t\tthis.params = params;\n\t}\n\n\tget customParams(): CellRendererCustomParams {\n\t\tconst defaultParams = new CellRendererCustomParams();\n\t\tdefaultParams.editable = true;\n\t\tdefaultParams.immutable = false;\n\n\t\tif (this.params.node.customParams && Object.keys(this.params.node.customParams).length > 0) {\n\t\t\tconst customParams = this.params.node.customParams[this.params.colDef.field];\n\t\t\tif (!customParams || Object.keys(customParams).length === 0) {\n\t\t\t\treturn defaultParams;\n\t\t\t}\n\t\t\treturn customParams;\n\t\t}\n\t\treturn defaultParams;\n\t}\n\n\tget value() {\n\t\treturn this.params.node.data[this.params.colDef.field];\n\t}\n\n\trefresh(): boolean {\n\t\treturn false;\n\t}\n\n\tonCheck(isChecked) {\n\t\tif (this.canBeSelected) {\n\t\t\tif (this.params.data.resetValuesToOriginalState) {\n\t\t\t\tisChecked = !isChecked;\n\t\t\t}\n\n\t\t\tthis.params.data[this.params.colDef.field] = isChecked;\n\t\t\tthis.params.api.refreshCells();\n\t\t\tthis.params.api.onCheck(isChecked, this.params);\n\t\t\tthis.params.api.onRowsSelectionChanged([this.params?.data]);\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.params.api.adjustColumnWidthByKey(this.params.column.colId);\n\t\t\t});\n\t\t}\n\t}\n\n\tget canBeSelected() {\n\t\treturn (\n\t\t\tthis.params?.colDef?.allowClick &&\n\t\t\tthis.customParams.editable === true &&\n\t\t\t!this.customParams.warning &&\n\t\t\t!this.customParams.disabled &&\n\t\t\t(this.params?.data?.allowSelection === undefined || this.params?.data?.allowSelection === true)\n\t\t);\n\t}\n\n\tget checkedValue() {\n\t\treturn this.params?.value;\n\t}\n}\n","\n\t
\n\t\t\n\t
\n\n\t
\n\t\t\n\t
\n\n\t
\n\t\t\n\t
\n\n\t\n\t\t\n\t\n
\n","import { Component } from '@angular/core';\nimport { CheckCellRendererComponent } from './check-cell-renderer.component';\n\n@Component({\n\tselector: 'app-group-check-cell-renderer',\n\ttemplateUrl: './group-check-cell-renderer.component.html',\n\tstyleUrls: ['./check-cell-renderer.component.scss'],\n})\nexport class GroupCheckCellRendererComponent extends CheckCellRendererComponent {\n\tpublic get isChild(): boolean {\n\t\treturn !this.params.node.group && this.params.node.level > 0;\n\t}\n}\n","import { Component } from '@angular/core';\nimport { CheckCellRendererComponent } from './check-cell-renderer.component';\n\n@Component({\n\tselector: 'app-readonly-check-cell-renderer',\n\ttemplateUrl: './readonly-check-cell-renderer.component.html',\n\tstyleUrls: ['./check-cell-renderer.component.scss'],\n})\nexport class ReadonlyCheckCellRendererComponent extends CheckCellRendererComponent {}\n","
\n\t\n
\n","
\n\t\n\t\t{{ params.displayName }}\n\t\n\t
\n\t\t\n\t
\n\t
0 && !isViewSelectionDisabled(params)\" class=\"m-l-5\">\n\t\t\n\t
\n
\n","import { Component, DoCheck } from '@angular/core';\nimport { IHeaderAngularComp } from 'ag-grid-angular';\nimport { IHeaderParams } from 'ag-grid-community';\nimport { CellRendererCustomParams } from 'src/app/core/models/cell-renderer-custom-params.model';\n\n@Component({\n\tselector: 'app-check-header-renderer',\n\ttemplateUrl: './check-header-renderer.component.html',\n\tstyleUrls: ['./check-header-renderer.component.scss'],\n})\nexport class CheckHeaderRendererComponent implements IHeaderAngularComp, DoCheck {\n\tpublic params: any;\n\tselected = false;\n\tallowSelection = true;\n\n\tconstructor() {}\n\n\tpublic agInit(params: any): void {\n\t\tthis.params = params;\n\t}\n\n isViewSelectionDisabled(params: any) : boolean {\n return params?.column?.getUserProvidedColDef()?.isViewSelectionDisabled;\n }\n\n\tngDoCheck() {\n\t\tthis.checkSelectedStatus();\n\t}\n\n\tcheckSelectedStatus(): void {\n\t\tif (this.params.api !== undefined) {\n\t\t\tconst nodes = [];\n\t\t\tthis.params.api.forEachNode(node => {\n\t\t\t\tif (node.data) {\n\t\t\t\t\tnodes.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (nodes.length > 0) {\n\t\t\t\tif (\n\t\t\t\t\tnodes.every(\n\t\t\t\t\t\tnode => node?.data?.allowSelection === false || node?.customParams?.selected?.editable === false\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tthis.allowSelection = false;\n\t\t\t\t}\n\t\t\t\tthis.selected = nodes.every(node => {\n\t\t\t\t\tif (this.nodeSelectable(node)) {\n\t\t\t\t\t\treturn node.data[this.params.column.colId] === true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tonCheck(value): void {\n\t\tconst nodeData = [];\n\t\tthis.params.api.forEachNode(node => {\n\t\t\tif (node.data.allowSelection === undefined || node.data.allowSelection === true) {\n\t\t\t\tif (node.data && node.data[this.params.column.colId] !== value) {\n\t\t\t\t\tif (this.nodeSelectable(node)) {\n\t\t\t\t\t\tnode.data[this.params.column.colId] = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnodeData.push(node.data);\n\t\t\t}\n\t\t});\n\t\tthis.params.api.refreshCells();\n\t\tthis.params.api.onHeaderCheck(nodeData, this.params);\n\t\tthis.params.api.onRowsSelectionChanged(nodeData);\n\t\tsetTimeout(() => {\n\t\t\tthis.params.api.adjustColumnWidthByKey(this.params.column.colId);\n\t\t});\n\t}\n\n\tonViewSelection() {\n\t\tthis.params.api.onViewSelection();\n\t}\n\n\trefresh(params: IHeaderParams): boolean {\n\t\treturn false;\n\t}\n\n\tnodeSelectable(node) {\n\t\tconst customParams = this.nodeCustomParams(node);\n\t\treturn customParams.editable === true && !customParams.warning && !customParams.disabled;\n\t}\n\n\tnodeCustomParams(node): CellRendererCustomParams {\n\t\tconst defaultParams = new CellRendererCustomParams();\n\t\tdefaultParams.editable = true;\n\n\t\tif (!!node.customParams) {\n\t\t\tconst customParams = node.customParams[this.params.column.colId];\n\t\t\tif (!customParams || Object.keys(customParams).length === 0) {\n\t\t\t\treturn defaultParams;\n\t\t\t}\n\t\t\treturn customParams;\n\t\t}\n\t\treturn defaultParams;\n\t}\n}\n","\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { NotifierService } from 'angular-notifier';\nimport { AccountingService } from 'src/app/core/services/accounting.service';\nimport { ByteArrayHelperService } from 'src/app/core/services/helpers/byte-array-helper.service';\n\n@Component({\n\tselector: 'app-download-invoice-renderer',\n\ttemplateUrl: './download-invoice-renderer.component.html',\n\tstyleUrls: ['./download-invoice-renderer.component.scss'],\n})\nexport class DownloadInvoiceRendererComponent implements ICellRendererAngularComp {\n\tisAP: boolean;\n\tisResultSuccess: boolean;\n\tinvoiceHeaderId: number;\n\tloading: boolean;\n\n\tconstructor(\n\t\tprivate accountingSvc: AccountingService,\n\t\tprivate notifierService: NotifierService,\n\t\tprivate byteArrayHelperService: ByteArrayHelperService\n\t) {}\n\n\tagInit(params: any): void {\n\t\tif (params.data.invoiceId) {\n\t\t\tthis.isAP = params.data.isAP;\n\t\t\tthis.isResultSuccess = params.data.result.includes('Success');\n\t\t\tthis.invoiceHeaderId = params.data.invoiceId;\n\t\t} else {\n\t\t\tthis.isAP = params.data.invoiceNumber.endsWith('AP');\n\t\t\tthis.isResultSuccess = true;\n\t\t\tthis.invoiceHeaderId = params.data.id;\n\t\t}\n\t}\n\n\trefresh(): boolean {\n\t\treturn false;\n\t}\n\n\tdownloadInvoice(): void {\n\t\tif (this.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.loading = true;\n\t\tthis.accountingSvc.export(this.invoiceHeaderId).subscribe(response => {\n\t\t\tif (response && response.length > 0) {\n\t\t\t\tresponse.forEach(element => {\n\t\t\t\t\tconst sampleArr = this.byteArrayHelperService.base64ToArrayBuffer(element.content);\n\t\t\t\t\tthis.byteArrayHelperService.saveByteArray(element.name, sampleArr, 'application/pdf');\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.notifierService.notify('error', 'Invoice print is not available.');\n\t\t\t}\n\n\t\t\tthis.loading = false;\n\t\t});\n\t}\n}\n","import { Component, ViewChild, ElementRef } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { FormControl } from '@angular/forms';\nimport { GridType } from 'src/app/core/enums/grid-type.enum';\nconst KEY_BACKSPACE = 8;\nconst KEY_DELETE = 46;\nconst KEY_ENTER = 13;\nconst KEY_TAB = 9;\n\n@Component({\n\tselector: 'app-dropdown-cell-renderer',\n\ttemplateUrl: './dropdown-cell-renderer.component.html',\n\tstyleUrls: ['./dropdown-cell-renderer.component.scss'],\n})\nexport class DropdownCellRendererComponent implements ICellRendererAngularComp {\n\t@ViewChild('input') input: ElementRef;\n\tpublic params;\n\n\tpublic selectedOption: FormControl;\n\tpublic originalValue: number;\n\n\tagInit(params): void {\n\t\tswitch (params.colDef.gridType) {\n\t\t\tcase GridType.COMPANY_FACILITY_AGREEMENT:\n\t\t\t\tthis.selectedOption = new FormControl(params.data.feeAdjustmentReasonId || 0);\n\t\t\t\tthis.originalValue = params.data.feeAdjustmentReasonId || 0;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.selectedOption = new FormControl(params.data.frequencyId || 0);\n\t\t\t\tthis.originalValue = params.data.frequencyId || 0;\n\t\t}\n\n\t\tthis.params = params;\n\t}\n\n\trefresh(): boolean {\n\t\treturn false;\n\t}\n\n\tpushDropdownInput() {\n\t\tif (this.params.data.resetValuesToOriginalState) {\n\t\t\tthis.selectedOption = new FormControl(this.originalValue);\n\t\t} else {\n\t\t\tthis.params.value = this.selectedOption.value;\n\t\t}\n\n\t\tthis.params.api.pushDropdownInput(this.params);\n\t\tthis.params.api.isDropdownOpened(false);\n\t}\n\n\tngAfterViewInit() {\n\t\tif (this.params?.data.autoFocus) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.input.nativeElement?.focus();\n\t\t\t});\n\t\t}\n\t}\n\n\tonKeyDown(event: any): void {\n\t\tif (this.isLeftOrRight(event) || this.deleteOrBackspace(event)) {\n\t\t\tevent.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.finishedEditingPressed(event) && !this.isKeyPressedNumeric(event)) {\n\t\t\tif (event.preventDefault) event.preventDefault();\n\t\t}\n\t}\n\n\tisInvalid(): boolean {\n\t\tswitch (this.params.colDef.gridType) {\n\t\t\tcase GridType.COMPANY_FACILITY_AGREEMENT:\n\t\t\t\tlet isInvalid: boolean =\n\t\t\t\t\tthis.params.data.feeAdjustmentReasonId < 0 &&\n\t\t\t\t\tthis.params.data.increasePercentage &&\n\t\t\t\t\tNumber(this.params.data.increasePercentage) !== 0;\n\t\t\t\treturn isInvalid;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\n\thideClearIcon(): boolean {\n\t\tswitch (this.params.colDef.gridType) {\n\t\t\tcase GridType.COMPANY_FACILITY_AGREEMENT:\n\t\t\t\treturn true;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\n\tprivate getCharCodeFromEvent(event: any): any {\n\t\tevent = event || window.event;\n\t\treturn typeof event.which == 'undefined' ? event.keyCode : event.which;\n\t}\n\n\tprivate isCharNumeric(charStr: string): boolean {\n\t\treturn !!/\\d/.test(charStr);\n\t}\n\n\tprivate isKeyPressedNumeric(event: any): boolean {\n\t\tconst charCode = this.getCharCodeFromEvent(event);\n\t\tconst charStr = event.key ? event.key : String.fromCharCode(charCode);\n\t\treturn this.isCharNumeric(charStr);\n\t}\n\n\tprivate deleteOrBackspace(event: any) {\n\t\treturn [KEY_DELETE, KEY_BACKSPACE].indexOf(this.getCharCodeFromEvent(event)) > -1;\n\t}\n\n\tprivate isLeftOrRight(event: any) {\n\t\treturn [37, 39].indexOf(this.getCharCodeFromEvent(event)) > -1;\n\t}\n\n\tprivate finishedEditingPressed(event: any) {\n\t\tconst charCode = this.getCharCodeFromEvent(event);\n\t\treturn charCode === KEY_ENTER || charCode === KEY_TAB;\n\t}\n\n\tisDropdownOpened(event) {\n\t\tthis.params.api.isDropdownOpened(event);\n\t\treturn event;\n\t}\n}\n","
\n\t\n\t\n
\n","import { AfterViewInit, Component, ViewChild } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { InputType } from 'src/app/core/enums/input-type.enum';\nimport { Keys } from '../../../core/enums/keys.enum';\nimport { TextInputComponent } from '../../inputs/text-input/text-input.component';\n\n@Component({\n\tselector: 'app-fee-text-input-cell-renderer',\n\ttemplateUrl: './fee-text-input-cell-renderer.component.html',\n\tstyleUrls: ['./fee-text-input-cell-renderer.component.scss'],\n})\nexport class FeeTextInputCellRendererComponent implements ICellRendererAngularComp, AfterViewInit {\n\t@ViewChild('input') input: TextInputComponent;\n\tpublic params: any;\n\tInputType = InputType;\n\n\tagInit(params: any): void {\n\t\tthis.params = params;\n\t}\n\n\trefresh(): boolean {\n\t\treturn false;\n\t}\n\n\tget isDisabled() {\n\t\treturn (this.params.node.data?.disabled || {})[this.params.colDef.colId];\n\t}\n\n\tpushChangesGridInput(value) {\n\t\tthis.params.value = value;\n\t\tthis.params.api.pushChangesGridInput(this.params);\n\t}\n\n\tngAfterViewInit() {\n\t\tif (this.params?.data.autoFocus) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.input.inputRef.nativeElement.focus();\n\t\t\t});\n\t\t}\n\t}\n\n\tonKeyDown(event: any): void {\n\t\tif (this.isLeftOrRight(event) || this.deleteOrBackspace(event)) {\n\t\t\tevent.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.finishedEditingPressed(event) && !this.isKeyPressedNumeric(event)) {\n\t\t\tif (event.preventDefault) event.preventDefault();\n\t\t}\n\t}\n\n\tprivate getCharCodeFromEvent(event: any): any {\n\t\tevent = event || window.event;\n\t\treturn typeof event.which == 'undefined' ? event.keyCode : event.which;\n\t}\n\n\tprivate isCharNumeric(charStr: string): boolean {\n\t\treturn !!/\\d/.test(charStr);\n\t}\n\n\tprivate isKeyPressedNumeric(event: any): boolean {\n\t\tconst charCode = this.getCharCodeFromEvent(event);\n\t\tconst charStr = event.key ? event.key : String.fromCharCode(charCode);\n\t\treturn this.isCharNumeric(charStr);\n\t}\n\n\tprivate deleteOrBackspace(event: any) {\n\t\treturn [Keys.KEY_DELETE, Keys.KEY_BACKSPACE].indexOf(this.getCharCodeFromEvent(event)) > -1;\n\t}\n\n\tprivate isLeftOrRight(event: any) {\n\t\treturn [37, 39].indexOf(this.getCharCodeFromEvent(event)) > -1;\n\t}\n\n\tprivate finishedEditingPressed(event: any) {\n\t\tconst charCode = this.getCharCodeFromEvent(event);\n\t\treturn charCode === Keys.KEY_ENTER || charCode === Keys.KEY_TAB;\n\t}\n}\n","
\n\t\n
\n","import { Component, ViewChild } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { NoteFormComponent } from '../../inputs/note-form/note-form.component';\nimport { Keys } from '../../../core/enums/keys.enum';\nimport { Note } from 'src/app/core/models/note.model';\n\n@Component({\n\tselector: 'app-note-cell-renderer',\n\ttemplateUrl: './note-cell-renderer.component.html',\n\tstyleUrls: ['./note-cell-renderer.component.scss'],\n})\nexport class NoteCellRendererComponent implements ICellRendererAngularComp {\n\tpublic params: any;\n\t@ViewChild(NoteFormComponent) noteComp: NoteFormComponent;\n\n\tagInit(params: any): void {\n\t\tthis.params = params;\n\t}\n\n\tget data() {\n\t\treturn this.params.data;\n\t}\n\n\tsetLoading(value: boolean) {\n\t\tthis.noteComp.isNoteLoading = value;\n\t}\n\n\tinitComponent(entityId: number, entityType: number, notes: Note[], noteType?: number) {\n\t\tif (entityId && entityType && this.noteComp) {\n\t\t\tthis.noteComp.entityId = entityId;\n\t\t\tthis.noteComp.entityTypeId = entityType;\n\t\t\tif (noteType) {\n\t\t\t\tthis.noteComp.noteTypeId = noteType;\n\t\t\t}\n\t\t\tthis.noteComp.onLoadNote(notes);\n\t\t}\n\t}\n\n\tsaveNote(entityId: number, entityType: number, noteType?: number) {\n\t\tif (entityId && entityType && this.noteComp?.hasChanges) {\n\t\t\tthis.noteComp.entityTypeId = entityType;\n\t\t\tif (noteType) {\n\t\t\t\tthis.noteComp.noteTypeId = noteType;\n\t\t\t}\n\t\t\treturn this.noteComp.saveAsync(entityId);\n\t\t}\n\t}\n\n\trefresh(): boolean {\n\t\treturn false;\n\t}\n\n\tonKeyDown(event: any): void {\n\t\tif (this.isLeftOrRight(event) || this.deleteOrBackspace(event)) {\n\t\t\tevent.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.finishedEditingPressed(event)) {\n\t\t\tif (event.preventDefault) event.preventDefault();\n\t\t}\n\n\t\tthis.params.api.pushNoteInput(this.noteComp);\n\t}\n\n\tmouseDblClick(event: any): void {\n\t\tevent.stopPropagation();\n\t\tif (event.preventDefault) event.preventDefault();\n\t}\n\n\tngAfterViewInit() {\n\t\tif (this.params?.data.autoFocus) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.noteComp?.input?.inputRef?.nativeElement.focus();\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate getCharCodeFromEvent(event: any): any {\n\t\tevent = event || window.event;\n\t\treturn typeof event.which == 'undefined' ? event.keyCode : event.which;\n\t}\n\n\tprivate isCharNumeric(charStr: string): boolean {\n\t\treturn !!/\\d/.test(charStr);\n\t}\n\n\tprivate isKeyPressedNumeric(event: any): boolean {\n\t\tconst charCode = this.getCharCodeFromEvent(event);\n\t\tconst charStr = event.key ? event.key : String.fromCharCode(charCode);\n\t\treturn this.isCharNumeric(charStr);\n\t}\n\n\tprivate deleteOrBackspace(event: any) {\n\t\treturn [Keys.KEY_DELETE, Keys.KEY_BACKSPACE].indexOf(this.getCharCodeFromEvent(event)) > -1;\n\t}\n\n\tprivate isLeftOrRight(event: any) {\n\t\treturn [37, 39].indexOf(this.getCharCodeFromEvent(event)) > -1;\n\t}\n\n\tprivate finishedEditingPressed(event: any) {\n\t\tconst charCode = this.getCharCodeFromEvent(event);\n\t\treturn charCode === Keys.KEY_ENTER || charCode === Keys.KEY_TAB;\n\t}\n}\n","\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n\tselector: 'app-permissions-header',\n\ttemplateUrl: './permissions-header.component.html',\n\tstyleUrls: ['./permissions-header.component.scss'],\n})\nexport class PermissionsHeaderComponent implements OnInit {\n\tparams: any;\n\n\tconstructor() {}\n\n\tngOnInit() {}\n\n\tagInit(params): void {\n\t\tthis.params = params;\n\t}\n\n\tonHeaderClick($event) {\n\t\tthis.params.api.onHeaderClick(this.params.column.colId);\n\t}\n}\n","
{{ params.displayName }}
\n","\n\t{{ params.data[params.colDef.attributeId] }}\n

\n\n\t

\n\t\t{{ params.data[params.colDef.field] }}\n\t

\n
\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { IAfterGuiAttachedParams, ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n\tselector: 'app-text-cell-renderer',\n\ttemplateUrl: './text-cell-renderer.component.html',\n\tstyleUrls: ['./text-cell-renderer.component.scss'],\n})\nexport class TextCellRendererComponent implements ICellRendererAngularComp {\n\tpublic params;\n\tpublic isCompare: boolean;\n\tpublic cssClass: string;\n\n\tconstructor() {}\n\n\tpublic afterGuiAttached(params?: IAfterGuiAttachedParams): void {}\n\n\tpublic agInit(params: ICellRendererParams): void {\n\t\tthis.params = params;\n\t\tthis.isCompare = this.params.colDef.isCompare;\n\t\tthis.cssClass = this.params.colDef.cssClass;\n\t}\n\n\tpublic refresh(params: any): boolean {\n\t\treturn false;\n\t}\n\n\tcalculateClasses() {\n\t\tif (this.isCompare && this.params.data.oldValue !== this.params.data.newValue) {\n\t\t\treturn this.cssClass;\n\t\t}\n\t}\n}\n","
\n\t\n\t{{ inputValueSuffix }}\n
\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\nimport { GridType } from 'src/app/core/enums/grid-type.enum';\nimport { InputType } from 'src/app/core/enums/input-type.enum';\nconst KEY_BACKSPACE = 8;\nconst KEY_DELETE = 46;\nconst KEY_ENTER = 13;\nconst KEY_TAB = 9;\n\n@Component({\n\tselector: 'app-text-input-cell-renderer',\n\ttemplateUrl: './text-input-cell-renderer.component.html',\n\tstyleUrls: ['./text-input-cell-renderer.component.scss'],\n})\nexport class TextInputCellRendererComponent implements ICellRendererAngularComp {\n\tpublic params: ICellRendererParams;\n\tInputType = InputType;\n\toriginalValue: number;\n\tinputValueSuffix: string;\n\tinputDecimalDigits?: number;\n\n\tprivate readonly FACILITY_ANNUAL_FEE_COLUMN_ID = 'facilityAnnualFee';\n\tprivate readonly PL_RATE_COLUMN_ID = 'plRate';\n\n\tagInit(params: any): void {\n\t\tthis.params = params;\n\t\tthis.originalValue = params.value;\n\n\t\tlet tempInputValueSuffix = (this.params.colDef as any).inputValueSuffix;\n\t\tif (tempInputValueSuffix) {\n\t\t\tthis.inputValueSuffix = tempInputValueSuffix;\n\t\t}\n\n\t\tlet tempinputDecimalDigits = (this.params.colDef as any).inputDecimalDigits;\n\t\tif (tempinputDecimalDigits) {\n\t\t\tthis.inputDecimalDigits = tempinputDecimalDigits;\n\t\t}\n\t}\n\n\trefresh(): boolean {\n\t\treturn false;\n\t}\n\n\tget isDisabled() {\n\t\tif (typeof this.params.node.data.disabled === 'object') {\n\t\t\treturn (this.params.node.data.disabled || {})[this.params.colDef.colId];\n\t\t}\n\n\t\tswitch ((this.params.colDef as any).gridType) {\n\t\t\tcase GridType.COMPANY_RENEWAL_FACILITIES:\n\t\t\t\tif (this.params.colDef.colId === this.FACILITY_ANNUAL_FEE_COLUMN_ID) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\tcase GridType.COMPANY_RENEWAL_PRIVATE_LABELERS:\n\t\t\t\tif (this.params.colDef.colId === this.PL_RATE_COLUMN_ID) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn this.params.node.data.disabled;\n\t\t}\n\t}\n\n\tonKeyDown(event: any): void {\n\t\tif (this.isLeftOrRight(event) || this.deleteOrBackspace(event)) {\n\t\t\tevent.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.finishedEditingPressed(event) && !this.isKeyPressedNumeric(event)) {\n\t\t\tif (event.preventDefault) event.preventDefault();\n\t\t}\n\t}\n\n\tprivate getCharCodeFromEvent(event: any): any {\n\t\tevent = event || window.event;\n\t\treturn typeof event.which == 'undefined' ? event.keyCode : event.which;\n\t}\n\n\tprivate isCharNumeric(charStr: string): boolean {\n\t\treturn !!/\\d/.test(charStr);\n\t}\n\n\tprivate isCharCommaOrPeriod(charStr: string): boolean {\n\t\treturn charStr === '.' || charStr === ',';\n\t}\n\n\tprivate isKeyPressedNumeric(event: any): boolean {\n\t\tconst charCode = this.getCharCodeFromEvent(event);\n\t\tconst charStr = event.key ? event.key : String.fromCharCode(charCode);\n\t\treturn this.isCharNumeric(charStr) || this.isCharCommaOrPeriod(charStr);\n\t}\n\n\tprivate deleteOrBackspace(event: any) {\n\t\treturn [KEY_DELETE, KEY_BACKSPACE].indexOf(this.getCharCodeFromEvent(event)) > -1;\n\t}\n\n\tprivate isLeftOrRight(event: any) {\n\t\treturn [37, 39].indexOf(this.getCharCodeFromEvent(event)) > -1;\n\t}\n\n\tprivate finishedEditingPressed(event: any) {\n\t\tconst charCode = this.getCharCodeFromEvent(event);\n\t\treturn charCode === KEY_ENTER || charCode === KEY_TAB;\n\t}\n\n\tpushChangesGridInput(event) {\n\t\tlet value = event.target.value;\n\n\t\t//check if entered symbol is comma or period\n\t\tif (event.data == ',' || event.data == '.') {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.params.data.resetValuesToOriginalState) {\n\t\t\tvalue = this.originalValue;\n\t\t}\n\n\t\tthis.params.value = value;\n\t\tthis.params.data[this.params.colDef.field] = value;\n\t\tconst pushChanges: (value) => void = this.params.api['pushChangesGridInput'];\n\t\tif (pushChanges) {\n\t\t\tpushChanges(this.params);\n\t\t}\n\t}\n\n\tpushChangesGridBlur(value) {\n\t\tif (value) {\n\t\t\tif (this.inputDecimalDigits) {\n\t\t\t\tlet numberValue = parseFloat(value);\n\t\t\t\tvalue = numberValue.toFixed(this.inputDecimalDigits);\n\t\t\t}\n\t\t} else {\n\t\t\tlet zero = 0;\n\t\t\tvalue = zero.toFixed(this.inputDecimalDigits);\n\t\t}\n\n\t\tif (this.params.value != value || true) {\n\t\t\tthis.params.value = value;\n\t\t\tthis.params.data[this.params.colDef.field] = value;\n\t\t\tthis.params.api['pushChangesGridInput'];\n\t\t}\n\t}\n}\n","
\n\t\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t\n\t\t\n\t\t\n\t\n
\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { InputType } from 'src/app/core/enums/input-type.enum';\n\n@Component({\n\tselector: 'app-text-input-checkbox-cell-renderer',\n\ttemplateUrl: './text-input-checkbox-cell-renderer.component.html',\n\tstyleUrls: ['./text-input-checkbox-cell-renderer.component.scss'],\n})\nexport class TextInputCheckboxCellRendererComponent implements ICellRendererAngularComp {\n\tpublic params: any;\n\tInputType = InputType;\n\n\tagInit(params: any): void {\n\t\tthis.params = params;\n\t}\n\n\trefresh(): boolean {\n\t\treturn false;\n\t}\n\n\tget isDisabled() {\n\t\treturn (this.params.node.data.disabled || {})[this.params.colDef.colId];\n\t}\n\n\tpushChangesGridInput(value) {\n\t\tthis.params.inputValue = value;\n\t\tthis.params.api.pushChangesGridInput(this.params);\n\t}\n\n\tonCheck(value) {\n\t\tthis.params.checkboxValue = value;\n\t\tthis.params.api.pushCheckboxInput(this.params);\n\t}\n}\n","

{{ params.displayName }}

\n
\n\t
\n\t\t\n\t\t\n\t
\n\n\t\n\t\t\n\t\t\n\t\n\t

Include Annual Visit

\n
\n","import { Component, OnInit } from '@angular/core';\nimport { IHeaderAngularComp } from 'ag-grid-angular';\nimport { IAfterGuiAttachedParams, IHeaderParams } from 'ag-grid-community';\n\n@Component({\n\tselector: 'app-title-checkbox-label-header-renderer',\n\ttemplateUrl: './title-checkbox-label-header-renderer.component.html',\n\tstyleUrls: ['./title-checkbox-label-header-renderer.component.scss'],\n})\nexport class TitleCheckboxLabelHeaderRendererComponent implements IHeaderAngularComp {\n\tpublic params: any;\n\n\tconstructor() {}\n\n\tpublic afterGuiAttached(params?: IAfterGuiAttachedParams): void {}\n\n\tpublic agInit(params: any): void {\n\t\tthis.params = params;\n\t}\n\n\tonCheck(value) {\n\t\tthis.params.isChecked = value;\n\t\tthis.params.column.colDef.isChecked = value;\n\t\tthis.params.api.pushHeaderCheckboxInput(this.params);\n\t}\n\n\trefresh(params: IHeaderParams): boolean {\n\t\treturn false;\n\t}\n}\n","
\n\t
\n
\n","import { Component } from '@angular/core';\nimport { ITooltipAngularComp } from 'ag-grid-angular';\nimport { ITooltipParams } from 'ag-grid-community';\n\n@Component({\n\tselector: 'app-tooltip-renderer',\n\ttemplateUrl: './tooltip-renderer.component.html',\n\tstyleUrls: ['./tooltip-renderer.component.scss'],\n})\nexport class TooltipRendererComponent implements ITooltipAngularComp {\n\tparams: { color: string } & ITooltipParams;\n\tconstructor() {}\n\n\tagInit(params: { color: string } & ITooltipParams): void {\n\t\tthis.params = params;\n\t}\n}\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n\tselector: 'app-undo-cell-renderer',\n\ttemplateUrl: './undo-cell-renderer.component.html',\n\tstyleUrls: ['./undo-cell-renderer.component.scss'],\n})\nexport class UndoCellRendererComponent implements ICellRendererAngularComp {\n\tparams: any;\n\tisDisabled: boolean;\n\n\tconstructor() {}\n\n\tpublic agInit(params: ICellRendererParams): void {\n\t\tthis.params = params;\n\t\tthis.isDisabled = this.params.data.disabled;\n\t}\n\n\tpublic refresh(params: any): boolean {\n\t\tthis.isDisabled = this.params.data.disabled;\n\t\treturn this.isDisabled;\n\t}\n\n\tonUndoClick(): void {\n\t\tthis.params.data.newValue = this.params.data.oldValue;\n\t\tthis.params.data.unformattedNewValue = this.params.data.unformattedOldValue;\n\t\tthis.params.data.disabled = true;\n\t\tthis.params.refreshCell({\n\t\t\tforceRefresh: true,\n\t\t});\n\t\tthis.params.colDef.onUndoClick();\n\t}\n}\n","\n","
\n\t{{ params.value }}\n\t\n
\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n\tselector: 'app-view-cell-renderer',\n\ttemplateUrl: './view-cell-renderer.component.html',\n\tstyleUrls: ['./view-cell-renderer.component.scss'],\n})\nexport class ViewCellRendererComponent implements ICellRendererAngularComp {\n\tpublic params: ICellRendererParams;\n\tpublic hasWarning: boolean;\n\n\tagInit(params: any): void {\n\t\tthis.params = params;\n\t\tthis.setWarning();\n\t}\n\n\trefresh(): boolean {\n\t\treturn false;\n\t}\n\n\tonViewClick() {\n\t\tconst api = this.params.api as any;\n\t\tif (this.enabled()) {\n\t\t\tapi.onViewClick(this.params);\n\t\t}\n\t}\n\n\tenabled() {\n\t\treturn +this.params.value !== 0 || (this.params.api as any).alwaysEnableViewColumn || this.hasWarning;\n\t}\n\n\tsetWarning(): void {\n\t\tconst viewImageHasWarningColumnName = this.params.colDef['viewImageHasWarningColumnName'];\n\n\t\tif (viewImageHasWarningColumnName) {\n\t\t\tthis.hasWarning = this.params.data[viewImageHasWarningColumnName] =\n\t\t\t\tthis.params.data.hasMasterIngredientDiscrepancies;\n\t\t}\n\t}\n}\n","import { Input, Directive } from '@angular/core';\n\n@Directive()\nexport class BaseIcon {\n\t@Input() iconCls: string;\n\t@Input() style: string;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-check',\n\ttemplateUrl: './icon-check.component.html',\n\tstyleUrls: ['./icon-check.component.scss'],\n})\nexport class IconCheckComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {}\n}\n","\n\t\n\n","\n\t\n\t\n\t\n\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n\tselector: 'app-icon-download',\n\ttemplateUrl: './icon-download.component.html',\n\tstyleUrls: ['./icon-download.component.scss'],\n})\nexport class IconDownloadComponent implements OnInit {\n\t@Input() iconCls: string;\n\t@Input() isDownload = true;\n\n\tconstructor() {}\n\n\tngOnInit() {}\n}\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-info',\n\ttemplateUrl: './icon-info.component.html',\n\tstyleUrls: ['./icon-info.component.scss'],\n})\nexport class IconInfoComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {}\n}\n","\n\t\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-new-tab',\n\ttemplateUrl: './icon-new-tab.component.html',\n\tstyleUrls: ['./icon-new-tab.component.scss'],\n})\nexport class IconNewTabComponent extends BaseIcon implements OnInit {\n\t@Input() url: string;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {}\n\n\topenLinkInNewTab() {\n\t\tif (this.url) {\n\t\t\twindow.open(this.url, '_blank');\n\t\t}\n\t}\n}\n","\n\t\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-people',\n\ttemplateUrl: './icon-people.component.html',\n\tstyleUrls: ['./icon-people.component.scss'],\n})\nexport class IconPeopleComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {}\n}\n","\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\n\n","import { Component } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-refresh',\n\ttemplateUrl: './icon-refresh.component.html',\n\tstyleUrls: ['./icon-refresh.component.scss'],\n})\nexport class IconRefreshComponent extends BaseIcon {\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-search',\n\ttemplateUrl: './icon-search.component.html',\n\tstyleUrls: ['./icon-search.component.scss'],\n})\nexport class IconSearchComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {}\n}\n","\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-settings',\n\ttemplateUrl: './icon-settings.component.html',\n\tstyleUrls: ['./icon-settings.component.scss'],\n})\nexport class IconSettingsComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {}\n}\n","\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-view',\n\ttemplateUrl: './icon-view.component.html',\n\tstyleUrls: ['./icon-view.component.scss'],\n})\nexport class IconViewComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {}\n}\n","\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-visits',\n\ttemplateUrl: './icon-visits.component.html',\n\tstyleUrls: ['./icon-visits.component.scss'],\n})\nexport class IconVisitsComponent extends BaseIcon {\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-warning',\n\ttemplateUrl: './icon-warning.component.html',\n\tstyleUrls: ['./icon-warning.component.scss'],\n})\nexport class IconWarningComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {}\n}\n","\n\t\n\n","
\n\t{{ label }}\n\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\n\t\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { InputBase } from 'src/app/shared/component-bases/input-base';\n\n@Component({\n\tselector: 'app-checkbox',\n\ttemplateUrl: './checkbox.component.html',\n\tstyleUrls: ['./checkbox.component.scss'],\n})\nexport class CheckboxComponent extends InputBase implements OnInit {\n\t@Input() id: number | string;\n\t@Input() roundCheckbox = false;\n\t@Input() roundCheckboxStyle: 'red' | 'green' = 'green';\n\t@Input() clickable = true;\n\t@Input() centered = false;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {\n\t\tthis.initInput();\n\t}\n\n\tgetCheckMarkDefaultClasses() {\n\t\tif ((this.disabled || this.readonly) && this.clickable) {\n\t\t\treturn 'icon--no-align icon--disabled';\n\t\t}\n\n\t\treturn 'icon--light icon--no-align';\n\t}\n}\n","
\n\t\n\t\tField required\n\t\tField invalid\n\t\tField is not a valid email\n\t\tFields must match\n\t\t{{ errorsObject?.custom.message }}\n\t\tField contains overlapping ranges\n\t\tMin value {{ errorsObject?.min.min }}\n\t\tMax value {{ errorsObject?.max.max }}\n\t\tUser with this email already exists\n\t\tThe selected date must not be earlier than\n\t\t\t{{ errorsObject?.minDate.requiredDate | date : 'shortDate' }}\n\t\tMin length {{ errorsObject?.minlength.requiredLength }}\n\t\tMax length {{ errorsObject?.maxlength.requiredLength }}\n\t\n
\n","import { Component, Input } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { FieldErrors } from './field-errors.model';\n\n@Component({\n\tselector: 'app-input-error-messages',\n\ttemplateUrl: './input-error-messages.component.html',\n\tstyleUrls: ['./input-error-messages.component.scss'],\n})\nexport class InputErrorMessagesComponent {\n\tconstructor() {}\n\n\t@Input() field: AbstractControl;\n\t@Input() showFieldErrors: boolean;\n\n\tget errorsObject(): FieldErrors {\n\t\treturn this.field.errors;\n\t}\n}\n","
\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\theaderText ||\n\t\t\t\t\t\t\t\tactivatedRoute.snapshot.data.subTitle ||\n\t\t\t\t\t\t\t\tactivatedRoute.snapshot.data.pageTitle\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tNotes\n\t\t\t\t\t

\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t 0\"\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t{{ v.description }}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\n","import { Component, OnInit, Input, SimpleChanges, ViewChild } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Note } from 'src/app/core/models/note.model';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { NotesService } from 'src/app/core/services/notes.service';\nimport { NoteType } from 'src/app/core/enums/note-type.enum';\nimport { Observable, of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { TextareaInputComponent } from '../textarea-input/textarea-input.component';\nimport { BaseIndexModel, BaseModel } from 'src/app/core/models/base.model';\nimport { cloneDeep } from 'lodash';\n\n@Component({\n\tselector: 'app-note-form',\n\ttemplateUrl: './note-form.component.html',\n\tstyleUrls: ['./note-form.component.scss'],\n})\nexport class NoteFormComponent implements OnInit {\n\t@ViewChild('input', { static: true }) input: TextareaInputComponent;\n\t@Input() entityId: number = null;\n\t@Input() entityTypeId: number;\n\t@Input() noteTypeId: NoteType;\n\t@Input() hasHeader = true;\n\t@Input() showLabel = true;\n\t@Input() labelText = 'Notes';\n\t@Input() marginCls = 'm-t-20';\n\t@Input() marginBottomCls = '';\n\t@Input() readonly = false;\n\t@Input() showMessage = true;\n\t@Input() headerText = undefined;\n\t@Input() loadAll = false;\n\t@Input() loadFromMainTable = false;\n\t@Input() inputSize = false;\n\t@Input() addMode = false;\n\t@Input() showPlaceHolder = true;\n\t@Input() inputCls: string;\n\t@Input() required = false;\n\n\tvarriableParam: BaseIndexModel[] = [];\n\n\tnotes: Note[] = [];\n\n\tnoteForm: FormGroup;\n\tchangesOnForm = false;\n\tisPickNote: boolean = false;\n\n\tpublic isNoteLoading: boolean;\n\n\tconstructor(public activatedRoute: ActivatedRoute, private fb: FormBuilder, private noteSvc: NotesService) { }\n\n\tngOnInit() {\n\t\tthis.noteForm = this.fb.group({\n\t\t\tnoteId: ['', []],\n\t\t\tentityId: ['', []],\n\t\t\tentityTypeId: ['', []],\n\t\t\tvalue: ['', this.required ? [Validators.required] : []],\n\t\t});\n\n\t\tif (this.entityId > 0) {\n\t\t\tthis.reloadInfo();\n\t\t} else {\n\t\t\tthis.onLoadNote([]);\n\t\t}\n\n\t\tthis.noteForm.valueChanges.subscribe(x => {\n\t\t\tthis.changesOnForm = true;\n\t\t});\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (\n\t\t\t((changes.entityId && !changes.entityId.isFirstChange()) ||\n\t\t\t\t(changes.entityTypeId && !changes.entityTypeId.isFirstChange())) &&\n\t\t\t!this.addMode\n\t\t) {\n\t\t\tthis.reloadInfo();\n\t\t}\n\t}\n\n\tsetPickNote(value) {\n\t\tthis.isPickNote = true;\n\t\tthis.noteForm.controls.value.patchValue(value);\n\t\tthis.changesOnForm = false;\n\t}\n\n\treloadInfo() {\n\t\tif (this.entityId > 0) {\n\t\t\tthis.isNoteLoading = true;\n\t\t\tif (this.loadFromMainTable && this.noteTypeId) {\n\t\t\t\tconst noteRequestIds = [];\n\t\t\t\tnoteRequestIds.push({\n\t\t\t\t\tentityId: this.entityId,\n\t\t\t\t\tentityTypeId: this.entityTypeId,\n\t\t\t\t\tnoteTypeId: this.noteTypeId,\n\t\t\t\t});\n\n\t\t\t\tthis.noteSvc.loadMultiple(noteRequestIds).subscribe((note: Note[]) => this.onLoadNote(note));\n\t\t\t} else {\n\t\t\t\tif (this.loadAll) {\n\t\t\t\t\tthis.noteSvc\n\t\t\t\t\t\t.loadListByEntityType(this.entityId, this.entityTypeId)\n\t\t\t\t\t\t.subscribe((note: Note[]) => this.onLoadNote(note));\n\t\t\t\t} else {\n\t\t\t\t\tthis.noteSvc\n\t\t\t\t\t\t.loadByEntityType(this.entityId, this.entityTypeId, this.noteTypeId)\n\t\t\t\t\t\t.subscribe((note: Note[]) => this.onLoadNote(note));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getFormChanged() {\n\t\treturn this.changesOnForm;\n\t}\n\n\tget form() {\n\t\treturn this.noteForm.controls;\n\t}\n\n\tsave(entityId = null, entityHistoryId = null) {\n\t\tlet note: Note = this.noteForm.value;\n\t\tif (((this.notes && this.notes.length) || note.value) && this.hasChanges) {\n\t\t\tthis.isNoteLoading = true;\n\t\t\tnote = this.manageNote(note);\n\t\t\tif (entityHistoryId && entityHistoryId > 0) {\n\t\t\t\tnote.entityHistoryId = entityHistoryId;\n\t\t\t}\n\t\t\tif (entityId && entityId > 0) {\n\t\t\t\tnote.entityId = entityId;\n\t\t\t}\n\t\t\tthis.noteSvc.save(note).subscribe((note: Note[]) => {\n\t\t\t\tthis.reloadInfo();\n\t\t\t\tthis.isNoteLoading = false;\n\t\t\t});\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tsaveAsync(entityId = null, entityHistoryId = null): Observable {\n\t\tlet note: Note = this.noteForm.value;\n\t\tif (((this.notes && this.notes.length) || note.value) && this.hasChanges) {\n\t\t\tthis.isNoteLoading = true;\n\t\t\tnote = this.manageNote(note);\n\t\t\tif (entityHistoryId && entityHistoryId > 0) {\n\t\t\t\tnote.entityHistoryId = entityHistoryId;\n\t\t\t}\n\t\t\tif (entityId && entityId > 0) {\n\t\t\t\tnote.entityId = entityId;\n\t\t\t}\n\t\t\treturn this.noteSvc.save(note).pipe(\n\t\t\t\ttap(res => {\n\t\t\t\t\tthis.reloadInfo();\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\treturn of([]);\n\t\t}\n\t}\n\n\tsaveWithoutReloadAsync(entityId: number): Observable {\n\t\tlet note: Note = cloneDeep(this.noteForm.value);\n\t\tif (((this.notes && this.notes.length) || note.value) && this.hasChanges) {\n\t\t\tthis.isNoteLoading = true;\n\t\t\tnote = this.manageNote(note);\n\t\t\tnote.entityId = entityId;\n\t\t\treturn this.noteSvc.save(note);\n\t\t} else {\n\t\t\treturn of([]);\n\t\t}\n\t}\n\n\tdeleteNoteAsync() {\n\t\tlet note: Note = this.noteForm.value;\n\t\tif (note) {\n\t\t\tthis.isNoteLoading = true;\n\t\t\treturn this.noteSvc.deleteNote(note.noteId).subscribe(response => {\n\t\t\t\tif (response) {\n\t\t\t\t\tthis.isNoteLoading = false;\n\t\t\t\t\tthis.reloadInfo();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\treturn of([]);\n\t\t}\n\t}\n\n\tonLoadNote(note: Note[]) {\n\t\tthis.notes = note;\n\t\tif (note && note.length) {\n\t\t\tif (this.noteTypeId) {\n\t\t\t\tconst selectNote = note.find(n => n.noteTypeId === this.noteTypeId);\n\t\t\t\tselectNote ? this.noteForm.patchValue(selectNote) : this.initEmptyNote();\n\t\t\t} else {\n\t\t\t\tthis.noteForm.patchValue(note[0]);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.initEmptyNote();\n\t\t}\n\t\tthis.isNoteLoading = false;\n\t}\n\n\tdiscardChanges() {\n\t\tif (this.hasChanges) {\n\t\t\tthis.noteForm.controls.value.patchValue(this.currentNote);\n\t\t}\n\t}\n\n\treset() {\n\t\tthis.noteForm.reset();\n\t}\n\n\tprivate initEmptyNote() {\n\t\tthis.noteForm.patchValue({\n\t\t\tnoteId: -1,\n\t\t\tentityId: this.entityId,\n\t\t\tentityTypeId: this.entityTypeId,\n\t\t\tvalue: '',\n\t\t});\n\t}\n\n\tprivate manageNote(note) {\n\t\tif (!this.notes.length) {\n\t\t\tnote.entityId = this.entityId;\n\t\t\tnote.noteId = -1;\n\t\t\tnote.entityTypeId = this.entityTypeId;\n\t\t}\n\t\tif (!this.noteTypeId) {\n\t\t\tnote.noteTypeId = NoteType.GeneralNotes;\n\t\t} else {\n\t\t\tnote.noteTypeId = this.noteTypeId;\n\t\t}\n\n\t\treturn note;\n\t}\n\n\tget hasChanges() {\n\t\tif (this.isPickNote) {\n\t\t\treturn this.changesOnForm;\n\t\t}\n\t\telse {\n\t\t\treturn this.noteFormValue != this.currentNote;\n\t\t}\n\t}\n\n\tget currentNote() {\n\t\tif (this.noteTypeId) {\n\t\t\tconst selectNote = this.notes?.find(n => n.noteTypeId === this.noteTypeId);\n\t\t\treturn selectNote?.value ?? '';\n\t\t}\n\t\treturn this.notes.length ? this.notes[0].value : '';\n\t}\n\n\tget noteFormValue() {\n\t\treturn this.noteForm.value ? this.noteForm.value.value : '';\n\t}\n\n\tappendnoteFormValue(value: string) {\n\t\tlet patchedValue = this.noteFormValue + ' ' + value;\n\t\tconst cursor = this.input?.currentCursor();\n\t\tif (cursor) {\n\t\t\tpatchedValue = this.noteFormValue.slice(0, cursor[0]) + ' ' + value + ' ' + this.noteFormValue.slice(cursor[1]);\n\t\t}\n\t\tthis.noteForm.patchValue({\n\t\t\tvalue: patchedValue,\n\t\t});\n\t}\n\n\taddVarriable(varriableIndex: BaseIndexModel) {\n\t\tthis.varriableParam.push(varriableIndex);\n\t}\n}\n","
\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t{{ label }}\n\t\t\t\t*\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{{ labelBadgeText }}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t{{ dangerAdditionalInfo }}\n\t\t\n\t\t\t
\n\t\t\t\t{{ url }}\n\t\t\t
\n\t\t
\n\t\t\n\t\t\t
\n\t\t\t\t{{ badgeText }}\n\t\t\t
\n\t\t
\n\t
\n\t
\n\t\t\n\t\t\n\t\t{{ inputValueSufix }}\n\t\t
\n\t\t\t×\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t
\n\t\n
\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { InputType } from 'src/app/core/enums/input-type.enum';\nimport { InputBase } from '../../component-bases/input-base';\n\n@Component({\n\tselector: 'app-text-input',\n\ttemplateUrl: './text-input.component.html',\n\tstyleUrls: ['./text-input.component.scss'],\n})\nexport class TextInputComponent extends InputBase implements OnInit, OnChanges {\n\t@Input() type: InputType = InputType.Text;\n\t@Input() focusOnPageEnter = false;\n\n\t@Input() url: string;\n\t@Input() href: string;\n\t@Input() withSearch = false;\n\t@Input() showRequiredStar = true;\n\t@Input() autocomplete = 'off';\n\t@Input() badgeText: string;\n\t@Input() dangerAdditionalInfo: string;\n\t@Input() labelBadgeText: string;\n\t@Input() openInNewTabLink: string;\n\t@Input() inputValueSufix: string;\n\t@Input() textAlignLeft = false;\n\t@Input() showInfoTooltip = false;\n\t@Input() wheelEvent = false;\n\t@Input() clearable = false;\n\t@Input() invalidData = false;\n\n\t@Input() minDecimals = 2;\n\t@Input() maxDecimals = 4;\n\t@Input() precision: number;\n\t@Input() step = '0.0001';\n\n\t@Output() badgeClicked: EventEmitter = new EventEmitter();\n\t@Output() searchIconClicked: EventEmitter = new EventEmitter();\n\t@Output() labelBadgeClicked: EventEmitter = new EventEmitter();\n\n\tinitialType: InputType;\n\tInputType = InputType;\n\tisFieldDisabled = false;\n\n\ttooltip = `At least a lower case letter\n A capital(uppercase) letter\n A number\n A special character\n Minimum 8 characters.`;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {\n\t\tthis.initInput();\n\t\tthis.initialType = this.type;\n\t\tsetTimeout(() => {\n\t\t\tthis.parseNumbers();\n\t\t\tif (this.precision) {\n\t\t\t\tthis.field.patchValue(+parseFloat(this.field.value).toPrecision(this.precision));\n\t\t\t}\n\t\t});\n\t}\n\n\tget cssClass() {\n\t\tlet sizeCls = '';\n\t\tswitch (this.size) {\n\t\t\tcase 'lg':\n\t\t\t\tsizeCls = ' text-input--lg';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn 'text-input ' + (this.inputCls || '') + sizeCls;\n\t}\n\n\tonLabelClick() {\n\t\tthis.inputRef.nativeElement.focus();\n\t}\n\n\tparseNumbers() {\n\t\tif (this.type === InputType.Number) {\n\t\t\tif (this.field.value || this.field.value === 0) {\n\t\t\t\tif (this.maxDecimals || this.maxDecimals === 0) {\n\t\t\t\t\tlet numberValue = parseFloat(this.field.value);\n\n\t\t\t\t\tif ((this.minDecimals || this.minDecimals === 0) &&\n\t\t\t\t\t\tnumberValue % 1 == 0) {\n\t\t\t\t\t\tthis.field.patchValue(numberValue.toFixed(this.minDecimals));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.field.patchValue(numberValue.toFixed(this.maxDecimals));\n\t\t\t\t\t}\n\n\n\t\t\t\t} else {\n\t\t\t\t\tthis.field.patchValue(parseFloat(this.field.value));\n\t\t\t\t}\n\t\t\t\tthis.emitChange();\n\t\t\t}\n\t\t}\n\t}\n\n\tonChangeType() {\n\t\tif (this.type === InputType.Password) {\n\t\t\tthis.type = InputType.Text;\n\t\t} else {\n\t\t\tthis.type = InputType.Password;\n\t\t}\n\t}\n\n\tsearch(value: string): void {\n\t\tconst parentDisabled = this.isParentFieldSetDisabled(this.inputRef.nativeElement);\n\t\tif (!this.disabled && !parentDisabled) {\n\t\t\tthis.inputRef?.nativeElement?.focus();\n\t\t\tthis.searchIconClicked.emit(value);\n\t\t}\n\t}\n\n\tngOnChanges() {\n\t\tthis.isFieldDisabled = this.disabled || this.isParentFieldSetDisabled(this.inputRef?.nativeElement);\n\t}\n\n\tclear() {\n\t\tthis.field.markAsDirty();\n\t\tthis.field.markAsTouched();\n\t\tthis.field.patchValue(null);\n\t\tthis.emitChange();\n\t}\n}\n","
\n\t
\n\t\t\n\t\t\t{{ label }}\n\t\t\t*\n\t
\n\t\n
\n\n\n
\n\t{{ message }}\n
\n\n\n","import { AfterViewInit, Component, Input, OnInit } from '@angular/core';\nimport { InputBase } from 'src/app/shared/component-bases/input-base';\n\n@Component({\n\tselector: 'app-textarea-input',\n\ttemplateUrl: './textarea-input.component.html',\n\tstyleUrls: ['./textarea-input.component.scss'],\n})\nexport class TextareaInputComponent extends InputBase implements OnInit, AfterViewInit {\n\t@Input() message: string;\n\t@Input() focusOnPageEnter: boolean = false;\n\t@Input() autoSize = false;\n\t@Input() isEdit = false;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {\n\t\tthis.initInput();\n\t\tif (this.autoSize) {\n\t\t\tthis.field.valueChanges.subscribe(() => {\n\t\t\t\tthis.setHeight();\n\t\t\t});\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.setHeight();\n\t}\n\n\tget cssClass() {\n\t\tlet sizeCls = '';\n\t\tswitch (this.size) {\n\t\t\tcase 'lg':\n\t\t\t\tsizeCls = ' text-input--lg';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn 'text-input ' + (this.inputCls || '') + sizeCls;\n\t}\n\n\tonLabelClick() {\n\t\tthis.inputRef.nativeElement.focus();\n\t}\n\n\tcurrentCursor() {\n\t\tlet cursor = this.inputRef.nativeElement;\n\t\tlet start = cursor.selectionStart;\n\t\tlet end = cursor.selectionEnd;\n\t\treturn [start, end];\n\t}\n\n\tsetHeight() {\n\t\tif (this.autoSize) {\n\t\t\tthis.inputRef.nativeElement.style.height = '33px';\n\t\t\tthis.inputRef.nativeElement.style.height = `${this.inputRef.nativeElement.scrollHeight + 2}px`;\n\t\t}\n\t}\n}\n","import { Component } from '@angular/core';\nimport { SimpleModalComponent } from 'ngx-simple-modal';\n\n@Component({\n\tselector: 'app-data-loss-modal',\n\ttemplateUrl: './data-loss-modal.component.html',\n\tstyleUrls: ['./data-loss-modal.component.scss'],\n})\nexport class DataLossModalComponent extends SimpleModalComponent {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n onClose(buttonId: number) {\n this.result = buttonId;\n this.close();\n }\n}\n","
\n\t
\n\t\t\n\t\t\n\t\t

Are you sure?

\n\t
\n\t
\n\t\t

Do you want to save your changes?

\n\t
\n\t\n
\n","
\n\t
\n\t\t\n\t\t

{{ title }}

\n\t
\n\t\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\tFailed!\n\t\t\t
\n\t\t\t
0\">\n\t\t\t\tDo you wish to override the following rules? Click on Override.\n\t\t\t
\n\t\t\t
\n\t\t\t\tYou don't have the permission to override the Rules Engine.\n\t\t\t
\n\t\t\t
\n\t\t\t\t

\n\t\t\t\t\t{{ (item.entityObservable$ | async)?.name }}\n\t\t\t\t\t\n\t\t\t\t

\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t

{{ contradiction }}

\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t

{{ warning }}

\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t 0\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"btn btn--primary\"\n\t\t\t\t(click)=\"overrideRulesEngine()\"\n\t\t\t>\n\t\t\t\tOverride\n\t\t\t\n\t\t
\n\t
\n\n\t\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\tError!\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\tFailed!\n\t\t\t
\n\t\t\t

{{ validationResponse.message }}

\n\n\t\t\t
0\" class=\"validation-info\">\n\t\t\t\t
\n\t\t\t\t\t{{ info.name }}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t\t{{ item.value }}\n\t\t\t\n\t\t
\n\t
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { SimpleModalComponent } from 'ngx-simple-modal';\nimport { ProductValidationResponse } from 'src/app/core/models/validation/product-validation-response.model';\nimport { ValidationAnswersTypes } from 'src/app/core/enums/validation/validation-answer-types.enum';\nimport { ValidationRequest } from '../../../core/models/validation/product-validation.model';\nimport { GenericValidationModal } from './generic-validation-modal.interface';\nimport { IndexService } from 'src/app/core/services/index.service';\nimport { EntityType } from 'src/app/core/enums/entity-type.enum';\nimport { BusinessEntityBase } from 'src/app/core/models/business-entity.model';\nimport { Observable } from 'rxjs';\nimport { RulesEngineMessageType } from 'src/app/core/enums/rules-engine-message-type.enum';\nimport { EntityUrlHelperService } from 'src/app/core/services/helpers/entity-url-helper.service';\nimport { ProductRulesEngineResponse } from 'src/app/core/models/validation/product-rules-engine-response.model';\nimport { BaseModel } from 'src/app/core/models/base.model';\nimport { ValidationMessageResponseTypes } from 'src/app/core/enums/validation/validation-message-response-types.enum';\n\n@Component({\n\tselector: 'app-generic-validation-modal',\n\ttemplateUrl: './generic-validation-modal.component.html',\n\tstyleUrls: ['./generic-validation-modal.component.scss'],\n})\nexport class GenericValidationModalComponent\n\textends SimpleModalComponent\n\timplements OnInit, GenericValidationModal\n{\n\ttitle: string;\n\tvalidationResponse: ProductValidationResponse;\n\trulesEngineProductValidation?: ProductRulesEngineResponse;\n\tproductValidations: {\n\t\tentityUrl: string;\n\t\tentityObservable$: Observable;\n\t\tvalidations: { [id: number]: string[] };\n\t}[] = [];\n\n\tValidationAnswerTypes = ValidationAnswersTypes;\n\tRulesEngineMessageType = RulesEngineMessageType;\n\tMessageType = ValidationMessageResponseTypes;\n\thasAdvancedPermission: boolean;\n\tcanOverrideRulesEngine: boolean;\n\trulesEngineRequest: ValidationRequest;\n\tloading: boolean;\n\tvalidationInfo: BaseModel[] = [];\n\tEntityType = EntityType;\n\n\tconstructor(private indexService: IndexService, public entityUrlHelper: EntityUrlHelperService) {\n\t\tsuper();\n\t}\n\n\tngOnInit() {\n\t\tthis.canOverrideRulesEngine = this.rulesEngineProductValidation?.canOverrideRulesEngine;\n\t\tif (this.canOverrideRulesEngine) {\n\t\t\tif (this.hasAdvancedPermission && this.rulesEngineProductValidation?.response) {\n\t\t\t\tObject.keys(this.rulesEngineProductValidation?.response).forEach(facilityId => {\n\t\t\t\t\tthis.productValidations.push({\n\t\t\t\t\t\tentityUrl: this.entityUrlHelper.getEntityUrl(EntityType.Facility, facilityId),\n\t\t\t\t\t\tentityObservable$: this.indexService.getEntitySummary(+facilityId, EntityType.Facility),\n\t\t\t\t\t\tvalidations: this.rulesEngineProductValidation.response[facilityId],\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (this.rulesEngineProductValidation) {\n\t\t\t\t\tObject.keys(this.rulesEngineProductValidation)?.forEach(facilityId => {\n\t\t\t\t\t\tthis.productValidations.push({\n\t\t\t\t\t\t\tentityUrl: this.entityUrlHelper.getEntityUrl(EntityType.Facility, facilityId),\n\t\t\t\t\t\t\tentityObservable$: this.indexService.getEntitySummary(+facilityId, EntityType.Facility),\n\t\t\t\t\t\t\tvalidations: this.rulesEngineProductValidation[facilityId],\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.validationResponse?.info) {\n\t\t\tObject.keys(this.validationResponse?.info).forEach(facilityId => {\n\t\t\t\tconst info = new BaseModel();\n\t\t\t\tinfo.id = +facilityId;\n\t\t\t\tinfo.name = this.validationResponse?.info[facilityId];\n\t\t\t\tthis.validationInfo.push(info);\n\t\t\t});\n\t\t}\n\t}\n\n\tonConfirm(answerType: ValidationAnswersTypes) {\n\t\tthis.validationResponse.request.answerId = answerType;\n\t\tthis.result = this.validationResponse.request;\n\t\tthis.close();\n\t}\n\n\toverrideRulesEngine(): void {\n\t\tthis.result = this.rulesEngineProductValidation?.canOverrideRulesEngine;\n\t\tthis.close();\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'arrayLenghtIs',\n})\nexport class ArrayLenghtIsPipe implements PipeTransform {\n\ttransform(value: any[], condition: '>' | '=' | '<', length: number): boolean {\n\t\tif (value) {\n\t\t\tswitch (condition) {\n\t\t\t\tcase '>':\n\t\t\t\t\treturn value.length > +length;\n\t\t\t\tcase '<':\n\t\t\t\t\treturn value.length < +length;\n\t\t\t\tcase '=':\n\t\t\t\t\treturn value.length === +length;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Audit } from 'src/app/core/models/audit.model';\n\n@Pipe({\n\tname: 'audit',\n\tpure: false,\n})\nexport class AuditPipe implements PipeTransform {\n\ttransform(value: Audit[], key: string): Audit {\n\t\tif (value?.length > 0 && key) {\n\t\t\treturn value.find(v => v.name.toString().toLocaleLowerCase() === key.toString().toLocaleLowerCase());\n\t\t}\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'camelcaseDisplay',\n\tpure: true,\n})\nexport class CamelcaseDisplayPipe implements PipeTransform {\n\ttransform(value: string): unknown {\n\t\tif (value) {\n\t\t\treturn value\n\t\t\t\t.split(/(?=[A-Z])/)\n\t\t\t\t.map(p => {\n\t\t\t\t\treturn p.charAt(0).toUpperCase() + p.slice(1);\n\t\t\t\t})\n\t\t\t\t.join(' ');\n\t\t}\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// If value doesn't exist replace with needed value\n@Pipe({ name: 'conditionalValuePipe' })\nexport class ConditionalValuePipe implements PipeTransform {\n\ttransform(value: string, conditionalValue = '-'): string {\n\t\tvalue = value?.toString();\n\n\t\tlet formattedValue = conditionalValue;\n\n\t\tif (value !== undefined && value !== null && value?.trim()?.length > 0) {\n\t\t\tformattedValue = value;\n\t\t}\n\t\treturn formattedValue;\n\t}\n}\n","import { Pipe, PipeTransform, Injectable } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n\tname: 'filterBy',\n\tpure: false,\n})\nexport class FilterPipe implements PipeTransform {\n\tconstructor(private sanitizer: DomSanitizer) {}\n\ttransform(items: any[], objectProperyName: string, value: any): any {\n\t\tif (!items) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst c = items.filter(item => {\n\t\t\tif (Object.prototype.hasOwnProperty.call(item, objectProperyName)) {\n\t\t\t\treturn item[objectProperyName] == value;\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t});\n\n\t\treturn c;\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({ name: 'noSanitize' })\nexport class NoSanitizePipe implements PipeTransform {\n\tconstructor(private domSanitizer: DomSanitizer) {}\n\ttransform(html: string): SafeHtml {\n\t\treturn this.domSanitizer.bypassSecurityTrustHtml(html);\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DynamicMenuOption } from '../../core/models/dynamic-menu-option.model';\n\n@Pipe({\n\tname: 'option',\n\tpure: false,\n})\nexport class OptionPipe implements PipeTransform {\n\ttransform(item: DynamicMenuOption): DynamicMenuOption {\n\t\tif (item?.alternativeOptionId && item?.alternativeOptions?.length > 0) {\n\t\t\treturn item.alternativeOptions.find(i => +i.id === +item.alternativeOptionId);\n\t\t}\n\t\treturn item;\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'purify',\n\tpure: true,\n})\nexport class PurifyPipe implements PipeTransform {\n\ttransform(value: () => any, ...args: unknown[]): unknown {\n\t\treturn value();\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// Usage: Returns the name of the item based on the value found in the provided list\n\n// Example: we have an object which has the 'statusId' but no 'statusName' and we need to display the 'statusName' in the HTML not the 'statusId'.\n// In our case we should have an endpoint retrieving the needed 'statusList' (the 'list' parameter in our pipe) which has 'statusId' and 'statusName'.\n// After that, we assign the 'statusList' to the first pipe parameter and let the pipe do the work for you.\n// Optional (in case the properties declarations differ form the default values: 'id' and 'name'):\n// We can assign the 'itemSelector' and 'itemNameSelector' to the second and third pipe parameters to the needed values ('statusId' and 'statusName' in our example).\n// Pipe example in HTML according to our example '{{ code.statusId | renderValueFromListPipe: codeChangeUtilityDataStatuses:'statusId':'statusName' }}'.\n\n@Pipe({ name: 'renderValueFromListPipe' })\nexport class RenderValueFromListPipe implements PipeTransform {\n\ttransform(\n\t\tvalue: number,\n\t\tlist: any[],\n\t\titemSelector = 'id',\n\t\titemNameSelector = 'name',\n\t\tcustomName: string\n\t): string | number {\n\t\tif (list?.length > 0) {\n\t\t\tconst item = list?.find(item => value === item[itemSelector]);\n\t\t\treturn item ? item[itemNameSelector] : customName ? customName : value;\n\t\t}\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { select, Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { SessionStorageKeys } from 'src/app/core/enums/session-storage-keys.enum';\nimport { AppState } from 'src/app/store/reducers';\nimport { isLoggedIn } from '../../store/selectors/auth.selectors';\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n\tconstructor(private store: Store, private router: Router) {}\n\n\tcanActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\n\t\treturn this.store.pipe(\n\t\t\tselect(isLoggedIn),\n\t\t\ttap(loggedIn => {\n\t\t\t\tif (!loggedIn) {\n\t\t\t\t\tsessionStorage.setItem(SessionStorageKeys.NavigateAfterLogin, state.url);\n\t\t\t\t\tthis.router.navigateByUrl('/login');\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n}\n","import { CanDeactivate } from '@angular/router';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface CanDeactivateComponent {\n canDeactivate: () => Observable | boolean;\n}\n\n@Injectable()\nexport class CompanyDefaultInvoiceGroupGuard implements CanDeactivate {\n canDeactivate(component: CanDeactivateComponent) {\n return component.canDeactivate ? component.canDeactivate() : true;\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\nimport { SimpleModalService } from 'ngx-simple-modal';\nimport { Observable, Subscriber } from 'rxjs';\nimport { PageWithForm } from 'src/app/core/interfaces/page-with-form.interface';\nimport { LocalStorageService } from 'src/app/core/services/helpers/local-storage.service';\nimport { DataLossModalComponent } from '../modals/data-loss-modal/data-loss-modal.component';\nimport { GenericValidationModalComponent } from '../modals/generic-validation-modal/generic-validation-modal.component';\nimport { ValidationMessageResponseTypes } from 'src/app/core/enums/validation/validation-message-response-types.enum';\nimport { invalid } from 'moment';\n\nexport interface CanComponentDeactivate {\n\tcanDeactivate: () => Observable | Promise | boolean;\n}\n\n@Injectable()\nexport class DataLossPreventionGuard implements CanDeactivate {\n\tconstructor(private simpleModalService: SimpleModalService, private localStorageService: LocalStorageService) {}\n\tprivate saving = false;\n\n\tcanDeactivate(component: PageWithForm) {\n\t\tif (this.localStorageService.loginData) {\n\t\t\tif (this.localStorageService.idle === true || component?.ignoreFormChanges === true) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (this.saving) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (component?.formInvalid !== undefined && component?.formInvalid()) {\n\t\t\t\tthis.simpleModalService\n\t\t\t\t\t.addModal(GenericValidationModalComponent, {\n\t\t\t\t\t\ttitle: '',\n\t\t\t\t\t\tvalidationResponse: {\n\t\t\t\t\t\t\tinfo: '',\n\t\t\t\t\t\t\tmessage: 'Please, Enter all required fields',\n\t\t\t\t\t\t\tmessageType: ValidationMessageResponseTypes.Error,\n\t\t\t\t\t\t\tanswers: null,\n\t\t\t\t\t\t\trequest: null,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\t.subscribe();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (component?.save !== undefined && component?.formChanged !== undefined) {\n\t\t\t\tif (component.formChanged()) {\n\t\t\t\t\treturn this.getDataLossObservable(component);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn true;\n\t}\n\n\tprivate getDataLossObservable(component: PageWithForm): Observable {\n\t\treturn new Observable(observer => {\n\t\t\tif (component.formChanged()) {\n\t\t\t\treturn this.simpleModalService.addModal(DataLossModalComponent).subscribe(option => {\n\t\t\t\t\tswitch (option) {\n\t\t\t\t\t\t// Cancel\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\tthis.handleObs(false, observer);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t// Don't save and discard\n\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\tif (component.discardData !== undefined) {\n\t\t\t\t\t\t\t\tcomponent.discardData();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlet invalid = component?.formInvalid !== undefined && component?.formInvalid();\n\t\t\t\t\t\t\tthis.handleObs(!invalid, observer);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t// Save\n\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\tconst saveObs = component.save();\n\t\t\t\t\t\t\tif (saveObs) {\n\t\t\t\t\t\t\t\tthis.saving = true;\n\t\t\t\t\t\t\t\tthis.setLoading(true, component);\n\t\t\t\t\t\t\t\tsaveObs.subscribe(\n\t\t\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\t\t\tthis.handleObs(true, observer);\n\t\t\t\t\t\t\t\t\t\tthis.setLoading(false, component);\n\t\t\t\t\t\t\t\t\t\tthis.saving = false;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\t\t\tthis.handleObs(false, observer);\n\t\t\t\t\t\t\t\t\t\tthis.setLoading(false, component);\n\t\t\t\t\t\t\t\t\t\tthis.saving = false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.handleObs(false, observer);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate handleObs(bool: boolean, observer: Subscriber) {\n\t\tobserver.next(bool);\n\t\tobserver.complete();\n\t}\n\n\tprivate setLoading(value: boolean, component: PageWithForm) {\n\t\tif (component.loading !== undefined) {\n\t\t\tcomponent.loading = value;\n\t\t}\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateChild, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { CustomRouteData } from 'src/app/core/interfaces/custom-routes.interface';\nimport { PermissionService } from 'src/app/core/services/communication/permission.service';\n\n@Injectable()\nexport class UserPermissionGuard implements CanActivateChild {\n\tconstructor(private permissionService: PermissionService, private router: Router) {}\n\n\tcanActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree {\n\t\tconst routeData = route.data as CustomRouteData;\n\t\tconst canActivate = this.permissionService.canView([routeData.permissionId], routeData.isModule);\n\t\tif (!canActivate) {\n\t\t\treturn this.router.parseUrl('forbidden');\n\t\t}\n\t\treturn canActivate;\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { Effect, Actions, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { AppState } from '../reducers';\nimport { tap } from 'rxjs/operators';\nimport { ActiveModeUpdate, ActiveModeActionTypes } from '../actions/active-mode.action';\nimport { defer } from 'rxjs';\nimport { ActiveType } from '../../core/enums/active-type.enum';\nimport { LocalStorageKeys } from '../../core/enums/local-storage-keys.enum';\n\n@Injectable()\nexport class ActiveModeEffects {\n\t@Effect({ dispatch: false })\n\tactiveMode$ = this.actions$.pipe(\n\t\tofType(ActiveModeActionTypes.ActiveModeUpdate),\n\t\ttap(action => {\n\t\t\tlocalStorage.setItem(LocalStorageKeys.ACTIVE_MODE_STORAGE_KEY, JSON.stringify(action.payload.activeMode));\n\t\t})\n\t);\n\n\t@Effect()\n\tinit$ = defer(() => {\n\t\tconst activeMode = parseInt(localStorage.getItem(LocalStorageKeys.ACTIVE_MODE_STORAGE_KEY));\n\t\tif (!isNaN(activeMode)) {\n\t\t\tthis.store.dispatch(new ActiveModeUpdate({ activeMode }));\n\t\t} else {\n\t\t\tthis.store.dispatch(new ActiveModeUpdate({ activeMode: ActiveType.Active }));\n\t\t}\n\t});\n\n\tconstructor(private actions$: Actions, private store: Store) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { Store, select } from '@ngrx/store';\nimport { map, mergeMap, take } from 'rxjs/operators';\nimport {\n\tApplicationActionTypes,\n\tApplicationFacilitiesLoad,\n\tApplicationFacilitiesLoaded,\n\tApplicationFacilitiesSave,\n\tApplicationFacilitiesSaveSuccess,\n\tApplicationFacilitySaveResult,\n\tApplicationPublishUpdate,\n\tApplicationSummaryLoad,\n\tApplicationSummaryLoaded,\n\tApplicationSummaryLoading,\n\tApplicationSummarySave,\n\tApplicationSummarySaveGeneral,\n\tApplicationSummarySaveReferral,\n\tApplicationSummarySaveSuccess,\n} from '../actions/application.actions';\nimport { ApplicationStatus } from '../../core/enums/application-status.enum';\nimport { ApplicationsService } from '../../modules/applications/shared/services/applications.service';\nimport { AppState } from '../reducers';\nimport { selectApplicationSummary } from '../selectors/application.selectors';\nimport { getValue, selectActiveMode } from '../selectors/active-mode.selectors';\n\n@Injectable()\nexport class ApplicationEffects {\n\t@Effect({ dispatch: false })\n\tload$ = this.actions$.pipe(\n\t\tofType(ApplicationActionTypes.ApplicationSummaryLoad),\n\t\tmap(action => {\n\t\t\tthis.store.dispatch(new ApplicationSummaryLoading({ appSummaryLoading: true }));\n\t\t\tlet activeMode = getValue(this.store.pipe(select(selectActiveMode)));\n\t\t\tthis.applicationSvc.applicationInfo(action.payload.applicationId, activeMode).subscribe(response => {\n\t\t\t\tif (response.statusId === ApplicationStatus.AppComplete) {\n\t\t\t\t\tthis.store.dispatch(new ApplicationPublishUpdate({ applicationPublished: true }));\n\t\t\t\t}\n\t\t\t\tthis.store.dispatch(\n\t\t\t\t\tnew ApplicationSummaryLoaded({\n\t\t\t\t\t\tappSummary: response,\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t\tthis.store.dispatch(new ApplicationSummaryLoading({ appSummaryLoading: false }));\n\t\t\t});\n\t\t})\n\t);\n\n\t@Effect()\n\tsaveApplicationReferralSummary$ = this.actions$.pipe(\n\t\tofType(ApplicationActionTypes.ApplicationSummarySaveReferral),\n\t\tmap(action => new ApplicationSummarySave())\n\t);\n\n\t@Effect()\n\tsaveApplicationGeneralSummary$ = this.actions$.pipe(\n\t\tofType(ApplicationActionTypes.ApplicationSummarySaveGeneral),\n\t\tmap(action => new ApplicationSummarySave())\n\t);\n\t@Effect({ dispatch: false })\n\tsaveApplicationSummary$ = this.actions$.pipe(\n\t\tofType(ApplicationActionTypes.ApplicationSummarySave),\n\t\tmergeMap(() => this.store.select(selectApplicationSummary).pipe(take(1))),\n\t\tmap(applicationSummary => {\n\t\t\tthis.applicationSvc.applicationInfoSave(applicationSummary).subscribe(appSummary => {\n\t\t\t\tthis.store.dispatch(new ApplicationSummaryLoaded({ appSummary }));\n\t\t\t\tthis.store.dispatch(new ApplicationSummarySaveSuccess());\n\t\t\t});\n\t\t})\n\t);\n\n\t@Effect({ dispatch: false })\n\tloadFacilities$ = this.actions$.pipe(\n\t\tofType(ApplicationActionTypes.ApplicationFacilitiesLoad),\n\t\tmap(action => {\n\t\t\tthis.applicationSvc.getApplicationFacilities(action.payload.appFacilitiesEntities).subscribe(response => {\n\t\t\t\tthis.store.dispatch(\n\t\t\t\t\tnew ApplicationFacilitiesLoaded({\n\t\t\t\t\t\tappFacilities: Object.values(response),\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t});\n\t\t})\n\t);\n\n\t@Effect({ dispatch: false })\n\tsaveApplicationFacilities$ = this.actions$.pipe(\n\t\tofType(ApplicationActionTypes.ApplicationFacilitiesSave),\n\t\tmap(action => {\n\t\t\tthis.store.dispatch(new ApplicationFacilitySaveResult({ facility: null }));\n\t\t\tthis.applicationSvc\n\t\t\t\t.saveApplicationFacilities([action.payload.facility], action.payload.validateAddress)\n\t\t\t\t.subscribe(response => {\n\t\t\t\t\tthis.store.dispatch(new ApplicationFacilitySaveResult({ facility: response[0] }));\n\t\t\t\t\tthis.store.dispatch(new ApplicationFacilitiesSaveSuccess({ facility: response[0] }));\n\t\t\t\t});\n\t\t})\n\t);\n\n\tconstructor(\n\t\tprivate actions$: Actions,\n\t\tprivate applicationSvc: ApplicationsService,\n\t\tprivate store: Store\n\t) {}\n}\n","import { PlatformType } from '../../enums/platform-type.enum';\n\nexport class LogoutRequest {\n\trefreshToken: string;\n\tplatform: PlatformType;\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Idle } from '@ng-idle/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { SimpleModalService } from 'ngx-simple-modal';\nimport { tap } from 'rxjs/operators';\nimport { CurrencyLoad, UserLogOut } from 'src/app/store/actions/global.action';\nimport { SideInfoToggle } from 'src/app/store/actions/side-info.action';\nimport { LocalStorageService } from 'src/app/core/services/helpers/local-storage.service';\nimport { PersistentFiltersService } from 'src/app/core/services/persistent-filters.service';\nimport { AppState } from 'src/app/store/reducers';\nimport { AuthActionTypes, Login, Logout } from '../actions/auth.actions';\nimport { AuthService } from 'src/app/modules/auth/auth.service';\nimport { LogoutRequest } from 'src/app/core/models/auth/logout-request.model';\nimport { PlatformType } from 'src/app/core/enums/platform-type.enum';\nimport { ActiveModeUpdate } from '../actions/active-mode.action';\nimport { ActiveType } from 'src/app/core/enums/active-type.enum';\n\n@Injectable()\nexport class AuthEffects {\n\tlogin$ = createEffect(\n\t\t() => {\n\t\t\treturn this.actions$.pipe(\n\t\t\t\tofType(AuthActionTypes.LoginAction),\n\t\t\t\ttap(action => {\n\t\t\t\t\tthis.localStorageService.loginData = action.payload.loginResponse;\n\t\t\t\t\tthis.store.dispatch(new CurrencyLoad({}));\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\t{ dispatch: false }\n\t);\n\n\tlogout$ = createEffect(\n\t\t() => {\n\t\t\treturn this.actions$.pipe(\n\t\t\t\tofType(AuthActionTypes.LogoutAction),\n\t\t\t\ttap(() => {\n\t\t\t\t\tif (this.localStorageService.loginData) {\n this.localStorageService.clearActiveMode();\n this.store.dispatch(new ActiveModeUpdate({ activeMode: ActiveType.Active }));\n\n\t\t\t\t\t\tconst logoutRequest = new LogoutRequest();\n\t\t\t\t\t\tlogoutRequest.refreshToken = this.localStorageService.loginData.refreshToken;\n\t\t\t\t\t\tlogoutRequest.platform = PlatformType.CompanyPortal;\n\t\t\t\t\t\tthis.authService.logout(logoutRequest).subscribe();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.store.dispatch(new UserLogOut());\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.localStorageService.clearLocalStorage();\n\t\t\t\t\t\tthis.localStorageService.idle = false;\n\t\t\t\t\t\tthis.simpleModalService.removeAll();\n\t\t\t\t\t\tthis.userIdleService.stop();\n\t\t\t\t\t\tthis.persistentFiltersService.clearFilter();\n\t\t\t\t\t\tthis.store.dispatch(new SideInfoToggle({ visible: false }));\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tthis.router.navigateByUrl('/login');\n\t\t\t\t\t\t});\n\t\t\t\t\t}, 100);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\t{ dispatch: false }\n\t);\n\n\tconstructor(\n\t\tprivate actions$: Actions,\n\t\tprivate router: Router,\n\t\tprivate store: Store,\n\t\tprivate localStorageService: LocalStorageService,\n\t\tprivate simpleModalService: SimpleModalService,\n\t\tprivate userIdleService: Idle,\n\t\tprivate persistentFiltersService: PersistentFiltersService,\n\t\tprivate authService: AuthService\n\t) { }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { AppState } from '../reducers';\nimport { Store } from '@ngrx/store';\nimport { map, exhaustMap } from 'rxjs/operators';\nimport { CurrencyLoad, GlobalActionTypes, CurrencyLoaded } from '../actions/global.action';\nimport { IndexService } from '../../core/services/index.service';\n\n@Injectable()\nexport class GlobalEffects {\n\t@Effect()\n\tloadCurrencies$ = this.actions$.pipe(\n\t\tofType(GlobalActionTypes.CurrencyLoad),\n\t\texhaustMap(action => this.indexSvc.getCurrencies(false)),\n\t\tmap(\n\t\t\tresponse =>\n\t\t\t\tnew CurrencyLoaded({\n\t\t\t\t\tcurrencies: response,\n\t\t\t\t})\n\t\t)\n\t);\n\n\tconstructor(private actions$: Actions, private indexSvc: IndexService, private store: Store) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { NotifierService } from 'angular-notifier';\nimport { cloneDeep } from 'lodash';\nimport { forkJoin, Observable } from 'rxjs';\nimport { defaultIfEmpty, filter, map, take } from 'rxjs/operators';\nimport {\n\tExecuteBatchItemReviewAction,\n\tLoadMagicReviewPage,\n\tMagicReviewPageActionTypes,\n\tMagicReviewPageLoading,\n\tRemoveCurrentlySelectedItem,\n\tSelectIngredientInQueue,\n\tSetIngredients,\n} from '../actions/magic-review-page.actions';\nimport { ReviewAction } from '../../core/enums/review-action.enum';\nimport { CustomerIngredientExtended } from '../../core/models/ingredients/customer-ingredient.model';\nimport { IngredientBatchReviewAction } from '../../core/models/ingredients/ingredient-batch-review-action.model';\nimport { MagicReviewPageIngredientItem } from '../../core/models/ingredients/magic-review-page-ingredient-item.model';\nimport { MasterIngredientExtended } from '../../core/models/ingredients/master-ingredient.model';\nimport { BatchIngredientService } from '../../core/services/batch-ingredient.service';\nimport { LocalStorageService } from '../../core/services/helpers/local-storage.service';\nimport { IngredientBatchesService } from '../../core/services/ingredient-batches.service';\nimport { CustomerIngredientsService } from '../../modules/ingredients/shared/services/customer-ingridients.service';\nimport { MasterIngredientsService } from '../../modules/master-ingredients/shared/services/master-ingredients.service';\nimport { AppState } from '../reducers';\nimport { selectIngredients, selectSelectedIngredient } from '../selectors/magic-review-page.selectors';\n\n@Injectable()\nexport class MagicReviewPageEffects {\n\t@Effect({ dispatch: false })\n\tloadIngredients$ = this.actions$.pipe(\n\t\tofType(MagicReviewPageActionTypes.LoadMagicReviewPage),\n\t\tmap(action => {\n\t\t\tconst ids = action.payload.batchItemIds;\n\t\t\tthis.localStorageService.magicReviewPageIds = ids;\n\t\t\tif (ids.length > 0) {\n\t\t\t\tthis.store.dispatch(new MagicReviewPageLoading({ loading: true }));\n\n\t\t\t\tconst observable = this.batchIngredientService.loadMultiple(ids);\n\t\t\t\tobservable.subscribe(batchIngredients => {\n\t\t\t\t\t// get master and customer ingredients efficiently\n\t\t\t\t\tconst miIds = [];\n\t\t\t\t\tconst ciIds = [];\n\t\t\t\t\tconst actions = [];\n\t\t\t\t\tbatchIngredients.forEach(batchItem => {\n\t\t\t\t\t\t// set master ingredient ids\n\t\t\t\t\t\tif (batchItem.ingredientIdentityId && !miIds.includes(batchItem.ingredientIdentityId)) {\n\t\t\t\t\t\t\tmiIds.push(batchItem.ingredientIdentityId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// set customer ingredient ids\n\t\t\t\t\t\tif (batchItem.customerIngredientId && !ciIds.includes(batchItem.customerIngredientId)) {\n\t\t\t\t\t\t\tciIds.push(batchItem.customerIngredientId);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!batchItem.reviewingById) {\n\t\t\t\t\t\t\tconst action = new IngredientBatchReviewAction();\n\t\t\t\t\t\t\taction.action = ReviewAction.Review;\n\t\t\t\t\t\t\taction.batchIngredient = batchItem;\n\t\t\t\t\t\t\tactions.push(action);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tthis.store.dispatch(\n\t\t\t\t\t\tnew ExecuteBatchItemReviewAction({\n\t\t\t\t\t\t\titems: actions,\n\t\t\t\t\t\t\taction: ReviewAction.Review,\n\t\t\t\t\t\t\tshowNotification: true,\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t\tconst miObservables = this.masterIngredientService.loadMultipleMasterIngredients(miIds);\n\t\t\t\t\tconst ciObservables = this.customerIngredientService.loadMultiple(ciIds);\n\n\t\t\t\t\tforkJoin({\n\t\t\t\t\t\tcustomerIngredient: ciObservables,\n\t\t\t\t\t\tmasterIngredients: miObservables,\n\t\t\t\t\t}).subscribe(res => {\n\t\t\t\t\t\tconst sets: MagicReviewPageIngredientItem[] = [];\n\t\t\t\t\t\tbatchIngredients.forEach(batchItem => {\n\t\t\t\t\t\t\tconst item = new CustomerIngredientExtended();\n\t\t\t\t\t\t\titem.info =\n\t\t\t\t\t\t\t\tres.customerIngredient.find(ci => ci.info.id === batchItem.customerIngredientId)\n\t\t\t\t\t\t\t\t\t?.info ?? null;\n\n\t\t\t\t\t\t\titem.masterIngredient =\n\t\t\t\t\t\t\t\tres.masterIngredients.find(\n\t\t\t\t\t\t\t\t\tmi => mi.ingredientIdentity.id === batchItem.ingredientIdentityId\n\t\t\t\t\t\t\t\t) ?? null;\n\n\t\t\t\t\t\t\tconst set: MagicReviewPageIngredientItem = {\n\t\t\t\t\t\t\t\tingredient: cloneDeep(item),\n\t\t\t\t\t\t\t\tingredientClone: cloneDeep(item),\n\t\t\t\t\t\t\t\tbatchIngredient: cloneDeep(batchItem),\n\t\t\t\t\t\t\t\tbatchIngredientClone: cloneDeep(batchItem),\n\t\t\t\t\t\t\t\tselected: false,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tsets.push(set);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.store.dispatch(new SetIngredients({ ingredients: sets }));\n\t\t\t\t\t\tthis.store.dispatch(new MagicReviewPageLoading({ loading: false }));\n\t\t\t\t\t\tthis.store.dispatch(new SelectIngredientInQueue({ ingredientIndex: 0 }));\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\t);\n\n\t@Effect({ dispatch: false })\n\texecuteBatchReviewAction$ = this.actions$.pipe(\n\t\tofType(MagicReviewPageActionTypes.ExecuteBatchItemReviewAction),\n\t\tmap(action => {\n\t\t\tconst actionId = action.payload.action;\n\t\t\tswitch (actionId) {\n\t\t\t\tcase ReviewAction.Review:\n\t\t\t\t\tthis.ingredientBatchesService.executeBatchItemReviewAction(action.payload.items).subscribe();\n\t\t\t\t\tbreak;\n\t\t\t\tcase ReviewAction.Save:\n\t\t\t\t\tthis.store.dispatch(new MagicReviewPageLoading({ loading: true }));\n\t\t\t\t\tthis.ingredientBatchesService\n\t\t\t\t\t\t.executeBatchItemReviewAction(action.payload.items)\n\t\t\t\t\t\t.subscribe(actionResult => {\n\t\t\t\t\t\t\tthis.store\n\t\t\t\t\t\t\t\t.select(selectSelectedIngredient)\n\t\t\t\t\t\t\t\t.pipe(\n\t\t\t\t\t\t\t\t\tfilter(res => res !== undefined),\n\t\t\t\t\t\t\t\t\ttake(1)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.subscribe(selectedIngredient => {\n\t\t\t\t\t\t\t\t\tif (actionResult[0].masterIngredient) {\n\t\t\t\t\t\t\t\t\t\tselectedIngredient.ingredientClone.masterIngredient = cloneDeep(\n\t\t\t\t\t\t\t\t\t\t\tactionResult[0].masterIngredient\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tselectedIngredient.batchIngredient = cloneDeep(\n\t\t\t\t\t\t\t\t\t\tselectedIngredient.batchIngredientClone\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tselectedIngredient.ingredient = cloneDeep(selectedIngredient.ingredientClone);\n\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\tthis.store.dispatch(new MagicReviewPageLoading({ loading: false }));\n\t\t\t\t\t\t\t\t\t\tif (action.payload.showNotification) {\n\t\t\t\t\t\t\t\t\t\t\tthis.notifier.notify('success', 'Your updates have been saved');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tthis.store.dispatch(new MagicReviewPageLoading({ loading: false }));\n\t\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase ReviewAction.Cancel:\n\t\t\t\t\tthis.store.dispatch(new MagicReviewPageLoading({ loading: true }));\n\t\t\t\t\tconst actions: IngredientBatchReviewAction[] = [];\n\n\t\t\t\t\tthis.store.select(selectIngredients).subscribe(ingredients => {\n\t\t\t\t\t\tingredients.forEach(ingredient => {\n\t\t\t\t\t\t\tconst itemAction = new IngredientBatchReviewAction();\n\t\t\t\t\t\t\titemAction.action = ReviewAction.Cancel;\n\t\t\t\t\t\t\titemAction.batchIngredient = ingredient.batchIngredient;\n\t\t\t\t\t\t\tactions.push(itemAction);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.ingredientBatchesService.executeBatchItemReviewAction(actions).subscribe(() => {\n\t\t\t\t\t\tthis.store.dispatch(new MagicReviewPageLoading({ loading: false }));\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase ReviewAction.Approve:\n\t\t\t\tcase ReviewAction.Reject:\n\t\t\t\t\tthis.store.dispatch(new MagicReviewPageLoading({ loading: true }));\n\t\t\t\t\tconst batchItemIds = action.payload.items.map(item => item.batchIngredient.id);\n\t\t\t\t\tthis.ingredientBatchesService.executeBatchItemReviewAction(action.payload.items).subscribe(\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tconst currentIds = this.localStorageService.magicReviewPageIds;\n\t\t\t\t\t\t\tbatchItemIds.forEach(id => {\n\t\t\t\t\t\t\t\tcurrentIds.splice(currentIds.indexOf(id), 1);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthis.localStorageService.magicReviewPageIds = currentIds;\n\n\t\t\t\t\t\t\tthis.store.dispatch(new RemoveCurrentlySelectedItem({}));\n\t\t\t\t\t\t\tthis.store.dispatch(new MagicReviewPageLoading({ loading: false }));\n\t\t\t\t\t\t\tif (action.payload.showNotification) {\n\t\t\t\t\t\t\t\tthis.notifier.notify('success', 'Your updates have been saved');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tthis.store.dispatch(new MagicReviewPageLoading({ loading: false }));\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t})\n\t);\n\n\tconstructor(\n\t\tprivate actions$: Actions,\n\t\tprivate store: Store,\n\t\tprivate batchIngredientService: BatchIngredientService,\n\t\tprivate customerIngredientService: CustomerIngredientsService,\n\t\tprivate masterIngredientService: MasterIngredientsService,\n\t\tprivate ingredientBatchesService: IngredientBatchesService,\n\t\tprivate notifier: NotifierService,\n\t\tprivate localStorageService: LocalStorageService\n\t) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Effect, Actions, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { AppState } from '../reducers';\nimport { SideInfoToggle, SideInfoActionTypes, SideInfoLoadedAsyncEntity } from '../actions/side-info.action';\nimport { map } from 'rxjs/operators';\nimport { ContactService } from '../../core/services/contact.service';\nimport { SideInfoType } from '../../core/enums/side-info-type.enum';\n\n@Injectable()\nexport class SideInfoEffects {\n\t@Effect({ dispatch: false })\n\ttoggle$ = this.actions$.pipe(\n\t\tofType(SideInfoActionTypes.SideInfoToggle),\n\t\tmap(action => {\n\t\t\t// logic based on type to do async call to get the entity details\n\t\t\tswitch (action.payload.type) {\n\t\t\t\tcase SideInfoType.Contact:\n\t\t\t\t\tthis.contactSvc.infoSummary(action.payload.extraParams.contactId).subscribe(entity => {\n\t\t\t\t\t\tthis.store.dispatch(\n\t\t\t\t\t\t\tnew SideInfoLoadedAsyncEntity({\n\t\t\t\t\t\t\t\tasyncEntity: entity,\n\t\t\t\t\t\t\t\ttype: action.payload.type,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t})\n\t);\n\n\tconstructor(private actions$: Actions, private contactSvc: ContactService, private store: Store) {}\n}\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-companies',\n\ttemplateUrl: './icon-companies.component.html',\n\tstyleUrls: ['./icon-companies.component.scss'],\n})\nexport class IconCompaniesComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n super()\n }\n\n\tngOnInit() {}\n}\n","\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-applications',\n\ttemplateUrl: './icon-applications.component.html',\n\tstyleUrls: ['./icon-applications.component.scss'],\n})\nexport class IconApplicationsComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {}\n}\n","\n\t\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-facilities',\n\ttemplateUrl: './icon-facilities.component.html',\n\tstyleUrls: ['./icon-facilities.component.scss'],\n})\nexport class IconFacilitiesComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n super()\n }\n\n\tngOnInit() {}\n}\n","\n\t\n\t\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-private-label',\n\ttemplateUrl: './icon-private-label.component.html',\n\tstyleUrls: ['./icon-private-label.component.scss'],\n})\nexport class IconPrivateLabelComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n super();\n }\n\n\tngOnInit() {}\n}\n","\n\t\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-vendor',\n\ttemplateUrl: './icon-vendor.component.html',\n\tstyleUrls: ['./icon-vendor.component.scss'],\n})\nexport class IconVendorComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n super()\n }\n\n\tngOnInit() {}\n}\n","\n\t\n\t\t\n\t\t\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-agency',\n\ttemplateUrl: './icon-agency.component.html',\n\tstyleUrls: ['./icon-agency.component.scss'],\n})\nexport class IconAgencyComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n super();\n }\n\n\tngOnInit() {}\n}\n","\n\t\n\t\t\n\t\t\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-products',\n\ttemplateUrl: './icon-products.component.html',\n\tstyleUrls: ['./icon-products.component.scss'],\n})\nexport class IconProductsComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n super();\n }\n\n\tngOnInit() {}\n}\n","\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-certificate',\n\ttemplateUrl: './icon-certificate.component.html',\n\tstyleUrls: ['./icon-certificate.component.scss'],\n})\nexport class IconCertificateComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n super()\n }\n\n\tngOnInit() {}\n}\n","\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-ingredient',\n\ttemplateUrl: './icon-ingredient.component.html',\n\tstyleUrls: ['./icon-ingredient.component.scss'],\n})\nexport class IconIngredientComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n super();\n }\n\n\tngOnInit() {}\n}\n","\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-master-ingredient',\n\ttemplateUrl: './icon-master-ingredient.component.html',\n\tstyleUrls: ['./icon-master-ingredient.component.scss'],\n})\nexport class IconMasterIngredientComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {}\n}\n","\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-tasks',\n\ttemplateUrl: './icon-tasks.component.html',\n\tstyleUrls: ['./icon-tasks.component.scss'],\n})\nexport class IconTasksComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n super();\n }\n\tngOnInit() {}\n}\n","\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n selector: 'app-icon-dashboard',\n templateUrl: './icon-dashboard.component.html',\n styleUrls: ['./icon-dashboard.component.scss']\n})\nexport class IconDashboardComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {}\n}\n","\n\t\n\n","import { Component, OnInit } from '@angular/core';\nimport { BaseIcon } from '../base-icon';\n\n@Component({\n\tselector: 'app-icon-invoices',\n\ttemplateUrl: './icon-invoices.component.html',\n\tstyleUrls: ['./icon-invoices.component.scss'],\n})\nexport class IconInvoicesComponent extends BaseIcon implements OnInit {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tngOnInit() {}\n}\n","\n\n\n\t\n\t\n\t\n\t\n\n","import { Injectable } from '@angular/core';\nimport { MenuItem } from '../models/menu-item.model';\nimport { of, Observable } from 'rxjs';\nimport { IconCompaniesComponent } from 'src/app/shared/icons/icon-companies/icon-companies.component';\nimport { IconApplicationsComponent } from 'src/app/shared/icons/icon-applications/icon-applications.component';\nimport { IconFacilitiesComponent } from 'src/app/shared/icons/icon-facilities/icon-facilities.component';\nimport { IconPrivateLabelComponent } from 'src/app/shared/icons/icon-private-label/icon-private-label.component';\nimport { IconVendorComponent } from 'src/app/shared/icons/icon-vendor/icon-vendor.component';\nimport { IconAgencyComponent } from 'src/app/shared/icons/icon-agency/icon-agency.component';\nimport { IconProductsComponent } from 'src/app/shared/icons/icon-products/icon-products.component';\nimport { IconCertificateComponent } from 'src/app/shared/icons/icon-certificate/icon-certificate.component';\nimport { IconIngredientComponent } from 'src/app/shared/icons/icon-ingredient/icon-ingredient.component';\nimport { IconMasterIngredientComponent } from 'src/app/shared/icons/icon-master-ingredient/icon-master-ingredient.component';\nimport { IconPeopleComponent } from 'src/app/shared/icons/icon-people/icon-people.component';\nimport { IconVisitsComponent } from 'src/app/shared/icons/icon-visits/icon-visits.component';\nimport { IconSettingsComponent } from 'src/app/shared/icons/icon-settings/icon-settings.component';\nimport { IconTasksComponent } from 'src/app/shared/icons/icon-tasks/icon-tasks.component';\nimport { IconDashboardComponent } from '../../shared/icons/icon-dashboard/icon-dashboard.component';\nimport { IconSearchComponent } from 'src/app/shared/icons/icon-search/icon-search.component';\nimport { PermissionModule } from '../enums/permission-module.enum';\nimport { ModuleType } from '../enums/module-type.enum';\nimport { IconInvoicesComponent } from 'src/app/shared/icons/icon-invoices/icon-invoices.component';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class SidenavService {\n\tconstructor() {}\n\n\tgetMenuItems(): Observable {\n\t\treturn of([\n\t\t\t{\n\t\t\t\tid: ModuleType.Dashboard,\n\t\t\t\tname: 'Dashboard',\n\t\t\t\ticon: IconDashboardComponent,\n\t\t\t\tpath: '/dashboard',\n\t\t\t\tactiveOnSubRoutes: ['/dashboard'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.Application,\n\t\t\t\tname: 'Applications',\n\t\t\t\ticon: IconApplicationsComponent,\n\t\t\t\tpath: '/applications',\n\t\t\t\tpermissionIds: [PermissionModule.Application],\n\t\t\t\tactiveOnSubRoutes: ['/applications/**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.UKDSearch,\n\t\t\t\tname: 'UKD Search',\n\t\t\t\ticon: IconSearchComponent,\n\t\t\t\tpath: '/ukd-search',\n\t\t\t\tpermissionIds: [PermissionModule.UKDSearch],\n\t\t\t\tactiveOnSubRoutes: ['/ukd-search/**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.Company,\n\t\t\t\tname: 'Companies',\n\t\t\t\ticon: IconCompaniesComponent,\n\t\t\t\tpath: '/companies',\n\t\t\t\tpermissionIds: [PermissionModule.Company, PermissionModule.AccountingRenewal],\n\t\t\t\tactiveOnSubRoutes: ['/companies/**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.Facility,\n\t\t\t\tname: 'Facilitites',\n\t\t\t\ticon: IconFacilitiesComponent,\n\t\t\t\tpath: '/facilities',\n\t\t\t\tpermissionIds: [PermissionModule.Facility],\n\t\t\t\tactiveOnSubRoutes: ['/facilities/**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.PrivateLabel,\n\t\t\t\tname: 'Private Label',\n\t\t\t\ticon: IconPrivateLabelComponent,\n\t\t\t\tpath: '/private-label',\n\t\t\t\tpermissionIds: [PermissionModule.PrivateLabeler],\n\t\t\t\tactiveOnSubRoutes: ['/private-label/**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.Vendors,\n\t\t\t\tname: 'Vendors',\n\t\t\t\ticon: IconVendorComponent,\n\t\t\t\tpermissionIds: [PermissionModule.Vendor],\n\t\t\t\tpath: '/vendors',\n\t\t\t\tactiveOnSubRoutes: ['/vendors/**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.Agencies,\n\t\t\t\tname: 'Agencies',\n\t\t\t\ticon: IconAgencyComponent,\n\t\t\t\tpath: '/agencies',\n\t\t\t\tpermissionIds: [PermissionModule.Agency],\n\t\t\t\tactiveOnSubRoutes: ['/agencies/**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.Products,\n\t\t\t\tname: 'Products',\n\t\t\t\ticon: IconProductsComponent,\n\t\t\t\tpath: '/products',\n\t\t\t\tpermissionIds: [PermissionModule.Products, PermissionModule.ProductBatch],\n\t\t\t\tactiveOnSubRoutes: ['/products/**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.KosherCertificates,\n\t\t\t\tname: 'Kosher Certificate',\n\t\t\t\ticon: IconCertificateComponent,\n\t\t\t\tpath: '/certificates',\n\t\t\t\tpermissionIds: [PermissionModule.KosherCertificate, PermissionModule.KCGroup],\n\t\t\t\tactiveOnSubRoutes: ['/certificates/**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.CustomerIngredient,\n\t\t\t\tname: 'Customer Ingredient',\n\t\t\t\tpermissionIds: [\n\t\t\t\t\tPermissionModule.CustomerIngredients,\n\t\t\t\t\tPermissionModule.IngredientBatch,\n\t\t\t\t\tPermissionModule.ReviewIngredients,\n\t\t\t\t],\n\t\t\t\ticon: IconIngredientComponent,\n\t\t\t\tpath: '/ingredients/customer-ingredient',\n\t\t\t\tactiveOnSubRoutes: ['/ingredients/**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.MasterIngredient,\n\t\t\t\tname: 'Master Ingredient',\n\t\t\t\tpermissionIds: [PermissionModule.MasterIngredient, PermissionModule.ChangedMI],\n\t\t\t\ticon: IconMasterIngredientComponent,\n\t\t\t\tpath: '/master-ingredient',\n\t\t\t\tactiveOnSubRoutes: ['/master-ingredient/:id/**', '/submit/master-ingredient'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.Contacts,\n\t\t\t\tname: 'Contacts',\n\t\t\t\ticon: IconPeopleComponent,\n\t\t\t\tpath: '/contacts',\n\t\t\t\tpermissionIds: [PermissionModule.Contact],\n\t\t\t\tactiveOnSubRoutes: ['/contacts/:id**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.Visits,\n\t\t\t\tname: 'Visits',\n\t\t\t\ticon: IconVisitsComponent,\n\t\t\t\tpath: '/visits',\n\t\t\t\tpermissionIds: [PermissionModule.Visits, PermissionModule.Trips, PermissionModule.Amex],\n\t\t\t\tactiveOnSubRoutes: ['/visits/**', '/trips/**', '/amex/**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.Tasks,\n\t\t\t\tname: 'Tasks',\n\t\t\t\ticon: IconTasksComponent,\n\t\t\t\tpath: '/tasks',\n\t\t\t\tpermissionIds: [PermissionModule.Task],\n\t\t\t\tactiveOnSubRoutes: ['/tasks/:id/**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.Invoices,\n\t\t\t\tname: 'Invoices',\n\t\t\t\ticon: IconInvoicesComponent,\n\t\t\t\tpath: '/invoices',\n\t\t\t\tactiveOnSubRoutes: ['/invoices/**'],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ModuleType.Settings,\n\t\t\t\tname: 'Settings',\n\t\t\t\ticon: IconSettingsComponent,\n\t\t\t\tpermissionIds: [\n\t\t\t\t\tPermissionModule.Users,\n\t\t\t\t\tPermissionModule.Roles,\n\t\t\t\t\tPermissionModule.Groups,\n\t\t\t\t\tPermissionModule.Permissions,\n\t\t\t\t\tPermissionModule.ProfileTemplates,\n\t\t\t\t\tPermissionModule.DocumentTemplates,\n\t\t\t\t\tPermissionModule.RulesEngine,\n\t\t\t\t\tPermissionModule.Scripts,\n\t\t\t\t\tPermissionModule.Categories,\n\t\t\t\t],\n\t\t\t\tpath: '/settings/users',\n\t\t\t\tactiveOnSubRoutes: ['/settings/**', '/user-settings/**'],\n\t\t\t},\n\t\t]);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, mergeMap } from 'rxjs/operators';\nimport { SidenavService } from '../../core/services/sidenav.service';\nimport { MenuItemsLoaded, MenuItemsRequested, SidenavActionTypes } from '../actions/sidenav.actions';\nimport { AppState } from '../reducers';\n\n@Injectable()\nexport class SideNavEffects {\n\t@Effect()\n\tloadAllCourses$ = this.actions$.pipe(\n\t\tofType(SidenavActionTypes.MenuItemsRequested),\n\t\tmergeMap(() => this.sidenavService.getMenuItems()),\n\t\tmap(menuItems => new MenuItemsLoaded({ menuItems }))\n\t);\n\n\tconstructor(private actions$: Actions, private sidenavService: SidenavService, private store: Store) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { TabsActionTypes, TabsLoaded, TabsRequested } from '../actions/tabs.actions';\nimport { TabsService } from '../../core/services/tabs.service';\nimport { AppState } from '../reducers';\n\n@Injectable()\nexport class TabsEffects {\n\t@Effect()\n\tloadTabs$ = this.actions$.pipe(\n\t\tofType(TabsActionTypes.TabsRequested),\n\t\twithLatestFrom(this.store.select(state => state.tabs)),\n\t\tswitchMap(([action, tabs]) => {\n\t\t\treturn this.tabsService.getTabsObservable(action.payload.type, tabs.entityId);\n\t\t}),\n\t\tmap(tabs => new TabsLoaded({ tabs }))\n\t);\n\n\tconstructor(private actions$: Actions, private tabsService: TabsService, private store: Store) { }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { exhaustMap, map } from 'rxjs/operators';\nimport { LoadUsers, LoadUsersSuccess, UsersActionTypes } from 'src/app/store/actions/users.action';\nimport { AutocompleteService } from '../../core/services/autocomplete.service';\n\n@Injectable()\nexport class UsersEffects {\n\t@Effect()\n\tloadUsers$ = this.actions$.pipe(\n\t\tofType(UsersActionTypes.LoadUsers),\n\t\texhaustMap(action => this.autocompleteService.findBusinessEntity(action.payload.searchCriteria)),\n\t\tmap((users: any[]) => new LoadUsersSuccess({ users }))\n\t);\n\n\tconstructor(private actions$: Actions, private autocompleteService: AutocompleteService) {}\n}\n","import { ActiveType } from '../../core/enums/active-type.enum';\nimport { ActiveModeActions, ActiveModeActionTypes } from '../actions/active-mode.action';\n\nexport interface ActiveModeState {\n\tactiveMode: ActiveType;\n}\n\nexport const initialState: ActiveModeState = {\n\tactiveMode: ActiveType.All,\n};\n\nexport function activeModeReducer(state = initialState, action: ActiveModeActions): ActiveModeState {\n\tswitch (action.type) {\n\t\tcase ActiveModeActionTypes.ActiveModeUpdate:\n\t\t\treturn {\n\t\t\t\tactiveMode: action.payload.activeMode,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { ActiveModeEffects } from './effects/active-mode.effects';\nimport { ApplicationEffects } from './effects/application.effects';\nimport { AuthEffects } from './effects/auth.effects';\nimport { GlobalEffects } from './effects/global.effects';\nimport { MagicReviewPageEffects } from './effects/magic-review-page.effects';\nimport { SideInfoEffects } from './effects/sideinfo.effects';\nimport { SideNavEffects } from './effects/sidenav.effects';\nimport { TabsEffects } from './effects/tabs.effects';\nimport { UsersEffects } from './effects/users.effects';\nimport * as fromActiveMode from './reducers/active-mode.reducer';\nimport * as fromApplication from './reducers/application.reducer';\nimport * as fromAuth from './reducers/auth.reducer';\nimport * as fromGlobal from './reducers/global.reducer';\nimport * as magicReviewPage from './reducers/magic-review-page.reducer';\nimport * as fromSidenav from './reducers/sidenav.reducer';\nimport * as fromTabs from './reducers/tabs.reducer';\nimport * as fromUsers from './reducers/users.reducer';\nimport * as inactiveTabs from './reducers/inactive-tabs.reducer';\n\n@NgModule({\n\timports: [\n\t\tStoreModule.forFeature('activeMode', fromActiveMode.activeModeReducer),\n\t\tStoreModule.forFeature('sidenav', fromSidenav.sidenavReducer),\n\t\tStoreModule.forFeature('tabs', fromTabs.tabsReducer),\n\t\tStoreModule.forFeature('application', fromApplication.applicationReducer),\n\t\tStoreModule.forFeature('global', fromGlobal.globalReducer),\n\t\tStoreModule.forFeature('users', fromUsers.usersReducer),\n\t\tStoreModule.forFeature('magicReviewPage', magicReviewPage.magicReviewPageReducer),\n\t\tStoreModule.forFeature('auth', fromAuth.authReducer),\n\t\tStoreModule.forFeature('inactiveTabs', inactiveTabs.inactiveTabsReducer),\n\t\tEffectsModule.forFeature([\n\t\t\tSideNavEffects,\n\t\t\tTabsEffects,\n\t\t\tSideInfoEffects,\n\t\t\tActiveModeEffects,\n\t\t\tApplicationEffects,\n\t\t\tGlobalEffects,\n\t\t\tUsersEffects,\n\t\t\tMagicReviewPageEffects,\n\t\t\tAuthEffects,\n\t\t]),\n\t],\n})\nexport class AppStoreModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabsComponent } from './tabs/tabs.component';\nimport { TabComponent } from './tab/tab.component';\nimport { IconMergeCheckComponent } from './icons/icon-merge-check/icon-merge-check.component';\n\n@NgModule({\n\tdeclarations: [TabsComponent, TabComponent, IconMergeCheckComponent],\n\timports: [CommonModule],\n\texports: [TabsComponent, TabComponent],\n})\nexport class TabsModule {}\n","import { NgModule } from '@angular/core';\n\nimport { DropdownDirective } from './dropdown/dropdown.directive';\nimport { DropdownToggleDirective } from './dropdown/dropdown-toggle.directive';\nimport { DropdownMenuDirective } from './dropdown/dropdown-menu.directive';\nimport { AccordionToggleDirective } from './accordion/accordion-toggle.directive';\nimport { AccordionContentDirective } from './accordion/accordion-content.directive';\n\n@NgModule({\n\timports: [],\n\texports: [\n\t\tDropdownDirective,\n\t\tDropdownToggleDirective,\n\t\tDropdownMenuDirective,\n\t\tAccordionToggleDirective,\n\t\tAccordionContentDirective,\n\t],\n\tdeclarations: [\n\t\tDropdownDirective,\n\t\tDropdownToggleDirective,\n\t\tDropdownMenuDirective,\n\t\tAccordionToggleDirective,\n\t\tAccordionContentDirective,\n\t],\n\tproviders: [AccordionContentDirective],\n})\nexport class CustomDirectivesModule {}\n","\n\t\n\t{{ params.value.name }}\n\n","import { Component, OnInit } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\n@Component({\n\tselector: 'app-country-cell-renderer',\n\ttemplateUrl: './country-cell-renderer.component.html',\n\tstyleUrls: ['./country-cell-renderer.component.scss'],\n})\nexport class CountryCellRendererComponent implements ICellRendererAngularComp {\n\tpublic params: any;\n\n\tagInit(params: any): void {\n\t\tthis.params = params;\n\t}\n\n\trefresh(): boolean {\n\t\treturn false;\n\t}\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IconAgencyComponent } from './icon-agency/icon-agency.component';\nimport { IconAlertsComponent } from './icon-alerts/icon-alerts.component';\nimport { IconApplicationsComponent } from './icon-applications/icon-applications.component';\nimport { IconArrowComponent } from './icon-arrow/icon-arrow.component';\nimport { IconAttachmentComponent } from './icon-attachment/icon-attachment.component';\nimport { IconCalendarComponent } from './icon-calendar/icon-calendar.component';\nimport { IconCardComponent } from './icon-card/icon-card.component';\nimport { IconCertificateComponent } from './icon-certificate/icon-certificate.component';\nimport { IconCheckInverseComponent } from './icon-check-inverse/icon-check-inverse.component';\nimport { IconCheckMultipleComponent } from './icon-check-multiple/icon-check-multiple.component';\nimport { IconCheckComponent } from './icon-check/icon-check.component';\nimport { IconClockComponent } from './icon-clock/icon-clock.component';\nimport { IconCloseComponent } from './icon-close/icon-close.component';\nimport { IconCompaniesComponent } from './icon-companies/icon-companies.component';\nimport { IconCopyComponent } from './icon-copy/icon-copy.component';\nimport { IconCreateComponent } from './icon-create/icon-create.component';\nimport { IconDashboardComponent } from './icon-dashboard/icon-dashboard.component';\nimport { IconDeleteComponent } from './icon-delete/icon-delete.component';\nimport { IconDolarSignComponent } from './icon-dolar-sign/icon-dolar-sign.component';\nimport { IconDownloadComponent } from './icon-download/icon-download.component';\nimport { IconEarthComponent } from './icon-earth/icon-earth.component';\nimport { IconEditBlockComponent } from './icon-edit-block/icon-edit-block.component';\nimport { IconEditComponent } from './icon-edit/icon-edit.component';\nimport { IconEmailOpenedComponent } from './icon-email-opened/icon-email-opened.component';\nimport { IconEmailComponent } from './icon-email/icon-email.component';\nimport { IconFacilitiesComponent } from './icon-facilities/icon-facilities.component';\nimport { IconFileComponent } from './icon-file/icon-file.component';\nimport { IconInactiveComponent } from './icon-inactive/icon-inactive.component';\nimport { IconInfoComponent } from './icon-info/icon-info.component';\nimport { IconIngredientComponent } from './icon-ingredient/icon-ingredient.component';\nimport { IconLinkComponent } from './icon-link/icon-link.component';\nimport { IconLinksComponent } from './icon-links/icon-links.component';\nimport { IconLogoutComponent } from './icon-logout/icon-logout.component';\nimport { IconMapComponent } from './icon-map/icon-map.component';\nimport { IconMasterIngredientComponent } from './icon-master-ingredient/icon-master-ingredient.component';\nimport { IconMergeComponent } from './icon-merge/icon-merge.component';\nimport { IconMoveComponent } from './icon-move/icon-move.component';\nimport { IconNewTabComponent } from './icon-new-tab/icon-new-tab.component';\nimport { IconNoResultComponent } from './icon-no-result/icon-no-result.component';\nimport { IconNoResultsComponent } from './icon-no-results/icon-no-results.component';\nimport { IconPdfLinkComponent } from './icon-pdf-link/icon-pdf-link.component';\nimport { IconPeopleComponent } from './icon-people/icon-people.component';\nimport { IconPhoneComponent } from './icon-phone/icon-phone.component';\nimport { IconPlaneComponent } from './icon-plane/icon-plane.component';\nimport { IconPoComponent } from './icon-po/icon-po.component';\nimport { IconPrintComponent } from './icon-print/icon-print.component';\nimport { IconPrivateLabelComponent } from './icon-private-label/icon-private-label.component';\nimport { IconProductsComponent } from './icon-products/icon-products.component';\nimport { IconRefreshComponent } from './icon-refresh/icon-refresh.component';\nimport { IconScissorComponent } from './icon-scissor/icon-scissor.component';\nimport { IconSearchComponent } from './icon-search/icon-search.component';\nimport { IconSendComponent } from './icon-send/icon-send.component';\nimport { IconSettingsComponent } from './icon-settings/icon-settings.component';\nimport { IconSyncComponent } from './icon-sync/icon-sync.component';\nimport { IconTasksComponent } from './icon-tasks/icon-tasks.component';\nimport { IconTitleArrowComponent } from './icon-title-arrow/icon-title-arrow.component';\nimport { IconUnlinksComponent } from './icon-unlinks/icon-unlinks.component';\nimport { IconUserSettingsComponent } from './icon-user-settings/icon-user-settings.component';\nimport { IconVatComponent } from './icon-vat/icon-vat.component';\nimport { IconVendorComponent } from './icon-vendor/icon-vendor.component';\nimport { IconViewMoreComponent } from './icon-view-more/icon-view-more.component';\nimport { IconViewComponent } from './icon-view/icon-view.component';\nimport { IconVisitsComponent } from './icon-visits/icon-visits.component';\nimport { IconWarningComponent } from './icon-warning/icon-warning.component';\nimport { IconVComponent } from './icon-v/icon-v.component';\nimport { IconAsteriskComponent } from './icon-asterisk/icon-asterisk.component';\nimport { IconInvoicesComponent } from './icon-invoices/icon-invoices.component';\nimport { IconEyeComponent } from './icon-eye/icon-eye.component';\nimport { IconTryAgainComponent } from './icon-try-again/icon-try-again.component';\n\n@NgModule({\n\timports: [CommonModule],\n\tdeclarations: [\n\t\tIconApplicationsComponent,\n\t\tIconCompaniesComponent,\n\t\tIconFacilitiesComponent,\n\t\tIconPrivateLabelComponent,\n\t\tIconVendorComponent,\n\t\tIconAgencyComponent,\n\t\tIconProductsComponent,\n\t\tIconCertificateComponent,\n\t\tIconIngredientComponent,\n\t\tIconMasterIngredientComponent,\n\t\tIconPeopleComponent,\n\t\tIconVisitsComponent,\n\t\tIconPrintComponent,\n\t\tIconDownloadComponent,\n\t\tIconLogoutComponent,\n\t\tIconSettingsComponent,\n\t\tIconEditComponent,\n\t\tIconInfoComponent,\n\t\tIconAlertsComponent,\n\t\tIconCheckComponent,\n\t\tIconCloseComponent,\n\t\tIconInactiveComponent,\n\t\tIconCheckMultipleComponent,\n\t\tIconEditBlockComponent,\n\t\tIconSearchComponent,\n\t\tIconNoResultsComponent,\n\t\tIconMapComponent,\n\t\tIconWarningComponent,\n\t\tIconDeleteComponent,\n\t\tIconEmailComponent,\n\t\tIconEmailOpenedComponent,\n\t\tIconPhoneComponent,\n\t\tIconCheckInverseComponent,\n\t\tIconLinkComponent,\n\t\tIconFileComponent,\n\t\tIconUserSettingsComponent,\n\t\tIconCalendarComponent,\n\t\tIconPlaneComponent,\n\t\tIconEarthComponent,\n\t\tIconClockComponent,\n\t\tIconMergeComponent,\n\t\tIconCreateComponent,\n\t\tIconNewTabComponent,\n\t\tIconPdfLinkComponent,\n\t\tIconViewMoreComponent,\n\t\tIconLinksComponent,\n\t\tIconArrowComponent,\n\t\tIconCardComponent,\n\t\tIconNoResultComponent,\n\t\tIconTasksComponent,\n\t\tIconNoResultComponent,\n\t\tIconSendComponent,\n\t\tIconAttachmentComponent,\n\t\tIconDolarSignComponent,\n\t\tIconUnlinksComponent,\n\t\tIconViewComponent,\n\t\tIconMoveComponent,\n\t\tIconRefreshComponent,\n\t\tIconScissorComponent,\n\t\tIconVatComponent,\n\t\tIconPoComponent,\n\t\tIconDashboardComponent,\n\t\tIconCopyComponent,\n\t\tIconTitleArrowComponent,\n\t\tIconSyncComponent,\n\t\tIconVComponent,\n\t\tIconAsteriskComponent,\n\t\tIconInvoicesComponent,\n\t\tIconEyeComponent,\n\t\tIconTryAgainComponent,\n\t],\n\texports: [\n\t\tIconApplicationsComponent,\n\t\tIconCompaniesComponent,\n\t\tIconFacilitiesComponent,\n\t\tIconPrivateLabelComponent,\n\t\tIconVendorComponent,\n\t\tIconAgencyComponent,\n\t\tIconProductsComponent,\n\t\tIconCertificateComponent,\n\t\tIconIngredientComponent,\n\t\tIconMasterIngredientComponent,\n\t\tIconPeopleComponent,\n\t\tIconVisitsComponent,\n\t\tIconPrintComponent,\n\t\tIconDownloadComponent,\n\t\tIconLogoutComponent,\n\t\tIconSettingsComponent,\n\t\tIconEditComponent,\n\t\tIconInfoComponent,\n\t\tIconAlertsComponent,\n\t\tIconCheckComponent,\n\t\tIconCloseComponent,\n\t\tIconInactiveComponent,\n\t\tIconCheckMultipleComponent,\n\t\tIconEditBlockComponent,\n\t\tIconSearchComponent,\n\t\tIconNoResultsComponent,\n\t\tIconMapComponent,\n\t\tIconWarningComponent,\n\t\tIconDeleteComponent,\n\t\tIconEmailComponent,\n\t\tIconEmailOpenedComponent,\n\t\tIconPhoneComponent,\n\t\tIconCheckInverseComponent,\n\t\tIconLinkComponent,\n\t\tIconFileComponent,\n\t\tIconUserSettingsComponent,\n\t\tIconCalendarComponent,\n\t\tIconPlaneComponent,\n\t\tIconEarthComponent,\n\t\tIconClockComponent,\n\t\tIconMergeComponent,\n\t\tIconCreateComponent,\n\t\tIconNewTabComponent,\n\t\tIconPdfLinkComponent,\n\t\tIconViewMoreComponent,\n\t\tIconLinksComponent,\n\t\tIconArrowComponent,\n\t\tIconCardComponent,\n\t\tIconNoResultComponent,\n\t\tIconTasksComponent,\n\t\tIconNoResultComponent,\n\t\tIconSendComponent,\n\t\tIconAttachmentComponent,\n\t\tIconDolarSignComponent,\n\t\tIconUnlinksComponent,\n\t\tIconViewComponent,\n\t\tIconMoveComponent,\n\t\tIconRefreshComponent,\n\t\tIconScissorComponent,\n\t\tIconVatComponent,\n\t\tIconPoComponent,\n\t\tIconDashboardComponent,\n\t\tIconCopyComponent,\n\t\tIconTitleArrowComponent,\n\t\tIconSyncComponent,\n\t\tIconVComponent,\n\t\tIconAsteriskComponent,\n\t\tIconInvoicesComponent,\n\t\tIconEyeComponent,\n\t\tIconTryAgainComponent,\n\t],\n})\nexport class IconsModule {}\n","import { NgModule } from '@angular/core';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\n@NgModule({\n\texports: [\n\t\tMatTabsModule,\n\t\tMatDatepickerModule,\n\t\tMatNativeDateModule,\n\t\tMatExpansionModule,\n\t\tDragDropModule,\n\t\tMatTooltipModule,\n\t\tMatMenuModule,\n\t],\n})\nexport class MaterialModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DateTimeService } from '../../core/services/helpers/date-time.service';\n\n@Pipe({\n\tname: 'dateTime',\n})\nexport class DateTimePipe implements PipeTransform {\n\tconstructor(private dateTimeService: DateTimeService) {}\n\n\ttransform(value: any, format = ''): unknown {\n\t\tif (!value) {\n\t\t\treturn null;\n\t\t}\n\t\tif (format === 'hhmm') {\n\t\t\treturn this.dateTimeService.getFormattedTime(value);\n\t\t} else {\n\t\t\treturn new Date(value);\n\t\t}\n\t\tif (format === 'hh:mm') {\n\t\t\treturn this.dateTimeService.getFormattedTimeForHTML(value);\n\t\t}\n\t}\n}\n","import { CompanyDefaultInvoiceGroupGuard } from 'src/app/shared/route-guards/company-default-invoiceGroup-guard';\nimport { AddContactToNotificationWhitelistComponent } from './modals/add-contact-to-notification-whitelist/add-contact-to-notification-whitelist.component';\nimport { MergeBusinessEntityGridHeaderComponent } from './modals/merge-business-entity-grid-header/merge-business-entity-grid-header.component';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { AgGridModule } from 'ag-grid-angular';\nimport { FroalaEditorModule, FroalaViewModule } from 'angular-froala-wysiwyg';\nimport { OwlDateTimeModule, OwlNativeDateTimeModule } from 'ng-pick-datetime';\nimport { NgxExtendedPdfViewerModule } from 'ngx-extended-pdf-viewer';\nimport {\n\tPerfectScrollbarConfigInterface,\n\tPerfectScrollbarModule,\n\tPERFECT_SCROLLBAR_CONFIG,\n} from 'ngx-perfect-scrollbar';\nimport { NoSanitizePipe } from 'src/app/shared/pipes/no-sanitize.pipe';\nimport { CurrentContractPageComponent } from '../modules/companies/current-contract-page/current-contract-page.component';\nimport { ProfileTemplateItemComponent } from '../modules/settings/profile-templates/profile-template-item/profile-template-item.component';\nimport { ProfileTemplatesComponent } from '../modules/settings/profile-templates/profile-templates.component';\nimport { ScriptsListComponent } from '../modules/settings/scripts-list/scripts-list.component';\nimport { AppStoreModule } from '../store/store.module';\nimport { AccordionGroupComponent } from './components/accordion-group/accordion-group.component';\nimport { AccordionComponent } from './components/accordion/accordion.component';\nimport { AccountingRenewalTableComponent } from './components/accounting-renewal-table/accounting-renewal-table.component';\nimport { AddAdditionalFeeComponent } from './components/add-additional-fee/add-additional-fee.component';\nimport { AddressFormComponent } from './components/address-form/address-form.component';\nimport { ApplicationPageHeaderComponent } from './components/application-page-header/application-page-header.component';\nimport { BusinessEntitySearchComponent } from './components/business-entity-search/business-entity-search.component';\nimport { CommunicationChatComponent } from './components/communication-chat/communication-chat.component';\nimport { CompanyActivateFormComponent } from './components/company-activate-form/company-activate-form.component';\nimport { CompanyAppFormComponent } from './components/company-app-form/company-app-form.component';\nimport { CompanyContractAppFormComponent } from './components/company-contract-app-form/company-contract-app-form.component';\nimport { CompanyInactivateFormComponent } from './components/company-inactivate-form/company-inactivate-form.component';\nimport { CompanyInfoFormComponent } from './components/company-info-form/company-info-form.component';\nimport { ContactInfoFormComponent } from './components/contact-info-form/contact-info-form.component';\nimport { ContactsAppFormComponent } from './components/contacts-app-form/contacts-app-form.component';\nimport { ContractFormComponent } from './components/contract-form/contract-form.component';\nimport { DocumentTemplateComponent } from './components/document-template/document-template.component';\nimport { DynamicMenuComponent } from './components/dynamic-menu/dynamic-menu.component';\nimport { EntityFormLineItemComponent } from './components/entity-form/entity-form-line-item/entity-form-line-item.component';\nimport { EntityFormComponent } from './components/entity-form/entity-form.component';\nimport { EntityGuidelinesComponent } from './components/entity-guidelines/entity-guidelines.component';\nimport { EntityProfileAsweredQuestionsListComponent } from './components/entity-profile-aswered-questions-list/entity-profile-aswered-questions-list.component';\nimport { FacilitiesAppFormComponent } from './components/facilities-app-form/facilities-app-form.component';\nimport { FacilityActivateFormComponent } from './components/facility-activate-form/facility-activate-form.component';\nimport { FacilityContractSummaryComponent } from './components/facility-contract-summary/facility-contract-summary.component';\nimport { FacilityContractDetailsComponent } from './components/facility-contract/facility-contract-details/facility-contract-details.component';\nimport { FacilityContractTermsComponent } from './components/facility-contract/facility-contract-fees-and-expenses/facility-contract-fees-and-expenses.component';\nimport { TermExpenseRowComponent } from './components/facility-contract/facility-contract-fees-and-expenses/contract-item-row/contract-item-row.component';\nimport { TermExpenseRowExpenseComponent } from './components/facility-contract/facility-contract-fees-and-expenses/contract-item-row-expense/contract-item-row-expense.component';\nimport { FacilityContractVisitFeesComponent } from './components/facility-contract/facility-contract-visit-fees/facility-contract-visit-fees.component';\nimport { VisitFeesRowComponent } from './components/facility-contract/facility-contract-visit-fees/visit-fees-row/visit-fees-row.component';\nimport { FacilityContractComponent } from './components/facility-contract/facility-contract.component';\nimport { FacilityFormComponent } from './components/facility-form/facility-form.component';\nimport { FacilityInactivateFormComponent } from './components/facility-inactivate-form/facility-inactivate-form.component';\nimport { FacilityInfoFormComponent } from './components/facility-info-form/facility-info-form.component';\nimport { FeesAndExpensesAddFormComponent } from './components/fees-and-expenses-table/fees-and-expenses-add-form/fees-and-expenses-add-form.component';\nimport { FeesAndExpensesInputFormComponent } from './components/fees-and-expenses-table/fees-and-expenses-input-form/fees-and-expenses-input-form.component';\nimport { FeesAndExpensesTableComponent } from './components/fees-and-expenses-table/fees-and-expenses-table.component';\nimport { GenerateContractComponent } from './components/generate-contract/generate-contract.component';\nimport { HeaderComponent } from './components/header/header.component';\nimport { HistoryDisplayItemComponent } from './components/history-display-item/history-display-item.component';\nimport { IngredientFacilitiesComponent } from './components/ingredient-facilities/ingredient-facilities.component';\nimport { CustomerIngredientGeneralInfoComponent } from './components/ingredients/customer-ingredient-general-info/customer-ingredient-general-info.component';\nimport { CustomerIngredientsMasterIngredientComponent } from './components/ingredients/customer-ingredients-master-ingredient/customer-ingredients-master-ingredient.component';\nimport { IngredientCertificateAttributeComponent } from './components/ingredients/ingredient-certificate-attribute/ingredient-certificate-attribute.component';\nimport { MasterIngredientCurrentCertificateComponent } from './components/ingredients/master-ingredient-current-certificate/master-ingredient-current-certificate.component';\nimport { MasterIngredientGeneralInfoComponent } from './components/ingredients/master-ingredient-general-info/master-ingredient-general-info.component';\nimport { MasterIngredientKosherEvaluationComponent } from './components/ingredients/master-ingredient-kosher-evaluation/master-ingredient-kosher-evaluation.component';\nimport { MasterIngredientKosherInfoComponent } from './components/ingredients/master-ingredient-kosher-info/master-ingredient-kosher-info.component';\nimport { PackagingComponent } from './components/ingredients/packaging/packaging.component';\nimport { InitialVisitAppFormComponent } from './components/initial-visit-app-form/initial-visit-app-form.component';\nimport { InternalProductsRequiringApprovalComponent } from './components/internal-products-requiring-approval/internal-products-requiring-approval.component';\nimport { InvoiceSettingsFormComponent } from './components/invoice-settings-form/invoice-settings-form.component';\nimport { InvoicesTabComponent } from './components/invoices-tab/invoices-tab.component';\nimport { InvoicingGroupsAppFormComponent } from './components/invoicing-groups-app-form/invoicing-groups-app-form.component';\nimport { KcGroupComponent } from './components/kc-group/kc-group.component';\nimport { KosherCertificatesFormComponent } from './components/kosher-certificates-form/kosher-certificates-form.component';\nimport { MergeIngredientMasterIngredientItemComponent } from './components/merge-ingredient-master-ingredient-item/merge-ingredient-master-ingredient-item.component';\nimport { MergeIngredientTabComponent } from './components/merge-ingredient-tab/merge-ingredient-tab.component';\nimport { NoteListComponent } from './components/note-list/note-list.component';\nimport { PageHeaderComponent } from './components/page-header/page-header.component';\nimport { PageTitleComponent } from './components/page-title/page-title.component';\nimport { PermissionsListComponent } from './components/permissions-list/permissions-list.component';\nimport { PlCurrentContractPageComponent } from './components/pl-current-contract-page/pl-current-contract-page.component';\nimport { PrivateLabelerAppFormComponent } from './components/private-labeler-app-form/private-labeler-app-form.component';\nimport { PrivateLabelerContractAppFormComponent } from './components/private-labeler-contract-app-form/private-labeler-contract-app-form.component';\nimport { PrivateLabelerContractComponent } from './components/private-labeler-contract/private-labeler-contract.component';\nimport { PrivateLabelerInfoFormComponent } from './components/private-labeler-info-form/private-labeler-info-form.component';\nimport { PrivateLabelerRelatedFeesComponent } from './components/private-labeler-related-fees/private-labeler-related-fees.component';\nimport { ProductFormulaReportComponent } from './components/product-formula-report/product-formula-report.component';\nimport { ProfileFormComponent } from './components/profile-form/profile-form.component';\nimport { ReadMoreComponent } from './components/read-more/read-more.component';\nimport { ReferralFormComponent } from './components/referral-form/referral-form.component';\nimport { CompanyRenewalHistoryListComponent } from './components/renewal-info/company-renewal-history-list/company-renewal-history-list.component';\nimport { RenewalInfoComponent } from './components/renewal-info/renewal-info.component';\nimport { RolesFormComponent } from './components/roles-form/roles-form.component';\nimport { SearchBarComponent } from './components/search-bar/search-bar.component';\nimport { ApplicationSideinfoComponent } from './components/sideinfo-components/application-sideinfo/application-sideinfo.component';\nimport { CompanyApplicationSideinfoComponent } from './components/sideinfo-components/application-sideinfo/company-application-sideinfo/company-application-sideinfo.component';\nimport { PrivateLabelerApplicationSideinfoComponent } from './components/sideinfo-components/application-sideinfo/private-labeler-application-sideinfo/private-labeler-application-sideinfo.component';\nimport { RestaurantApplicationSideinfoComponent } from './components/sideinfo-components/application-sideinfo/restaurant-application-sideinfo/restaurant-application-sideinfo.component';\nimport { BrandSideinfoComponent } from './components/sideinfo-components/brand-sideinfo/brand-sideinfo.component';\nimport { CompanySideinfoComponent } from './components/sideinfo-components/company-sideinfo/company-sideinfo.component';\nimport { CompanySnapshotsSideInfoComponent } from './components/sideinfo-components/company-snapshots-side-info/company-snapshots-side-info.component';\nimport { ContactSideinfoComponent } from './components/sideinfo-components/contact-sideinfo/contact-sideinfo.component';\nimport { CustomerIngredientSideinfoComponent } from './components/sideinfo-components/customer-ingredient-sideinfo/customer-ingredient-sideinfo.component';\nimport { FacilitySideinfoComponent } from './components/sideinfo-components/facility-sideinfo/facility-sideinfo.component';\nimport { GroupSideinfoComponent } from './components/sideinfo-components/group-sideinfo/group-sideinfo.component';\nimport { HistorySideinfoComponent } from './components/sideinfo-components/history-sideinfo/history-sideinfo.component';\nimport { IngredientBatchSideinfoComponent } from './components/sideinfo-components/ingredient-batch-sideinfo/ingredient-batch-sideinfo.component';\nimport { InvoiceSideinfoComponent } from './components/sideinfo-components/invoice-sideinfo/invoice-sideinfo.component';\nimport { MagicReviewSideInfoComponent } from './components/sideinfo-components/magic-review-sideinfo/magic-review-side-info.component';\nimport { MasterIngredientsSideinfoComponent } from './components/sideinfo-components/master-ingredients-sideinfo/master-ingredients-sideinfo.component';\nimport { NoteSideInfoComponent } from './components/sideinfo-components/note-side-info/note-side-info.component';\nimport { NotificationSideinfoComponent } from './components/sideinfo-components/notification-sideinfo/notification-sideinfo.component';\nimport { PrivateLabelerSideinfoComponent } from './components/sideinfo-components/private-labeler-sideinfo/private-labeler-sideinfo.component';\nimport { ProductReviewQueueSideInfoComponent } from './components/sideinfo-components/product-review-queue-side-info/product-review-queue-side-info.component';\nimport { ProductSideinfoComponent } from './components/sideinfo-components/product-sideinfo/product-sideinfo.component';\nimport { RoleSideinfoComponent } from './components/sideinfo-components/role-sideinfo/role-sideinfo.component';\nimport { TaskSideinfoComponent } from './components/sideinfo-components/task-sideinfo/task-sideinfo.component';\nimport { TripSideinfoComponent } from './components/sideinfo-components/trip-sideinfo/trip-sideinfo.component';\nimport { VisitSideinfoComponent } from './components/sideinfo-components/visit-sideinfo/visit-sideinfo.component';\nimport { SideinfoFacilityComponent } from './components/sideinfo-facility/sideinfo-facility.component';\nimport { SideinfoComponent } from './components/sideinfo/sideinfo.component';\nimport { SidenavComponent } from './components/sidenav/sidenav.component';\nimport { StaticBarComponent } from './components/static-bar/static-bar.component';\nimport { SummaryFieldListComponent } from './components/summary-field-list/summary-field-list.component';\nimport { SummaryFieldIconComponent } from './components/summary-field-list/summary-field/summary-field-icon/summary-field-icon.component';\nimport { SummaryFieldTextComponent } from './components/summary-field-list/summary-field/summary-field-text/summary-field-text.component';\nimport { SummaryFieldWithLabelComponent } from './components/summary-field-list/summary-field/summary-field.component';\nimport { TabsMenuComponent } from './components/tabs-menu/tabs-menu.component';\nimport { TabsModule } from './components/tabs/tabs.module';\nimport { TaskControlsFormComponent } from './components/task-controls-form/task-controls-form.component';\nimport { TaskInfoFormComponent } from './components/task-info-form/task-info-form.component';\nimport { TripInfoFormComponent } from './components/trip-info-form/trip-info-form.component';\nimport { UnapprovedProductEvaluationsComponent } from './components/unapproved-product-evaluations/unapproved-product-evaluations.component';\nimport { UserMenuComponent } from './components/user-menu/user-menu.component';\nimport { VendorProfilesComponent } from './components/vendor-profiles/vendor-profiles.component';\nimport { ViewPdfComponent } from './components/view-pdf/view-pdf.component';\nimport { VisitInfoViewComponent } from './components/visit-info-view/visit-info-view.component';\nimport { CustomDirectivesModule } from './directives/custom-directives.module';\nimport { ApplicationProgressCellRendererComponent } from './grid-components/application-progress-cell-renderer/application-progress-cell-renderer.component';\nimport { AttachmentsCellRendererComponent } from './grid-components/attachments-cell-renderer/attachments-cell-renderer.component';\nimport { BooleanCellRendererComponent } from './grid-components/boolean-cell-renderer/boolean-cell-renderer.component';\nimport { BooleanColumnFilterRendererComponent } from './grid-components/boolean-column-filter-renderer/boolean-column-filter-renderer.component';\nimport { ButtonCellRendererComponent } from './grid-components/button-cell-renderer/button-cell-renderer.component';\nimport { CheckCellRendererComponent } from './grid-components/check-cell-renderer/check-cell-renderer.component';\nimport { CheckHeaderRendererComponent } from './grid-components/check-header-renderer/check-header-renderer.component';\nimport { CountryCellRendererComponent } from './grid-components/country-cell-renderer/country-cell-renderer.component';\nimport { DateColumnFilterRendererComponent } from './grid-components/date-column-filter-renderer/date-column-filter-renderer.component';\nimport { DropdownCellRendererComponent } from './grid-components/dropdown-cell-renderer/dropdown-cell-renderer.component';\nimport { FeeTextInputCellRendererComponent } from './grid-components/fee-text-input-cell-renderer/fee-text-input-cell-renderer.component';\nimport { HtmlCellRendererComponent } from './grid-components/html-cell-renderer/html-cell-renderer.component';\nimport { InvoicingGroupCellRendererComponent } from './grid-components/invoicing-group-cell-renderer/invoicing-group-cell-renderer.component';\nimport { NoRowsComponent } from './grid-components/no-rows/no-rows.component';\nimport { NoteCellRendererComponent } from './grid-components/note-cell-renderer/note-cell-renderer.component';\nimport { PermissionsHeaderComponent } from './grid-components/permissions-header/permissions-header.component';\nimport { StatusCellRendererComponent } from './grid-components/status-cell-renderer/status-cell-renderer.component';\nimport { TextCellRendererComponent } from './grid-components/text-cell-renderer/text-cell-renderer.component';\nimport { TextColumnFilterRendererComponent } from './grid-components/text-column-filter-renderer/text-column-filter-renderer.component';\nimport { TextInputCellRendererComponent } from './grid-components/text-input-cell-renderer/text-input-cell-renderer.component';\nimport { TextInputCheckboxCellRendererComponent } from './grid-components/text-input-checkbox-cell-renderer/text-input-checkbox-cell-renderer.component';\nimport { TextLabelCheckboxCellRendererComponent } from './grid-components/text-label-checkbox-cell-renderer/text-label-checkbox-cell-renderer.component';\nimport { TitleCheckboxLabelHeaderRendererComponent } from './grid-components/title-checkbox-label-header-renderer/title-checkbox-label-header-renderer.component';\nimport { TooltipRendererComponent } from './grid-components/tooltip-renderer/tooltip-renderer.component';\nimport { UndoCellRendererComponent } from './grid-components/undo-cell-renderer/undo-cell-renderer.component';\nimport { ViewCellRendererComponent } from './grid-components/view-cell-renderer/view-cell-renderer.component';\nimport { IconsModule } from './icons/icons.module';\nimport { AddressTextInputComponent } from './inputs/address-text-input/address-text-input.component';\nimport { CheckboxComponent } from './inputs/checkbox/checkbox.component';\nimport { CurrencyAmountComponent } from './inputs/currency-amount/currency-amount.component';\nimport { DatePickerInputComponent } from './inputs/date-picker-input/date-picker-input.component';\nimport { DurationPickerComponent } from './inputs/duration-picker/duration-picker.component';\nimport { GridSearchInputComponent } from './inputs/grid-search-input/grid-search-input.component';\nimport { InputErrorMessagesComponent } from './inputs/input-error-messages/input-error-messages.component';\nimport { LookUpInputComponent } from './inputs/look-up-input/look-up-input.component';\nimport { NoteFormComponent } from './inputs/note-form/note-form.component';\nimport { PaymentMethodInputComponent } from './inputs/payment-method-input/payment-method-input.component';\nimport { PickNoteInputComponent } from './inputs/pick-note-input/pick-note-input.component';\nimport { RadioButtonsListComponent } from './inputs/radio-buttons-list/radio-buttons-list.component';\nimport { SearchInputComponent } from './inputs/search-input/search-input.component';\nimport { SelectInputComponent } from './inputs/select-input/select-input.component';\nimport { SelectMultipleInputComponent } from './inputs/select-multiple-input/select-multiple-input.component';\nimport { SelectWithSearchInputComponent } from './inputs/select-with-search-input/select-with-search-input.component';\nimport { TaskEntitySearchComponent } from './inputs/task-entity-search/task-entity-search.component';\nimport { TextEditorComponent } from './inputs/text-editor/text-editor.component';\nimport { TextInputComponent } from './inputs/text-input/text-input.component';\nimport { TextareaInputComponent } from './inputs/textarea-input/textarea-input.component';\nimport { UploadFileComponent } from './inputs/upload-file/upload-file.component';\nimport { AddAgencyComponent } from './modals/add-agency/add-agency.component';\nimport { AddBrandComponent } from './modals/add-brand/add-brand.component';\nimport { AddCategoryModalComponent } from './modals/add-category-modal/add-category-modal.component';\nimport { AddCertficateItemComponent } from './modals/add-certficate-item/add-certficate-item.component';\nimport { AddCertificateKcGroupsComponent } from './modals/add-certificate-kc-groups/add-certificate-kc-groups.component';\nimport { AddCodeComponent } from './modals/add-code/add-code.component';\nimport { AddContactComponent } from './modals/add-contact/add-contact.component';\nimport { AddCustomFeeModalComponent } from './modals/add-custom-fee-modal/add-custom-fee-modal.component';\nimport { AddDifferentLotBatchComponent } from './modals/add-different-lot-batch/add-different-lot-batch.component';\nimport { AddExpenseComponent } from './modals/add-expense/add-expense.component';\nimport { AddFacilityInfoComponent } from './modals/add-facility-info/add-facility-info.component';\nimport { AddFacilityComponent } from './modals/add-facility/add-facility.component';\nimport { ViewTermAuditComponent } from './modals/view-term-audit/view-term-audit.component';\nimport { AddGroupComponent } from './modals/add-group/add-group.component';\nimport { AddKcgroupComponent } from './modals/add-kcgroup/add-kcgroup.component';\nimport { AddLinkOptionComponent } from './modals/add-link-option/add-link-option.component';\nimport { AddMasterIngredientComponent } from './modals/add-master-ingredient/add-master-ingredient.component';\nimport { AddMemberComponent } from './modals/add-member/add-member.component';\nimport { AddNoteComponent } from './modals/add-note/add-note.component';\nimport { AddOwnerProcessModalComponent } from './modals/add-owner-process-modal/add-owner-process-modal.component';\nimport { AddPrivateLabelerInfoComponent } from './modals/add-private-labeler-info/add-private-labeler-info.component';\nimport { AddProductLabelComponent } from './modals/add-product-label/add-product-label.component';\nimport { AddProductModalComponent } from './modals/add-product-modal/add-product-modal.component';\nimport { SameAsProductFormComponent } from './modals/add-product-modal/same-as-product-form/same-as-product-form.component';\nimport { AddProfileQuestionComponent } from './modals/add-profile-question/add-profile-question.component';\nimport { FormAnswerTypeRendererComponent } from './modals/add-profile-question/form-answer-type-renderer/form-answer-type-renderer.component';\nimport { AddPurchaseHistoryComponent } from './modals/add-purchase-history/add-purchase-history.component';\nimport { AddRoleComponent } from './modals/add-role/add-role.component';\nimport { AddSameProductLotBatchComponent } from './modals/add-same-product-lot-batch/add-same-product-lot-batch.component';\nimport { AddScriptComponent } from './modals/add-script/add-script.component';\nimport { AddSecondaryRoutingComponent } from './modals/add-secondary-routing/add-secondary-routing.component';\nimport { AddSignedDateCertificateComponent } from './modals/add-signed-date-certificate/add-signed-date-certificate.component';\nimport { AddTaskComponent } from './modals/add-task/add-task.component';\nimport { AddTripComponent } from './modals/add-trip/add-trip.component';\nimport { AddUserComponent } from './modals/add-user/add-user.component';\nimport { AddVendorComponent } from './modals/add-vendor/add-vendor.component';\nimport { AddVisitsComponent } from './modals/add-visits/add-visits.component';\nimport { AdditionalFeesInvoicesComponent } from './modals/additional-fees-invoices/additional-fees-invoices.component';\nimport { BusinessEntityCompareInfoComponent } from './modals/business-entity-compare-info/business-entity-compare-info.component';\nimport { CompanyInfoComponent } from './modals/business-entity-compare-info/company-info/company-info.component';\nimport { CompareAddressItemComponent } from './modals/business-entity-compare-info/compare-items/compare-address-item/compare-address-item.component';\nimport { CompareNotificationSettingItemComponent } from './modals/business-entity-compare-info/compare-items/compare-notification-setting-item/compare-notification-setting-item.component';\nimport { CompareStringItemComponent } from './modals/business-entity-compare-info/compare-items/compare-string-item/compare-string-item.component';\nimport { ContactInfoComponent } from './modals/business-entity-compare-info/contact-info/contact-info.component';\nimport { FacilityInfoComponent } from './modals/business-entity-compare-info/facility-info/facility-info.component';\nimport { PrivateLabelerContractInfoComponent } from './modals/business-entity-compare-info/private-labeler-contract-info/private-labeler-contract-info.component';\nimport { PrivateLabelerInfoComponent } from './modals/business-entity-compare-info/private-labeler-info/private-labeler-info.component';\nimport { CertificatePreviewModalComponent } from './modals/certificate-preview-modal/certificate-preview-modal.component';\nimport { ChangeSecurityLevelModalComponent } from './modals/change-security-level-modal/change-security-level-modal.component';\nimport { CommunicationComponent } from './modals/communication/communication.component';\nimport { ConfirmComponent } from './modals/confirm/confirm.component';\nimport { CreateKcgroupComponent } from './modals/create-kcgroup/create-kcgroup.component';\nimport { DataLossModalComponent } from './modals/data-loss-modal/data-loss-modal.component';\nimport { FacilityFormulaIngredientUtilityComponent } from './modals/facility-formula-ingredient-utility/facility-formula-ingredient-utility.component';\nimport { FormulaReportComponent } from './modals/formula-report/formula-report.component';\nimport { GenerateCreditMemoComponent } from './modals/generate-credit-memo/generate-credit-memo.component';\nimport { GenericGridSearchModalComponent } from './modals/generic-grid-search-modal/generic-grid-search-modal.component';\nimport { GridWrapperComponent } from './modals/generic-grid-search-modal/grid-wrapper/grid-wrapper.component';\nimport { SelectionOverviewComponent } from './modals/generic-grid-search-modal/selection-overview/selection-overview.component';\nimport { GenericValidationModalComponent } from './modals/generic-validation-modal/generic-validation-modal.component';\nimport { GenericViewChangesModalComponent } from './modals/generic-view-changes-modal/generic-view-changes-modal.component';\nimport { GlobalSearchComponent } from './modals/global-search/global-search.component';\nimport { IdleComponent } from './modals/idle/idle.component';\nimport { InvoiceGenerationErrorsComponent } from './modals/invoice-generation-errors/invoice-generation-errors.component';\nimport { LinkCategoryModalComponent } from './modals/link-category-modal/link-category-modal.component';\nimport { LinkCompanyFacilityComponent } from './modals/link-company-facility/link-company-facility.component';\nimport { LinkEntityComponent } from './modals/link-entity/link-entity.component';\nimport { LinkTaskModalComponent } from './modals/link-task-modal/link-task-modal.component';\nimport { MergeIngredientsComponent } from './modals/merge-ingredients/merge-ingredients.component';\nimport { PreviewInvoiceComponent } from './modals/preview-invoice/preview-invoice.component';\nimport { ProcessBatchIngredientErrorsModalComponent } from './modals/process-batch-ingredient-errors-modal/process-batch-ingredient-errors-modal.component';\nimport { ProductNameValidationComponent } from './modals/product-name-validation/product-name-validation.component';\nimport { PublishCertificateComponent } from './modals/publish-certificate/publish-certificate.component';\nimport { QcChecklistComponent } from './modals/qc-checklist/qc-checklist.component';\nimport { ReferralInformationComponent } from './modals/referral-information/referral-information.component';\nimport { RunScriptComponent } from './modals/run-script/run-script.component';\nimport { ScriptHistoryComponent } from './modals/script-history/script-history.component';\nimport { SearchEntityComponent } from './modals/search-entity/search-entity.component';\nimport { SelectTypeAddVisitComponent } from './modals/select-type-add-visit/select-type-add-visit.component';\nimport { ShowNotificationErrorsComponent } from './modals/show-notification-errors/show-notification-errors.component';\nimport { UpdatePoComponent } from './modals/update-po/update-po.component';\nimport { UploadAmexExpensesTripComponent } from './modals/upload-amex-expenses-trip/upload-amex-expenses-trip.component';\nimport { UploadAmexExpensesComponent } from './modals/upload-amex-expenses/upload-amex-expenses.component';\nimport { UploadBatchIngredientsFileComponent } from './modals/upload-batch-ingredients-file/upload-batch-ingredients-file.component';\nimport { UploadBatchProductsFileComponent } from './modals/upload-batch-products-file/upload-batch-products-file.component';\nimport { UploadFormulaItemsComponent } from './modals/upload-formula-items/upload-formula-items.component';\nimport { ViewAuditTrailModalComponent } from './modals/view-audit-trail-modal/view-audit-trail-modal.component';\nimport { ViewScheduleComponent } from './modals/view-check-in-check-out/view-schedule.component';\nimport { ViewEntityProfileComponent } from './modals/view-entity-profile/view-entity-profile.component';\nimport { ViewFacilityContractNotesComponent } from './modals/view-facility-contract-notes/view-facility-contract-notes.component';\nimport { ViewGridSelectionComponent } from './modals/view-grid-selection/view-grid-selection.component';\nimport { ViewOutstandingInvoicesComponent } from './modals/view-outstanding-invoices/view-outstanding-invoices.component';\nimport { VoidEvaluationModalComponent } from './modals/void-evaluation-modal/void-evaluation-modal.component';\nimport { MaterialModule } from './modules/material.module';\nimport { ArrayLenghtIsPipe } from './pipes/array-lenght-is.pipe';\nimport { AuditPipe } from './pipes/audit.pipe';\nimport { CamelcaseDisplayPipe } from './pipes/camelcase-display.pipe';\nimport { ConditionalValuePipe } from './pipes/conditional-value.pipe';\nimport { DateTimePipe } from './pipes/date-time.pipe';\nimport { FilterPipe } from './pipes/filter.pipe';\nimport { OptionPipe } from './pipes/option.pipe';\nimport { OrderByPipe } from './pipes/order-by.pipe';\nimport { PurifyPipe } from './pipes/purify.pipe';\nimport { RenderValueFromListPipe } from './pipes/render-list-value.pipe';\nimport { DataLossPreventionGuard } from './route-guards/data-loss-prevention.route-guard';\nimport { UserPermissionGuard } from './route-guards/user-permission.route-guard';\nimport { AccountingRenewalListComponent } from './shared-grids/accounting-renewal/accounting-renewal-list.component';\nimport { AliasListComponent } from './shared-grids/alias-list/alias-list.component';\nimport { AmexFileItemsListComponent } from './shared-grids/amex-file-items-list/amex-file-items-list.component';\nimport { AmexListComponent } from './shared-grids/amex-list/amex-list.component';\nimport { AuditTrailListComponent } from './shared-grids/audit-trail-list/audit-trail-list.component';\nimport { BrandsListComponent } from './shared-grids/brands-list/brands-list.component';\nimport { ChangedMasterIngredientsListComponent } from './shared-grids/changed-master-ingredients-list/changed-master-ingredients-list.component';\nimport { ChangesHistoryListComponent } from './shared-grids/changes-history-list/changes-history-list.component';\nimport { CompaniesListComponent } from './shared-grids/companies-list/companies-list.component';\nimport { CompanyFacilityStatusListComponent } from './shared-grids/company-facility-status-list/company-facility-status-list.component';\nimport { CompanyPrivateLabelerStatusListComponent } from './shared-grids/company-private-labeler-status-list/company-private-labeler-status-list.component';\nimport { CompanyProductsListComponent } from './shared-grids/company-products-list/company-products-list.component';\nimport { CompareListComponent } from './shared-grids/compare-list/compare-list.component';\nimport { CustomerIngredientsListComponent } from './shared-grids/customer-ingredients-list/customer-ingredients-list.component';\nimport { EntityFacilitiesListComponent } from './shared-grids/entity-facilities-list/entity-facilities-list.component';\nimport { ExpensesListComponent } from './shared-grids/expenses-list/expenses-list.component';\nimport { ExpensesTableComponent } from './shared-grids/expenses-list/expenses-table/expenses-table.component';\nimport { VisitExpenseCellComponent } from './shared-grids/expenses-list/expenses-table/trip-expenses-cells/visit-expense-cell/visit-expense-cell.component';\nimport { VisitExpenseInfoComponent } from './shared-grids/expenses-list/expenses-table/trip-expenses-cells/visit-expense-info/visit-expense-info.component';\nimport { VisitExpenseTotalCellComponent } from './shared-grids/expenses-list/expenses-table/trip-expenses-cells/visit-expense-total-cell/visit-expense-total-cell.component';\nimport { VisitFeeCellFooterComponent } from './shared-grids/expenses-list/expenses-table/trip-expenses-cells/visit-fee-cell-footer/visit-fee-cell-footer.component';\nimport { VisitFeeCellComponent } from './shared-grids/expenses-list/expenses-table/trip-expenses-cells/visit-fee-cell/visit-fee-cell.component';\nimport { VisitTotalCellComponent } from './shared-grids/expenses-list/expenses-table/trip-expenses-cells/visit-total-cell/visit-total-cell.component';\nimport { SplitExpensesModalComponent } from './shared-grids/expenses-list/split-expenses-modal/split-expenses-modal.component';\nimport { FacilitiesListComponent } from './shared-grids/facilities-list/facilities-list.component';\nimport { FacilityCompanyStatusListComponent } from './shared-grids/facility-company-status-list/facility-company-status-list.component';\nimport { GenericGridComponent } from './shared-grids/generic-grid/generic-grid.component';\nimport { GenericSearchGridComponent } from './shared-grids/generic-search-grid/generic-search-grid.component';\nimport { IncompleteApplicationsListComponent } from './shared-grids/incomplete-applications-list/incomplete-applications-list.component';\nimport { IngredientBatchListComponent } from './shared-grids/ingredient-batch-list/ingredient-batch-list.component';\nimport { InvoicesListComponent } from './shared-grids/invoices-list/invoices-list.component';\nimport { KosherCertificatesListComponent } from './shared-grids/kosher-certificates-list/kosher-certificates-list.component';\nimport { MasterIngredientsListComponent } from './shared-grids/master-ingredients-list/master-ingredients-list.component';\nimport { NotesListComponent } from './shared-grids/notes-list/notes-list.component';\nimport { PrivateLabelersListComponent } from './shared-grids/private-labelers-list/private-labelers-list.component';\nimport { ProcessesListComponent } from './shared-grids/processes-list/processes-list.component';\nimport { ProductCategoriesListComponent } from './shared-grids/product-categories-list/product-categories-list.component';\nimport { ProductPublicationListComponent } from './shared-grids/product-publication-list/product-publication-list.component';\nimport { ProductsListComponent } from './shared-grids/products-list/products-list.component';\nimport { ReviewIngredientsListComponent } from './shared-grids/review-ingredients-list/review-ingredients-list.component';\nimport { SearchIngredientTabComponent } from './shared-grids/search-ingredient-tab/search-ingredient-tab.component';\nimport { TasksListComponent } from './shared-grids/tasks-list/tasks-list.component';\nimport { TransactionsListComponent } from './shared-grids/transactions-list/transactions-list.component';\nimport { TripListComponent } from './shared-grids/trip-list/trip-list.component';\nimport { UkdSearchListComponent } from './shared-grids/ukd-search-list/ukd-search-list.component';\nimport { VendorsListComponent } from './shared-grids/vendors-list/vendors-list.component';\nimport { VisitsListComponent } from './shared-grids/visits-list/visits-list.component';\nimport { UploadCodeChangeUtilityComponent } from './modals/upload-code-change-utility/upload-code-change-utility.component';\nimport { GenericUploadFileSummaryComponent } from './components/generic-upload-file-summary/generic-upload-file-summary.component';\nimport { DiscrepanciesComponent } from './components/discrepancies/discrepancies.component';\nimport { AddDefaultValueComponent } from './modals/add-default-value/add-default-value.component';\nimport { AddCompanyInfoComponent } from './modals/add-company-info/add-company-info.component';\nimport { AddContractItemComponent } from './components/facility-contract/facility-contract-fees-and-expenses/add-contract-item/add-contract-item.component';\nimport { FacilityContractTermListComponent } from './components/facility-contract/facility-contract-term-list/facility-contract-term-list.component';\nimport { AdvancedPermissionsListComponent } from './components/advanced-permissions-list/advanced-permissions-list.component';\nimport { UploadTripExpenseComponent } from './modals/upload-trip-expense/upload-trip-expense.component';\nimport { RightClickMenuComponent } from './components/right-click-menu/right-click-menu.component';\nimport { AddTripExpenseAssigneeComponent } from './modals/add-trip-expense-assignee/add-trip-expense-assignee.component';\nimport { FieldRepExpensesComponent } from '../modules/trips/field-rep-expenses/field-rep-expenses.component';\nimport { AddTermComponent } from './modals/add-term/add-term.component';\nimport { GroupTermFormComponent } from './modals/add-term/group-term-form/group-term-form.component';\nimport { SingleTermFormComponent } from './modals/add-term/single-term-form/single-term-form.component';\nimport { TermBulkUpdateComponent } from './modals/add-term/term-bulk-update/term-bulk-update.component';\nimport { TermInfoFormComponent } from './modals/add-term/term-info-form/term-info-form.component';\nimport { PrivateLabelerInactivateFormComponent } from './components/private-labeler-inactivate-form/private-labeler-inactivate-form.component';\nimport { ProratedMonthlyFeeCellRenderComponent } from './grid-components/prorated-monthly-fee-cell-render/prorated-monthly-fee-cell-render.component';\nimport { PrivateLabelerCompanyStatusListComponent } from './shared-grids/private-labeler-company-status-list/private-labeler-company-status-list.component';\nimport { PrivateLabelerActivateFormComponent } from './components/private-labeler-activate-form/private-labeler-activate-form.component';\nimport { ChangeFacilityOwnerComponent } from './modals/change-facility-owner/change-facility-owner.component';\nimport { AddTaskCommunicationComponent } from './modals/add-task-communication/add-task-communication.component';\nimport { CompanyRenewalFacilityListComponent } from './components/renewal-info/company-renewal-facility-list/company-renewal-facility-list.component';\nimport { EditAssignmentComponent } from './modals/edit-assignment-modal/edit-assignment-modal.component';\nimport { CompanyRenewalFacilityHistoryListComponent } from './components/renewal-info/company-renewal-facility-history-list/company-renewal-facility-history-list.component';\nimport { UploadAmexExpensesGridComponent } from './modals/upload-amex-expenses-trip/upload-amex-expenses-grid/upload-amex-expenses-grid.component';\nimport { DownloadInvoiceRendererComponent } from './grid-components/download-button-renderer/download-invoice-renderer.component';\nimport { CompanyRenewalPrivateLabelerListComponent } from './components/renewal-info/company-renewal-private-labeler-list/company-renewal-private-labeler-list.component';\nimport { GenerateInvoicesListComponent } from './shared-grids/generate-invoices-list/generate-invoices-list.component';\nimport { AccountingLogSideInfoComponent } from './components/sideinfo-components/accounting-log-side-info/accounting-log-side-info.component';\nimport { PreviewInvoiceApTableComponent } from './modals/preview-invoice/ap-table/ap-table.component';\nimport { PreviewInvoiceApTableVisitsComponent } from './modals/preview-invoice/ap-table-visits/ap-table-visits.component';\nimport { VisitInactivateFormComponent } from './components/visit-inactivate-form/visit-inactivate-form.component';\nimport { ApOrArNumberListRendererComponent } from './grid-components/ap-or-ar-numbers-renderer/ap-or-ar-numbers-renderer.component';\nimport { GroupCheckCellRendererComponent } from './grid-components/check-cell-renderer/group-check-cell-renderer.component';\nimport { VisitsExpensesAlreadyInvoicedComponent } from './modals/visits-expenses-already-invoiced/visits-expenses-already-invoiced.component';\nimport { ReadonlyCheckCellRendererComponent } from './grid-components/check-cell-renderer/readonly-check-cell-renderer.component';\nimport { AcumaticaApOrArNumberListRendererComponent } from './grid-components/acumatica-ap-or-ar-number-list-renderer/acumatica-ap-or-ar-number-list-renderer.component';\nimport { AllInvoicesListComponent } from './shared-grids/all-invoices-list/all-invoices-list.component';\nimport { InvoiceEntitiesCellRendererComponent } from './grid-components/invoice-entities-cell-renderer/invoice-entities-cell-renderer.component';\nimport { InvoiceStatusCellRendererComponent } from './grid-components/invoice-status-cell-renderer/invoice-status-cell-renderer.component';\nimport { ViewInvoiceDetailsCellRendererComponent } from './grid-components/view-invoice-details-cell-renderer/view-invoice-details-cell-renderer.component';\nimport { TryInvoiceAgainCellRendererComponent } from './grid-components/try-invoice-again-cell-renderer/try-invoice-again-cell-renderer.component';\nimport { InvoiceSyncDetailsComponent } from './modals/invoice-sync-details/invoice-sync-details.component';\nimport { TripInactivateFormComponent } from './components/trip-inactivate-form/trip-inactivate-form.component';\nimport { VisitInTripComponent } from './modals/visit-in-trip/visit-in-trip.component';\nimport { EditPrimaryFrComponent } from './modals/edit-primary-fr-modal/edit-primary-fr-modal.component';\nimport { VisitListCellRendererComponent } from './grid-components/expenses-visit-list-cell-renderer/expenses-visit-list-cell-renderer.component';\n\nconst DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {\n\tsuppressScrollX: true,\n};\n\n@NgModule({\n\tdeclarations: [\n\t\tSidenavComponent,\n\t\tHeaderComponent,\n\t\tSideinfoComponent,\n\t\tTextInputComponent,\n\t\tSelectInputComponent,\n\t\tTabsMenuComponent,\n\t\tUserMenuComponent,\n\t\tCountryCellRendererComponent,\n\t\tBooleanCellRendererComponent,\n\t\tRadioButtonsListComponent,\n\t\tTextareaInputComponent,\n\t\tPageTitleComponent,\n\t\tCheckboxComponent,\n\t\tSearchBarComponent,\n\t\tFilterPipe,\n\t\tNoSanitizePipe,\n\t\tDateTimePipe,\n\t\tNoRowsComponent,\n\t\tAddressTextInputComponent,\n\t\tConfirmComponent,\n\t\tFacilitiesListComponent,\n\t\tCompaniesListComponent,\n\t\tTasksListComponent,\n\t\tPrivateLabelersListComponent,\n\t\tBrandsListComponent,\n\t\tAliasListComponent,\n\t\tContactSideinfoComponent,\n\t\tEntityFormComponent,\n\t\tCurrentContractPageComponent,\n\t\tAddressFormComponent,\n\t\tNoteFormComponent,\n\t\tUploadFileComponent,\n\t\tRolesFormComponent,\n\t\tCheckCellRendererComponent,\n\t\tGroupCheckCellRendererComponent,\n\t\tNotesListComponent,\n\t\tPermissionsHeaderComponent,\n\t\tRoleSideinfoComponent,\n\t\tAddRoleComponent,\n\t\tBrandSideinfoComponent,\n\t\tAccountingLogSideInfoComponent,\n\t\tAddBrandComponent,\n\t\tNoteSideInfoComponent,\n\t\tReadMoreComponent,\n\t\tAddNoteComponent,\n\t\tProfileFormComponent,\n\t\tCompanyInfoFormComponent,\n\t\tReferralFormComponent,\n\t\tFacilityInfoFormComponent,\n\t\tContactInfoFormComponent,\n\t\tCurrencyAmountComponent,\n\t\tApplicationSideinfoComponent,\n\t\tSideinfoFacilityComponent,\n\t\tFacilitiesAppFormComponent,\n\t\tAddFacilityComponent,\n\t\tSummaryFieldListComponent,\n\t\tSummaryFieldWithLabelComponent,\n\t\tContactsAppFormComponent,\n\t\tCompanyApplicationSideinfoComponent,\n\t\tPrivateLabelerApplicationSideinfoComponent,\n\t\tContactsAppFormComponent,\n\t\tAccordionComponent,\n\t\tAccordionGroupComponent,\n\t\tContractFormComponent,\n\t\tInvoiceSettingsFormComponent,\n\t\tCompanyContractAppFormComponent,\n\t\tCompanyAppFormComponent,\n\t\tInvoicingGroupsAppFormComponent,\n\t\tBusinessEntityCompareInfoComponent,\n\t\tCompanyInfoComponent,\n\t\tFacilityInfoComponent,\n\t\tContactInfoComponent,\n\t\tBusinessEntitySearchComponent,\n\t\tCompanyAppFormComponent,\n\t\tFeesAndExpensesAddFormComponent,\n\t\tFeesAndExpensesInputFormComponent,\n\t\tLinkEntityComponent,\n\t\tCompanySideinfoComponent,\n\t\tFacilityFormComponent,\n\t\tAddLinkOptionComponent,\n\t\tVisitsListComponent,\n\t\tAddVisitsComponent,\n\t\tVisitSideinfoComponent,\n\t\tHistorySideinfoComponent,\n\t\tAddContactComponent,\n\t\tInitialVisitAppFormComponent,\n\t\tFeesAndExpensesTableComponent,\n\t\tViewScheduleComponent,\n\t\tTripListComponent,\n\t\tTripSideinfoComponent,\n\t\tSelectTypeAddVisitComponent,\n\t\tTripInfoFormComponent,\n\t\tAddTripComponent,\n\t\tAddTaskComponent,\n\t\tTaskSideinfoComponent,\n\t\tVisitInfoViewComponent,\n\t\tCommunicationChatComponent,\n\t\tCompanyFacilityStatusListComponent,\n\t\tCompanyPrivateLabelerStatusListComponent,\n\t\tCompanyInactivateFormComponent,\n\t\tTransactionsListComponent,\n\t\tCompanyActivateFormComponent,\n\t\tPrivateLabelerAppFormComponent,\n\t\tApplicationPageHeaderComponent,\n\t\tFacilityInactivateFormComponent,\n\t\tFacilityCompanyStatusListComponent,\n\t\tFacilitySideinfoComponent,\n\t\tFacilityActivateFormComponent,\n\t\tAddFacilityInfoComponent,\n\t\tCompareStringItemComponent,\n\t\tCompareAddressItemComponent,\n\t\tCompareNotificationSettingItemComponent,\n\t\tPrivateLabelerSideinfoComponent,\n\t\tPrivateLabelerInfoComponent,\n\t\tPrivateLabelerContractInfoComponent,\n\t\tAddPrivateLabelerInfoComponent,\n\t\tPrivateLabelerInfoFormComponent,\n\t\tSearchEntityComponent,\n\t\tRestaurantApplicationSideinfoComponent,\n\t\tTaskInfoFormComponent,\n\t\tTaskControlsFormComponent,\n\t\tDatePickerInputComponent,\n\t\tPrivateLabelerRelatedFeesComponent,\n\t\tTextInputCellRendererComponent,\n\t\tTextInputCheckboxCellRendererComponent,\n\t\tFeeTextInputCellRendererComponent,\n\t\tTitleCheckboxLabelHeaderRendererComponent,\n\t\tDropdownCellRendererComponent,\n\t\tNoteCellRendererComponent,\n\t\tTaskEntitySearchComponent,\n\t\tExpensesListComponent,\n\t\tAddExpenseComponent,\n\t\tGroupSideinfoComponent,\n\t\tAddGroupComponent,\n\t\tAddMemberComponent,\n\t\tAddUserComponent,\n\t\tMasterIngredientsListComponent,\n\t\tSearchInputComponent,\n\t\tAmexListComponent,\n\t\tUploadAmexExpensesComponent,\n\t\tUploadAmexExpensesTripComponent,\n\t\tUploadAmexExpensesGridComponent,\n\t\tMasterIngredientsSideinfoComponent,\n\t\tAmexFileItemsListComponent,\n\t\tCustomerIngredientsListComponent,\n\t\tViewCellRendererComponent,\n\t\tTextCellRendererComponent,\n\t\tIngredientCertificateAttributeComponent,\n\t\tMasterIngredientGeneralInfoComponent,\n\t\tMasterIngredientKosherInfoComponent,\n\t\tMasterIngredientKosherEvaluationComponent,\n\t\tPackagingComponent,\n\t\tMasterIngredientCurrentCertificateComponent,\n\t\tCustomerIngredientSideinfoComponent,\n\t\tGenericGridSearchModalComponent,\n\t\tAddVendorComponent,\n\t\tAddAgencyComponent,\n\t\tGridWrapperComponent,\n\t\tCustomerIngredientGeneralInfoComponent,\n\t\tCustomerIngredientsMasterIngredientComponent,\n\t\tIngredientBatchListComponent,\n\t\tIngredientBatchSideinfoComponent,\n\t\tViewEntityProfileComponent,\n\t\tAddAdditionalFeeComponent,\n\t\tUploadBatchIngredientsFileComponent,\n\t\tAuditPipe,\n\t\tCamelcaseDisplayPipe,\n\t\tOptionPipe,\n\t\tHistoryDisplayItemComponent,\n\t\tInvoicesTabComponent,\n\t\tSelectionOverviewComponent,\n\t\tSelectMultipleInputComponent,\n\t\tSplitExpensesModalComponent,\n\t\tDynamicMenuComponent,\n\t\tQcChecklistComponent,\n\t\tProductSideinfoComponent,\n\t\tProductsListComponent,\n\t\tExpensesTableComponent,\n\t\tFacilityContractSummaryComponent,\n\t\tPreviewInvoiceComponent,\n\t\tPreviewInvoiceApTableComponent,\n\t\tPreviewInvoiceApTableVisitsComponent,\n\t\tAddMasterIngredientComponent,\n\t\tEntityFacilitiesListComponent,\n\t\tMergeIngredientsComponent,\n\t\tSearchIngredientTabComponent,\n\t\tMergeIngredientTabComponent,\n\t\tCompareListComponent,\n\t\tUndoCellRendererComponent,\n\t\tMergeIngredientMasterIngredientItemComponent,\n\t\tGenericViewChangesModalComponent,\n\t\tKosherCertificatesListComponent,\n\t\tAddProfileQuestionComponent,\n\t\tFormAnswerTypeRendererComponent,\n\t\tAddProductLabelComponent,\n\t\tKcGroupComponent,\n\t\tAccountingRenewalListComponent,\n\t\tChangesHistoryListComponent,\n\t\tAddKcgroupComponent,\n\t\tGenericValidationModalComponent,\n\t\tDurationPickerComponent,\n\t\tCertificatePreviewModalComponent,\n\t\tTextEditorComponent,\n\t\tInvoicesListComponent,\n\t\tDocumentTemplateComponent,\n\t\tGenerateCreditMemoComponent,\n\t\tPickNoteInputComponent,\n\t\tInvoiceSideinfoComponent,\n\t\tReviewIngredientsListComponent,\n\t\tUpdatePoComponent,\n\t\tGenerateContractComponent,\n\t\tVisitExpenseInfoComponent,\n\t\tVisitFeeCellComponent,\n\t\tVisitExpenseCellComponent,\n\t\tVisitTotalCellComponent,\n\t\tVisitFeeCellFooterComponent,\n\t\tVisitExpenseTotalCellComponent,\n\t\tViewTermAuditComponent,\n\t\tPaymentMethodInputComponent,\n\t\tUploadBatchProductsFileComponent,\n\t\tSelectWithSearchInputComponent,\n\t\tInvoiceGenerationErrorsComponent,\n\t\tGenericSearchGridComponent,\n\t\tNotificationSideinfoComponent,\n\t\tViewPdfComponent,\n\t\tInputErrorMessagesComponent,\n\t\tNoteListComponent,\n\t\tRenewalInfoComponent,\n\t\tAccountingRenewalTableComponent,\n\t\tEntityProfileAsweredQuestionsListComponent,\n\t\tMagicReviewSideInfoComponent,\n\t\tIngredientFacilitiesComponent,\n\t\tOrderByPipe,\n\t\tAddCompanyInfoComponent,\n\t\tProductCategoriesListComponent,\n\t\tLinkCategoryModalComponent,\n\t\tCheckHeaderRendererComponent,\n\t\tCompanyProductsListComponent,\n\t\tChangedMasterIngredientsListComponent,\n\t\tHtmlCellRendererComponent,\n\t\tProcessBatchIngredientErrorsModalComponent,\n\t\tArrayLenghtIsPipe,\n\t\tCompanyRenewalHistoryListComponent,\n\t\tViewOutstandingInvoicesComponent,\n\t\tCompanySnapshotsSideInfoComponent,\n\t\tKosherCertificatesFormComponent,\n\t\tAddSecondaryRoutingComponent,\n\t\tPrivateLabelerContractAppFormComponent,\n\t\tPrivateLabelerContractComponent,\n\t\tAddCertficateItemComponent,\n\t\tPlCurrentContractPageComponent,\n\t\tCreateKcgroupComponent,\n\t\tGenericGridComponent,\n\t\tProductsListComponent,\n\t\tUploadFormulaItemsComponent,\n\t\tFormulaReportComponent,\n\t\tAddCertificateKcGroupsComponent,\n\t\tAddSignedDateCertificateComponent,\n\t\tPublishCertificateComponent,\n\t\tCommunicationComponent,\n\t\tVisitInTripComponent,\n\t\tReferralInformationComponent,\n\t\tEditAssignmentComponent,\n\t\tInvoicingGroupCellRendererComponent,\n\t\tTextLabelCheckboxCellRendererComponent,\n\t\tVendorsListComponent,\n\t\tAddSameProductLotBatchComponent,\n\t\tAddDifferentLotBatchComponent,\n\t\tAdditionalFeesInvoicesComponent,\n\t\tIdleComponent,\n\t\tDataLossModalComponent,\n\t\tLookUpInputComponent,\n\t\tProfileTemplatesComponent,\n\t\tProfileTemplateItemComponent,\n\t\tViewFacilityContractNotesComponent,\n\t\tIncompleteApplicationsListComponent,\n\t\tButtonCellRendererComponent,\n\t\tGlobalSearchComponent,\n\t\tShowNotificationErrorsComponent,\n\t\tSummaryFieldIconComponent,\n\t\tSummaryFieldTextComponent,\n\t\tBooleanColumnFilterRendererComponent,\n\t\tApplicationProgressCellRendererComponent,\n\t\tTextColumnFilterRendererComponent,\n\t\tPermissionsListComponent,\n\t\tUkdSearchListComponent,\n\t\tAddScriptComponent,\n\t\tStaticBarComponent,\n\t\tGridSearchInputComponent,\n\t\tVendorProfilesComponent,\n\t\tStatusCellRendererComponent,\n\t\tDownloadInvoiceRendererComponent,\n\t\tIngredientBatchListComponent,\n\t\tAttachmentsCellRendererComponent,\n\t\tPurifyPipe,\n\t\tProcessesListComponent,\n\t\tAddOwnerProcessModalComponent,\n\t\tAddProductModalComponent,\n\t\tAuditTrailListComponent,\n\t\tViewAuditTrailModalComponent,\n\t\tSameAsProductFormComponent,\n\t\tRunScriptComponent,\n\t\tProductNameValidationComponent,\n\t\tScriptHistoryComponent,\n\t\tProductReviewQueueSideInfoComponent,\n\t\tUnapprovedProductEvaluationsComponent,\n\t\tInternalProductsRequiringApprovalComponent,\n\t\tEntityFormLineItemComponent,\n\t\tLinkTaskModalComponent,\n\t\tProductFormulaReportComponent,\n\t\tAddCategoryModalComponent,\n\t\tProductPublicationListComponent,\n\t\tChangeSecurityLevelModalComponent,\n\t\tVoidEvaluationModalComponent,\n\t\tViewGridSelectionComponent,\n\t\tTooltipRendererComponent,\n\t\tFacilityFormulaIngredientUtilityComponent,\n\t\tScriptsListComponent,\n\t\tAddPurchaseHistoryComponent,\n\t\tDateColumnFilterRendererComponent,\n\t\tEntityGuidelinesComponent,\n\t\tLinkCompanyFacilityComponent,\n\t\tFacilityContractComponent,\n\t\tPageHeaderComponent,\n\t\tFacilityContractDetailsComponent,\n\t\tFacilityContractVisitFeesComponent,\n\t\tFacilityContractTermsComponent,\n\t\tAddCustomFeeModalComponent,\n\t\tConditionalValuePipe,\n\t\tVisitFeesRowComponent,\n\t\tTermExpenseRowComponent,\n\t\tTermExpenseRowExpenseComponent,\n\t\tRenderValueFromListPipe,\n\t\tAddCodeComponent,\n\t\tUploadCodeChangeUtilityComponent,\n\t\tGenericUploadFileSummaryComponent,\n\t\tDiscrepanciesComponent,\n\t\tAddDefaultValueComponent,\n\t\tAddContractItemComponent,\n\t\tFacilityContractTermListComponent,\n\t\tAdvancedPermissionsListComponent,\n\t\tUploadTripExpenseComponent,\n\t\tRightClickMenuComponent,\n\t\tAddTripExpenseAssigneeComponent,\n\t\tFieldRepExpensesComponent,\n\t\tAddTermComponent,\n\t\tTermBulkUpdateComponent,\n\t\tTermInfoFormComponent,\n\t\tGroupTermFormComponent,\n\t\tSingleTermFormComponent,\n\t\tMergeBusinessEntityGridHeaderComponent,\n\t\tAddContactToNotificationWhitelistComponent,\n\t\tPrivateLabelerInactivateFormComponent,\n\t\tProratedMonthlyFeeCellRenderComponent,\n\t\tPrivateLabelerCompanyStatusListComponent,\n\t\tPrivateLabelerActivateFormComponent,\n\t\tChangeFacilityOwnerComponent,\n\t\tAddTaskCommunicationComponent,\n\t\tCompanyRenewalFacilityListComponent,\n\t\tCompanyRenewalFacilityHistoryListComponent,\n\t\tUploadAmexExpensesGridComponent,\n\t\tCompanyRenewalPrivateLabelerListComponent,\n\t\tGenerateInvoicesListComponent,\n\t\tVisitInactivateFormComponent,\n\t\tApOrArNumberListRendererComponent,\n\t\tVisitsExpensesAlreadyInvoicedComponent,\n\t\tReadonlyCheckCellRendererComponent,\n\t\tAcumaticaApOrArNumberListRendererComponent,\n\t\tAllInvoicesListComponent,\n\t\tInvoiceEntitiesCellRendererComponent,\n\t\tVisitListCellRendererComponent,\n\t\tInvoiceStatusCellRendererComponent,\n\t\tViewInvoiceDetailsCellRendererComponent,\n\t\tTryInvoiceAgainCellRendererComponent,\n\t\tInvoiceSyncDetailsComponent,\n\t\tTripInactivateFormComponent,\n\t\tEditPrimaryFrComponent,\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tRouterModule,\n\t\tFormsModule,\n\t\tReactiveFormsModule,\n\t\tPerfectScrollbarModule,\n\t\tAppStoreModule,\n\t\tIconsModule,\n\t\tCustomDirectivesModule,\n\t\tFroalaEditorModule.forRoot(),\n\t\tFroalaViewModule.forRoot(),\n\t\tTabsModule,\n\t\tAgGridModule.withComponents([\n\t\t\tCountryCellRendererComponent,\n\t\t\tBooleanCellRendererComponent,\n\t\t\tCheckCellRendererComponent,\n\t\t\tGroupCheckCellRendererComponent,\n\t\t\tTooltipRendererComponent,\n\t\t\tCheckHeaderRendererComponent,\n\t\t\tTextInputCellRendererComponent,\n\t\t\tTextInputCheckboxCellRendererComponent,\n\t\t\tDropdownCellRendererComponent,\n\t\t\tViewCellRendererComponent,\n\t\t\tNoteCellRendererComponent,\n\t\t\tTitleCheckboxLabelHeaderRendererComponent,\n\t\t\tTextCellRendererComponent,\n\t\t\tFeeTextInputCellRendererComponent,\n\t\t\tUndoCellRendererComponent,\n\t\t\tPermissionsHeaderComponent,\n\t\t\tDownloadInvoiceRendererComponent,\n\t\t\tReadonlyCheckCellRendererComponent,\n\t\t]),\n\t\tOwlDateTimeModule,\n\t\tOwlNativeDateTimeModule,\n\t\tNgSelectModule,\n\t\tMaterialModule,\n\t\tNgxExtendedPdfViewerModule,\n\t\tA11yModule,\n\t],\n\texports: [\n\t\tMaterialModule,\n\t\tIconsModule,\n\t\tCustomDirectivesModule,\n\t\tTabsModule,\n\t\tPerfectScrollbarModule,\n\t\tAgGridModule,\n\t\tSidenavComponent,\n\t\tHeaderComponent,\n\t\tSideinfoComponent,\n\t\tUnapprovedProductEvaluationsComponent,\n\t\tGridSearchInputComponent,\n\t\tTextInputComponent,\n\t\tTextareaInputComponent,\n\t\tSelectWithSearchInputComponent,\n\t\tSelectInputComponent,\n\t\tTabsMenuComponent,\n\t\tRadioButtonsListComponent,\n\t\tProductsListComponent,\n\t\tCheckboxComponent,\n\t\tProfileTemplatesComponent,\n\t\tProfileTemplateItemComponent,\n\t\tSearchBarComponent,\n\t\tFilterPipe,\n\t\tDateTimePipe,\n\t\tNoRowsComponent,\n\t\tAddressTextInputComponent,\n\t\tConfirmComponent,\n\t\tFacilitiesListComponent,\n\t\tCompaniesListComponent,\n\t\tTasksListComponent,\n\t\tBrandsListComponent,\n\t\tAliasListComponent,\n\t\tAddressFormComponent,\n\t\tNoteFormComponent,\n\t\tUploadFileComponent,\n\t\tRolesFormComponent,\n\t\tCheckCellRendererComponent,\n\t\tGroupCheckCellRendererComponent,\n\t\tTooltipRendererComponent,\n\t\tCheckHeaderRendererComponent,\n\t\tProfileFormComponent,\n\t\tCompanyInfoFormComponent,\n\t\tReferralFormComponent,\n\t\tFacilityInfoFormComponent,\n\t\tContactInfoFormComponent,\n\t\tCurrencyAmountComponent,\n\t\tFacilitiesAppFormComponent,\n\t\tAddFacilityComponent,\n\t\tInternalProductsRequiringApprovalComponent,\n\t\tContactsAppFormComponent,\n\t\tContractFormComponent,\n\t\tInvoiceSettingsFormComponent,\n\t\tCompanyContractAppFormComponent,\n\t\tPrivateLabelerContractAppFormComponent,\n\t\tPrivateLabelerContractComponent,\n\t\tInvoicingGroupsAppFormComponent,\n\t\tBusinessEntitySearchComponent,\n\t\tBusinessEntityCompareInfoComponent,\n\t\tCompanyAppFormComponent,\n\t\tAddLinkOptionComponent,\n\t\tVisitsListComponent,\n\t\tAddContactComponent,\n\t\tInitialVisitAppFormComponent,\n\t\tViewScheduleComponent,\n\t\tTripListComponent,\n\t\tSelectTypeAddVisitComponent,\n\t\tTripInfoFormComponent,\n\t\tVisitInfoViewComponent,\n\t\tCommunicationChatComponent,\n\t\tPrivateLabelerAppFormComponent,\n\t\tTransactionsListComponent,\n\t\tApplicationPageHeaderComponent,\n\t\tAccordionGroupComponent,\n\t\tAddFacilityInfoComponent,\n\t\tAddPrivateLabelerInfoComponent,\n\t\tTaskInfoFormComponent,\n\t\tTaskControlsFormComponent,\n\t\tTaskEntitySearchComponent,\n\t\tExpensesListComponent,\n\t\tAddExpenseComponent,\n\t\tAddMemberComponent,\n\t\tAddUserComponent,\n\t\tMasterIngredientsListComponent,\n\t\tSearchInputComponent,\n\t\tIngredientCertificateAttributeComponent,\n\t\tMasterIngredientGeneralInfoComponent,\n\t\tMasterIngredientKosherInfoComponent,\n\t\tMasterIngredientKosherEvaluationComponent,\n\t\tPackagingComponent,\n\t\tMasterIngredientCurrentCertificateComponent,\n\t\tViewCellRendererComponent,\n\t\tDatePickerInputComponent,\n\t\tCustomerIngredientSideinfoComponent,\n\t\tGenericGridSearchModalComponent,\n\t\tGridWrapperComponent,\n\t\tSelectMultipleInputComponent,\n\t\tCustomerIngredientGeneralInfoComponent,\n\t\tCustomerIngredientsMasterIngredientComponent,\n\t\tAuditPipe,\n\t\tCamelcaseDisplayPipe,\n\t\tOptionPipe,\n\t\tPurifyPipe,\n\t\tConditionalValuePipe,\n\t\tRenderValueFromListPipe,\n\t\tHistoryDisplayItemComponent,\n\t\tInvoicesTabComponent,\n\t\tDynamicMenuComponent,\n\t\tQcChecklistComponent,\n\t\tExpensesTableComponent,\n\t\tPreviewInvoiceComponent,\n\t\tPreviewInvoiceApTableComponent,\n\t\tPreviewInvoiceApTableVisitsComponent,\n\t\tAddMasterIngredientComponent,\n\t\tEntityFacilitiesListComponent,\n\t\tCompareListComponent,\n\t\tUndoCellRendererComponent,\n\t\tGenericViewChangesModalComponent,\n\t\tAccordionComponent,\n\t\tGenericValidationModalComponent,\n\t\tSummaryFieldListComponent,\n\t\tDurationPickerComponent,\n\t\tCertificatePreviewModalComponent,\n\t\tFeesAndExpensesInputFormComponent,\n\t\tVisitFeeCellFooterComponent,\n\t\tViewTermAuditComponent,\n\t\tPaymentMethodInputComponent,\n\t\tGenericSearchGridComponent,\n\t\tViewPdfComponent,\n\t\tNoteListComponent,\n\t\tEntityProfileAsweredQuestionsListComponent,\n\t\tIngredientFacilitiesComponent,\n\t\tOrderByPipe,\n\t\tProductCategoriesListComponent,\n\t\tLinkCategoryModalComponent,\n\t\tCompanyProductsListComponent,\n\t\tProcessBatchIngredientErrorsModalComponent,\n\t\tViewOutstandingInvoicesComponent,\n\t\tKosherCertificatesFormComponent,\n\t\tKcGroupComponent,\n\t\tCreateKcgroupComponent,\n\t\tGenericGridComponent,\n\t\tUploadFormulaItemsComponent,\n\t\tCustomerIngredientsListComponent,\n\t\tVendorsListComponent,\n\t\tAdditionalFeesInvoicesComponent,\n\t\tDataLossModalComponent,\n\t\tLookUpInputComponent,\n\t\tIncompleteApplicationsListComponent,\n\t\tButtonCellRendererComponent,\n\t\tPermissionsListComponent,\n\t\tStaticBarComponent,\n\t\tIngredientBatchListComponent,\n\t\tProductFormulaReportComponent,\n\t\tScriptsListComponent,\n\t\tEntityGuidelinesComponent,\n\t\tAdvancedPermissionsListComponent,\n\t\tDiscrepanciesComponent,\n\t\tRightClickMenuComponent,\n\t\tFieldRepExpensesComponent,\n\t\tMergeBusinessEntityGridHeaderComponent,\n\t\tEntityFormComponent,\n\t\tAllInvoicesListComponent,\n\t],\n\tentryComponents: [\n\t\tSelectMultipleInputComponent,\n\t\tNoRowsComponent,\n\t\tConfirmComponent,\n\t\tAddRoleComponent,\n\t\tPermissionsHeaderComponent,\n\t\tAddBrandComponent,\n\t\tAddNoteComponent,\n\t\tCurrencyAmountComponent,\n\t\tAddFacilityComponent,\n\t\tBusinessEntityCompareInfoComponent,\n\t\tLinkEntityComponent,\n\t\tAddLinkOptionComponent,\n\t\tVisitsListComponent,\n\t\tAddVisitsComponent,\n\t\tAddContactComponent,\n\t\tViewScheduleComponent,\n\t\tTripListComponent,\n\t\tSelectTypeAddVisitComponent,\n\t\tAddTripComponent,\n\t\tAddTaskComponent,\n\t\tAddFacilityInfoComponent,\n\t\tAddPrivateLabelerInfoComponent,\n\t\tSearchEntityComponent,\n\t\tExpensesListComponent,\n\t\tAddExpenseComponent,\n\t\tAddGroupComponent,\n\t\tAddMemberComponent,\n\t\tAddUserComponent,\n\t\tMasterIngredientsListComponent,\n\t\tUploadAmexExpensesComponent,\n\t\tUploadAmexExpensesTripComponent,\n\t\tUploadAmexExpensesGridComponent,\n\t\tCustomerIngredientSideinfoComponent,\n\t\tGenericGridSearchModalComponent,\n\t\tAddVendorComponent,\n\t\tAddAgencyComponent,\n\t\tCompareListComponent,\n\t\tEntityFacilitiesListComponent,\n\t\tAddProfileQuestionComponent,\n\t\tFormAnswerTypeRendererComponent,\n\t\tDurationPickerComponent,\n\t\tInvoicesListComponent,\n\t\tViewTermAuditComponent,\n\t\tMergeBusinessEntityGridHeaderComponent,\n\t\tAddContactToNotificationWhitelistComponent,\n\t],\n\tproviders: [\n\t\t{\n\t\t\tprovide: PERFECT_SCROLLBAR_CONFIG,\n\t\t\tuseValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG,\n\t\t},\n\t\tFilterPipe,\n\t\tNoSanitizePipe,\n\t\tDatePipe,\n\t\tAuditPipe,\n\t\tCamelcaseDisplayPipe,\n\t\tOptionPipe,\n\t\tDateTimePipe,\n\t\tArrayLenghtIsPipe,\n\t\tDataLossPreventionGuard,\n\t\tUserPermissionGuard,\n\t\tPurifyPipe,\n\t\tConditionalValuePipe,\n\t\tRenderValueFromListPipe,\n\t\tCompanyDefaultInvoiceGroupGuard,\n\t],\n})\nexport class SharedModule {}\n","import { Action } from '@ngrx/store';\nimport { ActiveType } from '../../core/enums/active-type.enum';\n\nexport enum ActiveModeActionTypes {\n\tActiveModeUpdate = '[Global] active mode update',\n}\n\nexport class ActiveModeUpdate implements Action {\n\treadonly type = ActiveModeActionTypes.ActiveModeUpdate;\n\n\tconstructor(public payload: { activeMode: ActiveType }) {}\n}\n\nexport type ActiveModeActions = ActiveModeUpdate;\n","import { Action } from '@ngrx/store';\nimport { ApplicationDetail, ApplicationBusinessEntity, ApplicationFacility } from '../../core/models/application.model';\nimport { ActiveType } from 'src/app/core/enums/active-type.enum';\n\nexport enum ApplicationActionTypes {\n\tApplicationSummaryLoad = '[Application] application load',\n\tApplicationSummaryLoaded = '[Application] application summary loaded',\n\tApplicationSummaryLoading = '[Global] Application Summary Loading',\n\tApplicationSummarySaveReferral = '[Referral Component] update application referral summary and save',\n\tApplicationSummarySaveGeneral = '[Application General Component] update application general summary and save',\n\tApplicationSummarySave = '[Application Summary Global] Save',\n\tApplicationSummarySaveSuccess = '[Application Summary Global] Save Success',\n\tApplicationPublishUpdate = '[Application] application publish',\n\tApplicationFacilitiesLoad = '[Application Facilities] facilities load',\n\tApplicationFacilitiesLoaded = '[Application Facilities] facilities loaded',\n\tApplicationFacilitiesSave = '[Application Facilities Global] Save',\n\tApplicationFacilitiesSaveSuccess = '[Application Facilities Global] Save Success',\n\tApplicationFacilitySelect = '[Global] ApplicationFacilitySelect',\n\tApplicationFacilitySaveResult = '[Global] Facility Save result',\n\tApplicationCleanUp = '[Global] Application Clean',\n}\n\nexport class ApplicationSummaryLoad implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationSummaryLoad;\n\n\tconstructor(public payload: { applicationId: number; activeType?: ActiveType }) {}\n}\n\nexport class ApplicationSummaryLoaded implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationSummaryLoaded;\n\n\tconstructor(public payload: { appSummary: ApplicationDetail }) {}\n}\n\nexport class ApplicationSummaryLoading implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationSummaryLoading;\n\tconstructor(public payload: { appSummaryLoading: boolean }) {}\n}\n\nexport class ApplicationSummarySaveReferral implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationSummarySaveReferral;\n\n\tconstructor(public payload: { referralInfo: any; referralFees: any[] }) {}\n}\n\nexport class ApplicationSummarySaveGeneral implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationSummarySaveGeneral;\n\n\tconstructor(public payload: { generalInfo: any }) {}\n}\n\nexport class ApplicationSummarySave implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationSummarySave;\n\n\tconstructor() {}\n}\n\nexport class ApplicationSummarySaveSuccess implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationSummarySaveSuccess;\n\n\tconstructor() {}\n}\n\nexport class ApplicationPublishUpdate implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationPublishUpdate;\n\n\tconstructor(public payload: { applicationPublished: boolean }) {}\n}\n\nexport class ApplicationFacilitiesLoad implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationFacilitiesLoad;\n\n\tconstructor(public payload: { appFacilitiesEntities: ApplicationBusinessEntity[] }) {}\n}\n\nexport class ApplicationFacilitiesLoaded implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationFacilitiesLoaded;\n\n\tconstructor(public payload: { appFacilities: ApplicationFacility[] }) {}\n}\n\nexport class ApplicationFacilitiesSave implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationFacilitiesSave;\n\n\tconstructor(public payload: { facility: ApplicationFacility; validateAddress?: boolean }) {}\n}\n\nexport class ApplicationFacilitiesSaveSuccess implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationFacilitiesSaveSuccess;\n\n\tconstructor(public payload: { facility: ApplicationFacility }) {}\n}\n\nexport class ApplicationFacilitySelect implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationFacilitySelect;\n\n\tconstructor(public payload: { facility: ApplicationFacility }) {}\n}\n\nexport class ApplicationFacilitySaveResult implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationFacilitySaveResult;\n\n\tconstructor(public payload: { facility: ApplicationFacility }) {}\n}\n\nexport class ApplicationCleanUp implements Action {\n\treadonly type = ApplicationActionTypes.ApplicationCleanUp;\n}\n\nexport type ApplicationActions =\n\t| ApplicationSummaryLoad\n\t| ApplicationSummaryLoaded\n\t| ApplicationSummarySaveReferral\n\t| ApplicationSummarySaveGeneral\n\t| ApplicationSummarySave\n\t| ApplicationSummarySaveSuccess\n\t| ApplicationPublishUpdate\n\t| ApplicationFacilitiesLoad\n\t| ApplicationFacilitiesLoaded\n\t| ApplicationFacilitiesSave\n\t| ApplicationFacilitiesSaveSuccess\n\t| ApplicationFacilitySelect\n\t| ApplicationSummaryLoading\n\t| ApplicationFacilitySaveResult\n\t| ApplicationCleanUp;\n","import { Action } from '@ngrx/store';\nimport { LoginResponse } from 'src/app/core/models/auth/login.response';\n\nexport enum AuthActionTypes {\n\tLoginAction = '[Login] Action',\n\tLogoutAction = '[Logout] Action',\n}\n\nexport class Login implements Action {\n\treadonly type = AuthActionTypes.LoginAction;\n\n\tconstructor(public payload: { loginResponse: LoginResponse }) {}\n}\n\nexport class Logout implements Action {\n\treadonly type = AuthActionTypes.LogoutAction;\n}\n\nexport type AuthActions = Login | Logout;\n","import { Action } from '@ngrx/store';\n\nexport enum GlobalActionTypes {\n\tCurrencyLoad = '[Global] Currency load',\n\tCurrencyLoaded = '[Global] Currency loaded',\n\tCurrencyUpdate = '[Global] Currency update',\n\tUserLogOut = '[Global] User Logging Out',\n}\n\nexport class CurrencyLoad implements Action {\n\treadonly type = GlobalActionTypes.CurrencyLoad;\n\n\tconstructor(public payload: {}) {}\n}\n\nexport class CurrencyLoaded implements Action {\n\treadonly type = GlobalActionTypes.CurrencyLoaded;\n\n\tconstructor(public payload: { currencies: any }) {}\n}\n\nexport class CurrencyUpdate implements Action {\n\treadonly type = GlobalActionTypes.CurrencyUpdate;\n\n\tconstructor(public payload: { updatedCurrency: any }) {}\n}\n\nexport class UserLogOut implements Action {\n\treadonly type = GlobalActionTypes.UserLogOut;\n\tconstructor() {}\n}\n\nexport type GlobalActions = CurrencyLoad | CurrencyLoaded | CurrencyUpdate | UserLogOut;\n","import { Action } from '@ngrx/store';\nimport { InactiveTabInfo } from '../../core/models/tab.model';\n\nexport enum InactiveTabsActionTypes {\n\tTabAdded = '[Global] Inactive Tab Added',\n\tTabRemoved = '[Global] Inactive Tab Removed',\n}\n\nexport class InactiveTabAdded implements Action {\n\treadonly type = InactiveTabsActionTypes.TabAdded;\n\n\tconstructor(public payload: { tab: InactiveTabInfo }) {}\n}\n\nexport class InactiveTabRemoved implements Action {\n\treadonly type = InactiveTabsActionTypes.TabRemoved;\n\n\tconstructor(public payload: { tab: InactiveTabInfo }) {}\n}\nexport type InactiveTabsActions = InactiveTabAdded | InactiveTabRemoved;\n","import { Action } from '@ngrx/store';\nimport { ReviewAction } from '../../core/enums/review-action.enum';\nimport { IngredientBatchReviewAction } from '../../core/models/ingredients/ingredient-batch-review-action.model';\nimport { MagicReviewPageIngredientItem } from '../../core/models/ingredients/magic-review-page-ingredient-item.model';\n\nexport enum MagicReviewPageActionTypes {\n\tMagicReviewPageLoading = '[MagicReviewPage] Page loading',\n\tLoadMagicReviewPage = '[MagicReviewPage] Page data load',\n\tSetIngredients = '[MagicReviewPage] Set ingredients for review',\n\tSelectIngredientInQueue = '[MagicReviewPage] Select ingredient in queue',\n\tExecuteBatchItemReviewAction = '[MagicReviewPage] Execute an action on the reviewed item',\n\tRemoveCurrentlySelectedItem = '[MagicReviewPage] Removes the currenly selected ingredient',\n\tSafeSelectIngredientInQueue = '[MagicReviewPage] Checks for changes in the magic review page, saves then selects a new ingredient',\n}\n\nexport class LoadMagicReviewPage implements Action {\n\treadonly type = MagicReviewPageActionTypes.LoadMagicReviewPage;\n\n\tconstructor(public payload: { batchItemIds: number[] }) {}\n}\n\nexport class SetIngredients implements Action {\n\treadonly type = MagicReviewPageActionTypes.SetIngredients;\n\n\tconstructor(public payload: { ingredients: MagicReviewPageIngredientItem[] }) {}\n}\n\nexport class MagicReviewPageLoading implements Action {\n\treadonly type = MagicReviewPageActionTypes.MagicReviewPageLoading;\n\n\tconstructor(public payload: { loading: boolean }) {}\n}\n\nexport class SafeSelectIngredientInQueue implements Action {\n\treadonly type = MagicReviewPageActionTypes.SafeSelectIngredientInQueue;\n\n\tconstructor(public payload: { selectIndex: number }) {}\n}\n\nexport class SelectIngredientInQueue implements Action {\n\treadonly type = MagicReviewPageActionTypes.SelectIngredientInQueue;\n\n\tconstructor(public payload: { next?: boolean; prev?: boolean; ingredientIndex?: number }) {}\n}\n\nexport class ExecuteBatchItemReviewAction implements Action {\n\treadonly type = MagicReviewPageActionTypes.ExecuteBatchItemReviewAction;\n\n\tconstructor(\n\t\tpublic payload: { items: IngredientBatchReviewAction[]; action: ReviewAction; showNotification: boolean }\n\t) {}\n}\n\nexport class RemoveCurrentlySelectedItem implements Action {\n\treadonly type = MagicReviewPageActionTypes.RemoveCurrentlySelectedItem;\n\n\tconstructor(public payload: {}) {}\n}\n\nexport type MagicReviewPageActions =\n\t| LoadMagicReviewPage\n\t| SetIngredients\n\t| MagicReviewPageLoading\n\t| ExecuteBatchItemReviewAction\n\t| RemoveCurrentlySelectedItem\n\t| SafeSelectIngredientInQueue\n\t| SelectIngredientInQueue;\n","import { Action } from '@ngrx/store';\n\nexport enum SideInfoActionTypes {\n\tSideInfoToggle = '[Global] Side info toggle',\n\tSideInfoLoadedAsyncEntity = '[SideInfo] Load Async entity',\n\tEditRoleUpdate = '[Global] edit role',\n\tDeleteRoleUpdate = '[Global] delete role',\n\tEditNoteUpdate = '[Global] edit note',\n\tDeleteNoteUpdate = '[Global] delete note',\n\tEditGroupUpdate = '[Global] edit group',\n\tDeleteGroupUpdate = '[Global] delete group',\n\tUnlinkContactUpdate = '[Global] unlink contact',\n\tDeleteVisitProductUpdate = '[Global] delete visit-product',\n\tEditVisitProductUpdate = '[Global] edit visit-product',\n}\n\nexport class SideInfoToggle implements Action {\n\treadonly type = SideInfoActionTypes.SideInfoToggle;\n\n\tconstructor(public payload: { visible: boolean; type?: any; extraParams?: any }) {}\n}\n\nexport class SideInfoLoadedAsyncEntity implements Action {\n\treadonly type = SideInfoActionTypes.SideInfoLoadedAsyncEntity;\n\n\tconstructor(public payload: { asyncEntity: any; type: any }) {}\n}\n\nexport class EditRoleAction implements Action {\n\treadonly type = SideInfoActionTypes.EditRoleUpdate;\n\tconstructor(public payload: { roleDetails: any }) {}\n}\n\nexport class DeleteRoleAction implements Action {\n\treadonly type = SideInfoActionTypes.DeleteRoleUpdate;\n\tconstructor(public payload: { roleId: any }) {}\n}\n\nexport class EditNoteAction implements Action {\n\treadonly type = SideInfoActionTypes.EditNoteUpdate;\n\tconstructor(public payload: { noteDetails: any }) {}\n}\n\nexport class DeleteNoteAction implements Action {\n\treadonly type = SideInfoActionTypes.DeleteNoteUpdate;\n\tconstructor(public payload: { noteId: any }) {}\n}\n\nexport class EditGroupAction implements Action {\n\treadonly type = SideInfoActionTypes.EditGroupUpdate;\n\tconstructor(public payload: { groupDetails: any }) {}\n}\n\nexport class DeleteGroupAction implements Action {\n\treadonly type = SideInfoActionTypes.DeleteGroupUpdate;\n\tconstructor(public payload: { groupId: any }) {}\n}\n\nexport class UnlinkContactAction implements Action {\n\treadonly type = SideInfoActionTypes.UnlinkContactUpdate;\n\tconstructor(public payload: { contactId: any }) {}\n}\n\nexport class DeleteVisitProductAction implements Action {\n\treadonly type = SideInfoActionTypes.DeleteVisitProductUpdate;\n\tconstructor(public payload: { visitProductId: any }) {}\n}\n\nexport class EditVisitProductAction implements Action {\n\treadonly type = SideInfoActionTypes.EditVisitProductUpdate;\n\tconstructor(public payload: { visitProductDetails: any }) {}\n}\n\nexport type SideInfoActions =\n\t| SideInfoToggle\n\t| SideInfoLoadedAsyncEntity\n\t| EditRoleAction\n\t| DeleteRoleAction\n\t| EditNoteAction\n\t| DeleteNoteAction\n\t| EditGroupAction\n\t| DeleteGroupAction\n\t| UnlinkContactAction\n\t| DeleteVisitProductAction\n\t| EditVisitProductAction;\n","import { Action } from '@ngrx/store';\nimport { MenuItem } from '../../core/models/menu-item.model';\n\nexport enum SidenavActionTypes {\n\tMenuItemsRequested = '[Global] Menu items requested',\n\tMenuItemsLoaded = '[Global] Menu items loaded',\n}\n\nexport class MenuItemsRequested implements Action {\n\treadonly type = SidenavActionTypes.MenuItemsRequested;\n}\n\nexport class MenuItemsLoaded implements Action {\n\treadonly type = SidenavActionTypes.MenuItemsLoaded;\n\n\tconstructor(public payload: { menuItems: MenuItem[] }) {}\n}\n\nexport type SidenavActions = MenuItemsRequested | MenuItemsLoaded;\n","import { Action } from '@ngrx/store';\nimport { MenuItem } from '../../core/models/menu-item.model';\nimport { Tab } from '../../core/models/tab.model';\nimport { TabsType } from '../../core/enums/tabs-type.enum';\n\nexport enum TabsActionTypes {\n\tTabsRequested = '[Global] Tabs requested',\n\tTabsLoaded = '[Global] Tabs loaded',\n\tEntityUpdate = '[Global] Entity updated',\n\tEntityClear = '[Global] Entity clear'\n}\n\nexport class TabsRequested implements Action {\n\treadonly type = TabsActionTypes.TabsRequested;\n\n\tconstructor(public payload: { type: TabsType }) { }\n}\n\nexport class TabsLoaded implements Action {\n\treadonly type = TabsActionTypes.TabsLoaded;\n\n\tconstructor(public payload: { tabs: Tab[] }) { }\n}\n\nexport class EntityUpdate implements Action {\n\treadonly type = TabsActionTypes.EntityUpdate;\n\n\tconstructor(public payload: { entityId?: number; companyId?: number; facilityId?: number; agreementId?: number }) { }\n}\n\nexport class EntityClear implements Action {\n\treadonly type = TabsActionTypes.EntityClear;\n}\n\nexport type TabsActions = TabsRequested | TabsLoaded | EntityUpdate | EntityClear;\n","import { Action } from '@ngrx/store';\nimport { FindSearchCriteria } from '../../core/models/general/search-criteria.model';\n\nexport enum UsersActionTypes {\n\tLoadUsers = '[Global] LoadUsers',\n\tLoadUsersSuccess = '[Global] LoadUsersSuccess',\n}\n\nexport class LoadUsers implements Action {\n\treadonly type = UsersActionTypes.LoadUsers;\n\n\tconstructor(public payload: { keyword: string; searchCriteria: FindSearchCriteria }) {}\n}\n\nexport class LoadUsersSuccess implements Action {\n\treadonly type = UsersActionTypes.LoadUsersSuccess;\n\n\tconstructor(public payload: { users: any[] }) {}\n}\n\nexport type UsersActions = LoadUsers | LoadUsersSuccess;\n","import { ApplicationDetail, ApplicationBusinessEntity, ApplicationFacility } from '../../core/models/application.model';\nimport { ApplicationActions, ApplicationActionTypes } from '../actions/application.actions';\n\nexport interface ApplicationState {\n\tapplicationId: number;\n\tappSummary: ApplicationDetail;\n\tappSummaryLoading: boolean;\n\tappSummarySaved: boolean;\n\tapplicationPublished: boolean;\n\tappFacilitiesEntities: ApplicationBusinessEntity[];\n\tappFacilities: ApplicationFacility[];\n\tappFacilitiesSaveResult: ApplicationFacility;\n\tloadingAppFacilites: boolean;\n\tappFacilitiesSaved: boolean;\n}\n\nexport const initialState: ApplicationState = {\n\tapplicationId: undefined,\n\tappSummary: undefined,\n\tappSummaryLoading: false,\n\tappSummarySaved: undefined,\n\tapplicationPublished: false,\n\tappFacilitiesEntities: [],\n\tappFacilities: [],\n\tappFacilitiesSaveResult: null,\n\tloadingAppFacilites: false,\n\tappFacilitiesSaved: undefined,\n};\n\nexport function applicationReducer(state = initialState, action: ApplicationActions): ApplicationState {\n\tswitch (action.type) {\n\t\tcase ApplicationActionTypes.ApplicationSummaryLoaded:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tappSummary: action.payload.appSummary,\n\t\t\t};\n\n\t\tcase ApplicationActionTypes.ApplicationSummaryLoading:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tappSummaryLoading: action.payload.appSummaryLoading,\n\t\t\t};\n\n\t\tcase ApplicationActionTypes.ApplicationSummarySaveReferral:\n\t\t\tconst newAppSummary = { ...state.appSummary, ...action.payload.referralInfo };\n\t\t\tnewAppSummary.referralFees = action.payload.referralFees || state.appSummary.referralFees;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tappSummary: newAppSummary,\n\t\t\t\tappSummarySaved: false,\n\t\t\t};\n\n\t\tcase ApplicationActionTypes.ApplicationSummarySaveGeneral:\n\t\t\tconst newAppSummaryGeneral = { ...state.appSummary, ...action.payload.generalInfo };\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tappSummary: newAppSummaryGeneral,\n\t\t\t\tappSummarySaved: false,\n\t\t\t};\n\n\t\tcase ApplicationActionTypes.ApplicationSummarySaveSuccess:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tappSummarySaved: true,\n\t\t\t};\n\n\t\tcase ApplicationActionTypes.ApplicationPublishUpdate:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tapplicationPublished: action.payload.applicationPublished,\n\t\t\t};\n\n\t\tcase ApplicationActionTypes.ApplicationFacilitiesLoad:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tloadingAppFacilites: true,\n\t\t\t};\n\t\tcase ApplicationActionTypes.ApplicationFacilitiesLoaded:\n\t\t\tconst hasActiveFacility = action.payload.appFacilities.find(f => f.isActive);\n\t\t\tif (!hasActiveFacility && action.payload.appFacilities.length) {\n\t\t\t\taction.payload.appFacilities[0].isActive = true;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tappFacilities: action.payload.appFacilities,\n\t\t\t\tloadingAppFacilites: false,\n\t\t\t};\n\t\tcase ApplicationActionTypes.ApplicationFacilitiesSave:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tloadingAppFacilites: true,\n\t\t\t\tappFacilitiesSaved: false,\n\t\t\t};\n\t\tcase ApplicationActionTypes.ApplicationFacilitiesSaveSuccess:\n\t\t\tlet newFacilitesCopy = state.appFacilities;\n\t\t\tlet newFacilites = [];\n\t\t\tconst { facility } = action.payload;\n\t\t\tlet updated = false;\n\t\t\tnewFacilitesCopy.forEach((f, idx) => {\n\t\t\t\tif (f.info.id === facility.info.id) {\n\t\t\t\t\tnewFacilitesCopy[idx] = facility;\n\t\t\t\t\tnewFacilitesCopy[idx].isActive = true;\n\t\t\t\t\tupdated = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (!updated) {\n\t\t\t\tnewFacilitesCopy.forEach(f => (f.isActive = false));\n\t\t\t\tif (facility.info.id > 0) {\n\t\t\t\t\tnewFacilitesCopy = newFacilitesCopy.filter(f => f.info.id > 0);\n\t\t\t\t\tfacility.isActive = true;\n\t\t\t\t}\n\t\t\t\tnewFacilitesCopy.push(facility);\n\t\t\t}\n\n\t\t\tnewFacilites = newFacilitesCopy;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tappFacilities: newFacilites,\n\t\t\t\tloadingAppFacilites: false,\n\t\t\t\tappFacilitiesSaved: true,\n\t\t\t};\n\t\tcase ApplicationActionTypes.ApplicationFacilitySelect:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tappFacilities: state.appFacilities.map(f => ({\n\t\t\t\t\t...f,\n\t\t\t\t\tisActive: f.info.id === action.payload?.facility?.info?.id,\n\t\t\t\t})),\n\t\t\t};\n\n\t\tcase ApplicationActionTypes.ApplicationFacilitySaveResult:\n\t\t\treturn { ...state, appFacilitiesSaveResult: action.payload.facility };\n\t\tcase ApplicationActionTypes.ApplicationCleanUp:\n\t\t\treturn { ...initialState };\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n","import { AuthActions, AuthActionTypes } from '../actions/auth.actions';\nimport { LoginResponse } from 'src/app/core/models/auth/login.response';\n\nexport interface AuthState {\n\tloggedIn: boolean;\n\tloginData: LoginResponse;\n}\n\nexport const initialAuthState: AuthState = {\n\tloggedIn: false,\n\tloginData: undefined,\n};\n\nexport function authReducer(state = initialAuthState, action: AuthActions): AuthState {\n\tswitch (action.type) {\n\t\tcase AuthActionTypes.LoginAction:\n\t\t\treturn {\n\t\t\t\tloggedIn: true,\n\t\t\t\tloginData: action.payload.loginResponse,\n\t\t\t};\n\t\tcase AuthActionTypes.LogoutAction:\n\t\t\treturn {\n\t\t\t\tloggedIn: false,\n\t\t\t\tloginData: undefined,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n","import { GlobalActions, GlobalActionTypes } from '../actions/global.action';\n\nexport interface GlobalState {\n\tcurrencies: any;\n\tupdatedCurrency: any;\n\tisUserLoggingOut: boolean;\n}\n\nexport const initialState: GlobalState = {\n\tcurrencies: undefined,\n\tupdatedCurrency: undefined,\n\tisUserLoggingOut: false,\n};\n\nexport function globalReducer(state = initialState, action: GlobalActions): GlobalState {\n\tswitch (action.type) {\n\t\tcase GlobalActionTypes.CurrencyLoaded:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcurrencies: action.payload.currencies,\n\t\t\t\tisUserLoggingOut: false,\n\t\t\t};\n\n\t\tcase GlobalActionTypes.CurrencyUpdate:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tupdatedCurrency: action.payload.updatedCurrency,\n\t\t\t};\n\t\tcase GlobalActionTypes.UserLogOut:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisUserLoggingOut: true,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n","import { InactiveTabsActions, InactiveTabsActionTypes } from '../actions/inactive-tabs.actions';\nimport { InactiveTabInfo } from '../../core/models/tab.model';\n\nexport interface InactiveTabsInfoState {\n\tinactiveTabs: Array;\n}\n\nexport const initialState: InactiveTabsInfoState = {\n\tinactiveTabs: [],\n};\n\nexport function inactiveTabsReducer(state = initialState, action: InactiveTabsActions) {\n\tswitch (action.type) {\n\t\tcase InactiveTabsActionTypes.TabAdded:\n\t\t\tlet newTab = action.payload.tab;\n\t\t\tif (state.inactiveTabs.find(t => t.name == newTab.name && t.path == newTab.path)) {\n\t\t\t\treturn state;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tinactiveTabs: state.inactiveTabs.concat(newTab),\n\t\t\t};\n\t\tcase InactiveTabsActionTypes.TabRemoved:\n\t\t\tlet removedTab = action.payload.tab;\n\t\t\treturn {\n\t\t\t\tinactiveTabs: state.inactiveTabs.filter(t => t.name != removedTab.name && t.path != removedTab.path),\n\t\t\t};\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n","import {\n\tMagicReviewPageActions,\n\tMagicReviewPageActionTypes,\n\tSelectIngredientInQueue,\n} from '../actions/magic-review-page.actions';\nimport { MagicReviewPageIngredientItem } from '../../core/models/ingredients/magic-review-page-ingredient-item.model';\n\nexport interface MagicReviewPageState {\n\tingredients: MagicReviewPageIngredientItem[];\n\tloading: boolean;\n\tsafeSelectIngredientIndex: number;\n}\n\nexport const initialState: MagicReviewPageState = {\n\tingredients: [],\n\tloading: false,\n\tsafeSelectIngredientIndex: -1,\n};\n\nexport function magicReviewPageReducer(state = initialState, action: MagicReviewPageActions) {\n\tswitch (action.type) {\n\t\tcase MagicReviewPageActionTypes.SetIngredients:\n\t\t\treturn { ...state, ingredients: action.payload.ingredients };\n\t\tcase MagicReviewPageActionTypes.MagicReviewPageLoading:\n\t\t\treturn { ...state, loading: action.payload.loading };\n\t\tcase MagicReviewPageActionTypes.SafeSelectIngredientInQueue:\n\t\t\treturn { ...state, safeSelectIngredientIndex: action.payload.selectIndex };\n\t\tcase MagicReviewPageActionTypes.SelectIngredientInQueue:\n\t\t\tconst ingredients = selectIngredient(state.ingredients, action);\n\t\t\treturn { ...state, ingredients };\n\t\tcase MagicReviewPageActionTypes.RemoveCurrentlySelectedItem:\n\t\t\tconst newlySelectedIngredients = removeSelectedIngredient(state.ingredients);\n\t\t\treturn { ...state, newlySelectedIngredients };\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n\n//#region Private functions\n\nfunction removeSelectedIngredient(ingredients: MagicReviewPageIngredientItem[]) {\n\tconst selected = ingredients.find(ingredient => ingredient.selected);\n\tconst selectedIndex = ingredients.indexOf(selected);\n\tingredients.splice(selectedIndex, 1);\n\tif (ingredients[selectedIndex]) {\n\t\tconst action = new SelectIngredientInQueue({ ingredientIndex: selectedIndex });\n\t\tingredients = selectIngredient(ingredients, action);\n\t} else if (ingredients[selectedIndex - 1]) {\n\t\tconst action = new SelectIngredientInQueue({ ingredientIndex: selectedIndex - 1 });\n\t\tingredients = selectIngredient(ingredients, action);\n\t}\n\treturn ingredients;\n}\n\nfunction selectIngredient(ingredients: MagicReviewPageIngredientItem[], action: SelectIngredientInQueue) {\n\tconst selectedIngredient = ingredients.find(ingredient => ingredient.selected);\n\tconst selectedIndex = ingredients.indexOf(selectedIngredient);\n\tif (ingredients.length > 0) {\n\t\t// handle next ingredient selection\n\t\tif (action.payload.next && selectedIndex + 1 <= ingredients.length - 1) {\n\t\t\texecuteIngredientSelection(ingredients, selectedIndex + 1);\n\t\t\treturn ingredients;\n\t\t}\n\n\t\t// handle prev ingredient selection\n\t\tif (action.payload.prev && selectedIndex - 1 >= 0) {\n\t\t\texecuteIngredientSelection(ingredients, selectedIndex - 1);\n\t\t\treturn ingredients;\n\t\t}\n\n\t\t// handle ingredient selection by index\n\t\tif (action.payload.ingredientIndex > -1 && action.payload.ingredientIndex < ingredients.length) {\n\t\t\texecuteIngredientSelection(ingredients, action.payload.ingredientIndex);\n\t\t\treturn ingredients;\n\t\t}\n\t}\n\treturn ingredients;\n}\n\nfunction executeIngredientSelection(ingredients: MagicReviewPageIngredientItem[], index: number) {\n\tingredients.map(ingredient => (ingredient.selected = false));\n\tingredients[index].selected = true;\n}\n//#endregion\n","import { MenuItem } from '../../core/models/menu-item.model';\nimport { SidenavActions, SidenavActionTypes } from '../actions/sidenav.actions';\nimport { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\n\nexport interface SidenavState extends EntityState {\n\tmenuItems: MenuItem[];\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter();\n\nexport const initialSidenavState: SidenavState = adapter.getInitialState(undefined);\n\nexport function sidenavReducer(state = initialSidenavState, action: SidenavActions): SidenavState {\n\tswitch (action.type) {\n\t\tcase SidenavActionTypes.MenuItemsLoaded:\n\t\t\treturn adapter.setAll(action.payload.menuItems, { ...state });\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n\nexport const { selectAll, selectEntities, selectIds, selectTotal } = adapter.getSelectors();\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { TabsActions, TabsActionTypes } from '../actions/tabs.actions';\nimport { Tab } from '../../core/models/tab.model';\n\nexport interface TabsState extends EntityState {\n\tmenuItems: Tab[];\n\tentityId?: number;\n\tcompanyId?: number;\n\tfacilityId?: number;\n\tagreementId?: number;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter();\n\nexport const initialState: TabsState = adapter.getInitialState(undefined);\n\nexport function tabsReducer(state = initialState, action: TabsActions): TabsState {\n\tswitch (action.type) {\n\t\tcase TabsActionTypes.TabsLoaded:\n\t\t\tif (action.payload.tabs) {\n\t\t\t\taction.payload.tabs.forEach((tab, index) => {\n\t\t\t\t\ttab.id = index + 1;\n\t\t\t\t\ttab.display = false;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn adapter.setAll(action.payload.tabs, { ...state });\n\t\tcase TabsActionTypes.EntityUpdate:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tentityId: action.payload.entityId ? action.payload.entityId : state.entityId,\n\t\t\t\tcompanyId: action.payload.companyId ? action.payload.companyId : state.companyId,\n\t\t\t\tfacilityId: action.payload.facilityId ? action.payload.facilityId : state.facilityId,\n\t\t\t\tagreementId: action.payload.agreementId ? action.payload.agreementId : state.agreementId,\n\t\t\t};\n\t\tcase TabsActionTypes.EntityClear:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tentityId: null,\n\t\t\t\tcompanyId: null,\n\t\t\t\tfacilityId: null,\n\t\t\t\tagreementId: null\n\t\t\t}\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n\nexport const { selectAll, selectEntities, selectIds, selectTotal } = adapter.getSelectors();\n","import { UsersActions, UsersActionTypes } from '../actions/users.action';\n\nexport interface UsersState {\n\tusers: any[];\n\tloading: boolean;\n}\n\nexport const initialState: UsersState = {\n\tusers: [],\n\tloading: false,\n};\n\nexport function usersReducer(state = initialState, action: UsersActions): UsersState {\n\tswitch (action.type) {\n\t\tcase UsersActionTypes.LoadUsers:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tloading: true,\n\t\t\t};\n\n\t\tcase UsersActionTypes.LoadUsersSuccess:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tloading: false,\n\t\t\t\tusers: action.payload.users,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromActiveMode from '../reducers/active-mode.reducer';\nimport { Observable } from 'rxjs';\n\nexport const selectPageTitleState = createFeatureSelector('activeMode');\n\nexport const selectActiveMode = createSelector(selectPageTitleState, state => state.activeMode);\n\nexport const getValue = (obj: Observable): any => {\n\tlet value: any;\n\tobj.subscribe(v => (value = v));\n\treturn value;\n};\n","import * as fromApplication from '../reducers/application.reducer';\nimport { createFeatureSelector, createSelector } from '@ngrx/store';\n\nexport const selectState = createFeatureSelector('application');\n\nexport const selectApplication = createSelector(selectState, state => state);\n\nexport const selectApplicationSummary = createSelector(selectApplication, state => state.appSummary);\n\nexport const selectApplicationSummaryLoading = createSelector(selectApplication, state => state.appSummaryLoading);\n\nexport const selectApplicationSummarySaved = createSelector(selectApplication, state => state.appSummarySaved);\n\nexport const selectApplicationPublished = createSelector(selectApplication, state => state.applicationPublished);\n\nexport const selectApplicationFacilities = createSelector(selectApplication, state => state.appFacilities);\n\nexport const selectLoadingApplicationFacilities = createSelector(selectApplication, state => state.loadingAppFacilites);\n\nexport const selectApplicationFacilitiesSaved = createSelector(selectApplication, state => state.appFacilitiesSaved);\n\nexport const selectApplicationFacilitiesSavedResult = createSelector(\n\tselectApplication,\n\tstate => state.appFacilitiesSaveResult\n);\n","import { createSelector, select } from '@ngrx/store';\n\nexport const selectAuthState = state => state.auth;\n\nexport const isLoggedIn = createSelector(selectAuthState, auth => auth.loggedIn);\n\nexport const isLoggedOut = createSelector(isLoggedIn, loggedIn => !loggedIn);\n\nexport const token = createSelector(selectAuthState, auth => (auth.loginData || {}).accessToken);\n\nexport const refreshToken = createSelector(selectAuthState, auth => (auth.loginData || {}).refreshToken);\n","import * as magicReviewPage from '../reducers/magic-review-page.reducer';\nimport { createFeatureSelector, createSelector } from '@ngrx/store';\n\nexport const selectState = createFeatureSelector('magicReviewPage');\nexport const selectMagicReviewPage = createSelector(selectState, state => state);\n\nexport const selectIngredients = createSelector(selectMagicReviewPage, state => state.ingredients);\n\nexport const safeSelectIngredientIndex = createSelector(\n\tselectMagicReviewPage,\n\tstate => state.safeSelectIngredientIndex\n);\n\nexport const selectMagicReviewPageLoading = createSelector(selectMagicReviewPage, state => state.loading);\n\nexport const selectSelectedIngredient = createSelector(selectMagicReviewPage, state =>\n\tstate.ingredients.find(ingredient => ingredient.selected)\n);\n\nexport const selectCurrentSelectedIndex = createSelector(selectMagicReviewPage, state => {\n\tconst selected = state.ingredients.find(ingredient => ingredient.selected);\n\treturn state.ingredients.indexOf(selected);\n});\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromTabs from '../reducers/tabs.reducer';\n\nexport const selectTabsState = createFeatureSelector('tabs');\n\nexport const selectTabs = createSelector(selectTabsState, fromTabs.selectAll);\n","import { Injectable } from '@angular/core';\nimport { Api } from './app-configuration';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class AppConfigurationService {\n\tapi: Api;\n\tagGridLicenseKey: string;\n\n\tstatic apiKeys: {\n\t\tfroala: string;\n\t\tgoogleMapsApi: string;\n\t\tlogRocket: string;\n\t} = {\n\t\tfroala: '',\n\t\tgoogleMapsApi: '',\n\t\tlogRocket: '',\n\t};\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n\tproduction: false,\n\tdebugMode: false,\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CustomRoute } from './core/interfaces/custom-routes.interface';\nimport { AuthGuard } from './shared/route-guards/auth.guard';\nimport { UserPermissionGuard } from './shared/route-guards/user-permission.route-guard';\n\nconst routes: CustomRoute[] = [\n\t{\n\t\tpath: '',\n\t\tloadChildren: () => import('./modules/auth/auth.module').then(m => m.AuthModule),\n\t},\n\t{\n\t\tpath: '',\n\t\tloadChildren: () =>\n\t\t\timport('./modules/admin-master-page/admin-master-page.module').then(m => m.AdminMasterPageModule),\n\t\tcanActivate: [AuthGuard],\n\t\tcanActivateChild: [UserPermissionGuard],\n\t},\n];\n\n@NgModule({\n\timports: [\n\t\tRouterModule.forRoot(routes, {\n\t\t\trelativeLinkResolution: 'legacy',\n\t\t\tparamsInheritanceStrategy: 'always',\n\t\t}),\n\t],\n\texports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","export class PageTitle {\n\tpageTitle: string;\n\tentityName?: string;\n\troute: string;\n\tentityId?: number | string;\n\tentityTypeId?: number;\n\ttitle?: string;\n\tfilters?: any;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Data, NavigationEnd, Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { pdfDefaultOptions } from 'ngx-extended-pdf-viewer';\nimport { filter, map, mergeMap, take } from 'rxjs/operators';\nimport { NavigationHistoryService } from 'src/app/core/services/navigation-history.service';\nimport { SideInfoToggle } from './store/actions/side-info.action';\nimport { EntityUpdate, TabsLoaded, TabsRequested } from './store/actions/tabs.actions';\nimport { EntityType } from './core/enums/entity-type.enum';\nimport { TabsType } from './core/enums/tabs-type.enum';\nimport { CustomRouteData } from './core/interfaces/custom-routes.interface';\nimport { PageTitle } from './core/models/general/page-title.model';\nimport { PermissionService } from './core/services/communication/permission.service';\nimport { EntityUrlHelperService } from './core/services/helpers/entity-url-helper.service';\nimport { LocalStorageService } from './core/services/helpers/local-storage.service';\nimport { UrlHelperService } from './core/services/helpers/url-helper.service';\nimport { IndexService } from './core/services/index.service';\nimport { TabsService } from './core/services/tabs.service';\nimport { Login } from './store/actions/auth.actions';\nimport { AppState } from './store/reducers';\nimport { selectTabs } from './store/selectors/tabs.selectors';\nimport { GlobalSearchService } from './core/services/search-services/global-search.service';\n\n@Component({\n\tselector: 'app-root',\n\ttemplateUrl: './app.component.html',\n\tstyleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements OnInit {\n\ttabsType: number = null;\n\n\tconstructor(\n\t\tprivate router: Router,\n\t\tprivate activatedRoute: ActivatedRoute,\n\t\tprivate store: Store,\n\t\tprivate indexSvc: IndexService,\n\t\tprivate navigationHistoryService: NavigationHistoryService,\n\t\tprivate tabTitle: Title,\n\t\tprivate localStorageService: LocalStorageService,\n\t\tprivate urlHelperService: UrlHelperService,\n\t\tprivate permissionService: PermissionService,\n\t\tprivate entityUrlHelper: EntityUrlHelperService,\n\t\tprivate tabsService: TabsService,\n\t\tprivate globalSearchService: GlobalSearchService\n\t) {\n\t\tpdfDefaultOptions.assetsFolder = 'bleeding-edge';\n\t}\n\n\tngOnInit() {\n\t\tif (this.localStorageService.userPermissions) {\n\t\t\tthis.permissionService.setPermissions(this.localStorageService.userPermissions);\n\t\t}\n\t\tthis.checkUserLoginStatus();\n\t\tthis.setGlobalSearch();\n\n\t\tthis.router.events\n\t\t\t.pipe(\n\t\t\t\tfilter(event => event instanceof NavigationEnd),\n\t\t\t\tmap(() => {\n\t\t\t\t\tlet route = this.activatedRoute.firstChild;\n\t\t\t\t\tlet child = route;\n\t\t\t\t\twhile (child) {\n\t\t\t\t\t\tif (child.firstChild) {\n\t\t\t\t\t\t\tchild = child.firstChild;\n\t\t\t\t\t\t\troute = child;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tchild = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn route;\n\t\t\t\t}),\n\t\t\t\tfilter(route => route !== null),\n\t\t\t\tmergeMap(\n\t\t\t\t\troute => route.data,\n\t\t\t\t\t(route, data) => {\n\t\t\t\t\t\treturn [route.params, data];\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t)\n\t\t\t.subscribe(([route, data]) => {\n\t\t\t\tthis.permissionService.currentRouteData = data;\n\t\t\t\tthis.permissionService.checkCurrentRoutePermission();\n\n\t\t\t\tthis.store.dispatch(\n\t\t\t\t\tnew EntityUpdate({\n\t\t\t\t\t\tentityId: route.value.id,\n\t\t\t\t\t\tcompanyId: route.value.companyId,\n\t\t\t\t\t\tfacilityId: route.value.facilityId,\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\tthis.store.dispatch(new SideInfoToggle({ visible: false }));\n\n\t\t\t\tconst entityId = +route.value.id;\n\n\t\t\t\tif (Object.keys(route.value).length !== 0) {\n\t\t\t\t\tswitch (data.tabsType) {\n\t\t\t\t\t\tcase TabsType.ProductInfo:\n\t\t\t\t\t\t\tthis.setEntityPageTitle(entityId, EntityType.Product, data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.CustomerIngredientInfo:\n\t\t\t\t\t\t\tthis.setEntityPageTitle(entityId, EntityType.IngredientInfo, data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.IngredientBatchInfo:\n\t\t\t\t\t\t\tthis.setEntityPageTitle(entityId, EntityType.BatchIngredient, data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.MasterIngredientInfo:\n\t\t\t\t\t\t\tthis.setEntityPageTitle(entityId, EntityType.K_ID, data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.VisitsInfo:\n\t\t\t\t\t\t\tthis.setEntityPageTitle(entityId, EntityType.Visit, data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.TripsInfo:\n\t\t\t\t\t\t\tthis.setEntityPageTitle(entityId, EntityType.Visit, data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.ContactInfo:\n\t\t\t\t\t\t\tthis.setEntityPageTitle(entityId, EntityType.ContactDetail, data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.UserSettingsInfo:\n\t\t\t\t\t\tcase TabsType.CurrentUserInfo:\n\t\t\t\t\t\t\tthis.setEntityPageTitle(entityId, EntityType.User, data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.RoleSettingsInfo:\n\t\t\t\t\t\t\tthis.setEntityPageTitle(entityId, EntityType.SecurityRole, data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.TaskInfo:\n\t\t\t\t\t\t\tthis.setEntityPageTitle(entityId, EntityType.Task, data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.SubmitCertificateInfo:\n\t\t\t\t\t\t\tthis.setEntityPageTitle(entityId, EntityType.KosherCertificate, data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.CompanyApplicationInfo:\n\t\t\t\t\t\tcase TabsType.FacilityApplicationInfo:\n\t\t\t\t\t\tcase TabsType.PrivateLabelerApplicationInfo:\n\t\t\t\t\t\tcase TabsType.RestaurantApplicationInfo:\n\t\t\t\t\t\t\tthis.setApplicationPageTitle(entityId, data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.UkdSearchInfo:\n\t\t\t\t\t\t\tthis.setUkdPageTitle(route.value.id, data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.SubmitCustomerIngredient:\n\t\t\t\t\t\t\tthis.setBatchItemPageTitle(data, route.value);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.CustomerIngredientCodeChangesUtilityModuleTabs:\n\t\t\t\t\t\t\tthis.setCodeChangeUtilityPageTitle(\n\t\t\t\t\t\t\t\t'Code Change Utility',\n\t\t\t\t\t\t\t\tentityId,\n\t\t\t\t\t\t\t\tdata,\n\t\t\t\t\t\t\t\tdata.route,\n\t\t\t\t\t\t\t\tEntityType.CodeChangeUtility\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase TabsType.None:\n\t\t\t\t\t\t\tswitch (data.entityType) {\n\t\t\t\t\t\t\t\tcase EntityType.Application:\n\t\t\t\t\t\t\t\t\tthis.setApplicationMergePageTitle(entityId, data);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase EntityType.KosherCertificate:\n\t\t\t\t\t\t\t\t\tthis.setEntityPageTitle(entityId, EntityType.KosherCertificate, data);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase EntityType.Amex:\n\t\t\t\t\t\t\t\t\tthis.setEntityPageTitle(entityId, EntityType.Amex, data);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase EntityType.BatchProductHeader:\n\t\t\t\t\t\t\t\t\tthis.getBatchProductPageTitle(route, data, entityId);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase EntityType.BatchIngredientItem:\n\t\t\t\t\t\t\t\t\tconst batchItemId = route.value.bachIngredientId;\n\t\t\t\t\t\t\t\t\tif (batchItemId) {\n\t\t\t\t\t\t\t\t\t\tthis.setBatchItemPageTitle(data, route.value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconst isConfirm = this.urlHelperService.urlsMatch(this.router.url, '/confirm-account/:key');\n\t\t\t\t\t\t\tif (!isConfirm) {\n\t\t\t\t\t\t\t\tif (entityId) {\n\t\t\t\t\t\t\t\t\tthis.getBusinessEntityPageTitle(data, entityId);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.setDefaultPageTitle(data);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tswitch (data.tabsType) {\n\t\t\t\t\t\tcase TabsType.AnalyzeProductInfo:\n\t\t\t\t\t\t\tthis.setNoEntityPageTitle(data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tthis.setDefaultPageTitle(data);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!this.tabsType || this.tabsType !== data.tabsType) {\n\t\t\t\t\tthis.store.dispatch(new TabsRequested({ type: data.tabsType }));\n\t\t\t\t\tthis.setTabsNotificationIcon();\n\t\t\t\t}\n\n\t\t\t\tthis.setPageTitle();\n\n\t\t\t\tthis.tabsType = data.tabsType;\n\t\t\t});\n\t}\n\n\tprivate checkUserLoginStatus() {\n\t\tconst loginData = this.localStorageService.loginData;\n\t\tif (loginData) {\n\t\t\tthis.store.dispatch(new Login({ loginResponse: loginData }));\n\t\t}\n\t}\n\n\tprivate setGlobalSearch() {\n\t\tconst globalSearch = this.localStorageService.userGlobalSearchData;\n\t\tif (globalSearch) {\n\t\t\tthis.globalSearchService.changeGlobalSearchParam(globalSearch);\n\t\t\tthis.localStorageService.userGlobalSearchData = null;\n\t\t}\n\t}\n\n\tprivate getBatchProductPageTitle(route, data, entityId) {\n\t\tthis.indexSvc.getEntitySummary(+route.value.id, EntityType.BatchProductHeader).subscribe((response: any) => {\n\t\t\tif (response) {\n\t\t\t\tconst url = `${data.route}/${+route.value.id}/add`;\n\t\t\t\tthis.setNavigationHistory(response.name, entityId, data, url, EntityType.BatchProductHeader);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate getBusinessEntityPageTitle(data: CustomRouteData, entityId: number) {\n\t\tthis.indexSvc.getBusinessEntitySummary(entityId).subscribe(entitySummary => {\n\t\t\tif (entitySummary) {\n\t\t\t\tlet url = `${data.route}/${entityId}`;\n\t\t\t\tif (data.route) {\n\t\t\t\t\turl = `${data.route}/${entityId}`;\n\t\t\t\t} else {\n\t\t\t\t\turl = this.router.url;\n\t\t\t\t}\n\t\t\t\tthis.setNavigationHistory(entitySummary.name, entityId, data, url, -1);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate setEntityPageTitle(entityId: number, entityTypeId: EntityType, data: CustomRouteData): void {\n\t\tthis.indexSvc.getEntitySummary(entityId, entityTypeId).subscribe((response: any) => {\n\t\t\tif (response) {\n\t\t\t\tconst route = `${data.route}/${entityId}`;\n\t\t\t\tthis.setNavigationHistory(response.name, entityId, data, route, entityTypeId);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate setPageTitle() {\n\t\tconst filteredNavigationHistory = this.navigationHistoryService?.getFilteredNavigationHistory();\n\n\t\tif (filteredNavigationHistory?.length > 0) {\n\t\t\tconst lastNavigationHistory = filteredNavigationHistory[filteredNavigationHistory.length - 1];\n\t\t\tthis.tabTitle.setTitle(\n\t\t\t\tlastNavigationHistory.entityName\n\t\t\t\t\t? lastNavigationHistory.pageTitle + ' ' + lastNavigationHistory.entityName\n\t\t\t\t\t: lastNavigationHistory.pageTitle\n\t\t\t\t\t? lastNavigationHistory.pageTitle\n\t\t\t\t\t: 'OK Kosher'\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate setApplicationPageTitle(applicationId: number, data: CustomRouteData) {\n\t\tthis.indexSvc.getApplicationSummary(applicationId).subscribe(entitySummary => {\n\t\t\tif (entitySummary) {\n\t\t\t\tthis.setNavigationHistory(entitySummary.name, applicationId, data, null, EntityType.Application);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate setApplicationMergePageTitle(applicationId: number, data: CustomRouteData) {\n\t\tthis.indexSvc.getApplicationSummary(applicationId).subscribe(entitySummary => {\n\t\t\tif (entitySummary) {\n\t\t\t\tlet route = `${data.route}/${applicationId}/${entitySummary.typeId}`;\n\t\t\t\tthis.setNavigationHistory(entitySummary.name, applicationId, data, route, EntityType.Application);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate setBatchItemPageTitle(data: CustomRouteData, routeValue) {\n\t\tconst itemId = +routeValue.bachIngredientId;\n\t\tconst headerId = +routeValue.id;\n\n\t\tif (data.tabsType === TabsType.None) {\n\t\t\tthis.indexSvc.getEntitySummary(itemId, EntityType.BatchIngredientItem).subscribe((response: any) => {\n\t\t\t\tif (response) {\n\t\t\t\t\tconst route = `${data.route}/${headerId}/${itemId}`;\n\t\t\t\t\tthis.setNavigationHistory(response.name, itemId, data, route, EntityType.BatchIngredientItem);\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (data.tabsType === TabsType.SubmitCustomerIngredient) {\n\t\t\tthis.indexSvc.getEntitySummary(headerId, EntityType.BatchIngredient).subscribe((response: any) => {\n\t\t\t\tif (response) {\n\t\t\t\t\tdata.tabsType = TabsType.None;\n\n\t\t\t\t\tconst entityId = response.entityId;\n\t\t\t\t\tconst route = `${data.route}/${entityId}`;\n\t\t\t\t\tthis.setNavigationHistory(response.name, entityId, data, route, EntityType.BatchIngredient);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate setNavigationHistory(\n\t\tname: string,\n\t\tentityId: number | string,\n\t\tdata: CustomRouteData,\n\t\troute: string,\n\t\tentityTypeId: number,\n\t\tisCustomRoute = false\n\t) {\n\t\tname ??= '';\n\t\tconst entityName = entityId ? `#${entityId} ${name}` : `${name}`;\n\n\t\tconst pageTitle = new PageTitle();\n\t\tpageTitle.pageTitle = data.pageTitle;\n\t\tpageTitle.entityName = entityName;\n\t\tpageTitle.entityId = entityId;\n\t\tpageTitle.entityTypeId = entityTypeId;\n\n\t\tif (data.tabsType && +data.tabsType !== TabsType.None && !isCustomRoute) {\n\t\t\tpageTitle.route = this.entityUrlHelper.getEntityUrlByTabType(data.tabsType, entityId);\n\t\t} else {\n\t\t\tpageTitle.route = route;\n\t\t}\n\n\t\tthis.navigationHistoryService.addNavigationHistory(pageTitle);\n\t\tthis.setPageTitle();\n\t}\n\n\tprivate setUkdPageTitle(ukdId: string, data: CustomRouteData) {\n\t\tconst route = `${data.route}/${ukdId}/info`;\n\t\tthis.setNavigationHistory('', ukdId, data, route, -2);\n\t}\n\n\tprivate setDefaultPageTitle(data: CustomRouteData) {\n\t\tconst pageTitle = {\n\t\t\tpageTitle: data.pageTitle,\n\t\t\troute: data.route ? data.route : this.router.url,\n\t\t};\n\t\tthis.navigationHistoryService.clearNavigationHistory();\n\t\tthis.navigationHistoryService.addNavigationHistory(pageTitle);\n\t}\n\n\tprivate setTabsNotificationIcon() {\n\t\tthis.tabsService.tabNotifications$.subscribe(res => {\n\t\t\tthis.store\n\t\t\t\t.select(selectTabs)\n\t\t\t\t.pipe(take(1))\n\t\t\t\t.subscribe(loadedTabs => {\n\t\t\t\t\tif (loadedTabs) {\n\t\t\t\t\t\tconst tab = loadedTabs.find(tab => tab.name === res.tabName);\n\t\t\t\t\t\tif (tab) {\n\t\t\t\t\t\t\ttab.notificationsCount = res.value;\n\t\t\t\t\t\t\tthis.store.dispatch(new TabsLoaded({ tabs: loadedTabs }));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t});\n\t}\n\n\tprivate setCodeChangeUtilityPageTitle(\n\t\tname: string,\n\t\tentityId: number,\n\t\tdata: CustomRouteData,\n\t\troute: string,\n\t\tentityType: EntityType\n\t): void {\n\t\troute = route + '/' + entityId;\n\t\tthis.setNavigationHistory(name, entityId, data, route, entityType, true);\n\t}\n\n\tprivate setNoEntityPageTitle(data: CustomRouteData): void {\n\t\tthis.setNavigationHistory(data.pageTitle, null, data, data.route, data.entityType, true);\n\t}\n}\n"," \n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n\tdeclarations: [],\n\timports: [CommonModule],\n})\nexport class CoreModule {}\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { NotifierService } from 'angular-notifier';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { catchError, filter, finalize, switchMap, take } from 'rxjs/operators';\nimport { HttpRequestHeader } from 'src/app/core/enums/http-request-headers.enum';\nimport { HttpCustomStatus } from 'src/app/core/enums/validation/http-custom-status.enum';\nimport { LoginResponse } from 'src/app/core/models/auth/login.response';\nimport { LocalStorageService } from 'src/app/core/services/helpers/local-storage.service';\nimport { Login, Logout } from '../../store/actions/auth.actions';\nimport { AuthService } from './auth.service';\n\n@Injectable()\nexport class AuthenticationInterceptor implements HttpInterceptor {\n\tisRefreshingToken: boolean = false;\n\ttokenSubject: BehaviorSubject = new BehaviorSubject(null);\n\n\tconstructor(\n\t\tprivate store: Store,\n\t\tprivate authService: AuthService,\n\t\tprivate notifierService: NotifierService,\n\t\tprivate localStorageService: LocalStorageService\n\t) {}\n\n\t/**\n\t * Intercepts all HTTP requests and adds the JWT token to the request's header if the URL\n\t * is a REST endpoint and not login or logout.\n\t */\n\tpublic intercept(request: HttpRequest, next: HttpHandler): Observable> {\n\t\tconst loginData = this.localStorageService.loginData;\n\t\treturn next.handle(this.addTokenToRequest(request, loginData)).pipe(\n\t\t\tcatchError(err => {\n\t\t\t\tif (err instanceof HttpErrorResponse) {\n\t\t\t\t\tswitch ((err).status) {\n\t\t\t\t\t\tcase HttpCustomStatus.Unauthorized:\n\t\t\t\t\t\t\tif (request.url.includes('/Auth/refresh_token')) {\n\t\t\t\t\t\t\t\tthis.store.dispatch(new Logout());\n\t\t\t\t\t\t\t\tthrowError(err);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn request.url.includes('/Auth/token')\n\t\t\t\t\t\t\t\t? throwError(err)\n\t\t\t\t\t\t\t\t: this.handle401Error(request, next);\n\t\t\t\t\t\tcase 400:\n\t\t\t\t\t\t\t// this.store.dispatch(new Logout());\n\t\t\t\t\t\t\treturn throwError(err);\n\t\t\t\t\t\tcase HttpCustomStatus.CorsError:\n\t\t\t\t\t\t\tif (!request.url.includes('/Notification/load')) {\n\t\t\t\t\t\t\t\tthis.notifierService.notify('error', 'There was an error. Please contact support');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn throwError(err);\n\t\t\t\t\t\tcase HttpCustomStatus.BusinessException:\n\t\t\t\t\t\t\tthis.notifierService.notify('error', 'There was an error. Please contact support');\n\t\t\t\t\t\t\treturn throwError(err);\n\t\t\t\t\t\tcase HttpCustomStatus.RequestValidationError:\n\t\t\t\t\t\t\terr.error.notifications.forEach(notification => {\n\t\t\t\t\t\t\t\tthis.notifierService.notify('error', notification.message);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn throwError(err);\n\t\t\t\t\t\tcase HttpCustomStatus.BEExportOverflow:\n\t\t\t\t\t\t\tthis.notifierService.notify('warning', err.error.message);\n\t\t\t\t\t\t\treturn throwError(err);\n\t\t\t\t\t\tcase HttpCustomStatus.BusinessValidationError:\n\t\t\t\t\t\t\tif (request.headers.get(HttpRequestHeader.DoNotToastValidationErrors) !== 'true') {\n\t\t\t\t\t\t\t\tthis.notifierService.notify('error', err.error.message);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn throwError(err);\n\t\t\t\t\t\tcase HttpCustomStatus.BusinessWarning:\n\t\t\t\t\t\t\tthis.notifierService.notify('warning', err.error.message);\n\t\t\t\t\t\t\treturn throwError(err);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn throwError(err);\n\t\t\t\t} else {\n\t\t\t\t\treturn throwError(err);\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n\n\t/**\n\t * Adds the JWT token to the request's header.\n\t */\n\tprivate addTokenToRequest(request: HttpRequest, loginData: LoginResponse): HttpRequest {\n\t\tif (loginData) {\n\t\t\treturn request.clone({\n\t\t\t\tsetHeaders: { [HttpRequestHeader.Authorization]: `Bearer ${loginData.accessToken}` },\n\t\t\t});\n\t\t}\n\n\t\treturn request;\n\t}\n\n\tprivate handle401Error(request: HttpRequest, next: HttpHandler) {\n\t\tif (!this.isRefreshingToken) {\n\t\t\tthis.isRefreshingToken = true;\n\n\t\t\t// Reset here so that the following requests wait until the token\n\t\t\t// comes back from the refreshToken call.\n\t\t\tthis.tokenSubject.next(null);\n\n\t\t\tconst loginData = this.localStorageService.loginData;\n\n\t\t\tif (!loginData) {\n\t\t\t\tthis.isRefreshingToken = false;\n\t\t\t\tthis.store.dispatch(new Logout());\n\t\t\t\treturn throwError(null);\n\t\t\t}\n\n\t\t\treturn this.authService.refreshToken(loginData?.refreshToken).pipe(\n\t\t\t\tswitchMap((loginResponse: LoginResponse) => {\n\t\t\t\t\tif (loginResponse) {\n\t\t\t\t\t\tthis.tokenSubject.next(loginResponse.accessToken);\n\t\t\t\t\t\tthis.store.dispatch(new Login({ loginResponse }));\n\t\t\t\t\t\treturn next.handle(this.addTokenToRequest(request, loginResponse));\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.store.dispatch(new Logout());\n\t\t\t\t}),\n\t\t\t\tcatchError(err => {\n\t\t\t\t\tthis.store.dispatch(new Logout());\n\t\t\t\t\treturn throwError(err);\n\t\t\t\t}),\n\t\t\t\tfinalize(() => {\n\t\t\t\t\tthis.isRefreshingToken = false;\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\treturn this.tokenSubject.pipe(\n\t\t\t\tfilter(token => token != null),\n\t\t\t\ttake(1),\n\t\t\t\tswitchMap(token => {\n\t\t\t\t\tconst data = new LoginResponse();\n\t\t\t\t\tdata.accessToken = token;\n\t\t\t\t\treturn next.handle(this.addTokenToRequest(request, data));\n\t\t\t\t}),\n\t\t\t\tcatchError(err => {\n\t\t\t\t\tthis.store.dispatch(new Logout());\n\t\t\t\t\treturn throwError(err);\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}\n}\n","import { Action } from '@ngrx/store';\n\nexport enum PageTitleActionTypes {\n\tPageTitleUpdate = '[Global] Page title upload'\n}\n\nexport enum PageTitleUpdateType {\n\tALL,\n\tTITLE,\n\tENTITTY,\n}\n\nexport class PageTitleUpdate implements Action {\n\treadonly type = PageTitleActionTypes.PageTitleUpdate;\n\n\tconstructor(\n\t\tpublic payload: {\n\t\t\tpageTitle?: string;\n\t\t\tentityName?: string;\n\t\t\troute?: string;\n\t\t\tupdateType?: PageTitleUpdateType;\n\t\t\tapplicationId?: string;\n\t\t}\n\t) {}\n}\n\nexport type PageTitleActions = PageTitleUpdate;\n","import { PageTitleActions, PageTitleActionTypes, PageTitleUpdateType } from '../actions/page-title.action';\n\nexport interface PageTitleState {\n\ttitle: string;\n\tentityName?: string;\n\troute: string;\n\tapplicationId: string;\n}\n\nexport const initialState: PageTitleState = {\n\ttitle: undefined,\n\tentityName: undefined,\n\troute: undefined,\n\tapplicationId: undefined,\n};\n\nexport function pageTitleReducer(state = initialState, action: PageTitleActions): PageTitleState {\n\tswitch (action.type) {\n\t\tcase PageTitleActionTypes.PageTitleUpdate:\n\t\t\tswitch (action.payload.updateType) {\n\t\t\t\tcase PageTitleUpdateType.ENTITTY:\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttitle: state.title,\n\t\t\t\t\t\tentityName: action.payload.entityName,\n\t\t\t\t\t\troute: state.route,\n\t\t\t\t\t\tapplicationId: state.applicationId,\n\t\t\t\t\t};\n\t\t\t\tcase PageTitleUpdateType.ALL:\n\t\t\t\tdefault:\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttitle: action.payload.pageTitle,\n\t\t\t\t\t\tentityName: action.payload.entityName,\n\t\t\t\t\t\troute: action.payload.route,\n\t\t\t\t\t\tapplicationId: action.payload.applicationId,\n\t\t\t\t\t};\n\t\t\t}\n\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n","import { PageTitleActions, PageTitleActionTypes } from '../actions/page-title.action';\nimport { SideInfoActions, SideInfoActionTypes } from '../actions/side-info.action';\n\nexport interface SideInfoState {\n\tvisible: boolean;\n\ttype?: any;\n\textraParams?: any;\n\tasyncEntity: any;\n\troleDetails: any;\n\troleId: any;\n\tnoteDetails: any;\n\tnoteId: any;\n\tgroupDetails: any;\n\tgroupId: any;\n\tcontactId: any;\n\tvisitProductId: any;\n\tvisitProductDetails: any;\n}\n\nexport const initialState: SideInfoState = {\n\tvisible: false,\n\tasyncEntity: {},\n\troleDetails: undefined,\n\troleId: undefined,\n\tnoteDetails: undefined,\n\tnoteId: undefined,\n\tgroupDetails: undefined,\n\tgroupId: undefined,\n\tcontactId: undefined,\n\tvisitProductId: undefined,\n\tvisitProductDetails: undefined,\n};\n\nexport function sideinfoReducer(state = initialState, action: SideInfoActions): SideInfoState {\n\tswitch (action.type) {\n\t\tcase SideInfoActionTypes.SideInfoToggle:\n\t\t\treturn {\n\t\t\t\tvisible: action.payload.visible,\n\t\t\t\ttype: action.payload.type,\n\t\t\t\textraParams: action.payload.extraParams,\n\t\t\t\tasyncEntity: action.payload.visible === state.visible ? state.asyncEntity : {},\n\t\t\t\troleDetails: state.roleDetails,\n\t\t\t\troleId: state.roleId,\n\t\t\t\tnoteDetails: state.noteDetails,\n\t\t\t\tnoteId: state.noteId,\n\t\t\t\tgroupDetails: state.groupDetails,\n\t\t\t\tgroupId: state.groupId,\n\t\t\t\tcontactId: state.contactId,\n\t\t\t\tvisitProductId: state.visitProductId,\n\t\t\t\tvisitProductDetails: state.visitProductDetails,\n\t\t\t};\n\t\tcase SideInfoActionTypes.SideInfoLoadedAsyncEntity:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tasyncEntity: {\n\t\t\t\t\t[action.payload.type]: action.payload.asyncEntity,\n\t\t\t\t},\n\t\t\t};\n\t\tcase SideInfoActionTypes.EditRoleUpdate:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\troleDetails: action.payload.roleDetails,\n\t\t\t};\n\t\tcase SideInfoActionTypes.DeleteRoleUpdate:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\troleId: action.payload.roleId,\n\t\t\t};\n\t\tcase SideInfoActionTypes.EditNoteUpdate:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tnoteDetails: action.payload.noteDetails,\n\t\t\t};\n\t\tcase SideInfoActionTypes.DeleteNoteUpdate:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tnoteId: action.payload.noteId,\n\t\t\t};\n\t\tcase SideInfoActionTypes.EditGroupUpdate:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tgroupDetails: action.payload.groupDetails,\n\t\t\t};\n\t\tcase SideInfoActionTypes.DeleteGroupUpdate:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tgroupId: action.payload.groupId,\n\t\t\t};\n\t\tcase SideInfoActionTypes.UnlinkContactUpdate:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcontactId: action.payload.contactId,\n\t\t\t};\n\t\tcase SideInfoActionTypes.DeleteVisitProductUpdate:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tvisitProductId: action.payload.visitProductId,\n\t\t\t};\n\t\tcase SideInfoActionTypes.EditVisitProductUpdate:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tvisitProductDetails: action.payload.visitProductDetails,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n","import { ActionReducer, ActionReducerMap, createFeatureSelector, createSelector, MetaReducer } from '@ngrx/store';\nimport { environment } from '../../../environments/environment';\nimport { SidenavState, sidenavReducer } from './sidenav.reducer';\nimport { TabsState, tabsReducer } from './tabs.reducer';\nimport { PageTitleState, pageTitleReducer } from './page-title.reducer';\nimport { SideInfoState, sideinfoReducer } from './sideinfo.reducer';\nimport { applicationReducer, ApplicationState } from './application.reducer';\nimport { GlobalState, globalReducer } from './global.reducer';\nimport { UsersState, usersReducer } from './users.reducer';\nimport { MagicReviewPageState, magicReviewPageReducer } from './magic-review-page.reducer';\nimport { authReducer, AuthState } from './auth.reducer';\nimport { inactiveTabsReducer, InactiveTabsInfoState } from './inactive-tabs.reducer';\n\nexport interface AppState {\n\tsidenav: SidenavState;\n\ttabs: TabsState;\n\tpageTitle: PageTitleState;\n\tsideinfo: SideInfoState;\n\tapplication: ApplicationState;\n\tglobal: GlobalState;\n\tusers: UsersState;\n\tmagicReviewPage: MagicReviewPageState;\n\tauth: AuthState;\n\tinactiveTabs: InactiveTabsInfoState;\n}\n\nexport const reducers: ActionReducerMap = {\n\tsidenav: sidenavReducer,\n\ttabs: tabsReducer,\n\tpageTitle: pageTitleReducer,\n\tsideinfo: sideinfoReducer,\n\tapplication: applicationReducer,\n\tglobal: globalReducer,\n\tusers: usersReducer,\n\tmagicReviewPage: magicReviewPageReducer,\n\tauth: authReducer,\n\tinactiveTabs: inactiveTabsReducer,\n};\n\nexport const metaReducers: MetaReducer[] = !environment.production ? [] : [];\n","import { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NgIdleModule } from '@ng-idle/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\nimport { LicenseManager } from 'ag-grid-enterprise';\nimport { NotifierModule } from 'angular-notifier';\nimport { OwlDateTimeModule, OwlNativeDateTimeModule } from 'ng-pick-datetime';\nimport { MomentModule } from 'ngx-moment';\nimport { defaultSimpleModalOptions, SimpleModalModule } from 'ngx-simple-modal';\nimport { catchError, map } from 'rxjs/operators';\nimport { AppConfigurationService } from 'src/config/app-configuration.service';\nimport { Observable, ObservableInput, of } from '../../node_modules/rxjs';\nimport { environment } from '../environments/environment';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { CoreModule } from './core/core.module';\nimport { Global } from './core/services/global.service';\nimport { AuthenticationInterceptor } from './modules/auth/auth.interceptor';\nimport { AuthModule } from './modules/auth/auth.module';\nimport { metaReducers, reducers } from './store/reducers';\nimport { SharedModule } from './shared/shared.module';\n\nfunction load(http: HttpClient, config: AppConfigurationService): () => Promise {\n\treturn (): Promise => {\n\t\treturn new Promise((resolve: (a: boolean) => void): void => {\n let configFileName = '../app.config.json';\n\t\t\tif (isLocalRunning() && isOnMacOS()) {\n\t\t\t\tconfigFileName = '../app.config-macOS.json';\n\t\t\t}\n\t\t\thttp.get(configFileName)\n\t\t\t\t.pipe(\n\t\t\t\t\tmap((x: AppConfigurationService) => {\n\t\t\t\t\t\tconfig.api = x.api;\n\t\t\t\t\t\tif (x.agGridLicenseKey) {\n\t\t\t\t\t\t\tLicenseManager.setLicenseKey(x.agGridLicenseKey);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t}),\n\t\t\t\t\tcatchError((x: { status: number }, caught: Observable): ObservableInput<{}> => {\n\t\t\t\t\t\tif (x.status !== 404) {\n\t\t\t\t\t\t\tresolve(false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\treturn of({});\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\t.subscribe();\n\t\t});\n\t};\n}\n\nfunction isLocalRunning(): boolean {\n\tlet result = window.location.hostname == 'localhost' && window.location.port == '4200';\n\treturn result;\n}\n\nfunction isOnMacOS(): boolean {\n\tlet result = navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n\treturn result;\n}\n\n@NgModule({\n\tdeclarations: [AppComponent],\n\timports: [\n\t\tBrowserModule,\n\t\tFormsModule,\n\t\tAppRoutingModule,\n\t\tHttpClientModule,\n\t\tCoreModule,\n\t\tSharedModule,\n\t\tAuthModule.forRoot(),\n\t\tStoreModule.forRoot(reducers, {\n\t\t\tmetaReducers,\n\t\t\truntimeChecks: { strictStateImmutability: false, strictActionImmutability: false },\n\t\t}),\n\t\tEffectsModule.forRoot([]),\n\t\t!environment.production ? StoreDevtoolsModule.instrument() : [],\n\t\tSimpleModalModule.forRoot(\n\t\t\t{ container: document.body },\n\t\t\t{ ...defaultSimpleModalOptions, ...{ closeOnEscape: true, closeOnClickOutside: false } }\n\t\t),\n\t\tBrowserAnimationsModule,\n\t\tOwlDateTimeModule,\n\t\tOwlNativeDateTimeModule,\n\t\tMomentModule,\n\t\tNgIdleModule.forRoot(),\n\t\tNotifierModule.withConfig({\n\t\t\tposition: {\n\t\t\t\thorizontal: { position: 'middle' },\n\t\t\t\tvertical: { position: 'top' },\n\t\t\t},\n\t\t}),\n\t],\n\tproviders: [\n\t\tHttpClient,\n\t\t{ provide: HTTP_INTERCEPTORS, useClass: AuthenticationInterceptor, multi: true },\n\t\tAppConfigurationService,\n\t\t{ provide: APP_INITIALIZER, useFactory: load, deps: [HttpClient, AppConfigurationService], multi: true },\n\t\tGlobal,\n\t],\n\tbootstrap: [AppComponent],\n\texports: [NotifierModule],\n})\nexport class AppModule {}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n\tenableProdMode();\n}\n\nplatformBrowserDynamic()\n\t.bootstrapModule(AppModule)\n\t.catch(err => console.error(err));\n","var map = {\n\t\"./af\": 62275,\n\t\"./af.js\": 62275,\n\t\"./ar\": 90857,\n\t\"./ar-dz\": 11218,\n\t\"./ar-dz.js\": 11218,\n\t\"./ar-kw\": 14754,\n\t\"./ar-kw.js\": 14754,\n\t\"./ar-ly\": 66680,\n\t\"./ar-ly.js\": 66680,\n\t\"./ar-ma\": 92178,\n\t\"./ar-ma.js\": 92178,\n\t\"./ar-sa\": 56522,\n\t\"./ar-sa.js\": 56522,\n\t\"./ar-tn\": 66860,\n\t\"./ar-tn.js\": 66860,\n\t\"./ar.js\": 90857,\n\t\"./az\": 70164,\n\t\"./az.js\": 70164,\n\t\"./be\": 79774,\n\t\"./be.js\": 79774,\n\t\"./bg\": 60947,\n\t\"./bg.js\": 60947,\n\t\"./bm\": 21832,\n\t\"./bm.js\": 21832,\n\t\"./bn\": 89650,\n\t\"./bn-bd\": 74477,\n\t\"./bn-bd.js\": 74477,\n\t\"./bn.js\": 89650,\n\t\"./bo\": 66005,\n\t\"./bo.js\": 66005,\n\t\"./br\": 98492,\n\t\"./br.js\": 98492,\n\t\"./bs\": 70534,\n\t\"./bs.js\": 70534,\n\t\"./ca\": 52061,\n\t\"./ca.js\": 52061,\n\t\"./cs\": 84737,\n\t\"./cs.js\": 84737,\n\t\"./cv\": 61167,\n\t\"./cv.js\": 61167,\n\t\"./cy\": 77996,\n\t\"./cy.js\": 77996,\n\t\"./da\": 9528,\n\t\"./da.js\": 9528,\n\t\"./de\": 14540,\n\t\"./de-at\": 49430,\n\t\"./de-at.js\": 49430,\n\t\"./de-ch\": 67978,\n\t\"./de-ch.js\": 67978,\n\t\"./de.js\": 14540,\n\t\"./dv\": 83426,\n\t\"./dv.js\": 83426,\n\t\"./el\": 6616,\n\t\"./el.js\": 6616,\n\t\"./en-au\": 63816,\n\t\"./en-au.js\": 63816,\n\t\"./en-ca\": 32162,\n\t\"./en-ca.js\": 32162,\n\t\"./en-gb\": 83305,\n\t\"./en-gb.js\": 83305,\n\t\"./en-ie\": 61954,\n\t\"./en-ie.js\": 61954,\n\t\"./en-il\": 43060,\n\t\"./en-il.js\": 43060,\n\t\"./en-in\": 59923,\n\t\"./en-in.js\": 59923,\n\t\"./en-nz\": 13540,\n\t\"./en-nz.js\": 13540,\n\t\"./en-sg\": 16505,\n\t\"./en-sg.js\": 16505,\n\t\"./eo\": 41907,\n\t\"./eo.js\": 41907,\n\t\"./es\": 86640,\n\t\"./es-do\": 41246,\n\t\"./es-do.js\": 41246,\n\t\"./es-mx\": 56131,\n\t\"./es-mx.js\": 56131,\n\t\"./es-us\": 36430,\n\t\"./es-us.js\": 36430,\n\t\"./es.js\": 86640,\n\t\"./et\": 62551,\n\t\"./et.js\": 62551,\n\t\"./eu\": 32711,\n\t\"./eu.js\": 32711,\n\t\"./fa\": 54572,\n\t\"./fa.js\": 54572,\n\t\"./fi\": 33390,\n\t\"./fi.js\": 33390,\n\t\"./fil\": 87860,\n\t\"./fil.js\": 87860,\n\t\"./fo\": 48216,\n\t\"./fo.js\": 48216,\n\t\"./fr\": 99291,\n\t\"./fr-ca\": 98527,\n\t\"./fr-ca.js\": 98527,\n\t\"./fr-ch\": 58407,\n\t\"./fr-ch.js\": 58407,\n\t\"./fr.js\": 99291,\n\t\"./fy\": 47054,\n\t\"./fy.js\": 47054,\n\t\"./ga\": 49540,\n\t\"./ga.js\": 49540,\n\t\"./gd\": 73917,\n\t\"./gd.js\": 73917,\n\t\"./gl\": 51486,\n\t\"./gl.js\": 51486,\n\t\"./gom-deva\": 56245,\n\t\"./gom-deva.js\": 56245,\n\t\"./gom-latn\": 48868,\n\t\"./gom-latn.js\": 48868,\n\t\"./gu\": 59652,\n\t\"./gu.js\": 59652,\n\t\"./he\": 89019,\n\t\"./he.js\": 89019,\n\t\"./hi\": 42040,\n\t\"./hi.js\": 42040,\n\t\"./hr\": 63402,\n\t\"./hr.js\": 63402,\n\t\"./hu\": 79322,\n\t\"./hu.js\": 79322,\n\t\"./hy-am\": 27609,\n\t\"./hy-am.js\": 27609,\n\t\"./id\": 57942,\n\t\"./id.js\": 57942,\n\t\"./is\": 98275,\n\t\"./is.js\": 98275,\n\t\"./it\": 73053,\n\t\"./it-ch\": 4378,\n\t\"./it-ch.js\": 4378,\n\t\"./it.js\": 73053,\n\t\"./ja\": 46176,\n\t\"./ja.js\": 46176,\n\t\"./jv\": 679,\n\t\"./jv.js\": 679,\n\t\"./ka\": 92726,\n\t\"./ka.js\": 92726,\n\t\"./kk\": 72953,\n\t\"./kk.js\": 72953,\n\t\"./km\": 86957,\n\t\"./km.js\": 86957,\n\t\"./kn\": 59181,\n\t\"./kn.js\": 59181,\n\t\"./ko\": 47148,\n\t\"./ko.js\": 47148,\n\t\"./ku\": 27752,\n\t\"./ku.js\": 27752,\n\t\"./ky\": 65675,\n\t\"./ky.js\": 65675,\n\t\"./lb\": 41263,\n\t\"./lb.js\": 41263,\n\t\"./lo\": 65746,\n\t\"./lo.js\": 65746,\n\t\"./lt\": 11143,\n\t\"./lt.js\": 11143,\n\t\"./lv\": 38753,\n\t\"./lv.js\": 38753,\n\t\"./me\": 44054,\n\t\"./me.js\": 44054,\n\t\"./mi\": 31573,\n\t\"./mi.js\": 31573,\n\t\"./mk\": 30202,\n\t\"./mk.js\": 30202,\n\t\"./ml\": 68523,\n\t\"./ml.js\": 68523,\n\t\"./mn\": 79794,\n\t\"./mn.js\": 79794,\n\t\"./mr\": 56681,\n\t\"./mr.js\": 56681,\n\t\"./ms\": 56975,\n\t\"./ms-my\": 39859,\n\t\"./ms-my.js\": 39859,\n\t\"./ms.js\": 56975,\n\t\"./mt\": 3691,\n\t\"./mt.js\": 3691,\n\t\"./my\": 5152,\n\t\"./my.js\": 5152,\n\t\"./nb\": 7607,\n\t\"./nb.js\": 7607,\n\t\"./ne\": 21526,\n\t\"./ne.js\": 21526,\n\t\"./nl\": 86368,\n\t\"./nl-be\": 40076,\n\t\"./nl-be.js\": 40076,\n\t\"./nl.js\": 86368,\n\t\"./nn\": 68420,\n\t\"./nn.js\": 68420,\n\t\"./oc-lnc\": 51906,\n\t\"./oc-lnc.js\": 51906,\n\t\"./pa-in\": 94504,\n\t\"./pa-in.js\": 94504,\n\t\"./pl\": 54721,\n\t\"./pl.js\": 54721,\n\t\"./pt\": 74645,\n\t\"./pt-br\": 54548,\n\t\"./pt-br.js\": 54548,\n\t\"./pt.js\": 74645,\n\t\"./ro\": 71977,\n\t\"./ro.js\": 71977,\n\t\"./ru\": 26042,\n\t\"./ru.js\": 26042,\n\t\"./sd\": 78849,\n\t\"./sd.js\": 78849,\n\t\"./se\": 27739,\n\t\"./se.js\": 27739,\n\t\"./si\": 50084,\n\t\"./si.js\": 50084,\n\t\"./sk\": 92449,\n\t\"./sk.js\": 92449,\n\t\"./sl\": 23086,\n\t\"./sl.js\": 23086,\n\t\"./sq\": 33139,\n\t\"./sq.js\": 33139,\n\t\"./sr\": 30607,\n\t\"./sr-cyrl\": 30063,\n\t\"./sr-cyrl.js\": 30063,\n\t\"./sr.js\": 30607,\n\t\"./ss\": 40131,\n\t\"./ss.js\": 40131,\n\t\"./sv\": 21665,\n\t\"./sv.js\": 21665,\n\t\"./sw\": 5642,\n\t\"./sw.js\": 5642,\n\t\"./ta\": 33622,\n\t\"./ta.js\": 33622,\n\t\"./te\": 74825,\n\t\"./te.js\": 74825,\n\t\"./tet\": 48336,\n\t\"./tet.js\": 48336,\n\t\"./tg\": 39238,\n\t\"./tg.js\": 39238,\n\t\"./th\": 99463,\n\t\"./th.js\": 99463,\n\t\"./tk\": 39986,\n\t\"./tk.js\": 39986,\n\t\"./tl-ph\": 29672,\n\t\"./tl-ph.js\": 29672,\n\t\"./tlh\": 40043,\n\t\"./tlh.js\": 40043,\n\t\"./tr\": 51212,\n\t\"./tr.js\": 51212,\n\t\"./tzl\": 50110,\n\t\"./tzl.js\": 50110,\n\t\"./tzm\": 80482,\n\t\"./tzm-latn\": 38309,\n\t\"./tzm-latn.js\": 38309,\n\t\"./tzm.js\": 80482,\n\t\"./ug-cn\": 42495,\n\t\"./ug-cn.js\": 42495,\n\t\"./uk\": 54157,\n\t\"./uk.js\": 54157,\n\t\"./ur\": 80984,\n\t\"./ur.js\": 80984,\n\t\"./uz\": 64141,\n\t\"./uz-latn\": 43662,\n\t\"./uz-latn.js\": 43662,\n\t\"./uz.js\": 64141,\n\t\"./vi\": 12607,\n\t\"./vi.js\": 12607,\n\t\"./x-pseudo\": 66460,\n\t\"./x-pseudo.js\": 66460,\n\t\"./yo\": 92948,\n\t\"./yo.js\": 92948,\n\t\"./zh-cn\": 62658,\n\t\"./zh-cn.js\": 62658,\n\t\"./zh-hk\": 39352,\n\t\"./zh-hk.js\": 39352,\n\t\"./zh-mo\": 38274,\n\t\"./zh-mo.js\": 38274,\n\t\"./zh-tw\": 98451,\n\t\"./zh-tw.js\": 98451\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"]}