{"version":3,"file":"main-es2020.b000fb058c6b8faa805d.js","mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,6CAA6C;AAC7C;AACA;AACA;;;;;;;;;;;;ACZA,+DAAe,uRAAuR;;;;;;;;;;;;ACAtS,+DAAe,8JAA8J,gCAAgC,IAAI,0BAA0B,MAAM,MAAM,QAAQ,OAAO,iEAAiE,SAAS,2BAA2B,UAAU,eAAe,iEAAiE;;;;;;;;;;;;ACArc,+DAAe,kfAAkf,uBAAuB,2xDAA2xD,uCAAuC,0DAA0D,iDAAiD,0CAA0C;;;;;;;;;;;;ACA/+E,+DAAe,kmBAAkmB,q7NAAq7N,8BAA8B,yEAAyE,mBAAmB,qHAAqH,kCAAkC,iKAAiK,kCAAkC,sWAAsW,oCAAoC,2IAA2I,wCAAwC,yLAAyL,8BAA8B,qGAAqG;;;;;;;;;;;;ACAn3R,+DAAe,0pBAA0pB,uFAAuF,YAAY,cAAc,+iBAA+iB;;;;;;;;;;;;ACAz0C,+DAAe,orBAAorB,28NAA28N,6FAA6F,qQAAqQ,4BAA4B,mTAAmT,gCAAgC,kCAAkC,0VAA0V,gCAAgC,kCAAkC,oiBAAoiB,mFAAmF,mIAAmI;;;;;;;;;;;;ACAvhT,+DAAe,8zBAA8zB,WAAW,8QAA8Q,aAAa,wCAAwC,uBAAuB,uDAAuD,sCAAsC,oJAAoJ,mDAAmD,+BAA+B,4SAA4S,aAAa,kCAAkC,uBAAuB,6JAA6J,2BAA2B,sUAAsU,aAAa,wbAAwb,mCAAmC,uQAAuQ,aAAa,wCAAwC,uBAAuB,sEAAsE,mCAAmC,4IAA4I,aAAa,wCAAwC,uBAAuB,mEAAmE,gCAAgC,4IAA4I,aAAa,wCAAwC,uBAAuB,6EAA6E,0CAA0C,6IAA6I,aAAa,wCAAwC,uBAAuB,0EAA0E,uCAAuC,4IAA4I,aAAa,wCAAwC,uBAAuB,wEAAwE,qCAAqC,4IAA4I,aAAa,wCAAwC,uBAAuB,0EAA0E,uCAAuC,4IAA4I,aAAa,wCAAwC,uBAAuB,2EAA2E,wCAAwC,4IAA4I,aAAa,wCAAwC,uBAAuB,0EAA0E,uCAAuC,4IAA4I,aAAa,wCAAwC,uBAAuB,2EAA2E,wCAAwC,4IAA4I,aAAa,wCAAwC,uBAAuB,uEAAuE,oCAAoC,4IAA4I,aAAa,wCAAwC,uBAAuB,0EAA0E,uCAAuC,4IAA4I,aAAa,wCAAwC,uBAAuB,2EAA2E,wCAAwC,+uBAA+uB,kCAAkC,+BAA+B,kCAAkC,+BAA+B,mCAAmC,sBAAsB,oBAAoB,8BAA8B,8BAA8B,kaAAka,aAAa,wCAAwC,uBAAuB,kEAAkE,+BAA+B,8BAA8B,uMAAuM,aAAa,0CAA0C,uBAAuB,mEAAmE,8BAA8B,iCAAiC,iJAAiJ,aAAa,k4BAAk4B,+BAA+B,uVAAuV,aAAa,wCAAwC,uBAAuB,oEAAoE,kCAAkC,kOAAkO,aAAa,wCAAwC,uBAAuB,oEAAoE,kCAAkC,mOAAmO,aAAa,wCAAwC,uBAAuB,oEAAoE,8BAA8B,4NAA4N,aAAa,wCAAwC,uBAAuB,sEAAsE,oCAAoC,o6BAAo6B,uCAAuC,yWAAyW,uBAAuB,wEAAwE,sCAAsC,iOAAiO,aAAa,wCAAwC,uBAAuB,yEAAyE,uCAAuC,oYAAoY,uBAAuB,oBAAoB,4BAA4B,uEAAuE,0CAA0C,0NAA0N,aAAa,wCAAwC,uBAAuB,4EAA4E,iDAAiD,uOAAuO,uBAAuB,iBAAiB,4BAA4B,sEAAsE,uCAAuC,+yBAA+yB,8BAA8B,uUAAuU,uBAAuB,yEAAyE,iCAAiC,ySAAyS,uBAAuB,uEAAuE,mCAAmC,gPAAgP,uBAAuB,8EAA8E,iCAAiC,2MAA2M,uBAAuB,sEAAsE,iCAAiC,kUAAkU,uBAAuB,4EAA4E,mDAAmD,2OAA2O,uBAAuB,kEAAkE,gDAAgD,urBAAurB,4CAA4C,mVAAmV,uBAAuB,0EAA0E,+BAA+B,4CAA4C,wOAAwO,uBAAuB,0EAA0E,kCAAkC,gpBAAgpB,kCAAkC,6UAA6U,aAAa,wCAAwC,uBAAuB,0EAA0E,wCAAwC,kNAAkN,uBAAuB,oEAAoE,yCAAyC,kOAAkO,aAAa,wCAAwC,uBAAuB,0EAA0E,sCAAsC,oRAAoR,uBAAuB,iEAAiE,mCAAmC,uEAAuE;;;;;;;;;;;;ACAz4rB,+DAAe,oLAAoL,8BAA8B,8SAA8S,uBAAuB,0LAA0L,2BAA2B,sXAAsX,iCAAiC,6HAA6H,uBAAuB,uBAAuB,4BAA4B,wOAAwO,8BAA8B,6HAA6H,mBAAmB,iVAAiV,8BAA8B,0zBAA0zB,yCAAyC,oWAAoW,6BAA6B,iTAAiT,8BAA8B,4UAA4U,cAAc,+BAA+B,GAAG,4EAA4E,OAAO,4UAA4U,8BAA8B,qUAAqU,uBAAuB,uUAAuU,iBAAiB,6UAA6U,uBAAuB,gMAAgM,6BAA6B,0QAA0Q,cAAc,i7BAAi7B,kaAAka,qgBAAqgB,sBAAsB,6LAA6L,4YAA4Y,gEAAgE,uJAAuJ,yCAAyC,oWAAoW,6BAA6B,iTAAiT,8BAA8B,4UAA4U,cAAc,+BAA+B,GAAG,4EAA4E,OAAO,4UAA4U,8BAA8B,yUAAyU,uBAAuB,2UAA2U,iBAAiB,6UAA6U,uBAAuB,gMAAgM,6BAA6B,8dAA8d,cAAc,gzBAAgzB,gYAAgY,8lBAA8lB,sBAAsB,odAAod,0CAA0C,YAAY,YAAY,8CAA8C;;;;;;;;;;;;ACAxuc,+DAAe,4LAA4L,kEAAkE,oCAAoC,mKAAmK,uBAAuB,mLAAmL,2BAA2B,wLAAwL,wHAAwH,2BAA2B,oCAAoC,uCAAuC,qBAAqB,gBAAgB,+VAA+V,mDAAmD,mJAAmJ,iCAAiC,sCAAsC,8JAA8J,WAAW,4hBAA4hB,wCAAwC,iSAAiS,iCAAiC,wCAAwC,uMAAuM,cAAc,iGAAiG,OAAO,UAAU,qCAAqC,QAAQ,QAAQ,8eAA8e,iDAAiD,mJAAmJ,iCAAiC,oCAAoC,uIAAuI,iCAAiC,oCAAoC,oGAAoG,WAAW,8aAA8a,8CAA8C,mJAAmJ,iCAAiC,8CAA8C,mJAAmJ,gCAAgC,qiBAAqiB,0CAA0C,mBAAmB,uIAAuI,yDAAyD,4CAA4C,oBAAoB,mBAAmB,8KAA8K,gCAAgC,0CAA0C,mBAAmB,4ZAA4Z,yDAAyD,4CAA4C,oBAAoB,mBAAmB,8KAA8K,gCAAgC,0CAA0C,mBAAmB,ycAAyc,0CAA0C,mBAAmB,uJAAuJ,gCAAgC,0CAA0C,mBAAmB,sWAAsW,0CAA0C,mBAAmB,uJAAuJ,gCAAgC,0CAA0C,mBAAmB,2XAA2X,8CAA8C,wJAAwJ,iCAAiC,iCAAiC,6MAA6M,iBAAiB,6UAA6U,iCAAiC,iCAAiC,yQAAyQ,iCAAiC,iCAAiC,kFAAkF,iBAAiB,gXAAgX,2CAA2C,wJAAwJ,iCAAiC,8BAA8B,+IAA+I,UAAU,6PAA6P,iCAAiC,8BAA8B,mNAAmN,iCAAiC,8BAA8B,+EAA+E,UAAU,iWAAiW,4BAA4B,sKAAsK,gCAAgC,4BAA4B,yUAAyU,4CAA4C,6hBAA6hB,6CAA6C,sjBAAsjB,+BAA+B,gKAAgK,cAAc,wGAAwG,OAAO,OAAO,kNAAkN,UAAU,mQAAmQ,cAAc,4FAA4F,OAAO,OAAO,oNAAoN,UAAU,oZAAoZ,+BAA+B,4IAA4I,cAAc,kPAAkP,UAAU,6MAA6M,6HAA6H,0EAA0E,OAAO,0KAA0K,sCAAsC,irBAAirB,+IAA+I,2IAA2I,iDAAiD,wqCAAwqC,8BAA8B,iCAAiC,gYAAgY,8CAA8C,kGAAkG,+CAA+C,4CAA4C,6TAA6T,iDAAiD,+KAA+K,gCAAgC,kCAAkC,ycAAyc,iDAAiD,mLAAmL,gCAAgC,kCAAkC,uVAAuV,yDAAyD,0LAA0L,gCAAgC,kCAAkC,i4BAAi4B,8BAA8B,iCAAiC,0hBAA0hB,4BAA4B,0FAA0F,uBAAuB,8RAA8R,4BAA4B,4HAA4H;;;;;;;;;;;;ACA/6tB,+DAAe,qDAAqD,sCAAsC,0bAA0b,2BAA2B,oBAAoB,mBAAmB,uKAAuK,gCAAgC,8BAA8B,mBAAmB,6WAA6W,2BAA2B,oBAAoB,mBAAmB,uKAAuK,gCAAgC,8BAA8B,mBAAmB,kaAAka,kCAAkC,2YAA2Y,4BAA4B,4KAA4K,gCAAgC,4BAA4B,mXAAmX,+BAA+B,whBAAwhB,kCAAkC,uLAAuL,mEAAmE,0IAA0I,KAAK,sEAAsE,+dAA+d,sCAAsC,kLAAkL,gCAAgC,sCAAsC,0XAA0X,0CAA0C,yLAAyL,gCAAgC,sCAAsC,s8BAAs8B,8BAA8B,2QAA2Q,8BAA8B,2RAA2R,+OAA+O,iCAAiC,yCAAyC,kEAAkE,2RAA2R,4BAA4B,sFAAsF;;;;;;;;;;;;ACAnsP,+DAAe,sMAAsM,+BAA+B,iCAAiC,8RAA8R,yCAAyC,2LAA2L,uCAAuC,oCAAoC,kBAAkB,0HAA0H,sCAAsC,oCAAoC,wBAAwB,sNAAsN,wCAAwC,oCAAoC,+FAA+F,oNAAoN,wCAAwC,oCAAoC,+FAA+F,0HAA0H,oCAAoC,oHAAoH,UAAU,4CAA4C,8BAA8B,qTAAqT,UAAU,+PAA+P,iCAAiC,oCAAoC,2CAA2C,0HAA0H,8BAA8B,oCAAoC,oCAAoC,oNAAoN,4BAA4B,oCAAoC,+BAA+B,0HAA0H,+BAA+B,oCAAoC,2CAA2C,+UAA+U,+BAA+B,oJAAoJ,cAAc,wRAAwR,UAAU,uOAAuO,oCAAoC,2IAA2I;;;;;;;;;;;;ACAvyJ,+DAAe,4KAA4K,mDAAmD,ybAAyb,mCAAmC,wSAAwS,gEAAgE,mFAAmF,qCAAqC,kSAAkS,8BAA8B,0eAA0e,oCAAoC,2IAA2I,0BAA0B,yGAAyG,WAAW,iTAAiT,8BAA8B,2iBAA2iB,2BAA2B,4DAA4D,0CAA0C,8KAA8K,6BAA6B,6DAA6D,aAAa,6JAA6J,oCAAoC,4DAA4D,sBAAsB,qLAAqL,uCAAuC,usBAAusB,mBAAmB,0NAA0N,sCAAsC,6DAA6D,kBAAkB,iJAAiJ,6BAA6B,iFAAiF,oBAAoB,MAAM,qJAAqJ,kCAAkC,gVAAgV,6CAA6C,8FAA8F,kDAAkD,6BAA6B,4DAA4D,0MAA0M,sCAAsC,8GAA8G,qEAAqE,yLAAyL,qCAAqC,6DAA6D,wCAAwC,4IAA4I,sCAAsC,6DAA6D,gEAAgE,+IAA+I,sCAAsC,6DAA6D,0CAA0C,yIAAyI,6BAA6B,yvBAAyvB,+BAA+B,gZAAgZ,8BAA8B,kcAAkc,0BAA0B,iIAAiI;;;;;;;;;;;;ACAz2S,+DAAe,qDAAqD,gDAAgD,wWAAwW,sCAAsC,iLAAiL,iCAAiC,sCAAsC,gNAAgN,WAAW,ujBAAujB,wCAAwC,uMAAuM,gCAAgC,wCAAwC,0bAA0b,oDAAoD,qNAAqN,gCAAgC,oDAAoD,irBAAirB,6BAA6B,kUAAkU,8BAA8B,yaAAya,kBAAkB,2FAA2F,KAAK,UAAU,sJAAsJ,kBAAkB,8FAA8F,KAAK,eAAe,sJAAsJ,kBAAkB,+FAA+F,KAAK,gBAAgB,0FAA0F,6EAA6E,kBAAkB,qGAAqG,0SAA0S;;;;;;;;;;;;ACA3yK,+DAAe,qDAAqD,gDAAgD,wWAAwW,uCAAuC,iLAAiL,iCAAiC,uCAAuC,sQAAsQ,WAAW,wjBAAwjB,oCAAoC,uMAAuM,gCAAgC,oCAAoC,+eAA+e,oDAAoD,qNAAqN,gCAAgC,oDAAoD,4gBAA4gB,kCAAkC,uMAAuM,gCAAgC,kCAAkC,6cAA6c,oCAAoC,yMAAyM,gCAAgC,oCAAoC,kpBAAkpB,6BAA6B,oHAAoH,mOAAmO,8BAA8B,yNAAyN,uCAAuC,4TAA4T,wCAAwC,gEAAgE,UAAU,yJAAyJ,oCAAoC,gEAAgE,eAAe,kLAAkL,qCAAqC,wFAAwF,gBAAgB,0KAA0K,yCAAyC,kJAAkJ,iBAAiB,6HAA6H,6EAA6E,+BAA+B,4FAA4F,iBAAiB,4HAA4H,uEAAuE,iCAAiC,oLAAoL,6BAA6B,2GAA2G,8EAA8E,SAAS,kBAAkB,+DAA+D,6BAA6B,8EAA8E,kNAAkN,6BAA6B,+NAA+N,0BAA0B,oOAAoO,0CAA0C,oaAAoa,kBAAkB,KAAK,wCAAwC,8FAA8F,KAAK,UAAU,0KAA0K,kBAAkB,KAAK,oCAAoC,8FAA8F,KAAK,eAAe,0KAA0K,kBAAkB,KAAK,qCAAqC,8FAA8F,KAAK,gBAAgB,0KAA0K,kBAAkB,KAAK,yCAAyC,mGAAmG,0FAA0F,qEAAqE,+BAA+B,mFAAmF,yFAAyF,+DAA+D,iCAAiC,2FAA2F,wCAAwC,8EAA8E,SAAS,kBAAkB,qGAAqG,6LAA6L,6BAA6B,2GAA2G;;;;;;;;;;;;ACAp7W,+DAAe,2EAA2E,eAAe,sLAAsL,YAAY,uLAAuL,mMAAmM,qpBAAqpB,8GAA8G,uMAAuM,6GAA6G,qOAAqO,yBAAyB,YAAY,YAAY,8FAA8F,eAAe,mGAAmG,gBAAgB,8FAA8F,UAAU,+RAA+R;;;;;;;;;;;;ACAzlF,+DAAe,0KAA0K,iDAAiD,6aAA6a,8BAA8B,icAAic,yCAAyC,qjBAAqjB,sCAAsC,0TAA0T,4CAA4C,gIAAgI,wCAAwC,mZAAmZ,+BAA+B,wHAAwH,2CAA2C,SAAS,qcAAqc,8BAA8B,qPAAqP,2CAA2C,kHAAkH,0BAA0B,uGAAuG,iBAAiB,2GAA2G,2CAA2C,kSAAkS,kCAAkC,yEAAyE,qOAAqO,qCAAqC,sHAAsH,0BAA0B,uGAAuG,qBAAqB,2GAA2G,qCAAqC,0SAA0S,kCAAkC,mEAAmE,mOAAmO,gCAAgC,4GAA4G,6BAA6B,uGAAuG,2BAA2B,wHAAwH,6BAA6B,gHAAgH,8BAA8B,6GAA6G,gCAAgC,oOAAoO,kCAAkC,sPAAsP,4CAA4C,8NAA8N,uCAAuC,kHAAkH,0BAA0B,6RAA6R,uCAAuC,0RAA0R,kCAAkC,qEAAqE,0MAA0M,sEAAsE,cAAc,0FAA0F,QAAQ,4BAA4B,sCAAsC,QAAQ,YAAY,oOAAoO,yCAAyC,iHAAiH,6BAA6B,uNAAuN,2BAA2B,kOAAkO,uCAAuC,iQAAiQ,8BAA8B,mBAAmB,+BAA+B,ueAAue,4BAA4B,mBAAmB,+BAA+B,wdAAwd,yCAAyC,6GAA6G,6BAA6B,0DAA0D,iFAAiF,2DAA2D,mFAAmF,kNAAkN,4CAA4C,8GAA8G,6BAA6B,2DAA2D,mFAAmF,0DAA0D,qFAAqF,8NAA8N,wCAAwC,kHAAkH,0BAA0B,4DAA4D,uDAAuD,6DAA6D,+CAA+C,ygBAAygB,iCAAiC,0aAA0a,iCAAiC,yXAAyX,iCAAiC,uDAAuD,WAAW,+IAA+I,mCAAmC,mEAAmE,eAAe,oKAAoK,iCAAiC,6EAA6E,qCAAqC,kJAAkJ,gCAAgC,gLAAgL,6BAA6B,8MAA8M,+BAA+B,6MAA6M,+BAA+B,gQAAgQ,8KAA8K;;;;;;;;;;;;ACAhsf,+DAAe,sDAAsD,4GAA4G,s9EAAs9E,2FAA2F,sXAAsX,iCAAiC,sFAAsF;;;;;;;;;;;;ACA/sG,+DAAe,0CAA0C;;;;;;;;;;;;ACAzD,+DAAe,0KAA0K,uDAAuD,6aAA6a,8BAA8B,icAAic,yCAAyC,qjBAAqjB,sCAAsC,0TAA0T,4CAA4C,gIAAgI,wCAAwC,mZAAmZ,+BAA+B,wHAAwH,2CAA2C,SAAS,qcAAqc,8BAA8B,qPAAqP,2CAA2C,kHAAkH,0BAA0B,uGAAuG,iBAAiB,2GAA2G,2CAA2C,kSAAkS,kCAAkC,yEAAyE,qOAAqO,qCAAqC,sHAAsH,0BAA0B,uGAAuG,qBAAqB,2GAA2G,qCAAqC,0SAA0S,kCAAkC,mEAAmE,mOAAmO,gCAAgC,4GAA4G,6BAA6B,sGAAsG,2BAA2B,wHAAwH,6BAA6B,+GAA+G,8BAA8B,6GAA6G,gCAAgC,oOAAoO,kCAAkC,sPAAsP,4CAA4C,8NAA8N,uCAAuC,kHAAkH,0BAA0B,6RAA6R,uCAAuC,0RAA0R,kCAAkC,qEAAqE,0MAA0M,sEAAsE,cAAc,0FAA0F,QAAQ,4BAA4B,sCAAsC,QAAQ,YAAY,oOAAoO,yCAAyC,iHAAiH,6BAA6B,uNAAuN,2BAA2B,kOAAkO,uCAAuC,iQAAiQ,8BAA8B,mBAAmB,+BAA+B,ueAAue,4BAA4B,mBAAmB,+BAA+B,wdAAwd,yCAAyC,6GAA6G,6BAA6B,0DAA0D,iFAAiF,2DAA2D,mFAAmF,kNAAkN,4CAA4C,8GAA8G,6BAA6B,2DAA2D,mFAAmF,0DAA0D,qFAAqF,8NAA8N,wCAAwC,kHAAkH,0BAA0B,4DAA4D,uDAAuD,6DAA6D,+CAA+C,ygBAAygB,iCAAiC,0aAA0a,iCAAiC,kbAAkb,WAAW,uNAAuN,eAAe,0OAA0O,mBAAmB,mPAAmP,qCAAqC,4JAA4J,8KAA8K;;;;;;;;;;;;ACAz6d,+DAAe,oIAAoI,kBAAkB,mBAAmB,yCAAyC,oBAAoB,YAAY,aAAa,sBAAsB,YAAY,+DAA+D,YAAY,aAAa,uBAAuB,iCAAiC,+DAA+D,YAAY,eAAe,aAAa,cAAc,oEAAoE,cAAc,mBAAmB,4DAA4D,YAAY,iCAAiC,UAAU,+DAA+D,cAAc,iCAAiC,sCAAsC,+DAA+D,YAAY,iCAAiC,yCAAyC,+DAA+D,cAAc,iCAAiC,qCAAqC,+DAA+D,YAAY,iCAAiC,gBAAgB,+DAA+D,cAAc,iCAAiC,oBAAoB,+DAA+D,cAAc,iCAAiC,gBAAgB,+DAA+D,cAAc,iCAAiC,0CAA0C,sEAAsE,cAAc,iCAAiC,8BAA8B,uGAAuG,YAAY,eAAe,aAAa,gFAAgF,cAAc,mBAAmB,uFAAuF,YAAY,eAAe,aAAa,gFAAgF,cAAc,mBAAmB,uFAAuF,YAAY,aAAa,aAAa,gFAAgF,cAAc,mBAAmB,4BAA4B;;;;;;;;;;;;ACA1mF,+DAAe,sRAAsR,0BAA0B,2BAA2B,4BAA4B,6BAA6B,iCAAiC,aAAa,sBAAsB,mCAAmC,uBAAuB,wBAAwB,6BAA6B,8BAA8B,6BAA6B,oCAAoC,kCAAkC,mCAAmC,aAAa,0BAA0B,mCAAmC,uBAAuB,wBAAwB,+BAA+B,gCAAgC,4BAA4B,aAAa,gLAAgL,cAAc,aAAa,iDAAiD,mBAAmB,kBAAkB,KAAK,iCAAiC,8DAA8D,cAAc,aAAa,+CAA+C,mBAAmB,kBAAkB,KAAK,qCAAqC,4DAA4D,aAAa,YAAY,uEAAuE,gBAAgB,qBAAqB,4DAA4D,YAAY,WAAW,cAAc,uBAAuB,qBAAqB,kBAAkB,yBAAyB,iDAAiD,mBAAmB,iBAAiB,KAAK,UAAU,8DAA8D,YAAY,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,sCAAsC,8DAA8D,YAAY,cAAc,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,yCAAyC,8DAA8D,YAAY,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,qCAAqC,8DAA8D,YAAY,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,gBAAgB,8DAA8D,YAAY,cAAc,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,oBAAoB,8DAA8D,YAAY,cAAc,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,gBAAgB,8DAA8D,YAAY,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,0CAA0C,6DAA6D,oBAAoB,cAAc,cAAc,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,8BAA8B,mEAAmE,aAAa,cAAc,aAAa,oRAAoR,qBAAqB,mBAAmB,mBAAmB,0DAA0D,cAAc,WAAW,mDAAmD,mBAAmB,iBAAiB,KAAK,iCAAiC,kEAAkE,cAAc,YAAY,mDAAmD,mBAAmB,iBAAiB,KAAK,qCAAqC,kEAAkE,cAAc,YAAY,0EAA0E,gBAAgB,sBAAsB,gEAAgE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,mDAAmD,mBAAmB,iBAAiB,KAAK,UAAU,kEAAkE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,mDAAmD,mBAAmB,iBAAiB,KAAK,UAAU,kEAAkE,cAAc,YAAY,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,mDAAmD,mBAAmB,iBAAiB,KAAK,sCAAsC,kEAAkE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,mDAAmD,mBAAmB,iBAAiB,KAAK,yCAAyC,kEAAkE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,mDAAmD,mBAAmB,iBAAiB,KAAK,gBAAgB,kEAAkE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,mDAAmD,mBAAmB,iBAAiB,KAAK,qCAAqC,kEAAkE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,mDAAmD,mBAAmB,iBAAiB,KAAK,gBAAgB,kEAAkE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,mDAAmD,mBAAmB,iBAAiB,KAAK,8BAA8B,0DAA0D,oBAAoB,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,mDAAmD,mBAAmB,iBAAiB,KAAK,0CAA0C,yEAAyE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,mDAAmD,mBAAmB,iBAAiB,KAAK,oBAAoB,uEAAuE,eAAe,gBAAgB,YAAY,kTAAkT,qBAAqB,mBAAmB,mBAAmB,gDAAgD,cAAc,WAAW,qDAAqD,mBAAmB,kBAAkB,KAAK,iCAAiC,sEAAsE,aAAa,YAAY,2EAA2E,gBAAgB,qBAAqB,oEAAoE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,yBAAyB,qDAAqD,mBAAmB,iBAAiB,KAAK,UAAU,sEAAsE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,qDAAqD,mBAAmB,kBAAkB,KAAK,sCAAsC,sEAAsE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,qDAAqD,mBAAmB,kBAAkB,KAAK,yCAAyC,sEAAsE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,qDAAqD,mBAAmB,kBAAkB,KAAK,qCAAqC,sEAAsE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,qDAAqD,mBAAmB,kBAAkB,KAAK,gBAAgB,sEAAsE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,qDAAqD,mBAAmB,kBAAkB,KAAK,oBAAoB,sEAAsE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,qDAAqD,mBAAmB,kBAAkB,KAAK,gBAAgB,sEAAsE,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,qDAAqD,mBAAmB,kBAAkB,KAAK,0CAA0C,qEAAqE,oBAAoB,cAAc,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,qDAAqD,mBAAmB,kBAAkB,KAAK,8BAA8B,2EAA2E,aAAa,cAAc,aAAa,8MAA8M,qBAAqB,mBAAmB,mBAAmB,mJAAmJ,mBAAmB,kBAAkB,KAAK,iCAAiC,8KAA8K,mBAAmB,kBAAkB,KAAK,qCAAqC,gMAAgM,gBAAgB,qBAAqB,oLAAoL,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,iBAAiB,KAAK,UAAU,6LAA6L,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,sCAAsC,iMAAiM,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,yCAAyC,iMAAiM,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,qCAAqC,iMAAiM,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,gBAAgB,iMAAiM,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,oBAAoB,iMAAiM,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,gBAAgB,iMAAiM,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,0CAA0C,wMAAwM,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,8BAA8B,6XAA6X,qBAAqB,mBAAmB,mBAAmB,8CAA8C,cAAc,YAAY,iDAAiD,mBAAmB,kBAAkB,KAAK,iCAAiC,8DAA8D,cAAc,UAAU,+CAA+C,mBAAmB,kBAAkB,KAAK,qCAAqC,4DAA4D,aAAa,YAAY,uEAAuE,gBAAgB,qBAAqB,4DAA4D,YAAY,WAAW,cAAc,uBAAuB,qBAAqB,kBAAkB,yBAAyB,iDAAiD,mBAAmB,iBAAiB,KAAK,UAAU,8DAA8D,YAAY,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,sCAAsC,8DAA8D,YAAY,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,yCAAyC,8DAA8D,YAAY,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,qCAAqC,8DAA8D,YAAY,WAAW,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,gBAAgB,8DAA8D,YAAY,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,oBAAoB,8DAA8D,YAAY,cAAc,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,gBAAgB,8DAA8D,YAAY,aAAa,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,0CAA0C,6DAA6D,oBAAoB,YAAY,cAAc,cAAc,uBAAuB,qBAAqB,kBAAkB,wBAAwB,iDAAiD,mBAAmB,kBAAkB,KAAK,8BAA8B,mEAAmE,aAAa,cAAc,aAAa,+OAA+O,UAAU,yCAAyC,eAAe,aAAa,0BAA0B,MAAM,aAAa,4CAA4C,eAAe,aAAa,yBAAyB,MAAM,WAAW,4CAA4C,eAAe,aAAa,yBAAyB,MAAM,uCAAuC,4CAA4C,eAAe,aAAa,yBAAyB,MAAM,qBAAqB,4CAA4C,eAAe,aAAa,yBAAyB,MAAM,0CAA0C,4CAA4C,eAAe,aAAa,yBAAyB,MAAM,iBAAiB,4CAA4C,eAAe,aAAa,yBAAyB,MAAM,sCAAsC,4CAA4C,eAAe,aAAa,yBAAyB,MAAM,2CAA2C,mDAAmD,eAAe,aAAa,yBAAyB,MAAM,+BAA+B,4CAA4C,eAAe,aAAa,yBAAyB,MAAM,iBAAiB,4CAA4C,eAAe,aAAa,yBAAyB,MAAM,kCAAkC,4CAA4C,eAAe,aAAa,yBAAyB,MAAM,sCAAsC,iDAAiD,aAAa,cAAc,aAAa,gHAAgH,cAAc,iBAAiB,aAAa,WAAW,8CAA8C;;;;;;;;;;;;ACA/6sB,+DAAe,iKAAiK,oCAAoC,mhBAAmhB,2BAA2B,qZAAqZ,sCAAsC,+cAA+c,mCAAmC,8RAA8R,yCAAyC,+GAA+G,oDAAoD,sUAAsU,8BAA8B,8GAA8G,ydAAyd,2BAA2B,mPAAmP,2CAA2C,kHAAkH,0BAA0B,uGAAuG,iBAAiB,2GAA2G,2CAA2C,gOAAgO,iCAAiC,2CAA2C,yNAAyN,qCAAqC,sHAAsH,0BAA0B,uGAAuG,qBAAqB,2GAA2G,qCAAqC,wOAAwO,iCAAiC,qCAAqC,sNAAsN,6BAA6B,2GAA2G,0BAA0B,uGAAuG,2BAA2B,wHAAwH,6BAA6B,+GAA+G,8BAA8B,6GAA6G,gCAAgC,6OAA6O,+BAA+B,mPAAmP,yCAAyC,2NAA2N,uCAAuC,kHAAkH,0BAA0B,6RAA6R,uCAAuC,wNAAwN,iCAAiC,uCAAuC,8LAA8L,cAAc,qCAAqC,aAAa,kDAAkD,OAAO,UAAU,sDAAsD,QAAQ,QAAQ,mOAAmO,sCAAsC,gHAAgH,0BAA0B,qLAAqL,0BAA0B,iNAAiN,oCAAoC,8OAA8O,8BAA8B,4BAA4B,0ZAA0Z,4BAA4B,4BAA4B,2ZAA2Z,sCAAsC,4GAA4G,0BAA0B,0DAA0D,6CAA6C,2DAA2D,+CAA+C,iNAAiN,yCAAyC,6GAA6G,0BAA0B,2DAA2D,+CAA+C,0DAA0D,iDAAiD,iNAAiN,qCAAqC,ooBAAooB,kCAAkC,6bAA6b,8BAA8B,svBAAsvB,yCAAyC,oYAAoY,sCAAsC,wPAAwP,wCAAwC,kHAAkH,0BAA0B,4DAA4D,uDAAuD,6DAA6D,+CAA+C,ydAAyd,8BAA8B,sXAAsX,8BAA8B,iYAAiY,qCAAqC,sDAAsD,2DAA2D,wJAAwJ,6BAA6B,4EAA4E,qDAAqD,oGAAoG,WAAW,+KAA+K,2BAA2B,4EAA4E,UAAU,kKAAkK,6BAA6B,gEAAgE,2EAA2E,2DAA2D,6CAA6C,gKAAgK,+BAA+B,8FAA8F,KAAK,iBAAiB,oKAAoK,uCAAuC,mhBAAmhB,mBAAmB,kMAAkM,yCAAyC,sDAAsD,gBAAgB,mIAAmI,wCAAwC,wDAAwD,2HAA2H,qIAAqI,mCAAmC,+LAA+L,iDAAiD,8KAA8K,iDAAiD,uQAAuQ,8DAA8D,mBAAmB,8CAA8C,8KAA8K,iEAAiE,mBAAmB,8CAA8C,qLAAqL,8BAA8B,6IAA6I,2DAA2D,+CAA+C,kGAAkG,sJAAsJ,sCAAsC,6IAA6I,kBAAkB,gDAAgD,wCAAwC,0JAA0J,kCAAkC,iJAAiJ,sBAAsB,+CAA+C,sBAAsB,mJAAmJ,kCAAkC,gJAAgJ,qBAAqB,+CAA+C,uCAAuC,wJAAwJ,qCAAqC,+IAA+I,qBAAqB,gDAAgD,gCAAgC,qJAAqJ,wCAAwC,wFAAwF,sCAAsC,gJAAgJ,6BAA6B,iHAAiH,QAAQ,aAAa,4BAA4B,mPAAmP,QAAQ,aAAa,6BAA6B,qTAAqT,QAAQ,aAAa,8BAA8B,yTAAyT,8BAA8B,ofAAof,8EAA8E,8BAA8B,8BAA8B,wDAAwD,mDAAmD,gEAAgE,kPAAkP,8BAA8B,6VAA6V,0BAA0B,iIAAiI;;;;;;;;;;;;ACA/1xB,+DAAe,kKAAkK,mCAAmC,wdAAwd,4BAA4B,iYAAiY,uCAAuC,8aAA8a,oCAAoC,6OAA6O,0CAA0C,sGAAsG,sCAAsC,2SAA2S,+BAA+B,4iBAA4iB,2BAA2B,iPAAiP,2CAA2C,8GAA8G,0BAA0B,qGAAqG,iBAAiB,uGAAuG,2CAA2C,gOAAgO,iCAAiC,2CAA2C,uNAAuN,qCAAqC,kHAAkH,0BAA0B,qGAAqG,qBAAqB,uGAAuG,qCAAqC,wOAAwO,iCAAiC,qCAAqC,0NAA0N,qCAAqC,2GAA2G,0BAA0B,qGAAqG,2BAA2B,kHAAkH,6BAA6B,yGAAyG,8BAA8B,uGAAuG,gCAAgC,qOAAqO,qCAAqC,8oBAA8oB,+BAA+B,mPAAmP,yCAAyC,wNAAwN,uCAAuC,8GAA8G,0BAA0B,qRAAqR,uCAAuC,wNAAwN,iCAAiC,uCAAuC,8LAA8L,cAAc,qCAAqC,aAAa,kDAAkD,OAAO,UAAU,sDAAsD,QAAQ,QAAQ,mOAAmO,sCAAsC,gHAAgH,0BAA0B,qLAAqL,0BAA0B,iNAAiN,oCAAoC,8OAA8O,8BAA8B,4BAA4B,0ZAA0Z,4BAA4B,4BAA4B,2ZAA2Z,sCAAsC,4GAA4G,0BAA0B,0DAA0D,6CAA6C,2DAA2D,+CAA+C,iNAAiN,yCAAyC,6GAA6G,0BAA0B,2DAA2D,+CAA+C,0DAA0D,iDAAiD,0NAA0N,wCAAwC,8GAA8G,0BAA0B,0DAA0D,uDAAuD,2DAA2D,+CAA+C,mdAAmd,8BAA8B,sXAAsX,8BAA8B,6XAA6X,qCAAqC,sDAAsD,2DAA2D,wJAAwJ,6BAA6B,4EAA4E,qDAAqD,oGAAoG,WAAW,+KAA+K,2BAA2B,4EAA4E,UAAU,kKAAkK,6BAA6B,iEAAiE,2EAA2E,2DAA2D,6CAA6C,iKAAiK,+BAA+B,8FAA8F,KAAK,iBAAiB,+JAA+J,uCAAuC,mhBAAmhB,mBAAmB,iMAAiM,yCAAyC,sDAAsD,gBAAgB,iIAAiI,wCAAwC,sDAAsD,yHAAyH,mIAAmI,mCAAmC,+LAA+L,iDAAiD,8KAA8K,iDAAiD,uQAAuQ,8DAA8D,mBAAmB,8CAA8C,8KAA8K,iEAAiE,mBAAmB,8CAA8C,2KAA2K,6BAA6B,iHAAiH,QAAQ,aAAa,4BAA4B,mPAAmP,QAAQ,aAAa,6BAA6B,qTAAqT,QAAQ,aAAa,8BAA8B,yTAAyT,8BAA8B,ofAAof,8EAA8E,8BAA8B,8BAA8B,wDAAwD,mDAAmD,gEAAgE,gPAAgP,8BAA8B,qVAAqV,0BAA0B,6HAA6H;;;;;;;;;;;;ACAhmoB,+DAAe,mMAAmM,8DAA8D,UAAU,iCAAiC,iVAAiV,4CAA4C,oKAAoK,6BAA6B,QAAQ,KAAK,mCAAmC,oJAAoJ,kCAAkC,0ZAA0Z,qDAAqD,wNAAwN,cAAc,0FAA0F,OAAO,kYAAkY,iDAAiD,qQAAqQ,GAAG,wmBAAwmB,sBAAsB,KAAK,eAAe,iZAAiZ,wCAAwC,qKAAqK,gCAAgC,2BAA2B,uUAAuU,oDAAoD,uJAAuJ,gCAAgC,uCAAuC,kqBAAkqB,qCAAqC,mJAAmJ,iCAAiC,qCAAqC,6KAA6K,qBAAqB,obAAob,kDAAkD,4JAA4J,qPAAqP,iCAAiC,qCAAqC,4NAA4N,WAAW,sKAAsK,+OAA+O,iCAAiC,qCAAqC,kNAAkN,WAAW,qXAAqX,iCAAiC,qCAAqC,ucAAuc,2CAA2C,mJAAmJ,iCAAiC,iCAAiC,qJAAqJ,iBAAiB,ibAAib,wDAAwD,gPAAgP,iCAAiC,iCAAiC,iaAAia,sDAAsD,2KAA2K,gCAAgC,yCAAyC,2VAA2V,kDAAkD,mJAAmJ,iCAAiC,qCAAqC,qNAAqN,gBAAgB,+aAA+a,0CAA0C,yNAAyN,2BAA2B,kGAAkG,8CAA8C,qGAAqG,6BAA6B,uFAAuF,iDAAiD,kaAAka,8CAA8C,+JAA+J,iCAAiC,iCAAiC,6KAA6K,iBAAiB,wdAAwd,2DAA2D,mQAAmQ,iCAAiC,iCAAiC,wcAAwc,sCAAsC,+JAA+J,iCAAiC,sCAAsC,wQAAwQ,0BAA0B,iaAAia,4CAA4C,oPAAoP,mYAAmY,+CAA+C,oEAAoE,cAAc,uQAAuQ,wIAAwI,kLAAkL,0EAA0E,gFAAgF,+CAA+C,sKAAsK,sCAAsC,4jBAA4jB,GAAG,mqEAAmqE,GAAG,cAAc,GAAG,gMAAgM,qCAAqC,mCAAmC,yBAAyB,oJAAoJ,mDAAmD,2WAA2W,GAAG,s0BAAs0B,qCAAqC,2CAA2C,yBAAyB,+KAA+K,2DAA2D,moBAAmoB,sDAAsD,6jBAA6jB,4BAA4B,yGAAyG,6BAA6B,gQAAgQ,4BAA4B,gKAAgK;;;;;;;;;;;;ACAn8uB,+DAAe,kMAAkM,+BAA+B,iCAAiC,qDAAqD,yCAAyC,yeAAye,2CAA2C,oKAAoK,KAAK,oCAAoC,oGAAoG,2CAA2C,gIAAgI,gDAAgD,wEAAwE,4CAA4C,QAAQ,KAAK,4CAA4C,wDAAwD,6CAA6C,6FAA6F,+EAA+E,oDAAoD,2CAA2C,6FAA6F,sEAAsE,0EAA0E,0DAA0D,6FAA6F,6FAA6F,cAAc,2CAA2C,kmDAAkmD,4CAA4C,uWAAuW,4CAA4C,s/CAAs/C,mDAAmD,kCAAkC,mDAAmD,6gBAA6gB,gCAAgC,iDAAiD,oiBAAoiB,mIAAmI,uCAAuC,gCAAgC,8CAA8C,gCAAgC,qJAAqJ,oEAAoE,+DAA+D,2MAA2M,qFAAqF,ggBAAggB,sIAAsI,mCAAmC,gCAAgC,8CAA8C,gCAAgC,uJAAuJ,uEAAuE,6DAA6D,sMAAsM,wFAAwF,8lBAA8lB,QAAQ,soDAAsoD,qIAAqI,qCAAqC,gCAAgC,8CAA8C,sMAAsM,uFAAuF,kiBAAkiB,wIAAwI,qCAAqC,gCAAgC,8CAA8C,yMAAyM,0FAA0F,2kHAA2kH,oCAAoC,gDAAgD,qDAAqD,2MAA2M,2BAA2B,gDAAgD,UAAU,gMAAgM,uCAAuC,gDAAgD,4CAA4C,mMAAmM,qCAAqC,gDAAgD,6BAA6B,mMAAmM,2CAA2C,gDAAgD,yBAAyB,mMAAmM,yCAAyC,gDAAgD,gBAAgB,8LAA8L,qCAAqC,qEAAqE,KAAK,gBAAgB,wLAAwL,6BAA6B,iDAAiD,2EAA2E,oDAAoD,6CAA6C,6MAA6M,8CAA8C,gDAAgD,6BAA6B,6LAA6L,sCAAsC,gDAAgD,8BAA8B,2MAA2M,+BAA+B,8EAA8E,KAAK,iBAAiB,2LAA2L,8CAA8C,+DAA+D,cAAc,mBAAmB,mBAAmB,oBAAoB,4DAA4D,6MAA6M,kCAAkC,6GAA6G,cAAc,iGAAiG,oIAAoI,iyBAAiyB,gDAAgD,wUAAwU,kBAAkB,6DAA6D,kBAAkB,wNAAwN,MAAM,gYAAgY,8DAA8D,wKAAwK,sCAAsC,mgBAAmgB,8DAA8D,wKAAwK,sCAAsC,2cAA2c,oDAAoD,KAAK,2BAA2B,+DAA+D,2BAA2B,kDAAkD,2BAA2B,kBAAkB,6gBAA6gB,iCAAiC,QAAQ,8BAA8B,kKAAkK,yEAAyE,oMAAoM,KAAK,kJAAkJ,qPAAqP,MAAM,0FAA0F,+sBAA+sB,iCAAiC,QAAQ,+BAA+B,8TAA8T,kJAAkJ,oBAAoB,4EAA4E,gqBAAgqB,iCAAiC,QAAQ,+BAA+B,8TAA8T,0JAA0J,oBAAoB,oFAAoF,orBAAorB,uCAAuC,oPAAoP,kCAAkC,kHAAkH,yEAAyE,oRAAoR,wCAAwC,uHAAuH,iFAAiF,2hBAA2hB,qFAAqF,oCAAoC,uEAAuE,oJAAoJ,qFAAqF,sBAAsB,uDAAuD,oJAAoJ,qFAAqF,2BAA2B,gFAAgF,oJAAoJ,qFAAqF,2BAA2B,0HAA0H,6nBAA6nB,8CAA8C,iCAAiC,wEAAwE,iBAAiB,kDAAkD,uBAAuB,wEAAwE,4sBAA4sB,uCAAuC,wPAAwP,kCAAkC,oHAAoH,yEAAyE,2RAA2R,sCAAsC,0HAA0H,+EAA+E,0RAA0R,wCAAwC,yHAAyH,iFAAiF,kjBAAkjB,qFAAqF,0HAA0H,+BAA+B,iHAAiH,sEAAsE,4KAA4K,qFAAqF,wBAAwB,uDAAuD,wJAAwJ,qFAAqF,6BAA6B,gFAAgF,wJAAwJ,qFAAqF,6BAA6B,8HAA8H,4kBAA4kB,6CAA6C,wKAAwK,uDAAuD,qKAAqK,4CAA4C,sKAAsK,oDAAoD,wKAAwK,8CAA8C,wKAAwK,kDAAkD,2KAA2K,8CAA8C,uMAAuM,KAAK,sDAAsD,uRAAuR,kDAAkD,qLAAqL,gEAAgE,gMAAgM,6DAA6D,4CAA4C,6DAA6D,uzBAAuzB,kBAAkB,iySAAiyS,6CAA6C,0KAA0K,uDAAuD,qKAAqK,4CAA4C,sKAAsK,oDAAoD,wKAAwK,8CAA8C,wKAAwK,kDAAkD,2KAA2K,8CAA8C,uMAAuM,KAAK,sDAAsD,qRAAqR,kDAAkD,qLAAqL,gEAAgE,gMAAgM,6DAA6D,4CAA4C,6DAA6D,8XAA8X,09BAA09B,2DAA2D;;;;;;;;;;;;ACAxzsD,+DAAe,uLAAuL,gBAAgB,mBAAmB,oBAAoB,mBAAmB,gDAAgD,WAAW,WAAW,mBAAmB,WAAW,KAAK,gCAAgC,wDAAwD,YAAY,WAAW,mBAAmB,WAAW,MAAM,WAAW,oDAAoD,YAAY,WAAW,mBAAmB,WAAW,KAAK,qBAAqB,uDAAuD,aAAa,UAAU,KAAK,yBAAyB,mDAAmD,aAAa,UAAU,uDAAuD,aAAa,WAAW,mBAAmB,WAAW,MAAM,YAAY,oDAAoD,aAAa,WAAW,mBAAmB,WAAW,OAAO,sBAAsB,oDAAoD,YAAY,YAAY,mBAAmB,WAAW,KAAK,mBAAmB,wDAAwD,YAAY,YAAY,mBAAmB,WAAW,4OAA4O,gBAAgB,mBAAmB,oBAAoB,mBAAmB,gDAAgD,YAAY,WAAW,mBAAmB,WAAW,KAAK,gCAAgC,wDAAwD,WAAW,WAAW,mBAAmB,WAAW,MAAM,WAAW,oDAAoD,WAAW,WAAW,mBAAmB,WAAW,KAAK,qBAAqB,uDAAuD,YAAY,WAAW,sBAAsB,yBAAyB,mDAAmD,YAAY,UAAU,uDAAuD,YAAY,WAAW,mBAAmB,WAAW,MAAM,YAAY,oDAAoD,aAAa,WAAW,mBAAmB,WAAW,OAAO,sBAAsB,oDAAoD,WAAW,YAAY,mBAAmB,WAAW,KAAK,mBAAmB,wDAAwD,WAAW,YAAY,mBAAmB,WAAW,mDAAmD;;;;;;;;;;;;ACAjvF,+DAAe,gOAAgO,gBAAgB,mBAAmB,mBAAmB,wDAAwD,cAAc,UAAU,6BAA6B,6DAA6D,2DAA2D,cAAc,YAAY,6BAA6B,oEAAoE,2DAA2D,cAAc,YAAY,6BAA6B,oEAAoE,2DAA2D,aAAa,UAAU,uEAAuE,aAAa,UAAU,KAAK,qCAAqC,2DAA2D,aAAa,aAAa,6BAA6B,mDAAmD,2DAA2D,YAAY,aAAa,6BAA6B,sGAAsG,+EAA+E,aAAa,WAAW,KAAK,iCAAiC,2DAA2D,YAAY,WAAW,KAAK,mBAAmB,gEAAgE,WAAW,kPAAkP,UAAU,6DAA6D,gBAAgB,mBAAmB,mBAAmB,wDAAwD,aAAa,WAAW,eAAe,6BAA6B,qCAAqC,2DAA2D,aAAa,cAAc,eAAe,6BAA6B,qCAAqC,2DAA2D,aAAa,YAAY,eAAe,6BAA6B,qCAAqC,+DAA+D,YAAY,WAAW,mBAAmB,WAAW,6BAA6B,6DAA6D,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,6DAA6D,2DAA2D,aAAa,WAAW,mBAAmB,WAAW,6BAA6B,qBAAqB,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,qBAAqB,+DAA+D,YAAY,aAAa,mBAAmB,WAAW,6BAA6B,sGAAsG,+EAA+E,YAAY,aAAa,mBAAmB,WAAW,6BAA6B,oDAAoD,2DAA2D,YAAY,aAAa,mBAAmB,WAAW,6BAA6B,mEAAmE,2DAA2D,YAAY,aAAa,mBAAmB,WAAW,6BAA6B,uDAAuD,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,qDAAqD,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,iEAAiE,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,8CAA8C,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,mEAAmE,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,yDAAyD,+DAA+D,aAAa,aAAa,mBAAmB,WAAW,6BAA6B,mDAAmD,2DAA2D,aAAa,aAAa,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,aAAa,mBAAmB,WAAW,6BAA6B,6BAA6B,2DAA2D,aAAa,aAAa,mBAAmB,WAAW,6BAA6B,gDAAgD,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,gCAAgC,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,iDAAiD,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,yHAAyH,mFAAmF,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,sGAAsG,+EAA+E,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,oDAAoD,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,mEAAmE,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,uDAAuD,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,qDAAqD,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,iEAAiE,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,8CAA8C,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,mEAAmE,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,yDAAyD,+DAA+D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,mDAAmD,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,6BAA6B,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,gDAAgD,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,gCAAgC,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,iDAAiD,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,yHAAyH,6JAA6J,SAAS,YAAY,UAAU,gFAAgF,gBAAgB,mBAAmB,oBAAoB,mBAAmB,wDAAwD,WAAW,WAAW,mBAAmB,WAAW,6BAA6B,sGAAsG,+EAA+E,WAAW,cAAc,mBAAmB,WAAW,6BAA6B,oDAAoD,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,mEAAmE,2DAA2D,WAAW,cAAc,mBAAmB,WAAW,6BAA6B,uDAAuD,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,qDAAqD,2DAA2D,WAAW,cAAc,mBAAmB,WAAW,6BAA6B,iEAAiE,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,8CAA8C,2DAA2D,WAAW,cAAc,mBAAmB,WAAW,6BAA6B,mEAAmE,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,yDAAyD,+DAA+D,aAAa,WAAW,mBAAmB,WAAW,6BAA6B,mDAAmD,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,6BAA6B,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,gDAAgD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,gCAAgC,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,iDAAiD,2DAA2D,aAAa,cAAc,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,yHAAyH,gSAAgS,gBAAgB,mBAAmB,mBAAmB,wDAAwD,YAAY,YAAY,eAAe,6BAA6B,6BAA6B,MAAM,MAAM,MAAM,MAAM,QAAQ,6BAA6B,MAAM,MAAM,QAAQ,+BAA+B,+EAA+E,YAAY,YAAY,eAAe,6BAA6B,yBAAyB,MAAM,MAAM,QAAQ,yBAAyB,MAAM,MAAM,QAAQ,2BAA2B,mFAAmF,cAAc,UAAU,6BAA6B,6DAA6D,2DAA2D,cAAc,UAAU,6BAA6B,oEAAoE,2DAA2D,cAAc,YAAY,6BAA6B,oEAAoE,+DAA+D,aAAa,WAAW,6BAA6B,mDAAmD,2DAA2D,YAAY,WAAW,6BAA6B,sGAAsG,+EAA+E,aAAa,WAAW,KAAK,iCAAiC,2DAA2D,YAAY,WAAW,KAAK,mBAAmB,2DAA2D,YAAY,aAAa,YAAY,4LAA4L,YAAY,YAAY,gBAAgB,mBAAmB,6BAA6B,YAAY,8IAA8I,WAAW,QAAQ,SAAS,6DAA6D,gBAAgB,mBAAmB,mBAAmB,6DAA6D,aAAa,WAAW,eAAe,6BAA6B,qCAAqC,+DAA+D,aAAa,aAAa,eAAe,6BAA6B,qCAAqC,2DAA2D,aAAa,cAAc,eAAe,6BAA6B,qCAAqC,2DAA2D,aAAa,cAAc,eAAe,6BAA6B,qCAAqC,+DAA+D,YAAY,WAAW,mBAAmB,WAAW,6BAA6B,6DAA6D,2DAA2D,YAAY,YAAY,mBAAmB,WAAW,6BAA6B,6DAA6D,2DAA2D,aAAa,WAAW,mBAAmB,WAAW,6BAA6B,qBAAqB,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,qBAAqB,+DAA+D,WAAW,WAAW,mBAAmB,WAAW,6BAA6B,sGAAsG,+EAA+E,WAAW,WAAW,mBAAmB,WAAW,6BAA6B,oDAAoD,2DAA2D,WAAW,WAAW,mBAAmB,WAAW,6BAA6B,mEAAmE,2DAA2D,WAAW,WAAW,mBAAmB,WAAW,6BAA6B,uDAAuD,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,qDAAqD,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,iEAAiE,2DAA2D,WAAW,cAAc,mBAAmB,WAAW,6BAA6B,8CAA8C,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,mEAAmE,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,yDAAyD,+DAA+D,aAAa,WAAW,mBAAmB,WAAW,6BAA6B,mDAAmD,2DAA2D,aAAa,WAAW,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,WAAW,mBAAmB,WAAW,6BAA6B,6BAA6B,2DAA2D,aAAa,WAAW,mBAAmB,WAAW,6BAA6B,gDAAgD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,gCAAgC,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,iDAAiD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,yHAAyH,mFAAmF,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,sGAAsG,+EAA+E,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,oDAAoD,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,mEAAmE,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,uDAAuD,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,qDAAqD,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,iEAAiE,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,8CAA8C,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,mEAAmE,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,yDAAyD,+DAA+D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,mDAAmD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,6BAA6B,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,gDAAgD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,gCAAgC,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,iDAAiD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,aAAa,YAAY,mBAAmB,WAAW,6BAA6B,yHAAyH,6JAA6J,SAAS,YAAY,UAAU,gFAAgF,gBAAgB,mBAAmB,oBAAoB,mBAAmB,wDAAwD,WAAW,aAAa,mBAAmB,WAAW,6BAA6B,sGAAsG,+EAA+E,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,oDAAoD,2DAA2D,WAAW,cAAc,mBAAmB,WAAW,6BAA6B,mEAAmE,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,uDAAuD,2DAA2D,WAAW,cAAc,mBAAmB,WAAW,6BAA6B,qDAAqD,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,iEAAiE,2DAA2D,WAAW,cAAc,mBAAmB,WAAW,6BAA6B,8CAA8C,2DAA2D,WAAW,YAAY,mBAAmB,WAAW,6BAA6B,mEAAmE,2DAA2D,WAAW,cAAc,mBAAmB,WAAW,6BAA6B,yDAAyD,+DAA+D,YAAY,aAAa,mBAAmB,WAAW,6BAA6B,mDAAmD,2DAA2D,YAAY,YAAY,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,6BAA6B,2DAA2D,YAAY,YAAY,mBAAmB,WAAW,6BAA6B,gDAAgD,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,gCAAgC,2DAA2D,YAAY,YAAY,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,iDAAiD,2DAA2D,YAAY,YAAY,mBAAmB,WAAW,6BAA6B,yDAAyD,2DAA2D,YAAY,cAAc,mBAAmB,WAAW,6BAA6B,yHAAyH,iHAAiH;;;;;;;;;;;;ACAvl7B,+DAAe,4DAA4D,iEAAiE,iCAAiC,wQAAwQ,mDAAmD,mJAAmJ,iCAAiC,sCAAsC,kMAAkM,UAAU,0RAA0R,qDAAqD,2PAA2P,8CAA8C,sKAAsK,GAAG,qfAAqf,uCAAuC,6QAA6Q,gBAAgB,mKAAmK,gCAAgC,uCAAuC,6LAA6L,MAAM,gZAAgZ,oCAAoC,0QAA0Q,4CAA4C,iLAAiL,gCAAgC,2BAA2B,qXAAqX,4DAA4D,oKAAoK,iCAAiC,2CAA2C,sKAAsK,iBAAiB,sVAAsV,iCAAiC,2CAA2C,0eAA0e,sDAAsD,2TAA2T,iCAAiC,qCAAqC,0dAA0d,sDAAsD,oSAAoS,gCAAgC,qCAAqC,qYAAqY,0DAA0D,oSAAoS,gCAAgC,yCAAyC,0YAA0Y,+CAA+C,yLAAyL,gCAAgC,8BAA8B,+WAA+W,gDAAgD,6LAA6L,gCAAgC,+BAA+B,oXAAoX,sDAAsD,uLAAuL,gCAAgC,qCAAqC,qYAAqY,2DAA2D,2LAA2L,gCAAgC,0CAA0C,uUAAuU,8UAA8U,4CAA4C,GAAG,KAAK,sUAAsU,8BAA8B,qPAAqP,gDAAgD,6LAA6L,gCAAgC,2BAA2B,qcAAqc,yEAAyE,+MAA+M,gCAAgC,oDAAoD,4dAA4d,mDAAmD,gMAAgM,gCAAgC,8BAA8B,sbAAsb,oDAAoD,oMAAoM,gCAAgC,+BAA+B,mnCAAmnC,2BAA2B,8BAA8B,2CAA2C,uMAAuM,6BAA6B,mOAAmO,4BAA4B,6YAA6Y,4BAA4B,+PAA+P,sCAAsC,2RAA2R,+DAA+D,oKAAoK,iCAAiC,8CAA8C,6LAA6L,iBAAiB,4UAA4U,iCAAiC,8CAA8C,mfAAmf,mDAAmD,oLAAoL,gCAAgC,kCAAkC,8WAA8W,+CAA+C,oKAAoK,iCAAiC,8BAA8B,qNAAqN,UAAU,mRAAmR,iCAAiC,8BAA8B,ueAAue,gDAAgD,oKAAoK,iCAAiC,+BAA+B,+JAA+J,UAAU,qRAAqR,iCAAiC,+BAA+B,sbAAsb,uDAAuD,+JAA+J,iCAAiC,sCAAsC,6JAA6J,UAAU,6bAA6b,sDAAsD,+JAA+J,iCAAiC,qCAAqC,gMAAgM,GAAG,yeAAye,2DAA2D,+JAA+J,iCAAiC,0CAA0C,kLAAkL,GAAG,ofAAof,uDAAuD,yLAAyL,gCAAgC,sCAAsC,sYAAsY,0DAA0D,+JAA+J,iCAAiC,yCAAyC,wMAAwM,GAAG,mdAAmd,sDAAsD,yLAAyL,gCAAgC,qCAAqC,oXAAoX,gDAAgD,+JAA+J,iCAAiC,+BAA+B,uKAAuK,UAAU,+aAA+a,0DAA0D,6OAA6O,iFAAiF,SAAS,6cAA6c,oDAAoD,qLAAqL,gCAAgC,mCAAmC,kYAAkY,qDAAqD,sLAAsL,gCAAgC,oCAAoC,mYAAmY,kDAAkD,yHAAyH,kHAAkH,SAAS,wPAAwP,4DAA4D,2OAA2O,2BAA2B,0GAA0G,6EAA6E,GAAG,gSAAgS,qDAAqD,uLAAuL,gCAAgC,oCAAoC,4OAA4O,iDAAiD,mLAAmL,gCAAgC,gCAAgC,qPAAqP,gDAAgD,6RAA6R,gBAAgB,+KAA+K,gCAAgC,+BAA+B,8NAA8N,MAAM,iwBAAiwB,gCAAgC,6YAA6Y,4BAA4B,+PAA+P,kCAAkC,wJAAwJ,kLAAkL,iHAAiH,kBAAkB,6BAA6B,uEAAuE,4SAA4S,uCAAuC,8EAA8E,wGAAwG,8EAA8E,4CAA4C,sGAAsG,+KAA+K,kXAAkX,GAAG,GAAG,IAAI,8vEAA8vE,GAAG,GAAG,IAAI,cAAc,GAAG,GAAG,IAAI,gQAAgQ,qCAAqC,qCAAqC,yBAAyB,wJAAwJ,qDAAqD,oOAAoO,GAAG,GAAG,IAAI,iLAAiL,GAAG,GAAG,IAAI,gjCAAgjC,qCAAqC,6CAA6C,yBAAyB,mLAAmL,6DAA6D,skCAAskC,gCAAgC,8ZAA8Z,4BAA4B,sMAAsM;;;;;;;;;;;;ACAhy0C,+DAAe,iKAAiK,kCAAkC,8fAA8f,2BAA2B,wYAAwY,4CAA4C,mYAAmY,sCAAsC,+cAA+c,mCAAmC,8RAA8R,yCAAyC,+GAA+G,oDAAoD,kUAAkU,8BAA8B,0gBAA0gB,2BAA2B,6OAA6O,+BAA+B,yPAAyP,2CAA2C,wHAAwH,0BAA0B,qGAAqG,iBAAiB,uGAAuG,2CAA2C,0OAA0O,iCAAiC,2CAA2C,4NAA4N,oDAAoD,6PAA6P,8BAA8B,4BAA4B,0ZAA0Z,4BAA4B,4BAA4B,gaAAga,8CAA8C,2HAA2H,0BAA0B,qGAAqG,iBAAiB,uGAAuG,8CAA8C,gUAAgU,iCAAiC,8CAA8C,+NAA+N,sCAAsC,4GAA4G,0BAA0B,6FAA6F,UAAU,sNAAsN,8BAA8B,4GAA4G,0BAA0B,6FAA6F,UAAU,uGAAuG,8BAA8B,sRAAsR,iCAAiC,8BAA8B,4TAA4T,iCAAiC,+BAA+B,oMAAoM,0CAA0C,qHAAqH,0BAA0B,yGAAyG,GAAG,iOAAiO,kCAAkC,gPAAgP,oCAAoC,uPAAuP,uCAAuC,8GAA8G,0BAA0B,kOAAkO,uCAAuC,wNAAwN,iCAAiC,uCAAuC,8LAA8L,cAAc,0EAA0E,OAAO,UAAU,sDAAsD,QAAQ,QAAQ,+NAA+N,sCAAsC,gHAAgH,0BAA0B,6GAA6G,UAAU,iNAAiN,wCAAwC,8OAA8O,sCAAsC,4GAA4G,0BAA0B,0DAA0D,6CAA6C,2DAA2D,+CAA+C,iNAAiN,yCAAyC,6GAA6G,0BAA0B,2DAA2D,+CAA+C,0DAA0D,iDAAiD,2cAA2c,8BAA8B,sXAAsX,8BAA8B,6XAA6X,qCAAqC,sDAAsD,2DAA2D,wJAAwJ,6BAA6B,4EAA4E,sBAAsB,oGAAoG,WAAW,gLAAgL,2BAA2B,4EAA4E,WAAW,oKAAoK,kCAAkC,gEAAgE,cAAc,wKAAwK,+BAA+B,gEAAgE,kBAAkB,+JAA+J,uCAAuC,mhBAAmhB,mBAAmB,gMAAgM,sCAAsC,sDAAsD,sBAAsB,oIAAoI,mCAAmC,mMAAmM,iDAAiD,+KAA+K,iDAAiD,8KAA8K,iDAAiD,2QAA2Q,iEAAiE,mBAAmB,kDAAkD,+KAA+K,iEAAiE,mBAAmB,kDAAkD,4LAA4L,gEAAgE,mBAAmB,iDAAiD,+KAA+K,6BAA6B,iHAAiH,QAAQ,aAAa,4BAA4B,2MAA2M,QAAQ,iDAAiD,6BAA6B,0RAA0R,QAAQ,oCAAoC,8BAA8B,qTAAqT,8BAA8B,mgBAAmgB,8EAA8E,8BAA8B,8BAA8B,wDAAwD,mDAAmD,gEAAgE,6HAA6H,sNAAsN,0BAA0B,6HAA6H;;;;;;;;;;;;ACA/iqB,+DAAe,sMAAsM,+BAA+B,iCAAiC,2FAA2F,saAAsa,2CAA2C,wIAAwI,gDAAgD,gFAAgF,sDAAsD,QAAQ,KAAK,4CAA4C,4EAA4E,6CAA6C,qGAAqG,+EAA+E,wEAAwE,2CAA2C,qGAAqG,sEAAsE,8FAA8F,0DAA0D,qGAAqG,6FAA6F,sBAAsB,2CAA2C,2mBAA2mB,uCAAuC,0LAA0L,sCAAsC,oCAAoC,2CAA2C,yHAAyH,wCAAwC,oCAAoC,sBAAsB,8HAA8H,uCAAuC,oCAAoC,+BAA+B,8RAA8R,oCAAoC,0LAA0L,2BAA2B,oCAAoC,2DAA2D,yHAAyH,2CAA2C,oCAAoC,qGAAqG,yHAAyH,qCAAqC,oCAAoC,uFAAuF,yHAAyH,8BAA8B,oCAAoC,6EAA6E,yHAAyH,qCAAqC,oCAAoC,uEAAuE,yHAAyH,yCAAyC,oCAAoC,uEAAuE,yHAAyH,+BAA+B,oCAAoC,qFAAqF,yHAAyH,qCAAqC,oCAAoC,6EAA6E,yHAAyH,0CAA0C,oCAAoC,qFAAqF,2IAA2I,wMAAwM,sCAAsC,cAAc,0LAA0L,2BAA2B,oCAAoC,mCAAmC,yHAAyH,oDAAoD,oCAAoC,uEAAuE,yHAAyH,8BAA8B,oCAAoC,yCAAyC,yHAAyH,+BAA+B,oCAAoC,iDAAiD,sRAAsR,sCAAsC,0LAA0L,kCAAkC,oCAAoC,mDAAmD,yHAAyH,8CAA8C,oCAAoC,6CAA6C,yHAAyH,sCAAsC,oCAAoC,0DAA0D,yHAAyH,8BAA8B,oCAAoC,0DAA0D,yHAAyH,+BAA+B,oCAAoC,4DAA4D,yHAAyH,0CAA0C,oCAAoC,mEAAmE,yHAAyH,yCAAyC,oCAAoC,iEAAiE,yHAAyH,qCAAqC,oCAAoC,yDAAyD,yHAAyH,sCAAsC,oCAAoC,yDAAyD,yHAAyH,qCAAqC,oCAAoC,yDAAyD,yHAAyH,mCAAmC,oCAAoC,qDAAqD,yHAAyH,oCAAoC,oCAAoC,uDAAuD,yHAAyH,+BAA+B,oCAAoC,6FAA6F,yHAAyH,yCAAyC,oCAAoC,kDAAkD,yHAAyH,2CAA2C,oCAAoC,6BAA6B,yHAAyH,iCAAiC,oCAAoC,yEAAyE,yHAAyH,oCAAoC,oCAAoC,yDAAyD,yHAAyH,gCAAgC,oCAAoC,iDAAiD,yHAAyH,+BAA+B,oCAAoC,gDAAgD,0BAA0B,+EAA+E,mRAAmR,kCAAkC,wOAAwO,wBAAwB,kDAAkD,uBAAuB,6nDAA6nD,6BAA6B,aAAa,2BAA2B,QAAQ,iEAAiE,qpBAAqpB,wQAAwQ,wQAAwQ,ySAAyS,4CAA4C,yTAAyT,4CAA4C,2yDAA2yD,mDAAmD,sDAAsD,mDAAmD,01BAA01B,+GAA+G,6FAA6F,6BAA6B,8CAA8C,kDAAkD,mNAAmN,iEAAiE,6tBAA6tB,+GAA+G,6FAA6F,6BAA6B,8CAA8C,kDAAkD,mNAAmN,iEAAiE,2tBAA2tB,8GAA8G,yIAAyI,6BAA6B,8CAA8C,iDAAiD,0PAA0P,gEAAgE,8mBAA8mB,6BAA6B,kDAAkD,iCAAiC,uYAAuY;;;;;;;;;;;;ACA5swB,+DAAe,0KAA0K,0CAA0C,+ZAA+Z,2BAA2B,mFAAmF,4JAA4J,4BAA4B,+PAA+P,8BAA8B,ifAAif,wCAAwC,wXAAwX,mBAAmB,oWAAoW,mBAAmB,2TAA2T,uBAAuB,wKAAwK,6BAA6B,qTAAqT,4BAA4B,kTAAkT,8BAA8B,2VAA2V,8BAA8B,gTAAgT,4BAA4B,wBAAwB,+SAA+S,0BAA0B,sXAAsX;;;;;;;;;;;;ACApjK,+DAAe,0KAA0K,uCAAuC,+ZAA+Z,2BAA2B,mFAAmF,4JAA4J,4BAA4B,+PAA+P,8BAA8B,ghBAAghB,wCAAwC,gdAAgd,sBAAsB,yWAAyW,oEAAoE,mOAAmO,sCAAsC,gZAAgZ,mBAAmB,kWAAkW,mBAAmB,yTAAyT,uBAAuB,wKAAwK,6BAA6B,qTAAqT,4BAA4B,kTAAkT,8BAA8B,2VAA2V,8BAA8B,gTAAgT,4BAA4B,wBAAwB,+SAA+S,0BAA0B,sXAAsX;;;;;;;;;;;;ACAhwM,+DAAe,0KAA0K,gCAAgC,+ZAA+Z,2BAA2B,mFAAmF,4JAA4J,4BAA4B,+PAA+P,8BAA8B,oeAAoe,iCAAiC,4dAA4d,iCAAiC,iCAAiC,qVAAqV,yBAAyB,qNAAqN,8BAA8B,2YAA2Y,mBAAmB,mWAAmW,mBAAmB,iTAAiT,kBAAkB,wKAAwK,6BAA6B,qTAAqT,4BAA4B,kTAAkT,8BAA8B,2VAA2V,8BAA8B,gTAAgT,4BAA4B,wBAAwB,+SAA+S,0BAA0B,sXAAsX;;;;;;;;;;;;ACAxpM,+DAAe,0KAA0K,mCAAmC,geAAge,2BAA2B,uFAAuF,oKAAoK,4BAA4B,sPAAsP,8BAA8B,6gBAA6gB,sCAAsC,0yBAA0yB,kBAAkB,wOAAwO,sCAAsC,+sBAA+sB,iBAAiB,0OAA0O,iCAAiC,yaAAya,mBAAmB,oYAAoY,mBAAmB,2TAA2T,8BAA8B,8OAA8O,qCAAqC,6aAA6a,mBAAmB,4YAA4Y,mBAAmB,mUAAmU,kCAAkC,wKAAwK,6BAA6B,qTAAqT,4BAA4B,kTAAkT,8BAA8B,2VAA2V,8BAA8B,gTAAgT,4BAA4B,wBAAwB,+SAA+S,0BAA0B,sXAAsX;;;;;;;;;;;;ACA/uR,+DAAe,0KAA0K,oCAAoC,+ZAA+Z,2BAA2B,mFAAmF,4JAA4J,4BAA4B,+PAA+P,8BAA8B,ufAAuf,sCAAsC,0yBAA0yB,kBAAkB,mOAAmO,kCAAkC,2YAA2Y,mBAAmB,uWAAuW,mBAAmB,qTAAqT,kBAAkB,wKAAwK,6BAA6B,qTAAqT,4BAA4B,kTAAkT,8BAA8B,2VAA2V,8BAA8B,gTAAgT,4BAA4B,wBAAwB,+SAA+S,0BAA0B,sXAAsX;;;;;;;;;;;;ACA9nM,+DAAe,4KAA4K,uCAAuC,6aAA6a,2BAA2B,uFAAuF,oKAAoK,4BAA4B,yQAAyQ,8BAA8B,0fAA0f,iCAAiC,0eAA0e,iCAAiC,iCAAiC,mWAAmW,yBAAyB,+NAA+N,sCAAsC,yZAAyZ,mBAAmB,uXAAuX,mBAAmB,qUAAqU,kBAAkB,kLAAkL,6BAA6B,6TAA6T,4BAA4B,8TAA8T,8BAA8B,yWAAyW,8BAA8B,8TAA8T,4BAA4B,wBAAwB,iUAAiU,0BAA0B,0YAA0Y;;;;;;;;;;;;ACA/5M,+DAAe,4KAA4K,wCAAwC,6aAA6a,2BAA2B,uFAAuF,oKAAoK,4BAA4B,yQAAyQ,8BAA8B,yfAAyf,uCAAuC,6ZAA6Z,mBAAmB,sYAAsY,mBAAmB,sUAAsU,uBAAuB,kLAAkL,6BAA6B,6TAA6T,4BAA4B,8TAA8T,8BAA8B,yWAAyW,8BAA8B,8TAA8T,4BAA4B,wBAAwB,iUAAiU,0BAA0B,0YAA0Y;;;;;;;;;;;;ACAjxK,+DAAe,0KAA0K,qCAAqC,+ZAA+Z,2BAA2B,mFAAmF,4JAA4J,4BAA4B,+PAA+P,8BAA8B,ifAAif,oCAAoC,yXAAyX,mBAAmB,qEAAqE,yUAAyU,mBAAmB,qEAAqE,uTAAuT,uBAAuB,yOAAyO,uCAAuC,mXAAmX,mBAAmB,uFAAuF,sCAAsC,iCAAiC,uCAAuC,mIAAmI,kCAAkC,iEAAiE,iCAAiC,mMAAmM,iCAAiC,uCAAuC,qDAAqD,kCAAkC,qDAAqD,iCAAiC,8UAA8U,kFAAkF,qOAAqO,mCAAmC,2VAA2V,8QAA8Q,cAAc,yOAAyO,mCAAmC,2VAA2V,8QAA8Q,cAAc,qPAAqP,gCAAgC,qFAAqF,gJAAgJ,ucAAuc,mEAAmE,iPAAiP,mCAAmC,8cAA8c,qiBAAqiB,6BAA6B,qTAAqT,4BAA4B,kTAAkT,8BAA8B,2VAA2V,8BAA8B,gTAAgT,4BAA4B,wBAAwB,+SAA+S,0BAA0B,sXAAsX;;;;;;;;;;;;ACAt7V,+DAAe,0KAA0K,wCAAwC,+ZAA+Z,2BAA2B,mFAAmF,4JAA4J,4BAA4B,+PAA+P,8BAA8B,meAAme,uCAAuC,uaAAua,mBAAmB,0XAA0X,mBAAmB,0TAA0T,uBAAuB,wKAAwK,6BAA6B,qTAAqT,4BAA4B,kTAAkT,8BAA8B,2VAA2V,8BAA8B,gTAAgT,4BAA4B,wBAAwB,+SAA+S,0BAA0B,sXAAsX;;;;;;;;;;;;ACAvmK,+DAAe,0KAA0K,uCAAuC,+ZAA+Z,2BAA2B,mFAAmF,4JAA4J,4BAA4B,+PAA+P,8BAA8B,meAAme,sCAAsC,uaAAua,mBAAmB,yXAAyX,mBAAmB,yTAAyT,uBAAuB,wKAAwK,6BAA6B,qTAAqT,4BAA4B,kTAAkT,8BAA8B,2VAA2V,8BAA8B,gTAAgT,4BAA4B,wBAAwB,+SAA+S,0BAA0B,sXAAsX;;;;;;;;;;;;ACAnmK,+DAAe,0KAA0K,wCAAwC,+ZAA+Z,2BAA2B,mFAAmF,4JAA4J,4BAA4B,+PAA+P,8BAA8B,ieAAie,mDAAmD,8cAA8c,iCAAiC,sCAAsC,kVAAkV,sBAAsB,qNAAqN,oDAAoD,oXAAoX,mBAAmB,qVAAqV,mBAAmB,0TAA0T,kBAAkB,6MAA6M,mDAAmD,iVAAiV,iCAAiC,sCAAsC,+KAA+K,iBAAiB,gTAAgT,6BAA6B,qTAAqT,4BAA4B,kTAAkT,8BAA8B,2VAA2V,8BAA8B,gTAAgT,4BAA4B,wBAAwB,+SAA+S,0BAA0B,0XAA0X;;;;;;;;;;;;ACA9nO,+DAAe,0KAA0K,uCAAuC,+ZAA+Z,2BAA2B,mFAAmF,4JAA4J,4BAA4B,+PAA+P,8BAA8B,meAAme,sCAAsC,uaAAua,mBAAmB,yXAAyX,mBAAmB,yTAAyT,kBAAkB,wKAAwK,6BAA6B,qTAAqT,4BAA4B,kTAAkT,8BAA8B,2VAA2V,8BAA8B,gTAAgT,4BAA4B,wBAAwB,+SAA+S,0BAA0B,sXAAsX;;;;;;;;;;;;ACA9lK,+DAAe,oLAAoL,wCAAwC,8PAA8P,uBAAuB,2LAA2L,2BAA2B,iYAAiY,iCAAiC,wCAAwC,mEAAmE,iBAAiB,uOAAuO,uCAAuC,wSAAwS,kCAAkC,gCAAgC,iCAAiC,uCAAuC,mJAAmJ,cAAc,uCAAuC,aAAa,uEAAuE,OAAO,UAAU,qCAAqC,QAAQ,QAAQ,yRAAyR,8BAA8B,6cAA6c,2BAA2B,ydAAyd,sFAAsF,WAAW,yDAAyD,6EAA6E,sCAAsC,4LAA4L,kCAAkC,uDAAuD,eAAe,2IAA2I,4BAA4B,uDAAuD,YAAY,iJAAiJ,+BAA+B,uDAAuD,kBAAkB,6IAA6I,oCAAoC,uDAAuD,mCAAmC,iIAAiI,qCAAqC,qYAAqY,OAAO,yLAAyL,sYAAsY,gCAAgC,4oBAA4oB,8BAA8B,ilBAAilB,0gBAA0gB,0BAA0B,qIAAqI;;;;;;;;;;;;ACAl2P,+DAAe,qDAAqD,2DAA2D,QAAQ,qCAAqC,2cAA2c,2BAA2B,oBAAoB,mBAAmB,8KAA8K,gCAAgC,8BAA8B,mBAAmB,6XAA6X,2BAA2B,oBAAoB,mBAAmB,8KAA8K,gCAAgC,8BAA8B,mBAAmB,sZAAsZ,+BAA+B,6eAA6e,4BAA4B,+JAA+J,gCAAgC,4BAA4B,6VAA6V,kCAAkC,kKAAkK,gCAAgC,kCAAkC,6VAA6V,qCAAqC,4IAA4I,iCAAiC,qCAAqC,6IAA6I,uFAAuF,oBAAoB,0XAA0X,kCAAkC,4KAA4K,mEAAmE,qIAAqI,KAAK,sEAAsE,wZAAwZ,0CAA0C,mLAAmL,gCAAgC,kCAAkC,2cAA2c,sDAAsD,4IAA4I,iCAAiC,sDAAsD,2KAA2K,gBAAgB,mTAAmT,qCAAqC,4IAA4I,iCAAiC,qCAAqC,wKAAwK,oBAAoB,klBAAklB,4BAA4B,0GAA0G,uBAAuB,mPAAmP,4BAA4B,4HAA4H;;;;;;;;;;;;ACA/8Q,+DAAe,kMAAkM,yCAAyC,wVAAwV,qDAAqD,gCAAgC,iEAAiE,wZAAwZ,0CAA0C,wVAAwV,oBAAoB,shBAAshB,oBAAoB,8mBAA8mB,wCAAwC,mBAAmB,8LAA8L,gCAAgC,wCAAwC,mBAAmB,2ZAA2Z,wCAAwC,mBAAmB,8LAA8L,gCAAgC,wCAAwC,mBAAmB,yhBAAyhB,2CAA2C,oBAAoB,mBAAmB,8KAA8K,gCAAgC,8CAA8C,mBAAmB,8ZAA8Z,8CAA8C,mBAAmB,8LAA8L,gCAAgC,8CAA8C,mBAAmB,osBAAosB,kcAAkc,qBAAqB,yEAAyE,4DAA4D,iCAAiC,uDAAuD,4CAA4C,snCAAsnC,gCAAgC,6rBAA6rB,sOAAsO,8BAA8B,mOAAmO,uOAAuO,8BAA8B,sZAAsZ,4BAA4B,oHAAoH,gOAAgO,4BAA4B,4HAA4H;;;;;;;;;;;;ACA1uU,+DAAe,qDAAqD,sCAAsC,yfAAyf,uiBAAuiB,cAAc,yEAAyE,uiBAAuiB,gBAAgB,2LAA2L,gCAAgC,0kBAA0kB,4BAA4B,0TAA0T,4BAA4B,gIAAgI;;;;;;;;;;;;ACA/iG,+DAAe,iPAAiP,4CAA4C,yZAAyZ;;;;;;;;;;;;ACArsB,+DAAe,2FAA2F,8CAA8C,WAAW,aAAa,mBAAmB,wCAAwC,0CAA0C,+DAA+D,mBAAmB,iBAAiB,YAAY,YAAY,gQAAgQ,6BAA6B,oGAAoG,iBAAiB,mBAAmB,2SAA2S,+BAA+B,2FAA2F,2PAA2P,kDAAkD,+DAA+D,uTAAuT,2PAA2P,uBAAuB,+DAA+D,2PAA2P,qBAAqB,4FAA4F,yPAAyP,kDAAkD,+DAA+D,qTAAqT,yPAAyP,uBAAuB,+DAA+D,yPAAyP,qBAAqB,oCAAoC;;;;;;;;;;;;ACA11H,+DAAe,uBAAuB,+BAA+B,uIAAuI,qCAAqC,4EAA4E,aAAa,gDAAgD,iBAAiB,0LAA0L,4BAA4B,gCAAgC,uGAAuG,iBAAiB,6HAA6H,2HAA2H,4EAA4E,aAAa,gDAAgD,iBAAiB,4LAA4L,4BAA4B,gCAAgC,mGAAmG,iBAAiB,sHAAsH,mCAAmC,4EAA4E,aAAa,gDAAgD,iBAAiB,sLAAsL,4BAA4B,gCAAgC,qGAAqG,iBAAiB,sOAAsO,aAAa,0GAA0G,oCAAoC,kBAAkB,YAAY,KAAK,uBAAuB,kFAAkF,8BAA8B,kCAAkC,6BAA6B,YAAY,KAAK,aAAa,gBAAgB,4BAA4B,kCAAkC,kBAAkB,YAAY,KAAK,YAAY,qCAAqC,mCAAmC,kBAAkB,YAAY,MAAM,OAAO,IAAI,WAAW,cAAc,sCAAsC,kBAAkB,YAAY,KAAK,WAAW,cAAc,oCAAoC,kBAAkB,YAAY,KAAK,UAAU,gEAAgE,YAAY,+HAA+H,sCAAsC,yEAAyE,aAAa,kDAAkD,iBAAiB,4FAA4F,yGAAyG,yEAAyE,aAAa,kDAAkD,iBAAiB,wFAAwF,oCAAoC,yEAAyE,aAAa,kDAAkD,iBAAiB,oHAAoH,aAAa,8GAA8G,oCAAoC,kBAAkB,YAAY,KAAK,uBAAuB,4FAA4F,8BAA8B,kCAAkC,kBAAkB,YAAY,KAAK,aAAa,kBAAkB,4BAA4B,kCAAkC,kBAAkB,YAAY,KAAK,YAAY,0CAA0C,mCAAmC,kBAAkB,YAAY,MAAM,OAAO,IAAI,WAAW,gBAAgB,sCAAsC,kBAAkB,YAAY,KAAK,WAAW,gBAAgB,oCAAoC,kBAAkB,YAAY,KAAK,UAAU,wOAAwO,iCAAiC,iCAAiC,2DAA2D;;;;;;;;;;;;ACAhiL,+DAAe,4BAA4B,qBAAqB,gHAAgH,oCAAoC,kBAAkB,oBAAoB,KAAK,+BAA+B,oGAAoG,8BAA8B,kCAAkC,qCAAqC,oBAAoB,KAAK,qBAAqB,sBAAsB,4BAA4B,kCAAkC,kBAAkB,oBAAoB,KAAK,mBAAmB,6DAA6D,mCAAmC,kBAAkB,oBAAoB,MAAM,eAAe,IAAI,mBAAmB,kBAAkB,sCAAsC,kBAAkB,oBAAoB,KAAK,mBAAmB,kBAAkB,oCAAoC,kBAAkB,oBAAoB,KAAK,kBAAkB,6BAA6B;;;;;;;;;;;;ACA/lC,+DAAe,uFAAuF,6CAA6C,oBAAoB,UAAU,WAAW,oBAAoB,YAAY,KAAK,0CAA0C,sDAAsD,oBAAoB,aAAa,aAAa,oBAAoB,WAAW,KAAK,6BAA6B,8CAA8C,oBAAoB,WAAW,YAAY,kDAAkD,oBAAoB,WAAW,gBAAgB,oBAAoB,UAAU,MAAM,kDAAkD,4DAA4D,WAAW,YAAY,oBAAoB,WAAW,qDAAqD,YAAY,YAAY,oBAAoB,WAAW,KAAK,0CAA0C,+CAA+C,YAAY,YAAY,oBAAoB,WAAW,KAAK,8BAA8B,+CAA+C,aAAa,YAAY,oBAAoB,WAAW,MAAM,uBAAuB,gDAAgD,aAAa,YAAY,oBAAoB,WAAW,MAAM,qBAAqB,gDAAgD,aAAa,YAAY,oBAAoB,WAAW,MAAM,kDAAkD,oDAAoD,WAAW,YAAY,oBAAoB,WAAW,wDAAwD,YAAY,YAAY,oBAAoB,WAAW,wDAAwD,YAAY,YAAY,oBAAoB,WAAW,wDAAwD,aAAa,YAAY,oBAAoB,WAAW,wDAAwD,aAAa,YAAY,oBAAoB,WAAW,wDAAwD,aAAa,YAAY,oBAAoB,WAAW,4DAA4D,WAAW,YAAY,oBAAoB,WAAW,wDAAwD,YAAY,YAAY,oBAAoB,WAAW,wDAAwD,YAAY,YAAY,oBAAoB,WAAW,wDAAwD,aAAa,YAAY,oBAAoB,WAAW,wDAAwD,aAAa,YAAY,oBAAoB,WAAW,wDAAwD,aAAa,YAAY,oBAAoB,WAAW,0BAA0B;;;;;;;;;;;;ACA/0F,+DAAe,2DAA2D,yEAAyE,2GAA2G,gBAAgB,oBAAoB,0CAA0C,wUAAwU,iDAAiD,mJAAmJ,iCAAiC,oCAAoC,oMAAoM,WAAW,6dAA6d,2DAA2D,mJAAmJ,iCAAiC,8CAA8C,kIAAkI,iCAAiC,2DAA2D,iCAAiC,4cAA4c,+DAA+D,4MAA4M,gCAAgC,oCAAoC,6WAA6W,qDAAqD,0MAA0M,gCAAgC,wCAAwC,0WAA0W,wDAAwD,mJAAmJ,iCAAiC,2CAA2C,2LAA2L,gBAAgB,keAAke,6BAA6B,6KAA6K,gCAAgC,6BAA6B,4wBAA4wB,kCAAkC,yLAAyL,2DAA2D,4UAA4U,8BAA8B,kFAAkF;;;;;;;;;;;;ACAvkN,+DAAe,kLAAkL,gGAAgG,uYAAuY,mCAAmC,0PAA0P,yCAAyC,6EAA6E,qCAAqC,yhBAAyhB,kCAAkC,gCAAgC,iCAAiC,uCAAuC,mJAAmJ,cAAc,qCAAqC,aAAa,kDAAkD,OAAO,UAAU,sDAAsD,QAAQ,QAAQ,+WAA+W,sCAAsC,yJAAyJ,0BAA0B,yDAAyD,gCAAgC,0DAA0D,kCAAkC,8YAA8Y,kCAAkC,gCAAgC,iCAAiC,uCAAuC,mJAAmJ,cAAc,qCAAqC,aAAa,kDAAkD,OAAO,UAAU,sDAAsD,QAAQ,QAAQ,4lBAA4lB,8BAA8B,6BAA6B,6DAA6D,qBAAqB,2DAA2D,4BAA4B,oIAAoI,4BAA4B,6BAA6B,6DAA6D,mDAAmD,0OAA0O,gCAAgC,wJAAwJ,mFAAmF,4CAA4C,8DAA8D,yDAAyD,6DAA6D,sLAAsL,kCAAkC,wJAAwJ,sFAAsF,4CAA4C,8DAA8D,yDAAyD,8DAA8D,wJAAwJ,iFAAiF,6DAA6D,oEAAoE,yEAAyE,oDAAoD,oGAAoG,kEAAkE,0BAA0B,0LAA0L,iJAAiJ,8CAA8C,gFAAgF;;;;;;;;;;;;ACAzyO,+DAAe,0KAA0K,uCAAuC,uYAAuY,mCAAmC,0PAA0P,yCAAyC,6EAA6E,qCAAqC,8fAA8f,kCAAkC,gCAAgC,iCAAiC,uCAAuC,mJAAmJ,cAAc,qCAAqC,aAAa,qEAAqE,OAAO,UAAU,qCAAqC,QAAQ,QAAQ,6RAA6R,8BAA8B,umBAAumB,mCAAmC,4OAA4O,yCAAyC,2HAA2H,qCAAqC,ocAAoc,kCAAkC,gCAAgC,iCAAiC,uCAAuC,mJAAmJ,cAAc,qCAAqC,aAAa,qEAAqE,OAAO,UAAU,qCAAqC,QAAQ,QAAQ,iSAAiS,8BAA8B,yaAAya,kBAAkB,wSAAwS,uCAAuC,8gBAA8gB,mBAAmB,+KAA+K,kCAAkC,kZAAkZ,wBAAwB,+KAA+K,oCAAoC,kZAAkZ,0BAA0B,2KAA2K,gCAAgC,kZAAkZ,sBAAsB,4KAA4K,kCAAkC,kZAAkZ,wBAAwB,oLAAoL,2CAA2C,kZAAkZ,gCAAgC,oLAAoL,mCAAmC,kZAAkZ,+BAA+B,wmBAAwmB,0BAA0B,6HAA6H;;;;;;;;;;;;ACAl5U,+DAAe,qDAAqD,kCAAkC,+RAA+R,2BAA2B,gBAAgB,iCAAiC,wJAAwJ,iCAAiC,iCAAiC,qHAAqH,iBAAiB,gJAAgJ,UAAU,mTAAmT,yBAAyB,gBAAgB,iCAAiC,wJAAwJ,iCAAiC,iCAAiC,wIAAwI,iBAAiB,yHAAyH,gBAAgB,sRAAsR,iCAAiC,iCAAiC,sCAAsC,iBAAiB,kbAAkb,oCAAoC,mJAAmJ,iCAAiC,oCAAoC,yGAAyG,iBAAiB,yGAAyG,iCAAiC,oCAAoC,+FAA+F,WAAW,8SAA8S,+BAA+B,wJAAwJ,iCAAiC,+BAA+B,gGAAgG,iCAAiC,oCAAoC,yNAAyN,gCAAgC,+BAA+B,0NAA0N,8CAA8C,mLAAmL,iBAAiB,mNAAmN,8CAA8C,2KAA2K,iCAAiC,+BAA+B,yJAAyJ,gCAAgC,2HAA2H,WAAW,IAAI,UAAU,6LAA6L,iCAAiC,8HAA8H,WAAW,kPAAkP,4CAA4C,IAAI,yCAAyC,oBAAoB,kBAAkB,yzBAAyzB,gCAAgC,sSAAsS,8BAA8B,kFAAkF;;;;;;;;;;;;ACAj8O,+DAAe,0KAA0K,sCAAsC,2gBAA2gB,sCAAsC,+cAA+c,mCAAmC,8RAA8R,yCAAyC,8HAA8H,qCAAqC,kUAAkU,8BAA8B,iqBAAiqB,sCAAsC,ogBAAogB,mCAAmC,4OAA4O,yCAAyC,2EAA2E,qCAAqC,+FAA+F,6NAA6N,iCAAiC,oCAAoC,iIAAiI,WAAW,uWAAuW,8BAA8B,8gBAA8gB,qCAAqC,iQAAiQ,mCAAmC,+PAA+P,oCAAoC,gHAAgH,0BAA0B,6GAA6G,UAAU,qNAAqN,0CAA0C,mHAAmH,0BAA0B,mHAAmH,UAAU,6NAA6N,8BAA8B,4BAA4B,0ZAA0Z,4BAA4B,4BAA4B,ohBAAohB,iCAAiC,uCAAuC,8LAA8L,cAAc,qCAAqC,aAAa,qEAAqE,OAAO,UAAU,qCAAqC,QAAQ,QAAQ,ieAAie,8BAA8B,sXAAsX,8BAA8B,2XAA2X,4BAA4B,sDAAsD,0CAA0C,uJAAuJ,2BAA2B,cAAc,iCAAiC,6lBAA6lB,2MAA2M,sMAAsM,yBAAyB,cAAc,iCAAiC,ulBAAulB,6MAA6M,gMAAgM,2BAA2B,cAAc,6BAA6B,sDAAsD,eAAe,6IAA6I,yBAAyB,cAAc,6BAA6B,sDAAsD,aAAa,uIAAuI,kCAAkC,gEAAgE,iCAAiC,qJAAqJ,0CAA0C,sDAAsD,wDAAwD,+IAA+I,oCAAoC,sDAAsD,sBAAsB,4HAA4H,6BAA6B,yfAAyf,0BAA0B,wSAAwS;;;;;;;;;;;;ACAj9b,+DAAe,0KAA0K,uCAAuC,2ZAA2Z,mCAAmC,4OAA4O,yCAAyC,2EAA2E,qCAAqC,oPAAoP,oCAAoC,2GAA2G,0BAA0B,6FAA6F,WAAW,yQAAyQ,8BAA8B,ybAAyb,2BAA2B,sDAAsD,0CAA0C,uJAAuJ,8BAA8B,4CAA4C,uDAAuD,wBAAwB,qJAAqJ,4BAA4B,4CAA4C,kEAAkE,sFAAsF,wIAAwI,kCAAkC,uDAAuD,oCAAoC,4HAA4H,6BAA6B,uDAAuD,gCAAgC,+IAA+I,oCAAoC,sDAAsD,sBAAsB,2HAA2H,+BAA+B,sDAAsD,gBAAgB,IAAI,cAAc,GAAG,iCAAiC,wJAAwJ,6CAA6C,gFAAgF,kDAAkD,mBAAmB,4DAA4D,wJAAwJ,6BAA6B,4WAA4W,+BAA+B,+RAA+R,8BAA8B,uXAAuX,0BAA0B,6HAA6H;;;;;;;;;;;;ACAn1L,+DAAe,2DAA2D,+FAA+F,0TAA0T,oCAAoC,mJAAmJ,iCAAiC,oCAAoC,yRAAyR,iCAAiC,oCAAoC,gGAAgG,WAAW,8SAA8S,+BAA+B,sMAAsM,iCAAiC,oCAAoC,yNAAyN,iCAAiC,+BAA+B,0NAA0N,8CAA8C,+XAA+X,iCAAiC,+BAA+B,kZAAkZ,gCAAgC,2HAA2H,WAAW,IAAI,UAAU,6LAA6L,iCAAiC,8HAA8H,WAAW,kPAAkP,+CAA+C,yCAAyC,oBAAoB,kBAAkB,oVAAoV,6CAA6C,mJAAmJ,iCAAiC,6CAA6C,+SAA+S,gBAAgB,scAAsc,6BAA6B,qLAAqL,gCAAgC,6BAA6B,gIAAgI,gCAAgC,6BAA6B,u6BAAu6B,2GAA2G,sSAAsS,8BAA8B,kFAAkF;;;;;;;;;;;;ACAxtO,+DAAe,uMAAuM,8DAA8D,cAAc,2CAA2C,2WAA2W,yCAAyC,yMAAyM,gCAAgC,yCAAyC,wbAAwb,2CAA2C,mMAAmM,gCAAgC,2CAA2C,6yBAA6yB,wCAAwC,uMAAuM,gCAAgC,wCAAwC,mbAAmb,sCAAsC,iLAAiL,iCAAiC,sCAAsC,sNAAsN,UAAU,gjBAAgjB,iCAAiC,sLAAsL,iCAAiC,iCAAiC,4QAA4Q,iBAAiB,gVAAgV,iCAAiC,iCAAiC,okBAAokB,sCAAsC,sLAAsL,iCAAiC,sCAAsC,kNAAkN,UAAU,iVAAiV,iCAAiC,sCAAsC,uhBAAuhB,uCAAuC,iLAAiL,iCAAiC,uCAAuC,oNAAoN,UAAU,2gBAA2gB,mCAAmC,yTAAyT,gBAAgB,yMAAyM,gCAAgC,mCAAmC,yPAAyP,MAAM,gdAAgd,kCAAkC,yMAAyM,gCAAgC,kCAAkC,waAAwa,+BAA+B,0MAA0M,gCAAgC,+BAA+B,saAAsa,8BAA8B,4MAA4M,gCAAgC,8BAA8B,01BAA01B,4BAA4B,icAAic,4BAA4B,sKAAsK;;;;;;;;;;;;ACAvvZ,+DAAe,0KAA0K,mCAAmC,WAAW,2CAA2C,IAAI,wBAAwB,qQAAqQ,oCAAoC,uDAAuD,yCAAyC,oLAAoL,kCAAkC,uDAAuD,gBAAgB,+KAA+K,sCAAsC,uDAAuD,WAAW,gLAAgL,6BAA6B,qGAAqG,+BAA+B,mCAAmC,UAAU,4SAA4S,0BAA0B,wEAAwE,gHAAgH,mCAAmC,mCAAmC;;;;;;;;;;;;ACA7qE,+DAAe,mKAAmK,kCAAkC,+jBAA+jB,sCAAsC,kkBAAkkB,8BAA8B,omBAAomB,yCAAyC,kSAAkS,+CAA+C,6dAA6d,2CAA2C,qeAAqe,kCAAkC,uSAAuS,uCAAuC,oIAAoI,0BAA0B,oSAAoS,uCAAuC,wNAAwN,iCAAiC,uCAAuC,8NAA8N,cAAc,2HAA2H,OAAO,UAAU,qCAAqC,QAAQ,QAAQ,2RAA2R,wCAAwC,8RAA8R,sCAAsC,sIAAsI,0BAA0B,kJAAkJ,UAAU,6RAA6R,kCAAkC,sSAAsS,sCAAsC,wIAAwI,0BAA0B,oJAAoJ,oCAAoC,6RAA6R,uCAAuC,yIAAyI,0BAA0B,qHAAqH,UAAU,iQAAiQ,2CAA2C,yIAAyI,0BAA0B,gHAAgH,UAAU,ujBAAujB,8BAA8B,8bAA8b,8BAA8B,wbAAwb,2BAA2B,4EAA4E,0CAA0C,8JAA8J,mCAAmC,4DAA4D,eAAe,kLAAkL,kCAAkC,4EAA4E,gBAAgB,8KAA8K,wCAAwC,4EAA4E,YAAY,iLAAiL,sCAAsC,4EAA4E,sBAAsB,8KAA8K,oCAAoC,4EAA4E,iCAAiC,+JAA+J,sCAAsC,gFAAgF,0FAA0F,gKAAgK,2CAA2C,4DAA4D,0EAA0E,wJAAwJ,8BAA8B,4DAA4D,UAAU,wJAAwJ,0BAA0B,sIAAsI;;;;;;;;;;;;ACAjzY,+DAAe,mKAAmK,4CAA4C,yqBAAyqB,2BAA2B,6cAA6c,sCAAsC,ijBAAijB,mCAAmC,oXAAoX,yCAAyC,8JAA8J,qCAAqC,oUAAoU,iCAAiC,uCAAuC,sQAAsQ,0BAA0B,0GAA0G,UAAU,sXAAsX,iCAAiC,0CAA0C,kOAAkO,0BAA0B,qGAAqG,UAAU,maAAma,8BAA8B,omBAAomB,yCAAyC,kSAAkS,8BAA8B,4BAA4B,seAAse,4BAA4B,4BAA4B,ueAAue,kCAAkC,kVAAkV,uCAAuC,oIAAoI,0BAA0B,oSAAoS,uCAAuC,wNAAwN,iCAAiC,uCAAuC,8NAA8N,cAAc,2HAA2H,OAAO,UAAU,qCAAqC,QAAQ,QAAQ,2RAA2R,wCAAwC,8RAA8R,sCAAsC,oJAAoJ,0BAA0B,sJAAsJ,UAAU,6RAA6R,kCAAkC,sSAAsS,2CAA2C,sMAAsM,0BAA0B,2JAA2J,UAAU,6RAA6R,sCAAsC,sJAAsJ,0BAA0B,wJAAwJ,qIAAqI,6RAA6R,0CAA0C,0LAA0L,0BAA0B,oHAAoH,UAAU,6RAA6R,+CAA+C,mIAAmI,0BAA0B,oHAAoH,UAAU,6RAA6R,uCAAuC,yIAAyI,0BAA0B,qHAAqH,UAAU,2hBAA2hB,8BAA8B,8bAA8b,8BAA8B,waAAwa,0CAA0C,4DAA4D,gBAAgB,oLAAoL,+CAA+C,4EAA4E,iCAAiC,wLAAwL,2CAA2C,4EAA4E,sCAAsC,kLAAkL,kCAAkC,4EAA4E,gBAAgB,qLAAqL,uCAAuC,4EAA4E,gDAAgD,8KAA8K,wCAAwC,4EAA4E,YAAY,iLAAiL,sCAAsC,4EAA4E,sBAAsB,kKAAkK,kCAAkC,4DAA4D,kDAAkD,2JAA2J,2CAA2C,gFAAgF,2BAA2B,+KAA+K,sCAAsC,gFAAgF,mDAAmD,gLAAgL,uCAAuC,gFAAgF,oDAAoD,gKAAgK,2CAA2C,gFAAgF,oDAAoD,yJAAyJ,6BAA6B,+HAA+H,QAAQ,aAAa,4BAA4B,wQAAwQ,QAAQ,oCAAoC,kCAAkC,iPAAiP,2DAA2D,qCAAqC,kDAAkD,ySAAyS,QAAQ,aAAa,qCAAqC,kOAAkO,QAAQ,aAAa,4BAA4B,sRAAsR,QAAQ,oCAAoC,6BAA6B,+WAA+W,QAAQ,aAAa,8BAA8B,mXAAmX,8BAA8B,siBAAsiB,8EAA8E,8BAA8B,wCAAwC,wDAAwD,+DAA+D,gEAAgE,gOAAgO,0BAA0B,iIAAiI;;;;;;;;;;;;ACAp1rB,+DAAe,qDAAqD,qCAAqC,QAAQ,2CAA2C,uaAAua,wCAAwC,IAAI,YAAY,yMAAyM,kCAAkC,IAAI,gBAAgB,gMAAgM,yCAAyC,IAAI,gBAAgB,+MAA+M,sCAAsC,mBAAmB,0FAA0F,mOAAmO,0CAA0C,+JAA+J,0CAA0C,wNAAwN,eAAe,6cAA6c,+CAA+C,+JAA+J,+CAA+C,0NAA0N,eAAe,8hBAA8hB,iCAAiC,yPAAyP,gCAAgC,iCAAiC,gaAAga,oCAAoC,qRAAqR,gBAAgB,yKAAyK,gCAAgC,oCAAoC,ilBAAilB,0CAA0C,kKAAkK,2CAA2C,odAAod,0CAA0C,kKAAkK,2CAA2C,wdAAwd,8BAA8B,oeAAoe,4IAA4I,kCAAkC,gLAAgL,sCAAsC,qsBAAqsB,4HAA4H,+IAA+I,8BAA8B,ksCAAksC,8BAA8B,iCAAiC,8eAA8e,4BAA4B,8VAA8V,4BAA4B,4HAA4H;;;;;;;;;;;;ACAx/V,+DAAe,4NAA4N,4BAA4B,kBAAkB,2CAA2C,sTAAsT,QAAQ,gJAAgJ,qCAAqC,kQAAkQ,wCAAwC,IAAI,YAAY,sLAAsL,sCAAsC,IAAI,8CAA8C,iLAAiL,yCAAyC,IAAI,gBAAgB,2LAA2L,+CAA+C,IAAI,iCAAiC,8LAA8L,2CAA2C,IAAI,sCAAsC,gMAAgM,sCAAsC,mBAAmB,0FAA0F,gOAAgO,kCAAkC,IAAI,gBAAgB,iLAAiL,8BAA8B,IAAI,gDAAgD,gMAAgM,gCAAgC,IAAI,2CAA2C,kcAAkc,uCAAuC,0JAA0J,wHAAwH,cAAc,mBAAmB,kOAAkO,kCAAkC,IAAI,eAAe,2DAA2D,UAAU,kLAAkL,cAAc,uWAAuW,UAAU,6LAA6L;;;;;;;;;;;;ACAhnK,+DAAe,wEAAwE,oGAAoG,MAAM,0CAA0C;;;;;;;;;;;;ACA3O,+DAAe,4EAA4E;;;;;;;;;;;;ACA3F,+DAAe,4IAA4I,uBAAuB,qUAAqU,YAAY,iBAAiB,oDAAoD,+BAA+B,iBAAiB,sBAAsB,aAAa,0EAA0E,eAAe,sCAAsC,eAAe,6BAA6B,eAAe,sCAAsC,gBAAgB,0CAA0C;;;;;;;;;;;;ACAr7B,+DAAe,EAAE;;;;;;;;;;;;ACAjB,+DAAe,qJAAqJ,+BAA+B,0BAA0B,kKAAkK,6HAA6H,qCAAqC,MAAM,wDAAwD,2BAA2B,iBAAiB,8DAA8D,+FAA+F,0BAA0B,kDAAkD,gCAAgC,kGAAkG,+BAA+B,2SAA2S,sCAAsC,2JAA2J,iCAAiC,sCAAsC,6DAA6D,uDAAuD,4DAA4D,uDAAuD,yJAAyJ,iCAAiC,sCAAsC,0IAA0I,gDAAgD,sEAAsE,kDAAkD,6WAA6W,+BAA+B,4TAA4T,gCAAgC,gJAAgJ,uDAAuD,yMAAyM,sCAAsC,oQAAoQ,sBAAsB,4BAA4B,ypBAAypB,6DAA6D,iLAAiL,qEAAqE,+lCAA+lC,+CAA+C,yFAAyF,qBAAqB,KAAK,+CAA+C,mCAAmC;;;;;;;;;;;;ACApjM,+DAAe,wWAAwW;;;;;;;;;;;;ACAvX,+DAAe,qSAAqS,wCAAwC,wEAAwE;;;;;;;;;;;;ACApa,+DAAe,oGAAoG,8BAA8B,uBAAuB,GAAG,wDAAwD,2BAA2B,oBAAoB,oBAAoB,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACArR;AACc;AAED;AACyB;AAE8B;AACE;AACT;AAEe;AAC7B;AACkB;AACS;AACvB;AACuB;AACT;AACjC;AACH;AAC2B;AACF;AACS;AACZ;AACD;AACe;AACE;AACI;AACN;AACpB;AACiB;AAC3B;AAC0C;AACiB;AACN;AACxB;AACW;AACM;AACd;AACG;AACX;AACyB;AACX;AACqC;AACnD;AAC2D;AACpB;AACN;AACM;AACzE;AACwF;AACjD;AACG;AACG;AAEL;AACoC;AAC9B;AAC0B;AAEoB;AACf;AAC/I,2EAA2E;AAE3E,MAAM,MAAM,GAAW;IACrB,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,2HAAqB,EAAE;IACxF,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,cAAc,EAAE;IAC3D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,mFAAc,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,sFAAmB,4BAA2B,EAAE,EAAE,qBAAqB,EAAE,QAAQ,EAAE;IAC5K,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,mHAAwB,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,sFAAmB,4BAA2B,EAAE,EAAE,qBAAqB,EAAE,QAAQ,EAAE;IACjM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE;IAClD;QACE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,SAAS,EAAE,gFAAa,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,sFAAmB,2BAA0B,EAAE,CAAC,EAAE,4EAAc,EAAE,EAAE,QAAQ,EAAE;YAC7J,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,8GAAkB,EAAE;YACvH;gBACE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,CAAC,+EAAmB,EAAE,+EAAmB,EAAE,+EAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE;oBAC3K,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE;oBACxD,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,SAAS,EAAE,2GAAkB,EAAE,qBAAqB,EAAE,QAAQ,EAAE;oBACvJ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,iGAAe,EAAE;oBAC7G,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,SAAS,EAAE,8HAAwB,EAAE;oBAC1I,oIAAoI;oBACpI,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,SAAS,EAAE,+GAAmB,EAAE;oBAC3H,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,SAAS,EAAE,wHAAsB,EAAE;oBACpI,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,SAAS,EAAE,sHAAqB,EAAE;oBACjI,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,SAAS,EAAE,sHAAqB,EAAE;oBACjI,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,SAAS,EAAE,yHAAsB,EAAE;oBACpI,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,SAAS,EAAE,8GAAmB,EAAE;oBACzH,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,SAAS,EAAE,sHAAqB,EAAE;oBACjI,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,SAAS,EAAE,yHAAsB,EAAE;iBACrI;aACF;YACD;gBACE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,QAAQ,EAAE;oBACtF,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;oBACrD,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,CAAC,yFAA6B,CAAC,EAAE,EAAE,SAAS,EAAE,oHAAqB,EAAE;oBAC1K,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,CAAC,yFAA6B,CAAC,EAAE,EAAE,SAAS,EAAE,oHAAqB,EAAE;oBACrL,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,aAAa,EAAE,CAAC,2FAA+B,EAAE,4FAAgC,EAAE,oFAAwB,EAAE,oFAAwB,EAAE,gFAAoB,EAAE,gFAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,6HAAwB,EAAE;oBACvT,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,aAAa,EAAE,CAAC,2FAA+B,EAAE,4FAAgC,EAAE,oFAAwB,EAAE,oFAAwB,EAAE,gFAAoB,EAAE,gFAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,6HAAwB,EAAE;oBAClU,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,mCAAmC,EAAE,aAAa,EAAE,CAAC,mFAAuB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,6HAAwB,EAAE;oBAE3M,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,aAAa,EAAE,CAAC,yFAA6B,CAAC,EAAE,EAAE,SAAS,EAAE,kHAAqB,EAAE;oBAC/K,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC,2FAA+B,CAAC,EAAE,EAAE,SAAS,EAAE,sGAAiB,EAAE;oBACrK,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC,qFAAyB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,qGAAiB,EAAE;oBACjL,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,CAAC,qFAAyB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,qGAAiB,EAAE;oBACvL;wBACE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,QAAQ,EAAE;4BACtF,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE;4BAClD,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,aAAa,EAAE,CAAC,4FAAgC,CAAC,EAAE,EAAE,SAAS,EAAE,qGAAgB,EAAE;4BACpK,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,CAAC,0FAA8B,CAAC,EAAE,EAAE,SAAS,EAAE,oHAAqB,EAAE;yBAC9K;qBACF;iBACF;aACF;YACD;gBACE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC,8EAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE;oBAChI,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;oBACnD,4NAA4N;oBAC5N,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,yGAAiB,EAAE;oBACzG,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,oHAAoB,EAAE;oBAChH,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,gFAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,0HAAsB,EAAE;oBACnJ,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,gFAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,0HAAsB,EAAE;iBAC9J;aACF;YACD;gBACE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,QAAQ,EAAE;oBAC3F,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;oBACrD;wBACE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,aAAa,EAAE,CAAC,qFAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE;4BAC5I,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;4BACnD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,4HAAuB,EAAE;4BAC7H,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,uFAA2B,CAAC,EAAE,EAAE,SAAS,EAAE,4HAAuB,EAAE;4BACxK,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,uFAA2B,CAAC,EAAE,EAAE,SAAS,EAAE,4HAAuB,EAAE;yBACtL;qBACF;oBACD;wBACE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE;4BAC7C,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,2EAAe,CAAC;yBAC1D,EAAE,QAAQ,EAAE;4BACX,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;4BACnD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,sHAAqB,EAAE;4BAC7G,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,sHAAqB,EAAE;4BACxH,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,6EAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,iHAAmB,EAAE;4BACvJ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,6EAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,iHAAmB,EAAE;4BAC7I,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,aAAa,EAAE,CAAC,2FAA+B,CAAC,EAAE,EAAE,SAAS,EAAE,mHAAoB,EAAE;yBAC3K;qBACF;iBACF;aACF;YACD;gBACE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,kFAAsB,EAAE,8EAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE;oBACnJ,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,SAAS,EAAE,uJAA6B,EAAE;oBAC1I,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,qCAAqC,EAAE,aAAa,EAAE,CAAC,kGAAsC,EAAE,8FAAkC,CAAC,EAAE,EAAE,SAAS,EAAE,gKAAgC,EAAE;oBACvP;wBACE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC,kFAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE;4BACxI,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;4BACnD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,gIAAoB,EAAE;4BAC5G,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,2IAAuB,EAAE;4BACnH,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,oFAAwB,CAAC,EAAE,EAAE,SAAS,EAAE,iJAAyB,EAAE;4BACvK,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,oFAAwB,CAAC,EAAE,EAAE,SAAS,EAAE,iJAAyB,EAAE;4BAC3K,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,oFAAwB,CAAC,EAAE,EAAE,SAAS,EAAE,iJAAyB,EAAE;4BAChL,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,oFAAwB,CAAC,EAAE,EAAE,SAAS,EAAE,iJAAyB,EAAE;yBACrL;qBACF;oBACD;wBACE,mFAAmF;wBACnF,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,aAAa,EAAE,CAAC,kFAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE;4BACtJ,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;4BACnD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,oJAAyB,EAAE;4BACjH,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,oFAAwB,CAAC,EAAE,EAAE,SAAS,EAAE,wKAA+B,EAAE;4BAC7K,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,oFAAwB,CAAC,EAAE,EAAE,SAAS,EAAE,wKAA+B,EAAE;4BACjL,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,yJAA0B,EAAE;4BACtH,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,oFAAwB,CAAC,EAAE,EAAE,SAAS,EAAE,wKAA+B,EAAE;yBAC3L;qBACF;oBACD;wBACE,mFAAmF;wBACnF,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,CAAC,kFAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE;4BACxI,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;4BACnD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,0HAAkB,EAAE;4BAC1G,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,2IAAuB,EAAE;4BACnH,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,oFAAwB,CAAC,EAAE,EAAE,SAAS,EAAE,iJAAyB,EAAE;yBACrL;qBACF;oBACD;wBACE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC,8EAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE;4BACjI,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;4BACnD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,mHAAiB,EAAE;4BACzG,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,8HAAoB,EAAE;4BAChH,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,gFAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,oIAAsB,EAAE;4BAChK,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,gFAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,oIAAsB,EAAE;4BACpK,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,gFAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,oIAAsB,EAAE;4BACzK,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,gFAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,oIAAsB,EAAE;yBAC9K;qBACF;iBACF;aACF;YACD;gBACE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,aAAa,EAAE,CAAC,qFAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE;oBACzJ,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;oBACnD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,uIAAuB,EAAE;oBAC/G,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,+IAAyB,EAAE;oBACrH,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,oKAAgC,EAAE;oBACxI,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,aAAa,EAAE,CAAC,uFAA2B,CAAC,EAAE,EAAE,SAAS,EAAE,yKAAiC,EAAE;oBAC7L,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,uFAA2B,CAAC,EAAE,EAAE,SAAS,EAAE,qJAA2B,EAAE;oBAC5K,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,0FAA8B,CAAC,EAAE,EAAE,SAAS,EAAE,qJAA2B,EAAE;iBACrK;aACF;YAED,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,2EAAS,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,SAAS,EAAE,oHAAoB,EAAE;SACrH;KACF;IACD,4JAA4J;IAC5J,sDAAsD;IACtD,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,gGAAiB,EAAE;CAE7C,CAAC;IAUW,gBAAgB,SAAhB,gBAAgB;CAAI;AAApB,gBAAgB;IAR5B,wDAAQ,CAAC;QACR,OAAO,EAAE,CAAC,kEAAoB,CAAC,MAAM,EAAE;gBACrC,8BAA8B;gBAC9B,mBAAmB,EAAE,QAAQ;aAE9B,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,0DAAY,CAAC;KACxB,CAAC;GACW,gBAAgB,CAAI;AAAJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/N2C;AACtB;AACR;AAE+B;AACd;AACJ;AACA;AACW;AAClE,oEAAoE;AACpE,qDAAqD;IASxC,YAAY,SAAZ,YAAY;IAKvB,YACU,MAAsB,EACtB,YAAmB,EACnB,iBAAoC,EACpC,KAAqB,EACrB,MAAc,EACd,SAA2B;QACnC,iCAAiC;QANzB,WAAM,GAAN,MAAM,CAAgB;QACtB,iBAAY,GAAZ,YAAY,CAAO;QACnB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,UAAK,GAAL,KAAK,CAAgB;QACrB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAkB;QATrC,YAAO,GAAY,IAAI,CAAC;QACxB,iBAAY,GAAY,IAAI,CAAC;QAW3B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,oBAAoB;QACpB,yDAAyD;QACzD,uBAAuB;QACvB,4BAA4B;IAC9B,CAAC;IAED,QAAQ;QACN,4CAA4C;QAC5C,oCAAoC;QACpC,0BAA0B;QAC1B,uFAAkC,CAAC,QAAQ,CAAC,EAAE;YAC5C,4BAA4B;YAC5B,mBAAmB;YACnB,yCAAyC;YACzC,IAAI;QACN,CAAC,CAAC,CAAC;QAEH,iDAAiD;QACjD,gCAAgC;QAChC,KAAK;QAEL,oFAA8B,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,cAAc;QACd,kBAAkB;QAClB,uDAAuD;QACvD,kBAAkB;QAClB,6BAA6B;QAC7B,0BAA0B;QAC1B,6CAA6C;QAC7C,2CAA2C;QAC3C,sDAAsD;QACtD,uBAAuB;QAEvB,2DAA2D;QAC3D,0DAA0D;QAC1D,mDAAmD;QACnD,qCAAqC;QAErC,8BAA8B;QAC9B,uCAAuC;QACvC,8FAA8F;QAC9F,oCAAoC;QACpC,oCAAoC;QACpC,kDAAkD;QAClD,mFAAmF;QACnF,oCAAoC;QACpC,8DAA8D;QAC9D,iCAAiC;QACjC,mCAAmC;QACnC,kCAAkC;QAClC,gBAAgB;QAChB,8EAA8E;QAC9E,UAAU;QACV,eAAe;QAEf,qCAAqC;QACrC,sCAAsC;QACtC,oCAAoC;QACpC,gDAAgD;QAChD,8BAA8B;QAC9B,oFAAoF;QAEpF,mDAAmD;QACnD,+FAA+F;QAC/F,cAAc;QACd,qBAAqB;QACrB,YAAY;QACZ,UAAU;QACV,sCAAsC;QACtC,uDAAuD;QACvD,oCAAoC;QACpC,SAAS;QACT,mCAAmC;QACnC,2BAA2B;QAC3B,uCAAuC;QACvC,QAAQ;IACV,CAAC;IACD,eAAe;QACf,yBAAyB;IACzB,CAAC;CACF;;YApHQ,oEAAc;YAJd,4DAAK;YAGL,kFAAiB;YAJjB,2DAAc;YAAE,mDAAM;YAMtB,iEAAgB;;AAaZ,YAAY;IANxB,yDAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,2NAAmC;QAEnC,SAAS,EAAE,CAAC,2EAAY,CAAC;;KAC1B,CAAC;GACW,YAAY,CAsGxB;AAtGwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBwC;AACI;AACH;AACE;AACmB;AACmB;AACnD;AACU;AACjB;AAC+B;AAErB;AACZ;AACJ;AACD;AACE;AAC8E;AAEjE;AACT;AAC/C,kEAAkE;AACZ;AACD;AAErD,UAAU;AACqC;AACS;AACL;AACM;AACD;AACJ;AACF;AACqB;AACd;AACa;AACX;AACa;AACjB;AACQ;AACN;AACI;AACM;AACR;AACE;AACI;AACD;AACT;AACE;AACF;AACA;AACuE;AAC3C;AAC5B;AACE;AACa;AACQ;AACrB;AACE;AACE;AACF;AACW;AACsC;AACrD;AACM;AACA;AACN;AAEvD,OAAO;AAC0D;AACJ;AACc;AAE3E,YAAY;AACuD;AACY;AAE/E,UAAU;AAC2D;AACJ;AACF;AACU;AACd;AACO;AACO;AACR;AACV;AACF;AACuB;AACa;AACzC;AAEhD,YAAY;AACgF;AACK;AACrB;AACA;AACH;AACH;AACS;AACW;AACK;AACoB;AACT;AACF;AACE;AACf;AACkB;AAC/B;AAC4B;AACxB;AAC8B;AACC;AAC3B;AACiB;AACA;AACI;AAChC;AAC4D;AACjB;AACW;AACG;AAC3B;AACiB;AACN;AACc;AACX;AACF;AACT;AACG;AACX;AACyB;AACQ;AACkB;AACrC;AACtB;AACc;AACS;AACvB;AACgB;AACG;AACT;AACM;AACS;AAC7B;AACY;AAC2D;AACpB;AACA;AAC/D;AACV;AACO;AACiF;AACjD;AACM;AACH;AACwB;AACA;AA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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./src/app/app.component.html","./src/app/core/components/footer/footer.component.html","./src/app/core/components/header/header.component.html","./src/app/core/components/login/login.component.html","./src/app/core/components/main/main.component.html","./src/app/core/components/recover-password/recover-password.component.html","./src/app/core/components/sidenav/sidenav.component.html","./src/app/features/accounts/containers/accounts/accounts.component.html","./src/app/features/accounts/containers/manage-account/manage-account.component.html","./src/app/features/accounts/containers/user-profile/user-profile.component.html","./src/app/features/accounts/containers/view-account/view-account.component.html","./src/app/features/issuing/_shared/containers/documents-revoke-requests/documents-revoke-requests.component.html","./src/app/features/issuing/_shared/containers/expired-documents-query/expired-documents-query.component.html","./src/app/features/issuing/_shared/containers/issued-documents-query/issued-documents-query.component.html","./src/app/features/issuing/_shared/containers/verification/verification.component.html","./src/app/features/issuing/coupon-management/containers/coupon-management/coupon-management.component.html","./src/app/features/issuing/coupon-management/containers/manage-coupon-management/manage-coupon-management.component.html","./src/app/features/issuing/coupon-management/containers/view-coupon-management/view-coupon-management.component.html","./src/app/features/issuing/coupon-management/containers/view-license-detail/view-license-detail.component.html","./src/app/features/issuing/int-licenses/components/commitment-print/commitment-print.component.html","./src/app/features/issuing/int-licenses/components/int-license-print/int-license-print.component.html","./src/app/features/issuing/int-licenses/containers/e-licenses/e-licenses.component.html","./src/app/features/issuing/int-licenses/containers/int-licenses/int-licenses.component.html","./src/app/features/issuing/int-licenses/containers/manage-int-license/manage-int-license.component.html","./src/app/features/issuing/int-licenses/containers/view-int-license/view-int-license.component.html","./src/app/features/issuing/trip-tik/components/receipt-print/receipt-print.component.html","./src/app/features/issuing/trip-tik/components/trip-tik-print/trip-tik-print.component.html","./src/app/features/issuing/trip-tik/containers/manage-trip-tik/manage-trip-tik.component.html","./src/app/features/issuing/trip-tik/containers/trip-tiks/trip-tiks.component.html","./src/app/features/issuing/trip-tik/containers/view-trip-tik/view-trip-tik.component.html","./src/app/features/lookups/containers/account-statuses/account-statuses.component.html","./src/app/features/lookups/containers/account-types/account-types.component.html","./src/app/features/lookups/containers/cities/cities.component.html","./src/app/features/lookups/containers/countries/countries.component.html","./src/app/features/lookups/containers/currencies/currencies.component.html","./src/app/features/lookups/containers/customs-ports/customs-ports.component.html","./src/app/features/lookups/containers/pursuing-zones/pursuing-zones.component.html","./src/app/features/lookups/containers/stock-types/stock-types.component.html","./src/app/features/lookups/containers/vehicle-colors/vehicle-colors.component.html","./src/app/features/lookups/containers/vehicle-makes/vehicle-makes.component.html","./src/app/features/lookups/containers/vehicle-models/vehicle-models.component.html","./src/app/features/lookups/containers/vehicle-types/vehicle-types.component.html","./src/app/features/security/containers/account-users/account-users.component.html","./src/app/features/security/containers/manage-user/manage-user.component.html","./src/app/features/security/containers/security-groups/security-groups.component.html","./src/app/features/security/containers/users-groups/users-groups.component.html","./src/app/features/statistics/containers/dashboard/dashboard.component.html","./src/app/features/stock/components/lic-transactions-print/lic-transactions-print.component.html","./src/app/features/stock/components/stock-slider/stock-slider.component.html","./src/app/features/stock/components/transaction-details-label/transaction-details-label.component.html","./src/app/features/stock/components/trp-transactions-print/trp-transactions-print.component.html","./src/app/features/stock/containers/populate/populate.component.html","./src/app/features/stock/containers/stocks-available/stocks-available.component.html","./src/app/features/stock/containers/stocks-totals/stocks-totals.component.html","./src/app/features/stock/containers/transact/transact.component.html","./src/app/features/stock/containers/transactions/transactions.component.html","./src/app/features/stock/containers/undo-requests/undo-requests.component.html","./src/app/features/stock/containers/undo-try/undo-try.component.html","./src/app/features/trip-tiks-claims/containers/manage-trip-tik-claim/manage-trip-tik-claim.component.html","./src/app/features/trip-tiks-claims/containers/trip-tik-claim-attachments/trip-tik-claim-attachments.component.html","./src/app/features/trip-tiks-claims/containers/trip-tiks-claims-logs/trip-tiks-claims-logs.component.html","./src/app/features/trip-tiks-claims/containers/trip-tiks-claims/trip-tiks-claims.component.html","./src/app/features/trip-tiks-claims/containers/update-status-trip-tik-claim/update-status-trip-tik-claim.component.html","./src/app/features/trip-tiks-claims/containers/view-trip-tik-claim/view-trip-tik-claim.component.html","./src/app/shared/components/alert/alert.component.html","./src/app/shared/components/body-loader/body-loader.component.html","./src/app/shared/components/breadcrumb/breadcrumb.component.html","./src/app/shared/components/dialog/dialog.component.html","./src/app/shared/components/modal/modal.component.html","./src/app/shared/components/not-found/not-found.component.html","./src/app/shared/components/under-construction/under-construction.component.html","./src/app/shared/components/validation-error/validation-error.component.html","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/core/api-handler.ts","./src/app/core/auth/auth-guard.service.ts","./src/app/core/auth/auth-interceptor.ts","./src/app/core/auth/auth.service.ts","./src/app/core/components/footer/footer.component.ts","./src/app/core/components/header/header.component.ts","./src/app/core/components/login/login.component.ts","./src/app/core/components/main/main.component.ts","./src/app/core/components/recover-password/recover-password.component.ts","./src/app/core/components/sidenav/sidenav.component.ts","./src/app/core/models/enums/account-type.ts","./src/app/core/models/enums/blood-group.ts","./src/app/core/models/enums/config-object.ts","./src/app/core/models/enums/document-type.ts","./src/app/core/models/enums/end-point.ts","./src/app/core/models/enums/gender.ts","./src/app/core/models/enums/language.ts","./src/app/core/models/enums/license-permit-class.ts","./src/app/core/models/enums/print-object.ts","./src/app/core/models/enums/role.ts","./src/app/core/models/enums/system-object.ts","./src/app/core/models/enums/transaction-type.ts","./src/app/core/models/enums/triptik-claim-status.ts","./src/app/core/models/validation.ts","./src/app/core/services/sidenav.service.ts","./src/app/core/url-serializer.service.ts","./src/app/features/accounts/containers/accounts/accounts.component.ts","./src/app/features/accounts/containers/manage-account/manage-account.component.ts","./src/app/features/accounts/containers/user-profile/user-profile.component.ts","./src/app/features/accounts/containers/view-account/view-account.component.ts","./src/app/features/accounts/services/accounts.service.ts","./src/app/features/issuing/_shared/containers/documents-revoke-requests/documents-revoke-requests.component.ts","./src/app/features/issuing/_shared/containers/expired-documents-query/expired-documents-query.component.ts","./src/app/features/issuing/_shared/containers/issued-documents-query/issued-documents-query.component.ts","./src/app/features/issuing/_shared/containers/verification/verification.component.ts","./src/app/features/issuing/_shared/services/documents-revoke-requests.datasource.ts","./src/app/features/issuing/_shared/services/issuing.service.ts","./src/app/features/issuing/coupon-management/containers/coupon-management/coupon-management.component.ts","./src/app/features/issuing/coupon-management/containers/manage-coupon-management/manage-coupon-management.component.ts","./src/app/features/issuing/coupon-management/containers/view-coupon-management/view-coupon-management.component.ts","./src/app/features/issuing/coupon-management/containers/view-license-detail/view-license-detail.component.ts","./src/app/features/issuing/coupon-management/services/coupo-detail.datasource.ts","./src/app/features/issuing/coupon-management/services/coupon.datasource.ts","./src/app/features/issuing/coupon-management/services/coupoun.service.ts","./src/app/features/issuing/int-licenses/components/commitment-print/commitment-print.component.ts","./src/app/features/issuing/int-licenses/components/int-license-print/int-license-print.component.ts","./src/app/features/issuing/int-licenses/containers/e-licenses/e-licenses.component.ts","./src/app/features/issuing/int-licenses/containers/int-licenses/int-licenses.component.ts","./src/app/features/issuing/int-licenses/containers/manage-int-license/manage-int-license.component.ts","./src/app/features/issuing/int-licenses/containers/view-int-license/view-int-license.component.ts","./src/app/features/issuing/int-licenses/models/e-license.ts","./src/app/features/issuing/int-licenses/models/int-license.ts","./src/app/features/issuing/int-licenses/models/order-status-locale.ts","./src/app/features/issuing/int-licenses/services/e-licenses.datasource.ts","./src/app/features/issuing/int-licenses/services/e-licenses.service.ts","./src/app/features/issuing/int-licenses/services/int-licenses.datasource.ts","./src/app/features/issuing/int-licenses/services/int-licenses.service.ts","./src/app/features/issuing/trip-tik/components/receipt-print/receipt-print.component.ts","./src/app/features/issuing/trip-tik/components/trip-tik-print/trip-tik-print.component.ts","./src/app/features/issuing/trip-tik/containers/manage-trip-tik/manage-trip-tik.component.ts","./src/app/features/issuing/trip-tik/containers/trip-tiks/trip-tiks.component.ts","./src/app/features/issuing/trip-tik/containers/view-trip-tik/view-trip-tik.component.ts","./src/app/features/issuing/trip-tik/models/create.cmd.ts","./src/app/features/issuing/trip-tik/models/trip-tik.ts","./src/app/features/issuing/trip-tik/services/trip-tiks.datasource.ts","./src/app/features/issuing/trip-tik/services/trip-tiks.service.ts","./src/app/features/lookups/containers/account-statuses/account-statuses.component.ts","./src/app/features/lookups/containers/account-types/account-types.component.ts","./src/app/features/lookups/containers/cities/cities.component.ts","./src/app/features/lookups/containers/countries/countries.component.ts","./src/app/features/lookups/containers/currencies/currencies.component.ts","./src/app/features/lookups/containers/customs-ports/customs-ports.component.ts","./src/app/features/lookups/containers/pursuing-zones/pursuing-zones.component.ts","./src/app/features/lookups/containers/stock-types/stock-types.component.ts","./src/app/features/lookups/containers/vehicle-colors/vehicle-colors.component.ts","./src/app/features/lookups/containers/vehicle-makes/vehicle-makes.component.ts","./src/app/features/lookups/containers/vehicle-models/vehicle-models.component.ts","./src/app/features/lookups/containers/vehicle-types/vehicle-types.component.ts","./src/app/features/lookups/services/account-statuses.ts","./src/app/features/lookups/services/account-types.ts","./src/app/features/lookups/services/cities.ts","./src/app/features/lookups/services/config.ts","./src/app/features/lookups/services/countries.ts","./src/app/features/lookups/services/currencies.ts","./src/app/features/lookups/services/customs-ports.service.ts","./src/app/features/lookups/services/pursuing-zones.ts","./src/app/features/lookups/services/stock-types.ts","./src/app/features/lookups/services/trip-tik-claims-statuses.service.ts","./src/app/features/lookups/services/vehicle-colors.ts","./src/app/features/lookups/services/vehicle-makes.ts","./src/app/features/lookups/services/vehicle-models.ts","./src/app/features/lookups/services/vehicle-types.ts","./src/app/features/security/containers/account-users/account-users.component.ts","./src/app/features/security/containers/manage-user/manage-user.component.ts","./src/app/features/security/containers/security-groups/security-groups.component.ts","./src/app/features/security/containers/users-groups/users-groups.component.ts","./src/app/features/security/models/security-groups.model.ts","./src/app/features/security/services/security.service.ts","./src/app/features/security/services/users-datasource.ts","./src/app/features/security/services/users.service.ts","./src/app/features/statistics/containers/dashboard/dashboard.component.ts","./src/app/features/statistics/services/statistics.service.ts","./src/app/features/stock/components/lic-transactions-print/lic-transactions-print.component.ts","./src/app/features/stock/components/stock-slider/stock-slider.component.ts","./src/app/features/stock/components/transaction-details-label/transaction-details-label.component.ts","./src/app/features/stock/components/trp-transactions-print/trp-transactions-print.component.ts","./src/app/features/stock/containers/populate/populate.component.ts","./src/app/features/stock/containers/stocks-available/stocks-available.component.ts","./src/app/features/stock/containers/stocks-totals/stocks-totals.component.ts","./src/app/features/stock/containers/transact/transact.component.ts","./src/app/features/stock/containers/transactions/transactions.component.ts","./src/app/features/stock/containers/undo-requests/undo-requests.component.ts","./src/app/features/stock/containers/undo-try/undo-try.component.ts","./src/app/features/stock/helpers/stocks-totals-datasource.ts","./src/app/features/stock/helpers/transactions-datasource.ts","./src/app/features/stock/helpers/undo-requests-datasource.ts","./src/app/features/stock/models/available-stocks.ts","./src/app/features/stock/models/transaction-type.enum.ts","./src/app/features/stock/models/undo-requests.ts","./src/app/features/stock/services/stocks.service.ts","./src/app/features/trip-tiks-claims/containers/manage-trip-tik-claim/manage-trip-tik-claim.component.ts","./src/app/features/trip-tiks-claims/containers/trip-tik-claim-attachments/trip-tik-claim-attachments.component.ts","./src/app/features/trip-tiks-claims/containers/trip-tiks-claims-logs/trip-tiks-claims-logs.component.ts","./src/app/features/trip-tiks-claims/containers/trip-tiks-claims/trip-tiks-claims.component.ts","./src/app/features/trip-tiks-claims/containers/update-status-trip-tik-claim/update-status-trip-tik-claim.component.ts","./src/app/features/trip-tiks-claims/containers/view-trip-tik-claim/view-trip-tik-claim.component.ts","./src/app/features/trip-tiks-claims/models/trip-tik-claim.model.ts","./src/app/features/trip-tiks-claims/services/trip-tiks-claims-logs.datasource.ts","./src/app/features/trip-tiks-claims/services/trip-tiks-claims.datasource.ts","./src/app/features/trip-tiks-claims/services/trip-tiks-claims.service.ts","./src/app/shared/components/alert/alert.component.ts","./src/app/shared/components/body-loader/body-loader.component.ts","./src/app/shared/components/breadcrumb/breadcrumb.component.ts","./src/app/shared/components/dialog/dialog.component.ts","./src/app/shared/components/modal/modal.component.ts","./src/app/shared/components/not-found/not-found.component.ts","./src/app/shared/components/under-construction/under-construction.component.ts","./src/app/shared/components/validation-error/validation-error.component.ts","./src/app/shared/directives/drag.directive.ts","./src/app/shared/directives/modal.directive.ts","./src/app/shared/helpers/config.resolver.ts","./src/app/shared/helpers/custom-date-adapter.ts","./src/app/shared/helpers/export-to-excel.ts","./src/app/shared/helpers/lang-paginator-intl.ts","./src/app/shared/helpers/populate-accounts-select.ts","./src/app/shared/helpers/translation.resolver.ts","./src/app/shared/models/default-alert-action.ts","./src/app/shared/models/modal.ts","./src/app/shared/pipes/array-map.pipe.ts","./src/app/shared/pipes/params-translate.pipe.ts","./src/app/shared/pipes/string-join.pipe.ts","./src/app/shared/services/alert.service.ts","./src/app/shared/services/breadcrumb.service.ts","./src/app/shared/services/custom-validators.ts","./src/app/shared/services/file-loader.service.ts","./src/app/shared/services/loading.ts","./src/app/shared/services/modal.service.ts","./src/app/shared/services/utils.ts","./src/app/shared/services/validation.service.ts","./src/environments/environment.ts","./src/main.ts","./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;","export default \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\";","export default \"\";","export default \"\\r\\n\\r\\n\";","export default \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","export default \"\";","export default \"\\r\\n {{getAccountType() | translate}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{'SEC_LINK_USERS' | translate}}\\r\\n \\r\\n people\\r\\n \\r\\n  {{accountUsersCount}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
  • \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n pageview\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n delete\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n people {{node.item.usersCount}}\\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n \\r\\n
  • \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n pageview\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n delete\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n people \\r\\n {{node.item.usersCount}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
  • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'ACC_LINK_TOTAL_USERS_COUNT' | translate}}: {{usersCount}}\\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"\\r\\n \\r\\n {{(!accountId ? '_ACTION_ADD' : '_ACTION_UPDATE') | translate }} {{ getAccountType(accountType.value) }}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{account.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_ACCOUNT_TYPE' | translate}}\\r\\n \\r\\n {{at.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n {{'ACC_FIELD_ACCOUNT_TITLE2' |\\r\\n translate:{param: getAccountType(accountType.value)} }}\\r\\n {{'_AR' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'ACC_FIELD_ACCOUNT_TITLE2' |\\r\\n translate:{param: getAccountType(accountType.value)} }}\\r\\n {{'_EN' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n {{'ACC_ATTACHMENTS' | translate}}:
    \\r\\n\\r\\n\\r\\n
    0\\\" class=\\\"col-12 mb-3\\\">\\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n {{'ACC_TITLE_PRIMARY_USER_ACCOUNT2' | translate:{param: getAccountType(accountType.value)} }}:
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"{{'ACC_TITLE_USER_PROFILE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_USERNAME' | translate}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_EMAIL' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_PASSWORD' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_NEW_PASSWORD' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_PASSWORD_CONFIRM' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\\"\\\"\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_ACTION_UPLOAD' | translate}}\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"\\r\\n {{'_ACTION_VIEW' | translate}} {{'ACC_LABEL_ACCOUNT' | translate}}\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n file_copy\\r\\n {{'ACC_LABEL_ACCOUNT_DETAILS' | translate}}\\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}:\\r\\n {{dto.titles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n {{'LKP_FIELD_ACCOUNT_TYPE' | translate}}:\\r\\n {{dto.accountType.titles}}\\r\\n
    • \\r\\n
    \\r\\n \\r\\n
      \\r\\n
    • \\r\\n {{'ACC_FIELD_PARENT_ACCOUNT' | translate}}:\\r\\n {{_parentAccounts && _parentAccounts.length > 0 ? (_parentAccounts | stringJoin:' // ') : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}:\\r\\n \\r\\n \\r\\n\\r\\n
        \\r\\n
      • \\r\\n \\r\\n {{s.titles}}\\r\\n
      • \\r\\n
      \\r\\n
    • \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n {{'LKP_FIELD_COUNTRY' | translate}}:\\r\\n {{dto.city ? dto.city.countryTitles : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'LKP_FIELD_CITY' | translate}}:\\r\\n {{dto.city ? dto.city.titles : 'N/A'}}\\r\\n
    • \\r\\n
    \\r\\n\\r\\n
      \\r\\n
    • \\r\\n {{'_FIELD_EMAIL' | translate}}:\\r\\n {{dto.email ? dto.email : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'_FIELD_PHONE_NO' | translate}}:\\r\\n {{dto.phoneNumber ? dto.phoneNumber : 'N/A'}}\\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    0\\\" class=\\\"col-12 mb-3\\\">\\r\\n
    \\r\\n attach_file\\r\\n {{'ACC_ATTACHMENTS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n {{'ISS_TITLE_DOCUMENTS_REVOKE_REQUESTS' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'_LABEL_DATE' | translate}}{{moment(row.created).format('DD/MM/YYYY')}}\\r\\n {{'_LABEL_SERIAL' | translate}} {{row.serial}} {{'LKP_FIELD_STOCK_TYPE' | translate}}{{row.stockType.titles}}\\r\\n {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.accountTitles}}\\r\\n \\r\\n
    \\r\\n
    {{'ISS_LABEL_REQUESTED_BY' | translate}} {{row.requestedBy}} {{'_FIELD_REASON' | translate}}\\r\\n {{row.requestReason}}  \\r\\n \\r\\n \\r\\n attach_file\\r\\n \\r\\n \\r\\n {{'STK_LABEL_UNDO_REQUEST_STATUS' | translate}}\\r\\n \\r\\n {{undoRequestStatusLocale(row.undoRequestStatus) | translate}}\\r\\n \\r\\n {{'ISS_LABEL_REQUEST_TYPE' | translate}}\\r\\n \\r\\n {{(row.isDamaged ? '_ACTION_DESTROY' : '_ACTION_RECOVER') | translate}}\\r\\n \\r\\n {{'ISS_LABEL_RESOLVED_BY' | translate}} {{row.resolvedBy ? row.resolvedBy : '-'}} {{'ISS_LABEL_RESOLVE_DATE' | translate}} {{row.resolved ? moment(row.resolved).format('DD/MM/YYYY') : '-'}}{{'ISS_LABEL_RESOLVE_NOTE' | translate}} {{row.resolveNote ? row.resolveNote : '-'}} {{'_ACTION_TOOLS' | translate}}\\r\\n -\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"{{'ISS_TITLE_ISSUED_DOCUMENTS_QUERY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_IDENTITY_ID_OR_PASSPORT_ID' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n نتائج البحث\\r\\n
      \\r\\n
    • \\r\\n اسم المالك:\\r\\n {{dto.name}}\\r\\n
    • \\r\\n
    • \\r\\n تاريخ الإصدار:\\r\\n {{dto.issueDate}}\\r\\n
    • \\r\\n
    • \\r\\n تاريخ الإنتهاء:\\r\\n {{dto.expiryDate}}\\r\\n
    • \\r\\n
    • \\r\\n \\r\\n
    • \\r\\n
    \\r\\n
    \";","export default \"{{'ISS_TITLE_ISSUED_DOCUMENTS_QUERY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_DOCUMENT_TYPE' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_DOCUMENT_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_LABEL_SERIAL_NUMBER' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_PLATE_ID' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_CHASSIS_ID' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n {{'_MESSAGE_SEARCH_RESULTS' | translate}}\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'ISS_LABEL_DOCUMENT_OWNER' | translate}}{{row.name}}{{'ISS_LABEL_ISSUE_DATE' | translate}}{{row.issueDate}}\\r\\n {{'ISS_LABEL_EXPIRY_DATE' | translate}}\\r\\n {{row.expiryDate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS' | translate}}\\r\\n \\r\\n check_circle\\r\\n {{'ISS_LABEL_VALID' | translate}}\\r\\n \\r\\n cancel\\r\\n {{'ISS_LABEL_EXPIRED' | translate}}\\r\\n {{'_ACTION_TOOLS' | translate}}\\r\\n \\r\\n \\r\\n file_copy\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{'_MESSAGE_NO_SEARCH_RESULTS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n

    DOCUMENT VERIFICATION

    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n

      \\r\\n \\r\\n \\r\\n warning\\r\\n \\r\\n Invalid Document Code\\r\\n \\r\\n

      \\r\\n
    • \\r\\n \\r\\n
    • \\r\\n
      \\r\\n Document Status:\\r\\n \\r\\n check_circle VALID\\r\\n \\r\\n cancel EXPIRED\\r\\n
      \\r\\n
    • \\r\\n
    • {{dto.stockType.titles[1]}}: {{dto.serial}}
    • \\r\\n
    • Issue Date: {{dto.issueDate}}
    • \\r\\n
    • Expiration Date: {{dto.expiryDate}}
    • \\r\\n
    • Owner Name: {{dto.name}}
    • \\r\\n
      \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \";","export default \"\\r\\n {{\\r\\n \\\"LIC_TITLE_COUPONS\\\" | translate\\r\\n }}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ \\\"_LABEL_ADVANCED_SEARCH\\\" | translate }}\\r\\n \\r\\n filter_list\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ \\\"_ACTION_EXPORT_DATA\\\" | translate }}\\r\\n grid_on \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{ \\\"_EXPORT_LINK_CURRENT_PAGE\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n search \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_FIELD_NAME\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_LABEL_GENDER\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n \\r\\n \\r\\n {{('_LABEL_MALE' ) | translate}}\\r\\n \\r\\n \\r\\n {{('_LABEL_FEMALE' ) | translate}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_FIELD_PHONE_NO\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"ISS_FIELD_PASSPORT_NUMBER\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ title }}{{ i != item.titles.length - 1 ? \\\" // \\\" : \\\"\\\" }}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{ \\\"LIC_FIELD_PERMIT_CLASS\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n \\r\\n {{ IntLicensePermitClass[p] }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"LIC_FIELD_LICENSE_NO\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_LABEL_FROM\\\" | translate }}\\r\\n {{ \\\"_LABEL_DATE2\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_LABEL_TO\\\" | translate }}\\r\\n {{ \\\"_LABEL_DATE2\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"ISS_LABEL_ISSUE_STATUS\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n {{\\r\\n \\\"ISS_LABEL_ISSUE_STATUS_ISSUED\\\" | translate\\r\\n }}\\r\\n {{\\r\\n \\\"ISS_LABEL_ISSUE_STATUS_UNISSUED\\\" | translate\\r\\n }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"ISS_LABEL_DOCUMENT_STATUS\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n {{\\r\\n \\\"ISS_LABEL_DOCUMENT_STATUS_VALID\\\" | translate\\r\\n }}\\r\\n {{\\r\\n \\\"ISS_LABEL_DOCUMENT_STATUS_DAMAGED\\\" | translate\\r\\n }}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n not_interested\\r\\n {{ \\\"_ACTION_CANCEL\\\" | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n search\\r\\n {{ \\\"_ACTION_SEARCH\\\" | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{ \\\"_ACTION_COUPON\\\" | translate }}{{ row.name }}{{ \\\"_ACTION_DISCOUNT\\\" | translate }}\\r\\n {{ row.discount }}%\\r\\n \\r\\n {{ \\\"_ACTION_STATUS\\\" | translate }}\\r\\n \\r\\n {{ row.status ? 'Active' : 'InActive' }}\\r\\n \\r\\n {{ \\\"_ACTION_TOOLS\\\" | translate }}\\r\\n \\r\\n \\r\\n pageview \\r\\n \\r\\n \\r\\n edit \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\";","export default \" {{\\r\\n populate ? (\\\"LIC_TITLE_ADD_COUPONS\\\" | translate) : (\\\"LIC_TITLE_UPDATE_COUPONS\\\" | translate)\\r\\n}} \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Coupon Name\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Discount\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Status\\r\\n
    \\r\\n \\r\\n Active\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n done\\r\\n {{\\r\\n (populate ? \\\"_ACTION_ADD\\\" : \\\"_ACTION_SAVE\\\") | translate\\r\\n }}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n not_interested\\r\\n {{ \\\"_ACTION_CANCEL\\\" | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"

    view-coupon-management works!

    \\r\\n\";","export default \"\\r\\n {{\\r\\n \\\"LIC_TITLE_COUPON_DETAIL\\\" | translate\\r\\n }}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ \\\"_LABEL_ADVANCED_SEARCH\\\" | translate }}\\r\\n \\r\\n filter_list\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ \\\"_ACTION_EXPORT_DATA\\\" | translate }}\\r\\n grid_on \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{ \\\"_EXPORT_LINK_CURRENT_PAGE\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n search \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_FIELD_NAME\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_LABEL_GENDER\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n \\r\\n \\r\\n {{('_LABEL_MALE' ) | translate}}\\r\\n \\r\\n \\r\\n {{('_LABEL_FEMALE' ) | translate}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_FIELD_PHONE_NO\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"ISS_FIELD_PASSPORT_NUMBER\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ title }}{{ i != item.titles.length - 1 ? \\\" // \\\" : \\\"\\\" }}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{ \\\"LIC_FIELD_PERMIT_CLASS\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n \\r\\n {{ IntLicensePermitClass[p] }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"LIC_FIELD_LICENSE_NO\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_LABEL_FROM\\\" | translate }}\\r\\n {{ \\\"_LABEL_DATE2\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_LABEL_TO\\\" | translate }}\\r\\n {{ \\\"_LABEL_DATE2\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"ISS_LABEL_ISSUE_STATUS\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n {{\\r\\n \\\"ISS_LABEL_ISSUE_STATUS_ISSUED\\\" | translate\\r\\n }}\\r\\n {{\\r\\n \\\"ISS_LABEL_ISSUE_STATUS_UNISSUED\\\" | translate\\r\\n }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"ISS_LABEL_DOCUMENT_STATUS\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n {{\\r\\n \\\"ISS_LABEL_DOCUMENT_STATUS_VALID\\\" | translate\\r\\n }}\\r\\n {{\\r\\n \\\"ISS_LABEL_DOCUMENT_STATUS_DAMAGED\\\" | translate\\r\\n }}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n not_interested\\r\\n {{ \\\"_ACTION_CANCEL\\\" | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n search\\r\\n {{ \\\"_ACTION_SEARCH\\\" | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Coupon{{ row.name }}Discount\\r\\n {{ row.discount }}\\r\\n Customer Name\\r\\n {{ row.customerName }}\\r\\n \\r\\n Status\\r\\n \\r\\n {{ row.status ? 'Active' : 'InActive' }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\";","export default \"
    \\r\\n\\t\\r\\n\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t
    \\r\\n\\r\\n\\t\\r\\n\\t
    \\r\\n\\t\\t\\r\\n\\t
    \\r\\n\\r\\n\\t\\r\\n\\t
    \\r\\n\\t\\t\\r\\n\\t
    \\r\\n\\r\\n\\t\\r\\n\\t
    \\r\\n\\t\\t\\r\\n\\t
    \\r\\n
    \";","export default \" \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{dto.issued | date: 'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{dto.name}}\\r\\n
    \\r\\n
    \\r\\n {{dto.dateOfBirth | date: 'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    \\r\\n {{dto.nationalityTitles[Language.English]}}\\r\\n
    \\r\\n
    \\r\\n {{dto.countryTitles[Language.English]}}\\r\\n
    \\r\\n
    \\r\\n {{dto.passportID}}\\r\\n
    \\r\\n
    \\r\\n {{Gender[dto.gender]}}\\r\\n
    \\r\\n
    \\r\\n {{dto.bloodGroup}}\\r\\n
    \\r\\n
    \\r\\n {{dto.accordingToTitles[Language.English]}} License\\r\\n
    \\r\\n
    \\r\\n {{dto.permitClasses.join(', ')}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{dto.issued | date: 'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{dto.name}}\\r\\n
    \\r\\n
    \\r\\n {{dto.dateOfBirth | date: 'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    \\r\\n {{dto.nationalityTitles[Language.English]}}\\r\\n
    \\r\\n
    \\r\\n {{dto.countryTitles[Language.English]}}\\r\\n
    \\r\\n
    \\r\\n {{dto.passportID}}\\r\\n
    \\r\\n
    \\r\\n {{Gender[dto.gender]}}\\r\\n
    \\r\\n
    \\r\\n {{dto.bloodGroup}}\\r\\n
    \\r\\n
    \\r\\n {{dto.accordingToTitles[Language.English]}} License\\r\\n
    \\r\\n
    \\r\\n {{dto.permitClasses.join(', ')}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    {{ dto.serial }}
    \\r\\n
    {{ dto.name }}
    \\r\\n
    {{ dto.dateOfBirth | date: 'dd/MM/yyyy' }}
    \\r\\n
    {{ Gender[dto.gender] }}
    \\r\\n
    {{ dto.nationalityTitles[Language.English] }}
    \\r\\n
    {{ dto.passportID }}
    \\r\\n
    {{ dto.countryTitles[Language.English] }}
    \\r\\n
    {{ dto.accordingToTitles[Language.English] }} License
    \\r\\n
    {{ dto.permitClasses.join(', ') }}
    \\r\\n
    {{ dto.bloodGroup }}
    \\r\\n
    {{ dto.issued | date: 'dd/MM/yyyy' }}
    \\r\\n
    {{ dto.expiryDate | date: 'dd/MM/yyyy' }}
    \\r\\n \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LIC_TITLE_E_LICENSES' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_GENDER' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n \\r\\n {{('_LABEL_MALE' ) | translate}}\\r\\n \\r\\n \\r\\n {{('_LABEL_FEMALE' ) | translate}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_FIELD_PASSPORT_NUMBER' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i !=\\r\\n item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{'LIC_FIELD_PERMIT_CLASS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{IntLicensePermitClass[p]}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LIC_FIELD_LICENSE_NO' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_FROM' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_TO' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_LABEL_ISSUE_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'ISS_LABEL_ISSUE_STATUS_ISSUED' | translate}}\\r\\n {{'ISS_LABEL_ISSUE_STATUS_UNISSUED' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_LABEL_DOCUMENT_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS_VALID' | translate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS_DAMAGED' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_PAYMENT_METHOD' | translate}}\\r\\n \\r\\n بطاقة مدى البنكية\\r\\n Card\\r\\n سداد بالفرع نقدى\\r\\n تقسيط مع تابى\\r\\n ApplePay\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LIC_LABEL_DURATION' | translate}}\\r\\n \\r\\n سنة\\r\\n سنتين\\r\\n ثلاث سنوات\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_ACTION_STATUS' | translate}}\\r\\n \\r\\n طلب معلق - بإنتظار حضور العميل والدفع بالفرع\\r\\n قيد الإجراء - بإنتظار موافقة النظام\\r\\n مرفوض - تم إعادة المبلغ لحساب العميل\\r\\n مقبول - تم إصدار الرخصة\\r\\n تم شحن الطلب\\r\\n نم استلام الطلب من الفرع\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LIC_LABEL_SHIPPING_STATUE' | translate}}\\r\\n \\r\\n شحن\\r\\n استلام فرع\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LIC_LABEL_ORDER_NUMBER' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'ISS_LABEL_ISSUE_DATE' | translate}} {{row.issued ? moment(row.issued).format('DD/MM/YYYY') : ''}}\\r\\n {{'_LABEL_SERIAL' | translate}}\\r\\n \\r\\n {{Math.abs(row.serial) ? Math.abs(row.serial) : 'N/A'}}\\r\\n close\\r\\n \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n {{row.name}}\\r\\n \\r\\n {{'_LABEL_GENDER' | translate}}\\r\\n {{(row.gender == Gender.Male ? '_LABEL_MALE' : '_LABEL_FEMALE') | translate}}\\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n {{row.phoneNumber}}\\r\\n {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.accountTitles}}\\r\\n \\r\\n
    \\r\\n
    {{'ISS_FIELD_PASSPORT_NUMBER' | translate}}{{row.passportID}}{{'ISS_LABEL_PRINTINGS' | translate}}\\r\\n \\r\\n
    \\r\\n {{moment(d.created).format('DD/MM/YYYY HH:mm:ss')}}
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{moment(d.created).format('DD/MM/YYYY HH:mm:ss')}}
    \\r\\n
    \\r\\n
    \\r\\n
    0 ? l : ''\\\"\\r\\n placement=\\\"bottom\\\">\\r\\n ({{printObjectsCount(row.printLogs, PrintObject.IntLicenseCard)}})\\r\\n {{'LIC_LABEL_PRINT_OBJECT_LICENSE' | translate}}
    \\r\\n
    0 ? s : ''\\\"\\r\\n placement=\\\"bottom\\\">\\r\\n ({{printObjectsCount(row.printLogs, PrintObject.IntLicenseSticker)}})\\r\\n {{'LIC_LABEL_PRINT_OBJECT_STICKER' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    {{'_ACTION_STATUS' | translate}}\\r\\n \\r\\n {{ this.convertELicenseOrderStatusToLocale(row.eLicenseOrder?.status? row.eLicenseOrder.status: 0) }}\\r\\n {{'LIC_LABEL_ORDER_NUMBER' | translate}}\\r\\n \\r\\n {{ row.eLicenseOrder?.bill.couponDiscount}}\\r\\n {{'LIC_LABEL_DURATION' | translate}}\\r\\n \\r\\n {{ row.validityYears }} \\r\\n {{'LIC_LABEL_SHIPPING' | translate}}\\r\\n \\r\\n {{ row.eLicenseOrder?.bill.shippingFees }}\\r\\n {{'LIC_LABEL_TOTAL_PRICE' | translate}}\\r\\n \\r\\n {{ row.eLicenseOrder?.bill.total }}\\r\\n {{'LIC_LABEL_PAYMENT_METHOD' | translate}}\\r\\n {{ row.eLicenseOrder?.bill.trackingId }}\\r\\n {{'_ACTION_TOOLS' | translate}}\\r\\n \\r\\n \\r\\n pageview\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n file_copy\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n delete\\r\\n \\r\\n \\r\\n 0 && auth.currentUser.accountId == row.accountId && ((!row.revokeRequestId && auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_CREATE)) || (row.revokeRequestId && auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_DELETE)))\\\"\\r\\n class=\\\"text-primary\\\" (click)=\\\"tryRevoke(row)\\\"\\r\\n title=\\\"{{(!row.revokeRequestId ? '' : '_ACTION_REVOKE_REQUEST_CANCEL') | translate}} {{'_ACTION_REVOKE' | translate}}\\\">\\r\\n \\r\\n {{!row.revokeRequestId ? 'delete_forever' : 'restore_from_trash'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\";","export default \"
    \\r\\n {{ 'LIC_TITLE_LICENSES' | translate }}\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{'_LABEL_PAYMENT_METHOD' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n \\r\\n {{('_LABEL_MALE' ) | translate}}\\r\\n \\r\\n \\r\\n {{('_LABEL_FEMALE' ) | translate}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{'_LABEL_PAYMENT_METHOD' | translate}}\\r\\n \\r\\n بطاقة مدى البنكية\\r\\n card\\r\\n سداد بالفرع نقدى\\r\\n تقسيط مع تابى\\r\\n ApplePay\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_FIELD_PASSPORT_NUMBER' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i !=\\r\\n item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{'LIC_FIELD_PERMIT_CLASS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{IntLicensePermitClass[p]}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LIC_FIELD_LICENSE_NO' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_FROM' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_TO' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_LABEL_ISSUE_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'ISS_LABEL_ISSUE_STATUS_ISSUED' | translate}}\\r\\n {{'ISS_LABEL_ISSUE_STATUS_UNISSUED' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_LABEL_DOCUMENT_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS_VALID' | translate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS_DAMAGED' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'ISS_LABEL_ISSUE_DATE' | translate}} {{row.issued ? moment(row.issued).format('DD/MM/YYYY') : ''}}\\r\\n {{'_LABEL_SERIAL' | translate}}\\r\\n \\r\\n {{Math.abs(row.serial) ? Math.abs(row.serial) : 'N/A'}}\\r\\n close\\r\\n \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n {{row.name}}\\r\\n \\r\\n {{'_LABEL_GENDER' | translate}}\\r\\n {{(row.gender == Gender.Male ? '_LABEL_MALE' : '_LABEL_FEMALE') | translate}}\\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n {{row.phoneNumber}}\\r\\n {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.accountTitles}}\\r\\n \\r\\n
    \\r\\n
    {{'ISS_FIELD_PASSPORT_NUMBER' | translate}}{{row.passportID}}{{'ISS_LABEL_PRINTINGS' | translate}}\\r\\n \\r\\n
    \\r\\n {{moment(d.created).format('DD/MM/YYYY HH:mm:ss')}}
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{moment(d.created).format('DD/MM/YYYY HH:mm:ss')}}
    \\r\\n
    \\r\\n
    \\r\\n
    0 ? l : ''\\\"\\r\\n placement=\\\"bottom\\\">\\r\\n ({{printObjectsCount(row.printLogs, PrintObject.IntLicenseCard)}})\\r\\n {{'LIC_LABEL_PRINT_OBJECT_LICENSE' | translate}}
    \\r\\n
    0 ? s : ''\\\"\\r\\n placement=\\\"bottom\\\">\\r\\n ({{printObjectsCount(row.printLogs, PrintObject.IntLicenseSticker)}})\\r\\n {{'LIC_LABEL_PRINT_OBJECT_STICKER' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n \\r\\n \\r\\n pageview\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n file_copy\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n delete\\r\\n \\r\\n \\r\\n 0 && auth.currentUser.accountId == row.accountId && ((!row.revokeRequestId && auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_CREATE)) || (row.revokeRequestId && auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_DELETE)))\\\"\\r\\n class=\\\"text-primary\\\" (click)=\\\"tryRevoke(row)\\\"\\r\\n title=\\\"{{(!row.revokeRequestId ? '' : '_ACTION_REVOKE_REQUEST_CANCEL') | translate}} {{'_ACTION_REVOKE' | translate}}\\\">\\r\\n \\r\\n {{!row.revokeRequestId ? 'delete_forever' : 'restore_from_trash'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n
    \";","export default \"\\r\\n {{ (!updateMode ? '_ACTION_ADD' : '_ACTION_UPDATE') | translate}}\\r\\n {{'LIC_TITLE_LICENSE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{ 'LIC_LABEL_EDITABLE_REMOVABLE' | translate}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ 'LIC_LABEL_UNISSUED' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    0\\\" [hidden]=\\\"dto.isELicense\\\" class=\\\"form-group col-md-12\\\">\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{i + 1}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n {{'_ACTION_ENTER' | translate}} {{'LIC_FIELD_DATE_OF_BIRTH' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{'ISS_FIELD_RESIDENCE_COUNTRY' |\\r\\n translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LIC_FIELD_BLOOD_GROUP' | translate}}\\r\\n \\r\\n \\r\\n {{BloodGroup[bg]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_LABEL_MALE' | translate}}\\r\\n \\r\\n {{'_LABEL_FEMALE' | translate}} \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{'LIC_FIELD_LOCAL_LICENSE_SOURCE'\\r\\n | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LIC_FIELD_PERMIT_CLASS' | translate}}\\r\\n \\r\\n \\r\\n {{IntLicensePermitClass[p]}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n portrait\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    0 || !isCamStreaming)\\\">\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LIC_LABEL_DATA_ACCURACY_ACKNOWLEDGMENT' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"\\r\\n {{'_ACTION_VIEW' | translate}} {{'LIC_TITLE_LICENSE' | translate}}\\r\\n {{dto?.isELicense ? '(طلب إلكتروني)' : ''}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{'LIC_LABEL_UNEDITABLE_IRREMOVABLE' | translate}}\\r\\n {{'LIC_LABEL_EDITABLE_REMOVABLE' | translate}}\\r\\n
    \\r\\n \\r\\n {{(isPrintable() ? 'LIC_LABEL_PRINTABLE' : 'LIC_LABEL_UNPRINTABLE') | translate}}\\r\\n
    \\r\\n \\r\\n {{(dto.issued ? 'LIC_LABEL_ISSUED' : 'LIC_LABEL_UNISSUED') | translate}}\\r\\n \\r\\n
    \\r\\n {{(!isExpired(dto.expiryDate) ? 'LIC_LABEL_VALID_UNTIL' : 'LIC_LABEL_EXPIRED_AT') | translate}}\\r\\n {{moment(dto.expiryDate).format(dateFormat)}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n chevron_{{ lang == Language.Arabic ? 'right' : 'left'}}\\r\\n \\r\\n Previous\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n chevron_{{ lang == Language.Arabic ? 'left' : 'right'}}\\r\\n \\r\\n Next\\r\\n \\r\\n \\r\\n
    \\r\\n
      \\r\\n
    1. \\r\\n \\r\\n \\r\\n
    2. \\r\\n
    3. \\r\\n \\r\\n \\r\\n
    4. \\r\\n
    \\r\\n 0 && dto.accountId == auth.currentUser.accountId && auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE)\\\"\\r\\n class=\\\"col px-0\\\">\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n money \\r\\n {{'LIC_FIELD_LICENSE_NO' | translate}}:\\r\\n {{Math.abs(dto.serial) ? Math.abs(dto.serial) : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n perm_contact_calendar \\r\\n {{'_FIELD_NAME' | translate}}:\\r\\n {{dto.name}}\\r\\n
    • \\r\\n
    • \\r\\n date_range \\r\\n {{'LIC_FIELD_DATE_OF_BIRTH' | translate}}:\\r\\n {{moment(dto.dateOfBirth).format(dateFormat)}}\\r\\n
    • \\r\\n
    • \\r\\n outlined_flag \\r\\n {{'LKP_FIELD_NATIONALITY' | translate}}:\\r\\n {{dto.nationalityTitles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n where_to_vote \\r\\n {{'ISS_FIELD_RESIDENCE_COUNTRY' | translate}}:\\r\\n {{dto.countryTitles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n view_carousel \\r\\n {{'ISS_FIELD_PASSPORT_NUMBER' | translate}}:\\r\\n {{dto.passportID}}\\r\\n
    • \\r\\n
    • \\r\\n exposure \\r\\n {{'LIC_FIELD_BLOOD_GROUP' | translate}}:\\r\\n {{dto.bloodGroup}}\\r\\n
    • \\r\\n
    • \\r\\n wc \\r\\n {{'_LABEL_GENDER' | translate}}:\\r\\n {{(dto.gender == Gender.Male ? '_LABEL_MALE' : '_LABEL_FEMALE') | translate}} \\r\\n \\r\\n
    • \\r\\n
    • \\r\\n emoji_transportation \\r\\n {{'LIC_FIELD_LOCAL_LICENSE_SOURCE' | translate}}:\\r\\n {{dto.accordingToTitles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n commute \\r\\n {{'LIC_FIELD_PERMIT_CLASS' | translate}}:\\r\\n {{dto.permitClasses.join(', ')}}\\r\\n
    • \\r\\n
    • \\r\\n stay_current_portrait \\r\\n {{'_FIELD_PHONE_NO' | translate}}:\\r\\n {{dto.phoneNumber}}\\r\\n
    • \\r\\n
    • \\r\\n print \\r\\n {{'_LABEL_DOCUMENT_PRINT_TEMPLATE' | translate}}:\\r\\n \\r\\n {{ getTranslatedTemplateVersion(dto.documentTemplateVersion) }}\\r\\n \\r\\n \\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    {{'_TITLE_ATTACHMENTS' | translate}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{(i == 0 ? 'LIC_FIELD_PERSONAL_PHOTO' : (i == 1 ? 'LIC_FIELD_PASSPORT_PHOTO' :\\r\\n 'LIC_FIELD_LICENSE_PHOTO')) | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\\"file\\\"\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    تفاصيل الطلب
    \\r\\n
      \\r\\n
    • \\r\\n حالة الطلب:\\r\\n {{convertELicenseOrderStatusToLocale(dto.eLicenseOrder.status)}}\\r\\n
    • \\r\\n
    • \\r\\n عدد سنوات الإشتراك:\\r\\n {{dto.eLicenseOrder.plan.validityYears}}\\r\\n
    • \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    0\\\">\\r\\n
    \\r\\n
    السجل التاريخي لحركات إعادة الطلب
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    #التاريخالمرسلالتعليق
    {{i+1}}{{(interaction.created | date:'dd/MM/yyyy HH:mm:ss') + ' (GMT)'}}{{interaction.actor == 1 ? 'النظام' : 'مقدم الطلب'}}{{interaction.note}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    تفاصيل الفاتورة
    \\r\\n
    السعر : {{dto.eLicenseOrder.bill.currency}} {{dto.eLicenseOrder.bill.value}}
    الحالة : مدفوعة
    تاريخ الدفع : {{dto.eLicenseOrder.bill.paid ? (dto.eLicenseOrder.bill.paid |\\r\\n date:'dd/MM/yyyy HH:mm:ss') + ' (GMT)' :\\r\\n 'غير مدفوعة'}}
    \\r\\n\\r\\n
    \\r\\n
    تفاصيل الفاتورة
    \\r\\n
    السعر : {{dto.eLicenseOrder.bill.currency}} {{dto.eLicenseOrder.bill.value}}
    الحالة : مدفوعة
    تاريخ الدفع : {{dto.eLicenseOrder.bill.paid ? (dto.eLicenseOrder.bill.paid |\\r\\n date:'dd/MM/yyyy HH:mm:ss') + ' (GMT)' :\\r\\n 'غير مدفوعة'}}
    \\r\\n \\r\\n
    \\r\\n
    تفاصيل الفاتورة
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    رقم الطلب : {{dto.eLicenseOrder.bill.couponDiscount}}
    \\r\\n
    \\r\\n السعر : {{ dto.eLicenseOrder.bill.currency }}\\r\\n السعر : {{ dto.eLicenseOrder.bill.amount + ' '+ dto.eLicenseOrder.bill.currency }}\\r\\n
    \\r\\n
    \\r\\n قيمة الخصم : {{ dto.eLicenseOrder.bill.amountDiscount }}\\r\\n قيمة الخصم : {{ dto.eLicenseOrder.bill.amountDiscount + ' '+ dto.eLicenseOrder.bill.currency }}\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    تفاصيل السداد
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n اجمالى المطلوب سداده : {{dto.eLicenseOrder.bill.total + ' ' + dto.eLicenseOrder.bill.currency }}\\r\\n
    \\r\\n
    \\r\\n الحالة : {{dto.eLicenseOrder.bill.paid ? 'مدفوعة' : 'غير مدفوعة'}}\\r\\n
    \\r\\n
    \\r\\n وسيلة الدفع : {{dto.eLicenseOrder.bill.paid ? dto.eLicenseOrder.bill.trackingId : 'غير مدفوعة'}}\\r\\n
    \\r\\n
    \\r\\n تاريخ الدفع : {{dto.eLicenseOrder.bill.paid ? (dto.eLicenseOrder.bill.paid |\\r\\n date:'dd/MM/yyyy HH:mm:ss'):\\r\\n 'غير مدفوعة'}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    تفاصيل الاستلام
    \\r\\n
    {{dto.eLicenseOrder.shippingAddress.streetName}}
    \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    تفاصيل الفاتورة
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    رقم الطلب : {{dto.eLicenseOrder.bill.couponDiscount}}
    \\r\\n
    \\r\\n السعر : {{ dto.eLicenseOrder.bill.currency }}\\r\\n السعر : {{ dto.eLicenseOrder.bill.amount + ' '+ dto.eLicenseOrder.bill.currency }}\\r\\n
    \\r\\n
    \\r\\n تكلفة الشحن : {{ dto.eLicenseOrder.bill.shippingFees }}\\r\\n تكلفة الشحن : {{ dto.eLicenseOrder.bill.shippingFees + ' '+ dto.eLicenseOrder.bill.currency }}\\r\\n
    \\r\\n
    \\r\\n قيمة الخصم : {{ dto.eLicenseOrder.bill.amountDiscount }}\\r\\n قيمة الخصم : {{ dto.eLicenseOrder.bill.amountDiscount + ' '+ dto.eLicenseOrder.bill.currency }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    تفاصيل السداد
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n اجمالى المطلوب سداده :\\r\\n \\r\\n {{ dto.eLicenseOrder.bill.total }}\\r\\n \\r\\n\\r\\n \\r\\n {{ dto.eLicenseOrder.bill.total + ' '+ dto.eLicenseOrder.bill.currency }}\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n الحالة : {{dto.eLicenseOrder.bill.paid ? 'مدفوعة' : 'غير مدفوعة'}}\\r\\n
    \\r\\n
    \\r\\n وسيلة الدفع : {{dto.eLicenseOrder.bill.paid ? dto.eLicenseOrder.bill.trackingId : 'غير مدفوعة'}}\\r\\n
    \\r\\n
    \\r\\n تاريخ الدفع : {{dto.eLicenseOrder.bill.paid ? (dto.eLicenseOrder.bill.paid |\\r\\n date:'dd/MM/yyyy HH:mm:ss'):\\r\\n 'غير مدفوعة'}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    ELicenseOrderStatus.DraftDocument\\\">\\r\\n
    \\r\\n
    \\r\\n
    تفاصيل الشحن
    \\r\\n
      \\r\\n \\r\\n
    • \\r\\n الدولة:\\r\\n {{dto.eLicenseOrder.shippingAddress.countryTitles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n المدينة:\\r\\n {{dto.eLicenseOrder.shippingAddress.cityName}}\\r\\n
    • \\r\\n
    • \\r\\n اسم الحي:\\r\\n {{dto.eLicenseOrder.shippingAddress.neighborhoodName}}\\r\\n
    • \\r\\n
    • \\r\\n اسم الشارع:\\r\\n {{dto.eLicenseOrder.shippingAddress.streetName}}\\r\\n
    • \\r\\n
    • \\r\\n رقم المبنى:\\r\\n {{dto.eLicenseOrder.shippingAddress.buildingNumber}}\\r\\n
    • \\r\\n
    • \\r\\n الرمز البريدي:\\r\\n {{dto.eLicenseOrder.shippingAddress.postalCode}}\\r\\n
    • \\r\\n
    • \\r\\n رقم الإتصال:\\r\\n {{dto.eLicenseOrder.shippingAddress.contactPhoneNumber}}\\r\\n
    • \\r\\n \\r\\n \\r\\n
    • \\r\\n شركة الشحن:\\r\\n {{dto.eLicenseOrder.shippingAddress.shippingVendor}}\\r\\n
    • \\r\\n
    • \\r\\n رقم تتبع الشحنة:\\r\\n {{dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber}}\\r\\n
    • \\r\\n
    • \\r\\n رابط تتبع الشحنة:\\r\\n {{dto.eLicenseOrder.shippingAddress.shippingVendorTrackingUrl}}\\r\\n
    • \\r\\n
      \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n

    شحن الطلب

    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n

    \\r\\n قم بتعديل البيانات التالية اذا وجدت خطأ بالشحن\\r\\n

    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n
    ELicenseOrderStatus.DraftDocument\\\">\\r\\n
    \\r\\n

    تفاصيل العنوان بواسطة العميل

    \\r\\n
      \\r\\n \\r\\n
    • \\r\\n الدولة:\\r\\n {{dto.eLicenseOrder.shippingAddress.countryTitles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n المدينة:\\r\\n {{dto.eLicenseOrder.shippingAddress.cityName}}\\r\\n
    • \\r\\n
    • \\r\\n اسم الحي:\\r\\n {{dto.eLicenseOrder.shippingAddress.neighborhoodName}}\\r\\n
    • \\r\\n
    • \\r\\n اسم الشارع:\\r\\n {{dto.eLicenseOrder.shippingAddress.streetName}}\\r\\n
    • \\r\\n
    • \\r\\n رقم المبنى:\\r\\n {{dto.eLicenseOrder.shippingAddress.buildingNumber}}\\r\\n
    • \\r\\n
    • \\r\\n الرمز البريدي:\\r\\n {{dto.eLicenseOrder.shippingAddress.postalCode}}\\r\\n
    • \\r\\n
    • \\r\\n رقم الإتصال:\\r\\n {{dto.eLicenseOrder.shippingAddress.contactPhoneNumber}}\\r\\n
    • \\r\\n\\r\\n \\r\\n
    • \\r\\n شركة الشحن:\\r\\n {{dto.eLicenseOrder.shippingAddress.shippingVendor}}\\r\\n
    • \\r\\n
    • \\r\\n رقم تتبع الشحنة:\\r\\n {{dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber}}\\r\\n
    • \\r\\n
    • \\r\\n رابط تتبع الشحنة:\\r\\n {{dto.eLicenseOrder.shippingAddress.shippingVendorTrackingUrl}}\\r\\n
    • \\r\\n
      \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \";","export default \"
    \\r\\n \\r\\n
    \\r\\n
    {{issueDate | date: 'dd/MM/yyyy'}}
    \\r\\n \\r\\n
    {{dto.customer.owner.name}}
    \\r\\n
    #
    \\r\\n
    #{{dto.serial}}#
    \\r\\n
    # {{dto.vehicle.plateID}} #
    \\r\\n
    {{dto.accountTitles}}
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    {{issueDate | date: 'dd/MM/yyyy'}}
    \\r\\n \\r\\n
    {{dto.customer.owner.name}}
    \\r\\n
    #
    \\r\\n
    #{{dto.serial}}#
    \\r\\n
    # {{dto.vehicle.plateID}} #
    \\r\\n
    {{dto.accountTitles}}
    \\r\\n \\r\\n
    \\r\\n
    \";","export default \"\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{cOwnerInfo && cOwnerInfo.length > 0 ? cOwnerInfo[0] : 'N/A'}}
    \\r\\n
    \\r\\n {{drivers && drivers.length > 0 ? ('سائق إضافي: ' + drivers[0]) : ''}}
    \\r\\n
    \\r\\n {{drivers && drivers.length > 1 ? ('سائق إضافي: ' + drivers[1]) : ''}}
    \\r\\n
    12 Months
    \\r\\n
    {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    {{dto.issued | date: 'dd/MM/yyyy'}}
    \\r\\n
    {{dto.accountTitles}}
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n\\r\\n
    \\r\\n {{cOwnerInfo && cOwnerInfo.length > 0 ? cOwnerInfo[0] : 'N/A'}}
    \\r\\n
    \\r\\n {{cOwnerInfo && cOwnerInfo.length > 0 ? cOwnerInfo[0] : 'N/A'}}
    \\r\\n
    \\r\\n {{drivers.join(' - ')}}
    \\r\\n
    \\r\\n {{drivers.join(' - ')}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n {{_makeModel ? (_makeModel | stringJoin:'/') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}
    \\r\\n
    \\r\\n {{_colors ? (_colors | stringJoin:'+') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.type ? (dto.vehicle.type.titles | stringJoin) : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : empty}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.spareTiresCount}}
    \\r\\n
    \\r\\n {{_options ? (_options | stringJoin:'+') : empty}}
    \\r\\n
    \\r\\n {{(vUpholsteryType | stringJoin)}}
    \\r\\n
    \\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}
    \\r\\n
    \\r\\n {{(dto.vehicle.currency ? dto.vehicle.currency.abbreviation : '') + ' ' + (dto.vehicle.value ? dto.vehicle.value : 'N/A')}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n {{_makeModel ? (_makeModel | stringJoin:'/') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}
    \\r\\n
    \\r\\n {{_colors ? (_colors | stringJoin:'+') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.type ? (dto.vehicle.type.titles | stringJoin) : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : empty}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.spareTiresCount}}
    \\r\\n
    \\r\\n {{_options ? (_options | stringJoin:'+') : empty}}
    \\r\\n
    \\r\\n {{(vUpholsteryType | stringJoin)}}
    \\r\\n
    \\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}
    \\r\\n
    \\r\\n {{(dto.vehicle.currency ? dto.vehicle.currency.abbreviation : '') + ' ' + (dto.vehicle.value ? dto.vehicle.value : 'N/A')}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n {{_makeModel ? (_makeModel | stringJoin:'/') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}
    \\r\\n
    \\r\\n {{_colors ? (_colors | stringJoin:'+') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.type ? (dto.vehicle.type.titles | stringJoin) : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : empty}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.spareTiresCount}}
    \\r\\n
    \\r\\n {{_options ? (_options | stringJoin:'+') : empty}}
    \\r\\n
    \\r\\n {{(vUpholsteryType | stringJoin)}}
    \\r\\n
    \\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}
    \\r\\n
    \\r\\n {{(dto.vehicle.currency ? dto.vehicle.currency.abbreviation : '') + ' ' + (dto.vehicle.value ? dto.vehicle.value : 'N/A')}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd'}}     {{dto.expiryDate | date: 'MM'}}   {{dto.expiryDate | date: 'yyyy'}}\\r\\n
    \\r\\n
    \\r\\n {{dto.issued | date: 'dd'}}   {{dto.issued | date: 'MM'}}   {{dto.issued | date: 'yyyy'}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n {{cOwnerInfo && cOwnerInfo.length > 0 ? cOwnerInfo[0] : 'N/A'}}
    \\r\\n
    \\r\\n {{drivers && drivers.length > 0 ? ('سائق إضافي: ' + drivers[0]) : ''}}
    \\r\\n
    \\r\\n {{drivers && drivers.length > 1 ? ('سائق إضافي: ' + drivers[1]) : ''}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    {{dto.issued | date: 'dd/MM/yyyy'}}
    \\r\\n
    {{dto.accountTitles}}
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n {{dto.serial}}
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n\\r\\n
    \\r\\n {{cOwnerInfo && cOwnerInfo.length > 0 ? cOwnerInfo[0] : 'N/A'}}
    \\r\\n
    \\r\\n {{cOwnerInfo && cOwnerInfo.length > 0 ? cOwnerInfo[0] : 'N/A'}}
    \\r\\n
    \\r\\n {{drivers.join(' - ')}}
    \\r\\n
    \\r\\n {{drivers.join(' - ')}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n {{_makeModel ? (_makeModel | stringJoin:'/') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}
    \\r\\n
    \\r\\n {{_colors ? (_colors | stringJoin:'+') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.type ? (dto.vehicle.type.titles | stringJoin) : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : empty}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.spareTiresCount}}
    \\r\\n
    \\r\\n {{_options ? (_options | stringJoin:'+') : empty}}
    \\r\\n
    \\r\\n {{(vUpholsteryType | stringJoin)}}
    \\r\\n
    \\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}
    \\r\\n
    \\r\\n {{(dto.vehicle.currency ? dto.vehicle.currency.abbreviation : '') + ' ' + (dto.vehicle.value ? dto.vehicle.value : 'N/A')}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n {{_makeModel ? (_makeModel | stringJoin:'/') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}
    \\r\\n
    \\r\\n {{_colors ? (_colors | stringJoin:'+') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.type ? (dto.vehicle.type.titles | stringJoin) : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : empty}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.spareTiresCount}}
    \\r\\n
    \\r\\n {{_options ? (_options | stringJoin:'+') : empty}}
    \\r\\n
    \\r\\n {{(vUpholsteryType | stringJoin)}}
    \\r\\n
    \\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}
    \\r\\n
    \\r\\n {{(dto.vehicle.currency ? dto.vehicle.currency.abbreviation : '') + ' ' + (dto.vehicle.value ? dto.vehicle.value : 'N/A')}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n {{_makeModel ? (_makeModel | stringJoin:'/') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}
    \\r\\n
    \\r\\n {{_colors ? (_colors | stringJoin:'+') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.type ? (dto.vehicle.type.titles | stringJoin) : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : empty}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.spareTiresCount}}
    \\r\\n
    \\r\\n {{_options ? (_options | stringJoin:'+') : empty}}
    \\r\\n
    \\r\\n {{(vUpholsteryType | stringJoin)}}
    \\r\\n
    \\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}
    \\r\\n
    \\r\\n {{(dto.vehicle.currency ? dto.vehicle.currency.abbreviation : '') + ' ' + (dto.vehicle.value ? dto.vehicle.value : 'N/A')}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \";","export default \"\\r\\n {{ (!updateMode ? '_ACTION_ADD' : '_ACTION_UPDATE') | translate}} {{'TRP_TITLE_TRIPTIK' | translate}}\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n {{'TRP_LABEL_OWNER_DATA' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'ISS_FIELD_RESIDENCE_COUNTRY'\\r\\n | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'ISS_FIELD_PASSPORT_NUMBER' |\\r\\n translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_INT_PHONE_NUMBER'\\r\\n | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    {{'TRP_LABEL_ADDITIONAL_DRIVER' | translate}} ({{i+1}}):\\r\\n
    \\r\\n \\r\\n \\r\\n delete\\r\\n {{'_ACTION_REMOVE' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_IDENTITY_ID_OR_PASSPORT_ID'\\r\\n | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_LABEL_VEHICLE_DATA' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_REGISTRATION_COUNTRY'\\r\\n | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_VEHICLE_TYPE' | translate}}\\r\\n \\r\\n {{t.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_SEATS_COUNT' | translate}}\\r\\n \\r\\n \\r\\n {{c}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_MANUFACTURE_YEAR'\\r\\n | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_MANUFACTURE_YEAR' | translate}}\\r\\n \\r\\n {{c}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_CYLINDERS_COUNT' |\\r\\n translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_CYLINDERS_COUNT' | translate}}\\r\\n \\r\\n \\r\\n {{c}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_COLOR' | translate}}\\r\\n \\r\\n {{c.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{c.value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{c.value}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_LABEL_NONE' | translate}}\\r\\n {{c}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{c.abbreviation}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n   \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_TITLE_ATTACHMENTS' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n portrait\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n {{'TRP_TITLE_TRIPTIKS' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_IDENTITY_ID_OR_PASSPORT_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_FROM' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_TO' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_VEHICLE_TYPE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{t.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_MANUFACTURE_YEAR' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{c}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_PLATE_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_CHASSIS_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i != item.titles.length - 1 ?\\r\\n ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_LABEL_ISSUE_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'ISS_LABEL_ISSUE_STATUS_ISSUED' | translate}}\\r\\n {{'ISS_LABEL_ISSUE_STATUS_UNISSUED' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_LABEL_DOCUMENT_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS_VALID' | translate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS_DAMAGED' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'ISS_LABEL_ISSUE_DATE' | translate}} {{row.issued ? moment(row.issued).format('DD/MM/YYYY') : ''}}\\r\\n {{'_LABEL_SERIAL' | translate}}\\r\\n \\r\\n {{Math.abs(row.serial)}}\\r\\n close\\r\\n \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n {{row.cName}}\\r\\n \\r\\n {{'TRP_FIELD_PLATE_ID' | translate}}\\r\\n {{row.vPlateID}}\\r\\n \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n {{row.cPhoneNumber}}\\r\\n {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.accountTitles}}\\r\\n \\r\\n
    \\r\\n
    {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}{{row.stockType.titles}}{{'_ACTION_TOOLS' | translate}}\\r\\n \\r\\n \\r\\n pageview\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n file_copy\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n delete\\r\\n \\r\\n \\r\\n 0 && auth.currentUser.accountId == row.accountId && ((!row.revokeRequestId && auth.currentUser.isInRole(Role.TRIPTIKS_REVOKE_REQUESTS_CREATE)) || (row.revokeRequestId && auth.currentUser.isInRole(Role.TRIPTIKS_REVOKE_REQUESTS_DELETE)))\\\"\\r\\n class=\\\"text-primary\\\" (click)=\\\"tryRevoke(row)\\\"\\r\\n title=\\\"{{(!row.revokeRequestId ? '' : '_ACTION_REVOKE_REQUEST_CANCEL') | translate}} {{'_ACTION_REVOKE' | translate}}\\\">\\r\\n \\r\\n {{!row.revokeRequestId ? 'delete_forever' : 'restore_from_trash'}}\\r\\n \\r\\n \\r\\n \\r\\n lock\\r\\n \\r\\n
    \\r\\n \\r\\n
    \";","export default \"\\r\\n {{'_ACTION_VIEW' | translate}} {{'TRP_TITLE_TRIPTIK' | translate}}\\r\\n \\r\\n lock\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_LABEL_UNEDITABLE_IRREMOVABLE' | translate}}\\r\\n {{'TRP_LABEL_EDITABLE_REMOVABLE' | translate}}\\r\\n
    \\r\\n \\r\\n {{(isPrintable() ? 'TRP_LABEL_PRINTABLE' : 'TRP_LABEL_UNPRINTABLE') | translate}}\\r\\n
    \\r\\n \\r\\n {{(dto.issued ? 'TRP_LABEL_ISSUED' : 'TRP_LABEL_UNISSUED') | translate}}\\r\\n \\r\\n
    \\r\\n {{(!isExpired(dto.expiryDate) ? 'TRP_LABEL_VALID_UNTIL' : 'TRP_LABEL_EXPIRED_AT') | translate}}\\r\\n {{moment(dto.expiryDate).format(dateFormat)}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n file_copy\\r\\n {{'TRP_LABEL_DOCUMENT_DATA' | translate}}\\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}:\\r\\n {{dto.stockType ? dto.stockType.titles : ''}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}:\\r\\n {{Math.abs(dto.serial)}}\\r\\n
    • \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n assignment_ind\\r\\n {{'TRP_LABEL_OWNER_DATA' | translate}}\\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n {{'_FIELD_NAME' | translate}}:\\r\\n {{dto.customer.owner.name ? dto.customer.owner.name : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'ISS_FIELD_RESIDENCE_COUNTRY' | translate}}:\\r\\n {{dto.customer.owner.residenceCountryTitles ? dto.customer.owner.residenceCountryTitles[lang] : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'LKP_FIELD_NATIONALITY' | translate}}:\\r\\n {{dto.customer.owner.nationalityId ? dto.customer.owner.nationalityTitles[lang] : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'_FIELD_ADDRESS' | translate}}:\\r\\n {{dto.customer.owner.address.item1 ? dto.customer.owner.address.item1 : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_IDENTITY_ID' | translate}}:\\r\\n {{dto.customer.owner.identityID ? dto.customer.owner.identityID : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'ISS_FIELD_PASSPORT_NUMBER' | translate}}:\\r\\n {{dto.customer.owner.passportID ? dto.customer.owner.passportID : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'_FIELD_PHONE_NO' | translate}}:\\r\\n {{dto.customer.owner.phoneNumber.item1 ? dto.customer.owner.phoneNumber.item1 : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_INT_ADDRESS' | translate}}:\\r\\n {{dto.customer.owner.address.item2 ? dto.customer.owner.address.item2 : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_INT_PHONE_NUMBER' | translate}}:\\r\\n {{dto.customer.owner.phoneNumber.item2 ? dto.customer.owner.phoneNumber.item2 : 'N/A'}}\\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n account_circle\\r\\n {{'TRP_LABEL_DRIVER_DATA' | translate: {param: i+1} }}\\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n {{'_FIELD_NAME' | translate}}:\\r\\n {{driver.name ? driver.name : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_IDENTITY_ID_OR_PASSPORT_ID' | translate}}:\\r\\n {{driver.passportIDorIdentityID ? driver.passportIDorIdentityID : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'_FIELD_ADDRESS' | translate}}:\\r\\n {{driver.address ? driver.address : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'_FIELD_PHONE_NO' | translate}}:\\r\\n {{driver.phoneNumber ? driver.phoneNumber : 'N/A'}}\\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n directions_car\\r\\n {{'TRP_LABEL_VEHICLE_DATA' | translate}}\\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n {{'TRP_FIELD_PLATE_ID' | translate}}:\\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_REGISTRATION_COUNTRY' | translate}}:\\r\\n {{dto.vehicle.registrationCountryTitles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_VEHICLE_TYPE' | translate}}:\\r\\n {{dto.vehicle.type ? dto.vehicle.type.titles[lang] : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_MAKE' | translate}}:\\r\\n {{dto.vehicle.make ? dto.vehicle.make.titles[lang] : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_MODEL' | translate}}:\\r\\n {{dto.vehicle.model ? dto.vehicle.model.titles[lang] : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_MANUFACTURE_YEAR' | translate}}:\\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_CYLINDERS_COUNT' | translate}}:\\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_SEATS_COUNT' | translate}}:\\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_WEIGHT_IN_KG' | translate}}:\\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_HORSE_POWER' | translate}}:\\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_ENGINE_ID' | translate}}:\\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_CHASSIS_ID' | translate}}:\\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_COLOR' | translate}}:\\r\\n {{dto.vehicle.colors ? (dto.vehicle.colors | arrayMap:'titles':lang | stringJoin:'+') : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_UPHOLSTERY_TYPE' | translate}}:\\r\\n {{vUpholsteryType ? vUpholsteryType[lang] : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_SPARE_TIRES_COUNT' | translate}}:\\r\\n {{dto.vehicle.spareTiresCount}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_OPTIONS' | translate}}:\\r\\n {{vOptions ? (vOptions | arrayMap:'titles':lang | stringJoin:'+') : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_EQUIPMENTS' | translate}}:\\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_EXTRAS' | translate}}:\\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_VALUE' | translate}}:\\r\\n {{dto.vehicle.value ? dto.vehicle.value : 'N/A'}}\\r\\n {{dto.vehicle.value && dto.vehicle.currency ? dto.vehicle.currency.titles : ''}}\\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n attach_file\\r\\n {{'_TITLE_ATTACHMENTS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{att.parent | translate}}\\r\\n {{att.title | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\\"license-photo\\\"\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n print\\r\\n {{'_ACTION_PRINT' | translate}} -\\r\\n  {{('_LABEL_TEMPLATE_' + dto.documentTemplateVersion) | translate }}\\r\\n \\r\\n keyboard_arrow_down\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n chevron_{{ lang == Language.Arabic ? 'right' : 'left'}}\\r\\n \\r\\n Previous\\r\\n \\r\\n \\r\\n \\r\\n chevron_{{ lang == Language.Arabic ? 'left' : 'right'}}\\r\\n \\r\\n Next\\r\\n \\r\\n
    \\r\\n \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\";","export default \"
    \\r\\n {{'LKP_TITLE_ACCOUNT_STATUSES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{'LKP_FIELD_ACCOUNT_STATUS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[langIndex]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_ACCOUNT_TYPES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{'ACC_FIELD_PARENT_ACCOUNT' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{at.titles[langIndex]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.parentTitles.length > 0 ? row.parentTitles[langIndex] : 'N/A' }}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_ACCOUNT_TYPE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[langIndex]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_CITIES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_COUNTRY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.countryTitles[lang]}}\\r\\n
    \\r\\n
    {{'LKP_FIELD_CITY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[lang]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_COUNTRIES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{'LKP_FIELD_ABBREVIATION' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.abbreviation}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_DIALING_CODE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.dialingCode}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_COUNTRY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.countryTitles[langIndex]}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_NATIONALITY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.nationalityTitles[langIndex]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_CURRENCIES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{'LKP_FIELD_ABBREVIATION' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.abbreviation}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_CURRENCY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[lang]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_CUSTOMS_PORTS' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_COUNTRY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.countryTitles[lang]}}\\r\\n
    \\r\\n
    {{'LKP_FIELD_CUSTOMS_PORT' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[lang]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_PURSUING_ZONES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_PURSUING_ZONE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[langIndex]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \";","export default \"
    \\r\\n {{'LKP_TITLE_STOCK_TYPES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[langIndex]}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_DOCUMENT_TYPE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_DOCUMENT_TYPE' | translate}}\\r\\n \\r\\n {{'LIC_TITLE_LICENSE2' | translate}}\\r\\n {{'TRP_TITLE_TRIPTIK' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{(row.documentType == 1 ? 'LIC_TITLE_LICENSE2' : 'TRP_TITLE_TRIPTIK') | translate}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_RANGE_MIN' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.rangeMin}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_RANGE_MAX' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.rangeMax}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_IS_URO' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{(row.isUnifiedRelease ? '_ACTION_YES' : '_ACTION_NO') | translate}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_HEX_COLOR' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_VEHICLE_COLORS' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_VEHICLE_COLOR' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[langIndex]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_VEHICLE_MAKES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_VEHICLE_MAKE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[langIndex]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_VEHICLE_MODELS' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_VEHICLE_MAKE' |\\r\\n translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.makeTitles[lang]}}\\r\\n
    \\r\\n
    {{'LKP_FIELD_VEHICLE_MODEL' |\\r\\n translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[lang]}}\\r\\n
    \\r\\n
    {{'TRP_FIELD_TRIPTIK_TYPE' |\\r\\n translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n {{st.titles[lang]}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_VEHICLE_TYPES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_VEHICLE_TYPE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[lang]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"\\r\\n {{'SEC_TITLE_USERS_ACCOUNTS' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n control_point\\r\\n \\r\\n {{'_ACTION_ADD' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i != item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{'SEC_FIELD_USERNAME' | translate}} {{row.username}} {{'_FIELD_EMAIL' | translate}} {{row.email}} {{'_FIELD_PHONE_NO' | translate}} {{row.phoneNumber}} {{'_LABEL_CREATION_DATE' | translate}} {{row.created | date: 'dd/MM/yyyy'}} {{'SEC_FIELD_PERMISSIONS' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n security\\r\\n \\r\\n \\r\\n {{group}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{'SEC_FIELD_ACTIVE' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}} \\r\\n \\r\\n
    \\r\\n \\r\\n
    \";","export default \"{{(!userId ? '_ACTION_ADD' : '_ACTION_UPDATE') | translate }}\\r\\n {{'SEC_LINK_USER_ACCOUNT' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n {{'_AR' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n {{'_EN' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_USERNAME' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_PERMISSIONS' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'SEC_FIELD_PERMISSIONS' | translate}}\\r\\n \\r\\n {{group.titles[lang]}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_PASSWORD' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_PASSWORD_CONFIRM' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_TITLE_TRIPTIK_CLAIMS_COUNTRIES' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_CLM_TITLE_TRIPTIK_CLAIMS_COUNTRIES' | translate}}\\r\\n \\r\\n {{c.titles[lang]}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"\\r\\n {{'SEC_TITLE_SECURITY_GROUPS' | translate}}\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_AVAILABLE_GROUPS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n lock\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n 0\\\" (change)=\\\"$event ? colToggle(action.id) : null\\\"\\r\\n [checked]=\\\"selections[i-1].hasValue() && isColSelected(action.id)\\\" [disabled]=\\\"!formEnabled\\\"\\r\\n [indeterminate]=\\\"selections[i-1].hasValue() && !isColSelected(action.id)\\\">\\r\\n \\r\\n {{action.titles[lang]}}\\r\\n \\r\\n {{row.securityObject.titles[lang]}}\\r\\n \\r\\n \\r\\n 0 && row.actions[getActionIndex(action.id)] != 0\\\"\\r\\n (click)=\\\"$event.stopPropagation()\\\"\\r\\n \\r\\n (change)=\\\"$event ? cellToggle(row, action.id, (displayedColumns.length - 1) * _i + i - 1) : null\\\"\\r\\n [formControlName]=\\\"(displayedColumns.length - 1) * _i + i - 1\\\" [value]=\\\"row.securityObject.id\\\"\\r\\n [checked]=\\\"isRowSelected(row, action.id)\\\">\\r\\n \\r\\n 0 && row.actions[getActionIndex(action.id)] == 0\\\">N/A\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"{{'SEC_TITLE_USERS_GROUPS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n 0\\\" (change)=\\\"$event ? colToggle(group.id) : null\\\"\\r\\n [disabled]=\\\"!auth.currentUser.isInRole(Role.USERS_SECURITY_GROUPS_UPDATE)\\\"\\r\\n [checked]=\\\"selections[i-1].hasValue() && isColSelected(group.id)\\\"\\r\\n [indeterminate]=\\\"selections[i-1].hasValue() && !isColSelected(group.id)\\\">\\r\\n \\r\\n {{group.titles}}\\r\\n \\r\\n 0\\\"\\r\\n (click)=\\\"$event.stopPropagation()\\\"\\r\\n (change)=\\\"$event ? cellToggle(row, group.id, (displayedColumns.length - 1) * _i + i - 1) : null\\\"\\r\\n [formControlName]=\\\"(displayedColumns.length - 1) * _i + i - 1\\\" [value]=\\\"row.user.id\\\"\\r\\n [checked]=\\\"isRowSelected(row, group.id)\\\">\\r\\n \\r\\n {{row.user.names}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"\\r\\n\\r\\n\";","export default \"\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'STK_FIELD_RANGE_START' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ (transactionDetails.operation == 'STK_TITLE_UNDO' ? 'STK_FIELD_UNDONE_QUANTITY' : 'STK_FIELD_ADDED_QUANTITY') | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{'STK_FIELD_RANGE_END' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\";","export default \"
    \\r\\n
    \\r\\n {{'STK_LABEL_OPERATION' | translate}} {{details.operation | translate}}\\r\\n \\r\\n {{'_LABEL_FROM' | translate}} {{'ACC_LABEL_ACCOUNT' | translate}} {{details.fromAccount}}\\r\\n {{'_LABEL_TO' | translate}} {{'ACC_LABEL_ACCOUNT' | translate}} {{details.toAccount}}\\r\\n \\r\\n \\r\\n {{'STK_LABEL_QUANTITY' | translate}} ({{details.count}}) {{details.stockType}}\\r\\n {{'STK_LABEL_FROM_SERIAL' | translate}} {{details.fromRange}}\\r\\n {{'STK_LABEL_TO_SERIAL' | translate}} {{details.toRange}} \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n \\r\\n
    {{transaction.created | date: 'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    {{transaction.toAccountTitles}}
    \\r\\n
    1
    \\r\\n
    #{{transaction.toRange - transaction.fromRange + 1 }}#\\r\\n
    \\r\\n\\r\\n
    #1#
    \\r\\n
    {{transaction.created | date: 'dd/MM/yyyy'}}
    \\r\\n
    {{transaction.stockType.titles}}
    \\r\\n
    #{{transaction.fromRange}}#
    \\r\\n
    #{{transaction.toRange}}#
    \\r\\n
    #{{transaction.toRange - transaction.fromRange + 1 }}#
    \\r\\n\\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n\\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    \";","export default \"\\r\\n {{(populate ? 'STK_TITLE_POPULATE' : 'STK_TITLE_DEPOPULATE') | translate}} info\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'_LABEL_DOCUMENT_PRINT_TEMPLATE' | translate}}\\r\\n \\r\\n {{'_LABEL_TEMPLATE_1' | translate}}\\r\\n {{'_LABEL_TEMPLATE_2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'STK_FIELD_ADDED_QUANTITY' |\\r\\n translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'STK_FIELD_DEPOPULATE_REASON' | translate}}\\r\\n \\r\\n {{r.titles[lang]}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n \\r\\n {{(!systemView ? 'STK_TITLE_AVAILABLE_STOCKS' : 'STK_TITLE_AVAILABLE_SYSTEM_STOCKS') | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i !=\\r\\n item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n {{'STK_LABEL_STOCK_STATUS' | translate}}\\r\\n \\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'_FIELD_AVAILABLE' | translate}}\\r\\n {{'_FIELD_UNAVAILABLE' | translate}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0)\\\">\\r\\n \\r\\n \\r\\n
    {{'_LABEL_FROM' | translate}} {{'_LABEL_SERIAL' | translate}} {{Math.abs(stock[0])}} {{'_LABEL_TOTAL' | translate}}{{'_LABEL_TO' | translate}} {{'_LABEL_SERIAL' | translate}} {{Math.abs(stock.length > 1 ? stock[1] : stock[0])}} \\r\\n {{'_FIELD_AVAILABLE' | translate}}\\r\\n \\r\\n {{stock[0] > 0 ? 'radio_button_checked' :\\r\\n 'radio_button_unchecked'}}\\r\\n {{sumAvailableStocksFilter(stockTypeStocks.availableStock, 1)}}\\r\\n {{'_FIELD_UNAVAILABLE' | translate}}\\r\\n \\r\\n 0\\\">{{stock[0] < 0 ? 'radio_button_checked'\\r\\n : 'radio_button_unchecked' }}\\r\\n {{sumAvailableStocksFilter(stockTypeStocks.availableStock, -1)}}\\r\\n {{ (systemView ? 'STK_LABEL_QUANTITY': 'STK_LABEL_AVAILABLE_QUANTITY') | translate}} {{stock.length > 1 ? Math.abs(stock[1]) - Math.abs(stock[0]) + 1 : 1}}\\r\\n {{sumAvailableStocks(stockTypeStocks.availableStock)}}
    \\r\\n \\r\\n

    {{'STK_MESSAGE_NO_STOCK_AVAILABLE' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n {{'STK_TITLE_STOCKS_TOTALS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i != item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{stockType.titles}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.accountTitles}}\\r\\n \\r\\n
    \\r\\n
    {{'STK_LABEL_RECEIVED' | translate}}\\r\\n
      \\r\\n
    • \\r\\n \\r\\n {{stockTypeData.received}}\\r\\n
    • \\r\\n
    \\r\\n
    {{'STK_LABEL_TRANSFERED' | translate}}\\r\\n
      \\r\\n
    • \\r\\n \\r\\n {{stockTypeData.transfered}}\\r\\n
    • \\r\\n
    \\r\\n
    {{'STK_LABEL_ISSUED' | translate}}\\r\\n
      \\r\\n
    • \\r\\n \\r\\n {{stockTypeData.issued}}\\r\\n
    • \\r\\n
    \\r\\n
    {{'STK_LABEL_RETURNED' | translate}}\\r\\n
      \\r\\n
    • \\r\\n \\r\\n {{stockTypeData.returned}}\\r\\n
    • \\r\\n
    \\r\\n
    {{'STK_LABEL_TRANSFERED_UNDONE' | translate}}\\r\\n
      \\r\\n
    • \\r\\n \\r\\n {{stockTypeData.transferedUndone}}\\r\\n
    • \\r\\n
    \\r\\n
    {{'STK_LABEL_REMAINING' | translate}}\\r\\n
      \\r\\n
    • \\r\\n \\r\\n {{stockTypeData.remainingStocks}}\\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \";","export default \"{{'STK_TITLE_TRANSACT' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{a.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'STK_FIELD_RANGE' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n 0 || availableStock.singles.length > 0)\\\">\\r\\n {{'_ACTION_CHOOSE' | translate}}{{'STK_FIELD_RANGE' | translate}}\\r\\n \\r\\n \\r\\n {{'STK_MESSAGE_NO_STOCK_AVAILABLE' | translate}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n 0\\\"\\r\\n label=\\\"{{'STK_LABEL_RANGES' | translate}}\\\">\\r\\n \\r\\n {{range[0]}} - {{range[1]}}\\r\\n \\r\\n \\r\\n 0\\\"\\r\\n label=\\\"{{'STK_LABEL_SINGLES' | translate}}\\\">\\r\\n \\r\\n {{serial[0]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 1\\\">\\r\\n {{'STK_LABEL_AVAILABLE_QUANTITY' | translate}}: {{selectedStock[1] - selectedStock[0] + 1}}\\r\\n {{stockType.titles}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n {{'STK_TITLE_TRANSACTIONS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'STK_LABEL_FROM_SERIAL' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'STK_LABEL_TO_SERIAL' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{t.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{'STK_LABEL_TRANSACTION_TYPE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{t.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n {{'_LABEL_FROM' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_TO' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i != item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'_LABEL_DATE' | translate}} {{moment(row.created).format('DD/MM/YYYY')}}{{'_LABEL_FROM' | translate}}\\r\\n {{'ACC_LABEL_ACCOUNT' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.fromAccountTitles ? row.fromAccountTitles \\r\\n : (row.transactionType == TransactionType.Populate ? 'STK_LABEL_PRINTING_PRESS'\\r\\n : 'STK_LABEL_PRIMARY_STOCK') | translate}}\\r\\n \\r\\n
    \\r\\n
    {{'_LABEL_TO' | translate}}\\r\\n {{'ACC_LABEL_ACCOUNT' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.toAccountTitles ? row.toAccountTitles \\r\\n : (row.transactionType == TransactionType.Depopulate ? 'STK_LABEL_PRINTING_PRESS'\\r\\n : 'STK_LABEL_PRIMARY_STOCK') | translate}}\\r\\n \\r\\n
    \\r\\n
    {{'_LABEL_FROM' | translate}}\\r\\n {{'_LABEL_SERIAL' | translate}}{{row.fromRange}}{{'_LABEL_TO' | translate}}\\r\\n {{'_LABEL_SERIAL' | translate}}{{row.toRange}}\\r\\n {{'STK_LABEL_QUANTITY' | translate}}\\r\\n {{row.toRange - row.fromRange + 1}}{{'STK_LABEL_TRANSACTION_TYPE' | translate}}{{transactionTypeLocale(row.transactionType) | translate}}{{'LKP_FIELD_STOCK_TYPE' | translate}}{{row.stockType.titles}}{{'_ACTION_PRINT' | translate}}\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\";","export default \"
    \\r\\n {{'STK_TITLE_UNDO_REQUESTS' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'_LABEL_DATE' | translate}}{{moment(row.created).format('DD/MM/YYYY')}}{{'_LABEL_FROM' | translate}} {{'ACC_LABEL_ACCOUNT' |\\r\\n translate}} {{row.fromAccountTitles}} {{'_LABEL_TO' | translate}} {{'ACC_LABEL_ACCOUNT' |\\r\\n translate}}\\r\\n {{row.toAccountTitles ? row.toAccountTitles : ('STK_LABEL_PRIMARY_STOCK' | translate) }}\\r\\n {{'SEC_FIELD_USERNAME' | translate}} {{row.username ? row.username : '-'}} {{'_FIELD_REASON' | translate}} {{row.reason ? row.reason : '-'}} {{'LKP_FIELD_STOCK_TYPE' | translate}}{{row.stockType.titles}}{{'STK_FIELD_RANGE' | translate}}{{row.fromRange}} - {{row.toRange}} ({{row.toRange - row.fromRange + 1}}){{'STK_LABEL_UNDO_REQUEST_STATUS' | translate}}\\r\\n \\r\\n {{undoRequestStatusLocale(row.undoRequestStatus) | translate}}\\r\\n \\r\\n {{'_ACTION_TOOLS' | translate}}\\r\\n -\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"\\r\\n {{(!auth.currentUser.isSystemAccount ? 'STK_TITLE_UNDO_REQUEST' : 'STK_TITLE_UNDO') | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'STK_FIELD_RANGE' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n 0 || availableStock.singles.length > 0)\\\">\\r\\n {{'_ACTION_CHOOSE' | translate }}{{'STK_FIELD_RANGE' | translate}}\\r\\n \\r\\n \\r\\n {{'STK_MESSAGE_NO_STOCK_AVAILABLE' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\"\\r\\n label=\\\"{{'STK_LABEL_RANGES' | translate}}\\\">\\r\\n \\r\\n {{range[0]}} - {{range[1]}}\\r\\n \\r\\n \\r\\n 0\\\"\\r\\n label=\\\"{{'STK_LABEL_SINGLES' | translate}}\\\">\\r\\n \\r\\n {{serial[0]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 1\\\">\\r\\n {{'STK_LABEL_AVAILABLE_QUANTITY' | translate}} {{selectedStock[1] - selectedStock[0] + 1}}\\r\\n {{stockType.titles}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'STK_FIELD_UNDO_REQUEST_REASON' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'STK_FIELD_UNDO_REQUEST_REASON' | translate}}\\r\\n \\r\\n \\r\\n {{r.titles[lang]}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    0\\\">\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"\\r\\n {{ (!updateMode ? '_ACTION_ADD' : '_ACTION_UPDATE') | translate}}\\r\\n {{'TRP_CLM_TITLE_TRIPTIK_CLAIM' | translate}}\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_FIELD_ENTRANCE_ID' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_FIELD_ENTRANCE_DATE' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n {{'_ACTION_ENTER' | translate}} {{'TRP_CLM_FIELD_ENTRANCE_DATE' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_COUNTRY' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_CUSTOMS_PORT' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_PURSUING_ZONE' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_PURSUING_ZONE' | translate}}\\r\\n \\r\\n \\r\\n {{p.titles}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_FIELD_VALUE' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n {{c.abbreviation}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n   \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_ADDRESS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n {{'_TITLE_ATTACHMENTS' | translate}} -\\r\\n {{'TRP_CLM_TITLE_TRIPTIK_CLAIM' | translate}}: {{tripTikClaimEntranceID}}\\r\\n
    \\r\\n
    \\r\\n 0\\\" mat-table [dataSource]=\\\"dataSource\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    {{'_LABEL_CREATION_DATE' | translate}} {{row.created | date: 'dd/MM/yyyy HH:mm'}} {{'SEC_FIELD_USERNAME' | translate}} {{row.createdBy}} {{'_LABEL_ATTACHMENT_NAME' | translate}} {{row.name}} {{'_ACTION_TOOLS' | translate}}\\r\\n \\r\\n \\r\\n save_alt\\r\\n \\r\\n
    \\r\\n
    \\r\\n

    {{'_MESSAGE_NO_CONTENT' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n {{'TRP_CLM_TITLE_LOGS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_ENTRANCE_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_REGISTRATION_DATE' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_ENTRANCE_DATE' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i != item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_PLATE_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LKP_FIELD_CUSTOMS_PORT' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{p.titles + ' / ' + p.countryTitles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LKP_FIELD_PURSUING_ZONE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{p.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_LATEST_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{'_LABEL_DATE' | translate}}\\r\\n {{moment(row.created).format('DD/MM/YYYY')}} {{'SEC_FIELD_USERNAME' | translate}} {{row.createdBy}}\\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}\\r\\n {{row.holderName}}\\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n {{row.serial}}\\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n {{row.stockType.titles}}\\r\\n {{'ISS_LABEL_ISSUE_DATE' | translate}}\\r\\n {{row.issued | date: 'dd/MM/yyyy'}}{{'LKP_FIELD_CUSTOMS_PORT' | translate}}\\r\\n {{row.customsPort ? row.customsPort.titles + ' / ' + row.customsPort.countryTitles : 'N/A'}}{{'TRP_CLM_FIELD_LATEST_STATUS' | translate}}{{row.status ? row.status.parentTitles + ' / ' + row.status.titles : 'N/A'}}{{'_LABEL_DETAILS' | translate}}{{row.note}}
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'TRP_CLM_TITLE_TRIPTIK_CLAIMS' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_ENTRANCE_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_FROM' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_TO' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i != item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_PLATE_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_LABEL_CLAIM_COUNTRY' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{c.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LKP_FIELD_CUSTOMS_PORT' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{searchForm.get('countryId').value && searchForm.get('countryId').value.length > 1 ? (p.titles + ' / ' + p.countryTitles) : p.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_LABEL_CLAIM_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_LABEL_CLAIM_STATUS_DESC' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LKP_FIELD_PURSUING_ZONE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{p.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'TRP_CLM_FIELD_ENTRANCE_ID' | translate}} {{row.entranceID}}\\r\\n {{'TRP_CLM_FIELD_ENTRANCE_DATE' | translate}}\\r\\n {{row.entranceDate | date:'dd/MM/yyyy'}}\\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}\\r\\n {{row.holderName}}\\r\\n {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}\\r\\n {{row.accountTitles ? row.accountTitles : 'N/A' }}\\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n {{row.serial}}\\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n {{row.stockType.titles}}{{'TRP_FIELD_PLATE_ID' | translate}}{{row.vehiclePlateID ? row.vehiclePlateID : 'N/A' }}{{'TRP_CLM_LABEL_CLAIM_COUNTRY' | translate}}\\r\\n {{row.country.countryTitles}}\\r\\n {{'LKP_FIELD_CUSTOMS_PORT' | translate}}\\r\\n {{row.customsPort ? row.customsPort.titles : 'N/A' }}\\r\\n {{'LKP_FIELD_PURSUING_ZONE' | translate}}\\r\\n {{row.pursuingZone ? row.pursuingZone.titles : 'N/A'}}\\r\\n {{'TRP_CLM_FIELD_LATEST_STATUS' | translate}}\\r\\n {{row.latestStatus ? row.latestStatus.titles : 'N/A'}}\\r\\n {{'_ACTION_TOOLS' | translate}}\\r\\n \\r\\n \\r\\n pageview\\r\\n \\r\\n \\r\\n 0\\\" class=\\\"text-primary\\\" routerLink=\\\"../view/attachments/{{row.id}}\\\"\\r\\n title=\\\"{{'_TITLE_ATTACHMENTS' | translate}}\\\">\\r\\n \\r\\n attach_file\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n attach_file\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n playlist_add\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \";","export default \"{{'_ACTION_UPDATE_STATUS' | translate}}\\r\\n {{'TRP_CLM_TITLE_TRIPTIK_CLAIM' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n description\\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}: {{dto.serial}}\\r\\n
    \\r\\n
    \\r\\n account_circle\\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}: {{dto.holderName}}\\r\\n
    \\r\\n
    \\r\\n money\\r\\n {{'TRP_CLM_FIELD_ENTRANCE_ID' | translate}}: {{dto.entranceID}}\\r\\n
    \\r\\n
    \\r\\n emoji_transportation\\r\\n {{'LKP_FIELD_CUSTOMS_PORT' | translate}}:\\r\\n {{dto.customsPort ? dto.customsPort.titles + ' / ' + dto.customsPort.countryTitles : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_LABEL_CLAIM_STATUS' | translate}}\\r\\n \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_LABEL_CLAIM_STATUS' | translate}}\\r\\n \\r\\n {{status.titles}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_LABEL_CLAIM_STATUS_DESC' | translate}}\\r\\n \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_LABEL_CLAIM_STATUS_DESC' | translate}}\\r\\n \\r\\n {{status.titles}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n 0\\\">\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_LABEL_RECEIPT_VALUE' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n {{c.abbreviation}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n {{'_LABEL_DETAILS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_TITLE_ATTACHMENTS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n
    \\r\\n {{'_ACTION_VIEW' | translate}}\\r\\n {{'TRP_CLM_TITLE_TRIPTIK_CLAIM' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n description\\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}: {{dto.serial}}\\r\\n
    \\r\\n
    \\r\\n description\\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}: {{dto.stockType ? dto.stockType.titles : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n money\\r\\n {{'TRP_CLM_FIELD_ENTRANCE_ID' | translate}}: {{dto.entranceID}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n account_circle\\r\\n {{'TRP_CLM_FIELD_ENTRANCE_DATE' | translate}}: {{dto.entranceDate | date:'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    \\r\\n emoji_transportation\\r\\n {{'LKP_FIELD_CUSTOMS_PORT' | translate}}:\\r\\n {{dto.customsPort ? dto.customsPort.titles + ' / ' + dto.customsPort.countryTitles : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n account_circle\\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}: {{dto.holderName}}\\r\\n
    \\r\\n
    \\r\\n money\\r\\n {{'_FIELD_ADDRESS' | translate}}: {{dto.holderAddress ? dto.holderAddress : 'N/A' }}\\r\\n
    \\r\\n
    \\r\\n emoji_transportation\\r\\n {{'_FIELD_PHONE_NO' | translate}} : {{dto.holderPhone ? dto.holderPhone : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{log.created | date:'dd/MM/yyyy HH:mm'}}\\r\\n
    \\r\\n {{log.status.titles}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    {{'SEC_FIELD_USERNAME' | translate}}: {{log.createdBy}}
    \\r\\n

    {{log.note}}

    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n \\r\\n \\r\\n error\\r\\n \\r\\n  {{item}}\\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n \\r\\n
    \";","export default \"\\r\\n\";","export default \"\";","export default \"
    \\r\\n
    \\r\\n
    {{options.action | translate}} {{options.type | translate}}
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n

    {{options.confirmQuestion | translate}} \\\"{{options.title | translate}}\\\" {{translate.currentLang == 'ar' ?\\r\\n '؟' : '?'}}\\r\\n

    \\r\\n

    \\r\\n

    {{options.note | translate}}
    \\r\\n {{options.dangerNote | translate}}\\r\\n

    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{ (fileName ? fileName : '_ACTION_DRAG_AND_DROP') | translate}}\\r\\n {{'_ACTION_BROWSE'\\r\\n | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n delete \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n

    الصفحة غير موجودة

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n

    {{'_PAGE_UNDER_CONSTRUCTION' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"\\r\\n {{ errorMessage[0] | translate:({param: errorMessage[1]})}}\\r\\n {{errorMessage | translate:({param: fieldLocale} | ParamsTranslate)}}\\r\\n\";","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AuthGuardService as AuthGuard } from './core/auth/auth-guard.service';\r\n\r\nimport { AccountUsersComponent } from './features/security/containers/account-users/account-users.component';\r\nimport { VehicleColorsComponent } from './features/lookups/containers/vehicle-colors/vehicle-colors.component';\r\nimport { StockTypesComponent } from './features/lookups/containers/stock-types/stock-types.component';\r\nimport { AccountTypesComponent } from './features/lookups/containers/account-types/account-types.component';\r\nimport { AccountStatusesComponent } from './features/lookups/containers/account-statuses/account-statuses.component';\r\nimport { CitiesComponent } from './features/lookups/containers/cities/cities.component';\r\nimport { UsersGroupsComponent } from './features/security/containers/users-groups/users-groups.component';\r\nimport { SecurityGroupsComponent } from './features/security/containers/security-groups/security-groups.component';\r\nimport { PopulateComponent } from './features/stock/containers/populate/populate.component';\r\nimport { StocksAvailableComponent } from './features/stock/containers/stocks-available/stocks-available.component';\r\nimport { StocksTotalsComponent } from './features/stock/containers/stocks-totals/stocks-totals.component';\r\nimport { LoginComponent } from './core/components/login/login.component';\r\nimport { MainComponent } from './core/components/main/main.component';\r\nimport { CountriesComponent } from './features/lookups/containers/countries/countries.component';\r\nimport { AccountsComponent } from './features/accounts/containers/accounts/accounts.component';\r\nimport { TransactionsComponent } from './features/stock/containers/transactions/transactions.component';\r\nimport { TransactComponent } from './features/stock/containers/transact/transact.component';\r\nimport { UndoTryComponent } from './features/stock/containers/undo-try/undo-try.component';\r\nimport { UndoRequestsComponent } from './features/stock/containers/undo-requests/undo-requests.component';\r\nimport { VehicleMakesComponent } from './features/lookups/containers/vehicle-makes/vehicle-makes.component';\r\nimport { ManageAccountComponent } from './features/accounts/containers/manage-account/manage-account.component';\r\nimport { UserProfileComponent } from './features/accounts/containers/user-profile/user-profile.component';\r\nimport { NotFoundComponent } from './shared/components/not-found/not-found.component';\r\nimport { ManageUserComponent } from './features/security/containers/manage-user/manage-user.component';\r\nimport { TranslationResolver } from './shared/helpers/translation.resolver';\r\nimport { IntLicensesComponent } from './features/issuing/int-licenses/containers/int-licenses/int-licenses.component';\r\nimport { ManageIntLicenseComponent } from './features/issuing/int-licenses/containers/manage-int-license/manage-int-license.component';\r\nimport { ViewIntLicenseComponent } from './features/issuing/int-licenses/containers/view-int-license/view-int-license.component';\r\nimport { TripTiksComponent } from './features/issuing/trip-tik/containers/trip-tiks/trip-tiks.component';\r\nimport { ViewTripTikComponent } from './features/issuing/trip-tik/containers/view-trip-tik/view-trip-tik.component';\r\nimport { ManageTripTikComponent } from './features/issuing/trip-tik/containers/manage-trip-tik/manage-trip-tik.component';\r\nimport { VehicleTypesComponent } from './features/lookups/containers/vehicle-types/vehicle-types.component';\r\nimport { VehicleModelsComponent } from './features/lookups/containers/vehicle-models/vehicle-models.component';\r\nimport { CurrenciesComponent } from './features/lookups/containers/currencies/currencies.component';\r\nimport { TripTiksClaimsComponent } from './features/trip-tiks-claims/containers/trip-tiks-claims/trip-tiks-claims.component';\r\nimport { VerificationComponent } from './features/issuing/_shared/containers/verification/verification.component';\r\nimport { DocumentsRevokeRequestsComponent } from './features/issuing/_shared/containers/documents-revoke-requests/documents-revoke-requests.component';\r\nimport { DashboardComponent } from './features/statistics/containers/dashboard/dashboard.component';\r\nimport { UpdateStatusTripTikClaimComponent } from './features/trip-tiks-claims/containers/update-status-trip-tik-claim/update-status-trip-tik-claim.component';\r\nimport { ManageTripTikClaimComponent } from './features/trip-tiks-claims/containers/manage-trip-tik-claim/manage-trip-tik-claim.component';\r\nimport { ViewTripTikClaimComponent } from './features/trip-tiks-claims/containers/view-trip-tik-claim/view-trip-tik-claim.component';\r\nimport { TripTiksClaimsLogsComponent } from './features/trip-tiks-claims/containers/trip-tiks-claims-logs/trip-tiks-claims-logs.component';\r\nimport { ConfigResolver } from './shared/helpers/config.resolver';\r\nimport { TripTikClaimAttachmentsComponent } from './features/trip-tiks-claims/containers/trip-tik-claim-attachments/trip-tik-claim-attachments.component';\r\nimport { RecoverPasswordComponent } from './core/components/recover-password/recover-password.component';\r\nimport { CustomsPortsComponent } from './features/lookups/containers/customs-ports/customs-ports.component';\r\nimport { PursuingZonesComponent } from './features/lookups/containers/pursuing-zones/pursuing-zones.component';\r\nimport { ExpiredDocumentsQueryComponent } from './features/issuing/_shared/containers/expired-documents-query/expired-documents-query.component';\r\nimport { ViewAccountComponent } from './features/accounts/containers/view-account/view-account.component';\r\nimport { IssuedDocumentsQueryComponent } from './features/issuing/_shared/containers/issued-documents-query/issued-documents-query.component';\r\nimport { ELicensesComponent } from './features/issuing/int-licenses/containers/e-licenses/e-licenses.component';\r\nimport { CouponManagementComponent } from './features/issuing/coupon-management/containers/coupon-management/coupon-management.component';\r\nimport { ViewCouponManagementComponent } from './features/issuing/coupon-management/containers/view-coupon-management/view-coupon-management.component';\r\nimport { ManageCouponManagementComponent } from './features/issuing/coupon-management/containers/manage-coupon-management/manage-coupon-management.component';\r\nimport { ViewLicenseDetailComponent } from './features/issuing/coupon-management/containers/view-license-detail/view-license-detail.component';\r\n//import { AppConfigResolver } from './shared/helpers/app-config.resolver';\r\n\r\nconst routes: Routes = [\r\n { path: 'verify/:key', data: { title: '_APP_TITLE' }, component: VerificationComponent },\r\n { path: 'verify-license/:key', redirectTo: '/verify/:key' }, //old-system\r\n { path: 'login', data: { title: '_APP_TITLE' }, component: LoginComponent, resolve: { x: TranslationResolver/*, y: AppConfigResolver */ }, runGuardsAndResolvers: 'always' },\r\n { path: 'recover-password', data: { title: '_APP_TITLE' }, component: RecoverPasswordComponent, resolve: { x: TranslationResolver/*, y: AppConfigResolver */ }, runGuardsAndResolvers: 'always' },\r\n { path: '', pathMatch: 'full', redirectTo: '/ar' },\r\n {\r\n path: ':lang', canActivate: [AuthGuard], component: MainComponent, resolve: { x: TranslationResolver/*, y: AppConfigResolver*/, z: ConfigResolver }, children: [\r\n { path: '', data: { title: '_APP_TITLE' }, canActivate: [AuthGuard], pathMatch: 'full', component: DashboardComponent }, //home component\r\n {\r\n path: 'lookups', canActivate: [AuthGuard], data: { title: 'LKP_LINK_BASIC_DATA', securityRoles: [Role.LOOKUPS_CREATE, Role.LOOKUPS_UPDATE, Role.LOOKUPS_DELETE] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'countries' }, //default route for parent\r\n { path: 'countries', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_COUNTRIES' }, component: CountriesComponent, runGuardsAndResolvers: 'always' },\r\n { path: 'cities', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_CITIES' }, component: CitiesComponent },\r\n { path: 'account-statuses', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_ACCOUNT_STATUSES' }, component: AccountStatusesComponent },\r\n //{ path: 'account-types', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_ACCOUNT_TYPES' }, component: AccountTypesComponent },\r\n { path: 'stock-types', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_STOCK_TYPES' }, component: StockTypesComponent },\r\n { path: 'vehicle-colors', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_VEHICLE_COLORS' }, component: VehicleColorsComponent },\r\n { path: 'vehicle-makes', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_VEHICLE_MAKES' }, component: VehicleMakesComponent },\r\n { path: 'vehicle-types', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_VEHICLE_TYPES' }, component: VehicleTypesComponent },\r\n { path: 'vehicle-models', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_VEHICLE_MODELS' }, component: VehicleModelsComponent },\r\n { path: 'currencies', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_CURRENCIES' }, component: CurrenciesComponent },\r\n { path: 'customs-ports', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_CUSTOMS_PORTS' }, component: CustomsPortsComponent },\r\n { path: 'pursuing-zones', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_PURSUING_ZONES' }, component: PursuingZonesComponent }\r\n ]\r\n },\r\n {\r\n path: 'stocks', canActivate: [AuthGuard], data: { title: 'STK_TITLE_STOCK' }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'totals' }, //default route for parent\r\n { path: 'totals', canActivate: [AuthGuard], data: { title: 'STK_TITLE_STOCKS_TOTALS', securityRoles: [Role.STOCKS_TRANSACTIONS_READ] }, component: StocksTotalsComponent },\r\n { path: 'totals/:accountId', canActivate: [AuthGuard], data: { title: 'STK_TITLE_STOCKS_TOTALS', securityRoles: [Role.STOCKS_TRANSACTIONS_READ] }, component: StocksTotalsComponent },\r\n { path: 'available', canActivate: [AuthGuard], data: { title: 'STK_TITLE_AVAILABLE_STOCKS', securityRoles: [Role.STOCKS_TRANSACTIONS_CREATE, Role.STOCKS_UNDO_REQUESTS_CREATE, Role.INT_LICENSES_CREATE, Role.INT_LICENSES_UPDATE, Role.TRIPTIKS_CREATE, Role.TRIPTIKS_UPDATE] }, component: StocksAvailableComponent },\r\n { path: 'available/:accountId', canActivate: [AuthGuard], data: { title: 'STK_TITLE_AVAILABLE_STOCKS', securityRoles: [Role.STOCKS_TRANSACTIONS_CREATE, Role.STOCKS_UNDO_REQUESTS_CREATE, Role.INT_LICENSES_CREATE, Role.INT_LICENSES_UPDATE, Role.TRIPTIKS_CREATE, Role.TRIPTIKS_UPDATE] }, component: StocksAvailableComponent },\r\n { path: 'system-available', canActivate: [AuthGuard], data: { title: 'STK_TITLE_AVAILABLE_SYSTEM_STOCKS', securityRoles: [Role.SYSTEM_STOCKS_READ], mode: 'SYSTEM' }, component: StocksAvailableComponent },\r\n\r\n { path: 'transactions', canActivate: [AuthGuard], data: { title: 'STK_TITLE_TRANSACTIONS', securityRoles: [Role.STOCKS_TRANSACTIONS_READ] }, component: TransactionsComponent },\r\n { path: 'transact', canActivate: [AuthGuard], data: { title: 'STK_TITLE_TRANSACT', securityRoles: [Role.STOCKS_TRANSACTIONS_CREATE] }, component: TransactComponent },\r\n { path: 'populate', canActivate: [AuthGuard], data: { title: 'STK_TITLE_POPULATE', securityRoles: [Role.SYSTEM_STOCKS_CREATE], mode: 'POPULATE' }, component: PopulateComponent },\r\n { path: 'depopulate', canActivate: [AuthGuard], data: { title: 'STK_TITLE_DEPOPULATE', securityRoles: [Role.SYSTEM_STOCKS_DELETE], mode: 'DEPOPULATE' }, component: PopulateComponent },\r\n {\r\n path: 'undo', canActivate: [AuthGuard], data: { title: 'STK_TITLE_UNDOING' }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'try' }, //default route for parent\r\n { path: 'try', canActivate: [AuthGuard], data: { title: 'STK_TITLE_UNDO_REQUEST', securityRoles: [Role.STOCKS_UNDO_REQUESTS_CREATE] }, component: UndoTryComponent },\r\n { path: 'requests', canActivate: [AuthGuard], data: { title: 'STK_TITLE_UNDO_REQUESTS', securityRoles: [Role.STOCKS_UNDO_REQUESTS_READ] }, component: UndoRequestsComponent }\r\n ]\r\n },\r\n ]\r\n },\r\n {\r\n path: 'accounts', canActivate: [AuthGuard], data: { title: 'ACC_TITLE_ACCOUNTS', securityRoles: [Role.ACCOUNTS_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n // { path: 'me', canActivate: [AuthGuard], data: { title: 'ACC_TITLE_USER_PROFILE' }, component: UserProfileComponent }, //default route for parent\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: AccountsComponent },\r\n { path: 'view/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ViewAccountComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', securityRoles: [Role.ACCOUNTS_CREATE] }, component: ManageAccountComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', securityRoles: [Role.ACCOUNTS_UPDATE] }, component: ManageAccountComponent },\r\n ]\r\n },\r\n {\r\n path: 'security', canActivate: [AuthGuard], data: { title: 'SEC_TITLE_SECURITY' }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'groups' }, //default route for parent\r\n {\r\n path: 'groups', canActivate: [AuthGuard], data: { title: 'SEC_TITLE_SECURITY_GROUPS', securityRoles: [Role.SECURITY_GROUPS_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW', mode: 'LIST' }, component: SecurityGroupsComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.SECURITY_GROUPS_CREATE] }, component: SecurityGroupsComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', mode: 'UPDATE', securityRoles: [Role.SECURITY_GROUPS_UPDATE] }, component: SecurityGroupsComponent },\r\n ]\r\n },\r\n {\r\n path: 'users', canActivate: [AuthGuard], data: {\r\n title: 'SEC_LINK_USERS', securityRoles: [Role.USERS_READ]\r\n }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' }, //default route for parent\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: AccountUsersComponent },\r\n { path: 'list/:accountId', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: AccountUsersComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', securityRoles: [Role.USERS_UPDATE] }, component: ManageUserComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', securityRoles: [Role.USERS_CREATE] }, component: ManageUserComponent },\r\n { path: 'groups', canActivate: [AuthGuard], data: { title: 'SEC_TITLE_USERS_GROUPS', securityRoles: [Role.USERS_SECURITY_GROUPS_READ] }, component: UsersGroupsComponent },\r\n ]\r\n },\r\n ]\r\n },\r\n {\r\n path: 'issuing', canActivate: [AuthGuard], data: { title: '_TITLE_ISSUING', securityRoles: [Role.INT_LICENSES_READ, Role.TRIPTIKS_READ] }, children: [\r\n { path: 'query', canActivate: [AuthGuard], data: { title: 'ISS_TITLE_ISSUED_DOCUMENTS_QUERY' }, component: IssuedDocumentsQueryComponent },\r\n { path: 'revoke/requests', canActivate: [AuthGuard], data: { title: 'ISS_TITLE_DOCUMENTS_REVOKE_REQUESTS', securityRoles: [Role.INT_LICENSES_REVOKE_REQUESTS_READ, Role.TRIPTIKS_REVOKE_REQUESTS_READ] }, component: DocumentsRevokeRequestsComponent },\r\n {\r\n path: 'int-licenses', canActivate: [AuthGuard], data: { title: 'LIC_TITLE_LICENSES', securityRoles: [Role.INT_LICENSES_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: IntLicensesComponent },\r\n { path: 'view/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ViewIntLicenseComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.INT_LICENSES_CREATE] }, component: ManageIntLicenseComponent },\r\n { path: 'add/:id', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.INT_LICENSES_CREATE] }, component: ManageIntLicenseComponent },\r\n { path: 'clone/:key', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'CLONE', securityRoles: [Role.INT_LICENSES_CREATE] }, component: ManageIntLicenseComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', mode: 'UPDATE', securityRoles: [Role.INT_LICENSES_UPDATE] }, component: ManageIntLicenseComponent },\r\n ]\r\n },\r\n {\r\n // \r\n path: 'coupon-management', canActivate: [AuthGuard], data: { title: 'LIC_TITLE_COUPON_MANAGEMENT', securityRoles: [Role.INT_LICENSES_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: CouponManagementComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.INT_LICENSES_CREATE] }, component: ManageCouponManagementComponent },\r\n { path: 'add/:id', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.INT_LICENSES_CREATE] }, component: ManageCouponManagementComponent },\r\n { path: 'view/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ViewLicenseDetailComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', mode: 'UPDATE', securityRoles: [Role.INT_LICENSES_UPDATE] }, component: ManageCouponManagementComponent },\r\n ]\r\n },\r\n {\r\n // \r\n path: 'e-licenses', canActivate: [AuthGuard], data: { title: 'LIC_TITLE_E_LICENSES', securityRoles: [Role.INT_LICENSES_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ELicensesComponent },\r\n { path: 'view/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ViewIntLicenseComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', mode: 'UPDATE', securityRoles: [Role.INT_LICENSES_UPDATE] }, component: ManageIntLicenseComponent },\r\n ]\r\n },\r\n {\r\n path: 'trip-tiks', canActivate: [AuthGuard], data: { title: 'TRP_TITLE_TRIPTIKS', securityRoles: [Role.TRIPTIKS_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: TripTiksComponent },\r\n { path: 'view/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ViewTripTikComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.TRIPTIKS_CREATE] }, component: ManageTripTikComponent },\r\n { path: 'add/:id', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.TRIPTIKS_CREATE] }, component: ManageTripTikComponent },\r\n { path: 'clone/:key', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'CLONE', securityRoles: [Role.TRIPTIKS_CREATE] }, component: ManageTripTikComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', mode: 'UPDATE', securityRoles: [Role.TRIPTIKS_UPDATE] }, component: ManageTripTikComponent },\r\n ]\r\n },\r\n ]\r\n },\r\n {\r\n path: 'trip-tiks-claims', canActivate: [AuthGuard], data: { title: 'TRP_CLM_TITLE_TRIPTIK_CLAIMS', securityRoles: [Role.TRIPTIKS_CLAIMS_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: TripTiksClaimsComponent },\r\n { path: 'view/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ViewTripTikClaimComponent },\r\n { path: 'view/attachments/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: TripTikClaimAttachmentsComponent },\r\n { path: 'update-status/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE_STATUS', securityRoles: [Role.TRIPTIKS_CLAIMS_UPDATE] }, component: UpdateStatusTripTikClaimComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.TRIPTIKS_CLAIMS_CREATE] }, component: ManageTripTikClaimComponent },\r\n { path: 'logs', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW', securityRoles: [Role.TRIPTIKS_CLAIMS_LOGS_READ] }, component: TripTiksClaimsLogsComponent },\r\n ]\r\n },\r\n\r\n { path: 'me', canActivate: [AuthGuard], data: { title: 'ACC_TITLE_USER_PROFILE' }, component: UserProfileComponent },\r\n ]\r\n },\r\n // { path: 'uploads/:stockTypeId/:accountId/:objectId', canActivate: [AuthGuard], data: { title: 'ACC_TITLE_USER_PROFILE' }, component: DownloadComponent },\r\n //{ path: 'not-found', component: NotFoundComponent },\r\n { path: '**', component: NotFoundComponent },\r\n\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, {\r\n // anchorScrolling: 'enabled',\r\n onSameUrlNavigation: 'reload'\r\n\r\n })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { ActivatedRoute, Router, NavigationEnd } from '@angular/router';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { Component } from '@angular/core';\r\nimport { filter, map, throwIfEmpty } from 'rxjs/operators';\r\nimport { BreadcrumbService } from './shared/services/breadcrumb.service';\r\nimport { LoadingService } from './shared/services/loading';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from './core/auth/auth.service';\r\nimport { StaticConfig } from './features/lookups/services/config';\r\n// import { AlertService2 } from './shared/services/alert.service2';\r\n// import * as AppConfig from '../assets/config.json'\r\n\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n providers: [StaticConfig]\r\n})\r\nexport class AppComponent {\r\n\r\n loading: boolean = true;\r\n styleLoading: boolean = true;\r\n\r\n constructor(\r\n private loader: LoadingService,\r\n private titleService: Title,\r\n private breadcrumbService: BreadcrumbService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private translate: TranslateService){\r\n //private config: StaticConfig) {\r\n\r\n this.translate.setDefaultLang('ar');\r\n //this.config.get();\r\n //const _lang = this.route.snapshot.paramMap.get('lang');\r\n ////console.log(_lang);\r\n //this.translate.use(_lang);\r\n }\r\n\r\n ngOnInit() {\r\n // const _config = config.get('apiBaseUrl');\r\n //console.log(AppConfig.apiBaseUrl);\r\n //await this.config.get();\r\n AuthService.authActivity.subscribe(loggedin => {\r\n // //console.warn(loggedin);\r\n // if (!loggedin) {\r\n // //console.log('should log out now');\r\n // }\r\n });\r\n\r\n // this.loader.styleLoading.subscribe(status => {\r\n // this.styleLoading = status;\r\n // })\r\n\r\n LoadingService.style.subscribe(status => {\r\n this.styleLoading = status;\r\n });\r\n\r\n this.loader.navLoading.subscribe(status => {\r\n this.loading = status;\r\n });\r\n\r\n // this.router\r\n // .events.pipe(\r\n // filter(event => event instanceof NavigationEnd),\r\n // map(() => {\r\n // //console.log('ev');\r\n // let _titles = [];\r\n // let _titlesLinks: string[][] = [[]];\r\n // let child = this.route.firstChild;\r\n // let _url = `/${this.translate.currentLang}/`;\r\n // let level = 0;\r\n\r\n // const _lang = child.snapshot.paramMap.get('lang');\r\n // //console.log(_lang, this.translate.currentLang);\r\n // // if (this.translate.currentLang != _lang)\r\n // this.translate.use(_lang);\r\n\r\n // //console.log(child);\r\n // if (this.router.url == _url) {\r\n // const transalted = this.translate.instant(child.snapshot.firstChild.data['title']);\r\n // //console.log(transalted)\r\n // _titles.push(transalted);\r\n // } else if (this.router.url == '/login') {\r\n // const transalted = this.translate.instant(child.snapshot.data['title']);\r\n // //console.log(transalted)\r\n // // this.translate.get(child.snapshot.data['title'])\r\n // // .subscribe(val => {\r\n // // //console.log(val);\r\n // // _titles.push(val);\r\n // // })\r\n // _titles.push(this.translate.instant(child.snapshot.data['title']));\r\n // }\r\n // else {\r\n\r\n // while (child.firstChild) {\r\n // child = child.firstChild;\r\n // ////console.log(child);\r\n // if (child.snapshot.data['title']) {\r\n // if (level <= 1)\r\n // _titles.push(this.translate.instant(child.snapshot.data['title']));\r\n\r\n // _url += child.snapshot.url[0] + '/';\r\n // _titlesLinks.push([this.translate.instant(child.snapshot.data['title']), _url]);\r\n // }\r\n // level++;\r\n // }\r\n // }\r\n // //console.warn(_titlesLinks);\r\n // this.breadcrumbService.setLinks(_titlesLinks);\r\n // return _titles.join(' | ');\r\n // })\r\n // ).subscribe((ttl: string) => {\r\n // //console.warn(ttl);\r\n // this.titleService.setTitle(ttl);\r\n // });\r\n }\r\n ngAfterViewInit() {\r\n // AlertService2.init();\r\n }\r\n}\r\n","import { BrowserModule, Title } from '@angular/platform-browser';\r\nimport { CommonModule, LOCATION_INITIALIZED } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgModule, Injector, APP_INITIALIZER } from '@angular/core';\r\nimport { HttpClientModule, HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { TranslateModule, TranslateLoader, TranslateService, TranslateParser } from '@ngx-translate/core';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { UrlSerializer } from '@angular/router';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { LoggerModule, NgxLoggerLevel } from 'ngx-logger';\r\nimport { LightboxModule } from 'ngx-lightbox';\r\nimport { ChartsModule } from 'ng2-charts';\r\nimport { NgxKjuaModule } from 'ngx-kjua';\r\nimport { NgxPrintModule } from 'ngx-print';\r\nimport { MomentDateModule, MatMomentDateModule, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter'\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\n//import { AutocompleteLibModule } from 'angular-ng-autocomplete';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\n\r\n//material\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CdkTreeModule } from '@angular/cdk/tree';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatNativeDateModule, MatRippleModule, MAT_DATE_FORMATS, MAT_DATE_LOCALE, DateAdapter } from '@angular/material/core';\r\nimport { MatPaginatorModule, MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSnackBarModule, MatSnackBar, MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n\r\n//pipes\r\nimport { StringJoinPipe } from './shared/pipes/string-join.pipe';\r\nimport { ArrayMapPipe } from './shared/pipes/array-map.pipe';\r\nimport { ParamsTranslatePipe } from './shared/pipes/params-translate.pipe';\r\n\r\n//directives\r\nimport { DragDirective } from './shared/directives/drag.directive';\r\nimport { ConfirmTemplateDirective } from './shared/directives/modal.directive';\r\n\r\n//services\r\nimport { UrlSerializerService } from './core/url-serializer.service';\r\nimport { ConfirmService } from './shared/services/modal.service';\r\nimport { AlertService } from './shared/services/alert.service';\r\nimport { ValidationService } from './shared/services/validation.service';\r\nimport { LoadingService } from './shared/services/loading';\r\nimport { AuthGuardService } from './core/auth/auth-guard.service';\r\nimport { BreadcrumbService } from './shared/services/breadcrumb.service';\r\nimport { SidenavService } from './core/services/sidenav.service';\r\nimport { AuthService } from './core/auth/auth.service';\r\nimport { ConfirmState } from './shared/models/modal';\r\nimport { LangMatPaginatorIntl } from './shared/helpers/lang-paginator-intl';\r\nimport { httpInterceptorProviders, AuthInterceptor } from './core/auth/auth-interceptor';\r\nimport { ApiHandler } from './core/api-handler';\r\n\r\n//components\r\nimport { BodyLoaderComponent } from './shared/components/body-loader/body-loader.component';\r\nimport { CountriesComponent } from './features/lookups/containers/countries/countries.component';\r\nimport { FooterComponent } from './core/components/footer/footer.component';\r\nimport { HeaderComponent } from './core/components/header/header.component';\r\nimport { LoginComponent } from './core/components/login/login.component';\r\nimport { MainComponent } from './core/components/main/main.component';\r\nimport { SidenavComponent } from './core/components/sidenav/sidenav.component';\r\nimport { BreadcrumbComponent } from './shared/components/breadcrumb/breadcrumb.component';\r\nimport { AccountsComponent } from './features/accounts/containers/accounts/accounts.component';\r\nimport { SecurityGroupsComponent } from './features/security/containers/security-groups/security-groups.component';\r\nimport { UsersGroupsComponent } from './features/security/containers/users-groups/users-groups.component';\r\nimport { TransactionsComponent } from './features/stock/containers/transactions/transactions.component';\r\nimport { UndoRequestsComponent } from './features/stock/containers/undo-requests/undo-requests.component';\r\nimport { UndoTryComponent } from './features/stock/containers/undo-try/undo-try.component';\r\nimport { AccountUsersComponent } from './features/security/containers/account-users/account-users.component';\r\nimport { DialogComponent } from './shared/components/dialog/dialog.component';\r\nimport { UserProfileComponent } from './features/accounts/containers/user-profile/user-profile.component';\r\nimport { ConfirmModalComponent } from './shared/components/modal/modal.component';\r\nimport { ManageAccountComponent } from './features/accounts/containers/manage-account/manage-account.component';\r\nimport { UnderConstructionComponent } from './shared/components/under-construction/under-construction.component';\r\nimport { NotFoundComponent } from './shared/components/not-found/not-found.component';\r\nimport { ManageUserComponent } from './features/security/containers/manage-user/manage-user.component';\r\nimport { StockSliderComponent } from './features/stock/components/stock-slider/stock-slider.component';\r\nimport { ValidationErrorComponent } from './shared/components/validation-error/validation-error.component';\r\nimport { AlertComponent } from './shared/components/alert/alert.component';\r\nimport { ManageIntLicenseComponent } from './features/issuing/int-licenses/containers/manage-int-license/manage-int-license.component';\r\nimport { IntLicensesComponent } from './features/issuing/int-licenses/containers/int-licenses/int-licenses.component';\r\nimport { ViewIntLicenseComponent } from './features/issuing/int-licenses/containers/view-int-license/view-int-license.component';\r\nimport { IntLicensePrintComponent } from './features/issuing/int-licenses/components/int-license-print/int-license-print.component';\r\nimport { TripTiksComponent } from './features/issuing/trip-tik/containers/trip-tiks/trip-tiks.component';\r\nimport { ManageTripTikComponent } from './features/issuing/trip-tik/containers/manage-trip-tik/manage-trip-tik.component';\r\nimport { ViewTripTikComponent } from './features/issuing/trip-tik/containers/view-trip-tik/view-trip-tik.component';\r\nimport { CommitmentPrintComponent } from './features/issuing/int-licenses/components/commitment-print/commitment-print.component';\r\nimport { TripTikPrintComponent } from './features/issuing/trip-tik/components/trip-tik-print/trip-tik-print.component';\r\nimport { ReceiptPrintComponent } from './features/issuing/trip-tik/components/receipt-print/receipt-print.component';\r\nimport { VehicleTypesComponent } from './features/lookups/containers/vehicle-types/vehicle-types.component';\r\nimport { VehicleModelsComponent } from './features/lookups/containers/vehicle-models/vehicle-models.component';\r\nimport { CurrenciesComponent } from './features/lookups/containers/currencies/currencies.component';\r\nimport { TripTiksClaimsComponent } from './features/trip-tiks-claims/containers/trip-tiks-claims/trip-tiks-claims.component';\r\nimport { ViewTripTikClaimComponent } from './features/trip-tiks-claims/containers/view-trip-tik-claim/view-trip-tik-claim.component';\r\nimport { DocumentsRevokeRequestsComponent } from './features/issuing/_shared/containers/documents-revoke-requests/documents-revoke-requests.component';\r\nimport { VerificationComponent } from './features/issuing/_shared/containers/verification/verification.component';\r\nimport { TransactComponent } from './features/stock/containers/transact/transact.component';\r\nimport { StocksTotalsComponent } from './features/stock/containers/stocks-totals/stocks-totals.component';\r\nimport { StocksAvailableComponent } from './features/stock/containers/stocks-available/stocks-available.component';\r\nimport { PopulateComponent } from './features/stock/containers/populate/populate.component';\r\nimport { VehicleMakesComponent } from './features/lookups/containers/vehicle-makes/vehicle-makes.component';\r\nimport { VehicleColorsComponent } from './features/lookups/containers/vehicle-colors/vehicle-colors.component';\r\nimport { StockTypesComponent } from './features/lookups/containers/stock-types/stock-types.component';\r\nimport { AccountTypesComponent } from './features/lookups/containers/account-types/account-types.component';\r\nimport { AccountStatusesComponent } from './features/lookups/containers/account-statuses/account-statuses.component';\r\nimport { CitiesComponent } from './features/lookups/containers/cities/cities.component';\r\nimport { DashboardComponent } from './features/statistics/containers/dashboard/dashboard.component';\r\nimport { UpdateStatusTripTikClaimComponent } from './features/trip-tiks-claims/containers/update-status-trip-tik-claim/update-status-trip-tik-claim.component';\r\nimport { ManageTripTikClaimComponent } from './features/trip-tiks-claims/containers/manage-trip-tik-claim/manage-trip-tik-claim.component';\r\nimport { TripTiksClaimsLogsComponent } from './features/trip-tiks-claims/containers/trip-tiks-claims-logs/trip-tiks-claims-logs.component';\r\nimport { TranslationResolver } from './shared/helpers/translation.resolver';\r\nimport { ConfigResolver } from './shared/helpers/config.resolver';\r\nimport { CustomDateAdapter } from './shared/helpers/custom-date-adapter';\r\nimport { TripTikClaimAttachmentsComponent } from './features/trip-tiks-claims/containers/trip-tik-claim-attachments/trip-tik-claim-attachments.component';\r\nimport { RecoverPasswordComponent } from './core/components/recover-password/recover-password.component';\r\nimport { PursuingZonesComponent } from './features/lookups/containers/pursuing-zones/pursuing-zones.component';\r\nimport { CustomsPortsComponent } from './features/lookups/containers/customs-ports/customs-ports.component';\r\nimport { LicTransactionsPrintComponent } from './features/stock/components/lic-transactions-print/lic-transactions-print.component';\r\nimport { TrpTransactionsPrintComponent } from './features/stock/components/trp-transactions-print/trp-transactions-print.component';\r\nimport { EndPoint } from './core/models/enums/end-point';\r\nimport { ExpiredDocumentsQueryComponent } from './features/issuing/_shared/containers/expired-documents-query/expired-documents-query.component';\r\nimport { ViewAccountComponent } from './features/accounts/containers/view-account/view-account.component';\r\nimport { IssuedDocumentsQueryComponent } from './features/issuing/_shared/containers/issued-documents-query/issued-documents-query.component';\r\nimport { environment } from 'src/environments/environment';\r\nimport { TransactionDetailsLabelComponent } from './features/stock/components/transaction-details-label/transaction-details-label.component';\r\nimport { ELicensesComponent } from './features/issuing/int-licenses/containers/e-licenses/e-licenses.component';\r\nimport { CouponManagementComponent } from './features/issuing/coupon-management/containers/coupon-management/coupon-management.component';\r\nimport { ViewCouponManagementComponent } from './features/issuing/coupon-management/containers/view-coupon-management/view-coupon-management.component';\r\nimport { ManageCouponManagementComponent } from './features/issuing/coupon-management/containers/manage-coupon-management/manage-coupon-management.component';\r\nimport { ViewLicenseDetailComponent } from './features/issuing/coupon-management/containers/view-license-detail/view-license-detail.component';\r\n\r\n//import { AppConfigResolver } from './shared/helpers/app-config.resolver';\r\n\r\n// AoT requires an exported function for factories\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n //return new TranslateHttpLoader(http);\r\n //return new TranslateHttpLoader(http, './assets/_lang/', '.json');\r\n return new TranslateHttpLoader(http, `${environment.apiBaseUrl}/resources/`, '.json');\r\n\r\n\r\n}\r\n\r\nexport function appInitializerFactory(translate: TranslateService, injector: Injector) {\r\n return () => new Promise((resolve: any) => {\r\n const locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve(null));\r\n locationInitialized.then(() => {\r\n const langToSet = 'ar'\r\n translate.setDefaultLang('ar');\r\n translate.use(langToSet).subscribe(() => {\r\n //console.info(`Successfully initialized '${langToSet}' language.'`);\r\n }, err => {\r\n //console.error(`Problem with '${langToSet}' language initialization.'`);\r\n }, () => {\r\n resolve(null);\r\n });\r\n });\r\n });\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n CountriesComponent,\r\n HeaderComponent,\r\n LoginComponent,\r\n MainComponent,\r\n SidenavComponent,\r\n FooterComponent,\r\n BreadcrumbComponent,\r\n AccountsComponent,\r\n ManageAccountComponent,\r\n SecurityGroupsComponent,\r\n UsersGroupsComponent,\r\n CitiesComponent,\r\n AccountStatusesComponent,\r\n AccountTypesComponent,\r\n StockTypesComponent,\r\n VehicleColorsComponent,\r\n VehicleMakesComponent,\r\n PopulateComponent,\r\n StocksAvailableComponent,\r\n StocksTotalsComponent,\r\n TransactComponent,\r\n TransactionsComponent,\r\n UndoRequestsComponent,\r\n UndoTryComponent,\r\n AccountUsersComponent,\r\n DialogComponent,\r\n DashboardComponent,\r\n UserProfileComponent,\r\n UnderConstructionComponent,\r\n NotFoundComponent,\r\n ConfirmTemplateDirective,\r\n ConfirmModalComponent,\r\n ManageUserComponent,\r\n BodyLoaderComponent,\r\n StockSliderComponent,\r\n ValidationErrorComponent,\r\n AlertComponent,\r\n ParamsTranslatePipe,\r\n ManageIntLicenseComponent,\r\n IntLicensesComponent,\r\n LicTransactionsPrintComponent,\r\n TrpTransactionsPrintComponent,\r\n DragDirective,\r\n ViewIntLicenseComponent,\r\n IntLicensePrintComponent,\r\n TripTiksComponent,\r\n ManageTripTikComponent,\r\n ViewTripTikComponent,\r\n CommitmentPrintComponent,\r\n TripTikPrintComponent,\r\n ReceiptPrintComponent,\r\n VehicleTypesComponent,\r\n VehicleModelsComponent,\r\n CurrenciesComponent,\r\n TripTiksClaimsComponent,\r\n ViewTripTikClaimComponent,\r\n VerificationComponent,\r\n StringJoinPipe,\r\n ArrayMapPipe,\r\n DocumentsRevokeRequestsComponent,\r\n UpdateStatusTripTikClaimComponent,\r\n ManageTripTikClaimComponent,\r\n TripTiksClaimsLogsComponent,\r\n TripTikClaimAttachmentsComponent,\r\n RecoverPasswordComponent,\r\n PursuingZonesComponent,\r\n CustomsPortsComponent,\r\n ExpiredDocumentsQueryComponent,\r\n ViewAccountComponent,\r\n IssuedDocumentsQueryComponent,\r\n TransactionDetailsLabelComponent,\r\n ELicensesComponent,\r\n CouponManagementComponent,\r\n ViewCouponManagementComponent,\r\n ManageCouponManagementComponent,\r\n ViewLicenseDetailComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n NgbModule,\r\n HttpClientModule,\r\n AppRoutingModule,\r\n A11yModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MomentDateModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n MatAutocompleteModule,\r\n PortalModule,\r\n ScrollingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n LightboxModule,\r\n ChartsModule,\r\n LoggerModule.forRoot({ serverLoggingUrl: '/api/logs', level: NgxLoggerLevel.DEBUG, serverLogLevel: NgxLoggerLevel.ERROR }),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n },\r\n defaultLanguage: 'ar'\r\n }),\r\n NgxPrintModule,\r\n NgxKjuaModule,\r\n NgSelectModule,\r\n ColorPickerModule\r\n // AutocompleteLibModule\r\n ],\r\n providers: [\r\n ApiHandler,\r\n AuthService,\r\n httpInterceptorProviders,\r\n {\r\n provide: UrlSerializer,\r\n useClass: UrlSerializerService\r\n },\r\n { provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 5000 } },\r\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } },\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-GB' },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useValue: {\r\n parse: {\r\n dateInput: ['L', 'l']\r\n },\r\n display: {\r\n dateInput: ['L', 'l'],\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n }\r\n }\r\n },\r\n { provide: DateAdapter, useClass: CustomDateAdapter },\r\n // {\r\n // provide: APP_INITIALIZER,\r\n // multi: true,\r\n // deps: [AppConfigService],\r\n // useFactory: (appConfigService: AppConfigService) => {\r\n // return () => {\r\n // //Make sure to return a promise!\r\n // return appConfigService.loadAppConfig();\r\n // };\r\n // }\r\n // },\r\n AuthGuardService,\r\n LoadingService,\r\n StringJoinPipe,\r\n SidenavService,\r\n { provide: MatPaginatorIntl, useClass: LangMatPaginatorIntl },\r\n { provide: ValidationService, deps: [TranslateService] },\r\n TranslationResolver,\r\n //AppConfigResolver,\r\n ConfigResolver,\r\n Title,\r\n BreadcrumbService,\r\n ConfirmService,\r\n ConfirmState,\r\n AlertService\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n\r\n\r\n","import { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Injectable, Injector } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, tap, map } from 'rxjs/operators';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from './auth/auth.service';\r\nimport { Language } from './models/enums/language';\r\nimport { EndPoint } from './models/enums/end-point';\r\nimport { ValidationDto } from './models/validation';\r\nimport { AlertService } from '../shared/services/alert.service';\r\n// import { AlertService2 } from '../shared/services/alert.service2';\r\nimport { isArray } from 'util';\r\nimport { Login } from './models/login';\r\nimport { environment } from 'src/environments/environment';\r\n// import { AppConfig } from './services/app-config.service';\r\n//import * as AppConfig from '../../assets/config.json';\r\n// import { AlertService2 } from '../shared/services/alert.service2';\r\n\r\nlet httpOptions = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n // \"Accept\": \"application/json\",\r\n \"Accept\": \"*/*\",\r\n \"Authorization\": \"\",\r\n \"Accept-Languages\": \"ar\"\r\n }),\r\n body: {},\r\n responseType: \"json\",\r\n observe: \"body\",\r\n withCredentials: false,\r\n reportProgress: false,\r\n params: null\r\n};\r\nclass HttpOptions {\r\n headers?: HttpHeaders | { [header: string]: string | string[]; };\r\n observe?: \"body\";\r\n params?: HttpParams | { [param: string]: string | string[]; };\r\n reportProgress?: boolean;\r\n responseType?: \"json\";\r\n withCredentials?: boolean;\r\n}\r\n\r\n\r\n@Injectable()\r\nexport class ApiHandler {\r\n //API_BASE_URL: string;\r\n _lang: Language; //todo: change with application changing language;\r\n _apiBaseUrl: string;\r\n //options_;\r\n //auth: AuthService;\r\n //alert: AlertService;\r\n\r\n constructor(private http: HttpClient, private translate: TranslateService, private alert: AlertService) {\r\n ////console.log(this.http, translate, _snackBar);\r\n\r\n this._apiBaseUrl = environment.apiBaseUrl; //AppConfig.apiBaseUrl;\r\n // //console.log(this.translate);\r\n // console.warn(this.translate.currentLang);\r\n // console.warn(this.translate.store.currentLang);\r\n\r\n // const _currentLang = this.translate.store.currentLang;\r\n // //console.log(_currentLang);\r\n\r\n this.translate.store.onLangChange.subscribe(t => {\r\n //console.log(t.lang);\r\n //this._lang = translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this._lang = t.lang == 'ar' ? Language.Arabic : Language.English;\r\n (httpOptions.headers).set(\"Accept-Languages\", t.lang);\r\n\r\n\r\n // .append(\"\",\"\");\r\n\r\n //todo: refactor\r\n httpOptions.headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n // \"Accept\": \"application/json\",\r\n \"Accept\": \"*/*\",\r\n \"Authorization\": \"\",\r\n \"Accept-Languages\": t.lang\r\n });\r\n\r\n //console.log(httpOptions.headers);\r\n\r\n });\r\n\r\n ////console.log(this.alert);\r\n //this.API_BASE_URL = environment.apiBaseUrl;\r\n\r\n //this._lang = translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n\r\n\r\n // (httpOptions.headers).set(\"Accept-Languages\", _currentLang);\r\n // //console.log((httpOptions.headers).get(\"Accept-Languages\"));\r\n\r\n // this.translate.onLangChange.subscribe(t => {\r\n // this._lang = t.lang == 'ar' ? Language.Arabic : Language.English;\r\n // (httpOptions.headers).set(\"Accept-Languages\", _currentLang);\r\n // //console.log((httpOptions.headers).get(\"Accept-Languages\"));\r\n // });\r\n }\r\n\r\n getAuthHeader() {\r\n return null; //todo: inject token\r\n }\r\n // handleError(err){\r\n // //console.log(err); //todo: handle errors\r\n // }\r\n\r\n\r\n public login(username: string, password: string) {\r\n return this.http.post(`${this._apiBaseUrl}/${EndPoint.AUTH}`, { username, password });\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n //console.log(err);\r\n let errorMessage = '';\r\n if (err.error instanceof ErrorEvent) {\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n errorMessage = `Server returned code: ${err.status}, error message is: ${err.message}`;\r\n }\r\n\r\n switch (err.status) {\r\n case 401:\r\n AuthService.logout();\r\n break;\r\n\r\n case 400:\r\n let messages = [];\r\n // for (let key in err.error)\r\n // for (let error of err.error[key])\r\n // messages.push(`${this.translate.instant(key)}: ${this.translate.instant(error)}`);\r\n\r\n for (let key in err.error)\r\n for (let error of err.error[key])\r\n messages.push(`${key}: ${error}`);\r\n this.alert._error(messages);\r\n break;\r\n\r\n case 404:\r\n window.location.href = `/${this.translate.currentLang}/not-found`;\r\n\r\n default: //500\r\n console.error(err);\r\n }\r\n\r\n\r\n\r\n return throwError(err.error);\r\n\r\n\r\n\r\n // if (err.status == 401) {\r\n\r\n // } else if (err.status == 400) {\r\n\r\n // }\r\n //this.alert.error(errorMessage);\r\n //AlertService2.error('testse');\r\n // //console.log(this.alert);\r\n // if (!this.alert)\r\n // this.alert = new AlertService(this._snackBar, this.translate);\r\n // this.alert = this.injector.get(AlertService);\r\n ////console.log(this.alert);\r\n ////console.log(this.http, this.translate, this._snackBar);\r\n //this._snackBar.open('test');\r\n //this.alert.error('test');\r\n ////console.log(isArray(err.error));\r\n\r\n //console.error(err);\r\n ////console.log(err);\r\n\r\n // for (let e in err.error) {\r\n // //console.log(err.error[e]);\r\n // //message += '
    ' + err.error[e][0];\r\n // //messages.push(err.error[e][0]);\r\n // }\r\n\r\n //if (!(err.error instanceof ProgressEvent)) {\r\n\r\n ////console.log(messages);\r\n\r\n //}\r\n\r\n\r\n }\r\n\r\n public validate(dto: ValidationDto): Observable {\r\n const _url = `${this._apiBaseUrl}/${EndPoint.ASYNC_VALIDATION}`;\r\n\r\n return this.http.post(_url, JSON.stringify(dto), httpOptions)\r\n .pipe(\r\n map(Boolean),\r\n catchError(this.handleError.bind(this))\r\n );\r\n }\r\n\r\n public get(url: EndPoint, params = null, queryParams: {} = null, localized: boolean = true): Observable {\r\n let _url = `${this._apiBaseUrl}/${url}`;\r\n if (params != undefined) {\r\n if (Array.isArray(params))\r\n params.forEach(p => _url += `/${p}`);\r\n else\r\n _url += `/${params}`;\r\n }\r\n\r\n //this.LANG = this.LANG ? Language.Arabic : this.LANG;\r\n if (queryParams) {\r\n for (const [index, [key, value]] of Object.entries(Object.entries(queryParams)))\r\n _url += `${Number(index) == 0 ? '?' : '&'}${key}=${value != undefined && value != null ? value : ''}`;\r\n\r\n if (_url.indexOf('lang') == -1 && localized)\r\n _url += `&lang=${this._lang}`;\r\n } else\r\n _url += localized ? `?lang=${this._lang}` : '';\r\n\r\n //console.warn(_url);\r\n //console.log(httpOptions);\r\n\r\n if (url == EndPoint.ISSUING_VERIFY) {\r\n // (httpOptions.headers).delete('authorization');\r\n // (httpOptions.headers).delete('content-Type');\r\n // const proxyurl = \"https://cors-anywhere.herokuapp.com/\";\r\n // _url = proxyurl + _url;\r\n httpOptions.headers = new HttpHeaders({\r\n \"Accept\": \"*/*\",\r\n \"Accept-Languages\": \"ar\",\r\n\r\n });\r\n }\r\n //console.log(httpOptions);\r\n\r\n return this.http.get(_url, httpOptions)\r\n .pipe(\r\n tap(data => data),\r\n catchError(this.handleError.bind(this))\r\n );\r\n }\r\n\r\n public create(url: EndPoint, object: TObject): Observable {\r\n const _url = `${this._apiBaseUrl}/${url}`;\r\n\r\n return this.http.post(_url, JSON.stringify(object), httpOptions)\r\n .pipe(\r\n map(data => data),\r\n catchError(this.handleError.bind(this))\r\n );\r\n }\r\n\r\n public update(url: EndPoint, object: any,/*, withId: boolean = true,*/ args: (number | string | boolean)[] = []): Observable {\r\n let _url = `${this._apiBaseUrl}/${url}`;\r\n //_url += withId ? `/${object.id}` : ``;\r\n\r\n if (args.length > 0)\r\n args.forEach(a => _url += `/${a}`);\r\n\r\n return this.http.put(_url, JSON.stringify(object), httpOptions)\r\n .pipe(\r\n map(Boolean),\r\n catchError(this.handleError.bind(this))\r\n );\r\n }\r\n\r\n public delete(url: EndPoint, id: number | string): Observable {\r\n const _url = `${this._apiBaseUrl}/${url}/${id}`;\r\n\r\n return this.http.delete(_url, httpOptions)\r\n .pipe(\r\n map(Boolean),\r\n catchError(this.handleError.bind(this))\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { AccountType } from '../models/enums/account-type';\r\n\r\n@Injectable()\r\nexport class AuthGuardService implements CanActivate {\r\n constructor(public auth: AuthService, private router: Router, private alert: AlertService) { }\r\n\r\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n if (this.auth.isAuthenticated()) {\r\n let securityRoles = _route.data.securityRoles ? _route.data.securityRoles as Role[] : [];\r\n if (securityRoles.length > 0) {\r\n for (let role of securityRoles) \r\n if (this.auth.currentUser.isInRole(role))\r\n return true;\r\n\r\n //this.alert.error('test');\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\r\n //this.router.navigate(['/login']);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n //todo: check if the return url is ar or en only, should skip\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\r\n return false;\r\n }\r\n}","import { AuthService } from './auth.service';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpHandler, HttpRequest, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { EndPoint } from '../models/enums/end-point';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n constructor(private auth: AuthService) { }\r\n\r\n intercept(req: HttpRequest,\r\n next: HttpHandler): Observable> {\r\n\r\n const idToken = localStorage.getItem(\"jwt_token;\" + environment.apiBaseUrl);\r\n\r\n if (idToken && !this.auth.isTokenExpired() && req.url.indexOf(`${environment.apiBaseUrl}/${EndPoint.AUTH}`) == -1) {\r\n const cloned = req.clone({\r\n headers: req.headers.set(\"Authorization\", \"Bearer \" + idToken)\r\n });\r\n //var decoded = jwt_decode(idToken);\r\n return next.handle(cloned);\r\n }\r\n else {\r\n AuthService.authActivity.next(false);\r\n return next.handle(req);\r\n }\r\n }\r\n}\r\n\r\n/** Http interceptor providers in outside-in order */\r\nexport const httpInterceptorProviders = [\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\r\n];","import * as moment from \"moment\";\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { tap, shareReplay } from 'rxjs/operators'\r\nimport { Subject } from 'rxjs';\r\nimport jwt_decode from 'jwt-decode';\r\nimport { Language } from '../models/enums/language';\r\nimport { EndPoint } from '../models/enums/end-point';\r\nimport { Role } from '../models/enums/role';\r\nimport { Login } from '../models/login';\r\nimport { AccountType } from '../models/enums/account-type';\r\nimport { environment } from \"src/environments/environment\";\r\n// import { AppConfig } from '../services/app-config.service';\r\n//import * as AppConfig from '../../../assets/config.json';\r\n\r\n// export interface JwtToken {\r\n// id: string,\r\n// username: string,\r\n// user_titles: string[],\r\n// account_id: number,\r\n// account_titles: string[],\r\n// account_type_id: number,\r\n// account_type_titles: string[],\r\n// rol: string[],\r\n// exp: number,\r\n// }\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n // \"Accept\": \"application/json\",\r\n \"Accept\": \"*/*\",\r\n \"Authorization\": \"\"\r\n }),\r\n body: {},\r\n responseType: \"json\",\r\n observe: \"body\",\r\n withCredentials: false,\r\n reportProgress: false,\r\n params: null\r\n};\r\nclass HttpOptions {\r\n headers?: HttpHeaders | { [header: string]: string | string[]; };\r\n observe?: \"body\";\r\n params?: HttpParams | { [param: string]: string | string[]; };\r\n reportProgress?: boolean;\r\n responseType?: \"json\";\r\n withCredentials?: boolean;\r\n}\r\n\r\n\r\n\r\nexport interface JwtToken {\r\n userId: string,\r\n isSystemAccount: boolean,\r\n isAdministrator: boolean,\r\n username: string,\r\n userTitles: string[],\r\n accountId: number,\r\n parentAccountId?: number,\r\n accountTitles: string[],\r\n accountTypeId: number,\r\n accountTypeTitles: string[],\r\n claimsCountries: number[],\r\n //isClaimsApplicable: boolean,\r\n roles: number[],\r\n expiry: number,\r\n intLicenseAllowedValidity: number,\r\n isInRole: (role: Role) => boolean,\r\n isInAnyOfRoles: (roles: Role[]) => boolean\r\n}\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n lang: Language;\r\n static authActivity = new Subject();\r\n static userMeta = new Subject<{ id: any, name: any, avatar: any }>();\r\n\r\n constructor(private http: HttpClient) {\r\n this.lang = Language.Arabic;// translate.currentLang == 'en' ? Language.English : Language.Arabic;\r\n }\r\n\r\n login(login: Login) {\r\n return this.http.post(`${environment.apiBaseUrl}/${EndPoint.AUTH}`, login)\r\n .pipe(tap(res => this.setSession(res)), shareReplay()).toPromise();\r\n }\r\n\r\n forgotPassword(recoverPassword: { email: string }) {\r\n return this.http.post(`${environment.apiBaseUrl}/${EndPoint.FORGOT_PASSWORD}`, recoverPassword).toPromise();\r\n }\r\n\r\n resetPassword(resetPassword: { id: string, token: string, password: string }) {\r\n return this.http.post(`${environment.apiBaseUrl}/${EndPoint.RESET_PASSWORD}`, resetPassword).toPromise();\r\n }\r\n\r\n private setSession(authResult) {\r\n const expiresAt = moment(authResult.expiry);\r\n\r\n localStorage.setItem('jwt_token;' + environment.apiBaseUrl, authResult.token);\r\n localStorage.setItem('expires_at;' + environment.apiBaseUrl, JSON.stringify(expiresAt.valueOf()));\r\n AuthService.authActivity.next(true);\r\n }\r\n\r\n static logout() {\r\n localStorage.removeItem('jwt_token;' + environment.apiBaseUrl);\r\n localStorage.removeItem('expires_at;' + environment.apiBaseUrl);\r\n AuthService.authActivity.complete();\r\n window.location.href = \"/\";\r\n }\r\n\r\n get currentUser(): JwtToken {\r\n const token = localStorage.getItem('jwt_token;' + environment.apiBaseUrl);\r\n\r\n //console.log(dToken[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"])\r\n if (token) {\r\n const dToken = jwt_decode(token);\r\n // //console.log(dToken);\r\n // //console.log(typeof dToken[\"claims_countries\"])\r\n //console.log(typeof dToken[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"]);\r\n return {\r\n userId: dToken[\"id\"],\r\n isSystemAccount: dToken[\"is_system_account\"] == \"True\",\r\n isAdministrator: dToken[\"is_administrator\"] == \"True\",\r\n username: dToken[\"username\"],\r\n userTitles: <[]>dToken[\"user_titles\"],\r\n accountId: dToken[\"account_id\"],\r\n parentAccountId: dToken[\"parent_account_id\"],\r\n accountTitles: <[]>dToken[\"account_titles\"],\r\n accountTypeId: dToken[\"account_type_id\"],\r\n claimsCountries: (typeof dToken[\"claims_countries\"] == \"object\" ?\r\n <[]>dToken[\"claims_countries\"]\r\n : [dToken[\"claims_countries\"]]).map(r => Number(r)),\r\n //isClaimsApplicable: dToken[\"is_c_applicable\"] == \"True\",\r\n intLicenseAllowedValidity: Number(dToken[\"intlicense_allowed_vyears\"]),\r\n accountTypeTitles: <[]>dToken[\"account_type_titles\"],\r\n roles: typeof dToken[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"] == \"object\" ?\r\n (<[]>dToken[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"]).map(r => Number(r))\r\n : [dToken[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"]],\r\n isInRole: (role: Role) => this.currentUser.roles.indexOf(role) > -1 /*additional URO rule*/ && (role != Role.ACCOUNTS_READ || this.currentUser.accountTypeId != AccountType.ReleaseCenter),\r\n isInAnyOfRoles: (roles: Role[]) => this.currentUser.roles.some(x => roles.includes(x)),\r\n expiry: dToken[\"exp\"]\r\n }\r\n }\r\n return null;\r\n //return _token ? jwt_decode(_token) as JwtToken : null;\r\n }\r\n\r\n // get userId() {\r\n // return this.token ? this.token.id : null;\r\n // }\r\n\r\n // get userTitles() {\r\n // return this.token ? this.token.user_titles : ['', ''];\r\n // }\r\n\r\n // get username() {\r\n // return this.token ? this.token.username : null;\r\n // }\r\n\r\n // get accountId() {\r\n // return this.token ? this.token.account_id : null;\r\n // }\r\n\r\n // get accountTypeId() {\r\n // return this.token ? this.token.account_type_id : null;\r\n // }\r\n\r\n // get accountTypeTitles() {\r\n // return this.token ? this.token.account_type_titles : ['', ''];\r\n // }\r\n\r\n // get isSystemAccount() {\r\n // //todo: retrive value from token\r\n // return this.accountId == 1;\r\n // }\r\n\r\n // get accountTitles() {\r\n // return this.token ? this.token.account_titles : ['', ''];\r\n // }\r\n\r\n // get roles() {\r\n // return this.token ?\r\n // (<[]>this.token[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"]).map(r => Number(r))\r\n // : [];\r\n // }\r\n\r\n public isAuthenticated() {\r\n return moment().isBefore(this.getExpiration());\r\n }\r\n\r\n // public isInRole(role: Role) {\r\n // return this.token.roles.indexOf(role) > -1;\r\n // // return this.roles.indexOf(role) > -1;\r\n // }\r\n\r\n isLoggedOut() {\r\n return !this.isAuthenticated();\r\n }\r\n\r\n getExpiration() {\r\n const expiration = localStorage.getItem(\"expires_at;\" + environment.apiBaseUrl);\r\n const expiresAt = JSON.parse(expiration);\r\n return moment(expiresAt);\r\n }\r\n\r\n isTokenExpired() {\r\n return this.getExpiration() <= moment();\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'mac-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n year: string;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.year = moment().format('YYYY');\r\n }\r\n\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from './../../auth/auth.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { LoadingService } from 'src/app/shared/services/loading';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Language } from '../../models/enums/language';\r\nimport { NgZone } from \"@angular/core\";\r\n\r\n\r\n@Component({\r\n selector: 'mac-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n lang: Language = Language.Arabic;\r\n loading: boolean = false;\r\n //DeterminateLoading: { status: boolean, value: number } = { status: false, value: 0 };\r\n authenticated: boolean;\r\n\r\n\r\n get Language() {\r\n return Language;\r\n }\r\n\r\n switchLangEnabled = true;\r\n\r\n constructor(private router: Router,\r\n private route: ActivatedRoute,\r\n private loader: LoadingService,\r\n private zone: NgZone,\r\n public authService: AuthService,\r\n public translate: TranslateService) {\r\n\r\n this.authenticated = this.authService.isAuthenticated();\r\n AuthService.authActivity.subscribe(loggedin => this.authenticated = loggedin);\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.onLangChange.subscribe(_lang => this.lang = _lang.lang == 'en' ? Language.English : Language.Arabic);\r\n this.switchLangEnabled = window.location.href.indexOf('/verify/') == -1;\r\n }\r\n\r\n toggleLang() {\r\n if (this.router.url.indexOf('/login') > - 1) {\r\n this.translate.use(this.translate.currentLang == 'ar' ? 'en' : 'ar');\r\n } else {\r\n const url = this.router.url.split('/');\r\n ////console.log(url);\r\n url[1] = this.translate.currentLang == 'ar' ? 'en' : 'ar';\r\n //this.router.navigate(url);\r\n //url[0] = \"/\";\r\n const _url = url.join('/');\r\n ////console.log(_url);\r\n this.router.initialNavigation();\r\n //todo: check why component doesn't reload with language change\r\n //this.router.navigate(url);\r\n\r\n window.location.href = _url;\r\n\r\n // this.zone.run(() => {\r\n // this.router.navigate([_url], { skipLocationChange: true });\r\n // });\r\n }\r\n\r\n }\r\n}\r\n","import { AuthService } from './../../auth/auth.service';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\n\r\n@Component({\r\n selector: 'mac-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n styleLoading: boolean;\r\n form: FormGroup;\r\n error: any;\r\n\r\n constructor(private auth: AuthService,\r\n @Inject(DOCUMENT) private document: Document,\r\n private translate: TranslateService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private loader: LoadingService,\r\n private fb: FormBuilder) {\r\n\r\n\r\n this.translate.setDefaultLang('ar');\r\n this.translate.get(\"last.dummy\");\r\n LoadingService.style.next(false);\r\n }\r\n\r\n private loadStyle(lang: string) {\r\n\r\n const head = this.document.getElementsByTagName('head')[0];\r\n const body = this.document.getElementsByTagName('body')[0];\r\n\r\n body.setAttribute('dir', lang == 'ar' ? 'rtl' : 'ltr');\r\n const styleFileName = lang == 'ar' ? 'bootstrap-rtl.css' : 'bootstrap.css';\r\n let themeLink = this.document.getElementById('bootstrap') as HTMLLinkElement;\r\n if (themeLink) {\r\n themeLink.href = styleFileName;\r\n } else {\r\n const style = this.document.createElement('link');\r\n style.id = 'bootstrap';\r\n style.rel = 'stylesheet';\r\n style.href = styleFileName;\r\n //will be always overriden by global styles.scss\r\n head.prepend(style);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n //AuthService.logout();\r\n\r\n this.formInit();\r\n this.translate.get(\"last.dummy\");\r\n\r\n //this.translate.use('ar');\r\n this.translate.onLangChange.subscribe(l => {\r\n //this.loader.load(null);\r\n this.loadStyle(l.lang);\r\n // this.loader.load(null, false);\r\n });\r\n\r\n // this.loader.styleLoading.subscribe(status => {\r\n // this.styleLoading = status;\r\n // });\r\n\r\n LoadingService.style.subscribe(status => {\r\n this.styleLoading = status;\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loader.load(LoaderType.Nav, false);\r\n //LoadingService.style.next(false);\r\n }, 500);\r\n\r\n //this.loader.load(null, false);\r\n }\r\n\r\n onSubmit() {\r\n this.error = null;\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.form.disable();\r\n\r\n this.auth.login(this.form.value)\r\n .then(result => {\r\n LoadingService.style.next(true);\r\n \r\n this.route.snapshot.queryParamMap.get('returnUrl') ?\r\n this.router.navigateByUrl(this.route.snapshot.queryParamMap.get('returnUrl'))\r\n : this.router.navigate(['/', this.translate.currentLang ? this.translate.currentLang : 'ar']);\r\n })\r\n .catch(e => {\r\n this.form.enable();\r\n if (e instanceof HttpErrorResponse) {\r\n if (e.status == 400) {\r\n this.error = e.error.login ? e.error.login[0] : null;\r\n } else\r\n this.error = \"_MESSAGE_SERVER_ERROR\";\r\n }\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n username: ['', Validators.required],\r\n password: ['', Validators.required],\r\n rememberMe: [false]\r\n });\r\n }\r\n}\r\n","import { ActivatedRoute, Router, NavigationEnd } from '@angular/router';\r\nimport { Component, OnInit, ViewChild, ElementRef, Renderer2, Inject, ChangeDetectionStrategy } from '@angular/core';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { MatSidenavContent } from '@angular/material/sidenav';\r\nimport { SidenavService } from '../../services/sidenav.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { BreadcrumbService } from 'src/app/shared/services/breadcrumb.service';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { AuthService } from '../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'mac-main',\r\n templateUrl: './main.component.html',\r\n styleUrls: ['./main.component.scss'],\r\n //changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MainComponent implements OnInit {\r\n opened: boolean = true;\r\n mobileView: boolean = false;\r\n navLoading: boolean = true;\r\n bodyLoading: boolean;\r\n styleLoading: boolean;\r\n\r\n @ViewChild('sidenav') sidenav;\r\n @ViewChild('content') content: MatSidenavContent;\r\n\r\n constructor(private renderer: Renderer2,\r\n @Inject(DOCUMENT) private document: Document,\r\n private elm: ElementRef,\r\n private sidenavService: SidenavService,\r\n private loader: LoadingService,\r\n private route: ActivatedRoute,\r\n private translate: TranslateService,\r\n private router: Router,\r\n private titleService: Title,\r\n private breadcrumbService: BreadcrumbService,\r\n private auth: AuthService) {\r\n\r\n var ua = navigator.userAgent;\r\n\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile|CriOS/i.test(ua))\r\n this.mobileView = true;\r\n\r\n this.opened = !this.mobileView;\r\n this.translate.setDefaultLang('ar');\r\n this.translate.use(route.snapshot.paramMap.get('lang'));\r\n\r\n ////console.log('router navigated:', this.router.navigated);\r\n\r\n //if(!this.router.navigated)\r\n this.styleLoading = true;\r\n // //todo: fix glitch happens when requesting /en directly\r\n\r\n //LoadingService.style.next(true);\r\n // this.loader.load(null);\r\n // if (this.translate.currentLang == 'en') {\r\n // //setTimeout(() => {\r\n // this.loadStyle(this.translate.currentLang);\r\n // this.loader.load(null, false);\r\n // //}, 1000);\r\n // }\r\n }\r\n\r\n private loadStyle(lang: string) {\r\n const head = this.document.getElementsByTagName('head')[0];\r\n const body = this.document.getElementsByTagName('body')[0];\r\n\r\n body.setAttribute('dir', lang == 'ar' ? 'rtl' : 'ltr');\r\n const styleFileName = lang == 'ar' ? 'bootstrap-rtl.css' : 'bootstrap.css';\r\n let themeLink = this.document.getElementById('bootstrap') as HTMLLinkElement;\r\n //if (themeLink) {\r\n themeLink.href = styleFileName;\r\n }\r\n\r\n ngAfterViewInit() {\r\n //this.loader.load(null, false);\r\n // LoadingService.style.next(false);\r\n }\r\n\r\n getAccountType() {\r\n const prefix = 'ACC_TITLE_ACCOUNTS_';\r\n\r\n if (this.auth.currentUser.accountTypeId == 1 && this.auth.currentUser.isSystemAccount)\r\n return prefix + \"BRANCHES\";\r\n\r\n if (this.auth.currentUser.accountTypeId == 1)\r\n return prefix + \"AGENTS\";\r\n\r\n if (this.auth.currentUser.accountTypeId == 2)\r\n return prefix + \"DISTRIBUTORS\";\r\n\r\n return prefix + \"SUB_DISTRIBUTORS\";\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.router\r\n .events.pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n map(() => {\r\n ////console.log('ev');\r\n let _titles = [];\r\n let _titlesLinks: string[][] = [];\r\n let child = this.route;\r\n let _path = '/';\r\n let level = 0;\r\n\r\n const _lang = child.snapshot.paramMap.get('lang');\r\n if (this.translate.currentLang != _lang)\r\n this.translate.use(_lang);\r\n\r\n if (this.router.url == `/${this.translate.currentLang}/`) {\r\n _titles.push(this.translate.instant(child.snapshot.firstChild.data['title']));\r\n } else if (this.router.url == '/login') {\r\n _titles.push(this.translate.instant(child.snapshot.data['title']));\r\n }\r\n else {\r\n while (child.firstChild) {\r\n child = child.firstChild;\r\n if (child.snapshot.data['title']) {\r\n\r\n let title =\r\n child.snapshot.data['title'] == \"ACC_TITLE_ACCOUNTS\" ?\r\n this.getAccountType()\r\n : child.snapshot.data['title'];\r\n\r\n if (level <= 1)\r\n _titles.push(this.translate.instant(title));\r\n\r\n const root = level == 0 && !child.snapshot.url[0];\r\n\r\n _path += root ? '' : child.snapshot.url[0] + '/';\r\n _titlesLinks.push([root ? '_APP_HOME' : title, _path]);\r\n }\r\n level++;\r\n }\r\n }\r\n this.breadcrumbService.setLinks(_titlesLinks);\r\n return _titles.join(' | ');\r\n })\r\n ).subscribe((ttl: string) => {\r\n this.titleService.setTitle(ttl);\r\n });\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n //todo: fix glitch happens when requesting /en directly\r\n // if (this.translate.currentLang == 'en') {\r\n // //this.loader.load(null);\r\n // setTimeout(() => {\r\n // this.loadStyle(this.translate.currentLang);\r\n // this.loader.load(null, false);\r\n // }, 1000);\r\n // }\r\n ////console.log(this.translate.currentLang);\r\n if (this.translate.currentLang == 'en')\r\n this.loadStyle(this.translate.currentLang);\r\n setTimeout(() => {\r\n LoadingService.style.next(false);\r\n }, 500);\r\n\r\n this.translate.onLangChange.subscribe(t => {\r\n ////console.log('sub', t, this.translate.currentLang);\r\n //const _lang = t.lang;\r\n // if (this.translate.currentLang != _lang) {\r\n\r\n //this.loader.load(null);\r\n LoadingService.style.next(true);\r\n setTimeout(() => {\r\n //this.translate.use(_lang);\r\n this.loadStyle(this.translate.currentLang);\r\n //this.loader.load(null, false);\r\n setTimeout(() => {\r\n LoadingService.style.next(false);\r\n }, 250);\r\n\r\n }, 1000);\r\n // }\r\n // else {\r\n // this.loader.load(null, false);\r\n // }\r\n });\r\n\r\n // this.route.params.subscribe(params => {\r\n // const _lang = params.lang;\r\n // const _lang = this.route.snapshot.paramMap.get('lang');\r\n // this.translate.use(_lang);\r\n // //if (this.translate.currentLang != _lang) {\r\n // this.loader.load(null);\r\n // setTimeout(() => {\r\n // this.translate.use(_lang);\r\n // this.loadStyle(_lang);\r\n // this.loader.load(null, false);\r\n // }, 1000);\r\n // }\r\n // else {\r\n // this.loader.load(null, false);\r\n // }\r\n // });\r\n\r\n // this.loader.styleLoading.subscribe(status => {\r\n // this.styleLoading = status;\r\n // });\r\n LoadingService.style.subscribe(status => {\r\n ////console.log('new style', status);\r\n this.styleLoading = status;\r\n });\r\n\r\n this.loader.navLoading.subscribe(status => {\r\n this.navLoading = status;\r\n });\r\n\r\n this.loader.bodyLoading.subscribe(status => {\r\n this.bodyLoading = status;\r\n });\r\n }\r\n\r\n navToggle() {\r\n this.sidenav.toggle();\r\n\r\n const elm = this.content.getElementRef().nativeElement;\r\n if (elm.classList.value.indexOf('mat-drawer-opened') > -1) {\r\n this.sidenavService.opened.next(false);\r\n this.renderer.removeClass(elm, 'mat-drawer-opened');\r\n } else {\r\n this.sidenavService.opened.next(true);\r\n this.renderer.addClass(elm, 'mat-drawer-opened');\r\n }\r\n }\r\n}\r\n","import { AuthService } from '../../auth/auth.service';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { comparePasswords } from 'src/app/shared/services/custom-validators';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\n\r\n@Component({\r\n selector: 'mac-recover-password',\r\n templateUrl: './recover-password.component.html',\r\n styleUrls: ['./recover-password.component.scss']\r\n})\r\nexport class RecoverPasswordComponent implements OnInit {\r\n styleLoading: boolean;\r\n form: FormGroup;\r\n //error: any;\r\n //success: any;\r\n view: 'RECOVER' | 'RESET';\r\n userId: string;\r\n token: string;\r\n\r\n get email() { return this.form.get('email'); };\r\n get password() { return this.form.get('pass.password'); };\r\n get passwordConfirm() { return this.form.get('pass.passwordConfirm'); };\r\n\r\n constructor(private auth: AuthService,\r\n @Inject(DOCUMENT) private document: Document,\r\n private translate: TranslateService,\r\n private route: ActivatedRoute,\r\n private alert: AlertService,\r\n private router: Router,\r\n private loader: LoadingService,\r\n private fb: FormBuilder) {\r\n\r\n\r\n this.translate.setDefaultLang('ar');\r\n this.translate.get(\"last.dummy\");\r\n LoadingService.style.next(false);\r\n }\r\n\r\n private loadStyle(lang: string) {\r\n\r\n const head = this.document.getElementsByTagName('head')[0];\r\n const body = this.document.getElementsByTagName('body')[0];\r\n\r\n body.setAttribute('dir', lang == 'ar' ? 'rtl' : 'ltr');\r\n const styleFileName = lang == 'ar' ? 'bootstrap-rtl.css' : 'bootstrap.css';\r\n let themeLink = this.document.getElementById('bootstrap') as HTMLLinkElement;\r\n if (themeLink) {\r\n themeLink.href = styleFileName;\r\n } else {\r\n const style = this.document.createElement('link');\r\n style.id = 'bootstrap';\r\n style.rel = 'stylesheet';\r\n style.href = styleFileName;\r\n //will be always overriden by global styles.scss\r\n head.prepend(style);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n //AuthService.logout();\r\n this.userId = this.route.snapshot.queryParamMap.get('id');\r\n this.token = this.route.snapshot.queryParamMap.get('token');\r\n\r\n //console.log(this.userId, this.token);\r\n\r\n if (!this.userId || !this.token) {\r\n this.view = 'RECOVER'\r\n this.form = this.fb.group({\r\n email: ['', [Validators.required, Validators.email]]\r\n });\r\n } else {\r\n //console.log(this.token.trim().replace(/\\s/g, ''))\r\n this.view = 'RESET';\r\n this.form = this.fb.group({\r\n pass: this.fb.group({\r\n password: ['', [Validators.required, Validators.minLength(6)]], //todo: regex for password pattern\r\n passwordConfirm: ['']\r\n },\r\n { validator: comparePasswords })\r\n });\r\n }\r\n\r\n this.translate.get(\"last.dummy\");\r\n\r\n //this.translate.use('ar');\r\n this.translate.onLangChange.subscribe(l => {\r\n //this.loader.load(null);\r\n this.loadStyle(l.lang);\r\n // this.loader.load(null, false);\r\n });\r\n\r\n // this.loader.styleLoading.subscribe(status => {\r\n // this.styleLoading = status;\r\n // });\r\n\r\n LoadingService.style.subscribe(status => {\r\n this.styleLoading = status;\r\n });\r\n\r\n\r\n\r\n\r\n }\r\n\r\n // resetForm: FormGroup;\r\n // recoverForm: FormGroup;\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loader.load(LoaderType.Nav, false);\r\n //LoadingService.style.next(false);\r\n }, 500);\r\n\r\n //this.loader.load(null, false);\r\n }\r\n\r\n onSubmit() {\r\n //this.error = null;\r\n //const form = this.view == 'RECOVER' ? this.recoverForm : this.resetForm;\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.form.disable();\r\n\r\n if (this.view == 'RECOVER') {\r\n this.auth.forgotPassword(this.form.value)\r\n .then(result => {\r\n //console.log(result);\r\n //LoadingService.style.next(true);\r\n if (result) {\r\n this.alert.success('SEC_ALERT_PASSWORD_RECOVERY_REQUEST', false);\r\n // setTimeout(() => {\r\n // //redirect to login\r\n // this.router.navigate(['/', this.translate.currentLang ? this.translate.currentLang : 'ar']);\r\n // }, 1000);\r\n } else {\r\n this.alert.failure('_MESSAGE_CANNOT_PROCESS', false);\r\n this.form.enable();\r\n }\r\n })\r\n .catch(e => {\r\n this.alert.failure('_MESSAGE_CANNOT_PROCESS', false);\r\n this.form.enable();\r\n // this.error = '_MESSAGE_ALERT_ERROR';\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n else {\r\n this.auth.resetPassword({ id: this.userId, token: this.token.trim().replace(/\\s/g, '+'), password: this.password.value })\r\n .then(result => {\r\n //console.log(result);\r\n if (result) {\r\n this.alert.success('_ACTION_RESETTING');\r\n setTimeout(() => {\r\n //redirect to login\r\n this.router.navigate(['/', this.translate.currentLang ? this.translate.currentLang : 'ar']);\r\n }, 1000);\r\n } else {\r\n this.alert.failure('_MESSAGE_CANNOT_PROCESS', false);\r\n this.form.enable();\r\n }\r\n }).catch(e => {\r\n this.alert.failure('_MESSAGE_CANNOT_PROCESS', false);\r\n this.form.enable();\r\n //this.error = '_MESSAGE_CANNOT_PROCESS';\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { Component, OnInit, ElementRef, Renderer2 } from '@angular/core';\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { Router } from '@angular/router';\r\nimport { SidenavService } from '../../services/sidenav.service';\r\nimport { UsersService } from 'src/app/features/security/services/users.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AccountType } from '../../models/enums/account-type';\r\nimport { EndPoint } from '../../models/enums/end-point';\r\n\r\n@Component({\r\n selector: 'mac-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss'],\r\n providers: [UsersService]\r\n})\r\nexport class SidenavComponent implements OnInit {\r\n\r\n constructor(public auth: AuthService,\r\n public router: Router,\r\n private elm: ElementRef,\r\n private renderer: Renderer2,\r\n private service: SidenavService,\r\n private userService: UsersService,\r\n public translate: TranslateService) {\r\n this.user = { name: '', avatar: this.defaultAvatar }\r\n }\r\n\r\n get Role() {\r\n return Role;\r\n }\r\n\r\n get AccountType() {\r\n return AccountType;\r\n }\r\n\r\n get EndPoint() { return EndPoint; };\r\n\r\n defaultAvatar = 'assets/images/user.svg';\r\n opened: boolean = true;\r\n user: {\r\n name: string;\r\n avatar: string;\r\n };\r\n\r\n getAccountType() {\r\n const prefix = 'ACC_TITLE_ACCOUNTS_';\r\n\r\n if (this.auth.currentUser.accountTypeId == 1 && this.auth.currentUser.isSystemAccount)\r\n return prefix + \"BRANCHES\";\r\n\r\n if (this.auth.currentUser.accountTypeId == 1)\r\n return prefix + \"AGENTS\";\r\n\r\n if (this.auth.currentUser.accountTypeId == 2)\r\n return prefix + \"DISTRIBUTORS\";\r\n\r\n return prefix + \"SUB_DISTRIBUTORS\";\r\n }\r\n\r\n ngOnInit() {\r\n //console.warn(this.getAccountType());\r\n ////console.log(this.auth.accountTypeId);\r\n ////console.log(this.auth.accountTypeId == AccountType.ReleaseCenter);\r\n AuthService.userMeta.subscribe(u => {\r\n ////console.log(u);\r\n this.user.name = u.name;\r\n this.user.avatar = u.avatar ? u.avatar : this.defaultAvatar;\r\n });\r\n\r\n this.userService.getUserMeta().then(u => {\r\n //this.user.name = u.name;\r\n //this.user.avatar = u.avatar ? `data:image/png;base64,${u.avatar}` : this.defaultAvatar;\r\n const _avatar = u.avatar ? `data:image/png;base64,${u.avatar}` : this.defaultAvatar;\r\n AuthService.userMeta.next({ id: u.id, name: u.name, avatar: _avatar });\r\n });\r\n\r\n this.service.opened.subscribe(o => {\r\n this.opened = o;\r\n if (!this.opened) {\r\n let slib = this.elm.nativeElement.querySelectorAll('.cont');\r\n slib.forEach(element => {\r\n if (element.classList.contains('show'))\r\n this.renderer.removeClass(element, 'show');\r\n });\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n const links = this.elm.nativeElement.querySelectorAll('.nav-item');\r\n links.forEach(link => {\r\n link.addEventListener('click', this.linkClick.bind(this));\r\n });\r\n\r\n }\r\n\r\n linkClick(event) {\r\n if (!this.opened) {\r\n let slib = this.elm.nativeElement.querySelectorAll('.cont');\r\n slib.forEach(element => {\r\n if (element.classList.contains('show'))\r\n this.renderer.removeClass(element, 'show');\r\n });\r\n }\r\n }\r\n\r\n\r\n logout() {\r\n AuthService.logout();\r\n //window.location.href = \"/\";\r\n }\r\n\r\n displayContext(event, id) {\r\n if (!this.opened) {\r\n let elm = this.elm.nativeElement.querySelector('#' + id);\r\n if (event.type != 'mouseleave')\r\n if (!elm.classList.contains('show')) {\r\n //make sure all other menus are closed\r\n let slib = this.elm.nativeElement.querySelectorAll('.cont');\r\n slib.forEach(element => {\r\n if (element.classList.contains('show'))\r\n this.renderer.removeClass(element, 'show');\r\n });\r\n this.renderer.addClass(elm, 'show');\r\n }\r\n\r\n else\r\n this.renderer.removeClass(elm, 'show');\r\n }\r\n }\r\n}\r\n","export enum AccountType {\r\n PrintingPress = -2, //virtual types\r\n PrimaryStock = -1, //virtual types\r\n \r\n Branch = 1,\r\n Agent = 2,\r\n Distributor = 3,\r\n SubDistributor = 4,\r\n ReleaseCenter = 5\r\n}","export enum BloodGroup {\r\n A_pos = 'A+',\r\n A_neg = 'A-',\r\n AB_pos = 'AB+',\r\n AB_neg = 'AB-',\r\n B_pos = 'B+',\r\n B_neg = 'B-',\r\n O_pos = 'O+',\r\n O_neg = 'O-'\r\n}","export enum ConfigObject {\r\n VehicleUpholsteryTypes = 1,\r\n VehicleOptions,\r\n VehicleSeatsCountRange,\r\n VehicleManufactureYearRange,\r\n VehicleCylindersCountRange,\r\n VehicleSpareTiresCountOptions,\r\n IntLicenseMaxPrintLimit,\r\n TripTikMaxPrintLimit,\r\n TripTikPrintEmptyValue\r\n}","export enum _DocumentType {\r\n DrivingLicense = 1,\r\n TripTikDocument = 2\r\n}","export enum EndPoint {\r\n //__BASE_URL = 'https://localhost:44349',\r\n //__BASE_URL = \"https://api-sys.mac.org.sa\",\r\n // __BASE_URL = \"https://api-stg.mac.org.sa\",\r\n AUTH = \"security/auth\",\r\n FORGOT_PASSWORD = \"security/forgot-password\",\r\n RESET_PASSWORD = \"security/reset-password\",\r\n CONFIG = \"config\",\r\n UPLOADS = \"uploads\",\r\n ASYNC_VALIDATION = \"validation/validate\",\r\n STATISTICS_ISSUINGS_PER_MONTH = \"statistics/issuings-per-month\",\r\n COUNTRIES = \"lookups/countries\",\r\n CITIES = \"lookups/cities\",\r\n VEHICLE_COLORS = \"lookups/vehicle-colors\",\r\n VEHICLE_MAKES = \"lookups/vehicle-makes\",\r\n VEHICLE_MODELS = \"lookups/vehicle-models\",\r\n VEHICLE_TYPES = \"lookups/vehicle-types\",\r\n ACCOUNT_TYPES = \"lookups/account-types\",\r\n CURRENCIES = \"lookups/currencies\",\r\n CUSTOMS_PORTS = \"lookups/customs-ports\",\r\n TRIPTIK_CLAIMS_PURSUING_ZONES = \"lookups/pursuing-zones\",\r\n TRIPTIK_CLAIMS_STATUSES = \"lookups/trip-tik-claims-statuses\",\r\n TRIPTIK_CLAIMS_STATUSES_BASE = \"lookups/trip-tik-claims-statuses/base\",\r\n ACCOUNT_TYPES_ALLOWED = \"lookups/account-types/allowed\",\r\n ACCOUNT_STATUSES = \"lookups/account-statuses\",\r\n STOCK_TYPES = \"lookups/stock-types\",\r\n STOCK_TYPES_ALLOWED = \"lookups/stock-types/allowed\",\r\n STOCK_TYPES_URO = \"lookups/stock-types/uro\",\r\n ACCOUNTS = \"accounts\",\r\n ACCOUNTS_BY_ACCOUNT_TYPE = \"accounts/by-type\",\r\n ACCOUNTS_CHILDREN = \"accounts/children\",\r\n ACCOUNTS_CHILDREN_LOOKUP = \"accounts/children/lookup\",\r\n SECURITY_GROUPS = \"security/groups\",\r\n SECURITY_GROUPS_LOOKUP = \"security/groups/lookup\",\r\n SECURITY_ROLES = \"security/roles\",\r\n SECURITY_USERS = \"security/users\",\r\n SECURITY_USERS_GROUPS = \"security/users/groups\",\r\n SECURITY_USER = \"security/user\",\r\n SECURITY_USER_META = \"security/user/meta\",\r\n SECURITY_USER_PROFILE = \"security/user/profile\",\r\n SECURITY_CLAIMS_APPLICABLE = \"security/claims-applicable\",\r\n STOCKS_TRANSACTIONS = \"stocks/transactions\",\r\n STOCKS_TRANSACTIONS_SEARCH = \"stocks/transactions/search\",\r\n STOCKS_TOTALS = \"stocks/totals\",\r\n STOCKS_UNDO_REQUESTS = \"stocks/undo/requests\",\r\n STOCKS_AVAILABLE = \"stocks/available\",\r\n STOCKS_SYSTEM_AVAILABLE = \"stocks/system-available\",\r\n STOCKS_TRANSACT = \"stocks/transact\",\r\n STOCKS_POPULATE = \"stocks/populate\",\r\n STOCKS_DEPOPULATE = \"stocks/depopulate\",\r\n STOCKS_UNDO_TRY = \"stocks/undo/try\",\r\n STOCKS_UNDO_CANCEL = \"stocks/undo/cancel\",\r\n STOCKS_UNDO_RESOLVE = \"stocks/undo/resolve\",\r\n ISSUING_VERIFY = \"issuing/verify\",\r\n ISSUING_REVOKE_REQUESTS = \"issuing/revoke/requests\",\r\n ISSUING_REVOKE_TRY = \"issuing/revoke/try\",\r\n ISSUING_REVOKE_CANCEL = \"issuing/revoke/cancel\",\r\n ISSUING_REVOKE_RESOLVE = \"issuing/revoke/resolve\",\r\n ISSUING_CREATE_UPS_SHIPMENT = \"issuing/ups/create\",\r\n // ISSUING_EXPIRED_DOCUMENTS_QUERY = \"issuing/expired\",\r\n ISSUING_ISSUED_DOCUMENTS_QUERY = \"issuing/query\",\r\n ISSUING_DOCUMENT_CANCEL = \"issuing/cancel\",\r\n INT_lICENSE = \"int-licenses\",\r\n INT_lICENSE_DEATILS = \"int-licenses/details\",\r\n E_lICENSE = \"e-licenses\",\r\n E_lICENSE_ORDER_STATUS = \"e-licenses/order/status\",\r\n INT_lICENSE_GET_BY_HASHED_SERIAL = \"int-licenses/hash\",\r\n INT_lICENSE_PRINT = \"int-licenses/print\",\r\n INT_lICENSE_SEARCH = \"int-licenses/search\",\r\n TRIPTIK = \"trip-tiks\",\r\n TRIPTIK_GET_BY_HASHED_SERIAL = \"trip-tiks/hash\",\r\n TRIPTIK_SEARCH = \"trip-tiks/search\",\r\n TRIPTIK_PRINT = \"trip-tiks/print\",\r\n TRIPTIK_CLAIMS = \"trip-tiks/claims\",\r\n TRIPTIK_CLAIMS_SEARCH = \"trip-tiks/claims/search\",\r\n TRIPTIK_CLAIMS_LOGS = \"trip-tiks/claims/logs\",\r\n TRIPTIK_CLAIMS_LOGS_SEARCH = \"trip-tiks/claims/logs/search\",\r\n TRIPTIK_CLAIMS_ATTACHMENTS = \"trip-tiks/claims/attachments\",\r\n E_lICENSE_COUPON = \"e-licenses/coupon\",\r\n E_lICENSE_COUPON_CREATE = \"e-licenses/coupon/create\",\r\n E_lICENSE_COUPON_UPDATE = \"e-licenses/coupon/update\",\r\n E_lICENSE_VIEW_COUPON_DETAILS = \"e-licenses/couponlicense\",\r\n // VALIDATION_USERS_USERNAME = '',\r\n // VALIDATION_ACCOUNTS_ACCOUNT_TITLE = ''\r\n}\r\n","// export enum Gender {\r\n// Male = 1,\r\n// Female = -1\r\n// }\r\n\r\nexport enum Gender {\r\n Male = 1,\r\n Female = -1\r\n}","export enum Language {\r\n Arabic = 0,\r\n English = 1\r\n}","export enum IntLicensePermitClass {\r\n A = 'A',\r\n B = 'B',\r\n C = 'C',\r\n D = 'D',\r\n E = 'E'\r\n}\r\n","export enum PrintObject {\r\n TriptikReceipt = -1,\r\n IntLicenseCommitment = 0,\r\n IntLicenseCard = 1,\r\n IntLicenseSticker = 2,\r\n TripTikFrontCover = 3,\r\n TripTikInnerPages = 4,\r\n TripTikBackCover = 5\r\n}","// export enum Role {\r\n// LOOKUPS_CREATE, //system\r\n// LOOKUPS_READ ,\r\n// LOOKUPS_UPDATE, //system\r\n// LOOKUPS_DELETE, //system\r\n// ACCOUNTS_CREATE,\r\n// ACCOUNTS_READ,\r\n// ACCOUNTS_UPDATE,\r\n// ACCOUNTS_DELETE,\r\n// USERS_CREATE,\r\n// USERS_READ,\r\n// USERS_UPDATE,\r\n// USERS_DELETE,\r\n// SECURITY_GROUPS_CREATE,\r\n// SECURITY_GROUPS_READ,\r\n// SECURITY_GROUPS_UPDATE,\r\n// SECURITY_GROUPS_DELETE,\r\n// USERS_SECURITY_GROUPS_READ,\r\n// USERS_SECURITY_GROUPS_UPDATE,\r\n// STOCKS_TRANSACTIONS_CREATE,\r\n// STOCKS_TRANSACTIONS_READ,\r\n// STOCKS_UNDO_REQUESTS_CREATE,\r\n// STOCKS_UNDO_REQUESTS_READ,\r\n// STOCKS_UNDO_REQUESTS_UPDATE,\r\n// STOCKS_UNDO_REQUESTS_DELETE,\r\n// SYSTEM_STOCKS_CREATE, //system\r\n// SYSTEM_STOCKS_READ, //system\r\n// SYSTEM_STOCKS_UPDATE, //system\r\n// SYSTEM_STOCKS_DELETE //system\r\n// }\r\n\r\n\r\nexport enum Role {\r\n LOOKUPS_CREATE = 11, //system\r\n LOOKUPS_READ = 12,\r\n LOOKUPS_UPDATE = 13, //system\r\n LOOKUPS_DELETE = 14, //system\r\n ACCOUNTS_CREATE = 21,\r\n ACCOUNTS_READ = 22,\r\n ACCOUNTS_UPDATE = 23,\r\n ACCOUNTS_DELETE = 24,\r\n USERS_CREATE = 31,\r\n USERS_READ = 32,\r\n USERS_UPDATE = 33,\r\n USERS_DELETE = 34,\r\n SECURITY_GROUPS_CREATE = 41,\r\n SECURITY_GROUPS_READ = 42,\r\n SECURITY_GROUPS_UPDATE = 43,\r\n SECURITY_GROUPS_DELETE = 44,\r\n USERS_SECURITY_GROUPS_READ = 52,\r\n USERS_SECURITY_GROUPS_UPDATE = 53,\r\n STOCKS_TRANSACTIONS_CREATE = 61,\r\n STOCKS_TRANSACTIONS_READ = 62,\r\n STOCKS_UNDO_REQUESTS_CREATE = 71,\r\n STOCKS_UNDO_REQUESTS_READ = 72,\r\n STOCKS_UNDO_REQUESTS_UPDATE = 73,\r\n STOCKS_UNDO_REQUESTS_DELETE = 74,\r\n SYSTEM_STOCKS_CREATE = 81, //system\r\n SYSTEM_STOCKS_READ = 82, //system\r\n SYSTEM_STOCKS_UPDATE = 83, //system\r\n SYSTEM_STOCKS_DELETE = 84, //system\r\n INT_LICENSES_CREATE = 91,\r\n INT_LICENSES_READ = 92,\r\n INT_LICENSES_UPDATE = 93,\r\n INT_LICENSES_DELETE = 94,\r\n INT_LICENSES_REVOKE_REQUESTS_CREATE = 101,\r\n INT_LICENSES_REVOKE_REQUESTS_READ = 102,\r\n INT_LICENSES_REVOKE_REQUESTS_UPDATE = 103,\r\n INT_LICENSES_REVOKE_REQUESTS_DELETE = 104,\r\n TRIPTIKS_CREATE = 111,\r\n TRIPTIKS_READ = 112,\r\n TRIPTIKS_UPDATE = 113,\r\n TRIPTIKS_DELETE = 114,\r\n TRIPTIKS_REVOKE_REQUESTS_CREATE = 121,\r\n TRIPTIKS_REVOKE_REQUESTS_READ = 122,\r\n TRIPTIKS_REVOKE_REQUESTS_UPDATE = 123,\r\n TRIPTIKS_REVOKE_REQUESTS_DELETE = 124,\r\n TRIPTIKS_CLAIMS_CREATE = 131,\r\n TRIPTIKS_CLAIMS_READ = 132,\r\n TRIPTIKS_CLAIMS_UPDATE = 133,\r\n // TRIPTIKS_CLAIMS_LOGS_READ = 142,\r\n // TRIPTIKS_CLAIMS_STATUS_UPDATE = 143,\r\n TRIPTIKS_CLAIMS_STATUS_UPDATE = 143,\r\n TRIPTIKS_CLAIMS_LOGS_READ = 152,\r\n\r\n E_LICENSES_READ = 162,\r\n E_LICENSES_UPDATE = 163,\r\n E_LICENSES_DELETE = 164,\r\n}","export enum SystemObject {\r\n CITY,\r\n COUNTRY,\r\n VEHICLE_COLOR,\r\n VEHICLE_MAKE,\r\n STOCK_TYPE,\r\n ACCOUNT_STATUS,\r\n ACCOUNT_TYPE,\r\n ACCOUNT,\r\n USER,\r\n SECURITY_GROUP,\r\n}","export enum TransactionType {\r\n Depopulate = -2, //return main stock to supplier\r\n Return = -1,\r\n Issue = 0,\r\n Transfer = 1,\r\n Populate = 2, //fill main stock from supplier\r\n}","export enum TripTikClaimStatus {\r\n Active = 1,\r\n Closed = 2,\r\n Judicial = 3,\r\n BranchesFollowup = 4,\r\n Paid = 5,\r\n Stored = 6\r\n}","import { SystemObject } from './enums/system-object';\r\nimport { Language } from './enums/language';\r\n\r\nexport class ValidationDto {\r\n objectType: SystemObject;\r\n property: string;\r\n value: string;\r\n lang: Language;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SidenavService{\r\n opened: Subject;\r\n constructor(){\r\n this.opened = new Subject();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport {DefaultUrlSerializer, RouterModule, Routes, UrlSegment, UrlSerializer, UrlTree} from '@angular/router';\r\n\r\n@Injectable()\r\nexport class UrlSerializerService {\r\n private defaultSerializer: DefaultUrlSerializer = new DefaultUrlSerializer();\r\n\r\n parse(url: string): UrlTree {\r\n\r\n // This is the custom patch where you'll collect segment containing '='\r\n const lastSlashIndex = url.lastIndexOf('/'), equalSignIndex = url.indexOf('=', lastSlashIndex);\r\n if (equalSignIndex > -1) { // url contians '=', apply patch\r\n const keyValArr = url.substr(lastSlashIndex + 1).split('=');\r\n const urlTree = this.defaultSerializer.parse(url);\r\n\r\n // Once you have serialized urlTree, you have two options to capture '=' part\r\n // Method 1. replace desired segment with whole \"key=val\" as segment\r\n urlTree.root.children['primary'].segments.forEach((segment: UrlSegment) => {\r\n if (segment.path === keyValArr[0]) {\r\n segment.path = keyValArr.join('='); // Suggestion: you can use other unique set of characters here too e.g. '$$$'\r\n }\r\n });\r\n\r\n return urlTree;\r\n } else {\r\n return this.defaultSerializer.parse(url);\r\n }\r\n }\r\n\r\n serialize(tree: UrlTree): string {\r\n return this.defaultSerializer.serialize(tree);\r\n }\r\n\r\n}","import { Router } from '@angular/router';\r\nimport { AccountDto } from './../../models/account';\r\nimport {\r\n AccountsService,\r\n DynamicFlatNode,\r\n DynamicDataSource,\r\n // DynamicDatabase\r\n} from './../../services/accounts.service';\r\n\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { Component, ViewChild, ViewEncapsulation, ɵConsole } from '@angular/core';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AccountTypesService } from 'src/app/features/lookups/services/account-types';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { AccountType } from 'src/app/core/models/enums/account-type';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\n\r\n@Component({\r\n selector: 'mac-accounts',\r\n templateUrl: './accounts.component.html',\r\n styleUrls: ['./accounts.component.scss'],\r\n providers: [AccountsService, AccountTypesService]\r\n})\r\n\r\nexport class AccountsComponent {\r\n tooltipInfo = 'Info about the action';\r\n currentAccountId: number;\r\n treeControl: FlatTreeControl;\r\n dataSource: DynamicDataSource;\r\n accountTypes: number[] = [];\r\n badgeClasses: string[] = [];\r\n langIndex: number = 0;\r\n accountUsersCount: number = 0;\r\n //totalUserAccounts: number = 0;\r\n usersCount: number = 0;\r\n\r\n updateAllowed: boolean;\r\n deleteAllowed: boolean;\r\n createAllowed: boolean;\r\n usersDisplay: boolean;\r\n\r\n @ViewChild('tree', { static: true }) tree;\r\n\r\n getLevel = (node: DynamicFlatNode) => node.level;\r\n isExpandable = (node: DynamicFlatNode) => node.expandable;\r\n hasChild = (_: number, _nodeData: DynamicFlatNode) => _nodeData.item.hasChildren; // _nodeData.item.children.length > 0;// .expandable;\r\n Role() {\r\n return Role;\r\n }\r\n\r\n constructor(/*private database: DynamicDatabase,*/\r\n private router: Router,\r\n private service: AccountsService,\r\n private confirmService: ConfirmService,\r\n private loader: LoadingService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n //private accountTypesService: AccountTypesService,\r\n public translate: TranslateService) {\r\n this.currentAccountId = auth.currentUser.accountId;\r\n this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);\r\n this.dataSource = new DynamicDataSource(this.treeControl, this.service);\r\n }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n //document.querySelector('mat-card').setAttribute('style', '')\r\n this.updateAllowed = this.auth.currentUser.isInRole(Role.ACCOUNTS_UPDATE);\r\n this.deleteAllowed = this.auth.currentUser.isInRole(Role.ACCOUNTS_DELETE);\r\n this.createAllowed = this.auth.currentUser.accountTypeId <= AccountType.Distributor && this.auth.currentUser.isInRole(Role.ACCOUNTS_CREATE);\r\n this.usersDisplay = this.auth.currentUser.isInRole(Role.USERS_READ);\r\n\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.badgeClasses = [\r\n 'branches bg-primary',\r\n 'agent bg-success',\r\n 'distributor bg-danger',\r\n 'Sub-Distributor bg-orange'\r\n ];\r\n\r\n //this.dataSource.dataChange.subscribe(d => //console.warn(d));\r\n\r\n\r\n this.loader.load(LoaderType.Nav);\r\n // this.accountTypesService.get().then(d => {\r\n // this.accountTypes = d.accountTypes.map(d => d.id);\r\n // })\r\n this.service.initialData()\r\n .then(data => {\r\n ////console.warn(data);\r\n this.dataSource.data = data[0];\r\n this.accountUsersCount = data[0].find(d => d.item.id == this.currentAccountId).item.usersCount;\r\n this.usersCount = data[1];\r\n\r\n // //console.warn(this.service.dataMap.entries);\r\n\r\n // this.dataSource.data.splice(1, 1);\r\n // this.dataSource.dataChange.\r\n\r\n\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n getAccountType() {\r\n const prefix = 'ACC_TITLE_ACCOUNTS_';\r\n\r\n if (this.auth.currentUser.accountTypeId == 1 && this.auth.currentUser.isSystemAccount)\r\n return prefix + \"BRANCHES\";\r\n\r\n if (this.auth.currentUser.accountTypeId == 1)\r\n return prefix + \"AGENTS\";\r\n\r\n if (this.auth.currentUser.accountTypeId == 2)\r\n return prefix + \"DISTRIBUTORS\";\r\n\r\n return prefix + \"SUB_DISTRIBUTORS\";\r\n }\r\n\r\n getDocumentTypes(stockTypes: StockTypeDto[]) {\r\n //todo: refactor\r\n const drivingLicense = ['رخصة قيادة', 'Driving License'];\r\n const triptikDocument = ['دفتر تربتيك', 'Trip-Tik Document'];\r\n return Array.from(new Set(stockTypes.map(x => { return x.documentType == 1 ? drivingLicense[this.langIndex] : triptikDocument[this.langIndex] })));\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n onSelectInactive(checked: boolean) {\r\n //console.warn(checked);\r\n\r\n this.dataSource.isActiveChange.next(checked);\r\n\r\n // const _data = this.dataSource.data.filter(d => !checked || d.item.isActive)\r\n // this.dataSource.dataChange.next(_data);\r\n }\r\n\r\n getBadgeClass(accountTypeId: number) {\r\n // const i = this.accountTypes.findIndex(id => id == accountTypeId);\r\n // return this.badgeClasses[i >= this.badgeClasses.length ? this.badgeClasses.length - 1 : i];\r\n\r\n const i = accountTypeId <= this.badgeClasses.length ? accountTypeId - 1 : 0;\r\n return this.badgeClasses[i];\r\n }\r\n\r\n tryDelete(node: AccountDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'ACC_LABEL_ACCOUNT',\r\n confirmQuestion: 'SEC_USER_CONFIRM_DELETE_CONFIRMATION_QUESTION',\r\n title: node.titles[this.langIndex].toString(),\r\n note: 'ACC_CONFIRM_DELETE_NOTE',\r\n dangerNote: 'ACC_CONFIRM_DELETE_DANGER_NOTE'\r\n }));\r\n\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.delete(node.id);\r\n });\r\n }\r\n\r\n delete(id: number) {\r\n this.loader.load(LoaderType.Body);\r\n this.service.deleteAccount(id)\r\n .then(r => {\r\n if (r) {\r\n this.dataSource.dataChange.next(this.dataSource.data.filter(d => d.item.id != id));\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n tryUpdateStatus(row, active) {\r\n // //console.warn(row);\r\n //const _data = this.dataSource.data;\r\n const _data = this.dataSource.dataChange.value;\r\n //const i = _data.filter(d => d.item.id == row.id);\r\n\r\n if (!active) {\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'ACC_LABEL_ACCOUNT',\r\n confirmQuestion: 'SEC_USER_CONFIRM_DEACTIVATE_CONFIRMATION_QUESTION',\r\n title: row.titles[this.langIndex].toString(),\r\n note: 'ACC_CONFIRM_UPDATE_NOTE',\r\n dangerNote: 'ACC_CONFIRM_UPDATE_DANGER_NOTE',\r\n action: '_ACTION_DEACTIVATE',\r\n submitText: '_ACTION_DEACTIVATE'\r\n }));\r\n const i = this.dataSource.data.findIndex(n => n.item.id == row.id);\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.updateStatus(row.id, active);\r\n }).catch(e => {\r\n _data[i].item.isActive = true;\r\n })\r\n }\r\n else this.updateStatus(row.id, active);\r\n }\r\n\r\n //client-side only, after server update\r\n private _updateNodeStatus(id: number, active: boolean) {\r\n\r\n const i = this.dataSource.dataChange.value.findIndex(n => n.item.id == id);\r\n if (i > -1) {\r\n this.dataSource.dataChange.value[i].item.isActive = active;\r\n this.dataSource.dataChange.value.filter(d => d.item.parentId == id).forEach(element => {\r\n this._updateNodeStatus(element.item.id, active);\r\n });\r\n\r\n // this.service.dataMap.forEach((dto, key) => {\r\n // dto.filter(d => d.id == id)[0].isActive = active;\r\n // dto.filter(d => d.parentId == id).forEach(d => {\r\n // this._updateNodeStatus(d.id, active);\r\n // })\r\n // });\r\n }\r\n }\r\n\r\n updateStatus(id, active) {\r\n this.loader.load(LoaderType.Body);\r\n //const _data = this.dataSource.data;\r\n const _data = this.dataSource.dataChange.value;\r\n const i = this.dataSource.data.findIndex(n => n.item.id == id);\r\n //const _val = _data[i].item.isActive;\r\n //console.log(_val);\r\n\r\n this.service.updateAccountStatus({ id: id, active: active })\r\n .then(r => {\r\n if (r) {\r\n //clear cache\r\n this.service.dataMap.clear();\r\n this.alert.success(active ? '_ACTION_ACTIVATING' : '_ACTION_DEACTIVATING');\r\n //cascade change to all nodes\r\n _data.filter(d => d.item.parentId == id).forEach(element => {\r\n this._updateNodeStatus(element.item.id, active);\r\n });\r\n //this._updateNodeStatus(id, active);\r\n ////console.log(this.service.dataMap);\r\n\r\n //flush isactive status\r\n this.dataSource.isActiveChange.next(this.dataSource.isActiveChange.value);\r\n }\r\n else {\r\n _data[i].item.isActive = true;\r\n this.alert.failure(active ? '_ACTION_ACTIVATING' : '_ACTION_DEACTIVATING');\r\n }\r\n\r\n // this.dataSource.statusChange.next([id, active]);\r\n }).catch(e => {\r\n _data[i].item.isActive = !active;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n update(id: number) {\r\n this.router.navigate(['/', this.translate.currentLang, 'accounts', 'update', id]);\r\n }\r\n\r\n filterChanged(filterText: string) {\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, ValidatorFn, AbstractControl, FormArray } from '@angular/forms';\r\nimport { CitiesService } from 'src/app/features/lookups/services/cities';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { AccountTypesService } from 'src/app/features/lookups/services/account-types';\r\nimport { AccountsService } from '../../services/accounts.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { UsersService } from 'src/app/features/security/services/users.service';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, usernameValidator, numbersOnlyValidator, comparePasswords, phoneNumberValidator, emailValidator } from 'src/app/shared/services/custom-validators';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { PostAccountCmd, AccountMetaDto, AccountDto } from '../../models/account';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { AccountType } from 'src/app/core/models/enums/account-type';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { UserDto, UserMetaVm } from 'src/app/features/security/models/user';\r\nimport { SecurityService } from 'src/app/features/security/services/security.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\n\r\n@Component({\r\n selector: 'mac-manage-account',\r\n templateUrl: './manage-account.component.html',\r\n styleUrls: ['./manage-account.component.scss'],\r\n providers: [\r\n CountriesService,\r\n CitiesService,\r\n StockTypesService,\r\n AccountTypesService,\r\n AccountsService,\r\n UsersService,\r\n FileLoaderService\r\n ]\r\n})\r\nexport class ManageAccountComponent implements OnInit {\r\n dto: AccountDto;\r\n accountForm: FormGroup;\r\n countries: any[];\r\n cities: any[];\r\n _stockTypes: StockTypeDto[] = [];\r\n uroStockTypes: StockTypeDto[] = [];\r\n accountTypes: any[];\r\n //parentAccounts: any[];\r\n accountId: number;\r\n lang: Language;\r\n loading: boolean;\r\n //langIndex: number;\r\n _parentAccounts: AccountMetaDto[] = [];\r\n users: UserDto[] = [];\r\n documentTypes: _DocumentType[];\r\n accountTypeId: number;\r\n\r\n badgeClasses = [\r\n 'branches bg-primary',\r\n 'agent bg-success',\r\n 'distributor bg-danger',\r\n 'Sub-Distributor bg-orange'\r\n ];\r\n\r\n get AccountType() { return AccountType; };\r\n get accountType() { return this.accountForm.get('accountTypeId'); }\r\n //get parentAccount() { return this.accountForm.get('parentId'); }\r\n get titles() { return this.accountForm.get('titles') as FormArray }\r\n get country() { return this.accountForm.get('countryId'); }\r\n get city() { return this.accountForm.get('cityId'); }\r\n get stockTypes() { return this.accountForm.get('stockTypes'); }\r\n get email() { return this.accountForm.get('email'); }\r\n get phoneNumber() { return this.accountForm.get('phoneNumber'); }\r\n // get primaryUser() { return this.accountForm.get('primaryUser'); }\r\n get username() { return this.accountForm.get('adminAccount.username'); }\r\n get password() { return this.accountForm.get('adminAccount.pass.password'); }\r\n get passwordConfirm() { return this.accountForm.get('adminAccount.pass.passwordConfirm'); }\r\n get attachments() { return this.accountForm.get('attachments') as FormArray; };\r\n\r\n constructor(private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private citiesService: CitiesService,\r\n private stockTypesService: StockTypesService,\r\n private accountTypeService: AccountTypesService,\r\n private service: AccountsService,\r\n private loader: LoadingService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private usersService: UsersService,\r\n public translate: TranslateService,\r\n public auth: AuthService,\r\n private fileLoader: FileLoaderService) { }\r\n\r\n async ngOnInit() {\r\n\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.formInit();\r\n this.accountForm.disable();\r\n this.loader.load(LoaderType.Nav);\r\n this.accountId = Number(this.route.snapshot.paramMap.get(\"id\"));\r\n\r\n //uro stock-types\r\n this.uroStockTypes = await (await this.stockTypesService.getURO(this.lang)).list;\r\n\r\n this.users = (await this.usersService.getAccountUsers(this.accountId, this.lang)).users;\r\n //console.log(this.users);\r\n\r\n\r\n\r\n // const promises = [\r\n // this.countriesService.get(this.translate.currentLang == 'ar' ? Language.Arabic : Language.English)\r\n // .then(result => this.countries = result.countries),\r\n // this.stockTypesService.getAllowed()\r\n // .then(result => this._stockTypes = result.stockTypes),\r\n // this.accountId && this.auth.isSystemAccount ?\r\n // this.accountTypeService.get()\r\n // .then(result => this.accountTypes = result.accountTypes.map(at => { at.titles = [at.titles[this.langIndex]]; return at; }))\r\n // : this.accountTypeService.getAllowed()\r\n // .then(result => this.accountTypes = result.accountTypes)\r\n // ];\r\n\r\n // Promise.all(promises).then()\r\n\r\n // Promise.all([\r\n // this.countriesService.get(this.translate.currentLang == 'ar' ? Language.Arabic : Language.English)\r\n // .then(result => this.countries = result.countries),\r\n // this.stockTypesService.getAllowed()\r\n // .then(result => this._stockTypes = result.stockTypes),\r\n // this.accountId && this.auth.isSystemAccount ?\r\n // this.accountTypeService.get()\r\n // .then(result => this.accountTypes = result.accountTypes.map(at => { at.titles = [at.titles[this.langIndex]]; return at; }))\r\n // : this.accountTypeService.getAllowed()\r\n // .then(result => this.accountTypes = result.accountTypes)\r\n // ]).then(() => {\r\n\r\n // if (this.accountId) {\r\n // this.service.getAccount(this.accountId)\r\n // .then(result => {\r\n // //console.log(result);\r\n // this._parentAccounts = result.parentAccounts;\r\n // this.accountForm.patchValue({\r\n // parentId: result.account.parentId,\r\n // accountTypeId: result.account.accountTypeId,\r\n // //accountType: result.account.accountType,\r\n // titles: result.account.titles,\r\n // countryId: result.account.city ? result.account.city.countryId : null,\r\n // cityId: result.account.cityId,\r\n // stockTypes: result.account.stockTypes,\r\n // email: result.account.email,\r\n // phoneNumber: result.account.phoneNumber\r\n // });\r\n // });\r\n // }\r\n\r\n // this.accountForm.enable();\r\n // if (!this.accountId) {\r\n // //defalut selects\r\n // this.accountType.setValue(this.accountTypes[0].id);\r\n // if (this.accountTypes.length == 1)\r\n // this.accountType.disable();\r\n // } else {\r\n // //can't be edited\r\n // //todo: unless it's a system account\r\n // //this.accountType.disable();\r\n\r\n // }\r\n\r\n // }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n\r\n\r\n this.countries = (await this.countriesService.get(this.lang)).list;\r\n\r\n //this._stockTypes = await this.fetchStockTypes(!this.auth.isSystemAccount ? this.accountId : 0); // (await this.stockTypesService.getAllowed(this.accountId)).stockTypes;\r\n //this._stockTypes = await this.fetchStockTypes(this.accountId ? this.parentAccount.value : this.auth.accountId); // (await this.stockTypesService.getAllowed(this.accountId)).stockTypes;\r\n this.accountTypes = this.accountId && this.auth.currentUser.isSystemAccount ?\r\n (await this.accountTypeService.get()).list.map(at => { at.titles = [at.titles[this.lang]]; return at; })\r\n : (await this.accountTypeService.getAllowed()).list;\r\n\r\n\r\n\r\n\r\n\r\n if (this.accountId) {\r\n //update model, get account details from server and update form values\r\n\r\n var result = await this.service.getAccount(this.accountId);\r\n this.dto = result.account;\r\n\r\n this.documentTypes = this.dto.stockTypes.map(x => x.documentType).filter(this.onlyUnique);\r\n //console.log(this.documentTypes);\r\n this.accountTypeId = result.account.accountTypeId;\r\n\r\n //console.warn(result);\r\n this._parentAccounts = result.parentAccounts;\r\n this.accountForm.patchValue({\r\n //parentId: result.account.parentId,\r\n accountTypeId: result.account.accountTypeId,\r\n titles: result.account.titles,\r\n countryId: result.account.city ? result.account.city.countryId : null,\r\n cityId: result.account.cityId,\r\n stockTypes: result.account.stockTypes.map(x => x.id),\r\n email: result.account.email,\r\n phoneNumber: result.account.phoneNumber,\r\n isSMSEnabled: result.account.isSMSEnabled\r\n });\r\n\r\n if (result.account.city)\r\n this.cities =\r\n (await this.citiesService.get(result.account.city.countryId, this.lang)).list;\r\n\r\n\r\n if (this.dto.attachments)\r\n this.dto.attachments.forEach(async (att, i) => {\r\n att.url = await this.fileLoader.loadAsync(att.url);\r\n });\r\n\r\n //console.log(this.accountForm.value);\r\n }\r\n //this._stockTypes = await (await this.fetchStockTypes(this.accountId/* ? this.parentAccount.value : this.auth.currentUser.accountId*/)).list.filter(x => x.id == StockType.License);\r\n //this._stockTypes = await (await this.fetchStockTypes(this.dto.parentId/* ? this.parentAccount.value : this.auth.currentUser.accountId*/)).list;\r\n this._stockTypes = await (await this.fetchStockTypes(this.accountId/* ? this.parentAccount.value : this.auth.currentUser.accountId*/));\r\n\r\n this.accountForm.enable();\r\n if (!this.accountId) {\r\n \r\n //defalut selects\r\n this.accountType.setValue(this.accountTypes[0].id);\r\n if (this.accountTypes.length == 1)\r\n this.accountType.disable();\r\n } else {\r\n //temp: disable for all\r\n if (!this.auth.currentUser.isSystemAccount)\r\n this.accountType.disable();\r\n //can't be edited\r\n //todo: unless it's a system account\r\n //this.accountType.disable();\r\n\r\n }\r\n\r\n // //not a branch\r\n // if (this.auth.currentUser.isSystemAccount && this.accountId && this.accountType.value != AccountType.Branch) {\r\n // this.parentAccounts = await this.fetchParentAccounts();\r\n\r\n // //this._stockTypes = await this.fetchStockTypes();\r\n //}\r\n\r\n\r\n this.loader.load(LoaderType.Nav, false);\r\n }\r\n\r\n private onlyUnique(value, index, self) {\r\n return self.indexOf(value) === index;\r\n }\r\n\r\n getAccountType(accountTypeId: number) {\r\n const prefix = 'ACC_LABEL_ACCOUNT_';\r\n switch (accountTypeId) {\r\n case 1:\r\n return this.translate.instant(prefix + \"BRANCH\");\r\n\r\n case 2:\r\n return this.translate.instant(prefix + \"AGENT\");\r\n\r\n case 3:\r\n return this.translate.instant(prefix + \"DISTRIBUTOR\");\r\n\r\n case 4:\r\n return this.translate.instant(prefix + \"SUB_DISTRIBUTOR\");\r\n }\r\n }\r\n\r\n getBadgeClass(accountTypeId: number) {\r\n //const i = this.accountTypes.findIndex(id => id == accountTypeId);\r\n return this.badgeClasses[accountTypeId >= this.badgeClasses.length ? this.badgeClasses.length - 1 : accountTypeId - 1];\r\n }\r\n\r\n fetchCities(countryId) {\r\n //console.log(countryId);\r\n this.city.reset();\r\n this.citiesService.get(countryId, this.lang)\r\n .then(result => {\r\n this.cities = result.list;\r\n });\r\n }\r\n\r\n\r\n // private async fetchParentAccounts() {\r\n // const result = await this.service\r\n // .getPossibleParentAccounts(this.accountId, this.accountType.value);\r\n\r\n // return result.list;\r\n // ////console.warn(result);\r\n // // return populateAccountsSelect(result.list);\r\n // // return result.list.map(dto => {\r\n // // let _titles = [];\r\n // // dto.titles.forEach((t, i) => {\r\n // // _titles.push(`${t}`);\r\n // // });\r\n // // dto.titles = [_titles.join(' // ')];\r\n // // return dto;\r\n // // });\r\n // }\r\n\r\n // onSelectAccountType() {\r\n // ////console.log(d);\r\n // ////console.log('onSelectAccountType');\r\n\r\n\r\n // ////console.log(this.accountType.value);\r\n // //fetch accounts\r\n\r\n // if (!this.accountId)\r\n // return;\r\n\r\n // this.parentAccount.reset();\r\n // this.stockTypes.disable();\r\n // this.parentAccount.disable();\r\n\r\n // //if branch display all stock types, ignore parents\r\n // if (this.accountType.value == 1 || !this.accountId) {\r\n // this.loader.load(LoaderType.Body);\r\n // this.fetchStockTypes(0)\r\n // .then(result => {\r\n // this._stockTypes = result;\r\n // this.stockTypes.enable();\r\n // this.parentAccount.enable();\r\n // })\r\n // .finally(() => this.loader.load(LoaderType.Body, false));\r\n // } else if (this.accountId) {\r\n // this.loader.load(LoaderType.Body);\r\n // this.fetchParentAccounts()\r\n // .then(result => {\r\n // this.parentAccounts = result;\r\n // this.parentAccount.enable();\r\n // })\r\n // .finally(() => this.loader.load(LoaderType.Body, false));\r\n // }\r\n // }\r\n\r\n //this.parentAccount.value\r\n private async fetchStockTypes(accountId: number) {\r\n // return accountId ? await (await this.stockTypesService.getAllowed(accountId)).list\r\n // : await (await this.stockTypesService.get(this.lang)).list;\r\n // //console.log(this.uroStockTypes);\r\n\r\n //console.log(this.accountId);\r\n //console.log(accountId);\r\n\r\n const stockTypes = await (await this.stockTypesService.getAllowed(!this.auth.currentUser.isSystemAccount || this.accountType.value != AccountType.Branch ? this.auth.currentUser.parentAccountId : 0)).list;\r\n //console.log(stockTypes);\r\n\r\n if (stockTypes.filter(x => x.documentType == _DocumentType.TripTikDocument).length > 0)\r\n stockTypes.push(...this.uroStockTypes.filter(x => x.documentType == _DocumentType.TripTikDocument && x.isUnifiedRelease && stockTypes.map(y => y.id).indexOf(x.id) == -1));\r\n\r\n //console.log(stockTypes);\r\n return stockTypes;\r\n }\r\n\r\n // onSelectParentAccount() {\r\n // this.loader.load(LoaderType.Body);\r\n // this.fetchStockTypes(this.parentAccount.value)\r\n // .then(result => {\r\n // this._stockTypes = result;\r\n // if (this._stockTypes.length == 1)\r\n // this.stockTypes.setValue([this._stockTypes[0].id]);\r\n\r\n // this.stockTypes.enable();\r\n // }).finally(() => this.loader.load(LoaderType.Body, false));\r\n // }\r\n\r\n onSubmit() {\r\n ////console.warn(this.accountForm);\r\n if (this.accountId) {\r\n this.username.setErrors(null);\r\n this.password.setErrors(null);\r\n this.passwordConfirm.setErrors(null);\r\n }\r\n\r\n //ignore parent\r\n //if (!this.accountId || !this.auth.currentUser.isSystemAccount || this.accountType.value == 1) {\r\n //this.parentAccount.setErrors(null);\r\n //}\r\n\r\n if (!this.accountForm.valid)\r\n return Utils.validateAllFormFields(this.accountForm);\r\n\r\n //post to server \r\n this.loader.load(LoaderType.Body);\r\n const cmd = this.accountForm.value as PostAccountCmd;\r\n //ignore parent\r\n cmd.parentId = null;\r\n //cmd.accountTypeId = this.auth.currentUser.isSystemAccount ? \r\n //todo post valid account type only\r\n\r\n cmd.accountTypeId = this.accountType.value;\r\n\r\n if (!this.accountId) {\r\n cmd.accountId = 0;\r\n cmd.username = this.username.value;\r\n cmd.password = this.password.value;\r\n\r\n this.service.createAccount(cmd)\r\n .then(r => {\r\n if (r) {\r\n this.alert.success('_ACTION_ADDING');\r\n this.router.navigate([this.translate.currentLang, 'accounts', 'list']);\r\n } else this.alert.failure('_ACTION_ADDING');\r\n })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n else {\r\n cmd.accountId = this.accountId;\r\n this.service.updateAccount(cmd)\r\n .then(r => {\r\n if (r) {\r\n this.alert.success('_ACTION_UPDATING');\r\n this.router.navigate([this.translate.currentLang, 'accounts', 'list']);\r\n } else this.alert.failure('_ACTION_UPDATING');\r\n })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n //this.router.navigate([this.translate.currentLang, 'accounts', 'list']);\r\n });\r\n }\r\n }\r\n\r\n private formInit() {\r\n this.accountForm = this.fb.group({\r\n //parentId: [null, [Validators.required]],\r\n accountTypeId: ['', [Validators.required]],\r\n titles: this.fb.array([\r\n ['', [Validators.required, nonEnglishCharactersValidator, Validators.minLength(3), Validators.maxLength(50)]],\r\n ['', [Validators.required, nonArabicCharactersValidator, Validators.minLength(3), Validators.maxLength(50)]]\r\n ]),\r\n countryId: [null, [Validators.required]],\r\n cityId: [null, [Validators.required]],\r\n stockTypes: ['', [Validators.required]],\r\n email: ['', [/*Validators.required, */Validators.email]],\r\n phoneNumber: ['', [Validators.required, phoneNumberValidator]],\r\n isSMSEnabled: [true],\r\n // primaryUser: ['', [Validators.required]],\r\n adminAccount: this.fb.group({\r\n username: this.fb.control('',\r\n [Validators.required, usernameValidator, Validators.minLength(5), Validators.maxLength(50)],\r\n this.usersService.validateUsernameNotTaken.bind(this)), //todo: regex for username pattern\r\n pass: this.fb.group({\r\n password: ['', [Validators.required, Validators.minLength(6)]], //todo: regex for password pattern\r\n passwordConfirm: ['']\r\n },\r\n { validator: comparePasswords })\r\n }),\r\n attachments: this.fb.array([])\r\n });\r\n }\r\n\r\n\r\n\r\n //attachments\r\n\r\n private attachmentFormInit() {\r\n this.attachments.push(this.fb.group({\r\n name: ['', [Validators.required]],\r\n file: ['', [Validators.required]],\r\n fileName: ['']\r\n }));\r\n }\r\n\r\n addAttachment() {\r\n this.attachmentFormInit();\r\n }\r\n\r\n removeAttachment(i) {\r\n this.attachments.removeAt(i);\r\n }\r\n\r\n preview($event, group: FormGroup) {\r\n const tgt = $event.target || window.event.srcElement,\r\n files = Array.isArray($event) ? $event : tgt.files;\r\n\r\n if (FileReader && files && files.length) {\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n //console.log(fr);\r\n if (fr.result.toString().length <= 2 * 2 ** 20) {\r\n group.get('file').setValue(fr.result.toString());\r\n group.get('fileName').setValue(files[0].name);\r\n }\r\n else\r\n alert('file limit is 2 MB.');\r\n };\r\n fr.readAsDataURL(files[0]);\r\n }\r\n else {\r\n //console.error('not supported!');\r\n }\r\n }\r\n\r\n fileDropped(file, group: FormGroup): void {\r\n //console.log(file);\r\n group.get('file').setValue(file.url);\r\n group.get('fileName').setValue(file.name);\r\n }\r\n\r\n}\r\n","import { DefaultAlertAction } from './../../../../shared/models/default-alert-action';\r\nimport { nonEnglishCharactersValidator, nonArabicCharactersValidator, numbersOnlyValidator, comparePasswords } from 'src/app/shared/services/custom-validators';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { AuthService } from './../../../../core/auth/auth.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators, FormGroup, FormArray } from '@angular/forms';\r\nimport { UsersService } from '../../../security/services/users.service';\r\nimport * as _ from 'lodash'\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { UserProfileVm } from 'src/app/features/security/models/user';\r\n\r\n@Component({\r\n selector: 'mac-user-profile',\r\n templateUrl: './user-profile.component.html',\r\n styleUrls: ['./user-profile.component.scss'],\r\n providers: [UsersService]\r\n})\r\nexport class UserProfileComponent implements OnInit {\r\n\r\n imageURL: string;\r\n defaultAvatar: string = 'assets/images/user.svg';\r\n updateMode: boolean;\r\n changingPassword: boolean;\r\n cashedProfileData: {};\r\n profileForm: FormGroup;\r\n\r\n constructor(private fb: FormBuilder,\r\n private usersService: UsersService,\r\n private authService: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService) { }\r\n\r\n ngOnInit() {\r\n this.formInit();\r\n this.profileForm.disable();\r\n this.fetchUserProfile();\r\n }\r\n\r\n fetchUserProfile() {\r\n this.loader.load(LoaderType.Nav);\r\n this.usersService.getUserProfile().then(p => {\r\n ////console.log(p);\r\n if (p.avatar)\r\n this.imageURL = `data:image/png;base64,${p.avatar}`;\r\n\r\n this.cashedProfileData = {\r\n names: p.names,\r\n username: p.username,\r\n email: p.email,\r\n phoneNumber: p.phoneNumber,\r\n avatar: this.imageURL\r\n }\r\n this.profileForm.patchValue(this.cashedProfileData);\r\n }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n \r\n get names() { return this.profileForm.get('names') as FormArray; }\r\n get username() { return this.profileForm.get('username'); }\r\n get email() { return this.profileForm.get('email'); }\r\n get phoneNumber() { return this.profileForm.get('phoneNumber'); }\r\n get avatar() { return this.profileForm.get('avatar'); }\r\n get password() { return this.profileForm.get('password'); }\r\n get newPassword() { return this.profileForm.get('newPass.password'); }\r\n get newPasswordConfirm() { return this.profileForm.get('newPass.passwordConfirm'); }\r\n\r\n changePassword() {\r\n this.changingPassword = !this.changingPassword;\r\n this.changingPassword ?\r\n this.password.enable() :\r\n this.password.disable();\r\n }\r\n\r\n update() {\r\n this.updateMode = !this.updateMode;\r\n this.updateMode ? this.profileForm.enable() : this.profileForm.disable();\r\n this.username.disable();\r\n this.password.disable();\r\n this.changingPassword = false;\r\n !this.updateMode ? this.profileForm.patchValue(this.cashedProfileData) : null;\r\n this.imageURL = !this.updateMode ? this.cashedProfileData[\"avatar\"] : this.imageURL;\r\n }\r\n\r\n onSubmit() {\r\n //const img = this.getImageString();\r\n \r\n if (!this.changingPassword) {\r\n this.password.setErrors(null);\r\n this.newPassword.setErrors(null);\r\n this.newPasswordConfirm.setErrors(null);\r\n }\r\n\r\n if (!this.profileForm.valid)\r\n return Utils.validateAllFormFields(this.profileForm);\r\n\r\n this.loader.load(LoaderType.Body);\r\n let profile = _.pick(this.profileForm.value, ['id', 'username', 'names', 'email', 'phoneNumber', 'avatar']) as UserProfileVm;\r\n\r\n if (this.changingPassword) {\r\n profile.password = this.password.value;\r\n profile.newPassword = this.newPassword.value;\r\n }\r\n\r\n profile.avatar = this.imageURL != this.defaultAvatar ? this.imageURL : null;\r\n\r\n this.usersService.updateUserProfile(profile)\r\n .then(r => {\r\n if (r) {\r\n AuthService.userMeta.next({ id: profile.id, name: profile.names[0], avatar: profile.avatar });\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n this.updateMode = false;\r\n this.profileForm.disable();\r\n this.username.disable();\r\n this.password.disable();\r\n this.changingPassword = false;\r\n } else\r\n this.alert.failure(DefaultAlertAction.UPDATING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n preview($event) {\r\n ////console.warn($event);\r\n //const img = document.getElementById(\"licensePhoto\") as HTMLImageElement;\r\n const tgt = $event.target || window.event.srcElement,\r\n files = tgt.files;\r\n\r\n // FileReader support\r\n if (FileReader && files && files.length) {\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n this.imageURL = fr.result.toString();\r\n //img.setAttribute(\"src\", fr.result.toString());\r\n };\r\n fr.readAsDataURL(files[0]);\r\n }\r\n // Not supported\r\n else {\r\n //console.error('not supported!');\r\n }\r\n }\r\n\r\n getImageString() {\r\n if (this.imageURL == this.defaultAvatar)\r\n return null;\r\n\r\n const img: HTMLImageElement = document.getElementById(\"img\") as HTMLImageElement;\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.getContext(\"2d\").drawImage(img, 0, 0, 300, 300);\r\n return canvas.toDataURL(\"image/png\", 1);\r\n }\r\n\r\n removeImage() {\r\n this.imageURL = this.defaultAvatar;\r\n }\r\n\r\n private formInit() {\r\n this.profileForm = this.fb.group({\r\n names: this.fb.array([\r\n ['', [Validators.required, nonEnglishCharactersValidator, Validators.minLength(3), Validators.maxLength(100)]],\r\n ['', [Validators.required, nonArabicCharactersValidator, Validators.minLength(3), Validators.maxLength(100)]]\r\n ]),\r\n username: [{ value: '', disabled: true }],\r\n email: ['', [Validators.required, Validators.email]],\r\n phoneNumber: ['', [Validators.required, numbersOnlyValidator]],\r\n avatar: [null],\r\n password: ['', [Validators.required]],\r\n newPass: this.fb.group({\r\n password: ['', [Validators.required, Validators.minLength(6)]], //todo: regex for password pattern\r\n passwordConfirm: ['']\r\n }, { validator: comparePasswords })\r\n });\r\n\r\n this.imageURL = this.defaultAvatar;\r\n this.updateMode = false;\r\n this.changingPassword = false;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { LoaderType, LoadingService } from 'src/app/shared/services/loading';\r\nimport { AccountDto } from '../../models/account';\r\nimport { AccountsService } from '../../services/accounts.service';\r\n\r\n@Component({\r\n selector: 'mac-view-account',\r\n templateUrl: './view-account.component.html',\r\n styleUrls: ['./view-account.component.scss'],\r\n providers: [\r\n AccountsService,\r\n FileLoaderService\r\n ]\r\n})\r\nexport class ViewAccountComponent implements OnInit {\r\n\r\n accountId: number;\r\n dto: AccountDto;\r\n lang: Language;\r\n //_stockTypes: string[] = [];\r\n _parentAccounts: string[] = [];\r\n\r\n constructor(private loader: LoadingService,\r\n public translate: TranslateService,\r\n private service: AccountsService,\r\n private route: ActivatedRoute,\r\n private fileLoader: FileLoaderService) { }\r\n\r\n async ngOnInit() {\r\n\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.accountId = Number(this.route.snapshot.paramMap.get(\"id\"));\r\n\r\n if (this.accountId) {\r\n //update model, get account details from server and update form values\r\n\r\n\r\n var result = await this.service.getAccount(this.accountId);\r\n this.dto = result.account;\r\n result.parentAccounts\r\n\r\n //this._stockTypes = this.dto.stockTypes.map(x => x.titles[0]);\r\n this._parentAccounts = result.parentAccounts.reverse().map(x => x.titles[0]).slice(1);\r\n\r\n this.dto.attachments.forEach(async (att, i) => {\r\n att.url = await this.fileLoader.loadAsync(att.url);\r\n });\r\n\r\n //console.log(this.dto);\r\n }\r\n\r\n this.loader.load(LoaderType.Nav, false);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, BehaviorSubject, merge } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { CollectionViewer, SelectionChange } from '@angular/cdk/collections';\r\n\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { AccountDto, AccountVm, AccountsVm } from './../models/account';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { PostAccountCmd } from '../models/account';\r\nimport { LookupDto, LookupVm } from '../../lookups/models/lookup';\r\n\r\nexport class DynamicFlatNode {\r\n constructor(public item: AccountDto, public level = 1, public expandable = false,\r\n public isLoading = false) { }\r\n}\r\n\r\nexport class DynamicDataSource implements DataSource {\r\n\r\n dataChange = new BehaviorSubject([]);\r\n isActiveChange = new BehaviorSubject(false);\r\n\r\n get data(): DynamicFlatNode[] { return this.dataChange.value; }\r\n set data(value: DynamicFlatNode[]) {\r\n this._treeControl.dataNodes = value;\r\n this.dataChange.next(value);\r\n }\r\n\r\n constructor(private _treeControl: FlatTreeControl,\r\n private _database: AccountsService) { }\r\n\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n this._treeControl.expansionModel.changed.subscribe(change => {\r\n if ((change as SelectionChange).added ||\r\n (change as SelectionChange).removed) {\r\n this.handleTreeControl(change as SelectionChange);\r\n }\r\n });\r\n\r\n return merge(collectionViewer.viewChange, this.dataChange, this.isActiveChange)\r\n .pipe(map(() => {\r\n return this.data.filter(d => this.isActiveChange.value || d.item.isActive);\r\n }));\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void { }\r\n\r\n /** Handle expand/collapse behaviors */\r\n handleTreeControl(change: SelectionChange) {\r\n if (change.added) {\r\n change.added.forEach(node => this.toggleNode(node, true));\r\n }\r\n if (change.removed) {\r\n change.removed.slice().reverse().forEach(node => this.toggleNode(node, false));\r\n }\r\n }\r\n\r\n toggleNode(node: DynamicFlatNode, expand: boolean) {\r\n node.isLoading = true;\r\n\r\n this._database.getChildren(node.item.id)\r\n .then(children => {\r\n const index = this.data.indexOf(node);\r\n if (!children || index < 0) { // If no children, or cannot find the node, no op\r\n return;\r\n }\r\n\r\n if (expand) {\r\n const nodes = children.map(_node =>\r\n new DynamicFlatNode(_node, node.level + 1, this._database.isExpandable(_node.id)));\r\n this.data.splice(index + 1, 0, ...nodes);\r\n }\r\n else {\r\n let count = 0;\r\n for (let i = index + 1; i < this.data.length\r\n && this.data[i].level > node.level; i++, count++) { }\r\n this.data.splice(index + 1, count);\r\n }\r\n\r\n this.dataChange.next(this.data);\r\n })\r\n .finally(() => node.isLoading = false);\r\n }\r\n}\r\n\r\n\r\n@Injectable()\r\nexport class AccountsService {\r\n dataMap = new Map();\r\n rootLevelNodes: AccountDto[] = [];\r\n\r\n constructor(private api: ApiHandler) { }\r\n\r\n async initialData(): Promise<[DynamicFlatNode[], number]> {\r\n\r\n const data = await (await this.getChildrenAccounts(0));\r\n this.rootLevelNodes = data.accounts;\r\n //todo: include current account id\r\n this.dataMap.set(0, this.rootLevelNodes);\r\n\r\n return [this.rootLevelNodes.map(_node => new DynamicFlatNode(_node, 0, true)), data.usersCount]\r\n }\r\n\r\n async getChildren(parentId: number): Promise {\r\n if (!this.dataMap.has(parentId)) {\r\n const nodes = await (await this.getChildrenAccounts(parentId)).accounts;\r\n //add to cache\r\n this.dataMap.set(parentId, nodes);\r\n }\r\n return this.dataMap.get(parentId);\r\n }\r\n\r\n isExpandable(parentId: number): boolean {\r\n if (this.dataMap.has(parentId)\r\n && this.dataMap.get(parentId).length > 0)\r\n return true;\r\n\r\n else\r\n return [...this.dataMap.values()]\r\n .filter((node) => node.find(x => x.id == parentId && x.hasChildren /*x.children.length > 0*/))\r\n .length > 0;\r\n }\r\n\r\n public getChildrenAccounts(id: number): Promise {\r\n return this.api.get(EndPoint.ACCOUNTS_CHILDREN, id).toPromise();\r\n }\r\n\r\n public getAccounts(id: number = 0): Promise {\r\n return this.api.get(EndPoint.ACCOUNTS).toPromise();\r\n }\r\n\r\n public getPossibleParentAccounts(accountId: number, accountTypeId: number): Promise {\r\n return this.api.get(EndPoint.ACCOUNTS, [accountId, accountTypeId]).toPromise();\r\n }\r\n\r\n public getChildrenAccountsLookup(accountId: number, isActiveOnly: boolean = true): Promise {\r\n return this.api.get(EndPoint.ACCOUNTS_CHILDREN_LOOKUP, [accountId, isActiveOnly]).toPromise();\r\n }\r\n\r\n // {{base_url}}/accounts/children/lookup/8\r\n\r\n public getAccount(id: number): Promise {\r\n return this.api.get(EndPoint.ACCOUNTS, id).toPromise();\r\n }\r\n\r\n public createAccount(cmd: PostAccountCmd) {\r\n return this.api.create(EndPoint.ACCOUNTS, cmd).toPromise();\r\n }\r\n\r\n public updateAccount(cmd: PostAccountCmd) {\r\n return this.api.update(EndPoint.ACCOUNTS, cmd).toPromise();\r\n }\r\n\r\n public updateAccountStatus(cmd: { id: number, active: boolean }) {\r\n return this.api.update(EndPoint.ACCOUNTS, null, [cmd.id, cmd.active]).toPromise();\r\n }\r\n\r\n public deleteAccount(id: number) {\r\n return this.api.delete(EndPoint.ACCOUNTS, id).toPromise();\r\n }\r\n}\r\n\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { IssuingService } from '../../services/issuing.service';\r\nimport { undoRequestStatusLocale, UndoRequestStatus } from 'src/app/features/stock/models/undo-requests';\r\nimport { DocumentsRevokeRequestsDataSource } from '../../services/documents-revoke-requests.datasource';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DocumentRevokeRequestDto, ResolveTryRevokeDocumentCommand } from '../../models/issuing.models';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\n\r\n@Component({\r\n selector: 'mac-documents-revoke-requests',\r\n templateUrl: './documents-revoke-requests.component.html',\r\n styleUrls: ['./documents-revoke-requests.component.scss'],\r\n providers: [IssuingService, StockTypesService, FileLoaderService]\r\n})\r\nexport class DocumentsRevokeRequestsComponent implements OnInit {\r\n moment = moment;\r\n undoRequestStatusLocale = undoRequestStatusLocale;\r\n displayedColumns: string[] = ['created', 'serial', 'stockType', 'accountTitles', 'requestedBy', 'requestReason', 'undoRequestStatus', 'requestType', 'resolvedBy', 'resolved', 'resolveNote', 'tools'];\r\n dataSource: DocumentsRevokeRequestsDataSource;\r\n stockTypes: StockTypeDto[] = [];\r\n lang: Language;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n @ViewChild(MatSelect, { static: true }) stockType: MatSelect;\r\n\r\n get Role() { return Role; };\r\n get UndoRequestStatus() { return UndoRequestStatus; };\r\n //get StockType() { return StockType; };\r\n get _DocumentType() { return _DocumentType; };\r\n\r\n\r\n\r\n constructor(private loader: LoadingService,\r\n private issuingService: IssuingService,\r\n private stockTypesService: StockTypesService,\r\n private alert: AlertService,\r\n private fileLoader: FileLoaderService,\r\n private translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n public auth: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n if (!this.auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_UPDATE)\r\n && !this.auth.currentUser.isInRole(Role.TRIPTIKS_REVOKE_REQUESTS_UPDATE))\r\n this.displayedColumns.splice(this.displayedColumns.length - 1, 1);\r\n\r\n //bug: will take a second to be loaded\r\n this.stockTypesService.get(this.lang).then(result => this.stockTypes = result.list);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.sort.active = 'created';\r\n this.sort.direction = 'desc';\r\n this.paginator.pageSize = 10;\r\n this.dataSource = new DocumentsRevokeRequestsDataSource(this.issuingService, this.loader, this.fileLoader);\r\n this.loadDocumentsRevokeRequests();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => this.loadDocumentsRevokeRequests())\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'), this.stockType.valueChange)\r\n .pipe(\r\n tap(() => {\r\n this.paginator.pageIndex = 0;\r\n this.loadDocumentsRevokeRequests();\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n }\r\n\r\n private loadDocumentsRevokeRequests() {\r\n this.dataSource.loadDocumentsRevokeRequests({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.stockType.value, this.filter.nativeElement.value.trim());\r\n }\r\n\r\n getUndoRequestStatusClass(status: UndoRequestStatus) {\r\n switch (status) {\r\n case UndoRequestStatus.Rejected:\r\n return `text-danger`;\r\n\r\n case UndoRequestStatus.Approved:\r\n return `text-success`;\r\n\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n tryResolveRequest(row: DocumentRevokeRequestDto, approve: boolean = false) {\r\n if (row.stockType.documentType == _DocumentType.DrivingLicense && !this.auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_UPDATE)\r\n || (row.stockType.documentType == _DocumentType.TripTikDocument && !this.auth.currentUser.isInRole(Role.TRIPTIKS_REVOKE_REQUESTS_UPDATE)))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n confirmQuestion: approve ? 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_UPDATE_STATUS_CONFIRMATION_QUESTION_APPROVE' : 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_UPDATE_STATUS_CONFIRMATION_QUESTION_REJECT',\r\n title: `${row.accountTitles[0]} / ${row.requestedBy}`,\r\n action: approve ? '_ACTION_APPROVE' : '_ACTION_REJECT',\r\n submitText: approve ? '_ACTION_APPROVE' : '_ACTION_REJECT',\r\n submitClass: approve ? 'btn-warning' : 'btn-danger',\r\n note: !row.isDamaged ? (approve ? 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_UPDATE_STATUS_APPROVE_NOTE' : 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_UPDATE_STATUS_REJECT_NOTE')\r\n : (approve ? 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_UPDATE_STATUS_ISDAMAGED_APPROVE_NOTE' : 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_UPDATE_STATUS_REJECT_NOTE'),\r\n dangerNote: approve ? '' : ' ',\r\n inputNote: 'ISS_LABEL_RESOLVE_NOTE'\r\n }));\r\n modal.then(m => {\r\n //console.log(m);\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.resolveRequest(row.id, approve, m[1].inputNote);\r\n });\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.issuingService.getDocumentsRevokeRequests({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction })\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.revokeRequests);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private resolveRequest(id: number, approve: boolean, note: string) {\r\n this.loader.load(LoaderType.Body);\r\n const cmd: ResolveTryRevokeDocumentCommand = {\r\n id: id,\r\n approve: approve,\r\n note: note\r\n }\r\n this.issuingService.resolveTryRevokeDocument(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.APPROVING)\r\n //console.log(this.auth.currentUser.username);\r\n const i = this.dataSource.revokeRequestsSubject.value.findIndex(i => i.id == id);\r\n this.dataSource.revokeRequestsSubject.value[i].undoRequestStatus = approve ? UndoRequestStatus.Approved : UndoRequestStatus.Rejected;\r\n this.dataSource.revokeRequestsSubject.value[i].resolvedBy = this.auth.currentUser.username;\r\n this.dataSource.revokeRequestsSubject.value[i].resolveNote = note;\r\n this.dataSource.revokeRequestsSubject.next([...this.dataSource.revokeRequestsSubject.value]);\r\n }\r\n else this.alert.failure(DefaultAlertAction.REJECTING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private exportToExcel(data: DocumentRevokeRequestDto[]) {\r\n const wscols = [\r\n { width: 14 },\r\n { width: 24 },\r\n { width: 24 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 16 },\r\n ];\r\n const autofilter = { ref: 'A1:J1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('_LABEL_DATE'),\r\n this.translate.instant('_LABEL_SERIAL'),\r\n this.translate.instant('LKP_FIELD_STOCK_TYPE'),\r\n this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n this.translate.instant('ISS_LABEL_REQUESTED_BY'),\r\n this.translate.instant('_FIELD_REASON'),\r\n this.translate.instant('STK_LABEL_UNDO_REQUEST_STATUS'),\r\n this.translate.instant('ISS_LABEL_REQUEST_TYPE'),\r\n this.translate.instant('ISS_LABEL_RESOLVED_BY'),\r\n this.translate.instant('ISS_LABEL_RESOLVE_DATE'),\r\n this.translate.instant('ISS_LABEL_RESOLVE_NOTE')\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n moment(row.created).format('DD/MM/YYYY'),\r\n row.serial.toString(),\r\n row.stockType.titles[0],\r\n row.accountTitles[0],\r\n row.requestedBy,\r\n row.requestReason,\r\n this.translate.instant(undoRequestStatusLocale(row.undoRequestStatus)),\r\n this.translate.instant(row.isDamaged ? '_ACTION_DESTROY' : '_ACTION_RECOVER'),\r\n row.resolvedBy ? row.resolvedBy : '-',\r\n row.resolved ? moment(row.resolved).format('DD/MM/YYYY') : '-',\r\n row.resolveNote ? row.resolveNote : '-'\r\n ]);\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Documents-Revoke-Requests');\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { result } from 'lodash';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { IssuingsPerMonthDataSetDto } from 'src/app/features/statistics/models/statistics.model';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { LoaderType, LoadingService } from 'src/app/shared/services/loading';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { DocumentValidityVm } from '../../models/issuing.models';\r\nimport { IssuingService } from '../../services/issuing.service';\r\n\r\n@Component({\r\n selector: 'mac-expired-documents-query',\r\n templateUrl: './expired-documents-query.component.html',\r\n styleUrls: ['./expired-documents-query.component.scss'],\r\n providers: [StockTypesService, IssuingService]\r\n})\r\nexport class ExpiredDocumentsQueryComponent implements OnInit {\r\n\r\n form: FormGroup;\r\n stockTypes: StockTypeDto[] = [];\r\n lang: Language;\r\n dto: DocumentValidityVm;\r\n\r\n get stockType() { return this.form.get('stockTypeId'); };\r\n get serial() { return this.form.get('serial'); };\r\n get passportIDorIdentityID() { return this.form.get('passportIDorIdentityID'); };\r\n\r\n constructor(private fb: FormBuilder,\r\n private stockTypesService: StockTypesService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private loader: LoadingService,\r\n private alert: AlertService) { }\r\n\r\n ngOnInit(): void {\r\n this.loader.load(LoaderType.Nav);\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.formInit();\r\n\r\n this.stockTypesService.get(this.lang)\r\n .then((result) => this.stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument))\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n stockTypeId: ['', [Validators.required]],\r\n serial: ['', [Validators.required]],\r\n passportIDorIdentityID: ['', [Validators.required]]\r\n })\r\n }\r\n\r\n onSubmit() {\r\n // //console.log(this.form.value);\r\n\r\n // if (!this.form.valid)\r\n // return Utils.validateAllFormFields(this.form);\r\n\r\n // this.loader.load(LoaderType.Body);\r\n // this.issuingService.searchForExpiredDocument(this.stockType.value, this.serial.value, this.passportIDorIdentityID.value)\r\n // .then(result => {\r\n // //console.log(result);\r\n\r\n // this.dto = result;\r\n // if (!this.dto) {\r\n // this.alert.failure(\"_MESSAGE_NO_SEARCH_RESULTS\", false);\r\n // }\r\n\r\n // }).catch(e => console.error(e))\r\n // .finally(() => this.loader.load(LoaderType.Body, false))\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { result } from 'lodash';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { IssuingsPerMonthDataSetDto } from 'src/app/features/statistics/models/statistics.model';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { LoaderType, LoadingService } from 'src/app/shared/services/loading';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { DocumentValidityVm, IssuedDocumentsQuery } from '../../models/issuing.models';\r\nimport { IssuingService } from '../../services/issuing.service';\r\n\r\n@Component({\r\n selector: 'mac-issued-documents-query',\r\n templateUrl: './issued-documents-query.component.html',\r\n styleUrls: ['./issued-documents-query.component.scss'],\r\n providers: [StockTypesService, IssuingService]\r\n})\r\nexport class IssuedDocumentsQueryComponent implements OnInit {\r\n\r\n form: FormGroup;\r\n stockTypes: StockTypeDto[] = [];\r\n lang: Language;\r\n dto: DocumentValidityVm;\r\n dataSource: MatTableDataSource;\r\n displayedColumns: string[] = ['name', 'issueDate', 'expiryDate', 'status'];\r\n\r\n get _DocumentType() { return _DocumentType; };\r\n\r\n get stockType() { return this.form.get('stockTypeId'); };\r\n get serial() { return this.form.get('serial'); };\r\n get passportIDorIdentityID() { return this.form.get('passportIDorIdentityID'); };\r\n get vChassisID() { return this.form.get('vChassisID'); };\r\n get vPlateID() { return this.form.get('vPlateID'); };\r\n\r\n constructor(private fb: FormBuilder,\r\n private stockTypesService: StockTypesService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private loader: LoadingService,\r\n private alert: AlertService) { }\r\n\r\n ngOnInit(): void {\r\n this.loader.load(LoaderType.Nav);\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.formInit();\r\n\r\n this.stockTypesService.get(this.lang)\r\n .then((result) => this.stockTypes = result.list/*.filter(x => x.documentType == _DocumentType.TripTikDocument)*/)\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n documentType: _DocumentType;\r\n\r\n onSelectStockType(stockTypeId: number) {\r\n const stockType = this.stockTypes.find(x => x.id == stockTypeId);\r\n this.documentType = stockType.documentType;\r\n //console.log(stockTypeId);\r\n\r\n if (this.documentType == _DocumentType.TripTikDocument) {\r\n this.passportIDorIdentityID.clearValidators()\r\n this.passportIDorIdentityID.setErrors(null);\r\n } else {\r\n this.passportIDorIdentityID.setValidators(Validators.required);\r\n this.passportIDorIdentityID.setErrors(null);\r\n }\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n stockTypeId: ['', [Validators.required]],\r\n serial: ['', [Validators.required]],\r\n passportIDorIdentityID: ['', [Validators.required]],\r\n vPlateID: [''],\r\n vChassisID: ['']\r\n })\r\n }\r\n\r\n\r\n reset() {\r\n this.isPosted = false;\r\n this.form.reset();\r\n this.dataSource = null;\r\n }\r\n\r\n\r\n isPosted: boolean = false;\r\n isCloneAvailable: boolean = false;\r\n\r\n onSubmit() {\r\n //console.log(this.form.value);\r\n\r\n if (this.documentType == _DocumentType.TripTikDocument) {\r\n this.passportIDorIdentityID.clearValidators()\r\n this.passportIDorIdentityID.setErrors(null);\r\n } else {\r\n this.passportIDorIdentityID.setValidators(Validators.required);\r\n this.passportIDorIdentityID.updateValueAndValidity();\r\n }\r\n\r\n //this.passportIDorIdentityID.setErrors(null);\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n\r\n\r\n // if (!this.form.valid)\r\n // return;\r\n\r\n\r\n if (!this.passportIDorIdentityID.value && !this.vChassisID.value && !this.vPlateID.value) {\r\n this.alert.failure(\"_MESSAGE_FILL_SEARCH_CRITERIA\", false);\r\n return;\r\n }\r\n\r\n const query = this.form.value as IssuedDocumentsQuery;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n //console.log(query);\r\n\r\n this.loader.load(LoaderType.Body);\r\n // this.issuingService.searchForExpiredDocument(this.stockType.value, this.serial.value, this.passportIDorIdentityID.value)\r\n this.issuingService.searchForIssuedDocument(this.stockType.value, this.serial.value, query)\r\n .then(result => {\r\n //console.log(result);\r\n\r\n this.dataSource = result ? new MatTableDataSource([result]) : null;\r\n if (this.dataSource)\r\n this.isCloneAvailable = result.stockType.documentType == _DocumentType.DrivingLicense\r\n || !result.isValid;\r\n\r\n if (this.isCloneAvailable && this.displayedColumns.length == 4)\r\n this.displayedColumns.push('tools')\r\n\r\n if (!this.isCloneAvailable && this.displayedColumns.length == 5)\r\n this.displayedColumns.pop();\r\n\r\n // this.dto = result;\r\n // if (!this.dto) {\r\n // this.dataSource = null;\r\n // // this.alert.failure(\"_MESSAGE_NO_SEARCH_RESULTS\", false);\r\n // }\r\n\r\n }).catch(e => { console.error(e); this.dataSource = null; })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.isPosted = true;\r\n })\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { IssuingService } from '../../services/issuing.service';\r\nimport { DocumentValidityVm } from '../../models/issuing.models';\r\n\r\n@Component({\r\n selector: 'mac-verification',\r\n templateUrl: './verification.component.html',\r\n styleUrls: ['./verification.component.scss'],\r\n providers: [IssuingService]\r\n})\r\nexport class VerificationComponent implements OnInit {\r\n dto: DocumentValidityVm;\r\n key: string;\r\n loading: boolean = true;\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document,\r\n private translate: TranslateService,\r\n private route: ActivatedRoute,\r\n private loader: LoadingService,\r\n private issuingService: IssuingService) {\r\n //this.loadStyle(\"en\"); \r\n LoadingService.style.next(false);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n // setTimeout(() => {\r\n // this.loader.load(LoaderType.Nav, false);\r\n // this.loader.styleLoading.emit(false);\r\n // LoadingService.style.next(false);\r\n\r\n this.translate.use('en');\r\n\r\n this.key = this.route.snapshot.paramMap.get('key');\r\n\r\n this.issuingService.verify(this.key)\r\n .then(result => { //console.log(result); \r\n this.dto = result \r\n })\r\n .finally(() => this.loading = false);\r\n\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loader.load(LoaderType.Nav, false);\r\n //LoadingService.style.next(false);\r\n }, 500);\r\n\r\n //this.loader.load(null, false);\r\n }\r\n\r\n\r\n // private loadStyle(lang: string) {\r\n\r\n // const head = this.document.getElementsByTagName('head')[0];\r\n // const body = this.document.getElementsByTagName('body')[0];\r\n\r\n // body.setAttribute('dir', lang == 'ar' ? 'rtl' : 'ltr');\r\n // const styleFileName = lang == 'ar' ? 'bootstrap-rtl.css' : 'bootstrap.css';\r\n // let themeLink = this.document.getElementById('bootstrap') as HTMLLinkElement;\r\n // if (themeLink) {\r\n // themeLink.href = styleFileName;\r\n // } else {\r\n // const style = this.document.createElement('link');\r\n // style.id = 'bootstrap';\r\n // style.rel = 'stylesheet';\r\n // style.href = styleFileName;\r\n // //will be always overriden by global styles.scss\r\n // head.prepend(style);\r\n // }\r\n // }\r\n\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { LookupDto } from \"src/app/features/lookups/models/lookup\";\r\nimport { populateAccountsSelect } from \"src/app/shared/helpers/populate-accounts-select\";\r\nimport { FileLoaderService } from \"src/app/shared/services/file-loader.service\";\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { DocumentRevokeRequestDto, PaginationQuery, DocumentsRevokeRequestsVm } from '../models/issuing.models';\r\nimport { IssuingService } from './issuing.service';\r\n\r\nexport class DocumentsRevokeRequestsDataSource implements DataSource {\r\n\r\n public revokeRequestsSubject = new BehaviorSubject([]);\r\n private countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private issuingService: IssuingService,\r\n private loader: LoadingService,\r\n private fileLoader: FileLoaderService) {\r\n }\r\n\r\n loadDocumentsRevokeRequests(pagination: PaginationQuery, stockTypeId = 0, query: string = null) {\r\n this.issuingService.getDocumentsRevokeRequests(pagination, stockTypeId, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: DocumentsRevokeRequestsVm) => {\r\n //console.log(result);\r\n result.revokeRequests.map(async x => {\r\n if (x.attachment)\r\n x.attachment = (await this.fileLoader.loadAsync(x.attachment as string)).changingThisBreaksApplicationSecurity;\r\n\r\n return x;\r\n });\r\n\r\n // result.revokeRequests.forEach(request => {\r\n // request.accountParentAccounts = populateAccountsSelect([request.accountParentAccounts])[0];\r\n // });\r\n\r\n result.revokeRequests.map(request => {\r\n request.accountParentAccounts = populateAccountsSelect([request.accountParentAccounts])[0];\r\n return request;\r\n });\r\n this.revokeRequestsSubject.next(result.revokeRequests);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.revokeRequestsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.revokeRequestsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport {\r\n DocumentValidityVm,\r\n TryRevokeDocumentCommand,\r\n ResolveTryRevokeDocumentCommand,\r\n PaginationQuery,\r\n DocumentsRevokeRequestsVm,\r\n IssuedDocumentsQuery\r\n} from '../models/issuing.models';\r\n\r\n@Injectable()\r\nexport class IssuingService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n verify(key: string) {\r\n return this.api.get(EndPoint.ISSUING_VERIFY, key).toPromise();\r\n }\r\n\r\n // searchForExpiredDocument(stockTypeId: number, serial: number, passportIDorIdentityID: string) {\r\n // //search/{stockTypeId}/{serial}/{passportIDorIdentityID}\r\n // return this.api.get(EndPoint.ISSUING_EXPIRED_DOCUMENTS_QUERY, [stockTypeId, serial, passportIDorIdentityID]).toPromise();\r\n // }\r\n\r\n\r\n searchForIssuedDocument(stockTypeId: number, serial: number, query: IssuedDocumentsQuery) {\r\n return this.api.get(EndPoint.ISSUING_ISSUED_DOCUMENTS_QUERY, [stockTypeId, serial], { ...query }).toPromise();\r\n }\r\n\r\n\r\n tryRevokeDocument(cmd: TryRevokeDocumentCommand) {\r\n return this.api.create(EndPoint.ISSUING_REVOKE_TRY, cmd).toPromise();\r\n }\r\n\r\n cancelTryRevokeDocument(id: number) {\r\n return this.api.create<{}, boolean>(EndPoint.ISSUING_REVOKE_CANCEL, { id }).toPromise();\r\n }\r\n\r\n resolveTryRevokeDocument(cmd: ResolveTryRevokeDocumentCommand) {\r\n return this.api.create(EndPoint.ISSUING_REVOKE_RESOLVE, cmd).toPromise();\r\n }\r\n\r\n getDocumentsRevokeRequests(pagination: PaginationQuery, stockTypeId = 0, query: string = '') {\r\n return this.api.get(EndPoint.ISSUING_REVOKE_REQUESTS, [stockTypeId], { ...pagination, query });\r\n }\r\n\r\n cancelDocument(id: string) {\r\n return this.api.delete(EndPoint.ISSUING_DOCUMENT_CANCEL, id).toPromise();\r\n }\r\n}","import { Component, OnInit, ViewChild, ElementRef } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { merge, fromEvent } from \"rxjs\";\r\nimport { tap } from \"rxjs/operators\";\r\nimport * as moment from \"moment\";\r\nimport * as _ from \"lodash\";\r\n\r\nimport { LoadingService, LoaderType } from \"src/app/shared/services/loading\";\r\nimport { exportToExcel } from \"src/app/shared/helpers/export-to-excel\";\r\nimport { Language } from \"src/app/core/models/enums/language\";\r\nimport { Gender } from \"src/app/core/models/enums/gender\";\r\nimport { PrintObject } from \"src/app/core/models/enums/print-object\";\r\nimport { ConfirmService } from \"src/app/shared/services/modal.service\";\r\nimport { DeleteModal, UpdateModal } from \"src/app/shared/models/modal\";\r\nimport { AlertService } from \"src/app/shared/services/alert.service\";\r\nimport { DefaultAlertAction } from \"src/app/shared/models/default-alert-action\";\r\nimport { AuthService } from \"src/app/core/auth/auth.service\";\r\nimport { Role } from \"src/app/core/models/enums/role\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { CountriesService } from \"src/app/features/lookups/services/countries\";\r\nimport { CountryDto } from \"src/app/features/lookups/models/country\";\r\nimport { IntLicensePermitClass } from \"src/app/core/models/enums/license-permit-class\";\r\nimport { populateAccountsSelect } from \"src/app/shared/helpers/populate-accounts-select\";\r\nimport { LookupDto } from \"src/app/features/lookups/models/lookup\";\r\nimport { AccountsService } from \"src/app/features/accounts/services/accounts.service\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport {\r\n PaginationQuery,\r\n PrintLogDto,\r\n TryRevokeDocumentCommand,\r\n} from \"../../../_shared/models/issuing.models\";\r\nimport { IssuingService } from \"../../../_shared/services/issuing.service\";\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { parseInt } from \"lodash\";\r\nimport { Utils } from \"src/app/shared/services/utils\";\r\nimport { IntLicensesService } from \"../../../int-licenses/services/int-licenses.service\";\r\nimport { IntLicensesDataSource } from \"../../../int-licenses/services/int-licenses.datasource\";\r\nimport { IntLicenseDto } from \"../../../int-licenses/models/int-license\";\r\nimport { CoupounService } from \"../../services/coupoun.service\";\r\nimport { CouponDataSource } from \"../../services/coupon.datasource\";\r\nimport { CouponDto } from \"../../models/coupon\";\r\n\r\n@Component({\r\n selector: \"mac-coupon-management\",\r\n templateUrl: \"./coupon-management.component.html\",\r\n styleUrls: [\r\n \"../../../../../../../node_modules/@ng-select/ng-select/themes/material.theme.css\",\r\n \"./coupon-management.component.scss\",\r\n ],\r\n providers: [\r\n IntLicensesService,\r\n IssuingService,\r\n CountriesService,\r\n AccountsService,\r\n ],\r\n})\r\nexport class CouponManagementComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = [\r\n \"name\",\r\n \"discount\",\r\n \"status\",\r\n \"tools\",\r\n ];\r\n dataSource: CouponDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n countries: CountryDto[] = [];\r\n accounts: LookupDto[] = [];\r\n query: any = null;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(\"filter\", { static: true }) filter: ElementRef;\r\n @ViewChild(\"filterBtn\") filterBtn: ElementRef;\r\n\r\n get Role() {\r\n return Role;\r\n }\r\n get Gender() {\r\n return Gender;\r\n }\r\n get PrintObject() {\r\n return PrintObject;\r\n }\r\n get IntLicensePermitClass() {\r\n return IntLicensePermitClass;\r\n }\r\n get Object() {\r\n return Object;\r\n }\r\n get Math() {\r\n return Math;\r\n }\r\n\r\n constructor(\r\n private loader: LoadingService,\r\n private intLicensesService: IntLicensesService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private accountsService: AccountsService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private couponService: CoupounService\r\n ) {}\r\n\r\n ngOnInit() {\r\n \r\n document.querySelector(\"mat-card\").classList.remove(\"overflow-hidden\");\r\n this.lang =\r\n this.translate.currentLang == \"ar\" ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(\r\n (t) => (this.lang = t.lang == \"ar\" ? Language.Arabic : Language.English)\r\n );\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n this.countriesService\r\n .get(this.lang)\r\n .then((result) => (this.countries = result.list));\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isSystemAccount) {\r\n this.accountsService\r\n .getChildrenAccountsLookup(0, false)\r\n .then((result) => {\r\n this.accounts = result.list; // populateAccountsSelect(result.list);\r\n })\r\n .catch((e) => this.searchForm.get(\"accountId\").disable());\r\n } else {\r\n this.accounts = [\r\n {\r\n id: this.auth.currentUser.accountId,\r\n titles: [this.auth.currentUser.accountTitles[this.lang]],\r\n },\r\n ];\r\n this.searchForm.patchValue({\r\n accountId: this.auth.currentUser.accountId,\r\n });\r\n this.searchForm.get(\"accountId\").disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe((p) => {\r\n //console.warn(p);\r\n\r\n if (!p.has(\"pageIndex\")) {\r\n //console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = \"\";\r\n this.paginator.page.emit({\r\n pageIndex: 0,\r\n pageSize: this.paginator.pageIndex,\r\n length: this.paginator.length,\r\n });\r\n }\r\n });\r\n\r\n //let query = null;\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n } else if (\r\n this.route.snapshot.queryParams.accountId ||\r\n this.route.snapshot.queryParams.countryId ||\r\n this.route.snapshot.queryParams.fromDate ||\r\n this.route.snapshot.queryParams.toDate ||\r\n this.route.snapshot.queryParams.gender ||\r\n this.route.snapshot.queryParams.name ||\r\n this.route.snapshot.queryParams.nationalityId ||\r\n this.route.snapshot.queryParams.passportID ||\r\n this.route.snapshot.queryParams.permitClass ||\r\n this.route.snapshot.queryParams.phoneNumber ||\r\n this.route.snapshot.queryParams.serial ||\r\n this.route.snapshot.queryParams.isIssued ||\r\n this.route.snapshot.queryParams.isDamaged\r\n ) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({\r\n accountId: !isNaN(this.route.snapshot.queryParams.accountId)\r\n ? parseInt(this.route.snapshot.queryParams.accountId)\r\n : null,\r\n });\r\n this.searchForm.patchValue({\r\n countryId: !isNaN(this.route.snapshot.queryParams.countryId)\r\n ? parseInt(this.route.snapshot.queryParams.countryId)\r\n : null,\r\n });\r\n this.searchForm.patchValue({\r\n nationalityId: !isNaN(this.route.snapshot.queryParams.nationalityId)\r\n ? parseInt(this.route.snapshot.queryParams.nationalityId)\r\n : null,\r\n });\r\n\r\n // this.searchForm.patchValue({countryId: 2});\r\n // //console.log(this.searchForm.value);\r\n this.query = this.searchForm.value;\r\n }\r\n\r\n this.fetchData(this.query);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n )\r\n .subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.loadCoupons(\r\n '00000000-0000-0000-0000-000000000000',\r\n {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n this.advancedSearchMode || this.activeFilters\r\n ? this.searchForm.value\r\n : this.filter.nativeElement.value.trim()\r\n );\r\n })\r\n )\r\n .subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(\r\n fromEvent(this.filter.nativeElement, \"search\"),\r\n fromEvent(this.filterBtn.nativeElement, \"click\")\r\n )\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadCoupons(\r\n '00000000-0000-0000-0000-000000000000',\r\n {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n this.filter.nativeElement.value.trim()\r\n );\r\n })\r\n )\r\n .subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect().subscribe(() => {\r\n let pagination: PaginationQuery = {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n };\r\n this.query = this.activeFilters\r\n ? this.searchForm.value\r\n : this.filter.nativeElement.value.trim();\r\n let query = this.query;\r\n\r\n if (this.activeFilters)\r\n this.router.navigate([\".\"], {\r\n relativeTo: this.route,\r\n queryParams: { ...pagination, ...query },\r\n replaceUrl: true,\r\n });\r\n else\r\n this.router.navigate([\".\"], {\r\n relativeTo: this.route,\r\n queryParams: { ...pagination, query },\r\n replaceUrl: true,\r\n });\r\n });\r\n }\r\n\r\n fetchData(query) {\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex\r\n ? this.route.snapshot.queryParams.pageIndex\r\n : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize\r\n ? this.route.snapshot.queryParams.pageSize\r\n : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort\r\n ? this.route.snapshot.queryParams.sort\r\n : \"created\";\r\n this.sort.direction = this.route.snapshot.queryParams.dir\r\n ? this.route.snapshot.queryParams.dir\r\n : \"desc\";\r\n this.dataSource = new CouponDataSource(\r\n this.couponService,\r\n this.loader\r\n );\r\n this.dataSource.loadCoupons(\r\n '00000000-0000-0000-0000-000000000000',\r\n {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n query\r\n );\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = \"\";\r\n }\r\n\r\n filterList(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter((l) => l.printObject == printObject);\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter((l) => l.printObject == printObject).length;\r\n }\r\n\r\n onDetail(coupon: any) {\r\n this.router.navigate(['en/issuing/coupon-management/view', coupon.id]);\r\n }\r\n\r\n onUpdate(coupon: any) {\r\n localStorage.setItem(\"EditCoupon\", JSON.stringify(coupon))\r\n this.router.navigate(['en/issuing/coupon-management/add', coupon.id]);\r\n }\r\n\r\n cancel(dto: IntLicenseDto) {\r\n if (\r\n !dto.issued ||\r\n !this.auth.currentUser.isSystemAccount ||\r\n !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE)\r\n )\r\n return;\r\n\r\n let modal = this.confirmService.confirm(\r\n new DeleteModal({\r\n type: \"LIC_TITLE_LICENSE\",\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: \"LIC_CONFIRM_CANCEL_NOTE\",\r\n })\r\n );\r\n\r\n modal.then(async (m) => {\r\n if (m.indexOf(\"CONFIRMED\") > -1) this._cancel(dto.id);\r\n });\r\n }\r\n\r\n delete(dto: IntLicenseDto) {\r\n if (\r\n dto.accountId != this.auth.currentUser.accountId ||\r\n !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE)\r\n )\r\n return;\r\n\r\n //delete confirm if not yet issued\r\n if (!dto.issued) {\r\n let modal = this.confirmService.confirm(\r\n new DeleteModal({\r\n type: \"LIC_TITLE_LICENSE\",\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: \"LIC_CONFIRM_DELETE_NOTE\",\r\n })\r\n );\r\n\r\n modal.then(async (m) => {\r\n if (m.indexOf(\"CONFIRMED\") > -1) this._delete(dto.id);\r\n });\r\n }\r\n }\r\n\r\n private _delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.intLicensesService\r\n .delete(id)\r\n .then((result) => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.couponSubject.next(\r\n this.dataSource.couponSubject.value.filter((d) => d.id != id)\r\n );\r\n this.dataSource.countSubject.next(\r\n this.dataSource.countSubject.value - 1\r\n );\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancel(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService\r\n .cancelDocument(id)\r\n .then((result) => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING); //todo: change message\r\n this.dataSource.couponSubject.next(\r\n this.dataSource.couponSubject.value.filter((d) => d.id != id)\r\n );\r\n this.dataSource.countSubject.next(\r\n this.dataSource.countSubject.value - 1\r\n );\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.couponService[\r\n this.query == null || typeof this.query == \"string\"\r\n ? \"getCoupons\"\r\n : \"search\"\r\n ](\r\n {\r\n pageIndex: 0,\r\n pageSize: this.paginator.length,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n this.query\r\n )\r\n .toPromise()\r\n .then((data) => {\r\n this.exportToExcel(data.list);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource\r\n .connect()\r\n .subscribe((data) => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n .unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: CouponDto[]) {\r\n const wscols = [\r\n { width: 12 },\r\n { width: 28 },\r\n { width: 12 },\r\n { width: 18 },\r\n { width: 28 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n ];\r\n const autofilter = { ref: \"A1:I1\" };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant(\"LIC_FIELD_LICENSE_NO\"),\r\n this.translate.instant(\"_FIELD_NAME\"),\r\n this.translate.instant(\"_LABEL_GENDER\"),\r\n this.translate.instant(\"_FIELD_PHONE_NO\"),\r\n this.translate.instant(\"ACC_FIELD_ACCOUNT_TITLE\"),\r\n this.translate.instant(\"ISS_FIELD_PASSPORT_NUMBER\"),\r\n this.translate.instant(\"ISS_LABEL_ISSUE_DATE\"),\r\n this.translate.instant(\"ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT\", {\r\n param: this.translate.instant(\"LIC_LABEL_PRINT_OBJECT_LICENSE\"),\r\n }),\r\n this.translate.instant(\"ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT\", {\r\n param: this.translate.instant(\"LIC_LABEL_PRINT_OBJECT_STICKER\"),\r\n }),\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n row.id,\r\n row.name,\r\n row.discount.toString(),\r\n row.status ? \"Active\" : \"InActive\",\r\n ]);\r\n }\r\n\r\n exportToExcel(\r\n rows,\r\n wscols,\r\n autofilter,\r\n this.translate.currentLang == \"ar\",\r\n \"Coupons\"\r\n );\r\n }\r\n\r\n onSubmit() {\r\n // console.warn(this.searchForm.value);\r\n //var d = new Date()\r\n if (this.fromDate.value && typeof this.fromDate.value == \"object\")\r\n this.fromDate.setValue(\r\n Utils.convertToServerDateTimeString(this.fromDate.value)\r\n );\r\n\r\n if (this.toDate.value && typeof this.toDate.value == \"object\")\r\n this.toDate.setValue(\r\n Utils.convertToServerDateTimeString(this.toDate.value)\r\n );\r\n\r\n //swap dates\r\n if (\r\n this.fromDate.value &&\r\n this.toDate.value &&\r\n new Date(this.fromDate.value) > new Date(this.toDate.value)\r\n ) {\r\n let _temp = this.fromDate.value;\r\n this.fromDate.setValue(this.toDate.value);\r\n this.toDate.setValue(_temp);\r\n }\r\n\r\n //console.log(this.fromDate.value, this.toDate.value);\r\n\r\n this.activeFilters = true;\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n length: this.paginator.length,\r\n });\r\n }\r\n\r\n get fromDate() {\r\n return this.searchForm.get(\"fromDate\");\r\n }\r\n get toDate() {\r\n return this.searchForm.get(\"toDate\");\r\n }\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n length: this.paginator.length,\r\n });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n //use same validators to filter inputs values\r\n this.searchForm = this.fb.group({\r\n name: [\"\"], //regex to match english letters only\r\n countryId: [null],\r\n nationalityId: [null],\r\n gender: [\"\"],\r\n phoneNumber: [\"\"], //regex to match numbers only\r\n passportID: [\"\"],\r\n accountId: [null],\r\n permitClass: [\"\"],\r\n serial: [\"\"], //regex to match numbers only\r\n fromDate: [\"\"],\r\n toDate: [\"\"],\r\n isIssued: [\"\"],\r\n isDamaged: [\"\"],\r\n });\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n ElementRef,\r\n ɵConsole,\r\n ChangeDetectorRef,\r\n AfterContentChecked,\r\n} from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { LoadingService, LoaderType } from \"src/app/shared/services/loading\";\r\nimport { StockTypesService } from \"src/app/features/lookups/services/stock-types\";\r\nimport { AuthService } from \"src/app/core/auth/auth.service\";\r\nimport { AlertService } from \"src/app/shared/services/alert.service\";\r\nimport { LookupDto } from \"src/app/features/lookups/models/lookup\";\r\nimport { ConfirmService } from \"src/app/shared/services/modal.service\";\r\nimport { DeleteModal, DisplayModal } from \"src/app/shared/models/modal\";\r\nimport { StockTypeDto } from \"src/app/features/lookups/models/stock-type\";\r\nimport { Language } from \"src/app/core/models/enums/language\";\r\nimport { FormBuilder, FormGroup, NgForm, Validators } from \"@angular/forms\";\r\nimport { Utils } from \"src/app/shared/services/utils\";\r\nimport { _DocumentType } from \"src/app/core/models/enums/document-type\";\r\nimport { numbersOnlyValidator } from \"src/app/shared/services/custom-validators\";\r\nimport { StocksService } from \"src/app/features/stock/services/stocks.service\";\r\nimport {\r\n AvailableStock,\r\n AvailableStocksVm,\r\n} from \"src/app/features/stock/models/available-stocks\";\r\nimport { StockSliderComponent } from \"src/app/features/stock/components/stock-slider/stock-slider.component\";\r\nimport { TransactionLabelDetails } from \"src/app/features/stock/models/transaction-label-details\";\r\nimport { PopulateCmd } from \"src/app/features/stock/models/populate.cmd\";\r\nimport { CoupounService } from \"../../services/coupoun.service\";\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: \"mac-manage-coupon-management\",\r\n templateUrl: \"./manage-coupon-management.component.html\",\r\n styleUrls: [\"./manage-coupon-management.component.scss\"],\r\n providers: [StockTypesService, StocksService],\r\n})\r\nexport class ManageCouponManagementComponent implements OnInit, AfterContentChecked {\r\n populate: boolean;\r\n selectedStock: number[];\r\n availableStock: AvailableStock;\r\n stockTypes: StockTypeDto[];\r\n documentType: _DocumentType;\r\n form: FormGroup;\r\n documentTemplateVersions = [1, 2];\r\n lang: Language;\r\n availableStockHTML: string;\r\n reasons: LookupDto[] = [\r\n { id: -1, titles: [\"حذف نهائي\", \"Permanent Delete\"] },\r\n { id: 1, titles: [\"آخر\", \"Other\"] },\r\n ];\r\n transactionDetails: TransactionLabelDetails = {};\r\n status: boolean = false;\r\n couponId: string;\r\n coupon: any;\r\n\r\n @ViewChild(StockSliderComponent) slider: StockSliderComponent;\r\n\r\n get _DocumentType() {\r\n return _DocumentType;\r\n }\r\n get customReason() {\r\n return this.form.get(\"customReason\");\r\n }\r\n get reason() {\r\n return this.form.get(\"reason\");\r\n }\r\n get documentTemplateVersion() {\r\n return this.form.get(\"documentTemplateVersion\");\r\n }\r\n get fromRange() {\r\n return this.form.get(\"fromRange\");\r\n }\r\n get name() {\r\n return this.form.get(\"name\");\r\n }\r\n get discount() {\r\n return this.form.get(\"discount\");\r\n }\r\n\r\n constructor(\r\n private loader: LoadingService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private translate: TranslateService,\r\n private auth: AuthService,\r\n private route: ActivatedRoute,\r\n private fb: FormBuilder,\r\n private stockTypesService: StockTypesService,\r\n private stocksService: StocksService,\r\n private confirmation: ConfirmService,\r\n private couponService: CoupounService,\r\n private _location: Location,\r\n private ref: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.coupon = JSON.parse(localStorage.getItem(\"EditCoupon\"));\r\n this.lang =\r\n this.translate.currentLang == \"ar\" ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(\r\n (t) => (this.lang = t.lang == \"ar\" ? Language.Arabic : Language.English)\r\n );\r\n this.couponId = this.route.snapshot.paramMap.get(\"id\");\r\n this.populate = (this.couponId && !!this.coupon) || false;\r\n //console.log(this.populate, this.coupon)\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n this.transactionDetails.alertClass = this.populate ? \"success\" : \"danger\";\r\n this.transactionDetails.operation = this.populate\r\n ? \"STK_TITLE_POPULATE\"\r\n : \"STK_TITLE_DEPOPULATE\";\r\n\r\n this.stockTypesService\r\n .get(this.lang)\r\n .then((result) => {\r\n this.stockTypes = result.list;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n\r\n if (!this.auth.currentUser.isSystemAccount) console.warn(\"not allowed!\");\r\n }\r\n ngAfterContentChecked() {\r\n this.ref.detectChanges();\r\n }\r\n\r\n onStatusChange(checked: boolean) {\r\n this.status = checked;\r\n }\r\n\r\n onSubmit() {\r\n if (this.populate) {\r\n this.couponService\r\n .update({\r\n id: this.couponId,\r\n name: this.name.value,\r\n discount: this.discount.value,\r\n status: this.status,\r\n })\r\n .then((m) => {\r\n if (m) {\r\n this._location.back();\r\n }\r\n });\r\n } else {\r\n this.couponService\r\n .create({\r\n name: this.name.value,\r\n discount: this.discount.value,\r\n status: this.status,\r\n })\r\n .then((m) => {\r\n if (m) {\r\n this._location.back();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n name: [this.populate ? this.coupon.name : \"\", [Validators.required]],\r\n discount: [\r\n this.populate ? this.coupon.discount : \"\",\r\n [Validators.required, Validators.max(100), Validators.maxLength(3), numbersOnlyValidator],\r\n ],\r\n });\r\n if (this.coupon != null) {\r\n this.status = this.coupon.status;\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.form.reset();\r\n this._location.back();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mac-view-coupon-management',\r\n templateUrl: './view-coupon-management.component.html',\r\n styleUrls: ['./view-coupon-management.component.scss']\r\n})\r\nexport class ViewCouponManagementComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { merge, fromEvent } from \"rxjs\";\r\nimport { tap } from \"rxjs/operators\";\r\nimport * as moment from \"moment\";\r\nimport * as _ from \"lodash\";\r\n\r\nimport { LoadingService, LoaderType } from \"src/app/shared/services/loading\";\r\nimport { exportToExcel } from \"src/app/shared/helpers/export-to-excel\";\r\nimport { Language } from \"src/app/core/models/enums/language\";\r\nimport { Gender } from \"src/app/core/models/enums/gender\";\r\nimport { PrintObject } from \"src/app/core/models/enums/print-object\";\r\nimport { ConfirmService } from \"src/app/shared/services/modal.service\";\r\nimport { DeleteModal, UpdateModal } from \"src/app/shared/models/modal\";\r\nimport { AlertService } from \"src/app/shared/services/alert.service\";\r\nimport { DefaultAlertAction } from \"src/app/shared/models/default-alert-action\";\r\nimport { AuthService } from \"src/app/core/auth/auth.service\";\r\nimport { Role } from \"src/app/core/models/enums/role\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { CountriesService } from \"src/app/features/lookups/services/countries\";\r\nimport { CountryDto } from \"src/app/features/lookups/models/country\";\r\nimport { IntLicensePermitClass } from \"src/app/core/models/enums/license-permit-class\";\r\nimport { populateAccountsSelect } from \"src/app/shared/helpers/populate-accounts-select\";\r\nimport { LookupDto } from \"src/app/features/lookups/models/lookup\";\r\nimport { AccountsService } from \"src/app/features/accounts/services/accounts.service\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport {\r\n PaginationQuery,\r\n PrintLogDto,\r\n TryRevokeDocumentCommand,\r\n} from \"../../../_shared/models/issuing.models\";\r\nimport { IssuingService } from \"../../../_shared/services/issuing.service\";\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { parseInt } from \"lodash\";\r\nimport { Utils } from \"src/app/shared/services/utils\";\r\nimport { IntLicensesService } from \"../../../int-licenses/services/int-licenses.service\";\r\nimport { IntLicensesDataSource } from \"../../../int-licenses/services/int-licenses.datasource\";\r\nimport { IntLicenseDto } from \"../../../int-licenses/models/int-license\";\r\nimport { CoupounService } from \"../../services/coupoun.service\";\r\nimport { CouponDetailDataSource } from \"../../services/coupo-detail.datasource\";\r\nimport { CouponDto } from \"../../models/coupon\";\r\n\r\n@Component({\r\n selector: \"mac-view-license-detail\",\r\n templateUrl: \"./view-license-detail.component.html\",\r\n styleUrls: [\r\n \"../../../../../../../node_modules/@ng-select/ng-select/themes/material.theme.css\",\r\n \"./view-license-detail.component.scss\",\r\n ],\r\n providers: [\r\n IntLicensesService,\r\n IssuingService,\r\n CountriesService,\r\n AccountsService,\r\n ],\r\n})\r\nexport class ViewLicenseDetailComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = [\"name\", \"discount\", \"status\", \"customerName\"];\r\n dataSource: CouponDetailDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n countries: CountryDto[] = [];\r\n accounts: LookupDto[] = [];\r\n query: any = null;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(\"filter\", { static: true }) filter: ElementRef;\r\n @ViewChild(\"filterBtn\") filterBtn: ElementRef;\r\n\r\n get Role() {\r\n return Role;\r\n }\r\n get Gender() {\r\n return Gender;\r\n }\r\n get PrintObject() {\r\n return PrintObject;\r\n }\r\n get IntLicensePermitClass() {\r\n return IntLicensePermitClass;\r\n }\r\n get Object() {\r\n return Object;\r\n }\r\n get Math() {\r\n return Math;\r\n }\r\n\r\n constructor(\r\n private loader: LoadingService,\r\n private intLicensesService: IntLicensesService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private accountsService: AccountsService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private couponService: CoupounService\r\n ) {\r\n //console.log(\"insomniac\");\r\n }\r\n\r\n ngOnInit() {\r\n document.querySelector(\"mat-card\").classList.remove(\"overflow-hidden\");\r\n this.lang =\r\n this.translate.currentLang == \"ar\" ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(\r\n (t) => (this.lang = t.lang == \"ar\" ? Language.Arabic : Language.English)\r\n );\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n this.countriesService\r\n .get(this.lang)\r\n .then((result) => (this.countries = result.list));\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isSystemAccount) {\r\n this.accountsService\r\n .getChildrenAccountsLookup(0, false)\r\n .then((result) => {\r\n this.accounts = result.list; // populateAccountsSelect(result.list);\r\n })\r\n .catch((e) => this.searchForm.get(\"accountId\").disable());\r\n } else {\r\n this.accounts = [\r\n {\r\n id: this.auth.currentUser.accountId,\r\n titles: [this.auth.currentUser.accountTitles[this.lang]],\r\n },\r\n ];\r\n this.searchForm.patchValue({\r\n accountId: this.auth.currentUser.accountId,\r\n });\r\n this.searchForm.get(\"accountId\").disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe((p) => {\r\n //console.warn(p);\r\n\r\n if (!p.has(\"pageIndex\")) {\r\n //console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = \"\";\r\n this.paginator.page.emit({\r\n pageIndex: 0,\r\n pageSize: this.paginator.pageIndex,\r\n length: this.paginator.length,\r\n });\r\n }\r\n });\r\n\r\n //let query = null;\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n } else if (\r\n this.route.snapshot.queryParams.accountId ||\r\n this.route.snapshot.queryParams.countryId ||\r\n this.route.snapshot.queryParams.fromDate ||\r\n this.route.snapshot.queryParams.toDate ||\r\n this.route.snapshot.queryParams.gender ||\r\n this.route.snapshot.queryParams.name ||\r\n this.route.snapshot.queryParams.nationalityId ||\r\n this.route.snapshot.queryParams.passportID ||\r\n this.route.snapshot.queryParams.permitClass ||\r\n this.route.snapshot.queryParams.phoneNumber ||\r\n this.route.snapshot.queryParams.serial ||\r\n this.route.snapshot.queryParams.isIssued ||\r\n this.route.snapshot.queryParams.isDamaged\r\n ) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({\r\n accountId: !isNaN(this.route.snapshot.queryParams.accountId)\r\n ? parseInt(this.route.snapshot.queryParams.accountId)\r\n : null,\r\n });\r\n this.searchForm.patchValue({\r\n countryId: !isNaN(this.route.snapshot.queryParams.countryId)\r\n ? parseInt(this.route.snapshot.queryParams.countryId)\r\n : null,\r\n });\r\n this.searchForm.patchValue({\r\n nationalityId: !isNaN(this.route.snapshot.queryParams.nationalityId)\r\n ? parseInt(this.route.snapshot.queryParams.nationalityId)\r\n : null,\r\n });\r\n\r\n // this.searchForm.patchValue({countryId: 2});\r\n // //console.log(this.searchForm.value);\r\n this.query = this.searchForm.value;\r\n }\r\n\r\n this.fetchData(this.query);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n )\r\n .subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.loadCouponDetails(\r\n this.route.snapshot.params.id,\r\n {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n this.advancedSearchMode || this.activeFilters\r\n ? this.searchForm.value\r\n : this.filter.nativeElement.value.trim()\r\n );\r\n })\r\n )\r\n .subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(\r\n fromEvent(this.filter.nativeElement, \"search\"),\r\n fromEvent(this.filterBtn.nativeElement, \"click\")\r\n )\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadCouponDetails(\r\n this.route.snapshot.params.id,\r\n {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n this.filter.nativeElement.value.trim()\r\n );\r\n })\r\n )\r\n .subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect().subscribe(() => {\r\n let pagination: PaginationQuery = {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n };\r\n this.query = this.activeFilters\r\n ? this.searchForm.value\r\n : this.filter.nativeElement.value.trim();\r\n let query = this.query;\r\n\r\n if (this.activeFilters)\r\n this.router.navigate([\".\"], {\r\n relativeTo: this.route,\r\n queryParams: { ...pagination, ...query },\r\n replaceUrl: true,\r\n });\r\n else\r\n this.router.navigate([\".\"], {\r\n relativeTo: this.route,\r\n queryParams: { ...pagination, query },\r\n replaceUrl: true,\r\n });\r\n });\r\n }\r\n\r\n fetchData(query) {\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex\r\n ? this.route.snapshot.queryParams.pageIndex\r\n : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize\r\n ? this.route.snapshot.queryParams.pageSize\r\n : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort\r\n ? this.route.snapshot.queryParams.sort\r\n : \"created\";\r\n this.sort.direction = this.route.snapshot.queryParams.dir\r\n ? this.route.snapshot.queryParams.dir\r\n : \"desc\";\r\n this.dataSource = new CouponDetailDataSource(this.couponService, this.loader);\r\n this.dataSource.loadCouponDetails(\r\n this.route.snapshot.params.id,\r\n {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n query\r\n );\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = \"\";\r\n }\r\n\r\n filterList(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter((l) => l.printObject == printObject);\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter((l) => l.printObject == printObject).length;\r\n }\r\n\r\n onUpdate(coupon: any) {\r\n localStorage.setItem(\"EditCoupon\", JSON.stringify(coupon));\r\n this.router.navigate([\"en/issuing/coupon-management/add\", coupon.id]);\r\n }\r\n\r\n cancel(dto: IntLicenseDto) {\r\n if (\r\n !dto.issued ||\r\n !this.auth.currentUser.isSystemAccount ||\r\n !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE)\r\n )\r\n return;\r\n\r\n let modal = this.confirmService.confirm(\r\n new DeleteModal({\r\n type: \"LIC_TITLE_LICENSE\",\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: \"LIC_CONFIRM_CANCEL_NOTE\",\r\n })\r\n );\r\n\r\n modal.then(async (m) => {\r\n if (m.indexOf(\"CONFIRMED\") > -1) this._cancel(dto.id);\r\n });\r\n }\r\n\r\n delete(dto: IntLicenseDto) {\r\n if (\r\n dto.accountId != this.auth.currentUser.accountId ||\r\n !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE)\r\n )\r\n return;\r\n\r\n //delete confirm if not yet issued\r\n if (!dto.issued) {\r\n let modal = this.confirmService.confirm(\r\n new DeleteModal({\r\n type: \"LIC_TITLE_LICENSE\",\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: \"LIC_CONFIRM_DELETE_NOTE\",\r\n })\r\n );\r\n\r\n modal.then(async (m) => {\r\n if (m.indexOf(\"CONFIRMED\") > -1) this._delete(dto.id);\r\n });\r\n }\r\n }\r\n\r\n private _delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.intLicensesService\r\n .delete(id)\r\n .then((result) => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.couponDetailSubject.next(\r\n this.dataSource.couponDetailSubject.value.filter((d) => d.id != id)\r\n );\r\n this.dataSource.countSubject.next(\r\n this.dataSource.countSubject.value - 1\r\n );\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancel(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService\r\n .cancelDocument(id)\r\n .then((result) => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING); //todo: change message\r\n this.dataSource.couponDetailSubject.next(\r\n this.dataSource.couponDetailSubject.value.filter((d) => d.id != id)\r\n );\r\n this.dataSource.countSubject.next(\r\n this.dataSource.countSubject.value - 1\r\n );\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.couponService[\r\n this.query == null || typeof this.query == \"string\"\r\n ? \"getCoupons\"\r\n : \"search\"\r\n ](\r\n {\r\n pageIndex: 0,\r\n pageSize: this.paginator.length,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n this.query\r\n )\r\n .toPromise()\r\n .then((data) => {\r\n this.exportToExcel(data.list);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource\r\n .connect()\r\n .subscribe((data) => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n .unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: CouponDto[]) {\r\n const wscols = [\r\n { width: 12 },\r\n { width: 28 },\r\n { width: 12 },\r\n { width: 18 },\r\n { width: 28 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n ];\r\n const autofilter = { ref: \"A1:I1\" };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant(\"LIC_FIELD_LICENSE_NO\"),\r\n this.translate.instant(\"_FIELD_NAME\"),\r\n this.translate.instant(\"_LABEL_GENDER\"),\r\n this.translate.instant(\"_FIELD_PHONE_NO\"),\r\n this.translate.instant(\"ACC_FIELD_ACCOUNT_TITLE\"),\r\n this.translate.instant(\"ISS_FIELD_PASSPORT_NUMBER\"),\r\n this.translate.instant(\"ISS_LABEL_ISSUE_DATE\"),\r\n this.translate.instant(\"ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT\", {\r\n param: this.translate.instant(\"LIC_LABEL_PRINT_OBJECT_LICENSE\"),\r\n }),\r\n this.translate.instant(\"ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT\", {\r\n param: this.translate.instant(\"LIC_LABEL_PRINT_OBJECT_STICKER\"),\r\n }),\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n row.id,\r\n row.name,\r\n row.discount.toString(),\r\n row.status ? \"Active\" : \"InActive\",\r\n ]);\r\n }\r\n\r\n exportToExcel(\r\n rows,\r\n wscols,\r\n autofilter,\r\n this.translate.currentLang == \"ar\",\r\n \"Coupons\"\r\n );\r\n }\r\n\r\n onSubmit() {\r\n // console.warn(this.searchForm.value);\r\n //var d = new Date()\r\n if (this.fromDate.value && typeof this.fromDate.value == \"object\")\r\n this.fromDate.setValue(\r\n Utils.convertToServerDateTimeString(this.fromDate.value)\r\n );\r\n\r\n if (this.toDate.value && typeof this.toDate.value == \"object\")\r\n this.toDate.setValue(\r\n Utils.convertToServerDateTimeString(this.toDate.value)\r\n );\r\n\r\n //swap dates\r\n if (\r\n this.fromDate.value &&\r\n this.toDate.value &&\r\n new Date(this.fromDate.value) > new Date(this.toDate.value)\r\n ) {\r\n let _temp = this.fromDate.value;\r\n this.fromDate.setValue(this.toDate.value);\r\n this.toDate.setValue(_temp);\r\n }\r\n\r\n //console.log(this.fromDate.value, this.toDate.value);\r\n\r\n this.activeFilters = true;\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n length: this.paginator.length,\r\n });\r\n }\r\n\r\n get fromDate() {\r\n return this.searchForm.get(\"fromDate\");\r\n }\r\n get toDate() {\r\n return this.searchForm.get(\"toDate\");\r\n }\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n length: this.paginator.length,\r\n });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n //use same validators to filter inputs values\r\n this.searchForm = this.fb.group({\r\n name: [\"\"], //regex to match english letters only\r\n countryId: [null],\r\n nationalityId: [null],\r\n gender: [\"\"],\r\n phoneNumber: [\"\"], //regex to match numbers only\r\n passportID: [\"\"],\r\n accountId: [null],\r\n permitClass: [\"\"],\r\n serial: [\"\"], //regex to match numbers only\r\n fromDate: [\"\"],\r\n toDate: [\"\"],\r\n isIssued: [\"\"],\r\n isDamaged: [\"\"],\r\n });\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { CouponDto, CouponSearchQuery, CouponDetailVm } from \"../models/coupon\";\r\nimport { CoupounService } from \"./coupoun.service\";\r\n\r\n\r\nexport class CouponDetailDataSource implements DataSource {\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n public couponDetailSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private couponService: CoupounService, private loader: LoadingService) { }\r\n\r\n loadCouponDetails(id: string, pagination: PaginationQuery, query: CouponSearchQuery | string = null) {\r\n\r\n this.couponService[(query == null || typeof query == 'string') ? 'getCouponDetails' : 'search'](id, pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: CouponDetailVm) => {\r\n this.couponDetailSubject.next(result.couponLicense);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n connect(): Observable {\r\n return this.couponDetailSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.couponDetailSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { CouponDto, CouponSearchQuery, CouponsVm } from \"../models/coupon\";\r\nimport { CoupounService } from \"./coupoun.service\";\r\n\r\n\r\nexport class CouponDataSource implements DataSource {\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n public couponSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private couponService: CoupounService, private loader: LoadingService) { }\r\n\r\n loadCoupons(id: string, pagination: PaginationQuery, query: CouponSearchQuery | string = null) {\r\n\r\n this.couponService[(query == null || typeof query == 'string') ? 'getCoupon' : 'search'](id, pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: CouponsVm) => {\r\n this.couponSubject.next(result.coupons);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n connect(): Observable {\r\n return this.couponSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.couponSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ApiHandler } from \"src/app/core/api-handler\";\r\nimport { EndPoint } from \"src/app/core/models/enums/end-point\";\r\nimport { PaginationQuery } from \"../../_shared/models/issuing.models\";\r\nimport { CouponDto, CouponsVm, CouponDetailVm } from \"../models/coupon\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class CoupounService {\r\n constructor(private api: ApiHandler) {}\r\n\r\n create(coupon: any) {\r\n return this.api\r\n .create(EndPoint.E_lICENSE_COUPON_CREATE, coupon)\r\n .toPromise();\r\n }\r\n\r\n update(coupon: any) {\r\n return this.api\r\n .update(EndPoint.E_lICENSE_COUPON_UPDATE, coupon)\r\n .toPromise();\r\n }\r\n\r\n getCoupon(id: string, pagination: PaginationQuery, query: string = \"\") {\r\n return this.api.get(EndPoint.E_lICENSE_COUPON, [id], {\r\n ...pagination,\r\n query,\r\n });\r\n }\r\n getCouponDetails(id: string, pagination: PaginationQuery, query: string = \"\") {\r\n return this.api.get(EndPoint.E_lICENSE_VIEW_COUPON_DETAILS, [id], {\r\n ...pagination,\r\n query,\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ElementRef } from '@angular/core';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { IntLicenseDetailsDto } from '../../models/int-license';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { SafeUrl } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'mac-commitment-print',\r\n templateUrl: './commitment-print.component.html',\r\n styleUrls: ['./commitment-print.component.scss']\r\n})\r\nexport class CommitmentPrintComponent implements OnInit {\r\n\r\n dto: IntLicenseDetailsDto;\r\n // personalPhoto: string;\r\n // passportPhoto: string;\r\n // licensePhoto: string;\r\n issueDate: Date;\r\n\r\n get Gender() { return Gender };\r\n get Language() { return Language; };\r\n\r\n constructor(private elRef: ElementRef, private fileLoader: FileLoaderService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n async print(dto: IntLicenseDetailsDto) {\r\n //console.log(dto);\r\n this.dto = dto;\r\n \r\n // this.personalPhoto = ( ).changingThisBreaksApplicationSecurity;\r\n // this.passportPhoto = (await (await this.fileLoader.loadAsync(dto.attachments[1] as string))).changingThisBreaksApplicationSecurity;\r\n // this.licensePhoto = (await (await this.fileLoader.loadAsync(dto.attachments[2] as string))).changingThisBreaksApplicationSecurity;\r\n\r\n // const x = await (await this.fileLoader.loadAsync(dto.attachments[0] as string))\r\n this.issueDate = this.dto.issued ? this.dto.issued : new Date();\r\n\r\n setTimeout(() => {\r\n const printHtmlContent = this.elRef.nativeElement.innerHTML;\r\n Utils.printHtml(printHtmlContent);\r\n }, 500);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ElementRef } from '@angular/core';\r\nimport { IntLicenseDetailsDto } from '../../models/int-license';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { SafeUrl } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'mac-int-license-print',\r\n templateUrl: './int-license-print.component.html',\r\n styleUrls: ['./int-license-print.component.scss'],\r\n providers: [FileLoaderService]\r\n})\r\nexport class IntLicensePrintComponent {\r\n\r\n dto: IntLicenseDetailsDto;\r\n //personalPhoto: string;\r\n qRCodeUrl: string;\r\n printObject: PrintObject;\r\n v: number = 42.4;\r\n h: number = 10.6;\r\n rh: number = 4.1;\r\n get Language() { return Language; };\r\n get Gender() { return Gender };\r\n get PrintObject() { return PrintObject; };\r\n\r\n constructor(private elRef: ElementRef, private fileLoader: FileLoaderService) {\r\n }\r\n\r\n async print(dto: IntLicenseDetailsDto, printObject: PrintObject) {\r\n this.dto = dto;\r\n this.printObject = printObject;\r\n\r\n this.qRCodeUrl = Utils.generateQrCodeUrl(this.dto.hashedSerial);// `${this._baseUrl}/verify-license/${this.dto.hashedSerial}`;\r\n //this.personalPhoto = ((await this.fileLoader.loadAsync(dto.attachments[0] as string))).changingThisBreaksApplicationSecurity;\r\n\r\n setTimeout(() => {\r\n const printHtmlContent = this.elRef.nativeElement.innerHTML;\r\n Utils.printHtml(printHtmlContent);\r\n }, 500);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { IntLicensesDataSource } from '../../services/int-licenses.datasource';\r\nimport { IntLicensesService } from '../../services/int-licenses.service';\r\nimport { IntLicenseDto, TapOrder } from '../../models/int-license';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { PaginationQuery, PrintLogDto, TryRevokeDocumentCommand } from '../../../_shared/models/issuing.models';\r\nimport { IssuingService } from '../../../_shared/services/issuing.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { parseInt } from 'lodash';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { ELicensesDataSource } from '../../services/e-licenses.datasource';\r\nimport { ELicensesService } from '../../services/e-licenses.service';\r\nimport { convertELicenseOrderStatusToLocale } from '../../models/order-status-locale';\r\n\r\n@Component({\r\n selector: 'mac-e-licenses',\r\n templateUrl: './e-licenses.component.html',\r\n styleUrls: ['../../../../../../../node_modules/@ng-select/ng-select/themes/material.theme.css', './e-licenses.component.scss'],\r\n providers: [\r\n ELicensesService,\r\n IntLicensesService,\r\n IssuingService,\r\n CountriesService,\r\n AccountsService\r\n ]\r\n})\r\nexport class ELicensesComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = ['serial', 'name', 'gender', 'phoneNumber', 'accountTitles', 'passportID', 'issueDate',/* 'source',*/ 'printings','orderStatus', 'orderNumber', 'licenseDuration', 'shipping','paymentMethod', 'totalPrice', 'tools'];\r\n dataSource: ELicensesDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n countries: CountryDto[] = [];\r\n accounts: LookupDto[] = [];\r\n query: any = null;\r\n\r\n convertELicenseOrderStatusToLocale = convertELicenseOrderStatusToLocale;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n get Role() { return Role; };\r\n get Gender() { return Gender; };\r\n get PrintObject() { return PrintObject; };\r\n get IntLicensePermitClass() { return IntLicensePermitClass };\r\n get Object() { return Object; };\r\n get Math() { return Math; };\r\n\r\n constructor(private loader: LoadingService,\r\n private eLicensesService: ELicensesService,\r\n private intLicensesService: IntLicensesService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private accountsService: AccountsService,\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n this.countriesService.get(this.lang)\r\n .then(result => this.countries = result.list);\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isSystemAccount) {\r\n this.accountsService.getChildrenAccountsLookup(0, false)\r\n .then(result => {\r\n this.accounts = result.list;// populateAccountsSelect(result.list);\r\n }).catch(e => this.searchForm.get('accountId').disable());\r\n } else {\r\n this.accounts = [{ id: this.auth.currentUser.accountId, titles: [this.auth.currentUser.accountTitles[this.lang]] }];\r\n this.searchForm.patchValue({ accountId: this.auth.currentUser.accountId });\r\n this.searchForm.get('accountId').disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe(p => {\r\n console.warn(p);\r\n\r\n if (!p.has('pageIndex')) {\r\n console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = '';\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageIndex, length: this.paginator.length });\r\n }\r\n });\r\n\r\n //let query = null;\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n }\r\n else if (this.route.snapshot.queryParams.accountId\r\n || this.route.snapshot.queryParams.countryId\r\n || this.route.snapshot.queryParams.orderStatus\r\n || this.route.snapshot.queryParams.fromDate\r\n || this.route.snapshot.queryParams.toDate\r\n || this.route.snapshot.queryParams.gender\r\n || this.route.snapshot.queryParams.name\r\n || this.route.snapshot.queryParams.nationalityId\r\n || this.route.snapshot.queryParams.stockTypeId\r\n || this.route.snapshot.queryParams.passportID\r\n || this.route.snapshot.queryParams.permitClass\r\n || this.route.snapshot.queryParams.phoneNumber\r\n || this.route.snapshot.queryParams.serial\r\n || this.route.snapshot.queryParams.isIssued\r\n || this.route.snapshot.queryParams.isDamaged\r\n || this.route.snapshot.queryParams.licensePeriod\r\n || this.route.snapshot.queryParams.paymentMethod\r\n || this.route.snapshot.queryParams.orderNo\r\n || this.route.snapshot.queryParams.shippingStatue) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({ accountId: !isNaN(this.route.snapshot.queryParams.accountId) ? parseInt(this.route.snapshot.queryParams.accountId) : null });\r\n this.searchForm.patchValue({ countryId: !isNaN(this.route.snapshot.queryParams.countryId) ? parseInt(this.route.snapshot.queryParams.countryId) : null });\r\n this.searchForm.patchValue({ nationalityId: !isNaN(this.route.snapshot.queryParams.nationalityId) ? parseInt(this.route.snapshot.queryParams.nationalityId) : null });\r\n this.searchForm.patchValue({ shippingStatue: !isNaN(this.route.snapshot.queryParams.shippingStatue) ? parseInt(this.route.snapshot.queryParams.shippingStatue) : null });\r\n this.searchForm.patchValue({ orderNo: !isNaN(this.route.snapshot.queryParams.orderNo) ? parseInt(this.route.snapshot.queryParams.orderNo) : null });\r\n this.searchForm.patchValue({ orderStatus: !isNaN(this.route.snapshot.queryParams.orderStatus) ? parseInt(this.route.snapshot.queryParams.orderStatus) : null });\r\n\r\n // this.searchForm.patchValue({countryId: 2});\r\n // console.log(this.searchForm.value);\r\n this.query = this.searchForm.value;\r\n }\r\n this.fetchData(this.query);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction },\r\n this.advancedSearchMode || this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => {\r\n\r\n this.loader.load(LoaderType.Body)\r\n });\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n console.log('clicked')\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect()\r\n .subscribe((data) => {\r\n let pagination: PaginationQuery = { pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction };\r\n this.query = this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim();\r\n let query = this.query;\r\n console.log(this.query)\r\n\r\n\r\n if (this.activeFilters)\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, ...query }, replaceUrl: true });\r\n else\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, query }, replaceUrl: true });\r\n });\r\n }\r\n\r\n fetchData(query) {\r\n console.log(query)\r\n this.paginator.pageIndex = 0;\r\n this.paginator.pageSize = 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort ? this.route.snapshot.queryParams.sort : 'created';\r\n this.sort.direction = this.route.snapshot.queryParams.dir ? this.route.snapshot.queryParams.dir : 'desc';\r\n this.dataSource = new ELicensesDataSource(this.eLicensesService, this.loader);\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, query);\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = '';\r\n }\r\n\r\n filterList(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter(l => l.printObject == printObject)\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter(l => l.printObject == printObject).length;\r\n }\r\n\r\n cancel(dto: IntLicenseDto) {\r\n if (!dto.issued || !this.auth.currentUser.isSystemAccount\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE))\r\n return;\r\n\r\n\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'LIC_TITLE_LICENSE',\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: 'LIC_CONFIRM_CANCEL_NOTE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this._cancel(dto.id);\r\n });\r\n }\r\n\r\n delete(dto: IntLicenseDto) {\r\n if (dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE))\r\n return;\r\n\r\n //delete confirm if not yet issued\r\n if (!dto.issued) {\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'LIC_TITLE_LICENSE',\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: 'LIC_CONFIRM_DELETE_NOTE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this._delete(dto.id);\r\n });\r\n }\r\n }\r\n\r\n tryRevoke(dto: IntLicenseDto) {\r\n if (dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_CREATE))\r\n return;\r\n\r\n let modal;\r\n //try-revoke\r\n //try-revoke confirm if issued && permited to try-revoke\r\n if (!dto.revokeRequestId) {\r\n modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n title: `${this.translate.instant('STK_LABEL_STOCK_TYPE_LICENSE')} / ${dto.serial.toString()}`,\r\n action: '_ACTION_REQUEST2',\r\n submitText: '_ACTION_REQUEST2',\r\n confirmQuestion: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CONFIRMATION_QUESTION',\r\n note: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_NOTE',\r\n dangerNote: ' ',\r\n inputNote: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST_REASON',\r\n requestType: true,\r\n attachment: '_TITLE_ATTACHMENTS'\r\n }));\r\n } else {\r\n //undo\r\n modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n title: `${this.translate.instant('STK_LABEL_STOCK_TYPE_LICENSE')} / ${dto.serial.toString()}`,\r\n action: '_ACTION_REVOKE_REQUEST_CANCEL',\r\n submitText: '_ACTION_REVOKE_REQUEST_CANCEL',\r\n confirmQuestion: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CANCEL_CONFIRMATION_QUESTION',\r\n note: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CANCEL_NOTE',\r\n dangerNote: ' '\r\n }));\r\n }\r\n modal.then(async m => {\r\n console.log(m);\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n (!dto.revokeRequestId) ?\r\n this._tryRevoke(dto.id, m[1])\r\n : this._cancelTryRevoke(dto.revokeRequestId)\r\n }\r\n });\r\n }\r\n\r\n private _tryRevoke(objectId: string, attributes: any/*, reason: string*/) {\r\n\r\n const reason = attributes.inputNote,\r\n isDamaged = attributes.isDamaged == \"true\",\r\n attachment = attributes.attachment;\r\n\r\n console.log(attachment);\r\n\r\n const cmd: TryRevokeDocumentCommand = { id: objectId, stockTypeId: 1, reason, isDamaged, attachment }\r\n console.log(cmd);\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.tryRevokeDocument(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.REQUESTING);\r\n const i = this.dataSource.IntLicensesSubject.value.findIndex(i => i.id == objectId);\r\n this.dataSource.IntLicensesSubject.value[i].revokeRequestId = result;\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value);\r\n\r\n } else this.alert.failure(DefaultAlertAction.REQUESTING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancelTryRevoke(id: number) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.cancelTryRevokeDocument(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.REVOKE_REQUESTING_CANCEL);\r\n const i = this.dataSource.IntLicensesSubject.value.findIndex(i => i.revokeRequestId == id);\r\n this.dataSource.IntLicensesSubject.value[i].revokeRequestId = null;\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value);\r\n\r\n } else this.alert.failure(DefaultAlertAction.REVOKE_REQUESTING_CANCEL);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.intLicensesService.delete(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value.filter(d => d.id != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancel(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.cancelDocument(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);//todo: change message\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value.filter(d => d.id != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.eLicensesService[(this.query == null || typeof this.query == 'string') ? 'getLicenses' : 'search']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query,true)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.list,null);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else{\r\n this.eLicensesService[(this.query == null || typeof this.query == 'string') ? 'getLicenses' : 'search']({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.query,true)\r\n .toPromise()\r\n .then(data => {\r\n console.log(data);\r\n this.exportToExcel(data.list,data.tapOrders);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n }\r\n\r\n private exportToExcel(data: IntLicenseDto[] ,tapOrder:TapOrder ) {\r\n const wscols = [\r\n { width: 28 },\r\n { width: 28 },\r\n { width: 12 },\r\n { width: 18 },\r\n { width: 28 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 28 },\r\n { width: 22 },\r\n\r\n ];\r\n const autofilter = { ref: 'A1:I1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('LIC_FIELD_LICENSE_NO'),\r\n this.translate.instant('_FIELD_NAME'),\r\n this.translate.instant('_LABEL_GENDER'),\r\n this.translate.instant('_FIELD_PHONE_NO'),\r\n this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n this.translate.instant('ISS_FIELD_PASSPORT_NUMBER'),\r\n this.translate.instant('ISS_LABEL_ISSUE_DATE'),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_LICENSE') }),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_STICKER') }),\r\n\r\n this.translate.instant('LIC_LABEL_ORDER_NUMBER'),\r\n this.translate.instant('LIC_LABEL_DURATION'),\r\n this.translate.instant('LIC_LABEL_SHIPPING'),\r\n this.translate.instant('LIC_LABEL_TOTAL_PRICE'),\r\n this.translate.instant('LIC_LABEL_PAYMENT_METHOD'),\r\n \"رقم المعاملة\",\r\n \"نوع الكارت\",\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n row.serial,\r\n row.name,\r\n this.translate.instant(row.gender == Gender.Male ? '_LABEL_MALE' : '_LABEL_FEMALE'),\r\n //this.translate.instant(`_LABEL_GENDER_${row.gender}`),\r\n row.phoneNumber,\r\n row.accountTitles[0],\r\n // row.parentAccounts.titles.toString().replace('', \"\").replace('', \"\").replace('\\'\\'>',\"\"),\r\n\r\n row.passportID,\r\n moment(row.issued).format('DD/MM/YYYY'),\r\n this.printObjectsCount(row.printLogs, PrintObject.IntLicenseCard),\r\n this.printObjectsCount(row.printLogs, PrintObject.IntLicenseSticker),\r\n\r\n row.eLicenseOrder?.bill.couponDiscount ? row.eLicenseOrder.bill.couponDiscount: null,\r\n row.validityYears? row.validityYears : null,\r\n row.eLicenseOrder?.bill.shippingFees ?row.eLicenseOrder.bill.shippingFees : 0,\r\n row.eLicenseOrder?.bill.total ? row.eLicenseOrder.bill.total: 0,\r\n row.eLicenseOrder?.bill.trackingId ? row.eLicenseOrder.bill.trackingId : null,\r\n row.eLicenseOrder?.bill.chargeId ? row.eLicenseOrder.bill.chargeId : null,\r\n row.eLicenseOrder?.bill.paymentMethod ? row.eLicenseOrder.bill.paymentMethod : null,\r\n\r\n ]);\r\n\r\n }\r\n debugger\r\n if(tapOrder != null){\r\n debugger\r\n rows.push([\"موجود فالنظام وغير موجود في تاب\" , \"موجود في تاب وغير موجود فالنظام\"])\r\n var rowsCount = 0\r\n if (tapOrder.unmatchedOrderNumbers && tapOrder.unmatchedDatabaseNumbers) {\r\n rowsCount = Math.max(tapOrder.unmatchedOrderNumbers.length, tapOrder.unmatchedDatabaseNumbers.length);\r\n }\r\n // If unmatchedOrderNumbers is null or undefined, use the length of unmatchedDatabaseNumbers\r\n else if (tapOrder.unmatchedOrderNumbers == null && tapOrder.unmatchedDatabaseNumbers) {\r\n rowsCount = tapOrder.unmatchedDatabaseNumbers.length;\r\n }\r\n // If unmatchedDatabaseNumbers is null or undefined, use the length of unmatchedOrderNumbers\r\n else if (tapOrder.unmatchedDatabaseNumbers == null && tapOrder.unmatchedOrderNumbers) {\r\n rowsCount = tapOrder.unmatchedOrderNumbers.length;\r\n }\r\n for (let index = 0; index < rowsCount; index++) {\r\n rows.push([\r\n (tapOrder.unmatchedDatabaseNumbers && index < tapOrder.unmatchedDatabaseNumbers.length) ? tapOrder.unmatchedDatabaseNumbers[index] : \"\",\r\n (tapOrder.unmatchedOrderNumbers && index < tapOrder.unmatchedOrderNumbers.length) ? tapOrder.unmatchedOrderNumbers[index] : \"\"\r\n ]); }\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'E-Licenses');\r\n }\r\n\r\n\r\n onSubmit() {\r\n\r\n // console.warn(this.searchForm.value);\r\n //var d = new Date()\r\n if (this.fromDate.value && typeof this.fromDate.value == 'object')\r\n this.fromDate.setValue(Utils.convertToServerDateTimeString(this.fromDate.value));\r\n\r\n if (this.toDate.value && typeof this.toDate.value == 'object')\r\n this.toDate.setValue(Utils.convertToServerDateTimeString(this.toDate.value));\r\n\r\n //swap dates\r\n if (this.fromDate.value && this.toDate.value && new Date(this.fromDate.value) > new Date(this.toDate.value)) {\r\n let _temp = this.fromDate.value;\r\n this.fromDate.setValue(this.toDate.value);\r\n this.toDate.setValue(_temp);\r\n }\r\n\r\n console.log(this.fromDate.value, this.toDate.value);\r\n\r\n this.activeFilters = true;\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n get fromDate() { return this.searchForm.get('fromDate'); };\r\n get toDate() { return this.searchForm.get('toDate'); };\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n //use same validators to filter inputs values\r\n this.searchForm = this.fb.group({\r\n name: [''], //regex to match english letters only\r\n countryId: [null],\r\n nationalityId: [null],\r\n gender: [''],\r\n phoneNumber: [''], //regex to match numbers only\r\n passportID: [''],\r\n accountId: [null],\r\n permitClass: [''],\r\n serial: [''], //regex to match numbers only\r\n fromDate: [''],\r\n stockTypeId: [''],\r\n toDate: [''],\r\n isIssued: [''],\r\n isDamaged: [''],\r\n licensePeriod:[''],\r\n paymentMethod:[''],\r\n orderNo:[''],\r\n shippingStatue:[''],\r\n orderStatus: [null] // Ensure orderStatus is part of the form group\r\n\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { IntLicensesDataSource } from '../../services/int-licenses.datasource';\r\nimport { IntLicensesService } from '../../services/int-licenses.service';\r\nimport { IntLicenseDto } from '../../models/int-license';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { PaginationQuery, PrintLogDto, TryRevokeDocumentCommand } from '../../../_shared/models/issuing.models';\r\nimport { IssuingService } from '../../../_shared/services/issuing.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { parseInt } from 'lodash';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n\r\n@Component({\r\n selector: 'mac-int-licenses',\r\n templateUrl: './int-licenses.component.html',\r\n styleUrls: ['../../../../../../../node_modules/@ng-select/ng-select/themes/material.theme.css', './int-licenses.component.scss'],\r\n providers: [\r\n IntLicensesService,\r\n IssuingService,\r\n CountriesService,\r\n AccountsService\r\n ]\r\n})\r\nexport class IntLicensesComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = ['serial', 'name', 'gender', 'phoneNumber', 'accountTitles', 'passportID', 'issueDate',/* 'source',*/ 'printings', 'tools'];\r\n dataSource: IntLicensesDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n countries: CountryDto[] = [];\r\n accounts: LookupDto[] = [];\r\n query: any = null;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n get Role() { return Role; };\r\n get Gender() { return Gender; };\r\n get PrintObject() { return PrintObject; };\r\n get IntLicensePermitClass() { return IntLicensePermitClass };\r\n get Object() { return Object; };\r\n get Math() { return Math; };\r\n\r\n constructor(private loader: LoadingService,\r\n private intLicensesService: IntLicensesService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private accountsService: AccountsService,\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n this.countriesService.get(this.lang)\r\n .then(result => this.countries = result.list);\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isSystemAccount) {\r\n this.accountsService.getChildrenAccountsLookup(0, false)\r\n .then(result => {\r\n this.accounts = result.list;// populateAccountsSelect(result.list);\r\n }).catch(e => this.searchForm.get('accountId').disable());\r\n } else {\r\n this.accounts = [{ id: this.auth.currentUser.accountId, titles: [this.auth.currentUser.accountTitles[this.lang]] }];\r\n this.searchForm.patchValue({ accountId: this.auth.currentUser.accountId });\r\n this.searchForm.get('accountId').disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe(p => {\r\n //console.warn(p);\r\n\r\n if (!p.has('pageIndex')) {\r\n //console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = '';\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageIndex, length: this.paginator.length });\r\n }\r\n });\r\n\r\n //let query = null;\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n }\r\n else if (this.route.snapshot.queryParams.accountId\r\n || this.route.snapshot.queryParams.countryId\r\n || this.route.snapshot.queryParams.fromDate\r\n || this.route.snapshot.queryParams.toDate\r\n || this.route.snapshot.queryParams.gender\r\n || this.route.snapshot.queryParams.name\r\n || this.route.snapshot.queryParams.nationalityId\r\n || this.route.snapshot.queryParams.stockTypeId\r\n || this.route.snapshot.queryParams.passportID\r\n || this.route.snapshot.queryParams.permitClass\r\n || this.route.snapshot.queryParams.phoneNumber\r\n || this.route.snapshot.queryParams.serial\r\n || this.route.snapshot.queryParams.isIssued\r\n || this.route.snapshot.queryParams.isDamaged || this.route.snapshot.queryParams.licensePeriod\r\n || this.route.snapshot.queryParams.paymentMethod\r\n || this.route.snapshot.queryParams.orderNo\r\n || this.route.snapshot.queryParams.shippingStatue) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({ accountId: !isNaN(this.route.snapshot.queryParams.accountId) ? parseInt(this.route.snapshot.queryParams.accountId) : null });\r\n this.searchForm.patchValue({ countryId: !isNaN(this.route.snapshot.queryParams.countryId) ? parseInt(this.route.snapshot.queryParams.countryId) : null });\r\n this.searchForm.patchValue({ nationalityId: !isNaN(this.route.snapshot.queryParams.nationalityId) ? parseInt(this.route.snapshot.queryParams.nationalityId) : null });\r\n this.searchForm.patchValue({ shippingStatue: !isNaN(this.route.snapshot.queryParams.shippingStatue) ? parseInt(this.route.snapshot.queryParams.shippingStatue) : null });\r\n this.searchForm.patchValue({ orderNo: !isNaN(this.route.snapshot.queryParams.orderNo) ? parseInt(this.route.snapshot.queryParams.orderNo) : null });\r\n \r\n // this.searchForm.patchValue({countryId: 2});\r\n // //console.log(this.searchForm.value);\r\n this.query = this.searchForm.value;\r\n }\r\n\r\n this.fetchData(this.query);\r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.loadIntLicenses({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction },\r\n this.advancedSearchMode || this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadIntLicenses({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect()\r\n .subscribe(() => {\r\n let pagination: PaginationQuery = { pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction };\r\n this.query = this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim();\r\n let query = this.query;\r\n\r\n if (this.activeFilters)\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, ...query }, replaceUrl: true });\r\n else\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, query }, replaceUrl: true });\r\n });\r\n }\r\n\r\n fetchData(query) {\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex ? this.route.snapshot.queryParams.pageIndex : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize ? this.route.snapshot.queryParams.pageSize : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort ? this.route.snapshot.queryParams.sort : 'created';\r\n this.sort.direction = this.route.snapshot.queryParams.dir ? this.route.snapshot.queryParams.dir : 'desc';\r\n this.dataSource = new IntLicensesDataSource(this.intLicensesService, this.loader);\r\n this.dataSource.loadIntLicenses({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, query);\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = '';\r\n }\r\n\r\n filterList(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter(l => l.printObject == printObject)\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter(l => l.printObject == printObject).length;\r\n }\r\n\r\n cancel(dto: IntLicenseDto) {\r\n if (!dto.issued || !this.auth.currentUser.isSystemAccount\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE))\r\n return;\r\n\r\n\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'LIC_TITLE_LICENSE',\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: 'LIC_CONFIRM_CANCEL_NOTE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this._cancel(dto.id);\r\n });\r\n }\r\n\r\n delete(dto: IntLicenseDto) {\r\n if (dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE))\r\n return;\r\n\r\n //delete confirm if not yet issued\r\n if (!dto.issued) {\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'LIC_TITLE_LICENSE',\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: 'LIC_CONFIRM_DELETE_NOTE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this._delete(dto.id);\r\n });\r\n }\r\n }\r\n\r\n tryRevoke(dto: IntLicenseDto) {\r\n if (dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_CREATE))\r\n return;\r\n\r\n let modal;\r\n //try-revoke\r\n //try-revoke confirm if issued && permited to try-revoke\r\n if (!dto.revokeRequestId) {\r\n modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n title: `${this.translate.instant('STK_LABEL_STOCK_TYPE_LICENSE')} / ${dto.serial.toString()}`,\r\n action: '_ACTION_REQUEST2',\r\n submitText: '_ACTION_REQUEST2',\r\n confirmQuestion: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CONFIRMATION_QUESTION',\r\n note: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_NOTE',\r\n dangerNote: ' ',\r\n inputNote: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST_REASON',\r\n requestType: true,\r\n attachment: '_TITLE_ATTACHMENTS'\r\n }));\r\n } else {\r\n //undo\r\n modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n title: `${this.translate.instant('STK_LABEL_STOCK_TYPE_LICENSE')} / ${dto.serial.toString()}`,\r\n action: '_ACTION_REVOKE_REQUEST_CANCEL',\r\n submitText: '_ACTION_REVOKE_REQUEST_CANCEL',\r\n confirmQuestion: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CANCEL_CONFIRMATION_QUESTION',\r\n note: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CANCEL_NOTE',\r\n dangerNote: ' '\r\n }));\r\n }\r\n modal.then(async m => {\r\n //console.log(m);\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n (!dto.revokeRequestId) ?\r\n this._tryRevoke(dto.id, m[1])\r\n : this._cancelTryRevoke(dto.revokeRequestId)\r\n }\r\n });\r\n }\r\n\r\n private _tryRevoke(objectId: string, attributes: any/*, reason: string*/) {\r\n\r\n const reason = attributes.inputNote,\r\n isDamaged = attributes.isDamaged == \"true\",\r\n attachment = attributes.attachment;\r\n\r\n //console.log(attachment);\r\n\r\n const cmd: TryRevokeDocumentCommand = { id: objectId, stockTypeId: 1, reason, isDamaged, attachment }\r\n ////console.log(cmd);\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.tryRevokeDocument(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.REQUESTING);\r\n const i = this.dataSource.IntLicensesSubject.value.findIndex(i => i.id == objectId);\r\n this.dataSource.IntLicensesSubject.value[i].revokeRequestId = result;\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value);\r\n\r\n } else this.alert.failure(DefaultAlertAction.REQUESTING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancelTryRevoke(id: number) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.cancelTryRevokeDocument(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.REVOKE_REQUESTING_CANCEL);\r\n const i = this.dataSource.IntLicensesSubject.value.findIndex(i => i.revokeRequestId == id);\r\n this.dataSource.IntLicensesSubject.value[i].revokeRequestId = null;\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value);\r\n\r\n } else this.alert.failure(DefaultAlertAction.REVOKE_REQUESTING_CANCEL);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.intLicensesService.delete(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value.filter(d => d.id != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancel(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.cancelDocument(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);//todo: change message\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value.filter(d => d.id != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.intLicensesService[(this.query == null || typeof this.query == 'string') ? 'getLicenses' : 'search']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.list);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: IntLicenseDto[]) {\r\n const wscols = [\r\n { width: 12 },\r\n { width: 28 },\r\n { width: 12 },\r\n { width: 18 },\r\n { width: 28 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 }\r\n ];\r\n const autofilter = { ref: 'A1:I1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('LIC_FIELD_LICENSE_NO'),\r\n this.translate.instant('_FIELD_NAME'),\r\n this.translate.instant('_LABEL_GENDER'),\r\n this.translate.instant('_FIELD_PHONE_NO'),\r\n this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n this.translate.instant('ISS_FIELD_PASSPORT_NUMBER'),\r\n this.translate.instant('ISS_LABEL_ISSUE_DATE'),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_LICENSE') }),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_STICKER') }),\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n row.serial,\r\n row.name,\r\n this.translate.instant(row.gender == Gender.Male ? '_LABEL_GENDERL_MALE' : '_LABEL_FEMALE'),\r\n //this.translate.instant(`_LABEL_GENDER_${row.gender}`),\r\n row.phoneNumber,\r\n row.accountTitles[0],\r\n row.passportID,\r\n moment(row.issued).format('DD/MM/YYYY'),\r\n this.printObjectsCount(row.printLogs, PrintObject.IntLicenseCard),\r\n this.printObjectsCount(row.printLogs, PrintObject.IntLicenseSticker)\r\n ]);\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Int-Licenses');\r\n }\r\n\r\n\r\n onSubmit() {\r\n\r\n // console.warn(this.searchForm.value);\r\n //var d = new Date()\r\n if (this.fromDate.value && typeof this.fromDate.value == 'object')\r\n this.fromDate.setValue(Utils.convertToServerDateTimeString(this.fromDate.value));\r\n\r\n if (this.toDate.value && typeof this.toDate.value == 'object')\r\n this.toDate.setValue(Utils.convertToServerDateTimeString(this.toDate.value));\r\n\r\n //swap dates\r\n if (this.fromDate.value && this.toDate.value && new Date(this.fromDate.value) > new Date(this.toDate.value)) {\r\n let _temp = this.fromDate.value;\r\n this.fromDate.setValue(this.toDate.value);\r\n this.toDate.setValue(_temp);\r\n }\r\n\r\n //console.log(this.fromDate.value, this.toDate.value);\r\n\r\n this.activeFilters = true;\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n get fromDate() { return this.searchForm.get('fromDate'); };\r\n get toDate() { return this.searchForm.get('toDate'); };\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n //use same validators to filter inputs values\r\n this.searchForm = this.fb.group({\r\n name: [''], //regex to match english letters only\r\n countryId: [null],\r\n nationalityId: [null],\r\n gender: [''],\r\n phoneNumber: [''], //regex to match numbers only\r\n passportID: [''],\r\n accountId: [null],\r\n permitClass: [''],\r\n serial: [''], //regex to match numbers only\r\n fromDate: [''],\r\n toDate: [''],\r\n isIssued: [''],\r\n isDamaged: [''],\r\n licensePeriod:[''],\r\n paymentMethod:[''],\r\n orderNo:[''],\r\n shippingStatue:['']\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, Renderer2 } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { FormGroup, FormBuilder, Validators, AbstractControl, FormArray, FormControl } from '@angular/forms';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BloodGroup } from 'src/app/core/models/enums/blood-group';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { StocksService } from 'src/app/features/stock/services/stocks.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport * as moment from 'moment';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n//import { isArray } from 'util';\r\nimport { IntLicensesService } from '../../services/int-licenses.service';\r\nimport { PostIntLicenseCmd } from '../../models/create.cmd';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IntLicenseVm, IntLicenseDetailsDto } from '../../models/int-license';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport * as _ from 'lodash';\r\nimport { englishAndSpacesValidator, numbersOnlyValidator, passportIdOrIdentityIdValidator, phoneNumberValidator } from 'src/app/shared/services/custom-validators';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Observable } from 'rxjs';\r\nimport { startWith, map } from 'rxjs/operators';\r\nimport { FileHandle } from 'src/app/shared/directives/drag.directive';\r\n\r\n@Component({\r\n selector: 'mac-int-manage-license',\r\n templateUrl: './manage-int-license.component.html',\r\n styleUrls: ['./manage-int-license.component.scss'],\r\n providers: [CountriesService, StocksService, IntLicensesService, FileLoaderService]\r\n})\r\n\r\nexport class ManageIntLicenseComponent implements OnInit {\r\n lang: Language;\r\n form: FormGroup;\r\n countries: CountryDto[];\r\n availableSerials: number[];\r\n cashedVm: IntLicenseVm;\r\n dto: IntLicenseDetailsDto = new IntLicenseDetailsDto();\r\n updateMode: boolean;\r\n _loadingGif: string = 'assets/images/Ring-Preloader.gif';\r\n dateFormat = 'L';\r\n mode: 'ADD' | 'UPDATE' | 'CLONE';\r\n videoConstraints = {\r\n video: {\r\n facingMode: \"environment\",\r\n width: { ideal: 4096 },\r\n height: { ideal: 2160 }\r\n }\r\n };\r\n \r\n videoWidth = 0;\r\n videoHeight = 0;\r\n isCamStreaming: boolean;\r\n camStream: MediaStream;\r\n objectId: string;\r\n\r\n keyword: string = 'name';\r\n key: string;\r\n\r\n\r\n @ViewChild('video') videoElement: ElementRef;\r\n @ViewChild('canvas', { static: true }) canvas: ElementRef;\r\n\r\n get moment() { return moment };\r\n get Object() { return Object };\r\n get BloodGroup() { return BloodGroup };\r\n get IntLicensePermitClass() { return IntLicensePermitClass };\r\n get Gender() { return Gender };\r\n get serial() { return this.form.get('serial') };\r\n get name() { return this.form.get('name') };\r\n get dateOfBirth() { return this.form.get('dateOfBirth') };\r\n get nationality() { return this.form.get('nationalityId') };\r\n get country() { return this.form.get('countryId') };\r\n get passportID() { return this.form.get('passportID') };\r\n get bloodGroup() { return this.form.get('bloodGroup') };\r\n get gender() { return this.form.get('gender') };\r\n get accordingTo() { return this.form.get('accordingToId') };\r\n get permitClasses() { return this.form.get('permitClasses') };\r\n get phoneNumber() { return this.form.get('phoneNumber') };\r\n get attachments() { return this.form.get('attachments') as FormArray };\r\n get dataAccuracyAcknowledgment() { return this.form.get('dataAccuracyAcknowledgment') };\r\n get validityYears() { return this.form.get('validityYears') };\r\n\r\n _validityYears: number[] = [];\r\n\r\n\r\n\r\n constructor(private loader: LoadingService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private stocksService: StocksService,\r\n public translate: TranslateService,\r\n private intLicenseService: IntLicensesService,\r\n private route: ActivatedRoute,\r\n public fileLoader: FileLoaderService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private renderer: Renderer2,\r\n public auth: AuthService) { }\r\n\r\n\r\n\r\n async ngOnInit() {\r\n\r\n if (this.auth.currentUser.intLicenseAllowedValidity > 1)\r\n this._validityYears = new Array(this.auth.currentUser.intLicenseAllowedValidity);\r\n\r\n moment.locale('en-gb');\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.countries = await (await this.countriesService.get(this.lang)).list;\r\n // this.countries = this.countries.map(result => {\r\n // result.countryTitles = result.countryTitles[0];\r\n // result.nationalityTitles = result.nationalityTitles[0];\r\n // return result;\r\n // })\r\n this.availableSerials = this.spreadRanges((await this.stocksService.getAvailableStocks(10)).stockTypesAvailableStocks[0].availableStock);\r\n\r\n this.mode = this.route.snapshot.data.mode;\r\n\r\n this.objectId = this.route.snapshot.paramMap.get('id');\r\n this.key = this.route.snapshot.paramMap.get('key');\r\n\r\n if (this.objectId || this.key) {\r\n this.updateMode = this.mode == 'UPDATE';\r\n\r\n if (this.mode == 'CLONE') {\r\n this.dto = await (await this.intLicenseService.getByHashedSerial(this.key)).intLicense;\r\n } else\r\n this.dto = await (await this.intLicenseService.get(this.objectId)).intLicense;\r\n\r\n //this.dto = await (await this.intLicenseService.get(this.objectId)).intLicense;\r\n\r\n if (!this.dto || (this.updateMode && this.dto.issued)) { //will ignore if cloning\r\n this.router.navigate([`/${this.translate.currentLang}/not-found`]);\r\n return;\r\n }\r\n if (this.updateMode) {\r\n this.availableSerials.unshift(this.dto.serial);\r\n } else {\r\n if (this.availableSerials.length > 0)\r\n this.form.patchValue({ serial: this.availableSerials[0] });\r\n else {\r\n this.alert.failure(\"LIC_ALERT_NO_STOCK_AVAILABLE\", false);\r\n this.form.disable();\r\n return;\r\n }\r\n }\r\n\r\n this.dto.serial = this.updateMode ? this.dto.serial : this.availableSerials[0];\r\n this.form.patchValue(this.dto);\r\n // this.attachments.controls.forEach(async (ctrl: FormControl, i) => {\r\n // ctrl.setValue(await this.fileLoader.loadAsync(ctrl.value));\r\n // });\r\n\r\n this.attachments.controls.forEach(async (ctrl: FormControl, i) => {\r\n let path = ctrl.value;\r\n if (this.key)\r\n path = `${path}?key=${this.key}`;\r\n ctrl.setValue(await this.fileLoader.loadAsync(path));\r\n });\r\n\r\n } else {\r\n if (this.availableSerials.length > 0)\r\n this.form.patchValue({ serial: this.availableSerials[0] });\r\n else {\r\n this.alert.failure(\"LIC_ALERT_NO_STOCK_AVAILABLE\", false);\r\n this.form.disable();\r\n }\r\n }\r\n this.loader.load(LoaderType.Nav, false);\r\n\r\n // this.filteredCountries = this.form.get('_nationality').valueChanges\r\n // .pipe(\r\n // startWith(''),\r\n // map(value => this._filter(value))\r\n // );\r\n }\r\n\r\n\r\n //myControl = new FormControl();\r\n //options: string[] = ['One', 'Two', 'Three'];\r\n // filteredCountries: Observable;\r\n\r\n // private _filter(value: string): CountryDto[] {\r\n // //console.log(value);\r\n // const filterValue = value.toLowerCase();\r\n\r\n // return this.countries.filter(c => c.nationalityTitles[this.lang].toLowerCase().includes(filterValue));\r\n // }\r\n\r\n preview($event, control: FormControl | AbstractControl) {\r\n const tgt = $event.target || window.event.srcElement,\r\n files = Array.isArray($event) ? $event : tgt.files;\r\n\r\n if (FileReader && files && files.length) {\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n if (fr.result.toString().length <= 2 * 2 ** 20)\r\n control.setValue(fr.result.toString());\r\n else\r\n alert('file limit is 2 MB.');\r\n };\r\n fr.readAsDataURL(files[0]);\r\n }\r\n else {\r\n //console.error('not supported!');\r\n }\r\n }\r\n\r\n fileDropped(file: FileHandle, control: FormControl | AbstractControl): void {\r\n\r\n control.setValue(file.url);\r\n\r\n // if (file.url.length <= 2 * 2 ** 20)\r\n // control.setValue(file.url);\r\n // else\r\n // alert('file limit is 2 MB.');\r\n }\r\n\r\n removeImage(control: FormControl | AbstractControl) {\r\n control.reset();\r\n control.markAsTouched();\r\n }\r\n\r\n startCamera() {\r\n if (!!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia)) {\r\n navigator.mediaDevices.getUserMedia(this.videoConstraints)\r\n .then(stream => {\r\n this.camStream = stream;\r\n this.attachVideo(stream);\r\n }).catch(this.handleError);\r\n this.isCamStreaming = true;\r\n } else {\r\n alert('Sorry, camera not available.');\r\n }\r\n }\r\n\r\n capture() {\r\n const control = this.attachments.get([0]);\r\n this.renderer.setProperty(this.canvas.nativeElement, 'width', this.videoWidth);\r\n this.renderer.setProperty(this.canvas.nativeElement, 'height', this.videoHeight);\r\n this.canvas.nativeElement.getContext('2d').drawImage(this.videoElement.nativeElement, 0, 0);\r\n const imageData = this.canvas.nativeElement.toDataURL(\"image/png\", 1);\r\n control.setValue(imageData);\r\n this._stopCamera();\r\n }\r\n\r\n stopCamera() {\r\n this._stopCamera();\r\n const control = this.attachments.get([0]);\r\n control.reset();\r\n control.markAsTouched();\r\n }\r\n\r\n private _stopCamera() {\r\n this.isCamStreaming = false;\r\n this.videoElement.nativeElement.pause();\r\n this.videoElement.nativeElement.removeAttribute('src');\r\n this.camStream.getTracks().forEach(function (track) {\r\n track.stop();\r\n });\r\n }\r\n\r\n handleError(error) {\r\n //console.log('Error: ', error);\r\n }\r\n\r\n attachVideo(stream: MediaStream) {\r\n\r\n this.renderer.setProperty(this.videoElement.nativeElement, 'srcObject', stream);\r\n this.renderer.listen(this.videoElement.nativeElement, 'play', (event) => {\r\n this.videoHeight = this.videoElement.nativeElement.videoHeight;\r\n this.videoWidth = this.videoElement.nativeElement.videoWidth;\r\n });\r\n }\r\n\r\n isExpired(expiryDate) {\r\n return moment(expiryDate).isBefore(Date.now());\r\n }\r\n\r\n private zeroPad = (num, places) => String(num).padStart(places, '0');\r\n\r\n toISODate(date) {\r\n return `${date.getFullYear()}-${this.zeroPad(date.getMonth() + 1, 2)}-${this.zeroPad(date.getDate(), 2)}T00:00:00.000Z`;\r\n }\r\n\r\n onSubmit() {\r\n //console.warn(this.form.value);\r\n\r\n if (this.dateOfBirth.value) {\r\n //this.dateOfBirth.setValue(moment(this.dateOfBirth.value).format());\r\n this.dateOfBirth.setValue(this.toISODate(new Date(this.dateOfBirth.value)));\r\n // console.warn(this.form.value);\r\n }\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n if (!this.dataAccuracyAcknowledgment.value) {\r\n this.alert.failure(\"LIC_ALERT_DATA_ACCURACY_ACKNOWLEDGMENT\", false);\r\n return;\r\n }\r\n\r\n this.attachments.controls.forEach((ctrl, i) => {\r\n //const _attachments = this.attachments.controls[i];\r\n //for (let ctrl of Object.keys((grp).controls))\r\n if (ctrl.value instanceof Object)\r\n ctrl.setValue(ctrl.value.changingThisBreaksApplicationSecurity)\r\n });\r\n\r\n this.loader.load(LoaderType.Body);\r\n\r\n const cmd = this.form.value as PostIntLicenseCmd;\r\n cmd.id = this.dto.id;\r\n\r\n if (!this.updateMode) {\r\n cmd.id = null;\r\n if (this.auth.currentUser.isInRole(Role.INT_LICENSES_CREATE))\r\n this.intLicenseService.create(cmd)\r\n .then(id => {\r\n if (id) {\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n setTimeout(() => {\r\n this.router.navigate(['/', this.translate.currentLang, 'issuing', 'int-licenses', 'view', id]);\r\n }, 1000);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n else {\r\n if (this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n this.intLicenseService.update(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n\r\n setTimeout(() => {\r\n this.router.navigate(['/', this.translate.currentLang, 'issuing', 'int-licenses', 'view', cmd.id]);\r\n }, 1000);\r\n\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n }\r\n\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n serial: ['', [Validators.required]],\r\n name: ['', [Validators.required, englishAndSpacesValidator, Validators.minLength(10), Validators.maxLength(25)]],\r\n dateOfBirth: ['', [Validators.required]],\r\n nationalityId: [null, [Validators.required]],\r\n countryId: [null, [Validators.required]],\r\n passportID: ['', [Validators.required, passportIdOrIdentityIdValidator, Validators.minLength(6), Validators.maxLength(15)]],\r\n bloodGroup: ['', [Validators.required]],\r\n gender: ['', [Validators.required]],\r\n accordingToId: [null, [Validators.required]],\r\n permitClasses: ['', [Validators.required]],\r\n phoneNumber: ['', [Validators.required, phoneNumberValidator]],\r\n attachments: this.fb.array([\r\n ['', [Validators.required]], //personalPhoto\r\n ['', [Validators.required]], //passportPhoto\r\n ['', [Validators.required]] //licensePhoto\r\n ]),\r\n\r\n dataAccuracyAcknowledgment: [false],\r\n validityYears: [1, [Validators.required]]\r\n })\r\n }\r\n\r\n private spreadRanges(ranges: number[][]) {\r\n const result = [];\r\n\r\n ranges.forEach(s => {\r\n if (s.length > 1) {\r\n let _start = s[0];\r\n const _end = s[1];\r\n while (_start <= _end)\r\n result.push(_start++);\r\n }\r\n else\r\n result.push(s[0]);\r\n });\r\n return result;\r\n }\r\n\r\n \r\n\r\n// Example usage\r\n\r\n\r\n}","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IntLicensesService } from '../../services/int-licenses.service';\r\nimport { IntLicenseVm, IntLicenseDetailsDto, IntLicenseDto } from '../../models/int-license';\r\nimport * as moment from 'moment';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport * as _ from 'lodash';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { IntLicensePrintComponent } from '../../components/int-license-print/int-license-print.component';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, ShipmentModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { CommitmentPrintComponent } from '../../components/commitment-print/commitment-print.component';\r\nimport { PrintLogDto } from '../../../_shared/models/issuing.models';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { utils } from 'protractor';\r\nimport { StaticConfig } from 'src/app/features/lookups/services/config';\r\nimport { ConfigObject } from 'src/app/core/models/enums/config-object';\r\nimport { has, rest } from 'lodash';\r\nimport { CreateOrderUPSCommand, ELicenseOrderStatus } from '../../models/e-license';\r\nimport { ELicensesService } from '../../services/e-licenses.service';\r\nimport { ModalDismissReasons, NgbModalConfig, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { saveAs } from 'file-saver';\r\nimport { convertELicenseOrderStatusToLocale } from '../../models/order-status-locale';\r\n\r\n@Component({\r\n selector: 'mac-view-int-license',\r\n templateUrl: './view-int-license.component.html',\r\n styleUrls: ['./view-int-license.component.scss'],\r\n providers: [IntLicensesService, ELicensesService, FileLoaderService]\r\n\r\n})\r\n\r\n\r\nexport class ViewIntLicenseComponent implements OnInit {\r\n cashedVm: IntLicenseVm;\r\n dto: IntLicenseDetailsDto = new IntLicenseDetailsDto();\r\n moment = moment;\r\n lang: Language;\r\n dateFormat = 'L';\r\n qRCodeImg: string;\r\n qRCodeUrl: string = '';\r\n closeResult = '';\r\n // _personalPhoto: string;\r\n // _passportPhoto: string;\r\n // _licensePhoto: string;\r\n confirmed: boolean;\r\n //_baseUrl = 'https://idl.mac.org.sa';\r\n maxPrintLimit: number;\r\n defaultImage = 'assets/images/default.jpg';\r\n\r\n convertELicenseOrderStatusToLocale = convertELicenseOrderStatusToLocale;\r\n\r\n @ViewChild('printElm') printElm: IntLicensePrintComponent;\r\n @ViewChild('comPrintElm') comPrintElm: CommitmentPrintComponent;\r\n\r\n get Gender() { return Gender };\r\n get PrintObject() { return PrintObject; };\r\n get Role() { return Role; };\r\n get Language() { return Language; };\r\n get Math() { return Math; };\r\n\r\n constructor(private route: ActivatedRoute,\r\n private intLicenseService: IntLicensesService,\r\n private eLicensesService: ELicensesService,\r\n private loader: LoadingService,\r\n private http: HttpClient,\r\n public translate: TranslateService,\r\n private fileLoader: FileLoaderService,\r\n private confirmService: ConfirmService,\r\n public auth: AuthService,\r\n private modalService: NgbModal,\r\n config: NgbModalConfig,\r\n private router: Router) {\r\n // customize default values of modals used by this component tree\r\n config.backdrop = 'static';\r\n config.keyboard = false;\r\n }\r\n printLabelByTrackingNumber(trackingNumber: string): void {\r\n const url = 'https://www.ups.com/ups.app/xml/Track';\r\n const headers = {\r\n 'AccessLicenseNumber': '6DC092F026A4C6D0',\r\n 'Username': 'MiddleEast01',\r\n 'Password': 'Pa@1234554321',\r\n 'Content-Type': 'application/json'\r\n };\r\n const body = {\r\n \"UPSSecurity\": {\r\n \"UsernameToken\": {\r\n \"Username\": \"MiddleEast01\",\r\n \"Password\": \"Pa@1234554321\"\r\n },\r\n \"ServiceAccessToken\": {\r\n \"AccessLicenseNumber\": \"6DC092F026A4C6D0\"\r\n }\r\n },\r\n \"TrackRequest\": {\r\n \"InquiryNumber\": trackingNumber\r\n }\r\n };\r\n \r\n this.http.post(url, body, { headers, responseType: 'json' }).subscribe(\r\n (response: any) => {\r\n const labelImage = response.TrackResponse.Shipment[0].Package[0].Label.GraphicImage;\r\n const labelFormat = response.TrackResponse.Shipment[0].Package[0].Label.ImageFormat.Code;\r\n \r\n // Save the label as a file or print it directly using appropriate methods\r\n const blob = this.b64toBlob(labelImage, `image/${labelFormat}`);\r\n saveAs(blob, `label.${labelFormat}`);\r\n },\r\n (error: any) => {\r\n console.error('Error printing label:', error);\r\n }\r\n );\r\n }\r\n containsNumbers(str: string): boolean {\r\n // Use a regular expression to check if the string contains any numbers\r\n const regex = /\\d/;\r\n return regex.test(str);\r\n }\r\n b64toBlob(b64Data: string, contentType: string = '', sliceSize: number = 512): Blob {\r\n const byteCharacters = atob(b64Data);\r\n const byteArrays = [];\r\n \r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice = byteCharacters.slice(offset, offset + sliceSize);\r\n \r\n const byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n \r\n const byteArray = new Uint8Array(byteNumbers);\r\n byteArrays.push(byteArray);\r\n }\r\n \r\n const blob = new Blob(byteArrays, { type: contentType });\r\n return blob;\r\n }\r\n \r\n ngOnInit(): void {\r\n moment.locale('en-gb');\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.maxPrintLimit = Number(StaticConfig.getConfigKeyValuePairs(ConfigObject.IntLicenseMaxPrintLimit)[0].value);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n const intLicenseId = this.route.snapshot.paramMap.get('id');\r\n if (intLicenseId) {\r\n this.intLicenseService.get(intLicenseId)\r\n .then(async result => {\r\n if (result.intLicense) {\r\n this.dto = result.intLicense;\r\n //console.log(result);\r\n //console.log(this.dto);\r\n\r\n if (this.dto.issued) {\r\n this.qRCodeUrl = Utils.generateQrCodeUrl(this.dto.hashedSerial);// `${this._baseUrl}/verify-license/${this.dto.hashedSerial}`;\r\n\r\n setTimeout(() => {\r\n this.qRCodeImg = document.getElementsByTagName('ngx-kjua')[0]\r\n .getElementsByTagName('div')[0]\r\n //.getElementsByTagName('img')[0].src;\r\n .getElementsByTagName('canvas')[0].toDataURL(\"image/png\");\r\n });\r\n }\r\n\r\n // await this.dto.attachments.forEach( att => {\r\n // const file = await this.fileLoader.loadAsync(att);\r\n // att = file ? file : this.defaultImage;\r\n // ////console.log(att);\r\n // });\r\n\r\n this.dto.attachments[0] = (await this.fileLoader.loadAsync(this.dto.attachments[0] as string)).changingThisBreaksApplicationSecurity;\r\n this.dto.attachments[1] = (await this.fileLoader.loadAsync(this.dto.attachments[1] as string)).changingThisBreaksApplicationSecurity;\r\n this.dto.attachments[2] = (await this.fileLoader.loadAsync(this.dto.attachments[2] as string)).changingThisBreaksApplicationSecurity;\r\n\r\n\r\n\r\n // this.dto.attachments.forEach((att, i) => {\r\n // //const _attachments = this.attachments.controls[i];\r\n // //for (let ctrl of Object.keys((grp).controls))\r\n // // if (ctrl.value instanceof Object)\r\n // this.fileLoader.loadAsync(att).then(r => {\r\n // //console.log(r);\r\n // this.dto.attachments[i] = (r).changingThisBreaksApplicationSecurity;\r\n // // //console.log(this.dto.attachments);\r\n\r\n // });//.changingThisBreaksApplicationSecurity;\r\n // // ctrl.setValue(ctrl.value.changingThisBreaksApplicationSecurity)\r\n // });\r\n\r\n\r\n this.displayPreview();\r\n } else this.router.navigate([`/${this.translate.currentLang}/not-found`]);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n }\r\n\r\n isPrintable() {\r\n return !this.dto.issued\r\n || this.printObjectsCount(this.dto.printLogs, PrintObject.IntLicenseCard) < this.maxPrintLimit\r\n || this.printObjectsCount(this.dto.printLogs, PrintObject.IntLicenseSticker) < this.maxPrintLimit\r\n }\r\n\r\n isExpired(expiryDate) {\r\n return moment(expiryDate).isBefore(Date.now());\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n if (list)\r\n return list.filter(l => l.printObject == printObject).length;\r\n }\r\n\r\n print(printObject: PrintObject) {\r\n console.log('IM HERE 111');\r\n if (printObject == PrintObject.IntLicenseCommitment) {\r\n //console.warn('try');\r\n this.comPrintElm.print(this.dto);\r\n return;\r\n\r\n }\r\n\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n return;\r\n\r\n //confirm if not yet issued\r\n if (!this.dto.issued) {\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: this.dto.serial.toString(),\r\n type: 'LIC_TITLE_LICENSE',\r\n action: '_ACTION_ISSUE',\r\n confirmQuestion: 'LIC_CONFIRM_ISSUE_CONFIRMATION_QUESTION',\r\n note: 'LIC_CONFIRM_ISSUE_NOTE',\r\n dangerNote: 'LIC_CONFIRM_ISSUE_DANGER_NOTE',\r\n submitText: '_ACTION_ISSUE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n await this._print(printObject);\r\n });\r\n } else this._print(printObject);\r\n }\r\n\r\n async _print(printObject: PrintObject) {\r\n\r\n //check if print limit allowed\r\n if (this.printObjectsCount(this.dto.printLogs, printObject) < this.maxPrintLimit) {\r\n this.loader.load(LoaderType.Body);\r\n //request to server print\r\n try {\r\n const hash = await this.intLicenseService.print({ id: this.dto.id, printObject });\r\n //console.log(hash);\r\n if (hash && hash.value) {\r\n //get new hash if just issued\r\n //calcualte issue date in FE\r\n //calculate expiry date in FE\r\n this.dto.hashedSerial = hash.value\r\n //this.qRCodeUrl = `${this._baseUrl}/verify-license/${this.dto.hashedSerial}`;\r\n this.qRCodeUrl = Utils.generateQrCodeUrl(this.dto.hashedSerial);\r\n setTimeout(() => {\r\n this.qRCodeImg = document.getElementsByTagName('ngx-kjua')[0]\r\n .getElementsByTagName('div')[0]\r\n //.getElementsByTagName('img')[0].src;\r\n .getElementsByTagName('canvas')[0].toDataURL(\"image/png\");\r\n });\r\n\r\n\r\n this.dto.issued = new Date();\r\n this.dto.expiryDate = moment(this.dto.issued).add(this.dto.validityYears, 'year').subtract(1, 'day').toDate();\r\n\r\n\r\n if (this.dto.isELicense) {\r\n this.dto.eLicenseOrder.status = ELicenseOrderStatus.LicenseIssued;\r\n }\r\n }\r\n console.log('IM HERE 2');\r\n //increment print objects\r\n this.dto.printLogs.push({ created: new Date(), printObject: printObject });\r\n\r\n //update ui\r\n await this.displayPreview();\r\n console.log('IM HERE 3');\r\n //open printing object\r\n await this.printElm.print(this.dto, printObject);\r\n\r\n }\r\n finally {\r\n this.loader.load(LoaderType.Body, false)\r\n }\r\n }\r\n }\r\n getTranslatedTemplateVersion(version: number): string {\r\n switch (version) {\r\n case 0:\r\n return this.translate.instant('قم بأختيار سيريال لعرض النموذج');\r\n case 1:\r\n return this.translate.instant('_LABEL_TEMPLATE_1');\r\n case 2:\r\n return this.translate.instant('_LABEL_TEMPLATE_2');\r\n // Add more cases as needed\r\n default:\r\n return '';\r\n }\r\n }\r\n private async displayPreview() {\r\n const _issueDate = moment(this.dto.issued ? this.dto.issued : new Date()).format(this.dateFormat),\r\n _expiryDate = this.dto.issued ? moment(this.dto.expiryDate).format(this.dateFormat)\r\n : moment(new Date()).add(this.dto.validityYears, 'year').subtract(1, 'day').format(this.dateFormat);\r\n // _personalPhoto = await this.fileLoader.loadAsync(this.dto.personalPhoto);\r\nconsole.log(this.dto.documentTemplateVersion)\r\n if (this.dto.documentTemplateVersion < 2) {\r\n let canvas1 = document.getElementById('lic-canvas') as HTMLCanvasElement;\r\n if (canvas1.getContext) {\r\n let ctx = canvas1.getContext('2d');\r\n\r\n const lic = new Image();\r\n\r\n lic.onload = () => {\r\n ctx.textAlign = 'left';\r\n ctx.font = 'bold 13px arial';\r\n ctx.drawImage(lic, 0, 0);\r\n\r\n let v = 75;\r\n const h = 210;\r\n const rh = 17.4;\r\n ctx.fillText(this.dto.name, h, v);\r\n ctx.fillText(moment(this.dto.dateOfBirth).format(this.dateFormat), h, v += rh);\r\n ctx.fillText(this.dto.nationalityTitles[Language.English], h, v += rh);\r\n ctx.fillText(this.dto.countryTitles[Language.English], h, v += rh);\r\n ctx.fillText(this.dto.passportID, h, v += rh);\r\n ctx.fillText(Gender[this.dto.gender], h, v += rh);\r\n ctx.fillText(this.dto.bloodGroup, h, v += rh);\r\n ctx.fillText(`${this.dto.accordingToTitles[Language.English]} License`, h, v += rh);\r\n ctx.fillText(this.dto.permitClasses.join(', '), h, v += rh);\r\n\r\n ctx.fillText(_issueDate, 85, 49);\r\n\r\n ctx.font = 'bold 20px arial';\r\n ctx.fillText(Math.abs(this.dto.serial).toString(), 50, 29);\r\n\r\n let photo = new Image();\r\n photo.onload = () => {\r\n let x = 20, y = 66, width = 98, height = 133, radius = 5;\r\n ctx.save();\r\n ctx.beginPath();\r\n ctx.moveTo(x + radius, y);\r\n ctx.lineTo(x + width - radius, y);\r\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n ctx.lineTo(x + width, y + height - radius);\r\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\r\n ctx.lineTo(x + radius, y + height);\r\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n ctx.lineTo(x, y + radius);\r\n ctx.quadraticCurveTo(x, y, x + radius, y);\r\n ctx.closePath();\r\n ctx.clip();\r\n\r\n ctx.drawImage(photo, x, y, width, height);\r\n ctx.restore();\r\n\r\n const qr = new Image();\r\n qr.onload = () => {\r\n ctx.drawImage(qr, 319, 92.4, 88, 88);\r\n }\r\n qr.src = this.dto.issued ? this.qRCodeImg : 'assets/images/qr.png';\r\n\r\n const ptt = new Image();\r\n ptt.onload = () => {\r\n\r\n ctx.save();\r\n ctx.globalAlpha = 0.25;\r\n const ptrn = ctx.createPattern(ptt, 'repeat');\r\n ctx.fillStyle = ptrn;\r\n ctx.fillRect(0, 0, 425, 265);\r\n ctx.restore();\r\n\r\n //draw thumb\r\n let canvas1Thumb = document.getElementById('lic-canvas-thumb') as HTMLCanvasElement;\r\n let thumbCtx = canvas1Thumb.getContext('2d');\r\n //thumbCtx.scale(0.2, 0.2);\r\n thumbCtx.drawImage(ctx.canvas, 0, 0);\r\n }\r\n ptt.src = 'assets/images/sample-stamp.png';\r\n }\r\n photo.src = this.dto.attachments[0] as string;\r\n //photo.src = (this.dto.attachments[0]).changingThisBreaksApplicationSecurity;\r\n }\r\n lic.src = \"assets/images/license-empty.png\";\r\n }\r\n } \r\n else if (this.dto.documentTemplateVersion === 2) {\r\n let canvas1 = document.getElementById('lic-canvas') as HTMLCanvasElement;\r\n if (canvas1.getContext) {\r\n let ctx = canvas1.getContext('2d');\r\n\r\n const lic = new Image();\r\n\r\n lic.onload = () => {\r\n ctx.textAlign = 'left';\r\n ctx.font = 'bold 13px arial';\r\n ctx.drawImage(lic, 0, 0);\r\n\r\n let v = 82;\r\n const h = 201;\r\n const rh = 20;\r\n ctx.fillText(this.dto.name, h, v);\r\n ctx.fillText(moment(this.dto.dateOfBirth).format(this.dateFormat), h, v += rh);\r\n ctx.fillText(this.dto.nationalityTitles[Language.English], h, v += rh);\r\n ctx.fillText(this.dto.countryTitles[Language.English], h, v += rh);\r\n ctx.fillText(this.dto.passportID, h, v += rh);\r\n ctx.fillText(Gender[this.dto.gender], h, v += rh);\r\n ctx.fillText(this.dto.bloodGroup, h, v += rh);\r\n ctx.fillText(`${this.dto.accordingToTitles[Language.English]} License`, h, v += rh);\r\n ctx.fillText(this.dto.permitClasses.join(', '), h, v += rh);\r\n\r\n ctx.fillText(_issueDate, 62, 220);\r\n ctx.fillText(_expiryDate, 62, 241);\r\n\r\n ctx.font = 'bold 20px arial';\r\n ctx.fillText(Math.abs(this.dto.serial).toString(), 24, 60);\r\n\r\n let photo = new Image();\r\n photo.onload = () => {\r\n let x = 20, y = 66, width = 98, height = 133, radius = 5;\r\n ctx.save();\r\n ctx.beginPath();\r\n ctx.moveTo(x + radius, y);\r\n ctx.lineTo(x + width - radius, y);\r\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n ctx.lineTo(x + width, y + height - radius);\r\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\r\n ctx.lineTo(x + radius, y + height);\r\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n ctx.lineTo(x, y + radius);\r\n ctx.quadraticCurveTo(x, y, x + radius, y);\r\n ctx.closePath();\r\n ctx.clip();\r\n\r\n ctx.drawImage(photo, x, y, width, height);\r\n ctx.restore();\r\n\r\n const qr = new Image();\r\n qr.onload = () => {\r\n ctx.drawImage(qr, 319, 92.4, 88, 88);\r\n }\r\n qr.src = this.dto.issued ? this.qRCodeImg : 'assets/images/qr.png';\r\n\r\n const ptt = new Image();\r\n ptt.onload = () => {\r\n\r\n ctx.save();\r\n ctx.globalAlpha = 0.25;\r\n const ptrn = ctx.createPattern(ptt, 'repeat');\r\n ctx.fillStyle = ptrn;\r\n ctx.fillRect(0, 0, 425, 265);\r\n ctx.restore();\r\n\r\n //draw thumb\r\n let canvas1Thumb = document.getElementById('lic-canvas-thumb') as HTMLCanvasElement;\r\n let thumbCtx = canvas1Thumb.getContext('2d');\r\n //thumbCtx.scale(0.2, 0.2);\r\n thumbCtx.drawImage(ctx.canvas, 0, 0);\r\n }\r\n ptt.src = 'assets/images/sample-stamp.png';\r\n }\r\n photo.src = this.dto.attachments[0] as string;\r\n //photo.src = (this.dto.attachments[0]).changingThisBreaksApplicationSecurity;\r\n }\r\n lic.src = \"assets/images/license-empty-new.png\";\r\n }\r\n }\r\n\r\n let canvas2 = document.getElementById('stk-canvas') as HTMLCanvasElement;\r\n if (canvas2.getContext) {\r\n let ctx = canvas2.getContext('2d');\r\n\r\n let stk = new Image();\r\n stk.onload = () => {\r\n ctx.textAlign = 'left';\r\n ctx.font = 'bold 14px arial';\r\n ctx.drawImage(stk, 0, 0);\r\n\r\n let v = 162;\r\n const h = 152;\r\n const rh = 25.75;\r\n\r\n ctx.fillText(this.dto.name, h, v);\r\n ctx.fillText(moment(this.dto.dateOfBirth).format(this.dateFormat), h, v += rh);\r\n ctx.fillText(Gender[this.dto.gender], h, v += rh);\r\n ctx.fillText(this.dto.nationalityTitles[Language.English], h, v += rh);\r\n ctx.fillText(this.dto.passportID, h, v += rh);\r\n ctx.fillText(this.dto.countryTitles[Language.English], h, v += rh);\r\n ctx.fillText(`${this.dto.accordingToTitles[Language.English]} License`, h, v += rh);\r\n ctx.fillText(this.dto.permitClasses.join(', '), h, v += rh);\r\n ctx.fillText(this.dto.bloodGroup, h, v += rh);\r\n ctx.fillText(_issueDate, h, 485);\r\n ctx.fillText(_expiryDate, h, 508);\r\n\r\n ctx.font = 'bold 25px arial';\r\n ctx.fillText(Math.abs(this.dto.serial).toString(), h, 120);\r\n\r\n const photo = new Image();\r\n photo.onload = () => {\r\n const x = 270, y = 355, width = 110, height = 152, radius = 5;\r\n\r\n ctx.rect(x, y, width, height);\r\n //ctx.stroke();\r\n ctx.drawImage(photo, x, y, width, height);\r\n\r\n const qr = new Image();\r\n qr.onload = () => {\r\n ctx.drawImage(qr, 287, 230, 95, 95);\r\n }\r\n qr.src = this.dto.issued ? this.qRCodeImg : 'assets/images/qr.png';\r\n\r\n const ptt = new Image();\r\n ptt.onload = () => {\r\n ctx.save();\r\n ctx.globalAlpha = 0.2;\r\n const ptrn = ctx.createPattern(ptt, 'repeat');\r\n ctx.fillStyle = ptrn;\r\n ctx.fillRect(0, 0, 425, 600);\r\n ctx.restore();\r\n\r\n //draw thumb\r\n let canvas2Thumb = document.getElementById('stk-canvas-thumb') as HTMLCanvasElement;\r\n let thumbCtx = canvas2Thumb.getContext('2d');\r\n //thumbCtx.scale(0.2, 0.2);\r\n thumbCtx.drawImage(ctx.canvas, 0, 0);\r\n }\r\n ptt.src = 'assets/images/sample-stamp.png';\r\n }\r\n //photo.src = this._personalPhoto;\r\n photo.src = this.dto.attachments[0] as string;\r\n //photo.src = (this.dto.attachments[0]).changingThisBreaksApplicationSecurity;\r\n\r\n }\r\n stk.src = \"assets/images/sticker-empty.png\";\r\n }\r\n }\r\n\r\n\r\n //eLicense\r\n //TODO: update order status after issuing (front-back)\r\n\r\n returnToCustomer = (id: string) => {\r\n // console.error(\"Not implemented\");\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: this.dto.eLicenseOrder.bill.trackingId,\r\n type: 'LIC_TITLE_LICENSE',\r\n action: 'إعادة طلب',\r\n confirmQuestion: 'هل تريد بالفعل إعادة طلب الرخصة الدولية رقم: ',\r\n note: `سيتم تحديث حالة الطلب إلى \"معاد للإستكمال\"، وسيتمكن مقدم الطلب من تعديل الطلب ثم إعادة التقديم مرة أخرى`,\r\n dangerNote: 'هذه العملية ستقوم بتجميد الطلب حتى يقوم مقدم الطلب بإتخاذ إجراء.',\r\n submitText: 'إعادة للإستكمال',\r\n submitClass: 'btn-warning',\r\n inputNote: 'ملاحظة الإعادة'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n await this._returnToCustomer(id, m[1].inputNote);\r\n // window.location.reload();\r\n });\r\n }\r\n\r\n private _returnToCustomer = (id, comment) => {\r\n console.warn(comment);\r\n\r\n this.loader.load(LoaderType.Body);\r\n //submit on server, and refresh UI\r\n this.eLicensesService.updateOrderStatus({ id, status: ELicenseOrderStatus.PaymentCompleted, comment })\r\n .then(result => {\r\n if (result) {\r\n console.warn(result);\r\n // const dto = this.dto;\r\n this.dto.eLicenseOrder.status = ELicenseOrderStatus.PaymentCompleted;\r\n\r\n if (!this.dto.eLicenseOrder.interactions)\r\n this.dto.eLicenseOrder.interactions = [];\r\n\r\n this.dto.eLicenseOrder.interactions.unshift({\r\n actor: 1,\r\n //TODO: time logged in local (BUG)\r\n created: moment().utc().toDate(),\r\n note: comment\r\n });\r\n window.location.reload();\r\n // this.dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber = comment;\r\n\r\n // this.dto = dto;\r\n // //console.log(this.dto);\r\n }\r\n })\r\n .catch(e => console.error(e))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n reject = (id: string) => {\r\n // console.error(\"Not implemented\");\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: this.dto.eLicenseOrder.bill.trackingId,\r\n type: 'LIC_TITLE_LICENSE',\r\n action: 'رفض طلب',\r\n confirmQuestion: 'هل تريد بالفعل رفض طلب الرخصة الدولية رقم: ',\r\n note: `سيتم تحديث حالة الطلب إلى \"مرفوض\"، كما سيتم إعادة مبلغ ${this.dto.eLicenseOrder.bill.amount + ' ' + this.dto.eLicenseOrder.bill.total} إلى حساب العميل.`,\r\n dangerNote: 'هذه العملية لايمكن التراجع عنها، سيتم إشعار مقدم الطلب بالرفض',\r\n submitText: 'رفض',\r\n submitClass: 'btn-danger',\r\n inputNote: 'سبب الرفض'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n await this._reject(id, m[1].inputNote);\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n private _reject = (id, comment) => {\r\n console.warn(comment);\r\n\r\n this.loader.load(LoaderType.Body);\r\n //submit on server, and refresh UI\r\n this.eLicensesService.updateOrderStatus({ id, status: ELicenseOrderStatus.Rejected, comment })\r\n .then(result => {\r\n if (result) {\r\n console.warn(result);\r\n // const dto = this.dto;\r\n this.dto.eLicenseOrder.status = ELicenseOrderStatus.Rejected;\r\n window.location.reload();\r\n // this.dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber = comment;\r\n\r\n // this.dto = dto;\r\n // //console.log(this.dto);\r\n }\r\n })\r\n .catch(e => console.error(e))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n\r\n\r\n PayBranch = (id: string) => {\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: `${this.dto.eLicenseOrder.bill.total} ${this.dto.eLicenseOrder.bill.currency}`,\r\n type: 'LIC_TITLE_LICENSE',\r\n action: 'تاكيد استلام مبلغ',\r\n confirmQuestion: ` هل تريد بالفعل تأكيد استلام مبلغ طلب الرخصة رقم ${this.dto.eLicenseOrder.bill.couponDiscount} المبلغ المطلوب سداده هو `,\r\n note: 'سيتم تحديث وسيلة الدفع إلى \"تم الدفع بالفرع\".',\r\n dangerNote: 'هذه العملية لايمكن التراجع عنها، سيتم تغيير الحالة لمدفوعة ومطالبتك بالمبلغ',\r\n submitText: 'استلام المبلغ',\r\n inputNote: 'اسم المسئول عن استلام المبلغ'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n await this._PayBranch(id,' تم استلام المبلغ بالفرع بواسطة : '+ m[1].inputNote);\r\n });\r\n\r\n }\r\n private _PayBranch = (id, comment) => {\r\n\r\n this.loader.load(LoaderType.Body);\r\n //submit on server, and refresh UI\r\n this.eLicensesService.updateOrderStatus({ id, status: ELicenseOrderStatus.PaymentCompleted, comment })\r\n .then(result => {\r\n if (result) {\r\n console.warn(result);\r\n // const dto = this.dto;\r\n this.dto.eLicenseOrder.status = ELicenseOrderStatus.PaymentCompleted;\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n window.location.reload();\r\n // this.dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber = comment;\r\n\r\n //this.dto.eLicenseOrder.status = ELicenseOrderStatus.LicenseIssued;\r\n\r\n // this.dto = dto;\r\n // //console.log(this.dto);\r\n }\r\n })\r\n .catch(e => console.error(e))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n \r\n\r\n Pick = (id: string) => {\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: this.dto.serial.toString(),\r\n type: 'LIC_TITLE_LICENSE',\r\n action: 'تحديث بيانات استلام',\r\n confirmQuestion: 'هل تريد بالفعل تسليم للعميل طلب رخصة دولية رقم: ',\r\n note: 'سيتم تحديث حالة الطلب إلى \"تم الاستلام من الفرع\".',\r\n dangerNote: 'هذه العملية لايمكن التراجع عنها، سيتم تغيير الحالة الاستلام من الفرع على مسؤليتك',\r\n submitText: 'تسليم',\r\n inputNote: 'اسم المسئول عن التسليم'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n \r\n await this._Pick(id,' تم التسليم بواسطة : '+ m[1].inputNote);\r\n });\r\n\r\n }\r\n private _Pick = (id, comment) => {\r\n this.loader.load(LoaderType.Body);\r\n // Submit on server, and refresh UI\r\n this.eLicensesService.updateOrderStatus({ id, status: ELicenseOrderStatus.OrderDelivered, comment })\r\n .then(result => {\r\n if (result) {\r\n console.warn(result);\r\n // Assuming the update changes are reflected in your component's view,\r\n // and you now wish to \"refresh\" the component:\r\n\r\n // Reset the route reuse strategy\r\n this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n return false;\r\n };\r\n\r\n // Get current route's URL\r\n window.location.reload();\r\n\r\n }\r\n })\r\n .catch(e => console.error(e))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n}\r\n\r\n get ELicenseOrderStatus() {\r\n return ELicenseOrderStatus;\r\n }\r\n ship = (id: string) => {\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: this.dto.serial.toString(),\r\n type: 'LIC_TITLE_LICENSE',\r\n action: 'تحديث بيانات شحنة',\r\n confirmQuestion: 'هل تريد بالفعل شحن طلب رخصة دولية رقم: ',\r\n note: 'سيتم تحديث حالة الطلب إلى \"تم الشحن\".',\r\n dangerNote: 'هذه العملية لايمكن التراجع عنها، سيتم إشعار مقدم الطلب برقم البوليصة، فضلاً التأكد من صحة البيانات قبل الضغط على زر تحديث',\r\n submitText: 'تحديث',\r\n inputNote: 'رقم بوليصة الشحن'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n await this._ship(id, m[1].inputNote);\r\n });\r\n \r\n }\r\n private _ship = (id, comment) => {\r\n\r\n this.loader.load(LoaderType.Body);\r\n //submit on server, and refresh UI\r\n this.eLicensesService.updateOrderStatus({ id, status: ELicenseOrderStatus.OrderShipped, comment })\r\n .then(result => {\r\n if (result) {\r\n console.warn(result);\r\n // const dto = this.dto;\r\n this.dto.eLicenseOrder.status = ELicenseOrderStatus.OrderShipped;\r\n this.dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber = comment;\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n const currentUrl = this.router.url;\r\n window.location.reload();\r\n //this.dto.eLicenseOrder.status = ELicenseOrderStatus.LicenseIssued;\r\n\r\n // this.dto = dto;\r\n // //console.log(this.dto);\r\n }\r\n })\r\n .catch(e => console.error(e))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n \r\n\r\n\r\n\r\n open(content) {\r\n this.modalService.open(content, { size: 'lg', ariaLabelledBy: 'modal-basic-title' }).result.then(\r\n (result) => {\r\n debugger;\r\n //this.closeResult = `Closed with: ${result.AddressLine.value} AddressLine: ${result.AddressLine.value}`;\r\n //alert(`Closed with: ${result.size} type: ${result.type} country: ${result.country}`);\r\n let _order = new CreateOrderUPSCommand();\r\n _order.order = JSON.stringify(result);\r\n //let hasEmpty = this.isEmpty(_order.order);\r\n //if (hasEmpty) {\r\n this._upsOrder(_order)\r\n // }\r\n //console.log(result);\r\n },\r\n (reason) => {\r\n debugger\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n // let currentUrl = this.router.url;\r\n // this.router.navigateByUrl('/', {skipLocationChange: true}).then(() => {\r\n // this.router.navigate([currentUrl]);\r\n // });\r\n },\r\n );\r\n }\r\n isEmpty(obj) {\r\n debugger\r\n let jsonparse = JSON.parse(obj);\r\n if (jsonparse.AddressLine == '') { alert('AddressLine is required'); return false; }\r\n if (jsonparse.AttentionName == '') { alert('AttentionName is required'); return false; }\r\n if (jsonparse.Comments == '') { alert('Comments is required'); return false; }\r\n if (jsonparse.CommodityCode == '') { alert('CommodityCode is required'); return false; }\r\n if (jsonparse.CountryCode == '') { alert('CountryCode is required'); return false; }\r\n if (jsonparse.DeclarationStatement == '') { alert('DeclarationStatement is required'); return false; }\r\n if (jsonparse.Description == '') { alert('Description is required'); return false; }\r\n if (jsonparse.InvoiceDate == '') { alert('InvoiceDate is required'); return false; }\r\n if (jsonparse.InvoiceNumber == '') { alert('InvoiceNumber is required'); return false; }\r\n if (jsonparse.Name == '') { alert('Name is required'); return false; }\r\n if (jsonparse.Number == '') { alert('Number is required'); return false; }\r\n if (jsonparse.OriginCountryCode == '') { alert('OriginCountryCode is required'); return false; }\r\n if (jsonparse.PostalCode == '') { alert('PostalCode is required'); return false; }\r\n if (jsonparse.ProductWeight == '') { alert('ProductWeight is required'); return false; }\r\n if (jsonparse.PurchaseOrderNumber == '') { alert('PurchaseOrderNumber is required'); return false; }\r\n if (jsonparse.ReasonForExport == '') { alert('ReasonForExport is required'); return false; }\r\n if (jsonparse.StateProvinceCode == '') { alert('StateProvinceCode is required'); return false; }\r\n if (jsonparse.TermsOfShipment == '') { alert('TermsOfShipment is required'); return false; }\r\n if (jsonparse.UnitOfMeasurementType == '') { alert('UnitOfMeasurementType is required'); return false; }\r\n if (jsonparse.UnitOfMeasurementWeight == '') { alert('UnitOfMeasurementWeight is required'); return false; }\r\n //// if (jsonparse.customerbuildingNumber == '') { alert('customerbuildingNumber is required'); return false; }\r\n if (jsonparse.customercityName == '') { alert('customercityName is required'); return false; }\r\n if (jsonparse.customercontactPhoneNumber == '') { alert('customercontactPhoneNumber is required'); return false; }\r\n if (jsonparse.customercountry == '') { alert('customercountry is required'); return false; }\r\n if (jsonparse.customername == '') { alert('customername is required'); return false; }\r\n if (jsonparse.customerneighborhoodName == '') { alert('customerneighborhoodName is required'); return false; }\r\n if (jsonparse.customerpostalCode == '') { alert('customerpostalCode is required'); return false; }\r\n if (jsonparse.customerstreetName == '') { alert('customerstreetName is required'); return false; }\r\n if (jsonparse.pickuplocation == '') { alert('pickuplocation is required'); return false; }\r\n if (jsonparse.productname == '') { alert('productname is required'); return false; }\r\n return true;\r\n }\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n\r\n private _upsOrder = (order: CreateOrderUPSCommand) => {\r\n console.warn(order);\r\n\r\n this.loader.load(LoaderType.Body);\r\n //submit on server, and refresh UI\r\n this.eLicensesService.createUpsShipment(order)\r\n .then(result => {\r\n if (result) {\r\n console.warn(result);\r\n debugger\r\n let modal = this.confirmService.confirm(new ShipmentModal({\r\n title: this.dto.serial.toString(),\r\n type: 'UPS Shipment Created',\r\n action: 'Success - ',\r\n confirmQuestion: 'Shippment is created against serail# ',\r\n note: 'Customer Name: ',\r\n dangerNote: '',\r\n submitText: 'Ok',\r\n cancelText: 'Ok'\r\n }));\r\n modal.then(() => { //console.log('When user closes'); }, () => {\r\n window.location.reload();\r\n })\r\n // modal.then(async m => {\r\n // debugger\r\n\r\n // if (m.indexOf('CONFIRMED') > -1)\r\n // {\r\n // let currentUrl = this.router.url;\r\n // this.router.navigateByUrl('/', {skipLocationChange: true}).then(() => {\r\n // this.router.navigate([currentUrl]);\r\n // });\r\n // }\r\n // else {\r\n // debugger\r\n // let currentUrl = this.router.url;\r\n // this.router.navigateByUrl('/', {skipLocationChange: true}).then(() => {\r\n // this.router.navigate([currentUrl]);\r\n // });\r\n // }\r\n // // await this._print(printObject);\r\n // });\r\n // const dto = this.dto;\r\n // this.dto.eLicenseOrder.status = ELicenseOrderStatus.OrderShipped;\r\n // this.dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber = comment;\r\n\r\n //this.dto.eLicenseOrder.status = ELicenseOrderStatus.LicenseIssued;\r\n\r\n // this.dto = dto;\r\n // //console.log(this.dto);\r\n }\r\n })\r\n .catch(e => console.error(e))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n\r\n}\r\n","export enum ELicenseOrderStatus {\r\n DraftDocument,\r\n PaymentCompleted,\r\n OrderPlaced,\r\n Rejected,\r\n Refunded,\r\n LicenseIssued,\r\n OrderShipped,\r\n OrderDelivered,\r\n OrderPicked,\r\n OrderNeddToPay,\r\n}\r\n\r\nexport class ELicenseOrderDto {\r\n status: number;\r\n shippingAddress: ELicenseShippingAddressDto;\r\n plan: ELicensePlanDto;\r\n bill: ELicenseBillDto;\r\n interactions: ELicenseInteractionDto[]\r\n}\r\n\r\nexport class ELicenseShippingAddressDto {\r\n id: string;\r\n countryId: number;\r\n cityName: string;\r\n neighborhoodName: string;\r\n streetName: string;\r\n buildingNumber?: number;\r\n postalCode: string;\r\n contactPhoneNumber: string;\r\n shippingVendor: string;\r\n shippingVendorTrackingNumber: string;\r\n shippingVendorTrackingUrl: string;\r\n}\r\n\r\nexport class ELicensePlanDto {\r\n planId: number;\r\n validityYears: number;\r\n}\r\n\r\nexport class ELicenseBillDto {\r\n\r\n total: number; //الاجمالى\r\n paid?: Date;\r\n refunded?: Date;\r\n paymentId: string;\r\n trackingId: string;//وسيلة الدفع\r\n currency: string;\r\n vat: number;\r\n chargeId: string;\r\n amount: number;\r\n amountDiscount: number;\r\n shippingFees: number;\r\n shippingFeesDiscount: number;\r\n couponDiscount: number;//رقم الطلب\r\n paymentMethod: string;//رقم الطلب\r\n\r\n}\r\n\r\nexport class ELicenseInteractionDto {\r\n actor: number;\r\n created: Date;\r\n note: string;\r\n}\r\n\r\n\r\nexport class UpdateELicenseOrderStatusCommand {\r\n id: string;\r\n status: ELicenseOrderStatus;\r\n comment?: string;\r\n}\r\n\r\nexport class CreateOrderUPSCommand {\r\n order: string;\r\n}\r\n","import { BloodGroup } from 'src/app/core/models/enums/blood-group';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { PrintLogDto } from '../../_shared/models/issuing.models';\r\nimport { SafeUrl } from '@angular/platform-browser';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { ELicenseOrderDto } from './e-license';\r\n\r\nexport interface IntLicenseVm {\r\n intLicense: IntLicenseDetailsDto //todo: rename to item\r\n}\r\n\r\nexport interface IntLicensesVm {\r\n list: IntLicenseDto[],\r\n tapOrders :TapOrder,\r\n recordsCount: number\r\n}\r\n\r\nexport interface SerialHashVm {\r\n value: string\r\n}\r\n\r\nexport interface TapOrder{\r\n unmatchedOrderNumbers : string[],\r\n unmatchedDatabaseNumbers:string[]\r\n}\r\n\r\nexport interface IntLicenseDto {\r\n id: string,\r\n serial: number,\r\n name: string,\r\n gender: Gender,\r\n phoneNumber: string,\r\n accountId: number,\r\n accountTitles: string[],\r\n passportID: string,\r\n issued?: Date,\r\n printLogs: PrintLogDto[],\r\n revokeRequestId?: number,\r\n parentAccounts: LookupDto,\r\n accountTypeTitle: string\r\n isELicense: boolean;\r\n validityYears: number;\r\n eLicenseOrder?: ELicenseOrderDto;\r\n}\r\n\r\nexport class IntLicenseDetailsDto {\r\n id: string;\r\n serial: number;\r\n name: string;\r\n dateOfBirth: Date;\r\n nationalityId: number;\r\n nationalityTitles: string[] = [];\r\n countryId: number;\r\n countryTitles: string[] = [];\r\n accordingToId: number;\r\n accordingToTitles: string[] = [];\r\n passportID: string;\r\n bloodGroup: BloodGroup;\r\n gender: Gender;\r\n permitClasses: IntLicensePermitClass[] = [];\r\n phoneNumber: string;\r\n issued?: Date;\r\n expiryDate?: Date;\r\n hashedSerial?: string;\r\n accountId: number;\r\n // personalPhoto: string;\r\n // passportPhoto: string;\r\n // licensePhoto: string;\r\n attachments: string[] | SafeUrl[];\r\n printLogs: PrintLogDto[];\r\n validityYears: number;\r\n isELicense: boolean;\r\n eLicenseOrder?: ELicenseOrderDto;\r\n documentTemplateVersion: number;\r\n\r\n}\r\n\r\nexport interface IntLicensesSearchQuery /* extends PaginationQuery */ {\r\n name?: string,\r\n countryId?: number,\r\n nationalityId?: number,\r\n gender?: Gender,\r\n phoneNumber?: string,\r\n passportID?: string,\r\n accountId?: number,\r\n permitClass?: string,\r\n serial?: number,\r\n fromDate?: string,\r\n toDate?: string,\r\n isIssued?: boolean,\r\n isDamaged?: boolean,\r\n isELicense?: boolean,\r\n paymentMethod?: string,\r\n orderNo?: number,\r\n shippingStatue?: number,\r\n licensePeriod?: number,\r\n}\r\n\r\n","import { ELicenseOrderStatus } from \"./e-license\";\r\n\r\nexport const convertELicenseOrderStatusToLocale = (status: ELicenseOrderStatus) => {\r\n switch (status) {\r\n case ELicenseOrderStatus.DraftDocument:\r\n return \" طلب معلق - بإنتظار حضور العميل والدفع بالفرع\";\r\n\r\n case ELicenseOrderStatus.OrderPlaced:\r\n return \"قيد الإجراء - بإنتظار موافقة النظام\";\r\n\r\n case ELicenseOrderStatus.PaymentCompleted:\r\n return \"معاد للإستكمال - بإنتظار مدخلات العميل\";\r\n\r\n case ELicenseOrderStatus.LicenseIssued:\r\n return \"مقبول - تم إصدار الرخصة\";\r\n\r\n case ELicenseOrderStatus.OrderShipped:\r\n return \"تم شحن الطلب\";\r\n\r\n case ELicenseOrderStatus.OrderDelivered:\r\n return \"نم استلام الطلب من الفرع\";\r\n case ELicenseOrderStatus.OrderPicked:\r\n return \"نم استلام الطلب من الفرع\";\r\n case ELicenseOrderStatus.Rejected:\r\n case ELicenseOrderStatus.Refunded:\r\n return \"مرفوض - تم إعادة المبلغ لحساب العميل\";\r\n\r\n }\r\n }","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { IntLicensesService } from './int-licenses.service';\r\nimport { IntLicenseDto, IntLicensesVm, IntLicensesSearchQuery } from '../models/int-license';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { ELicensesService } from \"./e-licenses.service\";\r\n\r\n\r\nexport class ELicensesDataSource implements DataSource {\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n public IntLicensesSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private eLicensesService: ELicensesService, private loader: LoadingService) { }\r\n\r\n load(pagination: PaginationQuery, query: IntLicensesSearchQuery | string = null) {\r\n ////console.warn(query);\r\n // //console.warn(query instanceof IntLicensesSearchQuery);\r\n\r\n //this.intLicensesService.search(pagination, query)\r\n this.eLicensesService[(query == null || typeof query == 'string') ? 'getLicenses' : 'search'](pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: IntLicensesVm) => {\r\n //console.log(result);\r\n result.list.forEach(document => {\r\n document.parentAccounts = populateAccountsSelect([document.parentAccounts])[0];\r\n });\r\n this.IntLicensesSubject.next(result.list);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.IntLicensesSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.IntLicensesSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { CreateOrderUPSCommand, UpdateELicenseOrderStatusCommand } from '../models/e-license';\r\nimport { IntLicensesSearchQuery, IntLicensesVm } from '../models/int-license';\r\n\r\n@Injectable()\r\nexport class ELicensesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n updateOrderStatus(cmd: UpdateELicenseOrderStatusCommand) {\r\n console.log(cmd)\r\n return this.api.update(EndPoint.E_lICENSE_ORDER_STATUS, cmd).toPromise();\r\n }\r\n\r\n getLicenses(pagination: PaginationQuery, query: string = '',isExcelExport = false) {\r\n return this.api.get(EndPoint.INT_lICENSE_DEATILS, null, { ...pagination, query, isELicense: true ,isExcelExport });\r\n }\r\n\r\n search(pagination: PaginationQuery, query: IntLicensesSearchQuery) {\r\n return this.api.get(EndPoint.INT_lICENSE_SEARCH, null, { ...pagination, ...query, isELicense: true });\r\n }\r\n createUpsShipment(cmd: CreateOrderUPSCommand) {\r\n return this.api.create(EndPoint.ISSUING_CREATE_UPS_SHIPMENT, cmd).toPromise();\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { IntLicensesService } from './int-licenses.service';\r\nimport { IntLicenseDto, IntLicensesVm, IntLicensesSearchQuery } from '../models/int-license';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\n\r\n\r\nexport class IntLicensesDataSource implements DataSource {\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n public IntLicensesSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private intLicensesService: IntLicensesService, private loader: LoadingService) { }\r\n\r\n loadIntLicenses(pagination: PaginationQuery, query: IntLicensesSearchQuery | string = null) {\r\n ////console.warn(query);\r\n // //console.warn(query instanceof IntLicensesSearchQuery);\r\n\r\n //this.intLicensesService.search(pagination, query)\r\n this.intLicensesService[(query == null || typeof query == 'string') ? 'getLicenses' : 'search'](pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: IntLicensesVm) => {\r\n // //console.log(result.list);\r\n result.list.forEach(document => {\r\n document.parentAccounts = populateAccountsSelect([document.parentAccounts])[0];\r\n });\r\n this.IntLicensesSubject.next(result.list);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.IntLicensesSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.IntLicensesSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { PostIntLicenseCmd } from '../models/create.cmd';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { IntLicenseVm, IntLicensesVm, IntLicensesSearchQuery, SerialHashVm } from '../models/int-license';\r\nimport { PrintIntLicenseCmd } from '../models/print.cmd';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\n\r\n@Injectable()\r\nexport class IntLicensesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n delete(id: string) {\r\n return this.api.delete(EndPoint.INT_lICENSE, id).toPromise();\r\n }\r\n\r\n update(cmd: PostIntLicenseCmd) {\r\n return this.api.update(EndPoint.INT_lICENSE, cmd).toPromise();\r\n }\r\n\r\n create(cmd: PostIntLicenseCmd) {\r\n return this.api.create(EndPoint.INT_lICENSE, cmd).toPromise();\r\n }\r\n\r\n get(id: string) {\r\n return this.api.get(EndPoint.INT_lICENSE, id).toPromise();\r\n }\r\n\r\n getByHashedSerial(key: string) {\r\n return this.api.get(EndPoint.INT_lICENSE_GET_BY_HASHED_SERIAL, key).toPromise();\r\n }\r\n\r\n getLicenses(pagination: PaginationQuery, query: string = '') {\r\n // return this.api.get(EndPoint.INT_lICENSE, null, { ...pagination, query, isELicense: false });\r\n return this.api.get(EndPoint.INT_lICENSE_DEATILS, null, { ...pagination, query, isELicense: false });\r\n }\r\n\r\n\r\n search(pagination: PaginationQuery, query: IntLicensesSearchQuery) {\r\n return this.api.get(EndPoint.INT_lICENSE_SEARCH, null, { ...pagination, ...query, isELicense: false });\r\n }\r\n\r\n print(cmd: PrintIntLicenseCmd) {\r\n return this.api.create(EndPoint.INT_lICENSE_PRINT, cmd).toPromise();\r\n }\r\n\r\n // tryRevoke(cmd: PrintIntLicenseCmd) {\r\n // return this.api.create(EndPoint.INT_lICENSE_REVOKE_TRY, cmd).toPromise();\r\n // }\r\n}\r\n\r\n","import { Component, OnInit, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { TripTikDetailsDto } from '../../models/trip-tik';\r\n\r\n@Component({\r\n selector: 'mac-receipt-print',\r\n templateUrl: './receipt-print.component.html',\r\n styleUrls: ['./receipt-print.component.scss']\r\n})\r\nexport class ReceiptPrintComponent implements OnInit {\r\n dto: TripTikDetailsDto;\r\n issueDate: Date;\r\n\r\n constructor(private elRef: ElementRef, public translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n async print(dto: TripTikDetailsDto) {\r\n this.dto = dto;\r\n this.issueDate = this.dto.issued ? this.dto.issued : new Date();\r\n\r\n setTimeout(() => {\r\n const printHtmlContent = this.elRef.nativeElement.innerHTML;\r\n Utils.printHtml(printHtmlContent);\r\n }, 500);\r\n }\r\n}\r\n","import { Component, OnInit, ElementRef } from '@angular/core';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { TripTikDetailsDto } from '../../models/trip-tik';\r\nimport { StaticConfig } from 'src/app/features/lookups/services/config';\r\nimport { ConfigObject } from 'src/app/core/models/enums/config-object';\r\nimport * as moment from 'moment';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { StringJoinPipe } from 'src/app/shared/pipes/string-join.pipe';\r\n\r\n@Component({\r\n selector: 'mac-trip-tik-print',\r\n templateUrl: './trip-tik-print.component.html',\r\n styleUrls: ['./trip-tik-print.component.scss']\r\n})\r\nexport class TripTikPrintComponent {\r\n\r\n dto: TripTikDetailsDto;\r\n qRCodeUrl: string;\r\n printObject: PrintObject;\r\n empty: string;\r\n drivers: string[];\r\n vOptions: LookupDto[];\r\n vUpholsteryType: string[];\r\n cOwnerInfo: string[];\r\n\r\n _colors: string[] = [];\r\n _makeModel: string[] = [];\r\n _options: string[] = [];\r\n\r\n get Language() { return Language; };\r\n get PrintObject() { return PrintObject; };\r\n get joinByDash() { return Utils.joinByDash; };\r\n\r\n constructor(private elRef: ElementRef, private stringJoin: StringJoinPipe) {\r\n }\r\n\r\n async print(dto: TripTikDetailsDto, printObject: PrintObject) {\r\n this.dto = dto;\r\n this.printObject = printObject;\r\n this.empty = '';// StaticConfig.getConfigKeyValuePairs(ConfigObject.TripTikPrintEmptyValue)[0].value.toString();\r\n\r\n //console.log(dto.documentTemplateVersion);\r\n this.vOptions = [];\r\n if (this.dto.vehicle.options)\r\n this.dto.vehicle.options.forEach(opt => {\r\n //this.vOptions.push(StaticConfig.getConfigValue(ConfigObject.VehicleOptions, opt).toString())\r\n this.vOptions.push({ id: opt, titles: <[]>StaticConfig.getConfigValue(ConfigObject.VehicleOptions, opt/*, this.lang*/) });\r\n });\r\n\r\n\r\n this._colors = this.dto.vehicle.colors ? this.dto.vehicle.colors.map(d => this.stringJoin.transform(d.titles)) : [];\r\n this._options = this.vOptions ? this.vOptions.map(d => this.stringJoin.transform(d.titles)) : [];\r\n\r\n\r\n if (this.dto.vehicle.model) {\r\n this._makeModel = [];\r\n this._makeModel.push(this.stringJoin.transform([this.dto.vehicle.model.titles[0], this.dto.vehicle.make.titles[0]]));\r\n this._makeModel.push(this.stringJoin.transform([this.dto.vehicle.model.titles[1], this.dto.vehicle.make.titles[1]]));\r\n\r\n // //console.log(this._makeModel);\r\n }\r\n\r\n this.drivers = this.dto.customer.drivers.map(d => d.name);\r\n this.cOwnerInfo = [dto.customer.owner.name, dto.customer.owner.address.item1, dto.customer.owner.address.item2]\r\n .filter(d => d);\r\n\r\n if (this.dto.vehicle.upholsteryType)\r\n this.vUpholsteryType = <[]>StaticConfig.getConfigValue(ConfigObject.VehicleUpholsteryTypes, this.dto.vehicle.upholsteryType);\r\n\r\n\r\n\r\n this.dto.issued = this.dto.issued ? this.dto.issued : new Date();\r\n this.dto.expiryDate = moment(this.dto.issued).add(1, 'year').subtract(1, 'day').toDate();\r\n this.qRCodeUrl = Utils.generateQrCodeUrl(this.dto.hashedSerial); //todo: fill db with hashs\r\n\r\n setTimeout(() => {\r\n const printHtmlContent = this.elRef.nativeElement.innerHTML;\r\n Utils.printHtml(printHtmlContent);\r\n }, 500);\r\n }\r\n}\r\n\r\n// export function joinByDash(arr: string[]) {\r\n// return [...arr].reverse().join(' - ');\r\n// }\r\n\r\n// interface String {\r\n// // toAddPrefix(prefix: string): string;\r\n// joinByDash(): String;\r\n// }\r\n// interface Array {\r\n// joinByDash(): Array;\r\n// }\r\n\r\n\r\n\r\n\r\n// Array.prototype.joinByDash = function () {\r\n// const _self = this;\r\n// return [..._self].reverse().join(' - ');\r\n// };\r\n\r\n\r\n// const joinByDash = function (arr: string[]) {\r\n// return [...arr].reverse().join(' - ');\r\n// }","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { FormGroup, FormBuilder, Validators, FormArray, FormControl, AbstractControl } from '@angular/forms';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { StocksService } from 'src/app/features/stock/services/stocks.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport * as moment from 'moment';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n// import { isArray } from 'util';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport * as _ from 'lodash';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { CurrenciesService } from 'src/app/features/lookups/services/currencies';\r\nimport { VehicleColorsService } from 'src/app/features/lookups/services/vehicle-colors';\r\nimport { VehicleModelsService } from 'src/app/features/lookups/services/vehicle-models';\r\nimport { VehicleMakesService } from 'src/app/features/lookups/services/vehicle-makes';\r\nimport { VehicleTypesService } from 'src/app/features/lookups/services/vehicle-types';\r\nimport { CurrencyDto } from 'src/app/features/lookups/models/currency';\r\nimport { VehicleModelDto } from 'src/app/features/lookups/models/vehicle-model';\r\nimport { ConfigObject } from 'src/app/core/models/enums/config-object';\r\nimport { TripTiksService } from '../../services/trip-tiks.service';\r\nimport { PostTripTikCmd } from '../../models/create.cmd';\r\nimport { StaticConfig } from 'src/app/features/lookups/services/config';\r\nimport { ConigKeyValuePair } from 'src/app/features/lookups/models/config';\r\nimport { TripTikDetailsDto } from '../../models/trip-tik';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { threadId } from 'worker_threads';\r\nimport { numbersOnlyValidator, nonArabicCharactersValidator, passportIdOrIdentityIdValidator, nonEnglishCharactersValidator, addressValidator, phoneNumberValidator, vehicleSeatsCountRangeValidator, vehicleManufactureYearRangeValidator, vehicleWeightInKGRangeValidator, vehicleCylindersCountRangeValidator, vehicleHorsePowerRangeValidator, vehicleValueRangeValidator, comparePasswords, _passportIdOrIdentityIdValidator } from 'src/app/shared/services/custom-validators';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\n\r\n@Component({\r\n selector: 'mac-manage-trip-tik',\r\n templateUrl: './manage-trip-tik.component.html',\r\n styleUrls: ['./manage-trip-tik.component.scss'],\r\n providers: [\r\n CountriesService,\r\n StocksService,\r\n TripTiksService,\r\n FileLoaderService,\r\n StockTypesService,\r\n CurrenciesService,\r\n VehicleColorsService,\r\n VehicleMakesService,\r\n VehicleModelsService,\r\n VehicleTypesService\r\n ]\r\n})\r\nexport class ManageTripTikComponent implements OnInit {\r\n lang: Language;\r\n countries: CountryDto[] = [];\r\n vehicleRegistrationCountries: CountryDto[] = [];\r\n stockTypes: StockTypeDto[] = [];\r\n currencies: CurrencyDto[] = [];\r\n vehicleColors: LookupDto[] = [];\r\n vehicleModels: VehicleModelDto[] = [];\r\n vehicleMakes: LookupDto[] = [];\r\n vehicleTypes: LookupDto[] = [];\r\n vehicleUpholsteryTypes: ConigKeyValuePair[] = [];\r\n vehicleSpareTiresCountOptions: number[] = [];\r\n vehicleCylindersCountRange: number[] = [];\r\n vehicleManufactureYearRange: number[] = [];\r\n vehicleSeatsCountRange: number[] = [];\r\n vehicleOptions: ConigKeyValuePair[] = [];\r\n form: FormGroup;\r\n availableSerials: number[];\r\n updateMode: boolean;\r\n //_loadingGif: string = 'assets/images/Ring-Preloader.gif';\r\n dateFormat = 'L';\r\n dto: TripTikDetailsDto = new TripTikDetailsDto();\r\n mode: 'ADD' | 'UPDATE' | 'CLONE';\r\n objectId: string;\r\n key: string;\r\n\r\n @ViewChild(MatStepper, { static: true }) stepper: MatStepper;\r\n\r\n get moment() { return moment };\r\n get Object() { return Object };\r\n get ConfigObject() { return ConfigObject; };\r\n\r\n get steps() { return this.form.get('steps') as FormArray };\r\n get step1() { return this.steps.get([0]) };\r\n get step2() { return this.steps.get([1]) };\r\n get step3() { return this.steps.get([2]) };\r\n\r\n //doc - global\r\n get serial() { return this.form.get('serial') };\r\n get stockType() { return this.form.get('stockTypeId') };\r\n //get value() { return this.form.get('value') };\r\n //get currency() { return this.form.get('currencyId') };\r\n\r\n //cust - step1\r\n get cName() { return this.step1.get('name') };\r\n get cResidenceCountry() { return this.step1.get('residenceCountryId') };\r\n get cNationality() { return this.step1.get('nationalityId') };\r\n get cIdentityID() { return this.step1.get('identityID') };\r\n get cPassportID() { return this.step1.get('passportID') };\r\n get cLocalAddress() { return this.step1.get('localAddress') };\r\n get cLocalPhoneNumber() { return this.step1.get('localPhoneNumber') };\r\n get cIntAddress() { return this.step1.get('intAddress') };\r\n get cIntPhoneNumber() { return this.step1.get('intPhoneNumber') };\r\n get drivers() { return (this.step1 as FormGroup).get('drivers') as FormArray };\r\n\r\n //vehc - step2\r\n get vPlateID() { return this.step2.get('plateID') };\r\n get vRegistrationCountry() { return this.step2.get('registrationCountryId') };\r\n get vMake() { return this.step2.get('makeId') };\r\n get vModel() { return this.step2.get('modelId') };\r\n get vType() { return this.step2.get('typeId') };\r\n get vSeatsCount() { return this.step2.get('seatsCount') };\r\n get vManufactureYear() { return this.step2.get('manufactureYear') };\r\n get vWeightInKG() { return this.step2.get('weightInKG') };\r\n get vCylindersCount() { return this.step2.get('cylindersCount') };\r\n get vHorsePower() { return this.step2.get('horsePower') };\r\n get vColors() { return this.step2.get('colors') };\r\n get vUpholsteryType() { return this.step2.get('upholsteryType') };\r\n get vEngineID() { return this.step2.get('engineID') };\r\n get vChassisID() { return this.step2.get('chassisID') };\r\n get vOptions() { return this.step2.get('options') as FormArray };\r\n get vSpareTiresCount() { return this.step2.get('spareTiresCount') };\r\n get vEquipments() { return this.step2.get('equipments') };\r\n get vExtras() { return this.step2.get('extras') };\r\n get vValue() { return this.step2.get('value') };\r\n get vCurrency() { return this.step2.get('currencyId') };\r\n\r\n //att - step3\r\n get attachments() { return this.step3.get('attachments') as FormArray };\r\n\r\n constructor(private loader: LoadingService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private stocksService: StocksService,\r\n public translate: TranslateService,\r\n private tripTiksService: TripTiksService,\r\n private stockTypesService: StockTypesService,\r\n private currenciesService: CurrenciesService,\r\n private vehicleColorsService: VehicleColorsService,\r\n private vehicleMakesService: VehicleMakesService,\r\n private vehicleModelsService: VehicleModelsService,\r\n private vehicleTypesService: VehicleTypesService,\r\n private route: ActivatedRoute,\r\n public fileLoader: FileLoaderService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private auth: AuthService) { }\r\n\r\n async ngOnInit() {\r\n this.loader.load(LoaderType.Nav);\r\n\r\n moment.locale('en-gb');\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.mode = this.route.snapshot.data.mode;\r\n\r\n this.formInit();\r\n\r\n //disable form initially\r\n this.form.disable();\r\n //this.drivers.controls.forEach(g => {g.disable()});\r\n\r\n\r\n // //console.log(this.form);\r\n // //console.log(this.form.enabled, this.form.disabled);\r\n\r\n this.stockType.enable();\r\n // //console.log(this.form);\r\n // //console.log(this.form.enabled, this.form.disabled);\r\n\r\n // //console.log(this.stockType.value);\r\n\r\n const startYearConfig = StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleManufactureYearRange);\r\n this.vehicleManufactureYearRange = Utils.spreadRange([Number(startYearConfig[0].value), (new Date().getUTCFullYear() + 1)], true);\r\n this.vehicleUpholsteryTypes = StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleUpholsteryTypes, this.lang);\r\n this.vehicleSpareTiresCountOptions = Utils.spreadRange(StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleSpareTiresCountOptions).map(d => Number(d.value)));\r\n this.vehicleCylindersCountRange = Utils.spreadRange(StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleCylindersCountRange).map(d => Number(d.value)));\r\n this.vehicleSeatsCountRange = Utils.spreadRange(StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleSeatsCountRange).map(d => Number(d.value)));\r\n this.vehicleOptions = StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleOptions, this.lang);\r\n\r\n this.vehicleOptions.forEach(_ => this.vOptions.push(new FormControl(true)));\r\n\r\n await Promise.all([\r\n this.stockTypesService.getAllowed()\r\n .then(result => this.stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument)),\r\n this.countriesService.get(this.lang)\r\n .then(result => this.countries = this.vehicleRegistrationCountries = result.list),\r\n this.currenciesService.get(this.lang)\r\n .then(result => {\r\n this.currencies = result.list;\r\n if (this.currencies)\r\n this.vCurrency.setValue(this.currencies[0].id);\r\n }),\r\n this.vehicleColorsService.get(this.lang)\r\n .then(result => this.vehicleColors = result.list),\r\n this.vehicleMakesService.get(this.lang)\r\n .then(result => this.vehicleMakes = result.list),\r\n this.vehicleTypesService.get(this.lang)\r\n .then(result => this.vehicleTypes = result.list)\r\n ]);\r\n\r\n this.stepper._stepHeader.forEach(h => h._getHostElement().addEventListener('click', (ev) => {\r\n this.navigateAttempt();\r\n }));\r\n\r\n this.objectId = this.route.snapshot.paramMap.get('id');\r\n this.key = this.route.snapshot.paramMap.get('key');\r\n\r\n //const _stockTypeId = this.stockTypes[0].id;\r\n\r\n // this.form.patchValue({ stockTypeId: _stockTypeId });\r\n //this.availableSerials = Utils.spreadRanges((await this.stocksService.getAvailableStocks(_stockTypeId)).stockTypesAvailableStocks[0].availableStock);\r\n\r\n\r\n if (this.objectId || this.key) {\r\n this.updateMode = this.mode == 'UPDATE';\r\n\r\n if (this.mode == 'CLONE') {\r\n this.dto = await (await this.tripTiksService.getByHashedSerial(this.key)).item;\r\n } else\r\n this.dto = await (await this.tripTiksService.get(this.objectId)).item;\r\n\r\n //console.log(this.dto);\r\n\r\n if (!this.dto || (this.updateMode && this.dto.issued)) { //will ignore if cloning\r\n this.router.navigate([`/${this.translate.currentLang}/not-found`]);\r\n return;\r\n }\r\n if (this.updateMode) {\r\n this.availableSerials = [this.dto.serial];\r\n this.form.patchValue({ stockTypeId: this.dto.stockType.id });\r\n this.onSelectStockType();\r\n }\r\n //this.availableSerials.unshift(this.dto.serial);\r\n // else {\r\n // if (this.availableSerials.length > 0)\r\n // this.form.patchValue({ serial: this.availableSerials[0] });\r\n // else {\r\n // this.alert.failure(\"TRP_ALERT_NO_STOCK_AVAILABLE\", false);\r\n // // this.form.disable();\r\n // return;\r\n // }\r\n // }\r\n\r\n //if (this.updateMode && this.dto.stockType.id != _stockTypeId) {\r\n\r\n //}\r\n\r\n if (this.dto.customer.drivers)\r\n this.dto.customer.drivers.forEach((driver, i) => {\r\n this.driverFormInit(driver);\r\n });\r\n\r\n this.form.patchValue({\r\n stockTypeId: this.updateMode ? this.dto.stockType.id : null,\r\n serial: this.updateMode ? this.dto.serial : null,// this.availableSerials[0],\r\n //value: this.dto.value,\r\n steps: [\r\n {\r\n name: this.dto.customer.owner.name,\r\n residenceCountryId: this.dto.customer.owner.residenceCountryId,\r\n nationalityId: this.dto.customer.owner.nationalityId ? this.dto.customer.owner.nationalityId : null,\r\n identityID: this.dto.customer.owner.identityID,\r\n passportID: this.dto.customer.owner.passportID,\r\n localAddress: this.dto.customer.owner.address.item1,\r\n intAddress: this.dto.customer.owner.address.item2,\r\n localPhoneNumber: this.dto.customer.owner.phoneNumber.item1,\r\n intPhoneNumber: this.dto.customer.owner.phoneNumber.item2,\r\n drivers: this.dto.customer.drivers\r\n },\r\n {\r\n registrationCountryId: this.dto.vehicle.registrationCountryId,\r\n plateID: this.dto.vehicle.plateID,\r\n makeId: this.dto.vehicle.make ? this.dto.vehicle.make.id : '',\r\n modelId: this.dto.vehicle.model ? this.dto.vehicle.model.id : '',\r\n typeId: this.dto.vehicle.type ? this.dto.vehicle.type.id : '',\r\n seatsCount: this.dto.vehicle.seatsCount,\r\n manufactureYear: this.dto.vehicle.manufactureYear,\r\n weightInKG: this.dto.vehicle.weightInKG,\r\n cylindersCount: this.dto.vehicle.cylindersCount,\r\n horsePower: this.dto.vehicle.horsePower,\r\n colors: this.dto.vehicle.colors ? this.dto.vehicle.colors.map(d => d.id) : '',\r\n upholsteryType: this.dto.vehicle.upholsteryType,\r\n engineID: this.dto.vehicle.engineID,\r\n chassisID: this.dto.vehicle.chassisID,\r\n options: this.dto.vehicle.options,\r\n spareTiresCount: this.dto.vehicle.spareTiresCount,\r\n equipments: this.dto.vehicle.equipments,\r\n extras: this.dto.vehicle.extras,\r\n value: this.dto.vehicle.value,\r\n currencyId: this.dto.vehicle.currency ? this.dto.vehicle.currency.id : ''\r\n },\r\n {\r\n attachments: [\r\n {\r\n identityOrPassport: this.dto.customer.owner.attachments[0],\r\n drivingLicense: this.dto.customer.owner.attachments[1],\r\n vehicleRegistration: this.dto.customer.owner.attachments[2]\r\n }\r\n ]\r\n }\r\n ]\r\n });\r\n\r\n this.attachments.controls.forEach(async (group: FormGroup, i) => {\r\n for (let c in group.controls) {\r\n let path = group.controls[c].value;\r\n if (this.key)\r\n path = `${path}?key=${this.key}`;\r\n //console.log(path);\r\n group.controls[c].setValue(await this.fileLoader.loadAsync(path));\r\n }\r\n });\r\n\r\n } /*else {\r\n if (this.availableSerials.length > 0)\r\n this.form.patchValue({ serial: this.availableSerials[0] });\r\n else {\r\n this.alert.failure(\"TRP_ALERT_NO_STOCK_AVAILABLE\", false);\r\n //this.form.disable();\r\n }\r\n }*/\r\n\r\n if (!this.updateMode) {\r\n this.form.disable();\r\n this.stockType.enable();\r\n }\r\n //this.drivers.controls.forEach(g => {g.disable()});\r\n\r\n\r\n // //console.log(this.form);\r\n // //console.log(this.form.enabled, this.form.disabled);\r\n\r\n\r\n\r\n this.loader.load(LoaderType.Nav, false);\r\n }\r\n\r\n isExpired(expiryDate) {\r\n return moment(expiryDate).isBefore(Date.now());\r\n }\r\n\r\n addDriver() {\r\n if (this.availableSerials && this.availableSerials.length > 0)\r\n this.driverFormInit();\r\n }\r\n\r\n removeDriver(i) {\r\n if (this.availableSerials && this.availableSerials.length > 0) {\r\n this.drivers.removeAt(i);\r\n this.attachments.removeAt(i + 1);\r\n }\r\n }\r\n\r\n fetchModels(makeId) {\r\n this.vModel.reset();\r\n this.vehicleModelsService.get(makeId, this.stockType.value, this.lang)\r\n .then(result => {\r\n this.vehicleModels = result.list;\r\n });\r\n }\r\n\r\n async onSelectStockType() {\r\n //console.log(this.stockType.value);\r\n this.loader.load(LoaderType.Body);\r\n this.availableSerials = Utils.spreadRanges((await this.stocksService.getAvailableStocks(this.stockType.value)).stockTypesAvailableStocks[0].availableStock);\r\n if (this.availableSerials.length > 0 || (this.updateMode && Number(this.stockType.value) == this.dto.stockType.id)) {\r\n if (this.updateMode && Number(this.stockType.value) == this.dto.stockType.id)\r\n this.availableSerials.unshift(this.dto.serial);\r\n this.form.patchValue({ serial: this.availableSerials[0] });\r\n this.form.enable();\r\n this.form.markAsUntouched();\r\n\r\n //if تربتيك يمن لوحات سعودية\r\n if (Number(this.stockType.value) == 3) { //temp //todo: refactor (many-to-many join)\r\n\r\n this.vehicleRegistrationCountries = [...this.countries.filter(x => x.abbreviation == \"SA\")];\r\n this.vRegistrationCountry.setValue(this.vehicleRegistrationCountries[0].id);\r\n\r\n\r\n //this.vRegistrationCountry.disable();\r\n } else {\r\n this.vehicleRegistrationCountries = [...this.countries];\r\n //todo: check value after swapping\r\n if (!this.updateMode)\r\n this.vRegistrationCountry.reset();\r\n }\r\n\r\n } else {\r\n this.alert.failure(\"TRP_ALERT_NO_STOCK_AVAILABLE\", false);\r\n this.availableSerials = [];\r\n this.serial.reset();\r\n \r\n this.form.disable();\r\n\r\n if (this.stockTypes.length > 1)\r\n this.stockType.enable();\r\n\r\n this.stepper.selectedIndex = 0;\r\n }\r\n this.loader.load(LoaderType.Body, false);\r\n }\r\n\r\n navigateAttempt(i: number = null) {\r\n\r\n //console.log('nav', this.stepper.selected);\r\n //if (this.stockType.value) {\r\n // //console.log('test');\r\n const ctrl = (i != null ? this.steps.controls[i] : this.stepper.selected.stepControl) as FormGroup;\r\n //console.warn('attempt', i, ctrl);\r\n // //console.log(ctrl);\r\n // if (!this.stockType.value) {\r\n // ctrl.setErrors({ required: true });\r\n // ctrl.markAsDirty();\r\n // ctrl.markAsTouched();\r\n // }\r\n\r\n if (!ctrl.valid)\r\n Utils.validateAllFormFields(ctrl);\r\n // }\r\n\r\n }\r\n\r\n //attachments\r\n preview($event, control: FormControl | AbstractControl) {\r\n const tgt = $event.target || window.event.srcElement,\r\n files = Array.isArray($event) ? $event : tgt.files;\r\n\r\n if (FileReader && files && files.length) {\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n if (fr.result.toString().length <= 2 * 2 ** 20)\r\n control.setValue(fr.result.toString());\r\n else\r\n alert('file limit is 2 MB.');\r\n };\r\n fr.readAsDataURL(files[0]);\r\n }\r\n else {\r\n //console.error('not supported!');\r\n }\r\n }\r\n\r\n fileDropped(file, control: FormControl | AbstractControl): void {\r\n control.setValue(file.url);\r\n }\r\n\r\n removeImage(control: FormControl | AbstractControl) {\r\n control.reset();\r\n control.markAsTouched();\r\n }\r\n\r\n onSubmit() {\r\n //console.log(this.form.value);\r\n\r\n if (!this.availableSerials || this.availableSerials.length == 0)\r\n return;\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n\r\n\r\n this.attachments.controls.forEach((grp, i) => {\r\n const _attachments = this.attachments.controls[i];\r\n for (let ctrl of Object.keys((grp).controls))\r\n if (this.attachments.controls[i].get(ctrl).value instanceof Object)\r\n this.attachments.controls[i].get(ctrl).setValue(this.attachments.controls[i].get(ctrl).value.changingThisBreaksApplicationSecurity)\r\n });\r\n // //console.log(this.attachments);\r\n\r\n //update checkboxes value\r\n this.vOptions.controls.forEach((ctrl, i) => {\r\n ctrl.setValue(this.vehicleOptions[i].key);\r\n });\r\n\r\n const cmd = new PostTripTikCmd(this.form.value);\r\n //console.log(cmd);\r\n\r\n if (!this.updateMode) {\r\n cmd.id = null;\r\n if (this.auth.currentUser.isInRole(Role.TRIPTIKS_CREATE))\r\n this.tripTiksService.create(cmd)\r\n .then(id => {\r\n if (id) {\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n setTimeout(() => {\r\n this.router.navigate(['/', this.translate.currentLang, 'issuing', 'trip-tiks', 'view', id])\r\n }, 1000);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n else {\r\n cmd.id = this.dto.id;\r\n if (this.auth.currentUser.isInRole(Role.TRIPTIKS_UPDATE))\r\n this.tripTiksService.update(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n\r\n setTimeout(() => {\r\n this.router.navigate(['/', this.translate.currentLang, 'issuing', 'trip-tiks', 'view', cmd.id])\r\n }, 1000);\r\n\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n stockTypeId: ['', [Validators.required]],\r\n serial: ['', [Validators.required]],\r\n steps: this.fb.array([\r\n this.fb.group({\r\n name: ['', [Validators.required, Validators.maxLength(35)]],\r\n residenceCountryId: [null, [Validators.required]],\r\n nationalityId: [null, [Validators.required]],\r\n identityID: ['', [Validators.required, passportIdOrIdentityIdValidator, Validators.minLength(6), Validators.maxLength(15)]],\r\n // _identityID: [''],\r\n passportID: ['', [Validators.required, passportIdOrIdentityIdValidator, Validators.minLength(6), Validators.maxLength(15)]],\r\n // _passportID: [''],\r\n localAddress: ['', [Validators.required, addressValidator]],\r\n localPhoneNumber: ['', [Validators.required, phoneNumberValidator]],\r\n intAddress: ['', [Validators.required, addressValidator]],\r\n intPhoneNumber: ['', [Validators.required, phoneNumberValidator]],\r\n drivers: this.fb.array([])\r\n }),\r\n this.fb.group({\r\n registrationCountryId: [null, [Validators.required]],\r\n plateID: ['', [Validators.required, Validators.maxLength(12)]],\r\n makeId: [null, [Validators.required]],\r\n modelId: [null, [Validators.required]],\r\n typeId: ['', [Validators.required]],\r\n seatsCount: ['', [Validators.required, vehicleSeatsCountRangeValidator]],\r\n manufactureYear: ['', [Validators.required, vehicleManufactureYearRangeValidator]],\r\n weightInKG: ['', [Validators.required, vehicleWeightInKGRangeValidator]],\r\n cylindersCount: ['', [Validators.required, vehicleCylindersCountRangeValidator]],\r\n horsePower: ['', [/*Validators.required, */vehicleHorsePowerRangeValidator]],\r\n //colorId: ['', [Validators.required]],\r\n colors: ['', [Validators.required]],\r\n upholsteryType: ['', [/*Validators.required*/]],\r\n engineID: ['', [nonArabicCharactersValidator]], //todo: regex\r\n chassisID: ['', [Validators.required, nonArabicCharactersValidator]], //todo: regex\r\n options: this.fb.array([]),\r\n spareTiresCount: [0],\r\n equipments: [''],\r\n extras: [''],\r\n value: ['', [Validators.required, vehicleValueRangeValidator]],\r\n currencyId: ['', [Validators.required]]\r\n }),\r\n this.fb.group({\r\n attachments: this.fb.array([\r\n this.fb.group({\r\n identityOrPassport: ['', [Validators.required]],\r\n drivingLicense: ['', [Validators.required]],\r\n vehicleRegistration: ['', [Validators.required]]\r\n })\r\n ])\r\n })\r\n ])\r\n })\r\n }\r\n\r\n private driverFormInit(data?: DriverForm) {\r\n this.drivers.push(this.fb.group({\r\n name: [data ? data.name : '', [Validators.required, Validators.maxLength(35)]],\r\n // _passportIDorIdentityID: this.fb.group({\r\n // ownerID: ['', [Validators.required, Validators.minLength(6)]], //todo: regex for password pattern\r\n // passwordConfirm: ['']\r\n // }, { validator: comparePasswords }),\r\n // passportIDorIdentityID: [data ? data.passportIDorIdentityID : '', [Validators.required, passportIdOrIdentityIdValidator, Validators.minLength(6), Validators.maxLength(15)]],\r\n passportIDorIdentityID: [data ? data.passportIDorIdentityID : '', [Validators.required, passportIdOrIdentityIdValidator, _passportIdOrIdentityIdValidator.bind(this, this.cPassportID, this.cIdentityID), Validators.minLength(6), Validators.maxLength(15)]],\r\n address: [data ? data.address : '', [Validators.required, addressValidator]],\r\n phoneNumber: [data ? data.phoneNumber : '', [Validators.required, phoneNumberValidator]]\r\n }));\r\n this.attachments.push(this.fb.group({\r\n identityOrPassport: [data && data.attachments ? data.attachments[0] : '', [Validators.required]],\r\n authorization: [data && data.attachments ? data.attachments[1] : '', [Validators.required]]\r\n }));\r\n }\r\n}\r\n\r\ninterface DriverForm {\r\n name: string,\r\n passportIDorIdentityID: string,\r\n address: string,\r\n phoneNumber: string,\r\n attachments: string[]\r\n}","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { TripTiksDataSource } from '../../services/trip-tiks.datasource';\r\nimport { TripTiksService } from '../../services/trip-tiks.service';\r\nimport { TripTikDto } from '../../models/trip-tik';\r\nimport { PrintLogDto, PaginationQuery, TryRevokeDocumentCommand } from '../../../_shared/models/issuing.models';\r\nimport { StaticConfig } from 'src/app/features/lookups/services/config';\r\nimport { ConfigObject } from 'src/app/core/models/enums/config-object';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { VehicleTypesService } from 'src/app/features/lookups/services/vehicle-types';\r\nimport { VehicleMakesService } from 'src/app/features/lookups/services/vehicle-makes';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { IssuingService } from '../../../_shared/services/issuing.service';\r\nimport { ThemeService } from 'ng2-charts';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { AccountType } from 'src/app/core/models/enums/account-type';\r\nimport { VehicleModelsService } from 'src/app/features/lookups/services/vehicle-models';\r\n\r\n@Component({\r\n selector: 'mac-trip-tiks',\r\n templateUrl: './trip-tiks.component.html',\r\n styleUrls: ['./trip-tiks.component.scss'],\r\n providers: [\r\n TripTiksService,\r\n IssuingService,\r\n CountriesService,\r\n AccountsService,\r\n StockTypesService,\r\n VehicleMakesService,\r\n VehicleModelsService,\r\n VehicleTypesService\r\n ]\r\n})\r\nexport class TripTiksComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = ['serial', 'cName', 'cPhoneNumber', 'vPlateID', 'stockType', 'accountTitles', 'issueDate'/*, 'printings'*/, 'tools'];\r\n dataSource: TripTiksDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n countries: CountryDto[] = [];\r\n accounts: LookupDto[] = [];\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n vehicleManufactureYearRange: number[] = [];\r\n vehicleMakes: LookupDto[] = [];\r\n vehicleModels: LookupDto[] = [];\r\n vehicleTypes: LookupDto[] = [];\r\n stockTypes: StockTypeDto[] = [];\r\n query: any = null;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n get Role() { return Role; };\r\n get Gender() { return Gender; };\r\n get PrintObject() { return PrintObject; };\r\n get Object() { return Object; };\r\n get fromDate() { return this.searchForm.get('fromDate'); };\r\n get toDate() { return this.searchForm.get('toDate'); };\r\n get Math() { return Math; };\r\n\r\n constructor(private loader: LoadingService,\r\n private tripTiksService: TripTiksService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private accountsService: AccountsService,\r\n private stockTypesService: StockTypesService,\r\n private vehicleMakesService: VehicleMakesService,\r\n private vehicleModelsService: VehicleModelsService,\r\n private vehicleTypesService: VehicleTypesService,\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n async ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n //accounts\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n\r\n if (this.auth.currentUser.isSystemAccount || this.auth.currentUser.accountTypeId == AccountType.ReleaseCenter) {\r\n this.accountsService.getChildrenAccountsLookup(!this.auth.currentUser.isSystemAccount ? this.auth.currentUser.accountId : 0, false)\r\n .then(result => {\r\n this.accounts = result.list;//populateAccountsSelect(result.list);\r\n }).catch(e => this.searchForm.get('accountId').disable());\r\n } else {\r\n this.accounts = [{ id: this.auth.currentUser.accountId, titles: [this.auth.currentUser.accountTitles[this.lang]] }];\r\n this.searchForm.patchValue({ accountId: this.auth.currentUser.accountId });\r\n this.searchForm.get('accountId').disable();\r\n }\r\n\r\n const startYearConfig = StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleManufactureYearRange);\r\n this.vehicleManufactureYearRange = Utils.spreadRange([Number(startYearConfig[0].value), (new Date().getUTCFullYear() + 1)], true);\r\n\r\n //console.warn(this.route.snapshot.queryParams);\r\n this.route.queryParamMap.subscribe(p => {\r\n //console.warn(p);\r\n\r\n if (!p.has('pageIndex')) {\r\n //console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = '';\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageIndex, length: this.paginator.length });\r\n }\r\n });\r\n\r\n //let query = null;\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n }\r\n else if (this.route.snapshot.queryParams.accountId\r\n || this.route.snapshot.queryParams.fromDate\r\n || this.route.snapshot.queryParams.toDate\r\n || this.route.snapshot.queryParams.stockTypeId\r\n || this.route.snapshot.queryParams.cResidenceCountryId\r\n || this.route.snapshot.queryParams.cIdentityOrPassportID\r\n || this.route.snapshot.queryParams.cPhoneNumber\r\n || this.route.snapshot.queryParams.vPlateID\r\n || this.route.snapshot.queryParams.vTypeId\r\n || this.route.snapshot.queryParams.vMakeId\r\n || this.route.snapshot.queryParams.vModelId\r\n || this.route.snapshot.queryParams.vChassisID\r\n || this.route.snapshot.queryParams.vManufactureYear\r\n || this.route.snapshot.queryParams.cName\r\n || this.route.snapshot.queryParams.vRegistrationCountryId\r\n || this.route.snapshot.queryParams.serial\r\n || this.route.snapshot.queryParams.isIssued\r\n || this.route.snapshot.queryParams.isDamaged) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({ accountId: !isNaN(this.route.snapshot.queryParams.accountId) ? parseInt(this.route.snapshot.queryParams.accountId) : null });\r\n this.searchForm.patchValue({ cResidenceCountryId: !isNaN(this.route.snapshot.queryParams.cResidenceCountryId) ? parseInt(this.route.snapshot.queryParams.cResidenceCountryId) : null });\r\n this.searchForm.patchValue({ vMakeId: !isNaN(this.route.snapshot.queryParams.vMakeId) ? parseInt(this.route.snapshot.queryParams.vMakeId) : null });\r\n this.searchForm.patchValue({ vModelId: !isNaN(this.route.snapshot.queryParams.vModelId) ? parseInt(this.route.snapshot.queryParams.vModelId) : null });\r\n // this.searchForm.patchValue({ vRegistrationCountryId: !isNaN(this.route.snapshot.queryParams.vRegistrationCountryId) ? parseInt(this.route.snapshot.queryParams.vRegistrationCountryId) : null });\r\n\r\n //multi-select\r\n let _vRegistrationCountryId;\r\n if (this.route.snapshot.queryParams.vRegistrationCountryId && this.route.snapshot.queryParams.vRegistrationCountryId.indexOf(',') > -1)\r\n _vRegistrationCountryId = this.route.snapshot.queryParams.vRegistrationCountryId.split(',');\r\n else if (this.route.snapshot.queryParams.vRegistrationCountryId)\r\n _vRegistrationCountryId = [this.route.snapshot.queryParams.vRegistrationCountryId];\r\n\r\n if (_vRegistrationCountryId)\r\n this.searchForm.patchValue({ vRegistrationCountryId: _vRegistrationCountryId.map(x => parseInt(x)) });\r\n\r\n this.query = this.searchForm.value;\r\n }\r\n\r\n this.fetchData(this.query);\r\n\r\n await Promise.all([\r\n this.stockTypesService.getAllowed()\r\n .then(result => this.stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument)),\r\n this.countriesService.get(this.lang)\r\n .then(result => this.countries = result.list),\r\n this.vehicleMakesService.get(this.lang)\r\n .then(result => this.vehicleMakes = result.list),\r\n this.onSelectVehicleMake(this.searchForm.get('vMakeId').value),\r\n this.vehicleTypesService.get(this.lang)\r\n .then(result => this.vehicleTypes = result.list)\r\n ]);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction },\r\n this.advancedSearchMode || this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect()\r\n .subscribe(() => {\r\n let pagination: PaginationQuery = { pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction };\r\n let query = this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim();\r\n this.query = query;\r\n\r\n if (typeof query == 'object') {\r\n query.vRegistrationCountryId = query.vRegistrationCountryId ? query.vRegistrationCountryId.toString() : null;\r\n }\r\n\r\n if (this.activeFilters)\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, ...query }, replaceUrl: true });\r\n else\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, query }, replaceUrl: true });\r\n });\r\n }\r\n\r\n fetchData(query) {\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex ? this.route.snapshot.queryParams.pageIndex : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize ? this.route.snapshot.queryParams.pageSize : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort ? this.route.snapshot.queryParams.sort : 'created';\r\n this.sort.direction = this.route.snapshot.queryParams.dir ? this.route.snapshot.queryParams.dir : 'desc';\r\n this.dataSource = new TripTiksDataSource(this.tripTiksService, this.loader);\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, query);\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = '';\r\n }\r\n\r\n filterList(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter(l => l.printObject == printObject)\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter(l => l.printObject == printObject).length;\r\n }\r\n\r\n delete(dto: TripTikDto) {\r\n if (dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.TRIPTIKS_DELETE))\r\n return;\r\n\r\n //confirm if not yet issued\r\n if (!dto.issued) {\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'TRP_TITLE_TRIPTIK',\r\n title: `${dto.serial.toString()}/${dto.cName}`,\r\n note: 'TRP_CONFIRM_DELETE_NOTE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this._delete(dto.id);\r\n });\r\n }\r\n }\r\n\r\n tryRevoke(dto: TripTikDto) {\r\n if (dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.TRIPTIKS_REVOKE_REQUESTS_CREATE))\r\n return;\r\n\r\n let modal;\r\n //try-revoke\r\n //try-revoke confirm if issued && permited to try-revoke\r\n if (!dto.revokeRequestId) {\r\n modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n title: `${dto.stockType.titles[0]} / ${dto.serial.toString()}`,\r\n action: '_ACTION_REQUEST2',\r\n submitText: '_ACTION_REQUEST2',\r\n confirmQuestion: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CONFIRMATION_QUESTION',\r\n note: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_NOTE',\r\n dangerNote: ' ',\r\n inputNote: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST_REASON',\r\n requestType: true,\r\n attachment: '_TITLE_ATTACHMENTS'\r\n }));\r\n } else {\r\n //cancel\r\n modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n title: `${dto.stockType.titles[0]} / ${dto.serial.toString()}`,\r\n action: '_ACTION_REVOKE_REQUEST_CANCEL',\r\n submitText: '_ACTION_REVOKE_REQUEST_CANCEL',\r\n confirmQuestion: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CANCEL_CONFIRMATION_QUESTION',\r\n note: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CANCEL_NOTE',\r\n dangerNote: ' '\r\n }));\r\n }\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n (!dto.revokeRequestId) ?\r\n this._tryRevoke(dto.id, dto.stockType.id, m[1])\r\n : this._cancelTryRevoke(dto.revokeRequestId)\r\n }\r\n });\r\n }\r\n\r\n async onSelectVehicleMake(id?: number) {\r\n // //console.log(id);\r\n this.searchForm.get('vModelId').disable();\r\n const obj: LookupDto = { id: 0, titles: [this.translate.instant(\"_LABEL_ALL\")] };\r\n const arr = id ? await (await this.vehicleModelsService.get(id, null, this.lang)).list\r\n : [];\r\n this.vehicleModels = [obj, ...arr];\r\n this.searchForm.get('vModelId').enable();\r\n if (!this.searchForm.get('vModelId').value)\r\n this.searchForm.get('vModelId').setValue(this.vehicleModels[0].id);\r\n }\r\n\r\n private _tryRevoke(objectId: string, stockTypeId: number, attributes: any/*, reason: string*/) {\r\n const reason = attributes.inputNote,\r\n isDamaged = attributes.isDamaged == \"true\",\r\n attachment = attributes.attachment;\r\n\r\n const cmd: TryRevokeDocumentCommand = { id: objectId, stockTypeId, reason, isDamaged, attachment }\r\n ////console.log(cmd);\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.tryRevokeDocument(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.REQUESTING);\r\n const i = this.dataSource.TripTiksSubject.value.findIndex(i => i.id == objectId);\r\n this.dataSource.TripTiksSubject.value[i].revokeRequestId = result;\r\n this.dataSource.TripTiksSubject.next(this.dataSource.TripTiksSubject.value);\r\n\r\n } else this.alert.failure(DefaultAlertAction.REQUESTING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancelTryRevoke(id: number) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.cancelTryRevokeDocument(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.REVOKE_REQUESTING_CANCEL);\r\n const i = this.dataSource.TripTiksSubject.value.findIndex(i => i.revokeRequestId == id);\r\n this.dataSource.TripTiksSubject.value[i].revokeRequestId = null;\r\n this.dataSource.TripTiksSubject.next(this.dataSource.TripTiksSubject.value);\r\n\r\n } else this.alert.failure(DefaultAlertAction.REVOKE_REQUESTING_CANCEL);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.tripTiksService.delete(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.TripTiksSubject.next(this.dataSource.TripTiksSubject.value.filter(d => d.id != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.tripTiksService[(this.query == null || typeof this.query == 'string') ? 'getAll' : 'search']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.list);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: TripTikDto[]) {\r\n const wscols = [\r\n { width: 12 },\r\n { width: 28 },\r\n { width: 12 },\r\n { width: 18 },\r\n { width: 24 },\r\n { width: 28 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 }\r\n ];\r\n const autofilter = { ref: 'A1:J1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('_LABEL_SERIAL'),\r\n this.translate.instant('_FIELD_NAME'),\r\n this.translate.instant('_FIELD_PHONE_NO'),\r\n this.translate.instant('TRP_FIELD_PLATE_ID'),\r\n this.translate.instant('TRP_FIELD_TRIPTIK_TYPE'),\r\n this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n this.translate.instant('ISS_LABEL_ISSUE_DATE'),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('TRP_LABEL_PRINT_OBJECT_FRONT_COVER') }),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('TRP_LABEL_PRINT_OBJECT_INNER_PAGES') }),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('TRP_LABEL_PRINT_OBJECT_BACK_COVER') })\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n row.serial.toString(),\r\n row.cName ? row.cName : 'N/A',\r\n row.cPhoneNumber ? row.cPhoneNumber : 'N/A',\r\n row.vPlateID ? row.vPlateID : 'N/A',\r\n row.stockType.titles[0],\r\n row.accountTitles[0],\r\n row.issued ? moment(row.issued).format('DD/MM/YYYY') : '',\r\n this.printObjectsCount(row.printLogs, PrintObject.TripTikFrontCover).toString(),\r\n this.printObjectsCount(row.printLogs, PrintObject.TripTikInnerPages).toString(),\r\n this.printObjectsCount(row.printLogs, PrintObject.TripTikBackCover).toString()\r\n ]);\r\n }\r\n ////console.log(rows);\r\n setTimeout(() => {\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Trip-Tiks');\r\n\r\n }, 1000);\r\n\r\n\r\n }\r\n\r\n onSubmit() {\r\n if (this.fromDate.value && typeof this.fromDate.value == 'object')\r\n this.fromDate.setValue(Utils.convertToServerDateTimeString(this.fromDate.value));\r\n\r\n if (this.toDate.value && typeof this.toDate.value == 'object')\r\n this.toDate.setValue(Utils.convertToServerDateTimeString(this.toDate.value));\r\n\r\n //swap dates\r\n if (this.fromDate.value && this.toDate.value && new Date(this.fromDate.value) > new Date(this.toDate.value)) {\r\n let _temp = this.fromDate.value;\r\n this.fromDate.setValue(this.toDate.value);\r\n this.toDate.setValue(_temp);\r\n }\r\n\r\n this.activeFilters = true;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n this.searchForm = this.fb.group({\r\n cName: [''], //regex to match english letters only\r\n cPhoneNumber: [''], //regex to match numbers only\r\n accountId: [null],\r\n serial: [''], //regex to match numbers only\r\n fromDate: [''],\r\n toDate: [''],\r\n stockTypeId: [''],\r\n cResidenceCountryId: [null],\r\n cIdentityOrPassportID: [''],\r\n vPlateID: [''],\r\n vRegistrationCountryId: [null],\r\n vTypeId: [''],\r\n vMakeId: [null],\r\n vModelId: [null],\r\n vChassisID: [''],\r\n vManufactureYear: [''],\r\n isIssued: [''],\r\n isDamaged: ['']\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\nimport { TripTikVm, TripTikDetailsDto } from '../../models/trip-tik';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { TripTiksService } from '../../services/trip-tiks.service';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { UpdateModal } from 'src/app/shared/models/modal';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { TripTikPrintComponent } from '../../components/trip-tik-print/trip-tik-print.component';\r\nimport { ConfigObject } from 'src/app/core/models/enums/config-object';\r\nimport { ReceiptPrintComponent } from '../../components/receipt-print/receipt-print.component';\r\nimport { StaticConfig } from 'src/app/features/lookups/services/config';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { PrintLogDto } from '../../../_shared/models/issuing.models';\r\nimport { StringJoinPipe } from 'src/app/shared/pipes/string-join.pipe';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\n\r\n@Component({\r\n selector: 'mac-view-trip-tik',\r\n templateUrl: './view-trip-tik.component.html',\r\n styleUrls: ['./view-trip-tik.component.scss'],\r\n providers: [TripTiksService, FileLoaderService]\r\n})\r\nexport class ViewTripTikComponent implements OnInit {\r\n cashedVm: TripTikVm;\r\n dto: TripTikDetailsDto = new TripTikDetailsDto();\r\n moment = moment;\r\n lang: Language;\r\n dateFormat = 'L';\r\n qRCodeImg: string = 'assets/images/qr.png';\r\n qRCodeUrl: string = '';\r\n maxPrintLimit: number;\r\n empty: string;\r\n drivers = [];\r\n vUpholsteryType: string[];\r\n vOptions: LookupDto[] = [];\r\n attachments: { title: string, parent: string, src: string }[] = [];\r\n confirmed: boolean;\r\n defaultImage = 'assets/images/default.jpg';\r\n\r\n @ViewChild('printElm') printElm: TripTikPrintComponent;\r\n @ViewChild('receiptPrintElm') receiptPrintElm: ReceiptPrintComponent;\r\n\r\n get PrintObject() { return PrintObject; };\r\n get Role() { return Role; };\r\n get Language() { return Language; };\r\n get ConfigObject() { return ConfigObject; };\r\n get Math() { return Math; };\r\n\r\n constructor(private route: ActivatedRoute,\r\n private tripTiksService: TripTiksService,\r\n private loader: LoadingService,\r\n public translate: TranslateService,\r\n private fileLoader: FileLoaderService,\r\n private confirmService: ConfirmService,\r\n private stringJoin: StringJoinPipe,\r\n public auth: AuthService,\r\n private router: Router) { }\r\n\r\n async ngOnInit() {\r\n moment.locale('en-gb');\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.maxPrintLimit = Number(StaticConfig.getConfigKeyValuePairs(ConfigObject.TripTikMaxPrintLimit)[0].value);\r\n this.empty = '';//StaticConfig.getConfigKeyValuePairs(ConfigObject.TripTikPrintEmptyValue)[0].value.toString();\r\n\r\n const tripTikId = this.route.snapshot.paramMap.get('id');\r\n if (tripTikId) {\r\n this.tripTiksService.get(tripTikId)\r\n .then(async result => {\r\n //console.log(result);\r\n if (result.item) {\r\n this.dto = result.item;\r\n this.drivers = this.dto.customer.drivers.map(d => d.name);\r\n\r\n if (this.dto.vehicle.upholsteryType)\r\n this.vUpholsteryType = <[]>StaticConfig.getConfigValue(ConfigObject.VehicleUpholsteryTypes, this.dto.vehicle.upholsteryType);\r\n\r\n if (this.dto.vehicle.options) {\r\n this.vOptions = [];\r\n this.dto.vehicle.options.forEach(opt => {\r\n this.vOptions.push({ id: opt, titles: <[]>StaticConfig.getConfigValue(ConfigObject.VehicleOptions, opt/*, this.lang*/) });\r\n });\r\n }\r\n\r\n //console.log(this.vUpholsteryType, this.vOptions);\r\n\r\n //console.log(this.dto);\r\n this.fetchAttachments();\r\n\r\n if (this.dto.issued && this.dto.hashedSerial) {\r\n this.qRCodeUrl = Utils.generateQrCodeUrl(this.dto.hashedSerial);\r\n setTimeout(() => {\r\n this.qRCodeImg = document.getElementsByTagName('ngx-kjua')[0]\r\n .getElementsByTagName('div')[0]\r\n //.getElementsByTagName('img')[0].src;\r\n .getElementsByTagName('canvas')[0].toDataURL(\"image/png\");\r\n\r\n //console.log(this.qRCodeImg);\r\n });\r\n\r\n //console.log(this.qRCodeUrl);\r\n }\r\n\r\n if (this.isPrintable())\r\n this.displayPreview();\r\n } else this.router.navigate([`/${this.translate.currentLang}/not-found`]);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n }\r\n\r\n isPrintable() {\r\n return !this.dto.isMigratedData && (!this.dto.issued\r\n || this.printObjectsCount(this.dto.printLogs, PrintObject.TripTikFrontCover) < this.maxPrintLimit\r\n || this.printObjectsCount(this.dto.printLogs, PrintObject.TripTikBackCover) < this.maxPrintLimit\r\n || this.printObjectsCount(this.dto.printLogs, PrintObject.TripTikInnerPages) < this.maxPrintLimit)\r\n }\r\n\r\n isExpired(expiryDate) {\r\n return moment(expiryDate).isBefore(Date.now());\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n if (list)\r\n return list.filter(l => l.printObject == printObject).length;\r\n }\r\n\r\n print(printObject: PrintObject) {\r\n if (printObject == PrintObject.TriptikReceipt) {\r\n\r\n this.receiptPrintElm.print(this.dto);\r\n return;\r\n }\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.TRIPTIKS_UPDATE)\r\n || this.dto.serial < 0)\r\n return;\r\n\r\n //confirm if not yet issued\r\n if (!this.dto.issued) {\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: this.dto.serial.toString(),\r\n type: 'TRP_TITLE_TRIPTIK',\r\n action: '_ACTION_ISSUE',\r\n confirmQuestion: 'TRP_CONFIRM_ISSUE_CONFIRMATION_QUESTION',\r\n note: 'TRP_CONFIRM_ISSUE_NOTE',\r\n dangerNote: 'TRP_CONFIRM_ISSUE_DANGER_NOTE',\r\n submitText: '_ACTION_ISSUE'\r\n }));\r\n\r\n modal.then(async m => {\r\n //console.log(m);\r\n if (m.indexOf('CONFIRMED') > -1)\r\n await this._print(printObject);\r\n });\r\n } else this._print(printObject);\r\n }\r\n\r\n private fetchAttachments() {\r\n this.dto.customer.owner.attachments.forEach((att, i) => {\r\n const _title = i == 0 ? 'TRP_FIELD_PASSPORT_COPY'\r\n : i == 1 ? 'TRP_FIELD_IDENTITY_COPY' : 'TRP_FIELD_VREGISTRATION_COPY';\r\n this.attachments.push({ title: _title, parent: 'TRP_LABEL_OWNER', src: att });\r\n });\r\n\r\n this.dto.customer.drivers.forEach((driver, i) => {\r\n driver.attachments.forEach((att, _i) => {\r\n const _title = _i == 0 ? 'TRP_FIELD_PASSPORT_COPY' : 'TRP_FIELD_DRIVING_LICENSE_COPY';\r\n this.attachments.push({ title: _title, parent: `${this.translate.instant('TRP_LABEL_ADDITIONAL_DRIVER')} ${i + 1}`, src: att });\r\n });\r\n });\r\n\r\n this.attachments.forEach(async att => {\r\n const file = await this.fileLoader.loadAsync(att.src);\r\n att.src = file ? file as string : this.defaultImage;\r\n });\r\n }\r\n\r\n\r\n async _print(printObject: PrintObject) {\r\n if (this.printObjectsCount(this.dto.printLogs, printObject) < this.maxPrintLimit) {\r\n this.loader.load(LoaderType.Body);\r\n //request to server print\r\n this.tripTiksService.print({ id: this.dto.id, printObject })\r\n .then(async (hash) => {\r\n ////console.log(hash);\r\n\r\n //just issued\r\n if (hash && hash.value) {\r\n this.dto.hashedSerial = hash.value\r\n //this.qRCodeUrl = `${this._baseUrl}/verify-license/${this.dto.hashedSerial}`;\r\n this.qRCodeUrl = Utils.generateQrCodeUrl(this.dto.hashedSerial);\r\n setTimeout(() => {\r\n this.qRCodeImg = document.getElementsByTagName('ngx-kjua')[0]\r\n .getElementsByTagName('div')[0]\r\n //.getElementsByTagName('img')[0].src;\r\n .getElementsByTagName('canvas')[0].toDataURL(\"image/png\");\r\n });\r\n\r\n this.dto.issued = new Date();\r\n this.dto.expiryDate = moment(this.dto.issued).add(1, 'year').subtract(1, 'day').toDate();\r\n }\r\n\r\n //increment print objects\r\n this.dto.printLogs.push({ created: new Date(), printObject: printObject });\r\n\r\n //update ui\r\n await this.displayPreview();\r\n\r\n //open printing object\r\n await this.printElm.print(this.dto, printObject);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n }\r\n\r\n //get stringJoin.transform() { return Utils.stringJoin.transform; };\r\n\r\n private async displayPreview() {\r\n const _expiryDate = this.dto.issued ? moment(this.dto.expiryDate).format(this.dateFormat)\r\n : moment(new Date()).add(1, 'year').subtract(1, 'day').format(this.dateFormat);\r\n\r\n const cOwnerInfo = [this.dto.customer.owner.name, this.dto.customer.owner.address.item1, this.dto.customer.owner.address.item2]\r\n .filter(d => d);\r\n\r\n //front-cover\r\n let fcCanvas = document.getElementById('trip-fc-canvas') as HTMLCanvasElement;\r\n if (fcCanvas.getContext) {\r\n let ctx = fcCanvas.getContext('2d');\r\n\r\n const fcImage = new Image();\r\n\r\n fcImage.onload = () => {\r\n ctx.textAlign = 'end';\r\n ctx.font = `bold ${Utils.convertToPixel(4)}px arial`;\r\n ctx.drawImage(fcImage, 0, 0);\r\n\r\n let x = Utils.convertToPixel(100), y = Utils.convertToPixel(26);\r\n const rh = Utils.convertToPixel(6);\r\n\r\n ctx.fillText(this.dto.customer.owner.name ? this.dto.customer.owner.name : 'N/A', x, y);\r\n // ctx.fillText(this.dto.customer.owner.address.item1 ? this.dto.customer.owner.address.item1 : 'N/A', x, y += rh);\r\n // ctx.fillText(this.dto.customer.owner.address.item2 ? this.dto.customer.owner.address.item2 : 'N/A', x, y += rh);\r\n if (this.dto.customer.drivers && this.dto.customer.drivers.length > 0) {\r\n this.dto.customer.drivers.forEach(driver => {\r\n ctx.fillText(`سائق إضافي: ${driver.name}`, x, y += rh);\r\n });\r\n }\r\n\r\n\r\n //todo: check second line margin, even with align-right\r\n\r\n ctx.textAlign = 'center';\r\n ctx.fillText('12 Months', Utils.convertToPixel(160), Utils.convertToPixel(18));\r\n ctx.fillText(_expiryDate, Utils.convertToPixel(160), Utils.convertToPixel(26));\r\n ctx.fillText(this.dto.vehicle.registrationCountryTitles ? this.stringJoin.transform(this.dto.vehicle.registrationCountryTitles) : 'N/A', Utils.convertToPixel(70), Utils.convertToPixel(112));\r\n ctx.fillText(this.dto.vehicle.plateID ? this.dto.vehicle.plateID : 'N/A', Utils.convertToPixel(170), Utils.convertToPixel(112));\r\n\r\n const qr = new Image();\r\n qr.onload = () => {\r\n ctx.drawImage(qr, Utils.convertToPixel(8), Utils.convertToPixel(66), 88, 88);\r\n }\r\n qr.src = this.dto.issued ? this.qRCodeImg : 'assets/images/qr.png';\r\n\r\n const ptt = new Image();\r\n ptt.onload = () => {\r\n ctx.save();\r\n ctx.globalAlpha = 0.15;\r\n const ptrn = ctx.createPattern(ptt, 'repeat');\r\n ctx.fillStyle = ptrn;\r\n ctx.fillRect(0, 0, Utils.convertToPixel(210), Utils.convertToPixel(297));\r\n ctx.restore();\r\n\r\n //draw thumb\r\n let fcCanvasThumb = document.getElementById('trip-fc-canvas-thumb') as HTMLCanvasElement;\r\n if (fcCanvasThumb.getContext) {\r\n let bcThumbCtx = fcCanvasThumb.getContext('2d');\r\n bcThumbCtx.drawImage(ctx.canvas, 0, 0);\r\n }\r\n }\r\n ptt.src = 'assets/images/sample-stamp.png';\r\n }\r\n fcImage.src = 'assets/images/trip-front-cover-preview.jpg';\r\n }\r\n\r\n //inner-page\r\n let ipCanvas = document.getElementById('trip-ip-canvas') as HTMLCanvasElement;\r\n if (ipCanvas.getContext) {\r\n let ctx = ipCanvas.getContext('2d');\r\n\r\n const ipImage = new Image();\r\n\r\n ipImage.onload = () => {\r\n ctx.textAlign = 'center';\r\n ctx.font = `bold ${Utils.convertToPixel(4)}px arial`;\r\n ctx.drawImage(ipImage, 0, 0);\r\n\r\n let x = Utils.convertToPixel(65), y = Utils.convertToPixel(26);\r\n const rh = Utils.convertToPixel(5.5);\r\n\r\n ctx.fillText(this.dto.vehicle.registrationCountryTitles ? this.stringJoin.transform(this.dto.vehicle.registrationCountryTitles) : 'N/A', x, y);\r\n\r\n\r\n // ctx.fillText(this.dto.vehicle.make ? this.stringJoin.transform(this.dto.vehicle.make.titles) : 'N/A', x, y += rh);\r\n\r\n\r\n if (this.dto.vehicle.model) {\r\n let makeModel: string[][] = [];\r\n makeModel[0] = [this.dto.vehicle.model.titles[0], this.dto.vehicle.make.titles[0]];\r\n makeModel[1] = [this.dto.vehicle.model.titles[1], this.dto.vehicle.make.titles[1]];\r\n\r\n ctx.fillText(this.dto.vehicle.make ? this.stringJoin.transform(makeModel.map(d => this.stringJoin.transform(d)), '/') : 'N/A', x, y += rh);\r\n }\r\n else\r\n ctx.fillText(this.dto.vehicle.make ? this.stringJoin.transform(this.dto.vehicle.make.titles) : 'N/A', x, y += rh);\r\n\r\n\r\n\r\n ctx.fillText(this.dto.vehicle.manufactureYear ? this.dto.vehicle.manufactureYear.toString() : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.chassisID ? this.dto.vehicle.chassisID : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.engineID ? this.dto.vehicle.engineID : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.cylindersCount ? this.dto.vehicle.cylindersCount.toString() : 'N/A', x, y += rh);\r\n //ctx.fillText(this.dto.vehicle.color ? this.stringJoin.transform(this.dto.vehicle.color.titles) : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.colors ? this.stringJoin.transform(this.dto.vehicle.colors.map(d => this.stringJoin.transform(d.titles)), '+') : 'N/A', x, y += rh);\r\n\r\n ctx.fillText(this.dto.vehicle.type ? this.stringJoin.transform(this.dto.vehicle.type.titles) : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.horsePower ? this.dto.vehicle.horsePower.toString() : this.empty, x, y += rh);\r\n\r\n x = Utils.convertToPixel(160);\r\n y = Utils.convertToPixel(26);\r\n\r\n ctx.fillText(this.dto.vehicle.plateID ? this.dto.vehicle.plateID : 'N/A', x, y);\r\n ctx.fillText(this.dto.vehicle.seatsCount ? this.dto.vehicle.seatsCount.toString() : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.spareTiresCount.toString(), x, y += rh);\r\n //ctx.fillText(this.vOptions ? this.vOptions.join(' + ') : this.empty, x, y += rh);\r\n ctx.fillText(this.vOptions ? this.stringJoin.transform(this.vOptions.map(d => this.stringJoin.transform(d.titles)), '+') : this.empty, x, y += rh);\r\n\r\n ctx.fillText(this.vUpholsteryType ? this.stringJoin.transform(this.vUpholsteryType) : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.equipments ? this.dto.vehicle.equipments : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.extras ? this.dto.vehicle.extras : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.weightInKG ? this.dto.vehicle.weightInKG.toString() : 'N/A', x, y += rh);\r\n ctx.fillText(`${this.dto.vehicle.currency ? this.dto.vehicle.currency.abbreviation : ''} ${this.dto.vehicle.value ? this.dto.vehicle.value.toString() : 'N/A'}`, x, y += rh); //todo: include currency\r\n\r\n ctx.fillText(cOwnerInfo.join(', '), Utils.convertToPixel(65), Utils.convertToPixel(15));\r\n ctx.fillText(this.drivers.join(', '), Utils.convertToPixel(160), Utils.convertToPixel(15));\r\n\r\n ctx.textAlign = 'left';\r\n ctx.font = `bold ${Utils.convertToPixel(6)}px consolas`;\r\n ctx.fillText(Math.abs(this.dto.serial).toString(), Utils.convertToPixel(138), Utils.convertToPixel(81.5));\r\n ctx.font = `bold ${Utils.convertToPixel(3)}px arial`;\r\n ctx.fillText(_expiryDate, Utils.convertToPixel(180), Utils.convertToPixel(83));\r\n\r\n const ptt = new Image();\r\n ptt.onload = () => {\r\n ctx.save();\r\n ctx.globalAlpha = 0.15;\r\n const ptrn = ctx.createPattern(ptt, 'repeat');\r\n ctx.fillStyle = ptrn;\r\n ctx.fillRect(0, 0, Utils.convertToPixel(210), Utils.convertToPixel(297));\r\n ctx.restore();\r\n\r\n //draw thumb\r\n let bcCanvasThumb = document.getElementById('trip-ip-canvas-thumb') as HTMLCanvasElement;\r\n if (bcCanvasThumb.getContext) {\r\n let bcThumbCtx = bcCanvasThumb.getContext('2d');\r\n bcThumbCtx.drawImage(ctx.canvas, 0, 0);\r\n }\r\n //thumbCtx.scale(0.2, 0.2);\r\n }\r\n ptt.src = 'assets/images/sample-stamp.png';\r\n }\r\n ipImage.src = \"assets/images/trip-inner-page-preview.jpg\";\r\n }\r\n\r\n //back-cover\r\n let bcCanvas = document.getElementById('trip-bc-canvas') as HTMLCanvasElement;\r\n if (bcCanvas.getContext) {\r\n let ctx = bcCanvas.getContext('2d');\r\n\r\n const bcImage = new Image();\r\n\r\n bcImage.onload = () => {\r\n ctx.textAlign = 'center';\r\n ctx.font = `bold ${Utils.convertToPixel(4)}px arial`;\r\n ctx.drawImage(bcImage, 0, 0);\r\n\r\n let x = Utils.convertToPixel(55), y = Utils.convertToPixel(37);\r\n const rh = Utils.convertToPixel(6.85);\r\n\r\n\r\n\r\n ctx.fillText(this.dto.vehicle.registrationCountryTitles ? this.stringJoin.transform(this.dto.vehicle.registrationCountryTitles) : 'N/A', x, y);\r\n\r\n if (this.dto.vehicle.model) {\r\n let makeModel: string[][] = [];\r\n makeModel[0] = [this.dto.vehicle.model.titles[0], this.dto.vehicle.make.titles[0]];\r\n makeModel[1] = [this.dto.vehicle.model.titles[1], this.dto.vehicle.make.titles[1]];\r\n\r\n ctx.fillText(this.dto.vehicle.make ? this.stringJoin.transform(makeModel.map(d => this.stringJoin.transform(d)), '/') : 'N/A', x, y += rh);\r\n }\r\n else\r\n ctx.fillText(this.dto.vehicle.make ? this.stringJoin.transform(this.dto.vehicle.make.titles) : 'N/A', x, y += rh);\r\n\r\n\r\n\r\n ctx.fillText(this.dto.vehicle.manufactureYear ? this.dto.vehicle.manufactureYear.toString() : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.chassisID ? this.dto.vehicle.chassisID : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.engineID ? this.dto.vehicle.engineID : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.cylindersCount ? this.dto.vehicle.cylindersCount.toString() : 'N/A', x, y += rh);\r\n // ctx.fillText(this.dto.vehicle.color ? this.stringJoin.transform(this.dto.vehicle.color.titles) : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.colors ? this.stringJoin.transform(this.dto.vehicle.colors.map(d => this.stringJoin.transform(d.titles)), '+') : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.type ? this.stringJoin.transform(this.dto.vehicle.type.titles) : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.horsePower ? this.dto.vehicle.horsePower.toString() : this.empty, x, y += rh);\r\n\r\n x = Utils.convertToPixel(160);\r\n y = Utils.convertToPixel(37);\r\n\r\n ctx.fillText(this.dto.vehicle.plateID ? this.dto.vehicle.plateID : 'N/A', x, y);\r\n ctx.fillText(this.dto.vehicle.seatsCount ? this.dto.vehicle.seatsCount.toString() : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.spareTiresCount.toString(), x, y += rh);\r\n //ctx.fillText(this.vOptions ? this.vOptions.join(' + ') : this.empty, x, y += rh);\r\n //ctx.fillText(this.vOptions ? this.stringJoin.transform(this.vOptions.map(d => d.titles.toString()), '+') : this.empty, x, y += rh);\r\n ctx.fillText(this.vOptions ? this.stringJoin.transform(this.vOptions.map(d => this.stringJoin.transform(d.titles)), '+') : this.empty, x, y += rh);\r\n ctx.fillText(this.vUpholsteryType ? this.stringJoin.transform(this.vUpholsteryType) : this.empty, x, y += rh);\r\n\r\n ctx.fillText(this.dto.vehicle.equipments ? this.dto.vehicle.equipments : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.extras ? this.dto.vehicle.extras : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.weightInKG ? this.dto.vehicle.weightInKG.toString() : 'N/A', x, y += rh);\r\n ctx.fillText(`${this.dto.vehicle.currency ? this.dto.vehicle.currency.abbreviation : ''} ${this.dto.vehicle.value ? this.dto.vehicle.value.toString() : 'N/A'}`, x, y += rh);\r\n\r\n const ptt = new Image();\r\n ptt.onload = () => {\r\n ctx.save();\r\n ctx.globalAlpha = 0.15;\r\n const ptrn = ctx.createPattern(ptt, 'repeat');\r\n ctx.fillStyle = ptrn;\r\n ctx.fillRect(0, 0, Utils.convertToPixel(210), Utils.convertToPixel(297));\r\n ctx.restore();\r\n\r\n //draw thumb\r\n let bcCanvasThumb = document.getElementById('trip-bc-canvas-thumb') as HTMLCanvasElement;\r\n if (bcCanvasThumb.getContext) {\r\n let bcThumbCtx = bcCanvasThumb.getContext('2d');\r\n bcThumbCtx.drawImage(ctx.canvas, 0, 0);\r\n }\r\n }\r\n ptt.src = 'assets/images/sample-stamp.png';\r\n }\r\n bcImage.src = \"assets/images/trip-back-cover-preview.jpg\";\r\n }\r\n }\r\n}\r\n","\r\nexport class PostTripTikCmd {\r\n constructor(form) {\r\n this.serial = form.serial;\r\n this.stockTypeId = form.stockTypeId;\r\n //this.value = form.value;\r\n //this.currencyId = form.currencyId;\r\n\r\n this.cName = form.steps[0].name;\r\n this.cResidenceCountryId = form.steps[0].residenceCountryId;\r\n this.cNationalityId = form.steps[0].nationalityId;\r\n this.cLocalAddress = form.steps[0].localAddress;\r\n this.cIdentityID = form.steps[0].identityID;\r\n this.cPassportID = form.steps[0].passportID;\r\n this.cLocalPhoneNumber = form.steps[0].localPhoneNumber;\r\n this.cIntPhoneNumber = form.steps[0].intPhoneNumber;\r\n this.cIntAddress = form.steps[0].intAddress;\r\n //drivers?\r\n this.cDrivers = form.steps[0].drivers;\r\n this.cDrivers.forEach((d, i) => {\r\n d.attachments =\r\n Object.keys(form.steps[2].attachments[i + 1])\r\n .map(function (key) {\r\n return form.steps[2].attachments[i + 1][key];\r\n })\r\n });\r\n\r\n this.cAttachments = Object.keys(form.steps[2].attachments[0])\r\n .map(function (key) {\r\n return form.steps[2].attachments[0][key];\r\n });\r\n\r\n this.vPlateID = form.steps[1].plateID;\r\n this.vRegistrationCountryId = form.steps[1].registrationCountryId;\r\n this.vSeatsCount = form.steps[1].seatsCount;\r\n this.vSpareTiresCount = form.steps[1].spareTiresCount;\r\n\r\n this.vEquipments = form.steps[1].equipments;\r\n this.vValue = form.steps[1].value;\r\n this.vCurrencyId = form.steps[1].currencyId;\r\n\r\n this.vWeightInKG = form.steps[1].weightInKG;\r\n this.vHorsePower = form.steps[1].horsePower;\r\n //this.vColorId = form.steps[1].colorId;\r\n this.vColors = form.steps[1].colors;\r\n this.vCylindersCount = form.steps[1].cylindersCount;\r\n this.vEngineID = form.steps[1].engineID;\r\n this.vChassisID = form.steps[1].chassisID;\r\n this.vManufactureYear = form.steps[1].manufactureYear;\r\n this.vTypeId = form.steps[1].typeId;\r\n this.vMakeId = form.steps[1].makeId;\r\n this.vModelId = form.steps[1].modelId;\r\n this.vExtras = form.steps[1].extras;\r\n this.vUpholsteryType = form.steps[1].upholsteryType;\r\n this.vOptions = form.steps[1].options;\r\n\r\n\r\n //this.vCurrencyId = 1;\r\n }\r\n\r\n id: string;\r\n serial: number;\r\n stockTypeId: number;\r\n //value: number;\r\n //currencyId: number;\r\n\r\n //cust\r\n cName: string;\r\n cResidenceCountryId: number;\r\n cNationalityId: number;\r\n cLocalAddress: string;\r\n cIntAddress: string;\r\n cIdentityID: string;\r\n cPassportID: string;\r\n cLocalPhoneNumber: string;\r\n cIntPhoneNumber: string;\r\n cAttachments: string[];\r\n cDrivers: {\r\n name: string,\r\n passportIDorIdentityID: string,\r\n address: string,\r\n phoneNumber: string,\r\n attachments: string[]\r\n }[];\r\n //vehicle\r\n vPlateID: string;\r\n vRegistrationCountryId: number;\r\n vSeatsCount: number;\r\n vSpareTiresCount: number;\r\n vEquipments: string;\r\n vValue: number;\r\n vCurrencyId: number;\r\n vWeightInKG: number;\r\n vHorsePower?: number;\r\n //vColorId: number;\r\n vColors: number[];\r\n vCylindersCount: number;\r\n vEngineID: string;\r\n vChassisID: string;\r\n vManufactureYear: number;\r\n vTypeId: number;\r\n vMakeId: number;\r\n vModelId: number;\r\n vExtras: string;\r\n\r\n vUpholsteryType?: number;\r\n vOptions: number[];\r\n}\r\n","import { BloodGroup } from 'src/app/core/models/enums/blood-group';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { VehicleModelDto } from 'src/app/features/lookups/models/vehicle-model';\r\nimport { CurrencyDto } from 'src/app/features/lookups/models/currency';\r\nimport { PrintLogDto } from '../../_shared/models/issuing.models';\r\n\r\nexport interface TripTikVm {\r\n item: TripTikDetailsDto\r\n}\r\n\r\nexport interface TripTiksVm {\r\n list: TripTikDto[],\r\n recordsCount: number\r\n}\r\n\r\nexport interface TripTikDto {\r\n id: string,\r\n serial: number,\r\n cName: string,\r\n vPlateID: string,\r\n cPhoneNumber: string,\r\n accountId: number,\r\n accountTitles: string[],\r\n stockType: LookupDto,\r\n issued?: Date,\r\n printLogs: PrintLogDto[],\r\n revokeRequestId?: number,\r\n isMigratedData: boolean,\r\n parentAccounts: LookupDto;\r\n accountTypeTitle: string;\r\n}\r\n\r\nexport class TripTikDetailsDto {\r\n id: string;\r\n serial: number;\r\n stockType: LookupDto;\r\n issued?: Date;\r\n expiryDate?: Date;\r\n hashedSerial?: string;\r\n accountId: number;\r\n accountTitles: string[];\r\n printLogs: PrintLogDto[];\r\n //value: number;\r\n //currency: CurrencyDto;\r\n isMigratedData: boolean;\r\n customer: TripTikCustomerDto = new TripTikCustomerDto();\r\n vehicle: TripTikVehicleDto = new TripTikVehicleDto();\r\n documentTemplateVersion: number;\r\n}\r\n\r\nexport class TripTikCustomerDto {\r\n id: string;\r\n owner: TripTikOwnerDto = new TripTikOwnerDto();\r\n drivers: TripTikDriverDto[] = [];\r\n}\r\n\r\nexport class TripTikOwnerDto {\r\n name: string;\r\n residenceCountryId: number;\r\n residenceCountryTitles: string[] = [];\r\n nationalityId?: number;\r\n nationalityTitles: string[] = [];\r\n passportID: string;\r\n identityID: string;\r\n address: { item1: string, item2: string } = { item1: null, item2: null };\r\n phoneNumber: { item1: string, item2: string } = { item1: null, item2: null };\r\n attachments: string[];\r\n}\r\n\r\nexport interface TripTikDriverDto {\r\n name: string,\r\n address: string,\r\n phoneNumber: string,\r\n passportIDorIdentityID: string,\r\n attachments: string[]\r\n}\r\n\r\nexport class TripTikVehicleDto {\r\n plateID: string;\r\n registrationCountryId: number;\r\n registrationCountryTitles: string[] = [];\r\n seatsCount: number;\r\n spareTiresCount: number;\r\n equipments: string;\r\n value: number;\r\n currency: CurrencyDto = { id: 0, titles: [], abbreviation: null };\r\n weightInKG: number;\r\n horsePower: number\r\n //color: LookupDto = { id: 0, titles: [] };\r\n colors: LookupDto[] = [];\r\n cylindersCount: number;\r\n engineID: string;\r\n chassisID: string;\r\n manufactureYear: number;\r\n type: LookupDto = { id: 0, titles: [] };\r\n make: LookupDto = { id: 0, titles: [] };\r\n model: VehicleModelDto = { id: 0, titles: [], makeId: 0, makeTitles: [], stockTypes: [] };\r\n extras: string;\r\n upholsteryType: number;\r\n options: number[]; //number or string\r\n}\r\n\r\nexport interface TripTiksSearchQuery /* extends PaginationQuery */ {\r\n accountId?: number,\r\n serial?: number,\r\n fromDate?: string,\r\n toDate?: string,\r\n stockTypeId?: number,\r\n cName?: string,\r\n cResidenceCountryId?: number,\r\n cIdentityOrPassportID?: string,\r\n cPhoneNumber?: string,\r\n vPlateID?: string,\r\n vRegistrationCountryId?: number[],\r\n vTypeId?: number,\r\n vMakeId?: number,\r\n vChassisID?: string,\r\n vManufactureYear?: number,\r\n isIssued?: boolean,\r\n isDamaged?: boolean\r\n}\r\n\r\n\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { TripTiksService } from './trip-tiks.service';\r\nimport { TripTikDto, TripTiksVm, TripTiksSearchQuery } from '../models/trip-tik';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\n\r\n\r\nexport class TripTiksDataSource implements DataSource {\r\n public TripTiksSubject = new BehaviorSubject([]);\r\n\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private tripTiksService: TripTiksService, private loader: LoadingService) { }\r\n\r\n load(pagination: PaginationQuery, query: TripTiksSearchQuery | string = null) {\r\n //console.warn(query);\r\n\r\n this.tripTiksService[(query == null || typeof query == 'string') ? 'getAll' : 'search'](pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: TripTiksVm) => {\r\n result.list.forEach(document => {\r\n document.parentAccounts = populateAccountsSelect([document.parentAccounts])[0];\r\n });\r\n ////console.log(result);\r\n this.TripTiksSubject.next(result.list);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.TripTiksSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.TripTiksSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { PostTripTikCmd } from '../models/create.cmd';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { TripTikVm, TripTiksVm, TripTiksSearchQuery } from '../models/trip-tik';\r\nimport { PrintTripTikCmd } from '../models/print.cmd';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { SerialHashVm } from '../../int-licenses/models/int-license';\r\n\r\n@Injectable()\r\nexport class TripTiksService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n delete(id: string) {\r\n return this.api.delete(EndPoint.TRIPTIK, id).toPromise();\r\n }\r\n\r\n update(cmd: PostTripTikCmd) {\r\n return this.api.update(EndPoint.TRIPTIK, cmd).toPromise();\r\n }\r\n\r\n create(cmd: PostTripTikCmd) {\r\n return this.api.create(EndPoint.TRIPTIK, cmd).toPromise();\r\n }\r\n\r\n get(id: string) {\r\n return this.api.get(EndPoint.TRIPTIK, id).toPromise();\r\n }\r\n\r\n getByHashedSerial(key: string){\r\n return this.api.get(EndPoint.TRIPTIK_GET_BY_HASHED_SERIAL, key).toPromise();\r\n }\r\n\r\n getAll(pagination: PaginationQuery, query: string = '') {\r\n return this.api.get(EndPoint.TRIPTIK, null, { ...pagination, query });\r\n }\r\n\r\n\r\n search(pagination: PaginationQuery, query: TripTiksSearchQuery) {\r\n return this.api.get(EndPoint.TRIPTIK_SEARCH, null, { ...pagination, ...query });\r\n }\r\n\r\n print(cmd: PrintTripTikCmd) {\r\n return this.api.create(EndPoint.TRIPTIK_PRINT, cmd).toPromise();\r\n }\r\n}\r\n\r\n","import { DefaultAlertAction } from './../../../../shared/models/default-alert-action';\r\nimport { FormBuilder, FormGroup, Validators, FormArray } from '@angular/forms';\r\n//import { AccountStatusDto } from './../../../../core/nswag.api';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { AccountStatusesService } from '../../services/account-statuses';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { LookupDto } from '../../models/lookup';\r\nimport { result } from 'lodash';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n@Component({\r\n selector: 'mac-account-statuses',\r\n templateUrl: './account-statuses.component.html',\r\n styleUrls: ['./account-statuses.component.scss'],\r\n providers: [AccountStatusesService]\r\n})\r\nexport class AccountStatusesComponent implements OnInit {\r\n displayedColumns: string[] = ['titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: LookupDto;\r\n loading: boolean;\r\n form: FormGroup;\r\n langIndex: number;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: AccountStatusesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirm: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.editingRowId = 0;\r\n\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: LookupDto) {\r\n let modal = this.confirm.confirm(new DeleteModal({ type: 'LKP_TITLE_ACCOUNT_STATUS', title: row.titles[this.langIndex] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(result => {\r\n\r\n if (result) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.deletingRowId = null;\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', '']\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value).then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n //push new item to array instead\r\n this.model.titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n } else {\r\n const cmd = this.form.value as LookupDto;\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}","//import { AccountTypeDto } from 'src/app/core/nswag.api';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { AccountTypesService } from '../../services/account-types';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormBuilder, FormGroup, Validators, FormArray } from '@angular/forms';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AccountTypeDto } from '../../models/account-type';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n\r\n@Component({\r\n selector: 'mac-account-types',\r\n templateUrl: './account-types.component.html',\r\n styleUrls: ['./account-types.component.scss'],\r\n providers: [AccountTypesService]\r\n})\r\nexport class AccountTypesComponent implements OnInit {\r\n\r\n displayedColumns: string[] = ['accountType', 'titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: AccountTypeDto;\r\n submitted: boolean;\r\n accountTypes: AccountTypeDto[];\r\n loading: boolean;\r\n form: FormGroup;\r\n langIndex: number = 0;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get parentId() { return this.form.get('parentId'); }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: AccountTypesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirm: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.accountTypes = [...result.list];\r\n ////console.log(this.accountTypes);\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n const maxId = this.accountTypes[this.accountTypes.length - 1].id;\r\n ////console.log(maxId);\r\n\r\n this.model = { id: 0, parentId: maxId, titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.editingRowId = 0;\r\n\r\n this.parentId.reset();\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.parentId.setValue(maxId);\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: AccountTypeDto) {\r\n let modal = this.confirm.confirm(new DeleteModal({ type: 'LKP_TITLE_ACCOUNT_TYPE', title: row.titles[this.langIndex] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', ''],\r\n parentId: id > 0 ? this.model.parentId : ''\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value).then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n this.model.parentTitles = this.accountTypes.find(a => a.id == this.model.parentId).parentTitles;\r\n\r\n this.dataSource.data[0].titles = this.form.value.titles;\r\n this.dataSource.data[0].parentTitles = this.accountTypes.find(a => a.id == this.model.parentId).parentTitles;\r\n\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n const cmd = this.form.value as AccountTypeDto;\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(i => i.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n })\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n parentId: ['', [Validators.required]],\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, HostListener } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { CitiesService } from '../../services/cities';\r\nimport { FormGroup, FormBuilder, FormArray, Validators } from '@angular/forms';\r\nimport { CountriesService } from '../../services/countries';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CountryDto } from '../../models/country';\r\nimport { CityDto } from '../../models/city';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport * as _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'mac-cities',\r\n templateUrl: './cities.component.html',\r\n styleUrls: ['./cities.component.scss'],\r\n providers: [CitiesService, CountriesService]\r\n})\r\nexport class CitiesComponent implements OnInit {\r\n displayedColumns: string[] = ['country', 'titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n //model: CityDto;\r\n submitted: boolean;\r\n validators: ElementRef[] = [];\r\n countries: CountryDto[];\r\n _countries: CountryDto[];\r\n form: FormGroup;\r\n lang: number = 0;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get countryId() { return this.form.get('countryId'); }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: CitiesService,\r\n public auth: AuthService,\r\n private countryServie: CountriesService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n private translate: TranslateService,\r\n private fb: FormBuilder) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n Promise.all([this.countryServie.get(null)\r\n .then(c => {\r\n this.countries = c.list;\r\n this._countries = _.cloneDeep(c.list).map(dto => {\r\n dto.countryTitles = dto.countryTitles[this.lang];\r\n return dto;\r\n })\r\n }),\r\n this.service.get(0, null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n })])\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n const newDto = { id: 0, countryId: this.countries[0].id, titles: ['', ''] };\r\n\r\n this.dataSource.data.unshift(newDto);\r\n\r\n this.editingRowId = 0;\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.countryId.reset();\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: CityDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({ type: 'LKP_TITLE_CITY', title: row.titles[this.lang] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.submitted = true;\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n\r\n const dto = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? dto.titles : ['', ''],\r\n countryId: id > 0 ? dto.countryId : ''\r\n });\r\n\r\n\r\n // this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n // this.form.patchValue({\r\n // titles: id > 0 ? this.model.titles : ['', ''],\r\n // countryId: id > 0 ? this.model.countryId : ''\r\n // });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n\r\n const cmd = this.form.value as CityDto;\r\n //console.log(cmd);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(cmd).then(id => {\r\n if (id) {\r\n cmd.id = id;\r\n cmd.countryTitles = <[]>this.countries.find(c => c.id == cmd.countryId).countryTitles;\r\n this.dataSource.data[0] = cmd;\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(i => i.id == this.editingRowId);\r\n this.dataSource.data[i].titles = cmd.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n countryId: ['', [Validators.required]],\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}\r\n","import { ActivatedRoute } from '@angular/router';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CountriesService } from '../../services/countries';\r\nimport { FormBuilder, FormGroup, Validators, FormArray } from '@angular/forms';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { numbersOnlyValidator, nonEnglishCharactersValidator, nonArabicCharactersValidator, englishOnlyValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { CountryDto } from '../../models/country';\r\n\r\n@Component({\r\n selector: 'mac-countries',\r\n templateUrl: './countries.component.html',\r\n styleUrls: ['./countries.component.scss'],\r\n providers: [CountriesService]\r\n})\r\nexport class CountriesComponent implements OnInit {\r\n displayedColumns: string[] = ['abbreviation', 'dialingCode', 'countryTitles', 'nationalityTitles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: CountryDto;\r\n langIndex: number = 0;\r\n form: FormGroup;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get abbreviation() { return this.form.get('abbreviation'); }\r\n get dialingCode() { return this.form.get('dialingCode'); }\r\n get countryTitles() { return this.form.get('countryTitles') as FormArray; }\r\n get nationalityTitles() { return this.form.get('nationalityTitles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: CountriesService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n private route: ActivatedRoute,\r\n private logger: NGXLogger,\r\n private translate: TranslateService,\r\n private fb: FormBuilder,\r\n public auth: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n if (!this.auth.currentUser.isInRole(Role.LOOKUPS_UPDATE)\r\n && !this.auth.currentUser.isInRole(Role.LOOKUPS_DELETE))\r\n this.displayedColumns.splice(this.displayedColumns.length - 1, 1);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n updateMode: boolean = false; //todo: manage all disabled controls during updating process! \r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, abbreviation: '', dialingCode: '', countryTitles: ['', ''], nationalityTitles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n this.editingRowId = 0;\r\n this.form.patchValue({\r\n abbreviation: '',\r\n dialingCode: '',\r\n countryTitles: ['', ''],\r\n nationalityTitles: ['', ''],\r\n });\r\n\r\n this.abbreviation.reset();\r\n this.dialingCode.reset();\r\n this.countryTitles.controls.forEach(c => c.reset());\r\n this.nationalityTitles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n //this.updateMode = false;\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: CountryDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({ type: 'LKP_TITLE_COUNTRY', title: row.countryTitles[this.langIndex] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false)\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n id: id > 0 ? id : 0,\r\n abbreviation: id > 0 ? this.model.abbreviation : '',\r\n dialingCode: id > 0 ? this.model.dialingCode : '',\r\n countryTitles: id > 0 ? this.model.countryTitles : ['', ''],\r\n nationalityTitles: id > 0 ? this.model.nationalityTitles : ['', '']\r\n });\r\n\r\n //this.updateMode = !id ? true : false;\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value as CountryDto).then(id => {\r\n if (id) {\r\n //this.dataSource.data[0] = this.form.value as ICountryDto;\r\n this.dataSource.data[0].id = id;\r\n this.dataSource.data[0].abbreviation = this.form.value.abbreviation;\r\n this.dataSource.data[0].dialingCode = this.form.value.dialingCode;\r\n this.dataSource.data[0].countryTitles = this.form.value.countryTitles;\r\n this.dataSource.data[0].nationalityTitles = this.form.value.nationalityTitles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.error(DefaultAlertAction.ADDING);\r\n })\r\n .catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n this.service.update(this.form.value as CountryDto)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n ////console.log(this.dataSource.data[i], this.form.value);\r\n //this.dataSource.data[i] = this.form.value as ICountryDto;\r\n\r\n this.dataSource.data[i].abbreviation = this.form.value.abbreviation;\r\n this.dataSource.data[i].dialingCode = this.form.value.dialingCode;\r\n this.dataSource.data[i].countryTitles = this.form.value.countryTitles;\r\n this.dataSource.data[i].nationalityTitles = this.form.value.nationalityTitles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false)\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n id: [''],\r\n abbreviation: ['', [Validators.required, englishOnlyValidator, Validators.minLength(2), Validators.maxLength(3)]],\r\n dialingCode: ['', [Validators.required, numbersOnlyValidator, Validators.maxLength(5)]],\r\n countryTitles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ]),\r\n nationalityTitles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ]),\r\n });\r\n }\r\n}\r\n\r\n","import { ActivatedRoute } from '@angular/router';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CurrenciesService } from '../../services/currencies';\r\nimport { FormBuilder, FormGroup, Validators, FormArray } from '@angular/forms';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { numbersOnlyValidator, nonEnglishCharactersValidator, nonArabicCharactersValidator, englishOnlyValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { CurrencyDto } from '../../models/currency';\r\n\r\n@Component({\r\n selector: 'mac-currencies',\r\n templateUrl: './currencies.component.html',\r\n styleUrls: ['./currencies.component.scss'],\r\n providers: [CurrenciesService]\r\n})\r\nexport class CurrenciesComponent implements OnInit {\r\n displayedColumns: string[] = ['abbreviation', 'titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: CurrencyDto;\r\n lang: Language = 0;\r\n form: FormGroup;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get abbreviation() { return this.form.get('abbreviation'); }\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: CurrenciesService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n private route: ActivatedRoute,\r\n private logger: NGXLogger,\r\n private translate: TranslateService,\r\n private fb: FormBuilder,\r\n public auth: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n if (!this.auth.currentUser.isInRole(Role.LOOKUPS_UPDATE)\r\n && !this.auth.currentUser.isInRole(Role.LOOKUPS_DELETE))\r\n this.displayedColumns.splice(this.displayedColumns.length - 1, 1);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n updateMode: boolean = false; //todo: manage all disabled controls during updating process! \r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, abbreviation: '', titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n this.editingRowId = 0;\r\n this.form.patchValue({\r\n abbreviation: '',\r\n titles: ['', '']\r\n });\r\n\r\n this.abbreviation.reset();\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n //this.updateMode = false;\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: CurrencyDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({ type: 'LKP_TITLE_CURRENCY', title: row.titles[this.lang] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false)\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n id: id > 0 ? id : 0,\r\n abbreviation: id > 0 ? this.model.abbreviation : '',\r\n titles: id > 0 ? this.model.titles : ['', '']\r\n });\r\n\r\n //this.updateMode = !id ? true : false;\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n const cmd = this.form.value as CurrencyDto;\r\n if (this.editingRowId == 0) {\r\n this.service.create(cmd).then(id => {\r\n if (id) {\r\n //this.dataSource.data[0] = this.form.value as ICountryDto;\r\n this.dataSource.data[0].id = id;\r\n this.dataSource.data[0].abbreviation = this.form.value.abbreviation;\r\n this.dataSource.data[0].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.error(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n ////console.log(this.dataSource.data[i], this.form.value);\r\n //this.dataSource.data[i] = this.form.value as ICountryDto;\r\n\r\n this.dataSource.data[i].abbreviation = this.form.value.abbreviation;\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false)\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n id: [''],\r\n abbreviation: ['', [Validators.required, englishOnlyValidator, Validators.minLength(2), Validators.maxLength(3)]],\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}\r\n\r\n","import { Component, OnInit, ViewChild, ElementRef, HostListener } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { FormGroup, FormBuilder, FormArray, Validators } from '@angular/forms';\r\nimport { CountriesService } from '../../services/countries';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CountryDto } from '../../models/country';\r\nimport { CityDto } from '../../models/city';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { CustomsPortsService } from '../../services/customs-ports.service';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { CustomsPortDto } from '../../models/customs-port';\r\nimport * as _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'mac-customs-ports',\r\n templateUrl: './customs-ports.component.html',\r\n styleUrls: ['./customs-ports.component.scss'],\r\n providers: [CustomsPortsService, CountriesService]\r\n})\r\nexport class CustomsPortsComponent implements OnInit {\r\n displayedColumns: string[] = ['country', 'titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n //model: CityDto;\r\n submitted: boolean;\r\n validators: ElementRef[] = [];\r\n countries: CountryDto[];\r\n _countries: CountryDto[];\r\n form: FormGroup;\r\n lang: number = 0;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get countryId() { return this.form.get('countryId'); }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: CustomsPortsService,\r\n private countryServie: CountriesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n private translate: TranslateService,\r\n private fb: FormBuilder) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n Promise.all([this.countryServie.get(null)\r\n .then(c => {\r\n this.countries = c.list;\r\n this._countries = _.cloneDeep(c.list).map(dto => {\r\n dto.countryTitles = dto.countryTitles[this.lang];\r\n return dto;\r\n })\r\n }),\r\n this.service.get(0, null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n })])\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n const newDto = { id: 0, countryId: 0, titles: ['', ''] };\r\n\r\n this.dataSource.data.unshift(newDto);\r\n\r\n this.editingRowId = 0;\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.countryId.reset();\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: CityDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({ type: 'LKP_TITLE_CUSTOMS_PORT', title: row.titles[this.lang] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.submitted = true;\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n const dto = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? dto.titles : ['', ''],\r\n countryId: id > 0 ? dto.countryId : ''\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n const cmd = this.form.value as CustomsPortDto;\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(cmd).then(id => {\r\n if (id) {\r\n cmd.id = id;\r\n cmd.countryTitles = <[]>this.countries.find(c => c.id == cmd.countryId).countryTitles;\r\n this.dataSource.data[0] = cmd;\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(i => i.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n countryId: ['', [Validators.required]],\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}\r\n","import { DefaultAlertAction } from './../../../../shared/models/default-alert-action';\r\nimport { FormBuilder, FormGroup, Validators, FormArray } from '@angular/forms';\r\n//import { AccountStatusDto } from './../../../../core/nswag.api';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { LookupDto } from '../../models/lookup';\r\nimport { PursuingZonesService } from '../../services/pursuing-zones';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n@Component({\r\n selector: 'mac-pursuing-zones',\r\n templateUrl: './pursuing-zones.component.html',\r\n styleUrls: ['./pursuing-zones.component.scss'],\r\n providers: [PursuingZonesService]\r\n})\r\nexport class PursuingZonesComponent implements OnInit {\r\n displayedColumns: string[] = ['titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: LookupDto;\r\n loading: boolean;\r\n form: FormGroup;\r\n langIndex: number;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: PursuingZonesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirm: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.editingRowId = 0;\r\n\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: LookupDto) {\r\n let modal = this.confirm.confirm(new DeleteModal({ type: 'LKP_TITLE_PURSUING_ZONE', title: row.titles[this.langIndex] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(r => {\r\n if (r) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.deletingRowId = null;\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', '']\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value).then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n //push new item to array instead\r\n this.model.titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n } else {\r\n const cmd = this.form.value as LookupDto;\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}","import { StockTypesService } from './../../services/stock-types';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { PostStockTypeCmd, StockTypeDto } from '../../models/stock-type';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { threadId } from 'worker_threads';\r\n\r\n@Component({\r\n selector: 'mac-stock-types',\r\n templateUrl: './stock-types.component.html',\r\n styleUrls: ['./stock-types.component.scss'],\r\n providers: [StockTypesService]\r\n})\r\nexport class StockTypesComponent implements OnInit {\r\n\r\n displayedColumns: string[] = ['titles', 'documentType', 'rangeMin', 'rangeMax', 'isUnifiedRelease', 'hexColor', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: StockTypeDto;\r\n submitted: boolean;\r\n loading: boolean;\r\n langIndex: number = 0;\r\n form: FormGroup;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\r\n get Role() { return Role; };\r\n\r\n constructor(private service: StockTypesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, titles: ['', ''], documentType: null, rangeMin: null, rangeMax: null, isUnifiedRelease: false, hexColor: null };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''], documentType: 0, rangeMin: null, rangeMax: null, isUnifiedRelease: false, hexColor: null });\r\n\r\n this.editingRowId = 0;\r\n\r\n this.titles.controls.forEach(c => c.reset());\r\n this.documentType.reset();\r\n this.rangeMin.reset();\r\n this.rangeMax.reset();\r\n this.isUnifiedRelease.reset();\r\n this.hexColor.reset();\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: StockTypeDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({ type: 'LKP_TITLE_STOCK_TYPE', title: row.titles[this.langIndex] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.delete(row.id);\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n //console.log(this.model);\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', ''],\r\n documentType: id > 0 ? this.model.documentType : '',\r\n rangeMin: id > 0 ? this.model.rangeMin : '',\r\n rangeMax: id > 0 ? this.model.rangeMax : '',\r\n isUnifiedRelease: id > 0 ? this.model.isUnifiedRelease : false,\r\n hexColor: id > 0 ? this.model.hexColor : ''\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n\r\n const cmd = this.form.value as PostStockTypeCmd;\r\n //console.log(cmd);\r\n cmd.isUnifiedRelease = cmd.isUnifiedRelease == true;\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(cmd).then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n this.model.titles = cmd.titles;\r\n\r\n this.model.documentType = cmd.documentType;\r\n this.model.isUnifiedRelease = cmd.isUnifiedRelease;\r\n this.model.rangeMin = cmd.rangeMin;\r\n this.model.rangeMax = cmd.rangeMax;\r\n this.model.hexColor = cmd.hexColor;\r\n\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n });\r\n } else {\r\n\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd).then(status => {\r\n if (status) {\r\n // //console.log(this.model);\r\n const i = this.dataSource.data.findIndex(i => i.id == this.editingRowId);\r\n //this.dataSource.data[i].titles = cmd.titles;\r\n this.dataSource.data[i].titles = cmd.titles;\r\n this.dataSource.data[i].documentType = cmd.documentType;\r\n this.dataSource.data[i].isUnifiedRelease = cmd.isUnifiedRelease;\r\n this.dataSource.data[i].rangeMin = cmd.rangeMin;\r\n this.dataSource.data[i].rangeMax = cmd.rangeMax;\r\n this.dataSource.data[i].hexColor = cmd.hexColor;\r\n // this.hexColor.setValue(cmd.hexColor);\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n get titles() { return this.form.get('titles') as FormArray; };\r\n get documentType() { return this.form.get('documentType'); };\r\n get isUnifiedRelease() { return this.form.get('isUnifiedRelease'); };\r\n get hexColor() { return this.form.get('hexColor'); };\r\n get rangeMin() { return this.form.get('rangeMin'); };\r\n get rangeMax() { return this.form.get('rangeMax'); };\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ]),\r\n documentType: ['', [Validators.required]],\r\n isUnifiedRelease: [false],\r\n hexColor: ['', [Validators.required]],\r\n rangeMin: ['', [Validators.required]],\r\n rangeMax: ['', [Validators.required]]\r\n });\r\n }\r\n}","//import { VehicleColorDto } from 'src/app/core/nswag.api';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { VehicleColorsService } from '../../services/vehicle-colors';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormBuilder, FormArray, FormGroup, Validators } from '@angular/forms';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { nonEnglishCharactersValidator, nonArabicCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { LookupDto } from '../../models/lookup';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n\r\n@Component({\r\n selector: 'mac-vehicle-colors',\r\n templateUrl: './vehicle-colors.component.html',\r\n styleUrls: ['./vehicle-colors.component.scss'],\r\n providers: [VehicleColorsService]\r\n})\r\nexport class VehicleColorsComponent implements OnInit {\r\n\r\n displayedColumns: string[] = ['titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: LookupDto = { id: 0, titles: ['', ''] };\r\n submitted: boolean;\r\n loading: boolean;\r\n langIndex: number = 0;\r\n form: FormGroup;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n\r\n constructor(private service: VehicleColorsService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirm: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n // private _loading(status: boolean = true) {\r\n // this.loading = status;\r\n // }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.editingRowId = 0;\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: LookupDto) {\r\n let modal = this.confirm.confirm(new DeleteModal({ type: 'LKP_TITLE_VEHICLE_COLOR', title: row.titles[0] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(r => {\r\n if (r) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.deletingRowId = null;\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', '']\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value).then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n //push new item to array instead\r\n this.model.titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n const cmd = this.form.value as LookupDto;\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(err => {\r\n // //console.log(err);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.editingRowId = null;\r\n this.submitted = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}\r\n","import { VehicleMakesService } from '../../services/vehicle-makes';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { nonEnglishCharactersValidator, nonArabicCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { LookupDto } from '../../models/lookup';\r\nimport { CountryDto } from '../../models/country';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n@Component({\r\n selector: 'mac-vehicle-makes',\r\n templateUrl: './vehicle-makes.component.html',\r\n styleUrls: ['./vehicle-makes.component.scss'],\r\n providers: [VehicleMakesService]\r\n})\r\nexport class VehicleMakesComponent implements OnInit {\r\n\r\n displayedColumns: string[] = ['titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: LookupDto = { id: 0, titles: ['', ''] };\r\n loading: boolean;\r\n langIndex: number = 0;\r\n form: FormGroup;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n\r\n constructor(private service: VehicleMakesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirm: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n // private _loading(status: boolean = true) {\r\n // this.loading = status;\r\n // }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.editingRowId = 0;\r\n\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: LookupDto) {\r\n let modal = this.confirm.confirm(new DeleteModal({ type: 'LKP_TITLE_VEHICLE_MAKE', title: row.titles[this.langIndex] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(r => {\r\n if (r) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.deletingRowId = null;\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', '']\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value)\r\n .then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n //push new item to array instead\r\n this.model.titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n const cmd = this.form.value as CountryDto;\r\n cmd.id = this.editingRowId\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n })\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n titles: this.fb.array([\r\n ['', [Validators.required, nonEnglishCharactersValidator, Validators.minLength(2), Validators.maxLength(50)]],\r\n ['', [Validators.required, nonArabicCharactersValidator, Validators.minLength(2), Validators.maxLength(50)]],\r\n ])\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, HostListener } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { VehicleModelsService } from '../../services/vehicle-models';\r\nimport { FormGroup, FormBuilder, FormArray, Validators } from '@angular/forms';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CityDto } from '../../models/city';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { VehicleModelDto } from '../../models/vehicle-model';\r\nimport { VehicleMakesService } from '../../services/vehicle-makes';\r\nimport { LookupDto } from '../../models/lookup';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport * as _ from 'lodash';\r\nimport { StockTypeDto } from '../../models/stock-type';\r\nimport { StockTypesService } from '../../services/stock-types';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\n\r\n@Component({\r\n selector: 'mac-vehicle-models',\r\n templateUrl: './vehicle-models.component.html',\r\n styleUrls: ['./vehicle-models.component.scss'],\r\n providers: [VehicleModelsService, VehicleMakesService, StockTypesService]\r\n})\r\nexport class VehicleModelsComponent implements OnInit {\r\n displayedColumns: string[] = ['make', 'titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n //model: VehicleModelDto;\r\n // validators: ElementRef[] = [];\r\n makes: LookupDto[];\r\n _makes: LookupDto[];\r\n _stockTypes: StockTypeDto[] = [];\r\n form: FormGroup;\r\n lang: Language = 0;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get make() { return this.form.get('makeId'); }\r\n get stockTypes() { return this.form.get('stockTypes'); }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: VehicleModelsService,\r\n public auth: AuthService,\r\n private vehicleMakeService: VehicleMakesService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n private stockTypesService: StockTypesService,\r\n private translate: TranslateService,\r\n private fb: FormBuilder) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n Promise.all([this.vehicleMakeService.get(null)\r\n .then(result => {\r\n this.makes = result.list;\r\n this._makes = _.cloneDeep(result.list).map(dto => {\r\n dto.titles = [dto.titles[this.lang]];\r\n return dto;\r\n })\r\n }),\r\n this.stockTypesService.get(this.lang)\r\n .then(result => this._stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument)),\r\n this.service.get(0, null)\r\n .then(result => {\r\n // //console.log(result.list);\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n })])\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.toggleUpdateMode(true);\r\n\r\n const newDto = { id: 0, makeId: this.makes[0].id, titles: ['', ''], stockTypes: this._stockTypes.map(x => x.id) };\r\n\r\n this.dataSource.data.unshift(newDto);\r\n\r\n this.editingRowId = 0;\r\n this.form.patchValue({ titles: ['', ''], stockTypes: this._stockTypes.map(x => x.id) });\r\n\r\n this.make.reset();\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: CityDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({ type: 'LKP_TITLE_VEHICLE_MODEL', title: row.titles[this.lang] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n //this.submitted = true;\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n edit(id) {\r\n this.toggleUpdateMode(id > 0);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n const dto = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n //console.log(dto);\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? dto.titles : ['', ''],\r\n makeId: id > 0 ? dto.makeId : '',\r\n stockTypes: id > 0 ? dto.stockTypes : []\r\n });\r\n //console.log(this.form.value);\r\n }\r\n\r\n toggleUpdateMode(mode: boolean) {\r\n if (mode)\r\n this.displayedColumns = ['make', 'titles', 'stockTypes', 'tools'];\r\n else\r\n this.displayedColumns = ['make', 'titles', 'tools'];\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n const cmd = this.form.value as VehicleModelDto;\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(cmd).then(id => {\r\n if (id) {\r\n cmd.id = id;\r\n cmd.makeTitles = this.makes.find(c => c.id == cmd.makeId).titles;\r\n cmd.stockTypes = this.stockTypes.value;\r\n this.dataSource.data[0] = cmd;\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.toggleUpdateMode(false);\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(i => i.id == this.editingRowId);\r\n this.dataSource.data[i].titles = cmd.titles;\r\n this.dataSource.data[i].stockTypes = cmd.stockTypes;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.toggleUpdateMode(false);\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n makeId: ['', [Validators.required]],\r\n titles: this.fb.array([\r\n ['', [Validators.required, nonEnglishCharactersValidator, Validators.minLength(2), Validators.maxLength(50)]],\r\n ['', [Validators.required, nonArabicCharactersValidator, Validators.minLength(2), Validators.maxLength(50)]]\r\n ]),\r\n stockTypes: ['']\r\n });\r\n }\r\n}\r\n","//import { VehicleColorDto } from 'src/app/core/nswag.api';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { VehicleTypesService } from '../../services/vehicle-types';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormBuilder, FormArray, FormGroup, Validators } from '@angular/forms';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { nonEnglishCharactersValidator, nonArabicCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { LookupDto } from '../../models/lookup';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n\r\n@Component({\r\n selector: 'mac-vehicle-types',\r\n templateUrl: './vehicle-types.component.html',\r\n styleUrls: ['./vehicle-types.component.scss'],\r\n providers: [VehicleTypesService]\r\n})\r\nexport class VehicleTypesComponent implements OnInit {\r\n\r\n displayedColumns: string[] = ['titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: LookupDto = { id: 0, titles: ['', ''] };\r\n //submitted: boolean;\r\n //loading: boolean;\r\n lang: Language = 0;\r\n form: FormGroup;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: VehicleTypesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirm: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.editingRowId = 0;\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: LookupDto) {\r\n let modal = this.confirm.confirm(new DeleteModal({ type: 'LKP_TITLE_VEHICLE_TYPE', title: row.titles[0] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(r => {\r\n if (r) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.deletingRowId = null;\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', '']\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value).then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n //push new item to array instead\r\n this.model.titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n const cmd = this.form.value as LookupDto;\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(err => {\r\n // //console.log(err);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.editingRowId = null;\r\n //this.submitted = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { LookupVm, LookupDto } from '../models/lookup';\r\n\r\n@Injectable()\r\nexport class AccountStatusesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n return this.api.get(EndPoint.ACCOUNT_STATUSES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: LookupDto) {\r\n return this.api.create(EndPoint.ACCOUNT_STATUSES, dto).toPromise();\r\n }\r\n\r\n update(dto: LookupDto) {\r\n return this.api.update(EndPoint.ACCOUNT_STATUSES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) { \r\n return this.api.delete(EndPoint.ACCOUNT_STATUSES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\n//import { AccountTypeDto, AccountTypesVm } from 'src/app/core/nswag.api';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { AccountTypesVm, AccountTypeDto } from '../models/account-type';\r\n\r\n@Injectable()\r\nexport class AccountTypesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n getAllowed() {\r\n return this.api.get(EndPoint.ACCOUNT_TYPES_ALLOWED).toPromise();\r\n }\r\n\r\n get(lang: Language = null) {\r\n return this.api.get(EndPoint.ACCOUNT_TYPES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: AccountTypeDto) {\r\n return this.api.create(EndPoint.ACCOUNT_TYPES, dto).toPromise();\r\n }\r\n\r\n update(dto: AccountTypeDto) {\r\n return this.api.update(EndPoint.ACCOUNT_TYPES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.ACCOUNT_TYPES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { CityDto, CitiesVm } from '../models/city';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\n\r\n@Injectable()\r\nexport class CitiesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(countryId = 0, lang = null) {\r\n return this.api.get(EndPoint.CITIES, countryId, { lang }).toPromise();\r\n }\r\n\r\n create(dto: CityDto) {\r\n return this.api.create(EndPoint.CITIES, dto).toPromise();\r\n }\r\n\r\n update(dto: CityDto) {\r\n return this.api.update(EndPoint.CITIES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.CITIES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { ConfigObject } from 'src/app/core/models/enums/config-object';\r\nimport { ConfigVm, ConfigDto } from '../models/config';\r\nimport * as _ from 'lodash';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class StaticConfig {\r\n static config: ConfigDto[] = [];\r\n get() {\r\n //const lang = null;\r\n return this.api.get(EndPoint.CONFIG, null, null, false).toPromise()\r\n .then(result => StaticConfig.config = result.list);\r\n }\r\n\r\n constructor(private api: ApiHandler) { }\r\n\r\n static getConfigKeyValuePairs(configObj: ConfigObject, lang: Language = null) {\r\n return _.cloneDeep(this.config).find(x => x.id == configObj).keyValuePairs\r\n .map(pair => {\r\n pair.value = lang != undefined && lang != null && pair.localized ? pair.value[lang] : pair.value;\r\n return pair;\r\n });\r\n }\r\n\r\n static getConfigValue(configObj: ConfigObject, key: number, lang: Language = null) {\r\n const keyValuePair = _.cloneDeep(this.config).find(x => x.id == configObj).keyValuePairs.find(x => x.key == key);\r\n return lang != undefined && lang != null && keyValuePair.localized ? keyValuePair.value[lang] : keyValuePair.value;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { CountriesVm, CountryDto } from '../models/country';\r\n\r\n@Injectable()\r\nexport class CountriesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n //console.log(lang);\r\n return this.api.get(EndPoint.COUNTRIES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: CountryDto) {\r\n return this.api.create(EndPoint.COUNTRIES, dto).toPromise();\r\n }\r\n\r\n update(dto: CountryDto) {\r\n return this.api.update(EndPoint.COUNTRIES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.COUNTRIES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { CurrencyDto, CurrenciesVm } from '../models/currency';\r\n\r\n@Injectable()\r\nexport class CurrenciesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n return this.api.get(EndPoint.CURRENCIES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: CurrencyDto) {\r\n return this.api.create(EndPoint.CURRENCIES, dto).toPromise();\r\n }\r\n\r\n update(dto: CurrencyDto) { \r\n return this.api.update(EndPoint.CURRENCIES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) { \r\n return this.api.delete(EndPoint.CURRENCIES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { CustomsPortsVm, CustomsPortDto } from '../models/customs-port';\r\n\r\n@Injectable()\r\nexport class CustomsPortsService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(countryId = 0, lang = null) {\r\n return this.api.get(EndPoint.CUSTOMS_PORTS, countryId, { lang }).toPromise();\r\n }\r\n\r\n create(dto: CustomsPortDto) {\r\n return this.api.create(EndPoint.CUSTOMS_PORTS, dto).toPromise();\r\n }\r\n\r\n update(dto: CustomsPortDto) {\r\n return this.api.update(EndPoint.CUSTOMS_PORTS, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.CUSTOMS_PORTS, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { LookupVm, LookupDto } from '../models/lookup';\r\n\r\n@Injectable()\r\nexport class PursuingZonesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang = null) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS_PURSUING_ZONES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: LookupDto) {\r\n return this.api.create(EndPoint.TRIPTIK_CLAIMS_PURSUING_ZONES, dto).toPromise();\r\n }\r\n\r\n update(dto: LookupDto) {\r\n return this.api.update(EndPoint.TRIPTIK_CLAIMS_PURSUING_ZONES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.TRIPTIK_CLAIMS_PURSUING_ZONES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { StockTypesVm, StockTypeDto } from '../models/stock-type';\r\n\r\n@Injectable()\r\nexport class StockTypesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n //console.log(lang);\r\n return this.api.get(EndPoint.STOCK_TYPES, null, { lang }).toPromise();\r\n }\r\n\r\n getURO(lang: Language = null) {\r\n return this.api.get(EndPoint.STOCK_TYPES_URO, null, { lang }).toPromise();\r\n }\r\n\r\n getAllowed(accountId: number = 0, transactAllowedOnly: boolean = false) {\r\n return this.api.get(EndPoint.STOCK_TYPES_ALLOWED, [accountId ? accountId : 0, transactAllowedOnly]).toPromise();\r\n }\r\n\r\n create(dto: StockTypeDto) {\r\n return this.api.create(EndPoint.STOCK_TYPES, dto).toPromise();\r\n }\r\n\r\n update(dto: StockTypeDto) {\r\n return this.api.update(EndPoint.STOCK_TYPES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.STOCK_TYPES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { TripTikClaimsStatusesVm, TripTikClaimStatusDto } from '../models/trip-tik-claim-status';\r\n\r\n@Injectable()\r\nexport class TripTikClaimsStatusesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(parentId, lang = null) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS_STATUSES, [parentId], { lang }).toPromise();\r\n }\r\n\r\n // getBaseStatuses(lang = null) {\r\n // return this.api.get(EndPoint.TRIPTIK_CLAIMS_STATUSES_BASE, null, { lang }).toPromise();\r\n // }\r\n\r\n // create(dto: TripTikClaimStatusDto) {\r\n // return this.api.create(EndPoint.TRIPTIK_CLAIMS_STATUSES, dto).toPromise();\r\n // }\r\n\r\n // update(dto: TripTikClaimStatusDto) {\r\n // return this.api.update(EndPoint.TRIPTIK_CLAIMS_STATUSES, dto).toPromise();\r\n // }\r\n\r\n // delete(id: number) {\r\n // return this.api.delete(EndPoint.TRIPTIK_CLAIMS_STATUSES, id).toPromise();\r\n // }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\n//import { VehicleColorDto, VehicleColorsVm } from 'src/app/core/nswag.api';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { LookupVm, LookupDto } from '../models/lookup';\r\n\r\n@Injectable()\r\nexport class VehicleColorsService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n return this.api.get(EndPoint.VEHICLE_COLORS, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: LookupDto) {\r\n return this.api.create(EndPoint.VEHICLE_COLORS, dto).toPromise();\r\n }\r\n\r\n update(dto: LookupDto) { \r\n return this.api.update(EndPoint.VEHICLE_COLORS, dto).toPromise();\r\n }\r\n\r\n delete(id: number) { \r\n return this.api.delete(EndPoint.VEHICLE_COLORS, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\n//import { CountryDto, VehicleMakesVm, VehicleMakeDto } from 'src/app/core/nswag.api';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { LookupVm, LookupDto } from '../models/lookup';\r\nimport { CountryDto } from '../models/country';\r\n\r\n@Injectable()\r\nexport class VehicleMakesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n return this.api.get(EndPoint.VEHICLE_MAKES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: LookupDto) {\r\n return this.api.create(EndPoint.VEHICLE_MAKES, dto).toPromise();\r\n }\r\n\r\n update(dto: CountryDto) {\r\n return this.api.update(EndPoint.VEHICLE_MAKES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.VEHICLE_MAKES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { VehicleModelsVm, VehicleModelDto } from '../models/vehicle-model';\r\n\r\n@Injectable()\r\nexport class VehicleModelsService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(makeId = 0, stockTypeId = null, lang = null) {\r\n // const params = [makeId];\r\n // if (stockTypeId)\r\n // params.push(stockTypeId ? stockTypeId : nul);\r\n\r\n return this.api.get(EndPoint.VEHICLE_MODELS, [makeId, stockTypeId], { lang }).toPromise();\r\n }\r\n\r\n create(dto: VehicleModelDto) {\r\n return this.api.create(EndPoint.VEHICLE_MODELS, dto).toPromise();\r\n }\r\n\r\n update(dto: VehicleModelDto) {\r\n return this.api.update(EndPoint.VEHICLE_MODELS, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.VEHICLE_MODELS, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { LookupVm, LookupDto } from '../models/lookup';\r\n\r\n@Injectable()\r\nexport class VehicleTypesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n return this.api.get(EndPoint.VEHICLE_TYPES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: LookupDto) {\r\n return this.api.create(EndPoint.VEHICLE_TYPES, dto).toPromise();\r\n }\r\n\r\n update(dto: LookupDto) { \r\n return this.api.update(EndPoint.VEHICLE_TYPES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) { \r\n return this.api.delete(EndPoint.VEHICLE_TYPES, id).toPromise();\r\n }\r\n}","import { DefaultAlertAction } from './../../../../shared/models/default-alert-action';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from './../../../../core/auth/auth.service';\r\nimport { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { UsersService } from 'src/app/features/security/services/users.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { UserDto, UsersVm } from '../../models/user';\r\nimport { AccountMetaDto } from 'src/app/features/accounts/models/account';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { UsersDataSource } from '../../services/users-datasource';\r\nimport { tap } from 'rxjs/operators';\r\nimport { merge } from 'rxjs/internal/observable/merge';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { fromEvent } from 'rxjs';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'mac-account-users',\r\n templateUrl: './account-users.component.html',\r\n styleUrls: ['./account-users.component.scss'],\r\n providers: [UsersService, AccountsService]\r\n})\r\nexport class AccountUsersComponent implements OnInit {\r\n displayedColumns: string[] = ['names', 'username', 'email', 'phoneNumber', 'created', 'permissions', 'isActive', 'tools'];\r\n cashedVm: UsersVm;\r\n accounts: LookupDto[];\r\n lang: Language;\r\n accountId: number = 0;\r\n dataSource: UsersDataSource;\r\n parentAccounts: AccountMetaDto[] = [];\r\n badgeClasses: string[];\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('account', { static: true }) account: ElementRef;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n get Role() { return Role; }\r\n\r\n constructor(private service: UsersService,\r\n private confirmService: ConfirmService,\r\n private loader: LoadingService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n public translate: TranslateService,\r\n public route: ActivatedRoute,\r\n private accountsService: AccountsService,\r\n private location: Location,\r\n private router: Router) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.accountId = Number(this.route.snapshot.paramMap.get('accountId'));\r\n this.loader.load(LoaderType.Nav);\r\n\r\n if (!this.auth.currentUser.isInRole(Role.USERS_SECURITY_GROUPS_READ)) {\r\n const i = this.displayedColumns.findIndex(c => c == \"permissions\");\r\n this.displayedColumns.splice(i, 1);\r\n }\r\n\r\n if (!this.auth.currentUser.isInRole(Role.USERS_UPDATE)\r\n && !this.auth.currentUser.isInRole(Role.USERS_DELETE))\r\n this.displayedColumns.splice(this.displayedColumns.length - 1, 1);\r\n\r\n this.route.params.subscribe(p => {\r\n if (p.accountId == 0) {\r\n //console.warn(this.filter.nativeElement.value);\r\n this.filter.nativeElement.value = \"\";\r\n this.accountId = 0;\r\n //this.account.select(0);\r\n //this.account.nativeElement.value = 0;\r\n //this.account.valueChange.emit();\r\n }\r\n });\r\n\r\n this.sort.active = 'names';\r\n this.sort.direction = 'asc';\r\n this.paginator.pageSize = 10;\r\n this.dataSource = new UsersDataSource(this.service, this.loader);\r\n this.dataSource.loadUsers(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, '', this.accountId);\r\n\r\n //this.loader.load(LoaderType.Body);\r\n // this.accountsService.getChildrenAccountsLookup(!this.auth.isSystemAccount ? this.auth.accountId : 0).then(d => {\r\n // this.accounts = populateAccountsSelect(d.list);\r\n // this.accounts.unshift({ id: 0, titles: [[\"الكل\", \"All\"][this.lang]] });\r\n // }).finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n filterWithAccount(id) {\r\n //console.log(id);\r\n this.accountId = id;\r\n //this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n // this.dataSource.loadUsers(0, this.paginator.pageSize, this.sort.active, this.sort.direction, '', this.accountId);\r\n\r\n }\r\n\r\n async ngAfterViewInit() {\r\n this.loader.load(LoaderType.Body);\r\n this.accounts = /*populateAccountsSelect(*/await (await this.accountsService.getChildrenAccountsLookup(!this.auth.currentUser.isSystemAccount ? this.auth.currentUser.accountId : 0)).list/*)*/;\r\n this.accounts.unshift({ id: 0, titles: [[\"الكل\", \"All\"][this.lang]] });\r\n this.loader.load(LoaderType.Body, false);\r\n\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n ////console.log(this.account.value);\r\n this.dataSource.loadUsers(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.filter.nativeElement.value.trim(), this.accountId)\r\n })).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadUsers(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.filter.nativeElement.value.trim(), this.accountId)\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect().subscribe(() => {\r\n this.router.navigate([`/${this.translate.currentLang}/security/users/list/${this.accountId}`], { replaceUrl: true });\r\n //this.location.replaceState(`/${this.translate.currentLang}/security/users/list/${this.accountId}`);\r\n });\r\n }\r\n\r\n tryDelete(row: UserDto) {\r\n if (row.id == this.auth.currentUser.userId || (!this.auth.currentUser.isSystemAccount && row.accountId != this.auth.currentUser.accountId) || !this.auth.currentUser.isInRole(Role.USERS_DELETE))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'SEC_LINK_USER_ACCOUNT',\r\n title: row.names ? row.names[0] : row.username, //todo: get with lang index\r\n note: 'SEC_USER_CONFIRM_DELETE_NOTE'\r\n }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n tryUpdateStatus(row: UserDto, active) {\r\n if (row.id == this.auth.currentUser.userId || (!this.auth.currentUser.isSystemAccount && row.accountId != this.auth.currentUser.accountId) || !this.auth.currentUser.isInRole(Role.USERS_UPDATE))\r\n return;\r\n\r\n if (!active) {\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'SEC_LINK_USER_ACCOUNT',\r\n confirmQuestion: 'SEC_USER_CONFIRM_DEACTIVATE_CONFIRMATION_QUESTION',\r\n title: row.names ? row.names[0] : row.username,\r\n action: '_ACTION_DEACTIVATE',\r\n submitText: '_ACTION_DEACTIVATE',\r\n note: 'SEC_USER_CONFIRM_DEACTIVATE_NOTE',\r\n dangerNote: ' '\r\n }));\r\n const _data = this.dataSource.UsersSubject.value;\r\n const i = _data.findIndex(d => d.id == row.id);\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n this.updateStatus(row.id, active);\r\n }\r\n }).catch(e => {\r\n _data[i].isActive = true;\r\n });\r\n } else this.updateStatus(row.id, active);\r\n }\r\n\r\n private delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.service.deleteUser(id)\r\n .then(r => {\r\n if (r) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.UsersSubject.next(this.dataSource.UsersSubject.value.filter(d => d.id != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private updateStatus(id, active) {\r\n const _data = this.dataSource.UsersSubject.value;\r\n const i = _data.findIndex(d => d.id == id);\r\n this.loader.load(LoaderType.Body);\r\n this.service.updateUserStatus(id, active)\r\n .then(r => {\r\n if (r)\r\n this.alert.success(active ? '_ACTION_ACTIVATING' : '_ACTION_DEACTIVATING')\r\n else {\r\n _data[i].isActive = true;\r\n this.alert.failure(active ? '_ACTION_ACTIVATING' : '_ACTION_DEACTIVATING');\r\n }\r\n })\r\n .catch(e => {\r\n _data[i].isActive = true;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n}","import { DefaultAlertAction } from './../../../../shared/models/default-alert-action';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { UsersService } from 'src/app/features/security/services/users.service';\r\nimport { SecurityService } from '../../services/security.service';\r\nimport { SecurityGroupLookupDto } from '../../models/security-groups.model';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { comparePasswords, usernameValidator, numbersOnlyValidator, nonEnglishCharactersValidator, nonArabicCharactersValidator } from 'src/app/shared/services/custom-validators';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { UserDto } from '../../models/user';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { CustomsPortsService } from 'src/app/features/lookups/services/customs-ports.service';\r\n\r\n@Component({\r\n selector: 'mac-manage-user',\r\n templateUrl: './manage-user.component.html',\r\n styleUrls: ['./manage-user.component.scss'],\r\n providers: [UsersService, SecurityService, CustomsPortsService]\r\n})\r\nexport class ManageUserComponent implements OnInit {\r\n\r\n userForm: FormGroup;\r\n userId: string;\r\n cashedUserData: UserDto;\r\n loading: boolean;\r\n updateMode: boolean = false;\r\n changingPassword: boolean = false;\r\n groups: SecurityGroupLookupDto[] = [];\r\n _claimsCountries: LookupDto[] = [];\r\n lang: number = 0;\r\n isClaimsApplicable: boolean;\r\n claimsSystemGroupId: string = \"#\";\r\n isClaimsGroupSelected: boolean;\r\n\r\n get names() { return this.userForm.get('names') as FormArray; }\r\n get username() { return this.userForm.get('username'); }\r\n get phoneNumber() { return this.userForm.get('phoneNumber'); }\r\n get email() { return this.userForm.get('email'); }\r\n get password() { return this.userForm.get('pass.password'); }\r\n get passwordConfirm() { return this.userForm.get('pass.passwordConfirm'); }\r\n get securityGroups() { return this.userForm.get('securityGroups'); }\r\n get claimsCountries() { return this.userForm.get('claimsCountries'); }\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private usersService: UsersService,\r\n private securityService: SecurityService,\r\n private customsPortsService: CustomsPortsService,\r\n private loader: LoadingService,\r\n private alert: AlertService,\r\n public translate: TranslateService,\r\n public auth: AuthService) { }\r\n\r\n async ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.userId = this.activatedRoute.snapshot.paramMap.get(\"id\");\r\n this.updateMode = this.userId ? true : false;\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.groups = await (await this.securityService.getAccountGroupsLookup()).groups;\r\n\r\n if (this.auth.currentUser.isAdministrator)\r\n this.claimsSystemGroupId = this.groups.find(x => x.titles[1] == \"Claims\").id;\r\n\r\n const customsPorts = (await this.customsPortsService.get(this.lang)).list;\r\n\r\n\r\n\r\n this._claimsCountries = [...new Map(customsPorts.map(item =>\r\n [item['countryId'], item])).values()].map(x => {\r\n id: x.countryId,\r\n titles: x.countryTitles\r\n });\r\n\r\n\r\n\r\n //console.log(this.groups);\r\n //todo: filter by lang\r\n\r\n\r\n //console.log(this.claimsCountries);\r\n // const arrayUniqueByKey \r\n\r\n\r\n if (this.userId) {\r\n\r\n //this.isClaimsApplicable = await this.securityService.isClaimsApplicable(this.userId);\r\n\r\n this.usersService.getUserData(this.userId)\r\n .then(result => {\r\n //console.log(result);\r\n\r\n this.isClaimsApplicable = result.isClaimsApplicable;\r\n\r\n this.cashedUserData = result.user;\r\n this.userForm.patchValue(this.cashedUserData);\r\n this.username.disable();\r\n this.password.disable();\r\n\r\n if (result.user.accountId != this.auth.currentUser.accountId)\r\n this.securityGroups.disable();\r\n\r\n }).catch(e => {\r\n // //console.log(e);\r\n // this.alert.error('_MESSAGE_ERROR_LOADING_DATA');\r\n }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n } else {\r\n //this.isClaimsApplicable = this.auth.currentUser.isAdministrator;\r\n this.loader.load(LoaderType.Nav, false);\r\n }\r\n }\r\n\r\n onGroupSelectionChange(groups) {\r\n this.isClaimsGroupSelected = groups.indexOf(this.claimsSystemGroupId) > -1;\r\n if (!this.isClaimsGroupSelected && !this.isClaimsApplicable)\r\n this.claimsCountries.reset();\r\n }\r\n\r\n changePassword() {\r\n this.changingPassword = !this.changingPassword;\r\n this.changingPassword ?\r\n this.password.enable() :\r\n this.password.disable();\r\n }\r\n\r\n onSubmit() {\r\n console.warn(this.userForm.value);\r\n\r\n if (this.updateMode && !this.changingPassword) {\r\n this.userForm.get('pass').setErrors(null);\r\n this.password.setErrors(null);\r\n this.passwordConfirm.setErrors(null);\r\n }\r\n\r\n if (!this.userForm.valid)\r\n return Utils.validateAllFormFields(this.userForm);\r\n\r\n this.loader.load(LoaderType.Body);\r\n let user = this.userForm.value as UserDto;\r\n\r\n if (this.updateMode) {\r\n\r\n user.id = this.userId;\r\n user.password = this.password.value;\r\n\r\n this.usersService.updateUserData(user)\r\n .then(r => {\r\n r ?\r\n this.alert.success(DefaultAlertAction.UPDATING)\r\n : this.alert.failure(DefaultAlertAction.UPDATING);\r\n })\r\n .catch(e => {\r\n // //console.log(e);\r\n // this.alert.error();\r\n })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.router.navigate([this.translate.currentLang, 'security', 'users', 'list', this.auth.currentUser.accountId]);\r\n });\r\n } else {\r\n //new\r\n user.password = this.password.value;\r\n\r\n this.usersService.createUser(user)\r\n .then(result => {\r\n //console.log(result)\r\n result ?\r\n this.alert.success(DefaultAlertAction.ADDING)\r\n : this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .catch(e => {\r\n //console.log(e);\r\n // this.alert.error();\r\n })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.router.navigate([this.translate.currentLang, 'security', 'users', 'list', this.auth.currentUser.accountId]);\r\n });\r\n }\r\n }\r\n\r\n private formInit() {\r\n this.userForm = this.fb.group({\r\n names: this.fb.array([\r\n ['', [Validators.required, nonEnglishCharactersValidator, Validators.minLength(3), Validators.maxLength(100)]],\r\n ['', [Validators.required, nonArabicCharactersValidator, Validators.minLength(3), Validators.maxLength(100)]]\r\n ]),\r\n username: this.fb.control('',\r\n [Validators.required, usernameValidator, Validators.minLength(5), Validators.maxLength(50)],\r\n !this.updateMode ? this.usersService.validateUsernameNotTaken.bind(this) : null),\r\n phoneNumber: ['', [Validators.required, numbersOnlyValidator]],\r\n email: ['', [Validators.email]],\r\n pass: this.fb.group({\r\n password: ['', [Validators.required, Validators.minLength(6)]], //todo: regex for password pattern\r\n passwordConfirm: ['']\r\n }, { validator: comparePasswords }),\r\n securityGroups: [''],\r\n claimsCountries: ['']\r\n });\r\n }\r\n}","import { TranslateService } from '@ngx-translate/core';\r\nimport { DefaultAlertAction } from './../../../../shared/models/default-alert-action';\r\nimport { nonEnglishCharactersValidator, nonArabicCharactersValidator } from 'src/app/shared/services/custom-validators';\r\nimport { MatTreeFlatDataSource } from '@angular/material/tree';\r\nimport { SecurityGroupsVm, SecurityRolesVm } from './../../models/security-groups.model';\r\n// import { SecurityService } from './../../services/security.service';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport * as _ from 'lodash';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, FormArray } from '@angular/forms';\r\nimport { SecurityAction, ObjectActionDto, SecurityGroupDto } from '../../models/security-groups.model';\r\nimport { SecurityService } from '../../services/security.service';\r\nimport { ActivatedRoute, Router, NavigationExtras, Navigation } from '@angular/router';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { Location } from '@angular/common';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\n\r\n@Component({\r\n selector: 'mac-security-groups',\r\n templateUrl: './security-groups.component.html',\r\n styleUrls: ['./security-groups.component.scss'],\r\n providers: [SecurityService]\r\n})\r\nexport class SecurityGroupsComponent implements OnInit {\r\n\r\n displayedColumns: any[] = []; // 'action-1'];//, 'action-2', 'action-3', 'action-4'];\r\n securityGroupForm: FormGroup;\r\n securityActions: SecurityAction[] = [];\r\n securityGroups: SecurityGroupDto[] = [];\r\n securityRoles: SecurityRolesVm = new SecurityRolesVm();\r\n selectedGroup: SecurityGroupDto;\r\n dataSource: MatTableDataSource;\r\n selections: SelectionModel[] = [];\r\n formEnabled: boolean = true;\r\n objectsCol: {};\r\n mode: string;\r\n submitted: boolean;\r\n loading: boolean;\r\n navigation: Navigation;\r\n lang: number = 0;\r\n\r\n get titles() { return this.securityGroupForm.get('titles') as FormArray; }\r\n //get descriptions() { return this.securityGroupForm.get('descriptions') as FormArray; }\r\n get objectsActions() { return this.securityGroupForm.get('objectsActions') as FormArray; }\r\n get displayedColumnsTitles() { return this.displayedColumns.map(c => c.titles[this.lang]); }\r\n get Role() {\r\n return Role;\r\n }\r\n\r\n constructor(private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private securityService: SecurityService,\r\n private location: Location,\r\n private confirmService: ConfirmService,\r\n private translate: TranslateService,\r\n public auth: AuthService) {\r\n\r\n this.navigation = this.router.getCurrentNavigation();\r\n this.mode = 'LIST';\r\n this.objectsCol = { id: 0, titles: ['الكائنات', 'Objects'] };\r\n }\r\n\r\n async ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.formInit();\r\n this.dataSource = new MatTableDataSource();\r\n this.loader.load(LoaderType.Nav);\r\n this.mode = this.route.snapshot.data.mode;\r\n\r\n this.securityRoles = await this.securityService.getAccountRoles();\r\n this.securityGroups = (await this.securityService.getAccountGroups(null)).groups;\r\n\r\n if (this.mode == 'LIST' || this.mode == 'UPDATE') {\r\n //this.securityService.getAccountGroups(null).then(vm => {\r\n // //console.log(vm);\r\n // this.securityGroups = vm.groups;\r\n let groupId;\r\n if (this.mode == 'UPDATE') {\r\n groupId = this.route.snapshot.paramMap.get('id');\r\n }\r\n else if (this.navigation && this.navigation.extras.state) {\r\n const a = this.navigation.extras.state as { id: string };\r\n groupId = a.id;\r\n } else groupId = this.securityGroups[0].id;\r\n\r\n this.onSelectGroup(groupId);\r\n //})\r\n //.finally(() => this.loader.load(LoaderType.Nav, false));\r\n } else if (this.mode == 'ADD') {\r\n // this.securityService.getAccountRoles().then(vm => {\r\n\r\n\r\n let _group = new SecurityGroupDto();\r\n _group.id = null;\r\n _group.titles = ['', ''];\r\n //_group.descriptions = ['', ''];\r\n _group.availableActions = this.securityRoles.availableActions;\r\n _group.objectsActions = this.securityRoles.objectsActions;\r\n _group.isSystemGroup = false;\r\n\r\n this.onSelectGroup(_group);\r\n this.mode = 'ADD';\r\n //this.location.replaceState(`/${this.translate.currentLang}/security/groups/add`);\r\n this.securityGroupForm.enable();\r\n this.formEnabled = true;\r\n\r\n\r\n // this.selectedGroup.objectsActions.filter(x => x.securityObject.id == 1 && x.actions.indexOf(2) > -1)[0].\r\n //console.log(this.selectedGroup);\r\n\r\n // }).catch(e => {\r\n // // //console.log(e);\r\n // // this.alert.error('_MESSAGE_ERROR_LOADING_DATA');\r\n // }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n } else this.loader.load(LoaderType.Nav, false);\r\n }\r\n\r\n private formInit() {\r\n this.securityGroupForm = this.fb.group({\r\n titles: this.fb.array([\r\n ['', [Validators.required, nonEnglishCharactersValidator, Validators.minLength(3), Validators.maxLength(50)]],\r\n ['', [Validators.required, nonArabicCharactersValidator, Validators.minLength(3), Validators.maxLength(50)]]\r\n ]),\r\n objectsActions: this.fb.array([])\r\n });\r\n }\r\n\r\n private addCheckboxes(objectsActions: ObjectActionDto[], empty: boolean = false) {\r\n this.clearSelections();\r\n let matrixIndex = 0;\r\n let formArray = (this.securityGroupForm.controls.objectsActions as FormArray);\r\n formArray.clear();\r\n objectsActions.forEach((objAct, i) => {\r\n objAct.actions.forEach((actionId, _i) => {\r\n const value = !empty && actionId != 0 ? objAct.securityObject.id + \",\" + actionId : null;\r\n const control = new FormControl(value);\r\n formArray.push(control);\r\n\r\n if (!empty && actionId != 0)\r\n this.cellToggle(objAct, actionId, matrixIndex, false);\r\n\r\n matrixIndex++;\r\n });\r\n });\r\n }\r\n\r\n onSelectGroup(group: string | SecurityGroupDto, path: string = null) {\r\n //console.log(group);\r\n this.loader.load(LoaderType.Nav);\r\n this.selectedGroup = group instanceof SecurityGroupDto ?\r\n group :\r\n _.cloneDeep(this.securityGroups.find(g => g.id == group));\r\n\r\n //console.log(this.selectedGroup);\r\n\r\n this.dataSource = new MatTableDataSource(this.selectedGroup.objectsActions);\r\n this.securityActions = this.selectedGroup.availableActions;\r\n this.selections = [];\r\n this.securityActions.forEach(() => this.selections.push(new SelectionModel(true, [])));\r\n this.displayedColumns = [this.objectsCol];\r\n this.displayedColumns.push(...this.securityActions);\r\n\r\n this.securityGroupForm.patchValue({\r\n titles: this.selectedGroup.titles,\r\n //descriptions: ['', '']\r\n });\r\n\r\n this.addCheckboxes(this.selectedGroup.objectsActions, group instanceof SecurityGroupDto && !group.id);\r\n\r\n this.securityGroupForm.disable();\r\n this.formEnabled = false;\r\n this.mode = 'LIST';\r\n if (path)\r\n this.location.replaceState(`/${this.translate.currentLang}/${path}`);\r\n\r\n //this.location.replaceState(`/${this.translate.currentLang}/security/groups/`);\r\n\r\n\r\n this.loader.load(LoaderType.Nav, false);\r\n }\r\n\r\n isColSelected(actionId: number) {\r\n const i = this.getActionIndex(actionId);\r\n\r\n const numSelected = this.selections[i].selected.length;\r\n const numRows = [...this.dataSource.data].filter(d => [...d.actions].map(x => Math.abs(x)).indexOf(actionId) > -1).length;\r\n\r\n return numSelected == numRows;\r\n }\r\n\r\n isRowSelected(row: ObjectActionDto, actionId: number) {\r\n const i = this.getActionIndex(actionId);\r\n return this.selections[i].isSelected(row.securityObject.id + \",\" + actionId);\r\n }\r\n\r\n colToggle(actionId: number) {\r\n const i = this.getActionIndex(actionId);\r\n const colSelected = this.isColSelected(actionId);\r\n\r\n this.dataSource.data\r\n .forEach((row, _i) => {\r\n ////console.warn(actionId);\r\n ////console.warn(row);\r\n if (row.actions[i] != 0) {\r\n ////console.warn(row.actions[i]);\r\n const value = row.securityObject.id + \",\" + actionId;\r\n //const value = row.securityObject.id + \",\" + Math.abs(row.actions[i]);\r\n const matrixIndex = (this.displayedColumns.length - 1) * _i + i;\r\n if (!colSelected) {\r\n if (!this.selections[i].isSelected(value)) {\r\n this.cellToggle(row, actionId, matrixIndex);\r\n this.selections[i].select(value);\r\n }\r\n } else {\r\n this.cellToggle(row, actionId, matrixIndex);\r\n this.selections[i].deselect(value);\r\n }\r\n }\r\n });\r\n }\r\n\r\n cellToggle(row: ObjectActionDto, actionId: number, matrixIndex: number, event: boolean = true) {\r\n\r\n const i = this.getActionIndex(actionId);\r\n const value = row.securityObject.id + \",\" + this.securityActions[i].id;\r\n //const value = row.securityObject.id + \",\" + actionId;\r\n let control = (this.securityGroupForm.controls.objectsActions as FormArray).controls[matrixIndex];\r\n ////console.log(actionId, value);\r\n if (actionId < 0 && !event) {\r\n control.reset();\r\n this.selections[i].deselect(value);\r\n }\r\n else {\r\n if (!this.isRowSelected(row, this.securityActions[i].id)) {\r\n control.setValue(value);\r\n this.selections[i].select(value);\r\n } else {\r\n control.reset();\r\n this.selections[i].toggle(value);\r\n }\r\n }\r\n }\r\n\r\n getActionIndex(actionId: number) {\r\n return this.securityActions.findIndex(x => x.id == Math.abs(actionId));\r\n }\r\n\r\n //todo: include confirmation pop-up\r\n clearSelections() {\r\n //confirm first\r\n this.selections.forEach(s => s.clear());\r\n }\r\n\r\n totalSelected() {\r\n let total = 0;\r\n this.selections.forEach(s => {\r\n total += s.selected.length;\r\n })\r\n return total;\r\n }\r\n\r\n exit() {\r\n this.onSelectGroup(this.securityGroups[0].id, 'security/groups');\r\n }\r\n\r\n update() {\r\n\r\n\r\n let _group = new SecurityGroupDto();\r\n _group.id = this.selectedGroup.id;\r\n _group.titles = this.selectedGroup.titles;\r\n //_group.descriptions = ['', ''];\r\n _group.availableActions = this.securityRoles.availableActions;\r\n _group.objectsActions = this.securityRoles.objectsActions;\r\n _group.isSystemGroup = false;\r\n\r\n //console.log(this.securityRoles);\r\n //map\r\n _group.objectsActions.forEach((oa, i) => {\r\n // //console.log(oa.securityObject.id);\r\n // //console.log(this.selectedGroup.objectsActions[i]);\r\n if (this.selectedGroup.objectsActions.map(x => x.securityObject.id).indexOf(oa.securityObject.id) > -1)\r\n oa.actions = this.selectedGroup.objectsActions.filter(x => x.securityObject.id == oa.securityObject.id)[0].actions;\r\n else oa.actions = oa.actions.map(x => x > 0 ? -x : (x < 0 ? x : 0))\r\n // if (oa.securityObject.id == this.selectedGroup.objectsActions[i].securityObject.id)\r\n // oa.actions = [...this.selectedGroup.objectsActions[i].actions];\r\n\r\n\r\n })\r\n //console.log(this.totalSelected())\r\n\r\n this.onSelectGroup(_group, 'security/groups/update/' + this.selectedGroup.id);\r\n\r\n //bind all roles,\r\n //fetch current data\r\n //this.location.replaceState(`/${this.translate.currentLang}/security/groups/update/${this.selectedGroup.id}`);\r\n this.mode = 'UPDATE';\r\n\r\n //this.objectsActions.controls.forEach(c => { c.enable(); //console.log(c); });\r\n this.securityGroupForm.enable();\r\n this.formEnabled = true;\r\n\r\n }\r\n\r\n reset() {\r\n this.securityGroupForm.reset();\r\n this.clearSelections()\r\n // if (this.mode == 'ADD')\r\n // this.router.navigate(['/', this.translate.currentLang, 'security', 'groups']);\r\n\r\n // //reset ?\r\n // this.location.replaceState(`/${this.translate.currentLang}/security/groups/list`);\r\n // this.onSelectGroup(this.selectedGroup.id); //to refresh\r\n }\r\n\r\n delete(id: string) {\r\n //this._loading();\r\n this.loader.load(LoaderType.Body);\r\n this.securityService.deleteAccountGroup(id)\r\n .then(r => {\r\n // //console.log(r);\r\n if (r) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n const groupIndex = this.securityGroups.findIndex(g => g.id == id);\r\n this.securityGroups.splice(groupIndex, 1);\r\n\r\n //display the first group as a default option\r\n this.onSelectGroup(this.securityGroups[0].id, 'security/groups');\r\n } else {\r\n this.alert.failure(DefaultAlertAction.DELETING);\r\n }\r\n })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n tryDelete() {\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'SEC_TITLE_SECURITY_GROUP',\r\n title: this.selectedGroup.titles[this.lang],\r\n note: 'SEC_GROUP_CONFIRM_DELETE_NOTE',\r\n dangerNote: 'SEC_GROUP_CONFIRM_DELETE_DANGER_NOTE'\r\n }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.delete(this.selectedGroup.id);\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.securityGroupForm.valid)\r\n return Utils.validateAllFormFields(this.securityGroupForm);\r\n\r\n this.loader.load(LoaderType.Body);\r\n const [availableActions, objectsActions] = this.mapCheckboxes();\r\n\r\n //console.log(this.selectedGroup);\r\n const _form = _.cloneDeep(this.selectedGroup);\r\n\r\n _form.titles = this.securityGroupForm.controls['titles'].value;\r\n //_form.descriptions = this.securityGroupForm.controls['descriptions'].value;\r\n _form.availableActions = availableActions;\r\n _form.objectsActions = objectsActions;\r\n _form.isSystemGroup = false;\r\n\r\n //console.log(_form);\r\n if (this.mode == 'ADD') {\r\n _form.id = null;\r\n this.securityService.createAccountGroup(_form)\r\n .then(result => {\r\n //console.log(result)\r\n if (result != null) {\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n const navigationExtras: NavigationExtras = { state: { id: result } };\r\n this.router.navigate(['/', this.translate.currentLang, 'security', 'groups'], navigationExtras);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n else if (this.mode == 'UPDATE') {\r\n const isDelete = this.securityGroupForm.value.objectsActions.filter(oa => oa != null).length == 0;\r\n if (isDelete) {\r\n this.tryDelete();\r\n }\r\n else {\r\n //console.log(_form);\r\n this.securityService.updateAccountGroup(_form)\r\n .then(r => {\r\n if (r) {\r\n\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n const groupIndex = this.securityGroups.findIndex(g => g.id == _form.id);\r\n\r\n\r\n //add recently saved version to cache\r\n // //console.log(this.securityGroups[groupIndex]);\r\n\r\n // //map 'n/a' values \r\n // const __form = _.cloneDeep(_form);;\r\n\r\n // __form.objectsActions.forEach(x)\r\n\r\n\r\n this.securityGroups[groupIndex] = _.cloneDeep(_form);\r\n } else {\r\n this.alert.failure(DefaultAlertAction.UPDATING);\r\n }\r\n })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.onSelectGroup(this.selectedGroup.id, 'security/groups');\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n private mapCheckboxes(): [SecurityAction[], ObjectActionDto[]] {\r\n // //console.log(this.securityGroupForm.controls.objectsActions);\r\n const formArr = this.securityGroupForm.controls.objectsActions as FormArray;\r\n const availableActions = _.cloneDeep(this.selectedGroup.availableActions);\r\n const objectsActions = _.cloneDeep(this.selectedGroup.objectsActions);\r\n\r\n // //console.log(formArr);\r\n // //console.log(availableActions);\r\n // //console.log(objectsActions);\r\n\r\n let matrixIndex = 0;\r\n objectsActions.forEach(oa => {\r\n const _actions = [...oa.actions];\r\n //console.log(_actions);\r\n oa.actions = [];\r\n availableActions.forEach((action, i) => {\r\n let val = formArr.controls[matrixIndex++].value;\r\n\r\n //let _action = _actions[i] == 0 ? 0 : (val ? action.id : -action.id);\r\n\r\n // if (action.id == 2 && oa.securityObject.id == 1) {\r\n // val = 'value';\r\n // }\r\n const _action = _actions[i] == 0 ? 0 : (val ? action.id : -action.id);\r\n //console.log(_action);\r\n\r\n oa.actions.push(_action);\r\n });\r\n\r\n });\r\n return [availableActions, objectsActions];\r\n }\r\n\r\n // private _loading(status: boolean = true) {\r\n // this.loading = status;\r\n // }\r\n\r\n\r\n\r\n add() {\r\n this.router.navigate(['/', this.translate.currentLang, 'security', 'groups', 'add']);\r\n this.ngOnInit();\r\n }\r\n undo(mode: string) {\r\n if (mode == 'ADD')\r\n this.router.navigate(['/', this.translate.currentLang, 'security', 'groups', 'add']);\r\n }\r\n}\r\n","import { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { FormGroup, FormBuilder, Validators, FormArray, FormControl } from '@angular/forms';\r\nimport { UserSecurityGroupsDto, SecurityGroup, UserDto, UsersSecurityGroupsVm } from '../../models/security-groups.model';\r\nimport { SecurityService } from '../../services/security.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport * as _ from 'lodash';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { UpdateModal } from 'src/app/shared/models/modal';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\n\r\n\r\n@Component({\r\n selector: 'mac-users-groups',\r\n templateUrl: './users-groups.component.html',\r\n styleUrls: ['./users-groups.component.scss'],\r\n providers: [SecurityService]\r\n})\r\nexport class UsersGroupsComponent implements OnInit {\r\n usersGroupsForm: FormGroup;\r\n securityGroups: SecurityGroup[];\r\n cashedVm: UsersSecurityGroupsVm;\r\n displayedColumns: any[] = [];\r\n objectsCol: {};\r\n dataSource = new MatTableDataSource();\r\n selections: SelectionModel[] = [];\r\n loading: boolean;\r\n langIndex: number = 0;\r\n\r\n get displayedColumnsTitles() { return this.displayedColumns.map(c => c.titles[0]/*[this.langIndex]*/); }\r\n get Role(){\r\n return Role;\r\n }\r\n\r\n constructor(private fb: FormBuilder,\r\n private securityService: SecurityService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n public auth: AuthService,\r\n private translate: TranslateService) { }\r\n\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.dataSource.data = [];\r\n this.formInit();\r\n\r\n this.objectsCol = { id: 0, titles: [this.langIndex == 0 ? 'المستخدمين': 'Users'] };\r\n this.displayedColumns = [this.objectsCol];\r\n\r\n //fetch data from server\r\n this.loader.load(LoaderType.Nav);\r\n this.securityService.getUsersSecurityGroups().then(vm => {\r\n this.cashedVm = vm;\r\n this.dataSource = new MatTableDataSource(vm.usersGroups);\r\n this.securityGroups = vm.availableGroups;\r\n this.securityGroups.forEach(() => this.selections.push(new SelectionModel(true, [])));\r\n this.displayedColumns.push(...this.securityGroups);\r\n this.addCheckboxes(vm.usersGroups);\r\n }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n isColSelected(groupId: string) {\r\n const i = this.getGroupIndex(groupId);\r\n const numSelected = this.selections[i].selected.length;\r\n const numRows = this.dataSource.data.length - 1; //excluding current user\r\n\r\n return numSelected == numRows;\r\n }\r\n\r\n isRowSelected(row: UserSecurityGroupsDto, groupId: string) {\r\n const i = this.getGroupIndex(groupId);\r\n return this.selections[i].isSelected(row.user.id + \",\" + groupId);\r\n }\r\n\r\n colToggle(groupId: string) {\r\n const i = this.getGroupIndex(groupId);\r\n const colSelected = this.isColSelected(groupId);\r\n\r\n this.dataSource.data.filter(d => d.user.id != this.auth.currentUser.userId)\r\n .forEach((row, _i) => {\r\n const value = row.user.id + \",\" + groupId;\r\n const matrixIndex = (this.displayedColumns.length - 1) * _i + i;\r\n if (!colSelected) {\r\n if (!this.selections[i].isSelected(value))\r\n this.cellToggle(row, groupId, matrixIndex);\r\n this.selections[i].select(value);\r\n } else {\r\n this.cellToggle(row, groupId, matrixIndex);\r\n this.selections[i].deselect(value);\r\n }\r\n });\r\n }\r\n\r\n cellToggle(row: UserSecurityGroupsDto, groupId: string, matrixIndex: number) {\r\n const i = this.getGroupIndex(groupId);\r\n\r\n const value = row.user.id + \",\" + groupId;\r\n let control = (this.usersGroupsForm.controls.usersGroups as FormArray).controls[matrixIndex];\r\n\r\n if (!control.disabled) {\r\n !this.isRowSelected(row, groupId) ?\r\n control.setValue(value) :\r\n control.reset();\r\n\r\n this.selections[i].toggle(value);\r\n }\r\n }\r\n\r\n getGroupIndex(groupId: string) {\r\n return this.securityGroups.findIndex(x => x.id == groupId);\r\n }\r\n\r\n //todo: include confirmation pop-up\r\n clearSelections() {\r\n //confirm first\r\n this.selections.forEach(s => s.clear());\r\n }\r\n\r\n\r\n onSubmit() {\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: 'SEC_LINK_USERS', \r\n type: 'SEC_TITLE_USERS_GROUPS', \r\n action: '_ACTION_ASSIGN',\r\n confirmQuestion: 'SEC_USER_GROUPS_CONFIRM_UPDATE_CONFIRMATION_QUESTION',\r\n note: 'SEC_USER_GROUPS_CONFIRM_UPDATE_NOTE',\r\n dangerNote: ' ',\r\n submitText: '_ACTION_ASSIGN'\r\n }));\r\n \r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.update();\r\n });\r\n }\r\n\r\n private update() {\r\n this.loader.load(LoaderType.Body);\r\n const dto = this.mapCheckboxes();\r\n this.securityService.updateUsersSecurityGroups(dto)\r\n .then(r => {\r\n if (r)\r\n this.alert.success('_ACTION_ASSIGNING');\r\n else\r\n this.alert.failure('_ACTION_ASSIGNING');\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private mapCheckboxes() {\r\n const formArr = this.usersGroupsForm.controls.usersGroups as FormArray;\r\n const result = new UsersSecurityGroupsVm();\r\n result.availableGroups = _.cloneDeep(this.cashedVm.availableGroups);\r\n result.usersGroups = _.cloneDeep(this.cashedVm.usersGroups);\r\n\r\n let matrixIndex = 0;\r\n result.usersGroups.forEach(ug => {\r\n ug.user.names = [];\r\n ug.securityGroups = [];\r\n result.availableGroups.forEach(group => {\r\n group.titles = group.descriptions = [];\r\n ug.securityGroups.push(formArr.controls[matrixIndex++].value ? group.id : null);\r\n });\r\n });\r\n return result;\r\n }\r\n\r\n // private _loading(status: boolean = true) {\r\n // this.loading = status;\r\n // }\r\n\r\n private formInit() {\r\n this.usersGroupsForm = this.fb.group({\r\n usersGroups: this.fb.array([])\r\n });\r\n }\r\n\r\n private addCheckboxes(usersGroups: UserSecurityGroupsDto[], empty: boolean = false) {\r\n this.clearSelections();\r\n let matrixIndex = 0;\r\n let formArray = (this.usersGroupsForm.controls.usersGroups as FormArray);\r\n formArray.clear();\r\n usersGroups.forEach((ug, i) => {\r\n ug.securityGroups.forEach((groupId, _i) => {\r\n const value = !empty && groupId ? ug.user.id + \",\" + groupId : null;\r\n\r\n const control = ug.user.id == this.auth.currentUser.userId \r\n || !this.auth.currentUser.isInRole(Role.USERS_SECURITY_GROUPS_UPDATE) ?\r\n new FormControl({ value: value, disabled: true })\r\n : new FormControl(value);\r\n formArray.push(control);\r\n\r\n if (!empty && groupId)\r\n this.cellToggle(ug, groupId, matrixIndex);\r\n\r\n matrixIndex++;\r\n });\r\n });\r\n }\r\n\r\n}\r\n","export class SecurityGroupsVm {\r\n groups: SecurityGroupDto[];\r\n}\r\n\r\nexport class SecurityGroupsLookupVm {\r\n groups: SecurityGroupLookupDto[];\r\n}\r\n\r\nexport class SecurityRolesVm {\r\n availableActions: SecurityAction[];\r\n objectsActions: ObjectActionDto[];\r\n}\r\n\r\nexport class UsersSecurityGroupsVm {\r\n availableGroups: SecurityGroup[];\r\n usersGroups: UserSecurityGroupsDto[];\r\n}\r\n\r\nexport class UserSecurityGroupsDto {\r\n user: UserDto;\r\n securityGroups: string[];\r\n}\r\n\r\nexport class UserDto {\r\n id: string;\r\n names: string[];\r\n}\r\n\r\nexport class SecurityGroupLookupDto {\r\n id: string;\r\n titles: string[];\r\n}\r\n\r\nexport class SecurityGroupDto {\r\n id: string;\r\n titles: string[];\r\n descriptions: string[];\r\n availableActions: SecurityAction[];\r\n objectsActions: ObjectActionDto[];\r\n isSystemGroup: boolean;\r\n}\r\n\r\nexport class ObjectActionDto {\r\n securityObject: SecurityObject;\r\n actions: number[];\r\n}\r\n\r\nexport interface SecurityAction {\r\n id: number;\r\n titles: string[];\r\n}\r\n\r\nexport interface SecurityObject {\r\n id: number;\r\n titles: string[];\r\n}\r\n\r\nexport interface SecurityGroup {\r\n id: string;\r\n titles: string[];\r\n descriptions: string[];\r\n}","import { SecurityGroupsVm, SecurityRolesVm, SecurityGroupDto, SecurityGroupsLookupVm, UsersSecurityGroupsVm } from './../models/security-groups.model';\r\nimport { Injectable } from '@angular/core';\r\nimport { ApiHandler } from '../../../core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\n\r\n@Injectable()\r\nexport class SecurityService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n public getAccountGroups(lang: Language = null) {\r\n return this.api.get(EndPoint.SECURITY_GROUPS, null, lang).toPromise();\r\n }\r\n\r\n public getAccountRoles(lang: Language = null) {\r\n return this.api.get(EndPoint.SECURITY_ROLES, null, lang).toPromise();\r\n }\r\n\r\n public createAccountGroup(dto: SecurityGroupDto) {\r\n return this.api.create(EndPoint.SECURITY_GROUPS, dto).toPromise();\r\n }\r\n\r\n public updateAccountGroup(dto: SecurityGroupDto) {\r\n return this.api.update(EndPoint.SECURITY_GROUPS, dto).toPromise();\r\n }\r\n\r\n public deleteAccountGroup(id: string) {\r\n return this.api.delete(EndPoint.SECURITY_GROUPS, id).toPromise();\r\n }\r\n\r\n public getAccountGroupsLookup(lang: Language = null) {\r\n return this.api.get(EndPoint.SECURITY_GROUPS_LOOKUP, null, lang).toPromise();\r\n }\r\n\r\n public getUsersSecurityGroups() {\r\n return this.api.get(EndPoint.SECURITY_USERS_GROUPS).toPromise();\r\n }\r\n\r\n public updateUsersSecurityGroups(dto: UsersSecurityGroupsVm) {\r\n return this.api.update(EndPoint.SECURITY_USERS_GROUPS, dto).toPromise();\r\n }\r\n\r\n\r\n public isClaimsApplicable(id: string) {\r\n return this.api.get(EndPoint.SECURITY_CLAIMS_APPLICABLE, [id]).toPromise();\r\n }\r\n\r\n\r\n\r\n\r\n // validation\r\n\r\n //todo: convert to generic method, change language parameter to be global enum\r\n public validateGroupTitle(title: string, language: number) {\r\n //todo: implement async validation generic on one controller\r\n }\r\n}","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize, filter } from 'rxjs/operators';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { UsersService } from './users.service';\r\nimport { UserDto, UsersVm } from '../models/user';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { AccountMetaDto } from '../../accounts/models/account';\r\n\r\n\r\nexport class UsersDataSource implements DataSource {\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n public UsersSubject = new BehaviorSubject([]);\r\n public ParentsSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private usersService: UsersService, private loader: LoadingService) {\r\n\r\n }\r\n\r\n loadUsers(pageIndex: number, pageSize: number, sort: string, direction: string, filter: string = '', accountId: number = 0) {\r\n this.usersService.getUsers(pageIndex, pageSize, sort, direction, filter, accountId)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: UsersVm) => {\r\n result.users.forEach(user => {\r\n user.parentAccounts = populateAccountsSelect([user.parentAccounts])[0];\r\n });\r\n this.UsersSubject.next(result.users);\r\n this.ParentsSubject.next(result.parentAccounts);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.UsersSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.UsersSubject.complete();\r\n this.ParentsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { map } from 'rxjs/operators';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { ValidationDto } from 'src/app/core/models/validation';\r\nimport { SystemObject } from 'src/app/core/models/enums/system-object';\r\nimport { UserDto, UsersVm, UserProfileVm, UserMetaVm, UserDataVm } from '../models/user';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class UsersService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n public getUserMeta(lang: Language = null) {\r\n return this.api.get(EndPoint.SECURITY_USER_META, null, lang).toPromise();\r\n }\r\n\r\n public getUserProfile(lang: Language = null): Promise {\r\n return this.api.get(EndPoint.SECURITY_USER_PROFILE, null, lang).toPromise();\r\n }\r\n\r\n public updateUserProfile(profile: UserProfileVm) {\r\n return this.api.update(EndPoint.SECURITY_USER_PROFILE, profile).toPromise();\r\n }\r\n\r\n public getAccountUsers(accountId: number = 0, lang: Language = null): Promise {\r\n return this.api.get(EndPoint.SECURITY_USERS, accountId, { lang }).toPromise();\r\n }\r\n\r\n public getUsers(pageIndex: number, pageSize: number, sort: string, direction: string, filter: string = '', accountId: number = 0): Observable {\r\n return this.api.get(EndPoint.SECURITY_USERS, accountId, { pageIndex, pageSize, sort, direction, filter });\r\n }\r\n\r\n public getUserData(id: string, lang: Language = null): Promise {\r\n return this.api.get(EndPoint.SECURITY_USER, id, lang).toPromise();\r\n }\r\n\r\n public updateUserData(user: UserDto) {\r\n return this.api.update(EndPoint.SECURITY_USER, user).toPromise();\r\n }\r\n\r\n public createUser(user: UserDto) {\r\n return this.api.create(EndPoint.SECURITY_USER, user).toPromise();\r\n }\r\n\r\n public deleteUser(id: string) {\r\n return this.api.delete(EndPoint.SECURITY_USER, id).toPromise();\r\n }\r\n\r\n public updateUserStatus(id: string, active: boolean) {\r\n return this.api.update(EndPoint.SECURITY_USER, null, [id, active]).toPromise();\r\n }\r\n\r\n\r\n private duplicatedUsername(username: string) {\r\n const dto = new ValidationDto();\r\n dto.objectType = SystemObject.USER;\r\n dto.value = username;\r\n\r\n return this.api.validate(dto);\r\n }\r\n\r\n public validateUsernameNotTaken = (control: AbstractControl) => {\r\n return this.duplicatedUsername(control.value).pipe(\r\n map(res => {\r\n return res ? null : { duplicatedUsername: true };\r\n }));\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n// export class AccountUserDto {\r\n// id: string;\r\n// username: string;\r\n// name: string;\r\n// email: string;\r\n// phoneNumber: string;\r\n// isActive: boolean;\r\n// avatar: string;\r\n// securityGroups: string[];\r\n// }\r\n\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ChartDataSets, ChartOptions, ChartLayoutOptions, ChartType } from 'chart.js';\r\nimport { Color, Label } from 'ng2-charts';\r\nimport { StatisticsService } from '../../services/statistics.service';\r\n\r\n@Component({\r\n selector: 'mac-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss'],\r\n providers: [StatisticsService]\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n lineChartData: ChartDataSets[] = [{ data: [] }];\r\n // [\r\n // { data: [133, 59, 280, 81, 56, 55, 40, 59, 280, 81, 120, 552], label: 'رخصة دولية' },\r\n // { data: [59, 280, 81, 56, 55, 40, 59, 280, 81, 120, 552, 133], label: 'دفتر تربتيك يمني' },\r\n // { data: [280, 81, 56, 55, 40, 59, 280, 81, 120, 552, 133, 59], label: 'دفتر تربتيك دولي' },\r\n\r\n // ];\r\n lineChartLabels: Label[] = []; //['July-19', 'August-19', 'September-19', 'October-19', 'November-19', 'December-19', 'January 20', 'February-20', 'March-20', 'April-20', 'May-20', 'June-20'];\r\n lineChartOptions: (ChartOptions & { annotation: any }) = {\r\n responsive: true,\r\n annotation: null\r\n };\r\n lineChartColors: Color[] = [\r\n {\r\n borderColor: '#038fde',\r\n backgroundColor: '#038fdebf'\r\n },\r\n {\r\n borderColor: '#dc3545'\r\n },\r\n {\r\n borderColor: '#28a745'\r\n },\r\n ];\r\n lineChartLegend = true;\r\n lineChartType: ChartType = 'bar';\r\n lineChartPlugins = [];\r\n\r\n constructor(private loader: LoadingService,\r\n private statisticsService: StatisticsService) { }\r\n\r\n ngOnInit() {\r\n this.loader.load(LoaderType.Nav, false);\r\n // //this.loader.load(LoaderType.Body);\r\n // this.statisticsService\r\n // .getIssuingsPerMonth()\r\n // .then(result => {\r\n // this.lineChartLabels = result.lineChartLabels.map(d => d.monthLabel);\r\n // this.lineChartData = result.dataSets.map(d => { return { data: d.issuings, label: d.stockType.titles[0] } });\r\n // })\r\n // .finally(() => {\r\n // //setTimeout(() => {\r\n // this.loader.load(LoaderType.Nav, false);\r\n // //document.getElementsByTagName('mac-dashboard')[0].parentElement.parentElement.style.display = 'none';\r\n // //}, 1000);\r\n // });\r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n document.getElementsByTagName('mac-dashboard')[0].parentElement.parentElement.setAttribute('hidden', 'hidden');\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { IssuingsPerMonthVm } from '../models/statistics.model';\r\n\r\n@Injectable()\r\nexport class StatisticsService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n getIssuingsPerMonth() {\r\n return this.api.get(EndPoint.STATISTICS_ISSUINGS_PER_MONTH).toPromise();\r\n }\r\n}\r\n\r\n","import { Component, OnInit, ElementRef } from '@angular/core';\r\nimport { TransactionDto } from '../../models/transactions';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n\r\n@Component({\r\n selector: 'mac-lic-transactions-print',\r\n templateUrl: './lic-transactions-print.component.html',\r\n styleUrls: ['./lic-transactions-print.component.scss']\r\n})\r\nexport class LicTransactionsPrintComponent implements OnInit {\r\n\r\n transaction: TransactionDto;\r\n receiptTemplate: string;\r\n transactionLevel: number;\r\n\r\n constructor(private elRef: ElementRef, public translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n print(transaction: TransactionDto) {\r\n this.transaction = transaction;\r\n this.transactionLevel = transaction.fromAccountId && transaction.toAccountId ? 1 : 0;\r\n this.receiptTemplate = `/assets/images/StockTransactionsReceipt${this.transactionLevel}-${this.translate.currentLang}.jpeg`;\r\n\r\n setTimeout(() => {\r\n const printHtmlContent = this.elRef.nativeElement.innerHTML;// document.getElementById('stockReceipt').innerHTML;\r\n Utils.printHtml(printHtmlContent);\r\n }, 500);\r\n }\r\n\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { Component, OnInit, ViewChild, ElementRef, Input } from '@angular/core';\r\nimport { LoaderType } from 'src/app/shared/services/loading';\r\nimport * as noUiSlider from 'nouislider';\r\nimport * as wNumb from 'wnumb';\r\nimport { StockRange } from '../../models/stock-range';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { TransactionLabelDetails } from '../../models/transaction-label-details';\r\n\r\nexport class Range {\r\n from: number;\r\n to: number;\r\n count: number;\r\n}\r\n\r\n\r\n\r\n@Component({\r\n selector: 'mac-stock-slider',\r\n templateUrl: './stock-slider.component.html',\r\n styleUrls: ['./stock-slider.component.scss']\r\n})\r\nexport class StockSliderComponent implements OnInit {\r\n\r\n transactionDetails: TransactionLabelDetails = {};\r\n\r\n count: number = 1;\r\n startRange = 0;\r\n fromRange: number;\r\n toRange: number;\r\n @Input() selectedStock: number[];\r\n @ViewChild('slider', { static: true }) slider: ElementRef;\r\n rangeEnabled: boolean;\r\n countMin: number = 1;\r\n countMax: number;\r\n rangeMin: number;\r\n rangeMax: number;\r\n //alertClass: string;\r\n //operation: string;\r\n // fromAccount: string = '';\r\n // toAccount: string = '';\r\n // stockType: string = '';\r\n\r\n _range: number[] = [];// {title: number, value: number}[] = [];\r\n _rangeCount: number[] = [];\r\n\r\n constructor(private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n }\r\n\r\n ngAfterViewInit() {\r\n noUiSlider.create(this.slider.nativeElement, {\r\n start: [1, 1],\r\n direction: this.translate.currentLang == 'ar' ? 'rtl' : 'ltr',\r\n tooltips: [false, false],\r\n //keyboardSupport: false,\r\n animate: true,\r\n animationDuration: 300,\r\n step: 1,\r\n connect: true,\r\n range: {\r\n 'min': 1,\r\n 'max': 2\r\n }\r\n });\r\n // disable initially\r\n //this._rangeEnable(false);\r\n this.slider.nativeElement.noUiSlider.on('slide', (e) => {\r\n this.fromRange = parseInt(e[0]);\r\n this.toRange = parseInt(e[1]);\r\n this.count = this.toRange - this.fromRange + 1;\r\n\r\n this.transactionDetails.fromRange = this.fromRange;\r\n this.transactionDetails.toRange = this.toRange;\r\n this.transactionDetails.count = this.count;\r\n });\r\n }\r\n\r\n resetSlider(value: number = 1) {\r\n this.slider.nativeElement.noUiSlider.updateOptions({\r\n start: [value, value],\r\n tooltips: [false, false],\r\n range: {\r\n 'min': value,\r\n 'max': value + 1\r\n }\r\n });\r\n this._rangeEnable(false);\r\n }\r\n\r\n onSelectRange(range: number[]) {\r\n\r\n // console.warn(range);\r\n // this._range \r\n this._range = Utils.spreadRange(range);\r\n this._rangeCount = Utils.spreadRange([1, range[1] - range[0] + 1]);\r\n\r\n this.selectedStock = range ? range : this.selectedStock;\r\n this.fromRange = range[0];\r\n this.toRange = range.length > 1 ? range[1] : range[0];\r\n this.count = range.length > 1 ? range[1] - range[0] + 1 : 1;\r\n this.countMax = this.count;\r\n this.rangeMin = this.fromRange;\r\n this.rangeMax = this.toRange;\r\n\r\n if (this.count <= 1)\r\n this.resetSlider(this.fromRange);\r\n else {\r\n this._rangeEnable();\r\n this.slider.nativeElement.noUiSlider.updateOptions({\r\n start: [this.fromRange, this.toRange],\r\n //tooltips: [wNumb({ decimal: 0 }), wNumb({ decimal: 0 })],\r\n range: {\r\n 'min': this.fromRange,\r\n 'max': this.toRange\r\n }\r\n });\r\n }\r\n\r\n this.transactionDetails.fromRange = this.fromRange;\r\n this.transactionDetails.toRange = this.toRange;\r\n this.transactionDetails.count = this.count;\r\n }\r\n\r\n onRangeInput(control: 'from' | 'count' | 'to', value: number) {\r\n\r\n this.count = this.count < this.countMin ? this.countMin\r\n : this.count > this.countMax ? this.countMax\r\n : this.count;\r\n\r\n this.fromRange = this.fromRange < this.rangeMin ? this.rangeMin\r\n : this.fromRange > this.rangeMax ? this.rangeMax\r\n : this.fromRange;\r\n\r\n this.toRange = this.toRange < this.rangeMin ? this.rangeMin\r\n : this.toRange > this.rangeMax ? this.rangeMax\r\n : this.toRange;\r\n\r\n if (control == 'from') {\r\n if ((this.fromRange + this.count - 1) <= this.rangeMax)\r\n this.toRange = this.fromRange + this.count - 1;\r\n else {\r\n this.toRange = this.rangeMax;\r\n this.count = this.toRange - this.fromRange + 1;\r\n //this.fromRange -= (this.count - (this.toRange - this.fromRange) - 1);\r\n }\r\n } else if (control == 'to') {\r\n if ((this.toRange - this.count + 1) >= this.rangeMin)\r\n this.fromRange = this.toRange - this.count;\r\n else {\r\n this.fromRange = this.rangeMin;\r\n this.count = this.toRange - this.fromRange + 1;\r\n }\r\n } else {\r\n //count\r\n if ((this.fromRange + this.count - 1) <= this.rangeMax)\r\n this.toRange = this.fromRange + this.count - 1;\r\n else {\r\n this.toRange = this.rangeMax;\r\n this.fromRange -= (this.count - (this.toRange - this.fromRange) - 1);\r\n }\r\n }\r\n\r\n\r\n this.transactionDetails.fromRange = this.fromRange;\r\n this.transactionDetails.toRange = this.toRange;\r\n this.transactionDetails.count = this.count;\r\n\r\n // flush slider\r\n this.slider.nativeElement.noUiSlider.set([this.fromRange, this.toRange]);\r\n\r\n\r\n // switch (control) {\r\n // case 'from':\r\n // // if((this.count + value) <= this.toRange)\r\n\r\n\r\n\r\n // this.count = this.toRange - this.fromRange + 1;\r\n // break;\r\n\r\n // case 'count':\r\n // break;\r\n\r\n // case 'to':\r\n\r\n // this.count = this.toRange - this.fromRange + 1;\r\n // break;\r\n // }\r\n\r\n // // flush slider\r\n // this.slider.nativeElement.noUiSlider.set([this.fromRange, this.toRange]);\r\n }\r\n\r\n // onRangeInputChange(event) {\r\n // //console.log('from range: ' + this.fromRange);\r\n // //console.log('to range: ' + this.toRange);\r\n // //console.log('count: ' + this.count);\r\n\r\n // this.count = this.count < this.countMin ? this.countMin\r\n // : this.count > this.countMax ? this.countMax\r\n // : this.count;\r\n\r\n // this.fromRange = this.fromRange < this.rangeMin ? this.rangeMin\r\n // : this.fromRange > this.rangeMax ? this.rangeMax\r\n // : this.fromRange;\r\n\r\n // this.toRange = this.toRange < this.rangeMin ? this.rangeMin\r\n // : this.toRange > this.rangeMax ? this.rangeMax\r\n // : this.toRange;\r\n\r\n // if (event == 'from') {\r\n // if ((this.fromRange + this.count - 1) <= this.rangeMax)\r\n // this.toRange = this.fromRange + this.count - 1;\r\n // else {\r\n // this.toRange = this.rangeMax;\r\n // this.count = this.toRange - this.fromRange + 1;\r\n // //this.fromRange -= (this.count - (this.toRange - this.fromRange) - 1);\r\n // }\r\n // } else if (event == 'to') {\r\n // if ((this.toRange - this.count + 1) >= this.rangeMin)\r\n // this.fromRange = this.toRange - this.count;\r\n // else {\r\n // this.fromRange = this.rangeMin;\r\n // this.count = this.toRange - this.fromRange + 1;\r\n // }\r\n // } else {\r\n // //count\r\n // if ((this.fromRange + this.count - 1) <= this.rangeMax)\r\n // this.toRange = this.fromRange + this.count - 1;\r\n // else {\r\n // this.toRange = this.rangeMax;\r\n // this.fromRange -= (this.count - (this.toRange - this.fromRange) - 1);\r\n // }\r\n // }\r\n\r\n // // flush slider\r\n // this.slider.nativeElement.noUiSlider.set([this.fromRange, this.toRange]);\r\n // }\r\n\r\n private _rangeEnable(value: boolean = true) {\r\n if (value)\r\n this.slider.nativeElement.removeAttribute('disabled');\r\n else\r\n this.slider.nativeElement.setAttribute('disabled', true);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mac-transaction-details-label',\r\n templateUrl: './transaction-details-label.component.html',\r\n styleUrls: ['./transaction-details-label.component.scss']\r\n})\r\nexport class TransactionDetailsLabelComponent implements OnInit {\r\n\r\n @Input() details: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n //console.log(this.details);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ElementRef } from '@angular/core';\r\nimport { TransactionDto } from '../../models/transactions';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n\r\n@Component({\r\n selector: 'mac-trp-transactions-print',\r\n templateUrl: './trp-transactions-print.component.html',\r\n styleUrls: ['./trp-transactions-print.component.scss']\r\n})\r\nexport class TrpTransactionsPrintComponent implements OnInit {\r\n\r\n transaction: TransactionDto;\r\n receiptTemplate: string;\r\n //transactionLevel: number;\r\n\r\n constructor(private elRef: ElementRef, public translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n print(transaction: TransactionDto) {\r\n //console.log(transaction);\r\n this.transaction = transaction;\r\n //this.transactionLevel = transaction.fromAccountId && transaction.toAccountId ? 1 : 0;\r\n this.receiptTemplate = `/assets/images/TripTikStockTransactionsReceipt-ar.jpg`;\r\n\r\n setTimeout(() => {\r\n const printHtmlContent = this.elRef.nativeElement.innerHTML;// document.getElementById('stockReceipt').innerHTML;\r\n Utils.printHtml(printHtmlContent);\r\n }, 500);\r\n }\r\n\r\n}","import { Component, OnInit, ViewChild, ElementRef, ɵConsole } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { StockSliderComponent } from './../../components/stock-slider/stock-slider.component';\r\nimport { AvailableStock, AvailableStocksVm } from './../../models/available-stocks';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { PopulateCmd } from '../../models/populate.cmd';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, DisplayModal } from 'src/app/shared/models/modal';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { FormBuilder, FormGroup, NgForm, Validators } from '@angular/forms';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { TransactionLabelDetails } from '../../models/transaction-label-details';\r\nimport { numbersOnlyValidator } from 'src/app/shared/services/custom-validators';\r\n\r\n@Component({\r\n selector: 'mac-populate',\r\n templateUrl: './populate.component.html',\r\n styleUrls: ['./populate.component.scss'],\r\n providers: [StockTypesService, StocksService]\r\n})\r\nexport class PopulateComponent implements OnInit {\r\n populate: boolean;\r\n selectedStock: number[];\r\n availableStock: AvailableStock;\r\n stockTypes: StockTypeDto[];\r\n documentType: _DocumentType;\r\n form: FormGroup;\r\n documentTemplateVersions = [1, 2];\r\n lang: Language;\r\n availableStockHTML: string;\r\n reasons: LookupDto[] = [\r\n { id: -1, titles: ['حذف نهائي', 'Permanent Delete'] },\r\n { id: 1, titles: ['آخر', 'Other'] }\r\n ];\r\n transactionDetails: TransactionLabelDetails = {};\r\n\r\n @ViewChild(StockSliderComponent) slider: StockSliderComponent;\r\n\r\n get _DocumentType() { return _DocumentType };\r\n get customReason() { return this.form.get('customReason') }\r\n get reason() { return this.form.get('reason') }\r\n get documentTemplateVersion() { return this.form.get('documentTemplateVersion') }\r\n get fromRange() { return this.form.get('fromRange') }\r\n get quantity() { return this.form.get('quantity') }\r\n get stockType() { return this.form.get('stockTypeId') }\r\n\r\n constructor(private loader: LoadingService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private translate: TranslateService,\r\n private auth: AuthService,\r\n private route: ActivatedRoute,\r\n private fb: FormBuilder,\r\n private stockTypesService: StockTypesService,\r\n private stocksService: StocksService,\r\n private confirmation: ConfirmService) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.populate = this.route.snapshot.data.mode == 'POPULATE';\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n this.transactionDetails.alertClass = this.populate ? 'success' : 'danger';\r\n this.transactionDetails.operation = this.populate ? 'STK_TITLE_POPULATE' : 'STK_TITLE_DEPOPULATE';\r\n\r\n this.stockTypesService.get(this.lang)\r\n .then(result => {\r\n this.stockTypes = result.list;\r\n }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n\r\n if (!this.auth.currentUser.isSystemAccount)\r\n console.warn('not allowed!');\r\n }\r\n\r\n viewInfo() {\r\n this.confirmation.confirm(new DisplayModal({\r\n type: `${this.translate.instant('STK_TITLE_AVAILABLE_STOCKS')} - (${this.stockTypes.find(x => x.id == this.stockType.value).titles})`,\r\n innerHTML: this.availableStockHTML,\r\n note: ' '\r\n }))\r\n\r\n }\r\n\r\n onChangeFromRange() {\r\n this.transactionDetails.fromRange = this.fromRange.value;\r\n this.transactionDetails.toRange = Number(this.fromRange.value) + Number(this.quantity.value) - 1;\r\n }\r\n\r\n onChangeQuantity() {\r\n this.transactionDetails.count = this.quantity.value;\r\n this.transactionDetails.toRange = Number(this.fromRange.value) + Number(this.quantity.value) - 1;\r\n }\r\n\r\n onSelectStockType() {\r\n this.loadSystemAvailableStock();\r\n\r\n const stockType = this.stockTypes.find(x => x.id == this.stockType.value)\r\n this.transactionDetails.stockType = stockType.titles[0];\r\n this.documentType = stockType.documentType;\r\n }\r\n\r\n onSubmit() {\r\n if (this.populate) {\r\n this.reason.setErrors(null);\r\n this.customReason.setErrors(null);\r\n if (this.documentType != _DocumentType.TripTikDocument)\r\n this.documentTemplateVersion.setErrors(null);\r\n } else {\r\n this.documentTemplateVersion.setErrors(null);\r\n if (this.reason.value == -1)\r\n this.customReason.setErrors(null);\r\n }\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n const cmd: PopulateCmd = {\r\n stockTypeId: this.stockType.value,\r\n fromRange: this.fromRange.value,\r\n toRange: Number(this.fromRange.value) + Number(this.quantity.value) - 1,\r\n populate: this.populate,\r\n reason: !this.populate ? this.reason.value && Number(this.reason.value) > 0 ? this.reasons.find(x => x.id == Number(this.reason.value)).titles[this.lang] : this.customReason.value : null,\r\n isPermanentDelete: !this.populate && this.reason && Number(this.reason.value) < 0,\r\n documentTemplateVersion: this.populate ? (this.documentTemplateVersion.value ? this.documentTemplateVersion.value : 1) : 0 //todo: check\r\n }\r\n\r\n if (!this.populate) {\r\n this.confirmation.confirm(new DeleteModal({\r\n type: 'STK_TITLE_STOCK',\r\n confirmQuestion: 'STK_DEPOPULATE_CONFIRM_DELETE_CONFIRMATION_QUESTION',\r\n title: `${cmd.fromRange} - ${cmd.toRange} (${this.stockTypes.find(x => x.id == this.stockType.value).titles})`, // node.titles[this.lang].toString(),\r\n note: JSON.stringify(this.availableStock)\r\n })).then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n this._populate(cmd);\r\n }\r\n });\r\n } else this._populate(cmd);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n stockTypeId: ['', [Validators.required]],\r\n fromRange: ['', [Validators.required, Validators.min(1), numbersOnlyValidator]],\r\n quantity: ['', [Validators.required, Validators.min(1), numbersOnlyValidator]],\r\n documentTemplateVersion: ['', [Validators.required]],\r\n reason: ['', [Validators.required]],\r\n customReason: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n private _populate(cmd: PopulateCmd) {\r\n this.loader.load(LoaderType.Body);\r\n this.stocksService.populate(cmd)\r\n .then(result => {\r\n result ?\r\n this.alert.success(this.populate ? 'STK_LABEL_TRANSACTION_TYPE_POPULATE' : 'STK_LABEL_TRANSACTION_TYPE_DEPOPULATE')\r\n : this.alert.failure(this.populate ? 'STK_LABEL_TRANSACTION_TYPE_POPULATE' : 'STK_LABEL_TRANSACTION_TYPE_DEPOPULATE');\r\n\r\n if (result)\r\n this.router.navigate(['/', this.translate.currentLang, 'stocks', 'transactions']);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private loadSystemAvailableStock() {\r\n this.loader.load(LoaderType.Body)\r\n this.stocksService\r\n .getSystemAvailableStocks(this.stockType.value, this.populate, false)\r\n .then(data => {\r\n this.availableStockHTML = this.renderAvailableStockAsHTML(data);\r\n }).finally(() => this.loader.load(LoaderType.Body, false))\r\n }\r\n\r\n private renderAvailableStockAsHTML(vm: AvailableStocksVm) {\r\n let ranges = '', singles = '', html = '';\r\n\r\n vm.stockTypesAvailableStocks[0].availableStock.forEach(x => {\r\n if (x[0] > 0)\r\n x.length > 1 ? ranges += `
  • ${x[0]} - ${x[1]} (${x[1] - x[0] + 1})
  • `\r\n : singles += `
  • ${x[0]}
  • `;\r\n });\r\n\r\n if (ranges)\r\n html += `

    ${this.translate.instant('STK_LABEL_RANGES')}:

      ${ranges}
    `;\r\n\r\n if (singles)\r\n html += `

    ${this.translate.instant('STK_LABEL_SINGLES')}:

      ${singles}
    `;\r\n\r\n return html;\r\n }\r\n}\r\n\r\nexport interface StockGroup {\r\n group: string, label: string, value: number[]\r\n}","import { TranslateService } from '@ngx-translate/core';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { StockTypeAvailableStocksDto } from '../../models/available-stocks';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport * as _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'mac-stocks-available',\r\n templateUrl: './stocks-available.component.html',\r\n styleUrls: ['./stocks-available.component.scss'],\r\n providers: [StocksService, AccountsService]\r\n})\r\nexport class StocksAvailableComponent implements OnInit {\r\n displayedColumns = ['from', 'to', 'count'];\r\n availableStocks: StockTypeAvailableStocksDto[];\r\n systemView: boolean;\r\n accounts: LookupDto[];\r\n accountId: number;\r\n\r\n @ViewChild('tabGroup') tabGroup;\r\n\r\n get Math() {\r\n return Math;\r\n }\r\n\r\n constructor(private stocksService: StocksService,\r\n private accountsService: AccountsService,\r\n private loader: LoadingService,\r\n private route: ActivatedRoute,\r\n public auth: AuthService,\r\n public translate: TranslateService,\r\n private router: Router) { }\r\n\r\n async ngOnInit() {\r\n this.loader.load(LoaderType.Nav);\r\n try {\r\n this.accounts = await (await this.accountsService.getChildrenAccountsLookup(!this.auth.currentUser.isSystemAccount ? this.auth.currentUser.accountId : 0)).list;\r\n } catch { }\r\n //this.accounts = this.auth.currentUser.isSystemAccount ? await (await this.accountsService.getChildrenAccountsLookup(0, false)).list : [];\r\n this.accountId = Number(this.route.snapshot.paramMap.get('accountId'));\r\n this.accountId = Number(this.accountId != 0 ? this.accountId : this.auth.currentUser.accountId);\r\n this.systemView = this.route.snapshot.data.mode == 'SYSTEM';\r\n\r\n //console.log(Number(this.accountId));\r\n\r\n this.displayedColumns = ['from', 'to', 'count'];\r\n\r\n if (!this.systemView) {\r\n\r\n this.stocksService.getAvailableStocks(0, this.accountId)\r\n .then(d => this.availableStocks = d.stockTypesAvailableStocks)\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n\r\n } else {\r\n this.displayedColumns.push('available', 'unavailable');\r\n this.stocksService.getSystemAvailableStocks(0, false, false)\r\n .then(d => this.availableStocks = d.stockTypesAvailableStocks)\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n }\r\n\r\n filterWithAccount(id) {\r\n this.accountId = id;\r\n this.loader.load(LoaderType.Body);\r\n this.stocksService.getAvailableStocks(0, this.accountId)\r\n .then(d => {\r\n this.availableStocks = d.stockTypesAvailableStocks;\r\n this.router.navigate([`/${this.translate.currentLang}/stocks/available/${this.accountId}`], { replaceUrl: true });\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n\r\n sumAvailableStocks(availableStock: number[][], all = true) {\r\n let total = 0;\r\n availableStock.forEach(item => {\r\n if (all || (!all && item[0] > 0))\r\n total += item.length > 1 ? Math.abs(item[1]) - Math.abs(item[0]) + 1 : 1;\r\n });\r\n return total;\r\n }\r\n\r\n //serial status == 1 || -1\r\n sumAvailableStocksFilter(availableStock: number[][], serialStatus: number) {\r\n let total = 0;\r\n availableStock.forEach(item => {\r\n if ((serialStatus == -1 && item[0] < 0) || (serialStatus == 1 && item[0] > 0))\r\n total += item.length > 1 ? Math.abs(item[1]) - Math.abs(item[0]) + 1 : 1;\r\n });\r\n return total;\r\n }\r\n\r\n onSerialStatusChange(status: number) {\r\n //console.log($event);\r\n\r\n // if(status == 1)\r\n // this.displayedColumns = this.displayedColumns\r\n\r\n this.displayedColumns = ['from', 'to', 'count'];\r\n\r\n switch (status) {\r\n case 1:\r\n this.displayedColumns.push('available');\r\n break;\r\n\r\n case -1:\r\n this.displayedColumns.push('unavailable');\r\n break;\r\n\r\n default:\r\n this.displayedColumns.push('available', 'unavailable');\r\n break;\r\n }\r\n this.serialStatus = status;\r\n\r\n }\r\n\r\n get Number() { return Number; };\r\n serialStatus: number;\r\n\r\n checkBoxChange($event, obj: StockTypeAvailableStocksDto, available: boolean) {\r\n //console.log($event, obj);\r\n if ($event.checked) {\r\n\r\n const test = [...obj.availableStock.filter(x => x[0] > -1)];\r\n //console.log(test);\r\n obj.availableStock = test;\r\n\r\n\r\n\r\n }\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n let data = _.cloneDeep(all ? this.availableStocks : [this.availableStocks[this.tabGroup.selectedIndex]]);\r\n\r\n //data.forEach(d => d.availableStock)\r\n\r\n if (this.serialStatus)\r\n data = data.map(x => {\r\n x.availableStock = x.availableStock.filter(y => (this.serialStatus == 1 && y[0] > 0) || (this.serialStatus == -1 && y[0] < 0))\r\n return x;\r\n })\r\n\r\n //console.log(data);\r\n this.exportToExcel(data);\r\n }\r\n\r\n private exportToExcel(data: StockTypeAvailableStocksDto[]) {\r\n const rows: string[][] = [];\r\n\r\n let wscols = [\r\n { width: 24 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 }\r\n ];\r\n\r\n let autofilter = { ref: 'A1:D1' };\r\n\r\n const headers = [\r\n this.translate.instant('LKP_FIELD_STOCK_TYPE'),\r\n `${this.translate.instant('_LABEL_FROM')} ${this.translate.instant('_LABEL_SERIAL')}`,\r\n `${this.translate.instant('_LABEL_TO')} ${this.translate.instant('_LABEL_SERIAL')}`,\r\n this.translate.instant('STK_LABEL_QUANTITY')\r\n ];\r\n\r\n if (this.systemView) {\r\n wscols.push({ width: 14 });\r\n autofilter = { ref: 'A1:E1' };\r\n headers.push(`${this.translate.instant('_FIELD_AVAILABLE')} ${this.translate.currentLang == 'ar' ? '؟' : '?'}`)\r\n }\r\n\r\n rows.push(headers);\r\n // let _total = 0;\r\n // let _availableTotal = 0;\r\n\r\n for (let row of data) {\r\n for (let stockTypeData of row.availableStock) {\r\n const _row = [\r\n row.stockType.titles[0],\r\n Math.abs(stockTypeData[0]).toString(),\r\n Math.abs(stockTypeData.length > 1 ? stockTypeData[1] : stockTypeData[0]).toString(),\r\n (stockTypeData.length > 1 ? stockTypeData[1] - stockTypeData[0] + 1 : 1).toString()\r\n ];\r\n\r\n if (this.systemView)\r\n _row.push(this.translate.instant(stockTypeData[0] > 0 ? '_ACTION_YES' : '_ACTION_NO'))\r\n\r\n rows.push(_row);\r\n }\r\n }\r\n // rows.push([\r\n // this.translate.instant('_LABEL_TOTAL'),\r\n // '',\r\n // '',\r\n // _total\r\n // ])\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Available-Stocks');\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { StockTotalsDataSource } from './../../helpers/stocks-totals-datasource';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AccountStocksTotalsDto } from '../../models/stocks-totals';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\n\r\n@Component({\r\n selector: 'mac-stocks-totals',\r\n templateUrl: './stocks-totals.component.html',\r\n styleUrls: ['./stocks-totals.component.scss'],\r\n providers: [StocksService, StockTypesService, AccountsService]\r\n})\r\nexport class StocksTotalsComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = ['accountTitles', 'received', 'transferedUndone', 'returned', 'transfered', 'issued', 'remainingStocks'];\r\n dataSource: StockTotalsDataSource;\r\n stockTypes: StockTypeDto[];\r\n accounts: LookupDto[];\r\n accountId: number;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n constructor(private loader: LoadingService,\r\n private stocksService: StocksService,\r\n private stockTypesService: StockTypesService,\r\n public auth: AuthService,\r\n private accountsService: AccountsService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.loader.load(LoaderType.Nav);\r\n //this.accounts = this.auth.currentUser.isSystemAccount ? await (await this.accountsService.getChildrenAccountsLookup(0, false)).list : [];\r\n this.accountId = Number(this.route.snapshot.paramMap.get('accountId'));\r\n this.accountId = Number(this.accountId != 0 ? this.accountId : this.auth.currentUser.accountId);\r\n\r\n this.stockTypesService.getAllowed(this.auth.currentUser.accountId)\r\n .then(result => /*this.stockTypes = result.list.filter(x => x.id == StockType.License)*/this.stockTypes = result.list);\r\n\r\n\r\n // set paginator page size\r\n this.sort.active = 'accountTitles'; // pre-defined sort col\r\n this.sort.direction = 'asc';\r\n this.paginator.pageSize = 25;\r\n\r\n this.dataSource = new StockTotalsDataSource(this.stocksService, this.loader);\r\n this.dataSource.loadStockTotals(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, '', this.accountId);\r\n //this.dataSource.counter$.subscribe(counter => this.recordsCount = counter);\r\n }\r\n async ngAfterViewInit() {\r\n try {\r\n this.accounts = await (await this.accountsService.getChildrenAccountsLookup(!this.auth.currentUser.isSystemAccount ? this.auth.currentUser.accountId : 0)).list;\r\n } catch { }\r\n\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n // when paginator event is invoked, retrieve the related data\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => this.dataSource.loadStockTotals(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.filter.nativeElement.value.trim(), this.accountId))\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadStockTotals(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.filter.nativeElement.value.trim(), this.accountId)\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect().subscribe(() => {\r\n this.router.navigate([`/${this.translate.currentLang}/stocks/totals/${this.accountId}`], { replaceUrl: true });\r\n //this.location.replaceState(`/${this.translate.currentLang}/security/users/list/${this.accountId}`);\r\n });\r\n }\r\n\r\n // recordsCount: number;\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)//todo: check params\r\n this.stocksService.getStockTotals(0, this.paginator.length, this.sort.active, this.sort.direction)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.accountsStocksTotals);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: AccountStocksTotalsDto[]) {\r\n const wscols = [\r\n { width: 24 },\r\n { width: 16 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 }\r\n ];\r\n const autofilter = { ref: 'A1:H1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n this.translate.instant('LKP_FIELD_STOCK_TYPE'),\r\n this.translate.instant('STK_LABEL_RECEIVED'),\r\n this.translate.instant('STK_LABEL_TRANSFERED'),\r\n this.translate.instant('STK_LABEL_ISSUED'),\r\n this.translate.instant('STK_LABEL_RETURNED'),\r\n this.translate.instant('STK_LABEL_TRANSFERED_UNDONE'),\r\n this.translate.instant('STK_LABEL_REMAINING')\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n for (let stockTypeData of row.stockTypesStocksTotals) {\r\n rows.push([\r\n row.accountTitles[0],\r\n //this.stockTypes.find(st => st.id == stockTypeData.stockTypeId) ? this.stockTypes.find(st => st.id == stockTypeData.stockTypeId).titles[0] : \"N/A\",\r\n stockTypeData.stockType.titles[0],\r\n stockTypeData.received.toString(),\r\n stockTypeData.transfered.toString(),\r\n stockTypeData.issued.toString(),\r\n stockTypeData.returned.toString(),\r\n stockTypeData.transferedUndone.toString(),\r\n stockTypeData.remainingStocks.toString()\r\n ]);\r\n }\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Stock-Totals');\r\n }\r\n\r\n filterWithAccount(id) {\r\n //console.log(id);\r\n this.accountId = id;\r\n //this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n // this.dataSource.loadUsers(0, this.paginator.pageSize, this.sort.active, this.sort.direction, '', this.accountId);\r\n\r\n }\r\n\r\n}\r\n\r\n","import { Router } from '@angular/router';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Component, OnInit, ElementRef, ViewChild } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AvailableStock, AvailableStocksVm } from '../../models/available-stocks';\r\nimport { StockSliderComponent } from '../../components/stock-slider/stock-slider.component';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { AccountDto } from 'src/app/features/accounts/models/account';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { TransactCmd } from '../../models/transact.cmd';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { AccountType } from 'src/app/core/models/enums/account-type';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n@Component({\r\n selector: 'mac-transact',\r\n templateUrl: './transact.component.html',\r\n styleUrls: ['./transact.component.scss'],\r\n providers: [StockTypesService, StocksService, AccountsService]\r\n})\r\nexport class TransactComponent implements OnInit {\r\n selectedStock: number[];\r\n availableStock: AvailableStock;\r\n stockTypes: StockTypeDto[];\r\n _stockTypes: StockTypeDto[] = [];\r\n stockType: StockTypeDto = { id: 0, titles: [] };\r\n fromAccounts: any[] = [];\r\n toAccounts: AccountDto[];\r\n lang: number;\r\n fromAccountId: number;\r\n toAccountId: number;\r\n defaultStock: number[] = [0];\r\n\r\n @ViewChild(StockSliderComponent) slider: StockSliderComponent;\r\n\r\n constructor(private loader: LoadingService,\r\n private router: Router,\r\n private alert: AlertService,\r\n private stockTypesService: StockTypesService,\r\n private stocksService: StocksService,\r\n private translate: TranslateService,\r\n private accountsService: AccountsService,\r\n private auth: AuthService) { }\r\n\r\n async ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n\r\n\r\n if (this.auth.currentUser.isSystemAccount && this.auth.currentUser.isInRole(Role.SYSTEM_STOCKS_CREATE)) {\r\n this.fromAccounts.push({ id: 0, titles: [this.translate.instant('STK_LABEL_PRIMARY_STOCK')] });\r\n //this.stockTypes = (await this.stockTypesService.get(this.lang)).list;\r\n }\r\n\r\n\r\n // this.stockTypes = (await this.stockTypesService.getAllowed(this.auth.currentUser.accountId)).list;\r\n\r\n\r\n // //this.stockTypes = (await this.stockTypesService.getAllowed(this.auth.currentUser.accountId)).list.filter(x => x.id == StockType.License);\r\n // if (this.stockTypes.length == 1)\r\n // this.stockType = this.stockTypes[0];\r\n\r\n this.fromAccounts.push({ id: this.auth.currentUser.accountId, titles: this.auth.currentUser.accountTitles[this.lang] });\r\n this.fromAccountId = this.fromAccounts[0].id;\r\n this.onSelectFromAccount();\r\n }\r\n\r\n reset() {\r\n this.fromAccountId = this.fromAccounts[0].id;\r\n this.toAccountId = this.toAccounts && this.toAccounts.length > 0 ? this.toAccounts[0].id : null;\r\n this.stockType = { id: 0, titles: [] };\r\n this.selectedStock = null;\r\n }\r\n\r\n async onSelectFromAccount() {\r\n this.loader.load(LoaderType.Body);\r\n const func = this.auth.currentUser.accountTypeId != AccountType.ReleaseCenter ?\r\n 'getChildrenAccounts' : 'getAccounts';\r\n try {\r\n this.toAccounts = [];\r\n const accounts = await (await this.accountsService[func](this.fromAccountId)).accounts;\r\n // .then(d => {\r\n\r\n const _accounts = [...accounts]\r\n .filter(x => x.isActive)\r\n .map(x => { //todo: filter by lang on server instead\r\n x.titles = [x.titles[this.lang]]\r\n return x;\r\n });\r\n\r\n\r\n\r\n\r\n //load stock-types here \r\n\r\n if (this.auth.currentUser.isSystemAccount && this.auth.currentUser.isInRole(Role.SYSTEM_STOCKS_CREATE) && this.fromAccountId == 0) {\r\n this._stockTypes = (await this.stockTypesService.get(this.lang)).list;\r\n this.stockTypes = [...this._stockTypes];\r\n }\r\n else\r\n this.stockTypes = (await this.stockTypesService.getAllowed(this.auth.currentUser.accountId, true)).list;\r\n\r\n //console.log(this.stockTypes);\r\n\r\n\r\n //this.stockTypes = (await this.stockTypesService.getAllowed(this.auth.currentUser.accountId)).list.filter(x => x.id == StockType.License);\r\n this.stockType = (this.stockTypes.length == 1) ? this.stockTypes[0] : { id: 0, titles: [] };\r\n\r\n this.toAccounts = _accounts;\r\n this.toAccountId = this.toAccounts && this.toAccounts.length > 0 ? this.toAccounts[0].id : null;\r\n await this.onSelectToAccount();\r\n\r\n\r\n }\r\n finally {\r\n // .finally(() => {\r\n\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n\r\n }\r\n //});\r\n\r\n //this.slider.fromAccount = this.fromAccounts.find(a => a.id == this.fromAccountId).titles;\r\n\r\n if (this.stockType.id != 0)\r\n await this.onSelectStockType();\r\n\r\n }\r\n\r\n async onSelectToAccount() {\r\n\r\n if (this.auth.currentUser.isSystemAccount && this.auth.currentUser.isInRole(Role.SYSTEM_STOCKS_CREATE) && this.fromAccountId == 0) {\r\n const toAccount = this.toAccounts.find(x => x.id == this.toAccountId);\r\n //filter stock-types\r\n this.stockTypes = [...this._stockTypes].filter(x => (toAccount.accountTypeId == AccountType.ReleaseCenter && x.isUnifiedRelease)\r\n || (toAccount.accountTypeId != AccountType.ReleaseCenter && !x.isUnifiedRelease));\r\n\r\n\r\n }\r\n else {\r\n //get destination stock-types\r\n this.accountsService\r\n this.stockTypes = (await this.stockTypesService.getAllowed(this.toAccountId, true)).list;\r\n // //console.log(this.stockTypes);\r\n }\r\n\r\n\r\n this.onSelectStockType();\r\n\r\n if (this.slider)\r\n this.slider.transactionDetails.toAccount = this.toAccounts.find(a => a.id == this.toAccountId).titles[this.lang].toString();\r\n }\r\n\r\n //stockType: string = '';\r\n async onSelectStockType() {\r\n //this.loader.load(LoaderType.Nav);\r\n this.loader.load(LoaderType.Body);\r\n //this.stockType = this.stockTypes.find(s => s.id == this.stockTypeId).titles;\r\n this.selectedStock = null;\r\n\r\n let stock =\r\n this.auth.currentUser.isSystemAccount && this.fromAccountId == 0 ?\r\n await this.loadSystemAvailableStock() :\r\n await this.loadAvailableStock();\r\n\r\n\r\n this.renderAvailableStock(stock);\r\n\r\n this.loader.load(LoaderType.Body, false);\r\n\r\n\r\n }\r\n\r\n onSelectRange() {\r\n setTimeout(() => {\r\n this.slider.transactionDetails.alertClass = 'primary';\r\n this.slider.transactionDetails.operation = 'STK_TITLE_TRANSACT';\r\n this.slider.transactionDetails.stockType = this.stockType.titles[0];\r\n this.slider.transactionDetails.fromAccount = this.fromAccounts.find(a => a.id == this.fromAccountId).titles;\r\n this.slider.transactionDetails.toAccount = this.toAccounts.find(a => a.id == this.toAccountId).titles[this.lang].toString();\r\n this.slider.onSelectRange(this.selectedStock);\r\n });\r\n }\r\n\r\n onSubmit() {\r\n this.loader.load(LoaderType.Body);\r\n const cmd: TransactCmd = {\r\n stockTypeId: this.stockType.id,\r\n sourceId: this.fromAccountId,\r\n targetId: this.toAccountId,\r\n fromRange: this.slider.fromRange,\r\n toRange: this.slider.toRange\r\n }\r\n this.stocksService.transact(cmd)\r\n .then(result => {\r\n result ?\r\n this.alert.success(DefaultAlertAction.TRANSFERING)\r\n : this.alert.failure(DefaultAlertAction.TRANSFERING);\r\n\r\n if (result)\r\n this.router.navigate(['/', this.translate.currentLang, 'stocks', 'transactions']);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private loadAvailableStock() {\r\n return this.stocksService\r\n .getAvailableStocks(this.stockType.id);\r\n // .then(data => this.renderAvailableStock(data))\r\n // .finally(() => {\r\n // this.loader.load(LoaderType.Body, false);\r\n // });\r\n }\r\n\r\n private loadSystemAvailableStock() {\r\n return this.stocksService\r\n .getSystemAvailableStocks(this.stockType.id);\r\n // .then(data => this.renderAvailableStock(data))\r\n // .finally(() => {\r\n // this.loader.load(LoaderType.Body, false);\r\n // //this.selectedStock = [0];// [];// [0];// this.availableStock.ranges[0];\r\n // });\r\n }\r\n\r\n private renderAvailableStock(vm: AvailableStocksVm) {\r\n this.availableStock = new AvailableStock();\r\n this.availableStock.singles = [];\r\n this.availableStock.ranges = [];\r\n\r\n vm.stockTypesAvailableStocks[0].availableStock.forEach(s => {\r\n if (s[0] > 0)\r\n s.length > 1 ? this.availableStock.ranges.push(s)\r\n : this.availableStock.singles.push(s);\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { transactionTypeLocale } from '../../models/transaction-type.enum';\r\nimport { TransactionsDataSource } from '../../helpers/transactions-datasource';\r\nimport { TransactionDto } from '../../models/transactions';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TransactionType } from 'src/app/core/models/enums/transaction-type';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { LicTransactionsPrintComponent } from '../../components/lic-transactions-print/lic-transactions-print.component';\r\nimport { TrpTransactionsPrintComponent } from '../../components/trp-transactions-print/trp-transactions-print.component';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { AccountDto } from 'src/app/features/accounts/models/account';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { PaginationQuery } from 'src/app/features/issuing/_shared/models/issuing.models';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { AccountType } from 'src/app/core/models/enums/account-type';\r\n\r\n@Component({\r\n selector: 'mac-transactions',\r\n templateUrl: './transactions.component.html',\r\n styleUrls: ['./transactions.component.scss'],\r\n providers: [StocksService, StockTypesService, AccountsService]\r\n})\r\nexport class TransactionsComponent implements OnInit {\r\n moment = moment;\r\n transactionTypeLocale = transactionTypeLocale;\r\n displayedColumns: string[] = ['created', 'fromAccountTitles', 'toAccountTitles', 'fromRange', 'toRange', 'count', 'transactionType', 'stockType', 'action'];\r\n dataSource: TransactionsDataSource;\r\n stockTypes: StockTypeDto[];\r\n accounts: LookupDto[];\r\n transactionTypes: LookupDto[] = [];\r\n searchForm: FormGroup;\r\n lang: Language;\r\n query: any = null;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n @ViewChild(MatSelect, { static: true }) stockType: MatSelect;\r\n\r\n @ViewChild('licPrintElm') licPrintElm: LicTransactionsPrintComponent;\r\n @ViewChild('trpPrintElm') trpPrintElm: TrpTransactionsPrintComponent;\r\n\r\n\r\n get TransactionType() { return TransactionType; };\r\n get Object() { return Object; };\r\n //get StockType() { return StockType; };\r\n\r\n constructor(private loader: LoadingService,\r\n private stocksService: StocksService,\r\n private stockTypesService: StockTypesService,\r\n private translate: TranslateService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private accountsService: AccountsService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.formInit();\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.stockTypesService.getAllowed().then(result => {\r\n this.stockTypes = result.list;\r\n // \r\n //this.stockTypes = result.list;\r\n //this.stockTypes.unshift({ id: 0, titles: [[\"الكل\", \"All\"][this.lang]] });\r\n });\r\n\r\n\r\n //console.log(Object.keys(TransactionType));\r\n\r\n const arr = Object.keys(TransactionType).reduce((arr, key) => {\r\n if (!arr.includes(key) && isNaN(key)) {\r\n arr.push(TransactionType[key]);\r\n }\r\n return arr;\r\n }, []);\r\n\r\n // const x: LookupDto = {id}\r\n this.transactionTypes = arr.map(elm => {\r\n id: elm,\r\n titles: [this.translate.instant(transactionTypeLocale(elm))]\r\n }).sort((a, b) => b.id - a.id);\r\n\r\n this.transactionTypes = this.transactionTypes.filter(x => x.id != TransactionType.Issue)\r\n\r\n if (!this.auth.currentUser.isSystemAccount)\r\n this.transactionTypes = this.transactionTypes.filter(x => x.id != TransactionType.Populate && x.id != TransactionType.Depopulate)\r\n\r\n //console.log(this.transactionTypes);\r\n\r\n // arr.forEach(element => {\r\n\r\n // //console.log(TransactionType[element]);\r\n // //console.log(element);\r\n // });\r\n\r\n // //console.log(Object.keys(TransactionType).reduce((arr, key) => {\r\n // if (!arr.includes(key) && !isNaN(key)) {\r\n // arr.push(TransactionType[key]);\r\n // }\r\n // return arr;\r\n // }, []));\r\n\r\n // //console.log(TransactionType.Depopulate);\r\n // //console.log(TransactionType[TransactionType.Depopulate]);\r\n\r\n // Object.keys(TransactionType).forEach(x => {\r\n // //console.log(x);\r\n // //console.log(TransactionType[x]);\r\n // })\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isSystemAccount) {\r\n this.accountsService.getChildrenAccountsLookup(0, false)\r\n .then(result => {\r\n this.accounts = result.list;// populateAccountsSelect(result.list);\r\n\r\n //add system accounts (stock, printing-press)\r\n this.accounts.unshift({ id: AccountType.PrimaryStock, titles: [this.translate.instant('STK_LABEL_PRIMARY_STOCK')] });\r\n this.accounts.unshift({ id: AccountType.PrintingPress, titles: [this.translate.instant('STK_LABEL_PRINTING_PRESS')] });\r\n\r\n }).catch(e => this.searchForm.get('accountId').disable());\r\n } else {\r\n this.accounts = [{ id: this.auth.currentUser.accountId, titles: [this.auth.currentUser.accountTitles[this.lang]] }];\r\n this.searchForm.patchValue({ accountId: this.auth.currentUser.accountId });\r\n this.searchForm.get('accountId').disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe(p => {\r\n //console.warn(p);\r\n\r\n if (!p.has('pageIndex')) {\r\n //console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = '';\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageIndex, length: this.paginator.length });\r\n }\r\n });\r\n\r\n //let query = null;\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n }\r\n else if (this.route.snapshot.queryParams.accountId\r\n || this.route.snapshot.queryParams.stockTypeId\r\n || this.route.snapshot.queryParams.transactionType\r\n || this.route.snapshot.queryParams.fromRange\r\n || this.route.snapshot.queryParams.toRange\r\n || this.route.snapshot.queryParams.fromDate\r\n || this.route.snapshot.queryParams.toDate) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({ accountId: !isNaN(this.route.snapshot.queryParams.accountId) ? parseInt(this.route.snapshot.queryParams.accountId) : null });\r\n\r\n // this.searchForm.patchValue({countryId: 2});\r\n // //console.log(this.searchForm.value);\r\n this.query = this.searchForm.value;\r\n }\r\n\r\n this.fetchData(this.query);\r\n\r\n // this.sort.active = 'created';\r\n // this.sort.direction = 'desc';\r\n // this.paginator.pageSize = 25;\r\n // this.dataSource = new TransactionsDataSource(this.stocksService, this.loader);\r\n // this.dataSource.loadTransactions(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction);\r\n }\r\n\r\n\r\n private fetchData(query) {\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex ? this.route.snapshot.queryParams.pageIndex : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize ? this.route.snapshot.queryParams.pageSize : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort ? this.route.snapshot.queryParams.sort : 'created';\r\n this.sort.direction = this.route.snapshot.queryParams.dir ? this.route.snapshot.queryParams.dir : 'desc';\r\n this.dataSource = new TransactionsDataSource(this.stocksService, this.loader, this.translate);\r\n this.dataSource.loadTransactions({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, query);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange/*, this.stockType.valueChange*/)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.loadTransactions({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction },\r\n this.advancedSearchMode || this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim())\r\n })\r\n\r\n //this.dataSource.loadTransactions(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.filter.nativeElement.value.trim(), this.stockType.value))\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadTransactions({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n // fromEvent(this.filter.nativeElement, 'change')\r\n // .pipe(\r\n // tap(() => {\r\n // this.paginator.pageIndex = 0;\r\n // this.dataSource.loadTransactions(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.filter.nativeElement.value.trim(), this.stockType.value)\r\n // })\r\n // ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect()\r\n .subscribe(() => {\r\n let pagination: PaginationQuery = { pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction };\r\n let query = this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim();\r\n this.query = query;\r\n\r\n if (this.activeFilters)\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, ...query }, replaceUrl: true });\r\n else\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, query }, replaceUrl: true });\r\n });\r\n }\r\n\r\n print(row: TransactionDto) {\r\n switch (row.stockType.documentType) {\r\n case _DocumentType.DrivingLicense:\r\n return this.licPrintElm.print(row);\r\n\r\n case _DocumentType.TripTikDocument:\r\n return this.trpPrintElm.print(row);\r\n }\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.stocksService[(this.query == null || typeof this.query == 'string') ? 'getTransactions' : 'searchTransactions']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.stockTransactions);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: TransactionDto[]) {\r\n const wscols = [\r\n { width: 14 },\r\n { width: 24 },\r\n { width: 24 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 18 },\r\n { width: 18 }\r\n ];\r\n const autofilter = { ref: 'A1:H1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('_LABEL_DATE'),\r\n `${this.translate.instant('_LABEL_FROM')} ${this.translate.instant('ACC_LABEL_ACCOUNT')}`,\r\n `${this.translate.instant('_LABEL_TO')} ${this.translate.instant('ACC_LABEL_ACCOUNT')}`,\r\n `${this.translate.instant('_LABEL_FROM')} ${this.translate.instant('_LABEL_SERIAL')}`,\r\n `${this.translate.instant('_LABEL_TO')} ${this.translate.instant('_LABEL_SERIAL')}`,\r\n this.translate.instant('STK_LABEL_QUANTITY'),\r\n this.translate.instant('STK_LABEL_TRANSACTION_TYPE'),\r\n this.translate.instant('LKP_FIELD_STOCK_TYPE')\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n moment(row.created).format('DD/MM/YYYY'),\r\n row.fromAccountTitles ? row.fromAccountTitles[0] :\r\n this.translate.instant(row.transactionType == TransactionType.Populate ?\r\n 'STK_LABEL_PRINTING_PRESS' : 'STK_LABEL_PRIMARY_STOCK'),\r\n row.toAccountTitles ? row.toAccountTitles[0] :\r\n this.translate.instant(row.transactionType == TransactionType.Depopulate ?\r\n 'STK_LABEL_PRINTING_PRESS' : 'STK_LABEL_PRIMARY_STOCK'),\r\n row.fromRange.toString(),\r\n row.toRange.toString(),\r\n (row.toRange - row.fromRange + 1).toString(),\r\n this.translate.instant(transactionTypeLocale(row.transactionType)),\r\n row.stockType.titles[0]\r\n ]);\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Stock-Transactions');\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = '';\r\n }\r\n\r\n\r\n onSubmit() {\r\n if (this.fromDate.value && typeof this.fromDate.value == 'object')\r\n this.fromDate.setValue(Utils.convertToServerDateTimeString(this.fromDate.value));\r\n\r\n if (this.toDate.value && typeof this.toDate.value == 'object')\r\n this.toDate.setValue(Utils.convertToServerDateTimeString(this.toDate.value));\r\n\r\n //swap dates\r\n if (this.fromDate.value && this.toDate.value && new Date(this.fromDate.value) > new Date(this.toDate.value)) {\r\n let _temp = this.fromDate.value;\r\n this.fromDate.setValue(this.toDate.value);\r\n this.toDate.setValue(_temp);\r\n }\r\n\r\n // //console.log(this.searchForm.value);\r\n\r\n this.activeFilters = true;\r\n\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n get fromDate() { return this.searchForm.get('fromDate'); };\r\n get toDate() { return this.searchForm.get('toDate'); };\r\n // searchForm: FormGroup;\r\n activeFilters: boolean;\r\n advancedSearchMode: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n //use same validators to filter inputs values\r\n this.searchForm = this.fb.group({\r\n fromRange: [''], //regex to match english letters only\r\n toRange: [''],\r\n transactionType: [''],\r\n stockTypeId: [''],\r\n accountId: [null],\r\n fromDate: [''],\r\n toDate: ['']\r\n });\r\n }\r\n}","import { ConfirmService } from './../../../../shared/services/modal.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ResolveUndoCmd } from './../../models/resolve-undo.cmd';\r\nimport { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { UndoRequestsDataSource } from '../../helpers/undo-requests-datasource';\r\nimport { undoRequestStatusLocale, UndoRequestStatus, UndoRequestDto } from '../../models/undo-requests';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\n\r\n@Component({\r\n selector: 'mac-undo-requests',\r\n templateUrl: './undo-requests.component.html',\r\n styleUrls: ['./undo-requests.component.scss'],\r\n providers: [StocksService, StockTypesService]\r\n})\r\nexport class UndoRequestsComponent implements OnInit {\r\n moment = moment;\r\n undoRequestStatusLocale = undoRequestStatusLocale;\r\n displayedColumns: string[] = ['created', 'fromAccountTitles', 'toAccountTitles', 'username', 'range', 'undoRequestStatus', 'stockType', 'reason', 'tools'];\r\n dataSource: UndoRequestsDataSource;\r\n stockTypes: StockTypeDto[] = [];\r\n lang: Language;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter') filter: ElementRef;\r\n @ViewChild(MatSelect, { static: true }) stockType: MatSelect;\r\n\r\n get UndoRequestStatus() {\r\n return UndoRequestStatus;\r\n }\r\n\r\n constructor(private loader: LoadingService,\r\n private stocksService: StocksService,\r\n private stockTypesService: StockTypesService,\r\n private alert: AlertService,\r\n private translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n public auth: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n if (!this.auth.currentUser.isInRole(Role.STOCKS_UNDO_REQUESTS_UPDATE))\r\n this.displayedColumns.splice(this.displayedColumns.length - 1, 1);\r\n\r\n //bug: will take a second to be loaded\r\n this.stockTypesService.get(this.lang).then(result => this.stockTypes = result.list);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.sort.active = 'created';\r\n this.sort.direction = 'desc';\r\n this.paginator.pageSize = 10;\r\n this.dataSource = new UndoRequestsDataSource(this.stocksService, this.loader);\r\n this.dataSource.loadUndoRequests(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => this.dataSource.loadUndoRequests(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.stockType.value, this.filter.nativeElement.value ? this.filter.nativeElement.value.trim() : null))\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'change'), this.stockType.valueChange)\r\n .pipe(\r\n tap(() => {\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadUndoRequests(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.stockType.value, this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n }\r\n\r\n getUndoRequestStatusClass(status: UndoRequestStatus) {\r\n switch (status) {\r\n case UndoRequestStatus.Rejected:\r\n return `text-danger`;\r\n\r\n case UndoRequestStatus.Approved:\r\n return `text-success`;\r\n\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n tryResolveRequest(row: UndoRequestDto, approve: boolean = false) {\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'STK_TITLE_UNDO_REQUEST',\r\n confirmQuestion: approve ? 'STK_UNDO_REQUEST_CONFIRM_UPDATE_STATUS_CONFIRMATION_QUESTION_APPROVE' : 'STK_UNDO_REQUEST_CONFIRM_UPDATE_STATUS_CONFIRMATION_QUESTION_REJECT',\r\n title: row.fromAccountTitles[0],\r\n action: approve ? '_ACTION_APPROVE' : '_ACTION_REJECT',\r\n submitText: approve ? '_ACTION_APPROVE' : '_ACTION_REJECT',\r\n submitClass: approve ? 'btn-warning' : 'btn-danger',\r\n note: approve ? 'STK_UNDO_REQUEST_CONFIRM_UPDATE_STATUS_APPROVE_NOTE' : 'STK_UNDO_REQUEST_CONFIRM_UPDATE_STATUS_REJECT_NOTE'\r\n }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.resolveRequest(row.transactionId, row.stockType.id, approve);\r\n });\r\n }\r\n\r\n onStockTypeChange(stockTypeId) {\r\n\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.stocksService.getUndoRequests(0, this.paginator.length, this.sort.active, this.sort.direction)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.undoRequests);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private resolveRequest(transactionId: number, stockTypeId: number, approve: boolean) {\r\n this.loader.load(LoaderType.Body);\r\n const cmd: ResolveUndoCmd = {\r\n approve: approve,\r\n stockTypeId: stockTypeId,\r\n transactionId: transactionId\r\n }\r\n this.stocksService.resolveUndo(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(approve ? '_ACTION_APPROVING' : '_ACTION_REJECTING');\r\n const i = this.dataSource.undoRequestsSubject.value.findIndex(i => i.transactionId == cmd.transactionId);\r\n this.dataSource.undoRequestsSubject.value[i].undoRequestStatus = approve ? UndoRequestStatus.Approved : UndoRequestStatus.Rejected;\r\n } else this.alert.failure('_ACTION_APPROVING');\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private exportToExcel(data: UndoRequestDto[]) {\r\n const wscols = [\r\n { width: 14 },\r\n { width: 24 },\r\n { width: 24 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 16 },\r\n { width: 16 }\r\n ];\r\n const autofilter = { ref: 'A1:I1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('_LABEL_DATE'),\r\n `${this.translate.instant('_LABEL_FROM')} ${this.translate.instant('ACC_LABEL_ACCOUNT')}`,\r\n `${this.translate.instant('_LABEL_TO')} ${this.translate.instant('ACC_LABEL_ACCOUNT')}`,\r\n this.translate.instant('SEC_FIELD_USERNAME'),\r\n `${this.translate.instant('_LABEL_FROM')} ${this.translate.instant('_LABEL_SERIAL')}`,\r\n `${this.translate.instant('_LABEL_TO')} ${this.translate.instant('_LABEL_SERIAL')}`,\r\n this.translate.instant('STK_LABEL_QUANTITY'),\r\n this.translate.instant('STK_LABEL_UNDO_REQUEST_STATUS'),\r\n this.translate.instant('LKP_FIELD_STOCK_TYPE'),\r\n this.translate.instant('_FIELD_REASON')\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n moment(row.created).format('DD/MM/YYYY'),\r\n row.fromAccountTitles[0],\r\n row.toAccountTitles ? row.toAccountTitles[0] : this.translate.instant('STK_LABEL_PRIMARY_STOCK'),\r\n row.username ? row.username : '-',\r\n row.fromRange.toString(),\r\n row.toRange.toString(),\r\n (row.toRange - row.fromRange + 1).toString(),\r\n this.translate.instant(undoRequestStatusLocale(row.undoRequestStatus)),\r\n row.stockType.titles[0],\r\n row.reason ? row.reason : '-'\r\n ]);\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Stock-Return-Requests');\r\n }\r\n}","import { Router } from '@angular/router';\r\nimport { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { AvailableStock, AvailableStocksVm } from '../../models/available-stocks';\r\nimport { StockSliderComponent } from '../../components/stock-slider/stock-slider.component';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { TryUndoCmd } from '../../models/try-undo.cmd';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { FormBuilder, FormGroup, NgForm, FormArray } from '@angular/forms';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\n\r\n@Component({\r\n selector: 'mac-undo-try',\r\n templateUrl: './undo-try.component.html',\r\n styleUrls: ['./undo-try.component.scss'],\r\n providers: [StockTypesService, StocksService]\r\n})\r\nexport class UndoTryComponent implements OnInit {\r\n selectedStock: number[];\r\n availableStock: AvailableStock;\r\n stockTypes: StockTypeDto[];\r\n stockType: StockTypeDto = { id: 0, titles: ['', ''] };\r\n customReason: any;\r\n reason: LookupDto;\r\n reasons: LookupDto[] = [\r\n { id: 1, titles: ['تالف', 'Destroyed'] },\r\n { id: 2, titles: ['عيوب طباعة', 'Printing Issues'] },\r\n { id: 0, titles: ['آخر', 'Other'] }\r\n ];\r\n lang: Language;\r\n\r\n @ViewChild(StockSliderComponent) slider: StockSliderComponent;\r\n @ViewChild('f', { static: true }) form: NgForm;\r\n\r\n get _customReason() { return this.form.controls.customReason }\r\n get _reason() { return this.form.controls.reason }\r\n\r\n constructor(private loader: LoadingService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private stockTypesService: StockTypesService,\r\n private translate: TranslateService,\r\n private stocksService: StocksService,\r\n public auth: AuthService,\r\n private fb: FormBuilder) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.stockTypesService.getAllowed(this.auth.currentUser.accountId)\r\n .then(result => {\r\n //this.stockTypes = result.list.filter(x => x.id == StockType.License);\r\n this.stockTypes = result.list;\r\n if (this.stockTypes.length == 1) {\r\n this.stockType = this.stockTypes[0];\r\n this.onSelectStockType()\r\n }\r\n } /*this.stockTypes = result.list*/)\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n ngAfterViewInit() {\r\n // setTimeout(() => {\r\n // //console.log(this.form.controls);\r\n // //console.log(this.form.form.controls);\r\n // //console.log(Object.keys(this.form.controls))\r\n // //console.log(this.form.controls.customReason);\r\n // }, 500);\r\n\r\n\r\n }\r\n reset() {\r\n //this.fromAccountId = this.fromAccounts[0].id;\r\n //this.toAccountId = this.toAccounts[0].id;\r\n this.stockType = { id: 0, titles: [] };\r\n this.selectedStock = null;\r\n this._reason.reset();\r\n this._customReason.reset();\r\n }\r\n\r\n onSelectStockType() {\r\n this.selectedStock = null;\r\n this.loadAvailableStock();\r\n }\r\n\r\n onSelectRange() {\r\n setTimeout(() => {\r\n this.slider.transactionDetails.alertClass = 'primary';\r\n this.slider.transactionDetails.operation = 'STK_TITLE_UNDO';\r\n this.slider.transactionDetails.stockType = this.stockType.titles[0];\r\n this.slider.onSelectRange(this.selectedStock);\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (this.reason && this.reason.id > 0)\r\n this._customReason.setErrors(null);\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n const cmd: TryUndoCmd = {\r\n stockTypeId: this.stockType.id,\r\n fromRange: this.slider.fromRange,\r\n toRange: this.slider.toRange,\r\n reason: this.reason && this.reason.id > 0 ? this.reason.titles[this.lang] : this._customReason.value\r\n //cancel: false //todo: include an undo try cancel request,\r\n }\r\n this.stocksService.tryUndo(cmd)\r\n .then(result => {\r\n result ?\r\n this.alert.success(!this.auth.currentUser.isSystemAccount ? '_ACTION_REQUESTING' : 'STK_TITLE_UNDOING')\r\n : this.alert.failure(!this.auth.currentUser.isSystemAccount ? '_ACTION_REQUESTING' : 'STK_TITLE_UNDOING');\r\n\r\n if (result)\r\n this.router.navigate(['/', this.translate.currentLang, 'stocks', 'transactions']);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private loadAvailableStock() {\r\n this.loader.load(LoaderType.Body);\r\n this.stocksService\r\n .getAvailableStocks(this.stockType.id)\r\n .then(data => this.renderAvailableStock(data))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private renderAvailableStock(vm: AvailableStocksVm) {\r\n this.availableStock = new AvailableStock();\r\n this.availableStock.singles = [];\r\n this.availableStock.ranges = [];\r\n\r\n vm.stockTypesAvailableStocks[0].availableStock.forEach(s => {\r\n s.length > 1 ? this.availableStock.ranges.push(s)\r\n : this.availableStock.singles.push(s);\r\n });\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { StocksService } from '../services/stocks.service';\r\nimport { StocksTotalsVm, AccountStocksTotalsDto } from '../models/stocks-totals';\r\nimport { catchError, finalize, filter } from 'rxjs/operators';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\n\r\n\r\nexport class StockTotalsDataSource implements DataSource {\r\n private StockTotalsSubject = new BehaviorSubject([]);\r\n\r\n private countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private stocksService: StocksService,\r\n private loader: LoadingService) { }\r\n\r\n loadStockTotals(pageIndex: number, pageSize: number, sort: string, direction: string, filter: string = '', accountId: number = 0) {\r\n this.stocksService.getStockTotals(pageIndex, pageSize, sort, direction, filter, accountId)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: StocksTotalsVm) => {\r\n result.accountsStocksTotals.forEach(accountStocksTotals => {\r\n accountStocksTotals.parentAccounts = populateAccountsSelect([accountStocksTotals.parentAccounts])[0];\r\n });\r\n this.StockTotalsSubject.next(result.accountsStocksTotals);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n }\r\n );\r\n }\r\n\r\n connect(): Observable {\r\n return this.StockTotalsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.StockTotalsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { StocksService } from '../services/stocks.service';\r\nimport { TransactionsVm, TransactionDto, StockTransactionsSearchQuery } from '../models/transactions';\r\nimport { catchError, finalize, filter } from 'rxjs/operators';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../issuing/_shared/models/issuing.models';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { lookup } from 'dns';\r\nimport { LookupDto } from '../../lookups/models/lookup';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n\r\nexport class TransactionsDataSource implements DataSource {\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n private TransactionsSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n private countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private stocksService: StocksService, private loader: LoadingService, private translate: TranslateService) {\r\n\r\n }\r\n\r\n //loadTransactions(pageIndex: number, pageSize: number, sort: string, direction: string, filter: string = ''/*, stockTypeId: number = 0*/) {\r\n loadTransactions(pagination: PaginationQuery, query: StockTransactionsSearchQuery | string = null) {\r\n //this.stocksService.getTransactions(pageIndex, pageSize, sort, direction, filter/*, stockTypeId*/)\r\n //console.log(query);\r\n this.stocksService[(query == null || typeof query == 'string') ? 'getTransactions' : 'searchTransactions'](pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: TransactionsVm) => {\r\n const systemAccountLabel = this.translate.instant('ACC_SYSTEM_ACCOUNT');\r\n result.stockTransactions.forEach(transaction => {\r\n transaction.fromAccountParentAccounts = transaction.fromAccountParentAccounts ?\r\n populateAccountsSelect([transaction.fromAccountParentAccounts])[0]\r\n : { id: 0, titles: [systemAccountLabel] };\r\n transaction.toAccountParentAccounts = transaction.toAccountParentAccounts ?\r\n populateAccountsSelect([transaction.toAccountParentAccounts])[0]\r\n : { id: 0, titles: [systemAccountLabel] };\r\n });\r\n this.TransactionsSubject.next(result.stockTransactions);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n }\r\n );\r\n }\r\n\r\n connect(): Observable {\r\n return this.TransactionsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.TransactionsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { StocksService } from '../services/stocks.service';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { UndoRequestsVm, UndoRequestDto } from '../models/undo-requests';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\n\r\n\r\nexport class UndoRequestsDataSource implements DataSource {\r\n\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n public undoRequestsSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n private countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private stocksService: StocksService,\r\n private loader: LoadingService) {\r\n }\r\n\r\n loadUndoRequests(pageIndex: number, pageSize: number, sort: string, direction: string, stockTypeId: number = 0, filter: string = '') {\r\n this.stocksService.getUndoRequests(pageIndex, pageSize, sort, direction, stockTypeId, filter)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: UndoRequestsVm) => {\r\n this.undoRequestsSubject.next(result.undoRequests);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.undoRequestsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.undoRequestsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","export class AvailableStock {\r\n constructor() {\r\n this.singles = [];\r\n this.ranges = [];\r\n }\r\n singles: number[][];\r\n ranges: number[][];\r\n}\r\n\r\nexport class AvailableStocksVm {\r\n stockTypesAvailableStocks: StockTypeAvailableStocksDto[]\r\n}\r\n\r\nexport class StockTypeAvailableStocksDto {\r\n availableStock: number[][];\r\n //unavailableStock: number[][];\r\n stockType: {\r\n id: number;\r\n titles: string[];\r\n }\r\n}","import { TransactionType } from 'src/app/core/models/enums/transaction-type';\r\n\r\nexport function transactionTypeLocale(type: TransactionType) {\r\n switch (type) {\r\n case TransactionType.Depopulate:\r\n return `STK_TITLE_DEPOPULATE`;\r\n\r\n case TransactionType.Return:\r\n return `STK_TITLE_UNDO`;\r\n\r\n case TransactionType.Issue:\r\n return `STK_LABEL_TRANSACTION_TYPE_ISSUE`;\r\n\r\n case TransactionType.Transfer:\r\n return `STK_TITLE_TRANSACT`;\r\n\r\n case TransactionType.Populate:\r\n return `STK_TITLE_POPULATE`;\r\n\r\n default:\r\n return \"ERROR\";\r\n }\r\n}\r\n","export class UndoRequestsVm {\r\n undoRequests: [];\r\n recordsCount: number;\r\n}\r\n\r\nexport class UndoRequestDto {\r\n transactionId: number;\r\n fromAccountId: number;\r\n fromAccountTitles: string[];\r\n toAccountId: number;\r\n toAccountTitles: string[];\r\n username: string;\r\n fromRange: number;\r\n toRange: number;\r\n undoRequestStatus: UndoRequestStatus\r\n stockType: {\r\n id: number;\r\n titles: string[];\r\n }\r\n createdBy: string;\r\n created: Date;\r\n reason: string;\r\n}\r\n\r\nexport enum UndoRequestStatus {\r\n Rejected = -2,\r\n Removed = -1,\r\n New = 0,\r\n Approved = 1,\r\n}\r\n\r\nexport function undoRequestStatusLocale(status: UndoRequestStatus) {\r\n\r\n let _key = \"_LABEL_UNDO_REQUEST_STATUS_\";\r\n\r\n switch (status) {\r\n case UndoRequestStatus.Rejected:\r\n return `${_key}REJECTED`;\r\n\r\n case UndoRequestStatus.New:\r\n return `${_key}NEW`;\r\n\r\n case UndoRequestStatus.Approved:\r\n return `${_key}APPROVED`;\r\n\r\n case UndoRequestStatus.Removed:\r\n return `${_key}REMOVED`;\r\n\r\n default:\r\n return \"ERROR\";\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { StockTransactionsSearchQuery, TransactionsVm } from '../models/transactions';\r\nimport { StocksTotalsVm } from '../models/stocks-totals';\r\nimport { AvailableStocksVm } from '../models/available-stocks';\r\nimport { UndoRequestsVm } from '../models/undo-requests';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { TransactCmd } from '../models/transact.cmd';\r\nimport { PopulateCmd } from '../models/populate.cmd';\r\nimport { TryUndoCmd } from '../models/try-undo.cmd';\r\nimport { ResolveUndoCmd } from '../models/resolve-undo.cmd';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { PaginationQuery } from '../../issuing/_shared/models/issuing.models';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class StocksService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n getTransactions(pagination: PaginationQuery, query: string = '') {\r\n return this.api.get(EndPoint.STOCKS_TRANSACTIONS, null, { ...pagination, query });\r\n }\r\n\r\n searchTransactions(pagination: PaginationQuery, query: StockTransactionsSearchQuery) {\r\n return this.api.get(EndPoint.STOCKS_TRANSACTIONS_SEARCH, null, { ...pagination, ...query });\r\n }\r\n\r\n getStockTotals(pageIndex: number = 0, pageSize: number, sort: string, direction: string, filter: string = '', accountId: number = 0) {\r\n return this.api.get(EndPoint.STOCKS_TOTALS, accountId, { pageIndex, pageSize, sort, direction, filter });\r\n }\r\n\r\n getUndoRequests(pageIndex: number = 0, pageSize: number, sort: string, direction: string, stockTypeId: number = 0, filter: string = '') {\r\n return this.api.get(EndPoint.STOCKS_UNDO_REQUESTS, [stockTypeId], { pageIndex, pageSize, sort, direction, filter });\r\n }\r\n\r\n getAvailableStocks(stockTypeId: number = 0, accountId = 0) {\r\n return this.api.get(EndPoint.STOCKS_AVAILABLE, [stockTypeId, accountId])\r\n .toPromise();\r\n }\r\n\r\n getSystemAvailableStocks(stockTypeId: number, gaps: boolean = false, threshold: boolean = true) {\r\n return this.api.get(EndPoint.STOCKS_SYSTEM_AVAILABLE, [stockTypeId, gaps, threshold])\r\n .toPromise();\r\n }\r\n\r\n transact(cmd: TransactCmd) {\r\n return this.api.create(EndPoint.STOCKS_TRANSACT, cmd).toPromise();\r\n }\r\n\r\n populate(cmd: PopulateCmd) {\r\n return this.api.create(EndPoint.STOCKS_POPULATE, cmd).toPromise();\r\n }\r\n\r\n tryUndo(cmd: TryUndoCmd) {\r\n return this.api.create(EndPoint.STOCKS_UNDO_TRY, cmd).toPromise();\r\n }\r\n\r\n resolveUndo(cmd: ResolveUndoCmd) {\r\n return this.api.create(EndPoint.STOCKS_UNDO_RESOLVE, cmd).toPromise();\r\n }\r\n\r\n}\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BloodGroup } from 'src/app/core/models/enums/blood-group';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { StocksService } from 'src/app/features/stock/services/stocks.service';\r\nimport * as moment from 'moment';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport * as _ from 'lodash';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { TripTiksClaimsService } from '../../services/trip-tiks-claims.service';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { CurrencyDto } from 'src/app/features/lookups/models/currency';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { CurrenciesService } from 'src/app/features/lookups/services/currencies';\r\nimport { CustomsPortsService } from 'src/app/features/lookups/services/customs-ports.service';\r\nimport { PostTripTikClaimCommand } from '../../models/trip-tik-claim.model';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { Router } from '@angular/router';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { PursuingZonesService } from 'src/app/features/lookups/services/pursuing-zones';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { addressValidator, phoneNumberValidator, triptikNameValidator } from 'src/app/shared/services/custom-validators';\r\nimport { CustomsPortDto } from 'src/app/features/lookups/models/customs-port';\r\n\r\n@Component({\r\n selector: 'mac-manage-trip-tik-claim',\r\n templateUrl: './manage-trip-tik-claim.component.html',\r\n styleUrls: ['./manage-trip-tik-claim.component.scss'],\r\n providers: [\r\n CountriesService,\r\n PursuingZonesService,\r\n StockTypesService,\r\n CurrenciesService,\r\n CustomsPortsService,\r\n TripTiksClaimsService,\r\n FileLoaderService]\r\n})\r\nexport class ManageTripTikClaimComponent implements OnInit {\r\n lang: Language;\r\n form: FormGroup;\r\n // countries: CountryDto[] = [];\r\n pursuingZones: LookupDto[] = [];\r\n stockTypes: StockTypeDto[] = [];\r\n customsPorts: CustomsPortDto[] = [];\r\n _customsPorts: CustomsPortDto[] = [];\r\n claimsCountries: LookupDto[] = [];\r\n currencies: CurrencyDto[] = [];\r\n availableSerials: number[];\r\n //cashedVm: IntLicenseVm;\r\n //dto: IntLicenseDetailsDto = new IntLicenseDetailsDto();\r\n updateMode: boolean;\r\n _loadingGif: string = 'assets/images/Ring-Preloader.gif';\r\n dateFormat = 'L';\r\n mode: 'ADD' | 'UPDATE';\r\n\r\n\r\n get moment() { return moment };\r\n get Object() { return Object };\r\n get BloodGroup() { return BloodGroup };\r\n get IntLicensePermitClass() { return IntLicensePermitClass };\r\n get Gender() { return Gender };\r\n\r\n get entranceID() { return this.form.get('entranceID') };\r\n get entranceDate() { return this.form.get('entranceDate') };\r\n get serial() { return this.form.get('serial') };\r\n get stockType() { return this.form.get('stockTypeId') };\r\n get country() { return this.form.get('countryId') };\r\n get customsPort() { return this.form.get('customsPortId') };\r\n get pursuingZone() { return this.form.get('pursuingZoneId') };\r\n get value() { return this.form.get('value') };\r\n get currency() { return this.form.get('currencyId') };\r\n get holderName() { return this.form.get('holderName') };\r\n get holderAddress() { return this.form.get('holderAddress') };\r\n get holderPhone() { return this.form.get('holderPhone') };\r\n\r\n constructor(private loader: LoadingService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private pursuingZonesService: PursuingZonesService,\r\n private customsPortsService: CustomsPortsService,\r\n private stockTypesService: StockTypesService,\r\n private currenciesService: CurrenciesService,\r\n private triptiksClaimsService: TripTiksClaimsService,\r\n public translate: TranslateService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private auth: AuthService) { }\r\n\r\n async ngOnInit() {\r\n moment.locale('en-gb');\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n //const tripTikClaimId = this.route.snapshot.paramMap.get('id');\r\n // this.countries = await (await this.countriesService.get(this.lang)).list;\r\n\r\n\r\n\r\n await Promise.all([\r\n this.stockTypesService.getAllowed()\r\n .then(result => this.stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument)),\r\n this.customsPortsService.get(this.lang)\r\n .then(result => {\r\n this._customsPorts = !this.auth.currentUser.isAdministrator ?\r\n result.list.filter(x => this.auth.currentUser.claimsCountries.indexOf(x.countryId) > -1)\r\n : result.list;\r\n\r\n this.claimsCountries = [...new Map(this._customsPorts.map(item =>\r\n [item['countryId'], item])).values()].map(x => {\r\n id: x.countryId,\r\n titles: x.countryTitles\r\n });\r\n\r\n\r\n //bind ports later\r\n\r\n\r\n }),\r\n // this.countriesService.get(this.lang)\r\n // .then(result => this.countries = result.list),\r\n this.pursuingZonesService.get(this.lang)\r\n .then(result => this.pursuingZones = result.list),\r\n this.currenciesService.get(this.lang)\r\n .then(result => {\r\n this.currencies = result.list;\r\n this.currency.setValue(this.currencies[0].id);\r\n })\r\n ]);\r\n\r\n\r\n // if (tripTikClaimId) {\r\n // this.updateMode = this.mode == 'UPDATE';\r\n // this.dto = await (await this.tripTiksClaimsService.get(tripTikClaimId)).intLicense;\r\n\r\n // if (!this.dto || (this.updateMode && this.dto.issued)) { //will ignore if cloning\r\n // this.router.navigate([`/${this.translate.currentLang}/not-found`]);\r\n // return;\r\n // }\r\n // if (this.updateMode) {\r\n // this.availableSerials.unshift(this.dto.serial);\r\n // } else {\r\n // if (this.availableSerials.length > 0)\r\n // this.form.patchValue({ serial: this.availableSerials[0] });\r\n // else {\r\n // this.alert.failure(\"LIC_ALERT_NO_STOCK_AVAILABLE\", false);\r\n // this.form.disable();\r\n // return;\r\n // }\r\n // }\r\n\r\n // this.dto.serial = this.updateMode ? this.dto.serial : this.availableSerials[0];\r\n // this.form.patchValue(this.dto);\r\n\r\n // } else {\r\n // if (this.availableSerials.length > 0)\r\n // this.form.patchValue({ serial: this.availableSerials[0] });\r\n // else {\r\n // this.alert.failure(\"LIC_ALERT_NO_STOCK_AVAILABLE\", false);\r\n // this.form.disable();\r\n //}\r\n //}\r\n this.loader.load(LoaderType.Nav, false);\r\n }\r\n\r\n fetchCustomsPorts(countryId) {\r\n this.customsPort.reset();\r\n\r\n this.customsPorts = this._customsPorts.filter(x => countryId == x.countryId)\r\n // this.customsPortsService.get(countryId, this.lang)\r\n // .then(result => {\r\n // this.customsPorts = result.list;\r\n // });\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n entranceID: ['', [Validators.required, Validators.maxLength(10)]],\r\n entranceDate: ['', [Validators.required]],\r\n serial: ['', [Validators.required, Validators.maxLength(10)]],\r\n stockTypeId: ['', [Validators.required]],\r\n countryId: [null, [Validators.required]],\r\n customsPortId: [null, [Validators.required]],\r\n pursuingZoneId: ['', [Validators.required]],\r\n value: [''],\r\n currencyId: [''],\r\n holderName: ['', [Validators.required, triptikNameValidator, Validators.minLength(5), Validators.maxLength(30)]],\r\n holderAddress: ['', [addressValidator]],\r\n holderPhone: ['', [phoneNumberValidator]]\r\n });\r\n }\r\n\r\n onSubmit() {\r\n\r\n // if (!this.auth.currentUser.isInRole(Role.TRIPTIKS_CLAIMS_CREATE))\r\n // return;\r\n\r\n //console.log(this.form.value);\r\n\r\n if (this.entranceDate.value)\r\n this.entranceDate.setValue(moment(this.entranceDate.value).format());\r\n\r\n for (let c in this.form.controls) {\r\n // //console.log(c);\r\n // //console.log(this.form.controls[c].value);\r\n // //console.log(typeof this.form.controls[c].value);\r\n if (this.form.controls[c].value && typeof this.form.controls[c].value == 'string')\r\n this.form.controls[c].setValue(this.form.controls[c].value.trim());\r\n\r\n }\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n\r\n const cmd = this.form.value as PostTripTikClaimCommand;\r\n\r\n this.triptiksClaimsService.create(cmd)\r\n .then(id => {\r\n if (id) {\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n setTimeout(() => {\r\n this.router.navigate(['/', this.translate.currentLang, 'trip-tiks-claims']);\r\n }, 1000);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { TripTiksClaimsService } from '../../services/trip-tiks-claims.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TripTikClaimAttachmentDto } from '../../models/trip-tik-claim.model';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\n\r\n@Component({\r\n selector: 'mac-trip-tik-claim-attachments',\r\n templateUrl: './trip-tik-claim-attachments.component.html',\r\n styleUrls: ['./trip-tik-claim-attachments.component.scss'],\r\n providers: [TripTiksClaimsService, FileLoaderService]\r\n})\r\nexport class TripTikClaimAttachmentsComponent implements OnInit {\r\n\r\n displayedColumns = ['created', 'createdBy', 'name', 'tools'];\r\n dataSource: TripTikClaimAttachmentDto[] = [];\r\n tripTikClaimEntranceID: string;\r\n\r\n constructor(private loader: LoadingService,\r\n private tripTiksClaimsService: TripTiksClaimsService,\r\n private route: ActivatedRoute,\r\n private fileLoader: FileLoaderService) { }\r\n\r\n ngOnInit(): void {\r\n this.loader.load(LoaderType.Nav);\r\n const tripTikClaimId = this.route.snapshot.paramMap.get('id');\r\n\r\n this.tripTiksClaimsService.getClaimAttachments(tripTikClaimId)\r\n .then(result => {\r\n //console.log(result);\r\n this.tripTikClaimEntranceID = result.tripTikClaimEntranceID;\r\n\r\n\r\n\r\n result.list.forEach(async att => {\r\n const file = await this.fileLoader.loadAsync(att.url as string);\r\n //console.log(att.url, file);\r\n att.url = file ? file as string : null;\r\n this.dataSource.push(att);\r\n });\r\n\r\n // for (let i = 0; i < this.dataSource.length; i++) {\r\n // this.dataSource[i].url = (await this.fileLoader.loadAsync(this.dto.attachments[0] as string)).changingThisBreaksApplicationSecurity;\r\n // }\r\n\r\n\r\n // this.dto.attachments[0] = (await this.fileLoader.loadAsync(this.dto.attachments[0] as string)).changingThisBreaksApplicationSecurity;\r\n // this.dto.attachments[1] = (await this.fileLoader.loadAsync(this.dto.attachments[1] as string)).changingThisBreaksApplicationSecurity;\r\n // this.dto.attachments[2] = (await this.fileLoader.loadAsync(this.dto.attachments[2] as string)).changingThisBreaksApplicationSecurity;\r\n\r\n // this.dataSource.forEach(async (att, i) => {\r\n // att.url = await this.fileLoader.loadAsync(att.url)\r\n // });\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TripTiksClaimsService } from '../../services/trip-tiks-claims.service';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { TripTiksClaimsDataSource } from '../../services/trip-tiks-claims.datasource';\r\nimport { PaginationQuery } from 'src/app/features/issuing/_shared/models/issuing.models';\r\nimport { TripTikClaimDto, TripTikClaimLogDto } from '../../models/trip-tik-claim.model';\r\nimport { TripTiksClaimsLogsDataSource } from '../../services/trip-tiks-claims-logs.datasource';\r\nimport { CustomsPortDto } from 'src/app/features/lookups/models/customs-port';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { CustomsPortsService } from 'src/app/features/lookups/services/customs-ports.service';\r\nimport { PursuingZonesService } from 'src/app/features/lookups/services/pursuing-zones';\r\nimport { TripTikClaimsStatusesService } from 'src/app/features/lookups/services/trip-tik-claims-statuses.service';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { QRCodeErrorCorrectionLevel } from 'angularx-qrcode';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n\r\n@Component({\r\n selector: 'mac-trip-tiks-claims-logs',\r\n templateUrl: './trip-tiks-claims-logs.component.html',\r\n styleUrls: ['./trip-tiks-claims-logs.component.scss'],\r\n providers: [\r\n TripTiksClaimsService,\r\n TripTikClaimsStatusesService,\r\n PursuingZonesService,\r\n AccountsService,\r\n StockTypesService,\r\n CustomsPortsService\r\n ]\r\n})\r\nexport class TripTiksClaimsLogsComponent implements OnInit {\r\n moment = moment;\r\n //displayedColumns: string[] = ['entranceID', 'created', 'entranceDate', 'name', 'accountTitles', 'serial', 'plateID', 'portTitles', 'followUpCity', 'latestStatus', 'tools'];\r\n displayedColumns: string[] = ['created', 'createdBy', 'holderName', 'serial', 'stockType', 'issued', 'customsPort', 'latestStatus', 'note'];\r\n dataSource: TripTiksClaimsLogsDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n pursuingZones: LookupDto[] = [];\r\n accounts: LookupDto[] = [];\r\n customsPorts: CustomsPortDto[] = [];\r\n cities: LookupDto[] = [];\r\n statuses: LookupDto[] = [];\r\n stockTypes: StockTypeDto[] = [];\r\n query: any = null;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n get Role() { return Role; };\r\n get Gender() { return Gender; };\r\n get PrintObject() { return PrintObject; };\r\n get IntLicensePermitClass() { return IntLicensePermitClass };\r\n get Object() { return Object; };\r\n\r\n constructor(private loader: LoadingService,\r\n private tripTiksClaimsService: TripTiksClaimsService,\r\n private tripTikClaimsStatusesService: TripTikClaimsStatusesService,\r\n private pursuingZonesService: PursuingZonesService,\r\n public translate: TranslateService,\r\n private stockTypesService: StockTypesService,\r\n private customsPortsService: CustomsPortsService,\r\n private accountsService: AccountsService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n Promise.all([\r\n this.stockTypesService.get(this.lang)\r\n .then(result => this.stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument)),\r\n // this.pursuingZonesService.get(this.lang)\r\n // .then(result => this.pursuingZones = result.list),\r\n this.pursuingZonesService.get(this.lang)\r\n .then(result => {\r\n this.pursuingZones = !this.auth.currentUser.isAdministrator ?\r\n result.list.filter(x => this.auth.currentUser.claimsCountries.map(y => Number(y)).indexOf(x.id) > -1)\r\n : result.list;\r\n }),\r\n this.tripTikClaimsStatusesService.get(0, this.lang)\r\n .then(result => {\r\n this.statuses = result.list.filter(x => x.parentId).map(item => {\r\n item.titles = [`${item.parentTitles} - ${item.titles}`];\r\n return item;\r\n })\r\n }),\r\n this.customsPortsService.get(this.lang)\r\n .then(result => this.customsPorts = result.list)\r\n ]);\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isSystemAccount) {\r\n this.accountsService.getChildrenAccountsLookup(0, false)\r\n .then(result => {\r\n this.accounts = result.list;\r\n }).catch(e => this.searchForm.get('accountId').disable());\r\n } else {\r\n this.accounts = [{ id: this.auth.currentUser.accountId, titles: [this.auth.currentUser.accountTitles[this.lang]] }];\r\n this.searchForm.patchValue({ accountId: this.auth.currentUser.accountId });\r\n this.searchForm.get('accountId').disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe(p => {\r\n //console.warn(p);\r\n\r\n if (!p.has('pageIndex')) {\r\n //console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = '';\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageIndex, length: this.paginator.length });\r\n }\r\n });\r\n\r\n //let query = null;\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n }\r\n else if (this.route.snapshot.queryParams.accountId\r\n || this.route.snapshot.queryParams.countryId\r\n || this.route.snapshot.queryParams.stockTypeId\r\n || this.route.snapshot.queryParams.created\r\n || this.route.snapshot.queryParams.entranceDate\r\n || this.route.snapshot.queryParams.entranceID\r\n || this.route.snapshot.queryParams.holderName\r\n || this.route.snapshot.queryParams.vehiclePlateID\r\n || this.route.snapshot.queryParams.customsPortId\r\n || this.route.snapshot.queryParams.pursuingZoneId\r\n || this.route.snapshot.queryParams.latestStatusId\r\n || this.route.snapshot.queryParams.serial) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({ accountId: !isNaN(this.route.snapshot.queryParams.accountId) ? parseInt(this.route.snapshot.queryParams.accountId) : null });\r\n\r\n this.query = this.searchForm.value;\r\n }\r\n\r\n this.fetchData(this.query);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.loadTripTiksClaimsLogs({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction },\r\n this.advancedSearchMode || this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadTripTiksClaimsLogs({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect()\r\n .subscribe(() => {\r\n let pagination: PaginationQuery = { pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction };\r\n let query = this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim();\r\n this.query = query;\r\n\r\n if (this.activeFilters)\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, ...query }, replaceUrl: true });\r\n else\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, query }, replaceUrl: true });\r\n });\r\n }\r\n\r\n fetchData(query) {\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex ? this.route.snapshot.queryParams.pageIndex : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize ? this.route.snapshot.queryParams.pageSize : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort ? this.route.snapshot.queryParams.sort : 'created';\r\n this.sort.direction = this.route.snapshot.queryParams.dir ? this.route.snapshot.queryParams.dir : 'desc';\r\n this.dataSource = new TripTiksClaimsLogsDataSource(this.tripTiksClaimsService, this.loader);\r\n this.dataSource.loadTripTiksClaimsLogs({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, query);\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = '';\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.tripTiksClaimsService[(this.query == null || typeof this.query == 'string') ? 'getClaimsLogs' : 'searchClaimsLogs']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.list);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: TripTikClaimLogDto[]) {\r\n // const wscols = [\r\n // { width: 12 },\r\n // { width: 28 },\r\n // { width: 12 },\r\n // { width: 18 },\r\n // { width: 28 },\r\n // { width: 18 },\r\n // { width: 18 },\r\n // { width: 18 },\r\n // { width: 18 }\r\n // ];\r\n // const autofilter = { ref: 'A1:I1' };\r\n // const rows: string[][] = [];\r\n\r\n // const headers = [\r\n // this.translate.instant('_LABEL_SERIAL'),\r\n // this.translate.instant('_FIELD_NAME'),\r\n // this.translate.instant('_LABEL_GENDER'),\r\n // this.translate.instant('_FIELD_PHONE_NO'),\r\n // this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n // this.translate.instant('ISS_FIELD_PASSPORT_NUMBER'),\r\n // this.translate.instant('ISS_LABEL_ISSUE_DATE'),\r\n // this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_LICENSE') }),\r\n // this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_STICKER') }),\r\n // ];\r\n\r\n // rows.push(headers);\r\n // for (let row of data) {\r\n // rows.push([\r\n // row.serial,\r\n // row.name,\r\n // this.translate.instant(row.gender == Gender.Male ? '_LABEL_MALE' : '_LABEL_FEMALE'),\r\n // row.phoneNumber,\r\n // row.accountTitles[0],\r\n // row.passportID,\r\n // moment(row.issued).format('DD/MM/YYYY'),\r\n // this.printObjectsCount(row.printLogs, PrintObject.IntLicenseCard),\r\n // this.printObjectsCount(row.printLogs, PrintObject.IntLicenseSticker)\r\n // ]);\r\n // }\r\n\r\n // exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Int-Licenses');\r\n }\r\n\r\n onSubmit() {\r\n if (this.created.value)\r\n this.created.setValue(Utils.convertToServerDateTimeString(this.created.value));\r\n\r\n if (this.entranceDate.value)\r\n this.entranceDate.setValue(Utils.convertToServerDateTimeString(this.entranceDate.value));\r\n\r\n this.activeFilters = true;\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n get created() { return this.searchForm.get('created'); };\r\n get entranceDate() { return this.searchForm.get('entranceDate'); };\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n this.searchForm = this.fb.group({\r\n accountId: [null],\r\n stockTypeId: [''],\r\n serial: [''],\r\n created: [''],\r\n entranceDate: [''],\r\n entranceID: [''],\r\n holderName: [''],\r\n vehiclePlateID: [''],\r\n customsPortId: [''],\r\n pursuingZoneId: [''],\r\n latestStatusId: ['']\r\n });\r\n }\r\n}","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TripTiksClaimsService } from '../../services/trip-tiks-claims.service';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { TripTiksClaimsDataSource } from '../../services/trip-tiks-claims.datasource';\r\nimport { PaginationQuery } from 'src/app/features/issuing/_shared/models/issuing.models';\r\nimport { TripTikClaimDto } from '../../models/trip-tik-claim.model';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { CustomsPortDto } from 'src/app/features/lookups/models/customs-port';\r\nimport { CustomsPortsService } from 'src/app/features/lookups/services/customs-ports.service';\r\nimport { PursuingZonesService } from 'src/app/features/lookups/services/pursuing-zones';\r\nimport { TripTikClaimsStatusesService } from 'src/app/features/lookups/services/trip-tik-claims-statuses.service';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { TripTikClaimStatusDto } from 'src/app/features/lookups/models/trip-tik-claim-status';\r\nimport { isArray } from 'lodash';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n\r\n@Component({\r\n selector: 'mac-trip-tiks-claims',\r\n templateUrl: './trip-tiks-claims.component.html',\r\n styleUrls: ['./trip-tiks-claims.component.scss'],\r\n providers: [\r\n TripTiksClaimsService,\r\n TripTikClaimsStatusesService,\r\n AccountsService,\r\n StockTypesService,\r\n CustomsPortsService,\r\n PursuingZonesService\r\n ]\r\n})\r\nexport class TripTiksClaimsComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = ['entranceID', /*'created',*/ 'entranceDate', 'holderName', 'accountTitles', 'serial', 'stockType', 'vehiclePlateID', 'country', 'customsPort', 'pursuingZone', 'latestStatus', 'tools'];\r\n dataSource: TripTiksClaimsDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n pursuingZones: LookupDto[] = [];\r\n accounts: LookupDto[] = [];\r\n customsPorts: CustomsPortDto[] = [];\r\n _customsPorts: CustomsPortDto[] = [];\r\n claimsCountries: LookupDto[] = [];\r\n stockTypes: StockTypeDto[] = [];\r\n query: any = null;\r\n baseStatuses: TripTikClaimStatusDto[] = [];\r\n nodeStatuses: TripTikClaimStatusDto[] = [];\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n get Role() { return Role; };\r\n get Gender() { return Gender; };\r\n get PrintObject() { return PrintObject; };\r\n get IntLicensePermitClass() { return IntLicensePermitClass };\r\n get Object() { return Object; };\r\n\r\n constructor(private loader: LoadingService,\r\n private tripTiksClaimsService: TripTiksClaimsService,\r\n public translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private stockTypesService: StockTypesService,\r\n private tripTikClaimsStatusesService: TripTikClaimsStatusesService,\r\n private pursuingZonesService: PursuingZonesService,\r\n private customsPortsService: CustomsPortsService,\r\n private accountsService: AccountsService,\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n async ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isAdministrator) {\r\n this.accountsService.getChildrenAccountsLookup(0, false)\r\n .then(result => {\r\n this.accounts = result.list;// populateAccountsSelect(result.list);\r\n }).catch(e => this.searchForm.get('accountId').disable());\r\n } else {\r\n // this.accounts = [{ id: this.auth.currentUser.accountId, titles: [this.auth.currentUser.accountTitles[this.lang]] }];\r\n // this.searchForm.patchValue({ accountId: this.auth.currentUser.accountId });\r\n // this.searchForm.get('accountId').disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe(p => {\r\n if (!p.has('pageIndex')) {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = '';\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageIndex, length: this.paginator.length });\r\n }\r\n });\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n this.statusId = this.route.snapshot.queryParams.statusId\r\n this.fetchData(this.query);\r\n }\r\n else if (this.route.snapshot.queryParams.accountId\r\n || this.route.snapshot.queryParams.stockTypeId\r\n || this.route.snapshot.queryParams.fromEntranceDate\r\n || this.route.snapshot.queryParams.toEntranceDate\r\n || this.route.snapshot.queryParams.entranceID\r\n || this.route.snapshot.queryParams.holderName\r\n || this.route.snapshot.queryParams.vehiclePlateID\r\n || this.route.snapshot.queryParams.countryId\r\n || this.route.snapshot.queryParams.customsPortId\r\n || this.route.snapshot.queryParams.pursuingZoneId\r\n || this.route.snapshot.queryParams.baseStatusId\r\n || this.route.snapshot.queryParams.statusId\r\n || this.route.snapshot.queryParams.serial) {\r\n this.activeFilters = true;\r\n\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n const _stockTypeId = this.route.snapshot.queryParams.stockTypeId && this.route.snapshot.queryParams.stockTypeId.indexOf(',') > -1 ?\r\n this.route.snapshot.queryParams.stockTypeId.split(',') : [this.route.snapshot.queryParams.stockTypeId];\r\n\r\n const _countryId = this.route.snapshot.queryParams.countryId && this.route.snapshot.queryParams.countryId.indexOf(',') > -1 ?\r\n this.route.snapshot.queryParams.countryId.split(',') : [this.route.snapshot.queryParams.countryId];\r\n\r\n const _customsPortId = this.route.snapshot.queryParams.customsPortId && this.route.snapshot.queryParams.customsPortId.indexOf(',') > -1 ?\r\n this.route.snapshot.queryParams.customsPortId.split(',') : [this.route.snapshot.queryParams.customsPortId];\r\n\r\n if (_countryId) {\r\n this.onSelectCountry(_countryId);\r\n }\r\n\r\n this.searchForm.patchValue({ stockTypeId: _stockTypeId, countryId: _countryId, customsPortId: _customsPortId });\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({ accountId: !isNaN(this.route.snapshot.queryParams.accountId) ? parseInt(this.route.snapshot.queryParams.accountId) : null });\r\n\r\n this.query = this.searchForm.value;\r\n this.fetchData(this.query);\r\n } else this.fetchData(this.query);\r\n\r\n await Promise.all([\r\n this.stockTypesService.get(this.lang)\r\n .then(result =>\r\n this.stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument)),\r\n this.tripTikClaimsStatusesService.get(null, this.lang)\r\n .then(result => this.baseStatuses = result.list),\r\n this.pursuingZonesService.get(this.lang)\r\n .then(result => this.pursuingZones = result.list),\r\n this.customsPortsService.get(0, this.lang)\r\n .then(result => {\r\n this._customsPorts = !this.auth.currentUser.isAdministrator ?\r\n result.list.filter(x => this.auth.currentUser.claimsCountries.indexOf(x.countryId) > -1)\r\n : result.list;\r\n\r\n this.claimsCountries = [...new Map(this._customsPorts.map(item =>\r\n [item['countryId'], item])).values()].map(x => {\r\n id: x.countryId,\r\n titles: x.countryTitles\r\n });\r\n })\r\n ]);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction },\r\n this.advancedSearchMode || this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim(), this.statusId, this.pursuingZoneId)\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim(), this.statusId, this.pursuingZoneId)\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect()\r\n .subscribe(() => {\r\n let pagination: PaginationQuery = { pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction };\r\n let query = this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim();\r\n this.query = query;\r\n //console.log(this.query);\r\n if (typeof query == 'object') {\r\n query.stockTypeId = query.stockTypeId ? query.stockTypeId.toString() : null;\r\n query.countryId = query.countryId ? query.countryId.toString() : null;\r\n query.customsPortId = query.customsPortId ? query.customsPortId.toString() : null;\r\n }\r\n const statusId = null;//this.status.nativeElement.value;\r\n this.statusId = statusId;\r\n const pursuingZoneId = null;// this.pursuingZone.nativeElement.value;\r\n this.pursuingZoneId = pursuingZoneId;\r\n\r\n if (this.activeFilters)\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, ...query }, replaceUrl: true });\r\n else\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, query, statusId, pursuingZoneId }, replaceUrl: true });\r\n });\r\n }\r\n\r\n statusId?: number;\r\n pursuingZoneId?: number;\r\n\r\n filterWithStatusId(statusId) {\r\n //console.log(statusId);\r\n this.statusId = statusId;\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim(), this.statusId, this.pursuingZoneId);\r\n }\r\n\r\n filterWithPursuingZoneId(pursuingZoneId) {\r\n //console.log(pursuingZoneId);\r\n this.pursuingZoneId = pursuingZoneId;\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim(), this.statusId, this.pursuingZoneId);\r\n }\r\n\r\n\r\n fetchData(query, statusId?: number, pursuingZoneId?: number) {\r\n // //console.log('try fetch')\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex ? this.route.snapshot.queryParams.pageIndex : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize ? this.route.snapshot.queryParams.pageSize : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort ? this.route.snapshot.queryParams.sort : 'created';\r\n this.sort.direction = this.route.snapshot.queryParams.dir ? this.route.snapshot.queryParams.dir : 'desc';\r\n this.dataSource = new TripTiksClaimsDataSource(this.tripTiksClaimsService, this.loader);\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, query);\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = '';\r\n }\r\n\r\n delete(dto: TripTikClaimDto) {\r\n // if (dto.accountId != this.auth.accountId\r\n // || !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE))\r\n // return;\r\n\r\n //delete confirm if not yet issued\r\n //if (!dto.issued) {\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'LIC_TITLE_LICENSE',\r\n title: `${dto.entranceID.toString()}/${dto.holderName}`,\r\n note: 'LIC_CONFIRM_DELETE_NOTE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this._delete(dto.entranceID);\r\n });\r\n // }\r\n }\r\n\r\n private _delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.tripTiksClaimsService.delete(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.TripTiksClaimsSubject.next(this.dataSource.TripTiksClaimsSubject.value.filter(d => d.entranceID != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n // onExportToExcel(all: boolean = true) {\r\n // this.loader.load(LoaderType.Body);\r\n // if (all)\r\n // this.tripTiksClaimsService[(this.query == null || typeof this.query == 'string') ? 'getClaims' : 'search']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query)\r\n // .toPromise()\r\n // .then(data => {\r\n // this.exportToExcel(data.list);\r\n // }).finally(() => this.loader.load(LoaderType.Body, false));\r\n // else\r\n // this.dataSource.connect().subscribe(data => {\r\n // this.exportToExcel(data);\r\n // this.loader.load(LoaderType.Body, false);\r\n // }).unsubscribe();\r\n // }\r\n\r\n // onSelectNestedStatus(status: number) {\r\n // //console.log(status);\r\n // if (status == TripTikClaimStatus.Paid) {\r\n // this.paymentFormInit();\r\n // } else {\r\n // Object.keys(this.payment.controls).forEach(ctrl => {\r\n // this.payment.removeControl(ctrl);\r\n // });\r\n // }\r\n // }\r\n\r\n onSelectCountry(countries: number[]) {\r\n // //console.log(countries);\r\n // //console.log(this._customsPorts);\r\n // //console.log(this.customsPorts);\r\n // if (countries) {\r\n this.searchForm.get('customsPortId').disable();\r\n this.customsPorts = this._customsPorts.filter(x => countries.map(y => Number(y)).indexOf(x.countryId) > -1)\r\n this.searchForm.get('customsPortId').enable();\r\n\r\n // //console.log(this.searchForm.get('countryId').value);\r\n\r\n // }\r\n }\r\n\r\n\r\n async onSelectStatus(statusId: number) {\r\n this.searchForm.get('statusId').disable();\r\n this.nodeStatuses = await (await this.tripTikClaimsStatusesService.get(statusId, this.lang)).list;\r\n this.searchForm.get('statusId').enable();\r\n }\r\n\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.tripTiksClaimsService[(this.query == null || typeof this.query == 'string') ? 'getClaims' : 'search']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.list);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: TripTikClaimDto[]) {\r\n const wscols = [\r\n { width: 12 },\r\n // { width: 12 },\r\n { width: 12 },\r\n { width: 28 },\r\n { width: 28 },\r\n { width: 16 },\r\n { width: 28 },\r\n { width: 16 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n ];\r\n const autofilter = { ref: 'A1:K1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('TRP_CLM_FIELD_ENTRANCE_ID'),\r\n // this.translate.instant('TRP_CLM_FIELD_REGISTRATION_DATE'),\r\n this.translate.instant('TRP_CLM_FIELD_ENTRANCE_DATE'),\r\n this.translate.instant('TRP_CLM_FIELD_NAME'),\r\n this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n this.translate.instant('TRP_FIELD_TRIPTIK_SERIAL'),\r\n this.translate.instant('TRP_FIELD_TRIPTIK_TYPE'),\r\n this.translate.instant('TRP_FIELD_PLATE_ID'),\r\n this.translate.instant('TRP_CLM_LABEL_CLAIM_COUNTRY'),\r\n this.translate.instant('LKP_FIELD_CUSTOMS_PORT'),\r\n this.translate.instant('LKP_FIELD_PURSUING_ZONE'),\r\n this.translate.instant('TRP_CLM_FIELD_LATEST_STATUS')\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n row.entranceID,\r\n moment(row.created).format('DD/MM/YYYY'),\r\n // moment(row.entranceDate).format('DD/MM/YYYY'),\r\n row.holderName,\r\n row.accountTitles ? row.accountTitles[0] : 'N/A',\r\n row.serial.toString(),\r\n row.stockType.titles[0],\r\n row.vehiclePlateID ? row.vehiclePlateID : 'N/A',\r\n row.country.countryTitles[0],\r\n row.customsPort ? row.customsPort.titles[0] : 'N/A',\r\n row.pursuingZone ? row.pursuingZone.titles[0] : 'N/A',\r\n row.latestStatus ? row.latestStatus.titles[0] : 'N/A'\r\n ]);\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Trip-Tik-Claims');\r\n }\r\n\r\n\r\n // private exportToExcel(data: TripTikClaimDto[]) {\r\n // // const wscols = [\r\n // // { width: 12 },\r\n // // { width: 28 },\r\n // // { width: 12 },\r\n // // { width: 18 },\r\n // // { width: 28 },\r\n // // { width: 18 },\r\n // // { width: 18 },\r\n // // { width: 18 },\r\n // // { width: 18 }\r\n // // ];\r\n // // const autofilter = { ref: 'A1:I1' };\r\n // // const rows: string[][] = [];\r\n\r\n // // const headers = [\r\n // // this.translate.instant('_LABEL_SERIAL'),\r\n // // this.translate.instant('_FIELD_NAME'),\r\n // // this.translate.instant('_LABEL_GENDER'),\r\n // // this.translate.instant('_FIELD_PHONE_NO'),\r\n // // this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n // // this.translate.instant('ISS_FIELD_PASSPORT_NUMBER'),\r\n // // this.translate.instant('ISS_LABEL_ISSUE_DATE'),\r\n // // this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_LICENSE') }),\r\n // // this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_STICKER') }),\r\n // // ];\r\n\r\n // // rows.push(headers);\r\n // // for (let row of data) {\r\n // // rows.push([\r\n // // row.serial,\r\n // // row.name,\r\n // // this.translate.instant(row.gender == Gender.Male ? '_LABEL_MALE' : '_LABEL_FEMALE'),\r\n // // row.phoneNumber,\r\n // // row.accountTitles[0],\r\n // // row.passportID,\r\n // // moment(row.issued).format('DD/MM/YYYY'),\r\n // // this.printObjectsCount(row.printLogs, PrintObject.IntLicenseCard),\r\n // // this.printObjectsCount(row.printLogs, PrintObject.IntLicenseSticker)\r\n // // ]);\r\n // // }\r\n\r\n // // exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Int-Licenses');\r\n // }\r\n\r\n onSubmit() {\r\n console.warn(this.searchForm.value);\r\n //console.warn(this.searchForm.pristine);\r\n\r\n // if (this.fromEntranceDate.value)\r\n // this.fromEntranceDate.setValue(this.fromEntranceDate.value.toISOString());\r\n\r\n // if (this.toEntranceDate.value)\r\n // this.toEntranceDate.setValue(this.toEntranceDate.value.toISOString());\r\n\r\n if (this.fromEntranceDate.value && typeof this.fromEntranceDate.value == 'object')\r\n this.fromEntranceDate.setValue(Utils.convertToServerDateTimeString(this.fromEntranceDate.value));\r\n\r\n if (this.toEntranceDate.value && typeof this.toEntranceDate.value == 'object')\r\n this.toEntranceDate.setValue(Utils.convertToServerDateTimeString(this.toEntranceDate.value));\r\n\r\n //swap dates\r\n if (this.fromEntranceDate.value && this.toEntranceDate.value && new Date(this.fromEntranceDate.value) > new Date(this.toEntranceDate.value)) {\r\n let _temp = this.fromEntranceDate.value;\r\n this.fromEntranceDate.setValue(this.toEntranceDate.value);\r\n this.toEntranceDate.setValue(_temp);\r\n }\r\n\r\n\r\n\r\n this.activeFilters = true;\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n // get created() { return this.searchForm.get('created'); };\r\n // get entranceDate() { return this.searchForm.get('entranceDate'); };\r\n\r\n get fromEntranceDate() { return this.searchForm.get('fromEntranceDate'); };\r\n get toEntranceDate() { return this.searchForm.get('toEntranceDate'); };\r\n\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n this.searchForm = this.fb.group({\r\n accountId: [null],\r\n stockTypeId: [''],\r\n // stockTypes: [''],\r\n serial: [''],\r\n // created: [''],\r\n // entranceDate: [''],\r\n fromEntranceDate: [''],\r\n toEntranceDate: [''],\r\n entranceID: [''],\r\n holderName: [''],\r\n vehiclePlateID: [''],\r\n countryId: [''],\r\n customsPortId: [''],\r\n // customsPorts: [''],\r\n pursuingZoneId: [''],\r\n // latestStatusId: [''],\r\n baseStatusId: [''],\r\n statusId: ['']\r\n });\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TripTiksClaimsService } from '../../services/trip-tiks-claims.service';\r\nimport { TripTikClaimDto, UpdateStatusTripTikClaimCommand } from '../../models/trip-tik-claim.model';\r\nimport { FormBuilder, FormGroup, FormArray, FormControl, AbstractControl, Validators } from '@angular/forms';\r\n// import { isArray } from 'util';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TripTikClaimsStatusesService } from 'src/app/features/lookups/services/trip-tik-claims-statuses.service';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { result } from 'lodash';\r\nimport { TripTikClaimStatusDto } from 'src/app/features/lookups/models/trip-tik-claim-status';\r\nimport { stat } from 'fs';\r\nimport { TripTikClaimStatus } from 'src/app/core/models/enums/triptik-claim-status';\r\nimport { CurrenciesService } from 'src/app/features/lookups/services/currencies';\r\nimport { CurrencyDto } from 'src/app/features/lookups/models/currency';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n@Component({\r\n selector: 'mac-update-status-trip-tik-claim',\r\n templateUrl: './update-status-trip-tik-claim.component.html',\r\n styleUrls: ['./update-status-trip-tik-claim.component.scss'],\r\n providers: [\r\n TripTiksClaimsService,\r\n TripTikClaimsStatusesService,\r\n CurrenciesService\r\n ]\r\n})\r\nexport class UpdateStatusTripTikClaimComponent implements OnInit {\r\n lang: Language;\r\n dto = new TripTikClaimDto();\r\n form: FormGroup;\r\n id: string;\r\n currencies: CurrencyDto[] = [];\r\n baseStatuses: TripTikClaimStatusDto[] = [];\r\n nodeStatuses: TripTikClaimStatusDto[] = [];\r\n\r\n constructor(private tripTiksClaimsService: TripTiksClaimsService,\r\n private tripTikClaimsStatusesService: TripTikClaimsStatusesService,\r\n private currenciesService: CurrenciesService,\r\n private loader: LoadingService,\r\n private alert: AlertService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private translate: TranslateService,\r\n public auth: AuthService,\r\n private fb: FormBuilder) { }\r\n\r\n async ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.id = this.route.snapshot.paramMap.get('id');\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n await Promise.all([\r\n this.tripTikClaimsStatusesService.get(null, this.lang)\r\n .then(result => this.baseStatuses = result.list),\r\n this.currenciesService.get(this.lang)\r\n .then(result => this.currencies = result.list)\r\n ]);\r\n\r\n this.tripTiksClaimsService.get(this.id)\r\n .then(async result => {\r\n this.dto = result.item;\r\n //console.log(this.dto);\r\n if (this.dto.latestStatus.parentId)\r\n await this.onSelectStatus(this.dto.latestStatus.parentId)\r\n\r\n this.form.patchValue({\r\n baseStatusId: this.dto.latestStatus.parentId,\r\n statusId: this.dto.latestStatus.id\r\n });\r\n })\r\n .finally(() => {\r\n if (!this.auth.currentUser.isInRole(Role.TRIPTIKS_CLAIMS_STATUS_UPDATE)) {\r\n this.baseStatus.disable();\r\n this.status.disable();\r\n }\r\n this.loader.load(LoaderType.Nav, false);\r\n });\r\n }\r\n\r\n get Object() { return Object; };\r\n get note() { return this.form.get('note'); };\r\n get attachments() { return this.form.get('attachments') as FormArray; };\r\n get baseStatus() { return this.form.get('baseStatusId') };\r\n get status() { return this.form.get('statusId') };\r\n get payment() { return this.form.get('payment') as FormGroup; };\r\n get receiptNo() { return this.payment.get('receiptNo'); };\r\n get currency() { return this.payment.get('currencyId'); };\r\n get value() { return this.payment.get('value'); };\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n baseStatusId: ['', [Validators.required]],\r\n statusId: ['', [Validators.required]],\r\n payment: this.fb.group({}),\r\n note: ['', [Validators.required]],\r\n attachments: this.fb.array([])\r\n });\r\n }\r\n\r\n private paymentFormInit() {\r\n this.payment.addControl('currencyId', this.fb.control(this.currencies.length > 0 ? this.currencies[0].id : '', [Validators.required]));\r\n this.payment.addControl('value', this.fb.control('', [Validators.required]));\r\n this.payment.addControl('receiptNo', this.fb.control('', [Validators.required]));\r\n }\r\n\r\n private attachmentFormInit() {\r\n this.attachments.push(this.fb.group({\r\n name: ['', [Validators.required]],\r\n file: ['', [Validators.required]],\r\n fileName: ['']\r\n }));\r\n }\r\n\r\n onSelectNestedStatus(status: number) {\r\n //console.log(status);\r\n if (status == TripTikClaimStatus.Paid) {\r\n this.paymentFormInit();\r\n } else {\r\n Object.keys(this.payment.controls).forEach(ctrl => {\r\n this.payment.removeControl(ctrl);\r\n });\r\n }\r\n }\r\n\r\n async onSelectStatus(statusId: number) {\r\n //console.log(statusId);\r\n this.loader.load(LoaderType.Body);\r\n this.nodeStatuses = await (await this.tripTikClaimsStatusesService.get(statusId, this.lang)).list;\r\n this.status.reset();\r\n this.loader.load(LoaderType.Body, false)\r\n }\r\n\r\n addAttachment() {\r\n this.attachmentFormInit();\r\n }\r\n\r\n removeAttachment(i) {\r\n this.attachments.removeAt(i);\r\n }\r\n\r\n onSubmit() {\r\n console.warn(this.form.value);\r\n\r\n if (!this.auth.currentUser.isInRole(Role.TRIPTIKS_CLAIMS_UPDATE))\r\n return;\r\n\r\n if (!this.auth.currentUser.isInRole(Role.TRIPTIKS_CLAIMS_STATUS_UPDATE)) {\r\n //this.baseStatus.setValue(this.dto.latestStatus.parentId);\r\n this.baseStatus.reset();\r\n this.baseStatus.setErrors(null);\r\n this.status.reset();\r\n this.status.setErrors(null);\r\n }\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n\r\n const cmd = this.form.value as UpdateStatusTripTikClaimCommand;\r\n cmd.id = this.id;\r\n\r\n this.tripTiksClaimsService.updateStatus(this.form.value as UpdateStatusTripTikClaimCommand)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n setTimeout(() => {\r\n this.router.navigate(['/', this.translate.currentLang, 'trip-tiks-claims', 'view', this.id])\r\n }, 1000);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false))\r\n }\r\n\r\n //attachments\r\n preview($event, group: FormGroup) {\r\n const tgt = $event.target || window.event.srcElement,\r\n files = Array.isArray($event) ? $event : tgt.files;\r\n\r\n if (FileReader && files && files.length) {\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n //console.log(fr);\r\n if (fr.result.toString().length <= 2 * 2 ** 20) {\r\n group.get('file').setValue(fr.result.toString());\r\n group.get('fileName').setValue(files[0].name);\r\n }\r\n else\r\n alert('file limit is 2 MB.');\r\n };\r\n fr.readAsDataURL(files[0]);\r\n }\r\n else {\r\n //console.error('not supported!');\r\n }\r\n }\r\n\r\n fileDropped(file, group: FormGroup): void {\r\n //console.log(file);\r\n group.get('file').setValue(file.url);\r\n group.get('fileName').setValue(file.name);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { TripTiksClaimsService } from '../../services/trip-tiks-claims.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TripTikClaimDetailsDto } from '../../models/trip-tik-claim.model';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { TripTikClaimStatus } from 'src/app/core/models/enums/triptik-claim-status';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n@Component({\r\n selector: 'mac-view-trip-tik-claim',\r\n templateUrl: './view-trip-tik-claim.component.html',\r\n styleUrls: ['./view-trip-tik-claim.component.scss'],\r\n providers: [TripTiksClaimsService, FileLoaderService]\r\n})\r\nexport class ViewTripTikClaimComponent implements OnInit {\r\n\r\n dto = new TripTikClaimDetailsDto();\r\n\r\n get TripTikClaimStatus() { return TripTikClaimStatus; };\r\n get Role() { return Role; };\r\n\r\n constructor(private loader: LoadingService,\r\n private tripTiksClaimsService: TripTiksClaimsService,\r\n private fileLoader: FileLoaderService,\r\n public auth: AuthService,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n this.loader.load(LoaderType.Nav);\r\n const tripTikClaimId = this.route.snapshot.paramMap.get('id');\r\n\r\n this.tripTiksClaimsService.get(tripTikClaimId)\r\n .then(result => {\r\n this.dto = result.item;\r\n //console.log(this.dto);\r\n\r\n this.dto.logs = this.dto.logs.map(log => {\r\n log.status.titles = log.status.parentId ? [`${log.status.parentTitles} - ${log.status.titles}`] : log.status.titles;\r\n return log;\r\n });\r\n\r\n // //console.log(this.dto);\r\n\r\n this.dto.logs.forEach((log, i) => {\r\n log.attachments.forEach(async (att) => {\r\n att.url = await this.fileLoader.loadAsync(att.url)\r\n })\r\n });\r\n\r\n\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false))\r\n\r\n // this.attachments.forEach(async att => {\r\n // const file = await this.fileLoader.loadAsync(att.src);\r\n // att.src = file ? file : this.defaultImage;\r\n // });\r\n\r\n //this.dto.attachments[0] = await this.fileLoader.loadAsync(this.dto.attachments[0]);\r\n }\r\n\r\n}\r\n","import { StockTypeDto } from '../../lookups/models/stock-type';\r\nimport { CustomsPortDto } from '../../lookups/models/customs-port';\r\nimport { CountryDto } from '../../lookups/models/country';\r\nimport { SafeUrl } from '@angular/platform-browser';\r\nimport { TripTikClaimStatusDto } from '../../lookups/models/trip-tik-claim-status';\r\nimport { LookupDto } from '../../lookups/models/lookup';\r\n\r\nexport interface TripTikClaimVm {\r\n item: TripTikClaimDto\r\n}\r\n\r\nexport interface TripTiksClaimsVm {\r\n list: TripTikClaimDto[],\r\n recordsCount: number\r\n}\r\n\r\nexport class TripTikClaimDto {\r\n id: string;\r\n entranceID: string;\r\n entranceDate: Date;\r\n created: Date;\r\n holderName: string;\r\n holderAddress: string;\r\n holderPhone: string;\r\n accountId: number;\r\n accountTitles: string[] = [];\r\n serial: number;\r\n stockType: StockTypeDto;\r\n country: CountryDto;\r\n customsPort: CustomsPortDto;\r\n pursuingZone: LookupDto;\r\n latestStatus: TripTikClaimStatusDto;\r\n vehiclePlateID: string;\r\n attachmentsCount: number;\r\n logsCount: number;\r\n}\r\n\r\nexport interface TripTikClaimDetailsVm {\r\n item: TripTikClaimDetailsDto\r\n}\r\n\r\nexport class TripTikClaimDetailsDto extends TripTikClaimDto {\r\n logs: TripTikClaimLogDetailsDto[] = [];\r\n}\r\n\r\nexport interface UpdateStatusTripTikClaimCommand {\r\n id: string,\r\n statusId: number,\r\n note: string,\r\n attachments: { file: string, name: string, fileName: string }[]\r\n}\r\n\r\nexport interface TripTikClaimAttachmentDto {\r\n name: string,\r\n url: string | SafeUrl,\r\n created: Date,\r\n createdBy: string\r\n}\r\n\r\nexport interface TripTikClaimLogDetailsDto {\r\n created: Date,\r\n createdBy: string,\r\n note: string,\r\n status: TripTikClaimStatusDto,\r\n attachments: TripTikClaimAttachmentDto[]\r\n}\r\n\r\nexport interface TripTiksClaimsLogsVm {\r\n list: TripTikClaimLogDto[],\r\n recordsCount: number\r\n}\r\n\r\nexport interface TripTikClaimLogDto {\r\n created: Date,\r\n createdBy: string,\r\n holderName: string,\r\n serial: number,\r\n stockType: StockTypeDto,\r\n issued: Date,\r\n customPort: CustomsPortDto,\r\n status: TripTikClaimStatusDto\r\n note: string\r\n}\r\n\r\nexport interface TripTiksClaimsSearchQuery {\r\n accountId?: number,\r\n serial?: number,\r\n stockTypeId?: number[],\r\n // stockTypes?: number[],\r\n fromEntranceDate?: string,\r\n toEntranceDate?: string,\r\n entranceID?: string,\r\n holderName?: string,\r\n vehiclePlateID?: number,\r\n countryId?: number[],\r\n customsPortId?: number[],\r\n // customsPorts?: number[],\r\n pursuingZoneId?: number,\r\n // latestStatusId?: number,\r\n baseStatusId?: number\r\n statusId?: number\r\n}\r\n\r\nexport interface PostTripTikClaimCommand {\r\n entranceID: string,\r\n EntranceDate: Date,\r\n serial: number,\r\n stockTypeId: number,\r\n countryId: number,\r\n customsPortId?: number,\r\n pursuingZoneId: number\r\n value: number,\r\n currencyId: number,\r\n holderName: string,\r\n holderAddress: string,\r\n holderPhone: string,\r\n}\r\n\r\nexport interface TripTikClaimAttachmentsVm {\r\n tripTikClaimEntranceID: string,\r\n list: TripTikClaimAttachmentDto[],\r\n recordsCount: number\r\n}","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { TripTiksClaimsService } from './trip-tiks-claims.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../issuing/_shared/models/issuing.models';\r\nimport { TripTiksClaimsLogsVm, TripTiksClaimsSearchQuery, TripTikClaimLogDto } from '../models/trip-tik-claim.model';\r\n\r\n\r\nexport class TripTiksClaimsLogsDataSource implements DataSource {\r\n public TripTiksClaimsLogsSubject = new BehaviorSubject([]);\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private tripTiksClaimsService: TripTiksClaimsService, private loader: LoadingService) { }\r\n\r\n loadTripTiksClaimsLogs(pagination: PaginationQuery, query: TripTiksClaimsSearchQuery | string = null) {\r\n this.tripTiksClaimsService[(query == null || typeof query == 'string') ? 'getClaimsLogs' : 'searchClaimsLogs'](pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: any) => {\r\n //console.log(result);\r\n this.TripTiksClaimsLogsSubject.next(result.list);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.TripTiksClaimsLogsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.TripTiksClaimsLogsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { TripTiksClaimsService } from './trip-tiks-claims.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../issuing/_shared/models/issuing.models';\r\nimport { TripTiksClaimsVm, TripTiksClaimsSearchQuery, TripTikClaimDto } from '../models/trip-tik-claim.model';\r\n\r\n\r\nexport class TripTiksClaimsDataSource implements DataSource {\r\n public TripTiksClaimsSubject = new BehaviorSubject([]);\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private tripTiksClaimsService: TripTiksClaimsService, private loader: LoadingService) { }\r\n\r\n load(pagination: PaginationQuery, query: TripTiksClaimsSearchQuery | string = null, statusId?: number, pursuingZoneId?: number) {\r\n this.tripTiksClaimsService[(query == null || typeof query == 'string') ? 'getClaims' : 'search'](pagination, query, statusId, pursuingZoneId)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: TripTiksClaimsVm) => {\r\n // //console.log(result);\r\n this.TripTiksClaimsSubject.next(result.list);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.TripTiksClaimsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.TripTiksClaimsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { PaginationQuery } from '../../issuing/_shared/models/issuing.models';\r\nimport { TripTiksClaimsVm, PostTripTikClaimCommand, TripTiksClaimsSearchQuery, TripTikClaimVm, UpdateStatusTripTikClaimCommand, TripTiksClaimsLogsVm, TripTikClaimDetailsVm, TripTikClaimAttachmentsVm } from '../models/trip-tik-claim.model';\r\n\r\n@Injectable()\r\nexport class TripTiksClaimsService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n delete(id: string) {\r\n return this.api.delete(EndPoint.INT_lICENSE, id).toPromise();\r\n }\r\n\r\n updateStatus(cmd: UpdateStatusTripTikClaimCommand) {\r\n return this.api.update(EndPoint.TRIPTIK_CLAIMS, cmd).toPromise();\r\n }\r\n\r\n create(cmd: PostTripTikClaimCommand) {\r\n return this.api.create(EndPoint.TRIPTIK_CLAIMS, cmd).toPromise();\r\n }\r\n\r\n get(id: string) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS, id).toPromise();\r\n }\r\n\r\n getClaims(pagination: PaginationQuery, query: string = '', statusId?: number, pursuingZoneId?: number) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS, null, { ...pagination, query, statusId, pursuingZoneId });\r\n }\r\n\r\n search(pagination: PaginationQuery, query: TripTiksClaimsSearchQuery, statusId?: number, pursuingZoneId?: number) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS_SEARCH, null, { ...pagination, ...query });\r\n }\r\n\r\n getClaimsLogs(pagination: PaginationQuery, query: string = '') {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS_LOGS, null, { ...pagination, query });\r\n }\r\n\r\n searchClaimsLogs(pagination: PaginationQuery, query: TripTiksClaimsSearchQuery) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS_LOGS_SEARCH, null, { ...pagination, ...query });\r\n }\r\n\r\n getClaimAttachments(tripTikClaimId: string) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS_ATTACHMENTS, tripTikClaimId).toPromise();\r\n }\r\n}\r\n\r\n","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MAT_SNACK_BAR_DATA} from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'mac-alert',\r\n templateUrl: './alert.component.html',\r\n styleUrls: ['./alert.component.scss']\r\n})\r\nexport class AlertComponent implements OnInit {\r\n\r\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mac-body-loader',\r\n templateUrl: './body-loader.component.html',\r\n styleUrls: ['./body-loader.component.scss']\r\n})\r\nexport class BodyLoaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { BreadcrumbService } from '../../services/breadcrumb.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'mac-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss']\r\n})\r\nexport class BreadcrumbComponent {\r\n\r\n constructor(public service: BreadcrumbService, public translate: TranslateService) { \r\n \r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'mac-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss']\r\n})\r\nexport class DialogComponent {\r\n\r\n constructor() {}\r\n\r\n}","import { Component } from '@angular/core';\r\nimport { ConfirmState, IModalOptions } from '../../models/modal';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { Utils } from '../../services/utils';\r\n\r\n@Component({\r\n selector: 'mac-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ConfirmModalComponent {\r\n options: IModalOptions;\r\n form: FormGroup;\r\n\r\n get attachment() { return this.form.get('attachment'); };\r\n get inputNote() { return this.form.get('inputNote'); };\r\n get isDamaged() { return this.form.get('isDamaged'); };\r\n\r\n constructor(private state: ConfirmState,\r\n private fb: FormBuilder,\r\n public translate: TranslateService) {\r\n this.options = state.options;\r\n }\r\n\r\n ngOnInit() {\r\n this.form = this.fb.group({\r\n inputNote: ['', [Validators.required]],\r\n isDamaged: ['', [Validators.required]],\r\n attachment: ['']\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if ((this.options.requestType || this.options.inputNote) && this.form.invalid) {\r\n\r\n if (!this.options.requestType)\r\n this.isDamaged.setErrors(null);\r\n\r\n if (!this.options.inputNote)\r\n this.inputNote.setErrors(null);\r\n\r\n if (this.form.invalid)\r\n return Utils.validateAllFormFields(this.form);\r\n }\r\n\r\n //console.log(this.form.value);\r\n this.confirm(this.form.value);\r\n //this.confirm(this.options.inputNote ? this.inputNote.value : null);\r\n }\r\n\r\n confirm(data = null) {\r\n const result = ['CONFIRMED'];\r\n data ? result.push(data) : undefined;\r\n this.state.modal.close(result);\r\n }\r\n\r\n discard() {\r\n this.state.modal.dismiss('ignored');\r\n }\r\n\r\n \r\n //attachments\r\n preview($event, control: FormControl) {\r\n const tgt = $event.target || window.event.srcElement,\r\n files = Array.isArray($event) ? $event : tgt.files;\r\n\r\n if (FileReader && files && files.length) {\r\n const fr = new FileReader();\r\n fr.onload = (readerEvt) => {\r\n //console.log(readerEvt.target.fileName);\r\n if (fr.result.toString().length <= 2 * 2 ** 20) {\r\n control.setValue(fr.result.toString());\r\n //console.log(fr)\r\n this.fileName = $event.target.files[0].name;\r\n }\r\n else\r\n alert('file limit is 2 MB.');\r\n };\r\n fr.readAsDataURL(files[0]);\r\n }\r\n else {\r\n //console.error('not supported!');\r\n }\r\n }\r\n\r\n fileName;\r\n fileDropped(file, control: FormControl): void {\r\n //console.log(file);\r\n control.setValue(file.url);\r\n this.fileName = file.name;\r\n }\r\n\r\n removeAttachment() {\r\n //console.log('try remove att!');\r\n this.fileName = null;\r\n this.attachment.setValue(null);\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { LoadingService, LoaderType } from '../../services/loading';\r\n\r\n@Component({\r\n selector: 'mac-not-found',\r\n templateUrl: './not-found.component.html',\r\n styleUrls: ['./not-found.component.scss']\r\n})\r\nexport class NotFoundComponent implements OnInit {\r\n\r\n constructor(private loader: LoadingService) { }\r\n\r\n ngOnInit() {\r\n // this.loader.load(LoaderType.Nav, false);\r\n }\r\n ngAfterViewInit() {\r\n //todo: check why loader keep loading ?\r\n setTimeout(() => {\r\n this.loader.load(LoaderType.Nav);\r\n this.loader.load(LoaderType.Nav, false);\r\n }, 1000);\r\n\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mac-under-construction',\r\n templateUrl: './under-construction.component.html',\r\n styleUrls: ['./under-construction.component.scss']\r\n})\r\nexport class UnderConstructionComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { FormControl, AbstractControl } from '@angular/forms';\r\nimport { Component, Input } from '@angular/core';\r\nimport {\r\n trigger,\r\n style,\r\n animate,\r\n transition,\r\n keyframes,\r\n\r\n} from '@angular/animations';\r\n\r\nimport { ValidationService } from '../../services/validation.service';\r\n\r\n@Component({\r\n selector: 'mac-validation-error',\r\n templateUrl: './validation-error.component.html',\r\n styleUrls: ['./validation-error.component.scss'],\r\n animations: [\r\n trigger('bgImgTrigger', [\r\n transition('void => *', [\r\n animate('.25s', keyframes([\r\n style({ transform: 'translateY(-5px)', offset: 0 }),\r\n style({ transform: 'translateY(5px)', offset: 0.25 }),\r\n style({ transform: 'translateY(0px)', offset: 1 })\r\n ]))])\r\n ])\r\n ]\r\n})\r\nexport class ValidationErrorComponent {\r\n @Input() control: FormControl | AbstractControl;\r\n @Input() fieldLocale: string;\r\n isOpen = false;\r\n state: string = 'none';\r\n\r\n\r\n animationState = true;\r\n loading = true;\r\n\r\n constructor(private validation: ValidationService) { }\r\n\r\n get errorMessage() {\r\n if (this.control) {\r\n this.animationState = true;\r\n this.loading = true;\r\n this.state = 'maximum';\r\n for (let propertyName in this.control.errors) {\r\n if (\r\n this.control.errors.hasOwnProperty(propertyName) &&\r\n this.control.touched\r\n ) {\r\n return this.validation.getValidatorErrorMessage(\r\n propertyName,\r\n this.control.errors[propertyName]\r\n );\r\n }\r\n }\r\n }\r\n\r\n else {\r\n this.animationState = false;\r\n this.loading = false;\r\n return null;\r\n }\r\n\r\n }\r\n\r\n isArray(obj: any) {\r\n return Array.isArray(obj)\r\n }\r\n}\r\n","import {\r\n Directive,\r\n HostBinding,\r\n HostListener,\r\n Output,\r\n EventEmitter,\r\n ElementRef\r\n} from \"@angular/core\";\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\n\r\nexport interface FileHandle {\r\n url: string,\r\n name: string,\r\n // url: SafeUrl,\r\n container: any\r\n}\r\n\r\n@Directive({\r\n selector: \"[macDrag]\"\r\n})\r\nexport class DragDirective {\r\n // @Output() files: EventEmitter = new EventEmitter();\r\n @Output() file: EventEmitter = new EventEmitter();\r\n\r\n\r\n\r\n @HostBinding(\"style.background\") private background = \"#eee\";\r\n @HostBinding(\"style.border\") private border = \"none\";\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n @HostListener(\"dragover\", [\"$event\"]) public onDragOver(evt: DragEvent) {\r\n ////console.warn(evt);\r\n evt.preventDefault();\r\n //evt.stopPropagation();\r\n\r\n // //console.warn('dragover', this.border);\r\n ////console.log(this.border);\r\n if (this.border == \"none\") {\r\n this.border = \"2px dashed #82c8ef\";\r\n ////console.warn('dragover', 'style applied')\r\n }\r\n //this.b\r\n //this.sanitizer.bypassSecurityTrustStyle('border: 5px dashed #82c8ef');\r\n // this.background = \"#999\";\r\n }\r\n\r\n @HostListener(\"dragleave\", [\"$event\"]) public onDragLeave(evt: DragEvent) {\r\n ////console.warn(evt);\r\n evt.preventDefault();\r\n //evt.stopPropagation();\r\n ////console.warn('dragleave', this.border);\r\n ////console.log(this.border);\r\n if (this.border != \"none\") {\r\n this.border = \"none\";\r\n ////console.warn('dragleave', 'style applied')\r\n }\r\n //this.background = \"#eee\";\r\n //this.sanitizer.bypassSecurityTrustStyle('border: none');\r\n }\r\n\r\n @HostListener('drop', ['$event']) public onDrop(evt: DragEvent) {\r\n ////console.warn(evt);\r\n evt.preventDefault();\r\n //evt.stopPropagation();\r\n //this.background = '#eee';\r\n // //console.warn('drop', this.border);\r\n ////console.log(this.border);\r\n if (this.border != \"none\") {\r\n this.border = \"none\";\r\n ////console.warn('drop', 'style applied');\r\n }\r\n\r\n ////console.log(evt);\r\n ////console.log(evt.currentTarget);\r\n // //console.log(evt.target)\r\n\r\n // const elm = evt.currentTarget;\r\n // //console.warn(elm.nativeElement);\r\n\r\n // const _index = 0;// (evt.currentTarget).tabindex;\r\n ////console.log(evt.target);\r\n // this.file.emit({ file: null, url: 'assets/images/Ring-Preloader.gif', container: evt.currentTarget });\r\n\r\n const currentTarget = evt.currentTarget;\r\n //console.log(evt);\r\n //this.file.emit({ url: 'assets/images/Ring-Preloader.gif', name: null, container: currentTarget });\r\n\r\n // if (evt.dataTransfer.files.length) {\r\n // this.file.emit({\r\n // file: evt.dataTransfer.files[0],\r\n // // url: this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(evt.dataTransfer.files[0])),\r\n // container: evt.currentTarget\r\n // });\r\n // }\r\n\r\n if (FileReader && evt.dataTransfer.files.length) {\r\n const fr = new FileReader();\r\n // //console.log(evt.dataTransfer.files.item(0))\r\n const _name = evt.dataTransfer.files.item(0).name;\r\n fr.onload = () => {\r\n if (fr.result.toString().length <= 2 * 2 ** 20)\r\n this.file.emit({\r\n url: fr.result.toString(),\r\n name: _name,\r\n //url: this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(evt.dataTransfer.files[0])),\r\n container: currentTarget\r\n });\r\n else\r\n alert('file limit is 2 MB.');\r\n // this[`_${this.images[index]}`] = fr.result.toString();\r\n //(this[this.images[index]]).setValue(fr.result.toString());\r\n //img.setAttribute(\"src\", fr.result.toString());\r\n\r\n // this.licensePhoto.setValue()\r\n // this.form.patchValue({\r\n // [this.images[index]]: fr.result.toString()\r\n // })\r\n };\r\n fr.readAsDataURL(evt.dataTransfer.files.item(0));\r\n }\r\n // Not supported\r\n else {\r\n //console.error('not supported!');\r\n //this[`_${this.images[index]}`] = oldValue;\r\n //(this[this.images[index]]).setValue(oldValue);\r\n }\r\n }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\nimport { ConfirmState } from '../models/modal';\r\n\r\n\r\n// @Directive({\r\n// selector: \"[deleteConfirm]\"\r\n// })\r\n// export class DeleteConfirmTemplateDirective {\r\n// constructor(confirmTemplate: TemplateRef, state: ConfirmState) {\r\n// state.deleteTemplate = confirmTemplate;\r\n// }\r\n// }\r\n\r\n// @Directive({\r\n// selector: \"[updateConfirm]\"\r\n// })\r\n// export class UpdateConfirmTemplateDirective {\r\n// constructor(confirmTemplate: TemplateRef, state: ConfirmState) {\r\n// state.updateTemplate = confirmTemplate;\r\n// }\r\n// }\r\n\r\n@Directive({\r\n selector: \"[confirm]\"\r\n})\r\nexport class ConfirmTemplateDirective {\r\n constructor(template: TemplateRef, state: ConfirmState) {\r\n state.template = template;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { StaticConfig } from 'src/app/features/lookups/services/config';\r\n\r\n@Injectable()\r\nexport class ConfigResolver {\r\n constructor(private config: StaticConfig){\r\n }\r\n\r\n async resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise{\r\n return this.config.get(); \r\n }\r\n}","import { formatDate } from '@angular/common';\r\nimport { NativeDateAdapter } from '@angular/material/core';\r\n\r\nexport const PICK_FORMATS = {\r\n parse: { dateInput: { month: 'short', year: 'numeric', day: 'numeric' } },\r\n display: {\r\n dateInput: 'input',\r\n monthYearLabel: { year: 'numeric', month: 'short' },\r\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\r\n monthYearA11yLabel: { year: 'numeric', month: 'long' }\r\n }\r\n};\r\n\r\nexport class CustomDateAdapter extends NativeDateAdapter {\r\n // format(date: Date, displayFormat: Object): string {\r\n // if (displayFormat === 'input') {\r\n // return formatDate(date, 'dd/MM/yyyy', this.locale);;\r\n // } else {\r\n // return date.toDateString();\r\n // }\r\n // }\r\n parse(value: any): Date | null {\r\n\r\n if ((typeof value === 'string') && (value.indexOf('/') > -1)) {\r\n const str = value.split('/');\r\n\r\n const year = Number(str[2]);\r\n const month = Number(str[1]) - 1;\r\n const date = Number(str[0]);\r\n\r\n return new Date(year, month, date);\r\n }\r\n const timestamp = typeof value === 'number' ? value : Date.parse(value);\r\n return isNaN(timestamp) ? null : new Date(timestamp);\r\n }\r\n\r\n format(date: Date, displayFormat: Object): string {\r\n date = new Date(Date.UTC(\r\n date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(),\r\n date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\r\n displayFormat = Object.assign({}, displayFormat, { timeZone: 'utc' });\r\n\r\n const dtf = new Intl.DateTimeFormat(this.locale, displayFormat);\r\n return dtf.format(date).replace(/[\\u200e\\u200f]/g, '');\r\n }\r\n\r\n}","import { TransactionsVm, TransactionDto } from './../../features/stock/models/transactions';\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport * as moment from 'moment';\r\nimport * as XLSX from 'xlsx';\r\nimport { transactionTypeLocale } from 'src/app/features/stock/models/transaction-type.enum';\r\n\r\nexport function exportToExcel(rows: string[][], wscols: any, autofilter: any, rtl: boolean, type: string) {\r\n\r\n //const [formatted, wscols] = _transactions(data, translate);\r\n\r\n const ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(rows);\r\n ws[\"!cols\"] = wscols;\r\n ws[\"!autofilter\"] = autofilter;// { ref: 'A1:G1' };\r\n\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n if (!wb.Workbook) wb.Workbook = {};\r\n if (!wb.Workbook.Views) wb.Workbook.Views = [];\r\n if (!wb.Workbook.Views[0]) wb.Workbook.Views[0] = {};\r\n wb.Workbook.Views[0].RTL = rtl;\r\n\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, `MAC_${type}_Export_${moment(new Date()).format('DD_MM_YYYY')}.xlsx`);\r\n}\r\n\r\n// function _transactions(data: TransactionDto[], translate: TranslateService) {\r\n// let result: [string[][], any[]] = [[], []];\r\n// const headers = [\r\n// translate.instant('_LABEL_DATE'),\r\n// `${translate.instant('_LABEL_FROM')} ${translate.instant('ACC_LABEL_ACCOUNT')}`,\r\n// `${translate.instant('_LABEL_TO')} ${translate.instant('ACC_LABEL_ACCOUNT')}`,\r\n// `${translate.instant('_LABEL_FROM')} ${translate.instant('STK_LABEL_QUANTITY')}`,\r\n// `${translate.instant('_LABEL_TO')} ${translate.instant('STK_LABEL_QUANTITY')}`,\r\n// translate.instant('STK_LABEL_TRANSACTION_TYPE'),\r\n// translate.instant('LKP_FIELD_STOCK_TYPE')\r\n// ];\r\n\r\n// result[0].push(headers);\r\n// for (let row of data) {\r\n// result[0].push([\r\n// moment(row.created).format('DD/MM/YYYY'),\r\n// row.fromAccountTitles ? row.fromAccountTitles[0] : '',\r\n// row.toAccountTitles ? row.toAccountTitles[0] : '',\r\n// row.fromRange.toString(),\r\n// row.toRange.toString(),\r\n// translate.instant(transactionTypeLocale(row.transactionType)),\r\n// row.stockType.titles[0]\r\n// ]);\r\n// }\r\n\r\n// var wscols = [\r\n// { width: 14 },\r\n// { width: 16 },\r\n// { width: 16 },\r\n// { width: 14 },\r\n// { width: 14 },\r\n// { width: 18 },\r\n// { width: 18 }\r\n// ];\r\n\r\n// result[1] = wscols;\r\n\r\n// { ref: 'A1:G1' };\r\n// return result;\r\n// }\r\n","import { MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class LangMatPaginatorIntl extends MatPaginatorIntl {\r\n\r\n constructor(private translate: TranslateService) {\r\n super();\r\n\r\n this.translate.onLangChange.subscribe((e: Event) => {\r\n this.getAndInitTranslations();\r\n });\r\n\r\n this.getAndInitTranslations();\r\n }\r\n\r\n\r\n\r\n getAndInitTranslations() {\r\n this.translate.get(['_PAGINATOR_ITEMS_PER_PAGE',\r\n '_PAGINATOR_NEXT_PAGE',\r\n '_PAGINATOR_PREVIOUS_PAGE',\r\n '_PAGINATOR_OF_LABEL',\r\n '_PAGINATOR_FIRST_PAGE',\r\n '_PAGINATOR_LAST_PAGE'])\r\n .subscribe(translation => {\r\n this.itemsPerPageLabel = translation['_PAGINATOR_ITEMS_PER_PAGE'];\r\n this.nextPageLabel = translation['_PAGINATOR_NEXT_PAGE'];\r\n this.previousPageLabel = translation['_PAGINATOR_PREVIOUS_PAGE'];\r\n this.firstPageLabel = translation['_PAGINATOR_FIRST_PAGE'];\r\n this.lastPageLabel = translation['_PAGINATOR_LAST_PAGE'];\r\n\r\n this.changes.next();\r\n });\r\n }\r\n\r\n getRangeLabel = (page: number, pageSize: number, length: number) => {\r\n if (length === 0 || pageSize === 0) {\r\n return `0 ${this.translate.instant('_PAGINATOR_OF_LABEL')} ${length}`;\r\n }\r\n length = Math.max(length, 0);\r\n const startIndex = page * pageSize;\r\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\r\n return `${startIndex + 1} - ${endIndex} ${this.translate.instant('_PAGINATOR_OF_LABEL')} ${length}`;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n// const arabicRangeLabel = (page: number, pageSize: number, length: number) => {\r\n// if (length == 0 || pageSize == 0) { return `0 من ${length}`; }\r\n\r\n// length = Math.max(length, 0);\r\n\r\n// const startIndex = page * pageSize;\r\n\r\n// // If the start index exceeds the list length, do not try and fix the end index to the end.\r\n// const endIndex = startIndex < length ?\r\n// Math.min(startIndex + pageSize, length) :\r\n// startIndex + pageSize;\r\n\r\n// return `${startIndex + 1} - ${endIndex} من ${length}`;\r\n// }\r\n\r\n\r\n// export function getLangPaginatorIntl() {\r\n\r\n// const paginatorIntl = new MatPaginatorIntl();\r\n\r\n// paginatorIntl.itemsPerPageLabel = 'عدد العناصر بالصفحة: ';\r\n// paginatorIntl.nextPageLabel = 'الصفحة التالية';\r\n// paginatorIntl.previousPageLabel = 'الصفحة السابقة';\r\n// paginatorIntl.firstPageLabel = 'الصفحة الأولى';\r\n// paginatorIntl.lastPageLabel = 'الصفحة الأخيرة';\r\n// paginatorIntl.getRangeLabel = arabicRangeLabel;\r\n\r\n// return paginatorIntl;\r\n// }","import { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport * as _ from 'lodash';\r\n\r\nexport function populateAccountsSelect(list: LookupDto[]) {\r\n //return list;\r\n //console.log(list);\r\n\r\n return list.map(dto => {\r\n let _titles = [];\r\n dto.titles.forEach((t, i) => {\r\n _titles.push(`${t}`);\r\n });\r\n dto.titles = [_titles.join(' // ')];\r\n return dto;\r\n });\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class TranslationResolver {\r\n\r\n constructor(private translate: TranslateService){\r\n }\r\n\r\n async resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise{\r\n return this.translate.get(\"last.dummy\").toPromise(); \r\n }\r\n}","export enum DefaultAlertAction {\r\n ADDING = '_ACTION_ADDING',\r\n UPDATING = '_ACTION_UPDATING',\r\n DELETING = '_ACTION_DELETING',\r\n TRANSFERING = '_ACTION_TRANSFERRING',\r\n\r\n REVOKE_REQUESTING_CANCEL = '_ACTION_REVOKE_REQUESTING_CANCEL',\r\n REQUESTING = '_ACTION_REQUESTING',\r\n APPROVING = '_ACTION_APPROVING',\r\n REJECTING = '_ACTION_REJECTING'\r\n\r\n}","import { Injectable, TemplateRef } from '@angular/core';\r\nimport { NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nexport interface ConfirmOptions {\r\n confirmType?: 'update' | 'delete' | 'form' | 'display',// string, //delete, update\r\n type: string,\r\n title: string\r\n content?: string;\r\n}\r\n\r\nexport interface IModalOptions {\r\n action?: string,\r\n type: string,\r\n confirmQuestion?: string,\r\n title?: string,\r\n note?: string,\r\n dangerNote?: string,\r\n submitClass?: string,\r\n submitText?: string,\r\n cancelText?: string,\r\n inputNote? : string,\r\n requestType?: boolean,\r\n innerHTML?: string,\r\n attachment?: string\r\n}\r\n\r\nexport class DeleteModal implements IModalOptions {\r\n constructor(data: IModalOptions) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n\r\n this.action = this.action ? this.action : '_ACTION_DELETE';\r\n this.confirmQuestion = this.confirmQuestion ? this.confirmQuestion : '_CONFIRM_DELETE_CONFIRMATION_QUESTION';\r\n this.note = this.note ? this.note : '_CONFIRM_DELETE_NOTE';\r\n this.dangerNote = this.dangerNote ? this.dangerNote : '_CONFIRM_DELETE_DANGER_NOTE';\r\n this.submitClass = this.submitClass ? this.submitClass : 'btn-danger';\r\n this.submitText = this.submitText ? this.submitText : '_ACTION_DELETE';\r\n this.cancelText = this.cancelText ? this.cancelText : '_ACTION_CANCEL';\r\n }\r\n action?: string;\r\n type: string;\r\n confirmQuestion?: string;\r\n title: string;\r\n note?: string;\r\n dangerNote?: string;\r\n submitClass?: string;\r\n submitText?: string;\r\n cancelText?: string;\r\n inputNote? : string;\r\n attachment?: string;\r\n requestType?: boolean;\r\n innerHTML?: string;\r\n}\r\n\r\n// export interface IModal {\r\n// header: { action: string; type?: string; };\r\n// body: { confirmQuestion: string; title?: string; note: string; dangerNote: string; };\r\n// footer: { submitClass: string; submitText: string; cancelText: string; };\r\n// }\r\n\r\n\r\nexport class UpdateModal implements IModalOptions {\r\n constructor(data: IModalOptions) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n\r\n this.action = this.action ? this.action : '_ACTION_UPDATE';\r\n this.confirmQuestion = this.confirmQuestion ? this.confirmQuestion : '_CONFIRM_UPDATE_CONFIRMATION_QUESTION';\r\n this.note = this.note ? this.note : '_CONFIRM_UPDATE_NOTE';\r\n this.dangerNote = this.dangerNote ? this.dangerNote : '_CONFIRM_UPDATE_DANGER_NOTE';\r\n this.submitClass = this.submitClass ? this.submitClass : 'btn-warning';\r\n this.submitText = this.submitText ? this.submitText : '_ACTION_UPDATE';\r\n this.cancelText = this.cancelText ? this.cancelText : '_ACTION_CANCEL';\r\n }\r\n action?: string;\r\n type: string;\r\n confirmQuestion?: string;\r\n title: string;\r\n note?: string;\r\n dangerNote?: string;\r\n submitClass?: string;\r\n submitText?: string;\r\n cancelText?: string;\r\n inputNote? : string;\r\n innerHTML?: string;\r\n}\r\n\r\n\r\nexport class ShipmentModal implements IModalOptions {\r\n constructor(data: IModalOptions) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n\r\n this.action = this.action ? this.action : '_ACTION_VIEW';\r\n // this.confirmQuestion = this.confirmQuestion ? this.confirmQuestion : '_CONFIRM_UPDATE_CONFIRMATION_QUESTION';\r\n this.note = this.note ? this.note : '_CONFIRM_UPDATE_NOTE';\r\n // this.dangerNote = this.dangerNote ? this.dangerNote : '_CONFIRM_UPDATE_DANGER_NOTE';\r\n //this.submitClass = this.submitClass ? this.submitClass : 'btn-warning';\r\n //this.submitText = this.submitText ? this.submitText : '_ACTION_UPDATE';\r\n this.cancelText = this.cancelText ? this.cancelText : '_ACTION_CANCEL';\r\n }\r\n action?: string;\r\n type: string;\r\n confirmQuestion?: string;\r\n title: string;\r\n note?: string;\r\n dangerNote?: string;\r\n submitClass?: string;\r\n submitText?: string;\r\n cancelText?: string;\r\n inputNote? : string;\r\n innerHTML?: string;\r\n}\r\n\r\n\r\nexport class DisplayModal implements IModalOptions {\r\n constructor(data: IModalOptions) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n\r\n this.action = this.action ? this.action : '_ACTION_VIEW';\r\n //this.confirmQuestion = this.confirmQuestion ? this.confirmQuestion : '_CONFIRM_UPDATE_CONFIRMATION_QUESTION';\r\n this.note = this.note ? this.note : '_CONFIRM_UPDATE_NOTE';\r\n //this.dangerNote = this.dangerNote ? this.dangerNote : '_CONFIRM_UPDATE_DANGER_NOTE';\r\n //this.submitClass = this.submitClass ? this.submitClass : 'btn-warning';\r\n //this.submitText = this.submitText ? this.submitText : '_ACTION_UPDATE';\r\n this.cancelText = this.cancelText ? this.cancelText : '_ACTION_CANCEL';\r\n }\r\n action?: string;\r\n type: string;\r\n confirmQuestion?: string;\r\n title?: string;\r\n note?: string;\r\n innerHTML?: string;\r\n //dangerNote?: string;\r\n //submitClass?: string;\r\n //submitText?: string;\r\n cancelText?: string;\r\n //inputNote? : string;\r\n}\r\n\r\n\r\n\r\n\r\n// export class FormModal implements IModalOptions {\r\n// constructor(data: IModalOptions) {\r\n// for (var property in data) {\r\n// if (data.hasOwnProperty(property))\r\n// (this)[property] = (data)[property];\r\n// }\r\n\r\n// this.action = this.action ? this.action : '_ACTION_UPDATE';\r\n// this.confirmQuestion = this.confirmQuestion ? this.confirmQuestion : '_CONFIRM_UPDATE_CONFIRMATION_QUESTION';\r\n// this.note = this.note ? this.note : '_CONFIRM_UPDATE_NOTE';\r\n// this.dangerNote = this.dangerNote ? this.dangerNote : '_CONFIRM_UPDATE_DANGER_NOTE';\r\n// this.submitClass = this.submitClass ? this.submitClass : 'btn-warning';\r\n// this.submitText = this.submitText ? this.submitText : '_ACTION_UPDATE';\r\n// this.cancelText = this.cancelText ? this.cancelText : '_ACTION_CANCEL';\r\n// this.inputNote = this.inputNote ? this.inputNote : '';\r\n// }\r\n// action?: string;\r\n// type: string;\r\n// confirmQuestion?: string;\r\n// title: string;\r\n// note?: string;\r\n// dangerNote?: string;\r\n// submitClass?: string;\r\n// submitText?: string;\r\n// cancelText?: string;\r\n// inputNote?: string;\r\n// }\r\n\r\n\r\n\r\n@Injectable()\r\nexport class ConfirmState {\r\n options: IModalOptions;\r\n modal: NgbModalRef;\r\n template: TemplateRef;\r\n // updateTemplate: TemplateRef;\r\n // deleteTemplate: TemplateRef;\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'arrayMap' })\r\nexport class ArrayMapPipe implements PipeTransform {\r\n transform(input: any[], key: string, index: number = null): any {\r\n //console.log(input, key, index);\r\n return input.map(value => { return index != null ? value[key][index] : value[key] });\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { map, first } from 'rxjs/operators';\r\n\r\n@Pipe({\r\n name: 'ParamsTranslate'\r\n})\r\nexport class ParamsTranslatePipe implements PipeTransform {\r\n constructor(private translate: TranslateService) { }\r\n\r\n transform(obj: Object): Object {\r\n const newObject = Object.assign({}, obj);\r\n Object.keys(obj).forEach(\r\n key =>\r\n obj[key].length\r\n ? this.translate\r\n .get(obj[key])\r\n .pipe(first(), map(value => value))\r\n .subscribe(value => (newObject[key] = value))\r\n : undefined\r\n );\r\n return newObject;\r\n }\r\n}","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({name: 'stringJoin'})\r\nexport class StringJoinPipe implements PipeTransform {\r\n transform (input: string[], key: string = '-'): string {\r\n //return input.map(value => value[key]);\r\n return [...input].reverse().join(` ${key} `);\r\n }\r\n}","import { TranslateService } from '@ngx-translate/core';\r\nimport { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { AlertComponent } from '../components/alert/alert.component';\r\nimport { isArray } from 'util';\r\n\r\n@Injectable()\r\nexport class AlertService {\r\n\r\n constructor(private _snackBar: MatSnackBar, private translate: TranslateService) { }\r\n\r\n success(message: string, part: boolean = true) {\r\n const param = this.translate.instant(message);\r\n\r\n const _message = part ? this.translate.instant('_MESSAGE_ALERT_SUCCESS', { param: param }) : param;\r\n this._snackBar.open(_message, null, {\r\n duration: 5000,\r\n panelClass: 'success',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n\r\n failure(message: string, part: boolean = true) {\r\n const param = this.translate.instant(message);\r\n const _message = part ? this.translate.instant('_MESSAGE_ALERT_FAILURE', { param: param }) : param;\r\n this._snackBar.open(_message, null, {\r\n duration: 5000,\r\n panelClass: 'error',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n\r\n _error(messages: string []) {\r\n //const _message = this.translate.instant(message ? message : '_MESSAGE_ALERT_ERROR');\r\n\r\n const duration = messages.length * 5000;\r\n\r\n // let content = '';\r\n // let duration = 5000;\r\n // if (!isArray(message) && message.length > 1) {\r\n // content += '
      ';\r\n\r\n // // Item 1\r\n // // Item 2\r\n // // Item 3\r\n\r\n // for (let i = 0; i < message.length; i++) {\r\n // content += `
    • ${message[i]}
    • `;\r\n // duration = 5000 * (i + 1);\r\n // }\r\n // content += '
    ';\r\n // } else {\r\n // content = `${message}`;\r\n // }\r\n\r\n // //console.log(content);\r\n this._snackBar.openFromComponent(AlertComponent, {\r\n panelClass: 'mat-snack-bar-failure',\r\n verticalPosition: 'top',\r\n data: messages,\r\n\r\n duration: duration\r\n });\r\n\r\n // this._snackBar.open(_message, null, {\r\n // duration: 5000,\r\n // panelClass: 'mat-snack-bar-failure',\r\n // verticalPosition: 'top'\r\n // });\r\n\r\n }\r\n\r\n error(message: string | any[] = null) {\r\n const _message = this.translate.instant(message ? message : '_MESSAGE_ALERT_ERROR');\r\n\r\n // if (!isArray(message))\r\n // message = [message];\r\n\r\n if (typeof message == 'string')\r\n message = [message];\r\n \r\n const duration = (message.length + 1) * 5000;\r\n\r\n // let content = '';\r\n // let duration = 5000;\r\n // if (!isArray(message) && message.length > 1) {\r\n // content += '
      ';\r\n\r\n // // Item 1\r\n // // Item 2\r\n // // Item 3\r\n\r\n // for (let i = 0; i < message.length; i++) {\r\n // content += `
    • ${message[i]}
    • `;\r\n // duration = 5000 * (i + 1);\r\n // }\r\n // content += '
    ';\r\n // } else {\r\n // content = `${message}`;\r\n // }\r\n\r\n // //console.log(content);\r\n this._snackBar.openFromComponent(AlertComponent, {\r\n panelClass: 'mat-snack-bar-failure',\r\n verticalPosition: 'top',\r\n data: message,\r\n\r\n duration: duration\r\n });\r\n\r\n // this._snackBar.open(_message, null, {\r\n // duration: 5000,\r\n // panelClass: 'mat-snack-bar-failure',\r\n // verticalPosition: 'top'\r\n // });\r\n\r\n }\r\n}\r\n","import { Injectable, EventEmitter } from '@angular/core';\r\n\r\nInjectable()\r\nexport class BreadcrumbService {\r\n _links: EventEmitter;\r\n links: string[][];\r\n\r\n constructor(){\r\n this._links = new EventEmitter();\r\n this._links.subscribe(l => this.links = l);\r\n }\r\n\r\n public setLinks(links: string[][]){\r\n this._links.emit(links);\r\n }\r\n}","import { AbstractControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\n\r\nconst NON_ENGLISH_REGEX = /^[\\u0621-\\u064A0-9-_., ]*$/;\r\nconst NON_ARABIC_REGEX = /^[a-zA-Z0-9-_., ]*$/;\r\nconst ENGLISH_ONLY_REGEX = /^[a-zA-Z]*$/;\r\nconst ENGLISH_AND_SPACES_REGEX = /^[a-zA-Z. ]*$/;\r\nconst NUMBERS_ONLY_REGEX = /^\\d*$/;\r\nconst USERNAME_REGEX = /^[A-Za-z0-9]+(?:[_][A-Za-z0-9]+)*$/; //letters, numbers, and underscores (inside, not in a row), no spaces\r\n//const PASSPORT_ID_OR_IDENTITY_ID_REGEX = /^[A-Za-z0-9]*$/; //letters, numbers\r\n\r\n\r\nclass RangeValidation {\r\n constructor(public min: number, public max: number) { }\r\n}\r\n\r\n\r\n//todo: fetch from db config\r\n\r\nconst vehicleWeightInKG = new RangeValidation(1, 100000);//\"_ERR_OUT_OF_RANGE_VEHICLE_WEIGHT_IN_KG\");\r\nconst vehicleHorsePower = new RangeValidation(1, 10000);//, //\"_ERR_OUT_OF_RANGE_VEHICLE_HORSE_POWER\");\r\nconst vehicleCylindersCount = new RangeValidation(1, 100);//, //\"_ERR_OUT_OF_RANGE_VEHICLE_CYLINDERS_COUNT\");\r\nconst vehicleManufactureYear = new RangeValidation(1900, 2100);//, //\"_ERR_OUT_OF_RANGE_VEHICLE_MANUFACTURE_YEAR\");\r\nconst vehicleSeatsCount = new RangeValidation(1, 100);//, //\"_ERR_OUT_OF_RANGE_VEHICLE_SEATS_COUNT\");\r\nconst vehicleSpareTiresCount = new RangeValidation(1, 2);//, //\"_ERR_OUT_OF_RANGE_VEHICLE_SPARE_TIRES_COUNT\");\r\nconst vehicleValue = new RangeValidation(1, 10000000);//,// \"_ERR_OUT_OF_RANGE_VEHICLE_VALUE\");\r\n\r\nconst ADDRESS_REGEX = /^$|^[\\u0621-\\u064A0-9 ]{3,100}$/\r\nconst PASSPORT_ID_OR_IDENTITY_ID_REGEX = /^[a-zA-Z0-9]+$/; //letters, numbers\r\nconst EMAIL_REGEX = /^$|^.*@.*\\..*$/;\r\n// const PHONE_NO_REGEX = /^$|^[0-9]{7,15}$/;\r\nconst PHONE_NO_REGEX = /^((\\+\\d{1,3}(-| )?\\(?\\d\\)?(-| )?\\d{1,5})|(\\(?\\d{2,6}\\)?))(-| )?(\\d{3,4})(-| )?(\\d{4})(( x| ext)\\d{1,5}){0,1}$/;\r\n\r\n\r\nconst TRIPTIK_NAME_REGEX = /^$|^[\\u0621-\\u064Aa-zA-Z0-9. ]+$/;\r\n\r\nexport function vehicleWeightInKGRangeValidator(control: AbstractControl) {\r\n return control.value >= vehicleWeightInKG.min && control.value <= vehicleWeightInKG.max ? null : { invalidVehicleWeightInKGRange: true };\r\n}\r\n\r\nexport function vehicleHorsePowerRangeValidator(control: AbstractControl) {\r\n //enable null \r\n return !control.value || (control.value >= vehicleHorsePower.min && control.value <= vehicleHorsePower.max) ? null : { invalidVehicleHorsePowerRange: true };\r\n}\r\n\r\nexport function vehicleCylindersCountRangeValidator(control: AbstractControl) {\r\n return control.value >= vehicleCylindersCount.min && control.value <= vehicleCylindersCount.max ? null : { invalidVehicleCylindersCountRange: true };\r\n}\r\n\r\nexport function vehicleManufactureYearRangeValidator(control: AbstractControl) {\r\n return control.value >= vehicleManufactureYear.min && control.value <= vehicleManufactureYear.max ? null : { invalidVehicleManufactureYearRange: true };\r\n}\r\n\r\nexport function vehicleSeatsCountRangeValidator(control: AbstractControl) {\r\n return control.value >= vehicleSeatsCount.min && control.value <= vehicleSeatsCount.max ? null : { invalidVehicleSeatsCountRange: true };\r\n}\r\n\r\nexport function vehicleSpareTiresCountRangeValidator(control: AbstractControl) {\r\n return control.value >= vehicleSpareTiresCount.min && control.value <= vehicleSpareTiresCount.max ? null : { invalidVehicleSpareTiresCountRange: true };\r\n}\r\n\r\nexport function vehicleValueRangeValidator(control: AbstractControl) {\r\n return control.value >= vehicleValue.min && control.value <= vehicleValue.max ? null : { invalidVehicleValueRange: true };\r\n}\r\n\r\n\r\nexport function nonEnglishCharactersValidator(control: AbstractControl) {\r\n return NON_ENGLISH_REGEX.test(control.value) ? null : { nonEnglishOnly: true };\r\n}\r\n\r\nexport function nonArabicCharactersValidator(control: AbstractControl) {\r\n return NON_ARABIC_REGEX.test(control.value) ? null : { nonArabicOnly: true };\r\n}\r\n\r\nexport function englishOnlyValidator(control: AbstractControl) {\r\n return ENGLISH_ONLY_REGEX.test(control.value) ? null : { englishOnly: true };\r\n}\r\n\r\nexport function englishAndSpacesValidator(control: AbstractControl) {\r\n return ENGLISH_AND_SPACES_REGEX.test(control.value) ? null : { englishAndSpacesOnly: true };\r\n}\r\n\r\nexport function numbersOnlyValidator(control: AbstractControl) {\r\n return NUMBERS_ONLY_REGEX.test(control.value) ? null : { invalidNumbersOnly: true };\r\n}\r\n\r\nexport function phoneNumberValidator(control: AbstractControl) {\r\n return PHONE_NO_REGEX.test(control.value) ? null : { invalidPhoneNumber: true };\r\n}\r\n\r\nexport function emailValidator(control: AbstractControl) {\r\n return EMAIL_REGEX.test(control.value) ? null : { invalidEmail: true };\r\n}\r\n\r\nexport function usernameValidator(control: AbstractControl) {\r\n return USERNAME_REGEX.test(control.value) ? null : { invalidUsername: true };\r\n}\r\n\r\nexport function passportIdOrIdentityIdValidator(control: AbstractControl) {\r\n return PASSPORT_ID_OR_IDENTITY_ID_REGEX.test(control.value) ? null : { invalidPassportIdOrIdentityId: true };\r\n}\r\n\r\nexport function _passportIdOrIdentityIdValidator(ctrl1: any, ctrl2: any, control: AbstractControl) {\r\n // //console.log(control, ctrl1, ctrl2);\r\n return control.value != ctrl1.value && control.value != ctrl2.value ? null : { _invalidPassportIdOrIdentityId: true };\r\n}\r\n\r\nexport function addressValidator(control: AbstractControl) {\r\n return ADDRESS_REGEX.test(control.value) ? null : { invalidAddress: true };\r\n}\r\n\r\nexport function triptikNameValidator(control: AbstractControl) {\r\n return TRIPTIK_NAME_REGEX.test(control.value) ? null : { invalidTriptikName: true };\r\n}\r\n\r\nexport function standardLocalizedControlValidators(lang: Language): ValidatorFn[] {\r\n return [\r\n Validators.required,\r\n Validators.minLength(3),\r\n Validators.maxLength(50),\r\n lang == Language.Arabic ? nonEnglishCharactersValidator : nonArabicCharactersValidator];\r\n}\r\n\r\nexport function comparePasswords(group: FormGroup) { // here we have the 'passwords' group\r\n let pass = group.get('password').value;\r\n let confirmPassword = group.get('passwordConfirm').value;\r\n\r\n return pass === confirmPassword ? null : { passwordMismatch: true }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\n//import * as AppConfig from '../../../assets/config.json';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable()\r\nexport class FileLoaderService {\r\n unavailableFile: string = 'assets/images/notfound.png';\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) { }\r\n\r\n\r\n private sanitize(url: string) {\r\n return this.sanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n\r\n async loadAsync(url: string) {\r\n const _url = environment.apiBaseUrl + url;\r\n //const _url = 'http://api.dev.mac.org.sa' + url;\r\n\r\n try {\r\n const file = await this.http.get(_url, { responseType: 'blob' })\r\n .pipe(map(blob => { return this.convertToByteArray(blob) }))\r\n .toPromise();\r\n\r\n //if (file)\r\n return file;\r\n\r\n //throw new Error();\r\n } catch (error) {\r\n\r\n // return null;\r\n return this.sanitize(this.unavailableFile);\r\n }\r\n }\r\n\r\n private convertToByteArray(file: Blob) {\r\n return new Promise((resolve, reject) => {\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n const src = this.sanitize(fr.result.toString());\r\n resolve(src);\r\n };\r\n fr.readAsDataURL(file);\r\n });\r\n }\r\n}","import { Subject } from 'rxjs';\r\nimport { Injectable, EventEmitter } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class LoadingService{\r\n public navLoading: EventEmitter;\r\n public bodyLoading: EventEmitter;\r\n public styleLoading: EventEmitter;\r\n\r\n constructor(){\r\n this.navLoading = new EventEmitter();\r\n this.bodyLoading = new EventEmitter();\r\n this.styleLoading = new EventEmitter();\r\n }\r\n\r\n static style: Subject = new Subject();\r\n\r\n public load(type: LoaderType = null, loading: boolean = true){\r\n switch(type){\r\n case LoaderType.Nav:\r\n this.navLoading.emit(loading);\r\n break;\r\n case LoaderType.Body:\r\n this.bodyLoading.emit(loading);\r\n break;\r\n\r\n default:\r\n this.styleLoading.emit(loading);\r\n break;\r\n }\r\n }\r\n}\r\n\r\nexport enum LoaderType {\r\n Nav,\r\n Body\r\n}","import { Component, Injectable, Directive, TemplateRef } from '@angular/core';\r\nimport { NgbModal, NgbModalRef, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ConfirmState, ConfirmOptions, IModalOptions } from '../models/modal';\r\n\r\n@Injectable()\r\nexport class ConfirmService {\r\n\r\n constructor(private modalService: NgbModal, private state: ConfirmState) {}\r\n\r\n /**\r\n * Opens a confirmation modal\r\n * @param options the options for the modal (title and message)\r\n * @returns {Promise} a promise that is fulfilled when the user chooses to confirm, and rejected when\r\n * the user chooses not to confirm, or closes the modal\r\n */\r\n confirm(options: IModalOptions): Promise {\r\n this.state.options = options;\r\n //delete is the default modal\r\n //this.state.modal = this.modalService.open(options.confirmType == 'update' ? this.state.updateTemplate : this.state.deleteTemplate);\r\n this.state.modal = this.modalService.open(this.state.template);\r\n return this.state.modal.result;\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { FormGroup, FormArray, FormControl, AbstractControl } from '@angular/forms';\r\nimport * as moment from 'moment';\r\nimport * as XLSX from 'xlsx';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\n\r\nexport class Utils {\r\n\r\n public static joinByDash(arr: string[]) {\r\n return [...arr].reverse().join(' - ');\r\n }\r\n\r\n public static validateAllFormFields(formGroup: /*AbstractControl | */FormGroup | FormArray) {\r\n ((formGroup instanceof FormArray) ? formGroup.controls :\r\n Object.keys((formGroup).controls)).forEach((field, i) => {\r\n const control = formGroup instanceof FormArray ?\r\n formGroup.controls[i]\r\n : formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n } else if (control instanceof FormGroup\r\n || control instanceof FormArray) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n\r\n\r\n public static _printHTML(content) {\r\n const html = `\r\n \r\n \r\n \r\n \r\n ${content}\r\n `;\r\n\r\n //var contents = document.getElementById(\"dvContents\").innerHTML;\r\n var frame1 = document.createElement('iframe');\r\n frame1.name = \"frame1\";\r\n frame1.style.position = \"absolute\";\r\n frame1.style.top = \"-1000000px\";\r\n document.body.appendChild(frame1);\r\n var frameDoc = (frame1.contentWindow) ? frame1.contentWindow : ((frame1.contentDocument).document) ? (frame1.contentDocument).document : frame1.contentDocument;\r\n frameDoc.document.open();\r\n //frameDoc.document.write('DIV Contents');\r\n //frameDoc.document.write('');\r\n frameDoc.document.write(html);\r\n //frameDoc.document.write('');\r\n frameDoc.document.close();\r\n setTimeout(function () {\r\n window.frames[\"frame1\"].focus();\r\n window.frames[\"frame1\"].print();\r\n document.body.removeChild(frame1);\r\n }, 500);\r\n return false;\r\n }\r\n\r\n public static printHtml(content) {\r\n\r\n try {\r\n this._printHTML(content);\r\n // const html = `\r\n // \r\n // \r\n // \r\n // \r\n // ${content}\r\n // `;\r\n\r\n // // const printContent = document.createElement(\"div\");\r\n // // const WindowPrt = window.open('', '', 'left=0,top=0,width=900,height=900,toolbar=0,scrollbars=0,status=0');\r\n // // WindowPrt.document.write(html);\r\n // // //WindowPrt.document.close();\r\n // // WindowPrt.focus();\r\n // // WindowPrt.print();\r\n // // //WindowPrt.close();\r\n\r\n // const frame1 = document.createElement('iframe');\r\n // frame1.name = \"frame1\";\r\n\r\n // frame1.style.position = \"absolute\";\r\n // frame1.style.top = \"-1000000px\";\r\n // document.body.appendChild(frame1);\r\n\r\n // // if (window.navigator.userAgent.toLowerCase().indexOf(\"chrome\") > -1) {\r\n // // frame1.contentWindow.focus();\r\n // // frame1.contentWindow.print();\r\n // // }\r\n\r\n // const frameDoc = frame1.contentDocument;\r\n // frameDoc.write(html);\r\n // setTimeout(function () {\r\n // window.frames[\"frame1\"].focus();\r\n // window.frames[\"frame1\"].print();\r\n // document.body.removeChild(frame1);\r\n // }, 1000);\r\n\r\n\r\n // var is_chrome = function () { return navigator.userAgent.toLowerCase().indexOf('chrome') > -1; }\r\n // window.onload = function () {\r\n // if (is_chrome) {\r\n // /*\r\n // * These 2 lines are here because as usual, for other browsers,\r\n // * the window is a tiny 100x100 box that the user will barely see.\r\n // * On Chrome, it needs to be big enough for the dialogue to be read\r\n // * (NB, it also includes a page preview).\r\n // */\r\n // window.moveTo(0, 0);\r\n // window.resizeTo(640, 480);\r\n\r\n // // This line causes the print dialogue to appear, as usual:\r\n // window.print();\r\n\r\n // /*\r\n // * This setTimeout isn't fired until after .print() has finished\r\n // * or the dialogue is closed/cancelled.\r\n // * It doesn't need to be a big pause, 500ms seems OK.\r\n // */\r\n // setTimeout(function () {\r\n // window.close();\r\n // }, 500);\r\n // } else {\r\n // // For other browsers we can do things more briefly:\r\n // window.print();\r\n // window.close();\r\n // }\r\n // }\r\n return false;\r\n }\r\n catch (e) {\r\n\r\n console.error(e);\r\n }\r\n }\r\n\r\n public static spreadRange(range: number[], reverse: boolean = false) {\r\n let start = range[0], end = range[1];\r\n const result: number[] = [];\r\n while (start <= end)\r\n result.push(start++);\r\n\r\n return !reverse ?\r\n result : result.reverse();\r\n }\r\n\r\n\r\n public static convertToServerDateTimeString(str) {\r\n const date = new Date(str);\r\n return new Date(date.setHours(date.getHours() + 3)).toISOString()\r\n }\r\n\r\n public static spreadRanges(ranges: number[][]) {\r\n const result = [];\r\n\r\n ranges.forEach(s => {\r\n if (s.length > 1) {\r\n let _start = s[0];\r\n const _end = s[1];\r\n while (_start <= _end)\r\n result.push(_start++);\r\n }\r\n else\r\n result.push(s[0]);\r\n });\r\n return result;\r\n }\r\n\r\n public static convertToMillimeter(px: number) {\r\n return px * 0.2645833333;\r\n }\r\n\r\n public static convertToPixel(mm: number) {\r\n return mm / 0.2645833333;\r\n }\r\n\r\n public static generateQrCodeUrl(hash: string) {\r\n //return `https://idl.mac.org.sa/verify-license/${hash}`;\r\n return `${window.location.origin}/verify/${hash}`;\r\n }\r\n\r\n public static exportToExcel(data: any, translate: TranslateService) {\r\n\r\n var output = data.map(function (obj) {\r\n return Object.keys(obj).map(function (key) {\r\n return obj[key];\r\n });\r\n });\r\n\r\n var wscols = [\r\n { width: 10 }, // first column\r\n { width: 10 },\r\n { width: 12.5 },\r\n { width: 30 },\r\n { width: 30 },\r\n { width: 12.5 },\r\n { width: 10 },\r\n { width: 10 },\r\n { width: 20 },\r\n { width: 15 },\r\n { width: 15 },\r\n { width: 15 },\r\n { width: 10 },\r\n { width: 15 },\r\n { width: 10 },\r\n { width: 12.5 },\r\n { width: 12.5 },\r\n { width: 10 }\r\n ];\r\n\r\n const ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(output);\r\n ws[\"!cols\"] = wscols;\r\n ws[\"!autofilter\"] = { ref: 'A1:R1' };\r\n\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n if (!wb.Workbook) wb.Workbook = {};\r\n if (!wb.Workbook.Views) wb.Workbook.Views = [];\r\n if (!wb.Workbook.Views[0]) wb.Workbook.Views[0] = {};\r\n wb.Workbook.Views[0].RTL = true;\r\n\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, `Licenses_Export_${moment(new Date()).format(\"L\")}.xlsx`);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nInjectable()\r\nexport class ValidationService {\r\n constructor(private translate: TranslateService) { }\r\n\r\n getValidatorErrorMessage(validatorName: string, validatorValue?: any, locale?: string) {\r\n let config = {\r\n required: '_MESSAGE_VALIDATION_REQUIRED',//await this.translate.get('_MESSAGE_VALIDATION_REQUIRED', {field: await this.translate.get(locale).toPromise()}).toPromise(),\r\n arabicOnly: '_MESSAGE_VALIDATION_ARABIC_ONLY',\r\n nonEnglishOnly: '_MESSAGE_VALIDATION_NON_ENGLISH_ONLY',\r\n nonArabicOnly: '_MESSAGE_VALIDATION_NON_ARABIC_ONLY',\r\n englishAndSpacesOnly: '_MESSAGE_VALIDATION_ENGLISH_AND_SPACES_ONLY',\r\n englishOnly: '_MESSAGE_VALIDATION_ENGLISH_ONLY',\r\n invalidNumbersOnly: '_MESSAGE_VALIDATION_NUMBERS_ONLY',\r\n invalidUsername: '_MESSAGE_VALIDATION_USERNAME_PATTERN',\r\n duplicatedUsername: '_MESSAGE_VALIDATION_DUPLICATED_USERNAME',\r\n passwordMismatch: '_MESSAGE_VALIDATION_PASSWORD_MISMATCH',\r\n invalidPhoneNumber: '_ERR_REGEX_PHONE_NO',\r\n invalidEmail: '_MESSAGE_VALIDATION_EMAIL_PATTERN',\r\n email: '_MESSAGE_VALIDATION_EMAIL_PATTERN',\r\n invalidAddress: '_ERR_REGEX_ADDRESS',\r\n minlength: ['_MESSAGE_VALIDATION_MIN_CHARACTERS', validatorValue.requiredLength],\r\n maxlength: ['_MESSAGE_VALIDATION_MAX_CHARACTERS', validatorValue.requiredLength],\r\n _invalidPassportIdOrIdentityId: '_ERR_OWNER_PASSPORT_OR_IDENTITY_DUPLICATE',\r\n invalidPassportIdOrIdentityId: '_MESSAGE_VALIDATION_PASSPORT_ID_IDENTITY_ID_PATTERN',\r\n invalidCreditCard: 'Is invalid credit card number',\r\n invalidEmailAddress: 'Invalid email address',\r\n invalidPassword:\r\n 'Invalid password. Password must be at least 6 characters long, and contain a number.',\r\n // minlength: `Minimum length ${validatorValue.requiredLength}`\r\n invalidVehicleWeightInKGRange: '_ERR_OUT_OF_RANGE_VEHICLE_WEIGHT_IN_KG',\r\n invalidVehicleHorsePowerRange: '_ERR_OUT_OF_RANGE_VEHICLE_HORSE_POWER',\r\n invalidVehicleCylindersCountRange: '_ERR_OUT_OF_RANGE_VEHICLE_CYLINDERS_COUNT',\r\n invalidVehicleManufactureYearRange: '_ERR_OUT_OF_RANGE_VEHICLE_MANUFACTURE_YEAR',\r\n invalidVehicleSeatsCountRange: '_ERR_OUT_OF_RANGE_VEHICLE_SEATS_COUNT',\r\n invalidVehicleSpareTiresCountRange: '_ERR_OUT_OF_RANGE_VEHICLE_SPARE_TIRES_COUNT',\r\n invalidVehicleValueRange: '_ERR_OUT_OF_RANGE_VEHICLE_VALUE',\r\n invalidTriptikName: '_ERR_REGEX_TRIPTIK_NAME'\r\n };\r\n\r\n return config[validatorName];\r\n }\r\n\r\n // static creditCardValidator(control) {\r\n // // Visa, MasterCard, American Express, Diners Club, Discover, JCB\r\n // if (\r\n // control.value.match(\r\n // /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/\r\n // )\r\n // ) {\r\n // return null;\r\n // } else {\r\n // return { invalidCreditCard: true };\r\n // }\r\n // }\r\n\r\n // static emailValidator(control) {\r\n // // RFC 2822 compliant regex\r\n // if (\r\n // control.value.match(\r\n // /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/\r\n // )\r\n // ) {\r\n // return null;\r\n // } else {\r\n // return { invalidEmailAddress: true };\r\n // }\r\n // }\r\n\r\n // static passwordValidator(control) {\r\n // // {6,100} - Assert password is between 6 and 100 characters\r\n // // (?=.*[0-9]) - Assert a string has at least one number\r\n // if (control.value.match(/^(?=.*[0-9])[a-zA-Z0-9!@#$%^&*]{6,100}$/)) {\r\n // return null;\r\n // } else {\r\n // return { invalidPassword: true };\r\n // }\r\n // }\r\n}","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n //apiBaseUrl: \"https://api-stg.mac.org.sa\",\r\n //apiBaseUrl: 'https://localhost:5001'\r\n //apiBaseUrl: 'https://api-online.macxbackupxdata.space'\r\n apiBaseUrl: 'https://api-online.mac.org.sa'\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 51528,\n\t\"./af.js\": 51528,\n\t\"./ar\": 49851,\n\t\"./ar-dz\": 80932,\n\t\"./ar-dz.js\": 80932,\n\t\"./ar-kw\": 95917,\n\t\"./ar-kw.js\": 95917,\n\t\"./ar-ly\": 11682,\n\t\"./ar-ly.js\": 11682,\n\t\"./ar-ma\": 45443,\n\t\"./ar-ma.js\": 45443,\n\t\"./ar-sa\": 74632,\n\t\"./ar-sa.js\": 74632,\n\t\"./ar-tn\": 97216,\n\t\"./ar-tn.js\": 97216,\n\t\"./ar.js\": 49851,\n\t\"./az\": 5681,\n\t\"./az.js\": 5681,\n\t\"./be\": 6722,\n\t\"./be.js\": 6722,\n\t\"./bg\": 2270,\n\t\"./bg.js\": 2270,\n\t\"./bm\": 60308,\n\t\"./bm.js\": 60308,\n\t\"./bn\": 15809,\n\t\"./bn-bd\": 79354,\n\t\"./bn-bd.js\": 79354,\n\t\"./bn.js\": 15809,\n\t\"./bo\": 29029,\n\t\"./bo.js\": 29029,\n\t\"./br\": 58137,\n\t\"./br.js\": 58137,\n\t\"./bs\": 40426,\n\t\"./bs.js\": 40426,\n\t\"./ca\": 62899,\n\t\"./ca.js\": 62899,\n\t\"./cs\": 6567,\n\t\"./cs.js\": 6567,\n\t\"./cv\": 66573,\n\t\"./cv.js\": 66573,\n\t\"./cy\": 88873,\n\t\"./cy.js\": 88873,\n\t\"./da\": 84140,\n\t\"./da.js\": 84140,\n\t\"./de\": 85988,\n\t\"./de-at\": 80896,\n\t\"./de-at.js\": 80896,\n\t\"./de-ch\": 12202,\n\t\"./de-ch.js\": 12202,\n\t\"./de.js\": 85988,\n\t\"./dv\": 19653,\n\t\"./dv.js\": 19653,\n\t\"./el\": 79405,\n\t\"./el.js\": 79405,\n\t\"./en-au\": 24090,\n\t\"./en-au.js\": 24090,\n\t\"./en-ca\": 40924,\n\t\"./en-ca.js\": 40924,\n\t\"./en-gb\": 26317,\n\t\"./en-gb.js\": 26317,\n\t\"./en-ie\": 49792,\n\t\"./en-ie.js\": 49792,\n\t\"./en-il\": 62137,\n\t\"./en-il.js\": 62137,\n\t\"./en-in\": 90506,\n\t\"./en-in.js\": 90506,\n\t\"./en-nz\": 71854,\n\t\"./en-nz.js\": 71854,\n\t\"./en-sg\": 71761,\n\t\"./en-sg.js\": 71761,\n\t\"./eo\": 50398,\n\t\"./eo.js\": 50398,\n\t\"./es\": 13606,\n\t\"./es-do\": 66977,\n\t\"./es-do.js\": 66977,\n\t\"./es-mx\": 95147,\n\t\"./es-mx.js\": 95147,\n\t\"./es-us\": 67363,\n\t\"./es-us.js\": 67363,\n\t\"./es.js\": 13606,\n\t\"./et\": 36785,\n\t\"./et.js\": 36785,\n\t\"./eu\": 53285,\n\t\"./eu.js\": 53285,\n\t\"./fa\": 18660,\n\t\"./fa.js\": 18660,\n\t\"./fi\": 89341,\n\t\"./fi.js\": 89341,\n\t\"./fil\": 81593,\n\t\"./fil.js\": 81593,\n\t\"./fo\": 62067,\n\t\"./fo.js\": 62067,\n\t\"./fr\": 34618,\n\t\"./fr-ca\": 21955,\n\t\"./fr-ca.js\": 21955,\n\t\"./fr-ch\": 19467,\n\t\"./fr-ch.js\": 19467,\n\t\"./fr.js\": 34618,\n\t\"./fy\": 79598,\n\t\"./fy.js\": 79598,\n\t\"./ga\": 43211,\n\t\"./ga.js\": 43211,\n\t\"./gd\": 80069,\n\t\"./gd.js\": 80069,\n\t\"./gl\": 71028,\n\t\"./gl.js\": 71028,\n\t\"./gom-deva\": 54213,\n\t\"./gom-deva.js\": 54213,\n\t\"./gom-latn\": 83350,\n\t\"./gom-latn.js\": 83350,\n\t\"./gu\": 3179,\n\t\"./gu.js\": 3179,\n\t\"./he\": 48468,\n\t\"./he.js\": 48468,\n\t\"./hi\": 98767,\n\t\"./hi.js\": 98767,\n\t\"./hr\": 93390,\n\t\"./hr.js\": 93390,\n\t\"./hu\": 50472,\n\t\"./hu.js\": 50472,\n\t\"./hy-am\": 12268,\n\t\"./hy-am.js\": 12268,\n\t\"./id\": 32954,\n\t\"./id.js\": 32954,\n\t\"./is\": 9497,\n\t\"./is.js\": 9497,\n\t\"./it\": 1507,\n\t\"./it-ch\": 588,\n\t\"./it-ch.js\": 588,\n\t\"./it.js\": 1507,\n\t\"./ja\": 60760,\n\t\"./ja.js\": 60760,\n\t\"./jv\": 44375,\n\t\"./jv.js\": 44375,\n\t\"./ka\": 29709,\n\t\"./ka.js\": 29709,\n\t\"./kk\": 10262,\n\t\"./kk.js\": 10262,\n\t\"./km\": 59992,\n\t\"./km.js\": 59992,\n\t\"./kn\": 91882,\n\t\"./kn.js\": 91882,\n\t\"./ko\": 7293,\n\t\"./ko.js\": 7293,\n\t\"./ku\": 98432,\n\t\"./ku.js\": 98432,\n\t\"./ky\": 43308,\n\t\"./ky.js\": 43308,\n\t\"./lb\": 89660,\n\t\"./lb.js\": 89660,\n\t\"./lo\": 64236,\n\t\"./lo.js\": 64236,\n\t\"./lt\": 88886,\n\t\"./lt.js\": 88886,\n\t\"./lv\": 46210,\n\t\"./lv.js\": 46210,\n\t\"./me\": 89215,\n\t\"./me.js\": 89215,\n\t\"./mi\": 59533,\n\t\"./mi.js\": 59533,\n\t\"./mk\": 13717,\n\t\"./mk.js\": 13717,\n\t\"./ml\": 40976,\n\t\"./ml.js\": 40976,\n\t\"./mn\": 41120,\n\t\"./mn.js\": 41120,\n\t\"./mr\": 82303,\n\t\"./mr.js\": 82303,\n\t\"./ms\": 62750,\n\t\"./ms-my\": 65007,\n\t\"./ms-my.js\": 65007,\n\t\"./ms.js\": 62750,\n\t\"./mt\": 41538,\n\t\"./mt.js\": 41538,\n\t\"./my\": 41861,\n\t\"./my.js\": 41861,\n\t\"./nb\": 93946,\n\t\"./nb.js\": 93946,\n\t\"./ne\": 41459,\n\t\"./ne.js\": 41459,\n\t\"./nl\": 86892,\n\t\"./nl-be\": 10676,\n\t\"./nl-be.js\": 10676,\n\t\"./nl.js\": 86892,\n\t\"./nn\": 98738,\n\t\"./nn.js\": 98738,\n\t\"./oc-lnc\": 74304,\n\t\"./oc-lnc.js\": 74304,\n\t\"./pa-in\": 20212,\n\t\"./pa-in.js\": 20212,\n\t\"./pl\": 43580,\n\t\"./pl.js\": 43580,\n\t\"./pt\": 6697,\n\t\"./pt-br\": 69584,\n\t\"./pt-br.js\": 69584,\n\t\"./pt.js\": 6697,\n\t\"./ro\": 41956,\n\t\"./ro.js\": 41956,\n\t\"./ru\": 68903,\n\t\"./ru.js\": 68903,\n\t\"./sd\": 84305,\n\t\"./sd.js\": 84305,\n\t\"./se\": 77374,\n\t\"./se.js\": 77374,\n\t\"./si\": 18805,\n\t\"./si.js\": 18805,\n\t\"./sk\": 51696,\n\t\"./sk.js\": 51696,\n\t\"./sl\": 73063,\n\t\"./sl.js\": 73063,\n\t\"./sq\": 72075,\n\t\"./sq.js\": 72075,\n\t\"./sr\": 33220,\n\t\"./sr-cyrl\": 67571,\n\t\"./sr-cyrl.js\": 67571,\n\t\"./sr.js\": 33220,\n\t\"./ss\": 91486,\n\t\"./ss.js\": 91486,\n\t\"./sv\": 60846,\n\t\"./sv.js\": 60846,\n\t\"./sw\": 94725,\n\t\"./sw.js\": 94725,\n\t\"./ta\": 89390,\n\t\"./ta.js\": 89390,\n\t\"./te\": 79094,\n\t\"./te.js\": 79094,\n\t\"./tet\": 42982,\n\t\"./tet.js\": 42982,\n\t\"./tg\": 4637,\n\t\"./tg.js\": 4637,\n\t\"./th\": 59851,\n\t\"./th.js\": 59851,\n\t\"./tk\": 18136,\n\t\"./tk.js\": 18136,\n\t\"./tl-ph\": 9876,\n\t\"./tl-ph.js\": 9876,\n\t\"./tlh\": 660,\n\t\"./tlh.js\": 660,\n\t\"./tr\": 93107,\n\t\"./tr.js\": 93107,\n\t\"./tzl\": 45958,\n\t\"./tzl.js\": 45958,\n\t\"./tzm\": 92838,\n\t\"./tzm-latn\": 57379,\n\t\"./tzm-latn.js\": 57379,\n\t\"./tzm.js\": 92838,\n\t\"./ug-cn\": 25454,\n\t\"./ug-cn.js\": 25454,\n\t\"./uk\": 1615,\n\t\"./uk.js\": 1615,\n\t\"./ur\": 55309,\n\t\"./ur.js\": 55309,\n\t\"./uz\": 81879,\n\t\"./uz-latn\": 71537,\n\t\"./uz-latn.js\": 71537,\n\t\"./uz.js\": 81879,\n\t\"./vi\": 92341,\n\t\"./vi.js\": 92341,\n\t\"./x-pseudo\": 69015,\n\t\"./x-pseudo.js\": 69015,\n\t\"./yo\": 75430,\n\t\"./yo.js\": 75430,\n\t\"./zh-cn\": 46607,\n\t\"./zh-cn.js\": 46607,\n\t\"./zh-hk\": 61211,\n\t\"./zh-hk.js\": 61211,\n\t\"./zh-mo\": 30856,\n\t\"./zh-mo.js\": 30856,\n\t\"./zh-tw\": 34911,\n\t\"./zh-tw.js\": 34911\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;"],"names":["TranslateService","Router","ActivatedRoute","Component","FormBuilder","Validators","CitiesService","CountriesService","StockTypesService","AccountTypesService","AccountsService","LoadingService","LoaderType","UsersService","Utils","nonArabicCharactersValidator","nonEnglishCharactersValidator","usernameValidator","comparePasswords","phoneNumberValidator","AlertService","Language","AuthService","AccountType","FileLoaderService","_DocumentType","ManageAccountComponent","constructor","fb","countriesService","citiesService","stockTypesService","accountTypeService","service","loader","alert","router","route","usersService","translate","auth","fileLoader","accountType","accountForm","get","titles","country","city","stockTypes","email","phoneNumber","username","password","passwordConfirm","attachments","ngOnInit","document","querySelector","classList","remove","lang","currentLang","Arabic","English","onLangChange","subscribe","t","formInit","disable","load","Nav","accountId","Number","snapshot","paramMap","uroStockTypes","getURO","list","users","getAccountUsers","countries","accountTypes","currentUser","isSystemAccount","map","at","getAllowed","result","getAccount","dto","account","documentTypes","x","documentType","filter","onlyUnique","accountTypeId","_parentAccounts","parentAccounts","patchValue","countryId","cityId","id","isSMSEnabled","cities","forEach","att","i","url","loadAsync","_stockTypes","fetchStockTypes","enable","setValue","length","value","index","self","indexOf","getAccountType","prefix","instant","getBadgeClass","badgeClasses","fetchCities","reset","then","Branch","parentAccountId","TripTikDocument","push","isUnifiedRelease","y","onSubmit","setErrors","valid","validateAllFormFields","Body","cmd","parentId","createAccount","r","success","navigate","failure","finally","updateAccount","group","required","array","minLength","maxLength","adminAccount","control","validateUsernameNotTaken","bind","pass","validator","attachmentFormInit","name","file","fileName","addAttachment","removeAttachment","removeAt","preview","$event","tgt","target","window","event","srcElement","files","Array","isArray","FileReader","fr","onload","toString","readAsDataURL","fileDropped","selector","template","providers","ViewAccountComponent","reverse","slice","Injectable","BehaviorSubject","merge","ApiHandler","EndPoint","DynamicFlatNode","item","level","expandable","isLoading","DynamicDataSource","_treeControl","_database","data","dataChange","dataNodes","next","connect","collectionViewer","expansionModel","changed","change","added","removed","handleTreeControl","viewChange","isActiveChange","pipe","d","isActive","disconnect","node","toggleNode","expand","getChildren","children","nodes","_node","isExpandable","splice","count","api","Map","initialData","getChildrenAccounts","rootLevelNodes","accounts","dataMap","set","usersCount","has","values","find","hasChildren","ACCOUNTS_CHILDREN","toPromise","getAccounts","ACCOUNTS","getPossibleParentAccounts","getChildrenAccountsLookup","isActiveOnly","ACCOUNTS_CHILDREN_LOOKUP","create","update","updateAccountStatus","active","deleteAccount","delete","of","catchError","finalize","populateAccountsSelect","DocumentsRevokeRequestsDataSource","issuingService","countSubject","asObservable","loadDocumentsRevokeRequests","pagination","stockTypeId","query","getDocumentsRevokeRequests","revokeRequests","attachment","changingThisBreaksApplicationSecurity","request","accountParentAccounts","revokeRequestsSubject","recordsCount","complete","ViewChild","MatPaginator","MatSort","fromEvent","tap","moment","exportToExcel","Gender","PrintObject","ConfirmService","DeleteModal","DefaultAlertAction","Role","IntLicensePermitClass","IssuingService","parseInt","IntLicensesService","CoupounService","CouponDataSource","CouponManagementComponent","intLicensesService","confirmService","accountsService","couponService","Object","Math","catch","e","searchForm","accountTitles","queryParamMap","p","advancedSearchMode","activeFilters","nativeElement","paginator","page","emit","pageIndex","pageSize","queryParams","fromDate","toDate","gender","nationalityId","passportID","permitClass","serial","isIssued","isDamaged","isNaN","fetchData","ngAfterViewInit","dataSource","counter$","sort","sortChange","loadCoupons","dir","direction","trim","filterBtn","relativeTo","replaceUrl","toggleAdvancedSearch","filterList","printObject","l","printObjectsCount","onDetail","coupon","onUpdate","localStorage","setItem","JSON","stringify","cancel","issued","isInRole","INT_LICENSES_DELETE","modal","confirm","type","title","note","m","_cancel","_delete","DELETING","couponSubject","cancelDocument","onExportToExcel","all","unsubscribe","wscols","width","autofilter","ref","rows","headers","param","row","discount","status","convertToServerDateTimeString","Date","_temp","resetSearch","setTimeout","args","static","CouponDetailDataSource","ViewLicenseDetailComponent","loadCouponDetails","params","couponDetailSubject","couponLicense","coupons","ElementRef","CommitmentPrintComponent","elRef","print","issueDate","printHtmlContent","innerHTML","printHtml","IntLicensePrintComponent","qRCodeUrl","generateQrCodeUrl","hashedSerial","UpdateModal","ELicensesDataSource","ELicensesService","convertELicenseOrderStatusToLocale","ELicensesComponent","eLicensesService","console","warn","orderStatus","licensePeriod","paymentMethod","orderNo","shippingStatue","log","tryRevoke","INT_LICENSES_REVOKE_REQUESTS_CREATE","revokeRequestId","action","submitText","confirmQuestion","dangerNote","inputNote","requestType","_tryRevoke","_cancelTryRevoke","objectId","attributes","reason","tryRevokeDocument","REQUESTING","IntLicensesSubject","findIndex","cancelTryRevokeDocument","REVOKE_REQUESTING_CANCEL","tapOrders","tapOrder","Male","format","printLogs","IntLicenseCard","IntLicenseSticker","eLicenseOrder","bill","couponDiscount","validityYears","shippingFees","total","trackingId","chargeId","rowsCount","unmatchedOrderNumbers","unmatchedDatabaseNumbers","max","IntLicensesDataSource","IntLicensesComponent","loadIntLicenses","Renderer2","BloodGroup","StocksService","IntLicenseDetailsDto","englishAndSpacesValidator","passportIdOrIdentityIdValidator","ManageIntLicenseComponent","stocksService","intLicenseService","renderer","video","facingMode","ideal","height","num","places","String","padStart","form","dateOfBirth","nationality","bloodGroup","accordingTo","permitClasses","dataAccuracyAcknowledgment","intLicenseAllowedValidity","_validityYears","locale","availableSerials","spreadRanges","getAvailableStocks","stockTypesAvailableStocks","availableStock","mode","key","updateMode","getByHashedSerial","intLicense","unshift","controls","ctrl","path","removeImage","markAsTouched","startCamera","navigator","mediaDevices","getUserMedia","videoConstraints","stream","camStream","attachVideo","handleError","isCamStreaming","capture","setProperty","canvas","videoWidth","videoHeight","getContext","drawImage","videoElement","imageData","toDataURL","_stopCamera","stopCamera","pause","removeAttribute","getTracks","track","stop","error","listen","isExpired","expiryDate","isBefore","now","toISODate","date","getFullYear","zeroPad","getMonth","getDate","INT_LICENSES_CREATE","ADDING","INT_LICENSES_UPDATE","UPDATING","accordingToId","ranges","s","_start","_end","ShipmentModal","StaticConfig","ConfigObject","CreateOrderUPSCommand","ELicenseOrderStatus","ModalDismissReasons","NgbModalConfig","NgbModal","HttpClient","saveAs","ViewIntLicenseComponent","http","modalService","config","submitClass","_returnToCustomer","comment","updateOrderStatus","PaymentCompleted","interactions","actor","created","utc","location","reload","amount","_reject","Rejected","currency","_PayBranch","routeReuseStrategy","shouldReuseRoute","_Pick","OrderDelivered","_ship","OrderShipped","shippingAddress","shippingVendorTrackingNumber","currentUrl","order","createUpsShipment","cancelText","backdrop","keyboard","printLabelByTrackingNumber","trackingNumber","body","post","responseType","response","labelImage","TrackResponse","Shipment","Package","Label","GraphicImage","labelFormat","ImageFormat","Code","blob","b64toBlob","containsNumbers","str","regex","test","b64Data","contentType","sliceSize","byteCharacters","atob","byteArrays","offset","byteNumbers","charCodeAt","byteArray","Uint8Array","Blob","maxPrintLimit","getConfigKeyValuePairs","IntLicenseMaxPrintLimit","intLicenseId","qRCodeImg","getElementsByTagName","displayPreview","isPrintable","IntLicenseCommitment","comPrintElm","_print","hash","add","subtract","isELicense","LicenseIssued","printElm","getTranslatedTemplateVersion","version","_issueDate","dateFormat","_expiryDate","documentTemplateVersion","canvas1","getElementById","ctx","lic","Image","textAlign","font","v","h","rh","fillText","nationalityTitles","countryTitles","accordingToTitles","join","abs","photo","radius","save","beginPath","moveTo","lineTo","quadraticCurveTo","closePath","clip","restore","qr","src","ptt","globalAlpha","ptrn","createPattern","fillStyle","fillRect","canvas1Thumb","thumbCtx","canvas2","stk","rect","canvas2Thumb","open","content","size","ariaLabelledBy","_order","_upsOrder","closeResult","getDismissReason","isEmpty","obj","jsonparse","parse","AddressLine","AttentionName","Comments","CommodityCode","CountryCode","DeclarationStatement","Description","InvoiceDate","InvoiceNumber","Name","OriginCountryCode","PostalCode","ProductWeight","PurchaseOrderNumber","ReasonForExport","StateProvinceCode","TermsOfShipment","UnitOfMeasurementType","UnitOfMeasurementWeight","customercityName","customercontactPhoneNumber","customercountry","customername","customerneighborhoodName","customerpostalCode","customerstreetName","pickuplocation","productname","ESC","BACKDROP_CLICK","ReceiptPrintComponent","StringJoinPipe","TripTikPrintComponent","stringJoin","joinByDash","empty","vOptions","vehicle","options","opt","getConfigValue","VehicleOptions","_colors","colors","transform","_options","model","_makeModel","make","drivers","customer","cOwnerInfo","owner","address","item1","item2","upholsteryType","vUpholsteryType","VehicleUpholsteryTypes","FormControl","CurrenciesService","VehicleColorsService","VehicleModelsService","VehicleMakesService","VehicleTypesService","TripTiksService","PostTripTikCmd","TripTikDetailsDto","MatStepper","addressValidator","vehicleSeatsCountRangeValidator","vehicleManufactureYearRangeValidator","vehicleWeightInKGRangeValidator","vehicleCylindersCountRangeValidator","vehicleHorsePowerRangeValidator","vehicleValueRangeValidator","_passportIdOrIdentityIdValidator","ManageTripTikComponent","tripTiksService","currenciesService","vehicleColorsService","vehicleMakesService","vehicleModelsService","vehicleTypesService","steps","step1","step2","step3","stockType","cName","cResidenceCountry","cNationality","cIdentityID","cPassportID","cLocalAddress","cLocalPhoneNumber","cIntAddress","cIntPhoneNumber","vPlateID","vRegistrationCountry","vMake","vModel","vType","vSeatsCount","vManufactureYear","vWeightInKG","vCylindersCount","vHorsePower","vColors","vEngineID","vChassisID","vSpareTiresCount","vEquipments","vExtras","vValue","vCurrency","startYearConfig","VehicleManufactureYearRange","vehicleManufactureYearRange","spreadRange","getUTCFullYear","vehicleUpholsteryTypes","vehicleSpareTiresCountOptions","VehicleSpareTiresCountOptions","vehicleCylindersCountRange","VehicleCylindersCountRange","vehicleSeatsCountRange","VehicleSeatsCountRange","vehicleOptions","_","Promise","vehicleRegistrationCountries","currencies","vehicleColors","vehicleMakes","vehicleTypes","stepper","_stepHeader","_getHostElement","addEventListener","ev","navigateAttempt","onSelectStockType","driver","driverFormInit","residenceCountryId","identityID","localAddress","intAddress","localPhoneNumber","intPhoneNumber","registrationCountryId","plateID","makeId","modelId","typeId","seatsCount","manufactureYear","weightInKG","cylindersCount","horsePower","engineID","chassisID","spareTiresCount","equipments","extras","currencyId","identityOrPassport","drivingLicense","vehicleRegistration","c","addDriver","removeDriver","fetchModels","vehicleModels","markAsUntouched","abbreviation","selectedIndex","selected","stepControl","grp","_attachments","keys","TRIPTIKS_CREATE","TRIPTIKS_UPDATE","passportIDorIdentityID","authorization","TripTiksDataSource","TripTiksComponent","ReleaseCenter","cResidenceCountryId","cIdentityOrPassportID","cPhoneNumber","vTypeId","vMakeId","vModelId","vRegistrationCountryId","_vRegistrationCountryId","split","onSelectVehicleMake","TRIPTIKS_DELETE","TRIPTIKS_REVOKE_REQUESTS_CREATE","arr","TripTiksSubject","TripTikFrontCover","TripTikInnerPages","TripTikBackCover","ViewTripTikComponent","TripTikMaxPrintLimit","tripTikId","fetchAttachments","isMigratedData","TriptikReceipt","receiptPrintElm","_title","parent","_i","defaultImage","fcCanvas","fcImage","convertToPixel","registrationCountryTitles","fcCanvasThumb","bcThumbCtx","ipCanvas","ipImage","makeModel","bcCanvasThumb","bcCanvas","bcImage","UsersDataSource","Location","AccountUsersComponent","USERS_SECURITY_GROUPS_READ","displayedColumns","USERS_UPDATE","USERS_DELETE","loadUsers","filterWithAccount","tryDelete","userId","names","tryUpdateStatus","_data","UsersSubject","updateStatus","deleteUser","updateUserStatus","SecurityService","numbersOnlyValidator","CustomsPortsService","ManageUserComponent","activatedRoute","securityService","customsPortsService","userForm","securityGroups","claimsCountries","groups","getAccountGroupsLookup","isAdministrator","claimsSystemGroupId","customsPorts","_claimsCountries","getUserData","isClaimsApplicable","cashedUserData","user","onGroupSelectionChange","isClaimsGroupSelected","changePassword","changingPassword","updateUserData","createUser","SecurityRolesVm","SelectionModel","MatTableDataSource","SecurityGroupDto","SecurityGroupsComponent","navigation","getCurrentNavigation","objectsCol","securityGroupForm","objectsActions","displayedColumnsTitles","securityRoles","getAccountRoles","getAccountGroups","groupId","state","a","onSelectGroup","_group","availableActions","isSystemGroup","formEnabled","addCheckboxes","clearSelections","matrixIndex","formArray","clear","objAct","actions","actionId","securityObject","cellToggle","selectedGroup","cloneDeep","g","securityActions","selections","replaceState","isColSelected","getActionIndex","numSelected","numRows","isRowSelected","isSelected","colToggle","colSelected","select","deselect","toggle","totalSelected","exit","oa","deleteAccountGroup","groupIndex","mapCheckboxes","_form","createAccountGroup","navigationExtras","isDelete","updateAccountGroup","formArr","_actions","val","_action","undo","SECURITY_GROUPS","SECURITY_ROLES","SECURITY_GROUPS_LOOKUP","getUsersSecurityGroups","SECURITY_USERS_GROUPS","updateUsersSecurityGroups","SECURITY_CLAIMS_APPLICABLE","validateGroupTitle","language","getUsers","ParentsSubject","StocksAvailableComponent","systemView","availableStocks","getSystemAvailableStocks","sumAvailableStocks","sumAvailableStocksFilter","serialStatus","onSerialStatusChange","checkBoxChange","available","checked","tabGroup","stockTypeData","_row","StockTotalsDataSource","StocksTotalsComponent","loadStockTotals","getStockTotals","accountsStocksTotals","stockTypesStocksTotals","received","transfered","returned","transferedUndone","remainingStocks","AvailableStock","StockSliderComponent","TransactComponent","SYSTEM_STOCKS_CREATE","fromAccounts","fromAccountId","onSelectFromAccount","toAccountId","toAccounts","selectedStock","func","_accounts","onSelectToAccount","toAccount","slider","transactionDetails","stock","loadSystemAvailableStock","loadAvailableStock","renderAvailableStock","onSelectRange","alertClass","operation","fromAccount","sourceId","targetId","fromRange","toRange","transact","TRANSFERING","vm","singles","TransactionsDataSource","loadTransactions","systemAccountLabel","stockTransactions","transaction","fromAccountParentAccounts","toAccountParentAccounts","TransactionsSubject","UndoRequestsDataSource","loadUndoRequests","getUndoRequests","undoRequestsSubject","undoRequests","TripTiksClaimsService","PursuingZonesService","triptikNameValidator","ManageTripTikClaimComponent","pursuingZonesService","triptiksClaimsService","entranceID","entranceDate","customsPort","pursuingZone","holderName","holderAddress","holderPhone","_customsPorts","pursuingZones","fetchCustomsPorts","customsPortId","pursuingZoneId","TripTikClaimAttachmentsComponent","tripTiksClaimsService","tripTikClaimId","getClaimAttachments","tripTikClaimEntranceID","TripTiksClaimsDataSource","TripTikClaimsStatusesService","TripTiksClaimsComponent","tripTikClaimsStatusesService","statusId","fromEntranceDate","toEntranceDate","vehiclePlateID","baseStatusId","_stockTypeId","_countryId","_customsPortId","onSelectCountry","baseStatuses","filterWithStatusId","filterWithPursuingZoneId","TripTiksClaimsSubject","onSelectStatus","nodeStatuses","latestStatus","TripTikClaimDto","TripTikClaimStatus","UpdateStatusTripTikClaimComponent","TRIPTIKS_CLAIMS_STATUS_UPDATE","baseStatus","payment","receiptNo","paymentFormInit","addControl","onSelectNestedStatus","Paid","removeControl","TRIPTIKS_CLAIMS_UPDATE","TripTikClaimDetailsDto","ViewTripTikClaimComponent","logs","parentTitles","ConfigResolver","resolve","TranslationResolver","DomSanitizer","environment","sanitizer","sanitize","bypassSecurityTrustUrl","_url","apiBaseUrl","convertToByteArray","unavailableFile","reject"],"sourceRoot":"webpack:///"}