{"version":3,"mappings":"mpFAAA,cAGA,yCACA,8CACA,gCACAA,IAGAC,kBAA6C,UAC7CA,YACAA,WACAC,+GCPaC,UACXH,yBAA0C,CAC1CI,KAAM,qBACNC,aAAcC,sBACdC,eAAgBD,UAChBE,cALWL,IAOXH,2BAA4C,CAC5CI,KAAM,4BACNC,aAAcC,sBACdC,eAAgBD,YAChBE,cAXWL,IAaXH,4BAA6C,CAC7CI,KAAM,+CACNC,aAAcC,eACdC,eAAgBD,UAChBE,cAjBWL,IAmBXH,2BAA4C,CAC5CI,KAAM,8CACNC,aAAcC,sBACdC,eAAgBD,YAChBE,cAvBWL,IAyBXH,mBAAoC,CACpCI,KAAM,qCACNC,aAAcC,qBACdC,eAAgBD,UAChBE,cA7BWL,IA6BD,mCClCZ,IAAYH,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,qGCVMN,EDUNM,wBCRgBN,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,qDAC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,aAAcS,aAEf,CACCyH,KAAM,QACNnI,KAAM,SACNI,YACAH,aAAcS,YAEf,CACCyH,KAAM,oBACNnI,KAAM,oBACNI,aAED,CACC+H,KAAM,OACNnI,KAAM,QACNI,YACAH,aAAcS,iCCvBHmgB,EAAsB,CAClC,CACC1Y,KAAM,cACNnI,KAAM,qBACNC,aAAcS,wCCuCTogB,EnCrCM,WmCwCZjf,WAAoBkf,qCAFpBjf,uBAAoB,IAAI5B,KnCtCZ,2CmC0CZ8gB,SAAkBD,EAAgBE,cACjC,OAAO,IAAIlhB,IAAWmhB,YACrBA,EAASpZ,KAAKhG,EAAKsL,QAAQ2T,EAAME,IACjCC,EAASC,enC7CC,qBmCiDZ/T,SAAQ2T,EAAgBE,cACnBC,EAAc,GAClB,OAAQH,QACFK,kBACJF,KAAOthB,aAAUmB,GACjB,WACIqgB,gBACJF,KAAOthB,aAAUkB,GACjB,WACIsgB,iBACJF,KAAOthB,aAAU0B,GACjB,WACI8f,uBACJF,KAAOthB,aAAUmgB,GACjB,WACIqB,eACJF,KAAOthB,aAAU8gB,GACjB,WACIU,eACJF,KAAOthB,aAAUe,GACjB,WACIygB,gBACJF,KAAOthB,aAAUoB,GACjB,WACIogB,qBACJF,KAAOthB,aAAU6gB,GACjB,WACIW,qBACJF,KAAOthB,aAAUihB,GACjB,WACIO,oBACJF,KAAOthB,aAAUqB,GACjB,WACImgB,eACJF,KAAOthB,aAAU+gB,GACjB,WACIS,cACJF,KAAOthB,aAAU2gB,GACjB,WACIa,iBACJF,KAAOthB,aAAUghB,GACjB,WACIQ,mBACJF,KAAOthB,aAAUwgB,GACjB,WACIgB,cACJF,KAAOthB,aAAU2B,GACjB,WACI6f,yBACJF,KAAOthB,aAAUoI,GACjB,WACIoZ,2BACJF,KAAOthB,aAAUuB,GACjB,WACIigB,6BACJF,KAAOthB,aAAUwB,GACjB,WACIggB,gBACJF,KAAOthB,aAAUqgB,GACjB,WACImB,mBACJF,KAAOthB,aAAUsgB,GACjB,WACIkB,wBACJF,KAAOthB,aAAU4B,GACjB,WACI4f,iBACJF,KAAOthB,aAAUogB,GACjB,WAC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B,IkBEzB86B,GlBFyB,8BkBG/BjhC,2ClBH+B,kCkBO/B0iB,gBlBP+Bue,GkBESL,MAKxCle,uCALYue,iCAAmBjd,svBCRhC7d,yBACCA,eACCA,kBAKAA,kBAKDA,QACDA,cAbqDA,oEnBMrB,IoBEzB+6B,GpBFyB,8BoBG/BlhC,2CpBH+B,kCoBO/B0iB,gBpBP+Bwe,GoBEWN,MAK1Cle,uCALYwe,iCAAqBld,0fCRlC7d,yBACCA,eACCA,kBACAA,kBACAA,kBACAA,kBACDA,QACDA,cAPwCA,oErBMR,IsBEzBg7B,GtBFyB,8BsBG/BnhC,2CtBH+B,kCsBO/B0iB,gBtBP+Bye,GsBEcP,MAK7Cle,uCALYye,iCAAwBnd,+fCRrC7d,yBACCA,kBAKDA,cANqDA,oEvBMrB,IwBEzBi7B,GxBFyB,8BwBG/BphC,2CxBH+B,kCwBO/B0iB,gBxBP+B0e,GwBEaR,MAK5Cle,uCALY0e,iCAAuBpd,+pBCRpC7d,yBACCA,kBAKDA,cANqDA,oEzBMrB,I0BEzBk7B,G1BFyB,8B0BG/BrhC,2C1BH+B,kC0BO/B0iB,gB1BP+B2e,G0BEmBT,MAKlDle,uCALY2e,iCAA6Brd,gkCCR1C7d,yBACCA,eACCA,eACCA,kBAKAA,kBAKDA,QACAA,kBAIAA,kBAKAA,kBAKDA,QACDA,cA7BwCA,4GCQjCm7B,G5BFyB,8B4BG/BthC,2C5BH+B,kC4BM/B0iB,gB5BN+B4e,G4BEQV,MAIvCle,uCAJY4e,iCAAkBtd,ucCR/B7d,yBACCA,gBACAA,eACCA,kBACAA,kBACAA,kBACDA,QACDA,wB7BDgC,I8BEzBo7B,G9BFyB,8B8BG/BvhC,2C9BH+B,kC8BO/B0iB,gB9BP+B6e,G8BEYX,MAK3Cle,uCALY6e,iCAAsBvd,0sBCRnC7d,yBACCA,kBAIDA,cALqDA,4GCQ9Cq7B,GhCFyB,8BgCG/BxhC,2ChCH+B,kCgCO/B0iB,gBhCP+B8e,GgCEWZ,MAK1Cle,uCALY8e,iCAAqBxd,6/ECAlC7d,yBACCA,kBAMAA,kBAIAA,kBAIAA,kBAIDA,cAnB+DA,wHjCF/B,IkCoBzBs7B,GlCpByB,WkCqB/BzhC,uBlCrB+B,s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gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,aACA,gBACA,YACA,eACA,gBACA,mBACA,gBACA,mBACA,gBACA,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,gCACA1iC,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","arguments","super","filterType","Number","isNaN","entityTypeId","businessEntityTypeId","hasUser","isParentVendor","activeType","isApplicationSearch","_this","keyword","maxCount","excludedIds","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","ɵfac","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","generalGetter","generalSetter","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","M","Y","getTabsObservable","ne","b","complete","k","setAccountingRenewalTabPath","appendApplicationTypeRoute","le","J","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","_model","field","patchValue","autoValidate","validate","setDisabledStatus","_disabled","setInputValidators","_required","_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","_f2","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","Ie","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","Ae","$e","contactSvc","extraParams","asyncEntity","Se","re","ye","De","xe","Re","Me","be","Le","we","Ue","me","F","B","Q","getMenuItems","ct","R","icon","activeOnSubRoutes","permissionIds","y","S","lt","pt","ut","ae","ze","sidenavService","menuItems","Ee","Xe","Te","tabs","ve","_ref3","Be","qe","autocompleteService","searchCriteria","users","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","Ge","dateTimeService","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","n","getInitialState","setAll","getSelectors","selectAll","_u$getSelectors","selectEntities","selectIds","selectTotal","display","agreementId","_u$getSelectors2","froala","googleMapsApi","logRocket","production","debugMode","loadChildren","Promise","then","AuthModule","AdminMasterPageModule","relativeLinkResolution","paramsInheritanceStrategy","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","Pe","intercept","handle","addTokenToRequest","handle401Error","clone","setHeaders","isRefreshingToken","tokenSubject","at","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","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;"]}