{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/components/error/404.component.html","./src/app/components/error/500.component.html","./src/app/components/login/login.component.html","./src/app/components/logout/logout.component.html","./src/app/components/register/register.component.html","./src/app/components/specialized/home-specialized/home-specialized.component.html","./src/app/routing/manager-layout/manager-layout.component.html","./src/app/routing/public-layout/public-layout.component.html","./src/app/routing/report-layout/report-layout.component.html","./src/app/routing/specialized-layout/specialized-layout.component.html","./src/app/shared/confirmation-dialog/confirmation-dialog.component.html","./src/app/shared/dialog/dialog-container/dialog-container-noCondition.component.html","./src/app/shared/dialog/dialog-container/dialog-container-year.component.html","./src/app/shared/dialog/dialog-container/dialog-container.component.html","./src/app/shared/footer/footer.component.html","./src/app/shared/header/header.component.html","./src/app/shared/information/information.component.html","./src/app/shared/loader/loader.component.html","./src/app/shared/page-not-found/page-not-found.component.html","./src/app/shared/sidebar/sidebar.component.html","./src/app/shared/topbar/topbar.component.html","./node_modules/tslib/tslib.es6.js","./node_modules/zone.js/dist/zone-evergreen.js","./src/app/_animations/animation-sidebar.ts","./src/app/_authGuard/Admin.ts","./src/app/_authGuard/Manager.ts","./src/app/_authGuard/Specialize.ts","./src/app/_enums/module-control.enum.ts","./src/app/_enums/styleChoose.enum.ts","./src/app/_enums/typeOfUser.enum.ts","./src/app/_helpers/error.interceptor.ts","./src/app/_helpers/jwt.interceptor.ts","./src/app/_models/APIModel/register.model.ts","./src/app/_models/APIModel/user.model.ts","./src/app/_models/link.model.ts","./src/app/_services/APIService/Condition-Business.service.ts","./src/app/_services/APIService/login.service.ts","./src/app/_services/injectable-service/breadcrums.service.ts","./src/app/_services/injectable-service/dialog.service.ts","./src/app/_services/sidebar.service.ts","./src/app/app.module.ts","./src/app/components/error/404.component.ts","./src/app/components/error/500.component.ts","./src/app/components/login/login.component.scss","./src/app/components/login/login.component.ts","./src/app/components/logout/logout.component.ts","./src/app/components/register/register.component.ts","./src/app/components/specialized/home-specialized/home-specialized.component.scss","./src/app/components/specialized/home-specialized/home-specialized.component.ts","./src/app/material.module.ts","./src/app/pipe.module.ts","./src/app/routing/manager-layout/manager-layout.component.scss","./src/app/routing/manager-layout/manager-layout.component.ts","./src/app/routing/public-layout/public-layout.component.scss","./src/app/routing/public-layout/public-layout.component.ts","./src/app/routing/report-layout/report-layout.component.scss","./src/app/routing/report-layout/report-layout.component.ts","./src/app/routing/routing.component.ts","./src/app/routing/routing.module.ts","./src/app/routing/specialized-layout/specialized-layout.component.scss","./src/app/routing/specialized-layout/specialized-layout.component.ts","./src/app/shared/confirmation-dialog/confirmation-dialog.component.ts","./src/app/shared/confirmation-dialog/confirmation-dialog.service.ts","./src/app/shared/dialog/dialog-container/dialog-container-noCondition.component.ts","./src/app/shared/dialog/dialog-container/dialog-container-year.component.ts","./src/app/shared/dialog/dialog-container/dialog-container.component.ts","./src/app/shared/footer/custom-footer.component.scss","./src/app/shared/footer/footer.component.ts","./src/app/shared/header/header.component.scss","./src/app/shared/header/header.component.ts","./src/app/shared/index.ts","./src/app/shared/information/information.component.scss","./src/app/shared/information/information.component.ts","./src/app/shared/information/information.service.ts","./src/app/shared/loader/loader.component.scss","./src/app/shared/loader/loader.component.ts","./src/app/shared/loader/loader.interceptor.ts","./src/app/shared/loader/loader.service.ts","./src/app/shared/page-not-found/page-not-found.component.scss","./src/app/shared/page-not-found/page-not-found.component.ts","./src/app/shared/pipes/filterByText.pipe.ts","./src/app/shared/pipes/filterZeroAsSub.pipe.ts","./src/app/shared/pipes/formatNumber.pipe.ts","./src/app/shared/services/evenet.service.ts","./src/app/shared/shared.module.ts","./src/app/shared/sidebar/sidebar.component.scss","./src/app/shared/sidebar/sidebar.component.ts","./src/app/shared/topbar/topbar.component.scss","./src/app/shared/topbar/topbar.component.ts","./src/environments/environment.ts","./src/main.ts","./src/polyfills.ts","fs (ignored)","crypto (ignored)","stream (ignored)"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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B,EAAE,KAAK;AACjJ;;AAEO;AACP;AACA;AACA,2GAA2G,sFAAsF,aAAa,EAAE;AAChN,sBAAsB,8BAA8B,gDAAgD,uDAAuD,EAAE,EAAE,GAAG;AAClK,4CAA4C,sCAAsC,UAAU,oBAAoB,EAAE,EAAE,UAAU;AAC9H;;AAEO;AACP,gCAAgC,uCAAuC,aAAa,EAAE,EAAE,OAAO,kBAAkB;AACjH;AACA;;AAEA;AACA,yCAAyC,6BAA6B;AACtE,CAAC;AACD;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,4CAA4C;AAC5C;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,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,kEAAkE,UAAU,6CAA6C,eAAe;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,UAAU,IAAI,YAAY,4BAA4B,QAAQ,sBAAsB,WAAW,GAAG,+CAA+C,SAAS,YAAY;AACzM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;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,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,uEAAuE,gBAAgB;AACvF;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,aAAa;AACb;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,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,mBAAmB,oBAAoB;AACvC;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,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,oDAAoD,EAAE;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;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,gDAAgD;AAChD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW,GAAG,OAAO;AACvD;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,wDAAwD,KAAK,qBAAqB,SAAS,eAAe,IAAI,8BAA8B,MAAM;AAClJ;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;AACA;AACA;AACA;AACA;AACA;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,sDAAsD;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK;AACL,CAAC;;AAED;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,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,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4EAA4E;AACvF;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;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,0CAA0C;AAC9G;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC5+FsG;AAEtG,MAAM,SAAS,GAAU,MAAM,CAAC;AAChC,MAAM,SAAS,GAAU,OAAO,CAAC;AACjC,MAAM,iBAAiB,GAAU,MAAM,CA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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

404

\\r\\n

Oops! You're lost.

\\r\\n

The page you are looking for was not found.

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

500

\\r\\n

Houston, we have a problem!

\\r\\n

The page you are looking for is temporarily unavailable.

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

Đăng nhập

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
Được xây dựng bởi VNPT-Bình Phước
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  1. \\r\\n
  2. \\r\\n
  3. \\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"First\\r\\n
\\r\\n
\\r\\n

Đăng ký doanh nghiệp

\\r\\n

Để tham gia vào hệ thống Doanh nghiệp của sở Công Thương, vui lòng cho chúng tôi\\r\\n biết chi tiết về doanh nghiệp của bạn

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"First\\r\\n
\\r\\n
\\r\\n

This is Heaven

\\r\\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\\r\\n incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis\\r\\n nostrud exercitation

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

Đăng ký

\\r\\n

Điền thông tin doanh nghiệp tại đây. Yêu cầu mở tài khoản sẽ được Sở Công thương\\r\\n phản hồi qua email đăng ký.

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Cần khai báo tên doanh nghiệp\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Cần khai báo mã số thuế\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Cần nhập email\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Cần nhập tên đăng nhập\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Cần nhập mật khẩu\\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

SỞ CÔNG THƯƠNG BÌNH PHƯỚC

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

Cơ sở dữ liệu chuyên ngành

\\r\\n

Sở Công Thương là cơ quan chuyên môn thuộc Uỷ ban nhân dân tỉnh,\\r\\n thành phố trực thuộc trung ương (sau đây gọi chung là Uỷ ban nhân dân cấp tỉnh)\\r\\n có chức năng tham mưu, giúp Uỷ ban nhân dân cấp tỉnh thực hiện chức năng quản lý\\r\\n nhà nước về công thương.

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

QUẢN LÝ THƯƠNG MẠI

\\r\\n

Tham mưu, giúp Lãnh đạo Sở thực hiện chức năng quản lý nhà nước về lĩnh vực thương\\r\\n mại trên địa bàn tỉnh.

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

QUẢN LÝ NĂNG LƯỢNG

\\r\\n

Tham mưu giúp Giám đốc Sở thực hiện chức năng quản lý nhà nước về lĩnh vực hoạt\\r\\n động điện lực và sử dụng điện tiết kiệm, hiệu quả trên địa bàn tỉnh Bình Phước

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

QUẢN LÝ CÔNG NGHIỆP

\\r\\n

Tham mưu, giúp Lãnh đạo Sở thực hiện chức năng quản lý nhà nước về lĩnh vực quản lý công\\r\\n nghiệp đối với các thành phần kinh tế hoạt động trên địa bàn tỉnh.

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

QUẢN LÝ DOANH NGHIỆP NGÀNH CÔNG THƯƠNG

\\r\\n

Quản lý danh sách các doanh nghiệp có hoạt động sản xuất, kinh doanh thuộc sự quản lý của ngành Công thương.

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

{{ title }}

\\r\\n \\r\\n
\\r\\n
\\r\\n {{ message }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\"","export default \"

Import dữ liệu

\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{name}}\\r\\n
\\r\\n
\\r\\n\\r\\n
Lưu
\\r\\n \\r\\n
\"","export default \"

Import dữ liệu

\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Năm dữ liệu\\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 {{name}}\\r\\n
\\r\\n
\\r\\n\\r\\n
Lưu
\\r\\n \\r\\n
\"","export default \"

Import dữ liệu

\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Năm dữ liệu\\r\\n \\r\\n \\r\\n {{item}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Kỳ dữ liệu\\r\\n \\r\\n \\r\\n {{p.title}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{name}}\\r\\n
\\r\\n
\\r\\n\\r\\n
Lưu
\\r\\n \\r\\n
\"","export default \"\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n CỔNG THÔNG TIN ĐIỆN TỬ\\r\\n
\\r\\n

\\r\\n SỞ CÔNG THƯƠNG TỈNH BÌNH PHƯỚC\\r\\n

\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n Địa chỉ: Đường Hùng Vương, Phường Tân Bình, TP.\\r\\n Đồng Xoài,\\r\\n Tỉnh Bình Phước\\r\\n
  • \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
LIÊN HỆ
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
THÔNG TIN TRUY CẬP
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n \\r\\n accessibility Tổng số lượt truy cập:\\r\\n {{tong_luot_truy_cap}}\\r\\n \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n calendar_today Số lượt truy cập năm:\\r\\n {{so_luot_truy_cap_nam}}\\r\\n \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n event_available Số lượt truy cập tháng:\\r\\n {{so_luot_truy_cap_thang}}\\r\\n \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n event_note Số lượt truy cập ngày:\\r\\n {{so_luot_truy_cap_ngay}}\\r\\n \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Powered by ☆ VNPT Bình Phước ☆\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n {{link.title}}\\r\\n \\r\\n \\r\\n\"","export default \"
\\r\\n {{message}}\\r\\n
\"","export default \"
\\r\\n \\r\\n
\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

404

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

Oh! Trang bạn đang truy cập
không tồn tại

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\"","export default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\\"{{usertext}}\\\"\\r\\n {{ username }} \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","export default \"
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n Thông tin thị trường & Tìm kiếm đối tác\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n

SỞ CÔNG THƯƠNG BÌNH PHƯỚC

\\r\\n

SỞ CÔNG THƯƠNG

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n perm_contact_calendar\\r\\n Doanh nghiệp đăng ký\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n info\\r\\n \\r\\n\\r\\n \\r\\n \\\"{{username}}\\\"\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n Xin chào, \\r\\n {{ username }}\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n account_box\\r\\n Quản lý tài khoản\\r\\n
\\r\\n
\\r\\n account_box\\r\\n Thông tin tài khoản\\r\\n
\\r\\n
\\r\\n public\\r\\n Thông tin thị trường\\r\\n
\\r\\n
\\r\\n storefront\\r\\n Quản lý thị trường\\r\\n
\\r\\n
\\r\\n list\\r\\n Dữ liệu chuyên ngành\\r\\n
\\r\\n
\\r\\n wysiwyg\\r\\n Báo cáo SCT\\r\\n
\\r\\n
\\r\\n note_alt\\r\\n Lịch sử hệ thống\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n account_box\\r\\n Thông tin tài khoản\\r\\n
\\r\\n
\\r\\n public\\r\\n Thông tin thị trường\\r\\n
\\r\\n
\\r\\n storefront\\r\\n Quản lý thị trường\\r\\n
\\r\\n \\r\\n
\\r\\n note_alt\\r\\n Lịch sử hệ thống\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n account_box\\r\\n Thông tin tài khoản\\r\\n
\\r\\n
\\r\\n public\\r\\n Thông tin thị trường\\r\\n
\\r\\n
\\r\\n list\\r\\n Dữ liệu chuyên ngành\\r\\n
\\r\\n
\\r\\n wysiwyg\\r\\n Báo cáo SCT\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n account_box\\r\\n Thông tin tài khoản\\r\\n
\\r\\n
\\r\\n public\\r\\n Thông tin thị trường\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n account_box\\r\\n Thông tin tài khoản\\r\\n
\\r\\n \\r\\n
\\r\\n list\\r\\n Dữ liệu chuyên ngành\\r\\n
\\r\\n
\\r\\n wysiwyg\\r\\n Báo cáo SCT\\r\\n
\\r\\n
\\r\\n note_alt\\r\\n Lịch sử hệ thống\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n login\\r\\n Đăng xuất\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\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 * @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 */\nconst Zone$1 = (function (global) {\n const 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 const 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 class Zone {\n constructor(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 static assertZonePatched() {\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 static get root() {\n let zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() {\n return _currentZoneFrame.zone;\n }\n static get currentTask() {\n return _currentTask;\n }\n static __load_patch(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 const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() {\n return this._parent;\n }\n get name() {\n return this._name;\n }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n }\n getZoneWith(key) {\n let 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 fork(zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(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 runGuarded(callback, applyThis = null, applyArgs, source) {\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 runTask(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 const reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n const 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 scheduleTask(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 let 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 const 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 scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(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 _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n Zone.__symbol__ = __symbol__;\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task)\n };\n class ZoneDelegate {\n constructor(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 const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const 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 fork(targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n }\n invoke(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 handleError(targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n }\n scheduleTask(targetZone, task) {\n let 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 invokeTask(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 cancelTask(targetZone, task) {\n let 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 hasTask(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 _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const 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 const 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 }\n class ZoneTask {\n constructor(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 const 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 static invokeTask(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 get zone() {\n return this._zone;\n }\n get state() {\n return this._state;\n }\n cancelScheduleRequest() {\n this._transitionTo(notScheduled, scheduling);\n }\n _transitionTo(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 toString() {\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 toJSON() {\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 }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let 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 let 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 const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const 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 const NO_ZONE = { name: 'NO ZONE' };\n const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n setNativePromise: (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: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop\n };\n let _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n let _currentTask = null;\n let _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\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', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const 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 const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = (e) => {\n if (api.showUncaughtError()) {\n const 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 = () => {\n while (_uncaughtPromiseErrors.length) {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => {\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const 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 const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return (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 const once = function () {\n let 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 const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const 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 let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(() => {\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(() => {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n const 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 const 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 (let 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 const error = err;\n error.rejection = value;\n error.promise = promise;\n error.zone = Zone.current;\n error.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(error);\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 const 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 const 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 (let 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 const promiseState = promise[symbolState];\n const delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const 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 const 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 const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n class ZoneAwarePromise {\n constructor(executor) {\n const 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 static toString() {\n return ZONE_AWARE_PROMISE_TO_STRING;\n }\n static resolve(value) {\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((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 for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n value.then((value) => {\n resolvedValues[curValueIndex] = value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, reject);\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n get [Symbol.toStringTag]() {\n return 'Promise';\n }\n then(onFulfilled, onRejected) {\n const chainPromise = new this.constructor(null);\n const 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 catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n const chainPromise = new this.constructor(null);\n chainPromise[symbolFinally] = symbolFinally;\n const 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 }\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 const NativePromise = global[symbolPromise] = global['Promise'];\n const ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise');\n let 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 const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const 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 const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((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 let resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n const fetch = global['fetch'];\n if (typeof fetch == 'function') {\n global[api.symbol('fetch')] = fetch;\n global['fetch'] = zoneify(fetch);\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 */\nconst ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nconst ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nconst ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nconst ObjectCreate = Object.create;\n/** Array.prototype.slice */\nconst ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nconst ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nconst REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nconst ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nconst ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nconst TRUE_STR = 'true';\n/** false string const */\nconst FALSE_STR = 'false';\n/** __zone_symbol__ string const */\nconst 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}\nconst zoneSymbol = Zone.__symbol__;\nconst isWindowExists = typeof window !== 'undefined';\nconst internalWindow = isWindowExists ? window : undefined;\nconst _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\nconst REMOVE_ATTRIBUTE = 'removeAttribute';\nconst NULL_ON_PROP_VALUE = [null];\nfunction bindArguments(args, source) {\n for (let 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 const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = ((delegate) => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\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}\nconst 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.\nconst isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nconst 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.\nconst isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nconst zoneSymbolEventNames = {};\nconst 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 let eventNameSymbol = zoneSymbolEventNames[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let 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 const 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 let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const 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 const 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 const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.substr(2);\n let 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 let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n let 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 let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const 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 let 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 (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nconst originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const 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 const instance = new OriginalClass(function () { });\n let 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 const symbols = Object.getOwnPropertySymbols(src);\n symbols.forEach((symbol) => {\n const 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}\nlet shouldCopySymbolProperties = false;\n\nfunction patchMethod(target, name, patchFn) {\n let 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 const delegateName = zoneSymbol(name);\n let 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 const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate(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 let setNative = null;\n function scheduleTask(task) {\n const 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, (delegate) => function (self, args) {\n const 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}\nlet isDetectedIEOrEdge = false;\nlet ieOrEdge = false;\nfunction isIE() {\n try {\n const 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 const 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', (global) => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const 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 const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const 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 const originalObjectToString = Object.prototype.toString;\n const 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 */\nlet passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n const 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\nconst OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nconst zoneSymbolEventNames$1 = {};\nconst globalSources = {};\nconst EVENT_NAME_SYMBOL_REGX = /^__zone_symbol__(\\w+)(true|false)$/;\nconst IMMEDIATE_PROPAGATION_SYMBOL = ('__zone_symbol__propagationStopped');\nfunction patchEventTarget(_global, apis, patchOptions) {\n const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const 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 const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = (event) => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n task.invoke(task, target, [event]);\n const 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 const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const 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 const target = this || event.target || _global;\n const 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 const copyTasks = tasks.slice();\n for (let 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 const 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 const target = this || event.target || _global;\n const 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 const copyTasks = tasks.slice();\n for (let 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 let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let 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 const 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 const taskData = {};\n const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n let 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 const 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 const 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 const symbolEventNames = zoneSymbolEventNames$1[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const 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 const customScheduleNonGlobal = function (task) {\n checkIsPassive(task);\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n const compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const blackListedEvents = Zone[Zone.__symbol__('BLACK_LISTED_EVENTS')];\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n const eventName = arguments[0];\n let 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 let 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 const options = arguments[2];\n if (blackListedEvents) {\n // check black list\n for (let i = 0; i < blackListedEvents.length; i++) {\n if (eventName === blackListedEvents[i]) {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n let capture;\n let 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 const zone = Zone.current;\n const symbolEventNames = zoneSymbolEventNames$1[eventName];\n let symbolEventName;\n if (!symbolEventNames) {\n // the code is duplicate, but I just want to get some better performance\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const 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 let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let 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 let source;\n const constructorName = target.constructor['name'];\n const 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 const 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 const 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 const target = this || _global;\n const eventName = arguments[0];\n const options = arguments[2];\n let 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 const 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 const symbolEventNames = zoneSymbolEventNames$1[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const 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 const target = this || _global;\n const eventName = arguments[0];\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let 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 const target = this || _global;\n const eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let 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 const symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let 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 let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n}\nfunction patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => 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 const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n const 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 */\nconst zoneSymbol$1 = Zone.__symbol__;\nconst _defineProperty = Object[zoneSymbol$1('defineProperty')] = Object.defineProperty;\nconst _getOwnPropertyDescriptor = Object[zoneSymbol$1('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\nconst _create = Object.create;\nconst 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 const 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 const 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 const 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 let 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 */\nconst 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];\nconst documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange', 'resume'\n];\nconst 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];\nconst htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n];\nconst mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\nconst 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];\nconst webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\nconst formEventNames = ['autocomplete', 'autocompleteerror'];\nconst detailEventNames = ['toggle'];\nconst frameEventNames = ['load'];\nconst frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\nconst marqueeEventNames = ['bounce', 'finish', 'start'];\nconst XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n];\nconst IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\nconst websocketEventNames = ['close', 'error', 'open', 'message'];\nconst workerEventNames = ['error', 'message'];\nconst 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 const tip = ignoreProperties.filter(ip => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(op => 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 const 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 const supportsWebSocket = typeof WebSocket !== 'undefined';\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n const internalWindow = window;\n const 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 const HTMLMarqueeElement = internalWindow['HTMLMarqueeElement'];\n if (HTMLMarqueeElement) {\n patchFilteredProperties(HTMLMarqueeElement.prototype, marqueeEventNames, ignoreProperties);\n }\n const Worker = internalWindow['Worker'];\n if (Worker) {\n patchFilteredProperties(Worker.prototype, workerEventNames, ignoreProperties);\n }\n }\n const 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 const 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', (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 const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const 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 = () => ({\n globalSources,\n zoneSymbolEventNames: zoneSymbolEventNames$1,\n eventNames,\n isBrowser,\n isMix,\n isNode,\n TRUE_STR,\n FALSE_STR,\n ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR,\n 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 */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nconst taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const 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, (delegate) => function (self, args) {\n if (typeof args[0] === 'function') {\n const options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n const 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 const 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, (delegate) => function (self, args) {\n const id = args[0];\n let 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 const { isBrowser, isMix } = api.getGlobalObjects();\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n const 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 const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const 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(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', (global) => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n});\nZone.__load_patch('timers', (global) => {\n const set = 'set';\n const 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', (global) => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (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', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const 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', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n propertyPatch();\n});\nZone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n});\nZone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const 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 const newListener = target[XHR_LISTENER] = () => {\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 const loadTasks = target['__zone_symbol__loadfalse'];\n if (loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target['__zone_symbol__loadfalse'];\n for (let 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.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 const 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 const 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 const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => 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 const options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n const 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 const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const 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', (global) => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(eventTask => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const 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","import { trigger, state, style, transition, animate, animateChild, query } from '@angular/animations';\r\n\r\nconst MIN_WIDTH:string = '80px';\r\nconst MAX_WIDTH:string = '290px';\r\nconst MARGIN_LEFT_CLOSE:string = '80px';\r\nconst MARGIN_LEFT_OPEN:string = '290px'\r\n\r\nexport const onSideNavChange = trigger('onSideNavChange', [\r\n state('close',\r\n style({\r\n 'width': MIN_WIDTH\r\n })\r\n ),\r\n state('open',\r\n style({\r\n 'width': MAX_WIDTH\r\n })\r\n ),\r\n transition('close => open', animate('250ms ease-in')),\r\n transition('open => close', animate('250ms ease-in')),\r\n]);\r\n\r\n\r\nexport const onMainContentChange = trigger('onMainContentChange', [\r\n state('close',\r\n style({\r\n 'margin-left': MARGIN_LEFT_CLOSE\r\n })\r\n ),\r\n state('open',\r\n style({\r\n 'margin-left': MARGIN_LEFT_OPEN\r\n })\r\n ),\r\n transition('close => open', animate('250ms ease-in')),\r\n transition('open => close', animate('250ms ease-in')),\r\n]);\r\n\r\n\r\nexport const animateText = trigger('animateText', [\r\n state('hide',\r\n style({\r\n 'display': 'none',\r\n opacity: 0,\r\n })\r\n ),\r\n state('show',\r\n style({\r\n 'display': 'block',\r\n opacity: 1,\r\n })\r\n ),\r\n transition('close => open', animate('350ms ease-in')),\r\n transition('open => close', animate('200ms ease-out')),\r\n]);","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { LoginService } from '../_services/APIService/login.service';\r\nimport { InformationService } from '../shared/information/information.service';\r\n\r\n@Injectable()\r\nexport class Admin implements CanActivate {\r\n public readonly MESSAGE_REJECT: string = \"Tài khoản không được phép vào khu vực này\";\r\n public readonly REDIRECT_PAGE: string = \"/public/dashboard\";\r\n constructor(public router: Router,\r\n public authenticationService: LoginService,\r\n public info: InformationService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n const user = this.authenticationService.userValue;\r\n if (user) {\r\n if (user.user_role_id == 1) {\r\n return true;\r\n }\r\n else {\r\n this.info.msgError(this.MESSAGE_REJECT);\r\n this.router.navigate([this.REDIRECT_PAGE], { queryParams: { returnUrl: state.url } });\r\n // this.authenticationService.LogoutUser();\r\n return false;\r\n }\r\n } else {\r\n this.router.navigate([this.REDIRECT_PAGE], { queryParams: { returnUrl: state.url } });\r\n return false;\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { LoginService } from '../_services/APIService/login.service';\r\nimport { InformationService } from '../shared/information/information.service';\r\n\r\n@Injectable()\r\nexport class Manager implements CanActivate {\r\n public readonly MESSAGE_REJECT: string = \"Tài khoản không được phép vào khu vực này\";\r\n public readonly REDIRECT_PAGE: string = \"/public/dashboard\";\r\n constructor(public router: Router,\r\n public authenticationService: LoginService,\r\n public info: InformationService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n const user = this.authenticationService.userValue;\r\n if (user) {\r\n if (user.user_role_id == 1 || user.user_role_id == 3 || user.user_role_id == 4 || user.user_role_id == 5 || user.user_role_id == 7) {\r\n return true;\r\n }\r\n else {\r\n this.info.msgError(this.MESSAGE_REJECT);\r\n this.router.navigate([this.REDIRECT_PAGE], { queryParams: { returnUrl: state.url } });\r\n // this.authenticationService.LogoutUser();\r\n return false;\r\n }\r\n } else {\r\n this.router.navigate([this.REDIRECT_PAGE], { queryParams: { returnUrl: state.url } });\r\n return false;\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { LoginService } from '../_services/APIService/login.service';\r\nimport { InformationService } from '../shared/information/information.service';\r\n\r\n@Injectable()\r\nexport class Specialize implements CanActivate {\r\n public readonly MESSAGE_REJECT: string = \"Tài khoản không được phép vào khu vực này\";\r\n public readonly REDIRECT_PAGE: string = \"/public/dashboard\";\r\n constructor(public router: Router,\r\n public authenticationService: LoginService,\r\n public info: InformationService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n const user = this.authenticationService.userValue;\r\n if (user) {\r\n if (user.user_role_id == 3 || user.user_role_id == 4 || user.user_role_id == 5 || user.user_role_id == 1 || user.user_role_id == 6) {\r\n return true;\r\n }\r\n else {\r\n this.info.msgError(this.MESSAGE_REJECT);\r\n this.router.navigate([this.REDIRECT_PAGE], { queryParams: { returnUrl: state.url } });\r\n // this.authenticationService.LogoutUser();\r\n return false;\r\n }\r\n } else {\r\n this.router.navigate([this.REDIRECT_PAGE], { queryParams: { returnUrl: state.url } });\r\n return false;\r\n }\r\n }\r\n}","export enum MODULE_CONTROL{\r\n MODULE01=\"THÔNG TIN THỊ TRƯỜNG VÀ TÌM KIẾM ĐỐI TÁC KINH DOANH\",\r\n MODULE02=\"QUẢN LÝ THÔNG TIN THỊ TRƯỜNG VÀ TÌM KIẾM ĐỐI TÁC KINH DOANH\",\r\n MODULE03=\"QUẢN LÝ DỮ LIỆU CHUYÊN NGÀNH\",\r\n MODULE04=\"QUẢN LÝ BÁO CÁO CHUYÊN NGÀNH\",\r\n}","export enum STYLESCSS_TYPE{\r\n MATERIAL = \"material\",\r\n BOOTSTRAP = \"bootstrap\",\r\n CUSTOM = \"custom\",\r\n}","export enum TYPE_OF_NAV {\r\n NONE = 0,\r\n PUBLIC = 1,\r\n MANAGER = 2,\r\n SPECICALIZED = 3,\r\n REPORT = 4,\r\n }","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { LoginService } from '../_services/APIService/login.service';\r\nimport { Router } from '@angular/router';\r\nimport { InformationService } from '../shared/information/information.service';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(\r\n public authenticationService: LoginService,\r\n public info: InformationService,\r\n public router: Router) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable {\r\n return next.handle(request).pipe(catchError(err => {\r\n let errorResponse: HttpErrorResponse = err as HttpErrorResponse;\r\n if ([403].includes(errorResponse.status)) {\r\n\r\n }\r\n if ([401].includes(errorResponse.status) && this.authenticationService.userValue) {\r\n if (['1'].includes(errorResponse.message)) {\r\n this.info.msgError(\"User đang sử dụng đã bị xóa!\")\r\n this.authenticationService.LogoutUser();\r\n } else if (['2'].includes(errorResponse.message)) {\r\n this.info.msgError(\"Hết phiên đăng nhập! Vui lòng đăng nhập lại.\");\r\n this.authenticationService.LogoutUser();\r\n this.router.navigate['/login'];\r\n } else if (['3'].includes(errorResponse.message)) {\r\n this.info.msgError(\"Hết phiên đăng nhập! Vui lòng đăng nhập lại.\");\r\n this.authenticationService.LogoutUser();\r\n this.router.navigate['/login'];\r\n } else {\r\n this.info.msgError(\"Hết phiên đăng nhập! Quay về trang chủ\");\r\n this.authenticationService.LogoutUser();\r\n }\r\n }\r\n else if ([404].includes(err.status)) {\r\n this.router.navigate['/404'];\r\n } else {\r\n if ([400].includes(err.status)) {\r\n // this.authenticationService.LogoutUser();\r\n }\r\n }\r\n const error = (err && err.error && err.error.message) || err.statusText;\r\n return throwError(err);\r\n }))\r\n }\r\n}","import { Injectable, ɵConsole } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError, BehaviorSubject } from 'rxjs';\r\n\r\nimport { environment } from '../../environments/environment';\r\nimport { LoginService } from '../_services/APIService/login.service';\r\nimport { catchError, switchMap, filter, take } from 'rxjs/operators';\r\nimport { UserModel } from '../_models/APIModel/user.model';\r\n\r\n@Injectable()\r\nexport class JwtInterceptor implements HttpInterceptor {\r\n public isRefreshing = false;\r\n public refreshTokenSubject: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n constructor(public authenticationService: LoginService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n // add auth header with jwt if user is logged in and request is to the api url\r\n const user = this.authenticationService.userValue;\r\n const isLoggedIn = user && user.token;\r\n const isApiUrl = request.url.startsWith(environment.apiEndpoint);\r\n if (isLoggedIn && isApiUrl) {\r\n request = this.addToken(request, user.token);\r\n }\r\n return next.handle(request).pipe(catchError(error => {\r\n if (error instanceof HttpErrorResponse && error.status === 401) {\r\n return this.handle401Error(request, next);\r\n } else {\r\n return throwError(error);\r\n }\r\n }));\r\n }\r\n\r\n public addToken(request: HttpRequest, token: string) {\r\n return request.clone({\r\n setHeaders: {\r\n 'Authorization': `Bearer ${token}`\r\n }\r\n });\r\n }\r\n /**\r\n * public\r\n * Map UserModel from response\r\n * @param response response from API Login server\r\n */\r\n public createUserFromRes(data: any): UserModel {\r\n let user: UserModel = new UserModel();\r\n user.user_id = data.user_id;\r\n user.user_role_id = data.user_role_id;\r\n user.org_id = data.org_id;\r\n user.username = data.username;\r\n user.token = data.token;\r\n user.full_name = data.full_name;\r\n if (data.refresh_token != null) {\r\n user.refresh_token = data.refresh_token.token;\r\n }\r\n if (data.user_id != null) {\r\n user.imageUrl = data.user_id.toString();\r\n }\r\n return user;\r\n }\r\n public handle401Error(request: HttpRequest, next: HttpHandler): Observable> {\r\n if (!this.isRefreshing) {\r\n this.isRefreshing = true;\r\n this.refreshTokenSubject.next(null);\r\n\r\n return this.authenticationService.refreshToken().pipe(\r\n switchMap((token: any) => {\r\n if (token){\r\n this.isRefreshing = false;\r\n this.refreshTokenSubject.next(token.data);\r\n return next.handle(this.addToken(request, this.refreshTokenSubject.value.token));\r\n }\r\n else\r\n return throwError;\r\n }));\r\n\r\n } else {\r\n return this.refreshTokenSubject.pipe(\r\n filter(token => token != null),\r\n take(1),\r\n switchMap(jwt => {\r\n return next.handle(this.addToken(request, jwt.token));\r\n }));\r\n }\r\n }\r\n}","export class RegisterModel {\r\n public full_name: string = \"\";\r\n public email: string = \"\";\r\n public org_id: string = \"\";\r\n public username: string = \"\";\r\n public password: string = \"\";\r\n}","export class UserModel {\r\n full_name: string = \"\";\r\n username: string = \"\";\r\n password: string = \"\";\r\n user_id: number = 0;\r\n token?: string = \"\";\r\n refresh_token?: string = \"\";\r\n user_role_id: number = 0;\r\n imageUrl: string = \"\";\r\n org_id: number;\r\n}","export class LinkModel{\r\n link: string;\r\n text: string;\r\n title:string;\r\n type:boolean;\r\n backLink: LinkModel;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs'\r\nimport { catchError, tap } from 'rxjs/operators'\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { environment } from '../../../environments/environment';\r\nimport { LoginService } from './login.service';\r\nimport {\r\n DeleteModel, PetrolPost, PetrolValuePost, Businessman,\r\n PostBusinessmanValue, TobaccoPost, LiquorPost, PetrolStore, LPGPost, CertificateModel, PetrolValuePostNEW, TobaccoPostNEW, LiquorPostNEW, LPGPostNEW\r\n} from 'src/app/_models/APIModel/conditional-business-line.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConditionBusinessService {\r\n token: any;\r\n username: any;\r\n data: any;\r\n apiHome = environment.apiEndpoint;\r\n\r\n public urlProductSelect = \"api/danh-sach/san-pham\";\r\n public urlAllCareer = \"api/danh-sach/nganh-nghe\";\r\n public urlDistrict = \"api/danh-sach/quan-huyen\";\r\n public urlSubDistrict = \"api/danh-sach/phuong-xa\";\r\n public urlLHHD = \"api/danh-sach/loai-hinh-hoat-dong\";\r\n public urlCer = \"api/doanh-nghiep/giay-phep\";\r\n public DeleteCer = \"api/doanh-nghiep/xoa-giay-phep\";\r\n public PostCer = \"api/doanh-nghiep/giay-phep\";\r\n public GetCerType = \"api/danh-sach/loai-giay-phep\";\r\n public GeturlField = \"api/danh-sach/linh-vuc-quan-ly\";\r\n\r\n urlgetTobaccoValue = \"api/qltm/thuoc-la\";\r\n urlgetAllTobaccoValue = \"api/qltm/thuoc-la/tat-ca\";\r\n urlpostTobacco = \"api/qltm/thuoc-la\";\r\n urldeleteTobacco = \"api/qltm/thuoc-la/xoa\";\r\n urlpostTobaccoValueNEW = \"api/qltm/them-thuoc-la\";\r\n\r\n urlgetLiquorValue = \"api/qltm/ruou\";\r\n urlgetAllLiquorValue = \"api/qltm/ruou/tat-ca\";\r\n urlpostLiquor = \"api/qltm/ruou\";\r\n urlpostLiquorNEW = \"api/qltm/them-ruou\";\r\n urldeleteLiquor = \"api/qltm/ruou/xoa\";\r\n\r\n urlgetLPGValue = \"api/qltm/lpg\";\r\n urlgetAllLPGValue = \"api/qltm/lpg\";\r\n urlpostLPG = \"api/qltm/lpg\";\r\n urlpostLPGNEW = \"api/qltm/them-lpg\";\r\n urldeleteLPG = \"api/qltm/lpg/xoa\";\r\n\r\n urlgetPetrolValue = \"api/qltm/xang-dau/san-luong\";\r\n urlgetAllPetrolValue = \"api/qltm/xang-dau/tat-ca-san-luong\";\r\n urlgetAllPetrolStore = \"api/qltm/xang-dau/cua-hang\";\r\n urlgetBusinessman = \"api/qltm/thuong-nhan\";\r\n\r\n urlpostPetrol = \"api/qltm/xang-dau/cua-hang\";\r\n urlpostPetrolValue = \"api/qltm/xang-dau/san-luong\";\r\n urlpostPetrolValueNEW = \"api/qltm/xang-dau/them-san-luong\";\r\n urlpostBusinessman = \"api/qltm/thuong-nhan\";\r\n urlpostBusinessmanValue = \"api/qltm/thuong-nhan/cung-cap\";\r\n\r\n urlDeleteBusinessman = \"api/qltm/thuong-nhan/xoa\";\r\n urlDeleteBusinessmanValue = \"api/qltm/thuong-nhan/xoa-cung-cap\";\r\n urlDeletePetrol = \"api/qltm/xang-dau/xoa-cua-hang\";\r\n urlDeletePetrolValue = \"api/qltm/xang-dau/xoa-san-luong\";\r\n\r\n urlSendEmail = \"api/doanh-nghiep/thong-bao-giay-phep\"\r\n\r\n constructor(public http: HttpClient, public logOutService: LoginService) {\r\n // this.data = JSON.parse(localStorage.getItem('currentUser'));\r\n // this.token = this.data.token;\r\n }\r\n\r\n //SendEmail\r\n public SendEmail(cond : number) {\r\n var apiUrl = this.apiHome + this.urlSendEmail;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let params = new HttpParams().set('cond', cond.toString());\r\n return this.http.get(apiUrl, { headers: headers, params: params }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n //SendEmail\r\n\r\n //Petrol\r\n petrol: PetrolPost\r\n public PostPetrol(petrol: Array) {\r\n var apiUrl = this.apiHome + this.urlpostPetrol;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`).append(\"Access-Control-Allow-Origin\", \"*\");\r\n return this.http.post(apiUrl, petrol, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public PostPetrolValue(petrolvalue: Array) {\r\n var apiUrl = this.apiHome + this.urlpostPetrolValue;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, petrolvalue, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public PostPetrolValueNEW(petrolvalue: Array) {\r\n var apiUrl = this.apiHome + this.urlpostPetrolValueNEW;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, petrolvalue, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n businessman: Businessman\r\n public PostBusinessman(businessman: Array) {\r\n var apiUrl = this.apiHome + this.urlpostBusinessman;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`).append(\"Access-Control-Allow-Origin\", \"*\");\r\n return this.http.post(apiUrl, businessman, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public PostBusinessmanValue(businessmanvalue: Array) {\r\n var apiUrl = this.apiHome + this.urlpostBusinessmanValue;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`).append(\"Access-Control-Allow-Origin\", \"*\");\r\n return this.http.post(apiUrl, businessmanvalue, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetBusinessman() {\r\n var apiUrl = this.apiHome + this.urlgetBusinessman;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetAllPetrolStore() {\r\n var apiUrl = this.apiHome + this.urlgetAllPetrolStore;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetAllPetrolValue() {\r\n var apiUrl = this.apiHome + this.urlgetAllPetrolValue;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetPetrolValue(time: string) {\r\n var apiUrl = this.apiHome + this.urlgetPetrolValue;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let params = new HttpParams().set('time_id', time);\r\n return this.http.get(apiUrl, { headers: headers, params: params }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public DeleteBusinessman(deletemodel: Array) {\r\n var apiUrl = this.apiHome + this.urlDeleteBusinessman\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, deletemodel, { headers: headers }).pipe(tap(data => data), catchError(this.handleError))\r\n }\r\n public DeleteBusinessmanValue(deletemodel: Array) {\r\n var apiUrl = this.apiHome + this.urlDeleteBusinessmanValue\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, deletemodel, { headers: headers }).pipe(tap(data => data), catchError(this.handleError))\r\n }\r\n public DeletePetrol(deletemodel: Array) {\r\n var apiUrl = this.apiHome + this.urlDeletePetrol\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, deletemodel, { headers: headers }).pipe(tap(data => data), catchError(this.handleError))\r\n }\r\n public DeletePetrolValue(deletemodel: Array) {\r\n var apiUrl = this.apiHome + this.urlDeletePetrolValue\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, deletemodel, { headers: headers }).pipe(tap(data => data), catchError(this.handleError))\r\n }\r\n //Petrol\r\n\r\n //Tobacco\r\n tobacco: TobaccoPost\r\n public PostTobacco(tobacco: Array) {\r\n var apiUrl = this.apiHome + this.urlpostTobacco;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, tobacco, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public PostTobaccoValueNEW(tobaccovalue: Array) {\r\n var apiUrl = this.apiHome + this.urlpostTobaccoValueNEW;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, tobaccovalue, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetTobaccoValue(time: string) {\r\n var apiUrl = this.apiHome + this.urlgetTobaccoValue;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let params = new HttpParams().set('time_id', time);\r\n return this.http.get(apiUrl, { headers: headers, params: params }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetAllTobaccoValue() {\r\n var apiUrl = this.apiHome + this.urlgetAllTobaccoValue;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public DeleteTobaccoValue(deletemodel: Array) {\r\n var apiUrl = this.apiHome + this.urldeleteTobacco\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, deletemodel, { headers: headers }).pipe(tap(data => data), catchError(this.handleError))\r\n }\r\n //Tobacco\r\n\r\n //Liquor\r\n liquor: LiquorPost\r\n public PostLiquor(liquor: Array) {\r\n var apiUrl = this.apiHome + this.urlpostLiquor;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, liquor, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public PostLiquorNEW(liquor: Array) {\r\n var apiUrl = this.apiHome + this.urlpostLiquorNEW;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, liquor, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetLiquorValue(time: string) {\r\n var apiUrl = this.apiHome + this.urlgetLiquorValue;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let params = new HttpParams().set('time_id', time);\r\n return this.http.get(apiUrl, { headers: headers, params: params }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetAllLiquorValue() {\r\n var apiUrl = this.apiHome + this.urlgetAllLiquorValue;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public DeleteLiquorValue(deletemodel: Array) {\r\n var apiUrl = this.apiHome + this.urldeleteLiquor\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, deletemodel, { headers: headers }).pipe(tap(data => data), catchError(this.handleError))\r\n }\r\n //Liquor\r\n\r\n //LPG\r\n lpg: LPGPost\r\n public PostLPG(lpg: Array) {\r\n var apiUrl = this.apiHome + this.urlpostLPG;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, lpg, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public PostLPGNEW(lpg: Array) {\r\n var apiUrl = this.apiHome + this.urlpostLPGNEW;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, lpg, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetLPGValue(time: string) {\r\n var apiUrl = this.apiHome + this.urlgetLPGValue;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let params = new HttpParams().set('time_id', time);\r\n return this.http.get(apiUrl, { headers: headers, params: params }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetAllLPGValue() {\r\n var apiUrl = this.apiHome + this.urlgetAllLPGValue;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public DeleteLPGValue(deletemodel: Array) {\r\n var apiUrl = this.apiHome + this.urldeleteLPG\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, deletemodel, { headers: headers }).pipe(tap(data => data), catchError(this.handleError))\r\n }\r\n //Liquor\r\n\r\n //mat-select api\r\n public GetProductList() {\r\n var apiUrl = this.apiHome + this.urlProductSelect;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetAllCareer() {\r\n var apiUrl = this.apiHome + this.urlAllCareer;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetAllDistrict() {\r\n var apiUrl = this.apiHome + this.urlDistrict;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetAllSubDistrict() {\r\n var apiUrl = this.apiHome + this.urlSubDistrict;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetAllBusinessType() {\r\n var apiUrl = this.apiHome + this.urlLHHD;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetCertificate(mst: string) {\r\n var apiUrl = this.apiHome + this.urlCer;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let params = new HttpParams().set('mst', mst);\r\n return this.http.get(apiUrl, { headers: headers, params: params }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetALLCompany(mst: string) {\r\n var apiUrl = this.apiHome + this.urlCer;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let params = new HttpParams().set('mst', mst);\r\n return this.http.get(apiUrl, { headers: headers, params: params }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public DeleteCertificate(deletemodel: Array) {\r\n var apiUrl = this.apiHome + this.DeleteCer\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, deletemodel, { headers: headers }).pipe(tap(data => data), catchError(this.handleError))\r\n }\r\n certificate: CertificateModel\r\n public PostCertificate(certificate: Array) {\r\n var apiUrl = this.apiHome + this.PostCer;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this.http.post(apiUrl, certificate, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetCertificateType() {\r\n var apiUrl = this.apiHome + this.GetCerType;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public GetField() {\r\n var apiUrl = this.apiHome + this.GeturlField;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n //mat-select api\r\n\r\n public handleError(error: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // client-side error\r\n errorMessage = `Lỗi: ${error.error.message}`;\r\n } else {\r\n // server-side error\r\n errorMessage = `Mã lỗi: ${error.status}\\nMessage: ${error.error.message}`;\r\n }\r\n return throwError(errorMessage);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, throwError, Subject, BehaviorSubject } from 'rxjs'\r\nimport { catchError, tap, map } from 'rxjs/operators'\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { UserModel } from '../../_models/APIModel/user.model';\r\nimport { ChangeInfoUser, ChangePassword, InfoUser, PostInfoUser, DeleteModel, ResetDefaultPassword } from \"src/app/_models/user.model\";\r\nimport { Router } from '@angular/router';\r\nimport { environment } from '../../../environments/environment';\r\nimport { RegisterModel } from '../../_models/APIModel/register.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class LoginService {\r\n public readonly LOCALSTORAGE_USER: string = \"currentUser\";\r\n public readonly HOME_PAGE: string = \"/dashboard\";\r\n public loggedUser: string;\r\n public token: string;\r\n public userSubject: BehaviorSubject;\r\n public user: Observable;\r\n public refreshTokenTimeout;\r\n\r\n public apiUrl = environment.apiEndpoint + \"api/dang-nhap/dang-nhap-sct\";\r\n public apiRegister = environment.apiEndpoint + \"api/dang-ky\";\r\n public apiGetUserInfor = environment.apiEndpoint + \"api/tai-khoan\";\r\n public apiLogout = environment.apiEndpoint + \"api/dang-xuat\";\r\n public apiRefreshToken = environment.apiEndpoint + \"api/cap-lai-token\";\r\n public apiUpdateUser = environment.apiEndpoint + \"api/dang-nhap/admin-dat-lai-mat-khau\";\r\n public apiChangeDefaultPassword = environment.apiEndpoint + \"api/dang-nhap/mat-khau-mac-dinh\";\r\n public apiUserInfo = environment.apiEndpoint + \"api/user\"\r\n public apiUserRole = environment.apiEndpoint + \"api/user/role\"\r\n public apiUserOrg = environment.apiEndpoint + \"api/user/org\"\r\n public apiDeactiveUser = environment.apiEndpoint + \"api/user/toggle-archive\"\r\n\r\n /**\r\n * @param _http \r\n * @param router \r\n */\r\n constructor(public _http: HttpClient, public router: Router,) {\r\n this.userSubject = new BehaviorSubject(null);\r\n this.user = this.userSubject.asObservable();\r\n }\r\n\r\n userupdate: InfoUser\r\n public ChangePassword(user: Array) {\r\n var apiUrl = this.apiUpdateUser;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this._http.post(apiUrl, user, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public ChangeDefaultPassword(user: ResetDefaultPassword) {\r\n var apiUrl = this.apiChangeDefaultPassword;\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this._http.post(apiUrl, user, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public PutUserInfo(userinfo: Array) {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this._http.put(this.apiUserInfo, userinfo, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n postuser: PostInfoUser\r\n public PostUserInfo(userinfo: Array) {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this._http.post(this.apiUserInfo, userinfo, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public DeactiveUser(deactive: Array) {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n headers = headers.append('Authorization', 'Bearer ' + `${this.token}`);\r\n return this._http.put(this.apiDeactiveUser, deactive, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public GetUserInfo(sort: string, direction: string) {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let params = new HttpParams().set('sort', sort)\r\n params = params.append('direction', direction)\r\n return this._http.get(this.apiUserInfo, { headers: headers, params: params }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public GetUserInfoByID(role_id: string) {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let params = new HttpParams().set('id', role_id);\r\n return this._http.get(this.apiUserInfo, { headers: headers, params: params }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public GetUserRole() {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this._http.get(this.apiUserRole, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public GetUserOrg() {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this._http.get(this.apiUserOrg, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public get userValue(): UserModel {\r\n if (!this.userSubject.value) {\r\n return this.getUserFromStorage();\r\n }\r\n return this.userSubject.value;\r\n }\r\n\r\n public getUserFromStorage(): UserModel {\r\n let user: UserModel = new UserModel();\r\n if (localStorage.getItem(this.LOCALSTORAGE_USER)) {\r\n let data = JSON.parse(localStorage.getItem(this.LOCALSTORAGE_USER));\r\n user.user_id = data.user_id;\r\n user.user_role_id = data.role;\r\n user.org_id = data.org_id;\r\n user.username = data.username;\r\n user.token = data.token;\r\n user.full_name = data.full_name;\r\n if (data.refresh_token != null) {\r\n user.refresh_token = data.refresh_token;\r\n }\r\n if (data.user_id != null) {\r\n user.imageUrl = data.user_id.toString();\r\n }\r\n }\r\n return user;\r\n }\r\n\r\n /**\r\n * @param loginmodel \r\n */\r\n\r\n public validateLoginUser(loginmodel: UserModel, isBusiness) {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let params = new HttpParams();\r\n params = params.append('isBusiness', isBusiness);\r\n return this._http.post(this.apiUrl, loginmodel, { headers: headers, params: params })\r\n .pipe(tap(response => {\r\n if (response.data != null) {\r\n if (response.data.token != null) {\r\n let user = this.createUserFromRes(response.data);\r\n this.updateUserToLocalstorage(user)\r\n this.userSubject.next(user);\r\n return response;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return null;\r\n }\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public isLoggedIn() {\r\n return !!this.getJwtToken();\r\n }\r\n\r\n public getJwtToken() {\r\n return localStorage.getItem(this.LOCALSTORAGE_USER);\r\n }\r\n\r\n /**\r\n * public\r\n * Map UserModel from response\r\n * @param response response from API Login server\r\n */\r\n\r\n public createUserFromRes(data: any): UserModel {\r\n let user: UserModel = new UserModel();\r\n user.user_id = data.user_id;\r\n user.user_role_id = data.user_role_id;\r\n user.org_id = data.org_id;\r\n user.username = data.username;\r\n user.token = data.token;\r\n user.full_name = data.full_name;\r\n if (data.refresh_token != null) {\r\n user.refresh_token = data.refresh_token.token;\r\n }\r\n if (data.user_id != null) {\r\n user.imageUrl = data.user_id.toString();\r\n }\r\n return user;\r\n }\r\n\r\n public updateUserToLocalstorage(user: UserModel): void {\r\n localStorage.setItem(this.LOCALSTORAGE_USER,\r\n JSON.stringify({\r\n token: user.token,\r\n role: user.user_role_id,\r\n user_id: user.user_id,\r\n username: user.username,\r\n org_id: user.org_id,\r\n full_name: user.full_name,\r\n refresh_token: user.refresh_token,\r\n }));\r\n }\r\n\r\n /**\r\n * @param registerModel\r\n */\r\n public register(registerModel: RegisterModel) {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this._http.post(\r\n this.apiRegister,\r\n registerModel,\r\n { headers: headers, observe: 'response' })\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n public LogoutUser(): void {\r\n localStorage.removeItem(this.LOCALSTORAGE_USER);\r\n this.userSubject.next(null);\r\n }\r\n\r\n /**\r\n * @param userName\r\n * @param token\r\n */\r\n public getUser(userName, token): any {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + token });\r\n let params = new HttpParams();\r\n params = params.append('isBusiness', userName.includes('admin') ? 'false' : 'true');\r\n let url = `${this.apiGetUserInfor}/${userName}`;\r\n try {\r\n return this._http.get(url, { headers: headers, params: params });\r\n } catch (error) {\r\n this.handleError(error);\r\n }\r\n }\r\n /**\r\n * @param body \r\n * @param token \r\n */\r\n public updateUser(body, token) {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + token });\r\n let params = new HttpParams();\r\n params = params.append('isBusiness', body['username'] === 'admin' ? 'false' : 'true');\r\n let url = `${this.apiGetUserInfor}/${body['username']}`\r\n return this._http.post(url, body, { headers: headers, params: params });\r\n }\r\n\r\n public refreshToken() {\r\n let api = this.apiRefreshToken\r\n let data = { 'refresh_token': this.userValue.refresh_token, 'isBusiness': false };\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.userValue.token });\r\n return this._http.post(api, data, { headers: headers })//withCredentials: true\r\n .pipe(tap((response) => {\r\n if (response) {\r\n //Kiểm tra response chỗ này, xem refresh có hết hạn luôn không. Nếu có thì báo hết hạn rồi logout.\r\n let user = this.createUserFromRes(response.data);\r\n this.userSubject.next(user);\r\n this.updateUserToLocalstorage(user)\r\n //this.startRefreshTokenTimer();\r\n return response;\r\n }\r\n else {\r\n return throwError;\r\n }\r\n }));\r\n }\r\n\r\n public stopRefreshTokenTimer(): void {\r\n clearTimeout(this.refreshTokenTimeout);\r\n }\r\n\r\n /**\r\n * @param error \r\n */\r\n public handleError(error: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n errorMessage = `Lỗi: ${error.error.message}`;\r\n } else {\r\n errorMessage = `Mã lỗi: ${error.status}\\nMessage: ${error.error.message}`;\r\n }\r\n return throwError(errorMessage);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from 'rxjs';\r\nimport { LinkModel } from 'src/app/_models/link.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class BreadCrumService{\r\n private _link: Subject = new Subject();\r\n link$ = this._link.asObservable();\r\n\r\n constructor(){}\r\n\r\n sendLink(link: LinkModel){\r\n this._link.next(link);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DialogService {\r\n\r\n public transformData;\r\n\r\n private _close$ = new Subject();\r\n\r\n public close$ = this._close$.asObservable();\r\n\r\n constructor() { }\r\n\r\n close(reson?: any){\r\n this._close$.next(reson);\r\n }\r\n\r\n getDataTransform(){\r\n return this.transformData;\r\n }\r\n\r\n setDataTransformer(dataTransform: any[]){\r\n this.transformData = dataTransform;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, throwError, Subject } from 'rxjs'\r\nimport { catchError, tap } from 'rxjs/operators'\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { environment } from '../../environments/environment';\r\nimport { LoginService } from 'src/app/_services/APIService/login.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class SidebarService {\r\n public data: any;\r\n token: any;\r\n username: any;\r\n public apisidebar = environment.apiEndpoint + \"api/dang-nhap/tai-giao-dien/\";\r\n public apicountaccess = environment.apiEndpoint + \"api/truy-cap\"\r\n\r\n\r\n // With this subject you can save the sidenav state and consumed later into other pages.\r\n public sideBarState$: Subject = new Subject();\r\n\r\n constructor(public http: HttpClient,\r\n public _loginService: LoginService) {\r\n // this.data = JSON.parse(localStorage.getItem('NormalUser'));\r\n // this.token = this.data.token;\r\n }\r\n\r\n public getIPAddress() {\r\n return this.http.get(\"http://api.ipify.org/?format=json\");\r\n }\r\n\r\n public GetMenu() {\r\n const user = this._loginService.userValue;\r\n if (user.user_role_id) {\r\n var apiUrl = this.apisidebar + user.user_role_id;\r\n }\r\n else {\r\n var apiUrl = this.apisidebar + 1;\r\n }\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(apiUrl, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public CountAccess(ipaddress: string) {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.post(this.apicountaccess, `\\\"${ipaddress}\\\"`, { headers: headers }).pipe(tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public handleError(error: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // client-side error\r\n errorMessage = `Lỗi: ${error.error.message}`;\r\n } else {\r\n // server-side error\r\n errorMessage = `Mã lỗi: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n return throwError(errorMessage);\r\n }\r\n\r\n}","import { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule, APP_INITIALIZER } from '@angular/core';\r\nimport { RoutingModule } from './routing/routing.module';\r\nimport { RoutingComponent } from './routing/routing.component';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { MaterialModule } from './material.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { LocationStrategy, HashLocationStrategy } from '@angular/common';\r\nimport { InformationService } from './shared/information/information.service';\r\nimport { InformationComponent } from './shared/information/information.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { JwtInterceptor } from './_helpers/jwt.interceptor';\r\nimport { ErrorInterceptor } from './_helpers/error.interceptor';\r\nimport { ConfirmationDialogComponent } from './shared/confirmation-dialog/confirmation-dialog.component';\r\nimport { ConfirmationDialogService } from './shared/confirmation-dialog/confirmation-dialog.service';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { PipeModule } from './pipe.module';\r\nimport { DateAdapter, MatFormFieldModule, MatSelectModule, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport { MAT_DATE_FORMATS } from '@angular/material';\r\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\r\nimport { DialogContainerComponent } from './shared/dialog/dialog-container/dialog-container.component';\r\nimport { DialogContainerYearComponent } from './shared/dialog/dialog-container/dialog-container-year.component';\r\nimport { ActivatedRouteSnapshot, RouteReuseStrategy } from '@angular/router';\r\nimport { DialogContainerNoConditionComponent } from './shared/dialog/dialog-container/dialog-container-noCondition.component';\r\n\r\nexport class AARouteReuseStrategy extends RouteReuseStrategy {\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n return false;\r\n }\r\n store(route: ActivatedRouteSnapshot, handle: {}): void {\r\n\r\n }\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n return false;\r\n }\r\n retrieve(route: ActivatedRouteSnapshot): {} {\r\n return null;\r\n }\r\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n return false; // default is true if configuration of current and future route are the same\r\n }\r\n}\r\n\r\nconst MY_FORMATS = {\r\n parse: {\r\n dateInput: 'LL',\r\n },\r\n display: {\r\n dateInput: 'DD-MM-YYYY',\r\n monthYearLabel: 'YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'YYYY',\r\n },\r\n};\r\n\r\n@NgModule({\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n HttpClientModule,\r\n RoutingModule,\r\n NgbModule,\r\n MaterialModule,\r\n PipeModule,\r\n ReactiveFormsModule,\r\n MatPaginatorModule,\r\n MatSelectModule,\r\n MatFormFieldModule,\r\n NgxMatSelectSearchModule\r\n ],\r\n declarations: [\r\n InformationComponent,\r\n ConfirmationDialogComponent,\r\n ],\r\n exports: [\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\r\n {\r\n provide: LocationStrategy,\r\n useClass: HashLocationStrategy,\r\n },\r\n InformationService,\r\n ConfirmationDialogService,\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\r\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\r\n {\r\n provide: RouteReuseStrategy,\r\n useClass: AARouteReuseStrategy\r\n }\r\n ],\r\n entryComponents: [\r\n InformationComponent,\r\n ConfirmationDialogComponent,\r\n DialogContainerComponent,\r\n DialogContainerYearComponent,\r\n DialogContainerNoConditionComponent\r\n ],\r\n bootstrap: [RoutingComponent]\r\n})\r\nexport class AppModule { }","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n templateUrl: '404.component.html'\r\n})\r\nexport class P404Component {\r\n\r\n constructor() { }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n templateUrl: '500.component.html'\r\n})\r\nexport class P500Component {\r\n\r\n constructor() { }\r\n\r\n}\r\n","export default \"@import url(\\\"//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css\\\");\\n.login-block {\\n background: #1F7ED0;\\n /* fallback for old browsers */\\n /* Chrome 10-25, Safari 5.1-6 */\\n background: linear-gradient(to bottom, #6dbbff, #1F7ED0);\\n /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */\\n float: left;\\n height: 100vh;\\n width: 100%;\\n padding: 50px 0;\\n}\\n.centered {\\n position: fixed;\\n top: 50%;\\n left: 50%;\\n /* bring your own prefixes */\\n transform: translate(-50%, -50%);\\n}\\n.banner-sec {\\n background: url(https://static.pexels.com/photos/33972/pexels-photo.jpg) no-repeat left bottom;\\n background-size: cover;\\n min-height: 500px;\\n border-radius: 0 10px 10px 0;\\n padding: 0;\\n}\\n.container {\\n background: #fff;\\n border-radius: 10px;\\n box-shadow: 15px 20px 0px rgba(0, 0, 0, 0.1);\\n}\\n.carousel-inner {\\n border-radius: 0 10px 10px 0;\\n}\\n.carousel-caption {\\n text-align: left;\\n left: 5%;\\n}\\n.login-sec {\\n padding: 50px 30px;\\n position: relative;\\n}\\n.login-sec .copy-text {\\n position: absolute;\\n width: 80%;\\n bottom: 20px;\\n font-size: 13px;\\n text-align: center;\\n}\\n.login-sec .copy-text i {\\n color: #6dbbff;\\n}\\n.login-sec .copy-text a {\\n color: #1F7ED0;\\n}\\n.login-sec h2 {\\n margin-bottom: 30px;\\n font-weight: 800;\\n font-size: 30px;\\n color: #1F7ED0;\\n}\\n.login-sec h2:after {\\n content: \\\" \\\";\\n width: 100px;\\n height: 5px;\\n background: #6dbbff;\\n display: block;\\n margin-top: 20px;\\n border-radius: 3px;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.btn-login {\\n background: #1F7ED0;\\n color: #fff;\\n font-weight: 600;\\n}\\n.banner-text {\\n width: 70%;\\n position: absolute;\\n bottom: 40px;\\n padding-left: 20px;\\n}\\n.banner-text h2 {\\n color: #1F7ED0;\\n font-weight: 600;\\n}\\n.banner-text h2:after {\\n content: \\\" \\\";\\n width: 100px;\\n height: 5px;\\n background: #6dbbff;\\n display: block;\\n margin-top: 20px;\\n border-radius: 3px;\\n}\\n.banner-text p {\\n color: #1F7ED0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9sb2dpbi9FOlxcTUlMQlBcXE1JTEJQXFxpbmR1c3RyaWFsLWFuZC1jb21tZXJjaWFsLWZhY2lsaXRpZXMvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGxvZ2luXFxsb2dpbi5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBUSxnRkFBQTtBQUNSO0VBQ0EsbUJBQUE7RUFBc0IsOEJBQUE7RUFDNkMsK0JBQUE7RUFDbkUsd0RBQUE7RUFBMEQscUVBQUE7RUFDMUQsV0FBQTtFQUNBLGFBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtBQ0lBO0FERkE7RUFDSSxlQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSw0QkFBQTtFQUNBLGdDQUFBO0FDS0o7QURIQTtFQUFZLDhGQUFBO0VBQWdHLHNCQUFBO0VBQXVCLGlCQUFBO0VBQWtCLDRCQUFBO0VBQThCLFVBQUE7QUNXbkw7QURWQTtFQUFXLGdCQUFBO0VBQWlCLG1CQUFBO0VBQXFCLDRDQUFBO0FDZ0JqRDtBRGZBO0VBQWdCLDRCQUFBO0FDbUJoQjtBRGxCQTtFQUFrQixnQkFBQTtFQUFpQixRQUFBO0FDdUJuQztBRHRCQTtFQUFXLGtCQUFBO0VBQW9CLGtCQUFBO0FDMkIvQjtBRDFCQTtFQUFzQixrQkFBQTtFQUFtQixVQUFBO0VBQVcsWUFBQTtFQUFhLGVBQUE7RUFBZ0Isa0JBQUE7QUNrQ2pGO0FEakNBO0VBQXdCLGNBQUE7QUNxQ3hCO0FEcENBO0VBQXdCLGNBQUE7QUN3Q3hCO0FEdkNBO0VBQWMsbUJBQUE7RUFBb0IsZ0JBQUE7RUFBaUIsZUFBQTtFQUFnQixjQUFBO0FDOENuRTtBRDdDQTtFQUFvQixZQUFBO0VBQWEsWUFBQTtFQUFhLFdBQUE7RUFBWSxtQkFBQTtFQUFvQixjQUFBO0VBQWUsZ0JBQUE7RUFBaUIsa0JBQUE7RUFBbUIsaUJBQUE7RUFBaUIsa0JBQUE7QUN5RGxKO0FEeERBO0VBQVcsbUJBQUE7RUFBcUIsV0FBQTtFQUFZLGdCQUFBO0FDOEQ1QztBRDdEQTtFQUFhLFVBQUE7RUFBVyxrQkFBQTtFQUFtQixZQUFBO0VBQWEsa0JBQUE7QUNvRXhEO0FEbkVBO0VBQWdCLGNBQUE7RUFBZSxnQkFBQTtBQ3dFL0I7QUR2RUE7RUFBc0IsWUFBQTtFQUFhLFlBQUE7RUFBYSxXQUFBO0VBQVksbUJBQUE7RUFBb0IsY0FBQTtFQUFlLGdCQUFBO0VBQWlCLGtCQUFBO0FDaUZoSDtBRGhGQTtFQUFlLGNBQUE7QUNvRmYiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCB1cmwoXCIvL25ldGRuYS5ib290c3RyYXBjZG4uY29tL2ZvbnQtYXdlc29tZS80LjAuMy9jc3MvZm9udC1hd2Vzb21lLmNzc1wiKTtcclxuLmxvZ2luLWJsb2Nre1xyXG5iYWNrZ3JvdW5kOiAjMUY3RUQwOyAgLyogZmFsbGJhY2sgZm9yIG9sZCBicm93c2VycyAqL1xyXG5iYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM2ZGJiZmYsICMxRjdFRDApOyAgLyogQ2hyb21lIDEwLTI1LCBTYWZhcmkgNS4xLTYgKi9cclxuYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzZkYmJmZiwgIzFGN0VEMCk7IC8qIFczQywgSUUgMTArLyBFZGdlLCBGaXJlZm94IDE2KywgQ2hyb21lIDI2KywgT3BlcmEgMTIrLCBTYWZhcmkgNysgKi9cclxuZmxvYXQ6bGVmdDtcclxuaGVpZ2h0OjEwMHZoO1xyXG53aWR0aDoxMDAlO1xyXG5wYWRkaW5nIDogNTBweCAwO1xyXG59XHJcbi5jZW50ZXJlZCB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIC8qIGJyaW5nIHlvdXIgb3duIHByZWZpeGVzICovXHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICB9XHJcbi5iYW5uZXItc2Vje2JhY2tncm91bmQ6dXJsKGh0dHBzOi8vc3RhdGljLnBleGVscy5jb20vcGhvdG9zLzMzOTcyL3BleGVscy1waG90by5qcGcpICBuby1yZXBlYXQgbGVmdCBib3R0b207IGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsgbWluLWhlaWdodDo1MDBweDsgYm9yZGVyLXJhZGl1czogMCAxMHB4IDEwcHggMDsgcGFkZGluZzowO31cclxuLmNvbnRhaW5lcntiYWNrZ3JvdW5kOiNmZmY7IGJvcmRlci1yYWRpdXM6IDEwcHg7IGJveC1zaGFkb3c6MTVweCAyMHB4IDBweCByZ2JhKDAsMCwwLDAuMSk7fVxyXG4uY2Fyb3VzZWwtaW5uZXJ7Ym9yZGVyLXJhZGl1czowIDEwcHggMTBweCAwO31cclxuLmNhcm91c2VsLWNhcHRpb257dGV4dC1hbGlnbjpsZWZ0OyBsZWZ0OjUlO31cclxuLmxvZ2luLXNlY3twYWRkaW5nOiA1MHB4IDMwcHg7IHBvc2l0aW9uOnJlbGF0aXZlO31cclxuLmxvZ2luLXNlYyAuY29weS10ZXh0e3Bvc2l0aW9uOmFic29sdXRlOyB3aWR0aDo4MCU7IGJvdHRvbToyMHB4OyBmb250LXNpemU6MTNweDsgdGV4dC1hbGlnbjpjZW50ZXI7fVxyXG4ubG9naW4tc2VjIC5jb3B5LXRleHQgaXtjb2xvcjojNmRiYmZmO31cclxuLmxvZ2luLXNlYyAuY29weS10ZXh0IGF7Y29sb3I6IzFGN0VEMDt9XHJcbi5sb2dpbi1zZWMgaDJ7bWFyZ2luLWJvdHRvbTozMHB4OyBmb250LXdlaWdodDo4MDA7IGZvbnQtc2l6ZTozMHB4OyBjb2xvcjogIzFGN0VEMDt9XHJcbi5sb2dpbi1zZWMgaDI6YWZ0ZXJ7Y29udGVudDpcIiBcIjsgd2lkdGg6MTAwcHg7IGhlaWdodDo1cHg7IGJhY2tncm91bmQ6IzZkYmJmZjsgZGlzcGxheTpibG9jazsgbWFyZ2luLXRvcDoyMHB4OyBib3JkZXItcmFkaXVzOjNweDsgbWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0b31cclxuLmJ0bi1sb2dpbntiYWNrZ3JvdW5kOiAjMUY3RUQwOyBjb2xvcjojZmZmOyBmb250LXdlaWdodDo2MDA7fVxyXG4uYmFubmVyLXRleHR7d2lkdGg6NzAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjQwcHg7IHBhZGRpbmctbGVmdDoyMHB4O31cclxuLmJhbm5lci10ZXh0IGgye2NvbG9yOiMxRjdFRDA7IGZvbnQtd2VpZ2h0OjYwMDt9XHJcbi5iYW5uZXItdGV4dCBoMjphZnRlcntjb250ZW50OlwiIFwiOyB3aWR0aDoxMDBweDsgaGVpZ2h0OjVweDsgYmFja2dyb3VuZDojNmRiYmZmOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tdG9wOjIwcHg7IGJvcmRlci1yYWRpdXM6M3B4O31cclxuLmJhbm5lci10ZXh0IHB7Y29sb3I6IzFGN0VEMDt9IiwiQGltcG9ydCB1cmwoXCIvL25ldGRuYS5ib290c3RyYXBjZG4uY29tL2ZvbnQtYXdlc29tZS80LjAuMy9jc3MvZm9udC1hd2Vzb21lLmNzc1wiKTtcbi5sb2dpbi1ibG9jayB7XG4gIGJhY2tncm91bmQ6ICMxRjdFRDA7XG4gIC8qIGZhbGxiYWNrIGZvciBvbGQgYnJvd3NlcnMgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjNmRiYmZmLCAjMUY3RUQwKTtcbiAgLyogQ2hyb21lIDEwLTI1LCBTYWZhcmkgNS4xLTYgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzZkYmJmZiwgIzFGN0VEMCk7XG4gIC8qIFczQywgSUUgMTArLyBFZGdlLCBGaXJlZm94IDE2KywgQ2hyb21lIDI2KywgT3BlcmEgMTIrLCBTYWZhcmkgNysgKi9cbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA1MHB4IDA7XG59XG5cbi5jZW50ZXJlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgLyogYnJpbmcgeW91ciBvd24gcHJlZml4ZXMgKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi5iYW5uZXItc2VjIHtcbiAgYmFja2dyb3VuZDogdXJsKGh0dHBzOi8vc3RhdGljLnBleGVscy5jb20vcGhvdG9zLzMzOTcyL3BleGVscy1waG90by5qcGcpIG5vLXJlcGVhdCBsZWZ0IGJvdHRvbTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgbWluLWhlaWdodDogNTAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMTBweCAxMHB4IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3gtc2hhZG93OiAxNXB4IDIwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLmNhcm91c2VsLWlubmVyIHtcbiAgYm9yZGVyLXJhZGl1czogMCAxMHB4IDEwcHggMDtcbn1cblxuLmNhcm91c2VsLWNhcHRpb24ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsZWZ0OiA1JTtcbn1cblxuLmxvZ2luLXNlYyB7XG4gIHBhZGRpbmc6IDUwcHggMzBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubG9naW4tc2VjIC5jb3B5LXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiA4MCU7XG4gIGJvdHRvbTogMjBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5sb2dpbi1zZWMgLmNvcHktdGV4dCBpIHtcbiAgY29sb3I6ICM2ZGJiZmY7XG59XG5cbi5sb2dpbi1zZWMgLmNvcHktdGV4dCBhIHtcbiAgY29sb3I6ICMxRjdFRDA7XG59XG5cbi5sb2dpbi1zZWMgaDIge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LXNpemU6IDMwcHg7XG4gIGNvbG9yOiAjMUY3RUQwO1xufVxuXG4ubG9naW4tc2VjIGgyOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiA1cHg7XG4gIGJhY2tncm91bmQ6ICM2ZGJiZmY7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5idG4tbG9naW4ge1xuICBiYWNrZ3JvdW5kOiAjMUY3RUQwO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmJhbm5lci10ZXh0IHtcbiAgd2lkdGg6IDcwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDQwcHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbn1cblxuLmJhbm5lci10ZXh0IGgyIHtcbiAgY29sb3I6ICMxRjdFRDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5iYW5uZXItdGV4dCBoMjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogNXB4O1xuICBiYWNrZ3JvdW5kOiAjNmRiYmZmO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4uYmFubmVyLXRleHQgcCB7XG4gIGNvbG9yOiAjMUY3RUQwO1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { InformationService } from '../../shared/information/information.service';\r\nimport { LoginService } from '../../_services/APIService/login.service';\r\nimport { UserModel } from '../../_models/APIModel/user.model';\r\nimport { MatSnackBarConfig, MatSnackBarVerticalPosition, MatSnackBarHorizontalPosition } from '@angular/material/snack-bar';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: 'login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n setAutoHide: boolean = true;\r\n autoHide: number = 2000;\r\n userModel: UserModel = new UserModel();\r\n verticalPosition: MatSnackBarVerticalPosition = 'bottom';\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n error = '';\r\n loading = false;\r\n isBusiness: boolean = false;\r\n public returnUrl: string = \"\";\r\n\r\n constructor(public info: InformationService,\r\n public loginService: LoginService,\r\n public router: Router,\r\n public route: ActivatedRoute,\r\n public location: Location) {\r\n }\r\n ngOnInit() {\r\n }\r\n\r\n Login() {\r\n this.loading = true;\r\n this.loginService.validateLoginUser(this.userModel, this.isBusiness).subscribe({\r\n next: (response) => {\r\n if (response.data.user_role_id == 1 || response.data.user_role_id == 6 || response.data.user_role_id == 3\r\n || response.data.user_role_id == 4 || response.data.user_role_id == 5) {\r\n this.info.msgSuccess(\"Đăng nhập thành công\");\r\n this.returnUrl = '/specialized/commecial-management/domestic'\r\n this.router.navigateByUrl(this.returnUrl);\r\n }\r\n else if (response.data.user_role_id == 2) {\r\n this.info.msgSuccess(\"Đăng nhập thành công\");\r\n this.returnUrl = '/public/market/domestic/price'\r\n this.router.navigateByUrl(this.returnUrl);\r\n }\r\n else if (response.data.user_role_id == 7) {\r\n this.info.msgSuccess(\"Đăng nhập thành công\");\r\n this.returnUrl = '/public/market/domestic/price'\r\n this.router.navigateByUrl(this.returnUrl);\r\n }\r\n },\r\n error: error => {\r\n this.info.msgError(\"Tài khoản hoặc mật khẩu không chính xác\");\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n LogOut() {\r\n this.loginService.LogoutUser();\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { LoginService } from '../../_services/APIService/login.service';\r\nimport { Router } from '@angular/router';\r\nimport { InformationService } from 'src/app/shared/information/information.service';\r\n\r\n@Component({\r\n selector: 'app-logout',\r\n templateUrl: './logout.component.html',\r\n})\r\nexport class LogoutComponent implements OnInit {\r\n\r\n constructor(public loginService: LoginService, public info: InformationService, public router: Router) {\r\n }\r\n ngOnInit() {\r\n this.LogOut();\r\n }\r\n LogOut() {\r\n this.loginService.LogoutUser();\r\n this.info.msgSuccess(\"Bạn đã đăng xuất thành công\");\r\n this.router.navigate(['public/market/domestic/price']);\r\n }\r\n}","import { Component } from '@angular/core';\r\nimport { RegisterModel } from '../../_models/APIModel/register.model';\r\nimport { LoginService } from '../../_services/APIService/login.service';\r\nimport { InformationService } from '../../shared/information/information.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: 'register.component.html'\r\n})\r\nexport class RegisterComponent {\r\n\r\n registerModel : RegisterModel = new RegisterModel();\r\n\r\n constructor(public loginService: LoginService, public info : InformationService, public router: Router) { }\r\n\r\n Register(){\r\n this.loginService.register(this.registerModel).subscribe(response =>{\r\n if (response.status == 200)\r\n this.info.msgSuccess(\"Tạo tài khoản thành công\");\r\n this.router.navigate(['dashboard']);\r\n })\r\n }\r\n}\r\n","export default \"@charset \\\"UTF-8\\\";\\n.basic-1 {\\n padding-top: 1rem;\\n}\\n.basic-1 .text-container {\\n margin-bottom: 0;\\n}\\n.basic-1 .text-container {\\n margin-top: 1.875rem;\\n margin-right: 2rem;\\n}\\n.basic-1 {\\n background: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.5)), url('header-background.jpg');\\n background-size: cover;\\n padding-top: 0rem;\\n padding-bottom: 0rem;\\n}\\n.basic-1 .text-container {\\n margin-bottom: 3rem;\\n}\\n.basic-1 .section-title {\\n color: orange;\\n margin-bottom: 0.5rem;\\n}\\n.basic-1 h2 {\\n color: #dfe5ec;\\n margin-bottom: 1.375rem;\\n}\\n.basic-1 p {\\n color: white;\\n margin-bottom: 1.375rem;\\n}\\n.basic-1 .testimonial-author {\\n color: #dfe5ec;\\n}\\n/* Hover Animation */\\n.basic-1 .image-container {\\n overflow: hidden;\\n border-radius: 0.25rem;\\n padding-top: 5rem;\\n}\\n.basic-1 .image-container img {\\n margin: 0;\\n border-radius: 0.25rem;\\n transition: all 0.3s;\\n}\\n.basic-1 .image-container:hover img {\\n transform: scale(1.15);\\n}\\n.cards-1 .card {\\n display: inline-block;\\n max-width: 21rem;\\n text-align: center;\\n vertical-align: top;\\n margin-bottom: 2.5rem;\\n border: none;\\n}\\n.cards-1 div.card:nth-child(3n+2) {\\n margin-right: 2.5rem;\\n margin-left: 2.5rem;\\n}\\n/* Description */\\n.cards-1 div.card:nth-child(3n+2) {\\n margin-right: 2.875rem;\\n margin-left: 2.875rem;\\n}\\n/* end of description */\\n/***************************/\\n/* 06. Description */\\n/***************************/\\n.cards-1 {\\n padding-top: 2rem;\\n /* padding-bottom: 2.875rem; */\\n}\\n.cards-1 .fa-stack {\\n width: 6rem;\\n height: 6rem;\\n margin-right: auto;\\n margin-bottom: 1rem;\\n margin-left: auto;\\n line-height: 6rem;\\n cursor: pointer;\\n}\\n.cards-1 .fa-stack .hexagon {\\n width: 6rem;\\n height: 6rem;\\n background-size: 6rem 6rem;\\n}\\n.cards-1 .fa-stack .hexagon img {\\n max-width: 70px;\\n}\\n.cards-1 .fa-stack-1x {\\n color: #fff;\\n font-size: 2rem;\\n}\\n.cards-1 .card-body {\\n padding: 0;\\n}\\n.cards-1 .card-title {\\n margin-bottom: 0.625rem;\\n color: #1f7ed0;\\n}\\n/*------------------------------------*/\\n.fa-binoculars:before {\\n content: \\\"\\\";\\n}\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n line-height: 2em;\\n position: relative;\\n vertical-align: middle;\\n width: 2em;\\n}\\n.fa,\\n.fas {\\n font-family: \\\"Font Awesome 5 Free\\\";\\n font-weight: 900;\\n}\\n.fa-stack-1x {\\n line-height: inherit;\\n}\\n.fa-stack-1x,\\n.fa-stack-2x {\\n left: 0;\\n position: absolute;\\n text-align: center;\\n width: 100%;\\n}\\n.fa,\\n.fas,\\n.far,\\n.fal,\\n.fab {\\n -moz-osx-font-smoothing: grayscale;\\n -webkit-font-smoothing: antialiased;\\n display: inline-block;\\n font-style: normal;\\n font-variant: normal;\\n text-rendering: auto;\\n line-height: 1;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zcGVjaWFsaXplZC9ob21lLXNwZWNpYWxpemVkL2hvbWUtc3BlY2lhbGl6ZWQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvc3BlY2lhbGl6ZWQvaG9tZS1zcGVjaWFsaXplZC9FOlxcTUlMQlBcXE1JTEJQXFxpbmR1c3RyaWFsLWFuZC1jb21tZXJjaWFsLWZhY2lsaXRpZXMvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHNwZWNpYWxpemVkXFxob21lLXNwZWNpYWxpemVkXFxob21lLXNwZWNpYWxpemVkLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ0FoQjtFQUNDLGlCQUFBO0FERUQ7QUNDQTtFQUNDLGdCQUFBO0FERUQ7QUNBQTtFQUNDLG9CQUFBO0VBQ0Esa0JBQUE7QURHRDtBQ0FBO0VBQ0MsaUdBQUE7RUFFQSxzQkFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7QURFRDtBQ0NBO0VBQ0MsbUJBQUE7QURFRDtBQ0NBO0VBQ0MsYUFBQTtFQUNBLHFCQUFBO0FERUQ7QUNDQTtFQUNDLGNBQUE7RUFDQSx1QkFBQTtBREVEO0FDQUE7RUFDQyxZQUFBO0VBQ0EsdUJBQUE7QURHRDtBQ0FBO0VBQ0MsY0FBQTtBREdEO0FDQUEsb0JBQUE7QUFDQTtFQUNDLGdCQUFBO0VBQ0Esc0JBQUE7RUFDQSxpQkFBQTtBREdEO0FDQUE7RUFDQyxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxvQkFBQTtBREdEO0FDQUE7RUFHQyxzQkFBQTtBREdEO0FDQUE7RUFDQyxxQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0EsWUFBQTtBREdEO0FDQUE7RUFDQyxvQkFBQTtFQUNBLG1CQUFBO0FER0Q7QUNEQSxnQkFBQTtBQUVBO0VBQ0Msc0JBQUE7RUFDQSxxQkFBQTtBREdEO0FDREEsdUJBQUE7QUFFQSw0QkFBQTtBQUNBLDRCQUFBO0FBQ0EsNEJBQUE7QUFDQTtFQUNDLGlCQUFBO0VBQ0EsOEJBQUE7QURHRDtBQ0FBO0VBQ0MsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QURHRDtBQ0FBO0VBQ0MsV0FBQTtFQUNBLFlBQUE7RUFFQSwwQkFBQTtBREVEO0FDQUM7RUFDQyxlQUFBO0FERUY7QUNFQTtFQUNDLFdBQUE7RUFDQSxlQUFBO0FEQ0Q7QUNFQTtFQUNDLFVBQUE7QURDRDtBQ0VBO0VBQ0MsdUJBQUE7RUFDQSxjQUFBO0FEQ0Q7QUNFQSx1Q0FBQTtBQUNBO0VBQ0MsWUFBQTtBRENEO0FDQ0E7RUFDQyxxQkFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7RUFDQSxVQUFBO0FERUQ7QUNBQTs7RUFFQyxrQ0FBQTtFQUNBLGdCQUFBO0FER0Q7QUNEQTtFQUNDLG9CQUFBO0FESUQ7QUNGQTs7RUFFQyxPQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7QURLRDtBQ0hBOzs7OztFQUtDLGtDQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSxvQkFBQTtFQUNBLGNBQUE7QURNRCIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc3BlY2lhbGl6ZWQvaG9tZS1zcGVjaWFsaXplZC9ob21lLXNwZWNpYWxpemVkLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLmJhc2ljLTEge1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbn1cblxuLmJhc2ljLTEgLnRleHQtY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmJhc2ljLTEgLnRleHQtY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMS44NzVyZW07XG4gIG1hcmdpbi1yaWdodDogMnJlbTtcbn1cblxuLmJhc2ljLTEge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjMpLCByZ2JhKDAsIDAsIDAsIDAuNSkpLCB1cmwoXCJzcmMvYXNzZXRzL2ltZy9iYWNrZ3JvdW5kL2hlYWRlci1iYWNrZ3JvdW5kLmpwZ1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgcGFkZGluZy10b3A6IDByZW07XG4gIHBhZGRpbmctYm90dG9tOiAwcmVtO1xufVxuXG4uYmFzaWMtMSAudGV4dC1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xufVxuXG4uYmFzaWMtMSAuc2VjdGlvbi10aXRsZSB7XG4gIGNvbG9yOiBvcmFuZ2U7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLmJhc2ljLTEgaDIge1xuICBjb2xvcjogI2RmZTVlYztcbiAgbWFyZ2luLWJvdHRvbTogMS4zNzVyZW07XG59XG5cbi5iYXNpYy0xIHAge1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbi1ib3R0b206IDEuMzc1cmVtO1xufVxuXG4uYmFzaWMtMSAudGVzdGltb25pYWwtYXV0aG9yIHtcbiAgY29sb3I6ICNkZmU1ZWM7XG59XG5cbi8qIEhvdmVyIEFuaW1hdGlvbiAqL1xuLmJhc2ljLTEgLmltYWdlLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIHBhZGRpbmctdG9wOiA1cmVtO1xufVxuXG4uYmFzaWMtMSAuaW1hZ2UtY29udGFpbmVyIGltZyB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG59XG5cbi5iYXNpYy0xIC5pbWFnZS1jb250YWluZXI6aG92ZXIgaW1nIHtcbiAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XG59XG5cbi5jYXJkcy0xIC5jYXJkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDIxcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4uY2FyZHMtMSBkaXYuY2FyZDpudGgtY2hpbGQoM24rMikge1xuICBtYXJnaW4tcmlnaHQ6IDIuNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDIuNXJlbTtcbn1cblxuLyogRGVzY3JpcHRpb24gKi9cbi5jYXJkcy0xIGRpdi5jYXJkOm50aC1jaGlsZCgzbisyKSB7XG4gIG1hcmdpbi1yaWdodDogMi44NzVyZW07XG4gIG1hcmdpbi1sZWZ0OiAyLjg3NXJlbTtcbn1cblxuLyogZW5kIG9mIGRlc2NyaXB0aW9uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogICAgIDA2LiBEZXNjcmlwdGlvbiAgICAgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY2FyZHMtMSB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICAvKiBwYWRkaW5nLWJvdHRvbTogMi44NzVyZW07ICovXG59XG5cbi5jYXJkcy0xIC5mYS1zdGFjayB7XG4gIHdpZHRoOiA2cmVtO1xuICBoZWlnaHQ6IDZyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiA2cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jYXJkcy0xIC5mYS1zdGFjayAuaGV4YWdvbiB7XG4gIHdpZHRoOiA2cmVtO1xuICBoZWlnaHQ6IDZyZW07XG4gIGJhY2tncm91bmQtc2l6ZTogNnJlbSA2cmVtO1xufVxuLmNhcmRzLTEgLmZhLXN0YWNrIC5oZXhhZ29uIGltZyB7XG4gIG1heC13aWR0aDogNzBweDtcbn1cblxuLmNhcmRzLTEgLmZhLXN0YWNrLTF4IHtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cblxuLmNhcmRzLTEgLmNhcmQtYm9keSB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5jYXJkcy0xIC5jYXJkLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07XG4gIGNvbG9yOiAjMWY3ZWQwO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uZmEtYmlub2N1bGFyczpiZWZvcmUge1xuICBjb250ZW50OiBcIu+HpVwiO1xufVxuXG4uZmEtc3RhY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMmVtO1xuICBsaW5lLWhlaWdodDogMmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAyZW07XG59XG5cbi5mYSxcbi5mYXMge1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBGcmVlXCI7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG59XG5cbi5mYS1zdGFjay0xeCB7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4uZmEtc3RhY2stMXgsXG4uZmEtc3RhY2stMngge1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5mYSxcbi5mYXMsXG4uZmFyLFxuLmZhbCxcbi5mYWIge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG59IiwiLmJhc2ljLTEge1xyXG5cdHBhZGRpbmctdG9wOiAxcmVtO1xyXG59XHJcblxyXG4uYmFzaWMtMSAudGV4dC1jb250YWluZXIge1xyXG5cdG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuLmJhc2ljLTEgLnRleHQtY29udGFpbmVyIHtcclxuXHRtYXJnaW4tdG9wOiAxLjg3NXJlbTtcclxuXHRtYXJnaW4tcmlnaHQ6IDJyZW07XHJcbn1cclxuXHJcbi5iYXNpYy0xIHtcclxuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjMpLCByZ2JhKDAsIDAsIDAsIDAuNSkpLFxyXG5cdFx0dXJsKFwic3JjL2Fzc2V0cy9pbWcvYmFja2dyb3VuZC9oZWFkZXItYmFja2dyb3VuZC5qcGdcIik7XHJcblx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRwYWRkaW5nLXRvcDogMHJlbTtcclxuXHRwYWRkaW5nLWJvdHRvbTogMHJlbTtcclxufVxyXG5cclxuLmJhc2ljLTEgLnRleHQtY29udGFpbmVyIHtcclxuXHRtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG59XHJcblxyXG4uYmFzaWMtMSAuc2VjdGlvbi10aXRsZSB7XHJcblx0Y29sb3I6IG9yYW5nZTtcclxuXHRtYXJnaW4tYm90dG9tOiAwLjVyZW07XHJcbn1cclxuXHJcbi5iYXNpYy0xIGgyIHtcclxuXHRjb2xvcjogI2RmZTVlYztcclxuXHRtYXJnaW4tYm90dG9tOiAxLjM3NXJlbTtcclxufVxyXG4uYmFzaWMtMSBwIHtcclxuXHRjb2xvcjogd2hpdGU7XHJcblx0bWFyZ2luLWJvdHRvbTogMS4zNzVyZW07XHJcbn1cclxuXHJcbi5iYXNpYy0xIC50ZXN0aW1vbmlhbC1hdXRob3Ige1xyXG5cdGNvbG9yOiAjZGZlNWVjO1xyXG59XHJcblxyXG4vKiBIb3ZlciBBbmltYXRpb24gKi9cclxuLmJhc2ljLTEgLmltYWdlLWNvbnRhaW5lciB7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xyXG5cdHBhZGRpbmctdG9wOiA1cmVtO1xyXG59XHJcblxyXG4uYmFzaWMtMSAuaW1hZ2UtY29udGFpbmVyIGltZyB7XHJcblx0bWFyZ2luOiAwO1xyXG5cdGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XHJcblx0dHJhbnNpdGlvbjogYWxsIDAuM3M7XHJcbn1cclxuXHJcbi5iYXNpYy0xIC5pbWFnZS1jb250YWluZXI6aG92ZXIgaW1nIHtcclxuXHQtbW96LXRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XHJcblx0LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xyXG5cdHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XHJcbn1cclxuXHJcbi5jYXJkcy0xIC5jYXJkIHtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0bWF4LXdpZHRoOiAyMXJlbTtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0dmVydGljYWwtYWxpZ246IHRvcDtcclxuXHRtYXJnaW4tYm90dG9tOiAyLjVyZW07XHJcblx0Ym9yZGVyOiBub25lO1xyXG59XHJcblxyXG4uY2FyZHMtMSBkaXYuY2FyZDpudGgtY2hpbGQoM24gKyAyKSB7XHJcblx0bWFyZ2luLXJpZ2h0OiAyLjVyZW07XHJcblx0bWFyZ2luLWxlZnQ6IDIuNXJlbTtcclxufVxyXG4vKiBEZXNjcmlwdGlvbiAqL1xyXG5cclxuLmNhcmRzLTEgZGl2LmNhcmQ6bnRoLWNoaWxkKDNuICsgMikge1xyXG5cdG1hcmdpbi1yaWdodDogMi44NzVyZW07XHJcblx0bWFyZ2luLWxlZnQ6IDIuODc1cmVtO1xyXG59XHJcbi8qIGVuZCBvZiBkZXNjcmlwdGlvbiAqL1xyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLyogICAgIDA2LiBEZXNjcmlwdGlvbiAgICAgKi9cclxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLmNhcmRzLTEge1xyXG5cdHBhZGRpbmctdG9wOiAycmVtO1xyXG5cdC8qIHBhZGRpbmctYm90dG9tOiAyLjg3NXJlbTsgKi9cclxufVxyXG5cclxuLmNhcmRzLTEgLmZhLXN0YWNrIHtcclxuXHR3aWR0aDogNnJlbTtcclxuXHRoZWlnaHQ6IDZyZW07XHJcblx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG5cdG1hcmdpbi1ib3R0b206IDFyZW07XHJcblx0bWFyZ2luLWxlZnQ6IGF1dG87XHJcblx0bGluZS1oZWlnaHQ6IDZyZW07XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uY2FyZHMtMSAuZmEtc3RhY2sgLmhleGFnb24ge1xyXG5cdHdpZHRoOiA2cmVtO1xyXG5cdGhlaWdodDogNnJlbTtcclxuXHJcblx0YmFja2dyb3VuZC1zaXplOiA2cmVtIDZyZW07XHJcblxyXG5cdGltZyB7XHJcblx0XHRtYXgtd2lkdGg6IDcwcHg7XHJcblx0fVxyXG59XHJcblxyXG4uY2FyZHMtMSAuZmEtc3RhY2stMXgge1xyXG5cdGNvbG9yOiAjZmZmO1xyXG5cdGZvbnQtc2l6ZTogMnJlbTtcclxufVxyXG5cclxuLmNhcmRzLTEgLmNhcmQtYm9keSB7XHJcblx0cGFkZGluZzogMDtcclxufVxyXG5cclxuLmNhcmRzLTEgLmNhcmQtdGl0bGUge1xyXG5cdG1hcmdpbi1ib3R0b206IDAuNjI1cmVtO1xyXG5cdGNvbG9yOiAjMWY3ZWQwO1xyXG59XHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi5mYS1iaW5vY3VsYXJzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZTVcIjtcclxufVxyXG4uZmEtc3RhY2sge1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRoZWlnaHQ6IDJlbTtcclxuXHRsaW5lLWhlaWdodDogMmVtO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdHdpZHRoOiAyZW07XHJcbn1cclxuLmZhLFxyXG4uZmFzIHtcclxuXHRmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBGcmVlXCI7XHJcblx0Zm9udC13ZWlnaHQ6IDkwMDtcclxufVxyXG4uZmEtc3RhY2stMXgge1xyXG5cdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG59XHJcbi5mYS1zdGFjay0xeCxcclxuLmZhLXN0YWNrLTJ4IHtcclxuXHRsZWZ0OiAwO1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0d2lkdGg6IDEwMCU7XHJcbn1cclxuLmZhLFxyXG4uZmFzLFxyXG4uZmFyLFxyXG4uZmFsLFxyXG4uZmFiIHtcclxuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRmb250LXN0eWxlOiBub3JtYWw7XHJcblx0Zm9udC12YXJpYW50OiBub3JtYWw7XHJcblx0dGV4dC1yZW5kZXJpbmc6IGF1dG87XHJcblx0bGluZS1oZWlnaHQ6IDE7XHJcbn1cclxuIl19 */\"","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n@Component({\r\n selector: \"app-home-specialized\",\r\n templateUrl: \"./home-specialized.component.html\",\r\n styleUrls: [\"./home-specialized.component.scss\"],\r\n})\r\nexport class HomeSpecializedComponent implements OnInit {\r\n loading = true;\r\n\r\n constructor(private _router: Router\r\n ) {}\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n public OpenQLTM() {\r\n this._router.navigate(['/specialized/commecial-management/domestic']);\r\n }\r\n\r\n public OpenQLNL() {\r\n this._router.navigate(['/specialized/enery-management/hydroelectric']);\r\n }\r\n\r\n public OpenQLCN() {\r\n this._router.navigate(['/specialized/industry-management/chemical']);\r\n }\r\n\r\n public OpenDN() {\r\n this._router.navigate(['/specialized/commecial-management/domestic/search']);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\n// import {ClipboardModule} from '@angular/cdk/clipboard';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CdkTreeModule } from '@angular/cdk/tree';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport {MatFormFieldModule} from '@angular/material/form-field';\r\nimport { MatTableFilterModule } from 'mat-table-filter';\r\nimport {TreeTableModule} from 'primeng/treetable';\r\nimport {MultiSelectModule} from 'primeng/multiselect';\r\nimport { TreeviewModule } from 'ngx-treeview';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports:[TreeviewModule.forRoot(), ],\r\n exports: [\r\n A11yModule,\r\n // ClipboardModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatTableFilterModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n PortalModule,\r\n ScrollingModule,\r\n MatFormFieldModule,\r\n TreeTableModule,\r\n MultiSelectModule,\r\n TreeviewModule,\r\n FormsModule\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n\r\n\r\n/** Copyright 2019 Google LLC. All Rights Reserved.\r\n Use of this source code is governed by an MIT-style license that\r\n can be found in the LICENSE file at http://angular.io/license */","import { NgModule } from '@angular/core';\r\nimport { ZeroAsSubPipe } from './shared/pipes/filterZeroAsSub.pipe';\r\nimport { FormatNumberReportPipe } from 'src/app/shared/pipes/formatNumber.pipe';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n // dep modules\r\n ],\r\n declarations: [ \r\n ZeroAsSubPipe,\r\n FormatNumberReportPipe\r\n ],\r\n exports: [\r\n ZeroAsSubPipe,\r\n FormatNumberReportPipe\r\n ]\r\n})\r\nexport class PipeModule { }\r\n\r\n\r\n/** Copyright 2019 Google LLC. All Rights Reserved.\r\n Use of this source code is governed by an MIT-style license that\r\n can be found in the LICENSE file at http://angular.io/license */","export default \"p {\\n font-family: Lato;\\n}\\n\\n.main_content {\\n height: 100%;\\n padding: 0px;\\n}\\n\\n.mat-elevation-z5 {\\n z-index: 3;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcm91dGluZy9tYW5hZ2VyLWxheW91dC9FOlxcTUlMQlBcXE1JTEJQXFxpbmR1c3RyaWFsLWFuZC1jb21tZXJjaWFsLWZhY2lsaXRpZXMvc3JjXFxhcHBcXHJvdXRpbmdcXG1hbmFnZXItbGF5b3V0XFxtYW5hZ2VyLWxheW91dC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcm91dGluZy9tYW5hZ2VyLWxheW91dC9tYW5hZ2VyLWxheW91dC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUU7RUFFRSxZQUFBO0VBQ0EsWUFBQTtBQ0FKOztBREVFO0VBRUUsVUFBQTtBQ0FKIiwiZmlsZSI6InNyYy9hcHAvcm91dGluZy9tYW5hZ2VyLWxheW91dC9tYW5hZ2VyLWxheW91dC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbInAge1xyXG4gICAgZm9udC1mYW1pbHk6IExhdG87XHJcbiAgfVxyXG4gIFxyXG4gIC5tYWluX2NvbnRlbnQge1xyXG4gICAgLy8gd2lkdGg6MTAwJTsgXHJcbiAgICBoZWlnaHQ6IDEwMCU7Ly9jYWxjKDEwMHZoIC0gMTIwcHgpOyBcclxuICAgIHBhZGRpbmc6IDBweDtcclxuICB9XHJcbiAgLm1hdC1lbGV2YXRpb24tejUge1xyXG4gICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMztcclxuICB9IiwicCB7XG4gIGZvbnQtZmFtaWx5OiBMYXRvO1xufVxuXG4ubWFpbl9jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwcHg7XG59XG5cbi5tYXQtZWxldmF0aW9uLXo1IHtcbiAgei1pbmRleDogMztcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { SidebarService } from '../../_services/sidebar.service';\r\nimport { onMainContentChange } from 'src/app/_animations/animation-sidebar';\r\nimport { MODULE_CONTROL } from 'src/app/_enums/module-control.enum';\r\n\r\n@Component({\r\n selector: 'app-manager-layout',\r\n templateUrl: './manager-layout.component.html',\r\n styleUrls: ['manager-layout.component.scss'],\r\n animations: [ onMainContentChange ]\r\n})\r\nexport class ManagerLayoutComponent {\r\n\r\n name = 'Angular';\r\n public onSideNavChange: boolean;\r\n public readonly MODULE02: MODULE_CONTROL = MODULE_CONTROL.MODULE02;\r\n\r\n constructor(public _sidenavService: SidebarService) {\r\n this._sidenavService.sideBarState$.subscribe( res => {\r\n this.onSideNavChange = res;\r\n })\r\n }\r\n\r\n}\r\n","export default \".mat-drawer-content {\\n margin-left: 0 !important;\\n}\\n\\n.sidenav-container {\\n height: 100vh;\\n}\\n\\np {\\n font-family: Lato;\\n}\\n\\n.main_content {\\n margin-top: 40px;\\n margin-bottom: 40px;\\n height: 100%;\\n padding: 0px;\\n}\\n\\n.mat-elevation-z5 {\\n z-index: 3;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcm91dGluZy9wdWJsaWMtbGF5b3V0L0U6XFxNSUxCUFxcTUlMQlBcXGluZHVzdHJpYWwtYW5kLWNvbW1lcmNpYWwtZmFjaWxpdGllcy9zcmNcXGFwcFxccm91dGluZ1xccHVibGljLWxheW91dFxccHVibGljLWxheW91dC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcm91dGluZy9wdWJsaWMtbGF5b3V0L3B1YmxpYy1sYXlvdXQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBQTtBQ0NGOztBREVBO0VBQ0UsYUFBQTtBQ0NGOztBREVBO0VBQ0UsaUJBQUE7QUNDRjs7QURFQTtFQUNFLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtBQ0NGOztBREVBO0VBQ0UsVUFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvcm91dGluZy9wdWJsaWMtbGF5b3V0L3B1YmxpYy1sYXlvdXQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LWRyYXdlci1jb250ZW50IHtcclxuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi5zaWRlbmF2LWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxufVxyXG5cclxucCB7XHJcbiAgZm9udC1mYW1pbHk6IExhdG87XHJcbn1cclxuXHJcbi5tYWluX2NvbnRlbnQge1xyXG4gIG1hcmdpbi10b3A6IDQwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICBoZWlnaHQ6IDEwMCU7Ly9jYWxjKDEwMHZoIC0gMTIwcHgpOyBcclxuICBwYWRkaW5nOiAwcHg7XHJcbn1cclxuXHJcbi5tYXQtZWxldmF0aW9uLXo1IHtcclxuICB6LWluZGV4OiAzO1xyXG59IiwiLm1hdC1kcmF3ZXItY29udGVudCB7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5zaWRlbmF2LWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwdmg7XG59XG5cbnAge1xuICBmb250LWZhbWlseTogTGF0bztcbn1cblxuLm1haW5fY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDQwcHg7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMHB4O1xufVxuXG4ubWF0LWVsZXZhdGlvbi16NSB7XG4gIHotaW5kZXg6IDM7XG59Il19 */\"","import { ViewportScroller } from '@angular/common';\r\nimport { Component, OnInit, HostListener, Input } from '@angular/core';\r\nimport { NavigationEnd } from '@angular/router';\r\nimport { onMainContentChange } from 'src/app/_animations/animation-sidebar';\r\nimport { MODULE_CONTROL } from 'src/app/_enums/module-control.enum';\r\nimport { SidebarService } from 'src/app/_services/sidebar.service';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { MatSidenav } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'app-public-layout',\r\n templateUrl: './public-layout.component.html',\r\n styleUrls: ['public-layout.component.scss'],\r\n styles: ['.scroll-to-top{position: fixed;background:red;bottom: 0;right: 0;cursor: pointer;}'],\r\n animations: [onMainContentChange]\r\n})\r\nexport class PublicLayoutComponent implements OnInit {\r\n public readonly MODULE01: MODULE_CONTROL = MODULE_CONTROL.MODULE01;\r\n\r\n public pageYoffset = 0;\r\n public numberOfClicks = 0;\r\n public onSideNavChange: boolean;\r\n private _opened = true;\r\n @Input() sidebar: MatSidenav;\r\n\r\n constructor(\r\n public _sidenavService: SidebarService, \r\n public scrollTop: ViewportScroller,\r\n private observer: BreakpointObserver) {\r\n this._sidenavService.sideBarState$.subscribe(res => {\r\n this.onSideNavChange = res;\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n window.addEventListener('scroll', this.scrollEvent, true);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer.observe([`(max-width: 800px)`]).subscribe((res) => {\r\n this._opened = !res.matches\r\n });\r\n }\r\n\r\n public scrollEvent = (event: any): void => {\r\n this.pageYoffset = event.srcElement.scrollTop;\r\n }\r\n\r\n}","export default \"p {\\n font-family: Lato;\\n}\\n\\n.main_content {\\n height: 100%;\\n padding: 0px;\\n}\\n\\n.mat-elevation-z5 {\\n z-index: 3;\\n}\\n\\n.mat-icon {\\n cursor: pointer;\\n}\\n\\n.btn .btn-outline-primary {\\n text-align: center;\\n}\\n\\n.btn-back {\\n color: white;\\n background-color: #1f7ed0;\\n text-decoration: none;\\n margin-left: 10px;\\n}\\n\\n.btn-back:hover {\\n color: #1f7ed0;\\n background-color: white;\\n}\\n\\n/**/\\n\\n/* Breadcrumbs from http://bootsnipp.com/snippets/featured/triangle-breadcrumbs-arrows */\\n\\n.btn-breadcrumb .btn:not(:last-child):after {\\n content: \\\" \\\";\\n display: block;\\n width: 0;\\n height: 0;\\n border-top: 17px solid transparent;\\n border-bottom: 17px solid transparent;\\n border-left: 10px solid white;\\n position: absolute;\\n top: 50%;\\n margin-top: -17px;\\n left: 100%;\\n z-index: 3;\\n}\\n\\n.btn-breadcrumb .btn:not(:last-child):before {\\n content: \\\" \\\";\\n display: block;\\n width: 0;\\n height: 0;\\n border-top: 17px solid transparent;\\n border-bottom: 17px solid transparent;\\n border-left: 10px solid #adadad;\\n position: absolute;\\n top: 50%;\\n margin-top: -17px;\\n margin-left: 1px;\\n left: 100%;\\n z-index: 3;\\n}\\n\\n.btn-breadcrumb .btn {\\n padding: 6px 12px 6px 24px;\\n}\\n\\n.btn-breadcrumb .btn:first-child {\\n padding: 6px 6px 6px 10px;\\n}\\n\\n.btn-breadcrumb .btn:last-child {\\n padding: 6px 18px 6px 24px;\\n}\\n\\n/** Default button **/\\n\\n.btn-breadcrumb .btn.btn-default:not(:last-child):after {\\n border-left: 10px solid #fff;\\n}\\n\\n.btn-breadcrumb .btn.btn-default:not(:last-child):before {\\n border-left: 10px solid #ccc;\\n}\\n\\n.btn-breadcrumb .btn.btn-default:hover:not(:last-child):after {\\n border-left: 10px solid #ebebeb;\\n}\\n\\n.btn-breadcrumb .btn.btn-default:hover:not(:last-child):before {\\n border-left: 10px solid #adadad;\\n}\\n\\n/* The responsive part */\\n\\n.btn-breadcrumb > * > div {\\n /* With less: .text-overflow(); */\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n.btn-breadcrumb > *:nth-child(n+2) {\\n display: none;\\n}\\n\\n/* === For phones =================================== */\\n\\n@media (max-width: 767px) {\\n .btn-breadcrumb > *:nth-last-child(-n+2) {\\n display: block;\\n }\\n\\n .btn-breadcrumb > * div {\\n max-width: 60px;\\n }\\n}\\n\\n/* === For tablets ================================== */\\n\\n@media (min-width: 768px) and (max-width: 991px) {\\n .btn-breadcrumb > *:nth-last-child(-n+4) {\\n display: block;\\n }\\n\\n .btn-breadcrumb > * div {\\n max-width: 100px;\\n }\\n}\\n\\n/* === For desktops ================================== */\\n\\n@media (min-width: 992px) {\\n .btn-breadcrumb > *:nth-last-child(-n+6) {\\n display: block;\\n }\\n\\n .btn-breadcrumb > * div {\\n max-width: 170px;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcm91dGluZy9yZXBvcnQtbGF5b3V0L0U6XFxNSUxCUFxcTUlMQlBcXGluZHVzdHJpYWwtYW5kLWNvbW1lcmNpYWwtZmFjaWxpdGllcy9zcmNcXGFwcFxccm91dGluZ1xccmVwb3J0LWxheW91dFxccmVwb3J0LWxheW91dC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcm91dGluZy9yZXBvcnQtbGF5b3V0L3JlcG9ydC1sYXlvdXQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSxpQkFBQTtBQ0RGOztBRElBO0VBQ0UsWUFBQTtFQUNBLFlBQUE7QUNERjs7QURHQTtFQUNFLFVBQUE7QUNBRjs7QURFQTtFQUNFLGVBQUE7QUNDRjs7QURDQTtFQUNFLGtCQUFBO0FDRUY7O0FEQUE7RUFDRSxZQW5CYztFQW9CZCx5QkFyQmE7RUFzQmIscUJBQUE7RUFDQSxpQkFBQTtBQ0dGOztBRERBO0VBQ0UsY0ExQmE7RUEyQmIsdUJBMUJjO0FDOEJoQjs7QURGQyxHQUFBOztBQUVELHdGQUFBOztBQUNBO0VBQ0UsWUFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLGtDQUFBO0VBQ0EscUNBQUE7RUFDQSw2QkFBQTtFQUNBLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7QUNJRjs7QURGQTtFQUNFLFlBQUE7RUFDQSxjQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxrQ0FBQTtFQUNBLHFDQUFBO0VBQ0EsK0JBQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7QUNLRjs7QURGQTtFQUNFLDBCQUFBO0FDS0Y7O0FESEE7RUFDRSx5QkFBQTtBQ01GOztBREpBO0VBQ0UsMEJBQUE7QUNPRjs7QURKQSxxQkFBQTs7QUFDQTtFQUNFLDRCQUFBO0FDT0Y7O0FETEE7RUFDRSw0QkFBQTtBQ1FGOztBRE5BO0VBQ0UsK0JBQUE7QUNTRjs7QURQQTtFQUNFLCtCQUFBO0FDVUY7O0FEUEEsd0JBQUE7O0FBRUE7RUFDSSxpQ0FBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtBQ1NKOztBRE5BO0VBQ0UsYUFBQTtBQ1NGOztBRE5BLHVEQUFBOztBQUNBO0VBQ0k7SUFDSSxjQUFBO0VDU047O0VEUEU7SUFDSSxlQUFBO0VDVU47QUFDRjs7QURQQSx1REFBQTs7QUFDQTtFQUNJO0lBQ0ksY0FBQTtFQ1NOOztFRFBFO0lBQ0ksZ0JBQUE7RUNVTjtBQUNGOztBRFBBLHdEQUFBOztBQUNBO0VBQ0k7SUFDSSxjQUFBO0VDU047O0VEUEU7SUFDSSxnQkFBQTtFQ1VOO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9yb3V0aW5nL3JlcG9ydC1sYXlvdXQvcmVwb3J0LWxheW91dC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiRjb2xvcl9kZWZhdXQ6ICMxZjdlZDA7XHJcbiRjb2xvcl9kZWZhdWx0OiB3aGl0ZTtcclxucCB7XHJcbiAgZm9udC1mYW1pbHk6IExhdG87XHJcbn1cclxuXHJcbi5tYWluX2NvbnRlbnQge1xyXG4gIGhlaWdodDogMTAwJTsgLy9jYWxjKDEwMHZoIC0gMTIwcHgpO1xyXG4gIHBhZGRpbmc6IDBweDtcclxufVxyXG4ubWF0LWVsZXZhdGlvbi16NSB7XHJcbiAgei1pbmRleDogMztcclxufVxyXG4ubWF0LWljb24ge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uYnRuIC5idG4tb3V0bGluZS1wcmltYXJ5IHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuLmJ0bi1iYWNrIHtcclxuICBjb2xvcjogJGNvbG9yX2RlZmF1bHQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2RlZmF1dDtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbn1cclxuLmJ0bi1iYWNrOmhvdmVyIHtcclxuICBjb2xvcjogJGNvbG9yX2RlZmF1dDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfZGVmYXVsdDtcclxufVxyXG4gLyoqL1xyXG5cclxuLyogQnJlYWRjcnVtYnMgZnJvbSBodHRwOi8vYm9vdHNuaXBwLmNvbS9zbmlwcGV0cy9mZWF0dXJlZC90cmlhbmdsZS1icmVhZGNydW1icy1hcnJvd3MgKi9cclxuLmJ0bi1icmVhZGNydW1iIC5idG46bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XHJcbiAgY29udGVudDogXCIgXCI7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDA7XHJcbiAgaGVpZ2h0OiAwO1xyXG4gIGJvcmRlci10b3A6IDE3cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogMTdweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItbGVmdDogMTBweCBzb2xpZCB3aGl0ZTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbWFyZ2luLXRvcDogLTE3cHg7XHJcbiAgbGVmdDogMTAwJTtcclxuICB6LWluZGV4OiAzO1xyXG59XHJcbi5idG4tYnJlYWRjcnVtYiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIiBcIjtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMDtcclxuICBoZWlnaHQ6IDA7XHJcbiAgYm9yZGVyLXRvcDogMTdweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItYm90dG9tOiAxN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkIHJnYigxNzMsIDE3MywgMTczKTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbWFyZ2luLXRvcDogLTE3cHg7XHJcbiAgbWFyZ2luLWxlZnQ6IDFweDtcclxuICBsZWZ0OiAxMDAlO1xyXG4gIHotaW5kZXg6IDM7XHJcbn1cclxuXHJcbi5idG4tYnJlYWRjcnVtYiAuYnRuIHtcclxuICBwYWRkaW5nOjZweCAxMnB4IDZweCAyNHB4O1xyXG59XHJcbi5idG4tYnJlYWRjcnVtYiAuYnRuOmZpcnN0LWNoaWxkIHtcclxuICBwYWRkaW5nOjZweCA2cHggNnB4IDEwcHg7XHJcbn1cclxuLmJ0bi1icmVhZGNydW1iIC5idG46bGFzdC1jaGlsZCB7XHJcbiAgcGFkZGluZzo2cHggMThweCA2cHggMjRweDtcclxufVxyXG5cclxuLyoqIERlZmF1bHQgYnV0dG9uICoqL1xyXG4uYnRuLWJyZWFkY3J1bWIgLmJ0bi5idG4tZGVmYXVsdDpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcclxuICBib3JkZXItbGVmdDogMTBweCBzb2xpZCAjZmZmO1xyXG59XHJcbi5idG4tYnJlYWRjcnVtYiAuYnRuLmJ0bi1kZWZhdWx0Om5vdCg6bGFzdC1jaGlsZCk6YmVmb3JlIHtcclxuICBib3JkZXItbGVmdDogMTBweCBzb2xpZCAjY2NjO1xyXG59XHJcbi5idG4tYnJlYWRjcnVtYiAuYnRuLmJ0bi1kZWZhdWx0OmhvdmVyOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xyXG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICNlYmViZWI7XHJcbn1cclxuLmJ0bi1icmVhZGNydW1iIC5idG4uYnRuLWRlZmF1bHQ6aG92ZXI6bm90KDpsYXN0LWNoaWxkKTpiZWZvcmUge1xyXG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICNhZGFkYWQ7XHJcbn1cclxuXHJcbi8qIFRoZSByZXNwb25zaXZlIHBhcnQgKi9cclxuXHJcbi5idG4tYnJlYWRjcnVtYiA+ICogPiBkaXYge1xyXG4gICAgLyogV2l0aCBsZXNzOiAudGV4dC1vdmVyZmxvdygpOyAqL1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgICAgXHJcbn1cclxuXHJcbi5idG4tYnJlYWRjcnVtYiA+ICo6bnRoLWNoaWxkKG4rMikge1xyXG4gIGRpc3BsYXk6bm9uZTtcclxufVxyXG5cclxuLyogPT09IEZvciBwaG9uZXMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XHJcbiAgICAuYnRuLWJyZWFkY3J1bWIgPiAqOm50aC1sYXN0LWNoaWxkKC1uKzIpIHtcclxuICAgICAgICBkaXNwbGF5OmJsb2NrO1xyXG4gICAgfSBcclxuICAgIC5idG4tYnJlYWRjcnVtYiA+ICogZGl2IHtcclxuICAgICAgICBtYXgtd2lkdGg6IDYwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qID09PSBGb3IgdGFibGV0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6OTkxcHgpIHtcclxuICAgIC5idG4tYnJlYWRjcnVtYiA+ICo6bnRoLWxhc3QtY2hpbGQoLW4rNCkge1xyXG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XHJcbiAgICB9IFxyXG4gICAgLmJ0bi1icmVhZGNydW1iID4gKiBkaXYge1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qID09PSBGb3IgZGVza3RvcHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC5idG4tYnJlYWRjcnVtYiA+ICo6bnRoLWxhc3QtY2hpbGQoLW4rNikge1xyXG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XHJcbiAgICB9IFxyXG4gICAgLmJ0bi1icmVhZGNydW1iID4gKiBkaXYge1xyXG4gICAgICAgIG1heC13aWR0aDogMTcwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuIiwicCB7XG4gIGZvbnQtZmFtaWx5OiBMYXRvO1xufVxuXG4ubWFpbl9jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwcHg7XG59XG5cbi5tYXQtZWxldmF0aW9uLXo1IHtcbiAgei1pbmRleDogMztcbn1cblxuLm1hdC1pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYnRuIC5idG4tb3V0bGluZS1wcmltYXJ5IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYnRuLWJhY2sge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZjdlZDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5idG4tYmFjazpob3ZlciB7XG4gIGNvbG9yOiAjMWY3ZWQwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLyoqL1xuLyogQnJlYWRjcnVtYnMgZnJvbSBodHRwOi8vYm9vdHNuaXBwLmNvbS9zbmlwcGV0cy9mZWF0dXJlZC90cmlhbmdsZS1icmVhZGNydW1icy1hcnJvd3MgKi9cbi5idG4tYnJlYWRjcnVtYiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci10b3A6IDE3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDE3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkIHdoaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMTdweDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogMztcbn1cblxuLmJ0bi1icmVhZGNydW1iIC5idG46bm90KDpsYXN0LWNoaWxkKTpiZWZvcmUge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci10b3A6IDE3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDE3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICNhZGFkYWQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0xN3B4O1xuICBtYXJnaW4tbGVmdDogMXB4O1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAzO1xufVxuXG4uYnRuLWJyZWFkY3J1bWIgLmJ0biB7XG4gIHBhZGRpbmc6IDZweCAxMnB4IDZweCAyNHB4O1xufVxuXG4uYnRuLWJyZWFkY3J1bWIgLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmc6IDZweCA2cHggNnB4IDEwcHg7XG59XG5cbi5idG4tYnJlYWRjcnVtYiAuYnRuOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nOiA2cHggMThweCA2cHggMjRweDtcbn1cblxuLyoqIERlZmF1bHQgYnV0dG9uICoqL1xuLmJ0bi1icmVhZGNydW1iIC5idG4uYnRuLWRlZmF1bHQ6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICNmZmY7XG59XG5cbi5idG4tYnJlYWRjcnVtYiAuYnRuLmJ0bi1kZWZhdWx0Om5vdCg6bGFzdC1jaGlsZCk6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgI2NjYztcbn1cblxuLmJ0bi1icmVhZGNydW1iIC5idG4uYnRuLWRlZmF1bHQ6aG92ZXI6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICNlYmViZWI7XG59XG5cbi5idG4tYnJlYWRjcnVtYiAuYnRuLmJ0bi1kZWZhdWx0OmhvdmVyOm5vdCg6bGFzdC1jaGlsZCk6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgI2FkYWRhZDtcbn1cblxuLyogVGhlIHJlc3BvbnNpdmUgcGFydCAqL1xuLmJ0bi1icmVhZGNydW1iID4gKiA+IGRpdiB7XG4gIC8qIFdpdGggbGVzczogLnRleHQtb3ZlcmZsb3coKTsgKi9cbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5idG4tYnJlYWRjcnVtYiA+ICo6bnRoLWNoaWxkKG4rMikge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiA9PT0gRm9yIHBob25lcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5idG4tYnJlYWRjcnVtYiA+ICo6bnRoLWxhc3QtY2hpbGQoLW4rMikge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmJ0bi1icmVhZGNydW1iID4gKiBkaXYge1xuICAgIG1heC13aWR0aDogNjBweDtcbiAgfVxufVxuLyogPT09IEZvciB0YWJsZXRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC5idG4tYnJlYWRjcnVtYiA+ICo6bnRoLWxhc3QtY2hpbGQoLW4rNCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmJ0bi1icmVhZGNydW1iID4gKiBkaXYge1xuICAgIG1heC13aWR0aDogMTAwcHg7XG4gIH1cbn1cbi8qID09PSBGb3IgZGVza3RvcHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5idG4tYnJlYWRjcnVtYiA+ICo6bnRoLWxhc3QtY2hpbGQoLW4rNikge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmJ0bi1icmVhZGNydW1iID4gKiBkaXYge1xuICAgIG1heC13aWR0aDogMTcwcHg7XG4gIH1cbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { SidebarService } from '../../_services/sidebar.service';\r\nimport { onMainContentChange } from 'src/app/_animations/animation-sidebar';\r\nimport { MODULE_CONTROL } from 'src/app/_enums/module-control.enum';\r\n\r\n@Component({\r\n selector: 'app-report-layout',\r\n templateUrl: './report-layout.component.html',\r\n styleUrls: ['./report-layout.component.scss'],\r\n animations: [ onMainContentChange ]\r\n})\r\nexport class ReportLayoutComponent {\r\n\r\n name = 'Angular';\r\n public onSideNavChange: boolean;\r\n public readonly MODULE04: MODULE_CONTROL = MODULE_CONTROL.MODULE04;\r\n\r\n constructor(public _sidenavService: SidebarService) {\r\n this._sidenavService.sideBarState$.subscribe( res => {\r\n this.onSideNavChange = res;\r\n })\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n template: ' ',\r\n styles: []\r\n})\r\nexport class RoutingComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { MessageService } from 'primeng/api';\r\nimport { RoutingComponent } from './routing.component';\r\nimport { PublicLayoutComponent } from './public-layout/public-layout.component';\r\nimport { ManagerLayoutComponent } from './manager-layout/manager-layout.component';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { MaterialModule } from '../material.module';\r\nimport { SidebarService } from '../_services/sidebar.service';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { P404Component } from '../components/error/404.component';\r\nimport { P500Component } from '../components/error/500.component';\r\nimport { LoginComponent } from '../components/login/login.component';\r\nimport { RegisterComponent } from '../components/register/register.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { LogoutComponent } from '../components/logout/logout.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { SpecializedLayoutComponent } from './specialized-layout/specialized-layout.component';\r\nimport { ReportLayoutComponent } from './report-layout/report-layout.component';\r\nimport { HomeSpecializedComponent } from '../components/specialized/home-specialized/home-specialized.component';\r\n\r\nimport { Admin } from '../_authGuard/Admin';\r\nimport { Specialize } from '../_authGuard/Specialize';\r\nimport { Manager } from '../_authGuard/Manager';\r\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\nimport { PageNotFoundComponent, LoaderInterceptor } from '../shared';\r\n\r\nconst routes: Routes = [\r\n {//Default first page\r\n path: '',\r\n redirectTo: 'public/market/domestic/price',\r\n pathMatch: 'full',\r\n },\r\n {//404\r\n path: '404',\r\n component: PageNotFoundComponent,\r\n data: {\r\n title: 'Page 404'\r\n }\r\n },\r\n {//500\r\n path: '500',\r\n component: P500Component,\r\n data: {\r\n title: 'Page 500'\r\n }\r\n },\r\n {//Login\r\n path: 'login',\r\n component: LoginComponent,\r\n data: {\r\n title: 'Đăng nhập'\r\n }\r\n },\r\n {\r\n path: 'specialized/home',\r\n component: HomeSpecializedComponent,\r\n data: {\r\n title: 'Quản lý chuyên ngành'\r\n }\r\n },\r\n\r\n {//Default first page\r\n path: 'logout',\r\n component: LogoutComponent,\r\n data: {\r\n title: 'Đăng xuất'\r\n }\r\n },\r\n {//Register\r\n path: 'register',\r\n component: RegisterComponent,\r\n data: {\r\n title: 'Đăng ký doanh nghiệp'\r\n }\r\n },\r\n {//LayoutPage Public\r\n path: 'public',\r\n component: PublicLayoutComponent,\r\n data: {\r\n title: 'Sở công thương'\r\n },\r\n children: [\r\n {//Market\r\n path: 'market',\r\n loadChildren: () => import('../components/public/market/market.module').then(m => m.MarketModule)\r\n },\r\n {//Partner\r\n path: 'partner',\r\n loadChildren: () => import('../components/public/partner/partner.module').then(m => m.PartnerModule)\r\n }\r\n ]\r\n },\r\n {//LayoutPage Specilized\r\n path: 'specialized',\r\n component: SpecializedLayoutComponent,\r\n children: [\r\n {\r\n canActivate: [Specialize],\r\n path: 'commecial-management',\r\n loadChildren: () => import('../components/specialized/commecial-managemant/commecial-management.module').then(m => m.CommecialManagementModule),\r\n },\r\n {\r\n canActivate: [Specialize],\r\n path: 'enery-management',\r\n loadChildren: () => import('../components/specialized/enery-management/enery-management.module').then(m => m.EneryManagementModule),\r\n },\r\n {\r\n canActivate: [Specialize],\r\n path: 'industry-management',\r\n loadChildren: () => import('../components/specialized/industry-management/industry-management.module').then(m => m.IndustryManagement),\r\n },\r\n ]\r\n },\r\n {\r\n path: 'report',\r\n component: SpecializedLayoutComponent,\r\n loadChildren: () => import('../components/report/report.module').then(m => m.ReportModule)\r\n },\r\n {\r\n path: 'manager',\r\n component: ManagerLayoutComponent,\r\n loadChildren: () => import('../components/manager/manager.module').then(m => m.ManagerModule),\r\n },\r\n {//404\r\n path: '**',\r\n component: PageNotFoundComponent,\r\n }\r\n];\r\n\r\n@NgModule({\r\n declarations: [\r\n RoutingComponent,\r\n PublicLayoutComponent,\r\n ManagerLayoutComponent,\r\n SpecializedLayoutComponent,\r\n ReportLayoutComponent,\r\n P404Component,\r\n P500Component,\r\n LoginComponent,\r\n HomeSpecializedComponent,\r\n LogoutComponent,\r\n RegisterComponent,\r\n ],\r\n imports: [\r\n RouterModule.forRoot(routes),\r\n SharedModule,\r\n HttpClientModule,\r\n ToastModule,\r\n MessagesModule,\r\n MaterialModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n // FlexLayoutModule\r\n ],\r\n exports: [RoutingComponent],\r\n providers: [\r\n Admin,\r\n Manager,\r\n Specialize,\r\n MessageService,\r\n SidebarService,\r\n //InformationService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: LoaderInterceptor,\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class RoutingModule { }\r\n","export default \"p {\\n font-family: Lato;\\n}\\n\\n.main_content {\\n height: 100%;\\n padding: 0px;\\n}\\n\\n.mat-elevation-z5 {\\n z-index: 3;\\n}\\n\\n.mat-icon {\\n cursor: pointer;\\n}\\n\\n.btn .btn-outline-primary {\\n text-align: center;\\n}\\n\\n.btn-back {\\n color: white;\\n background-color: #1f7ed0;\\n text-decoration: none;\\n margin-left: 10px;\\n}\\n\\n.btn-back:hover {\\n color: #1f7ed0;\\n background-color: white;\\n}\\n\\n/**/\\n\\n/* Breadcrumbs from http://bootsnipp.com/snippets/featured/triangle-breadcrumbs-arrows */\\n\\n.btn-breadcrumb .btn:not(:last-child):after {\\n content: \\\" \\\";\\n display: block;\\n width: 0;\\n height: 0;\\n border-top: 17px solid transparent;\\n border-left: 10px solid white;\\n position: absolute;\\n top: 50%;\\n margin-top: -17px;\\n left: 100%;\\n z-index: 3;\\n}\\n\\n.btn-breadcrumb .btn:not(:last-child):before {\\n content: \\\" \\\";\\n display: block;\\n width: 0;\\n height: 0;\\n border-top: 17px solid transparent;\\n border-left: 10px solid #adadad;\\n position: absolute;\\n top: 50%;\\n margin-top: -17px;\\n margin-left: 1px;\\n left: 100%;\\n z-index: 3;\\n}\\n\\n.btn-breadcrumb .btn {\\n padding: 6px;\\n}\\n\\n.btn-breadcrumb .btn:first-child {\\n padding: 6px;\\n}\\n\\n.btn-breadcrumb .btn:last-child {\\n padding: 6px;\\n}\\n\\n/** Default button **/\\n\\n.btn-breadcrumb .btn.btn-default:not(:last-child):after {\\n border-left: 10px solid #fff;\\n}\\n\\n.btn-breadcrumb .btn.btn-default:not(:last-child):before {\\n border-left: 10px solid #ccc;\\n}\\n\\n.btn-breadcrumb .btn.btn-default:hover:not(:last-child):after {\\n border-left: 10px solid #ebebeb;\\n}\\n\\n.btn-breadcrumb .btn.btn-default:hover:not(:last-child):before {\\n border-left: 10px solid #adadad;\\n}\\n\\n/* The responsive part */\\n\\n.btn-breadcrumb > * > div {\\n /* With less: .text-overflow(); */\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n.btn-breadcrumb > *:nth-child(n+2) {\\n display: none;\\n}\\n\\n/* === For phones =================================== */\\n\\n@media (max-width: 767px) {\\n .btn-breadcrumb > *:nth-last-child(-n+2) {\\n display: block;\\n }\\n\\n .btn-breadcrumb > * div {\\n max-width: 60px;\\n }\\n}\\n\\n/* === For tablets ================================== */\\n\\n@media (min-width: 768px) and (max-width: 991px) {\\n .btn-breadcrumb > *:nth-last-child(-n+4) {\\n display: block;\\n }\\n\\n .btn-breadcrumb > * div {\\n max-width: 100px;\\n }\\n}\\n\\n/* === For desktops ================================== */\\n\\n@media (min-width: 992px) {\\n .btn-breadcrumb > *:nth-last-child(-n+6) {\\n display: block;\\n }\\n\\n .btn-breadcrumb > * div {\\n max-width: 170px;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcm91dGluZy9zcGVjaWFsaXplZC1sYXlvdXQvRTpcXE1JTEJQXFxNSUxCUFxcaW5kdXN0cmlhbC1hbmQtY29tbWVyY2lhbC1mYWNpbGl0aWVzL3NyY1xcYXBwXFxyb3V0aW5nXFxzcGVjaWFsaXplZC1sYXlvdXRcXHNwZWNpYWxpemVkLWxheW91dC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcm91dGluZy9zcGVjaWFsaXplZC1sYXlvdXQvc3BlY2lhbGl6ZWQtbGF5b3V0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0UsaUJBQUE7QUNERjs7QURJQTtFQUNFLFlBQUE7RUFDQSxZQUFBO0FDREY7O0FER0E7RUFDRSxVQUFBO0FDQUY7O0FERUE7RUFDRSxlQUFBO0FDQ0Y7O0FEQ0E7RUFDRSxrQkFBQTtBQ0VGOztBREFBO0VBQ0UsWUFuQmM7RUFvQmQseUJBckJhO0VBc0JiLHFCQUFBO0VBQ0EsaUJBQUE7QUNHRjs7QUREQTtFQUNFLGNBMUJhO0VBMkJiLHVCQTFCYztBQzhCaEI7O0FERkEsR0FBQTs7QUFFQSx3RkFBQTs7QUFDQTtFQUNFLFlBQUE7RUFDQSxjQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxrQ0FBQTtFQUVBLDZCQUFBO0VBQ0Esa0JBQUE7RUFDQSxRQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsVUFBQTtBQ0dGOztBRERBO0VBQ0UsWUFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLGtDQUFBO0VBRUEsK0JBQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7QUNHRjs7QURBQTtFQUNFLFlBQUE7QUNHRjs7QUREQTtFQUNFLFlBQUE7QUNJRjs7QURGQTtFQUNFLFlBQUE7QUNLRjs7QURGQSxxQkFBQTs7QUFDQTtFQUNFLDRCQUFBO0FDS0Y7O0FESEE7RUFDRSw0QkFBQTtBQ01GOztBREpBO0VBQ0UsK0JBQUE7QUNPRjs7QURMQTtFQUNFLCtCQUFBO0FDUUY7O0FETEEsd0JBQUE7O0FBRUE7RUFDRSxpQ0FBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtBQ09GOztBREpBO0VBQ0UsYUFBQTtBQ09GOztBREpBLHVEQUFBOztBQUNBO0VBQ0U7SUFDRSxjQUFBO0VDT0Y7O0VETEE7SUFDRSxlQUFBO0VDUUY7QUFDRjs7QURMQSx1REFBQTs7QUFDQTtFQUNFO0lBQ0UsY0FBQTtFQ09GOztFRExBO0lBQ0UsZ0JBQUE7RUNRRjtBQUNGOztBRExBLHdEQUFBOztBQUNBO0VBQ0U7SUFDRSxjQUFBO0VDT0Y7O0VETEE7SUFDRSxnQkFBQTtFQ1FGO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9yb3V0aW5nL3NwZWNpYWxpemVkLWxheW91dC9zcGVjaWFsaXplZC1sYXlvdXQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkY29sb3JfZGVmYXV0OiAjMWY3ZWQwO1xyXG4kY29sb3JfZGVmYXVsdDogd2hpdGU7XHJcbnAge1xyXG4gIGZvbnQtZmFtaWx5OiBMYXRvO1xyXG59XHJcblxyXG4ubWFpbl9jb250ZW50IHtcclxuICBoZWlnaHQ6IDEwMCU7IC8vY2FsYygxMDB2aCAtIDEyMHB4KTtcclxuICBwYWRkaW5nOiAwcHg7XHJcbn1cclxuLm1hdC1lbGV2YXRpb24tejUge1xyXG4gIHotaW5kZXg6IDM7XHJcbn1cclxuLm1hdC1pY29uIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuLmJ0biAuYnRuLW91dGxpbmUtcHJpbWFyeSB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbi5idG4tYmFjayB7XHJcbiAgY29sb3I6ICRjb2xvcl9kZWZhdWx0O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9kZWZhdXQ7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG59XHJcbi5idG4tYmFjazpob3ZlciB7XHJcbiAgY29sb3I6ICRjb2xvcl9kZWZhdXQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2RlZmF1bHQ7XHJcbn1cclxuLyoqL1xyXG5cclxuLyogQnJlYWRjcnVtYnMgZnJvbSBodHRwOi8vYm9vdHNuaXBwLmNvbS9zbmlwcGV0cy9mZWF0dXJlZC90cmlhbmdsZS1icmVhZGNydW1icy1hcnJvd3MgKi9cclxuLmJ0bi1icmVhZGNydW1iIC5idG46bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XHJcbiAgY29udGVudDogXCIgXCI7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDA7XHJcbiAgaGVpZ2h0OiAwO1xyXG4gIGJvcmRlci10b3A6IDE3cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgLy8gYm9yZGVyLWJvdHRvbTogMTdweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItbGVmdDogMTBweCBzb2xpZCB3aGl0ZTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbWFyZ2luLXRvcDogLTE3cHg7XHJcbiAgbGVmdDogMTAwJTtcclxuICB6LWluZGV4OiAzO1xyXG59XHJcbi5idG4tYnJlYWRjcnVtYiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIiBcIjtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMDtcclxuICBoZWlnaHQ6IDA7XHJcbiAgYm9yZGVyLXRvcDogMTdweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAvLyBib3JkZXItYm90dG9tOiAxN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkIHJnYigxNzMsIDE3MywgMTczKTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbWFyZ2luLXRvcDogLTE3cHg7XHJcbiAgbWFyZ2luLWxlZnQ6IDFweDtcclxuICBsZWZ0OiAxMDAlO1xyXG4gIHotaW5kZXg6IDM7XHJcbn1cclxuXHJcbi5idG4tYnJlYWRjcnVtYiAuYnRuIHtcclxuICBwYWRkaW5nOiA2cHg7XHJcbn1cclxuLmJ0bi1icmVhZGNydW1iIC5idG46Zmlyc3QtY2hpbGQge1xyXG4gIHBhZGRpbmc6IDZweDtcclxufVxyXG4uYnRuLWJyZWFkY3J1bWIgLmJ0bjpsYXN0LWNoaWxkIHtcclxuICBwYWRkaW5nOiA2cHg7XHJcbn1cclxuXHJcbi8qKiBEZWZhdWx0IGJ1dHRvbiAqKi9cclxuLmJ0bi1icmVhZGNydW1iIC5idG4uYnRuLWRlZmF1bHQ6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XHJcbiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgI2ZmZjtcclxufVxyXG4uYnRuLWJyZWFkY3J1bWIgLmJ0bi5idG4tZGVmYXVsdDpub3QoOmxhc3QtY2hpbGQpOmJlZm9yZSB7XHJcbiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgI2NjYztcclxufVxyXG4uYnRuLWJyZWFkY3J1bWIgLmJ0bi5idG4tZGVmYXVsdDpob3Zlcjpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcclxuICBib3JkZXItbGVmdDogMTBweCBzb2xpZCAjZWJlYmViO1xyXG59XHJcbi5idG4tYnJlYWRjcnVtYiAuYnRuLmJ0bi1kZWZhdWx0OmhvdmVyOm5vdCg6bGFzdC1jaGlsZCk6YmVmb3JlIHtcclxuICBib3JkZXItbGVmdDogMTBweCBzb2xpZCAjYWRhZGFkO1xyXG59XHJcblxyXG4vKiBUaGUgcmVzcG9uc2l2ZSBwYXJ0ICovXHJcblxyXG4uYnRuLWJyZWFkY3J1bWIgPiAqID4gZGl2IHtcclxuICAvKiBXaXRoIGxlc3M6IC50ZXh0LW92ZXJmbG93KCk7ICovXHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG59XHJcblxyXG4uYnRuLWJyZWFkY3J1bWIgPiAqOm50aC1jaGlsZChuICsgMikge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi8qID09PSBGb3IgcGhvbmVzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xyXG4gIC5idG4tYnJlYWRjcnVtYiA+ICo6bnRoLWxhc3QtY2hpbGQoLW4gKyAyKSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbiAgLmJ0bi1icmVhZGNydW1iID4gKiBkaXYge1xyXG4gICAgbWF4LXdpZHRoOiA2MHB4O1xyXG4gIH1cclxufVxyXG5cclxuLyogPT09IEZvciB0YWJsZXRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcclxuICAuYnRuLWJyZWFkY3J1bWIgPiAqOm50aC1sYXN0LWNoaWxkKC1uICsgNCkge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG4gIC5idG4tYnJlYWRjcnVtYiA+ICogZGl2IHtcclxuICAgIG1heC13aWR0aDogMTAwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4vKiA9PT0gRm9yIGRlc2t0b3BzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgLmJ0bi1icmVhZGNydW1iID4gKjpudGgtbGFzdC1jaGlsZCgtbiArIDYpIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuICAuYnRuLWJyZWFkY3J1bWIgPiAqIGRpdiB7XHJcbiAgICBtYXgtd2lkdGg6IDE3MHB4O1xyXG4gIH1cclxufVxyXG4iLCJwIHtcbiAgZm9udC1mYW1pbHk6IExhdG87XG59XG5cbi5tYWluX2NvbnRlbnQge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDBweDtcbn1cblxuLm1hdC1lbGV2YXRpb24tejUge1xuICB6LWluZGV4OiAzO1xufVxuXG4ubWF0LWljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5idG4gLmJ0bi1vdXRsaW5lLXByaW1hcnkge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5idG4tYmFjayB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFmN2VkMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmJ0bi1iYWNrOmhvdmVyIHtcbiAgY29sb3I6ICMxZjdlZDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuXG4vKiovXG4vKiBCcmVhZGNydW1icyBmcm9tIGh0dHA6Ly9ib290c25pcHAuY29tL3NuaXBwZXRzL2ZlYXR1cmVkL3RyaWFuZ2xlLWJyZWFkY3J1bWJzLWFycm93cyAqL1xuLmJ0bi1icmVhZGNydW1iIC5idG46bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMTdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgd2hpdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0xN3B4O1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAzO1xufVxuXG4uYnRuLWJyZWFkY3J1bWIgLmJ0bjpub3QoOmxhc3QtY2hpbGQpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMTdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgI2FkYWRhZDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTE3cHg7XG4gIG1hcmdpbi1sZWZ0OiAxcHg7XG4gIGxlZnQ6IDEwMCU7XG4gIHotaW5kZXg6IDM7XG59XG5cbi5idG4tYnJlYWRjcnVtYiAuYnRuIHtcbiAgcGFkZGluZzogNnB4O1xufVxuXG4uYnRuLWJyZWFkY3J1bWIgLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmc6IDZweDtcbn1cblxuLmJ0bi1icmVhZGNydW1iIC5idG46bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmc6IDZweDtcbn1cblxuLyoqIERlZmF1bHQgYnV0dG9uICoqL1xuLmJ0bi1icmVhZGNydW1iIC5idG4uYnRuLWRlZmF1bHQ6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICNmZmY7XG59XG5cbi5idG4tYnJlYWRjcnVtYiAuYnRuLmJ0bi1kZWZhdWx0Om5vdCg6bGFzdC1jaGlsZCk6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgI2NjYztcbn1cblxuLmJ0bi1icmVhZGNydW1iIC5idG4uYnRuLWRlZmF1bHQ6aG92ZXI6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkICNlYmViZWI7XG59XG5cbi5idG4tYnJlYWRjcnVtYiAuYnRuLmJ0bi1kZWZhdWx0OmhvdmVyOm5vdCg6bGFzdC1jaGlsZCk6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgI2FkYWRhZDtcbn1cblxuLyogVGhlIHJlc3BvbnNpdmUgcGFydCAqL1xuLmJ0bi1icmVhZGNydW1iID4gKiA+IGRpdiB7XG4gIC8qIFdpdGggbGVzczogLnRleHQtb3ZlcmZsb3coKTsgKi9cbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5idG4tYnJlYWRjcnVtYiA+ICo6bnRoLWNoaWxkKG4rMikge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiA9PT0gRm9yIHBob25lcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5idG4tYnJlYWRjcnVtYiA+ICo6bnRoLWxhc3QtY2hpbGQoLW4rMikge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmJ0bi1icmVhZGNydW1iID4gKiBkaXYge1xuICAgIG1heC13aWR0aDogNjBweDtcbiAgfVxufVxuLyogPT09IEZvciB0YWJsZXRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC5idG4tYnJlYWRjcnVtYiA+ICo6bnRoLWxhc3QtY2hpbGQoLW4rNCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmJ0bi1icmVhZGNydW1iID4gKiBkaXYge1xuICAgIG1heC13aWR0aDogMTAwcHg7XG4gIH1cbn1cbi8qID09PSBGb3IgZGVza3RvcHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5idG4tYnJlYWRjcnVtYiA+ICo6bnRoLWxhc3QtY2hpbGQoLW4rNikge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmJ0bi1icmVhZGNydW1iID4gKiBkaXYge1xuICAgIG1heC13aWR0aDogMTcwcHg7XG4gIH1cbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { SidebarService } from '../../_services/sidebar.service';\r\nimport { onMainContentChange } from 'src/app/_animations/animation-sidebar';\r\nimport { MODULE_CONTROL } from 'src/app/_enums/module-control.enum';\r\n\r\n@Component({\r\n selector: 'app-specialized-layout',\r\n templateUrl: './specialized-layout.component.html',\r\n styleUrls: ['./specialized-layout.component.scss'],\r\n animations: [ onMainContentChange ]\r\n})\r\nexport class SpecializedLayoutComponent {\r\n\r\n name = 'Angular';\r\n public onSideNavChange: boolean;\r\n public readonly MODULE01: MODULE_CONTROL = MODULE_CONTROL.MODULE03;\r\n\r\n constructor(public _sidenavService: SidebarService) {\r\n this._sidenavService.sideBarState$.subscribe( res => {\r\n this.onSideNavChange = res;\r\n })\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-confirmation-dialog',\r\n templateUrl: './confirmation-dialog.component.html',\r\n})\r\nexport class ConfirmationDialogComponent implements OnInit {\r\n\r\n @Input() title: string;\r\n @Input() message: string;\r\n @Input() btnOkText: string;\r\n @Input() btnCancelText: string;\r\n\r\n constructor(public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public decline() {\r\n this.activeModal.close(false);\r\n }\r\n\r\n public accept() {\r\n this.activeModal.close(true);\r\n }\r\n\r\n public dismiss() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n//import { Observable } from 'rxjs/Observable';\r\n\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { ConfirmationDialogComponent } from './confirmation-dialog.component';\r\n\r\n@Injectable()\r\nexport class ConfirmationDialogService {\r\n\r\n constructor(public modalService: NgbModal) { }\r\n\r\n public confirm(\r\n title: string,\r\n message: string,\r\n btnOkText: string,\r\n btnCancelText: string,\r\n dialogSize: 'sm'|'lg' = 'sm'): Promise {\r\n const modalRef = this.modalService.open(ConfirmationDialogComponent, { size: dialogSize });\r\n modalRef.componentInstance.title = title;\r\n modalRef.componentInstance.message = message;\r\n modalRef.componentInstance.btnOkText = btnOkText;\r\n modalRef.componentInstance.btnCancelText = btnCancelText;\r\n\r\n return modalRef.result;\r\n }\r\n\r\n}\r\n","import { AfterViewInit, Component, ComponentFactoryResolver, ComponentRef, Inject, Input, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DialogService } from 'src/app/_services/injectable-service/dialog.service';\r\nimport * as XLSX from \"xlsx\";\r\n\r\n@Component({\r\n selector: 'app-dialog-container-noCondition',\r\n templateUrl: './dialog-container-noCondition.component.html',\r\n styles: []\r\n})\r\nexport class DialogContainerNoConditionComponent implements OnInit, AfterViewInit {\r\n years: number[] = Array(10).fill(1).map((element, index) => new Date().getFullYear() + 5 - index);\r\n periods: any[] = [\r\n { id: 1, title: \"6 tháng đầu năm\" },\r\n { id: 2, title: \"6 tháng cuối năm\" }\r\n ];\r\n selectType: number = 3;\r\n nameSheet: string = \"\";\r\n disBtn: boolean = true;\r\n name: string = 'Chưa chọn file'\r\n @Input('data') data: string;\r\n @ViewChild('dialog-container', { \r\n read: ViewContainerRef,\r\n static: true,\r\n }) dialogContainer: ViewContainerRef;\r\n\r\n componentRef: ComponentRef;\r\n isShowPeriod: boolean = false;\r\n reportTypes = [\r\n // { ma_so: null, noi_dung: '' }, \r\n // { ma_so: 1, noi_dung: 'Tháng' }, \r\n // { ma_so: 2, noi_dung: 'Quý' }, \r\n { ma_so: 3, noi_dung: '6 Tháng' },\r\n { ma_so: 4, noi_dung: 'Năm' }\r\n ];\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n public dialog: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) dataDialog\r\n ) { \r\n this.nameSheet = dataDialog['nameSheet']\r\n }\r\n\r\n ngOnInit() {\r\n this.dialogService.close$.subscribe(reason => {\r\n this.dialogContainer.clear();\r\n\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n }\r\n });\r\n\r\n this.changeReportType();\r\n this.changePeriod();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n }\r\n }\r\n\r\n renderComponent() {\r\n const container = this.dialogContainer;\r\n container.clear();\r\n const injector = container.injector;\r\n\r\n const cfr: ComponentFactoryResolver = injector.get(ComponentFactoryResolver);\r\n\r\n const componentFactory = cfr.resolveComponentFactory(DialogContainerNoConditionComponent);\r\n\r\n const componentRef = container.createComponent(componentFactory, 0, injector);\r\n componentRef.changeDetectorRef.detectChanges();\r\n this.componentRef = componentRef;\r\n this.data = this.componentRef.instance.data;\r\n }\r\n\r\n uploadExcel(e){\r\n console.log(e);\r\n this.name = e.target.files[0].name;\r\n this.handleFile(e);\r\n }\r\n\r\n public handleFile(e) {\r\n\r\n /* wire up file reader */\r\n const target: any = (e.target);\r\n if (target.files.length !== 1) {\r\n throw new Error('Cannot use multiple files');\r\n }\r\n let reader: FileReader = new FileReader();\r\n reader.readAsBinaryString(target.files[0]);\r\n reader.onload = (e: any) => {\r\n /* create workbook */\r\n const binarystr: string = e.target.result;\r\n const wb: XLSX.WorkBook = XLSX.read(binarystr, { type: 'binary' });\r\n\r\n /* selected the first sheet */\r\n const ws: XLSX.WorkSheet = wb.Sheets[this.nameSheet];\r\n\r\n // data ws to json format\r\n let data = XLSX.utils.sheet_to_json(ws);\r\n \r\n // set data to service object\r\n this.dialogService.setDataTransformer(data);\r\n };\r\n }\r\n\r\n save(){\r\n console.log(this.dialogService.getDataTransform())\r\n this.dialogService.getDataTransform() ? this.dialog.close(this.time_id) : this.dialog.close(false);\r\n }\r\n\r\n\r\n changeReportType() {\r\n console.log(this.selectType);\r\n\r\n switch (this.selectType) {\r\n // case 1:\r\n // this.periods = this.months;\r\n // break;\r\n // case 2:\r\n // this.periods = this.quarters;\r\n // break;\r\n case 3: \r\n this.changePeriod();\r\n this.isShowPeriod = true;\r\n break;\r\n case 4: \r\n this.changePeriod();\r\n this.isShowPeriod = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n // this.tempObject.time_id = null;\r\n // this.selectedPeriod = null;\r\n }\r\n\r\n time_id: number = 0;\r\n selectedYear: number = new Date().getFullYear();\r\n selectedPeriod: number = new Date().getMonth() + 1 > 6 ? 2 : 1;\r\n changePeriod() {\r\n switch (this.selectType) {\r\n case 1:\r\n this.time_id = this.selectedYear * 100 + this.selectedPeriod;\r\n break;\r\n case 2:\r\n this.time_id = Number(this.selectedYear + this.selectedPeriod.toString());\r\n break;\r\n case 3:\r\n this.time_id = Number(this.selectedYear + this.selectedPeriod.toString());;\r\n break;\r\n case 4:\r\n this.time_id = this.selectedYear;\r\n break;\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, Component, ComponentFactoryResolver, ComponentRef, Inject, Input, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DialogService } from 'src/app/_services/injectable-service/dialog.service';\r\nimport * as XLSX from \"xlsx\";\r\n\r\n@Component({\r\n selector: 'app-dialog-container-year',\r\n templateUrl: './dialog-container-year.component.html',\r\n styles: []\r\n})\r\nexport class DialogContainerYearComponent implements OnInit, AfterViewInit {\r\n years: number[] = Array(10).fill(1).map((element, index) => new Date().getFullYear() + 5 - index);\r\n periods: any[] = [\r\n { id: 1, title: \"6 tháng đầu năm\" },\r\n { id: 2, title: \"6 tháng cuối năm\" }\r\n ];\r\n selectType: number = 3;\r\n nameSheet: string = \"\";\r\n disBtn: boolean = true;\r\n name: string = 'Chưa chọn file'\r\n @Input('data') data: string;\r\n @ViewChild('dialog-container', { \r\n read: ViewContainerRef,\r\n static: true,\r\n }) dialogContainer: ViewContainerRef;\r\n\r\n componentRef: ComponentRef;\r\n isShowPeriod: boolean = false;\r\n reportTypes = [\r\n // { ma_so: null, noi_dung: '' }, \r\n // { ma_so: 1, noi_dung: 'Tháng' }, \r\n // { ma_so: 2, noi_dung: 'Quý' }, \r\n { ma_so: 3, noi_dung: '6 Tháng' },\r\n { ma_so: 4, noi_dung: 'Năm' }\r\n ];\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n public dialog: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) dataDialog\r\n ) { \r\n this.nameSheet = dataDialog['nameSheet']\r\n }\r\n\r\n ngOnInit() {\r\n this.dialogService.close$.subscribe(reason => {\r\n this.dialogContainer.clear();\r\n\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n }\r\n });\r\n\r\n this.changeReportType();\r\n this.changePeriod();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n }\r\n }\r\n\r\n renderComponent() {\r\n const container = this.dialogContainer;\r\n container.clear();\r\n const injector = container.injector;\r\n\r\n const cfr: ComponentFactoryResolver = injector.get(ComponentFactoryResolver);\r\n\r\n const componentFactory = cfr.resolveComponentFactory(DialogContainerYearComponent);\r\n\r\n const componentRef = container.createComponent(componentFactory, 0, injector);\r\n componentRef.changeDetectorRef.detectChanges();\r\n this.componentRef = componentRef;\r\n this.data = this.componentRef.instance.data;\r\n }\r\n\r\n uploadExcel(e){\r\n console.log(e);\r\n this.name = e.target.files[0].name;\r\n this.handleFile(e);\r\n }\r\n\r\n public handleFile(e) {\r\n\r\n /* wire up file reader */\r\n const target: any = (e.target);\r\n if (target.files.length !== 1) {\r\n throw new Error('Cannot use multiple files');\r\n }\r\n let reader: FileReader = new FileReader();\r\n reader.readAsBinaryString(target.files[0]);\r\n reader.onload = (e: any) => {\r\n /* create workbook */\r\n const binarystr: string = e.target.result;\r\n const wb: XLSX.WorkBook = XLSX.read(binarystr, { type: 'binary' });\r\n\r\n /* selected the first sheet */\r\n const ws: XLSX.WorkSheet = wb.Sheets[this.nameSheet];\r\n\r\n // data ws to json format\r\n let data = XLSX.utils.sheet_to_json(ws);\r\n \r\n // set data to service object\r\n this.dialogService.setDataTransformer(data);\r\n };\r\n }\r\n\r\n save(){\r\n this.dialogService.getDataTransform() ? this.dialog.close(this.time_id) : this.dialog.close(false);\r\n }\r\n\r\n\r\n changeReportType() {\r\n console.log(this.selectType);\r\n\r\n switch (this.selectType) {\r\n // case 1:\r\n // this.periods = this.months;\r\n // break;\r\n // case 2:\r\n // this.periods = this.quarters;\r\n // break;\r\n case 3: \r\n this.changePeriod();\r\n this.isShowPeriod = true;\r\n break;\r\n case 4: \r\n this.changePeriod();\r\n this.isShowPeriod = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n // this.tempObject.time_id = null;\r\n // this.selectedPeriod = null;\r\n }\r\n\r\n time_id: number = 0;\r\n selectedYear: number = new Date().getFullYear();\r\n selectedPeriod: number = new Date().getMonth() + 1 > 6 ? 2 : 1;\r\n changePeriod() {\r\n switch (this.selectType) {\r\n case 1:\r\n this.time_id = this.selectedYear * 100 + this.selectedPeriod;\r\n break;\r\n case 2:\r\n this.time_id = Number(this.selectedYear + this.selectedPeriod.toString());\r\n break;\r\n case 3:\r\n // this.time_id = Number(this.selectedYear + this.selectedPeriod.toString());;\r\n this.time_id = this.selectedYear;\r\n break;\r\n case 4:\r\n this.time_id = this.selectedYear;\r\n break;\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, Component, ComponentFactoryResolver, ComponentRef, Inject, Input, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DialogService } from 'src/app/_services/injectable-service/dialog.service';\r\nimport * as XLSX from \"xlsx\";\r\n\r\n@Component({\r\n selector: 'app-dialog-container',\r\n templateUrl: './dialog-container.component.html',\r\n styles: []\r\n})\r\nexport class DialogContainerComponent implements OnInit, AfterViewInit {\r\n years: number[] = Array(10).fill(1).map((element, index) => new Date().getFullYear() + 5 - index);\r\n periods: any[] = [\r\n { id: 1, title: \"6 tháng đầu năm\" },\r\n { id: 2, title: \"6 tháng cuối năm\" }\r\n ];\r\n selectType: number = 3;\r\n nameSheet: string = \"\";\r\n disBtn: boolean = true;\r\n name: string = 'Chưa chọn file'\r\n @Input('data') data: string;\r\n @ViewChild('dialog-container', { \r\n read: ViewContainerRef,\r\n static: true,\r\n }) dialogContainer: ViewContainerRef;\r\n\r\n componentRef: ComponentRef;\r\n isShowPeriod: boolean = false;\r\n reportTypes = [\r\n // { ma_so: null, noi_dung: '' }, \r\n // { ma_so: 1, noi_dung: 'Tháng' }, \r\n // { ma_so: 2, noi_dung: 'Quý' }, \r\n { ma_so: 3, noi_dung: '6 Tháng' },\r\n { ma_so: 4, noi_dung: 'Năm' }\r\n ];\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n public dialog: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) dataDialog\r\n ) { \r\n this.nameSheet = dataDialog['nameSheet']\r\n }\r\n\r\n ngOnInit() {\r\n this.dialogService.close$.subscribe(reason => {\r\n this.dialogContainer.clear();\r\n\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n }\r\n });\r\n\r\n this.changeReportType();\r\n this.changePeriod();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n }\r\n }\r\n\r\n renderComponent() {\r\n const container = this.dialogContainer;\r\n container.clear();\r\n const injector = container.injector;\r\n\r\n const cfr: ComponentFactoryResolver = injector.get(ComponentFactoryResolver);\r\n\r\n const componentFactory = cfr.resolveComponentFactory(DialogContainerComponent);\r\n\r\n const componentRef = container.createComponent(componentFactory, 0, injector);\r\n componentRef.changeDetectorRef.detectChanges();\r\n this.componentRef = componentRef;\r\n this.data = this.componentRef.instance.data;\r\n }\r\n\r\n uploadExcel(e){\r\n console.log(e);\r\n this.name = e.target.files[0].name;\r\n this.handleFile(e);\r\n }\r\n\r\n public handleFile(e) {\r\n\r\n /* wire up file reader */\r\n const target: any = (e.target);\r\n if (target.files.length !== 1) {\r\n throw new Error('Cannot use multiple files');\r\n }\r\n let reader: FileReader = new FileReader();\r\n reader.readAsBinaryString(target.files[0]);\r\n reader.onload = (e: any) => {\r\n /* create workbook */\r\n const binarystr: string = e.target.result;\r\n const wb: XLSX.WorkBook = XLSX.read(binarystr, { type: 'binary' });\r\n\r\n /* selected the first sheet */\r\n const ws: XLSX.WorkSheet = wb.Sheets[this.nameSheet];\r\n\r\n // data ws to json format\r\n let data = XLSX.utils.sheet_to_json(ws);\r\n \r\n // set data to service object\r\n this.dialogService.setDataTransformer(data);\r\n };\r\n }\r\n\r\n save(){\r\n console.log(this.dialogService.getDataTransform())\r\n this.dialogService.getDataTransform() ? this.dialog.close(this.time_id) : this.dialog.close(false);\r\n }\r\n\r\n\r\n changeReportType() {\r\n console.log(this.selectType);\r\n\r\n switch (this.selectType) {\r\n // case 1:\r\n // this.periods = this.months;\r\n // break;\r\n // case 2:\r\n // this.periods = this.quarters;\r\n // break;\r\n case 3: \r\n this.changePeriod();\r\n this.isShowPeriod = true;\r\n break;\r\n case 4: \r\n this.changePeriod();\r\n this.isShowPeriod = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n // this.tempObject.time_id = null;\r\n // this.selectedPeriod = null;\r\n }\r\n\r\n time_id: number = 0;\r\n selectedYear: number = new Date().getFullYear();\r\n selectedPeriod: number = new Date().getMonth() + 1 > 6 ? 2 : 1;\r\n changePeriod() {\r\n switch (this.selectType) {\r\n case 1:\r\n this.time_id = this.selectedYear * 100 + this.selectedPeriod;\r\n break;\r\n case 2:\r\n this.time_id = Number(this.selectedYear + this.selectedPeriod.toString());\r\n break;\r\n case 3:\r\n this.time_id = Number(this.selectedYear + this.selectedPeriod.toString());;\r\n break;\r\n case 4:\r\n this.time_id = this.selectedYear;\r\n break;\r\n }\r\n }\r\n}\r\n","export default \"#footer {\\n background: linear-gradient(to right, #0062dc, #38ade4);\\n min-height: 470px;\\n}\\n@media only screen and (max-width: 993px) {\\n #footer {\\n min-height: 600px;\\n }\\n}\\n@media only screen and (max-width: 768px) {\\n #footer {\\n min-height: 820px;\\n }\\n}\\n#footer a {\\n color: white;\\n font-size: 14px;\\n}\\n#footer b {\\n font-size: 14px;\\n}\\n#footer span {\\n font-size: 14px;\\n}\\n#footer ul {\\n list-style-type: none;\\n padding: 0;\\n}\\n#footer ul li:not(:last-child) {\\n margin-bottom: 3px;\\n}\\n#footer .mat-icon {\\n line-height: inherit;\\n display: table-caption;\\n}\\n#footer .footer-content {\\n color: white;\\n padding-top: 30px;\\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\\n}\\n#footer .footer-content .main-info {\\n padding-right: 20px;\\n}\\n#footer .footer-content .main-info h3 {\\n color: #ffee69;\\n line-height: 1.4;\\n}\\n#footer .footer-content .main-info .address {\\n margin-top: 15px;\\n}\\n#footer .signature {\\n color: white;\\n text-align: center;\\n font-size: 13px;\\n padding-top: 15px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2Zvb3Rlci9FOlxcTUlMQlBcXE1JTEJQXFxpbmR1c3RyaWFsLWFuZC1jb21tZXJjaWFsLWZhY2lsaXRpZXMvc3JjXFxhcHBcXHNoYXJlZFxcZm9vdGVyXFxjdXN0b20tZm9vdGVyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9zaGFyZWQvZm9vdGVyL2N1c3RvbS1mb290ZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx1REFBQTtFQUNBLGlCQUFBO0FDQ0o7QURFSTtFQUxKO0lBTVEsaUJBQUE7RUNDTjtBQUNGO0FEQ0k7RUFUSjtJQVVRLGlCQUFBO0VDRU47QUFDRjtBREFJO0VBQ0ksWUFBQTtFQUNBLGVBQUE7QUNFUjtBRENJO0VBQ0ksZUFBQTtBQ0NSO0FERUk7RUFDSSxlQUFBO0FDQVI7QURJSTtFQUNJLHFCQUFBO0VBQ0EsVUFBQTtBQ0ZSO0FESVE7RUFDSSxrQkFBQTtBQ0ZaO0FETUk7RUFDSSxvQkFBQTtFQUNBLHNCQUFBO0FDSlI7QURPSTtFQUNJLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGtEQUFBO0FDTFI7QURPUTtFQUNJLG1CQUFBO0FDTFo7QURNWTtFQUNJLGNBQUE7RUFDQSxnQkFBQTtBQ0poQjtBRE9ZO0VBQ0ksZ0JBQUE7QUNMaEI7QURvQkk7RUFDSSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7QUNsQlIiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvZm9vdGVyL2N1c3RvbS1mb290ZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjZm9vdGVyIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwjMDA2MmRjLCMzOGFkZTQpO1xyXG4gICAgbWluLWhlaWdodDogNDcwcHg7XHJcbiAgICAvLyBoZWlnaHQ6IGF1dG87XHJcblxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTNweCkge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDYwMHB4XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDgyMHB4XHJcbiAgICB9XHJcblxyXG4gICAgYSB7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIH1cclxuXHJcbiAgICBiIHtcclxuICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICB9XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICB1bCB7XHJcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgICAgIGxpOm5vdCg6bGFzdC1jaGlsZCkgeyBcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4OyAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tYXQtaWNvbiB7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2FwdGlvblxyXG4gICAgfVxyXG5cclxuICAgIC5mb290ZXItY29udGVudCB7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAzMHB4O1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpO1xyXG5cclxuICAgICAgICAubWFpbi1pbmZvIHtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcclxuICAgICAgICAgICAgaDMge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmVlNjk7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuYWRkcmVzcyB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC5jb250YWN0IHtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYWNjZXNzIHtcclxuICAgICAgICAgICAgLmFjY2Vzcy1pbmZvIHtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaWduYXR1cmUge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAxNXB4O1xyXG4gICAgfVxyXG59ICIsIiNmb290ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwMDYyZGMsICMzOGFkZTQpO1xuICBtaW4taGVpZ2h0OiA0NzBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkzcHgpIHtcbiAgI2Zvb3RlciB7XG4gICAgbWluLWhlaWdodDogNjAwcHg7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI2Zvb3RlciB7XG4gICAgbWluLWhlaWdodDogODIwcHg7XG4gIH1cbn1cbiNmb290ZXIgYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuI2Zvb3RlciBiIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuI2Zvb3RlciBzcGFuIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuI2Zvb3RlciB1bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cbiNmb290ZXIgdWwgbGk6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbn1cbiNmb290ZXIgLm1hdC1pY29uIHtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IHRhYmxlLWNhcHRpb247XG59XG4jZm9vdGVyIC5mb290ZXItY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuI2Zvb3RlciAuZm9vdGVyLWNvbnRlbnQgLm1haW4taW5mbyB7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG4jZm9vdGVyIC5mb290ZXItY29udGVudCAubWFpbi1pbmZvIGgzIHtcbiAgY29sb3I6ICNmZmVlNjk7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG4jZm9vdGVyIC5mb290ZXItY29udGVudCAubWFpbi1pbmZvIC5hZGRyZXNzIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbiNmb290ZXIgLnNpZ25hdHVyZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmctdG9wOiAxNXB4O1xufSJdfQ== */\"","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { SidebarService } from '../../_services/sidebar.service';\r\nimport { LoginService } from 'src/app/_services/APIService/login.service';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./custom-footer.component.scss'],\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n constructor(\r\n public _sidebarService: SidebarService,\r\n public _loginService: LoginService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getIP();\r\n }\r\n\r\n getIP() {\r\n this._sidebarService.getIPAddress().subscribe((res: any) => {\r\n if (this._loginService.userValue.user_role_id == 0) {\r\n this.CountAccess(res.ip)\r\n }\r\n else {\r\n this.CountAccess('')\r\n }\r\n });\r\n }\r\n\r\n tong_luot_truy_cap: number\r\n so_luot_truy_cap_nam: number\r\n so_luot_truy_cap_thang: number\r\n so_luot_truy_cap_ngay: number\r\n\r\n public CountAccess(ip: string) {\r\n this._sidebarService.CountAccess(ip).subscribe(\r\n all => {\r\n this.tong_luot_truy_cap = all.data.tong_luot_truy_cap\r\n this.so_luot_truy_cap_nam = all.data.so_luot_truy_cap_nam\r\n this.so_luot_truy_cap_thang = all.data.so_luot_truy_cap_thang\r\n this.so_luot_truy_cap_ngay = all.data.so_luot_truy_cap_ngay\r\n }\r\n )\r\n }\r\n\r\n}\r\n","export default \".example-spacer {\\n flex: 1 1 auto;\\n}\\n\\nmat-toolbar {\\n position: -webkit-sticky;\\n position: sticky;\\n z-index: 10;\\n top: 0px;\\n background-color: white;\\n color: #1f7ed0;\\n height: 48px;\\n}\\n\\n.button-control {\\n background-color: #1f7ed0;\\n color: white;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2hlYWRlci9FOlxcTUlMQlBcXE1JTEJQXFxpbmR1c3RyaWFsLWFuZC1jb21tZXJjaWFsLWZhY2lsaXRpZXMvc3JjXFxhcHBcXHNoYXJlZFxcaGVhZGVyXFxoZWFkZXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsY0FBQTtBQ0NGOztBREVBO0VBQ0Usd0JBQUE7RUFBQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxRQUFBO0VBQ0EsdUJBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtBQ0NGOztBREVBO0VBQ0UseUJBQUE7RUFDQSxZQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5leGFtcGxlLXNwYWNlciB7XHJcbiAgZmxleDogMSAxIGF1dG87XHJcbn1cclxuXHJcbm1hdC10b29sYmFyIHtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gIHotaW5kZXg6IDEwO1xyXG4gIHRvcDogMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gIGNvbG9yOiAjMWY3ZWQwO1xyXG4gIGhlaWdodDogNDhweDtcclxufVxyXG5cclxuLmJ1dHRvbi1jb250cm9sIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWY3ZWQwO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG4iLCIuZXhhbXBsZS1zcGFjZXIge1xuICBmbGV4OiAxIDEgYXV0bztcbn1cblxubWF0LXRvb2xiYXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB6LWluZGV4OiAxMDtcbiAgdG9wOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogIzFmN2VkMDtcbiAgaGVpZ2h0OiA0OHB4O1xufVxuXG4uYnV0dG9uLWNvbnRyb2wge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWY3ZWQwO1xuICBjb2xvcjogd2hpdGU7XG59Il19 */\"","//import Library ---------------------------------------------------------------------\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Component, OnInit, Input, HostListener, Output, Inject } from '@angular/core';\r\nimport { MatSidenav } from '@angular/material';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\n//Import Service---------------------------------------------------------------------\r\nimport { LinkModel } from 'src/app/_models/link.model';\r\nimport { BreadCrumService } from 'src/app/_services/injectable-service/breadcrums.service';\r\nimport { LoginService } from '../../_services/APIService/login.service';\r\nimport { EventService } from '../services/evenet.service';\r\nimport { filter } from 'rxjs/operators';\r\n//Import Model------------------------------------------------- --------------------\r\n\r\nclass Node{\r\n next: Node;\r\n constructor(public data: T) {\r\n }\r\n}\r\n\r\nexport class Queue {\r\n head: Node;\r\n tail: Node;\r\n\r\n constructor() {\r\n this.head = this.tail = null;\r\n }\r\n\r\n enqueue(data: T): void {\r\n const node = new Node(data);\r\n\r\n if (this.isEmpty()) {\r\n this.head = this.tail = node;\r\n return;\r\n }\r\n\r\n this.tail.next = node;\r\n this.tail = node;\r\n }\r\n\r\n dequeue(): T {\r\n if (this.isEmpty()) {\r\n return null;\r\n }\r\n\r\n const data = this.head.data;\r\n\r\n if (this.tail === this.head) {\r\n this.head = this.tail = null;\r\n } else {\r\n this.head = this.head.next;\r\n }\r\n\r\n return data;\r\n }\r\n\r\n isEmpty() {\r\n return this.head === null;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n\r\n //Constant---------------------------------------------------------------------\r\n public readonly AVATAR_DEFAULT: string = \"../../../assets/img/avatars/1.jpg\";\r\n //Variable for HTML & TS---------------------------------------------------------------------\r\n public breadcrumbs: Queue = new Queue();\r\n public link: LinkModel = new LinkModel();\r\n //Variable for only TS---------------------------------------------------------------------\r\n private _previousUrl: string;\r\n //Input & Viewchild---------------------------------------------------------------------\r\n // @Input() link: LinkModel = new LinkModel();\r\n //Contructor & Oninit---------------------------------------------------------------------\r\n constructor(\r\n public _router: Router,\r\n private _breadCrumService: BreadCrumService,\r\n private _location: Location,\r\n @Inject(DOCUMENT) private document: Document\r\n ) {\r\n this.link.title = \"\";\r\n _router.events\r\n .pipe(filter(event => event instanceof NavigationEnd))\r\n .subscribe((event: NavigationEnd) => {\r\n this._previousUrl = event.url;\r\n });\r\n }\r\n ngOnInit() {\r\n this._breadCrumService.link$.subscribe(\r\n linkPass => {\r\n this.link = linkPass;\r\n }\r\n )\r\n }\r\n @HostListener('window:scroll', [])\r\n\r\n onWindowScroll() {\r\n var header = document.getElementById(\"myHeader\");\r\n var sticky = header.offsetTop;\r\n if (window.pageYOffset > sticky) {\r\n header.classList.add(\"sticky\");\r\n } else {\r\n header.classList.remove(\"sticky\");\r\n }\r\n }\r\n //Functin for HTML event---------------------------------------------------------------------\r\n public back(): void {\r\n // this._router.navigate([ this._previousUrl]);\r\n this._location.back();\r\n }\r\n}\r\n","export * from './footer/footer.component';\r\nexport * from './topbar/topbar.component';\r\nexport * from './page-not-found/page-not-found.component';\r\nexport * from './loader/loader.component';\r\nexport * from './loader/loader.service';\r\nexport * from './loader/loader.interceptor';\r\nexport * from './sidebar/sidebar.component';\r\n","export default \".hot {\\n color: white;\\n text-align: center;\\n font-size: 150%;\\n}\\n\\n::ng-deep snack-bar-container.error {\\n padding: 20px;\\n background-color: red;\\n color: white;\\n}\\n\\n::ng-deep snack-bar-container.success {\\n padding: 20px;\\n background-color: green;\\n color: white;\\n}\\n\\n::ng-deep snack-bar-container.warning {\\n padding: 20px;\\n background-color: yellow;\\n color: black;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2luZm9ybWF0aW9uL0U6XFxNSUxCUFxcTUlMQlBcXGluZHVzdHJpYWwtYW5kLWNvbW1lcmNpYWwtZmFjaWxpdGllcy9zcmNcXGFwcFxcc2hhcmVkXFxpbmZvcm1hdGlvblxcaW5mb3JtYXRpb24uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9pbmZvcm1hdGlvbi9pbmZvcm1hdGlvbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7QUNDSjs7QURDQTtFQUNJLGFBQUE7RUFDQSxxQkFBQTtFQUNBLFlBQUE7QUNFSjs7QURDRTtFQUNFLGFBQUE7RUFDQSx1QkFBQTtFQUNBLFlBQUE7QUNFSjs7QURFRTtFQUNFLGFBQUE7RUFDQSx3QkFBQTtFQUNBLFlBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9pbmZvcm1hdGlvbi9pbmZvcm1hdGlvbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5ob3Qge1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZm9udC1zaXplOiAxNTAlO1xyXG59XHJcbjo6bmctZGVlcCBzbmFjay1iYXItY29udGFpbmVyLmVycm9ye1xyXG4gICAgcGFkZGluZzogMjBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICB9XHJcblxyXG4gIDo6bmctZGVlcCBzbmFjay1iYXItY29udGFpbmVyLnN1Y2Nlc3N7XHJcbiAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgfVxyXG5cclxuICBcclxuICA6Om5nLWRlZXAgc25hY2stYmFyLWNvbnRhaW5lci53YXJuaW5ne1xyXG4gICAgcGFkZGluZzogMjBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcclxuICAgIGNvbG9yOiBibGFjaztcclxuICB9IiwiLmhvdCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDE1MCU7XG59XG5cbjo6bmctZGVlcCBzbmFjay1iYXItY29udGFpbmVyLmVycm9yIHtcbiAgcGFkZGluZzogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbjo6bmctZGVlcCBzbmFjay1iYXItY29udGFpbmVyLnN1Y2Nlc3Mge1xuICBwYWRkaW5nOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG46Om5nLWRlZXAgc25hY2stYmFyLWNvbnRhaW5lci53YXJuaW5nIHtcbiAgcGFkZGluZzogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xuICBjb2xvcjogYmxhY2s7XG59Il19 */\"","import {Component, Input, OnInit, Directive, NgModule} from '@angular/core';\r\nimport { NgModel } from '@angular/forms';\r\n/**\r\n * @title Snack-bar with a custom component\r\n */\r\n\r\n@Component({\r\n selector: 'app-information',\r\n templateUrl: 'information.component.html',\r\n styleUrls: ['information.component.scss']\r\n})\r\n\r\nexport class InformationComponent implements OnInit {\r\n @Input() message: string;\r\n constructor() { }\r\n ngOnInit() {\r\n }\r\n}\r\n/** Copyright 2019 Google LLC. All Rights Reserved.\r\n Use of this source code is governed by an MIT-style license that\r\n can be found in the LICENSE file at http://angular.io/license */","import { MatSnackBar, MatSnackBarConfig, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { Injectable } from '@angular/core';\r\nimport { InformationComponent } from './information.component';\r\n\r\n@Injectable()\r\nexport class InformationService {\r\n public readonly DURING_SECOND = 2;\r\n public readonly PANEL_SUCCESS = \"success\";\r\n public readonly PANEL_WARNING = \"warning\";\r\n public readonly PANEL_ERROR = \"error\";\r\n message: string;\r\n\r\n constructor(public _snackBar: MatSnackBar) {\r\n }\r\n\r\n public openSnackBar(message: string, panelClass: string) {\r\n this.message = message;\r\n const snackBar = this._snackBar.openFromComponent(InformationComponent, {\r\n duration: this.DURING_SECOND * 1000,\r\n panelClass: [panelClass]\r\n });\r\n snackBar.instance.message = message;\r\n }\r\n\r\n public msgSuccess(message) {\r\n this.openSnackBar(message, this.PANEL_SUCCESS);\r\n }\r\n\r\n public msgWaring(message) {\r\n this.openSnackBar(message, this.PANEL_WARNING);\r\n }\r\n\r\n public msgError(message) {\r\n this.openSnackBar(message, this.PANEL_ERROR);\r\n }\r\n}\r\n","export default \".overlay {\\n position: fixed;\\n display: block;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n background-color: rgba(74, 74, 74, 0.6);\\n z-index: 99999;\\n}\\n\\n.spinner {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2xvYWRlci9FOlxcTUlMQlBcXE1JTEJQXFxpbmR1c3RyaWFsLWFuZC1jb21tZXJjaWFsLWZhY2lsaXRpZXMvc3JjXFxhcHBcXHNoYXJlZFxcbG9hZGVyXFxsb2FkZXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsdUNBQUE7RUFDQSxjQUFBO0FDQ0Y7O0FERUE7RUFDRSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsZ0NBQUE7QUNDRiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm92ZXJsYXkge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NCwgNzQsIDc0LCAwLjYpO1xyXG4gIHotaW5kZXg6IDk5OTk5O1xyXG59XHJcblxyXG4uc3Bpbm5lciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNTAlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxufVxyXG4iLCIub3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NCwgNzQsIDc0LCAwLjYpO1xuICB6LWluZGV4OiA5OTk5OTtcbn1cblxuLnNwaW5uZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { LoaderService } from './loader.service';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.scss']\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n\r\n constructor(public loaderService: LoaderService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n get isLoading(): Subject { return this.loaderService.isLoading; }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { finalize, catchError, delay } from 'rxjs/operators';\r\n\r\nimport { MessageService } from 'primeng/api';\r\nimport { LoaderService } from './loader.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderInterceptor implements HttpInterceptor {\r\n\r\n constructor(public loaderService: LoaderService, public messageService: MessageService) { }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n this.messageService.clear();\r\n this.loaderService.show();\r\n return next.handle(req).pipe(\r\n delay(500),\r\n finalize(() => {\r\n this.loaderService.hide();\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n if (error.status >= 500) {\r\n this.messageService.add({\r\n severity: 'error',\r\n summary: 'Error inesperado',\r\n detail: 'Intentelo nuevamente mas tarde. (' + error.error.error_description + ')',\r\n life: 10000,\r\n });\r\n }\r\n else{\r\n if (error.status == 401){\r\n this.loaderService.hide();\r\n this.messageService.add({\r\n severity: 'error',\r\n summary: 'Hết phiên đăng nhập',\r\n detail: 'Lỗi. (' + error.error.error_description + ')',\r\n life: 10000,\r\n });\r\n }\r\n }\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n isLoading = new Subject();\r\n\r\n constructor() { }\r\n\r\n show() {\r\n this.isLoading.next(true);\r\n }\r\n\r\n hide() {\r\n this.isLoading.next(false);\r\n }\r\n}\r\n","export default \"* {\\n box-sizing: border-box;\\n}\\n\\nbody {\\n padding: 0;\\n margin: 0;\\n}\\n\\n#notfound {\\n position: relative;\\n height: 100vh;\\n}\\n\\n#notfound .notfound-bg {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n background-image: url('bg404.jpg');\\n background-size: cover;\\n}\\n\\n#notfound .notfound-bg:after {\\n content: \\\"\\\";\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.25);\\n}\\n\\n#notfound .notfound {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n}\\n\\n#notfound .notfound:after {\\n content: \\\"\\\";\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n width: 100%;\\n height: 600px;\\n background-color: rgba(255, 255, 255, 0.7);\\n box-shadow: 0px 0px 0px 30px rgba(255, 255, 255, 0.7) inset;\\n z-index: -1;\\n}\\n\\n.notfound {\\n max-width: 600px;\\n width: 100%;\\n text-align: center;\\n padding: 30px;\\n line-height: 1.4;\\n}\\n\\n.notfound .notfound-404 {\\n position: relative;\\n height: 200px;\\n}\\n\\n.notfound .notfound-404 h1 {\\n font-family: \\\"Passion One\\\", cursive;\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n font-size: 220px;\\n margin: 0px;\\n color: #222225;\\n text-transform: uppercase;\\n}\\n\\n.notfound h2 {\\n font-family: \\\"Muli\\\", sans-serif;\\n font-size: 26px;\\n font-weight: 400;\\n text-transform: uppercase;\\n color: #222225;\\n margin-top: 26px;\\n margin-bottom: 20px;\\n}\\n\\n.notfound-search {\\n position: relative;\\n padding-right: 120px;\\n max-width: 420px;\\n width: 100%;\\n margin: 30px auto 20px;\\n}\\n\\n.notfound-search input {\\n font-family: \\\"Muli\\\", sans-serif;\\n width: 100%;\\n height: 40px;\\n padding: 3px 15px;\\n color: #fff;\\n font-weight: 400;\\n font-size: 18px;\\n background: #222225;\\n border: none;\\n}\\n\\n.notfound-search button {\\n font-family: \\\"Muli\\\", sans-serif;\\n position: absolute;\\n right: 0px;\\n top: 0px;\\n width: 120px;\\n height: 40px;\\n text-align: center;\\n border: none;\\n background: #ff00b4;\\n cursor: pointer;\\n padding: 0;\\n color: #fff;\\n font-weight: 400;\\n font-size: 16px;\\n text-transform: uppercase;\\n}\\n\\n.notfound a {\\n font-family: \\\"Muli\\\", sans-serif;\\n display: inline-block;\\n font-weight: 400;\\n text-decoration: none;\\n background-color: transparent;\\n color: #222225;\\n text-transform: uppercase;\\n font-size: 14px;\\n}\\n\\n.notfound-social {\\n margin-bottom: 15px;\\n}\\n\\n.notfound-social > a {\\n display: inline-block;\\n height: 40px;\\n line-height: 40px;\\n width: 40px;\\n font-size: 14px;\\n color: #fff;\\n background-color: #222225;\\n margin: 3px;\\n transition: 0.2s all;\\n}\\n\\n.notfound-social > a:hover {\\n color: #fff;\\n background-color: #ff00b4;\\n}\\n\\n@media only screen and (max-width: 480px) {\\n .notfound .notfound-404 {\\n height: 146px;\\n }\\n\\n .notfound .notfound-404 h1 {\\n font-size: 146px;\\n }\\n\\n .notfound h2 {\\n font-size: 22px;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3BhZ2Utbm90LWZvdW5kL0U6XFxNSUxCUFxcTUlMQlBcXGluZHVzdHJpYWwtYW5kLWNvbW1lcmNpYWwtZmFjaWxpdGllcy9zcmNcXGFwcFxcc2hhcmVkXFxwYWdlLW5vdC1mb3VuZFxccGFnZS1ub3QtZm91bmQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9wYWdlLW5vdC1mb3VuZC9wYWdlLW5vdC1mb3VuZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUVZLHNCQUFBO0FDQ1o7O0FERUU7RUFDRSxVQUFBO0VBQ0EsU0FBQTtBQ0NKOztBREVFO0VBQ0Usa0JBQUE7RUFDQSxhQUFBO0FDQ0o7O0FERUU7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esa0NBQUE7RUFDQSxzQkFBQTtBQ0NKOztBREVFO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxxQ0FBQTtBQ0NKOztBREVFO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUdRLGdDQUFBO0FDQ1o7O0FERUU7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUdRLGdDQUFBO0VBQ1IsV0FBQTtFQUNBLGFBQUE7RUFDQSwwQ0FBQTtFQUVRLDJEQUFBO0VBQ1IsV0FBQTtBQ0NKOztBREVFO0VBQ0UsZ0JBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0EsZ0JBQUE7QUNDSjs7QURFRTtFQUNFLGtCQUFBO0VBQ0EsYUFBQTtBQ0NKOztBREVFO0VBQ0UsbUNBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxRQUFBO0VBR1EsZ0NBQUE7RUFDUixnQkFBQTtFQUNBLFdBQUE7RUFDQSxjQUFBO0VBQ0EseUJBQUE7QUNDSjs7QURFRTtFQUNFLCtCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EseUJBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtBQ0NKOztBREVFO0VBQ0Usa0JBQUE7RUFDQSxvQkFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLHNCQUFBO0FDQ0o7O0FERUU7RUFDRSwrQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUU7RUFDRSwrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFFBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EseUJBQUE7QUNDSjs7QURFRTtFQUNFLCtCQUFBO0VBQ0EscUJBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0VBQ0EsNkJBQUE7RUFDQSxjQUFBO0VBQ0EseUJBQUE7RUFDQSxlQUFBO0FDQ0o7O0FERUU7RUFDRSxtQkFBQTtBQ0NKOztBRENFO0VBQ0UscUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSx5QkFBQTtFQUNBLFdBQUE7RUFFQSxvQkFBQTtBQ0VKOztBREFFO0VBQ0UsV0FBQTtFQUNBLHlCQUFBO0FDR0o7O0FEQUU7RUFDRTtJQUNFLGFBQUE7RUNHSjs7RURBRTtJQUNFLGdCQUFBO0VDR0o7O0VEQUU7SUFDRSxlQUFBO0VDR0o7QUFDRiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9wYWdlLW5vdC1mb3VuZC9wYWdlLW5vdC1mb3VuZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIioge1xyXG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIH1cclxuICBcclxuICBib2R5IHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG4gIFxyXG4gICNub3Rmb3VuZCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDEwMHZoO1xyXG4gIH1cclxuICBcclxuICAjbm90Zm91bmQgLm5vdGZvdW5kLWJnIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi8uLi9hc3NldHMvaW1nL2JhY2tncm91bmQvYmc0MDQuanBnJyk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIH1cclxuICBcclxuICAjbm90Zm91bmQgLm5vdGZvdW5kLWJnOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xyXG4gIH1cclxuICBcclxuICAjbm90Zm91bmQgLm5vdGZvdW5kIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gIH1cclxuICBcclxuICAjbm90Zm91bmQgLm5vdGZvdW5kOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUgLCAtNTAlKTtcclxuICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSAsIC01MCUpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlICwgLTUwJSk7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogNjAwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggMHB4IDMwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIGluc2V0O1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAzMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSBpbnNldDtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gIH1cclxuICBcclxuICAubm90Zm91bmQge1xyXG4gICAgbWF4LXdpZHRoOiA2MDBweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMzBweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgfVxyXG4gIFxyXG4gIC5ub3Rmb3VuZCAubm90Zm91bmQtNDA0IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGhlaWdodDogMjAwcHg7XHJcbiAgfVxyXG4gIFxyXG4gIC5ub3Rmb3VuZCAubm90Zm91bmQtNDA0IGgxIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnUGFzc2lvbiBPbmUnLCBjdXJzaXZlO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICBmb250LXNpemU6IDIyMHB4O1xyXG4gICAgbWFyZ2luOiAwcHg7XHJcbiAgICBjb2xvcjogIzIyMjIyNTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgfVxyXG4gIFxyXG4gIC5ub3Rmb3VuZCBoMiB7XHJcbiAgICBmb250LWZhbWlseTogJ011bGknLCBzYW5zLXNlcmlmO1xyXG4gICAgZm9udC1zaXplOiAyNnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBjb2xvcjogIzIyMjIyNTtcclxuICAgIG1hcmdpbi10b3A6IDI2cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIH1cclxuICBcclxuICAubm90Zm91bmQtc2VhcmNoIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDEyMHB4O1xyXG4gICAgbWF4LXdpZHRoOiA0MjBweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiAzMHB4IGF1dG8gMjBweDtcclxuICB9XHJcbiAgXHJcbiAgLm5vdGZvdW5kLXNlYXJjaCBpbnB1dCB7XHJcbiAgICBmb250LWZhbWlseTogJ011bGknLCBzYW5zLXNlcmlmO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICBwYWRkaW5nOiAzcHggMTVweDtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIGJhY2tncm91bmQ6ICMyMjIyMjU7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgfVxyXG4gIFxyXG4gIC5ub3Rmb3VuZC1zZWFyY2ggYnV0dG9uIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnTXVsaScsIHNhbnMtc2VyaWY7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMHB4O1xyXG4gICAgdG9wOiAwcHg7XHJcbiAgICB3aWR0aDogMTIwcHg7XHJcbiAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmYwMGI0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgfVxyXG4gIFxyXG4gIC5ub3Rmb3VuZCBhIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnTXVsaScsIHNhbnMtc2VyaWY7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBjb2xvcjogIzIyMjIyNTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgfVxyXG4gIFxyXG4gIC5ub3Rmb3VuZC1zb2NpYWwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICB9XHJcbiAgLm5vdGZvdW5kLXNvY2lhbD5hIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGhlaWdodDogNDBweDtcclxuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gICAgd2lkdGg6IDQwcHg7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjIyMjU7XHJcbiAgICBtYXJnaW46IDNweDtcclxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogMC4ycyBhbGw7XHJcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbDtcclxuICB9XHJcbiAgLm5vdGZvdW5kLXNvY2lhbD5hOmhvdmVyIHtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDBiNDtcclxuICB9XHJcbiAgXHJcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xyXG4gICAgLm5vdGZvdW5kIC5ub3Rmb3VuZC00MDQge1xyXG4gICAgICBoZWlnaHQ6IDE0NnB4O1xyXG4gICAgfVxyXG4gIFxyXG4gICAgLm5vdGZvdW5kIC5ub3Rmb3VuZC00MDQgaDEge1xyXG4gICAgICBmb250LXNpemU6IDE0NnB4O1xyXG4gICAgfVxyXG4gIFxyXG4gICAgLm5vdGZvdW5kIGgyIHtcclxuICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgfVxyXG4gIH1cclxuICAiLCIqIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5ib2R5IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xufVxuXG4jbm90Zm91bmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwdmg7XG59XG5cbiNub3Rmb3VuZCAubm90Zm91bmQtYmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9pbWcvYmFja2dyb3VuZC9iZzQwNC5qcGdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbiNub3Rmb3VuZCAubm90Zm91bmQtYmc6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5cbiNub3Rmb3VuZCAubm90Zm91bmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbiNub3Rmb3VuZCAubm90Zm91bmQ6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDYwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDBweCAwcHggMzBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgaW5zZXQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDMwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIGluc2V0O1xuICB6LWluZGV4OiAtMTtcbn1cblxuLm5vdGZvdW5kIHtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLm5vdGZvdW5kIC5ub3Rmb3VuZC00MDQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMjAwcHg7XG59XG5cbi5ub3Rmb3VuZCAubm90Zm91bmQtNDA0IGgxIHtcbiAgZm9udC1mYW1pbHk6IFwiUGFzc2lvbiBPbmVcIiwgY3Vyc2l2ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBmb250LXNpemU6IDIyMHB4O1xuICBtYXJnaW46IDBweDtcbiAgY29sb3I6ICMyMjIyMjU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5ub3Rmb3VuZCBoMiB7XG4gIGZvbnQtZmFtaWx5OiBcIk11bGlcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogIzIyMjIyNTtcbiAgbWFyZ2luLXRvcDogMjZweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLm5vdGZvdW5kLXNlYXJjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1yaWdodDogMTIwcHg7XG4gIG1heC13aWR0aDogNDIwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDMwcHggYXV0byAyMHB4O1xufVxuXG4ubm90Zm91bmQtc2VhcmNoIGlucHV0IHtcbiAgZm9udC1mYW1pbHk6IFwiTXVsaVwiLCBzYW5zLXNlcmlmO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwYWRkaW5nOiAzcHggMTVweDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgYmFja2dyb3VuZDogIzIyMjIyNTtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4ubm90Zm91bmQtc2VhcmNoIGJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIk11bGlcIiwgc2Fucy1zZXJpZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMHB4O1xuICB0b3A6IDBweDtcbiAgd2lkdGg6IDEyMHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjZmYwMGI0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5ub3Rmb3VuZCBhIHtcbiAgZm9udC1mYW1pbHk6IFwiTXVsaVwiLCBzYW5zLXNlcmlmO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMjIyMjI1O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5ub3Rmb3VuZC1zb2NpYWwge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuXG4ubm90Zm91bmQtc29jaWFsID4gYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiA0MHB4O1xuICBsaW5lLWhlaWdodDogNDBweDtcbiAgd2lkdGg6IDQwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjIyMjU7XG4gIG1hcmdpbjogM3B4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IDAuMnMgYWxsO1xuICB0cmFuc2l0aW9uOiAwLjJzIGFsbDtcbn1cblxuLm5vdGZvdW5kLXNvY2lhbCA+IGE6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDBiNDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAubm90Zm91bmQgLm5vdGZvdW5kLTQwNCB7XG4gICAgaGVpZ2h0OiAxNDZweDtcbiAgfVxuXG4gIC5ub3Rmb3VuZCAubm90Zm91bmQtNDA0IGgxIHtcbiAgICBmb250LXNpemU6IDE0NnB4O1xuICB9XG5cbiAgLm5vdGZvdW5kIGgyIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gIH1cbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport {Location} from '@angular/common';\r\nimport { InformationService } from '../information/information.service';\r\n\r\n@Component({\r\n selector: 'app-page-not-found',\r\n templateUrl: './page-not-found.component.html',\r\n styleUrls: ['./page-not-found.component.scss']\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n constructor(public _location: Location, public info:InformationService,) \r\n {}\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n SendRequest(){\r\n this.info.msgWaring(\"Yêu cầu đã được gửi! Chúng tôi sẽ xem xét\");\r\n this._location.back();\r\n }\r\n\r\n GoBack(){\r\n this._location.back();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"filterByText\"\r\n})\r\nexport class FilterByTextPipe implements PipeTransform {\r\n transform(items: any, itemName:string, select?: any): any {\r\n if (select !== \"\") {\r\n return select\r\n ? items.filter(item => this.UnicodeToAZ(item[itemName].toLowerCase()).indexOf(this.UnicodeToAZ(select.toLowerCase()))> 0)\r\n : items;\r\n } else {\r\n return items;\r\n }\r\n }\r\n UnicodeToAZ(str:string){\r\n str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, \"a\");\r\n str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, \"e\");\r\n str = str.replace(/ì|í|ị|ỉ|ĩ/g, \"i\");\r\n str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, \"o\");\r\n str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, \"u\");\r\n str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, \"y\");\r\n str = str.replace(/đ/g, \"d\");\r\n return str;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'ZeroAsSub',\r\n })\r\n export class ZeroAsSubPipe implements PipeTransform {\r\n transform(value: any): string | null {\r\n if(!value) return \"-\";\r\n else if (value == 0) return \"-\";\r\n else return value.toString();\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'formatNumber'\r\n})\r\nexport class FormatNumberReportPipe implements PipeTransform {\r\n\r\n transform(value: any): string {\r\n if(typeof value === 'number'){\r\n value = value.toString();\r\n }\r\n if(value && value.trim() != \"-\"){\r\n value = value.toString().replace(',', '').replace(',', '').replace(',', '');\r\n return new Intl.NumberFormat('vi-VN', {\r\n minimumFractionDigits: 0\r\n }).format(Number(value));\r\n } else{\r\n return \"-\";\r\n }\r\n }\r\n\r\n}","import { Injectable, HostListener } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EventService {\r\n constructor() { }\r\n\r\n open: boolean = false;\r\n\r\n getValue() {\r\n return this.open;\r\n }\r\n setvalue(param) {\r\n this.open = param;\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\n\r\nimport { TopbarComponent } from './topbar/topbar.component';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { PageNotFoundComponent } from './page-not-found/page-not-found.component';\r\nimport { LoaderComponent } from './loader/loader.component';\r\nimport { MaterialModule } from '../material.module';\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\r\nimport { RouterModule } from '@angular/router';\r\nimport { SidebarComponent } from './sidebar/sidebar.component';\r\nimport { SidebarService } from '../_services/sidebar.service';\r\nimport { SimplebarAngularModule } from 'simplebar-angular';\r\nimport { FilterByTextPipe } from './pipes/filterByText.pipe';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { DialogContainerComponent } from './dialog/dialog-container/dialog-container.component';\r\nimport { DialogContainerYearComponent } from './dialog/dialog-container/dialog-container-year.component';\r\nimport { DialogContainerNoConditionComponent } from './dialog/dialog-container/dialog-container-noCondition.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n TopbarComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n PageNotFoundComponent,\r\n LoaderComponent,\r\n SidebarComponent,\r\n FilterByTextPipe,\r\n DialogContainerComponent,\r\n DialogContainerYearComponent,\r\n DialogContainerNoConditionComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ProgressSpinnerModule,\r\n MaterialModule,\r\n RouterModule,\r\n SimplebarAngularModule\r\n ],\r\n exports: [\r\n TopbarComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n PageNotFoundComponent,\r\n LoaderComponent,\r\n SidebarComponent,\r\n MaterialModule\r\n ],\r\n bootstrap: [TopbarComponent],\r\n providers: [\r\n { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'fill' } },\r\n SidebarService,\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","export default \".material .sidenav_container .mat-elevation-z5 {\\n min-width: 60px;\\n height: 100%;\\n border-right: 3px;\\n z-index: -1 !important;\\n}\\n.material .sidenav_container .mat-elevation-z5 .sct-sidebar {\\n height: 100%;\\n background-color: white;\\n}\\n.material .line {\\n border-top-width: 1px;\\n}\\n.material .mat-list-item {\\n font-size: 0.9em;\\n background-color: white;\\n color: black;\\n}\\n.material .mat-list-item .submenu {\\n color: black;\\n background-color: white;\\n}\\n.material .mat-list-base {\\n padding-top: 0px !important;\\n}\\n.material .mat-list-item.parent {\\n text-transform: uppercase;\\n color: #1f7ed0;\\n font-weight: bold;\\n}\\n.material .mat-list-item.child {\\n font-size: 0.9em;\\n font-weight: bold;\\n}\\n.material .mat-icon {\\n margin-right: 5px;\\n}\\n.material .mat-list-base .mat-list-item .mat-list-icon,\\n.material .mat-list-base .mat-list-option .mat-list-icon {\\n margin-right: 5px;\\n padding: 0px;\\n}\\n.material .mat-list-item:hover {\\n background-color: #1f7ed0;\\n color: white;\\n}\\n.material .mat-list-item:active {\\n font-weight: bold;\\n transition: 1s ease all;\\n -moz-transition: 1s ease all;\\n -webkit-transition: 1s ease all;\\n background-color: #1f7ed0;\\n color: black;\\n}\\n.material .mat-list-item:focus {\\n background-color: #1f7ed0;\\n color: white;\\n}\\n.material .mat-list-item-active {\\n color: #fc0808;\\n}\\n.material img.jim {\\n width: 30px;\\n height: 30px;\\n -o-object-fit: cover;\\n object-fit: cover;\\n border-radius: 50%;\\n}\\n.material #thongtinUser {\\n display: block;\\n opacity: 1;\\n text-overflow: ellipsis;\\n padding: 6px;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.material .menu-button {\\n transition: 300ms ease-in-out;\\n transform: rotate(0deg);\\n}\\n.material .menu-button.rotated {\\n transform: rotate(180deg);\\n}\\n.material .showTitle {\\n height: 50px !important;\\n font-weight: bold;\\n color: black;\\n padding-left: 20px;\\n padding-top: 13px;\\n text-transform: uppercase;\\n}\\n.material .submenu.expanded {\\n transform: scaleY(1);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3NpZGViYXIvRTpcXE1JTEJQXFxNSUxCUFxcaW5kdXN0cmlhbC1hbmQtY29tbWVyY2lhbC1mYWNpbGl0aWVzL3NyY1xcYXBwXFxzaGFyZWRcXHNpZGViYXJcXHNpZGViYXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0U7RUFDRSxlQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0Esc0JBQUE7QUNBSjtBRENJO0VBQ0UsWUFBQTtFQUNBLHVCQUFBO0FDQ047QURHRTtFQUNFLHFCQUFBO0FDREo7QURLRTtFQUNFLGdCQUFBO0VBQ0EsdUJBQUE7RUFDQSxZQUFBO0FDSEo7QURJSTtFQUNFLFlBQUE7RUFDQSx1QkFBQTtBQ0ZOO0FES0U7RUFDRSwyQkFBQTtBQ0hKO0FES0U7RUFDRSx5QkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtBQ0hKO0FETUU7RUFDRSxnQkFBQTtFQUNBLGlCQUFBO0FDSko7QURNRTtFQUNFLGlCQUFBO0FDSko7QURNRTs7RUFFRSxpQkFBQTtFQUNBLFlBQUE7QUNKSjtBRE1FO0VBQ0UseUJBQUE7RUFDQSxZQUFBO0FDSko7QURPRTtFQUNFLGlCQUFBO0VBQ0EsdUJBQUE7RUFDQSw0QkFBQTtFQUNBLCtCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0FDTEo7QURRRTtFQUNFLHlCQUFBO0VBQ0EsWUFBQTtBQ05KO0FEU0U7RUFDRSxjQUFBO0FDUEo7QURTRTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7S0FBQSxpQkFBQTtFQUNBLGtCQUFBO0FDUEo7QURTRTtFQUNFLGNBQUE7RUFDQSxVQUFBO0VBQ0EsdUJBQUE7RUFDQSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0FDUEo7QURVRTtFQUNFLDZCQUFBO0VBQ0EsdUJBQUE7QUNSSjtBRFdFO0VBQ0UseUJBQUE7QUNUSjtBRFdFO0VBQ0UsdUJBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EseUJBQUE7QUNUSjtBRFdFO0VBQ0Usb0JBQUE7QUNUSiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0ZXJpYWwge1xyXG4gIC5zaWRlbmF2X2NvbnRhaW5lciAubWF0LWVsZXZhdGlvbi16NSB7XHJcbiAgICBtaW4td2lkdGg6IDYwcHg7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBib3JkZXItcmlnaHQ6IDNweDtcclxuICAgIHotaW5kZXg6IC0xICFpbXBvcnRhbnQ7XHJcbiAgICAuc2N0LXNpZGViYXIge1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmxpbmUge1xyXG4gICAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xyXG4gICAgLy8gYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG4gIH1cclxuXHJcbiAgLm1hdC1saXN0LWl0ZW0ge1xyXG4gICAgZm9udC1zaXplOiAwLjllbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgLnN1Ym1lbnUge1xyXG4gICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgfVxyXG4gIH1cclxuICAubWF0LWxpc3QtYmFzZSB7XHJcbiAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG4gIC5tYXQtbGlzdC1pdGVtLnBhcmVudCB7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgY29sb3I6ICMxZjdlZDA7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcblxyXG4gIC5tYXQtbGlzdC1pdGVtLmNoaWxkIHtcclxuICAgIGZvbnQtc2l6ZTogMC45ZW07XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcbiAgLm1hdC1pY29uIHtcclxuICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gIH1cclxuICAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSAubWF0LWxpc3QtaWNvbixcclxuICAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGlzdC1pY29uIHtcclxuICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgcGFkZGluZzogMHB4O1xyXG4gIH1cclxuICAubWF0LWxpc3QtaXRlbTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWY3ZWQwO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gIH1cclxuXHJcbiAgLm1hdC1saXN0LWl0ZW06YWN0aXZlIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgdHJhbnNpdGlvbjogMXMgZWFzZSBhbGw7XHJcbiAgICAtbW96LXRyYW5zaXRpb246IDFzIGVhc2UgYWxsO1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAxcyBlYXNlIGFsbDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMxZjdlZDA7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgfVxyXG5cclxuICAubWF0LWxpc3QtaXRlbTpmb2N1cyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWY3ZWQwO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gIH1cclxuXHJcbiAgLm1hdC1saXN0LWl0ZW0tYWN0aXZlIHtcclxuICAgIGNvbG9yOiAjZmMwODA4O1xyXG4gIH1cclxuICBpbWcuamltIHtcclxuICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgfVxyXG4gICN0aG9uZ3RpblVzZXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICBwYWRkaW5nOiA2cHg7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIH1cclxuXHJcbiAgLm1lbnUtYnV0dG9uIHtcclxuICAgIHRyYW5zaXRpb246IDMwMG1zIGVhc2UtaW4tb3V0O1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgfVxyXG5cclxuICAubWVudS1idXR0b24ucm90YXRlZCB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG4gIH1cclxuICAuc2hvd1RpdGxlIHtcclxuICAgIGhlaWdodDogNTBweCAhaW1wb3J0YW50O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjb2xvcjogcmdiKDAsIDAsIDApO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDEzcHg7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIH1cclxuICAuc3VibWVudS5leHBhbmRlZCB7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcclxuICB9XHJcbn1cclxuIiwiLm1hdGVyaWFsIC5zaWRlbmF2X2NvbnRhaW5lciAubWF0LWVsZXZhdGlvbi16NSB7XG4gIG1pbi13aWR0aDogNjBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmlnaHQ6IDNweDtcbiAgei1pbmRleDogLTEgIWltcG9ydGFudDtcbn1cbi5tYXRlcmlhbCAuc2lkZW5hdl9jb250YWluZXIgLm1hdC1lbGV2YXRpb24tejUgLnNjdC1zaWRlYmFyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5tYXRlcmlhbCAubGluZSB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDtcbn1cbi5tYXRlcmlhbCAubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogYmxhY2s7XG59XG4ubWF0ZXJpYWwgLm1hdC1saXN0LWl0ZW0gLnN1Ym1lbnUge1xuICBjb2xvcjogYmxhY2s7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLm1hdGVyaWFsIC5tYXQtbGlzdC1iYXNlIHtcbiAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xufVxuLm1hdGVyaWFsIC5tYXQtbGlzdC1pdGVtLnBhcmVudCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjMWY3ZWQwO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5tYXRlcmlhbCAubWF0LWxpc3QtaXRlbS5jaGlsZCB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLm1hdGVyaWFsIC5tYXQtaWNvbiB7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLm1hdGVyaWFsIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGlzdC1pY29uLFxuLm1hdGVyaWFsIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saXN0LWljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgcGFkZGluZzogMHB4O1xufVxuLm1hdGVyaWFsIC5tYXQtbGlzdC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFmN2VkMDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLm1hdGVyaWFsIC5tYXQtbGlzdC1pdGVtOmFjdGl2ZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0cmFuc2l0aW9uOiAxcyBlYXNlIGFsbDtcbiAgLW1vei10cmFuc2l0aW9uOiAxcyBlYXNlIGFsbDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAxcyBlYXNlIGFsbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFmN2VkMDtcbiAgY29sb3I6IGJsYWNrO1xufVxuLm1hdGVyaWFsIC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFmN2VkMDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLm1hdGVyaWFsIC5tYXQtbGlzdC1pdGVtLWFjdGl2ZSB7XG4gIGNvbG9yOiAjZmMwODA4O1xufVxuLm1hdGVyaWFsIGltZy5qaW0ge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLm1hdGVyaWFsICN0aG9uZ3RpblVzZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3BhY2l0eTogMTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHBhZGRpbmc6IDZweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4ubWF0ZXJpYWwgLm1lbnUtYnV0dG9uIHtcbiAgdHJhbnNpdGlvbjogMzAwbXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xufVxuLm1hdGVyaWFsIC5tZW51LWJ1dHRvbi5yb3RhdGVkIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cbi5tYXRlcmlhbCAuc2hvd1RpdGxlIHtcbiAgaGVpZ2h0OiA1MHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogYmxhY2s7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy10b3A6IDEzcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4ubWF0ZXJpYWwgLnN1Ym1lbnUuZXhwYW5kZWQge1xuICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcbn0iXX0= */\"","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSidenav } from '@angular/material';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { LoginService } from 'src/app/_services/APIService/login.service';\r\nimport { SidebarService } from '../../_services/sidebar.service'\r\nimport { onSideNavChange, animateText } from '../../_animations/animation-sidebar'\r\n\r\nimport { INavItem } from '../../_models/_nav.model';\r\nimport { TYPE_OF_NAV } from '../../_enums/typeOfUser.enum';\r\nimport { STYLESCSS_TYPE } from 'src/app/_enums/styleChoose.enum';\r\n\r\n@Component({\r\n selector: 'app-sidebar',\r\n templateUrl: 'sidebar.component.html',\r\n styleUrls: ['sidebar.component.scss'],\r\n animations: [onSideNavChange, animateText]\r\n})\r\nexport class SidebarComponent implements OnInit {\r\n\r\n @Input('typeOfSideBar') typeOfSidebar: string;\r\n @ViewChild('sidebar', { static: false }) sidenav: MatSidenav;\r\n\r\n public readonly SIDEBAR_STATE_DEFAULT: boolean = false;\r\n public readonly SHOW_SUB_MENU_DEFAULT: boolean = false;\r\n public readonly LOGON_STATE_DEFAULT: boolean = false;\r\n public readonly LINK_TEXT_DEFAULT: boolean = false;\r\n public readonly PANEL_OPEN_STATE_DEFAULT: boolean = false;\r\n public readonly username_DEFUALT: string = \"Tên tài khoản\";\r\n public readonly AVATAR_DEFAULT: string = \"../../../assets/img/avatars/1.jpg\";\r\n public readonly STYLE_SCSS_DEFAULTL: STYLESCSS_TYPE = STYLESCSS_TYPE.MATERIAL;\r\n\r\n public styleOfScss: STYLESCSS_TYPE;\r\n public showSubMenus: Array = new Array();\r\n public showSubmenu: boolean = this.SHOW_SUB_MENU_DEFAULT;\r\n public sideNavState: boolean = this.SIDEBAR_STATE_DEFAULT;\r\n public linkText: boolean = this.LINK_TEXT_DEFAULT;\r\n public img_avatar: string = this.AVATAR_DEFAULT;\r\n public username: string = this.username_DEFUALT;\r\n public logon: boolean = this.LOGON_STATE_DEFAULT;\r\n public panelOpenState: boolean = this.PANEL_OPEN_STATE_DEFAULT;\r\n\r\n public navItems: INavItem[] = [];\r\n\r\n public options = {\r\n autoHide: true, scrollbarMinSize: 100, forceVisible: true, classNames: {\r\n content: 'simplebar-content',\r\n scrollContent: 'simplebar-scroll-content',\r\n scrollbar: 'simplebar-scrollbar',\r\n track: 'simplebar-track'\r\n }\r\n };\r\n\r\n constructor(\r\n public _sidebarService: SidebarService,\r\n public _loginService: LoginService,\r\n public _router: Router,\r\n ) {\r\n this.getMenu();\r\n this.getIP();\r\n }\r\n\r\n ngOnInit() {\r\n this.styleOfScss = this.STYLE_SCSS_DEFAULTL;\r\n this._loginService.refreshToken();\r\n this.onSinenavToggle();\r\n this.logon = this._checkLocalStorage();\r\n }\r\n\r\n public getMenu() {\r\n this._sidebarService.GetMenu().subscribe(\r\n all => {\r\n this.navItems = this.MenuList(all.data, this.typeOfSidebar)\r\n }\r\n )\r\n }\r\n\r\n getIP() {\r\n this._sidebarService.getIPAddress().subscribe((res: any) => {\r\n this.CountAccess(res.ip)\r\n });\r\n }\r\n\r\n tong_luot_truy_cap: number\r\n so_luot_truy_cap_nam: number\r\n so_luot_truy_cap_thang: number\r\n so_luot_truy_cap_ngay: number\r\n\r\n public CountAccess(ip: string) {\r\n this._sidebarService.CountAccess(ip).subscribe(\r\n all => {\r\n this.tong_luot_truy_cap = all.data.tong_luot_truy_cap\r\n this.so_luot_truy_cap_nam = all.data.so_luot_truy_cap_nam\r\n this.so_luot_truy_cap_thang = all.data.so_luot_truy_cap_thang\r\n this.so_luot_truy_cap_ngay = all.data.so_luot_truy_cap_ngay\r\n }\r\n )\r\n }\r\n\r\n temp: Array = new Array();\r\n temp1: Array = new Array();\r\n\r\n public MenuList(navItems: Array, areacode: string): Array {\r\n let parentNavItems = navItems.filter(item => item.parent_id == null);\r\n let chilrentNavItems = navItems.filter(item => item.parent_id != null);\r\n parentNavItems.forEach(item => item.children = this.getChildNav(item, chilrentNavItems));\r\n this.temp = parentNavItems\r\n this.temp1 = this.temp.filter(item => item.navitems == areacode)\r\n return this.temp1;\r\n }\r\n\r\n public getChildNav(navItemParent: INavItem, navItems: Array): Array {\r\n let countChild: number = 0;\r\n let reOutput: Array = new Array();\r\n navItems.forEach(item => {\r\n if (item.parent_id === navItemParent.id) {\r\n reOutput.push(item);\r\n item.parent_id = null;\r\n countChild++;\r\n }\r\n })\r\n if (countChild > 0) {\r\n let chilrentNavItems = navItems.filter(item => item.parent_id != null);\r\n reOutput.forEach(item => item.children = this.getChildNav(item, chilrentNavItems));\r\n return reOutput\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n onSinenavToggle() {\r\n this.sideNavState = !this.sideNavState\r\n\r\n setTimeout(() => {\r\n this.linkText = this.sideNavState;\r\n }, 200)\r\n this._sidebarService.sideBarState$.next(this.sideNavState)\r\n }\r\n\r\n public ngAfterContentChecked(): void {\r\n }\r\n\r\n public OpenChildren(index: number, navItem_child) {\r\n for (let i = 0; i < this.showSubMenus.length; i++) {\r\n if (i != index)\r\n this.showSubMenus[i] = false;\r\n }\r\n this.showSubMenus[index] = !this.showSubMenus[index];\r\n\r\n if (navItem_child.length === 1) {\r\n this._router.navigate([navItem_child[0].url]);\r\n }\r\n }\r\n\r\n public OpenSubChildren(index: number, navItem_child) {\r\n navItem_child['expand'] = !navItem_child['expand'];\r\n }\r\n\r\n public _checkLocalStorage(): boolean {\r\n if (localStorage.getItem('currentUser')) {\r\n let user = JSON.parse(localStorage.getItem('currentUser'));\r\n if (user) {\r\n this.username = user.full_name;\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n navigate(url : string){\r\n this._router.navigateByUrl(url);\r\n }\r\n}\r\n","export default \".material {\\n background: linear-gradient(to left, #003fb3, #5bcaff);\\n}\\n.material .floating-home {\\n position: fixed;\\n width: 60px;\\n height: 60px;\\n bottom: 50px;\\n left: 40px;\\n background-color: #1f7ed0;\\n border-radius: 50px;\\n text-align: center;\\n box-shadow: 2px 2px 3px #999;\\n z-index: 1000;\\n transition: 0.3s;\\n cursor: pointer;\\n}\\n.material .floating-home .float-icon {\\n color: #fff;\\n margin-top: 13px;\\n}\\n.material .floating-home:hover {\\n background-color: #2196f3;\\n}\\n.material .username-display {\\n border-bottom: 1px solid beige;\\n color: black;\\n}\\n.material .check-expired-btn {\\n color: white;\\n top: 8px;\\n}\\n.material .check-expired-btn .mat-icon {\\n font-size: 30px;\\n top: 13px;\\n right: 5px;\\n transition: transform 0.3s;\\n}\\n.material .check-expired-btn .mat-icon:hover {\\n transform: scale(1.1);\\n}\\n.material .toggle-sidebar {\\n color: white;\\n transition: 0.3s;\\n cursor: pointer;\\n}\\n.material .toggle-sidebar:hover {\\n color: white;\\n border-radius: 50%;\\n}\\n.material .floating-noti .fa-chevron-up {\\n -webkit-animation: bounceUp 2s infinite;\\n animation: bounceUp 2s infinite;\\n text-align: center;\\n display: block;\\n top: 35px;\\n left: 25px;\\n position: absolute;\\n color: lightslategray;\\n}\\n.material .floating-noti .floating-popup {\\n -webkit-animation: bounceLeft 2s infinite;\\n animation: bounceLeft 2s infinite;\\n position: absolute;\\n font-size: 12px;\\n background-color: lightslategray;\\n color: white;\\n padding: 0px 12px;\\n border-radius: 200px;\\n top: 67px;\\n left: 15px;\\n}\\n.material .mat-elevation-z5.main-contain {\\n background: linear-gradient(to left, #003fb3, #5bcaff);\\n color: white;\\n position: relative;\\n z-index: 3;\\n height: 64px;\\n}\\n.material .mat-elevation-z5.main-contain .logo {\\n height: 45px;\\n width: 45px;\\n margin: 0 10px;\\n}\\n.material .mat-elevation-z5.main-contain .spacer {\\n flex: 1 1 auto;\\n}\\n.material .mat-elevation-z5.main-contain .unit-block {\\n width: 70%;\\n}\\n.material .mat-elevation-z5.main-contain .unit-block .unit-name {\\n background: -webkit-linear-gradient(45deg, #ffee69, #fff6b3 80%);\\n -webkit-background-clip: text;\\n -webkit-text-fill-color: transparent;\\n font-size: 26px;\\n margin-top: 5px;\\n}\\n.material .mat-elevation-z5.main-contain .btn-color .btn-company {\\n color: white;\\n background-color: #1f7ed0;\\n text-decoration: none;\\n margin-left: 10px;\\n}\\n.material .mat-elevation-z5.main-contain .btn-color .btn-company:hover {\\n color: #1f7ed0;\\n background-color: white;\\n}\\n.material .mat-elevation-z5.main-contain .btn-color .btn-login {\\n color: white;\\n background-color: #1f7ed0;\\n text-decoration: none;\\n margin-left: 10px;\\n}\\n.material .mat-elevation-z5.main-contain .btn-color .btn-login:hover {\\n color: #1f7ed0;\\n background-color: white;\\n}\\n.material .mat-elevation-z5.main-contain .btn-color .btn-sct-page {\\n color: #1f7ed0;\\n background-color: white;\\n text-decoration: none;\\n margin-left: 10px;\\n}\\n.material .mat-elevation-z5.main-contain .btn-color .btn-sct-page:hover {\\n color: white;\\n background-color: var(--primary-color);\\n transition: background-color 300ms linear;\\n transition: color 300ms linear;\\n}\\n.material .mat-elevation-z5.main-contain .btn-color .user-menu {\\n cursor: pointer;\\n margin-left: 10px;\\n}\\n.material .mat-elevation-z5.main-contain .btn-color .user-menu .avatar {\\n width: 40px;\\n height: 40px;\\n -o-object-fit: cover;\\n object-fit: cover;\\n border-radius: 50%;\\n transition: transform 0.3s;\\n}\\n.material .mat-elevation-z5.main-contain .btn-color .user-menu .avatar:hover {\\n transform: scale(1.1);\\n}\\n.material .mat-elevation-z5.main-contain .btn-color .dropdown-content {\\n display: none;\\n position: absolute;\\n background-color: white;\\n min-width: 215px;\\n box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);\\n z-index: 1;\\n top: 65px;\\n right: 0px;\\n width: auto;\\n}\\n.material .mat-elevation-z5.main-contain .btn-color .dropdown-content .dropdown-item {\\n color: black;\\n padding: 10px 5px 10px 25px;\\n text-decoration: none;\\n display: flex;\\n cursor: pointer;\\n align-items: center;\\n}\\n.material .mat-elevation-z5.main-contain .btn-color .dropdown-content .dropdown-item .display-item {\\n margin-left: 13px;\\n}\\n.material .mat-elevation-z5.main-contain .btn-color .dropdown-content :active {\\n background-color: white !important;\\n}\\n@-webkit-keyframes bounceUp {\\n 0%, 20%, 50%, 80%, 100% {\\n transform: translateY(0);\\n }\\n 40% {\\n transform: translateY(10px);\\n }\\n 60% {\\n transform: translateY(10px);\\n }\\n}\\n@keyframes bounceUp {\\n 0%, 20%, 50%, 80%, 100% {\\n transform: translateY(0);\\n }\\n 40% {\\n transform: translateY(10px);\\n }\\n 60% {\\n transform: translateY(10px);\\n }\\n}\\n@-webkit-keyframes bounceLeft {\\n 0%, 20%, 50%, 80%, 100% {\\n transform: translateX(0);\\n }\\n 40% {\\n transform: translateX(10px);\\n }\\n 60% {\\n transform: translateX(10px);\\n }\\n}\\n@keyframes bounceLeft {\\n 0%, 20%, 50%, 80%, 100% {\\n transform: translateX(0);\\n }\\n 40% {\\n transform: translateX(10px);\\n }\\n 60% {\\n transform: translateX(10px);\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3RvcGJhci9FOlxcTUlMQlBcXE1JTEJQXFxpbmR1c3RyaWFsLWFuZC1jb21tZXJjaWFsLWZhY2lsaXRpZXMvc3JjXFxhcHBcXHNoYXJlZFxcdG9wYmFyXFx0b3BiYXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NoYXJlZC90b3BiYXIvdG9wYmFyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBO0VBR0ksc0RBQUE7QUNKSjtBREtJO0VBQ0ksZUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7RUFDQSx5QkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSw0QkFBQTtFQUNBLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUNIUjtBRElRO0VBQ0ksV0FBQTtFQUNBLGdCQUFBO0FDRlo7QURJUTtFQUNJLHlCQUFBO0FDRlo7QURLSTtFQUNJLDhCQUFBO0VBQ0EsWUFBQTtBQ0hSO0FES0k7RUFDSSxZQUFBO0VBQ0EsUUFBQTtBQ0hSO0FESVE7RUFDSSxlQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSwwQkFBQTtBQ0ZaO0FER1k7RUFDSSxxQkFBQTtBQ0RoQjtBRE1JO0VBQ0ksWUFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQ0pSO0FES1E7RUFDSSxZQUFBO0VBQ0Esa0JBQUE7QUNIWjtBRFFRO0VBRUksdUNBQUE7RUFDQSwrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxxQkFBQTtBQ05aO0FEU1E7RUFFSSx5Q0FBQTtFQUNBLGlDQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsZ0NBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0FDUFo7QURXSTtFQUNJLHNEQUFBO0VBQ0EsWUFqRkk7RUFrRkosa0JBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtBQ1RSO0FEVVE7RUFDSSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7QUNSWjtBRFVRO0VBQ0ksY0FBQTtBQ1JaO0FEVVE7RUFDSSxVQUFBO0FDUlo7QURTWTtFQUVJLGdFQUFBO0VBQ0EsNkJBQUE7RUFDQSxvQ0FBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0FDUmhCO0FEWVk7RUFDSSxZQTFHSjtFQTJHSSx5QkE1R0w7RUE2R0sscUJBQUE7RUFDQSxpQkFBQTtBQ1ZoQjtBRFlZO0VBQ0ksY0FqSEw7RUFrSEssdUJBakhKO0FDdUdaO0FEWVk7RUFDSSxZQXBISjtFQXFISSx5QkF0SEw7RUF1SEsscUJBQUE7RUFDQSxpQkFBQTtBQ1ZoQjtBRFlZO0VBQ0ksY0EzSEw7RUE0SEssdUJBM0hKO0FDaUhaO0FEWVk7RUFDSSxjQS9ITDtFQWdJSyx1QkEvSEo7RUFnSUkscUJBQUE7RUFDQSxpQkFBQTtBQ1ZoQjtBRFlZO0VBQ0ksWUFwSUo7RUFxSUksc0NBQUE7RUFHQSx5Q0FBQTtFQUNBLDhCQUFBO0FDVmhCO0FEWVk7RUFDSSxlQUFBO0VBQ0EsaUJBQUE7QUNWaEI7QURXZ0I7RUFDSSxXQUFBO0VBQ0EsWUFBQTtFQUNBLG9CQUFBO0tBQUEsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLDBCQUFBO0FDVHBCO0FEVW9CO0VBQ0kscUJBQUE7QUNSeEI7QURZWTtFQUNJLGFBQUE7RUFDQSxrQkFBQTtFQUNBLHVCQUFBO0VBQ0EsZ0JBQUE7RUFDQSwrQ0FBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7QUNWaEI7QURXZ0I7RUFDSSxZQUFBO0VBQ0EsMkJBQUE7RUFDQSxxQkFBQTtFQUNBLGFBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7QUNUcEI7QURVb0I7RUFDSSxpQkFBQTtBQ1J4QjtBRFdpQjtFQUNHLGtDQUFBO0FDVHBCO0FENkJJO0VBQ0k7SUFFSSx3QkFBQTtFQ2JWO0VEZU07SUFFSSwyQkFBQTtFQ2JWO0VEZU07SUFFSSwyQkFBQTtFQ2JWO0FBQ0Y7QURlSTtFQUNJO0lBSUksd0JBQUE7RUNiVjtFRGVNO0lBSUksMkJBQUE7RUNiVjtFRGVNO0lBSUksMkJBQUE7RUNiVjtBQUNGO0FEZ0JJO0VBQ0k7SUFNRSx3QkFBQTtFQ2xCUjtFRG9CTTtJQUVFLDJCQUFBO0VDbEJSO0VEb0JNO0lBRUUsMkJBQUE7RUNsQlI7QUFDRjtBRG9DSTtFQUNJO0lBTUUsd0JBQUE7RUMzQlI7RUQ2Qk07SUFFRSwyQkFBQTtFQzNCUjtFRDZCTTtJQUVFLDJCQUFBO0VDM0JSO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvdG9wYmFyL3RvcGJhci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiR1cFBvczogMTBweDtcclxuJGRvd25Qb3M6IDEwcHg7XHJcblxyXG4ubWF0ZXJpYWwge1xyXG4gICAgJGJsdWU6ICMxZjdlZDA7XHJcbiAgICAkd2hpdGU6IHdoaXRlO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICMwMDNmYjMsICM1YmNhZmYpO1xyXG4gICAgLmZsb2F0aW5nLWhvbWUge1xyXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICB3aWR0aDogNjBweDtcclxuICAgICAgICBoZWlnaHQ6IDYwcHg7XHJcbiAgICAgICAgYm90dG9tOiA1MHB4O1xyXG4gICAgICAgIGxlZnQ6IDQwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFmN2VkMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBib3gtc2hhZG93OiAycHggMnB4IDNweCAjOTk5O1xyXG4gICAgICAgIHotaW5kZXg6IDEwMDA7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogMC4zcztcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgLmZsb2F0LWljb24ge1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTNweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnVzZXJuYW1lLWRpc3BsYXkge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBiZWlnZTtcclxuICAgICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICB9XHJcbiAgICAuY2hlY2stZXhwaXJlZC1idG4ge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICB0b3A6IDhweDtcclxuICAgICAgICAubWF0LWljb24ge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgICAgIHRvcDogMTNweDtcclxuICAgICAgICAgICAgcmlnaHQ6IDVweDtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50b2dnbGUtc2lkZWJhciB7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIHRyYW5zaXRpb246IDAuM3M7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZsb2F0aW5nLW5vdGkge1xyXG4gICAgICAgIC5mYS1jaGV2cm9uLXVwIHtcclxuICAgICAgICAgICAgLW1vei1hbmltYXRpb246IGJvdW5jZVVwIDJzIGluZmluaXRlO1xyXG4gICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogYm91bmNlVXAgMnMgaW5maW5pdGU7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbjogYm91bmNlVXAgMnMgaW5maW5pdGU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgZGlzcGxheSA6YmxvY2s7XHJcbiAgICAgICAgICAgIHRvcDogMzVweDtcclxuICAgICAgICAgICAgbGVmdDogMjVweDtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBjb2xvcjogbGlnaHRzbGF0ZWdyYXk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZmxvYXRpbmctcG9wdXAge1xyXG4gICAgICAgICAgICAtbW96LWFuaW1hdGlvbjogYm91bmNlTGVmdCAycyBpbmZpbml0ZTtcclxuICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IGJvdW5jZUxlZnQgMnMgaW5maW5pdGU7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbjogYm91bmNlTGVmdCAycyBpbmZpbml0ZTtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0c2xhdGVncmF5O1xyXG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweCAxMnB4O1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcclxuICAgICAgICAgICAgdG9wOiA2N3B4O1xyXG4gICAgICAgICAgICBsZWZ0OiAxNXB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubWF0LWVsZXZhdGlvbi16NS5tYWluLWNvbnRhaW4ge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjMDAzZmIzLCAjNWJjYWZmKTtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB6LWluZGV4OiAzO1xyXG4gICAgICAgIGhlaWdodDogNjRweDtcclxuICAgICAgICAubG9nbyB7XHJcbiAgICAgICAgICAgIGhlaWdodDogNDVweDtcclxuICAgICAgICAgICAgd2lkdGg6IDQ1cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAxMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuc3BhY2VyIHtcclxuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC51bml0LWJsb2NrIHtcclxuICAgICAgICAgICAgd2lkdGg6IDcwJTtcclxuICAgICAgICAgICAgLnVuaXQtbmFtZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb2xvcjogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCNmZmVlNjksd2hpdGUpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsICNmZmVlNjksICNmZmY2YjMgODAlKTtcclxuICAgICAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5idG4tY29sb3Ige1xyXG4gICAgICAgICAgICAuYnRuLWNvbXBhbnkge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmJ0bi1jb21wYW55OmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYnRuLWxvZ2luIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcclxuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5idG4tbG9naW46aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5idG4tc2N0LXBhZ2Uge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmJ0bi1zY3QtcGFnZTpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XHJcbiAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMzAwbXMgbGluZWFyO1xyXG4gICAgICAgICAgICAgICAgLW1zLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMzAwbXMgbGluZWFyO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDBtcyBsaW5lYXI7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAzMDBtcyBsaW5lYXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnVzZXItbWVudSB7XHJcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuICAgICAgICAgICAgICAgIC5hdmF0YXIge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmRyb3Bkb3duLWNvbnRlbnQge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyMTVweDtcclxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDBweCA4cHggMTZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICAgICAgICAgIHRvcDogNjVweDtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAwcHg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgICAgIC5kcm9wZG93bi1pdGVtIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCA1cHggMTBweCAyNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIC5kaXNwbGF5LWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTNweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBALW1vei1rZXlmcmFtZXMgYm91bmNlVXAge1xyXG4gICAgICAgIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcclxuICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICA0MCUge1xyXG4gICAgICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHVwUG9zKTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkdXBQb3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgICA2MCUge1xyXG4gICAgICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGRvd25Qb3MpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRkb3duUG9zKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIEAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VVcCB7XHJcbiAgICAgICAgMCUsIDIwJSwgNTAlLCA4MCUsIDEwMCUge1xyXG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICA0MCUge1xyXG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgkdXBQb3MpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHVwUG9zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgNjAlIHtcclxuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGRvd25Qb3MpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGRvd25Qb3MpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBrZXlmcmFtZXMgYm91bmNlVXAge1xyXG4gICAgICAgIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcclxuICAgICAgICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDQwJSB7XHJcbiAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR1cFBvcyk7XHJcbiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHVwUG9zKTtcclxuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHVwUG9zKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR1cFBvcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDYwJSB7XHJcbiAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRkb3duUG9zKTtcclxuICAgICAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgkZG93blBvcyk7XHJcbiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRkb3duUG9zKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRkb3duUG9zKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUxlZnQge1xyXG4gICAgICAgIDAlLFxyXG4gICAgICAgIDIwJSxcclxuICAgICAgICA1MCUsXHJcbiAgICAgICAgODAlLFxyXG4gICAgICAgIDEwMCUge1xyXG4gICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDQwJSB7XHJcbiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgkdXBQb3MpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCR1cFBvcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDYwJSB7XHJcbiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgkZG93blBvcyk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJGRvd25Qb3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBALW1vei1rZXlmcmFtZXMgYm91bmNlTGVmdCB7XHJcbiAgICAgICAgMCUsXHJcbiAgICAgICAgMjAlLFxyXG4gICAgICAgIDUwJSxcclxuICAgICAgICA4MCUsXHJcbiAgICAgICAgMTAwJSB7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDQwJSB7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHVwUG9zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgNjAlIHtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkZG93blBvcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfSAgICAgIFxyXG5cclxuICAgIEBrZXlmcmFtZXMgYm91bmNlTGVmdCB7XHJcbiAgICAgICAgMCUsXHJcbiAgICAgICAgMjAlLFxyXG4gICAgICAgIDUwJSxcclxuICAgICAgICA4MCUsXHJcbiAgICAgICAgMTAwJSB7XHJcbiAgICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICA0MCUge1xyXG4gICAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgkdXBQb3MpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCR1cFBvcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDYwJSB7XHJcbiAgICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRkb3duUG9zKTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkZG93blBvcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbn0iLCIubWF0ZXJpYWwge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgIzAwM2ZiMywgIzViY2FmZik7XG59XG4ubWF0ZXJpYWwgLmZsb2F0aW5nLWhvbWUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDYwcHg7XG4gIGJvdHRvbTogNTBweDtcbiAgbGVmdDogNDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFmN2VkMDtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3gtc2hhZG93OiAycHggMnB4IDNweCAjOTk5O1xuICB6LWluZGV4OiAxMDAwO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubWF0ZXJpYWwgLmZsb2F0aW5nLWhvbWUgLmZsb2F0LWljb24ge1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luLXRvcDogMTNweDtcbn1cbi5tYXRlcmlhbCAuZmxvYXRpbmctaG9tZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4ubWF0ZXJpYWwgLnVzZXJuYW1lLWRpc3BsYXkge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmVpZ2U7XG4gIGNvbG9yOiBibGFjaztcbn1cbi5tYXRlcmlhbCAuY2hlY2stZXhwaXJlZC1idG4ge1xuICBjb2xvcjogd2hpdGU7XG4gIHRvcDogOHB4O1xufVxuLm1hdGVyaWFsIC5jaGVjay1leHBpcmVkLWJ0biAubWF0LWljb24ge1xuICBmb250LXNpemU6IDMwcHg7XG4gIHRvcDogMTNweDtcbiAgcmlnaHQ6IDVweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG59XG4ubWF0ZXJpYWwgLmNoZWNrLWV4cGlyZWQtYnRuIC5tYXQtaWNvbjpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cbi5tYXRlcmlhbCAudG9nZ2xlLXNpZGViYXIge1xuICBjb2xvcjogd2hpdGU7XG4gIHRyYW5zaXRpb246IDAuM3M7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5tYXRlcmlhbCAudG9nZ2xlLXNpZGViYXI6aG92ZXIge1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5tYXRlcmlhbCAuZmxvYXRpbmctbm90aSAuZmEtY2hldnJvbi11cCB7XG4gIC1tb3otYW5pbWF0aW9uOiBib3VuY2VVcCAycyBpbmZpbml0ZTtcbiAgLXdlYmtpdC1hbmltYXRpb246IGJvdW5jZVVwIDJzIGluZmluaXRlO1xuICBhbmltYXRpb246IGJvdW5jZVVwIDJzIGluZmluaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0b3A6IDM1cHg7XG4gIGxlZnQ6IDI1cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6IGxpZ2h0c2xhdGVncmF5O1xufVxuLm1hdGVyaWFsIC5mbG9hdGluZy1ub3RpIC5mbG9hdGluZy1wb3B1cCB7XG4gIC1tb3otYW5pbWF0aW9uOiBib3VuY2VMZWZ0IDJzIGluZmluaXRlO1xuICAtd2Via2l0LWFuaW1hdGlvbjogYm91bmNlTGVmdCAycyBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uOiBib3VuY2VMZWZ0IDJzIGluZmluaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRzbGF0ZWdyYXk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICB0b3A6IDY3cHg7XG4gIGxlZnQ6IDE1cHg7XG59XG4ubWF0ZXJpYWwgLm1hdC1lbGV2YXRpb24tejUubWFpbi1jb250YWluIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICMwMDNmYjMsICM1YmNhZmYpO1xuICBjb2xvcjogd2hpdGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMztcbiAgaGVpZ2h0OiA2NHB4O1xufVxuLm1hdGVyaWFsIC5tYXQtZWxldmF0aW9uLXo1Lm1haW4tY29udGFpbiAubG9nbyB7XG4gIGhlaWdodDogNDVweDtcbiAgd2lkdGg6IDQ1cHg7XG4gIG1hcmdpbjogMCAxMHB4O1xufVxuLm1hdGVyaWFsIC5tYXQtZWxldmF0aW9uLXo1Lm1haW4tY29udGFpbiAuc3BhY2VyIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG4ubWF0ZXJpYWwgLm1hdC1lbGV2YXRpb24tejUubWFpbi1jb250YWluIC51bml0LWJsb2NrIHtcbiAgd2lkdGg6IDcwJTtcbn1cbi5tYXRlcmlhbCAubWF0LWVsZXZhdGlvbi16NS5tYWluLWNvbnRhaW4gLnVuaXQtYmxvY2sgLnVuaXQtbmFtZSB7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZmZlZTY5LCAjZmZmNmIzIDgwJSk7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMjZweDtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLm1hdGVyaWFsIC5tYXQtZWxldmF0aW9uLXo1Lm1haW4tY29udGFpbiAuYnRuLWNvbG9yIC5idG4tY29tcGFueSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFmN2VkMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5tYXRlcmlhbCAubWF0LWVsZXZhdGlvbi16NS5tYWluLWNvbnRhaW4gLmJ0bi1jb2xvciAuYnRuLWNvbXBhbnk6aG92ZXIge1xuICBjb2xvcjogIzFmN2VkMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4ubWF0ZXJpYWwgLm1hdC1lbGV2YXRpb24tejUubWFpbi1jb250YWluIC5idG4tY29sb3IgLmJ0bi1sb2dpbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFmN2VkMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5tYXRlcmlhbCAubWF0LWVsZXZhdGlvbi16NS5tYWluLWNvbnRhaW4gLmJ0bi1jb2xvciAuYnRuLWxvZ2luOmhvdmVyIHtcbiAgY29sb3I6ICMxZjdlZDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLm1hdGVyaWFsIC5tYXQtZWxldmF0aW9uLXo1Lm1haW4tY29udGFpbiAuYnRuLWNvbG9yIC5idG4tc2N0LXBhZ2Uge1xuICBjb2xvcjogIzFmN2VkMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG4ubWF0ZXJpYWwgLm1hdC1lbGV2YXRpb24tejUubWFpbi1jb250YWluIC5idG4tY29sb3IgLmJ0bi1zY3QtcGFnZTpob3ZlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDBtcyBsaW5lYXI7XG4gIC1tcy10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDMwMG1zIGxpbmVhcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDBtcyBsaW5lYXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIDMwMG1zIGxpbmVhcjtcbn1cbi5tYXRlcmlhbCAubWF0LWVsZXZhdGlvbi16NS5tYWluLWNvbnRhaW4gLmJ0bi1jb2xvciAudXNlci1tZW51IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5tYXRlcmlhbCAubWF0LWVsZXZhdGlvbi16NS5tYWluLWNvbnRhaW4gLmJ0bi1jb2xvciAudXNlci1tZW51IC5hdmF0YXIge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbn1cbi5tYXRlcmlhbCAubWF0LWVsZXZhdGlvbi16NS5tYWluLWNvbnRhaW4gLmJ0bi1jb2xvciAudXNlci1tZW51IC5hdmF0YXI6aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG4ubWF0ZXJpYWwgLm1hdC1lbGV2YXRpb24tejUubWFpbi1jb250YWluIC5idG4tY29sb3IgLmRyb3Bkb3duLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBtaW4td2lkdGg6IDIxNXB4O1xuICBib3gtc2hhZG93OiAwcHggOHB4IDE2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiA2NXB4O1xuICByaWdodDogMHB4O1xuICB3aWR0aDogYXV0bztcbn1cbi5tYXRlcmlhbCAubWF0LWVsZXZhdGlvbi16NS5tYWluLWNvbnRhaW4gLmJ0bi1jb2xvciAuZHJvcGRvd24tY29udGVudCAuZHJvcGRvd24taXRlbSB7XG4gIGNvbG9yOiBibGFjaztcbiAgcGFkZGluZzogMTBweCA1cHggMTBweCAyNXB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5tYXRlcmlhbCAubWF0LWVsZXZhdGlvbi16NS5tYWluLWNvbnRhaW4gLmJ0bi1jb2xvciAuZHJvcGRvd24tY29udGVudCAuZHJvcGRvd24taXRlbSAuZGlzcGxheS1pdGVtIHtcbiAgbWFyZ2luLWxlZnQ6IDEzcHg7XG59XG4ubWF0ZXJpYWwgLm1hdC1lbGV2YXRpb24tejUubWFpbi1jb250YWluIC5idG4tY29sb3IgLmRyb3Bkb3duLWNvbnRlbnQgOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5ALW1vei1rZXlmcmFtZXMgYm91bmNlVXAge1xuICAwJSwgMjAlLCA1MCUsIDgwJSwgMTAwJSB7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDQwJSB7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICB9XG4gIDYwJSB7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlVXAge1xuICAwJSwgMjAlLCA1MCUsIDgwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICB9XG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGJvdW5jZVVwIHtcbiAgMCUsIDIwJSwgNTAlLCA4MCUsIDEwMCUge1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDQwJSB7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gIH1cbiAgNjAlIHtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUxlZnQge1xuICAwJSwgMjAlLCA1MCUsIDgwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO1xuICB9XG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO1xuICB9XG59XG5ALW1vei1rZXlmcmFtZXMgYm91bmNlTGVmdCB7XG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgYm91bmNlTGVmdCB7XG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuICA0MCUge1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO1xuICB9XG4gIDYwJSB7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gIH1cbn0iXX0= */\"","import { Component, OnInit, Input, HostListener, Output } from '@angular/core';\r\nimport { MatSidenav } from '@angular/material';\r\nimport { Router } from '@angular/router';\r\nimport { LoginService } from '../../_services/APIService/login.service';\r\nimport { EventService } from '../services/evenet.service';\r\nimport { TYPE_OF_NAV } from '../../_enums/typeOfUser.enum';\r\nimport { STYLESCSS_TYPE } from 'src/app/_enums/styleChoose.enum';\r\nimport { SidebarService } from '../../_services/sidebar.service'\r\nimport { ConditionBusinessService } from 'src/app/_services/APIService/Condition-Business.service';\r\nimport { CertificateViewModel } from 'src/app/_models/APIModel/conditional-business-line.model';\r\nimport { formatDate, Location } from '@angular/common';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\n\r\n@Component({\r\n selector: 'app-topbar',\r\n templateUrl: './topbar.component.html',\r\n styleUrls: ['./topbar.component.scss']\r\n})\r\n\r\nexport class TopbarComponent implements OnInit {\r\n public readonly AVATAR_DEFAULT: string = \"../../../assets/img/avatars/1.jpg\";\r\n public readonly username_DEFAULT: string = \"Tên người dùng\";\r\n public readonly NOTIFICATION_DEFAULT: number = 0;\r\n public readonly COLOR_USER_DEFUALT: string = \"#ffc107\";\r\n public readonly STYLE_SCSS_DEFAULTL: STYLESCSS_TYPE = STYLESCSS_TYPE.MATERIAL;\r\n public img_avatar: string = this.AVATAR_DEFAULT;\r\n public username: string = this.username_DEFAULT;\r\n public notificatios: number = this.NOTIFICATION_DEFAULT;\r\n public expression: boolean = true;\r\n public colorOfUser: string = this.COLOR_USER_DEFUALT;\r\n public styleOfScss: STYLESCSS_TYPE;\r\n public userrole: number;\r\n public mst: string\r\n public menuIcon = 'menu';\r\n private _showFloatingNoti = false;\r\n\r\n @Input() open: boolean = this._eventService.open;\r\n @Input('typeOfUser') typeOfUser: TYPE_OF_NAV;\r\n @Input() sidebar: MatSidenav;\r\n @Input('module') module_control: string;\r\n constructor(\r\n public _loginService: LoginService,\r\n public _router: Router,\r\n public _eventService: EventService,\r\n public _sidebarService: SidebarService,\r\n public _Service: ConditionBusinessService,\r\n private observer: BreakpointObserver\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getBusinessList();\r\n\r\n this.styleOfScss = this.STYLE_SCSS_DEFAULTL;\r\n this.open = this._eventService.open;\r\n this.expression = this.typeOfUser == TYPE_OF_NAV.SPECICALIZED ? true : false;\r\n this.userrole = this._loginService.userValue.user_role_id\r\n this.mst = this._loginService.userValue.username\r\n\r\n this.id = '0'\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer.observe([`(max-width: 800px)`]).subscribe((res) => {\r\n this._showFloatingNoti = res.matches\r\n });\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n }\r\n\r\n Convertdate(text: string): string {\r\n let date: string\r\n date = text.substring(6, 8) + \"-\" + text.substring(4, 6) + \"-\" + text.substring(0, 4)\r\n return date\r\n }\r\n\r\n public getCurrentDate() {\r\n let date = new Date;\r\n return formatDate(date, 'yyyyMMdd', 'en-US');\r\n }\r\n\r\n certificate: Array = new Array();\r\n expirenumber: number;\r\n\r\n getBusinessList() {\r\n this._Service.GetCertificate('FILTER').subscribe(all => {\r\n this.certificate = all.data\r\n\r\n this.certificate.forEach(element => {\r\n if (element.ngay_het_han) {\r\n element.is_het_han = element.ngay_het_han < this.getCurrentDate()\r\n }\r\n else {\r\n element.is_het_han = false\r\n }\r\n });\r\n\r\n this.expirenumber = this.certificate.filter(x => x.is_het_han == true).length\r\n })\r\n }\r\n\r\n public expirecer(status: boolean) {\r\n this._router.navigate(['/specialized/commecial-management/domestic/certificate/' + status]);\r\n }\r\n\r\n id: string\r\n\r\n public loginClick() {\r\n this._router.navigate(['login'], { queryParams: { returnUrl: this._router.url } });\r\n }\r\n\r\n public checkLogin() {\r\n if (localStorage.getItem('currentUser')) {\r\n let data: any = JSON.parse(localStorage.getItem('currentUser'));\r\n this.username = data.full_name;\r\n return true;\r\n }\r\n else return\r\n false;\r\n }\r\n public openAccountDropdown() {\r\n this._eventService.setvalue(!this.open);\r\n this.open = this._eventService.getValue();\r\n }\r\n public openForm(id: string) {\r\n this._router.navigate(['/manager/user/' + id]).then(() => {\r\n window.location.reload()\r\n });\r\n this._eventService.setvalue(false);\r\n this.open = this._eventService.getValue();\r\n }\r\n public openReportModule() {\r\n this._router.navigate(['/report/lris']);\r\n this._eventService.setvalue(false);\r\n this.open = this._eventService.getValue();\r\n }\r\n public openManagerModule() {\r\n this._router.navigate(['/manager/market/domestic/price']);\r\n this._eventService.setvalue(false);\r\n this.open = this._eventService.getValue();\r\n }\r\n public openPublicModule() {\r\n this._router.navigate(['/public/market/domestic/price']);\r\n this._eventService.setvalue(false);\r\n this.open = this._eventService.getValue();\r\n }\r\n public openSpecializedModule() {\r\n this._router.navigate(['/specialized/commecial-management/domestic']);\r\n this._eventService.setvalue(false);\r\n this.open = this._eventService.getValue();\r\n }\r\n public openLogger() {\r\n this._router.navigate(['manager/system-log']);\r\n this._eventService.setvalue(false);\r\n this.open = this._eventService.getValue();\r\n }\r\n\r\n public OpenDetailCompany(mst: string) {\r\n this._router.navigate(['manager/business/edit/' + mst]);\r\n this._eventService.setvalue(false);\r\n this.open = this._eventService.getValue();\r\n }\r\n\r\n public ManageUser(id: string) {\r\n this._router.navigate(['/manager/manage-user/' + id]).then(() => {\r\n window.location.reload();\r\n })\r\n this._eventService.setvalue(false);\r\n this.open = this._eventService.getValue();\r\n }\r\n\r\n public openHome() {\r\n }\r\n\r\n public openDropdown() {\r\n document.getElementById('account-dropdown').setAttribute('style', 'display: block');\r\n }\r\n\r\n public closeDropdown() {\r\n document.getElementById('account-dropdown').setAttribute('style', 'display: none');\r\n }\r\n\r\n public logout() {\r\n this._router.navigate(['/logout']);\r\n }\r\n\r\n public toggleSidebar() {\r\n this.sidebar.toggle();\r\n this._showFloatingNoti = false;\r\n // this.menuIcon = this.menuIcon == 'arrow_forward_ios' ? 'arrow_back_ios': 'arrow_forward_ios';\r\n }\r\n}\r\n","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `.angular-cli.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n apiEndpoint: 'https://milbp_api.vnptbinhphuoc.vn/',\r\n // apiEndpoint: 'http://10.77.160.66:82/',\r\n // apiEndpoint: 'http://localhost:54961/',\r\n // apiEndpoint: 'http://10.77.129.40:8080/',\r\n // apiEndpoint: 'http://192.168.110.66:9091/'\r\n};\r\n","import 'hammerjs';\r\nimport './polyfills';\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","/***************************************************************************************************\r\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\r\n */\r\n// import '@angular/localize/init';\r\n/**\r\n * This file includes polyfills needed by Angular and is loaded before the app.\r\n * You can add your own extra polyfills to this file.\r\n *\r\n * This file is divided into 2 sections:\r\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\r\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\r\n * file.\r\n *\r\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\r\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\r\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\r\n *\r\n * Learn more in https://angular.io/guide/browser-support\r\n */\r\n\r\n/***************************************************************************************************\r\n * BROWSER POLYFILLS\r\n */\r\n\r\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\r\n// import 'classlist.js'; // Run `npm install --save classlist.js`.\r\n\r\n/**\r\n * Web Animations `@angular/platform-browser/animations`\r\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\r\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\r\n */\r\n// import 'web-animations-js'; // Run `npm install --save web-animations-js`.\r\n\r\n/**\r\n * By default, zone.js will patch all possible macroTask and DomEvents\r\n * user can disable parts of macroTask/DomEvents patch by setting following flags\r\n * because those flags need to be set before `zone.js` being loaded, and webpack\r\n * will put import in the top of bundle, so user need to create a separate file\r\n * in this directory (for example: zone-flags.ts), and put the following flags\r\n * into that file, and then add the following code before importing zone.js.\r\n * import './zone-flags.ts';\r\n *\r\n * The flags allowed in zone-flags.ts are listed here.\r\n *\r\n * The following flags will work for all browsers.\r\n *\r\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\r\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\r\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\r\n *\r\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\r\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\r\n *\r\n * (window as any).__Zone_enable_cross_context_check = true;\r\n *\r\n */\r\n\r\n/***************************************************************************************************\r\n * Zone JS is required by default for Angular itself.\r\n */\r\nimport 'zone.js/dist/zone'; // Included with Angular CLI.\r\n// import 'simplebar';\r\n\r\n/***************************************************************************************************\r\n * APPLICATION IMPORTS\r\n */\r\n","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"sourceRoot":"webpack:///"}