{"version":3,"sources":["./src/app/browser-update-template.html","./src/app/dashboard/dash-home.component.html","./src/app/dashboard/dashboard.component.html","./src/app/loading-spinner/loading.component.html","./src/app/login/login.component.html","./src/app/login/password-resend.component.html","./src/app/login/reset-questions.template.html","./src/app/menu/documents/documents.component.html","./src/app/menu/overview/overview.component.html","./src/app/menu/positions/detailed-positions.component.html","./src/app/menu/positions/fxforwards.component.html","./src/app/menu/positions/positions-container.component.html","./src/app/menu/positions/positions.component.html","./src/app/menu/trading/trading.component.html","./src/app/menu/transactions/detailed-transactions.component.html","./src/app/menu/transactions/transactions-container.component.html","./src/app/menu/transactions/transactions.component.html","./src/app/menu/transactions/transfers.component.html","./src/app/menu/transferss/transferss.component.html","./src/app/notification/notification.component.html","./src/app/popupdisplay/popupdisplay.component.html","./src/app/profile/confirmmodify/confirmmodify.component.html","./src/app/profile/profile.component.html","./node_modules/zone.js/dist/zone.js","./src/$_lazy_route_resource lazy namespace object","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/app.routes.ts","./src/app/dashboard/dash-home.component.ts","./src/app/dashboard/dashboard.component.ts","./src/app/guards/auth.guard.ts","./src/app/loading-spinner/loading.component.scss","./src/app/loading-spinner/loading.component.ts","./src/app/loading-spinner/loading.service.ts","./src/app/login/login.component.ts","./src/app/login/password-resend.component.ts","./src/app/login/reset-form.service.ts","./src/app/login/reset-questions.component.ts","./src/app/menu/documents/documents.component.scss","./src/app/menu/documents/documents.component.ts","./src/app/menu/overview/overview.component.scss","./src/app/menu/overview/overview.component.ts","./src/app/menu/positions/detailed-positions.component.ts","./src/app/menu/positions/fxforwards.component.ts","./src/app/menu/positions/positions-container.component.ts","./src/app/menu/positions/positions.component.scss","./src/app/menu/positions/positions.component.ts","./src/app/menu/trading/trading.component.scss","./src/app/menu/trading/trading.component.ts","./src/app/menu/transactions/detailed-transactions.component.ts","./src/app/menu/transactions/transactions-container.component.ts","./src/app/menu/transactions/transactions.component.scss","./src/app/menu/transactions/transactions.component.ts","./src/app/menu/transactions/transfers.component.ts","./src/app/menu/transferss/transferss.component.scss","./src/app/menu/transferss/transferss.component.ts","./src/app/notification/notification.component.scss","./src/app/notification/notification.component.ts","./src/app/notification/notification.service.ts","./src/app/popupdisplay/popupdisplay.component.scss","./src/app/popupdisplay/popupdisplay.component.ts","./src/app/profile/confirmmodify/confirmmodify.component.scss","./src/app/profile/confirmmodify/confirmmodify.component.ts","./src/app/profile/profile.component.ts","./src/app/shared/account.service.ts","./src/app/shared/alertmessage.service.ts","./src/app/shared/angular2-google-chart.directive.ts","./src/app/shared/auth.service.ts","./src/app/shared/backend.service.ts","./src/app/shared/browser-versions.ts","./src/app/shared/filter.service.ts","./src/app/shared/multi-column-grid.service.ts","./src/app/shared/orderby.service.ts","./src/app/shared/pagination.component.ts","./src/app/shared/pagination.service.ts","./src/app/shared/search.service.ts","./src/app/shared/utilities.service.ts","./src/config.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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Aye,4BAA4B,0wBAA0wB,YAAY,qhBAAqhB,4BAA4B,0sBAA0sB,yBAAyB,uHAAuH,qBAAqB,6tCAA6tC,23FAA23F,0CAA0C,+IAA+I,mL;;;;;;;;;;;ACA9sP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,KAA4D;AAC7D,CAAC,SACW;AACZ,CAAC,qBAAqB;;AAEtB;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,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;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,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;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,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iEAAiE,+CAA+C,EAAE;AAClH;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,4DAA4D,0CAA0C;AACtG;AACA;AACA;AACA,gCAAgC;AAChC;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,KAAK;AACL;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,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;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,KAAK;AACL;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,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B,EAAE;AACnE;AACA;AACA;AACA,wCAAwC,6DAA6D,EAAE;AACvG,uCAAuC,WAAW,EAAE;AACpD;AACA,kCAAkC,aAAa,EAAE;AACjD,oCAAoC,WAAW,EAAE;AACjD,gCAAgC,aAAa,EAAE;AAC/C,qCAAqC,aAAa,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,aAAa,EAAE;AACzD,iCAAiC,cAAc,EAAE;AACjD,uCAAuC,kBAAkB,EAAE;AAC3D,2CAA2C,aAAa,EAAE;AAC1D,qDAAqD,kBAAkB,EAAE;AACzE,mCAAmC,kBAAkB,EAAE;AACvD,iCAAiC,WAAW,EAAE;AAC9C,iCAAiC,aAAa,EAAE;AAChD,0CAA0C,aAAa,EAAE;AACzD,uCAAuC,WAAW,EAAE;AACpD,4CAA4C,aAAa,EAAE;AAC3D,wCAAwC,aAAa,EAAE;AACvD,qCAAqC,aAAa;AAClD;AACA,6BAA6B;AAC7B;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;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,4HAA4H,wBAAwB,oCAAoC;AACxL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,sEAAsE;AACtJ;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAoD;AAC5F;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;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,SAAS;AACT;AACA,qEAAqE,gBAAgB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,kBAAkB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mFAAmF,kBAAkB;AACrG;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;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,aAAa;AACb;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,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;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,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;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,oBAAoB;AACpB;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,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;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,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;;AAEA;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,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;AACR;;AAEA;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;;AAEA;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,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,SAAS;AACT;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,8CAA8C,oCAAoC;AAClF;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,+BAA+B,sBAAsB;AACrD;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,+BAA+B,sBAAsB;AACrD;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,mCAAmC,0BAA0B;AAC7D;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,0CAA0C,sBAAsB;AAChE,qCAAqC,iBAAiB;AACtD;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,mCAAmC,8BAA8B;AACjE;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,uCAAuC,0BAA0B;AACjE;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,+BAA+B,0BAA0B;AACzD;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,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA;;AAEA;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,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,sDAAsD,0BAA0B,EAAE;AAClF;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,6BAA6B,EAAE;AACpF;AACA;AACA;AACA;AACA,8CAA8C,kDAAkD,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sDAAsD;AACnG;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;;AAEA;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,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE;AACP,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,+BAA+B,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gBAAgB;AACrF;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA,uBAAuB,uBAAuB;AAC9C;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,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA,6CAA6C,6BAA6B;AAC1E;AACA;AACA;;AAEA;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;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,aAAa;AACb;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,SAAS;AACT;AACA;AACA;AACA,8FAA8F;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,sCAAsC;AACtC;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,SAAS;AACT;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;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,0DAA0D;AAC1D;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,UAAU,EAAE;AACZ;AACA,6DAA6D;AAC7D;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,UAAU,EAAE;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;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,+CAA+C,sBAAsB;AACrE;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,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ,qFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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","file":"main.js","sourcesContent":["export default \"
\\r\\n \\r\\n You are using an outdated browser. Please \\r\\n upgrade {{browsername}}\\r\\n upgrade {{browsername}}\\r\\n upgrade {{browsername}}\\r\\n upgrade {{browsername}}\\r\\n upgrade {{browsername}}\\r\\n \\r\\n to improve your experience.\\r\\n
\\r\\n
\\r\\n \\r\\n You are using a deprecated browser. Please upgrade IE to improve your experience, \\r\\n or considering switching to a more widely supported browser.\\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
1 \\\" class=\\\"col-12 col-sm-10 col-md-6\\\">\\r\\n \\r\\n \\r\\n \\r\\n Select Account\\r\\n \\r\\n \\r\\n \\r\\n {{item}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","export default \"
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n \\n \\n
\"","export default \"
\\r\\n \\\"Britannia\\r\\n
Loading...
\\r\\n
\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"Britannia
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Please enter ID\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please enter valid password\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\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 \"\\\"Britannia

\\r\\n
Reset Password
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Customer ID is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Please enter your answer\\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

Please set your password reset questions and Update Password

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Password Reset Question 1\\r\\n \\r\\n \\r\\n {{securityquestion.viewValue}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please enter Answer\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Password Reset Question 2\\r\\n \\r\\n \\r\\n {{securityquestion.viewValue}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Please enter Answer\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Please enter Existing Password\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n 0\\\">\\r\\n Password should contain at least one uppercase letter,\\r\\n one lowercase letter, one number and one special character and minimum 8 and maximum 12 characters,\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Not a match\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\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 \"
\\n
\\n
\\n
\\n
\\n \\n \\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n\\n
\\n Date\\n \\n Type\\n \\n \\tRef\\n \\n Document\\n \\n File Type\\n
\\n Date:\\n
\\n
\\n {{item.documentDate | date: 'MM/dd/yyyy'}}\\n
\\n Date:\\n
\\n
\\n {{item.documentType }}\\n
\\n Date:\\n
\\n
\\n {{item.docRef }}\\n
\\n \\n \\n File Type:\\n
\\n
\\n {{item.fileExt}}\\n
\\n\\n
\\n
\\n \\n
\\n
No Entries Found
\\n \\n\\n
\\n
\\n
\\n \\n
\\n\"","export default \"
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n Reference Currency\\n \\n \\n \\n Reference Currency\\n

{{item}}

\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n Security Type\\n \\n Total in ({{FilterByStatus.controls['_currency'].value}}\\n )\\n \\n Portfolio\\n
\\n Security Type:\\n
\\n
\\n {{item.securityType}} \\n
\\n Total in USD:\\n
\\n
\\n {{item.cash | currency : FilterByStatus.controls['_currency'].value}}\\n
\\n Portfolio:\\n
\\n
\\n {{item.cash/totalamountleft*100 | number:'1.0-2'}}%\\n
\\n \\n
\\n
\\n Total\\n
\\n Amount:\\n
\\n
\\n {{totalamountleft| currency : FilterByStatus.controls['_currency'].value}}\\n
\\n Portfolio:\\n
\\n
\\n 100.00%\\n
\\n
\\n
\\n \\n
No data to display Pie charts
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n \\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
\\n Currency\\n \\n Available Balance\\n \\n Settled Balance\\n \\n Exposure\\n \\n Exchange Rate\\n \\n Settled Balance in ({{FilterByStatus.controls['_currency'].value}}\\n )\\n \\n Total in ({{FilterByStatus.controls['_currency'].value}}\\n )\\n \\n Portfolio\\n
\\n Currency:\\n
\\n
\\n {{item.securityType}}\\n
\\n Cash:\\n
\\n
\\n {{item.advancedamount | number : '1.2-2'}}\\n
\\n Cash:\\n
\\n
\\n {{item.amount | number : '1.2-2'}}\\n
\\n Exposure:\\n
\\n
\\n {{item.cash| number : '1.2-2'}}\\n
\\n ExchangeRate:\\n
\\n
\\n {{item.earningtype | number : '1.5-5'}}\\n
\\n Cash in ({{FilterByStatus.controls['_currency'].value}}\\n ):\\n
\\n
\\n {{(item.earningtype* (item.amount))| currency : FilterByStatus.controls['_currency'].value}}\\n
\\n Total in ({{FilterByStatus.controls['_currency'].value}}\\n ):\\n
\\n
\\n {{(item.earningtype* (item.cash))| currency : FilterByStatus.controls['_currency'].value}}\\n
\\n Portfolio:\\n
\\n
\\n {{(item.earningtype* item.cash)/totalamountright*100| number:'1.0-2'}}%\\n
\\n \\n
\\n
\\n Total\\n
\\n\\n \\n\\n \\n\\n \\n\\n \\n Amount:\\n
\\n
\\n\\n {{totalamountright| currency : FilterByStatus.controls['_currency'].value}}\\n
\\n Portfolio:\\n
\\n
\\n 100.00%\\n
\\n
\\n
\\n\\n
No data to display Pie charts
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n
\\n\\n \\n
\\n\\n\\n
\\n \\n
\\n
No Entries Found
\\n\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Reference Currency\\r\\n \\r\\n \\r\\n \\r\\n Reference Currency\\r\\n

{{item}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Fixed Income/Bonds\\r\\n Equities/Funds \\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\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Quantity / Nominal\\r\\n \\r\\n Security Name\\r\\n \\r\\n Market Price\\r\\n \\r\\n Market Value (CCY)\\r\\n \\r\\n Market Value ({{FilterByStatus.controls['_currency'].value}})\\r\\n \\r\\n FX Rate\\r\\n
\\r\\n Currency\\r\\n \\r\\n Security Type\\r\\n \\r\\n ISIN\\r\\n \\r\\n Cost Price\\r\\n \\r\\n Accrued Int. (CCY)\\r\\n \\r\\n Accrued Int. ({{FilterByStatus.controls['_currency'].value}})\\r\\n \\r\\n \\r\\n % Of Assets\\r\\n
\\r\\n Nominal:\\r\\n
\\r\\n
\\r\\n {{item.face | number}} \\r\\n
\\r\\n Currency:\\r\\n
\\r\\n
\\r\\n {{item.currency}}\\r\\n
\\r\\n Security Name:\\r\\n
\\r\\n
\\r\\n {{item.description}}\\r\\n
\\r\\n Security Type / ISIN:\\r\\n
\\r\\n
\\r\\n {{item.securityCategory}}\\r\\n /\\r\\n {{item.isin}}\\r\\n
\\r\\n Market Price:\\r\\n
\\r\\n
\\r\\n {{item.marketPrice | number:'1.4-4'}}\\r\\n
\\r\\n Cost Price:\\r\\n
\\r\\n
\\r\\n {{item.cost | number:'1.4-4'}}\\r\\n
\\r\\n Mkt Value(CCY):\\r\\n
\\r\\n
\\r\\n {{item.marketValueccy | number:'1.2-2'}}\\r\\n
\\r\\n Accrued Int. (CCY):\\r\\n
\\r\\n
\\r\\n {{item.accruedInterestccy| number:'1.2-2'}}\\r\\n
\\r\\n Mkt Value(USD):\\r\\n
\\r\\n
\\r\\n {{item.marketValue | currency : FilterByStatus.controls['_currency'].value}}\\r\\n
\\r\\n Accrued Int. (USD):\\r\\n
\\r\\n
\\r\\n {{item.accruedInterest | currency : FilterByStatus.controls['_currency'].value}}\\r\\n
\\r\\n FX Rate:\\r\\n
\\r\\n
\\r\\n {{item.fxRate | number:'1.5-5'}} \\r\\n
\\r\\n % of Assets:\\r\\n
\\r\\n
\\r\\n {{ ((item.marketValueccy+item.accruedInterestccy)/ totalmarketvalue) * 100 | number:'1.2-2'}}% \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Quantity\\r\\n \\r\\n Security Name\\r\\n \\r\\n Market Price\\r\\n \\r\\n Market Value (CCY)\\r\\n \\r\\n Market Value (USD)\\r\\n \\r\\n FX Rate\\r\\n
\\r\\n Currency\\r\\n \\r\\n Security Type\\r\\n \\r\\n ISIN\\r\\n \\r\\n Cost Price\\r\\n \\r\\n \\r\\n % Of Assets\\r\\n
\\r\\n Nominal:\\r\\n
\\r\\n
\\r\\n {{item.face | number}} \\r\\n
\\r\\n Currency:\\r\\n
\\r\\n
\\r\\n {{item.currency}}\\r\\n
\\r\\n Security Name:\\r\\n
\\r\\n
\\r\\n {{item.description}}\\r\\n
\\r\\n Security Type / ISIN:\\r\\n
\\r\\n
\\r\\n {{item.securityCategory}}\\r\\n /\\r\\n {{item.isin}}\\r\\n
\\r\\n Market Price:\\r\\n
\\r\\n
\\r\\n {{item.marketPrice | number:'2.0-4'}}\\r\\n
\\r\\n Cost Price:\\r\\n
\\r\\n
\\r\\n {{item.cost | number:'2.4-4'}}\\r\\n
\\r\\n\\r\\n {{item.marketValueccy | number:'1.2-2'}}\\r\\n\\r\\n \\r\\n\\r\\n {{item.marketValue | currency : FilterByStatus.controls['_currency'].value}}\\r\\n\\r\\n\\r\\n \\r\\n FX Rate:\\r\\n
\\r\\n
\\r\\n {{item.fxRate | number:'1.5-5'}} \\r\\n
\\r\\n % of Assets:\\r\\n
\\r\\n
\\r\\n {{ item.marketValueccy / totalmarketvalue * 100 | number:'1.2-2'}}% \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
No Entries Found
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","export default \"\\n\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n
Trade Date{{itmes[0].fCurrency}}{{itmes[0].sCurrency}}CostMaturity DateMarket PriceMarket Value {{itmes[0].sCurrency}}Market Value in {{repocurrency}}
{{FXForwards.tradeDate|date:'MM/dd/yyyy'}}{{FXForwards.face| number : '1.2-2'}}{{FXForwards.principal| number : '1.2-2'}}{{FXForwards.exchangeRate| number : '1.4-4'}}{{FXForwards.reValuePrice| number : '1.4-4'}}{{FXForwards.marketValue| number : '1.2-2'}}{{(FXForwards.marketValue*FXForwards.exchange)| number : '1.2-2'}}
\\n \\n
\\n
\\n
No Entries Found
\\n
\\n \\n
\\n\\n\"","export default \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n
\\n \\n
\\n \\n
\\n
\\n\\n \\n
\\n\\n
\"","export default \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Reference Currency\\r\\n \\r\\n \\r\\n \\r\\n Reference Currency\\r\\n

{{item}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Fixed Income/Bonds\\r\\n Equities/Funds\\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 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Quantity / Nominal\\r\\n \\r\\n \\r\\n Currency\\r\\n \\r\\n Security Type\\r\\n \\r\\n Security Name\\r\\n \\r\\n ISIN\\r\\n \\r\\n Cost Price\\r\\n \\r\\n Market Price\\r\\n
\\r\\n Quantity / Nominal:\\r\\n
\\r\\n
\\r\\n {{item.face | number}}\\r\\n
\\r\\n Currency:\\r\\n
\\r\\n
\\r\\n {{item.currency}}\\r\\n
\\r\\n Security Type:\\r\\n
\\r\\n
\\r\\n {{item.securityCategory}}\\r\\n
\\r\\n Security Name:\\r\\n
\\r\\n
\\r\\n {{item.description}}\\r\\n
\\r\\n ISIN:\\r\\n
\\r\\n
\\r\\n {{item.isin}}\\r\\n
\\r\\n Cost Price:\\r\\n
\\r\\n
\\r\\n {{item.purchPrice | number:'1.4-4'}}\\r\\n
\\r\\n Market Price:\\r\\n
\\r\\n
\\r\\n {{item.marketPrice | number:'1.4-4'}}\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
No Entries Found
\\r\\n
\\r\\n \\r\\n
\"","export default \"
\\n
\\n
\\n
\\n

Trading Page Under Construction...

\\n
\"","export default \"
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n Filter by Currency\\n \\n \\n \\n All Currencies{{item}}\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n  \\n \\n \\n \\n \\n \\n
\\n
\\n \\n
\\n \\n \\n search\\n \\n \\n
\\n
\\n
\\n
\\n\\n \\n\\n \\n \\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n
\\n Trade Date\\n \\n Transaction Type\\n \\n Description\\n \\n Quantity\\n \\n Accrued Interest\\n \\n Settlement Amount\\n
\\n Settlement Date\\n \\n Posting Date\\n \\n Security Type\\n \\n ISIN\\n \\n Price\\n \\n Days Accrued\\n \\n Debit\\n \\n Credit\\n
\\n Trade Date:\\n
\\n
\\n {{item.tdate | date: 'MM/dd/yyyy'}} \\n
\\n Settlement Date:\\n
\\n
\\n {{item.sdate | date: 'MM/dd/yyyy'}}\\n
\\n Transaction Type:\\n
\\n
\\n {{item.transactionType}}\\n
\\n Posting Date:\\n
\\n
\\n {{item.pdate | date: 'MM/dd/yyyy'}}\\n
\\n Description:\\n
\\n
\\n {{item.securityDescription}}\\n
\\n Security Type / ISIN:\\n
\\n
\\n\\n {{item.securityType}}\\n\\n {{item.isin}}\\n\\n
\\n Price:\\n
\\n
\\n {{item.quantity | number:'2.0-2'}} \\n
\\n {{item.price | number:'2.4-4'}}\\n
\\n Days Accrued:\\n
\\n
\\n {{item.accruedInterest | number:'1.2-2'}} \\n
\\n {{item.daysAccrued | number:'2.0-2'}}\\n
\\n Debit:\\n
\\n
\\n {{item.debit | number:'2.2-2'}}\\n
\\n Credit:\\n
\\n
\\n {{item.credit | number:'2.2-2'}}\\n
\\n
\\n\\n
\\n \\n
\\n
No Entries Found
\\n
\\n \\n
\\n
\"","export default \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n\\n \\n
\\n\\n
\"","export default \"
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n Filter by Currency\\n \\n \\n \\n All Currencies{{item}}\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n  \\n \\n \\n \\n \\n \\n
\\n
\\n \\n
\\n \\n \\n search\\n \\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n Settlement Date:\\n
\\n
\\n {{item.sdate | date: 'MM/dd/yyyy'}}\\n \\n \\n Transaction Type:\\n
\\n
\\n {{item.transactionType}}\\n \\n \\n Description:\\n
\\n
\\n {{item.securityDescription}}\\n \\n
\\n\\n \\n \\n \\n
\\n Settlement Date\\n \\n Transaction Type\\n \\n Description\\n \\n Quantity\\n \\n Settlement Amount\\n \\n Currency\\n
\\n Quantity:\\n
\\n
\\n {{item.quantity| number:'1.2-2'}}\\n
\\n Settlement Amount:\\n
\\n
\\n {{item.settlementAmount| number:'2.2-2'}}\\n
\\n Currency:\\n
\\n
\\n {{item.currency}}\\n
\\n
\\n\\n
\\n \\n
\\n
No Entries Found
\\n
\\n \\n
\"","export default \"
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n search\\n \\n \\n \\n
\\n
\\n\\n
\\n\\n\\n\\n\\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n\\n\\n \\n \\n \\n\\n \\n\\n\\n \\n \\n \\n
\\n Settlement Date\\n \\n Transaction Type\\n \\n Security Description\\n \\n Quantity\\n \\n Comments\\n
\\n Posting Date\\n \\n Currency\\n \\n Security Type\\n \\n ISIN\\n \\n Price\\n
\\n Trade Date:\\n
\\n
\\n {{item.tradeDate | date: 'MM/dd/yyyy'}} \\n
\\n Settlement Date:\\n
\\n
\\n {{item.settlementDate | date: 'MM/dd/yyyy'}}\\n
\\n Transaction Type:\\n
\\n
\\n {{item.transfertype}}\\n
\\n Currency:\\n
\\n
\\n {{item.currency}}\\n
\\n Description:\\n
\\n
\\n {{item.securityDescription}}\\n
\\n Security Type / ISIN:\\n
\\n
\\n\\n {{item.securityType}}/\\n\\n {{item.isin}}\\n\\n
\\n Price:\\n
\\n
\\n {{item.quantity | number:'2.2-2'}} \\n
\\n {{item.purchPrice | number:'2.0-2'}}\\n
\\n Balance:\\n
\\n
\\n {{item.comments }}\\n
\\n\\n\\n
\\n \\n
\\n
No Entries Found
\\n
\\n \\n
\\n
\\n
\"","export default \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n search\\n \\n \\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n\\n\\n \\n \\n \\n\\n \\n\\n\\n \\n \\n \\n
\\n Trade Date\\n \\n Transaction Type\\n \\n Security Description\\n \\n Quantity\\n \\n Comments\\n
\\n Settlement Date\\n \\n Currency\\n \\n Security Type\\n \\n ISIN\\n \\n Price\\n
\\n Trade Date:\\n
\\n
\\n {{item.tradeDate | date: 'MM/dd/yyyy'}} \\n
\\n Settlement Date:\\n
\\n
\\n {{item.settlementDate | date: 'MM/dd/yyyy'}}\\n
\\n Transaction Type:\\n
\\n
\\n {{item.transfertype}}\\n
\\n Currency:\\n
\\n
\\n {{item.currency}}\\n
\\n Description:\\n
\\n
\\n {{item.securityDescription}}\\n
\\n Security Type / ISIN:\\n
\\n
\\n\\n {{item.securityType}}/\\n\\n {{item.isin}}\\n\\n
\\n Price:\\n
\\n
\\n {{item.quantity | number:'2.2-2'}} \\n
\\n {{item.price | number:'2.0-2'}}\\n
\\n Balance:\\n
\\n
\\n {{item.comments }}\\n
\\n \\n\\n
\\n \\n
\\n
No Entries Found
\\n
\\n \\n
\\n
\\n
\"","export default \"
\\r\\n \\r\\n \\r\\n
{{notificationService.message}}
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\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 \"

{{confirmMessage}}

\\n
\\n \\n
\"","export default \"
Are you sure you would like to update this Information?


\\n

\\n\\n\\n\"","export default \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Please set your password reset questions and update your password

\\n
\\n
\\n
\\n
\\n \\n Password Reset Question 1\\n \\n \\n {{securityquestion.viewValue}}\\n \\n \\n \\n \\n \\n \\n Please enter Answer\\n \\n \\n
\\n
\\n \\n Password Reset Question 2\\n \\n \\n {{securityquestion.viewValue}}\\n \\n \\n \\n \\n \\n \\n \\n \\n Please enter Answer\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n Please enter Existing Password\\n \\n \\n
\\n
\\n \\n \\n 0\\\">\\n Password should contain at least one uppercase letter,\\n one lowercase letter, one number and one special character and minimum 8 and maximum 12 characters.\\n \\n \\n \\n
\\n
\\n \\n \\n \\n Not a match\\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n\\n \\n\\n\\n
\\n \\n  \\n \\n
\\n \\n
\\n
\\n
\\n
\\n\"","/**\n* @license\n* Copyright Google Inc. All Rights Reserved.\n*\n* Use of this source code is governed by an MIT-style license that can be\n* found in the LICENSE file at https://angular.io/license\n*/\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(factory());\n}(this, (function () { 'use strict';\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar Zone$1 = (function (global) {\n var performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n var checkDuplicate = global[('__zone_symbol__forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n var Zone = /** @class */ (function () {\n function Zone(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () {\n return _currentZoneFrame.zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"currentTask\", {\n get: function () {\n return _currentTask;\n },\n enumerable: true,\n configurable: true\n });\n Zone.__load_patch = function (name, fn) {\n if (patches.hasOwnProperty(name)) {\n if (checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n var perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n };\n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: true,\n configurable: true\n });\n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n var newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(\"can not reschedule task to \" + this.name + \" which is descendants of the original zone \" + task.zone.name);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n Zone.__symbol__ = __symbol__;\n return Zone;\n }());\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) { return delegate.hasTask(target, hasTaskState); },\n onScheduleTask: function (delegate, _, target, task) {\n return delegate.scheduleTask(target, task);\n },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) {\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n },\n onCancelTask: function (delegate, _, target, task) { return delegate.cancelTask(target, task); }\n };\n var ZoneDelegate = /** @class */ (function () {\n function ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate.zone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate.zone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate.zone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate.zone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate.zone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate.zone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate.zone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n };\n ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n };\n ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n };\n return ZoneDelegate;\n }());\n var ZoneTask = /** @class */ (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n this._zone = null;\n this.runCount = 0;\n this._zoneDelegates = null;\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n this.callback = callback;\n var self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n ZoneTask.invokeTask = function (task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n Object.defineProperty(ZoneTask.prototype, \"zone\", {\n get: function () {\n return this._zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () {\n return this._state;\n },\n enumerable: true,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () {\n this._transitionTo(notScheduled, scheduling);\n };\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(this.type + \" '\" + this.source + \"': can not transition to '\" + toState + \"', expecting state '\" + fromState1 + \"'\" + (fromState2 ? ' or \\'' + fromState2 + '\\'' : '') + \", was '\" + this._state + \"'.\");\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n };\n return ZoneTask;\n }());\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var nativeMicroTaskQueuePromise;\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n var nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var patches = {};\n var _api = {\n symbol: __symbol__,\n currentZoneFrame: function () { return _currentZoneFrame; },\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; },\n patchEventTarget: function () { return []; },\n patchOnProperties: noop,\n patchMethod: function () { return noop; },\n bindArguments: function () { return []; },\n patchThen: function () { return noop; },\n patchMacroTask: function () { return noop; },\n setNativePromise: function (NativePromise) {\n // sometimes NativePromise.resolve static function\n // is not ready yet, (such as core-js/es6.promise)\n // so we need to check here.\n if (NativePromise && typeof NativePromise.resolve === 'function') {\n nativeMicroTaskQueuePromise = NativePromise.resolve(0);\n }\n },\n patchEventPrototype: function () { return noop; },\n isIEOrEdge: function () { return false; },\n getGlobalObjects: function () { return undefined; },\n ObjectDefineProperty: function () { return noop; },\n ObjectGetOwnPropertyDescriptor: function () { return undefined; },\n ObjectCreate: function () { return undefined; },\n ArraySlice: function () { return []; },\n patchClass: function () { return noop; },\n wrapWithCurrentZone: function () { return noop; },\n filterProperties: function () { return []; },\n attachOriginToPatched: function () { return noop; },\n _redefineProperty: function () { return noop; },\n patchCallbacks: function () { return noop; }\n };\n var _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n var _currentTask = null;\n var _numberOfNestedTaskFrames = 0;\n function noop() { }\n function __symbol__(name) {\n return '__zone_symbol__' + name;\n }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n})(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\nvar __values = (undefined && undefined.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('ZoneAwarePromise', function (global, Zone, api) {\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n var className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n var __symbol__ = api.symbol;\n var _uncaughtPromiseErrors = [];\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var creationTrace = '__creationTrace__';\n api.onUnhandledError = function (e) {\n if (api.showUncaughtError()) {\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = function () {\n while (_uncaughtPromiseErrors.length) {\n var _loop_1 = function () {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () {\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_1();\n }\n }\n };\n var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (handler && typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var symbolFinally = __symbol__('finally');\n var symbolParentPromiseValue = __symbol__('parentPromiseValue');\n var symbolParentPromiseState = __symbol__('parentPromiseState');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n var TYPE_ERROR = 'Promise resolved with itself';\n var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n var trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n try {\n // try to print more readable error log\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n var error_1 = err;\n error_1.rejection = value;\n error_1.promise = promise;\n error_1.zone = Zone.current;\n error_1.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(error_1);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var promiseState = promise[symbolState];\n var delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n var parentPromiseValue = promise[symbolValue];\n var isFinallyPromise = chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n var ZoneAwarePromise = /** @class */ (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () {\n return ZONE_AWARE_PROMISE_TO_STRING;\n };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.race = function (values) {\n var e_1, _a;\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n try {\n for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {\n var value = values_1_1.value;\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) {\n var e_2, _a;\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n var unresolvedCount = 2;\n var valueIndex = 0;\n var resolvedValues = [];\n var _loop_2 = function (value) {\n if (!isThenable(value)) {\n value = this_1.resolve(value);\n }\n var curValueIndex = valueIndex;\n value.then(function (value) {\n resolvedValues[curValueIndex] = value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, reject);\n unresolvedCount++;\n valueIndex++;\n };\n var this_1 = this;\n try {\n for (var values_2 = __values(values), values_2_1 = values_2.next(); !values_2_1.done; values_2_1 = values_2.next()) {\n var value = values_2_1.value;\n _loop_2(value);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (values_2_1 && !values_2_1.done && (_a = values_2.return)) _a.call(values_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n };\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.toStringTag, {\n get: function () {\n return 'Promise';\n },\n enumerable: true,\n configurable: true\n });\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var chainPromise = new this.constructor(null);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n ZoneAwarePromise.prototype.finally = function (onFinally) {\n var chainPromise = new this.constructor(null);\n chainPromise[symbolFinally] = symbolFinally;\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n var ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise');\n var desc = ObjectGetOwnPropertyDescriptor(global, 'Promise');\n if (!desc || desc.configurable) {\n desc && delete desc.writable;\n desc && delete desc.value;\n if (!desc) {\n desc = { configurable: true, enumerable: true };\n }\n desc.get = function () {\n // if we already set ZoneAwarePromise, use patched one\n // otherwise return native one.\n return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise];\n };\n desc.set = function (NewNativePromise) {\n if (NewNativePromise === ZoneAwarePromise) {\n // if the NewNativePromise is ZoneAwarePromise\n // save to global\n global[ZONE_AWARE_PROMISE] = NewNativePromise;\n }\n else {\n // if the NewNativePromise is not ZoneAwarePromise\n // for example: after load zone.js, some library just\n // set es6-promise to global, if we set it to global\n // directly, assertZonePatched will fail and angular\n // will not loaded, so we just set the NewNativePromise\n // to global[symbolPromise], so the result is just like\n // we load ES6 Promise before zone.js\n global[symbolPromise] = NewNativePromise;\n if (!NewNativePromise.prototype[symbolThen]) {\n patchThen(NewNativePromise);\n }\n api.setNativePromise(NewNativePromise);\n }\n };\n ObjectDefineProperty(global, 'Promise', desc);\n }\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) {\n originalThen.call(_this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function () {\n var resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n var fetch_1 = global['fetch'];\n if (typeof fetch_1 == 'function') {\n global[api.symbol('fetch')] = fetch_1;\n global['fetch'] = zoneify(fetch_1);\n }\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nvar ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nvar ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nvar ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nvar ObjectCreate = Object.create;\n/** Array.prototype.slice */\nvar ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nvar ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nvar REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nvar ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nvar ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nvar TRUE_STR = 'true';\n/** false string const */\nvar FALSE_STR = 'false';\n/** __zone_symbol__ string const */\nvar ZONE_SYMBOL_PREFIX = '__zone_symbol__';\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nvar zoneSymbol = Zone.__symbol__;\nvar isWindowExists = typeof window !== 'undefined';\nvar internalWindow = isWindowExists ? window : undefined;\nvar _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\nvar REMOVE_ATTRIBUTE = 'removeAttribute';\nvar NULL_ON_PROP_VALUE = [null];\nfunction bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_1 = function (i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name_1);\n if (!isPropertyWritable(prototypeDesc)) {\n return \"continue\";\n }\n prototype[name_1] = (function (delegate) {\n var patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_1(i);\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nvar isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nvar isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nvar isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nvar isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nvar zoneSymbolEventNames = {};\nvar wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n var eventNameSymbol = zoneSymbolEventNames[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n var target = this || event.target || _global;\n var listener = target[eventNameSymbol];\n var result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signiture\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n var errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n var desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n var onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n var originalDescGet = desc.get;\n var originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var eventNameSymbol = zoneSymbolEventNames[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n var previousValue = target[eventNameSymbol];\n if (previousValue) {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n if (originalDescSet) {\n originalDescSet.apply(target, NULL_ON_PROP_VALUE);\n }\n if (typeof newValue === 'function') {\n target[eventNameSymbol] = newValue;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[eventNameSymbol] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n var listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n var value = originalDescGet && originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nvar originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n var OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction copySymbolProperties(src, dest) {\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return;\n }\n var symbols = Object.getOwnPropertySymbols(src);\n symbols.forEach(function (symbol) {\n var desc = Object.getOwnPropertyDescriptor(src, symbol);\n Object.defineProperty(dest, symbol, {\n get: function () {\n return src[symbol];\n },\n set: function (value) {\n if (desc && (!desc.writable || typeof desc.set !== 'function')) {\n // if src[symbol] is not writable or not have a setter, just return\n return;\n }\n src[symbol] = value;\n },\n enumerable: desc ? desc.enumerable : true,\n configurable: desc ? desc.configurable : true\n });\n });\n}\nvar shouldCopySymbolProperties = false;\n\nfunction patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate = null;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n var patchDelegate_1 = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate_1(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n if (shouldCopySymbolProperties) {\n copySymbolProperties(delegate, proto[name]);\n }\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n var setNative = null;\n function scheduleTask(task) {\n var data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) {\n var meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n }; });\n}\n\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nvar isDetectedIEOrEdge = false;\nvar ieOrEdge = false;\nfunction isIE() {\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n}\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// override Function.prototype.toString to make zone.js patched function\n// look like native function\nZone.__load_patch('toString', function (global) {\n // patch Func.prototype.toString to let them look like native\n var originalFunctionToString = Function.prototype.toString;\n var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n var PROMISE_SYMBOL = zoneSymbol('Promise');\n var ERROR_SYMBOL = zoneSymbol('Error');\n var newFunctionToString = function toString() {\n if (typeof this === 'function') {\n var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n var nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n var nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n var originalObjectToString = Object.prototype.toString;\n var PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nvar passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n }\n });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nvar OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nvar zoneSymbolEventNames$1 = {};\nvar globalSources = {};\nvar EVENT_NAME_SYMBOL_REGX = /^__zone_symbol__(\\w+)(true|false)$/;\nvar IMMEDIATE_PROPAGATION_SYMBOL = ('__zone_symbol__propagationStopped');\nfunction patchEventTarget(_global, apis, patchOptions) {\n var ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n var REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n var LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n var REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n var zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n var PREPEND_EVENT_LISTENER = 'prependListener';\n var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n var invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n var delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = function (event) { return delegate.handleEvent(event); };\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n task.invoke(task, target, [event]);\n var options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n var delegate_1 = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate_1, options);\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n var globalZoneAwareCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n var globalZoneAwareCaptureCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n var useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n var validateHandler = patchOptions && patchOptions.vh;\n var checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n var returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n var proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n var eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n var taskData = {};\n var nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n var nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n var nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n var nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n var nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n function checkIsPassive(task) {\n if (!passiveSupported && typeof taskData.options !== 'boolean' &&\n typeof taskData.options !== 'undefined' && taskData.options !== null) {\n // options is a non-null non-undefined object\n // passive is not supported\n // don't pass options as object\n // just pass capture as a boolean\n task.options = !!taskData.options.capture;\n taskData.options = task.options;\n }\n }\n var customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n checkIsPassive(task);\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n var customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n var symbolEventNames = zoneSymbolEventNames$1[task.eventName];\n var symbolEventName = void 0;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n var customScheduleNonGlobal = function (task) {\n checkIsPassive(task);\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n var compareTaskCallbackVsDelegate = function (task, delegate) {\n var typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n var compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n var blackListedEvents = Zone[Zone.__symbol__('BLACK_LISTED_EVENTS')];\n var makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget, prepend) {\n if (returnTarget === void 0) { returnTarget = false; }\n if (prepend === void 0) { prepend = false; }\n return function () {\n var target = this || _global;\n var eventName = arguments[0];\n var delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n var isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n var options = arguments[2];\n if (blackListedEvents) {\n // check black list\n for (var i = 0; i < blackListedEvents.length; i++) {\n if (eventName === blackListedEvents[i]) {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n var capture;\n var once = false;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n once = options ? !!options.once : false;\n }\n var zone = Zone.current;\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (!symbolEventNames) {\n // the code is duplicate, but I just want to get some better performance\n var falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n var trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n symbolEventName = capture ? symbolCapture : symbol;\n }\n else {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = target[symbolEventName];\n var isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (var i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n var source;\n var constructorName = target.constructor['name'];\n var targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n var options = arguments[2];\n var capture;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n }\n var delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n var listeners = [];\n var tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (var i = 0; i < tasks.length; i++) {\n var task = tasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (!eventName) {\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n var prop = keys[i];\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (symbolEventNames) {\n var symbolEventName = symbolEventNames[FALSE_STR];\n var symbolCaptureEventName = symbolEventNames[TRUE_STR];\n var tasks = target[symbolEventName];\n var captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n var removeTasks = tasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n var removeTasks = captureTasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n var results = [];\n for (var i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n var foundTasks = [];\n for (var prop in target) {\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n var tasks = target[prop];\n if (tasks) {\n for (var i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n}\nfunction patchEventPrototype(global, api) {\n var Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { return function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n }; });\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction patchCallbacks(api, target, targetName, method, callbacks) {\n var symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n var nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = targetName + \".\" + method + \"::\" + callback;\n var prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n var descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\nvar zoneSymbol$1 = Zone.__symbol__;\nvar _defineProperty = Object[zoneSymbol$1('defineProperty')] = Object.defineProperty;\nvar _getOwnPropertyDescriptor = Object[zoneSymbol$1('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\nvar _create = Object.create;\nvar unconfigurablesKey = zoneSymbol$1('unconfigurables');\nfunction propertyPatch() {\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) {\n Object.defineProperty(obj, prop, props[prop]);\n });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (desc && isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n}\nfunction _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n}\nfunction isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n}\nfunction rewriteDescriptor(obj, prop, desc) {\n // issue-927, if the desc is frozen, don't try to change the desc\n if (!Object.isFrozen(desc)) {\n desc.configurable = true;\n }\n if (!desc.configurable) {\n // issue-927, if the obj is frozen, don't try to set the desc to obj\n if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n if (obj[unconfigurablesKey]) {\n obj[unconfigurablesKey][prop] = true;\n }\n }\n return desc;\n}\nfunction _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = desc.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw error;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nvar globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n];\nvar documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange', 'resume'\n];\nvar windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplyconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n];\nvar htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n];\nvar mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\nvar ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n];\nvar webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\nvar formEventNames = ['autocomplete', 'autocompleteerror'];\nvar detailEventNames = ['toggle'];\nvar frameEventNames = ['load'];\nvar frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\nvar marqueeEventNames = ['bounce', 'finish', 'start'];\nvar XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n];\nvar IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\nvar websocketEventNames = ['close', 'error', 'open', 'message'];\nvar workerEventNames = ['error', 'message'];\nvar eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n var tip = ignoreProperties.filter(function (ip) { return ip.target === target; });\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n var targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(function (op) { return targetIgnoreProperties.indexOf(op) === -1; });\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n var filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n var ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n var internalWindow = window;\n var ignoreErrorProperties = isIE ? [{ target: internalWindow, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n patchFilteredProperties(Document.prototype, eventNames, ignoreProperties);\n if (typeof internalWindow['SVGElement'] !== 'undefined') {\n patchFilteredProperties(internalWindow['SVGElement'].prototype, eventNames, ignoreProperties);\n }\n patchFilteredProperties(Element.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties);\n patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties);\n patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties);\n var HTMLMarqueeElement_1 = internalWindow['HTMLMarqueeElement'];\n if (HTMLMarqueeElement_1) {\n patchFilteredProperties(HTMLMarqueeElement_1.prototype, marqueeEventNames, ignoreProperties);\n }\n var Worker_1 = internalWindow['Worker'];\n if (Worker_1) {\n patchFilteredProperties(Worker_1.prototype, workerEventNames, ignoreProperties);\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (XMLHttpRequest) {\n // XMLHttpRequest is not available in ServiceWorker, so we need to check here\n patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n var XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties);\n }\n if (supportsWebSocket) {\n patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties);\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('util', function (global, Zone, api) {\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n var SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = _redefineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = function () { return ({\n globalSources: globalSources,\n zoneSymbolEventNames: zoneSymbolEventNames$1,\n eventNames: eventNames,\n isBrowser: isBrowser,\n isMix: isMix,\n isNode: isNode,\n TRUE_STR: TRUE_STR,\n FALSE_STR: FALSE_STR,\n ZONE_SYMBOL_PREFIX: ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR: ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR: REMOVE_EVENT_LISTENER_STR\n }); };\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction eventTargetLegacyPatch(_global, api) {\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, globalSources = _a.globalSources, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n var WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\n var NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\n var EVENT_TARGET = 'EventTarget';\n var apis = [];\n var isWtf = _global['wtf'];\n var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(',');\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555_ARRAY.map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;\n var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false;\n var ieOrEdge = api.isIEOrEdge();\n var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:';\n var FUNCTION_WRAPPER = '[object FunctionWrapper]';\n var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }';\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n // predefine all task.source string\n for (var i = 0; i < WTF_ISSUE_555.length; i++) {\n var target = WTF_ISSUE_555_ARRAY[i];\n var targets = globalSources[target] = {};\n for (var j = 0; j < eventNames.length; j++) {\n var eventName = eventNames[j];\n targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName;\n }\n }\n var checkIEAndCrossContext = function (nativeDelegate, delegate, target, args) {\n if (!isDisableIECheck && ieOrEdge) {\n if (isEnableCrossContextCheck) {\n try {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n else {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n }\n else if (isEnableCrossContextCheck) {\n try {\n delegate.toString();\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n return true;\n };\n var apiTypes = [];\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n apiTypes.push(type && type.prototype);\n }\n // vh is validateHandler to check event handler\n // is valid or not(for security check)\n api.patchEventTarget(_global, apiTypes, { vh: checkIEAndCrossContext });\n Zone[api.symbol('patchEventTarget')] = !!_global[EVENT_TARGET];\n return true;\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// we have to patch the instance since the proto is non-configurable\nfunction apply(api, _global) {\n var _a = api.getGlobalObjects(), ADD_EVENT_LISTENER_STR = _a.ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR = _a.REMOVE_EVENT_LISTENER_STR;\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n api.patchEventTarget(_global, [WS.prototype]);\n }\n _global.WebSocket = function (x, y) {\n var socket = arguments.length > 1 ? new WS(x, y) : new WS(x);\n var proxySocket;\n var proxySocketProto;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = api.ObjectGetOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = api.ObjectCreate(socket);\n // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror'\n // but proxySocket not, so we will keep socket as prototype and pass it to\n // patchOnProperties method\n proxySocketProto = socket;\n [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n var args = api.ArraySlice.call(arguments);\n if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) {\n var eventName = args.length > 0 ? args[0] : undefined;\n if (eventName) {\n var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName);\n socket[propertySymbol] = proxySocket[propertySymbol];\n }\n }\n return socket[propName].apply(socket, args);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n api.patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto);\n return proxySocket;\n };\n var globalWebSocket = _global['WebSocket'];\n for (var prop in WS) {\n globalWebSocket[prop] = WS[prop];\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nfunction propertyDescriptorLegacyPatch(api, _global) {\n var _a = api.getGlobalObjects(), isNode = _a.isNode, isMix = _a.isMix;\n if (isNode && !isMix) {\n return;\n }\n if (!canPatchViaPropertyDescriptor(api, _global)) {\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents(api);\n api.patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(api, _global);\n }\n Zone[api.symbol('patchEvents')] = true;\n }\n}\nfunction canPatchViaPropertyDescriptor(api, _global) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((isBrowser || isMix) &&\n !api.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = api.ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n // try to use onclick to detect whether we can patch via propertyDescriptor\n // because XMLHttpRequest is not available in service worker\n if (desc) {\n api.ObjectDefineProperty(Element.prototype, 'onclick', {\n enumerable: true,\n configurable: true,\n get: function () {\n return true;\n }\n });\n var div = document.createElement('div');\n var result = !!div.onclick;\n api.ObjectDefineProperty(Element.prototype, 'onclick', desc);\n return result;\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return false;\n }\n var ON_READY_STATE_CHANGE = 'onreadystatechange';\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n var xhrDesc = api.ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE);\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n // and if XMLHttpRequest.prototype.onreadystatechange is undefined,\n // we should set a real desc instead a fake one\n if (xhrDesc) {\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () {\n return true;\n }\n });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {});\n return result;\n }\n else {\n var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = api.symbol('fake');\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1];\n },\n set: function (value) {\n this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value;\n }\n });\n var req = new XMLHttpRequest();\n var detectFunc = function () { };\n req.onreadystatechange = detectFunc;\n var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc;\n req.onreadystatechange = null;\n return result;\n }\n}\n// Whenever any eventListener fires, we check the eventListener target and all parents\n// for `onwhatever` properties and replace them with zone-bound functions\n// - Chrome (for now)\nfunction patchViaCapturingAllTheEvents(api) {\n var eventNames = api.getGlobalObjects().eventNames;\n var unboundKey = api.symbol('unbound');\n var _loop_1 = function (i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = api.wrapWithCurrentZone(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_1(i);\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction registerElementPatch(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, document, 'Document', 'registerElement', callbacks);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\n(function (_global) {\n _global['__zone_symbol__legacyPatch'] = function () {\n var Zone = _global['Zone'];\n Zone.__load_patch('registerElement', function (global, Zone, api) {\n registerElementPatch(global, api);\n });\n Zone.__load_patch('EventTargetLegacy', function (global, Zone, api) {\n eventTargetLegacyPatch(global, api);\n propertyDescriptorLegacyPatch(api, global);\n });\n };\n})(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nvar taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n function timer() {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n if (!(task.data && task.data.isPeriodic)) {\n if (typeof data.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[data.handleId];\n }\n else if (data.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n data.handleId[taskSymbol] = null;\n }\n }\n }\n }\n data.args[0] = timer;\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) {\n return clearNative(task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n var task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var id = args[0];\n var task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction patchCustomElements(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n var callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n var EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n}\nfunction patchEvent$1(global, api) {\n api.patchEventPrototype(global, api);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nZone.__load_patch('legacy', function (global) {\n var legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n});\nZone.__load_patch('timers', function (global) {\n var set = 'set';\n var clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n});\nZone.__load_patch('requestAnimationFrame', function (global) {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', function (global, Zone) {\n var blockingMethods = ['alert', 'prompt', 'confirm'];\n for (var i = 0; i < blockingMethods.length; i++) {\n var name_1 = blockingMethods[i];\n patchMethod(global, name_1, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n});\nZone.__load_patch('EventTarget', function (global, Zone, api) {\n patchEvent$1(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]);\n }\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n patchClass('IntersectionObserver');\n patchClass('FileReader');\n});\nZone.__load_patch('on_property', function (global, Zone, api) {\n propertyDescriptorPatch(api, global);\n propertyPatch();\n});\nZone.__load_patch('customElements', function (global, Zone, api) {\n patchCustomElements(global, api);\n});\nZone.__load_patch('XHR', function (global, Zone) {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n var XHR_TASK = zoneSymbol('xhrTask');\n var XHR_SYNC = zoneSymbol('xhrSync');\n var XHR_LISTENER = zoneSymbol('xhrListener');\n var XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n var XHR_URL = zoneSymbol('xhrURL');\n var XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n var XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n var XMLHttpRequestEventTarget_1 = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget_1) {\n var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget_1.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n var READY_STATE_CHANGE = 'readystatechange';\n var SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n var data = task.data;\n var target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n var listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n var newListener = target[XHR_LISTENER] = function () {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n var loadTasks = target['__zone_symbol__loadfalse'];\n if (loadTasks && loadTasks.length > 0) {\n var oriInvoke_1 = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n var loadTasks = target['__zone_symbol__loadfalse'];\n for (var i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke_1.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n var storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n }; });\n var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n var fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n var fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n var task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n }; });\n var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { return function (self, args) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n }; });\n }\n});\nZone.__load_patch('geolocation', function (global) {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', function (global, Zone) {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n})));\n","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;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","import { Component, OnInit, OnDestroy, Renderer2 } from '@angular/core';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { Location } from '@angular/common';\n\nimport { Subscription } from 'rxjs';\nimport { Observable } from 'rxjs/Observable';\n\nimport { DeviceDetectorService } from 'ngx-device-detector';\n\n//import { NavService } from './services/nav.service';\nimport { SearchService } from './shared/search.service';\n\nimport { LatestBrowserVersions } from './shared/browser-versions';\n\n\n@Component({\n selector: 'app-root',\n templateUrl: './browser-update-template.html',\n styles: [`.alert {margin-bottom: 0rem;}`]\n // templateUrl: './app.component.html',\n // styles: [`\n // :host {\n // min-height: 100%;\n // }\n // `]\n})\nexport class AppComponent implements OnInit {\n modules;\n error: any;\n showHomeHeader: boolean = true;\n stickHomeHeader: boolean = false;\n routeSubscription: Subscription;\n deviceInfo: any;\n browserver: number;\n browsername: string;\n browserWarningOpen: boolean = false;\n IEbrowserWarningOpen: boolean = false;\n\n constructor(\n public location: Location,\n public router: Router,\n public renderer: Renderer2,\n public searchService: SearchService,\n private _deviceService: DeviceDetectorService ,\n //public navService: NavService\n ) {\n this.checkBrowserVersion();\n //searchService.svcRenderer = renderer;\n }\n\n checkBrowserVersion() {\n this.deviceInfo = this._deviceService.getDeviceInfo();\n this.browserver = parseInt(this.deviceInfo.browser_version);\n this.browsername = this.deviceInfo.browser;\n const isMobile = this._deviceService.isMobile();\n const isTablet = this._deviceService.isTablet();\n const isDesktopDevice = this._deviceService.isDesktop();\n\n // console.log(\"deviceInfo\"+this.deviceInfo+\"browserver\"+this.browserver+\"browsername\"+this.browsername);\n // console.log(isMobile, isTablet, isDesktopDevice);\n\n if(this.browsername == 'IE'){\n if(LatestBrowserVersions[this.browsername] - 1 >= this.browserver) {\n this.IEbrowserWarningOpen = true;\n } \n }\n else{\n if(LatestBrowserVersions[this.browsername] - 1 >= this.browserver) {\n this.browserWarningOpen = true; } \n } \n }\n\n ngOnInit() {\n this.routeSubscription = this.router.events\n // .filter(event => event instanceof NavigationEnd)\n .subscribe(event => {\n /*\n the homepage header/footer only really seem to apply to potential clients. this hides them on any 'admin' related route- we can also use this to swap it out for an 'admin-related' header if necessary\n */\n //this.showHomeHeader = !event['url'].includes('admin');\n this.stickHomeHeader = event['url'] !== '/';\n });\n }\n\n ngOnDestroy() {\n if (this.routeSubscription) { this.routeSubscription.unsubscribe(); }\n }\n \n closeBrowserWarning(){\n this.browserWarningOpen = false;\n }\n closeIEBrowserWarning(){\n this.IEbrowserWarningOpen = false;\n}\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CurrencyPipe } from '@angular/common';\nimport { HttpModule } from '@angular/http';\nimport { CommonModule } from '@angular/common';\n\n\n//routing\nimport { routing } from './app.routes';\n\n//components\nimport { AppComponent } from './app.component';\nimport { LoginComponent } from './login/login.component';\nimport { LoadingComponent } from './loading-spinner/loading.component';\nimport { DashboardComponent } from './dashboard/dashboard.component';\nimport { DashHomeComponent } from './dashboard/dash-home.component';\n// import { BrokerDashboardComponent } from './dashboard/broker-dashboard.comoponent';\n// import { BrokerDashHomeComponent } from './dashboard/broker-dash-home.comoponent';\nimport { NotificationComponent } from './notification/notification.component';\nimport { PaginationComponent } from './shared/pagination.component';\nimport { PasswordResendComponent } from './login/password-resend.component';\nimport { ProfileComponent } from './profile/profile.component';\n\n//import * as GoogleChart from 'angular2-google-chart/directives/angular2-google-chart.directive';\n\nimport {GoogleChart} from './shared/angular2-google-chart.directive';\n//services used by whole application\nimport { AccountService } from './shared/account.service';\nimport { AuthService } from './shared/auth.service';\nimport { BackendService } from './shared/backend.service';\nimport { FilterService } from './shared/filter.service';\nimport { LoadingService } from './loading-spinner/loading.service';\nimport { NotificationService } from './notification/notification.service';\nimport { OrderByService } from './shared/orderby.service';\nimport { PaginationService } from './shared/pagination.service';\nimport { SearchService } from './shared/search.service';\nimport { Utilities } from './shared/utilities.service';\n//import { NgxDatatableModule } from '@swimlane/ngx-datatable';\n//guards\nimport { AuthGuard } from './guards/auth.guard';\nimport { PositionsContainerComponent } from './menu/positions/positions-container.component';\nimport { PositionsComponent } from './menu/positions/positions.component';\nimport { DetailedPositionsComponent } from './menu/positions/detailed-positions.component';\nimport { TransfersComponent } from './menu/transactions/transfers.component';\nimport { TransactionsContainerComponent } from './menu/transactions/transactions-container.component';\nimport { TransactionsComponent } from './menu/transactions/transactions.component';\nimport { DetailedTransactionsComponent } from './menu/transactions/detailed-transactions.component';\nimport { TradingComponent } from './menu/trading/trading.component';\nimport { DocumentsComponent } from './menu/documents/documents.component';\n\n// import { GridModule } from '@syncfusion/ej2-angular-grids';\nimport {\n MatAutocompleteModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatStepperModule,\n } from '@angular/material';\n import {MatNativeDateModule, MatRippleModule} from '@angular/material';\n import {BrowserAnimationsModule} from '@angular/platform-browser/animations';\n import {LocationStrategy, HashLocationStrategy} from '@angular/common';\nimport { OverviewComponent } from './menu/overview/overview.component';\nimport { DeviceDetectorModule } from 'ngx-device-detector';\nimport { FxforwardsComponent } from './menu/positions/fxforwards.component';\n// import { PageService, SortService, GroupService } from '@syncfusion/ej2-angular-grids';\nimport { ResetQuestionsComponent } from './login/reset-questions.component';\n\nimport { ConfirmModifyComponent } from './profile/confirmmodify/confirmmodify.component';\n\nimport { PopupdisplayComponent } from './popupdisplay/popupdisplay.component';\nimport { TransferssComponent } from './menu/transferss/transferss.component';\n\n\n\n\n@NgModule({\n declarations: [\n AppComponent,\n LoadingComponent,\n LoginComponent,\n DashboardComponent,\n DashHomeComponent,\n // BrokerDashboardComponent,\n // BrokerDashHomeComponent,\n NotificationComponent,\n PaginationComponent,\n PasswordResendComponent,\n ProfileComponent,\n PositionsContainerComponent,\n PositionsComponent,\n DetailedPositionsComponent,\n TransactionsContainerComponent,\n TransactionsComponent,\n DetailedTransactionsComponent,\n TradingComponent,\n DocumentsComponent,\n OverviewComponent,\n GoogleChart,\n TransfersComponent,\n FxforwardsComponent,\n ResetQuestionsComponent,\n ConfirmModifyComponent,\n PopupdisplayComponent,\n TransferssComponent\n \n \n ],\n imports: [\n BrowserModule,CommonModule,\n BrowserAnimationsModule,\n FormsModule,\n ReactiveFormsModule,\n HttpClientModule,\n routing,\n HttpModule,\n // BrowserAnimationsModule,\n FormsModule,\n ReactiveFormsModule,\n routing,\n \n //SharedModule,\n // NgxDatatableModule,\n MatAutocompleteModule, // Material modules starts here\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatTableModule,\n MatDatepickerModule,\n MatDialogModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSlideToggleModule,\n MatSliderModule,\n MatSnackBarModule,\n MatSortModule,\n MatStepperModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatNativeDateModule, \n DeviceDetectorModule.forRoot(),\n // GridModule\n \n ],\n entryComponents: [AppComponent, ConfirmModifyComponent,PopupdisplayComponent],\n providers: [\n AccountService,\n AuthGuard,\n AuthService,\n BackendService,\n CurrencyPipe,\n FilterService,\n LoadingService,\n NotificationService,\n OrderByService,\n PaginationService,\n SearchService,\n Utilities,\n // PageService, SortService, \n FilterService, \n // GroupService\n \n // {provide: LocationStrategy, useClass: HashLocationStrategy},\n \n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Routes, RouterModule, PreloadAllModules } from '@angular/router';\r\nimport { NgModule } from '@angular/core';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { DashHomeComponent } from './dashboard/dash-home.component';\r\nimport { ProfileComponent } from './profile/profile.component';\r\nimport { PositionsContainerComponent } from './menu/positions/positions-container.component';\r\nimport { PositionsComponent } from './menu/positions/positions.component';\r\nimport { DetailedPositionsComponent } from './menu/positions/detailed-positions.component';\r\nimport { OverviewComponent } from './menu/overview/overview.component';\r\nimport { TransactionsContainerComponent } from './menu/transactions/transactions-container.component';\r\nimport { TransactionsComponent } from './menu/transactions/transactions.component';\r\nimport { DetailedTransactionsComponent } from './menu/transactions/detailed-transactions.component';\r\nimport { TradingComponent } from './menu/trading/trading.component';\r\nimport { DocumentsComponent } from './menu/documents/documents.component';\r\nimport { TransfersComponent } from './menu/transactions/transfers.component';\r\nimport { AuthGuard } from './guards/auth.guard';\r\nimport { Utilities } from './shared/utilities.service';\r\nimport {FxforwardsComponent} from './menu/positions/fxforwards.component';\r\nimport { ResetQuestionsComponent } from './login/reset-questions.component';\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: LoginComponent\r\n },\r\n {\r\n\r\n path: 'dashboard',\r\n component: DashboardComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n\r\n path: '',\r\n component: DashHomeComponent\r\n },\r\n \r\n {\r\n path: 'positions',\r\n component: PositionsContainerComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: PositionsComponent\r\n \r\n },\r\n {\r\n path: 'summary',\r\n component: PositionsComponent\r\n \r\n },\r\n {\r\n path: 'detailed',\r\n component: DetailedPositionsComponent\r\n \r\n },\r\n {\r\n path: 'fxforwards',\r\n component: FxforwardsComponent\r\n\r\n },\r\n ]\r\n },\r\n // {\r\n // path: 'positions',\r\n // component: PositionsComponent\r\n // },\r\n // {\r\n // path: 'positions/detailed',\r\n // component: DetailedPositionsComponent\r\n // },\r\n {\r\n path: 'overview',\r\n component: OverviewComponent\r\n }, \r\n \r\n\r\n {\r\n path: 'transactions',\r\n component: TransactionsContainerComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: TransactionsComponent\r\n \r\n },\r\n {\r\n path: 'summary',\r\n component: TransactionsComponent\r\n \r\n },\r\n {\r\n path: 'detailed',\r\n component: DetailedTransactionsComponent\r\n \r\n },\r\n {\r\n path: 'transfers',\r\n component: TransfersComponent\r\n },\r\n ]\r\n }, {\r\n path: 'tradings',\r\n component: TradingComponent\r\n },\r\n {\r\n path: 'documents',\r\n component: DocumentsComponent\r\n },\r\n ]\r\n },\r\n {\r\n path: 'login',\r\n redirectTo: '',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'login',\r\n component: LoginComponent\r\n },\r\n {\r\n path: 'positions',\r\n component: PositionsComponent,\r\n canActivate: [AuthGuard]\r\n },\r\n {\r\n path: 'reset-questions',\r\n component: ResetQuestionsComponent, canActivate: [AuthGuard],\r\n\r\n },\r\n {\r\n path: 'profile',\r\n component: ProfileComponent\r\n },\r\n {\r\n path: 'dashboard',\r\n component: DashboardComponent,\r\n canActivate: [AuthGuard]\r\n },\r\n];\r\n// @NgModule({\r\n// imports: [ RouterModule.forRoot(routes) ],\r\n// exports: [ RouterModule ]\r\n// })\r\n// export class AppRoutingModule {}\r\nexport const routing = RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules });\r\n \r\n\r\n","\nimport CONFIG from '../../config';\nimport { Injectable, Component, OnInit, OnDestroy } from '@angular/core';\nimport { Location, DecimalPipe, CurrencyPipe } from '@angular/common';\n// import { Router } from '@angular/router';\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\n\n// import { MultiColumnGridService } from '../shared/multi-column-grid.service';\nimport { AuthService } from '../shared/auth.service';\nimport { AccountService } from '../shared/account.service';\nimport { BackendService } from '../shared/backend.service';\n// import { FilterService } from '../shared/filter.service';\n// import { NotificationService } from '../notification/notification.service';\n// import { OrderByService } from '../shared/orderby.service';\n// import { PaginationService } from '../shared/pagination.service';\n// import { SearchService } from '../shared/search.service';\n// import { Utilities } from '../shared/utilities.service';\n\nimport { Subscription } from 'rxjs/Subscription';\n\nimport { PositionsComponent } from '../menu/positions/positions.component';\n@Component({\n selector: 'app-dash-home',\n templateUrl: './dash-home.component.html',\n providers: [DecimalPipe, PositionsComponent],\n styles: [`\n .fl-rt: {\n float: right;\n }\n a {\n font-weight:700;\n cursor: pointer;\n }\n .cancel {\n cursor: pointer;\n font-size: 1.2rem;\n opacity: 0.75;\n transition: opacity 0.3s ease;\n }\n .cancel:hover {\n opacity: 1;\n }\n .blueimg{\n // background-image: url(\"http://www.centralbank.org.bb/portals/0/Images/Arbitral Securities LogoSml.png\");\n color:#24608C; \n height: 300px; \n padding-left: 220px;\n text-align: left;\n }\n\n 'textcolour\n {\n text-color:rgb(255, 255, 255);\n }\n\n .imgalign\n {\n float:right;\n padding:15px; \n bottom:550px; \n width:825px; \n height:315px\n }\n `]\n})\n@Injectable()\nexport class DashHomeComponent implements OnInit, OnDestroy {\n currentSettlementAccountSubscription: Subscription;\n FilterByStatus: FormGroup;\n totalEntries: number = 0;\n accounts: any;\n // accountnumber: string;\n scc: any;\n constructor(\n public decimalPipe: DecimalPipe,\n public comp: PositionsComponent,\n public formBuilder: FormBuilder,\n public backendService: BackendService,\n public authService: AuthService,\n public accountService: AccountService,\n\n ) { \n // this.accountnumber = \"\"; \n }\n\n ngOnInit() {\n this.currentSettlementAccountSubscription = this.accountService.currentSettlementAccountChange$.subscribe(currentSettlementAccount => this.currentSettlementAccountChange(currentSettlementAccount));\n this.getAccountsDropdowns();\n this.FilterByStatus = this.formBuilder.group({ 'accountNumber': [] });\n this.FilterByStatus.controls['accountNumber'].setValue(this.accountService.currentSettlementAccount);\n \n }\n ngOnDestroy() {\n if(this.currentSettlementAccountSubscription) { this.currentSettlementAccountSubscription.unsubscribe(); }\n }\n currentSettlementAccountChange(value){\n // this.activeSettlementAccount = value;\n console.log(this.FilterByStatus.controls['accountNumber'].value);\n this.FilterByStatus.controls['accountNumber'].setValue(value);\n }\n getAccountsDropdowns() {\n this.backendService.getData(`${CONFIG.getAccountsDropdowns}/${this.authService.CustomerID}`)\n .subscribe(data => {\n this.accounts = data['accounts'];\n \n \n this.totalEntries = this.accounts.length;\n });\n }\n filterAuditLog() {\n this.scc = this.FilterByStatus.controls['accountNumber'].value;\n console.log(this.FilterByStatus.controls['accountNumber'].value);\n console.log(this.scc);\n let stringToSplit = this.scc;\n let x = stringToSplit.split(\"_\");\n let value = x[0];\n this.accountService.setSAccount(value);\n console.log(value);\n }\n resetAuditListing() {\n\n this.FilterByStatus.controls['accountNumber'].setValue('Filter by Settlement Account');\n\n }\n getValue(item){\n if (item === 'Filter by Settlement Account'){\n return '';\n } else {\n let stringToSplit = item;\n let x = stringToSplit.split(\"_\");\n \n return x[0];\n }\n }\n\n}\n","import { Injectable, Component, OnInit, OnDestroy, AfterViewInit, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\nimport { AuthService } from '../shared/auth.service';\nimport { AccountService } from '../shared/account.service';\nimport { BackendService } from '../shared/backend.service';\nimport CONFIG from '../../config';\nimport { DecimalPipe } from '@angular/common';\nimport { PositionsComponent } from '../menu/positions/positions.component';\nimport { Subscription } from 'rxjs/Subscription';\n\n@Component({\n providers: [DecimalPipe, PositionsComponent],\n selector: 'dashboard-component',\n templateUrl: './dashboard.component.html',\n styles: [`\n .body-container {\n padding-bottom: 3.5rem;\n }\n .footer {\n width: 100%;\n padding: 1em;\n // background-color: #f7f7f9;\n // background-color:rgb(79, 174, 239);\n //background-color:rgb(37, 145, 217);\n box-shadow: 0 -2px 10px 0 rgba(0, 0, 0, 0.16);\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: absolute;\n bottom: 0;\n right: 0;\n left: 0;\n }\n .footer a {\n color: inherit;\n }\n .footer .fa {\n transition: color 0.2s ease-in-out;\n }\n .twitter:hover {\n color: #1da1f2;\n }\n .facebook:hover {\n color: #3b5998;\n }\n .linkedin:hover {\n color: #0077b5;\n }\n `]\n})\n@Injectable()\nexport class DashboardComponent implements OnInit, OnDestroy, AfterViewInit {\n currentSettlementAccountSubscription: Subscription;\n dropdownOpen: boolean = false;\n headerHeight: String;\n AccountName: string = '';\n LoginType: string = '';\n totalEntries: number = 0;\n accounts: any;\n accountnumber: string;\n scc: any;\n grid: any;\n originalItems: Object[] = [];\n @ViewChild('dashWrapper',{static: true}) dash;\n currentYear: number;\n activeSettlementAccount = 'Select account';\n\n constructor(\n public decimalPipe: DecimalPipe,\n public comp: PositionsComponent,\n public formBuilder: FormBuilder,\n public backendService: BackendService,\n public authService: AuthService,\n public accountService: AccountService,\n\n public _authService: AuthService\n ) { this.accountnumber = \"\"; }\n\n ngOnInit() {\n this.currentSettlementAccountSubscription = this.accountService.currentSettlementAccountChange$.subscribe(currentSettlementAccount => this.currentSettlementAccountChange(currentSettlementAccount));\n\n this.getAccountsDropdowns();\n this.LoginType = localStorage.getItem('LoginType') || sessionStorage.getItem('LoginType');\n this.AccountName = localStorage.getItem('CustomerID') || sessionStorage.getItem('CustomerID');\n this.currentYear = new Date().getFullYear();\n }\n ngOnDestroy() {\n if(this.currentSettlementAccountSubscription) { this.currentSettlementAccountSubscription.unsubscribe(); }\n }\n currentSettlementAccountChange(value){\n \n this.activeSettlementAccount = value;\n }\n public callMe(): void {\n // this.comp.filterAuditLog();\n }\n\n filterAuditLog(item) {\n this.scc = item;\n let stringToSplit = this.scc;\n let x = stringToSplit.split(\" \");\n let value = x[0];\n console.log(\"entered filter\"+value);\n\n // this.backendService.getData(`${CONFIG.positionsApiUrlBase}/${this.authService.CustomerID}`)\n // .subscribe(data => {\n // this.grid = data['myCustomer'];\n\n // this.originalItems = this.grid.filter(x => x.accountNumber === value);\n // console.log(this.originalItems);\n // this.grid = this.originalItems;\n // });\n // this.comp.filterAuditLogForDashBoard(value);\n this.accountService.setSAccount(value);\n this.activeSettlementAccount=this.scc;\n console.log(value);\n }\n resetAuditListing() {\n\n this.activeSettlementAccount = 'Select account'; \n this.accountService.setSAccount(this.activeSettlementAccount);\n }\n ngAfterViewInit() {\n this.headerHeight = `${this.dash.nativeElement.offsetHeight + 25}px`;\n }\n getAccountsDropdowns() {\n this.backendService.getData(`${CONFIG.getAccountsDropdowns}/${this.authService.CustomerID}`)\n .subscribe(data => {\n this.accounts = data['accounts'];\n console.log(this.accounts);\n \n this.totalEntries = this.accounts.length;\n \n });\n }\n\n // setValue(value: string) {\n // this.accountnumber = value;\n // }\n\n} \n","import CONFIG from '../../config';\r\nimport { Injectable, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\n\r\nimport { AuthService } from '../shared/auth.service';\r\nimport { BackendService } from '../shared/backend.service';\r\nimport { NotificationService } from '../notification/notification.service';\r\nimport { Utilities } from '../shared/utilities.service';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable()\r\nexport class AuthGuard extends Utilities implements CanActivate {\r\n constructor(\r\n private _router: Router,\r\n public location: Location,\r\n public notificationService: NotificationService,\r\n public authService: AuthService,\r\n public backendService: BackendService\r\n ) {\r\n super(location, notificationService, authService, backendService);\r\n }\r\n\r\n canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n // return Observable.of(true).delay(20); \r\n console.log(localStorage.getItem('token'),sessionStorage.getItem('token'));\r\n \r\n // fake login for now- no backend yet\r\n \r\n let jwt = localStorage.getItem('token') || sessionStorage.getItem('token');\r\n if(jwt) {\r\n \r\n return this.checkLoginForAuthGuard();\r\n } \r\n else {\r\n this.authService.loggedIn = false;\r\n this._router.navigate(['/login']);\r\n return Observable.of(false);\r\n }\r\n }\r\n\r\n // canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable \r\n // {\r\n // // let jwt = localStorage.getItem('token') || sessionStorage.getItem('token');\r\n // // if(jwt) { // return this.checkLoginForAuthGuard();\r\n // // } else {\r\n // // this.authService.loggedIn = false;\r\n // // this._router.navigate(['/login']);\r\n // // return Observable.of(false);\r\n // // }\r\n // // }\r\n // let jwt = localStorage.getItem('token') || sessionStorage.getItem('token');\r\n // if(jwt) {\r\n \r\n // return this.checkLoginForAuthGuard();\r\n // }}\r\n \r\n}","export default \".fullscreen {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n z-index: 9999;\\n background-color: #ffffff;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n -webkit-box-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n justify-content: center;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbG9hZGluZy1zcGlubmVyL0U6XFxTVk5cXEFyYml0cmFsXFxGcm9udGVuZC9zcmNcXGFwcFxcbG9hZGluZy1zcGlubmVyXFxsb2FkaW5nLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9sb2FkaW5nLXNwaW5uZXIvbG9hZGluZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGVBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLHlCQUFBO0VBQ0Esb0JBQUE7RUFBQSxhQUFBO0VBQ0EsNEJBQUE7RUFBQSw2QkFBQTtVQUFBLHNCQUFBO0VBQ0EseUJBQUE7VUFBQSxtQkFBQTtFQUNBLHdCQUFBO1VBQUEsdUJBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL2xvYWRpbmctc3Bpbm5lci9sb2FkaW5nLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZ1bGxzY3JlZW4ge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgei1pbmRleDogOTk5OTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59IiwiLmZ1bGxzY3JlZW4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogOTk5OTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59Il19 */\"","import {Component} from '@angular/core';\r\n\r\nimport {LoadingService} from './loading.service';\r\n\r\n@Component({\r\n selector: 'loading-component', \r\n templateUrl: './loading.component.html',\r\n styleUrls: ['./loading.component.scss']\r\n // template: `\r\n //
\r\n // \"Arbitral\r\n //
Loading...
\r\n //
\r\n // `,\r\n // styles: [`\r\n // .fullscreen {\r\n // position: fixed;\r\n // top: 0;\r\n // left: 0;\r\n // width: 100%;\r\n // height: 100%;\r\n // z-index: 9999;\r\n // background-color:#ffffff;\r\n // display: flex;\r\n // flex-direction: column;\r\n // align-items: center;\r\n // justify-content: center;\r\n // }\r\n // `]\r\n})\r\n\r\nexport class LoadingComponent {\r\n constructor(public loadingService: LoadingService) { }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class LoadingService {\r\n loaderHidden: boolean = true;\r\n timerHandle;\r\n\r\n constructor() {}\r\n\r\n show() {\r\n if(this.timerHandle || !this.loaderHidden) {\r\n return;\r\n }\r\n\r\n this.timerHandle = setTimeout(() => {\r\n this.loaderHidden = false;\r\n }, 500);\r\n }\r\n\r\n hide() {\r\n if(this.timerHandle) {\r\n clearTimeout(this.timerHandle);\r\n this.timerHandle = undefined;\r\n }\r\n this.loaderHidden = true;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgForm, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\n\r\n//components\r\nimport { NotificationComponent } from '../notification/notification.component';\r\n\r\n//services\r\nimport { AuthService } from '../shared/auth.service';\r\nimport { BackendService } from '../shared/backend.service';\r\nimport { NotificationService } from '../notification/notification.service';\r\nimport { ResetFormService } from './reset-form.service';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n providers: [ResetFormService]\r\n})\r\n\r\nexport class LoginComponent implements OnInit {\r\n loginUser: FormGroup;\r\n submitted: Boolean = false;\r\n intendedRoute: string;\r\n\r\n loadingData: boolean = true;\r\n\r\n constructor(\r\n public _authService: AuthService,\r\n public _backendService: BackendService,\r\n public _router: Router,\r\n public _formBuilder: FormBuilder,\r\n public _notificationService: NotificationService,\r\n public _resetFormService: ResetFormService\r\n ) {\r\n this.setForm();\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n login(user) {\r\n //console.log(user);\r\n //allow us to check if user has submitted form- for validation display\r\n this.submitted = true;\r\n if (this.loginUser.valid) {\r\n this.loadingData = false;\r\n this._authService.login(user)\r\n .subscribe(response => {\r\n // console.log('login response:', response);\r\n if (response.result) {\r\n this._notificationService.showNotification({ type: 'success', message: response.msg });\r\n this._authService.loggedIn = true;\r\n\r\n if (user.rememberMe) {\r\n localStorage.setItem('CustomerID', response.custID);\r\n this._authService.CustomerID = localStorage.getItem('CustomerID');\r\n localStorage.setItem('token', response.access_token);\r\n this._authService.token = localStorage.getItem('token');\r\n } else {\r\n sessionStorage.setItem('CustomerID', response.custID);\r\n this._authService.CustomerID = sessionStorage.getItem('CustomerID');\r\n localStorage.setItem('token', response.access_token);\r\n sessionStorage.setItem('token', response.access_token);\r\n this._authService.token = sessionStorage.getItem('token');\r\n }\r\n\r\n //reset submission flag to false\r\n this.submitted = false;\r\n console.log(\"navigate\");\r\n if(response.requirePasswordChange == 1) {\r\n this._notificationService.showNotification({ type: 'warning', message: 'Please reset your password' });\r\n return this._router.navigate(['/reset-questions']);\r\n }\r\n else{\r\n this._notificationService.showNotification({ type: 'success', message: response.msg });\r\n this._router.navigate(['/dashboard']);\r\n }\r\n // this._notificationService.showNotification({ type: 'success', message: response.msg });\r\n // this.activateSubRoute(['/dashboard']);\r\n //redirect logged in user to the main dashboard\r\n \r\n } else {\r\n this.loginUser.controls['CustomerID'].setValue('');\r\n this.loginUser.controls['Password'].setValue('');\r\n this._notificationService.showNotification({ type: 'error', message: response['msg'] });\r\n this.loadingData = true;\r\n }\r\n },\r\n //server error\r\n (error) => {\r\n this._notificationService.showNotification({ type: 'error', message: 'Server Error' });\r\n this.loadingData = true;\r\n });\r\n } else {\r\n //validators (below) handle errors in form, no action necessary for now\r\n console.log('login form error');\r\n }\r\n }\r\n forgot(){\r\n console.log('anil');\r\n }\r\n\r\n activateSubRoute(rt) {\r\n console.log(rt);\r\n this._router.navigate(['/dashboard'], { preserveQueryParams: true });\r\n }\r\n\r\n setForm() {\r\n /*\r\n Used for initial creation of form validors.\r\n On submission, must be reset individually\r\n (see login function's 'bad password' branch above).\r\n */\r\n\r\n /*\r\n Each field needs a validator- if no validation necessary, leave 2nd parameter blank. \r\n If you need multiple validators, pass an array of validators as 2nd parameter \r\n Can also initialize form field to a value (first parameter to the Control method)\r\n */\r\n this.loginUser = this._formBuilder.group({\r\n 'CustomerID': ['', Validators.required],\r\n 'Password': ['', Validators.required],\r\n \r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgForm, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { ResetFormService } from './reset-form.service';\r\nimport { NotificationService } from '../notification/notification.service';\r\n\r\n@Component({\r\n templateUrl: './password-resend.component.html',\r\n styles: [`\r\n .field-bottom-right {\r\n position: absolute;\r\n bottom: 12px;\r\n right: 0;\r\n z-index: 99;\r\n }\r\n `],\r\n selector: 'forgot-password'\r\n})\r\n\r\nexport class PasswordResendComponent implements OnInit{\r\n result:any;\r\n msg : any;\r\n forgotPassword: FormGroup;\r\n submitted1: boolean = false;\r\n submitted2: boolean = false;\r\n resetResponse: any;\r\n\r\n constructor(\r\n public _router: Router,\r\n public _formBuilder: FormBuilder,\r\n public _resetFormService: ResetFormService,\r\n public _notificationService: NotificationService\r\n ) {\r\n this.setForm();\r\n }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n checkEmail(email: any) {\r\n console.log(email);\r\n this.submitted1 = true;\r\n if(this.forgotPassword.controls['Email'].valid) {\r\n this._resetFormService.submitEmail(email);\r\n }\r\n }\r\n\r\n //Get list of users by email- if user exists, send email (backend processed)\r\n sendResetEmail(submittedForm) {\r\n\r\n console.log(submittedForm); \r\n this.submitted2 = true;\r\n\r\n if (this.forgotPassword.valid) {\r\n this.submitted2 = false;\r\n this._resetFormService.submitAnswer(submittedForm)\r\n .subscribe(resetResponse => {\r\n if (resetResponse) {\r\n this._notificationService.showNotification({ message: resetResponse['msg'], type: 'success' });\r\n this._resetFormService.forgottenPasswordFormUpdate(false);\r\n this.forgotPassword.reset();\r\n this._router.navigate(['']);\r\n } else {\r\n this._notificationService.showNotification({ message: resetResponse['msg'], type: 'error' });\r\n this.forgotPassword.controls['Answer'].reset();\r\n this._router.navigate(['/login']);\r\n }\r\n },\r\n error => {\r\n console.log(error);\r\n this._notificationService.showNotification({ message: 'Server Error', type: 'error' });\r\n this._router.navigate(['/login']);\r\n });\r\n } else {\r\n //validators handle this\r\n console.log('Invalid form submission');\r\n }\r\n \r\n }\r\n\r\n setForm() {\r\n this.forgotPassword = this._formBuilder.group({\r\n 'Email': ['', Validators.required],\r\n 'Answer': ['', Validators.required]\r\n });\r\n }\r\n}\r\n","import CONFIG from '../../config';\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { BackendService } from '../shared/backend.service';\r\nimport { NotificationService } from '../notification/notification.service';\r\n\r\n@Injectable()\r\nexport class ResetFormService {\r\n forgotPasswordShow: boolean = false;\r\n validEmail: boolean = false;\r\n emailPending: boolean = false;\r\n validAnswer: boolean = false;\r\n pwd_reset_q1: string = '';\r\n pwd_reset_q2: string = '';\r\n questions: string[] = [];\r\n selectedQuestion: number = 0; //index of questions array of selected question\r\n\r\n constructor(public _backendService: BackendService, public _notificationService: NotificationService) {}\r\n\r\n forgottenPasswordFormUpdate(status: boolean, $event?: any) {\r\n if($event) { $event.preventDefault(); };\r\n this.validEmail = false;\r\n this.validAnswer = false;\r\n this.forgotPasswordShow = status;\r\n }\r\n\r\n switchQuestion() {\r\n this.selectedQuestion = this.selectedQuestion === 0 ? 1 : 0;\r\n }\r\n\r\n submitEmail(email: string) {\r\n this.emailPending = true;\r\n this._backendService.postData(email, `${CONFIG.sendemailApiUrlBase}/checkcustomer`)\r\n .subscribe(response => {\r\n console.log(response);\r\n this.emailPending = false;\r\n if(response['result']) {\r\n //if user hasn't set reset questions yet, don't allow\r\n if(!response || !response) {\r\n this._notificationService.showNotification({ \r\n message: 'No password reset questions are on file for your login - Please contact your site administrator to reset your password.', \r\n type: 'error' \r\n });\r\n this.forgotPasswordShow = false;\r\n return;\r\n }\r\n this.questions.push( response['pwd_reset_q1'],response['pwd_reset_q2']);\r\n this.validEmail = true;\r\n } else {\r\n this._notificationService.showNotification({ message: 'Invalid CustomerID', type: 'error' });\r\n this.validEmail = false;\r\n }\r\n });\r\n }\r\n\r\n submitAnswer(answerObj: Object) {\r\n //add the text of the selected question to the object sent to the server\r\n answerObj['Question'] = this.questions[this.selectedQuestion];\r\n\r\n return this._backendService.postData(answerObj, `${CONFIG.sendemailApiUrlBase}/email`)\r\n .map(response => {\r\n return response;\r\n })\r\n // .catch(this.handleError)\r\n // .finally(() => {\r\n // this._loadingService.hide();\r\n // });\r\n }\r\n\r\n disableUser(email: string) {\r\n this._backendService.postData(email, `${CONFIG.usersApiUrlBase}/disableuser`)\r\n .subscribe(response => {\r\n this._notificationService.showNotification({ message: response['msg'], type: 'success' });\r\n }, error => {\r\n this._notificationService.showNotification({ message: error.msg, type: 'error' });\r\n });\r\n }\r\n}","import CONFIG from '../../config';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { NgForm, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material';\r\nimport { BackendService } from '../shared/backend.service';\r\nimport { AuthService } from '../shared/auth.service';\r\nimport { NotificationService } from '../notification/notification.service';\r\nimport { Utilities } from '../shared/utilities.service';\r\nimport { ConfirmModifyComponent } from '../profile/confirmmodify/confirmmodify.component';\r\nimport { AlertmessageService } from 'app/shared/alertmessage.service';\r\n\r\nexport interface SecurityQuestion {\r\n value: number;\r\n viewValue: string;\r\n }\r\n\r\n@Component({\r\n selector: 'reset-questions',\r\n templateUrl: './reset-questions.template.html'\r\n})\r\nexport class ResetQuestionsComponent extends Utilities implements OnInit {\r\n result:any;\r\n msg : any;\r\n id: string;\r\n updatedProfile: FormGroup;\r\n Password: FormControl;\r\n \r\n\r\n passwordStrength: number = 0;\r\n updatingPassword: boolean = false;\r\n passwordConfirmed: boolean = true;\r\n submitted: boolean = false;\r\n\r\n availableResetQuestions: any;\r\n selected_Q1: string = '';\r\n selected_Q2: string = '';\r\n securityquestions: SecurityQuestion[] = [\r\n {value: 1, viewValue: \"What was your childhood nickname?\"},\r\n {value: 2, viewValue: \"What is the name of your favorite childhood friend?\"},\r\n {value: 3, viewValue: \"What was your dream job as a child?\"},\r\n {value: 4, viewValue: \"Where is your favorite place to travel?\"},\r\n {value: 5, viewValue: \"What primary school did you attend?\"},\r\n {value: 6, viewValue: \"In what village was your first full time job?\"},\r\n {value: 7, viewValue: \"Where did you meet your spouse/partner?\"},\r\n {value: 8, viewValue: \"What is the middle name of your oldest child?\"},\r\n {value: 9, viewValue: \"What are the last four digits of your driver's license number?\"},\r\n {value: 10, viewValue: \"What is the name of your favorite childhood friend?\"},\r\n {value: 11, viewValue: \"What is your maternal grandmother's maiden name?\"}\r\n ];\r\n\r\n constructor(\r\n public _formBuilder: FormBuilder,\r\n public _router: Router,\r\n public location: Location,\r\n public notificationService: NotificationService,\r\n public authService: AuthService,\r\n public backendService: BackendService,\r\n public dialog: MatDialog,\r\n public alert:AlertmessageService,\r\n ) {\r\n super(location, notificationService, authService, backendService);\r\n this.setForm();\r\n \r\n }\r\n \r\n ngOnInit() { \r\n this.getMyProfile();\r\n //this.getPasswordResetQuestions();\r\n }\r\n updateProfiledata2(updatedProfile) {\r\n const myThis = this;\r\n this.openDialog(updatedProfile);\r\n }\r\nopenDialog(updatedProfile: any): void {\r\n //localStorage.setItem('key', key);\r\n let dialogRef = this.dialog.open(ConfirmModifyComponent, {\r\n width: '50%',\r\n height: '30%',\r\n data: { updatedProfile }\r\n });\r\n this._router.navigate(['/dashboard']);\r\n dialogRef.afterClosed().subscribe(result => {\r\n //this.GetExchangeData();\r\n //this.serviceInit();\r\n });\r\n }\r\n updateProfile(updatedProfile) {\r\n if(updatedProfile.ModifyPassword == ''){\r\n this.notificationService.showNotification({ message: 'Please Update Password', type: 'warning' });\r\n }\r\n console.log(updatedProfile.PwdResetQuestion1 ,updatedProfile.PwdResetQuestion2);\r\n if(updatedProfile.PwdResetQuestion1 == updatedProfile.PwdResetQuestion2){\r\n this.notificationService.showNotification({ message: 'Please Select Two different questions', type: 'warning' });\r\n }\r\n else{\r\n console.log(updatedProfile , this.passwordConfirmed);\r\n this.submitted = true;\r\n console.log(this.updatedProfile.valid , this.passwordConfirmed);\r\n if (this.updatedProfile.valid && this.passwordConfirmed) {\r\n this.backendService.postData(updatedProfile, `${CONFIG.profileApiUrlBase}/${this.authService.CustomerID}`)\r\n .subscribe(\r\n response => {\r\n this.submitted = false;\r\n if(!response['result'])\r\n {\r\n console.log(\"test alert\");\r\n this.alert.openConfirmationDialog(response['msg'],response['result']);\r\n this._router.navigate(['/profile']);\r\n }\r\n else\r\n {\r\n this.updateProfiledata2(updatedProfile);\r\n // this.openDialog(updatedProfile);\r\n // this.notificationService.showNotification({ message: response['msg'], type: 'success' });\r\n // this.authService.logout();\r\n } \r\n },\r\n error => {\r\n this.serverErrorOrTimeout(error);\r\n });\r\n } else {\r\n //validators handle this case\r\n console.log('error with form');\r\n }}\r\n }\r\n\r\n getMyProfile() {\r\n \r\n this.backendService.getData(`${CONFIG.profileApiUrlBase}/${this.authService.CustomerID}`)\r\n .subscribe(response => {\r\n console.log(\"getMyProfile method\");\r\n if(!response) {\r\n this.notificationService.showNotification({ timer: 5000, message: response['msg'], type: 'error', closeable: false });\r\n }\r\n\r\n //set the id - we use this to identify the profile when updating below instead of the \r\n //email because the email can be changed- this cannot\r\n //this.id = profileData.id;\r\n \r\n this.updatedProfile.controls['ModifyPassword'].valueChanges\r\n .debounceTime(200)\r\n .subscribe((value) => {\r\n this.passwordConfirmed = value === '';\r\n this.updatingPassword = value !== '';\r\n });\r\n\r\n this.updatedProfile.controls['ConfirmPassword'].valueChanges\r\n .subscribe((value) => {\r\n this.passwordConfirmed = this.updatedProfile.controls['ModifyPassword'].value === value;\r\n });\r\n },\r\n error => {\r\n this.serverErrorOrTimeout(error);\r\n });\r\n }\r\n // getPasswordResetQuestions() {\r\n // this.backendService.getData(CONFIG.getsecurityquestionsApiUrlBase)\r\n // .subscribe(questions => {\r\n // this.availableResetQuestions = questions;\r\n // }, error => {\r\n // this.serverErrorOrTimeout(error);\r\n // });\r\n // }\r\n \r\n // setSecurityQuestions(newInfo) {\r\n // this.submitted = true;\r\n \r\n // if(this.updatedProfile.valid) {\r\n // this.backendService.putData(newInfo, `${CONFIG.profileApiUrlBase}/updateprofilesecurityquestions`)\r\n // .subscribe(response => {\r\n // if(response) {\r\n // //finish login process\r\n // this.submitted = false;\r\n // this.authService.loggedIn = true;\r\n \r\n // //remove the 'partiallogin' session variable that prevented further nav on reload\r\n // sessionStorage.removeItem('partial_login');\r\n \r\n // //hide form\r\n // // this._loginService.resetQuestionsSet = true;\r\n \r\n // this.notificationService.showNotification({ message: response['msg'], type: 'success' });\r\n // this._router.navigate(['/main']);\r\n // } else {\r\n // this.notificationService.showNotification({ message: response['msg'], type: 'error' });\r\n // }\r\n \r\n // }, error => {\r\n // this.serverErrorOrTimeout(error);\r\n // });\r\n // } else {\r\n // //validators should handle this branch\r\n // }\r\n // }\r\n \r\n cancel() {\r\n // this._loginService.resetQuestionsSet = true;\r\n this.authService.logout();\r\n }\r\n \r\n \r\n setForm() {\r\n this.updatedProfile = this._formBuilder.group({\r\n 'Password': ['', Validators.minLength(3)],\r\n 'ModifyPassword': ['', Validators.pattern('^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,12}$')],\r\n 'ConfirmPassword': ['', Validators.required],\r\n 'PwdResetQuestion1': ['', Validators.required],\r\n 'PwdResetQuestion2': ['', Validators.required],\r\n 'PwdResetAnswer1': ['', Validators.required],\r\n 'PwdResetAnswer2': ['', Validators.required]\r\n });\r\n }\r\n}\r\n","export default \".center {\\n height: 70%;\\n width: 100%;\\n display: -webkit-box;\\n display: flex;\\n position: fixed;\\n -webkit-box-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n justify-content: center;\\n}\\n\\n.text {\\n color: #dd0094;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWVudS9kb2N1bWVudHMvRTpcXFNWTlxcQXJiaXRyYWxcXEZyb250ZW5kL3NyY1xcYXBwXFxtZW51XFxkb2N1bWVudHNcXGRvY3VtZW50cy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWVudS9kb2N1bWVudHMvZG9jdW1lbnRzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksV0FBQTtFQUNBLFdBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxlQUFBO0VBQ0EseUJBQUE7VUFBQSxtQkFBQTtFQUNBLHdCQUFBO1VBQUEsdUJBQUE7QUNDSjs7QURDQTtFQUNJLGNBQUE7QUNFSiIsImZpbGUiOiJzcmMvYXBwL21lbnUvZG9jdW1lbnRzL2RvY3VtZW50cy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jZW50ZXJ7XHJcbiAgICBoZWlnaHQ6IDcwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG4udGV4dHtcclxuICAgIGNvbG9yIDogI2RkMDA5NFxyXG5cclxufSIsIi5jZW50ZXIge1xuICBoZWlnaHQ6IDcwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi50ZXh0IHtcbiAgY29sb3I6ICNkZDAwOTQ7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\nimport CONFIG from '../../../config';\n//import * as json2csv from 'json2csv';\nimport { Router } from '@angular/router';\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\nimport { Location, DecimalPipe, CurrencyPipe } from '@angular/common';\nimport { Http, Response, Headers, RequestOptions } from '@angular/http';\nimport { saveAs as importedSaveAs } from 'file-saver';\nimport { Subscription } from 'rxjs/Subscription';\n//import { Console } from '@angular/core/src/console';\nimport { MultiColumnGridService } from '../../shared/multi-column-grid.service';\nimport { AccountService } from '../../shared/account.service';\nimport { AuthService } from '../../shared/auth.service';\nimport { BackendService } from '../../shared/backend.service';\nimport { FilterService } from '../../shared/filter.service';\nimport { NotificationService } from '../../notification/notification.service';\nimport { OrderByService } from '../../shared/orderby.service';\nimport { PaginationService } from '../../shared/pagination.service';\nimport { SearchService } from '../../shared/search.service';\n@Component({\n selector: 'app-documents',\n templateUrl: './documents.component.html',\n styleUrls: ['./documents.component.scss'],\n providers: [PaginationService]\n})\nexport class DocumentsComponent extends MultiColumnGridService implements OnInit {\n currentSettlementAccountSubscription: Subscription;\n currentSAccount;\n loadingStatusSubscription: Subscription;\n apiUrl: string = '';\n fields: string[] = [];\n fieldNames: string[] = [];\n defaultSortOrder: string = '';\n currentSortOrder: string = '';\n documents: any;\n // filteredDocuments: Object[] = [];\n filteredDocuments: any;\n fileslist: Object[] = [];\n totalEntries: number = 0;\n noEntrys: boolean = false;\n entryRange: Array;\n entryRangeSubscription: Subscription;\n exportTitle: string = 'Exported-Data';\n active: string = '';\n files: any[];\n count: number = 0;\n title: any;\n fileExt: any;\n DocID: any;\n OriginalData: any;\n\n\n constructor(\n public location: Location,\n public backendService: BackendService,\n public authService: AuthService,\n public accountService: AccountService,\n public notificationService: NotificationService,\n public formBuilder: FormBuilder,\n public searchService: SearchService,\n public orderByService: OrderByService,\n public router: Router,\n public paginationService: PaginationService,\n public filterService: FilterService,\n public numberPipe: DecimalPipe,\n public currencyPipe: CurrencyPipe\n ) {\n super(location, backendService, authService, notificationService, formBuilder,\n searchService, orderByService, router, paginationService, currencyPipe, filterService);\n\n }\n\n ngOnInit() {\n\n this.currentSettlementAccountSubscription = this.accountService.currentSettlementAccountChange$.subscribe(currentSettlementAccount => this.currentSettlementAccountChange(currentSettlementAccount));\n this.currentSAccount = this.accountService.currentSettlementAccount;\nthis.defaultSortOrder = 'documentDate';\n this.loadingStatusSubscription = this.loadingDataChange$.subscribe(loadingDataStatus => this.initFilterForSA(loadingDataStatus));\n this.apiUrl = CONFIG.documentsApiUrlBase;\n this.fields = ['documentDate', 'documentType', 'fileExt'];\n this.fieldNames = ['Date', 'Documents', 'FileType'];\n this.defaultSortOrder = 'documentDate';\n this.getDocuments();\n }\n initFilterForSA(loadingDataStatus) {\n this.filterForSA();\n }\n filterForSA() {\n console.log(this.currentSAccount);\n console.log(this.filteredDocuments);\n if (this.currentSAccount == 'Select account') {\n this.filteredDocuments = this.OriginalData;\n this.audit = this.filteredDocuments;\n this.loadingData = true;\n this.orderByAscend(this.defaultSortOrder, this.audit.length);\n } else {\n this.filteredDocuments = this.OriginalData.filter(x => x.docRef == this.currentSAccount);\n this.audit = this.filteredDocuments;\n this.totalEntries = this.filteredDocuments.length;\n \n console.log(this.currentSortOrder, this.audit.length);\n this.orderByAscend(this.defaultSortOrder, this.audit.length);\n \n this.loadingData = true;\n }\n }\n currentSettlementAccountChange(value) {\n\n this.currentSAccount = value;\n // this.accountNo.setValue(value);\n\n this.filterForSA();\n }\n getDocuments() {\n this.backendService.getData(`${this.apiUrl}/${this.authService.CustomerID}`)\n .subscribe(response => {\n this.documents = response[\"documents\"];\n this.OriginalData = response[\"documents\"];\n console.log(this.currentSAccount);\n \n if (this.currentSAccount == 'Select account' || this.currentSAccount == '') {\n this.filteredDocuments = this.OriginalData;\n this.originalItems = this.filteredDocuments;\n console.log(this.filteredDocuments);\n this.loadingData = true;\n }\n else {\n this.filteredDocuments = this.OriginalData.filter(x => x.docRef == this.currentSAccount);\n this.originalItems = this.filteredDocuments;\n this.loadingData = true;\n }\n this.audit = this.originalItems;\n console.log(this.documents);\n // this.filteredDocuments = this.documents;\n this.totalEntries = this.filteredDocuments.length;\n if (this.filteredDocuments.length === 0) {\n this.noEntrys = true;\n }\n this.setGrid(1, this.audit.length, \"\");\n this.paginationSubscription();\n },\n error => {\n // this.serverErrorOrTimeout(error);\n });\n console.log(this.filteredDocuments);\n }\n\n paginationSubscription() {\n console.log('pagination');\n console.log('pagination'+ this.filteredDocuments.length);\n \n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n console.log(this.entryRange[0])\n this.audit = this.filteredDocuments.slice(this.entryRange[0], this.entryRange[1]);\n this.totalEntries = this.filteredDocuments.length;\n });\n }\n orderBy(param, length?: number) {\n console.log('testoderbyservice');\n if (param !== '') {\n\n this.currentSortOrder = param;\n } else {\n param = this.defaultSortOrder;\n };\n console.log(this.currentSortOrder);\n let itemsToOrder = this.filteredDocuments;\n let sortingByCurrentShares = false;\n const altParam = param === this.defaultSortOrder ? undefined : this.defaultSortOrder;\n this.filteredDocuments = this.orderByService.orderByParam(param, itemsToOrder, altParam);\n if (length) {\n var itemsLength: number = length;\n console.log('length')\n } else {\n var itemsLength: number = itemsToOrder.length;\n }\n\n this.setGrid(1, itemsLength);\n\n }\n orderByAscend(param, length?: number) {\n console.log('testoderbyservice');\n if (param !== '') {\n\n this.currentSortOrder = param;\n } else {\n param = this.defaultSortOrder;\n };\n console.log(this.currentSortOrder);\n let itemsToOrder = this.filteredDocuments;\n let sortingByCurrentShares = false;\n const altParam = param === this.defaultSortOrder ? undefined : this.defaultSortOrder;\n this.filteredDocuments = this.orderByService.orderByParamDescending(param, itemsToOrder, altParam);\n if (length) {\n var itemsLength: number = length;\n console.log('length')\n } else {\n var itemsLength: number = itemsToOrder.length;\n }\n\n this.setGrid(1, itemsLength);\n\n }\n\n // const req = new HttpRequest('GET', '/download/file', {\n // reportProgress: true,\n // });\n\n // http.request(req).subscribe(event => {\n // // Via this API, you get access to the raw event stream.\n // // Look for download progress events.\n // if (event.type === HttpEventType.DownloadProgress) {\n // // This is an download progress event. Compute and show the % done:\n // const percentDone = Math.round(100 * event.loaded / event.total);\n // console.log(`File is ${percentDone}% downloaded.`);\n // } else if (event instanceof HttpResponse) {\n // console.log('File is completely downloaded!');\n // }\n // });\n\n exportData(submittedData?: Object[]) {\n //generate csv data- some more complicated components will pass custom data (Users, for one)\n //others using this grid will use originalItems\n const data = submittedData || this.filteredDocuments;\n const csvData = { data };\n\n //if field to include and custom titles passed, include those\n if (this.fields.length > 0) { csvData['fields'] = this.fields; }\n if (this.fieldNames.length > 0) { csvData['fieldNames'] = this.fieldNames; }\n\n //add the proper headers\n\n // const csv = 'data:text/csv;charset=utf-8,' + json2csv(csvData);\n\n //create the link to click and automatically click it (must be a better way?)\n const link = document.createElement('a');\n // link.setAttribute('href', encodeURI(csv));\n link.setAttribute('download', `${this.exportTitle}.csv`);\n document.body.appendChild(link); // Link must be in DOM for Firefox\n link.click();\n document.body.removeChild(link);\n }\n exportFile(item) {\n this.DocID = item.docID;\n\n this.backendService.downloadFile(this.DocID, item.docRef2).subscribe(blob => {\n\n importedSaveAs(blob, item.docRef2);\n })\n }\n\n //makes table rows expandable in mobile screensize\n makeActive(item) {\n this.active = this.active === item ? '' : item;\n }\n\n}\n","export default \".fl-rt {\\n float: right;\\n}\\n\\n.cancel {\\n cursor: pointer;\\n font-size: 1.2rem;\\n opacity: 0.75;\\n -webkit-transition: opacity 0.3s ease;\\n transition: opacity 0.3s ease;\\n}\\n\\n.cancel:hover {\\n opacity: 1;\\n}\\n\\n.mat-spinners {\\n position: fixed;\\n z-index: 999;\\n height: 2em;\\n width: 2em;\\n overflow: show;\\n margin: auto;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n right: 0;\\n}\\n\\n.mat-form-field-flexoverview {\\n padding: 0 0.75em 0 0.75em;\\n margin-top: 1.75em;\\n position: relative;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWVudS9vdmVydmlldy9FOlxcU1ZOXFxBcmJpdHJhbFxcRnJvbnRlbmQvc3JjXFxhcHBcXG1lbnVcXG92ZXJ2aWV3XFxvdmVydmlldy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWVudS9vdmVydmlldy9vdmVydmlldy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNZLFlBQUE7QUNDWjs7QURDQTtFQUNZLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGFBQUE7RUFDQSxxQ0FBQTtFQUFBLDZCQUFBO0FDRVo7O0FEQUE7RUFDWSxVQUFBO0FDR1o7O0FEQUE7RUFDSSxlQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0EsY0FBQTtFQUNBLFlBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFNBQUE7RUFDQSxRQUFBO0FDR0o7O0FEQUE7RUFDSSwwQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7QUNHSiIsImZpbGUiOiJzcmMvYXBwL21lbnUvb3ZlcnZpZXcvb3ZlcnZpZXcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZmwtcnQge1xyXG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgfVxyXG4uY2FuY2VsIHtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC43NTtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XHJcbiAgICAgICAgfVxyXG4uY2FuY2VsOmhvdmVyIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB9XHJcbiAgICBcclxuLm1hdC1zcGlubmVycyB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiA5OTk7XHJcbiAgICBoZWlnaHQ6IDJlbTtcclxuICAgIHdpZHRoOiAyZW07XHJcbiAgICBvdmVyZmxvdzogc2hvdztcclxuICAgIG1hcmdpbjogYXV0bztcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICByaWdodDogMDtcclxufVxyXG5cclxuLm1hdC1mb3JtLWZpZWxkLWZsZXhvdmVydmlldyB7XHJcbiAgICBwYWRkaW5nOiAwIC43NWVtIDAgLjc1ZW07XHJcbiAgICBtYXJnaW4tdG9wOiAxLjc1ZW07XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn0iLCIuZmwtcnQge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5jYW5jZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBvcGFjaXR5OiAwLjc1O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbn1cblxuLmNhbmNlbDpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5tYXQtc3Bpbm5lcnMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTtcbiAgaGVpZ2h0OiAyZW07XG4gIHdpZHRoOiAyZW07XG4gIG92ZXJmbG93OiBzaG93O1xuICBtYXJnaW46IGF1dG87XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWZsZXhvdmVydmlldyB7XG4gIHBhZGRpbmc6IDAgMC43NWVtIDAgMC43NWVtO1xuICBtYXJnaW4tdG9wOiAxLjc1ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn0iXX0= */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { GoogleChart } from '../../shared/angular2-google-chart.directive';\nimport { DataSource } from '@angular/cdk/table'\nimport { MatTableModule } from '@angular/material';\nimport { BackendService } from '../../shared/backend.service';\nimport CONFIG from '../../../config';\nimport { AuthService } from '../../shared/auth.service';\nimport { MultiColumnGridService } from '../../shared/multi-column-grid.service';\nimport { AccountService } from '../../shared/account.service';\nimport { Subscription } from 'rxjs/Subscription';\nimport { FilterService } from '../../shared/filter.service';\nimport { NotificationService } from '../../notification/notification.service';\nimport { OrderByService } from '../../shared/orderby.service';\nimport { PaginationService } from '../../shared/pagination.service';\nimport { SearchService } from '../../shared/search.service';\nimport { Utilities } from '../../shared/utilities.service';\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\nimport { resolve } from 'path';\nimport { Angular5Csv } from 'angular5-csv/dist/Angular5-csv';\nimport { Router } from '@angular/router';\nimport { Location, DecimalPipe, CurrencyPipe } from '@angular/common';\n\n@Component({\n selector: 'app-overview',\n templateUrl: './overview.component.html',\n styleUrls: ['./overview.component.scss']\n})\n\nexport class OverviewComponent extends MultiColumnGridService implements OnInit {\n\n active: string = '';\n currentSettlementAccountSubscription: Subscription;\n currentSAccount;\n loadingStatusSubscription: Subscription;\n areas: any[];\n areas1: any[];\n negAreas: any[];\n negAreas1: any[];\n pageload: any;\n account: any;\n currency: any;\n accounttotal: any;\n currencytotal: any;\n sectypeaccounttotal: any;\n currencytypetotal: any;\n account1: any;\n currency1: any;\n exchangeRate: any;\n google: any;\n count: number = 0;\n negCount: number = 0;\n portfolio: number = 0;\n portfoliototal: number = 0;\n totalamountleft: number = 0;\n totalamounttemp: number = 0;\n totalamounttemppiechart: number = 0;\n totalamountleftpiechart: number = 0;\n totalamountright: number = 0;\n totalamountrightpiechart: number = 0;\n totalcash: number = 0;\n count1: number = 0;\n negCount1: number = 0;\n test: any;\n accounts: any;\n accounttotalEntries: any;\n originalItemstemp: Object[] = [];\n originalItemsCuurencyAccount: Object[] = [];\n sectypelist: any;\n currtypelist: any;\n onlysecforcash: any;\n onlycurforcash: any;\n onlycurforcashadvanced: any;\n onlycurforFX: any;\n onlysecforcashtemp: any;\n onlycurforcashtemp: any;\n onlysecforcashtempexchangerate: any;\n reportinglist: any;\n filterforacocunt: any;\n totalforchartspercentageformate: number = 0;\n colors: any[] = ['#0038c3', '#906cf7', '#3f9697', '#1d69f6', '#62c9ca', '#58c89d', '#c06a26', '#64c74d', '#656795', '#ed4b96', '#ed4a97', '#80807f', '#347f7f', '#296419', '#3b66c6', '#bc271a', '#ee5e58', '#90fa5b', '#bb2fc4', '#bc2fc5', '#c69a33', '#42962a', '#fffd55', '#5d1262', '#61360f', '#cccdfb', '#cccdfc', '#7ccafa', '#5c1fc3', '#8d1c35', '#5f5e5f', '#a3c93e', '#62c9cb', '#fffea5', '#b0fca4', '#f2a0fa', '#f39d6f'];\n negColors: any[] = ['#5c1fc3', '#8d1c35', '#5f5e5f', '#a3c93e', '#62c9cb', '#fffea5', '#b0fca4', '#f2a0fa', '#f39d6f', '#b8b8b8', '#aeaeae', '#a4a4a4', '#9a9a9a', '#9a9a9a', '#8a8a8a', '#7b7b7b', '#6b6b6b'];\n // negColors: any[] = ['#eaeaea', '#e0e0e0', '#d6d6d6', '#cccccc', '#c2c2c2', '#b8b8b8', '#aeaeae', '#a4a4a4', '#9a9a9a', '#9a9a9a', '#8a8a8a', '#7b7b7b', '#6b6b6b'];\n // negColors: any[] = ['#4ec2f7', '#35baf6', '#1cb1f5', '#03a9f4', '#0298db', '#0287c3', '#0276aa', '#4ec2f7', '#35baf6', '#1cb1f5', '#03a9f4', '#0298db', '#0287c3', '#0276aa',\n // '#4ec2f7', '#35baf6', '#1cb1f5', '#03a9f4', '#0298db', '#0287c3', '#0276aa', '#4ec2f7', '#35baf6', '#1cb1f5', '#03a9f4', '#0298db', '#0287c3', '#0276aa'];\n public pie_ChartOptions = {\n title: 'Asset Allocation Analysis',\n width: 600,\n height: 600,\n colors: [],\n is3D: true,\n pieSliceText: 'none',\n // pieSliceText: 'value',\n // legend: 'lable',\n\n tooltip: {\n color: '#840058',\n text: 'value',\n },\n // pieSliceTextStyle:\n // {\n // color: \"black\",\n // fontSize: 15\n\n\n // },\n // pieSliceText: 'value',\n legend: {\n //width:300\n // position: 'labeled',\n // labeledValueText: 'both',\n // textStyle: {\n // color: 'blue',\n // fontSize: 14\n // }\n }\n };\n public pie_ChartOptions1 = {\n // isStacked: 'percent',\n title: 'Asset Allocation Analysis',\n width: 600,\n height: 600,\n colors: [],\n is3D: true,\n pieSliceText: 'none',\n // pieSliceText: 'value',\n legend: 'lable',\n\n tooltip: {\n color: '#840058',\n text: 'value',\n },\n\n // pieSliceTextStyle: {\n // color: \"black\",\n // fontSize: 15\n\n\n // }\n\n\n\n };\n\n constructor(\n public location: Location,\n public backendService: BackendService,\n public authService: AuthService,\n public accountService: AccountService,\n public notificationService: NotificationService,\n public formBuilder: FormBuilder,\n public searchService: SearchService,\n public orderByService: OrderByService,\n public router: Router,\n public paginationService: PaginationService,\n public filterService: FilterService,\n public numberPipe: DecimalPipe,\n public currencyPipe: CurrencyPipe\n ) {\n super(location, backendService, authService, notificationService, formBuilder,\n searchService, orderByService, router, paginationService, currencyPipe, filterService);\n }\n ngOnInit() {\n this.getAccountsDropdowns();\n\n this.pageload = true;\n this.accountsArray = ['accountNumber'];\n this.currentSettlementAccountSubscription = this.accountService.currentSettlementAccountChange$.subscribe(currentSettlementAccount => this.currentSettlementAccountChange(currentSettlementAccount));\n console.log(this.currentSettlementAccountSubscription);\n this.currentSAccount = this.accountService.currentSettlementAccount;\n console.log(this.currentSAccount);\n this.loadingStatusSubscription = this.loadingDataChange$.subscribe(loadingDataStatus => this.initFilterForSA(loadingDataStatus));\n this.getAccountsData();\n this.getCurrencyDropdowns();\n // this.filterForSA(this.currentSAccount);\n this.FilterByStatus = this.formBuilder.group({\n\n '_currency': []\n });\n }\n // ngDoCheck(){\n // this.filterForSA(this.currentSAccount);\n // }\n getCurrencyDropdowns() {\n this.backendService.getData(CONFIG.getWEBCurrencyDropdowns)\n\n .subscribe(data => {\n\n this.reportinglist = data;\n\n });\n }\n currentSettlementAccountChange(value) {\n this.currentSAccount = value;\n this.filterForSA(this.currentSAccount);\n }\n initFilterForSA(loadingDataStatus) {\n this.filterForSA(this.currentSAccount);\n }\n\n filterForSA(value) {\n let stringToSplit = value;\n let x = stringToSplit.split(\" \");\n let value1 = x[0];\n console.log(value1, this.FilterByStatus.controls['_currency'].value);\n if (value == 'Select account' || value == \"\") {\n this.GetFilterdataforAccountsAndCurrency(value, this.FilterByStatus.controls['_currency'].value);\n } else {\n this.GetFilterdataforAccountsAndCurrency(value1, this.FilterByStatus.controls['_currency'].value);\n }\n // this.GetFilterdataforAccountsAndCurrency(value, this.FilterByStatus.controls['_currency'].value);\n\n\n }\n\n GetFilterdataforAccountsAndCurrency(account, filtercurrency) {\n console.log(\"test for page load\");\n console.log(account, filtercurrency);\n this.originalItems = this.originalItemsCuurencyAccount;\n this.totalEntries = this.originalItems.length;\n this.loadingData = true;\n\n if (account == 'Select account' || account == \"\") {\n let anilusd = 0.0;\n let anilbrl = 0.0;\n let anilusdoriginal = 0.0;\n let anilbrloriginall = 0.0;\n for (let prop in this.originalItems) {\n let currencyfrom = this.originalItems[prop]['currency'];\n\n let currencyto = filtercurrency;\n console.log(this.originalItems[prop]['earningType']);\n\n let valueexchange = this.exchangerate.filter(x => x.currencyFrom == this.originalItems[prop]['currency'] && x.currencyTo == filtercurrency);\n if (this.originalItems[prop]['earningType'] == 'Interest') {\n\n let valueaccured = this.accuredintrest.filter(x => x.transactionumber == this.originalItems[prop]['transactionNumber']);\n\n if (valueaccured != null && valueaccured.length != 0) {\n\n this.originalItems[prop]['accruedInterestccy'] = valueaccured[0].accruedInterest;\n this.originalItems[prop]['accruedInterest'] = valueaccured[0].accruedInterest * valueexchange[0].exchageRate;\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] * valueexchange[0].exchageRate;\n\n }\n }\n else {\n this.originalItems[prop]['accruedInterestccy'] = 0.0;\n this.originalItems[prop]['accruedInterest'] = 0.0;\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] * valueexchange[0].exchageRate;\n\n }\n\n\n }\n console.log(anilusd, anilusdoriginal);\n console.log(anilbrl, anilbrloriginall);\n\n if (filtercurrency == 'USD') {\n console.log(this.originalItems);\n }\n this.sectypeaccounttotal = this.originalItems;\n var secvalues = [];\n let totalcash = 0;\n let totalcashadvanced = 0;\n\n for (let prop in this.onlysecforcash) {\n\n totalcash = totalcash + this.onlysecforcash[prop].amount;\n\n\n }\n let valueexchangetemp = this.exchangerate.filter(x => x.currencyFrom == this.repocurrency && x.currencyTo == filtercurrency);\n this.onlysecforcashtempexchangerate = valueexchangetemp[0].exchageRate;\n this.totalamounttemp = 0;\n //cash pushing\n secvalues.push({ 'securityType': this.onlysecforcash[0].securityType, 'cash': totalcash * this.onlysecforcashtempexchangerate })\n for (let prop in this.sectypelist) {\n\n var secdata = this.sectypeaccounttotal.filter(x => x.securityCategoryforfactor == this.sectypelist[prop]);\n this.totalamounttemp = 0;\n for (var j = 0; j < secdata.length; j++) {\n this.totalamounttemp = this.totalamounttemp + secdata[j].marketValue + secdata[j].accruedInterest;\n\n }\n secvalues.push({ 'securityType': this.sectypelist[prop], 'cash': this.totalamounttemp });\n }\n\n this.account = secvalues;\n\n var currencyvalues = [];\n for (let prop in this.currtypelist) {\n\n let valueexchange = this.exchangerate.filter(x => x.currencyFrom == this.currtypelist[prop] && x.currencyTo == filtercurrency);\n // console.log(valueexchange);\n\n var curdata = this.sectypeaccounttotal.filter(x => x.currency == this.currtypelist[prop]);\n this.totalamounttemp = 0;\n for (var j = 0; j < curdata.length; j++) {\n\n this.totalamounttemp = this.totalamounttemp + curdata[j].marketValueccy + curdata[j].accruedInterestccy;\n }\n // console.log(this.totalamounttemp);\n var curcash = this.onlycurforcash.filter(x => x.securityType == this.currtypelist[prop]);\n // console.log(curcash);\n totalcash = 0;\n totalcashadvanced = 0;\n var curcashadvanced = this.onlycurforcashadvanced.filter(x => x.securityType == this.currtypelist[prop]);\n for (let prop in curcashadvanced) {\n // console.log(prop);\n\n totalcashadvanced = totalcashadvanced + curcashadvanced[prop].amount;\n }\n for (let prop in curcash) {\n\n /// console.log(prop);\n\n totalcash = totalcash + curcash[prop].amount;\n }\n // console.log(curcash,curcash.length)\n if (curcash.length == 0) {\n // console.log(this.totalamounttemp,this.currtypelist[prop],totalcash);\n currencyvalues.push({ 'securityType': this.currtypelist[prop], 'cash': this.totalamounttemp, 'earningtype': valueexchange[0].exchageRate, 'amount': 0.0, 'advancedamount': totalcashadvanced + totalcash });\n\n }\n else {\n // console.log(this.totalamounttemp,this.currtypelist[prop],totalcash);\n currencyvalues.push({ 'securityType': this.currtypelist[prop], 'cash': this.totalamounttemp + totalcash, 'earningtype': valueexchange[0].exchageRate, 'amount': totalcash, 'advancedamount': totalcashadvanced + totalcash });\n\n }\n }\n\n this.currency = currencyvalues;\n this.testinganil();\n\n }\n else {\n\n\n this.filterforacocunt = this.originalItems;\n this.originalItems = this.filterforacocunt.filter(x => x.accountNumber == account.trim());\n\n // this.totalEntries = this.originalItems.length;\n this.loadingData = true;\n\n\n for (let prop in this.originalItems) {\n let currencyfrom = this.originalItems[prop]['currency'];\n\n let currencyto = filtercurrency;\n // console.log(this.originalItems[prop]['earningType']);\n\n let valueexchange = this.exchangerate.filter(x => x.currencyFrom == this.originalItems[prop]['currency'] && x.currencyTo == filtercurrency);\n\n\n if (this.originalItems[prop]['earningType'] == 'Interest') {\n let valueaccured = this.accuredintrest.filter(x => x.transactionumber == this.originalItems[prop]['transactionNumber']);\n if (valueaccured != null && valueaccured.length != 0) {\n this.originalItems[prop]['accruedInterestccy'] = valueaccured[0].accruedInterest;\n this.originalItems[prop]['accruedInterest'] = valueaccured[0].accruedInterest * valueexchange[0].exchageRate;\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] * valueexchange[0].exchageRate;\n }\n\n }\n else {\n this.originalItems[prop]['accruedInterestccy'] = 0.0;\n this.originalItems[prop]['accruedInterest'] = 0.0;\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] * valueexchange[0].exchageRate;\n\n }\n }\n this.sectypeaccounttotal = this.originalItems;\n //console.log( this.sectypeaccounttotal);\n var secvalues = [];\n let totalcash = 0;\n let totalcashadvanced = 0;\n console.log(this.onlysecforcash, this.onlycurforcash, account.trim());\n this.onlysecforcashtemp = this.onlysecforcash.filter(x => x.accountNumber == account.trim());\n this.onlycurforcashtemp = this.onlycurforcash.filter(x => x.accountNumber == account.trim());\n console.log(this.onlysecforcashtemp);\n for (let prop in this.onlysecforcashtemp) {\n\n totalcash = totalcash + this.onlysecforcashtemp[prop].amount;\n\n\n }\n console.log(this.repocurrency, filtercurrency);\n let valueexchangetemp = this.exchangerate.filter(x => x.currencyFrom == this.repocurrency && x.currencyTo == filtercurrency);\n this.onlysecforcashtempexchangerate = valueexchangetemp[0].exchageRate;\n this.totalamounttemp = 0;\n console.log(this.onlysecforcash, this.onlycurforcash);\n //cash pushing\n secvalues.push({ 'securityType': this.onlysecforcashtemp[0].securityType, 'cash': totalcash * this.onlysecforcashtempexchangerate });\n console.log(this.onlysecforcashtemp[0].securityType, totalcash, this.onlysecforcashtempexchangerate);\n for (let prop in this.sectypelist) {\n\n var secdata = this.sectypeaccounttotal.filter(x => x.securityCategoryforfactor == this.sectypelist[prop]);\n this.totalamounttemp = 0;\n for (var j = 0; j < secdata.length; j++) {\n this.totalamounttemp = this.totalamounttemp + secdata[j].marketValue + secdata[j].accruedInterest;\n\n }\n secvalues.push({ 'securityType': this.sectypelist[prop], 'cash': this.totalamounttemp });\n }\n\n this.account = secvalues;\n console.log(this.account);\n var currencyvalues = [];\n for (let prop in this.currtypelist) {\n\n let valueexchange = this.exchangerate.filter(x => x.currencyFrom == this.currtypelist[prop] && x.currencyTo == filtercurrency);\n // console.log(valueexchange);\n\n var curdata = this.sectypeaccounttotal.filter(x => x.currency == this.currtypelist[prop]);\n\n this.totalamounttemp = 0;\n for (var j = 0; j < curdata.length; j++) {\n\n this.totalamounttemp = this.totalamounttemp + curdata[j].marketValueccy + curdata[j].accruedInterestccy;\n }\n // console.log(this.totalamounttemp);\n\n var curcash = this.onlycurforcashtemp.filter(x => x.securityType == this.currtypelist[prop]);\n\n // console.log(curcash);\n totalcash = 0;\n\n for (let prop in curcash) {\n /// console.log(prop);\n\n totalcash = totalcash + curcash[prop].amount;\n }\n\n totalcashadvanced = 0;\n var curcashadvanced = this.onlycurforcashadvanced.filter(x => x.securityType == this.currtypelist[prop]);\n for (let prop in curcashadvanced) {\n // console.log(prop);\n\n totalcashadvanced = totalcashadvanced + curcashadvanced[prop].amount;\n }\n // console.log(curcash,curcash.length)\n if (curcash.length == 0) {\n // console.log(this.totalamounttemp,this.currtypelist[prop],totalcash);\n // console.log(this.totalamounttemp ,totalcash);\n currencyvalues.push({ 'securityType': this.currtypelist[prop], 'cash': this.totalamounttemp, 'earningtype': valueexchange[0].exchageRate, 'amount': 0.0, 'advancedamount': totalcashadvanced + totalcash });\n\n }\n else {\n // console.log(this.totalamounttemp,this.currtypelist[prop],totalcash);\n // console.log(this.totalamounttemp ,totalcash);\n currencyvalues.push({ 'securityType': this.currtypelist[prop], 'cash': this.totalamounttemp + totalcash, 'earningtype': valueexchange[0].exchageRate, 'amount': totalcash, 'advancedamount': totalcashadvanced + totalcash });\n\n }\n }\n\n this.currency = currencyvalues;\n console.log(this.currency);\n this.testinganil();\n\n\n\n\n }\n\n\n\n }\n\n getAccountsDropdowns() {\n this.backendService.getData(`${CONFIG.getAccountsDropdowns}/${this.authService.CustomerID}`)\n .subscribe(data => {\n this.accounts = data['accounts'];\n\n\n this.accounttotalEntries = this.accounts.length;\n\n });\n }\n filterCurrency(value) {\n\n this.testing(value)\n\n }\n\n testinganil() {\n this.totalamountleft = 0;\n this.totalamountright = 0;\n this.totalamountrightpiechart = 0;\n this.totalamountleftpiechart = 0;\n // if (this.pageload == true) {\n\n this.account = this.account.filter(x => x.cash != 0)\n this.currency = this.currency.filter(x => x.cash != 0)\n this.totalEntries = this.account.length;\n\n if (this.account[0].length != 0 || this.account[0].length != 0) {\n var numRows = this.account.length;\n var numCols = this.account[0].length;\n var numRows1 = this.currency.length;\n var numCols1 = this.currency[0].length;\n let myArray = [[]];\n this.areas = new Array();\n let row: any = new Array();\n row.push(['Task', 'Asset Allocation Analysis']);\n for (var i = 0; i < numRows; i++) {\n var innernumRows = this.account[i].length;\n this.totalamountleftpiechart = this.totalamountleftpiechart + this.account[i].cash;\n this.portfoliototal = this.portfoliototal + this.account[i].cash;\n }\n for (var i = 0; i < numRows; i++) {\n this.count = this.count + 1;\n this.totalamountleft = this.totalamountleft + this.account[i].cash;\n if (this.account[i].cash > 0) {\n this.totalforchartspercentageformate = Number(this.numberPipe.transform(((this.account[i].cash / this.totalamountleftpiechart) * 100), '1.2-2'));\n row.push([this.account[i].securityType, this.totalforchartspercentageformate]);\n this.pie_ChartOptions.colors.push(this.colors[i]);\n }\n if (this.account[i].cash < 0) {\n this.totalforchartspercentageformate = Number(this.numberPipe.transform(((this.account[i].cash / this.totalamountleftpiechart) * 100), '1.2-2'));\n row.push([this.account[i].securityType + \"(negative)\", Math.abs(this.totalforchartspercentageformate)]);\n this.pie_ChartOptions.colors.push(this.negColors[i]);\n\n }\n myArray.push(row);\n\n }\n this.count1 = 0;\n this.areas = myArray[i];\n let myArray1 = [[]];\n this.areas1 = new Array();\n let row1: any = new Array();\n row1.push(['Task', 'Asset Allocation Analysis']);\n for (var j = 0; j < numRows1; j++) {\n // if (this.currency[j].cash >= 0){\n this.totalamountrightpiechart = this.totalamountrightpiechart + (this.currency[j].earningtype * this.currency[j].cash);\n // }\n // if (this.currency[j].cash < 0) {\n // this.totalamountrightpiechart = this.totalamountrightpiechart +(this.currency[j].earningtype * this.currency[j].cash);\n // }\n }\n for (var j = 0; j < numRows1; j++) {\n this.count1 = this.count1 + 1;\n this.totalamountright = this.totalamountright + (this.currency[j].earningtype * (this.currency[j].cash));\n this.totalcash = this.totalcash + this.currency[j].cash;\n if (this.currency[j].cash >= 0) {\n this.totalforchartspercentageformate = Number(this.numberPipe.transform(((this.currency[j].earningtype * this.currency[j].cash) / this.totalamountrightpiechart) * 100, '1.2-2'));\n row1.push([this.currency[j].securityType, this.totalforchartspercentageformate]);\n this.pie_ChartOptions1.colors.push(this.colors[j]);\n }\n if (this.currency[j].cash < 0) {\n this.totalforchartspercentageformate = Number(this.numberPipe.transform(((this.currency[j].earningtype * this.currency[j].cash) / this.totalamountrightpiechart) * 100, '1.2-2'));\n row1.push([this.currency[j].securityType + \"(negative)\", Math.abs(this.totalforchartspercentageformate)]);\n this.pie_ChartOptions1.colors.push(this.negColors[j]);\n }\n myArray1.push(row1);\n }\n this.areas1 = myArray1[this.count1];\n // }\n }\n }\n\n\n getPiechartsData() {\n this.testinganil();\n\n\n }\n\n testing(currency) {\n let account = this.currentSAccount;\n // console.log('enter',account)\n this.originalItems = this.originalItemstemp;\n this.totalEntries = this.originalItems.length;\n this.loadingData = true;\n console.log(this.originalItems);\n if (account == 'Select account' || account == \"\") {\n let anilusd = 0.0;\n let anilbrl = 0.0;\n let anilusdoriginal = 0.0;\n let anilbrloriginall = 0.0;\n\n\n\n for (let prop in this.originalItems) {\n let currencyfrom = this.originalItems[prop]['currency'];\n\n let currencyto = currency;\n // console.log(this.originalItems[prop]['earningType']);\n\n let valueexchange = this.exchangerate.filter(x => x.currencyFrom == this.originalItems[prop]['currency'] && x.currencyTo == currency);\n let valueFXexchange = this.exchangerate.filter(x => x.currencyFrom == this.originalItems[prop]['tradeCurrency'] && x.currencyTo == currency);\n if (this.originalItems[prop]['earningType'] == 'Interest') {\n\n let valueaccured = this.accuredintrest.filter(x => x.transactionumber == this.originalItems[prop]['transactionNumber']);\n\n console.log('befroe');\n\n if (valueaccured != null && valueaccured.length != 0) {\n console.log('valueaccured', valueexchange[0].exchageRate);\n\n this.originalItems[prop]['accruedInterestccy'] = valueaccured[0].accruedInterest;\n this.originalItems[prop]['accruedInterest'] = valueaccured[0].accruedInterest * valueexchange[0].exchageRate;\n if (this.originalItems[prop]['earningType'] == '4X') {\n console.log(this.originalItems[prop]['percentageGainOrLoss'], valueFXexchange[0].exchageRate)\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['percentageGainOrLoss'] * valueFXexchange[0].exchageRate;\n\n\n }\n else {\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] * valueexchange[0].exchageRate;\n }\n }\n }\n else {\n console.log('valueNOTaccured', valueexchange[0].exchageRate);\n\n this.originalItems[prop]['accruedInterestccy'] = 0.0;\n this.originalItems[prop]['accruedInterest'] = 0.0;\n if (this.originalItems[prop]['earningType'] == '4X') {\n console.log(this.originalItems[prop]['percentageGainOrLoss'], valueFXexchange[0].exchageRate)\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['percentageGainOrLoss'] * valueFXexchange[0].exchageRate;\n }\n else {\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] * valueexchange[0].exchageRate;\n }\n }\n\n\n\n }\n console.log(anilusd, anilusdoriginal);\n console.log(anilbrl, anilbrloriginall);\n\n if (currency == 'USD') {\n console.log(this.originalItems);\n }\n this.sectypeaccounttotal = this.originalItems;\n var secvalues = [];\n let totalcash = 0;\n let totalfx = 0;\n let totalcashadvanced = 0;\n for (let prop in this.onlysecforcash) {\n\n totalcash = totalcash + this.onlysecforcash[prop].amount;\n\n\n }\n let valueexchangetemp = this.exchangerate.filter(x => x.currencyFrom == this.repocurrency && x.currencyTo == currency);\n this.onlysecforcashtempexchangerate = valueexchangetemp[0].exchageRate;\n this.totalamounttemp = 0;\n //cash pushing\n secvalues.push({ 'securityType': this.onlysecforcash[0].securityType, 'cash': totalcash * this.onlysecforcashtempexchangerate })\n for (let prop in this.sectypelist) {\n\n var secdata = this.sectypeaccounttotal.filter(x => x.securityCategoryforfactor == this.sectypelist[prop]);\n this.totalamounttemp = 0;\n for (var j = 0; j < secdata.length; j++) {\n this.totalamounttemp = this.totalamounttemp + secdata[j].marketValue + secdata[j].accruedInterest;\n\n }\n secvalues.push({ 'securityType': this.sectypelist[prop], 'cash': this.totalamounttemp });\n }\n\n this.account = secvalues;\n\n var currencyvalues = [];\n for (let prop in this.currtypelist) {\n\n let valueexchange = this.exchangerate.filter(x => x.currencyFrom == this.currtypelist[prop] && x.currencyTo == currency);\n // console.log(valueexchange);\n\n var curdata = this.sectypeaccounttotal.filter(x => x.currency == this.currtypelist[prop]);\n this.totalamounttemp = 0;\n for (var j = 0; j < curdata.length; j++) {\n if (curdata[j].securityCategory == \"Forex Forward\") {\n this.totalamounttemp = this.totalamounttemp + curdata[j].fxexchange;\n }\n else {\n this.totalamounttemp = this.totalamounttemp + curdata[j].marketValueccy + curdata[j].accruedInterestccy;\n }\n\n // this.totalamounttemp = this.totalamounttemp + curdata[j].marketValueccy + curdata[j].accruedInterestccy;\n }\n // console.log(this.totalamounttemp);\n var curcash = this.onlycurforcash.filter(x => x.securityType == this.currtypelist[prop]);\n // console.log(curcash);\n var curFX = this.onlycurforFX.filter(x => x.securityType == this.currtypelist[prop]);\n // console.log(curcash);\n totalcash = 0;\n totalfx = 0;\n\n for (let prop in curcash) {\n /// console.log(prop);\n\n totalcash = totalcash + curcash[prop].amount;\n }\n totalcashadvanced = 0;\n var curcashadvanced = this.onlycurforcashadvanced.filter(x => x.securityType == this.currtypelist[prop]);\n for (let prop in curcashadvanced) {\n // console.log(prop);\n totalcashadvanced = totalcashadvanced + curcashadvanced[prop].amount;\n }\n if (curcash.length == 0) {\n\n if (curFX.length !== 0) {\n totalfx = curFX[0].cash;\n currencyvalues.push({ 'securityType': this.currtypelist[prop], 'cash': this.totalamounttemp + totalfx, 'earningtype': valueexchange[0].exchageRate, 'amount': 0.0, 'advancedamount': totalcashadvanced + totalcash });\n\n\n }\n else {\n currencyvalues.push({ 'securityType': this.currtypelist[prop], 'cash': this.totalamounttemp, 'earningtype': valueexchange[0].exchageRate, 'amount': 0.0, 'advancedamount': totalcashadvanced + totalcash });\n }\n\n }\n else {\n\n if (curFX.length !== 0) {\n totalfx = curFX[0].cash;\n console.log(this.totalamounttemp, this.currtypelist[prop], totalcash);\n currencyvalues.push({ 'securityType': this.currtypelist[prop], 'cash': this.totalamounttemp + totalcash + totalfx, 'earningtype': valueexchange[0].exchageRate, 'amount': totalcash, 'advancedamount': totalcashadvanced + totalcash });\n } else {\n currencyvalues.push({ 'securityType': this.currtypelist[prop], 'cash': this.totalamounttemp + totalcash, 'earningtype': valueexchange[0].exchageRate, 'amount': totalcash, 'advancedamount': totalcashadvanced + totalcash });\n }\n\n\n }\n }\n\n this.currency = currencyvalues;\n // console.log(this.currency);\n\n\n\n\n this.testinganil();\n\n }\n else {\n this.GetFilterdataforAccountsAndCurrency(this.currentSAccount, currency);\n\n }\n\n }\n\n getAccountsData() {\n\n this.backendService.getData(`${CONFIG.getOverview}/${this.authService.CustomerID}`)\n .subscribe(data => {\n // console.log(data);\n this.exchangerate = data[\"exchagerate\"];\n\n this.originalItems = data[\"myCustomer\"];\n this.accuredintrest = data[\"data\"];\n\n this.originalItemstemp = data[\"myCustomer\"];\n this.originalItemsCuurencyAccount = data[\"myCustomer\"];\n this.sectypelist = data[\"sectypelist\"];\n this.currtypelist = data[\"currencylist\"];\n this.onlysecforcash = data[\"onlycashforsec\"];\n console.log(this.onlysecforcash);\n this.onlycurforcash = data[\"onlycashforcur\"];\n console.log(this.onlycurforcash);\n this.onlycurforcashadvanced = data[\"onlycashforcurAdvanced\"];\n this.onlycurforFX = data[\"onlyFxforcur\"];\n this.repocurrency = data[\"repoCurrency\"];\n\n this.account = \"\";\n this.currency = \"\";\n this.totalEntries = this.originalItems.length;\n this.loadingData = true;\n\n for (let prop in this.originalItems) {\n let currencyfrom = this.originalItems[prop]['currency'];\n let currencyto = this.repocurrency;\n this.FilterByStatus.controls['_currency'].setValue(currencyto);\n\n let valueexchange = this.exchangerate.filter(x => x.currencyFrom == this.originalItems[prop]['currency'] && x.currencyTo == this.repocurrency);\n let valueFXexchange = this.exchangerate.filter(x => x.currencyFrom == this.originalItems[prop]['tradeCurrency'] && x.currencyTo == this.repocurrency);\n\n let valueaccured = this.accuredintrest.filter(x => x.transactionumber == this.originalItems[prop]['transactionNumber']);\n\n\n if (valueexchange != null && valueexchange.length != 0) {\n if (this.originalItems[prop]['earningType'] == '4X') {\n console.log(this.originalItems[prop]['percentageGainOrLoss'], valueFXexchange[0].exchageRate)\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['percentageGainOrLoss'] * valueFXexchange[0].exchageRate;\n }\n else {\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] * valueexchange[0].exchageRate;\n }\n }\n if (valueaccured != null && valueaccured.length != 0) {\n this.originalItems[prop]['accruedInterestccy'] = valueaccured[0].accruedInterest;\n this.originalItems[prop]['accruedInterest'] = valueaccured[0].accruedInterest * valueexchange[0].exchageRate;\n\n }\n }\n console.log(this.originalItems);\n this.sectypeaccounttotal = this.originalItems;\n\n var secvalues = [];\n let totalcash = 0;\n let totalcashadvanced = 0;\n let totalfx = 0;\n for (let prop in this.onlysecforcash) {\n\n totalcash = totalcash + this.onlysecforcash[prop].amount;\n\n\n }\n //cash pushing\n secvalues.push({ 'securityType': this.onlysecforcash[0].securityType, 'cash': totalcash })\n console.log(this.sectypelist);\n for (let prop in this.sectypelist) {\n var secdata = this.sectypeaccounttotal.filter(x => x.securityCategoryforfactor == this.sectypelist[prop]);\n this.totalamounttemp = 0;\n for (var j = 0; j < secdata.length; j++) {\n this.totalamounttemp = this.totalamounttemp + secdata[j].marketValue + secdata[j].accruedInterest;\n }\n secvalues.push({ 'securityType': this.sectypelist[prop], 'cash': this.totalamounttemp, });\n }\n\n this.account = secvalues;\n\n var currencyvalues = [];\n console.log(this.currtypelist);\n // console.log(this.currtypelist);\n\n for (let prop in this.currtypelist) {\n\n let valueexchange = this.exchangerate.filter(x => x.currencyFrom == this.currtypelist[prop] && x.currencyTo == this.repocurrency);\n\n var curdata = this.sectypeaccounttotal.filter(x => x.currency == this.currtypelist[prop]);\n console.log(curdata);\n this.totalamounttemp = 0;\n\n\n var curFX = this.onlycurforFX.filter(x => x.securityType == this.currtypelist[prop]);\n // console.log(curcash);\n\n totalfx = 0;\n totalcashadvanced = 0;\n var curcashadvanced = this.onlycurforcashadvanced.filter(x => x.securityType == this.currtypelist[prop]);\n for (let prop in curcashadvanced) {\n // console.log(prop);\n\n totalcashadvanced = totalcashadvanced + curcashadvanced[prop].amount;\n }\n console.log(this.currtypelist[prop], totalcashadvanced);\n\n totalcash = 0;\n var curcash = this.onlycurforcash.filter(x => x.securityType == this.currtypelist[prop]);\n for (let prop in curcash) {\n\n totalcash = totalcash + curcash[prop].amount;\n }\n\n for (var j = 0; j < curdata.length; j++) {\n\n //console.log(curdata[j].securityCategory);\n if (curdata[j].securityCategory == \"Forex Forward\") {\n this.totalamounttemp = this.totalamounttemp + curdata[j].fxexchange;\n }\n else {\n this.totalamounttemp = this.totalamounttemp + curdata[j].marketValueccy + curdata[j].accruedInterestccy;\n }\n }\n\n\n // console.log(curcash,curcash.length)\n if (curcash.length == 0) {\n\n if (curFX.length !== 0) {\n totalfx = curFX[0].cash;\n console.log(this.totalamounttemp, totalfx, totalcashadvanced);\n currencyvalues.push({ 'securityType': this.currtypelist[prop], 'cash': this.totalamounttemp + totalfx, 'earningtype': valueexchange[0].exchageRate, 'amount': 0.0, 'advancedamount': totalcashadvanced + totalcash });\n\n\n }\n else {\n console.log(this.totalamounttemp, totalfx, totalcashadvanced);\n currencyvalues.push({ 'securityType': this.currtypelist[prop], 'cash': this.totalamounttemp, 'earningtype': valueexchange[0].exchageRate, 'amount': 0.0, 'advancedamount': totalcashadvanced + totalcash });\n }\n\n }\n else {\n\n if (curFX.length !== 0) {\n totalfx = curFX[0].cash;\n console.log(this.totalamounttemp, totalfx, totalcash);\n currencyvalues.push({ 'securityType': this.currtypelist[prop], 'cash': this.totalamounttemp + totalcash + totalfx, 'earningtype': valueexchange[0].exchageRate, 'amount': totalcash, 'advancedamount': totalcashadvanced + totalcash });\n } else {\n console.log(this.totalamounttemp, totalfx, totalcash);\n currencyvalues.push({ 'securityType': this.currtypelist[prop], 'cash': this.totalamounttemp + totalcash, 'earningtype': valueexchange[0].exchageRate, 'amount': totalcash, 'advancedamount': totalcashadvanced + totalcash });\n }\n\n\n }\n }\n\n this.currency = currencyvalues;\n console.log(this.currency);\n\n\n\n if (this.pageload == true) {\n this.account = secvalues;\n this.currency = currencyvalues;\n this.accounttotal = secvalues;\n this.currencytotal = currencyvalues;\n\n try {\n if (this.currentSAccount != '' && this.currentSAccount != 'Select account') {\n // this.account=this.account1.groupby(x => x. securityType);\n this.account = this.account1.filter(x => x.accountNumber == this.currentSAccount && x.cash != 0);\n this.currency = this.currency1.filter(x => x.accountNumber == this.currentSAccount && x.cash != 0);\n\n }\n\n } catch (exeption) {\n\n }\n\n this.account = this.account.filter(x => x.cash != 0)\n this.currency = this.currency.filter(x => x.cash != 0)\n\n if (this.account[0].length != 0 || this.account[0].length != 0) {\n var numRows = this.account.length;\n var numCols = this.account[0].length;\n var numRows1 = this.currency.length;\n var numCols1 = this.currency[0].length;\n let myArray = [[]];\n this.areas = new Array();\n let row: any = new Array();\n row.push(['Task', 'Asset Allocation Analysis']);\n for (var i = 0; i < numRows; i++) {\n var innernumRows = this.account[i].length;\n\n this.portfoliototal = this.portfoliototal + this.account[i].cash;\n this.totalamountleft = this.totalamountleft + this.account[i].cash;\n this.totalamountleftpiechart = this.totalamountleftpiechart + this.account[i].cash;\n }\n for (var i = 0; i < numRows; i++) {\n this.count = this.count + 1;\n\n if (this.account[i].cash > 0) {\n this.totalforchartspercentageformate = Number(this.numberPipe.transform(((this.account[i].cash / this.totalamountleftpiechart) * 100), '1.2-2'));\n row.push([this.account[i].securityType + ` ` + this.totalforchartspercentageformate + ` % `, this.totalforchartspercentageformate]);\n this.pie_ChartOptions.colors.push(this.colors[i]);\n }\n if (this.account[i].cash < 0) {\n this.totalforchartspercentageformate = Number(this.numberPipe.transform(((this.account[i].cash / this.totalamountleftpiechart) * 100), '1.2-2'));\n row.push([this.account[i].securityType + ` ` + this.totalforchartspercentageformate + ` % ` + \"(negative)\", Math.abs(this.totalforchartspercentageformate)]);\n this.pie_ChartOptions.colors.push(this.negColors[i]);\n\n }\n myArray.push(row);\n\n }\n let value = 0;\n this.areas = myArray[i];\n console.log(this.areas);\n let myArray1 = [[]];\n this.areas1 = new Array();\n let row1: any = new Array();\n row1.push(['Task', 'Asset Allocation Analysis']);\n for (var j = 0; j < numRows1; j++) {\n\n this.totalamountrightpiechart = this.totalamountrightpiechart + (this.currency[j].earningtype * this.currency[j].cash)\n\n }\n console.log(this.totalamountrightpiechart);\n for (var j = 0; j < numRows1; j++) {\n this.count1 = this.count1 + 1;\n this.totalamountright = this.totalamountright + (this.currency[j].earningtype * this.currency[j].cash);\n this.totalcash = this.totalcash + this.currency[j].cash;\n if (this.currency[j].cash >= 0) {\n console.log();\n //let value= this.numberPipe.transform((this.currency[j].earningtype*this.currency[j].cash)/this.totalamountrightpiechart)*100], '1.2-2');\n this.totalforchartspercentageformate = Number(this.numberPipe.transform(((this.currency[j].earningtype * this.currency[j].cash) / this.totalamountrightpiechart) * 100, '1.2-2'));\n\n\n row1.push([this.currency[j].securityType + `` + this.totalforchartspercentageformate + `%`, this.totalforchartspercentageformate]);\n this.pie_ChartOptions1.colors.push(this.colors[j]);\n }\n if (this.currency[j].cash < 0) {\n this.totalforchartspercentageformate = Number(this.numberPipe.transform(((this.currency[j].earningtype * this.currency[j].cash) / this.totalamountrightpiechart) * 100, '1.2-2'));\n row1.push([this.currency[j].securityType + `` + this.totalforchartspercentageformate + `%` + \"(negative)\", Math.abs(this.totalforchartspercentageformate)]);\n this.pie_ChartOptions1.colors.push(this.negColors[j]);\n }\n myArray1.push(row1);\n }\n this.areas1 = myArray1[this.count1];\n console.log(this.areas1);\n }\n }\n this.pageloadDataforselectedAccount();\n }\n\n\n );\n\n\n }\n pageloadDataforselectedAccount() {\n if (this.currentSAccount == 'Select account' || this.currentSAccount == \"\") {\n }\n else {\n\n this.filterForSA(this.currentSAccount);\n }\n }\n makeActive(item) {\n this.active = this.active === item ? '' : item;\n }\n\n\n\n}\n\n","import CONFIG from '../../../config';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Location, DecimalPipe, CurrencyPipe } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\r\n\r\nimport { MultiColumnGridService } from '../../shared/multi-column-grid.service';\r\nimport { AccountService } from '../../shared/account.service';\r\nimport { AuthService } from '../../shared/auth.service';\r\nimport { BackendService } from '../../shared/backend.service';\r\nimport { FilterService } from '../../shared/filter.service';\r\nimport { NotificationService } from '../../notification/notification.service';\r\nimport { OrderByService } from '../../shared/orderby.service';\r\nimport { PaginationService } from '../../shared/pagination.service';\r\nimport { SearchService } from '../../shared/search.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\n\r\n@Component({\r\n selector: 'app-positions',\r\n templateUrl: './detailed-positions.component.html',\r\n styleUrls: ['./positions.component.scss'],\r\n providers: [DecimalPipe, PaginationService]\r\n\r\n})\r\nexport class DetailedPositionsComponent extends MultiColumnGridService implements OnInit, OnDestroy {\r\n currentSettlementAccountSubscription: Subscription;\r\n currentSAccount;\r\n loadingStatusSubscription: Subscription;\r\n active: string = '';\r\n areas: any[];\r\n areas1: any[];\r\n account: any;\r\n currency: any;\r\n google: any;\r\n count: number = 0;\r\n portfolio: number = 0;\r\n portfoliototal: number = 0;\r\n totalamountleft: number = 0;\r\n totalamountright: number = 0;\r\n totalcash: number = 0;\r\n count1: number = 0;\r\n detailedPositions: any;\r\n accounts: Array = [];\r\n optionsUser: Array = [];\r\n originalLog: Array = [];\r\n result: string = '';\r\n preFilteredLog: Array = [];\r\n temporiginalItems: Object[] = [];\r\n scc: any;\r\n positionsFilter;\r\n accountnumber: string;\r\n chartsOpen: boolean = false;\r\n filtersOpen: boolean = false;\r\n totalmarketvalue: number=0;\r\n secondaryOrderByParam = '';\r\n checked: boolean = false;\r\n myVar: boolean = false;\r\n myVar1: boolean = false;\r\n myVar2: boolean = false;\r\n originalItemsforexport: Object[] = [];\r\n public pie_ChartOptions = {\r\n title: 'By Security Type',\r\n width: 400,\r\n height: 400,\r\n colors: [ '#0038c3', '#906cf7', '#3f9697', '#1d69f6', '#62c9ca', '#58c89d', '#c06a26', '#64c74d', '#656795', '#ed4b96', '#ed4a97', '#80807f', '#347f7f', '#296419', '#3b66c6', '#bc271a', '#ee5e58', '#90fa5b', '#bb2fc4', '#bc2fc5', '#c69a33', '#42962a', '#fffd55', '#5d1262', '#61360f', '#cccdfb', '#cccdfc', '#7ccafa', '#5c1fc3', '#8d1c35', '#5f5e5f', '#a3c93e', '#62c9cb', '#fffea5', '#b0fca4', '#f2a0fa', '#f39d6f' ],\r\n is3D: true,\r\n };\r\n\r\n public pie_ChartOptions1 = {\r\n title: 'By Currency',\r\n width: 400,\r\n height: 400,\r\n colors: [ '#0038c3', '#906cf7', '#3f9697', '#1d69f6', '#62c9ca', '#58c89d', '#c06a26', '#64c74d', '#656795', '#ed4b96', '#ed4a97', '#80807f', '#347f7f', '#296419', '#3b66c6', '#bc271a', '#ee5e58', '#90fa5b', '#bb2fc4', '#bc2fc5', '#c69a33', '#42962a', '#fffd55', '#5d1262', '#61360f', '#cccdfb', '#cccdfc', '#7ccafa', '#5c1fc3', '#8d1c35', '#5f5e5f', '#a3c93e', '#62c9cb', '#fffea5', '#b0fca4', '#f2a0fa', '#f39d6f' ],\r\n is3D: true,\r\n };\r\n\r\n constructor(\r\n public location: Location,\r\n public backendService: BackendService,\r\n public authService: AuthService,\r\n public accountService: AccountService,\r\n public notificationService: NotificationService,\r\n public formBuilder: FormBuilder,\r\n public searchService: SearchService,\r\n public orderByService: OrderByService,\r\n public router: Router,\r\n public paginationService: PaginationService,\r\n public filterService: FilterService,\r\n public numberPipe: DecimalPipe,\r\n public currencyPipe: CurrencyPipe\r\n ) {\r\n super(location, backendService, authService, notificationService, formBuilder,\r\n searchService, orderByService, router, paginationService, currencyPipe, filterService);\r\n }\r\n ngOnInit() {\r\n this.currentPage = 'detailed positions';\r\n this.myVar = false;\r\n this.myVar1 = false;\r\n this.myVar2 = false;\r\n this.currentSettlementAccountSubscription = this.accountService.currentSettlementAccountChange$.subscribe(currentSettlementAccount => this.currentSettlementAccountChange(currentSettlementAccount));\r\n this.currentSAccount = this.accountService.currentSettlementAccount;\r\n this.loadingStatusSubscription = this.loadingDataChange$.subscribe(loadingDataStatus => this.initFilterForSA(loadingDataStatus));\r\n this.apiUrl = CONFIG.detailedpositionsApiUrlBase;\r\n this.searchArray = ['face', 'description', 'securityCategory', 'cost', 'isin', 'marketValue', 'fxRate', 'percentageGainOrLoss', 'currency', 'marketPrice'];\r\n this.accountsArray = ['accountNumber'];\r\n this.fields = ['quantityNominal', 'description', 'securityCategory', 'cost', 'isin', 'marketValue', 'fxRate', 'percentageGainOrLoss', 'currency', 'marketPrice'];\r\n this.fieldNames = ['AccountNumber', 'ISIN', 'SecurityCategory',\r\n 'Description','Cost Value','MarketValue','MarketValueccy','AccruedInterest','AccruedInterestccy','Currency','Cost','MarketPrice','FXRate','TradeCurrency','BaseCurrency','Quantity' ]\r\n this.defaultSortOrder = 'currency';\r\n this.FilterByStatus = this.formBuilder.group({\r\n 'accountNumber': [],\r\n '_currency': []\r\n });\r\n this.serviceInit(this.formatDataForSearch);\r\n this.getCurrencyDropdowns();\r\n\r\n \r\n //this.loadingData = true;\r\n // this.temporiginalItems=this.originalItems;\r\n // console.log(this.temporiginalItems);\r\n \r\n }\r\n filterOpenMethod() {\r\n if (this.filtersOpen == false) {\r\n this.filtersOpen = true;\r\n this.clearRadioSearch()\r\n }\r\n else {\r\n this.filtersOpen = false;\r\n this.clearRadioSearch()\r\n }\r\n }\r\n exportDataOptions(submittedData?: Object[]) {\r\n\r\n let name = 'Detailed Positions';\r\n let heading = 'DetailedPositions CSV';\r\n\r\n this.originalItemsforexport = submittedData || this.originalItems;\r\n this.originalItemsforexport.forEach((value, index\r\n )=>{\r\n delete this.originalItemsforexport[index]['primaryCustomer'];\r\n delete this.originalItemsforexport[index]['transactionNumber'];\r\n delete this.originalItemsforexport[index]['securityIDType'];\r\n delete this.originalItemsforexport[index]['securityCategoryforfactor'];\r\n delete this.originalItemsforexport[index]['quantityNominal'];\r\n delete this.originalItemsforexport[index]['yield'];\r\n delete this.originalItemsforexport[index]['pss'];\r\n delete this.originalItemsforexport[index]['fxexchange'];\r\n delete this.originalItemsforexport[index]['earningType'];\r\n delete this.originalItemsforexport[index]['purchPrice'];\r\n delete this.originalItemsforexport[index]['percentageGainOrLoss'];\r\n this.originalItemsforexport[index]['baseCurrency']=this.FilterByStatus.get('_currency').value;\r\n })\r\n \r\n const data = this.originalItemsforexport; \r\n this.exportData(data, name, heading);\r\n \r\n }\r\n \r\n initFilterForSA(loadingDataStatus) {\r\n this.filterForSA();\r\n }\r\n ngOnDestroy() {\r\n if (this.currentSettlementAccountSubscription) { this.currentSettlementAccountSubscription.unsubscribe(); }\r\n }\r\n\r\n filterCurrency(value) {\r\n\r\n // console.log(value);\r\n // console.log(this.FilterByStatus.controls['_currency'].value);\r\n this.reportingCurrency(value)\r\n\r\n }\r\n\r\n reportingCurrencyload(currency) {\r\n this.FilterByStatus.controls['_currency'].setValue(currency);\r\n console.log(currency);\r\n console.log(this.exchangerate);\r\n console.log(this.accuredintrest);\r\n console.log(this.originalItems);\r\n let data = this.originalItems;\r\n\r\n this.consolidate = this.originalItems;\r\n let sum = 0;\r\n let sum1=0;\r\n for (let prop in this.originalItems) {\r\n \r\n let total = this.consolidate.filter(x => x.isin == this.originalItems[prop]['isin']);\r\n //console.log(total);\r\n if (total.length > 1) {\r\n \r\n }\r\n let currencyfrom = this.originalItems[prop]['currency'];\r\n let currencyto = currency; \r\n\r\n let valueexchange = this.exchangerate.filter(x => x.currencyFrom == this.originalItems[prop]['currency'] && x.currencyTo == currency);\r\n let valueaccured = this.accuredintrest.filter(x => x.transactionumber == this.originalItems[prop]['transactionNumber']);\r\n\r\n if (valueexchange != null && valueexchange.length != 0) {\r\n // console.log(valueexchange.length);\r\n \r\n this.originalItems[prop]['fxRate'] = valueexchange[0].exchageRate;\r\n console.log( this.originalItems[prop]['marketValue']);\r\n if (currencyfrom == \"AUD\" || currencyfrom == \"NZD\" || currencyfrom == \"GBP\" || currencyfrom == \"EUR\") {\r\n\r\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] / valueexchange[0].exchageRate;\r\n sum += +this.originalItems[prop]['marketValue'];\r\n \r\n }\r\n else {\r\n\r\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] * valueexchange[0].exchageRate;\r\n sum += +this.originalItems[prop]['marketValue'];\r\n \r\n }\r\n console.log( this.originalItems[prop]['marketValue']);\r\n }\r\n\r\n if (valueaccured != null && valueaccured.length != 0) {\r\n this.originalItems[prop]['accruedInterestccy'] = valueaccured[0].accruedInterest;\r\n console.log(`Anil Gogineni`);\r\n console.log(valueexchange[0]);\r\n this.originalItems[prop]['accruedInterest'] = valueaccured[0].accruedInterest * valueexchange[0].exchageRate;\r\n \r\n if (currencyfrom == \"AUD\" || currencyfrom == \"NZD\" || currencyfrom == \"GBP\" || currencyfrom == \"EUR\") {\r\n this.originalItems[prop]['accruedInterest'] = valueaccured[0].accruedInterest / valueexchange[0].exchageRate;\r\n sum1 += +this.originalItems[prop]['accruedInterest'];\r\n }\r\n else {\r\n \r\n console.log(this.originalItems[prop]['transactionNumber'],valueexchange[0].exchageRate, valueaccured[0].accruedInterest );\r\n this.originalItems[prop]['accruedInterest'] = valueaccured[0].accruedInterest * valueexchange[0].exchageRate;\r\n sum1 += +this.originalItems[prop]['accruedInterest'];\r\n }\r\n }\r\n\r\n\r\n }\r\n this.totalmarketvalue=sum+sum1;\r\n console.log(this.totalmarketvalue,this.cashamount);\r\n this.totalmarketvalue=this.totalmarketvalue+this.cashamount;\r\n console.log(this.totalmarketvalue);\r\n }\r\n reportingCurrency(currency) {\r\n // console.log(currency);\r\n // console.log(this.exchangerate);\r\n // console.log(this.accuredintrest);\r\n // console.log(this.originalItems);\r\n // console.log(this.originalItems[0]['transactionNumber'], this.originalItems[0]['currency']);\r\n this.consolidate = this.originalItems;\r\n console.log(this.cashamount);\r\n for (let prop in this.originalItems) {\r\n let total = this.consolidate.filter(x => x.isin == this.originalItems[prop]['isin']);\r\n console.log(total);\r\n if (total.count > 1) {\r\n console.log(total);\r\n }\r\n\r\n let currencyfrom = this.originalItems[prop]['currency'];\r\n let currencyto = currency;\r\n // console.log( this.exchangerate);\r\n let valueexchange = this.exchangerate.filter(x => x.currencyFrom == this.originalItems[prop]['currency'] && x.currencyTo == currency);\r\n let valueaccured = this.accuredintrest.filter(x => x.transactionumber == this.originalItems[prop]['transactionNumber']);\r\n console.log(valueaccured);\r\n if (valueexchange != null) {\r\n if (valueexchange[0].exchageRate > 1) {\r\n this.originalItems[prop]['fxRate'] = 1 / valueexchange[0].exchageRate;\r\n\r\n }\r\n this.originalItems[prop]['fxRate'] = valueexchange[0].exchageRate;\r\n\r\n // if (currencyfrom == \"AUD\" || currencyfrom == \"NZD\" || currencyfrom == \"GBP\" || currencyfrom == \"EUR\") {\r\n // if(this.originalItems[prop]['transactionNumber']== \"115609\")\r\n // {\r\n // console.log(\"marketValue\"+this.originalItems[prop]['marketValue'],this.originalItems[prop]['marketValueccy']); \r\n // console.log(\"exchage rate\"+valueexchange[0].exchageRate);\r\n // console.log(\"currency\"+this.originalItems[prop]['currency'])\r\n // }\r\n // this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] / valueexchange[0].exchageRate;\r\n\r\n // if(this.originalItems[prop]['transactionNumber']== \"115609\")\r\n // {\r\n // console.log(\"marketValue\"+this.originalItems[prop]['marketValue']); \r\n // console.log(\"exchage rate\"+valueexchange[0].exchageRate);\r\n // console.log(\"currency\"+this.originalItems[prop]['currency'])\r\n // }\r\n\r\n // }\r\n // else {\r\n // console.log(this.originalItems[prop]['marketValue']);\r\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] * valueexchange[0].exchageRate;\r\n //console.log(this.originalItems[prop]['marketValue']);\r\n // }\r\n }\r\n\r\n if (valueaccured.length != 0) {\r\n this.originalItems[prop]['accruedInterestccy'] = valueaccured[0].accruedInterest;\r\n if (currencyfrom == \"AUD\" || currencyfrom == \"NZD\" || currencyfrom == \"GBP\" || currencyfrom == \"EUR\") {\r\n this.originalItems[prop]['accruedInterest'] = valueaccured[0].accruedInterest / valueexchange[0].exchageRate;\r\n }\r\n else {\r\n this.originalItems[prop]['accruedInterest'] = valueaccured[0].accruedInterest * valueexchange[0].exchageRate;\r\n }\r\n }\r\n }\r\n this.audit = this.originalItems;\r\n this.totalEntries = this.audit.length;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\r\n if (1 <= 0) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.originalItems;\r\n // console.log('this.audit' + this.audit.length);\r\n }\r\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.originalItems;\r\n this.totalEntries = this.originalItems.length;\r\n // console.log('this.audit' + this.audit.length);\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.searchFilteredItems;\r\n // console.log('this.audit' + this.audit.length);\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n }\r\n\r\n getCurrencyDropdowns() {\r\n this.backendService.getData(CONFIG.getWEBCurrencyDropdowns)\r\n\r\n .subscribe(data => {\r\n // console.log(data);\r\n this.currency = data;\r\n\r\n //console.log(this.currency);\r\n });\r\n }\r\n\r\n currentSettlementAccountChange(value) {\r\n this.currentSAccount = value;\r\n this.accountNo.setValue(value);\r\n this.term.setValue('');\r\n this.filterForSA();\r\n }\r\n\r\n FilterScurityTypeChanges(value) {\r\n console.log(value);\r\n this.filterForSecuritys(value);\r\n }\r\n filterForSecuritys(value) {\r\n\r\n console.log(this.originalItems);\r\n this.checkbox = this.originalItems;\r\n let itemsToSearch = this.originalItems;\r\n\r\n this.searchService.findItemsFromAccount('Discount', itemsToSearch, this.securityArray)\r\n .then(allFiltered => {\r\n if (value) {\r\n if (value == 'Bonds') {\r\n this.myVar = false;\r\n this.myVar2 = true;\r\n this.checkbox = this.originalItems;\r\n this.audit = this.checkbox.filter(x => x.earningType == 'Interest' || x.earningType == 'Discount');\r\n\r\n }\r\n if (value == 'Equity') {\r\n this.myVar = true;\r\n this.checkbox = this.originalItems;\r\n this.audit = this.checkbox.filter(x => x.earningType == 'Equity' || x.earningType == 'Option' || x.earningType == '4X');\r\n\r\n }\r\n\r\n }\r\n else {\r\n this.myVar = false;\r\n this.myVar2 = false;\r\n this.audit = this.originalItems;\r\n\r\n }\r\n if (this.audit.length === 0) {\r\n this.myVar = false;\r\n this.noEntrys = true;\r\n }\r\n\r\n allFiltered = this.audit;\r\n\r\n if (1 > 0) {\r\n // this.audit= this.checkbox.filter(x=>x.accountNumber=='ASL016007' );\r\n this.filteredBySettlementAccount = allFiltered;\r\n this.audit = allFiltered;\r\n this.searchFilteredItems = allFiltered;\r\n // console.log('this.audit' + this.audit.length);\r\n } else {\r\n this.audit = this.originalItems;\r\n this.filteredBySettlementAccount = this.originalItems;\r\n }\r\n this.totalEntries = this.audit.length;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\r\n if (1 <= 0) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.originalItems;\r\n // console.log('this.audit' + this.audit.length);\r\n }\r\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.originalItems;\r\n this.totalEntries = this.originalItems.length;\r\n // console.log('this.audit' + this.audit.length);\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.searchFilteredItems;\r\n // console.log('this.audit' + this.audit.length);\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n });\r\n }\r\n FilterScurityTypeChange(checkbox, item, value) {\r\n this.checked = !value;\r\n // this.FilterScurityType(checkbox,item,this.checked)\r\n this.filterForSecurity(checkbox, item, this.checked);\r\n }\r\n filterForSecurity(checkbox, item, checked) {\r\n console.log(\"ASA\");\r\n console.log(this.originalItems);\r\n // this.result = this.settlementAccount.controls['accountNo'].value;\r\n this.checkbox = this.originalItems;\r\n let itemsToSearch = this.originalItems;\r\n this.result = checkbox;\r\n\r\n this.searchService.findItemsFromAccount('Discount', itemsToSearch, this.securityArray)\r\n .then(allFiltered => {\r\n if (checked) {\r\n if (item == 'Bonds') {\r\n this.myVar = false;\r\n this.myVar2 = true;\r\n this.checkbox = this.originalItems;\r\n this.audit = this.checkbox.filter(x => x.earningType == 'Interest' || x.earningType == 'Discount');\r\n\r\n }\r\n if (item == 'Equity') {\r\n this.myVar = true;\r\n this.checkbox = this.originalItems;\r\n this.audit = this.checkbox.filter(x => x.earningType == 'Equity' || x.earningType == 'Option' || x.earningType == '4X');\r\n\r\n }\r\n }\r\n else {\r\n this.myVar = false;\r\n this.myVar2 = false;\r\n this.audit = this.originalItems;\r\n\r\n }\r\n if (this.audit.length === 0) {\r\n this.myVar = false;\r\n this.noEntrys = true;\r\n }\r\n\r\n allFiltered = this.audit;\r\n\r\n if (1 > 0) {\r\n // this.audit= this.checkbox.filter(x=>x.accountNumber=='ASL016007' );\r\n this.filteredBySettlementAccount = allFiltered;\r\n this.audit = allFiltered;\r\n this.searchFilteredItems = allFiltered;\r\n // console.log('this.audit' + this.audit.length);\r\n } else {\r\n this.audit = this.originalItems;\r\n this.filteredBySettlementAccount = this.originalItems;\r\n }\r\n this.totalEntries = this.audit.length;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\r\n if (1 <= 0) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.originalItems;\r\n // console.log('this.audit' + this.audit.length);\r\n }\r\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.originalItems;\r\n this.totalEntries = this.originalItems.length;\r\n // console.log('this.audit' + this.audit.length);\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.searchFilteredItems;\r\n // console.log('this.audit' + this.audit.length);\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n });\r\n }\r\n\r\n searchText() {\r\n this.result = this.TextSearch.controls['term'].value;\r\n let itemsToSearch = this.filteredBySettlementAccount;\r\n this.searchService.findItemsFromMultiple(this.result, itemsToSearch, this.searchArray)\r\n .then(allFiltered => {\r\n console.log(allFiltered);\r\n if (this.result.length > 0) {\r\n this.audit = allFiltered;\r\n this.searchFilteredItems = allFiltered;\r\n } else {\r\n this.audit = this.filteredBySettlementAccount;\r\n }\r\n this.totalEntries = this.audit.length;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n if (!this.term.value) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.filteredBySettlementAccount;\r\n }\r\n this.audit = this.filteredBySettlementAccount.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.filteredBySettlementAccount;\r\n this.totalEntries = this.filteredBySettlementAccount.length;\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.searchFilteredItems;\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n });\r\n }\r\n filterForSA() {\r\n if (this.currentSAccount == 'Select account') {\r\n this.audit = this.originalItems;\r\n this.filteredBySettlementAccount = this.originalItems;\r\n this.totalEntries = this.audit.length;\r\n this.searchFilteredItems = this.audit;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.orderBy(this.currentSortOrder, this.audit.length);\r\n // this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n if (this.currentSAccount.length <= 0) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.originalItems;\r\n }\r\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.originalItems;\r\n this.totalEntries = this.originalItems.length;\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.searchFilteredItems;\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n }\r\n else {\r\n let itemsToSearch = this.originalItems;\r\n this.searchService.findItemsFromAccount(this.currentSAccount, itemsToSearch, this.accountsArray)\r\n .then(allFiltered => {\r\n if (this.currentSAccount.length > 0) {\r\n this.filteredBySettlementAccount = allFiltered;\r\n this.audit = allFiltered;\r\n this.searchFilteredItems = allFiltered;\r\n } else {\r\n this.audit = this.originalItems;\r\n this.filteredBySettlementAccount = this.originalItems;\r\n }\r\n this.totalEntries = this.audit.length;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.orderBy(this.currentSortOrder, this.audit.length);\r\n // this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n if (this.currentSAccount.length <= 0) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.originalItems;\r\n }\r\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.originalItems;\r\n this.totalEntries = this.originalItems.length;\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.searchFilteredItems;\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n // getDetailedPositions(){ \r\n // this.backendService.getData(`${this.apiUrl}/${this.authService.CustomerID}`)\r\n // .subscribe(data => {\r\n // this.detailedPositions = data['detailedPositions']; \r\n // });\r\n //} \r\n\r\n formatDataForSearch(data) {\r\n //console.log(data);\r\n let sum = 0;\r\n let sum1=0;\r\n for (var i = 0; i < data.length; i++) {\r\n //console.log(data[i].marketValueccy,data[i].marketValue);\r\n sum += +data[i].marketValueccy;\r\n //sum1 += +data[i].marketValue;\r\n } \r\n\r\n console.log(sum);\r\n console.log(sum1);\r\n // this.totalmarketvalue = sum;\r\n data.map(d => {\r\n\r\n //loop through and convert specific items that need it- others remain as-is\r\n d.quantityNominal = this.numberPipe.transform(d.quantityNominal, '1.2-2');\r\n //d.percentageGainOrLoss = data.percentageGainOrLoss * 100;\r\n // d.gainorloss = d.percentageGainOrLoss * 1000;\r\n // d.costBasis = this.numberPipe.transform(d.costBasis, '1.2-2');\r\n // d.currentShares = this.currencyPipe\r\n // .transform(d.currentShares, 'USD', false, '4.2-2')\r\n // .slice(3);\r\n });\r\n this.reportingCurrencyload(this.repocurrency);\r\n }\r\n selectSecondaryOrderByParam(value) {\r\n this.secondaryOrderByParam = value;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\n import { BackendService } from '../../shared/backend.service';\nimport CONFIG from '../../../config';\n import { AuthService } from '../../shared/auth.service';\n import { PageService, SortService, GroupService } from '@syncfusion/ej2-angular-grids';\n\n@Component({\n selector: 'app-fxforwards',\n templateUrl: './fxforwards.component.html',\n \n})\nexport class FxforwardsComponent implements OnInit {\n public data:any;\n public data1:any;\n facesum=[];\n principlesum=[];\n marketvalueccysum = [];\n marketvalueusdsum = [];\n originalItems: Object[] = [];\n repocurrency:any;\n areas: any[];\n totalEntries:any;\n loadingData:any;\n test:any;\n public pie_ChartOptions1 = {\n title: 'Asset Allocation Analysis',\n width: 600,\n height: 400,\n colors: ['#840058', '#dd0094', '#ea66be', '#f199d4', '#f8cce9', '#ffe6f7'],\n is3D: true,\n \n };\n constructor(\n// public location: Location,\n public backendService: BackendService,\n public authService: AuthService,\n ) { \n // backendService, authService,PageService, SortService, GroupService\n \n }\n\n ngOnInit() {\n\n \n this.getAccountsData();\n \n\n }\n getAccountsData() {\n \n this.backendService.getData(`${CONFIG.fxforwardsApiUrlBase}/${this.authService.CustomerID}`)\n .subscribe(responce => {\n \n console.log(responce);\n this.data= responce[\"fxforwards\"];\nthis.repocurrency=responce['repocurrecny'];\nconsole.log(this.repocurrency);\n \n console.log(this.data1);\n this.groupBy(this.data,\"fCurrency\");\n this.totalEntries = this.data.length;\n console.log(this.totalEntries);\n this.forTotal();\n \n \n })\n }\n\n// objectKey(obj) {\n// console.log(obj);\n// return Object.keys(obj);\n// }\n\n groupBy(array, group) {\n var hash = Object.create(null),\n result = [];\nthis.loadingData = true;\n array.forEach(function (a) {\n if (!hash[a[group]]) {\n hash[a[group]] = [];\n result.push(hash[a[group]]);\n }\n \n hash[a[group]].push(a);\n });\n this.data1= result;\n console.log(this.data1)\n}\n// GroupBy() {\n// this.data1= this.data.reduce((prev, now) => {\n// if (!prev[now.tradeDate]) {\n// prev[now.tradeDate] = [];\n// }\n// console.log(now);\n\n// prev[now.tradeDate].push(now);\n// console.log(prev);\n// return prev;\n// }, {});\n \n// console.log(this.data1);\n// /*\n// Now your data : { \"1050 AJ\": [ .... ], \"X332.0 AC\": [...], ... }\n// */\n\n// }\n\nforTotal(){\n this.formatDataForSearch(this.data1)\n for(let prop in this.data1){\n this.originalItems=this.data1[prop];\n let face=0;\n let principle=0;\n let marketvalueccy=0;\n let marketvalueusd=0;\n let currency;\n for(let prop1 in this.originalItems)\n { \n face+=+this.originalItems[prop1]['face'];\n principle+=+this.originalItems[prop1]['principal'];\n marketvalueccy+=+this.originalItems[prop1]['marketValue'];\n let test=this.originalItems[prop1]['marketValue']*this.originalItems[prop1]['exchange'];\n marketvalueusd+=+test;\n // currency=this.originalItems[prop1]['fCurrency'];\n \n }\n \n this.facesum.push(face);\n this.principlesum.push(principle);\n this.marketvalueccysum.push(marketvalueccy);\n this.marketvalueusdsum.push(marketvalueusd);\n \n\n \n \n \n }\n \n}\nformatDataForSearch(data) {\n console.log(data);\n }\n}\n","import { Component, OnInit,OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport CONFIG from '../../../config';\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\nimport { Location, DecimalPipe, CurrencyPipe } from '@angular/common';\nimport { MultiColumnGridService } from '../../shared/multi-column-grid.service';\nimport { AccountService } from '../../shared/account.service';\nimport { AuthService } from '../../shared/auth.service';\nimport { BackendService } from '../../shared/backend.service';\nimport { FilterService } from '../../shared/filter.service';\nimport { NotificationService } from '../../notification/notification.service';\nimport { OrderByService } from '../../shared/orderby.service';\nimport { PaginationService } from '../../shared/pagination.service';\nimport { SearchService } from '../../shared/search.service';\nimport { Subscription } from 'rxjs/Subscription';\n\n@Component({\n selector: 'app-positions',\n templateUrl: './positions-container.component.html',\n styleUrls: ['./positions.component.scss'],\n providers: [DecimalPipe, PaginationService]\n\n})\nexport class PositionsContainerComponent extends MultiColumnGridService implements OnInit {\ncurrency: any;\n totalmarketvalue: any;\n fxcount:any;\n FilterByStatus: FormGroup;\n\n constructor( public location: Location,\n public backendService: BackendService,\n public authService: AuthService,\n public accountService: AccountService,\n public notificationService: NotificationService,\n public formBuilder: FormBuilder,\n public searchService: SearchService,\n public orderByService: OrderByService,\n public router: Router,\n public paginationService: PaginationService,\n public filterService: FilterService,\n public numberPipe: DecimalPipe,\n public currencyPipe: CurrencyPipe) {\n super(location, backendService, authService, notificationService, formBuilder,\n searchService, orderByService, router, paginationService, currencyPipe, filterService);\n }\n ngOnInit() {\n console.log(\"testFX\");\n this.apiUrl = CONFIG.positionsApiUrlBase;\n this.getFX();\n // this.FilterByStatus = this.formBuilder.group({\n // '_currency': []\n // });\n \n }\n \n\n getFX() {\n console.log(\"into the medthod\");\n\n this.backendService.getData(CONFIG.getAccountsFxcount)\n .subscribe(data =>{\n console.log(data);\n this.fxcount = data;\n \n\n console.log(this.fxcount);\n });\n\n }\n \n\n\n}","export default \"mat-progress-bar.my-color .mat-progress-bar-fill::after {\\n background-color: #dd0094;\\n color: #dd0094;\\n}\\n\\n.clordfilafter {\\n background-color: #dd0094;\\n color: #dd0094;\\n}\\n\\n.mat-progress-bar-buffer {\\n background-color: #dd0094;\\n color: #dd0094;\\n}\\n\\nmat-progress-bar.my-color .mat-progress-bar-fill::after {\\n background-color: #dd0094;\\n color: #dd0094;\\n}\\n\\n.clordfilafter {\\n background-color: #dd0094;\\n color: #dd0094;\\n}\\n\\n.mat-progress-bar-buffer {\\n background-color: #dd0094;\\n color: #dd0094;\\n}\\n\\n.fl-rt {\\n float: right;\\n}\\n\\n.cancel {\\n cursor: pointer;\\n font-size: 1.2rem;\\n opacity: 0.75;\\n -webkit-transition: opacity 0.3s ease;\\n transition: opacity 0.3s ease;\\n}\\n\\n.cancel:hover {\\n opacity: 1;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWVudS9wb3NpdGlvbnMvRTpcXFNWTlxcQXJiaXRyYWxcXEZyb250ZW5kL3NyY1xcYXBwXFxtZW51XFxwb3NpdGlvbnNcXHBvc2l0aW9ucy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWVudS9wb3NpdGlvbnMvcG9zaXRpb25zLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQUE7RUFDQSxjQUFBO0FDQ0Y7O0FERUE7RUFDRSx5QkFBQTtFQUNBLGNBQUE7QUNDRjs7QURDQTtFQUNFLHlCQUFBO0VBQ0EsY0FBQTtBQ0VGOztBRENBO0VBQ0UseUJBQUE7RUFDQSxjQUFBO0FDRUY7O0FEQ0E7RUFDRSx5QkFBQTtFQUNBLGNBQUE7QUNFRjs7QURBQTtFQUNFLHlCQUFBO0VBQ0EsY0FBQTtBQ0dGOztBREFBO0VBQ0ssWUFBQTtBQ0dMOztBRERDO0VBQ0ksZUFBQTtFQUNBLGlCQUFBO0VBQ0EsYUFBQTtFQUNBLHFDQUFBO0VBQUEsNkJBQUE7QUNJTDs7QURGQztFQUNJLFVBQUE7QUNLTCIsImZpbGUiOiJzcmMvYXBwL21lbnUvcG9zaXRpb25zL3Bvc2l0aW9ucy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIm1hdC1wcm9ncmVzcy1iYXIubXktY29sb3IgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICAjZGQwMDk0O1xyXG4gIGNvbG9yOiNkZDAwOTQ7XHJcbn1cclxuXHJcbi5jbG9yZGZpbGFmdGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgI2RkMDA5NDtcclxuICBjb2xvcjojZGQwMDk0O1xyXG59XHJcbi5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlcntcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgI2RkMDA5NDtcclxuICBjb2xvcjojZGQwMDk0O1xyXG59XHJcblxyXG5tYXQtcHJvZ3Jlc3MtYmFyLm15LWNvbG9yIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgI2RkMDA5NDtcclxuICBjb2xvcjojZGQwMDk0O1xyXG59XHJcblxyXG4uY2xvcmRmaWxhZnRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogICNkZDAwOTQ7XHJcbiAgY29sb3I6I2RkMDA5NDtcclxufVxyXG4ubWF0LXByb2dyZXNzLWJhci1idWZmZXJ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogICNkZDAwOTQ7XHJcbiAgY29sb3I6I2RkMDA5NDtcclxufVxyXG5cclxuLmZsLXJ0IHtcclxuICAgICBmbG9hdDogcmlnaHQ7XHJcbiB9XHJcbiAuY2FuY2VsIHtcclxuICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICAgb3BhY2l0eTogMC43NTtcclxuICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcclxuIH1cclxuIC5jYW5jZWw6aG92ZXIge1xyXG4gICAgIG9wYWNpdHk6IDE7XHJcbiB9XHJcbiBcclxuXHJcbiBcclxuIiwibWF0LXByb2dyZXNzLWJhci5teS1jb2xvciAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZDAwOTQ7XG4gIGNvbG9yOiAjZGQwMDk0O1xufVxuXG4uY2xvcmRmaWxhZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZDAwOTQ7XG4gIGNvbG9yOiAjZGQwMDk0O1xufVxuXG4ubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGQwMDk0O1xuICBjb2xvcjogI2RkMDA5NDtcbn1cblxubWF0LXByb2dyZXNzLWJhci5teS1jb2xvciAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZDAwOTQ7XG4gIGNvbG9yOiAjZGQwMDk0O1xufVxuXG4uY2xvcmRmaWxhZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZDAwOTQ7XG4gIGNvbG9yOiAjZGQwMDk0O1xufVxuXG4ubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGQwMDk0O1xuICBjb2xvcjogI2RkMDA5NDtcbn1cblxuLmZsLXJ0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uY2FuY2VsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgb3BhY2l0eTogMC43NTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG59XG5cbi5jYW5jZWw6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufSJdfQ== */\"","import CONFIG from '../../../config';\r\nimport * as json2csv from 'json2csv';\r\n//import { json2csv } from 'json2csv/index';\r\n\r\nimport { Component, OnInit, OnDestroy, Input } from '@angular/core';\r\nimport { Location, DecimalPipe, CurrencyPipe } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\r\n\r\nimport { MultiColumnGridService } from '../../shared/multi-column-grid.service';\r\nimport { AccountService } from '../../shared/account.service';\r\nimport { AuthService } from '../../shared/auth.service';\r\nimport { BackendService } from '../../shared/backend.service';\r\nimport { FilterService } from '../../shared/filter.service';\r\nimport { NotificationService } from '../../notification/notification.service';\r\nimport { OrderByService } from '../../shared/orderby.service';\r\nimport { PaginationService } from '../../shared/pagination.service';\r\nimport { SearchService } from '../../shared/search.service';\r\nimport { Utilities } from '../../shared/utilities.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { resolve } from 'path';\r\nimport { Angular5Csv } from 'angular5-csv/dist/Angular5-csv';\r\n\r\n@Component({\r\n selector: 'app-positions',\r\n templateUrl: './positions.component.html',\r\n styleUrls: ['./positions.component.scss'],\r\n providers: [DecimalPipe, PaginationService]\r\n})\r\nexport class PositionsComponent extends MultiColumnGridService implements OnInit, OnDestroy {\r\n @Input()\r\n names: any;\r\n currentSettlementAccountSubscription: Subscription;\r\n currentSAccount;\r\n loadingStatusSubscription: Subscription;\r\n afterfilterd: Object[] = [];\r\n active: string = '';\r\n areas: any[];\r\n areas1: any[];\r\n account: any;\r\n securitytype: any;\r\n currencychart: any;\r\n currency: any;\r\n securityType: any;\r\n google: any;\r\n count: number = 0;\r\n portfolio: number = 0;\r\n portfoliototal: number = 0;\r\n totalamountleft: number = 0;\r\n totalamountright: number = 0;\r\n totalcash: number = 0;\r\n count1: number = 0;\r\n accounts: any;\r\n optionsUser: Array = [];\r\n originalLog: Array = [];\r\n result: string = '';\r\n preFilteredLog: Array = [];\r\n scc: any;\r\n positionsFilter;\r\n accountnumber: string;\r\n chartsOpen: boolean = false;\r\n filtersOpen: boolean = false;\r\n test: any;\r\n homeaudit: any;\r\n grid: any;\r\n checkbox: any;\r\n checked: boolean = true;\r\n checked1: boolean = true;\r\n myVar: boolean = false;\r\n myVar1: boolean = false;\r\n myVar2: boolean = false;\r\n originalItemsforexport: Object[] = [];\r\n aniltst: any;\r\n\r\n\r\n public pie_ChartOptions = {\r\n title: 'By Security Type',\r\n width: 400,\r\n height: 400,\r\n colors: ['#0038c3', '#906cf7', '#3f9697', '#1d69f6', '#62c9ca', '#58c89d', '#c06a26', '#64c74d', '#656795', '#ed4b96', '#ed4a97', '#80807f', '#347f7f', '#296419', '#3b66c6', '#bc271a', '#ee5e58', '#90fa5b', '#bb2fc4', '#bc2fc5', '#c69a33', '#42962a', '#fffd55', '#5d1262', '#61360f', '#cccdfb', '#cccdfc', '#7ccafa', '#5c1fc3', '#8d1c35', '#5f5e5f', '#a3c93e', '#62c9cb', '#fffea5', '#b0fca4', '#f2a0fa', '#f39d6f'],\r\n is3D: true,\r\n };\r\n\r\n public pie_ChartOptions1 = {\r\n title: 'By Currency',\r\n width: 400,\r\n height: 400,\r\n colors: ['#0038c3', '#906cf7', '#3f9697', '#1d69f6', '#62c9ca', '#58c89d', '#c06a26', '#64c74d', '#656795', '#ed4b96', '#ed4a97', '#80807f', '#347f7f', '#296419', '#3b66c6', '#bc271a', '#ee5e58', '#90fa5b', '#bb2fc4', '#bc2fc5', '#c69a33', '#42962a', '#fffd55', '#5d1262', '#61360f', '#cccdfb', '#cccdfc', '#7ccafa', '#5c1fc3', '#8d1c35', '#5f5e5f', '#a3c93e', '#62c9cb', '#fffea5', '#b0fca4', '#f2a0fa', '#f39d6f'],\r\n is3D: true,\r\n };\r\n\r\n constructor(\r\n\r\n public location: Location,\r\n public backendService: BackendService,\r\n public authService: AuthService,\r\n public accountService: AccountService,\r\n public notificationService: NotificationService,\r\n public formBuilder: FormBuilder,\r\n public searchService: SearchService,\r\n public orderByService: OrderByService,\r\n public router: Router,\r\n public paginationService: PaginationService,\r\n public filterService: FilterService,\r\n public numberPipe: DecimalPipe,\r\n public currencyPipe: CurrencyPipe\r\n\r\n\r\n ) {\r\n super(location, backendService, authService, notificationService, formBuilder,\r\n searchService, orderByService, router, paginationService, currencyPipe, filterService);\r\n }\r\n ngOnInit() {\r\n this.currentPage = 'positions';\r\n this.myVar = true;\r\n this.myVar1 = true;\r\n this.myVar2 = false;\r\n this.currentSettlementAccountSubscription = this.accountService.currentSettlementAccountChange$.subscribe(currentSettlementAccount => this.currentSettlementAccountChange(currentSettlementAccount));\r\n this.currentSAccount = this.accountService.currentSettlementAccount;\r\n console.log(this.currentSAccount);\r\n this.loadingStatusSubscription = this.loadingDataChange$.subscribe(loadingDataStatus => this.initFilterForSA(loadingDataStatus));\r\n\r\n\r\n this.apiUrl = CONFIG.positionsApiUrlBase;\r\n this.searchArray = ['accountNumber', 'primaryCustomer', 'transactionNumber', 'securityIDType', 'isin', 'securityCategory', 'purchPrice', 'purchValue', 'marketValue', 'percentageGainOrLoss', 'accruedInterest', 'face', 'description', 'currency'];\r\n this.accountsArray = ['accountNumber'];\r\n this.securityArray = ['earningType'];\r\n this.fields = ['accountNumber', 'currency', 'marketValue', 'purchValue', 'securityIDType', 'transactionNumber', 'securityCategory', 'primaryCustomer', 'description', 'isin', 'purchasePrice', 'marketPrice', 'percentageGainOrLoss', 'face', 'accruedInterest'];\r\n //this.fieldNames = ['AccountNumber', 'PrimaryCustomer', 'TransactionNumber', 'SecurityIDType', 'ISIN', 'Security Type', 'Security Name', 'Quantity/Nominal', 'Cost Price', 'PurchValue', 'PercentageGainOrLoss', 'MarketValue', 'AccruedInterest', 'MarketPrice', 'Earning Type','Currency'];\r\n this.fieldNames = ['AccountNumber', 'ISIN', 'SecurityCategory', 'Description', 'Quantity', 'Cost', 'Cost Value', 'MarketValue', 'AccruedInterest', 'MarketPrice', 'Currency'];\r\n this.defaultSortOrder = 'currency';\r\n\r\n this.serviceInit(this.formatDataForSearch);\r\n this.getAccountsDropdowns();\r\n this.getValue();\r\n this.getAccountsData();\r\n //this.FilterByStatus = this.formBuilder.group({\r\n // '_currency': []\r\n // });\r\n // this.FilterByStatus.controls['_currency'].setValue('USD')\r\n // this.selectedCurrency = 'USD';\r\n // this.filterCurrency();\r\n this.getCurrencyDropdowns();\r\n // this.serviceInit(this.formatDataForSearch);\r\n\r\n\r\n\r\n this.FilterByStatus = this.formBuilder.group({\r\n 'accountNumber': [],\r\n '_currency': []\r\n });\r\n }\r\n\r\n\r\n exportDataOptions(submittedData?: Object[]) {\r\n\r\n\r\n let name = 'Positions';\r\n let heading = 'Positions CSV';\r\n console.log(this.originalItems)\r\n this.originalItemsforexport = JSON.parse(JSON.stringify(this.exportItems));\r\n // Object.assign([], this.exportItems);\r\n var test = this.originalItemsforexport;\r\n console.log(this.originalItemsforexport)\r\n test.forEach((value, index\r\n ) => {\r\n \r\n delete test[index]['primaryCustomer'];\r\n delete test[index]['transactionNumber'];\r\n delete test[index]['securityIDType'];\r\n delete test[index]['fxRate'];\r\n delete test[index]['earningType'];\r\n delete test[index]['percentageGainOrLoss']\r\n \r\n })\r\n console.log(this.originalItemsforexport)\r\n const data = test;\r\n this.exportData(data, name, heading);\r\n \r\n\r\n }\r\n formatDataForExport(data) {\r\n // console.log(data);\r\n data.map(d => {\r\n delete d.primaryCustomer;\r\n //loop through and convert specific items that need it- others remain as-is\r\n // d.quantityNominal = this.numberPipe.transform(d.quantityNominal, '1.2-2');\r\n //d.originalCost = this.numberPipe.transform(d.originalCost, '1.2-2');\r\n // d.costBasis = this.numberPipe.transform(d.costBasis, '1.2-2');\r\n // d.currentShares = this.currencyPipe\r\n // .transform(d.currentShares, 'USD', false, '4.2-2')\r\n // .slice(3);\r\n });\r\n console.log(data);\r\n }\r\n filterOpenMethod() {\r\n if (this.filtersOpen == false) {\r\n this.filtersOpen = true;\r\n this.clearRadioSearch()\r\n }\r\n else {\r\n this.filtersOpen = false;\r\n this.clearRadioSearch()\r\n }\r\n }\r\n FilterScurityTypeChanges(value) {\r\n console.log(value);\r\n this.filterForSecuritys(value);\r\n }\r\n filterForSecuritys(value) {\r\n\r\n console.log(this.originalItems);\r\n this.checkbox = this.originalItems;\r\n let itemsToSearch = this.originalItems;\r\n\r\n this.searchService.findItemsFromAccount('Discount', itemsToSearch, this.securityArray)\r\n .then(allFiltered => {\r\n if (value) {\r\n if (value == 'Bonds') {\r\n this.myVar = false;\r\n this.myVar2 = true;\r\n this.checkbox = this.originalItems;\r\n this.audit = this.checkbox.filter(x => x.earningType == 'Interest' || x.earningType == 'Discount');\r\n\r\n }\r\n if (value == 'Equity') {\r\n this.myVar = true;\r\n this.checkbox = this.originalItems;\r\n this.audit = this.checkbox.filter(x => x.earningType == 'Equity' || x.earningType == 'Option' || x.earningType == '4X');\r\n\r\n }\r\n\r\n }\r\n else {\r\n this.myVar = false;\r\n this.myVar2 = false;\r\n this.audit = this.originalItems;\r\n\r\n }\r\n if (this.audit.length === 0) {\r\n this.myVar = false;\r\n this.noEntrys = true;\r\n }\r\n\r\n allFiltered = this.audit;\r\n\r\n if (1 > 0) {\r\n // this.audit= this.checkbox.filter(x=>x.accountNumber=='ASL016007' );\r\n this.filteredBySettlementAccount = allFiltered;\r\n this.audit = allFiltered;\r\n this.searchFilteredItems = allFiltered;\r\n // console.log('this.audit' + this.audit.length);\r\n } else {\r\n this.audit = this.originalItems;\r\n this.filteredBySettlementAccount = this.originalItems;\r\n }\r\n this.totalEntries = this.audit.length;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\r\n if (1 <= 0) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.originalItems;\r\n // console.log('this.audit' + this.audit.length);\r\n }\r\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.originalItems;\r\n this.totalEntries = this.originalItems.length;\r\n // console.log('this.audit' + this.audit.length);\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.searchFilteredItems;\r\n // console.log('this.audit' + this.audit.length);\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n });\r\n }\r\n\r\n FilterSecurityTypeChange(checkbox, item, value) {\r\n\r\n // this.FilterScurityType(checkbox,item,this.checked)\r\n this.filterForSecurity(checkbox, item, value);\r\n }\r\n filterForSecurity(checkbox, item, checked) {\r\n console.log(checkbox, item, checked);\r\n this.checked = !checked;\r\n this.checked1 = !checked;\r\n console.log(\"ASA\");\r\n // this.result = this.settlementAccount.controls['accountNo'].value;\r\n this.checkbox = this.originalItems;\r\n let itemsToSearch = this.originalItems;\r\n this.result = checkbox;\r\n\r\n this.searchService.findItemsFromAccount('Discount', itemsToSearch, this.securityArray)\r\n .then(allFiltered => {\r\n\r\n console.log(checked);\r\n if (checked) {\r\n if (item == 'Bonds' && this.checked == true && this.checked1 == false) {\r\n console.log('Bonds');\r\n this.myVar = false;\r\n this.myVar2 = true;\r\n this.checkbox = this.originalItems;\r\n this.audit = this.checkbox.filter(x => x.earningType == 'Interest' || x.earningType == 'Discount');\r\n\r\n }\r\n if (item == 'Equity' && this.checked1 == true && this.checked == false) {\r\n console.log('Equity');\r\n this.myVar1 = false;\r\n this.myVar2 = true;\r\n this.checkbox = this.originalItems;\r\n this.audit = this.checkbox.filter(x => x.earningType == 'Equity' || x.earningType == 'Option' || x.earningType == '4X');\r\n\r\n }\r\n\r\n }\r\n else {\r\n this.myVar2 = false;\r\n this.myVar = true;\r\n this.myVar1 = true;\r\n this.audit = this.originalItems;\r\n\r\n }\r\n if (this.audit.length === 0) {\r\n this.noEntrys = true;\r\n }\r\n\r\n allFiltered = this.audit;\r\n\r\n if (1 > 0) {\r\n // this.audit= this.checkbox.filter(x=>x.accountNumber=='ASL016007' );\r\n this.filteredBySettlementAccount = allFiltered;\r\n this.audit = allFiltered;\r\n this.searchFilteredItems = allFiltered;\r\n // console.log('this.audit' + this.audit.length);\r\n } else {\r\n this.audit = this.originalItems;\r\n this.filteredBySettlementAccount = this.originalItems;\r\n }\r\n this.totalEntries = this.audit.length;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\r\n if (1 <= 0) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.originalItems;\r\n // console.log('this.audit' + this.audit.length);\r\n }\r\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.originalItems;\r\n this.totalEntries = this.originalItems.length;\r\n // console.log('this.audit' + this.audit.length);\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.searchFilteredItems;\r\n // console.log('this.audit' + this.audit.length);\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n });\r\n }\r\n\r\n initFilterForSA(loadingDataStatus) {\r\n this.filterForSA();\r\n }\r\n ngOnDestroy() {\r\n if (this.currentSettlementAccountSubscription) { this.currentSettlementAccountSubscription.unsubscribe(); }\r\n }\r\n currentSettlementAccountChange(value) {\r\n\r\n this.currentSAccount = value;\r\n this.accountNo.setValue(value);\r\n this.term.setValue('');\r\n this.filterForSA();\r\n }\r\n getPiechartsData() {\r\n let myArray = [[]];\r\n this.areas = new Array();\r\n let row: any = new Array();\r\n\r\n row.push(['Task', 'Asset Allocation Analysis']);\r\n // console.log(this.securitytype);\r\n\r\n for (var i = 0; i < this.securitytype.length; i++) {\r\n this.count = this.count + 1;\r\n row.push([this.securitytype[i].type, this.securitytype[i].count]);\r\n myArray.push(row);\r\n this.areas = myArray[i];\r\n }\r\n let myArray1 = [[]];\r\n this.areas1 = new Array();\r\n let row1: any = new Array();\r\n row1.push(['Task', 'Asset Allocation Analysis']);\r\n for (var j = 0; j < this.currencychart.length; j++) {\r\n row1.push([this.currencychart[j].type, this.currencychart[j].count]);\r\n myArray1.push(row1);\r\n }\r\n this.areas1 = myArray1[this.count1];\r\n // console.log(this.areas1);\r\n }\r\n getCurrencyDropdowns() {\r\n this.backendService.getData(CONFIG.getWEBCurrencyDropdowns)\r\n\r\n .subscribe(data => {\r\n // console.log(data);\r\n this.currency = data;\r\n\r\n //console.log(this.currency);\r\n });\r\n }\r\n getAccountsData() {\r\n this.backendService.getData(`${this.apiUrl}/charts/${this.authService.CustomerID}`)\r\n .subscribe(data => {\r\n this.securitytype = data[\"securitytypechart\"];\r\n this.currencychart = data[\"currencychart\"];\r\n var numRows = this.securitytype.length;\r\n var numRowsj = this.currencychart.length;\r\n\r\n // console.log(this.securitytype, this.currencychart);\r\n if (this.securitytype[0]) {\r\n var numCols: number = this.securitytype[0].length;\r\n } else {\r\n var numCols: number = 0;\r\n };\r\n\r\n let myArray = [[]];\r\n this.areas = new Array();\r\n let row: any = new Array();\r\n row.push(['Task', 'Asset Allocation Analysis']);\r\n\r\n for (var i = 0; i < numRows; i++) {\r\n\r\n row.push([this.securitytype[i].type, this.securitytype[i].count]);\r\n //row1.push([this.currency[i].type, this.currency[i].count]);\r\n\r\n myArray.push(row);\r\n // myArray1.push(row1);\r\n\r\n this.areas = myArray[i];\r\n //this.areas1 = myArray1[i];\r\n // console.log(this.areas);\r\n }\r\n\r\n\r\n let myArray1 = [[]];\r\n this.areas1 = new Array();\r\n let row1: any = new Array();\r\n row1.push(['Task', 'Asset Allocation Analysis']);\r\n\r\n for (var j = 0; j < numRowsj; j++) {\r\n this.count1 = this.count1 + 1;\r\n // row.push([this.securitytype[i].type, this.securitytype[i].count]);\r\n row1.push([this.currencychart[j].type, this.currencychart[j].count]);\r\n\r\n // myArray.push(row);\r\n myArray1.push(row1);\r\n\r\n // this.areas = myArray[i];\r\n this.areas1 = myArray1[this.count1];\r\n // console.log(this.areas1);\r\n }\r\n\r\n });\r\n }\r\n getAccountsDropdowns() {\r\n this.backendService.getData(`${CONFIG.getAccountsDropdowns}/${this.authService.CustomerID}`)\r\n .subscribe(data => {\r\n this.accounts = data;\r\n this.totalEntries = this.accounts.length;\r\n });\r\n // this.backendService.getData(`${CONFIG.getAccountsDropdowns}/${this.authService.CustomerID}`)\r\n // // .subscribe(response => {\r\n // // this.accounts = response.map(item => item);\r\n // .subscribe((responce: any) => {\r\n // this.accounts = responce.result;\r\n\r\n // });\r\n }\r\n getValue() {\r\n return this.accounts;\r\n\r\n }\r\n\r\n setFilterDropdownOptions() {\r\n this.accounts = this.accounts\r\n .map(entry => entry['accountNumber'])\r\n .filter((name, index, arr) => {\r\n return index === arr.indexOf(name);\r\n });\r\n this.accounts.unshift('Filter by Email');\r\n this.resetAuditListing();\r\n }\r\n resetAuditListing() {\r\n\r\n\r\n this.filterApplied = false;\r\n\r\n this.FilterByStatus.controls['accountNumber'].setValue('');\r\n setTimeout(() => {\r\n this.audit = this.originalLog.slice(this.entryRange[0], this.entryRange[1]);\r\n this.preFilteredLog = this.originalLog;\r\n this.clearSearch();\r\n this.setGrid(1, this.audit.length);\r\n }, 0);\r\n }\r\n\r\n searchText() {\r\n console.log(\"search\");\r\n this.result = this.TextSearch.controls['term'].value;\r\n let itemsToSearch = this.filteredBySettlementAccount;\r\n console.log(this.result, itemsToSearch, this.searchArray);\r\n this.searchService.findItemsFromMultiple(this.result, itemsToSearch, this.searchArray)\r\n .then(allFiltered => {\r\n if (this.result.length > 0) {\r\n this.audit = allFiltered;\r\n this.searchFilteredItems = allFiltered;\r\n } else {\r\n this.audit = this.filteredBySettlementAccount;\r\n }\r\n this.totalEntries = this.audit.length;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n // console.log(this.audit);\r\n // console.log(this.audit.length);\r\n this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\r\n if (!this.term.value) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.filteredBySettlementAccount;\r\n }\r\n this.audit = this.filteredBySettlementAccount.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.filteredBySettlementAccount;\r\n this.totalEntries = this.filteredBySettlementAccount.length;\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.searchFilteredItems;\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n });\r\n }\r\n filterForSA() {\r\n console.log(this.originalItems);\r\n console.log(this.currentSAccount);\r\n if (this.currentSAccount == 'Select account') {\r\n this.audit = this.originalItems;\r\n this.filteredBySettlementAccount = this.originalItems;\r\n this.totalEntries = this.audit.length;\r\n this.searchFilteredItems = this.audit;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.orderBy(this.currentSortOrder, this.audit.length);\r\n // this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\r\n if (1 <= 0) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.originalItems;\r\n // console.log('this.audit' + this.audit.length);\r\n }\r\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.originalItems;\r\n this.totalEntries = this.originalItems.length;\r\n // console.log('this.audit' + this.audit.length);\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.searchFilteredItems;\r\n // console.log('this.audit' + this.audit.length);\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n }\r\n else {\r\n this.checkbox = this.originalItems;\r\n let itemsToSearch = this.originalItems;\r\n this.searchService.findItemsFromAccount(this.currentSAccount, itemsToSearch, this.accountsArray)\r\n .then(allFiltered => {\r\n // console.log(allFiltered);\r\n if (this.currentSAccount.length > 0) {\r\n // this.audit= this.checkbox.filter(x=>x.accountNumber=='ASL016007' );\r\n this.filteredBySettlementAccount = allFiltered;\r\n this.audit = allFiltered;\r\n this.searchFilteredItems = allFiltered;\r\n // console.log('this.audit' + this.audit.length);\r\n } else {\r\n this.audit = this.originalItems;\r\n this.filteredBySettlementAccount = this.originalItems;\r\n }\r\n this.totalEntries = this.audit.length;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.orderBy(this.currentSortOrder, this.audit.length);\r\n // this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\r\n if (this.currentSAccount.length <= 0) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.originalItems;\r\n // console.log('this.audit' + this.audit.length);\r\n }\r\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.originalItems;\r\n this.totalEntries = this.originalItems.length;\r\n // console.log('this.audit' + this.audit.length);\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.searchFilteredItems;\r\n // console.log('this.audit' + this.audit.length);\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n }\r\n reportingCurrencyload(currency) {\r\n console.log(currency + 'Anil');\r\n this.FilterByStatus.controls['_currency'].setValue(currency);\r\n // console.log(currency);\r\n // console.log(this.exchangerate);\r\n // console.log(this.accuredintrest);\r\n // console.log(this.originalItems);\r\n // console.log(this.originalItems[0]['transactionNumber'], this.originalItems[0]['currency']);\r\n\r\n for (let prop in this.originalItems) {\r\n\r\n\r\n let currencyfrom = this.originalItems[prop]['currency'];\r\n let currencyto = currency;\r\n // console.log(this.exchangerate);\r\n // console.log( this.originalItems[prop]['currency'],currency );\r\n\r\n\r\n let valueexchange = this.exchangerate.filter(x => x.currencyFrom == this.originalItems[prop]['currency'] && x.currencyTo == currency);\r\n // console.log(valueexchange);\r\n\r\n let valueaccured = this.accuredintrest.filter(x => x.transactionumber == this.originalItems[prop]['transactionNumber']);\r\n if (valueexchange != null && valueexchange.length != 0) {\r\n // console.log(valueexchange.length);\r\n\r\n this.originalItems[prop]['fxRate'] = valueexchange[0].exchageRate;\r\n\r\n //putting comment section Na values on export\r\n // this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] * valueexchange[0].exchageRate;\r\n\r\n\r\n // if (currencyfrom == \"AUD\" || currencyfrom == \"NZD\" || currencyfrom == \"GBP\" || currencyfrom == \"EUR\") {\r\n\r\n // this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] / valueexchange[0].exchageRate;\r\n\r\n\r\n // }\r\n // else {\r\n\r\n // this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] * valueexchange[0].exchageRate;\r\n\r\n // }\r\n }\r\n\r\n // if (valueaccured != null && valueaccured.length != 0)\r\n // {\r\n // this.originalItems[prop]['accruedInterestccy']=valueaccured[0].accruedInterest;\r\n\r\n\r\n // this.originalItems[prop]['accruedInterest']=valueaccured[0].accruedInterest* valueexchange[0].exchageRate;\r\n // // if (currencyfrom== \"AUD\" || currencyfrom == \"NZD\" || currencyfrom == \"GBP\" ||currencyfrom== \"EUR\")\r\n // // {\r\n // // this.originalItems[prop]['accruedInterest']=valueaccured[0].accruedInterest/valueexchange[0].exchageRate;\r\n // // } \r\n // // else{\r\n // // this.originalItems[prop]['accruedInterest']=valueaccured[0].accruedInterest* valueexchange[0].exchageRate;\r\n // // }\r\n // }\r\n\r\n\r\n }\r\n }\r\n filterCurrency(value) {\r\n // console.log(value);\r\n // console.log(this.FilterByStatus.controls['_currency'].value);\r\n this.reportingCurrency(value)\r\n\r\n }\r\n reportingCurrency(currency) {\r\n\r\n console.log(currency);\r\n console.log(this.exchangerate);\r\n console.log(this.accuredintrest);\r\n console.log(this.originalItems);\r\n console.log(this.originalItems[0]['transactionNumber'], this.originalItems[0]['currency']);\r\n\r\n for (let prop in this.originalItems) {\r\n\r\n let currencyfrom = this.originalItems[prop]['currency'];\r\n let currencyto = currency;\r\n\r\n let valueexchange = this.exchangerate.filter(x => x.currencyFrom == this.originalItems[prop]['currency'] && x.currencyTo == currency);\r\n let valueaccured = this.accuredintrest.filter(x => x.transactionumber == this.originalItems[prop]['transactionNumber']);\r\n console.log(valueaccured);\r\n if (valueexchange != null) {\r\n if (valueexchange[0].exchageRate > 1) {\r\n this.originalItems[prop]['fxRate'] = 1 / valueexchange[0].exchageRate;\r\n\r\n }\r\n this.originalItems[prop]['fxRate'] = valueexchange[0].exchageRate;\r\n\r\n // if (currencyfrom == \"AUD\" || currencyfrom == \"NZD\" || currencyfrom == \"GBP\" || currencyfrom == \"EUR\") {\r\n // if(this.originalItems[prop]['transactionNumber']== \"115609\")\r\n // {\r\n // console.log(\"marketValue\"+this.originalItems[prop]['marketValue'],this.originalItems[prop]['marketValueccy']); \r\n // console.log(\"exchage rate\"+valueexchange[0].exchageRate);\r\n // console.log(\"currency\"+this.originalItems[prop]['currency'])\r\n // }\r\n // this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] / valueexchange[0].exchageRate;\r\n\r\n // if(this.originalItems[prop]['transactionNumber']== \"115609\")\r\n // {\r\n // console.log(\"marketValue\"+this.originalItems[prop]['marketValue']); \r\n // console.log(\"exchage rate\"+valueexchange[0].exchageRate);\r\n // console.log(\"currency\"+this.originalItems[prop]['currency'])\r\n // }\r\n\r\n // }\r\n // else {\r\n // console.log(this.originalItems[prop]['marketValue']);\r\n console.log('!!!!!!!!');\r\n console.log(this.originalItems[prop]['accruedInterestccy']);\r\n this.originalItems[prop]['marketValue'] = this.originalItems[prop]['marketValueccy'] * valueexchange[0].exchageRate;\r\n //console.log(this.originalItems[prop]['marketValue']);\r\n // }\r\n }\r\n\r\n if (valueaccured.length != 0) {\r\n console.log('!!!!!!!!');\r\n console.log(this.originalItems[prop]);\r\n this.originalItems[prop]['accruedInterestccy'] = valueaccured[0].accruedInterest;\r\n if (currencyfrom == \"AUD\" || currencyfrom == \"NZD\" || currencyfrom == \"GBP\" || currencyfrom == \"EUR\") {\r\n this.originalItems[prop]['accruedInterest'] = valueaccured[0].accruedInterest / valueexchange[0].exchageRate;\r\n console.log(this.originalItems[prop]['accruedInterest']);\r\n }\r\n else {\r\n this.originalItems[prop]['accruedInterest'] = valueaccured[0].accruedInterest * valueexchange[0].exchageRate;\r\n console.log(this.originalItems[prop]['accruedInterest']);\r\n }\r\n }\r\n\r\n\r\n }\r\n this.audit = this.originalItems;\r\n this.totalEntries = this.audit.length;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\r\n if (1 <= 0) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.originalItems;\r\n // console.log('this.audit' + this.audit.length);\r\n }\r\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.originalItems;\r\n this.totalEntries = this.originalItems.length;\r\n // console.log('this.audit' + this.audit.length);\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.searchFilteredItems;\r\n // console.log('this.audit' + this.audit.length);\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n formatDataForSearch(data) {\r\n // console.log(data);\r\n data.map(d => {\r\n //loop through and convert specific items that need it- others remain as-is\r\n d.quantityNominal = this.numberPipe.transform(d.quantityNominal, '1.2-2');\r\n //d.originalCost = this.numberPipe.transform(d.originalCost, '1.2-2');\r\n // d.costBasis = this.numberPipe.transform(d.costBasis, '1.2-2');\r\n // d.currentShares = this.currencyPipe\r\n // .transform(d.currentShares, 'USD', false, '4.2-2')\r\n // .slice(3);\r\n });\r\n this.reportingCurrencyload(this.repocurrency);\r\n }\r\n}\r\n","export default \".center {\\n height: 70%;\\n width: 100%;\\n display: -webkit-box;\\n display: flex;\\n position: fixed;\\n -webkit-box-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n justify-content: center;\\n}\\n\\n.text {\\n color: #990099;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWVudS90cmFkaW5nL0U6XFxTVk5cXEFyYml0cmFsXFxGcm9udGVuZC9zcmNcXGFwcFxcbWVudVxcdHJhZGluZ1xcdHJhZGluZy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWVudS90cmFkaW5nL3RyYWRpbmcuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxXQUFBO0VBQ0EsV0FBQTtFQUNBLG9CQUFBO0VBQUEsYUFBQTtFQUNBLGVBQUE7RUFDQSx5QkFBQTtVQUFBLG1CQUFBO0VBQ0Esd0JBQUE7VUFBQSx1QkFBQTtBQ0NKOztBRENBO0VBQ0ksY0FBQTtBQ0VKIiwiZmlsZSI6InNyYy9hcHAvbWVudS90cmFkaW5nL3RyYWRpbmcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY2VudGVye1xyXG4gICAgaGVpZ2h0OiA3MCU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuLnRleHR7XHJcbiAgICBjb2xvciA6ICM5OTAwOTlcclxuXHJcbn0iLCIuY2VudGVyIHtcbiAgaGVpZ2h0OiA3MCU7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4udGV4dCB7XG4gIGNvbG9yOiAjOTkwMDk5O1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-trading',\n templateUrl: './trading.component.html',\n styleUrls: ['./trading.component.scss']\n})\nexport class TradingComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import CONFIG from '../../../config';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { Location, DecimalPipe, CurrencyPipe } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { MultiColumnGridService } from '../../shared/multi-column-grid.service';\nimport { AccountService } from '../../shared/account.service';\nimport { AuthService } from '../../shared/auth.service';\nimport { BackendService } from '../../shared/backend.service';\nimport { FilterService } from '../../shared/filter.service';\nimport { NotificationService } from '../../notification/notification.service';\nimport { OrderByService } from '../../shared/orderby.service';\nimport { PaginationService } from '../../shared/pagination.service';\nimport { SearchService } from '../../shared/search.service';\nimport { Subscription } from 'rxjs/Subscription';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'app-detailed-transactions',\n templateUrl: './detailed-transactions.component.html',\n styleUrls: ['./transactions.component.scss'],\n providers: [DecimalPipe, PaginationService, DatePipe]\n})\nexport class DetailedTransactionsComponent extends MultiColumnGridService implements OnInit, OnDestroy {\n currentSettlementAccountSubscription: Subscription;\n currentSAccount;\n loadingStatusSubscription: Subscription;\n loadingData: boolean = false;\n active: string = '';\n currency: any;\n accounts: Array = [];\n optionsUser: Array = [];\n originalLog: Array = [];\n preFilteredLog: Array = [];\n scc: any;\n result: string = '';\n selectedCurrency: string = '';\n transactionsFilter;\n filtersOpen: boolean = false;\n detailedTransactions: any;\n beginingBalance: any;\n currencyInit: boolean = false;\n originalItemsforexport: Object[] = [];\n DateFilter: FormGroup;\n datefilteroriginalitems: any;\n export:any;\n\n constructor(\n public location: Location,\n public backendService: BackendService,\n public authService: AuthService,\n public accountService: AccountService,\n public notificationService: NotificationService,\n public formBuilder: FormBuilder,\n public searchService: SearchService,\n public orderByService: OrderByService,\n public router: Router,\n public paginationService: PaginationService,\n public filterService: FilterService,\n public numberPipe: DecimalPipe,\n public currencyPipe: CurrencyPipe,\n public datePipe: DatePipe\n ) {\n super(location, backendService, authService, notificationService, formBuilder,\n searchService, orderByService, router, paginationService, currencyPipe, filterService);\n }\n\n ngOnInit() {\n this.currentPage = 'detailed transactions';\n this.currentSettlementAccountSubscription = this.accountService.currentSettlementAccountChange$.subscribe(currentSettlementAccount => this.currentSettlementAccountChange(currentSettlementAccount));\n this.currentSAccount = this.accountService.currentSettlementAccount;\n this.loadingStatusSubscription = this.loadingDataChange$.subscribe(loadingDataStatus => this.initFilterForSA(loadingDataStatus));\n this.apiUrl = CONFIG.detailedtransactionApiUrlBase;\n // this.searchArray = ['postingDate', 'settlementDate', 'transactionType', 'securityDescription', 'isin', 'quantity', 'price', 'accruedInterest', 'daysAccrued', 'debit', 'credit', 'currency', 'realizedGains', 'balance'];\n this.searchArray = ['postingDate', 'sdate','tdate','pdate', 'transactionType', 'securityDescription', 'isin', 'quantity', 'price', 'accruedInterest', 'debit', 'credit', 'currency', 'realizedGains', 'balance'];\n this.accountsArray = ['accountNumber'];\n this.fields = ['postingDate', 'settlementDate', 'transactionType', 'securityDescription', 'isin', 'quantity', 'price', 'accruedInterest', 'daysAccrued', 'debit', 'credit', 'currency', 'settlementAmount', 'realizedGains', 'balance'];\n this.fieldNames = [ 'AccountNumber', 'TradeDate','Transaction Type', 'PostingDate','SettlementDate', 'SecurityType', 'Description', 'ISIN', 'Quantity', 'Price', 'AccruedInterest', 'DaysAccrued', 'Debit', 'Credit', 'Currency'];\n this.defaultSortOrder = 'pdate';\n console.log(this.originalItems);\n\n //method on multi-column-grid.service.ts to get data and initialize sort/filter functions\n /*\n Passing in callback, as this component needs to do some custom formatting for data display (using angular pipes). Yes- it's easier to do this in the template, but then the data passed to the search function doesn't match the data on display in the grid, causing user confusion.\n */\n this.DateFilter = this.formBuilder.group({\n 'startdate': [''],\n 'enddate': ['']\n });\n\n this.FilterByStatus = this.formBuilder.group({\n '_currency': []\n });\n this.FilterByStatus.controls['_currency'].setValue('USD')\n this.serviceInit(this.formatDataForSearch);\n //this.getDetailedTransactions();\n this.getCurrencies();\n console.log(this.audit);\n //**** Temporary data ****/\n // this.currency = ['USD','YEN','EURO'];\n }\n initFilterForSA(loadingDataStatus) {\n this.filterForSA();\n }\n ngOnDestroy() {\n if (this.currentSettlementAccountSubscription) { this.currentSettlementAccountSubscription.unsubscribe(); }\n }\n SearchOpen() {\n if (this.filtersOpen == false) {\n this.filtersOpen = true;\n this.clearDateFilter()\n }\n else {\n this.filtersOpen = false;\n this.clearDateFilter()\n }\n }\n\n dateFilter(edate, sdate) {\n console.log(edate, sdate);\n\n // let startdate = this.datePipe.transform(sdate, \"MM/dd/yyyy\");\n // let enddate = this.datePipe.transform(edate, \"MM/dd/yyyy\");\n\n // console.log(startdate, enddate);\n this.datefilteroriginalitems = this.originalItems;\n let startInclude: any = '';\n let endInclude: any = '';\n\n startInclude = new Date(sdate);\n endInclude = new Date(edate);\n\n let submit = {\n 'startdate': startInclude,\n 'enddate': endInclude\n }\n\n //convert any date field values to Date type (so filter function can find proper property name)\n this.originalItems.forEach(entry => {\n entry['sdate'] = new Date(entry['sdate']);\n });\n\n //perform the filter, assign it to main audit variable\n console.log(submit, this.datefilteroriginalitems)\n this.audit = this.filterService.filterFromMultiple(submit, this.datefilteroriginalitems);\n this.datefilteredaudit = this.filterService.filterFromMultiple(submit, this.datefilteroriginalitems);\n\n // this.datefilteroriginalitems = this.originalItems;\n // this.audit = this.datefilteroriginalitems.filter(x => x.postingDate >= startdate && x.postingDate <= enddate)\n //this.datefilteredaudit = this.datefilteroriginalitems.filter(x => x.postingDate >= startdate && x.postingDate <= enddate)\n console.log(this.audit);\n\n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (1 <= 0) {\n if (this.audit.length == 0) {\n this.audit = this.originalItems;\n console.log('this.audit' + this.audit.length);\n }\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.originalItems;\n this.totalEntries = this.originalItems.length;\n console.log('this.audit' + this.audit.length);\n } else {\n this.audit = this.datefilteredaudit.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.datefilteredaudit;\n console.log('this.audit' + this.audit.length);\n this.totalEntries = this.datefilteredaudit.length;\n }\n });\n }\n\n exportDataOptions(submittedData?: Object[]) {\n\n let name = 'DetailedTransactions ';\n let heading = 'DetailedTransactions CSV';\n \n this.export = JSON.parse(JSON.stringify(this.exportItems));\n this.export.forEach((value, index\n )=>{\n delete this.export[index]['transactionType'];\n delete this.export[index]['sdate'];\n delete this.export[index]['pdate'];\n delete this.export[index]['tdate'];\n delete this.export[index]['entredtime'];\n delete this.export[index]['realizedGains'];\n delete this.export[index]['balance'];\n \n \n \n });\n \n this.exportData(this.export, name, heading);\n \n }\n currentSettlementAccountChange(value) {\n this.currentSAccount = value;\n this.accountNo.setValue(value);\n this.term.setValue('');\n this.filterForSA();\n }\n getCurrencies() {\n this.backendService.getData(CONFIG.getCurrencyDropdowns)\n .subscribe(data => {\n this.currency = data;\n });\n }\n searchText() {\n this.result = this.TextSearch.controls['term'].value;\n if (this.selectedCurrency && this.currentSAccount) {\n var itemsToSearch = this.filteredBySAandC;\n } else if (!this.selectedCurrency && this.currentSAccount) {\n var itemsToSearch = this.filteredBySettlementAccount;\n } else if (this.selectedCurrency && !this.currentSAccount) {\n var itemsToSearch = this.filteredByCurrency;\n } else {\n var itemsToSearch = this.originalItems;\n };\n this.searchService.findItemsFromMultiple(this.result, itemsToSearch, this.searchArray)\n .then(allFiltered => {\n if (this.result.length > 0) {\n this.audit = allFiltered;\n this.searchFilteredItems = allFiltered;\n } else {\n // this.searchFilteredItems = itemsToSearch;\n this.audit = itemsToSearch;\n }\n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (!this.term.value) {\n if (this.audit.length == 0) {\n this.audit = itemsToSearch;\n }\n this.audit = itemsToSearch.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = itemsToSearch;\n this.totalEntries = itemsToSearch.length;\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n });\n }\n filterCurrency() {\n this.term.setValue('');\n this.selectedCurrency = this.FilterByStatus.controls['_currency'].value;\n\n if (this.currentSAccount) {\n let originalItems = this.originalItems;\n this.searchService.findItemsFromMultiple(this.selectedCurrency, originalItems, ['currency'])\n .then(allFiltered => {\n console.log(allFiltered);\n if (this.selectedCurrency.length > 0) {\n this.filteredByCurrency = allFiltered;\n } else {\n this.filteredByCurrency = this.originalItems;\n }\n });\n let itemsToSearch = this.filteredBySettlementAccount;\n this.searchService.findItemsFromMultiple(this.selectedCurrency, itemsToSearch, ['currency'])\n .then(allFiltered => {\n console.log(allFiltered);\n if (this.selectedCurrency.length > 0) {\n this.filteredBySAandC = allFiltered;\n this.audit = allFiltered;\n this.searchFilteredItems = allFiltered;\n } else {\n this.audit = this.filteredBySettlementAccount;\n this.filteredByCurrency = this.originalItems;\n this.filteredBySAandC = [];\n }\n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (!this.FilterByStatus.controls['_currency'].value) {\n console.log('!this.term.value');\n\n if (this.audit.length == 0) {\n this.audit = this.filteredBySettlementAccount;\n }\n this.audit = this.filteredBySettlementAccount.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.filteredBySettlementAccount;\n this.totalEntries = this.filteredBySettlementAccount.length;\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n });\n } else {\n let itemsToSearch = this.originalItems;\n this.searchService.findItemsFromMultiple(this.selectedCurrency, itemsToSearch, ['currency'])\n .then(allFiltered => {\n console.log(allFiltered);\n if (this.selectedCurrency.length > 0) {\n this.filteredByCurrency = allFiltered;\n this.audit = allFiltered;\n this.searchFilteredItems = allFiltered;\n this.filteredBySAandC = [];\n } else {\n this.audit = this.originalItems;\n this.filteredByCurrency = this.originalItems;\n this.filteredBySAandC = [];\n }\n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (!this.FilterByStatus.controls['_currency'].value) {\n console.log('!this.term.value');\n\n if (this.audit.length == 0) {\n this.audit = this.filteredBySettlementAccount;\n }\n this.audit = this.filteredBySettlementAccount.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.filteredBySettlementAccount;\n this.totalEntries = this.filteredBySettlementAccount.length;\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n });\n };\n // let itemsToSearch = this.filteredBySettlementAccount;\n this.currencyInit = true;\n }\n filterForSA() {\n if (this.currentSAccount == 'Select account') {\n this.audit = this.filteredByCurrency;\n this.totalEntries = this.audit.length;\n this.searchFilteredItems = this.audit;\n this.loadingData = true;\n this.pagenlenth = false;\n this.sortingpageload=\"pageload\"\n this.orderByPDate(this.defaultSortOrder, this.audit.length);\n // this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (this.currentSAccount.length <= 0) {\n if (this.audit.length == 0) {\n this.audit = this.originalItems;\n // console.log('this.audit' + this.audit.length);\n }\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.originalItems;\n this.totalEntries = this.originalItems.length;\n // console.log('this.audit' + this.audit.length);\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n // console.log('this.audit' + this.audit.length);\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n }\n else {\n if (this.filteredByCurrency.length > 0) {\n let originalItems = this.originalItems;\n this.searchService.findItemsFromAccount(this.currentSAccount, originalItems, this.accountsArray)\n .then(allFiltered => {\n if (this.currentSAccount.length > 0) {\n this.filteredBySettlementAccount = allFiltered;\n } else {\n this.filteredBySettlementAccount = this.originalItems;\n }\n });\n let itemsToSearch = this.filteredByCurrency;\n this.searchService.findItemsFromAccount(this.currentSAccount, itemsToSearch, this.accountsArray)\n .then(allFiltered => {\n if (this.currentSAccount.length > 0) {\n this.filteredBySAandC = allFiltered;\n this.audit = allFiltered;\n this.searchFilteredItems = allFiltered;\n } else {\n this.audit = this.filteredByCurrency;\n this.filteredBySettlementAccount = this.originalItems;\n this.filteredBySAandC = [];\n }\n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n this.sortingpageload=\"pageload\"\n this.orderByPDate(this.defaultSortOrder, this.audit.length);\n // this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (this.currentSAccount.length <= 0) {\n if (this.audit.length == 0) {\n this.audit = this.originalItems;\n // console.log('this.audit' + this.audit.length);\n }\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.originalItems;\n this.totalEntries = this.originalItems.length;\n // console.log('this.audit' + this.audit.length);\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n // console.log('this.audit' + this.audit.length);\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n });\n } else {\n let itemsToSearch = this.originalItems;\n this.searchService.findItemsFromAccount(this.currentSAccount, itemsToSearch, this.accountsArray)\n .then(allFiltered => {\n if (this.currentSAccount.length > 0) {\n this.filteredBySettlementAccount = allFiltered;\n this.audit = allFiltered;\n this.searchFilteredItems = allFiltered;\n this.filteredBySAandC = [];\n // console.log('this.audit' + this.audit.length);\n } else {\n // console.log('triggered'); \n this.audit = this.originalItems;\n this.filteredBySettlementAccount = this.originalItems;\n this.filteredBySAandC = [];\n }\n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n this.sortingpageload=\"pageload\"\n this.orderByPDate(this.defaultSortOrder, this.audit.length);\n // this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (this.currentSAccount.length <= 0) {\n if (this.audit.length == 0) {\n this.audit = this.originalItems;\n // console.log('this.audit' + this.audit.length);\n }\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.originalItems;\n this.totalEntries = this.originalItems.length;\n // console.log('this.audit' + this.audit.length);\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n // console.log('this.audit' + this.audit.length);\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n if (!this.currencyInit) { this.filterCurrency() };\n });\n };\n }\n }\n // getDetailedTransactions(){\n\n // this.backendService.getData(`${this.apiUrl}/${this.authService.CustomerID}`)\n // .subscribe(data => {\n // this.detailedTransactions = data['detailedTransactions'];\n // var numRows = this.detailedTransactions.length;\n // // for (var i = 0; i < numRows; i++) {\n // this.beginingBalance=this.detailedTransactions[0].quantity; \n // this.detailedTransactions[0].quantity=0;\n\n // console.log( this.beginingBalance); \n // // }\n\n // });\n // }\n\n formatDataForSearch(data) {\n\n data.map(d => {\n \n console.log(d.tdate);\n if(d.tdate=='0001-01-01T00:00:00')\n {\n d.tdate='';\n }\n if(d.sdate=='0001-01-01T00:00:00')\n {\n d.sdate='';\n }\n if(d.pdate=='0001-01-01T00:00:00')\n {\n d.pdate='';\n }\n if(d.isin=='')\n {\n d.securityType='';\n }\n else{\n d.securityType=d.securityType+'/';\n }\n // if(d.isin=='')\n // {\n // d.securityType='';\n // }\n // if(d.securityType==\"Withdrawal\")\n // {\n // d.securityType=true;\n // }\n\n if (d.transactionType == 'Forex Fwd Purch Mat' || d.transactionType == 'Forex Fwd Sale Mat' || d.transactionType == 'Forex Purchase' || d.transactionType == 'Forex Sale') {\n d.quantity = '';\n d.price = '';\n d.accruedInterest = '';\n d.daysAccrued = '';\n }\n if (d.transactionType == 'Dividend Received' || d.transactionType == 'Withholding') {\n d.price = '';\n d.accruedInterest = '';\n d.daysAccrued = '';\n }\n if (d.transactionType == 'Interest Received') {\n d.price = '';\n }\n if (d.transactionType == 'Maturity Payment') {\n d.accruedInterest = '';\n d.daysAccrued = '';\n }\n //loop through and convert specific items that need it- others remain as-is\n d.quantityNominal = this.numberPipe.transform(d.quantityNominal, '1.2-2');\n d.postingDate = this.datePipe.transform(d.postingDate, \"MM/dd/yyyy\");\n d.settlementDate = this.datePipe.transform(d.settlementDate, \"MM/dd/yyyy\");\n d.tradeDate = this.datePipe.transform(d.tradeDate, \"MM/dd/yyyy\");\n //console.log(d.postingDate);\n //d.originalCost = this.numberPipe.transform(d.originalCost, '1.2-2');\n // d.costBasis = this.numberPipe.transform(d.costBasis, '1.2-2');\n // d.currentShares = this.currencyPipe\n // .transform(d.currentShares, 'USD', false, '4.2-2')\n // .slice(3);\n });\n }\n orderByPDate(param, length?: number) {\n if (param!==''){\n this.currentSortOrder = param;\n } else {\n param = this.defaultSortOrder;\n };\n if (this.filteredBySAandC.length > 1) {\n var itemsToOrder = this.filteredBySAandC;\n } else if (this.filteredByCurrency.length > 1) {\n var itemsToOrder = this.filteredByCurrency;\n } else if (this.filteredByCurrency.length === 0) {\n var itemsToOrder = this.filteredBySettlementAccount;\n } else {\n var itemsToOrder = this.originalItems;\n }\n let sortingByCurrentShares = false;\n const altParam = param === this.defaultSortOrder ? undefined : this.defaultSortOrder;\n\n if (this.term.value) {\n itemsToOrder = this.searchFilteredItems;\n }\n\n //special case for currentShares- strip commas so orders correctly\n if (param === 'currentShares') {\n sortingByCurrentShares = true;\n itemsToOrder.forEach(item => {\n item['currentShares'] = item['currentShares'].replace(/,/gi, '');\n });\n }\n this.items = this.orderByService.orderByParamDescending(param, itemsToOrder, altParam);\n\n if (length){\n var itemsLength: number = length;\n } else {\n var itemsLength: number = itemsToOrder.length;\n }\n\n this.setGrid(1, itemsLength, \"orderby\");\n }\n\n}","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n templateUrl: './transactions-container.component.html',\n\n})\nexport class TransactionsContainerComponent {\n\n constructor( public router: Router,) {}\n\n}","export default \"::ng-deep .mat-progress-bar-fill::after {\\n background-color: #1E457C;\\n}\\n\\n::ng-deep .mat-progress-bar-buffer {\\n background: #E4E8EB;\\n}\\n\\n::ng-deep .mat-progress-bar {\\n border-radius: 2px;\\n}\\n\\n.green-progress .mat-progress-bar-fill::after {\\n background-color: green !important;\\n}\\n\\n.fl-rt {\\n float: right;\\n}\\n\\na {\\n font-weight: 700;\\n cursor: pointer;\\n}\\n\\n.cancel {\\n cursor: pointer;\\n font-size: 1.2rem;\\n opacity: 0.75;\\n -webkit-transition: opacity 0.3s ease;\\n transition: opacity 0.3s ease;\\n}\\n\\n.cancel:hover {\\n opacity: 1;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWVudS90cmFuc2FjdGlvbnMvRTpcXFNWTlxcQXJiaXRyYWxcXEZyb250ZW5kL3NyY1xcYXBwXFxtZW51XFx0cmFuc2FjdGlvbnNcXHRyYW5zYWN0aW9ucy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWVudS90cmFuc2FjdGlvbnMvdHJhbnNhY3Rpb25zLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0kseUJBQUE7QUNDSjs7QURFQTtFQUNJLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSxrQkFBQTtBQ0NKOztBRENBO0VBQ0ksa0NBQUE7QUNFSjs7QURDQTtFQUNDLFlBQUE7QUNFRDs7QURBQTtFQUNDLGdCQUFBO0VBQ0EsZUFBQTtBQ0dEOztBRERBO0VBQ0MsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsYUFBQTtFQUNBLHFDQUFBO0VBQUEsNkJBQUE7QUNJRDs7QURGQTtFQUNDLFVBQUE7QUNLRCIsImZpbGUiOiJzcmMvYXBwL21lbnUvdHJhbnNhY3Rpb25zL3RyYW5zYWN0aW9ucy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUU0NTdDO1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcclxuICAgIGJhY2tncm91bmQ6ICNFNEU4RUI7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcbn1cclxuLmdyZWVuLXByb2dyZXNzIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mbC1ydCB7XHJcbiBmbG9hdDogcmlnaHQ7XHJcbn1cclxuYSB7XHJcbiBmb250LXdlaWdodDo3MDA7XHJcbiBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuLmNhbmNlbCB7XHJcbiBjdXJzb3I6IHBvaW50ZXI7XHJcbiBmb250LXNpemU6IDEuMnJlbTtcclxuIG9wYWNpdHk6IDAuNzU7XHJcbiB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcclxufVxyXG4uY2FuY2VsOmhvdmVyIHtcclxuIG9wYWNpdHk6IDE7XHJcbn1cclxuIiwiOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFFNDU3Qztcbn1cblxuOjpuZy1kZWVwIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQ6ICNFNEU4RUI7XG59XG5cbjo6bmctZGVlcCAubWF0LXByb2dyZXNzLWJhciB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLmdyZWVuLXByb2dyZXNzIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4gIWltcG9ydGFudDtcbn1cblxuLmZsLXJ0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG5hIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2FuY2VsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgb3BhY2l0eTogMC43NTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG59XG5cbi5jYW5jZWw6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufSJdfQ== */\"","import CONFIG from '../../../config';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { Location, DecimalPipe, CurrencyPipe } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\nimport { MultiColumnGridService } from '../../shared/multi-column-grid.service';\nimport { AccountService } from '../../shared/account.service';\nimport { AuthService } from '../../shared/auth.service';\nimport { BackendService } from '../../shared/backend.service';\nimport { FilterService } from '../../shared/filter.service';\nimport { NotificationService } from '../../notification/notification.service';\nimport { OrderByService } from '../../shared/orderby.service';\nimport { PaginationService } from '../../shared/pagination.service';\nimport { SearchService } from '../../shared/search.service';\nimport { Utilities } from '../../shared/utilities.service';\nimport { Angular5Csv } from 'angular5-csv/dist/Angular5-csv';\nimport { Subscription } from 'rxjs/Subscription';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'app-transactions',\n templateUrl: './transactions.component.html',\n styleUrls: ['./transactions.component.scss'],\n providers: [DecimalPipe, PaginationService, DatePipe]\n})\nexport class TransactionsComponent extends MultiColumnGridService implements OnInit, OnDestroy {\n currentSettlementAccountSubscription: Subscription;\n currentSAccount;\n loadingStatusSubscription: Subscription;\n loadingData: boolean = false;\n active: string = '';\n currency: any;\n accounts: Array = [];\n optionsUser: Array = [];\n originalLog: Array = [];\n preFilteredLog: Array = [];\n scc: any;\n result: string = '';\n selectedCurrency: string = '';\n transactionsFilter;\n filtersOpen: boolean = false;\n // currencyfilter:any;\n currencyInit: boolean = false;\n formateddate: any;\n DateFilter: FormGroup;\n datefilteroriginalitems: any;\n originalItemsforexport: Object[] = [];\n originalItemsforexport1: Object[] = [];\n constructor(\n public location: Location,\n public backendService: BackendService,\n public authService: AuthService,\n public accountService: AccountService,\n public notificationService: NotificationService,\n public formBuilder: FormBuilder,\n public searchService: SearchService,\n public orderByService: OrderByService,\n public router: Router,\n public paginationService: PaginationService,\n public filterService: FilterService,\n public numberPipe: DecimalPipe,\n public currencyPipe: CurrencyPipe,\n public datePipe: DatePipe\n \n ) {\n super(location, backendService, authService, notificationService, formBuilder,\n searchService, orderByService, router, paginationService, currencyPipe, filterService);\n }\n\n ngOnInit() {\n this.currentPage = 'transactions';\n this.currentSettlementAccountSubscription = this.accountService.currentSettlementAccountChange$.subscribe(currentSettlementAccount => this.currentSettlementAccountChange(currentSettlementAccount));\n this.currentSAccount = this.accountService.currentSettlementAccount;\n this.loadingStatusSubscription = this.loadingDataChange$.subscribe(loadingDataStatus => this.initFilterForSA(loadingDataStatus));\n\n this.apiUrl = CONFIG.transactionApiUrlBase;\n this.searchArray = ['sdate', 'transactionType', 'securityDescription', 'quantity', 'currency', 'settlementAmount'];\n this.accountsArray = ['accountNumber'];\n this.fields = ['settlementDate', 'transactionType', 'securityDescription', 'quantity', 'currency', 'settlementAmount'];\n this.fieldNames = ['AccountNumber', 'SettlementDate', 'TransactionType', 'Description', 'SettlementAmount', 'Quantity', 'Currency', 'Price'];\n \n this.currentSortOrder='desc';\n this.defaultSortOrder = 'sdate';\n\n //method on multi-column-grid.service.ts to get data and initialize sort/filter functions\n /*\n Passing in callback, as this component needs to do some custom formatting for data display (using angular pipes). \n Yes- it's easier to do this in the template, but then the data passed to the search function doesn't\n match the data on display in the grid, causing user confusion.\n */\n\n this.DateFilter = this.formBuilder.group({\n 'startdate': [''],\n 'enddate': ['']\n });\n\n this.FilterByStatus = this.formBuilder.group({\n '_currency': []\n });\n this.FilterByStatus.controls['_currency'].setValue('USD')\n // this.selectedCurrency = 'USD';\n // this.filterCurrency();\n this.serviceInit(this.formatDataForSearch);\n\n this.getAccountsDropdowns();\n console.log(this.originalItems);\n // duplicate data\n // this.currency = ['USD','YEN','EURO'];\n }\n \n initFilterForSA(loadingDataStatus) {\n console.log('this is test');\n\n if(this.currentSAccount!='Select account'||this.currentSAccount!='')\n {\n this.filterForSA();}\n\n }\n ngOnDestroy() {\n if (this.currentSettlementAccountSubscription) { this.currentSettlementAccountSubscription.unsubscribe(); }\n // this.orderByService.resetService();\n // this.allSubscription.unsubscribe();\n // this.entryRangeSubscription.unsubscribe();\n }\n SearchOpen() {\n if (this.filtersOpen == false) {\n this.filtersOpen = true;\n this.clearDateFilter()\n }\n else {\n this.filtersOpen = false;\n this.clearDateFilter()\n }\n }\n dateFilter(edate, sdate) {\n\n let startdate = this.datePipe.transform(sdate, \"MM/dd/yyyy\");\n let enddate = this.datePipe.transform(edate, \"MM/dd/yyyy\");\n\n console.log(startdate, enddate);\n this.datefilteroriginalitems = this.originalItems;\n this.audit = this.datefilteroriginalitems.filter(x => x.postingDate >= startdate && x.postingDate <= enddate)\n this.datefilteredaudit = this.datefilteroriginalitems.filter(x => x.postingDate >= startdate && x.postingDate <= enddate)\n console.log(this.audit);\n this.totalEntries = this.audit.length;\n\n this.loadingData = true;\n this.pagenlenth = false;\n // this.orderBy(this.currentSortOrder, this.audit.length);\n this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (1 <= 0) {\n if (this.audit.length == 0) {\n this.audit = this.originalItems;\n console.log('this.audit' + this.audit.length);\n }\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.originalItems;\n this.totalEntries = this.originalItems.length;\n console.log('this.audit' + this.audit.length);\n } else {\n this.audit = this.datefilteredaudit.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.datefilteredaudit;\n console.log('this.audit' + this.audit.length);\n this.totalEntries = this.datefilteredaudit.length;\n }\n });\n }\n\n exportDataOptions(submittedData?: Object[]) {\n console.log(submittedData);\n let name = 'Transactions';\n let heading = 'Transactions CSV';\n \n this.originalItemsforexport = JSON.parse(JSON.stringify(this.exportItems));\n \n this.originalItemsforexport.forEach((value, index\n )=>{\n \n delete this.originalItemsforexport[index]['sdate'];\n delete this.originalItemsforexport[index]['postingDate'];\n \n });\n\n \n console.log(this.originalItemsforexport);\n \n const data = this.originalItemsforexport;\n this.exportData(data, name, heading);\n \n \n \n }\n localexportData(submittedData?: Object[], name?: string, heading?: string) {\n\n var options = {\n fieldSeparator: ',',\n quoteStrings: '\"',\n decimalseparator: '.',\n showLabels: true,\n showTitle: true,\n title: heading,\n useBom: true,\n //noDownload: true,\n headers: this.fieldNames,\n nullToEmptyString: true,\n };\n\n const data = submittedData;\n //console.log(data);\n new Angular5Csv(data, name, options);\n\n }\n currentSettlementAccountChange(value) {\n console.log(value);\n this.currentSAccount = value;\n this.accountNo.setValue(value);\n this.term.setValue('');\n this.filterForSA();\n }\n\n getAccountsDropdowns() {\n this.backendService.getData(CONFIG.getCurrencyDropdowns)\n // .subscribe(response => {\n // this.currency = response.map(item => item);\n .subscribe(data => {\n this.currency = data;\n // console.log(this.currency);\n });\n }\n\n setFilterDropdownOptions() {\n console.log(\"enter setFilterDropdownOptions\");\n this.accounts = this.accounts\n .map(entry => entry['account_name'])\n .filter((name, index, arr) => {\n return index === arr.indexOf(name);\n });\n this.accounts.unshift('Filter by Email');\n this.resetAuditListing();\n }\n resetAuditListing() {\n console.log(\"enter resetAuditListing\");\n this.filterApplied = false;\n // this.dateFilterApplied = false;\n this.FilterByStatus.controls['_currency'].setValue('');\n setTimeout(() => {\n this.audit = this.originalLog.slice(this.entryRange[0], this.entryRange[1]);\n this.preFilteredLog = this.originalLog;\n this.clearSearch();\n this.orderBy(this.currentSortOrder);\n // this.setGrid(1);\n }, 0);\n }\n filterAuditLog() {\n this.clearSearch();\n this.filterApplied = true;\n this.scc = this.FilterByStatus.controls['_currency'].value\n let stringToSplit = this.scc;\n let submit = {\n 'currency': this.FilterByStatus.controls['_currency'].value\n }\n console.log(submit, this.audit);\n this.audit = this.filterService.filterFromMultiple(submit, this.audit);\n this.loadingData = true;\n this.totalEntries = this.audit.length;\n\n }\n\n // searchForCurrency() {\n // console.log('currcny');\n // this.result = this.FilterByStatus.controls['_currency'].value;\n // let itemsToSearch = this.filteredBySettlementAccount;\n // console.log(this.result, itemsToSearch, this.searchArray);\n // this.currencyfilter= this.filteredBySettlementAccount.filter(data=> data[\"currency\"]==this.result);\n\n // this.currencyfilter.map(allFiltered => {\n // if (this.result.length > 0) {\n // this.audit = allFiltered;\n // this.searchFilteredItems = allFiltered;\n // } else {\n // this.audit = this.filteredBySettlementAccount;\n // }\n // this.totalEntries = this.audit.length;\n // this.loadingData = true;\n // this.pagenlenth = false;\n // // console.log(this.audit);\n // // console.log(this.audit.length);\n // this.setGrid(1, this.audit.length, \"search\");\n // this.entryRangeSubscription = this.paginationService.entryRange\n // .subscribe(range => {\n // this.entryRange = range;\n // // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n // if (!this.term.value) {\n // if (this.audit.length == 0) {\n // this.audit = this.filteredBySettlementAccount;\n // }\n // this.audit = this.filteredBySettlementAccount.slice(this.entryRange[0], this.entryRange[1]);\n // this.totalEntries = this.filteredBySettlementAccount.length;\n // } else {\n // this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n // this.totalEntries = this.searchFilteredItems.length;\n // }\n // });\n // });\n // }\n searchText() {\n this.result = this.TextSearch.controls['term'].value;\n if (this.selectedCurrency && this.currentSAccount) {\n console.log('both filters' + this.filteredBySAandC);\n var itemsToSearch = this.filteredBySAandC;\n } else if (!this.selectedCurrency && this.currentSAccount) {\n console.log('sa filter');\n var itemsToSearch = this.filteredBySettlementAccount;\n } else if (this.selectedCurrency && !this.currentSAccount) {\n console.log('currency filter');\n var itemsToSearch = this.filteredByCurrency;\n } else {\n console.log('no filters');\n var itemsToSearch = this.originalItems;\n };\n // let itemsToSearch = this.filteredBySettlementAccount;\n this.searchService.findItemsFromMultiple(this.result, itemsToSearch, this.searchArray)\n .then(allFiltered => {\n if (this.result.length > 0) {\n this.audit = allFiltered;\n this.searchFilteredItems = allFiltered;\n } else {\n // this.searchFilteredItems = itemsToSearch;\n this.audit = itemsToSearch;\n }\n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n // console.log(this.audit);\n // console.log(this.audit.length);\n // this.orderBy(this.currentSortOrder, this.audit.length);\n this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (!this.term.value) {\n if (this.audit.length == 0) {\n this.audit = itemsToSearch;\n }\n this.audit = itemsToSearch.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = itemsToSearch;\n this.totalEntries = itemsToSearch.length;\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n });\n }\n filterCurrency() {\n console.log('TEST');\n this.term.setValue('');\n this.selectedCurrency = this.FilterByStatus.controls['_currency'].value;\n // console.log(this.selectedCurrency);\n if (this.currentSAccount) {\n console.log('if')\n let originalItems = this.originalItems;\n this.searchService.findItemsFromMultiple(this.selectedCurrency, originalItems, ['currency'])\n .then(allFiltered => {\n if (this.selectedCurrency.length > 0) {\n this.filteredByCurrency = allFiltered;\n\n } else {\n this.filteredByCurrency = this.originalItems;\n\n }\n });\n let itemsToSearch = this.filteredBySettlementAccount;\n this.searchService.findItemsFromMultiple(this.selectedCurrency, itemsToSearch, ['currency'])\n .then(allFiltered => {\n if (this.selectedCurrency.length > 0) {\n this.filteredBySAandC = allFiltered;\n this.audit = allFiltered;\n console.log(this.audit);\n this.searchFilteredItems = allFiltered;\n } else {\n this.audit = this.filteredBySettlementAccount;\n this.filteredByCurrency = this.originalItems;\n this.filteredBySAandC = [];\n }\n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n // console.log(this.audit);\n // console.log(this.audit.length);\n this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (!this.FilterByStatus.controls['_currency'].value) {\n console.log('!this.term.value');\n\n if (this.audit.length == 0) {\n this.audit = this.filteredBySettlementAccount;\n }\n this.audit = this.filteredBySettlementAccount.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.filteredBySettlementAccount;\n\n this.totalEntries = this.filteredBySettlementAccount.length;\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n });\n } else {\n console.log('else');\n let itemsToSearch = this.originalItems;\n this.searchService.findItemsFromMultiple(this.selectedCurrency, itemsToSearch, ['currency'])\n .then(allFiltered => {\n if (this.selectedCurrency.length > 0) {\n this.filteredByCurrency = allFiltered;\n this.audit = allFiltered;\n this.searchFilteredItems = allFiltered;\n this.filteredBySAandC = [];\n } else {\n this.audit = this.originalItems;\n this.filteredByCurrency = this.originalItems;\n this.filteredBySAandC = [];\n }\n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n // console.log(this.audit);\n // console.log(this.audit.length);\n // this.orderBy(this.currentSortOrder, this.audit.length);\n this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (!this.FilterByStatus.controls['_currency'].value) {\n // console.log('!this.term.value');\n\n if (this.audit.length == 0) {\n this.audit = this.filteredBySettlementAccount;\n }\n this.audit = this.filteredBySettlementAccount.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.filteredBySettlementAccount;\n\n this.totalEntries = this.filteredBySettlementAccount.length;\n\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n\n this.exportItems = this.searchFilteredItems;\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n });\n };\n // let itemsToSearch = this.filteredBySettlementAccount;\n this.currencyInit = true;\n }\n filterForSA() {\n console.log('testAnil',this.currentSAccount);\n if (this.currentSAccount == 'Select account') {\n console.log('1');\n this.audit = this.filteredByCurrency;\n this.totalEntries = this.audit.length;\n this.searchFilteredItems = this.audit;\n this.loadingData = true;\n this.pagenlenth = false;\n this.orderBy(this.currentSortOrder, this.audit.length);\n // this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (this.currentSAccount.length <= 0) {\n if (this.audit.length == 0) {\n this.audit = this.originalItems;\n // console.log('this.audit' + this.audit.length);\n }\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.originalItems;\n this.totalEntries = this.originalItems.length;\n // console.log('this.audit' + this.audit.length);\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n // console.log('this.audit' + this.audit.length);\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n }\n else {\n if (this.filteredByCurrency.length > 0) {\n console.log('2');\n let originalItems = this.originalItems;\n this.searchService.findItemsFromAccount(this.currentSAccount, originalItems, this.accountsArray)\n .then(allFiltered => {\n if (this.currentSAccount.length > 0) {\n this.filteredBySettlementAccount = allFiltered;\n } else {\n this.filteredBySettlementAccount = this.originalItems;\n }\n });\n let itemsToSearch = this.filteredByCurrency;\n this.searchService.findItemsFromAccount(this.currentSAccount, itemsToSearch, this.accountsArray)\n .then(allFiltered => {\n if (this.currentSAccount.length > 0) {\n this.filteredBySAandC = allFiltered;\n this.audit = allFiltered;\n this.searchFilteredItems = allFiltered;\n } else {\n this.audit = this.filteredByCurrency;\n this.filteredBySettlementAccount = this.originalItems;\n this.filteredBySAandC = [];\n }\n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n this.orderBy(this.currentSortOrder, this.audit.length);\n // this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (this.currentSAccount.length <= 0) {\n if (this.audit.length == 0) {\n this.audit = this.originalItems;\n // console.log('this.audit' + this.audit.length);\n }\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.originalItems;\n this.totalEntries = this.originalItems.length;\n // console.log('this.audit' + this.audit.length);\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n // console.log('this.audit' + this.audit.length);\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n });\n } else {\n console.log('3');\n let itemsToSearch = this.originalItems;\n this.searchService.findItemsFromAccount(this.currentSAccount, itemsToSearch, this.accountsArray)\n .then(allFiltered => {\n if (this.currentSAccount.length > 0) {\n this.filteredBySettlementAccount = allFiltered;\n this.audit = allFiltered;\n this.searchFilteredItems = allFiltered;\n this.filteredBySAandC = [];\n // console.log('this.audit' + this.audit.length);\n } else {\n // console.log('triggered'); \n this.audit = this.originalItems;\n this.filteredBySettlementAccount = this.originalItems;\n this.filteredBySAandC = [];\n }\n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n this.orderBy(this.currentSortOrder, this.audit.length);\n // this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (this.currentSAccount.length <= 0) {\n if (this.audit.length == 0) {\n this.audit = this.originalItems;\n // console.log('this.audit' + this.audit.length);\n }\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.originalItems;\n this.totalEntries = this.originalItems.length;\n // console.log('this.audit' + this.audit.length);\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n // console.log('this.audit' + this.audit.length);\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n if (!this.currencyInit) { this.filterCurrency() };\n });\n };\n }\n }\n\n // getAccounts() {\n // this.backendService.getData(`${CONFIG.getAccountsDropdowns}/${this.authService.CustomerID}`)\n // .subscribe(response => {\n // this.accounts = response.map(item => item);\n // });\n // }\n\n formatDataForSearch(data) {\n console.log(data)\n \n if (data != null) {\n data.settlementAmount = this.numberPipe.transform(data.settlementAmount, '1.2-2');\n }\n data.map(d => {\n\n if(d.sdate=='0001-01-01T00:00:00')\n {\n d.sdate='';\n }\n d.postingDate = this.datePipe.transform(d.postingDate, \"MM/dd/yyyy\");\n d.settlementDate = this.datePipe.transform(d.settlementDate, \"MM/dd/yyyy\");\n // console.log(d.postingDate);\n //loop through and convert specific items that need it- others remain as-is\n //d.settlementDate = this.numberPipe.transform(d.settlementDate, '1.4-4');\n // d.quantity = this.numberPipe.transform(d.quantity, '1.4-4');\n // d.costBasis = this.numberPipe.transform(d.costBasis, '1.2-2');\n // d.settlementAmount = this.currencyPipe\n // .transform(d.settlementAmount, 'USD', false, '4.2-2')\n // .slice(3);\n // d.settlementAmount= this.numberPipe.transform(d.settlementAmount, '1.2-2');\n\n });\n }\n}","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Location, DecimalPipe, CurrencyPipe } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\nimport { MultiColumnGridService } from '../../shared/multi-column-grid.service';\nimport { AccountService } from '../../shared/account.service';\nimport { AuthService } from '../../shared/auth.service';\nimport { BackendService } from '../../shared/backend.service';\nimport { FilterService } from '../../shared/filter.service';\nimport { NotificationService } from '../../notification/notification.service';\nimport { OrderByService } from '../../shared/orderby.service';\nimport { PaginationService } from '../../shared/pagination.service';\nimport { SearchService } from '../../shared/search.service';\nimport { Utilities } from '../../shared/utilities.service';\nimport { Subscription } from 'rxjs/Subscription';\nimport { resolve } from 'path';\nimport { Angular5Csv } from 'angular5-csv/dist/Angular5-csv';\nimport { DatePipe } from '@angular/common';\nimport CONFIG from '../../../config';\n@Component({\n selector: 'app-transfers',\n templateUrl: './transfers.component.html',\n styleUrls: ['./transactions.component.scss']\n})\nexport class TransfersComponent extends MultiColumnGridService implements OnInit {\nresult: string = '';\npipe = new DatePipe('en-US');\n now = Date.now();\ncurrentSettlementAccountSubscription: Subscription;\n currentSAccount;\n loadingStatusSubscription: Subscription;\n originalItemsforexport: Object[] = [];\n constructor(\n\n public location: Location,\n public backendService: BackendService,\n public authService: AuthService,\n public accountService: AccountService,\n public notificationService: NotificationService,\n public formBuilder: FormBuilder,\n public searchService: SearchService,\n public orderByService: OrderByService,\n public router: Router,\n public paginationService: PaginationService,\n public filterService: FilterService,\n public numberPipe: DecimalPipe,\n public currencyPipe: CurrencyPipe\n \n\n ) {\n super(location, backendService, authService, notificationService, formBuilder,\n searchService, orderByService, router, paginationService, currencyPipe, filterService);\n }\n ngOnInit() {\n //this.searchText();\n this.currentSettlementAccountSubscription = this.accountService.currentSettlementAccountChange$.subscribe(currentSettlementAccount => this.currentSettlementAccountChange(currentSettlementAccount));\n this.currentSAccount = this.accountService.currentSettlementAccount;\n console.log(this.currentSAccount);\n this.loadingStatusSubscription = this.loadingDataChange$.subscribe(loadingDataStatus => this.initFilterForSA(loadingDataStatus));\n\n this.apiUrl = CONFIG.transfersApiUrlBase;\n this.serviceInit(this.formatDataForSearch);\n //this.searchArray = ['transfertype','accountNumber', 'primaryCustomer', 'transactionNumber', 'securityIDType', 'isin', 'securityCategory', 'purchPrice', 'purchValue', 'marketValue', 'percentageGainOrLoss', 'accruedInterest', 'face', 'description','currency'];\n this.searchArray=['tradeDate','settlementDate','securityType','transfertype','currency','securityDescription','isin','quantity','price','comments'];\n this.fields=['tradeDate','settlementDate','securityType','transfertype','currency','securityDescription','isin','quantity','price','comments'];\n this.fieldNames = ['AccountNumber','TradeDate','SettlementDate','Transfertype','Currency','SecurityDescription','SecurityType','ISIN','Quantity','Comments','Price'];\n this.accountsArray = ['accountNumber'];\n this.currentPage='transfers';\n // this.fields = ['transfertype','accountNumber', 'currency', 'marketValue', 'purchValue', 'securityIDType', 'transactionNumber', 'securityCategory', 'primaryCustomer', 'description', 'isin', 'purchasePrice', 'marketPrice', 'percentageGainOrLoss', 'quantityNominal', 'accruedInterest'];\n // this.fieldNames = ['Transfertype','AccountNumber', 'PrimaryCustomer', 'TransactionNumber', 'SecurityIDType', 'ISIN', 'SecurityCategory', 'Description', 'QuantityNominal', 'PurchPrice', 'PurchValue', 'PercentageGainOrLoss', 'MarketValue', 'AccruedInterest', 'MarketPrice', 'Currency'];\n this.defaultSortOrder = 'tradeDate';\n this.exportItems=this.originalItems;\n }\n initFilterForSA(loadingDataStatus) {\n this.filterForSA();\n }\n \n currentSettlementAccountChange(value) {\n\n this.currentSAccount = value;\n this.accountNo.setValue(value);\n this.term.setValue('');\n this.filterForSA();\n }\n filterForSA() {\n console.log(this.originalItems);\n console.log(this.currentSAccount);\n if(this.currentSAccount == 'Select account')\n { \n this.audit = this.originalItems; \n this.filteredBySettlementAccount = this.originalItems;\n this.totalEntries = this.audit.length;\n this.searchFilteredItems = this.audit;\n this.loadingData = true;\n this.pagenlenth = false;\n this.orderBy(this.currentSortOrder, this.audit.length);\n // this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (1 <= 0) {\n if (this.audit.length == 0) {\n this.audit = this.originalItems;\n // console.log('this.audit' + this.audit.length);\n }\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.originalItems;\n this.totalEntries = this.originalItems.length;\n // console.log('this.audit' + this.audit.length);\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n // console.log('this.audit' + this.audit.length);\n this.totalEntries = this.searchFilteredItems.length;\n }\n }); \n }\n else{ \n this.checkbox = this.originalItems;\n let itemsToSearch = this.originalItems;\n console.log(this.currentSAccount, itemsToSearch, this.accountsArray)\n this.searchService.findItemsFromAccount(this.currentSAccount, itemsToSearch, this.accountsArray)\n .then(allFiltered => {\n // console.log(allFiltered);\n if (this.currentSAccount.length > 0) {\n // this.audit= this.checkbox.filter(x=>x.accountNumber=='ASL016007' );\n this.filteredBySettlementAccount = allFiltered;\n this.audit = allFiltered;\n this.searchFilteredItems = allFiltered;\n // console.log('this.audit' + this.audit.length);\n } else {\n this.audit = this.originalItems;\n this.filteredBySettlementAccount = this.originalItems;\n } \n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n this.orderBy(this.currentSortOrder, this.audit.length);\n // this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (this.currentSAccount.length <= 0) {\n if (this.audit.length == 0) {\n this.audit = this.originalItems;\n // console.log('this.audit' + this.audit.length);\n }\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.originalItems;\n this.totalEntries = this.originalItems.length;\n // console.log('this.audit' + this.audit.length);\n } else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n // console.log('this.audit' + this.audit.length);\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n }); \n }\n \n \n }\n searchText() {\n console.log(\"search\");\n this.result = this.TextSearch.controls['term'].value;\n let itemsToSearch = this.originalItems;\n console.log(this.result, itemsToSearch, this.searchArray);\n if(this.result!=\"\"){\n this.searchService.findItemsFromMultiple(this.result, itemsToSearch, this.searchArray)\n .then(allFiltered => {\n if (this.result.length > 0) {\n this.audit = allFiltered;\n this.searchFilteredItems = allFiltered;\n } else {\n this.audit = this.filteredBySettlementAccount;\n }\n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n // console.log(this.audit);\n // console.log(this.audit.length);\n this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (!this.term.value) {\n if (this.audit.length == 0) {\n this.audit = this.filteredBySettlementAccount;\n }\n this.audit = this.filteredBySettlementAccount.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.filteredBySettlementAccount;\n this.totalEntries = this.filteredBySettlementAccount.length;\n }\n \n else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n });}else{\n this.clearSearch();\n\n }\n\n }\n exportDataOptions(submittedData?: Object[]) {\n let name = 'Transfers';\n let heading = 'Transfers CSV';\n \n // const data = submittedData;\n console.log(this.exportItems);\n this.originalItemsforexport = JSON.parse(JSON.stringify(this.exportItems));\n \n this.originalItemsforexport.forEach((value, index\n )=>{\n\n \n this.originalItemsforexport[index]['tradeDate']= this.pipe.transform(this.originalItemsforexport[index]['tradeDate'], 'MM/dd/yyyy');\n this.originalItemsforexport[index]['settlementDate']= this.pipe.transform(this.originalItemsforexport[index]['settlementDate'], 'MM/dd/yyyy');\n \n delete this.originalItemsforexport[index]['price'];\n // delete this.originalItemsforexport[index]['postingDate'];\n \n \n });\n\n \n console.log(this.originalItemsforexport);\n \n const data = this.originalItemsforexport;\n this.exportData(data, name, heading);\n }\n formatDataForSearch(data) {\n // console.log(data);\n data.map(d => {\n if(d.tradeDate=='0001-01-01T00:00:00')\n {\n d.tradeDate='';\n }\n if(d.settlementDate=='0001-01-01T00:00:00')\n {\n d.settlementDate='';\n }\n this.exportItems=this.originalItems;\n //loop through and convert specific items that need it- others remain as-is\n d.quantityNominal = this.numberPipe.transform(d.quantityNominal, '1.2-2');\n //d.originalCost = this.numberPipe.transform(d.originalCost, '1.2-2');\n // d.costBasis = this.numberPipe.transform(d.costBasis, '1.2-2');\n // d.currentShares = this.currencyPipe\n // .transform(d.currentShares, 'USD', false, '4.2-2')\n // .slice(3);\n });\n\n }\n\n\n}\n","export default \"mat-progress-bar.my-color .mat-progress-bar-fill::after {\\n background-color: #dd0094;\\n color: #dd0094;\\n}\\n\\n.clordfilafter {\\n background-color: #dd0094;\\n color: #dd0094;\\n}\\n\\n.mat-progress-bar-buffer {\\n background-color: #dd0094;\\n color: #dd0094;\\n}\\n\\nmat-progress-bar.my-color .mat-progress-bar-fill::after {\\n background-color: #dd0094;\\n color: #dd0094;\\n}\\n\\n.clordfilafter {\\n background-color: #dd0094;\\n color: #dd0094;\\n}\\n\\n.mat-progress-bar-buffer {\\n background-color: #dd0094;\\n color: #dd0094;\\n}\\n\\n.fl-rt {\\n float: right;\\n}\\n\\n.cancel {\\n cursor: pointer;\\n font-size: 1.2rem;\\n opacity: 0.75;\\n -webkit-transition: opacity 0.3s ease;\\n transition: opacity 0.3s ease;\\n}\\n\\n.cancel:hover {\\n opacity: 1;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWVudS90cmFuc2ZlcnNzL0U6XFxTVk5cXEFyYml0cmFsXFxGcm9udGVuZC9zcmNcXGFwcFxcbWVudVxcdHJhbnNmZXJzc1xcdHJhbnNmZXJzcy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWVudS90cmFuc2ZlcnNzL3RyYW5zZmVyc3MuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBQTtFQUNBLGNBQUE7QUNDRjs7QURFQTtFQUNFLHlCQUFBO0VBQ0EsY0FBQTtBQ0NGOztBRENBO0VBQ0UseUJBQUE7RUFDQSxjQUFBO0FDRUY7O0FEQ0E7RUFDRSx5QkFBQTtFQUNBLGNBQUE7QUNFRjs7QURDQTtFQUNFLHlCQUFBO0VBQ0EsY0FBQTtBQ0VGOztBREFBO0VBQ0UseUJBQUE7RUFDQSxjQUFBO0FDR0Y7O0FEQUE7RUFDSyxZQUFBO0FDR0w7O0FEREM7RUFDSSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxhQUFBO0VBQ0EscUNBQUE7RUFBQSw2QkFBQTtBQ0lMOztBREZDO0VBQ0ksVUFBQTtBQ0tMIiwiZmlsZSI6InNyYy9hcHAvbWVudS90cmFuc2ZlcnNzL3RyYW5zZmVyc3MuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJtYXQtcHJvZ3Jlc3MtYmFyLm15LWNvbG9yIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgI2RkMDA5NDtcclxuICBjb2xvcjojZGQwMDk0O1xyXG59XHJcblxyXG4uY2xvcmRmaWxhZnRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogICNkZDAwOTQ7XHJcbiAgY29sb3I6I2RkMDA5NDtcclxufVxyXG4ubWF0LXByb2dyZXNzLWJhci1idWZmZXJ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogICNkZDAwOTQ7XHJcbiAgY29sb3I6I2RkMDA5NDtcclxufVxyXG5cclxubWF0LXByb2dyZXNzLWJhci5teS1jb2xvciAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogICNkZDAwOTQ7XHJcbiAgY29sb3I6I2RkMDA5NDtcclxufVxyXG5cclxuLmNsb3JkZmlsYWZ0ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICAjZGQwMDk0O1xyXG4gIGNvbG9yOiNkZDAwOTQ7XHJcbn1cclxuLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICAjZGQwMDk0O1xyXG4gIGNvbG9yOiNkZDAwOTQ7XHJcbn1cclxuXHJcbi5mbC1ydCB7XHJcbiAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gfVxyXG4gLmNhbmNlbCB7XHJcbiAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgIG9wYWNpdHk6IDAuNzU7XHJcbiAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XHJcbiB9XHJcbiAuY2FuY2VsOmhvdmVyIHtcclxuICAgICBvcGFjaXR5OiAxO1xyXG4gfVxyXG5cclxuIFxyXG4iLCJtYXQtcHJvZ3Jlc3MtYmFyLm15LWNvbG9yIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkMDA5NDtcbiAgY29sb3I6ICNkZDAwOTQ7XG59XG5cbi5jbG9yZGZpbGFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkMDA5NDtcbiAgY29sb3I6ICNkZDAwOTQ7XG59XG5cbi5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZDAwOTQ7XG4gIGNvbG9yOiAjZGQwMDk0O1xufVxuXG5tYXQtcHJvZ3Jlc3MtYmFyLm15LWNvbG9yIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkMDA5NDtcbiAgY29sb3I6ICNkZDAwOTQ7XG59XG5cbi5jbG9yZGZpbGFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkMDA5NDtcbiAgY29sb3I6ICNkZDAwOTQ7XG59XG5cbi5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZDAwOTQ7XG4gIGNvbG9yOiAjZGQwMDk0O1xufVxuXG4uZmwtcnQge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5jYW5jZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBvcGFjaXR5OiAwLjc1O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbn1cblxuLmNhbmNlbDpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59Il19 */\"","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Location, DecimalPipe, CurrencyPipe } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\nimport { MultiColumnGridService } from '../../shared/multi-column-grid.service';\nimport { AccountService } from '../../shared/account.service';\nimport { AuthService } from '../../shared/auth.service';\nimport { BackendService } from '../../shared/backend.service';\nimport { FilterService } from '../../shared/filter.service';\nimport { NotificationService } from '../../notification/notification.service';\nimport { OrderByService } from '../../shared/orderby.service';\nimport { PaginationService } from '../../shared/pagination.service';\nimport { SearchService } from '../../shared/search.service';\nimport { Utilities } from '../../shared/utilities.service';\nimport { Subscription } from 'rxjs/Subscription';\nimport { resolve } from 'path';\nimport { Angular5Csv } from 'angular5-csv/dist/Angular5-csv';\nimport CONFIG from '../../../config';\n@Component({\n selector: 'app-transferss',\n templateUrl: './transferss.component.html',\n styleUrls: ['./transferss.component.scss']\n})\nexport class TransferssComponent extends MultiColumnGridService implements OnInit {\nresult: string = '';\n constructor(\n\n public location: Location,\n public backendService: BackendService,\n public authService: AuthService,\n public accountService: AccountService,\n public notificationService: NotificationService,\n public formBuilder: FormBuilder,\n public searchService: SearchService,\n public orderByService: OrderByService,\n public router: Router,\n public paginationService: PaginationService,\n public filterService: FilterService,\n public numberPipe: DecimalPipe,\n public currencyPipe: CurrencyPipe\n \n\n ) {\n super(location, backendService, authService, notificationService, formBuilder,\n searchService, orderByService, router, paginationService, currencyPipe, filterService);\n }\n ngOnInit() {\n //this.searchText();\n \n this.apiUrl = CONFIG.transfersApiUrlBase;\n this.serviceInit(this.formatDataForSearch);\n //this.searchArray = ['transfertype','accountNumber', 'primaryCustomer', 'transactionNumber', 'securityIDType', 'isin', 'securityCategory', 'purchPrice', 'purchValue', 'marketValue', 'percentageGainOrLoss', 'accruedInterest', 'face', 'description','currency'];\n this.searchArray=['tradeDate','settlementDate','securityType','transfertype','currency','securityDescription','isin','quantity','price','comments'];\n this.fields=['tradeDate','settlementDate','securityType','transfertype','currency','securityDescription','isin','quantity','price','comments'];\n this.fieldNames = ['TradeDate','SettlementDate','SecurityType','Transfertype','Currency','SecurityDescription','ISIN','Quantity','Price','Comments'];\n this.accountsArray = ['accountNumber'];\n this.currentPage='transfers';\n // this.fields = ['transfertype','accountNumber', 'currency', 'marketValue', 'purchValue', 'securityIDType', 'transactionNumber', 'securityCategory', 'primaryCustomer', 'description', 'isin', 'purchasePrice', 'marketPrice', 'percentageGainOrLoss', 'quantityNominal', 'accruedInterest'];\n // this.fieldNames = ['Transfertype','AccountNumber', 'PrimaryCustomer', 'TransactionNumber', 'SecurityIDType', 'ISIN', 'SecurityCategory', 'Description', 'QuantityNominal', 'PurchPrice', 'PurchValue', 'PercentageGainOrLoss', 'MarketValue', 'AccruedInterest', 'MarketPrice', 'Currency'];\n this.defaultSortOrder = 'currency';\n }\n\n \n\n searchText() {\n console.log(\"search\");\n this.result = this.TextSearch.controls['term'].value;\n let itemsToSearch = this.originalItems;\n console.log(this.result, itemsToSearch, this.searchArray);\n if(this.result!=\"\"){\n this.searchService.findItemsFromMultiple(this.result, itemsToSearch, this.searchArray)\n .then(allFiltered => {\n if (this.result.length > 0) {\n this.audit = allFiltered;\n this.searchFilteredItems = allFiltered;\n } else {\n this.audit = this.filteredBySettlementAccount;\n }\n this.totalEntries = this.audit.length;\n this.loadingData = true;\n this.pagenlenth = false;\n // console.log(this.audit);\n // console.log(this.audit.length);\n this.setGrid(1, this.audit.length, \"search\");\n this.entryRangeSubscription = this.paginationService.entryRange\n .subscribe(range => {\n this.entryRange = range;\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\n if (!this.term.value) {\n if (this.audit.length == 0) {\n this.audit = this.filteredBySettlementAccount;\n }\n this.audit = this.filteredBySettlementAccount.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.filteredBySettlementAccount;\n this.totalEntries = this.filteredBySettlementAccount.length;\n }\n \n else {\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\n this.exportItems = this.searchFilteredItems;\n this.totalEntries = this.searchFilteredItems.length;\n }\n });\n });}else{\n this.clearSearch();\n\n }\n\n }\n formatDataForSearch(data) {\n // console.log(data);\n data.map(d => {\n\n\n //loop through and convert specific items that need it- others remain as-is\n d.quantityNominal = this.numberPipe.transform(d.quantityNominal, '1.2-2');\n //d.originalCost = this.numberPipe.transform(d.originalCost, '1.2-2');\n // d.costBasis = this.numberPipe.transform(d.costBasis, '1.2-2');\n // d.currentShares = this.currencyPipe\n // .transform(d.currentShares, 'USD', false, '4.2-2')\n // .slice(3);\n });\n\n }\n\n\n}\n","export default \".notification-wrapper {\\n opacity: 1;\\n position: fixed;\\n box-sizing: border-box;\\n bottom: 15px;\\n right: 15px;\\n min-width: 250px;\\n max-width: 50%;\\n border-radius: 5px;\\n color: #fff;\\n display: -webkit-box;\\n display: flex;\\n justify-content: space-around;\\n -webkit-box-align: center;\\n align-items: center;\\n padding: 12px;\\n font-size: 1.25em;\\n -webkit-transform: translateY(0);\\n transform: translateY(0);\\n -webkit-transition: -webkit-transform 0.5s ease;\\n transition: -webkit-transform 0.5s ease;\\n transition: transform 0.5s ease;\\n transition: transform 0.5s ease, -webkit-transform 0.5s ease;\\n z-index: 9999;\\n}\\n\\n.pushdown {\\n -webkit-transform: translateY(200%);\\n transform: translateY(200%);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbm90aWZpY2F0aW9uL0U6XFxTVk5cXEFyYml0cmFsXFxGcm9udGVuZC9zcmNcXGFwcFxcbm90aWZpY2F0aW9uXFxub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxVQUFBO0VBQ0EsZUFBQTtFQUNBLHNCQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSw2QkFBQTtFQUNBLHlCQUFBO1VBQUEsbUJBQUE7RUFDQSxhQUFBO0VBQ0EsaUJBQUE7RUFFQSxnQ0FBQTtVQUFBLHdCQUFBO0VBQ0EsK0NBQUE7RUFBQSx1Q0FBQTtFQUFBLCtCQUFBO0VBQUEsNERBQUE7RUFDQSxhQUFBO0FDQUo7O0FERUE7RUFDSSxtQ0FBQTtVQUFBLDJCQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm5vdGlmaWNhdGlvbi13cmFwcGVyIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgYm90dG9tOiAxNXB4O1xyXG4gICAgcmlnaHQ6IDE1cHg7XHJcbiAgICBtaW4td2lkdGg6IDI1MHB4O1xyXG4gICAgbWF4LXdpZHRoOiA1MCU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAxMnB4O1xyXG4gICAgZm9udC1zaXplOiAxLjI1ZW07XHJcbiAgIC8vIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcclxuICAgIHotaW5kZXg6IDk5OTk7XHJcbn1cclxuLnB1c2hkb3duIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAlKTtcclxufSIsIi5ub3RpZmljYXRpb24td3JhcHBlciB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm90dG9tOiAxNXB4O1xuICByaWdodDogMTVweDtcbiAgbWluLXdpZHRoOiAyNTBweDtcbiAgbWF4LXdpZHRoOiA1MCU7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY29sb3I6ICNmZmY7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAxMnB4O1xuICBmb250LXNpemU6IDEuMjVlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICB6LWluZGV4OiA5OTk5O1xufVxuXG4ucHVzaGRvd24ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwJSk7XG59Il19 */\"","import {Component, OnInit} from '@angular/core';\r\n\r\nimport {NotificationService} from './notification.service';\r\n\r\n@Component({\r\n selector: 'notification-component',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.scss']\r\n // template: `\r\n //
\r\n // \r\n // \r\n //
{{notificationService.message}}
\r\n // \r\n //
\r\n // `,\r\n // styles: [`\r\n // .notification-wrapper {\r\n // opacity: 1;\r\n // position: fixed;\r\n // box-sizing: border-box;\r\n // bottom: 15px;\r\n // right: 15px;\r\n // min-width: 250px;\r\n // max-width: 50%;\r\n // border-radius: 5px;\r\n // color: #fff;\r\n // display: flex;\r\n // justify-content: space-around;\r\n // align-items: center;\r\n // padding: 12px;\r\n // font-size: 1.25em;\r\n // -webkit-backface-visibility: hidden;\r\n // transform: translateY(0);\r\n // transition: transform 0.5s ease;\r\n // z-index: 9999;\r\n // }\r\n // .pushdown {\r\n // transform: translateY(200%);\r\n // }\r\n // `]\r\n})\r\nexport class NotificationComponent implements OnInit {\r\n showNotice;\r\n\r\n constructor(\r\n public notificationService: NotificationService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.showNotice = this.notificationService.showNotification;\r\n this.notificationService.manualDismiss = false;\r\n this.notificationService.timeToClose = 3000;\r\n }\r\n\r\n closeNotice() {\r\n this.notificationService.isNotificationHidden = true;\r\n this.notificationService.manualDismiss = false;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n//options are optional, but if provided, this will help guide types and choices\r\ninterface NotificationOptions {\r\n message?: string;\r\n timer?: number;\r\n type?: string;\r\n closeable?: boolean;\r\n}\r\n\r\n@Injectable()\r\nexport class NotificationService {\r\n notfications: any[];\r\n isNotificationHidden: boolean = true;\r\n manualDismiss: boolean = false;\r\n timeToClose: any = 3000;\r\n timerHandle: any;\r\n message: string;\r\n bgType: string;\r\n iconType: string;\r\n\r\n constructor() { }\r\n\r\n showNotification(options?: NotificationOptions) {\r\n if(!this.isNotificationHidden) {\r\n return;\r\n }\r\n\r\n if(options && (options.timer || options.timer === 0)) {\r\n //special case for timer = 0 (a simple check will always return false)\r\n this.timeToClose = options.timer;\r\n } else {\r\n this.timeToClose = 3000;\r\n }\r\n\r\n this.message = (options && options.message) || 'System Notification';\r\n const type = (options && options.type) || 'default';\r\n this.manualDismiss = (options && options.closeable) || false;\r\n\r\n switch (type) {\r\n case 'success':\r\n this.bgType = 'bg-success';\r\n this.iconType = 'fa-thumbs-o-up';\r\n break;\r\n case 'error':\r\n this.bgType = 'bg-danger';\r\n this.iconType = 'fa-exclamation-triangle';\r\n break;\r\n case 'warning':\r\n this.bgType = 'bg-warning';\r\n this.iconType = 'fa-exclamation-triangle';\r\n break;\r\n case 'default':\r\n default:\r\n this.bgType = 'bg-primary';\r\n this.iconType = 'fa-exclamation-triangle';\r\n break;\r\n }\r\n\r\n this.isNotificationHidden = false;\r\n\r\n //if timer is passed in config and set to 0, we don't want to hide it after a timeout (user has to click to dismiss\r\n if (this.timeToClose > 0) {\r\n this.setTimers();\r\n } else {\r\n this.manualDismiss = true;\r\n }\r\n }\r\n\r\n setTimers() {\r\n //remove css effect takes 500ms - make sure that completes before removing content from notice.\r\n //let timePadding = this.timeToClose + 600;\r\n this.timerHandle = setTimeout(() => {\r\n this.isNotificationHidden = true;\r\n setTimeout(() => {\r\n this.message = '';\r\n this.bgType = '';\r\n this.iconType = '';\r\n this.timeToClose = 3000;\r\n }, 600);\r\n }, this.timeToClose);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BvcHVwZGlzcGxheS9wb3B1cGRpc3BsYXkuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material';\n\n@Component({\n selector: 'app-popupdisplay',\n templateUrl: './popupdisplay.component.html',\n styleUrls: ['./popupdisplay.component.scss']\n})\nexport class PopupdisplayComponent implements OnInit {\n public confirmMessage:string;\n constructor(public dialogRef:MatDialogRef) \n { }\n\n ngOnInit() {\n }\n onNoClick(): void \n {\n this.dialogRef.close();\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb2ZpbGUvY29uZmlybW1vZGlmeS9jb25maXJtbW9kaWZ5LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Inject } from '@angular/core';\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material';\nimport CONFIG from '../../../config';\nimport { BackendService } from '../../shared/backend.service';\nimport { AuthService } from '../../shared/auth.service';\nimport { NotificationService } from '../../notification/notification.service';\nimport { NgForm, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Utilities } from '../../shared/utilities.service';\nimport { Location } from '@angular/common';\nimport { AlertmessageService } from 'app/shared/alertmessage.service';\nimport { Router } from '@angular/router';\n\n\n@Component({\n selector: 'app-confirmmodify',\n templateUrl: './confirmmodify.component.html',\n styleUrls: ['./confirmmodify.component.scss']\n})\nexport class ConfirmModifyComponent extends Utilities implements OnInit {\n\n passwordConfirmed: boolean = true;\n submitted: boolean = false;\n updatedProfile: FormGroup;\n\n\n constructor(\n public backendService: BackendService,\n public notificationService: NotificationService,\n public authService: AuthService,\n public location: Location,\n public dialog: MatDialog,\n public alert:AlertmessageService,\n public _router:Router,\n @Inject(MAT_DIALOG_DATA) public data: any) \n { super(location, notificationService, authService, backendService)};\n\n ngOnInit() {\n console.log(this.data);\n }\n no() {\n this.dialog.closeAll();\n this._router.navigate(['/dashboard/account-setting']);\n //console.log(updatedProfile[updatedProfile] , this.passwordConfirmed);\n }\n accept() {\n \n this.updateProfile(this.data);\n this.dialog.closeAll();\n \n }\n updateProfile(updatedProfile) {\n console.log(updatedProfile['updatedProfile'] , this.passwordConfirmed);\n this.submitted = true;\n //console.log(this.updatedProfile.valid , this.passwordConfirmed);\n if (updatedProfile['updatedProfile'] && this.passwordConfirmed) {\n console.log('entered into method');\n this.backendService.putData(updatedProfile['updatedProfile'], `${CONFIG.profileApiUrlBase}/${this.authService.CustomerID}`)\n .subscribe(\n response => {\n if(response['result'])\n {\n this.submitted = false;\n this.notificationService.showNotification({ message: response['msg'], type: 'success' });\n this.authService.logout();\n }\n // else\n //// {\n // this.alert.openConfirmationDialog(response['msg'],response['result']);\n // this._router.navigate(['/dashboard/account-setting']);\n // }\n },\n error => {\n this.serverErrorOrTimeout(error);\n });\n } else {\n // validators handle this case\n console.log('error with form');\n }\n }\n\n// rejectConfirm(key) {\n// key=key+\"_rejected\";\n// this.backendService.putData(key, `${CONFIG.contactUsApiUrlBase}/${key}`)\n// .subscribe(response => {\n// // this.submitted = false;\n// if (response) {\n// this.notificationService.showNotification({ message: response['msg'], type: 'success' });\n \n// } else {\n// this.notificationService.showNotification({ message: response['msg'], type: 'error' });\n// }\n// },\n// error => {\n// this.serverErrorOrTimeout(error);\n \n// });\n \n// }\n}\n","import CONFIG from '../../config';\nimport { Component, OnInit } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { NgForm, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs/Observable';\n\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material';\nimport { BackendService } from '../shared/backend.service';\nimport { AuthService } from '../shared/auth.service';\nimport { NotificationService } from '../notification/notification.service';\nimport { Utilities } from '../shared/utilities.service';\nimport { ConfirmModifyComponent } from './confirmmodify/confirmmodify.component';\nimport { AlertmessageService } from 'app/shared/alertmessage.service';\n\nexport interface SecurityQuestion {\n value: number;\n viewValue: string;\n }\n\n@Component({\n selector: 'app-profile',\n templateUrl: './profile.component.html'\n})\nexport class ProfileComponent extends Utilities implements OnInit {\n result:any;\n msg : any;\n id: string;\n updatedProfile: FormGroup;\n Password: FormControl;\n profileData: any;\n\n passwordStrength: number = 0;\n updatingPassword: boolean = false;\n passwordConfirmed: boolean = true;\n submitted: boolean = false;\n selected_Q1: string = '';\n selected_Q2: string = '';\n securityquestions: SecurityQuestion[] = [\n {value: 1, viewValue: \"What was your childhood nickname?\"},\n {value: 2, viewValue: \"What is the name of your favorite childhood friend?\"},\n {value: 3, viewValue: \"What was your dream job as a child?\"},\n {value: 4, viewValue: \"Where is your favorite place to travel?\"},\n {value: 5, viewValue: \"What primary school did you attend?\"},\n {value: 6, viewValue: \"In what village was your first full time job?\"},\n {value: 7, viewValue: \"Where did you meet your spouse/partner?\"},\n {value: 8, viewValue: \"What is the middle name of your oldest child?\"},\n {value: 9, viewValue: \"What are the last four digits of your driver's license number?\"},\n {value: 10, viewValue: \"What is the name of your favorite childhood friend?\"},\n {value: 11, viewValue: \"What is your maternal grandmother's maiden name?\"}\n ];\n resetQuestions: Object[] = [];\n passwordstatus: boolean = false;\n constructor(\n public _formBuilder: FormBuilder,\n public _router: Router,\n public location: Location,\n public notificationService: NotificationService,\n public authService: AuthService,\n public backendService: BackendService,\n public dialog: MatDialog,\n public alert:AlertmessageService\n ) {\n super(location, notificationService, authService, backendService);\n this.setForm();\n \n }\n \n ngOnInit() { \n console.log(this.securityquestions.length) ;\n this.getMyProfile();\n //this.getPasswordResetQuestions();\n }\n checkpassword(){ \n let ModifyPassword = this.updatedProfile.controls['ModifyPassword'].value; \n let ConfirmPassword = this.updatedProfile.controls['ConfirmPassword'].value; \n if(ModifyPassword == ConfirmPassword){ \n this.passwordstatus = false;\n }\n else{ \n this.passwordstatus = true;}\n }\n \n updateProfiledata2(updatedProfile) {\n const myThis = this;\n this.openDialog(updatedProfile);\n }\n \n\n openDialog(updatedProfile: any): void {\n //localStorage.setItem('key', key);\n let dialogRef = this.dialog.open(ConfirmModifyComponent, {\n width: '50%',\n height: '30%',\n data: { updatedProfile }\n });\n this._router.navigate(['/dashboard']);\n dialogRef.afterClosed().subscribe(result => {\n //this.GetExchangeData();\n //this.serviceInit();\n });\n }\n\n updateProfiledata(updatedProfile) {\n console.log(updatedProfile , this.passwordConfirmed);\n this.submitted = true;\n console.log(this.updatedProfile.valid , this.passwordConfirmed);\n if (this.updatedProfile.valid && this.passwordConfirmed) {\n this.backendService.putData(updatedProfile, `${CONFIG.profileApiUrlBase}/${this.authService.CustomerID}`)\n .subscribe(\n response => {\n this.submitted = false;\n this.notificationService.showNotification({ message: response['msg'], type: 'success' });\n this.authService.logout();\n },\n error => {\n this.serverErrorOrTimeout(error);\n });\n } else {\n //validators handle this case\n console.log('error with form');\n }\n }\n\n getMyProfile() {\n \n this.backendService.getData(`${CONFIG.profileApiUrlBase}/${this.authService.CustomerID}`)\n .subscribe(profileData => {\n console.log(\"getMyProfile method\"); \n if(!profileData) {\n this.notificationService.showNotification({ timer: 5000, message: profileData['msg'], type: 'error', closeable: false });\n } \n for(let i = 0; i < this.resetQuestions.length; i += 1) {\n if(this.resetQuestions[i]['viewValue'] === profileData['user'].pwdResetQuestion1) {\n this.selected_Q1 = this.resetQuestions[i].toString();\n } else if(this.resetQuestions[i]['viewValue'] === profileData['user'].pwdResetQuestion2) {\n this.selected_Q2 = this.resetQuestions[i].toString();\n }\n }\n\n this.updatedProfile.controls['PwdResetQuestion1'].setValue(profileData['user'].pwdResetQuestion1);\n this.updatedProfile.controls['PwdResetQuestion2'].setValue(profileData['user'].pwdResetQuestion2);\n this.updatedProfile.controls['PwdResetAnswer2'].setValue(profileData['user'].pwdResetAnswer2);\n this.updatedProfile.controls['PwdResetAnswer1'].setValue(profileData['user'].pwdResetAnswer1); \n \n this.updatedProfile.controls['ModifyPassword'].valueChanges\n .debounceTime(200)\n .subscribe((value) => {\n this.passwordConfirmed = value === '';\n this.updatingPassword = value !== '';\n });\n\n this.updatedProfile.controls['ConfirmPassword'].valueChanges\n .subscribe((value) => {\n this.passwordConfirmed = this.updatedProfile.controls['ModifyPassword'].value === value;\n });\n },\n error => {\n this.serverErrorOrTimeout(error);\n });\n\n }\n \n setSecurityQuestions(newInfo) {\n this.submitted = true;\n\n if (this.updatedProfile.valid) {\n this.backendService.putData(newInfo, `${CONFIG.profileApiUrlBase}/updateprofilesecurityquestions`)\n .subscribe(response => {\n if (response) {\n //finish login process\n this.submitted = false;\n this.authService.loggedIn = true;\n\n //remove the 'partiallogin' session variable that prevented further nav on reload\n sessionStorage.removeItem('partial_login');\n\n //hide form\n // this._loginService.resetQuestionsSet = true;\n\n this.notificationService.showNotification({ message: response['msg'], type: 'success' });\n this._router.navigate(['/main']);\n } else {\n this.notificationService.showNotification({ message: response['msg'], type: 'error' });\n }\n\n }, error => {\n this.serverErrorOrTimeout(error);\n });\n } else {\n //validators should handle this branch\n }\n }\n\n cancel() {\n // this._loginService.resetQuestionsSet = true;\n this._router.navigate(['/dashboard']);\n // this.authService.logout();\n }\n\n \n setForm() {\n this.updatedProfile = this._formBuilder.group({\n 'Password': ['', Validators.minLength(3)],\n 'ModifyPassword': ['',Validators.pattern('^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,12}$')],\n 'ConfirmPassword': [''],\n 'PwdResetQuestion1': [''],\n 'PwdResetQuestion2': [''],\n 'PwdResetAnswer1': [''],\n 'PwdResetAnswer2': ['']\n });\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AccountService {\r\n currentSettlementAccount = '';\r\n \r\n // Observable string sources\r\n private currentSettlementAccountChangeConfirmedSource = new Subject();\r\n \r\n // Observable string streams\r\n currentSettlementAccountChange$ = this.currentSettlementAccountChangeConfirmedSource.asObservable();\r\n \r\n setSAccount(currentSettlementAccount: string) {\r\n this.currentSettlementAccount = currentSettlementAccount;\r\n this.currentSettlementAccountChangeConfirmedSource.next(currentSettlementAccount);\r\n } \r\n \r\n}","import { Injectable } from '@angular/core';\nimport { PopupdisplayComponent } from 'app/popupdisplay/popupdisplay.component';\nimport { MatDialogRef, MatDialog } from '@angular/material';\nimport { Subject, Observable } from 'rxjs';\nimport { Router } from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AlertmessageService \n{\n dialogRef: MatDialogRef;\n private subject = new Subject();\n constructor(public dialog: MatDialog,public _router:Router) \n { \n\n }\n confirm(message: string,siFn:()=>void,noFn:()=>void)\n {\n console.log(\"on confirm\");\n this.setConfirmation(message,siFn,noFn);\n }\n setConfirmation(message: string,siFn:()=>void,noFn:()=>void) {\n let that = this;\n console.log(\"set confirm\");\n this.subject.next({ type: \"confirm\",\n text: message,\n siFn:\n function()\n {\n that.subject.next(); //this will close the modal\n siFn();\n },\n noFn:function()\n {\n that.subject.next();\n noFn();\n }\n });\n\n }\n\n getMessage(): Observable {\n return this.subject.asObservable();\n }\n openConfirmationDialog(Msg,checking?:Boolean) \n {\n \n this.dialogRef = this.dialog.open(PopupdisplayComponent, {\n height: '140px',\n width: '900px',\n data: {},\n disableClose: false\n });\n this.dialogRef.componentInstance.confirmMessage = Msg;\n \n this.dialogRef.afterClosed().subscribe(result => { \n this.dialogRef = null;\n });\n }\n}\n","import { Directive, ElementRef, Input, Output, OnChanges, EventEmitter, HostBinding, HostListener } from '@angular/core';\ndeclare const google: any;\ndeclare let googleLoaded: any;\ndeclare const googleChartsPackagesToLoad: any;\n\n@Directive({\n selector: '[GoogleChart]'\n})\nexport class GoogleChart implements OnChanges {\n public _element: any;\n @Input('chartType') public chartType: string;\n @Input('chartOptions') public chartOptions: Object;\n @Input('loadingDelay') public loadingDelay = 0;\n @Input('chartData') public chartData: Object;\n @Output('itemSelect') public itemSelect: EventEmitter<{ row: number, column: number }> = new EventEmitter();\n @Output('itemDeselect') public itemDeselect: EventEmitter = new EventEmitter();\n\n constructor(public element: ElementRef) {\n this._element = this.element.nativeElement;\n }\n\n ngOnChanges() {\n if (!googleLoaded) {\n googleLoaded = true;\n google.charts.load('current', { 'packages': ['corechart', 'gauge']['orgchart'] });\n }\n setTimeout(() => this.drawGraph(this.chartOptions, this.chartType, this.chartData, this._element), this.loadingDelay);\n }\n\n @HostListener('window:resize') onResize(event: Event) {\n this.drawGraph(this.chartOptions, this.chartType, this.chartData, this._element);\n }\n\n drawGraph(chartOptions, chartType, chartData, ele) {\n // console.log(chartOptions, chartType, chartData, ele);\n \n google.charts.setOnLoadCallback(drawChart);\n const self = this;\n\n function drawChart() {\n const wrapper = new google.visualization.ChartWrapper({\n chartType: chartType,\n dataTable: chartData,\n options: chartOptions || {}\n });\n\n wrapper.draw(ele);\n google.visualization.events.addListener(wrapper, 'select', function () {\n const selectedItem = wrapper.getChart().getSelection()[0];\n\n if (selectedItem) {\n\n let msg;\n if (selectedItem !== undefined) {\n const selectedRowValues = [];\n if (selectedItem.row !== null) {\n selectedRowValues.push(wrapper.getDataTable().getValue(selectedItem.row, 0));\n selectedRowValues.push(wrapper.getDataTable().getValue(selectedItem.row, selectedItem.column));\n console.log(selectedItem.row, selectedItem.column,selectedRowValues);\n msg = {\n message: 'select',\n row: selectedItem.row,\n column: selectedItem.column,\n selectedRowValues: selectedRowValues\n };\n }\n }\n self.itemSelect.emit(msg);\n } else\n self.itemDeselect.emit();\n });\n }\n }\n}","import CONFIG from '../../config';\r\nimport { Injectable } from '@angular/core';\r\nimport { Http, Response, Headers, RequestOptions } from '@angular/http';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { LoadingService } from '../loading-spinner/loading.service';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n public loggedIn: boolean;\r\n public CustomerID: string = localStorage.getItem('CustomerID') || sessionStorage.getItem('CustomerID');\r\n public token: string = localStorage.getItem('token') || sessionStorage.getItem('token');\r\n\r\n constructor(\r\n private _http: Http,\r\n private _router: Router,\r\n private _loadingService: LoadingService\r\n ) {}\r\n\r\n login(loginData): Observable {\r\n this._loadingService.show();\r\n const body = JSON.stringify(loginData);\r\n const headers = new Headers({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n });\r\n const options = new RequestOptions({ headers: headers });\r\n return this._http.post(CONFIG.loginApiUrlBase, body, options)\r\n .map(response => {\r\n return response.json();\r\n })\r\n .catch(this.handleError)\r\n .finally(() => {\r\n this._loadingService.hide();\r\n });\r\n }\r\n\r\n \r\n logout() {\r\n this._loadingService.show();\r\n this.loggedIn = false; \r\n this._http.get(CONFIG.loginApiUrlBase)\r\n .subscribe(response => {\r\n this._loadingService.hide();\r\n\r\n //if the user had the 'remember me' flag enabled, session info stored in localStorage\r\n if (localStorage.getItem('token') !== null) {\r\n localStorage.removeItem('Expires/Max-Age');\r\n localStorage.removeItem('CustomerID');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('CustomerID');\r\n }\r\n\r\n //if the user did not have the 'remember me' flag enabled, session info stored in sessionStorage\r\n if (sessionStorage.getItem('token') !== null) {\r\n localStorage.removeItem('CustomerID');\r\n sessionStorage.removeItem('token');\r\n localStorage.removeItem('CustomerID');\r\n }\r\n\r\n //remove locally cached identity variables\r\n this.token = null;\r\n this.loggedIn = false;\r\n this.CustomerID = null;\r\n\r\n this._router.navigate(['/']);\r\n },\r\n error => {\r\n this.handleError(error);\r\n },\r\n () => {\r\n this._loadingService.hide();\r\n });\r\n }\r\n\r\n /*\r\n Utility error handler function for server errors\r\n */\r\n private handleError(error) {\r\n const errMsg = error.message || 'Server error';\r\n return Observable.throw(error);\r\n }\r\n\r\n clearCookies() {\r\n const cookies = document.cookie.split(';');\r\n for (let i = 0; i < cookies.length; i++) {\r\n const cookie = cookies[i];\r\n const eqPos = cookie.indexOf('=');\r\n const name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;\r\n document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/';\r\n }\r\n } \r\n}","import {Injectable} from '@angular/core';\r\nimport { Response, Request, RequestOptions, ResponseContentType } from '@angular/http';\r\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\r\n\r\nimport { catchError } from 'rxjs/operators';\r\nimport {Observable} from 'rxjs/Rx';\r\nimport CONFIG from './../../config';\r\nimport { AuthService } from './auth.service';\r\nimport { LoadingService } from '../loading-spinner/loading.service';\r\n\r\n\r\n@Injectable()\r\nexport class BackendService {\r\n\r\n constructor(\r\n private _http: HttpClient,\r\n private _authService: AuthService,\r\n private _loadingService: LoadingService\r\n ) {}\r\n// downloadFileGET(DocID): Observable {\r\n// let options = new RequestOptions({responseType: ResponseContentType.Blob });\r\n// return this._http.get(`${CONFIG.documentsfileApiUrlBase}/${DocID}`, options)\r\n// .map(res => res.blob())\r\n// .catch(this.handleError)\r\n// }\r\n downloadFile(DocID,docRef2): Observable {\r\n // let httpOptions = new RequestOptions({responseType: ResponseContentType.Blob });\r\n // const httpOptions = { \r\n // headers: new HttpHeaders({\r\n // 'Content-Type': 'application/json',\r\n // 'Authorization': `Bearer ${this._authService.token}`,\r\n // responseType: 'blob'\r\n // })\r\n // };\r\n var body = { filename: docRef2 };\r\n return this._http.post(`${CONFIG.documentsApiUrlBase}/${DocID}`, body, {\r\n responseType: \"blob\",\r\n headers: new HttpHeaders().append(\"Content-Type\", \"application/json\")\r\n }).map(res => res as Blob);\r\n // return this._http.put(`${CONFIG.documentsApiUrlBase}/${DocID}`,httpOptions, {responseType: 'blob' as 'json'})\r\n // .pipe(\r\n // catchError(this.handleError)\r\n // )\r\n // .map(res => res as Blob)\r\n // .catch(this.handleError)\r\n }\r\n getfileData(url) { \r\n this._loadingService.show();\r\n const httpOptions = { \r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this._authService.token}`\r\n })\r\n };\r\n\r\n return this._http.get(url, httpOptions) \r\n .map(response => {\r\n if (response) {\r\n return response;\r\n } else {\r\n throw new Error('Error Getting Data');\r\n }\r\n })\r\n .catch(this.handleError)\r\n .finally(() => {\r\n this._loadingService.hide();\r\n });\r\n }\r\n\r\n getData(url) { \r\n this._loadingService.show();\r\n const httpOptions = { \r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this._authService.token}`\r\n })\r\n };\r\n \r\n return this._http.get(url, httpOptions) \r\n .map(response => {\r\n if (response) {\r\n return response;\r\n } else {\r\n throw new Error('Error Getting Data');\r\n }\r\n })\r\n // .map(response => {\r\n // if (response.json()) {\r\n // return response.json();\r\n // } else {\r\n // throw new Error('Error Getting Data');\r\n // }\r\n // })\r\n .catch(this.handleError)\r\n .finally(() => {\r\n this._loadingService.hide();\r\n });\r\n }\r\n\r\n deleteData(url) {\r\n this._loadingService.show();\r\n const httpOptions = { \r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this._authService.token}`\r\n })\r\n };\r\n // const httpOptions = new RequestOptions({ headers: headers });\r\n return this._http.delete(url, httpOptions)\r\n .map(response => {\r\n return response;\r\n })\r\n .catch(this.handleError)\r\n .finally(() => {\r\n this._loadingService.hide();\r\n });\r\n }\r\n\r\n postData(newData, url) {\r\n this._loadingService.show(); \r\n const httpOptions = { \r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this._authService.token}`\r\n })\r\n };\r\n const body = JSON.stringify(newData);\r\n return this._http.post(url, body, httpOptions) \r\n .map(response => {\r\n return response;\r\n })\r\n .catch(this.handleError)\r\n .finally(() => {\r\n this._loadingService.hide();\r\n });\r\n }\r\n\r\n putData(updatedData, url) {\r\n this._loadingService.show();\r\n const httpOptions = { \r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this._authService.token}`\r\n })\r\n };\r\n const body = JSON.stringify(updatedData);\r\n return this._http.put(url, body, httpOptions)\r\n .map(response => {\r\n return response;\r\n })\r\n .catch(this.handleError)\r\n .finally(() => {\r\n this._loadingService.hide();\r\n });\r\n \r\n }\r\n\r\n /*\r\n Utility error handler function for server errors\r\n */\r\n private handleError(error) {\r\n if(error.status && error.status === 401) {\r\n return Observable.throw('Session Expired- please log in');\r\n }\r\n\r\n return Observable.throw('Server Error');\r\n }\r\n \r\n}","export const LatestBrowserVersions = {\r\n 'Chrome': 73,\r\n 'Firefox': 66,\r\n 'Opera': 58,\r\n 'Safari': 12,\r\n 'MS-Edge': 17,\r\n 'IE': 11\r\n};","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs/Observable';\r\n\r\n@Injectable()\r\nexport class FilterService {\r\n constructor() {}\r\n\r\n filterFromMultiple(items: Object, group: Array): Array {\r\n console.log(items,group);\r\n let itemsToLoop: Array = [];\r\n let filtered = group;\r\n let minDate = 0;\r\n let maxDate = 0;\r\n let date1, date2;\r\n\r\n //set up array of props from items object that have values\r\n //need to check for null and empty string instead of true/false, as filtering by checkbox will use a 'false' value!\r\n for(let item in items) {\r\n if(items[item] !== null && items[item] !== '') {\r\n itemsToLoop.push({\r\n property: item,\r\n value: items[item]\r\n });\r\n }\r\n }\r\n\r\n //check props array for Date objects- if exist, get min and max for range checking\r\n itemsToLoop.forEach(item => {\r\n if(item['value'] instanceof Date) {\r\n if(!date1) {\r\n date1 = +item['value'];\r\n } else {\r\n date2 = +item['value'];\r\n }\r\n\r\n maxDate = Math.max(date1, date2);\r\n minDate = Math.min(date1, date2);\r\n }\r\n });\r\n\r\n for(let i = 0, l = itemsToLoop.length; i < l; i += 1) {\r\n let propCheck = itemsToLoop[i]['property'];\r\n let valueCheck = itemsToLoop[i]['value'];\r\n let datePropName = '';\r\n\r\n //if a date is submitted in search params, find the property name of the array being searched where value = type Date to be used in filter below\r\n if(valueCheck instanceof Date) {\r\n for(let j = 0; j < 1; j += 1) {\r\n for(let p in group[j]) {\r\n if(group[j][p] instanceof Date) {\r\n datePropName = p;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n filtered = filtered.filter((property, index, arr) => {\r\n if(valueCheck instanceof Date) {\r\n let thisDateAsNumber = +new Date(property[datePropName]);\r\n return thisDateAsNumber >= minDate && thisDateAsNumber <= maxDate;\r\n } else {\r\n return property[propCheck] === valueCheck;\r\n }\r\n });\r\n }\r\n console.log(\"filtered\"+filtered);\r\n\r\n return filtered;\r\n }\r\n}","//import * as json2csv from 'json2csv';\r\nimport { Injectable,ViewChild } from '@angular/core';\r\nimport { Location, CurrencyPipe } from '@angular/common';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { BackendService } from './backend.service';\r\nimport { AuthService } from './auth.service';\r\nimport { NotificationService } from '../notification/notification.service';\r\nimport { SearchService } from './search.service';\r\nimport { OrderByService } from './orderby.service';\r\nimport { Utilities } from './utilities.service';\r\nimport { PaginationService } from './pagination.service';\r\nimport { FilterService } from './filter.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\n//import { map } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { map, filter, switchMap } from 'rxjs/operators';\r\nimport { Angular5Csv } from 'angular5-csv/dist/Angular5-csv';\r\nimport { MatInput } from '@angular/material';\r\n@Injectable()\r\nexport class MultiColumnGridService extends Utilities {\r\n currentPage: string = '';\r\n loadingData: boolean = false;\r\n pagenlenth: boolean = true;\r\n items: Object[] = [];\r\n originalItems: Object[] = [];\r\n \r\n filteredBySettlementAccount: Object[] = [];\r\n filteredByCurrency: Object[] = [];\r\n filteredBySAandC: Object[] = [];\r\n audit: Object[] = [];\r\n searchFilteredItems: Object[] = [];\r\n exportItems: Object[] = [];\r\n prefilteredItems: Object[] = []; //dropdown/checkbox filtered\r\n totalEntries: number = 0;\r\n dataCallback: Function;\r\n filterApplied: boolean = false;\r\n FilterByStatus: FormGroup;\r\n statusSubscription: Subscription;\r\n settlementAccount: FormGroup;\r\n accountNo: FormControl;\r\n TextSearch: FormGroup;\r\n term: FormControl;\r\n allSubscription: Subscription;\r\n selected;\r\n active: string = '';\r\n entryRange: Array;\r\n entryRangeSubscription: Subscription;\r\n apiUrl: string = '';\r\n searchArray: Array = [];\r\n accountsArray: Array = [];\r\n securityArray: Array = [];\r\n submitted: boolean = false;\r\n fields: string[] = [];\r\n fieldNames: string[] = [];\r\n defaultSortOrder: string = '';\r\n currentSortOrder: string = '';\r\n exportTitle: string = 'Exported-Data';\r\n // audit: any;\r\n checkbox: any;\r\n exchangerate: any;\r\n consolidate:any;\r\n echangereatecalculated:any;\r\n accuredintrest: any;\r\n repocurrency: any;\r\n accuredintrestcalculated: any;\r\n noEntrys: boolean = false;\r\n sortingpageload:any;\r\n cashamount:number=0;\r\n datefilteredaudit: Object[] = [];\r\n RadioSearch: FormGroup;\r\n RadioFilter: FormControl;\r\n// @ViewChild('fromInput', {\r\n// read: MatInput\r\n// }) fromInput: MatInput;\r\n \r\n// @ViewChild('toInput', {\r\n// read: MatInput\r\n// }) toInput: MatInput;\r\n constructor(\r\n public location: Location,\r\n public backendService: BackendService,\r\n public authService: AuthService,\r\n public notificationService: NotificationService,\r\n public formBuilder: FormBuilder,\r\n public searchService: SearchService,\r\n public orderByService: OrderByService,\r\n public router: Router,\r\n public paginationService: PaginationService,\r\n public currencyPipe: CurrencyPipe,\r\n public filterService: FilterService\r\n ) {\r\n super(location, notificationService, authService, backendService);\r\n }\r\n\r\n serviceInit(dataCallback?: Function, filterInit = true) {\r\n console.log(\"Anil serviceinit\");\r\n\r\n this.RadioFilter = new FormControl();\r\n this.RadioSearch = new FormGroup({\r\n RadioFilter: this.RadioFilter\r\n });\r\n // this.FilterByStatus = this.formBuilder.group({\r\n // 'account_name': []\r\n // });\r\n this.term = new FormControl();\r\n this.TextSearch = new FormGroup({\r\n term: this.term,\r\n \r\n });\r\n this.accountNo = new FormControl();\r\n this.settlementAccount = new FormGroup({\r\n accountNo: this.accountNo\r\n });\r\n\r\n this.getData();\r\n\r\n //if dataCallback is passed, give it the data and return- \r\n //used if we need to do some extra formatting for a component\r\n if (dataCallback) { this.dataCallback = dataCallback; }\r\n\r\n //filter by dropdown/checkbox section- handle subscription (form configured in child component)\r\n //only if child component calls it (some don't have this feature)\r\n if (filterInit) {\r\n\r\n // this.statusSubscription = this.FilterByStatus.valueChanges\r\n // .map(result => {\r\n // console.log(\"entered filter init\"+filterInit);\r\n // console.log(\"entered filter map\");\r\n // this.term.setValue(''); //reset text search or filter won't work\r\n // return result;\r\n // })\r\n // .subscribe(result => {\r\n // console.log(\"entered filter subscribe\");\r\n // this.prefilteredItems = [];\r\n\r\n // const passThis = {};\r\n // this.filterApplied = true;\r\n // console.log(\"entered filter result\"+result);\r\n // for(status in result) {\r\n // console.log(\"entered filter result[status]\"+result[status] );\r\n // if(result[status] !== null) {\r\n // if(typeof result[status] === 'boolean') {\r\n // passThis[status] = result[status] ? true : null;\r\n // } else if(result[status] && result[status] == Number(result[status])) {\r\n // passThis[status] = Number(result[status]);\r\n // } else {\r\n // passThis[status] = result[status];\r\n // }\r\n // this.items = this.filterService.filterFromMultiple(passThis, this.originalItems);\r\n\r\n // this.totalEntries = this.items.length;\r\n // this.prefilteredItems = this.items;\r\n\r\n // }\r\n // }\r\n\r\n // this.setGrid(1, this.totalEntries);\r\n // });\r\n }\r\n //filter by text box search\r\n // this.allSubscription = this.term.valueChanges\r\n // .debounceTime(400)\r\n // .subscribe(result => {\r\n // let itemsToSearch = this.originalItems;\r\n\r\n // this.searchService.findItemsFromMultiple(result, itemsToSearch, this.searchArray)\r\n // .then(allFiltered => {\r\n // if(result.length > 0) {\r\n // this.audit = allFiltered;\r\n // this.searchFilteredItems = allFiltered;\r\n // } else {\r\n // this.audit = this.originalItems;\r\n // }\r\n // this.totalEntries = this.originalItems.length;\r\n // console.log(\"filter before\"+this.originalItems);\r\n // this.setGrid(1, this.totalEntries,\"filter\");\r\n // });\r\n // });\r\n\r\n //subscription to update page numbering and currently showing array- uses pagination service\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\r\n if (!this.term.value) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.originalItems;\r\n }\r\n\r\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.totalEntries = this.originalItems.length;\r\n } else {\r\n\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n\r\n });\r\n\r\n }\r\n FilterScurityType(checkbox, item, checked) {\r\n console.log(checkbox, item, checked);\r\n this.checkbox = this.originalItems;\r\n if (checked) {\r\n if (item == 'Bonds') {\r\n this.checkbox = this.originalItems;\r\n this.audit = this.checkbox.filter(x => x.earningType == 'Interest' || x.earningType == 'Discount');\r\n \r\n }\r\n if (item == 'Equity') {\r\n this.checkbox = this.originalItems;\r\n this.audit = this.checkbox.filter(x => x.earningType == 'Equity' || x.earningType == 'Option' || x.earningType == '4X');\r\n \r\n }\r\n \r\n }\r\n else {\r\n this.audit = this.originalItems;\r\n \r\n }\r\n if (this.audit.length === 0) {\r\n this.noEntrys = true;\r\n }\r\n\r\n // this.setGrid(1, this.audit.length, \"Getdata\");\r\n }\r\n\r\ncheckgrid(){\r\n this.totalEntries = this.audit.length;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\r\n if (!this.term.value) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.filteredBySettlementAccount;\r\n }\r\n this.audit = this.filteredBySettlementAccount.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems=this.filteredBySettlementAccount;\r\n this.totalEntries = this.filteredBySettlementAccount.length;\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems=this.searchFilteredItems;\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n}\r\n\r\n clearRadioSearch() {\r\n this.RadioFilter.setValue('');\r\n this.audit = this.originalItems;\r\n this.totalEntries = this.audit.length;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n this.audit = this.originalItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems = this.originalItems;\r\n this.totalEntries = this.originalItems.length;\r\n });\r\n }\r\n clearDateFilter() {\r\n \r\n // this.fromInput.value = '';\r\n // this.toInput.value = '';\r\n this.audit = this.originalItems;\r\n\r\n this.totalEntries = this.audit.length;\r\n this.loadingData = true;\r\n this.pagenlenth = false;\r\n this.setGrid(1, this.audit.length, \"search\");\r\n this.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.entryRange = range;\r\n // console.log(\"range\" + this.entryRange[0], this.entryRange[1]);\r\n if (!this.term.value) {\r\n if (this.audit.length == 0) {\r\n this.audit = this.filteredBySettlementAccount;\r\n }\r\n this.audit = this.filteredBySettlementAccount.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems=this.filteredBySettlementAccount;\r\n this.totalEntries = this.filteredBySettlementAccount.length;\r\n } else {\r\n this.audit = this.searchFilteredItems.slice(this.entryRange[0], this.entryRange[1]);\r\n this.exportItems=this.searchFilteredItems;\r\n this.totalEntries = this.searchFilteredItems.length;\r\n }\r\n });\r\n }\r\n clearSearch() {\r\n // this.term.setValue('');\r\n this.audit = this.originalItems;\r\n this.searchFilteredItems = [];\r\n }\r\n clearTextSearch() {\r\n this.term.setValue('');\r\n this.audit = this.originalItems;\r\n this.searchFilteredItems = [];\r\n this.setGrid(1, this.audit.length);\r\n }\r\n\r\n\r\n getData() {\r\n this.sortingpageload=\"pageload\";\r\n //if we have a text search enabled and delete an item, the grid won't filter properly, so reset search first\r\n this.clearSearch();\r\n // console.log(\"available \" + this.authService.CustomerID);\r\n this.backendService.getData(`${this.apiUrl}/${this.authService.CustomerID}`)\r\n .subscribe(data => {\r\n //.subscribe((response: any) => {\r\n// console.log(this.originalItems);\r\n //all items- only changes here\r\n // this.originalItems = response.map(item => item);\r\n console.log(data)\r\n if (data['myCustomer'] != null) {\r\n // return new Promise(\r\n // function (resolve, reject) {\r\n // let lowerItem = typeof item === 'string' ? item.toLowerCase() : item;\r\n // let filtered: Array = [];\r\n\r\n // filtered = group.filter(g => {\r\n // if (g[property]) {\r\n // let lowerProp = g[property].toLowerCase();\r\n\r\n // //search group (by property provided) for substring item\r\n // if (lowerProp.search(lowerItem) !== -1) return g[property];\r\n // }\r\n // });\r\n\r\n // resolve(filtered);\r\n // }\r\n // );\r\n \r\n \r\n this.originalItems = data['myCustomer'];\r\n console.log(this.originalItems);\r\n \r\n \r\n \r\n\r\n \r\n\r\n }\r\n \r\n if (data['exchagerate'] != null) {\r\n\r\n this.exchangerate=data['exchagerate'];\r\n \r\n console.log( \"exchangerate\"+this.exchangerate);\r\n }\r\n if (data['data'] != null) {\r\n this.accuredintrest=data['data'];\r\n console.log( \"accuredintrest\"+this.accuredintrest);\r\n \r\n \r\n }\r\n if(data['repoCurrency'] != null)\r\n {\r\n this.repocurrency=data['repoCurrency'];\r\n \r\n }\r\n if(data['cashamount']!=null)\r\n {\r\n console.log(data['cashamount'])\r\n this.cashamount=data['cashamount'];\r\n }\r\n\r\n\r\n if (this.dataCallback) {\r\n this.dataCallback(this.originalItems);\r\n }\r\n\r\n this.searchFilteredItems = this.originalItems;\r\n\r\n\r\n\r\n //full list for pagination, and list for each page\r\n this.audit = this.originalItems;\r\n // console.log(this.audit);\r\n if(this.currentPage=='transfers'){\r\n this.filteredBySettlementAccount = this.originalItems;\r\n this.setGrid(1, this.totalEntries, \"Getdata\");\r\n this.orderBy(this.defaultSortOrder);\r\n }\r\n this.totalEntries = this.audit.length;\r\n if (this.audit.length === 0) {\r\n this.noEntrys = true;\r\n }\r\n // this.setGrid(1, this.totalEntries, \"Getdata\");\r\n // this.orderBy(this.defaultSortOrder);\r\n this.loadingDataStatus(true);\r\n },\r\n error => {\r\n this.serverErrorOrTimeout(error);\r\n });\r\n }\r\n\r\n orderBy(param, length?: number) {\r\n\r\n console.log('order by ' + param);\r\n if (param!==''){\r\n this.currentSortOrder = param;\r\n } else {\r\n param = this.defaultSortOrder;\r\n };\r\n if (this.filteredBySAandC.length > 1) {\r\n var itemsToOrder = this.filteredBySAandC;\r\n } else if (this.filteredByCurrency.length > 1) {\r\n var itemsToOrder = this.filteredByCurrency;\r\n } else if (this.filteredByCurrency.length === 0) {\r\n var itemsToOrder = this.filteredBySettlementAccount;\r\n } else {\r\n var itemsToOrder = this.originalItems;\r\n }\r\n //console.log(itemsToOrder);\r\n // let itemsToOrder = this.filteredBySettlementAccount;\r\n let sortingByCurrentShares = false;\r\n const altParam = param === this.defaultSortOrder ? undefined : this.defaultSortOrder;\r\n\r\n if (this.term.value) {\r\n itemsToOrder = this.searchFilteredItems;\r\n }\r\n\r\n //special case for currentShares- strip commas so orders correctly\r\n if (param === 'currentShares') {\r\n // console.log('ordering by current shares!');\r\n sortingByCurrentShares = true;\r\n itemsToOrder.forEach(item => {\r\n item['currentShares'] = item['currentShares'].replace(/,/gi, '');\r\n });\r\n }\r\n if(this.sortingpageload!==\"pageload\")\r\n {\r\n // console.log(param, itemsToOrder, altParam, this.currentPage)\r\n this.items = this.orderByService.orderByParam(param, itemsToOrder, altParam, this.currentPage);\r\n console.log(param, itemsToOrder, altParam, this.currentPage);\r\n }\r\n else{ \r\n // console.log(param, itemsToOrder, altParam, this.currentPage)\r\n if(this.currentPage=='transactions')\r\n { console.log(param, itemsToOrder, altParam, this.currentPage);\r\n this.items = this.orderByService.orderByParam(param, itemsToOrder, 'desc',this.currentPage);\r\n \r\n }\r\n else\r\n {\r\n this.items = this.orderByService.orderByParamdes(param, itemsToOrder, altParam,this.currentPage);\r\n console.log(param, itemsToOrder, altParam, this.currentPage);\r\n }\r\n\r\n }\r\n // console.log(this.items);\r\n\r\n\r\n //re-format the currentShares to display as currency\r\n if (sortingByCurrentShares) {\r\n this.items.forEach(item => {\r\n item['currentShares'] = this.currencyPipe\r\n .transform(item['currentShares'], 'USD', false, '4.2-2')\r\n .slice(3);\r\n });\r\n }\r\n if (length){\r\n var itemsLength: number = length;\r\n } else {\r\n var itemsLength: number = itemsToOrder.length;\r\n }\r\n\r\n this.setGrid(1, itemsLength, \"orderby\");\r\n // this.loadingDataStatus(true);\r\n\r\n }\r\n exportData(submittedData?: Object[], name?: string, heading?: string) {\r\n\r\n var options = {\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalseparator: '.',\r\n showLabels: true,\r\n showTitle: true,\r\n title: heading,\r\n useBom: true,\r\n //noDownload: true,\r\n headers: this.fieldNames,\r\n nullToEmptyString: true,\r\n };\r\n var data = this.exportItems;\r\n if (submittedData){\r\n data = submittedData;\r\n }\r\n //console.log(data);\r\n new Angular5Csv(data, name, options);\r\n\r\n }\r\n\r\n // exportData(submittedData?: Object[]) {\r\n // console.log('TestingExport');\r\n // //generate csv data- some more complicated components will pass custom data (Users, for one)\r\n // //others using this grid will use originalItems\r\n\r\n // const data = submittedData || this.audit;\r\n // const csvData = { data };\r\n\r\n // //if field to include and custom titles passed, include those\r\n // if (this.fields.length > 0) { csvData['fields'] = this.fields; }\r\n // // console.log(this.fields.length);\r\n // if (this.fieldNames.length > 0) { csvData['fieldNames'] = this.fieldNames; }\r\n // // console.log(this.fieldNames.length);\r\n // //add the proper headers\r\n // // const csv = 'data:text/csv;charset=utf-8,' + json2csv(csvData); \r\n\r\n // //create the link to click and automatically click it (must be a better way?)\r\n // const link = document.createElement('a');\r\n // //link.setAttribute('href', encodeURI(csv));\r\n // link.setAttribute('download', `${this.exportTitle}.csv`);\r\n // document.body.appendChild(link); // Link must be in DOM for Firefox\r\n // link.click();\r\n // document.body.removeChild(link);\r\n // }\r\n\r\n setGrid(start: number, length?: number, value?: string) {\r\n console.log('setGrid');\r\n console.log(length);\r\n const sentLen = length;\r\n this.pagenlenth = false;\r\n\r\n this.paginationService.setGrid(start, sentLen);\r\n }\r\n // Observable string sources\r\n private loadingDataChangeConfirmedSource = new Subject();\r\n\r\n // Observable string streams\r\n loadingDataChange$ = this.loadingDataChangeConfirmedSource.asObservable();\r\n\r\n loadingDataStatus(loadingData: boolean) {\r\n\r\n console.log(loadingData);\r\n if (!this.loadingData) {\r\n this.loadingData = loadingData;\r\n this.loadingDataChangeConfirmedSource.next('loadingData');\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n //makes table rows expandable in mobile screensize\r\n makeActive(item) {\r\n this.active = this.active === item ? '' : item;\r\n }\r\n}","import {Injectable} from '@angular/core';\r\n\r\ninterface OrderConfig {\r\n param: string;\r\n group: any[];\r\n altParam?: string;\r\n}\r\n\r\n@Injectable()\r\nexport class OrderByService {\r\n sortBy: string = '';\r\n currentSortDirection: string = 'asc';\r\n currentSortParam: string = '';\r\n currentPage: string = '';\r\n\r\n resetService() {\r\n this.sortBy = '';\r\n this.currentSortDirection = 'asc';\r\n this.currentSortParam = '';\r\n }\r\n\r\n orderByParam(param, group, altParam?, currentPage?) {\r\n const presort = group;\r\n let final = [...presort];\r\n if(\r\n param === 'documentDate'||\r\n param === 'settlementDate' || \r\n param === 'postingDate' || \r\n param === 'tradeDate' || \r\n param === 'documentDate' || \r\n param === 'pdate' || \r\n param === 'sdate' || \r\n param === 'tdate' || \r\n param === 'currency' ||\r\n param === 'cost' ||\r\n param === 'marketValue' ||\r\n param === 'marketPrice' ||\r\n param === 'purchPrice' ||\r\n param === 'fxRate' ||\r\n param === 'quantity' ||\r\n param === 'settlementAmount' ||\r\n param === 'price' ||\r\n param === 'debit' ||\r\n param === 'credit' ||\r\n param === 'balance' ||\r\n param === 'daysAccrued' ||\r\n param === 'accruedInterest'\r\n ){\r\n var dateOrNum = true;\r\n } else {\r\n var dateOrNum = false;\r\n };\r\n if(\r\n (param === this.currentSortParam\r\n && this.currentSortDirection === 'asc' && this.currentPage === currentPage) || \r\n (dateOrNum && this.currentPage !== currentPage) || \r\n (param !== this.currentSortParam && dateOrNum)\r\n ) {\r\n console.log('desc');\r\n final = this.orderByParamDescending(param, presort, altParam);\r\n this.currentSortDirection = 'desc';\r\n this.sortBy = `${param}down`;\r\n } else {\r\n console.log('asc');\r\n final = this.orderByParamAscending(param, presort, altParam);\r\n this.currentSortDirection = 'asc';\r\n this.sortBy = `${param}up`;\r\n }\r\n this.currentSortParam = param;\r\n this.currentPage = currentPage;\r\n return final;\r\n }\r\n orderByParamdes(param, group, altParam?, currentPage?) {\r\n const presort = group;\r\n let final = [...presort];\r\n if(\r\n param === 'settlementDate' || \r\n param === 'postingDate' || \r\n param === 'tradeDate' || \r\n param === 'documentDate' || \r\n param === 'pdate' || \r\n param === 'sdate' || \r\n param === 'tdate' || \r\n param === 'currency' ||\r\n param === 'cost' ||\r\n param === 'marketValue' ||\r\n param === 'marketPrice' ||\r\n param === 'purchPrice' ||\r\n param === 'fxRate' ||\r\n param === 'quantity' ||\r\n param === 'settlementAmount' ||\r\n param === 'price' ||\r\n param === 'debit' ||\r\n param === 'credit' ||\r\n param === 'balance' ||\r\n param === 'daysAccrued' ||\r\n param === 'accruedInterest'\r\n ){\r\n var dateOrNum = true;\r\n } else {\r\n var dateOrNum = false;\r\n };\r\n if(\r\n (param === this.currentSortParam && this.currentSortDirection === 'desc' && this.currentPage === currentPage) || \r\n (dateOrNum && this.currentPage !== currentPage) || \r\n (param !== this.currentSortParam && dateOrNum)\r\n ) {\r\n console.log('asc');\r\n final = this.orderByParamAscending(param, presort, altParam);\r\n this.currentSortDirection = 'asc';\r\n this.sortBy = `${param}up`;\r\n \r\n } else {\r\n console.log('desc');\r\n final = this.orderByParamDescending(param, presort, altParam);\r\n this.currentSortDirection = 'desc';\r\n this.sortBy = `${param}down`;\r\n }\r\n this.currentSortParam = param;\r\n this.currentPage = currentPage;\r\n return final;\r\n }\r\n\r\n //order ascending- start with lowest\r\n orderByParamAscending(param, group, altParam?) {\r\n return group.sort((a, b): any => {\r\n //account for possible null values - set to empty str if so\r\n if((!a[param] && typeof a[param] !== 'boolean' && a[param] !== 0)) {\r\n a[param] = '';\r\n }\r\n if((!b[param] && typeof b[param] !== 'boolean' && b[param] !== 0)) {\r\n b[param] = '';\r\n }\r\n\r\n let first = a[param], second = b[param];\r\n let altFirst, altSecond;\r\n\r\n if(altParam) {\r\n altFirst = a[altParam];\r\n altSecond = b[altParam];\r\n\r\n if(altParam.indexOf('date') !== -1 || altParam.indexOf('time') !== -1) {\r\n altFirst = +new Date(a[altParam]);\r\n altSecond = +new Date(b[altParam]);\r\n } else if(typeof a[altParam] === 'string') {\r\n altFirst = a[altParam].toLowerCase();\r\n altSecond = b[altParam].toLowerCase();\r\n }\r\n }\r\n\r\n if(param.indexOf('date') !== -1 || param.indexOf('time') !== -1) {\r\n first = +new Date(a[param]);\r\n second = +new Date(b[param]);\r\n } else if(a[param] == +a[param]) {\r\n first = +a[param];\r\n second = +b[param];\r\n } else if(typeof a[param] === 'string') {\r\n first = a[param].toLowerCase();\r\n second = b[param].toLowerCase();\r\n }\r\n\r\n if(first < second) {\r\n return -1;\r\n } else if(second < first) {\r\n return 1;\r\n } else {\r\n if(altParam) {\r\n if(altFirst < altSecond) {\r\n return -1;\r\n } else if(altSecond < altFirst) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n //order descending- start with greatest\r\n orderByParamDescending(param, group, altParam?) {\r\n console.log('orderByParamDescending');\r\n return group.sort((a, b): number => {\r\n //account for possible null values - set to empty str if so\r\n if((!a[param] && typeof a[param] !== 'boolean' && a[param] !== 0)) {\r\n a[param] = '';\r\n }\r\n if((!b[param] && typeof b[param] !== 'boolean' && b[param] !== 0)) {\r\n b[param] = '';\r\n }\r\n\r\n let first = a[param], second = b[param];\r\n let altFirst, altSecond;\r\n\r\n //altParam provides fallback sorting- need to make same checks for date/str as normal param\r\n if(altParam) {\r\n altFirst = a[altParam];\r\n altSecond = b[altParam];\r\n\r\n if(altParam.indexOf('date') !== -1 || altParam.indexOf('time') !== -1) {\r\n altFirst = +new Date(a[altParam]);\r\n altSecond = +new Date(b[altParam]);\r\n } else if(typeof a[altParam] === 'string') {\r\n altFirst = a[altParam].toLowerCase();\r\n altSecond = b[altParam].toLowerCase();\r\n }\r\n }\r\n\r\n //properly format sort data (date/string here)\r\n if(param.indexOf('date') !== -1 || param.indexOf('time') !== -1) {\r\n first = +new Date(a[param]);\r\n second = +new Date(b[param]);\r\n } else if(a[param] == +a[param]) {\r\n first = +a[param];\r\n second = +b[param];\r\n } else if(typeof a[param] === 'string') {\r\n first = a[param].toLowerCase();\r\n second = b[param].toLowerCase();\r\n }\r\n\r\n if(first < second) {\r\n return 1;\r\n } else if(second < first) {\r\n return -1;\r\n } else {\r\n if(altParam) {\r\n if(altFirst < altSecond) {\r\n return -1;\r\n } else if(altSecond < altFirst) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n return 0;\r\n }\r\n });\r\n }\r\n}","import { Component, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\nimport { PaginationService } from './pagination.service';\r\nimport { PageEvent } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'pagination',\r\n template: `\r\n \r\n \r\n `,\r\n})\r\nexport class PaginationComponent implements OnInit, OnDestroy {\r\n firstEntryOnScreen: number = 0;\r\n lastEntryOnScreen: number = 0;\r\n entryRange: Subscription;\r\n // MatPaginator Inputs\r\n length;\r\n pageSize = 10;\r\n pageSizeOptions = [5, 10, 25, 100];\r\n\r\n // MatPaginator Output\r\n pageEvent: PageEvent;\r\n\r\n constructor(public _paginationService: PaginationService) {}\r\n\r\n ngOnInit() {\r\n //be sure variables are reset in case service is shared with another screen\r\n this._paginationService.totalEntries = 0;\r\n this.firstEntryOnScreen = 0;\r\n\r\n this.entryRange = this._paginationService.entryRange\r\n .subscribe(range => {\r\n this.firstEntryOnScreen = range[0];\r\n this.lastEntryOnScreen = range[1];\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.entryRange.unsubscribe();\r\n }\r\n}","import CONFIG from '../../config';\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\r\n\r\n@Injectable()\r\nexport class PaginationService {\r\n private _entryRange = new BehaviorSubject>([0, 10]);\r\n entryRange = this._entryRange.asObservable();\r\n paginationArray: Array = [1];\r\n paginationArrayDisplay: Array = [];\r\n maxItemsOnPage: number = 10;\r\n totalPages: number = 0;\r\n totalEntries: number = 0;\r\n maxPagesInListing: number = 5;\r\n currentPage: number = 1;\r\n currentPageIndexTop: number = 1;\r\n\r\n constructor() {}\r\n\r\n setGrid(start, total?) {\r\n \r\n console.log(start, total);\r\n //passing a total entries variable is optional- needs to be done on first load and any filter by parent component\r\n if(total !== undefined) {\r\n this.totalEntries = total;\r\n console.log(this.totalEntries , total);\r\n }\r\n\r\n this.paginationArray = [1];\r\n\r\n let totalPages = Math.ceil(this.totalEntries / this.maxItemsOnPage);\r\n console.log(totalPages);\r\n\r\n //push each group of maxItemsOnPage into an array\r\n for(var i = 1; i < totalPages; i += 1) {\r\n this.paginationArray.push(i * this.maxItemsOnPage + 1);\r\n //console.log(i * this.maxItemsOnPage + 1);\r\n }\r\n\r\n //get the current page and check which should be displayed on screen\r\n let paginationArrayMid = this.paginationArray.indexOf(start);\r\n if(paginationArrayMid - 2 < 0) {\r\n paginationArrayMid = 2;\r\n } else if(paginationArrayMid + 3 > totalPages) {\r\n paginationArrayMid = totalPages - 3;\r\n }\r\n\r\n let paginationArrayMin = paginationArrayMid - 2;\r\n let paginationArrayMax = paginationArrayMid + 3;\r\n\r\n //limit # of page links in bottom section, show more as you scroll (but only if number of pages is greater than set max)\r\n if(totalPages > this.maxPagesInListing) {\r\n this.paginationArrayDisplay = this.paginationArray.slice(paginationArrayMin, paginationArrayMax);\r\n } else {\r\n this.paginationArrayDisplay = this.paginationArray;\r\n }\r\n\r\n this.currentPage = (start + (this.maxItemsOnPage - 1)) / this.maxItemsOnPage;\r\n\r\n //this is to pass the index of the first item on the page displaying back to the component using this service- allows for save/edit/delete on a page and stay on that page (instead of reverting to page 1).\r\n this.currentPageIndexTop = start;\r\n\r\n //fire observable update to send page range to pagination component and parent component\r\n this._entryRange.next([start - 1, start + (this.maxItemsOnPage - 1)]);\r\n }\r\n\r\n updateMaxItemsOnPage(value) {\r\n this.maxItemsOnPage = +value;\r\n this.setGrid(1);\r\n }\r\n updatePage(pageIndex, pageSize){\r\n this.maxItemsOnPage = +pageSize;\r\n // console.log(pageIndex*pageSize+1);\r\n \r\n this.setGrid(pageIndex*pageSize+1);\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs/Observable';\r\n\r\n@Injectable()\r\nexport class SearchService {\r\n constructor() {}\r\n\r\n findItems(item, group: Array, property: any): Promise> {\r\n /*\r\n find item from larger group (within that group's property). passed property can be a string (single field search) or array of strings (searching more than one field)\r\n uses data already provided on screen load (but we can add http module if we need a version that hits the backend.\r\n */\r\n return new Promise(\r\n function (resolve, reject) {\r\n let lowerItem = typeof item === 'string' ? item.toLowerCase() : item;\r\n let filtered: Array = [];\r\n\r\n filtered = group.filter(g => {\r\n if (g[property]) {\r\n let lowerProp = g[property].toLowerCase();\r\n\r\n //search group (by property provided) for substring item\r\n if (lowerProp.search(lowerItem) !== -1) return g[property];\r\n }\r\n });\r\n\r\n resolve(filtered);\r\n }\r\n );\r\n }\r\n\r\n findItemsFromMultiple(item, group: Array, property: Array): Promise> {\r\n \r\n return new Promise(\r\n \r\n function (resolve, reject) {\r\n const itemToStr = item.toString();\r\n const lowerItem = itemToStr.toLowerCase();\r\n let filtered: Array = [];\r\n filtered = group.filter((g, index, arr) => {\r\n\r\n \r\n for (var i = 0, l = property.length; i < l; i += 1) {\r\n \r\n\r\n\r\n if ( g[property[i]] && typeof g[property[i]] === 'string' ) {\r\n let lowerProp = g[property[i]].toLowerCase();\r\n if (lowerProp.includes(lowerItem)) {\r\n return g[property[i]];\r\n }\r\n } else {\r\n \r\n if(g[property[i]].toString().includes(itemToStr))\r\n {\r\n return g[property[i]];\r\n }\r\n }\r\n }\r\n });\r\n\r\n resolve(filtered);\r\n }\r\n );\r\n }\r\n findItemsFromAccount(item, group: Array, property: Array): Promise> {\r\n return new Promise((resolve, reject) => {\r\n const itemToStr = item.toString();\r\n const lowerItem = itemToStr.toLowerCase();\r\n \r\n const filtered: Array = group.filter((g) => {\r\n for (let i = 0, l = property.length; i < l; i += 1) {\r\n if (g[property[i]]) {\r\n if (typeof g[property[i]] === 'string') {\r\n let lowerProp = g[property[i]].toLowerCase();\r\n // Perform exact match\r\n if (lowerProp === lowerItem) {\r\n return true;\r\n }\r\n } else if (g[property[i]].toString() === itemToStr) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n });\r\n \r\n resolve(filtered);\r\n });\r\n }\r\n findItemsInDateRange(start: Date, end: Date, group: Array, property: string): Promise> {\r\n return new Promise(\r\n function (resolve, reject) {\r\n let filtered: Array = [];\r\n\r\n filtered = group.filter(g => {\r\n let thisDateAsNumber = +new Date(g[property]);\r\n if(thisDateAsNumber >= +start && thisDateAsNumber <= +end) {\r\n return g[property];\r\n }\r\n });\r\n\r\n resolve(filtered);\r\n }\r\n );\r\n }\r\n}","import CONFIG from '../../config';\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { Headers, RequestOptions } from '@angular/http';\r\n\r\nimport { NotificationService } from '../notification/notification.service';\r\nimport { AuthService } from './auth.service';\r\nimport { BackendService } from './backend.service';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable()\r\nexport class Utilities {\r\n focused;\r\n //result:any;\r\n msg : any;\r\n checkvalue:any; \r\n constructor(\r\n public location: Location,\r\n public notificationService: NotificationService,\r\n public authService: AuthService,\r\n public backendService: BackendService\r\n ) {}\r\n\r\n //display server error- if due to jwt expiration, log out and redirect to login screen\r\n serverErrorOrTimeout(error: string): void {\r\n this.notificationService.showNotification({ timer: 5000, message: error, type: 'error', closeable: false });\r\n\r\n //if error is due to session time out, log the user out\r\n if(error === 'Session Expired- please log in') {\r\n this.authService.logout();\r\n }\r\n }\r\n\r\n //when sending jwt to server for data, check status (admin vs non admin, user key for profile, etc)\r\n checkLoginStatus(): Observable {\r\n //return an observable so end function can subscribe and perform actions based on result after it comes in\r\n //return this.backendService.getData(`${CONFIG.loginApiUrlBase}/checklogin`);\r\n return Observable.of(true);\r\n }\r\n\r\n checkLoginForAuthGuard(): Observable {\r\n console.log(\"check login\"+sessionStorage.getItem('partial_login'));\r\n \r\n if(sessionStorage.getItem('partial_login') === 'true') {\r\n \r\n this.notificationService.showNotification({ \r\n timer: 5000, message: 'Please finish security process', \r\n type: 'error', closeable: false \r\n });\r\n return Observable.of(false)\r\n .do(() => {\r\n \r\n return this.authService.logout();\r\n });\r\n } else {\r\n \r\n return this.backendService.getData(`${CONFIG.loginApiUrlBase}/checklogin`)\r\n .map(response => {\r\n //console.log(response.result);\r\n //update shared 'loggedIn' variable that maintains state while in app \r\n this.checkvalue=response['result'];\r\n this.authService.loggedIn =true;\r\n //update user_type variable that checks user's admin vs employee status \r\n return this.checkvalue;\r\n })\r\n .catch(error => {\r\n return Observable.throw(this.serverErrorOrTimeout(error));\r\n });\r\n }\r\n \r\n }\r\n //all purpose cancel and return (if passed with nothing, just shows 'update canceled')\r\n cancel(msg='Update Canceled', type='warning'): void {\r\n this.location.back();\r\n this.notificationService.showNotification({\r\n timer: 2000,\r\n message: msg,\r\n type: type\r\n });\r\n }\r\n}\r\n","import { environment } from './environments/environment';\r\n\r\n//const apiUrlBase = environment.production ? 'http://pdx3.mimics.us:9008/' : 'http://pdx3.mimics.us:9008/'; // For pdx3\r\n//const apiUrlBase = environment.production ? 'https://www.arbitralportal.com:9000/' : 'https://www.arbitralportal.com:9000/'; // For Arbitral server\r\n//const apiUrlBase = environment.production ? 'http://192.168.223.14:9002' : 'http://192.168.223.14:9002' ; //arbitraltest\r\n//Local\r\n//const apiUrlBase = environment.production ? 'http://localhost:50893' : 'http://localhost:50893' ;\r\n\r\n\r\n\r\n//const apiUrlBase = environment.production ? 'http://10.225.203.14:9004/' : 'http://10.225.203.14:9004/' ; // Britannia TEST\r\n\r\n\r\n//const apiUrlBase = environment.production ? 'http://10.225.203.14:9003/' : 'http://10.225.203.14:9003/' ; // Britannia TEST2\r\n\r\n\r\n//Britannia \r\nconst apiUrlBase = environment.production ? 'https://www.portalbritannia.com:9000/' : 'https://www.portalbritannia.com:9000/';\r\n\r\nconst CONFIG = {\r\n environment: 'full',\r\n loginApiUrlBase: `${apiUrlBase}/api/ArbitralLogin`,\r\n profileApiUrlBase: `${apiUrlBase}/api/ModifyPassword`,\r\n sendemailApiUrlBase: `${apiUrlBase}/api/ForgotPassword`,\r\n usersApiUrlBase: `${apiUrlBase}/api/user`,\r\n positionsApiUrlBase: `${apiUrlBase}/api/PFCustomerViewGrid`,\r\n //positionsApiUrlBase: `${apiUrlBase}/api/DetailedPositions`,\r\n detailedpositionsApiUrlBase: `${apiUrlBase}/api/DetailedPositions`,\r\n transactionApiUrlBase: `${apiUrlBase}/api/Transaction`,\r\n detailedtransactionApiUrlBase: `${apiUrlBase}/api/DetailedTransaction`,\r\n getAccountsDropdowns: `${apiUrlBase}/api/PFCustomerViewGrid/dropdowns`,\r\n getAccountsFxcount: `${apiUrlBase}/api/PFCustomerViewGrid/Fxcount`,\r\n getCurrencyDropdowns: `${apiUrlBase}/api/Transaction/dropdowns`,\r\n getWEBCurrencyDropdowns: `${apiUrlBase}/api/Transaction/Cuurencydropdowns`,\r\n getOverview: `${apiUrlBase}/api/Overview`,\r\n documentsApiUrlBase: `${apiUrlBase}/api/Documents`,\r\n transfersApiUrlBase:`${apiUrlBase}/api/Transfers`,\r\n fxforwardsApiUrlBase:`${apiUrlBase}/api/FXForwards`\r\n};\r\n\r\n\r\nexport default CONFIG; \r\n","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `angular-cli.json`.\n\nexport const environment = {\n production: true\n \n};\n","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { enableProdMode } from '@angular/core';\nimport { environment } from './environments/environment';\nimport { AppModule } from './app/app.module';\nimport 'zone.js';\nimport 'hammerjs';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n"],"sourceRoot":"webpack:///"}