{"version":3,"file":"main.js","mappings":"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AG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,MAC/K,CAACT,OAAO,CAAC,CAAC,GAAG,KAAKS,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,MAC/K,CAACT,OAAO,CAAC,CAAC,GAAG,KAAKS,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,MAC/K,CAACT,OAAO,CAAC,CAAC,GAAG,KAAKS,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,MAC/K,CAACT,OAAO,CAAC,CAAC,GAAG,KAAKS,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,IAAI,CAAC,GAAG,KAAKA,IAAI,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","names":["i0","ctx_r5","oxw","ctx_r7","FullLayoutComponent","constructor","configService","layoutService","router","authService","customizerService","document","window","renderer","cdr","deviceService","this","config","templateConf","innerWidth","layoutSub","toggleSidebar$","subscribe","isShow","hideSidebar","overlayContent","toggleSidebar","ngOnInit","getUserPermission","configSub","templateConf$","loadLayout","markForCheck","events","pipe","filter","event","NavigationEnd","routeChange","layout","menuPosition","displayOverlayMenu","toggleSidebarSmallScreen","removeClass","body","menu","then","res","console","log","menuData","detectChanges","catch","err","getUSerPermissionService","allPermissions","permissionGrantedNavigation","getPermissions","moduleName","permissionFor","ngAfterViewInit","setMenuLayout","ngOnDestroy","unsubscribe","addClass","setAttribute","sidebar","collapsed","toString","trim","bgImage","backgroundImage","backgroundImageURL","bgColor","backgroundColor","light_dark_colors","code","isMenuCollapsedOnHover","removeTransparentBGClasses","variant","size","isSmallScreen","navbar","type","isTouchDevice","isMobile","isTablet","hideCompactMenuOnSmallScreen","conf","applyTemplateConfigChange","transparent_colors","forEach","_","class","transparent_colors_with_shade","sidebarMouseenter","e","overlaySidebartoggle","sidebarMouseleave","scrollToTop","scroll","top","left","behavior","onOutsideClick","target","classList","contains","onWrapperClick","isNavbarSeachTextEmpty","checkNavbarSeachTextEmpty","$event","onResize","resizeTimeout","clearTimeout","setTimeout","bind","onWindowScroll","number","pageYOffset","documentElement","scrollTop","isScrollTopVisible","c","DOCUMENT","WINDOW","selectors","ctx","AuthService","http","_firebaseAuth","user","authState","userDetails","forgotPassword","json","post","environment","headers","createHeader","responseType","toPromise","signupUser","email","password","signinUser","username","grant_type","get","localStorage","getItem","logout","signOut","navigate","isAuthenticated","HttpHeaders","token","append","factory","ctx_r8","ctx_r11","ctx_r14","ctx_r17","ctx_r20","ctx_r22","ctx_r24","ctx_r25","CustomizerComponent","EventEmitter","isOpen","customizer","hidden","todayDate","date","Date","month","pad2","getMonth","day","getDate","year","getFullYear","todayShiftDate","checkValidNumber","n","getSumOfSameKey","arr","obj","reduce","acc","ele","key","value","Object","entries","map","changeIntoMainJson","changeArray","a","index","length","indexj","values","push","r","ander","_a","m","bahar","_b","getEmptyJantri","val","B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","A1","A2","A3","A4","A5","A6","A7","A8","A9","A10","changeSidebarWidth","toggleCustomizer","nativeElement","closeCustomizer","bgImageDisplay","isBgImageDisplay","checked","getLastDayOfMonth","setDate","shiftDate","tempDate","split","maxDate","getDaysInMonth","parseInt","checkISstartWithZero","join","charAt","zeroPad","num","places","zero","Array","getProperFormatedDate","changeStringReverce","data","string","substring","setExcellRowsForFinalBalance","rows","apicols","tableCols","tempRows","i","s","tempObj","j","setExcellRows","sumSalesByNumber","inputArray","groupedSales","curr","sale","rest","PipeModule","CommonModule","ShortNamePipe","transform","fullName","pure","ConfigService","setConfigValue","BehaviorSubject","templateConfSubject","asObservable","tempConfig","assign","next","CustomizerService","auth","active","getData","lightDarkLayoutGradientBGColors","getlightDarkLayoutGradientBGColors","lightDarkLayoutSolidBGColors","getlightDarkLayoutSolidBGColors","transparentLayoutBGColors","getTransparentLayoutBGColors","transparentLayoutBGColorsWithShades","GetTransparentLayoutBGColorsWithShades","lightDarkLayoutBGImages","getLightDarkLayoutBGImages","color","light_dark_bg_images","image","src","changeSidebarBGColor","changeSidebarTransparentBGColor","changeSidebarBgImage","toggleCompactMenu","toggleNavbarType","toggleMenuPosition","position","switchLayout","toLowerCase","u","LayoutService","Subject","overlaySidebarToggle","toggleNotiSidebar","toggle","toggleNotificationSidebar","InjectionToken","nativeWindow","Error","WINDOW_PROVIDERS","provide","WindowRef","useClass","super","BrowserWindowRef","useFactory","browserWindowRef","platformId","isPlatformBrowser","deps","PLATFORM_ID","windowProvider","production","baseUrl","ContentLayoutComponent","translate","browserLang","getBrowserLang","use","match","Full_ROUTES","path","loadChildren","Promise","DashboardModule","moduleRoute","UtilitiesModule","ReportsModule","ResultModule","MasterModule","TransectionModule","VoucherModule","AdminModule","TrackModule","DataTablesModule","UIKitModule","UIComponentsModule","CONTENT_ROUTES","ContentPagesModule","AuthGuard","canActivate","route","state","appRoutes","redirectTo","pathMatch","component","title","children","AppRoutingModule","RouterModule","relativeLinkResolution","preloadingStrategy","PreloadAllModules","AppComponent","connectionService","toastr","activatedRoute","titleService","monitor","isConnected","success","error","isHmg31","setTitle","subscription","scrollTo","getChild","location","href","includes","firstChild","scrollBody","direction","datatableBodyElement","querySelector","keyEvent","keyCode","onBlur","name","warning","AutocompleteModule","SharedModule","NgbModule","TranslateModule","FormsModule","OverlayModule","ReactiveFormsModule","PerfectScrollbarModule","ClickOutsideModule","AuthInterceptorService","intercept","request","handle","catchError","status","throwError","LISTITEMS","url","icon","ToggleFullscreenDirective","onClick","screenfull","NavbarComponent","datePipe","FormControl","now","timezoneOffset","toLocaleTimeString","timeZoneName","currentDateTimeWithTimezoneOffset","listItems","logoUrl","transparentBGClass","onSearchKey","searchResults","first","host","add","seachTextEmpty","emit","t","removeActiveClass","remove","onEscEvent","control","setValue","searchOpenClass","onEnter","ChangeLanguage","language","selectedLanguageText","selectedLanguageFlag","ToggleClass","toggleClass","toggleSearchOpenClass","display","searchElement","focus","DatePipe","decls","TopMenuDirective","addLink","link","navlinks","closeOtherLinks","openLink","level","show","onMouseOut","TopMenuDropdownDirective","TopMenuLinkDirective","topNav","_show","openDropdown","TopMenuAnchorToggleDirective","navlink","onMouseOver","ctx_r13","HorizontalMenuComponent","FullLayout","TopMenuDirectives","menuItems","closeMenu","SidebarDirective","sidebarExpanded","navExpanded","_navExpanded","mouseEnter","setSidebarGroupActiveCollapsed","setSidebarGroupActive","hasSub","sidebarGroupActive","open","navCollapsedOpen","matched","find","parent","customAnimations","trigger","style","height","transition","animate","SidebarDropdownDirective","SidebarLinkDirective","sideNav","_open","_sidebarGroupActive","_navCollapsedOpen","SidebarAnchorToggleDirective","ctx_r3","VerticalMenuComponent","evt","createEvent","initEvent","dispatchEvent","overlaySidebarToggle$","collapse","collapseSidebar","onWindowResize","fireRefreshEventOnWindow","CloseSidebar","perfectScrollbarEnable","NotificationSidebarComponent","toggleNotiSidebar$","onClose","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","measurementId","DEFAULT_PERFECT_SCROLLBAR_CONFIG","suppressScrollX","wheelPropagation","TranslateHttpLoader","AppModule","bootstrap","LocationStrategy","HashLocationStrategy","DragulaService","Title","PERFECT_SCROLLBAR_CONFIG","useValue","HTTP_INTERCEPTORS","multi","imports","BrowserAnimationsModule","HttpClientModule","AngularFireModule","AngularFireAuthModule","ToastrModule","BrowserModule","NgxSpinnerModule","loader","TranslateLoader","createTranslateLoader","HttpClient","AgmCoreModule","DragulaModule","v","enableProdMode","__NgCli_bootstrap_1","bootstrapModule"],"sourceRoot":"webpack:///","sources":["./src/app/layouts/full/full-layout.component.html","./src/app/layouts/full/full-layout.component.ts","./src/app/shared/auth/auth.service.ts","./src/app/shared/customizer/customizer.component.html","./src/app/shared/customizer/customizer.component.ts","./src/app/shared/pipes/pipe.module.ts","./src/app/shared/pipes/short-name.pipe.ts","./src/app/shared/services/config.service.ts","./src/app/shared/services/customizer.service.ts","./src/app/shared/services/layout.service.ts","./src/app/shared/services/window.service.ts","./src/environments/environment.ts","./src/app/layouts/content/content-layout.component.ts","./src/app/layouts/content/content-layout.component.html","./src/app/shared/routes/full-layout.routes.ts","./src/app/shared/routes/content-layout.routes.ts","./src/app/shared/auth/auth-guard.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/shared/components/autocomplete/autocomplete.module.ts","./src/app/shared/shared.module.ts","./src/app/auth-interceptor.service.ts","./src/app/shared/data/template-search.ts","./src/app/shared/directives/toggle-fullscreen.directive.ts","./src/app/shared/navbar/navbar.component.html","./src/app/shared/navbar/navbar.component.ts","./src/app/shared/directives/topmenu.directive.ts","./src/app/shared/directives/topmenu-dropdown.directive.ts","./src/app/shared/directives/topmenu-link.directive.ts","./src/app/shared/directives/topmenu-anchor-toggle.directive.ts","./src/app/shared/horizontal-menu/horizontal-menu.component.html","./src/app/shared/horizontal-menu/horizontal-menu.component.ts","./src/app/shared/directives/sidebar.directive.ts","./src/app/shared/animations/custom-animations.ts","./src/app/shared/directives/sidebar-dropdown.directive.ts","./src/app/shared/directives/sidebar-link.directive.ts","./src/app/shared/directives/sidebar-anchor-toggle.directive.ts","./src/app/shared/vertical-menu/vertical-menu.component.html","./src/app/shared/vertical-menu/vertical-menu.component.ts","./src/app/shared/notification-sidebar/notification-sidebar.component.html","./src/app/shared/notification-sidebar/notification-sidebar.component.ts","./src/app/app.module.ts","./src/main.ts"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n Inject,\r\n Renderer2,\r\n AfterViewInit,\r\n OnDestroy,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n HostListener\r\n} from \"@angular/core\";\r\nimport { ConfigService } from \"app/shared/services/config.service\";\r\nimport { DOCUMENT } from \"@angular/common\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { CustomizerService } from 'app/shared/services/customizer.service';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { LayoutService } from 'app/shared/services/layout.service';\r\nimport { WINDOW } from 'app/shared/services/window.service';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { AuthService } from \"app/shared/auth/auth.service\";\r\n\r\n@Component({\r\n selector: \"app-full-layout\",\r\n templateUrl: \"./full-layout.component.html\",\r\n styleUrls: [\"./full-layout.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FullLayoutComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n hideSidebar: boolean = true;\r\n showMenu: boolean = true;\r\n overlayContent = false;\r\n configSub: Subscription;\r\n layoutSub: Subscription;\r\n bgImage: string;\r\n bgColor: string;\r\n isSmallScreen = false;\r\n menuPosition = 'Side';\r\n displayOverlayMenu = false; // Vertical Side menu for screenSize < 1200\r\n public config: any = {};\r\n public innerWidth: any;\r\n isMenuCollapsedOnHover = false;\r\n isNavbarSeachTextEmpty = true;\r\n isScrollTopVisible = false;\r\n resizeTimeout;\r\n menuData: any[] = [];\r\n allPermissions: any;\r\n constructor(\r\n private configService: ConfigService,\r\n private layoutService: LayoutService,\r\n private router: Router,\r\n private authService: AuthService,\r\n private customizerService: CustomizerService,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(WINDOW) private window: Window,\r\n private renderer: Renderer2,\r\n private cdr: ChangeDetectorRef,\r\n private deviceService: DeviceDetectorService\r\n ) {\r\n\r\n this.config = this.configService.templateConf;\r\n this.innerWidth = window.innerWidth;\r\n\r\n // On toggle sidebar menu\r\n this.layoutSub = layoutService.toggleSidebar$.subscribe(\r\n isShow => {\r\n this.hideSidebar = !isShow;\r\n if(this.hideSidebar) {\r\n this.overlayContent = false;\r\n } else {\r\n this.overlayContent = true;\r\n }\r\n this.toggleSidebar();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getUserPermission()\r\n this.configSub = this.configService.templateConf$.subscribe((templateConf) => {\r\n if (templateConf) {\r\n this.config = templateConf;\r\n }\r\n //load layout\r\n this.loadLayout();\r\n this.cdr.markForCheck();\r\n });\r\n\r\n //hide overlay class on router change\r\n this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe((routeChange) => {\r\n if (this.config.layout.menuPosition === \"Side\" || this.displayOverlayMenu) { // Vertical Menu\r\n if (this.innerWidth < 1200) {\r\n this.layoutService.toggleSidebarSmallScreen(false);\r\n this.overlayContent = false;\r\n this.renderer.removeClass(this.document.body, \"overflow-hidden\");\r\n }\r\n }\r\n });\r\n\r\n\r\n\r\n\r\n this.customizerService.menu()\r\n .then((res : any) => {\r\n console.log(res);\r\n this.menuData = res;\r\n this.cdr.detectChanges();\r\n })\r\n .catch((err) => {\r\n }\r\n );\r\n }\r\n getUserPermission(){\r\n\r\n this.authService.getUSerPermissionService()\r\n .then((res) => {\r\n this.allPermissions= res['permissionGrantedNavigation']\r\n })\r\n .catch((err) => {\r\n\r\n }\r\n );\r\n\r\n }\r\n getPermissions(moduleName,permissionFor){\r\n return true\r\n // if(this.allPermissions && this.allPermissions.length>0){\r\n // let obj= this.allPermissions.fin(item=>item.moduleName=moduleName)\r\n // if(obj){\r\n // return obj[permissionFor]\r\n // }else{\r\n // return false;\r\n // }\r\n // }\r\n\r\n }\r\n ngAfterViewInit() {\r\n this.setMenuLayout();\r\n }\r\n\r\n ngOnDestroy() {\r\n //Unsubcribe subscriptions\r\n if (this.configSub) {\r\n this.configSub.unsubscribe();\r\n }\r\n if (this.layoutSub) {\r\n this.layoutSub.unsubscribe();\r\n }\r\n }\r\n\r\n //adjust layout\r\n setMenuLayout() {\r\n this.overlayContent = false;\r\n this.renderer.removeClass(this.document.body, \"blank-page\");\r\n if (this.config.layout.menuPosition === \"Top\") { // Horizontal Menu\r\n if (this.innerWidth < 1200) { // Screen size < 1200\r\n this.displayOverlayMenu = true;\r\n this.hideSidebar = true;\r\n this.renderer.removeClass(this.document.body, \"horizontal-menu\");\r\n this.renderer.removeClass(this.document.body, \"menu-open\");\r\n\r\n this.renderer.addClass(this.document.body, \"horizontal-layout\");\r\n this.renderer.addClass(this.document.body, \"horizontal-menu-padding\");\r\n this.renderer.addClass(this.document.body, \"vertical-layout\");\r\n this.renderer.addClass(this.document.body, \"vertical-overlay-menu\");\r\n this.renderer.addClass(this.document.body, \"fixed-navbar\");\r\n this.renderer.addClass(this.document.body, \"menu-hide\");\r\n }\r\n else { // Screen size > 1200\r\n this.displayOverlayMenu = false;\r\n this.hideSidebar = false;\r\n this.renderer.setAttribute(this.document.body, \"data-menu\", \"horizontal-menu\");\r\n this.renderer.removeClass(this.document.body, \"vertical-layout\");\r\n this.renderer.removeClass(this.document.body, \"vertical-overlay-menu\");\r\n this.renderer.removeClass(this.document.body, \"fixed-navbar\");\r\n this.renderer.removeClass(this.document.body, \"menu-hide\");\r\n this.renderer.removeClass(this.document.body, \"vertical-menu\");\r\n // this.renderer.removeClass(this.document.body, \"blank-page\");\r\n this.renderer.addClass(this.document.body, \"horizontal-menu\");\r\n this.renderer.addClass(this.document.body, \"horizontal-layout\");\r\n this.renderer.addClass(this.document.body, \"horizontal-menu-padding\");\r\n }\r\n }\r\n else if (this.config.layout.menuPosition === \"Side\") { // Vertical Menu\r\n if (this.innerWidth < 1200) { // If Screen size < 1200\r\n this.displayOverlayMenu = true;\r\n this.renderer.removeClass(this.document.body, \"horizontal-layout\");\r\n this.renderer.removeClass(this.document.body, \"horizontal-menu\");\r\n this.renderer.removeClass(this.document.body, \"horizontal-menu-padding\");\r\n this.renderer.removeClass(this.document.body, \"menu-expanded\");\r\n this.renderer.removeClass(this.document.body, \"vertical-menu\");\r\n this.renderer.removeClass(this.document.body, \"menu-open\");\r\n this.renderer.removeClass(this.document.body, \"nav-collapsed\");\r\n\r\n this.renderer.addClass(this.document.body, \"vertical-layout\");\r\n this.renderer.addClass(this.document.body, \"menu-hide\");\r\n\r\n }\r\n else { // If Screen size > 1200\r\n this.displayOverlayMenu = false;\r\n\r\n this.renderer.removeClass(this.document.body, \"horizontal-layout\");\r\n this.renderer.removeClass(this.document.body, \"horizontal-menu\");\r\n this.renderer.removeClass(this.document.body, \"horizontal-menu-padding\");\r\n // this.renderer.removeClass(this.document.body, \"blank-page\");\r\n\r\n this.renderer.setAttribute(this.document.body, \"data-menu\", \"vertical-menu\");\r\n this.renderer.addClass(this.document.body, \"vertical-layout\");\r\n if (!this.config.layout.sidebar.collapsed) {\r\n this.renderer.addClass(this.document.body, \"menu-expanded\");\r\n this.renderer.addClass(this.document.body, \"menu-open\");\r\n }\r\n this.renderer.addClass(this.document.body, \"vertical-menu\");\r\n this.renderer.removeClass(this.document.body, \"menu-hide\");\r\n this.renderer.removeClass(this.document.body, \"vertical-overlay-menu\");\r\n }\r\n }\r\n }\r\n\r\n\r\n loadLayout() {\r\n\r\n //menu position \"SIDE\" or \"TOP\"\r\n if (this.config.layout.menuPosition && this.config.layout.menuPosition.toString().trim() != \"\") {\r\n this.menuPosition = this.config.layout.menuPosition;\r\n }\r\n\r\n //Hide/show sidebar menu background image\r\n if (!this.config.layout.sidebar.backgroundImage) {\r\n this.bgImage = \"\";\r\n } else {\r\n this.bgImage = this.config.layout.sidebar.backgroundImageURL;\r\n }\r\n\r\n //Set sidebar menu background color\r\n if (!this.config.layout.sidebar.backgroundColor) {\r\n this.bgColor = this.customizerService.light_dark_colors[7].code;\r\n } else {\r\n this.bgColor = this.config.layout.sidebar.backgroundColor;\r\n }\r\n\r\n //toggle side menu\r\n if (this.config.layout.menuPosition === \"Side\") {\r\n if (this.config.layout.sidebar.collapsed) {\r\n this.isMenuCollapsedOnHover = true;\r\n }\r\n else {\r\n this.isMenuCollapsedOnHover = true;\r\n }\r\n this.toggleSidebar();\r\n }\r\n\r\n this.removeTransparentBGClasses();\r\n\r\n // Layout variants\r\n if (this.config.layout.variant === \"Light\") {\r\n this.renderer.removeClass(this.document.body, \"layout-dark\");\r\n this.renderer.removeClass(this.document.body, \"layout-transparent\");\r\n }\r\n else if (this.config.layout.variant === \"Dark\") {\r\n this.renderer.removeClass(this.document.body, \"layout-transparent\");\r\n this.renderer.addClass(this.document.body, \"layout-dark\");\r\n }\r\n else if (this.config.layout.variant === \"Transparent\") {\r\n this.renderer.addClass(this.document.body, \"layout-dark\");\r\n this.renderer.addClass(this.document.body, \"layout-transparent\");\r\n this.renderer.addClass(this.document.body, this.bgColor);\r\n this.bgImage = \"\";\r\n }\r\n\r\n this.setMenuLayout();\r\n\r\n // For Sidebar width\r\n if (this.config.layout.sidebar.size === 'sidebar-sm') {\r\n this.renderer.removeClass(this.document.body, \"sidebar-lg\");\r\n this.renderer.addClass(this.document.body, \"sidebar-sm\");\r\n }\r\n else if (this.config.layout.sidebar.size === 'sidebar-lg') {\r\n this.renderer.removeClass(this.document.body, \"sidebar-sm\");\r\n this.renderer.addClass(this.document.body, \"sidebar-lg\");\r\n }\r\n else {\r\n this.renderer.removeClass(this.document.body, \"sidebar-sm\");\r\n this.renderer.removeClass(this.document.body, \"sidebar-lg\");\r\n }\r\n\r\n if (this.config.layout.menuPosition === \"Side\") {\r\n // vertical/Side menu expanded/collapse\r\n if (this.config.layout.sidebar.collapsed && !this.isSmallScreen) { // collapse side menu\r\n this.renderer.removeClass(this.document.body, \"menu-expanded\");\r\n this.renderer.addClass(this.document.body, \"nav-collapsed\");\r\n }\r\n else { // expand side menu\r\n this.renderer.removeClass(this.document.body, \"nav-collapsed\");\r\n this.renderer.addClass(this.document.body, \"menu-expanded\");\r\n }\r\n }\r\n\r\n //Navbar types\r\n if (this.config.layout.navbar.type === 'Static') {\r\n this.renderer.removeClass(this.document.body, \"navbar-sticky\");\r\n this.renderer.addClass(this.document.body, \"navbar-static\");\r\n }\r\n else if (this.config.layout.navbar.type === 'Fixed') {\r\n this.renderer.removeClass(this.document.body, \"navbar-static\");\r\n this.renderer.addClass(this.document.body, \"navbar-sticky\");\r\n }\r\n\r\n }\r\n\r\n toggleSidebar() {\r\n if (this.hideSidebar) { // on sidebar collapse\r\n this.renderer.removeClass(this.document.body, \"menu-expanded\");\r\n this.renderer.removeClass(this.document.body, \"vertical-menu\");\r\n this.renderer.removeClass(this.document.body, \"menu-open\");\r\n\r\n this.renderer.addClass(this.document.body, \"vertical-layout\");\r\n this.renderer.addClass(this.document.body, \"menu-hide\");\r\n\r\n if (this.config.layout.menuPosition === \"Top\") {\r\n this.renderer.addClass(this.document.body, \"vertical-overlay-menu\");\r\n }\r\n }\r\n else { // on sidebar expand\r\n this.renderer.addClass(this.document.body, \"vertical-layout\");\r\n this.renderer.addClass(this.document.body, \"menu-expanded\");\r\n this.renderer.addClass(this.document.body, \"vertical-menu\");\r\n if (this.config.layout.sidebar.collapsed) {\r\n this.renderer.removeClass(this.document.body, \"menu-open\");\r\n }\r\n else {\r\n this.renderer.addClass(this.document.body, \"menu-open\");\r\n }\r\n this.renderer.removeClass(this.document.body, \"menu-hide\");\r\n }\r\n this.isTouchDevice();\r\n }\r\n\r\n isTouchDevice() {\r\n\r\n const isMobile = this.deviceService.isMobile();\r\n const isTablet = this.deviceService.isTablet();\r\n\r\n if (isMobile || isTablet) {\r\n if(!this.hideSidebar){\r\n this.renderer.addClass(this.document.body, \"overflow-hidden\");\r\n } else {\r\n this.renderer.removeClass(this.document.body, \"overflow-hidden\");\r\n }\r\n }\r\n\r\n }\r\n\r\n hideCompactMenuOnSmallScreen() {\r\n if (this.innerWidth < 1200) {\r\n let conf = this.config;\r\n conf.layout.sidebar.collapsed = false;\r\n this.configService.applyTemplateConfigChange({ layout: conf.layout });\r\n }\r\n }\r\n\r\n //Remove transparent layout classes\r\n removeTransparentBGClasses() {\r\n this.customizerService.transparent_colors.forEach(_ => {\r\n this.renderer.removeClass(this.document.body, _.class);\r\n });\r\n\r\n this.customizerService.transparent_colors_with_shade.forEach(_ => {\r\n this.renderer.removeClass(this.document.body, _.class);\r\n });\r\n }\r\n\r\n sidebarMouseenter(e) {\r\n if (this.config.layout.sidebar.collapsed) {\r\n this.isMenuCollapsedOnHover = false;\r\n this.layoutService.overlaySidebartoggle(this.isMenuCollapsedOnHover);\r\n }\r\n }\r\n\r\n sidebarMouseleave(e) {\r\n if (this.config.layout.sidebar.collapsed) {\r\n this.isMenuCollapsedOnHover = true;\r\n this.layoutService.overlaySidebartoggle(this.isMenuCollapsedOnHover);\r\n }\r\n }\r\n\r\n //scroll to top on click\r\n scrollToTop() {\r\n window.scroll({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n\r\n onOutsideClick(e) {\r\n if (this.innerWidth < 1200) {\r\n if (\r\n !e.target.classList.contains(\"toggleSidebarNavbarButton\")\r\n ) {\r\n this.layoutService.toggleSidebarSmallScreen(false);\r\n }\r\n }\r\n }\r\n\r\n onWrapperClick() {\r\n this.isNavbarSeachTextEmpty = true;\r\n }\r\n\r\n checkNavbarSeachTextEmpty($event) {\r\n this.isNavbarSeachTextEmpty = $event;\r\n }\r\n\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n if (this.resizeTimeout) {\r\n clearTimeout(this.resizeTimeout);\r\n }\r\n this.resizeTimeout = setTimeout((() => {\r\n this.innerWidth = event.target.innerWidth;\r\n this.setMenuLayout();\r\n this.hideCompactMenuOnSmallScreen();\r\n }).bind(this), 500);\r\n }\r\n\r\n\r\n //Add/remove classes on page scroll\r\n @HostListener(\"window:scroll\", [])\r\n onWindowScroll() {\r\n let number = this.window.pageYOffset || this.document.documentElement.scrollTop || this.document.body.scrollTop || 0;\r\n if (number > 60) {\r\n this.renderer.addClass(this.document.body, \"navbar-scrolled\");\r\n } else {\r\n this.renderer.removeClass(this.document.body, \"navbar-scrolled\");\r\n }\r\n\r\n if (number > 400) {\r\n this.isScrollTopVisible = true;\r\n } else {\r\n this.isScrollTopVisible = false;\r\n }\r\n\r\n if (number > 20) {\r\n this.renderer.addClass(this.document.body, \"page-scrolled\");\r\n } else {\r\n this.renderer.removeClass(this.document.body, \"page-scrolled\");\r\n }\r\n }\r\n\r\n // @HostListener('document:keypress', ['$event'])\r\n // handleKeyboardEvent(event: KeyboardEvent) {\r\n // if(event.key == 'Enter' && event.code == 'KeyM'){\r\n // this.showMenu = !this.showMenu;\r\n // }\r\n // }\r\n\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\nimport { AngularFireAuth } from \"@angular/fire/auth\";\r\nimport firebase from 'firebase/app'\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../../environments/environment';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n private user: Observable;\r\n private userDetails: firebase.User = null;\r\n\r\n constructor(private http: HttpClient,public _firebaseAuth: AngularFireAuth, public router: Router) {\r\n\r\n this.user = _firebaseAuth.authState;\r\n this.user.subscribe(\r\n (user) => {\r\n if (user) {\r\n this.userDetails = user;\r\n }\r\n else {\r\n this.userDetails = null;\r\n }\r\n }\r\n );\r\n\r\n }\r\n\r\n forgotPassword(json){\r\n return this.http.post(environment.baseUrl + 'User/ChangePassword', json, { headers: this.createHeader(), responseType: 'text' }).toPromise();\r\n\r\n\r\n }\r\n\r\n signupUser(email: string, password: string) {\r\n //your code for signing up the new user\r\n }\r\n\r\n signinUser(email: string, password: string) {\r\n //your code for checking credentials and getting tokens for for signing in user\r\n // return this._firebaseAuth.signInWithEmailAndPassword(email, password)\r\n\r\n //uncomment above firebase auth code and remove this temp code\r\n // return new Promise((resolve, reject) => {\r\n return this.http.post(environment.baseUrl + 'token/auth', {username:email,password:password,grant_type: \"password\"}).toPromise();\r\n // });\r\n\r\n }\r\n\r\n getUSerPermissionService() {\r\n //your code for checking credentials and getting tokens for for signing in user\r\n // return this._firebaseAuth.signInWithEmailAndPassword(email, password)\r\n\r\n //uncomment above firebase auth code and remove this temp code\r\n // return new Promise((resolve, reject) => {\r\n\r\n return this.http.get(environment.baseUrl + 'Permission/GetAllUserPermissions?userId=' + localStorage.getItem('userID'),{ headers: this.createHeader()}).toPromise();\r\n // });\r\n\r\n }\r\n\r\n\r\n\r\n logout() {\r\n this._firebaseAuth.signOut();\r\n this.router.navigate(['YOUR_LOGOUT_URL']);\r\n }\r\n\r\n isAuthenticated() {\r\n return true;\r\n }\r\n createHeader() {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let token = localStorage.getItem('token');\r\n if (token) {\r\n headers= headers.append('Authorization', 'Bearer ' + token);\r\n }\r\n return headers;\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n

Theme Customizer

\r\n

Customize & Preview in Real Time

\r\n \r\n
\r\n
\r\n
Layout Options\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
Navigation\r\n Options
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Navbar\r\n Type
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Sidebar\r\n Color Options
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Background Colors\r\n with Shades
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
Sidebar Bg\r\n Image
\r\n
\r\n
\r\n \"sidebar\r\n
\r\n
\r\n \r\n
\r\n
Background Colors
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
Sidebar Bg Image\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
Compact Menu\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n

Sidebar Width

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n Output,\r\n EventEmitter,\r\n OnDestroy,\r\n ViewChild,\r\n ElementRef,\r\n Renderer2\r\n} from \"@angular/core\";\r\nimport { ConfigService } from \"../services/config.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { CustomizerService } from '../services/customizer.service';\r\n\r\n@Component({\r\n selector: \"app-customizer\",\r\n templateUrl: \"./customizer.component.html\",\r\n styleUrls: [\"./customizer.component.scss\"]\r\n})\r\nexport class CustomizerComponent implements OnInit, OnDestroy {\r\n @ViewChild(\"customizer\") customizer: ElementRef;\r\n\r\n size: string;\r\n isBgImageDisplay: boolean = true;\r\n isOpen = true;\r\n public config: any = {};\r\n layoutSub: Subscription;\r\n\r\n constructor(\r\n private renderer: Renderer2,\r\n private configService: ConfigService,\r\n public customizerService: CustomizerService,\r\n ) {\r\n\r\n this.config = this.configService.templateConf;\r\n this.isOpen = !this.config.layout.customizer.hidden;\r\n\r\n if (this.config.layout.sidebar.size) {\r\n this.size = this.config.layout.sidebar.size;\r\n }\r\n }\r\n\r\n @Output() directionEvent = new EventEmitter();\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n todayDate(){\r\n let date = new Date();\r\n let month = this.pad2(date.getMonth() + 1);//months (0-11)\r\n let day = this.pad2(date.getDate());//day (1-31)\r\n let year = date.getFullYear();\r\n let todayDate = year + \"-\" + month + \"-\" + day;\r\n return todayDate\r\n\r\n }\r\n todayShiftDate(date){\r\n\r\n let month = this.pad2(date.getMonth() + 1);//months (0-11)\r\n let day = this.pad2(date.getDate());//day (1-31)\r\n let year = date.getFullYear();\r\n let todayDate = year + \"-\" + month + \"-\" + day;\r\n return todayDate\r\n\r\n }\r\n checkValidNumber(){\r\n let validArray= ['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','']\r\n }\r\n pad2(n) {\r\n return (n < 10 ? '0' : '') + n;\r\n }\r\n getSumOfSameKey(arr: any) {\r\n let obj = arr.reduce((acc: any, ele: any) => {\r\n let [key, value] = Object.entries(ele)[0];\r\n\r\n acc[key] = acc[key] ? acc[key] + value : value;\r\n return acc;\r\n }, {});\r\n\r\n return Object.entries(obj).map(([key, value]) => ({ [key]: value }));\r\n }\r\n\r\n\r\n changeIntoMainJson(changeArray) {\r\n let a = []\r\n for (let index = 0; index < changeArray['number'].length; index++) {\r\n for (let indexj = 0; indexj < changeArray['number'][index]['values'].length; indexj++) {\r\n a.push(changeArray['number'][index]['values'][indexj])\r\n\r\n }\r\n\r\n }\r\n for (let index = 0; index < changeArray['ander']?.length; index++) {\r\n a.push(changeArray['ander'][index])\r\n }\r\n for (let index = 0; index < changeArray['bahar']?.length; index++) {\r\n a.push(changeArray['bahar'][index])\r\n }\r\n\r\n console.log(a)\r\n\r\n return a\r\n\r\n }\r\n getEmptyJantri(){\r\n return [{\r\n number:[{values:[{1:null,val:1},{2:null,val:2},{3:null,val:3},{4:null,val:4},{5:null,val:5},{6:null,val:6},{7:null,val:7},{8:null,val:8},{9:null,val:9},{10:null,val:10}]},\r\n {values:[{11:null,val:11},{12:null,val:12},{13:null,val:13},{14:null,val:14},{15:null,val:15},{16:null,val:16},{17:null,val:17},{18:null,val:18},{19:null,val:19},{20:null,val:20}]},\r\n {values:[{21:null,val:21},{22:null,val:22},{23:null,val:23},{24:null,val:24},{25:null,val:25},{26:null,val:26},{27:null,val:27},{28:null,val:28},{29:null,val:29},{30:null,val:30}]},\r\n {values:[{31:null,val:31},{32:null,val:32},{33:null,val:33},{34:null,val:34},{35:null,val:35},{36:null,val:36},{37:null,val:37},{38:null,val:38},{39:null,val:39},{40:null,val:40}]},\r\n {values:[{41:null,val:41},{42:null,val:42},{43:null,val:43},{44:null,val:44},{45:null,val:45},{46:null,val:46},{47:null,val:47},{48:null,val:48},{49:null,val:49},{50:null,val:50}]},\r\n {values:[{51:null,val:51},{52:null,val:52},{53:null,val:53},{54:null,val:54},{55:null,val:55},{56:null,val:56},{57:null,val:57},{58:null,val:58},{59:null,val:59},{60:null,val:60}]},\r\n {values:[{61:null,val:61},{62:null,val:62},{63:null,val:63},{64:null,val:64},{65:null,val:65},{66:null,val:66},{67:null,val:67},{68:null,val:68},{69:null,val:69},{70:null,val:70}]},\r\n {values:[{71:null,val:71},{72:null,val:72},{73:null,val:73},{74:null,val:74},{75:null,val:75},{76:null,val:76},{77:null,val:77},{78:null,val:78},{79:null,val:79},{80:null,val:80}]},\r\n {values:[{81:null,val:81},{82:null,val:82},{83:null,val:83},{84:null,val:84},{85:null,val:85},{86:null,val:86},{87:null,val:87},{88:null,val:88},{89:null,val:89},{90:null,val:90}]},\r\n {values:[{91:null,val:91},{92:null,val:92},{93:null,val:93},{94:null,val:94},{95:null,val:95},{96:null,val:96},{97:null,val:97},{98:null,val:98},{99:null,val:99},{100:null,val:100}]}],\r\n bahar:[{B1:null,val:'B1'},{B2:null,val:'B2'},{B3:null,val:'B3'},{B4:null,val:'B4'},{B5:null,val:'B5'},{B6:null,val:'B6'},{B7:null,val:'B7'},{B8:null,val:'B8'},{B9:null,val:'B9'},{B10:null,val:'B10'}],\r\n ander:[{A1:null,val:'A1'},{A2:null,val:'A2'},{A3:null,val:'A3'},{A4:null,val:'A4'},{A5:null,val:'A5'},{A6:null,val:'A6'},{A7:null,val:'A7'},{A8:null,val:'A8'},{A9:null,val:'A9'},{A10:null,val:'A10'}],\r\n\r\n }\r\n\r\n ]\r\n }\r\n\r\n changeSidebarWidth(value) {\r\n this.size = value;\r\n this.customizerService.changeSidebarWidth(value);\r\n }\r\n\r\n toggleCustomizer() {\r\n if (this.isOpen) {\r\n this.renderer.removeClass(this.customizer.nativeElement, \"open\");\r\n this.isOpen = false;\r\n } else {\r\n this.renderer.addClass(this.customizer.nativeElement, \"open\");\r\n this.isOpen = true;\r\n }\r\n }\r\n\r\n closeCustomizer() {\r\n this.renderer.removeClass(this.customizer.nativeElement, \"open\");\r\n this.isOpen = false;\r\n }\r\n\r\n bgImageDisplay(e) {\r\n if (e.target.checked) {\r\n this.isBgImageDisplay = true;\r\n } else {\r\n this.isBgImageDisplay = false;\r\n }\r\n //emit event to FUll Layout\r\n this.customizerService.bgImageDisplay(e);\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n if (this.layoutSub) {\r\n this.layoutSub.unsubscribe();\r\n }\r\n }\r\n getLastDayOfMonth(year, month) {\r\n return new Date(year, month + 1, 0).getDate();\r\n}\r\n\r\n\r\n\r\n\r\n setDate(value, shiftDate, type) {\r\n console.log('value is', value);\r\n\r\n let tempDate = shiftDate.split('-');\r\n if(type == 'DD') {\r\n const maxDate = this.getDaysInMonth(parseInt(tempDate[1]), parseInt(tempDate[0]))\r\n if(parseInt(value) < 10){\r\n if(this.checkISstartWithZero(value)){\r\n value = value;\r\n }else{\r\n value = '0' + value;\r\n }\r\n\r\n }\r\n if (parseInt(value) > maxDate) {\r\n tempDate[2] = maxDate;\r\n } else{\r\n tempDate[2] = value ;\r\n }\r\n } else if(type == 'MM') {\r\n if(parseInt(value) < 10){\r\n if(this.checkISstartWithZero(value)){\r\n value = value;\r\n }else{\r\n value = '0' + value;\r\n }\r\n\r\n }\r\n if (parseInt(value) > 12) {\r\n tempDate[1] = '12';\r\n } else{\r\n tempDate[1] = value ;\r\n }\r\n const maxDate = this.getDaysInMonth(parseInt(tempDate[1]), parseInt(tempDate[0]))\r\n if (parseInt(tempDate[2]) > maxDate) {\r\n tempDate[2] = maxDate;\r\n }\r\n } else if(type == 'YY') {\r\n tempDate[0] = value ;\r\n const maxDate = this.getDaysInMonth(parseInt(tempDate[1]), parseInt(tempDate[0]))\r\n if(parseInt(value) < 10){\r\n value = '0' + value;\r\n }\r\n if (parseInt(tempDate[2]) > maxDate) {\r\n tempDate[2] = maxDate;\r\n }\r\n }\r\n// let a = Number(tempDate[2])==this.getLastDayOfMonth(Number(tempDate[0]), Number(tempDate[1]))\r\n// let b = Number(tempDate[2])\r\n// let c = this.getLastDayOfMonth(Number(tempDate[0]), Number(tempDate[1]))\r\n// if( Number(tempDate[2])==this.getLastDayOfMonth(Number(tempDate[0]), Number(tempDate[1]))){\r\n// let tempLastDate =tempDate\r\n// tempDate[2] = Number(tempLastDate[2])-1\r\n// shiftDate = tempDate.join(\"-\");\r\n// }else{\r\n shiftDate = tempDate.join(\"-\");\r\n// }\r\n\r\n \r\n return shiftDate\r\n }\r\n checkISstartWithZero(value:any){\r\n if(value.charAt(0)==\"0\"){\r\n return true\r\n }else{\r\n return false\r\n }\r\n\r\n }\r\n zeroPad(num, places) {\r\n var zero = places - num.toString().length + 1;\r\n return Array(+(zero > 0 && zero)).join(\"0\") + num;\r\n }\r\n getProperFormatedDate(shiftDate, type) {\r\n if(shiftDate){\r\n let tempDate = shiftDate.split('-');\r\n if(type == 'DD') {\r\n return tempDate[2];\r\n } else if(type == 'MM') {\r\n return tempDate[1];\r\n } else if(type == 'YY') {\r\n return tempDate[0];\r\n }\r\n }\r\n }\r\n\r\n getDaysInMonth(month,year) {\r\n return new Date(year, month, 0).getDate();\r\n };\r\n\r\n changeStringReverce(data){\r\n let string = data.toString() \r\nif(string < 0){ \r\nlet balance = string.substring(1) + ' Cr' \r\nreturn balance\r\n} else if(string > 0) {\r\n return data.toString() + ' Dr'\r\n}else{\r\n return data\r\n}\r\n }\r\n setExcellRowsForFinalBalance(rows, apicols, tableCols) {\r\n let tempRows = [];\r\n for(let i =0;i< rows?.length;i++){\r\n let tempObj = {};\r\n for(let j =0;j< apicols?.length;j++){\r\n if (apicols[j] === 'closing') {\r\n tempObj[tableCols[j]] =rows[i][apicols[j]] > 0 ? this.changeStringReverce(rows[i][apicols[j]]): this.changeStringReverce(rows[i][apicols[j]]);;\r\n break;\r\n }else{\r\n\r\n tempObj[tableCols[j]] = apicols[j] == 'SR' ? i + 1 : rows[i][apicols[j]];\r\n }\r\n }\r\n tempRows.push(tempObj);\r\n }\r\n console.log(tempRows);\r\n return tempRows;\r\n }\r\n setExcellRows(rows, apicols, tableCols) {\r\n let tempRows = [];\r\n for(let i =0;i< rows?.length;i++){\r\n let tempObj = {};\r\n for(let j =0;j< apicols?.length;j++){\r\n tempObj[tableCols[j]] = apicols[j] == 'SR' ? i + 1 : rows[i][apicols[j]];\r\n }\r\n tempRows.push(tempObj);\r\n }\r\n console.log(tempRows);\r\n return tempRows;\r\n }\r\n sumSalesByNumber(inputArray:any){\r\n const groupedSales = inputArray.reduce((acc, curr) => {\r\n const { number, sale, ...rest } = curr;\r\n if (acc[number]) {\r\n acc[number].sale += sale;\r\n } else {\r\n acc[number] = { number, sale, ...rest };\r\n }\r\n return acc;\r\n }, {});\r\n return Object.values(groupedSales);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport { FilterPipe } from './filter.pipe';\r\nimport { SearchPipe } from './search.pipe';\r\nimport { ShortNamePipe } from './short-name.pipe';\r\n\r\n@NgModule({\r\n declarations:[FilterPipe, SearchPipe, ShortNamePipe],\r\n imports:[CommonModule],\r\n exports:[FilterPipe, SearchPipe, ShortNamePipe]\r\n})\r\n\r\nexport class PipeModule{}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'shortName'\r\n})\r\nexport class ShortNamePipe implements PipeTransform {\r\n transform(fullName: string): any {\r\n return fullName\r\n .split(' ')\r\n .map((n) => n[0])\r\n .join('');\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\nexport interface ITemplateConfig\r\n{\r\n layout: {\r\n variant: string; // options: Dark, Light & Transparent\r\n menuPosition: string; // options: Side, Top (Note: Use 'Side' for Vertical Menu & 'Top' for Horizontal Menu )\r\n customizer: {\r\n hidden: boolean; // options: true, false\r\n };\r\n navbar: {\r\n type: string; // options: Static & Fixed\r\n }\r\n sidebar: { //Options for Vertical Side menu\r\n collapsed: boolean; // options: true, false\r\n size: string; // Options: 'sidebar-lg', 'sidebar-md', 'sidebar-sm'\r\n backgroundColor: string; // Options: 'black', 'pomegranate', 'king-yna', 'ibiza-sunset', 'flickr', 'purple-bliss', 'man-of-steel', 'purple-love'\r\n\r\n /* If you want transparent layout add any of the following mentioned classes to backgroundColor of sidebar option :\r\n bg-glass-1, bg-glass-2, bg-glass-3, bg-glass-4, bg-hibiscus, bg-purple-pizzaz, bg-blue-lagoon, bg-electric-viloet, bg-protage, bg-tundora\r\n */\r\n backgroundImage: boolean; // Options: true, false | Set true to show background image\r\n backgroundImageURL: string;\r\n }\r\n };\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class ConfigService {\r\n public templateConf: ITemplateConfig = this.setConfigValue();\r\n templateConfSubject = new BehaviorSubject(this.templateConf);\r\n templateConf$ = this.templateConfSubject.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n // Default configurations for Light layout. Please check *customizer.service.ts* for different colors and bg images options\r\n\r\n setConfigValue() {\r\n return this.templateConf = {\r\n layout: {\r\n variant: \"Light\",\r\n menuPosition: \"Top\",\r\n customizer: {\r\n hidden: true\r\n },\r\n navbar: {\r\n type: 'Static'\r\n },\r\n sidebar: {\r\n collapsed: false,\r\n size: \"sidebar-md\",\r\n backgroundColor: \"man-of-steel\",\r\n backgroundImage: true,\r\n backgroundImageURL: \"\"\r\n }\r\n }\r\n };\r\n }\r\n\r\n // Default configurations for Dark layout. Please check *customizer.service.ts* for different colors and bg images options\r\n\r\n // setConfigValue() {\r\n // return this.templateConf = {\r\n // layout: {\r\n // variant: \"Dark\",\r\n // menuPosition: \"Side\",\r\n // customizer: {\r\n // hidden: true\r\n // },\r\n // navbar: {\r\n // type: 'Static'\r\n // },\r\n // sidebar: {\r\n // collapsed: false,\r\n // size: \"sidebar-md\",\r\n // backgroundColor: \"black\",\r\n // backgroundImage: true,\r\n // backgroundImageURL: \"assets/img/sidebar-bg/01.jpg\"\r\n // }\r\n // }\r\n // };\r\n // }\r\n\r\n // Default configurations for Transparent layout. Please check *customizer.service.ts* for different colors and bg images options\r\n\r\n // setConfigValue() {\r\n // return this.templateConf = {\r\n // layout: {\r\n // variant: \"Transparent\",\r\n // menuPosition: \"Side\",\r\n // customizer: {\r\n // hidden: true\r\n // },\r\n // navbar: {\r\n // type: 'Static'\r\n // },\r\n // sidebar: {\r\n // collapsed: false,\r\n // size: \"sidebar-md\",\r\n // backgroundColor: \"bg-glass-1\",\r\n // backgroundImage: true,\r\n // backgroundImageURL: \"\"\r\n // }\r\n // }\r\n // };\r\n // }\r\n\r\n\r\n applyTemplateConfigChange(tempConfig: ITemplateConfig) {\r\n this.templateConf = Object.assign(this.templateConf, tempConfig);\r\n this.templateConfSubject.next(this.templateConf);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ConfigService } from './config.service';\r\nimport { _ } from 'core-js';\r\nimport { AuthService } from '../auth/auth.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'environments/environment';\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class CustomizerService {\r\n\r\n // sidebar BG colors for Light & Dark Layout\r\n light_dark_colors = [\r\n {\r\n code: \"mint\",\r\n class: \"gradient-mint\",\r\n active: false,\r\n type: 'gradient'\r\n },\r\n {\r\n code: \"king-yna\",\r\n class: \"gradient-king-yna\",\r\n active: false,\r\n type: 'gradient'\r\n },\r\n {\r\n code: \"ibiza-sunset\",\r\n class: \"gradient-ibiza-sunset\",\r\n active: false,\r\n type: 'gradient'\r\n },\r\n {\r\n code: \"flickr\",\r\n class: \"gradient-flickr\",\r\n active: false,\r\n type: 'gradient'\r\n },\r\n {\r\n code: \"purple-bliss\",\r\n class: \"gradient-purple-bliss\",\r\n active: false,\r\n type: 'gradient'\r\n },\r\n {\r\n code: \"man-of-steel\",\r\n class: \"gradient-man-of-steel\",\r\n active: false,\r\n type: 'gradient'\r\n },\r\n {\r\n code: \"purple-love\",\r\n class: \"gradient-purple-love\",\r\n active: false,\r\n type: 'gradient'\r\n },\r\n {\r\n code: \"black\",\r\n class: \"bg-black\",\r\n active: false,\r\n type: 'solid'\r\n },\r\n {\r\n code: \"white\",\r\n class: \"bg-grey\",\r\n active: false,\r\n type: 'solid'\r\n },\r\n {\r\n code: \"primary\",\r\n class: \"bg-primary\",\r\n active: false,\r\n type: 'solid'\r\n },\r\n {\r\n code: \"success\",\r\n class: \"bg-success\",\r\n active: false,\r\n type: 'solid'\r\n },\r\n {\r\n code: \"warning\",\r\n class: \"bg-warning\",\r\n active: false,\r\n type: 'solid'\r\n },\r\n {\r\n code: \"info\",\r\n class: \"bg-info\",\r\n active: false,\r\n type: 'solid'\r\n },\r\n {\r\n code: \"danger\",\r\n class: \"bg-danger\",\r\n active: false,\r\n type: 'solid'\r\n }\r\n ];\r\n\r\n // sidebar BG colors for Transparent Layout\r\n transparent_colors = [\r\n {\r\n class: \"bg-glass-hibiscus\",\r\n active: false\r\n },\r\n {\r\n class: \"bg-glass-purple-pizzazz\",\r\n active: false\r\n },\r\n {\r\n class: \"bg-glass-blue-lagoon\",\r\n active: false\r\n },\r\n {\r\n class: \"bg-glass-electric-violet\",\r\n active: false\r\n },\r\n {\r\n class: \"bg-glass-portage\",\r\n active: false\r\n },\r\n {\r\n class: \"bg-glass-tundora\",\r\n active: false\r\n }\r\n ];\r\n\r\n // sidebar BG images for Light & Dark Layout\r\n light_dark_bg_images = [\r\n // {\r\n // src: \"assets/img/sidebar-bg/02.jpg\",\r\n // active: false\r\n // },\r\n // {\r\n // src: \"assets/img/sidebar-bg/03.jpg\",\r\n // active: false\r\n // },\r\n // {\r\n // src: \"assets/img/sidebar-bg/04.jpg\",\r\n // active: false\r\n // },\r\n // {\r\n // src: \"assets/img/sidebar-bg/05.jpg\",\r\n // active: false\r\n // },\r\n // {\r\n // src: \"assets/img/sidebar-bg/06.jpg\",\r\n // active: false\r\n // },\r\n ];\r\n\r\n // Background Colors with Shades for Transparent Layout\r\n transparent_colors_with_shade = [\r\n {\r\n class: \"bg-glass-1\",\r\n active: false\r\n },\r\n {\r\n class: \"bg-glass-2\",\r\n active: false\r\n },\r\n {\r\n class: \"bg-glass-3\",\r\n active: false\r\n },\r\n {\r\n class: \"bg-glass-4\",\r\n active: false\r\n },\r\n ];\r\n\r\n lightDarkLayoutGradientBGColors: any = [];\r\n lightDarkLayoutSolidBGColors: any = [];\r\n transparentLayoutBGColors: any = [];\r\n transparentLayoutBGColorsWithShades: any = [];\r\n lightDarkLayoutBGImages: any = [];\r\n\r\n\r\n constructor(private config: ConfigService,public auth:AuthService,private http: HttpClient) {\r\n this.getData();\r\n }\r\n\r\n getData() {\r\n this.lightDarkLayoutGradientBGColors = this.getlightDarkLayoutGradientBGColors();\r\n this.lightDarkLayoutSolidBGColors = this.getlightDarkLayoutSolidBGColors();\r\n this.transparentLayoutBGColors = this.getTransparentLayoutBGColors();\r\n this.transparentLayoutBGColorsWithShades = this.GetTransparentLayoutBGColorsWithShades();\r\n this.lightDarkLayoutBGImages = this.getLightDarkLayoutBGImages();\r\n }\r\n\r\n getlightDarkLayoutGradientBGColors() {\r\n return this.light_dark_colors.filter(_ => _.type === 'gradient')\r\n .map(color => {\r\n color.active = (color.code === this.config.templateConf.layout.sidebar.backgroundColor);\r\n return { ...color };\r\n });\r\n }\r\n\r\n getlightDarkLayoutSolidBGColors() {\r\n return this.light_dark_colors.filter(_ => _.type === 'solid')\r\n .map(color => {\r\n color.active = (color.code === this.config.templateConf.layout.sidebar.backgroundColor);\r\n return { ...color };\r\n });\r\n }\r\n\r\n getTransparentLayoutBGColors() {\r\n return this.transparent_colors\r\n .map(color => {\r\n color.active = (color.class === this.config.templateConf.layout.sidebar.backgroundColor);\r\n return { ...color };\r\n });\r\n }\r\n\r\n GetTransparentLayoutBGColorsWithShades() {\r\n return this.transparent_colors_with_shade\r\n .map(color => {\r\n color.active = (color.class === this.config.templateConf.layout.sidebar.backgroundColor);\r\n return { ...color };\r\n });\r\n }\r\n\r\n getLightDarkLayoutBGImages() {\r\n return this.light_dark_bg_images\r\n .map(image => {\r\n image.active = (image.src === this.config.templateConf.layout.sidebar.backgroundImageURL);\r\n return { ...image };\r\n });\r\n }\r\n\r\n\r\n\r\n //called when click to change on any Gradient/Solid color for Light & Dark layout in customizer\r\n changeSidebarBGColor(color) {\r\n\r\n let conf = this.config.templateConf;\r\n conf.layout.sidebar.backgroundColor = color.code;\r\n\r\n this.config.applyTemplateConfigChange({ layout: conf.layout });\r\n\r\n this.getData();\r\n\r\n }\r\n\r\n //called when click to change on any Transparent color for Transparent layout in customizer\r\n changeSidebarTransparentBGColor(color) {\r\n\r\n let conf = this.config.templateConf;\r\n conf.layout.sidebar.backgroundColor = color.class;\r\n conf.layout.sidebar.backgroundImage = false;\r\n conf.layout.sidebar.backgroundImageURL = '';\r\n\r\n this.config.applyTemplateConfigChange({ layout: conf.layout });\r\n\r\n this.getData();\r\n }\r\n\r\n\r\n //called when click to change on any image for Light & Dark layout in customizer\r\n changeSidebarBgImage(image) {\r\n\r\n let conf = this.config.templateConf;\r\n conf.layout.sidebar.backgroundImageURL = image.src;\r\n\r\n this.config.applyTemplateConfigChange({ layout: conf.layout });\r\n\r\n this.getData();\r\n\r\n }\r\n\r\n bgImageDisplay(e: any) {\r\n let conf = this.config.templateConf;\r\n if (e.target.checked) {\r\n conf.layout.sidebar.backgroundImage = true;\r\n } else {\r\n conf.layout.sidebar.backgroundImage = false;\r\n }\r\n\r\n this.config.applyTemplateConfigChange({ layout: conf.layout });\r\n }\r\n\r\n toggleCompactMenu(e: any) {\r\n let conf = this.config.templateConf;\r\n if (e.target.checked) {\r\n conf.layout.sidebar.collapsed = true;\r\n } else {\r\n conf.layout.sidebar.collapsed = false;\r\n }\r\n\r\n this.config.applyTemplateConfigChange({ layout: conf.layout });\r\n }\r\n\r\n\r\n changeSidebarWidth(value: string) {\r\n let conf = this.config.templateConf;\r\n conf.layout.sidebar.size = value;\r\n this.config.applyTemplateConfigChange({ layout: conf.layout });\r\n }\r\n\r\n toggleNavbarType(value: string) {\r\n let conf = this.config.templateConf;\r\n conf.layout.navbar.type = value;\r\n this.config.applyTemplateConfigChange({ layout: conf.layout });\r\n }\r\n\r\n // position: \"Side\" for vertical menu and position: \"Top\" for horizontal menu\r\n toggleMenuPosition(position: string) {\r\n let conf = this.config.templateConf;\r\n conf.layout.menuPosition = position;\r\n // conf.layout.menuPosition = \"Top\";\r\n this.config.applyTemplateConfigChange({ layout: conf.layout });\r\n }\r\n\r\n switchLayout(layout: string, isBgImageDisplay: boolean) {\r\n let conf = this.config.templateConf;\r\n if(layout.toLowerCase() === 'light') {\r\n conf.layout.variant = 'Light';\r\n conf.layout.sidebar.backgroundImageURL = this.light_dark_bg_images[0].src;\r\n conf.layout.sidebar.backgroundColor = this.light_dark_colors[5].code;\r\n conf.layout.sidebar.backgroundImage = isBgImageDisplay;\r\n }\r\n else if(layout.toLowerCase() === 'dark') {\r\n conf.layout.variant = 'Dark';\r\n conf.layout.sidebar.backgroundImageURL = this.light_dark_bg_images[2].src;\r\n conf.layout.sidebar.backgroundColor = this.light_dark_colors[7].code;\r\n conf.layout.sidebar.backgroundImage = isBgImageDisplay;\r\n }\r\n else if(layout.toLowerCase() === 'transparent') {\r\n\r\n conf.layout.variant = 'Transparent';\r\n conf.layout.sidebar.backgroundImageURL = \"\";\r\n conf.layout.sidebar.backgroundColor = this.transparent_colors_with_shade[0].class;\r\n }\r\n\r\n this.config.applyTemplateConfigChange({ layout: conf.layout });\r\n\r\n this.getData();\r\n }\r\n\r\n menu(){\r\n return this.http.get(environment.baseUrl + 'Menu/GetDynamicMenuByRoleId/'+localStorage.getItem('roleID'), { headers: this.auth.createHeader() }).toPromise();\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 LayoutService {\r\n\r\n private toggleSidebar = new Subject(); // small screen\r\n private overlaySidebarToggle = new Subject();\r\n private toggleNotiSidebar = new Subject();\r\n\r\n\r\n // Observable\r\n toggleSidebar$ = this.toggleSidebar.asObservable();\r\n overlaySidebarToggle$ = this.overlaySidebarToggle.asObservable();\r\n toggleNotiSidebar$ = this.toggleNotiSidebar.asObservable();\r\n\r\n toggleSidebarSmallScreen(toggle: boolean) {\r\n this.toggleSidebar.next(toggle);\r\n }\r\n\r\n overlaySidebartoggle(toggle: boolean) {\r\n this.overlaySidebarToggle.next(toggle);\r\n }\r\n\r\n toggleNotificationSidebar(toggle: boolean) {\r\n this.toggleNotiSidebar.next(toggle);\r\n }\r\n\r\n}\r\n","import { isPlatformBrowser } from \"@angular/common\";\r\nimport { ClassProvider, FactoryProvider, InjectionToken, PLATFORM_ID, Injectable } from '@angular/core';\r\n\r\n/* Create a new injection token for injecting the window into a component. */\r\nexport const WINDOW = new InjectionToken('WindowToken');\r\n\r\n/* Define abstract class for obtaining reference to the global window object. */\r\nexport abstract class WindowRef {\r\n\r\n get nativeWindow(): Window | Object {\r\n throw new Error('Not implemented.');\r\n }\r\n\r\n}\r\n\r\n/* Define class that implements the abstract class and returns the native window object. */\r\n@Injectable()\r\nexport class BrowserWindowRef extends WindowRef {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get nativeWindow(): Window | Object {\r\n return window;\r\n }\r\n\r\n}\r\n\r\n/* Create an factory function that returns the native window object. */\r\nexport function windowFactory(browserWindowRef: BrowserWindowRef, platformId: Object): Window | Object {\r\n if (isPlatformBrowser(platformId)) {\r\n return browserWindowRef.nativeWindow;\r\n }\r\n return new Object();\r\n}\r\n\r\n/* Create a injectable provider for the WindowRef token that uses the BrowserWindowRef class. */\r\nexport const browserWindowProvider: ClassProvider = {\r\n provide: WindowRef,\r\n useClass: BrowserWindowRef\r\n};\r\n\r\n/* Create an injectable provider that uses the windowFactory function for returning the native window object. */\r\nexport const windowProvider: FactoryProvider = {\r\n provide: WINDOW,\r\n useFactory: windowFactory,\r\n deps: [ WindowRef, PLATFORM_ID ]\r\n};\r\n\r\n/* Create an array of providers. */\r\nexport const WINDOW_PROVIDERS = [\r\n browserWindowProvider,\r\n windowProvider\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 baseUrl: '/api/'\r\n // baseUrl:'http://www.hmg31.com/api/'\r\n // baseUrl:'http://www.ntc98.com/api/'\r\n// baseUrl: 'http://104.243.45.94:85/api/'\r\n// baseUrl:'http://localhost:8081/api/'\r\n};\r\n","import { Component, OnInit, ElementRef, Inject, Renderer2, ViewChild, OnDestroy, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ConfigService } from 'app/shared/services/config.service';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Subscription } from 'rxjs';\r\nimport { CustomizerService } from 'app/shared/services/customizer.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-content-layout',\r\n templateUrl: './content-layout.component.html',\r\n styleUrls: ['./content-layout.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class ContentLayoutComponent implements OnInit, OnDestroy {\r\n public config: any = {};\r\n layoutSub: Subscription;\r\n @ViewChild('content-wrapper') wrapper: ElementRef;\r\n\r\n\r\n constructor(private configService: ConfigService,\r\n public translate: TranslateService,\r\n @Inject(DOCUMENT) private document: Document,\r\n private renderer: Renderer2, private cdr: ChangeDetectorRef,\r\n private customizerService: CustomizerService\r\n ) {\r\n this.config = this.configService.templateConf;\r\n this.renderer.addClass(this.document.body, \"auth-page\");\r\n\r\n const browserLang: string = translate.getBrowserLang();\r\n translate.use(browserLang.match(/en|fr/) ? browserLang : 'en');\r\n }\r\n\r\n ngOnInit() {\r\n this.layoutSub = this.configService.templateConf$.subscribe((templateConf) => {\r\n if (templateConf) {\r\n this.config = templateConf;\r\n }\r\n this.loadLayout();\r\n this.cdr.markForCheck();\r\n\r\n })\r\n }\r\n\r\n loadLayout() {\r\n\r\n this.removeTransparentBGClasses();\r\n\r\n if (this.config.layout.variant === \"Light\") {\r\n this.renderer.removeClass(this.document.body, \"layout-dark\");\r\n this.renderer.removeClass(this.document.body, \"layout-transparent\");\r\n }\r\n else if (this.config.layout.variant === \"Dark\") {\r\n this.renderer.removeClass(this.document.body, \"layout-transparent\");\r\n this.renderer.addClass(this.document.body, \"layout-dark\");\r\n }\r\n else if (this.config.layout.variant === \"Transparent\") {\r\n this.renderer.addClass(this.document.body, \"layout-dark\");\r\n this.renderer.addClass(this.document.body, \"layout-transparent\");\r\n this.renderer.addClass(this.document.body, this.config.layout.sidebar.backgroundColor);\r\n }\r\n\r\n\r\n this.renderer.removeClass(this.document.body, \"menu-expanded\");\r\n this.renderer.removeClass(this.document.body, \"navbar-static\");\r\n this.renderer.removeClass(this.document.body, \"menu-open\");\r\n this.renderer.addClass(this.document.body, \"blank-page\");\r\n\r\n\r\n }\r\n\r\n removeTransparentBGClasses() {\r\n this.customizerService.transparent_colors.forEach(_ => {\r\n this.renderer.removeClass(this.document.body, _.class);\r\n });\r\n\r\n this.customizerService.transparent_colors_with_shade.forEach(_ => {\r\n this.renderer.removeClass(this.document.body, _.class);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.renderer.removeClass(this.document.body, \"auth-page\");\r\n if (this.layoutSub) {\r\n this.layoutSub.unsubscribe();\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Routes, RouterModule } from '@angular/router';\r\n\r\n//Route for content layout with sidebar, navbar and footer.\r\n\r\nexport const Full_ROUTES: Routes = [\r\n {\r\n path: 'dashboard',\r\n loadChildren: () => import('../../dashboard/dashboard.module').then(m => m.DashboardModule)\r\n },\r\n {\r\n path: 'utils',\r\n loadChildren: () => import('../../utilities/utilities.module').then(moduleRoute => moduleRoute.UtilitiesModule)\r\n },\r\n {\r\n path: 'report',\r\n loadChildren: () => import('../../reports/reports.module').then(m => m.ReportsModule)\r\n },\r\n {\r\n path: 'result',\r\n loadChildren: () => import('../../result/result.module').then(m => m.ResultModule)\r\n },\r\n {\r\n path: 'master',\r\n loadChildren: () => import('../../master/master.module').then(m => m.MasterModule)\r\n },\r\n {\r\n path: 'transection',\r\n loadChildren: () => import('../../transection/transection.module').then(m => m.TransectionModule)\r\n },\r\n {\r\n path: 'voucher',\r\n loadChildren: () => import('../../voucher/voucher.module').then(m => m.VoucherModule)\r\n }, {\r\n path: 'admin',\r\n loadChildren: () => import('../../admin-report/admin.module').then(m => m.AdminModule)\r\n }, {\r\n path: 'track',\r\n loadChildren: () => import('../../track-report/track.module').then(m => m.TrackModule)\r\n }, \r\n {\r\n path: 'datatables',\r\n loadChildren: () => import('../../data-tables/data-tables.module').then(m => m.DataTablesModule)\r\n },\r\n {\r\n path: 'uikit',\r\n loadChildren: () => import('../../ui-kit/ui-kit.module').then(m => m.UIKitModule)\r\n },\r\n {\r\n path: 'components',\r\n loadChildren: () => import('../../components/ui-components.module').then(m => m.UIComponentsModule)\r\n } \r\n];\r\n","import { Routes, RouterModule } from '@angular/router';\r\n\r\n//Route for content layout without sidebar, navbar and footer for pages like Login, Registration etc...\r\n\r\nexport const CONTENT_ROUTES: Routes = [\r\n {\r\n path: 'pages',\r\n loadChildren: () => import('../../pages/content-pages/content-pages.module').then(m => m.ContentPagesModule)\r\n }\r\n];\r\n","import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n\r\n constructor(private authService: AuthService, private router: Router) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n let isAuth = this.authService.isAuthenticated();\r\n if (!isAuth) {\r\n this.router.navigate(['/pages/login']);\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes, PreloadAllModules } from '@angular/router';\r\n\r\nimport { FullLayoutComponent } from \"./layouts/full/full-layout.component\";\r\nimport { ContentLayoutComponent } from \"./layouts/content/content-layout.component\";\r\n\r\nimport { Full_ROUTES } from \"./shared/routes/full-layout.routes\";\r\nimport { CONTENT_ROUTES } from \"./shared/routes/content-layout.routes\";\r\n\r\nimport { AuthGuard } from './shared/auth/auth-guard.service';\r\n\r\nconst appRoutes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: 'pages/login',\r\n pathMatch: 'full',\r\n },\r\n { path: '', component: FullLayoutComponent, data: { title: 'full Views' }, children: Full_ROUTES, canActivate: [AuthGuard] },\r\n { path: '', component: ContentLayoutComponent, data: { title: 'content Views' }, children: CONTENT_ROUTES },\r\n {\r\n path: '**',\r\n redirectTo: 'pages/error'\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(appRoutes, { relativeLinkResolution: 'legacy',preloadingStrategy:PreloadAllModules })],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class AppRoutingModule {\r\n}\r\n","import { Component, ViewContainerRef, OnInit, OnDestroy, HostListener } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router, NavigationEnd,ActivatedRoute } from '@angular/router';\r\nimport { filter,map } from 'rxjs/operators';\r\n// import { ConnectionService } from 'ng-connection-service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ConnectionService } from 'ng-connection-service';\r\n\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n\r\n subscription: Subscription;\r\n isConnected: boolean;\r\n constructor(private router: Router,private connectionService: ConnectionService, private toastr: ToastrService,private activatedRoute: ActivatedRoute,\r\n private titleService: Title) {\r\n this.connectionService.monitor().subscribe(isConnected => {\r\n this.isConnected = isConnected;\r\n if (this.isConnected) {\r\n this.toastr.success('Internet is Connected.', 'Success');\r\n }\r\n else {\r\n this.toastr.error('Please Connect to internet.', 'Error');\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n if(this.isHmg31()){\r\n this.titleService.setTitle('HMG');\r\n }else{\r\n this.titleService.setTitle('DEMO');\r\n }\r\n this.subscription = this.router.events\r\n .pipe(\r\n filter(event => event instanceof NavigationEnd)\r\n )\r\n .subscribe(() => window.scrollTo(0, 0));\r\n\r\n\r\n this.router.events.pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n )\r\n .subscribe(() => {\r\n\r\n var rt = this.getChild(this.activatedRoute)\r\n\r\n rt.data.subscribe(data => {\r\n console.log(data);\r\n this.titleService.setTitle(data.title)})\r\n })\r\n }\r\n isHmg31(): boolean {\r\n return window.location.href.includes('hmg31');\r\n }\r\n\r\n getChild(activatedRoute: ActivatedRoute) {\r\n if (activatedRoute.firstChild) {\r\n return this.getChild(activatedRoute.firstChild);\r\n } else {\r\n return activatedRoute;\r\n }\r\n\r\n }\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n scrollBody(direction) {\r\n const datatableBodyElement = document.querySelector('datatable-body');\r\n if (datatableBodyElement) {\r\n // console.log('datatableBodyElement.scrollTop',datatableBodyElement.scrollTop);\r\n if(direction == 'bottom') {\r\n datatableBodyElement.scrollTop = datatableBodyElement.scrollTop + 50;\r\n } else {\r\n datatableBodyElement.scrollTop = datatableBodyElement.scrollTop - 50;\r\n }\r\n }\r\n }\r\n\r\n @HostListener('window:keyup', ['$event'])\r\n keyEvent(event: any) {\r\n // console.log(event);\r\n if(event['keyCode'] == 40 ) {\r\n this.scrollBody('bottom');\r\n } else if( event['keyCode'] == 38) {\r\n this.scrollBody('top');\r\n }\r\n }\r\n @HostListener(\"focusout\", [\"$event\"])\r\n onBlur(event: any) {\r\n console.log('focus out',event);\r\n if((event.target.name == 'dd' || event.target.name == 'mm') && (event.target.value == '' || event.target.value == 0)) {\r\n this.toastr.warning('Please enter valid Date.');\r\n } else if(event.target.name == 'yy' && event.target.value.length < 4) {\r\n this.toastr.warning('Please enter valid Date.');\r\n }\r\n }\r\n\r\n}\r\n","","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AutocompleteComponent } from './autocomplete.component';\r\nimport { AutocompleteDirective } from './autocomplete.directive';\r\nimport { AutocompleteContentDirective } from './autocomplete-content.directive';\r\nimport { OptionComponent } from './option/option.component';\r\n\r\nconst publicApi = [\r\n AutocompleteComponent,\r\n AutocompleteDirective,\r\n AutocompleteContentDirective,\r\n OptionComponent\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [publicApi],\r\n exports: [publicApi]\r\n})\r\nexport class AutocompleteModule {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { PerfectScrollbarModule } from \"ngx-perfect-scrollbar\";\r\nimport { ClickOutsideModule } from 'ng-click-outside';\r\n\r\nimport { AutocompleteModule } from './components/autocomplete/autocomplete.module';\r\nimport { PipeModule } from 'app/shared/pipes/pipe.module';\r\n\r\n//COMPONENTS\r\nimport { FooterComponent } from \"./footer/footer.component\";\r\nimport { NavbarComponent } from \"./navbar/navbar.component\";\r\nimport { HorizontalMenuComponent } from './horizontal-menu/horizontal-menu.component';\r\nimport { VerticalMenuComponent } from \"./vertical-menu/vertical-menu.component\";\r\nimport { CustomizerComponent } from './customizer/customizer.component';\r\nimport { NotificationSidebarComponent } from './notification-sidebar/notification-sidebar.component';\r\n\r\n//DIRECTIVES\r\nimport { ToggleFullscreenDirective } from \"./directives/toggle-fullscreen.directive\";\r\nimport { SidebarLinkDirective } from './directives/sidebar-link.directive';\r\nimport { SidebarDropdownDirective } from './directives/sidebar-dropdown.directive';\r\nimport { SidebarAnchorToggleDirective } from './directives/sidebar-anchor-toggle.directive';\r\nimport { SidebarDirective } from './directives/sidebar.directive';\r\nimport { TopMenuDirective } from './directives/topmenu.directive';\r\nimport { TopMenuLinkDirective } from './directives/topmenu-link.directive';\r\nimport { TopMenuDropdownDirective } from './directives/topmenu-dropdown.directive';\r\nimport { TopMenuAnchorToggleDirective } from './directives/topmenu-anchor-toggle.directive';\r\nimport { MainLayoutComponent } from './main-layout/main-layout/main-layout.component';\r\n// import { NumericOnlyDirective } from './directives/numeric-only.directive';\r\n\r\n\r\n@NgModule({\r\n exports: [\r\n CommonModule,\r\n FooterComponent,\r\n NavbarComponent,\r\n VerticalMenuComponent,\r\n HorizontalMenuComponent,\r\n CustomizerComponent,\r\n NotificationSidebarComponent,\r\n ToggleFullscreenDirective,\r\n SidebarDirective,\r\n TopMenuDirective,\r\n NgbModule,\r\n TranslateModule,\r\n ],\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n NgbModule,\r\n TranslateModule,\r\n FormsModule,\r\n OverlayModule,\r\n ReactiveFormsModule ,\r\n PerfectScrollbarModule,\r\n ClickOutsideModule,\r\n AutocompleteModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n FooterComponent,\r\n NavbarComponent,\r\n VerticalMenuComponent,\r\n HorizontalMenuComponent,\r\n CustomizerComponent,\r\n NotificationSidebarComponent,\r\n ToggleFullscreenDirective,\r\n SidebarLinkDirective,\r\n SidebarDropdownDirective,\r\n SidebarAnchorToggleDirective,\r\n SidebarDirective,\r\n TopMenuLinkDirective,\r\n TopMenuDropdownDirective,\r\n TopMenuAnchorToggleDirective,\r\n TopMenuDirective,\r\n MainLayoutComponent,\r\n // NumericOnlyDirective,\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor,\n HttpResponse,\n HttpErrorResponse\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { Router } from \"@angular/router\";\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthInterceptorService {\n\n constructor(private router: Router,) { }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n // Modify request or response as needed\n // For example, add headers or handle errors\n return next.handle(request).pipe(\n catchError((error: HttpErrorResponse) => {\n if (error.status === 401) {\n // Handle 401 Unauthorized error here\n // For example, logout the user\n this.router.navigate(['/pages/login']);\n }\n return throwError(error);\n })\n );\n }\n\n}\n","\r\n export const LISTITEMS: any[] = [\r\n {\"url\":\"/dashboard/dashboard1\", \"name\":\"Dashboard 1\", \"icon\":\"ft-home\"},\r\n {\"url\":\"/dashboard/dashboard2\", \"name\":\"Dashboard 2\", \"icon\":\"ft-home\"},\r\n {\"url\":\"/uikit/colorpalettes\", \"name\":\"Color Palette\", \"icon\":\"ft-droplet\"},\r\n {\"url\":\"/inbox\", \"name\":\"Email\", \"icon\":\"ft-mail\"},\r\n {\"url\":\"/chat\", \"name\":\"Chat\", \"icon\":\"ft-message-square\"},\r\n {\"url\":\"/taskboard\", \"name\":\"Task Board\", \"icon\":\"ft-file-text\"},\r\n {\"url\":\"/calendar\", \"name\":\"Calendar\", \"icon\":\"ft-calendar\"},\r\n {\"url\":\"/uikit/grids\", \"name\":\"Grid\", \"icon\":\"ft-grid\"},\r\n {\"url\":\"/uikit/typography\", \"name\":\"Typography\", \"icon\":\"ft-type\"},\r\n {\"url\":\"/uikit/syntaxhighlighter\", \"name\":\"Syntax Highlighter\", \"icon\":\"ft-edit-1\"},\r\n {\"url\":\"/uikit/helperclasses\", \"name\":\"Helper Classes\", \"icon\":\"ft-help-circle\"},\r\n {\"url\":\"/uikit/textutilities\", \"name\":\"Text Utilities\", \"icon\":\"ft-underline\"},\r\n {\"url\":\"/uikit/feather\", \"name\":\"Feather Icon\", \"icon\":\"ft-feather\"},\r\n {\"url\":\"/uikit/font-awesome\", \"name\":\"Font Awesome Icon\", \"icon\":\"ft-flag\"},\r\n {\"url\":\"/uikit/simple-line\", \"name\":\"Simple Line Icon\", \"icon\":\"ft-navigation\"},\r\n {\"url\":\"/components/buttons\", \"name\":\"Buttons\", \"icon\":\"ft-plus-circle\"},\r\n {\"url\":\"/components/alerts\", \"name\":\"Alerts\", \"icon\":\"ft-alert-triangle\"},\r\n {\"url\":\"/components/badges\", \"name\":\"Badges\", \"icon\":\"ft-square\"},\r\n {\"url\":\"/components/dropdowns\", \"name\":\"Dropdowns\", \"icon\":\"ft-pocket\"},\r\n {\"url\":\"/components/media\", \"name\":\"Media Objects\", \"icon\":\"ft-image\"},\r\n {\"url\":\"/components/pagination\", \"name\":\"Pagination\", \"icon\":\"ft-chevrons-right\"},\r\n {\"url\":\"/components/progress\", \"name\":\"Progress Bars\", \"icon\":\"ft-sliders\"},\r\n {\"url\":\"/components/models\", \"name\":\"Modals\", \"icon\":\"ft-layout\"},\r\n {\"url\":\"/components/collapse\", \"name\":\"Collapse\", \"icon\":\"ft-minimize\"},\r\n {\"url\":\"/components/lists\", \"name\":\"List Group\", \"icon\":\"ft-list\"},\r\n {\"url\":\"/components/accordion\", \"name\":\"Accordion\", \"icon\":\"ft-map\"},\r\n {\"url\":\"/components/carousel\", \"name\":\"Carousel\", \"icon\":\"ft-map\"},\r\n {\"url\":\"/forms/datepicker\", \"name\":\"Datepicker\", \"icon\":\"ft-calendar\"},\r\n {\"url\":\"/components/popover\", \"name\":\"Popover\", \"icon\":\"ft-message-square\"},\r\n {\"url\":\"/components/rating\", \"name\":\"Rating\", \"icon\":\"ft-award\"},\r\n {\"url\":\"/tables/tables\", \"name\":\"Tables\", \"icon\":\"ft-align-justify\"},\r\n {\"url\":\"/components/navs\", \"name\":\"Navs\", \"icon\":\"ft-server\"},\r\n {\"url\":\"/forms/timepicker\", \"name\":\"Timepicker\", \"icon\":\"ft-clock\"},\r\n {\"url\":\"/components/tooltip\", \"name\":\"Tooltip\", \"icon\":\"ft-message-square\"},\r\n {\"url\":\"/components/typeahead\", \"name\":\"Typeahead\", \"icon\":\"ft-type\"},\r\n {\"url\":\"/components/sweetalerts\", \"name\":\"Sweet Alert\", \"icon\":\"ft-alert-triangle\"},\r\n {\"url\":\"/components/toastr\", \"name\":\"Toastr\", \"icon\":\"ft-map\"},\r\n {\"url\":\"/forms/select\", \"name\":\"Select\", \"icon\":\"ft-chevrons-down\"},\r\n {\"url\":\"/components/nouislider\", \"name\":\"NoUI Slider\", \"icon\":\"ft-sliders\"},\r\n {\"url\":\"/forms/editor\", \"name\":\"Editor\", \"icon\":\"ft-edit\"},\r\n {\"url\":\"/components/upload\", \"name\":\"Upload\", \"icon\":\"ft-upload\"},\r\n {\"url\":\"/components/dragndrop\", \"name\":\"Drag and Drop\", \"icon\":\"ft-copy\"},\r\n {\"url\":\"/components/tour\", \"name\":\"Tour\", \"icon\":\"ft-send\"},\r\n {\"url\":\"/components/cropper\", \"name\":\"Image Cropper\", \"icon\":\"ft-crop\"},\r\n {\"url\":\"/forms/tags\", \"name\":\"Input Tags\", \"icon\":\"ft-tag\"},\r\n {\"url\":\"/forms/switch\", \"name\":\"Switch\", \"icon\":\"ft-toggle-left\"},\r\n {\"url\":\"/forms/inputs\", \"name\":\"Form Inputs\", \"icon\":\"ft-file-text\"},\r\n {\"url\":\"/forms/input-groups\", \"name\":\"Form Input Groups\", \"icon\":\"ft-book-open\"},\r\n {\"url\":\"/forms/radio\", \"name\":\"Radio\", \"icon\":\"ft-target\"},\r\n {\"url\":\"/forms/checkbox\", \"name\":\"Checkbox\", \"icon\":\"ft-check-square\"},\r\n {\"url\":\"/forms/layout\", \"name\":\"Form Layouts\", \"icon\":\"ft-layout\"},\r\n {\"url\":\"/forms/validation\", \"name\":\"Form Validation\", \"icon\":\"ft-check-circle\"},\r\n {\"url\":\"/forms/archwizard\", \"name\":\"Form Wizard\", \"icon\":\"ft-layers\"},\r\n {\"url\":\"/tables/basic\", \"name\":\"Basic Tables\", \"icon\":\"ft-sidebar\"},\r\n {\"url\":\"/tables/extended\", \"name\":\"Extended Tables\", \"icon\":\"ft-grid\"},\r\n {\"url\":\"/datatables\", \"name\":\"DataTables\", \"icon\":\"ft-layout\"},\r\n {\"url\":\"/cards/basic\", \"name\":\"Basic Cards\", \"icon\":\"ft-layers\"},\r\n {\"url\":\"/cards/advanced\", \"name\":\"Advanced Cards\", \"icon\":\"ft-grid\"},\r\n {\"url\":\"/maps/google\", \"name\":\"Maps\", \"icon\":\"ft-map\"},\r\n {\"url\":\"/charts/ngx\", \"name\":\"NGX Charts\", \"icon\":\"ft-bar-chart-2\"},\r\n {\"url\":\"/charts/chartjs\", \"name\":\"ChartJs\", \"icon\":\"ft-pie-chart\"},\r\n {\"url\":\"/charts/chartist\", \"name\":\"Chartist\", \"icon\":\"ft-bar-chart-line\"},\r\n {\"url\":\"/charts/apex\", \"name\":\"Apex\", \"icon\":\"ft-bar-chart-line\"},\r\n {\"url\":\"/pages/forgotpassword\", \"name\":\"Forgot Password\", \"icon\":\"ft-alert-octagon\"},\r\n {\"url\":\"/pages/login\", \"name\":\"Login\", \"icon\":\"ft-log-in\"},\r\n {\"url\":\"/pages/register\", \"name\":\"Register\", \"icon\":\"ft-user-plus\"},\r\n {\"url\":\"/pages/lockscreen\", \"name\":\"Lock Screen\", \"icon\":\"ft-lock\"},\r\n {\"url\":\"/pages/horizontaltimeline\", \"name\":\"Horizontal Timeline\", \"icon\":\"ft-credit-card\"},\r\n {\"url\":\"/pages/timeline-vertical-center\", \"name\":\"Vertical Timeline Center\", \"icon\":\"ft-sidebar\"},\r\n {\"url\":\"/pages/timeline-vertical-left\", \"name\":\"Vertical Timeline Left\", \"icon\":\"ft-sidebar\"},\r\n {\"url\":\"/pages/timeline-vertical-right\", \"name\":\"Vertical Timeline Right\", \"icon\":\"ft-sidebar\"},\r\n {\"url\":\"/pages/account-settings\", \"name\":\"Account Settings\", \"icon\":\"ft-settings\"},\r\n {\"url\":\"/pages/profile\", \"name\":\"User Profile\", \"icon\":\"ft-user\"},\r\n {\"url\":\"/pages/invoice\", \"name\":\"Invoice\", \"icon\":\"ft-file-text\"},\r\n {\"url\":\"/pages/error\", \"name\":\"Error\", \"icon\":\"ft-alert-triangle\"},\r\n {\"url\":\"/pages/comingsoon\", \"name\":\"Coming Soon\", \"icon\":\"ft-clock\"},\r\n {\"url\":\"/pages/maintenance\", \"name\":\"Maintenance\", \"icon\":\"ft-settings\"},\r\n {\"url\":\"/pages/gallery\", \"name\":\"Gallery\", \"icon\":\"ft-image\"},\r\n {\"url\":\"/pages/search\", \"name\":\"Search\", \"icon\":\"ft-search\"},\r\n {\"url\":\"/pages/faq\", \"name\":\"FAQ\", \"icon\":\"ft-help-circle\"},\r\n {\"url\":\"/pages/kb\", \"name\":\"Knowledge Base\", \"icon\":\"ft-info\"},\r\n {\"url\":\"/pages/users-list\", \"name\":\"Users List\", \"icon\":\"ft-search\"},\r\n {\"url\":\"/pages/users-view\", \"name\":\"Users View\", \"icon\":\"ft-search\"},\r\n {\"url\":\"/pages/users-edit\", \"name\":\"Users Edit\", \"icon\":\"ft-search\"}\r\n ]\r\n\r\n","import { Directive, HostListener } from '@angular/core';\r\n\r\nimport * as screenfull from 'screenfull';\r\n\r\n@Directive({\r\n selector: '[appToggleFullscreen]'\r\n})\r\nexport class ToggleFullscreenDirective {\r\n\r\n @HostListener('click') onClick() {\r\n if (screenfull.isEnabled) {\r\n screenfull.toggle();\r\n }\r\n }\r\n}\r\n","\r\n","import { Component, Output, EventEmitter, OnDestroy, OnInit, AfterViewInit, ChangeDetectorRef, Inject, Renderer2, ViewChild, ElementRef, ViewChildren, QueryList, HostListener, NgModule } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { LayoutService } from '../services/layout.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { ConfigService } from '../services/config.service';\r\nimport { DOCUMENT,DatePipe } from '@angular/common';\r\nimport { CustomizerService } from '../services/customizer.service';\r\nimport { FormControl } from '@angular/forms';\r\nimport { LISTITEMS } from '../data/template-search';\r\nimport { Router } from '@angular/router';\r\n// import { DatePipe } from '@angular/common';\r\n\r\n\r\n@Component({\r\n selector: \"app-navbar\",\r\n templateUrl: \"./navbar.component.html\",\r\n styleUrls: [\"./navbar.component.scss\"],\r\n providers: [DatePipe]\r\n\r\n})\r\n\r\nexport class NavbarComponent implements OnInit, AfterViewInit, OnDestroy {\r\n currentLang = \"en\";\r\n selectedLanguageText = \"English\";\r\n selectedLanguageFlag = \"./assets/img/flags/us.png\";\r\n toggleClass = \"ft-maximize\";\r\n placement = \"bottom-right\";\r\n logoUrl = 'assets/img/ngc-logo.png';\r\n menuPosition = 'Side';\r\n isSmallScreen = false;\r\n protected innerWidth: any;\r\n searchOpenClass = \"\";\r\n transparentBGClass = \"\";\r\n hideSidebar: boolean = true;\r\n public isCollapsed = true;\r\n layoutSub: Subscription;\r\n configSub: Subscription;\r\n // name='Deepak Choudahry'\r\n public name = localStorage.getItem(\"role_Name\")\r\n public fullName = localStorage.getItem(\"username\")\r\n @ViewChild('search') searchElement: ElementRef;\r\n @ViewChildren('searchResults') searchResults: QueryList;\r\n\r\n @Output()\r\n toggleHideSidebar = new EventEmitter();\r\n\r\n @Output()\r\n seachTextEmpty = new EventEmitter();\r\n\r\n listItems = [];\r\n control = new FormControl();\r\n\r\n public config: any = {};\r\n currentDateTime: string;\r\n currentDateTimeWithTimezoneOffset: string;\r\n\r\n constructor(public translate: TranslateService,\r\n private layoutService: LayoutService,\r\n private router: Router,\r\n private configService: ConfigService, private cdr: ChangeDetectorRef,private datePipe: DatePipe) {\r\n\r\n const browserLang: string = translate.getBrowserLang();\r\n translate.use(browserLang.match(/en|es|pt|de/) ? browserLang : \"en\");\r\n this.config = this.configService.templateConf;\r\n this.innerWidth = window.innerWidth;\r\n\r\n this.layoutSub = layoutService.toggleSidebar$.subscribe(\r\n isShow => {\r\n this.hideSidebar = !isShow;\r\n });\r\n const now = new Date();\r\n const timezoneOffset = now.toLocaleTimeString('en-us', {timeZoneName: 'short'}).split(' ')[2];\r\n this.currentDateTimeWithTimezoneOffset = this.datePipe.transform(now, 'medium') + ' ' + timezoneOffset;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.listItems = LISTITEMS;\r\n\r\n if (this.innerWidth < 1200) {\r\n this.isSmallScreen = true;\r\n }\r\n else {\r\n this.isSmallScreen = false;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.configSub = this.configService.templateConf$.subscribe((templateConf) => {\r\n if (templateConf) {\r\n this.config = templateConf;\r\n }\r\n this.loadLayout();\r\n this.cdr.markForCheck();\r\n\r\n })\r\n }\r\n isHmg31(): boolean {\r\n return window.location.href.includes('hmg31');\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.layoutSub) {\r\n this.layoutSub.unsubscribe();\r\n }\r\n if (this.configSub) {\r\n this.configSub.unsubscribe();\r\n }\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n this.innerWidth = event.target.innerWidth;\r\n if (this.innerWidth < 1200) {\r\n this.isSmallScreen = true;\r\n }\r\n else {\r\n this.isSmallScreen = false;\r\n }\r\n }\r\n\r\n loadLayout() {\r\n\r\n if (this.config.layout.menuPosition && this.config.layout.menuPosition.toString().trim() != \"\") {\r\n this.menuPosition = this.config.layout.menuPosition;\r\n }\r\n\r\n if (this.config.layout.variant === \"Light\") {\r\n this.logoUrl = 'assets/img/NGC-logo.png';\r\n }\r\n else {\r\n this.logoUrl = 'assets/img/logo.png';\r\n }\r\n\r\n if (this.config.layout.variant === \"Transparent\") {\r\n this.transparentBGClass = this.config.layout.sidebar.backgroundColor;\r\n }\r\n else {\r\n this.transparentBGClass = \"\";\r\n }\r\n\r\n }\r\n\r\n onSearchKey(event: any) {\r\n if (this.searchResults && this.searchResults.length > 0) {\r\n this.searchResults.first.host.nativeElement.classList.add('first-active-item');\r\n }\r\n\r\n if (event.target.value === \"\") {\r\n this.seachTextEmpty.emit(true);\r\n }\r\n else {\r\n this.seachTextEmpty.emit(false);\r\n }\r\n }\r\n\r\n removeActiveClass() {\r\n if (this.searchResults && this.searchResults.length > 0) {\r\n this.searchResults.first.host.nativeElement.classList.remove('first-active-item');\r\n }\r\n }\r\n\r\n onEscEvent() {\r\n this.control.setValue(\"\");\r\n this.searchOpenClass = '';\r\n this.seachTextEmpty.emit(true);\r\n }\r\n\r\n onEnter() {\r\n if (this.searchResults && this.searchResults.length > 0) {\r\n let url = this.searchResults.first.url;\r\n if (url && url != '') {\r\n this.control.setValue(\"\");\r\n this.searchOpenClass = '';\r\n this.router.navigate([url]);\r\n this.seachTextEmpty.emit(true);\r\n }\r\n }\r\n }\r\n\r\n redirectTo(value) {\r\n this.router.navigate([value]);\r\n this.seachTextEmpty.emit(true);\r\n }\r\n\r\n\r\n ChangeLanguage(language: string) {\r\n this.translate.use(language);\r\n\r\n if (language === 'en') {\r\n this.selectedLanguageText = \"English\";\r\n this.selectedLanguageFlag = \"./assets/img/flags/us.png\";\r\n }\r\n else if (language === 'es') {\r\n this.selectedLanguageText = \"Spanish\";\r\n this.selectedLanguageFlag = \"./assets/img/flags/es.png\";\r\n }\r\n else if (language === 'pt') {\r\n this.selectedLanguageText = \"Portuguese\";\r\n this.selectedLanguageFlag = \"./assets/img/flags/pt.png\";\r\n }\r\n else if (language === 'de') {\r\n this.selectedLanguageText = \"German\";\r\n this.selectedLanguageFlag = \"./assets/img/flags/de.png\";\r\n }\r\n }\r\n\r\n ToggleClass() {\r\n if (this.toggleClass === \"ft-maximize\") {\r\n this.toggleClass = \"ft-minimize\";\r\n } else {\r\n this.toggleClass = \"ft-maximize\";\r\n }\r\n }\r\n\r\n toggleSearchOpenClass(display) {\r\n this.control.setValue(\"\");\r\n if (display) {\r\n this.searchOpenClass = 'open';\r\n setTimeout(() => {\r\n this.searchElement.nativeElement.focus();\r\n }, 0);\r\n }\r\n else {\r\n this.searchOpenClass = '';\r\n }\r\n this.seachTextEmpty.emit(true);\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n toggleNotificationSidebar() {\r\n this.layoutService.toggleNotificationSidebar(true);\r\n }\r\n\r\n toggleSidebar() {\r\n this.layoutService.toggleSidebarSmallScreen(this.hideSidebar);\r\n }\r\n}\r\n","import { Directive, HostListener, ChangeDetectorRef, OnInit, OnDestroy, HostBinding, Input } from '@angular/core';\r\nimport { TopMenuLinkDirective } from './topmenu-link.directive';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Directive({ selector: '[appTopMenu]' })\r\nexport class TopMenuDirective implements OnInit {\r\n\r\n protected navlinks: Array = [];\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public addLink(link: TopMenuLinkDirective): void {\r\n this.navlinks.push(link);\r\n }\r\n\r\n public closeOtherLinks(openLink: TopMenuLinkDirective): void {\r\n this.navlinks.forEach((link: TopMenuLinkDirective) => {\r\n if (link != openLink && (openLink.level.toString() === \"1\" || link.level === openLink.level)) {\r\n link.show = false;\r\n }\r\n });\r\n }\r\n\r\n @HostListener(\"mouseleave\", [\"$event\"])\r\n onMouseOut(e: any) {\r\n this.navlinks.forEach((link: TopMenuLinkDirective) => {\r\n link.show = false;\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { Directive, OnInit } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { TopMenuLinkDirective } from './topmenu-link.directive';\r\n\r\n@Directive({\r\n selector: '[appTopMenuDropdown]'\r\n})\r\nexport class TopMenuDropdownDirective implements OnInit {\r\n protected navlinks: Array = [];\r\n\r\n public ngOnInit(): any {\r\n //write your code here!\r\n }\r\n\r\n constructor( private router: Router) {\r\n }\r\n\r\n\r\n}\r\n","import {\r\n Directive, HostBinding, Inject, Input, OnInit, OnDestroy, Output, EventEmitter\r\n} from '@angular/core';\r\n\r\nimport { TopMenuDirective } from \"./topmenu.directive\";\r\n\r\n\r\n@Directive({\r\n selector: \"[appTopMenulink]\"\r\n})\r\nexport class TopMenuLinkDirective implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n public parent: string;\r\n\r\n @Input()\r\n public level: number;\r\n\r\n @HostBinding('class.show')\r\n @Input()\r\n get show(): boolean {\r\n return this._show;\r\n }\r\n set show(value: boolean) {\r\n this._show = value;\r\n if (value) {\r\n this.topNav.closeOtherLinks(this);\r\n }\r\n }\r\n\r\n protected _show: boolean;\r\n\r\n protected topNav: TopMenuDirective;\r\n\r\n public constructor(\r\n @Inject(TopMenuDirective) topNav: TopMenuDirective) {\r\n this.topNav = topNav;\r\n }\r\n\r\n public ngOnInit(): any {\r\n this.topNav.addLink(this);\r\n }\r\n\r\n public ngOnDestroy(): any {\r\n }\r\n\r\n // public toggle(): any {\r\n // this.show = !this.show;\r\n // }\r\n\r\n public openDropdown(): any {\r\n this.show = true;\r\n }\r\n\r\n\r\n}\r\n","import { Directive, HostListener, Inject } from '@angular/core';\r\n\r\nimport { TopMenuLinkDirective } from \"./topmenu-link.directive\";\r\n\r\n@Directive({\r\n selector: \"[appTopMenuAnchorToggle]\"\r\n})\r\nexport class TopMenuAnchorToggleDirective {\r\n protected navlink: TopMenuLinkDirective;\r\n\r\n constructor(\r\n @Inject(TopMenuLinkDirective) navlink: TopMenuLinkDirective\r\n ) {\r\n this.navlink = navlink;\r\n }\r\n\r\n // @HostListener(\"click\", [\"$event\"])\r\n // onClick() {\r\n // this.navlink.toggle();\r\n // }\r\n\r\n @HostListener(\"mouseenter\", [\"$event\"])\r\n onMouseOver(e: any) {\r\n this.navlink.openDropdown();\r\n\r\n }\r\n\r\n // @HostListener(\"mouseleave\", [\"$event\"])\r\n // onMouseOut(e: any) {\r\n // this.navlink.toggle();\r\n // }\r\n\r\n}\r\n","\r\n \r\n \r\n\r\n","import { Component, OnInit, ChangeDetectorRef, AfterViewInit, OnDestroy, Input } from '@angular/core';\r\nimport { HROUTES } from './navigation-routes.config';\r\nimport { LayoutService } from '../services/layout.service';\r\nimport { ConfigService } from '../services/config.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { FullLayoutComponent } from 'app/layouts/full/full-layout.component';\r\nimport { TopMenuDirective } from '../directives/topmenu.directive';\r\n\r\n\r\n@Component({\r\n selector: 'app-horizontal-menu',\r\n templateUrl: './horizontal-menu.component.html',\r\n styleUrls: ['./horizontal-menu.component.scss']\r\n})\r\nexport class HorizontalMenuComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @Input() menuData : any;\r\n public menuItems: any[];\r\n public config: any = {};\r\n level: number = 0;\r\n transparentBGClass = \"\";\r\n menuPosition = 'Side';\r\n\r\n layoutSub: Subscription;\r\n\r\n constructor(private layoutService: LayoutService,\r\n private configService: ConfigService,\r\n private cdr: ChangeDetectorRef,\r\n private FullLayout : FullLayoutComponent,\r\n public TopMenuDirectives : TopMenuDirective,\r\n private router: Router) {\r\n this.config = this.configService.templateConf;\r\n }\r\n\r\n ngOnInit() {\r\n // this.menuItems = HROUTES;\r\n this.menuItems = this.menuData;\r\n }\r\n closeMenu(){\r\nthis.FullLayout.isMenuCollapsedOnHover = false\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.layoutSub = this.configService.templateConf$.subscribe((templateConf) => {\r\n if (templateConf) {\r\n this.config = templateConf;\r\n }\r\n this.loadLayout();\r\n this.cdr.markForCheck();\r\n\r\n })\r\n }\r\n\r\n loadLayout() {\r\n\r\n if (this.config.layout.menuPosition && this.config.layout.menuPosition.toString().trim() != \"\") {\r\n this.menuPosition = this.config.layout.menuPosition;\r\n }\r\n\r\n\r\n if (this.config.layout.variant === \"Transparent\") {\r\n this.transparentBGClass = this.config.layout.sidebar.backgroundColor;\r\n }\r\n else {\r\n this.transparentBGClass = \"\";\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.layoutSub) {\r\n this.layoutSub.unsubscribe();\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, HostListener, ChangeDetectorRef, OnInit, OnDestroy, HostBinding, Input, AfterViewInit } from '@angular/core';\r\nimport { SidebarLinkDirective } from './sidebar-link.directive';\r\nimport { Subscription } from 'rxjs';\r\nimport { ConfigService } from '../services/config.service';\r\nimport { LayoutService } from '../services/layout.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Directive({ selector: '[appSidebar]' })\r\nexport class SidebarDirective implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n @HostBinding(\"class.expanded\")\r\n @Input()\r\n get navExpanded(): boolean {\r\n return this._navExpanded;\r\n }\r\n set navExpanded(value: boolean) {\r\n this._navExpanded = value;\r\n }\r\n\r\n protected navlinks: Array = [];\r\n layoutSub: Subscription;\r\n public config: any = {};\r\n mouseEnter = false;\r\n sidebarExpanded = true;\r\n protected _navExpanded: boolean;\r\n protected innerWidth: any;\r\n\r\n constructor(private cdr: ChangeDetectorRef, private router: Router, private configService: ConfigService, private layoutService: LayoutService) {\r\n this.config = this.configService.templateConf;\r\n this.sidebarExpanded = !this.config.layout.sidebar.collapsed;\r\n }\r\n\r\n ngOnInit() {\r\n this.innerWidth = window.innerWidth;\r\n this.layoutSub = this.configService.templateConf$.subscribe((templateConf) => {\r\n if (templateConf) {\r\n this.config = templateConf;\r\n }\r\n this.loadLayout();\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.layoutSub) {\r\n this.layoutSub.unsubscribe();\r\n }\r\n }\r\n\r\n //load layout when changes in the config\r\n loadLayout() {\r\n this.sidebarExpanded = !this.config.layout.sidebar.collapsed;\r\n if (this.config.layout.sidebar.collapsed && !this.mouseEnter) {\r\n this.setSidebarGroupActiveCollapsed();\r\n this.navExpanded = false;\r\n }\r\n else {\r\n this.setSidebarGroupActive();\r\n this.navExpanded = true;\r\n }\r\n }\r\n\r\n //add menu links to the link list\r\n public addLink(link: SidebarLinkDirective): void {\r\n this.navlinks.push(link);\r\n }\r\n\r\n //close all other menu items other than active one\r\n public closeOtherLinks(openLink: SidebarLinkDirective): void {\r\n this.navlinks.forEach((link: SidebarLinkDirective) => {\r\n if (link != openLink && (openLink.level.toString() === \"1\" || link.level === openLink.level)) {\r\n link.open = false;\r\n link.sidebarGroupActive = false;\r\n }\r\n else if (link === openLink && (openLink.level.toString() === \"1\") && link.hasSub === true) {\r\n link.sidebarGroupActive = true;\r\n }\r\n else if (link === openLink && (openLink.level.toString() === \"1\") && link.hasSub === false) {\r\n link.sidebarGroupActive = false;\r\n link.open = false;\r\n }\r\n else if (link === openLink && openLink.level.toString() != \"1\" && link.hasSub === false) {\r\n link.open = false;\r\n link.sidebarGroupActive = false;\r\n return;\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n // call when sidebar toggle is collapsed but still in expand mode on mouse hover\r\n public setSidebarGroupActive(): void {\r\n if (this.navlinks.length > 0) {\r\n this.navlinks.forEach((link: SidebarLinkDirective) => {\r\n link.sidebarGroupActive = false;\r\n link.navCollapsedOpen = false;\r\n });\r\n let matched = this.navlinks.find(link => link.path === this.router.url);\r\n if (matched) {\r\n let parent = this.navlinks.find(link => link.parent === matched.parent && link.level.toString() === \"1\" && link.hasSub === true);\r\n if (parent) {\r\n parent.sidebarGroupActive = true;\r\n parent.navCollapsedOpen = false;\r\n parent.open = true;\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n // call when sidebar toggle is collapsed and is in collapse mode on mouse out\r\n public setSidebarGroupActiveCollapsed(): void {\r\n this.closeOtherLinks(this.navlinks.find(link => link.path === this.router.url));\r\n if (this.navlinks.length > 0) {\r\n this.navlinks.forEach((link: SidebarLinkDirective) => {\r\n link.sidebarGroupActive = false;\r\n link.navCollapsedOpen = false;\r\n });\r\n let matched = this.navlinks.find(link => link.path === this.router.url);\r\n if (matched) {\r\n let parent = this.navlinks.find(link => link.parent === matched.parent && link.level.toString() === \"1\" && link.hasSub === true);\r\n if (parent) {\r\n parent.sidebarGroupActive = true;\r\n parent.navCollapsedOpen = true;\r\n parent.open = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // mouse enter event of side menu\r\n @HostListener(\"mouseenter\", [\"$event\"])\r\n onMouseOver(e: any) {\r\n this.mouseEnter = true;\r\n if (this.config.layout.sidebar.collapsed) {\r\n this.setSidebarGroupActive();\r\n this.navExpanded = true;\r\n }\r\n }\r\n\r\n // mouse leave event of side menu\r\n @HostListener(\"mouseleave\", [\"$event\"])\r\n onMouseOut(e: any) {\r\n this.mouseEnter = false;\r\n if (this.config.layout.sidebar.collapsed) {\r\n this.setSidebarGroupActiveCollapsed();\r\n this.navExpanded = false;\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n\ttrigger,\r\n\tanimate,\r\n\tstyle,\r\n\ttransition,\r\n\tstate\r\n} from '@angular/animations';\r\n\r\n\r\nexport const customAnimations = [\t \r\n trigger('slideInOut', [\r\n state('1', style({ height: '*' })),\r\n state('0', style({ height: '0px' })),\r\n transition('1 <=> 0', animate(200))\r\n ])\r\n]","import { Directive, OnInit } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { SidebarLinkDirective } from './sidebar-link.directive';\r\n\r\n@Directive({\r\n selector: '[appSidebarDropdown]'\r\n})\r\nexport class SidebarDropdownDirective implements OnInit {\r\n protected navlinks: Array = [];\r\n\r\n public ngOnInit(): any {\r\n //write your code here!\r\n }\r\n\r\n constructor( private router: Router) {\r\n }\r\n\r\n}\r\n","import {\r\n Directive, HostBinding, Inject, Input, OnInit, OnDestroy, Output, EventEmitter, AfterViewInit\r\n} from '@angular/core';\r\nimport { SidebarDirective } from \"./sidebar.directive\";\r\n\r\n@Directive({\r\n selector: \"[appSidebarlink]\"\r\n})\r\nexport class SidebarLinkDirective implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n public parent: string;\r\n\r\n @Input()\r\n public level: number;\r\n\r\n @Input()\r\n public hasSub: boolean;\r\n\r\n @Input()\r\n public path: string;\r\n\r\n @HostBinding('class.open')\r\n @Input()\r\n get open(): boolean {\r\n return this._open;\r\n }\r\n set open(value: boolean) {\r\n this._open = value;\r\n }\r\n\r\n @HostBinding('class.sidebar-group-active')\r\n @Input()\r\n get sidebarGroupActive(): boolean {\r\n return this._sidebarGroupActive;\r\n }\r\n set sidebarGroupActive(value: boolean) {\r\n this._sidebarGroupActive = value;\r\n }\r\n\r\n @HostBinding('class.nav-collapsed-open')\r\n @Input()\r\n get navCollapsedOpen(): boolean {\r\n return this._navCollapsedOpen;\r\n }\r\n set navCollapsedOpen(value: boolean) {\r\n this._navCollapsedOpen = value;\r\n }\r\n\r\n protected _open: boolean;\r\n protected _sidebarGroupActive: boolean;\r\n protected _navCollapsedOpen: boolean;\r\n\r\n protected sideNav: SidebarDirective;\r\n\r\n public constructor(\r\n @Inject(SidebarDirective) sideNav: SidebarDirective) {\r\n this.sideNav = sideNav;\r\n }\r\n\r\n public ngOnInit(): any {\r\n this.sideNav.addLink(this);\r\n }\r\n\r\n public ngOnDestroy(): any {\r\n }\r\n\r\n //when side menu (vertical menu) item gets clicked\r\n public toggle(): any {\r\n this.open = !this.open;\r\n if(this.open) {\r\n this.sideNav.closeOtherLinks(this);\r\n }\r\n if (!this.open && this.level.toString() === \"1\" && this.hasSub) {\r\n this.sidebarGroupActive = false;\r\n }\r\n }\r\n}\r\n","import { Directive, HostListener, Inject } from '@angular/core';\r\n\r\nimport { SidebarLinkDirective } from \"./sidebar-link.directive\";\r\n\r\n@Directive({\r\n selector: \"[appSidebarAnchorToggle]\"\r\n})\r\nexport class SidebarAnchorToggleDirective {\r\n protected navlink: SidebarLinkDirective;\r\n\r\n constructor(\r\n @Inject(SidebarLinkDirective) navlink: SidebarLinkDirective\r\n ) {\r\n this.navlink = navlink;\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n onClick() {\r\n this.navlink.toggle();\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","import {\r\n Component, OnInit, ViewChild, OnDestroy,\r\n ElementRef, AfterViewInit, ChangeDetectorRef, HostListener, Input\r\n} from \"@angular/core\";\r\nimport { ROUTES } from './vertical-menu-routes.config';\r\nimport { HROUTES } from '../horizontal-menu/navigation-routes.config';\r\n\r\nimport { Router } from \"@angular/router\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { customAnimations } from \"../animations/custom-animations\";\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { ConfigService } from '../services/config.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { LayoutService } from '../services/layout.service';\r\n\r\n@Component({\r\n selector: \"app-sidebar\",\r\n templateUrl: \"./vertical-menu.component.html\",\r\n animations: customAnimations,\r\n})\r\nexport class VerticalMenuComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n @ViewChild('toggleIcon') toggleIcon: ElementRef;\r\n @Input() menuData : any;\r\n public menuItems: any[];\r\n level: number = 0;\r\n logoUrl = 'assets/img/logo.png';\r\n public config: any = {};\r\n protected innerWidth: any;\r\n layoutSub: Subscription;\r\n configSub: Subscription;\r\n perfectScrollbarEnable = true;\r\n collapseSidebar = false;\r\n resizeTimeout;\r\n\r\n constructor(\r\n private router: Router,\r\n public translate: TranslateService,\r\n private layoutService: LayoutService,\r\n private configService: ConfigService,\r\n private cdr: ChangeDetectorRef,\r\n private deviceService: DeviceDetectorService,\r\n ) {\r\n this.config = this.configService.templateConf;\r\n this.innerWidth = window.innerWidth;\r\n this.isTouchDevice();\r\n }\r\n\r\n\r\n ngOnInit() {\r\n // this.menuItems = ROUTES;\r\n this.menuItems = this.menuData;\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.configSub = this.configService.templateConf$.subscribe((templateConf) => {\r\n if (templateConf) {\r\n this.config = templateConf;\r\n }\r\n this.loadLayout();\r\n this.cdr.markForCheck();\r\n\r\n });\r\n\r\n this.layoutSub = this.layoutService.overlaySidebarToggle$.subscribe(\r\n collapse => {\r\n if (this.config.layout.menuPosition === \"Side\") {\r\n this.collapseSidebar = collapse;\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onWindowResize(event) {\r\n if (this.resizeTimeout) {\r\n clearTimeout(this.resizeTimeout);\r\n }\r\n this.resizeTimeout = setTimeout((() => {\r\n this.innerWidth = event.target.innerWidth;\r\n this.loadLayout();\r\n }).bind(this), 500);\r\n }\r\n\r\n loadLayout() {\r\n\r\n if (this.config.layout.menuPosition === \"Top\") { // Horizontal Menu\r\n if (this.innerWidth < 1200) { // Screen size < 1200\r\n this.menuItems = this.menuData;\r\n }\r\n }\r\n else if (this.config.layout.menuPosition === \"Side\") { // Vertical Menu{\r\n this.menuItems = this.menuData;\r\n }\r\n\r\n\r\n\r\n\r\n if (this.config.layout.sidebar.backgroundColor === 'white') {\r\n this.logoUrl = 'assets/img/logo-dark.png';\r\n }\r\n else {\r\n this.logoUrl = 'assets/img/logo.png';\r\n }\r\n\r\n if(this.config.layout.sidebar.collapsed) {\r\n this.collapseSidebar = true;\r\n }\r\n else {\r\n this.collapseSidebar = false;\r\n }\r\n }\r\n\r\n toggleSidebar() {\r\n let conf = this.config;\r\n conf.layout.sidebar.collapsed = !this.config.layout.sidebar.collapsed;\r\n this.configService.applyTemplateConfigChange({ layout: conf.layout });\r\n\r\n setTimeout(() => {\r\n this.fireRefreshEventOnWindow();\r\n }, 300);\r\n }\r\n\r\n fireRefreshEventOnWindow = function () {\r\n const evt = document.createEvent(\"HTMLEvents\");\r\n evt.initEvent(\"resize\", true, false);\r\n window.dispatchEvent(evt);\r\n };\r\n\r\n CloseSidebar() {\r\n this.layoutService.toggleSidebarSmallScreen(false);\r\n }\r\n\r\n isTouchDevice() {\r\n\r\n const isMobile = this.deviceService.isMobile();\r\n const isTablet = this.deviceService.isTablet();\r\n\r\n if (isMobile || isTablet) {\r\n this.perfectScrollbarEnable = false;\r\n }\r\n else {\r\n this.perfectScrollbarEnable = true;\r\n }\r\n\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n if (this.layoutSub) {\r\n this.layoutSub.unsubscribe();\r\n }\r\n if (this.configSub) {\r\n this.configSub.unsubscribe();\r\n }\r\n\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n","import { Component, OnInit, ElementRef, Renderer2, OnDestroy } from '@angular/core';\r\nimport { LayoutService } from '../services/layout.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-notification-sidebar',\r\n templateUrl: './notification-sidebar.component.html',\r\n styleUrls: ['./notification-sidebar.component.scss']\r\n})\r\nexport class NotificationSidebarComponent implements OnInit, OnDestroy {\r\n\r\n layoutSub: Subscription;\r\n isOpen = false;\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n constructor(private layoutService: LayoutService) {\r\n\r\n this.layoutSub = layoutService.toggleNotiSidebar$.subscribe(\r\n open => {\r\n this.isOpen = open;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.layoutSub) {\r\n this.layoutSub.unsubscribe();\r\n }\r\n }\r\n\r\n onClose() {\r\n this.layoutService.toggleNotificationSidebar(false);\r\n }\r\n\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\n\r\nimport { BrowserModule, Title } from '@angular/platform-browser';\r\nimport { AngularFireModule } from \"@angular/fire\";\r\nimport { AngularFireAuthModule } from \"@angular/fire/auth\";\r\n\r\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { ToastrModule } from \"ngx-toastr\";\r\nimport { AgmCoreModule } from \"@agm/core\";\r\nimport { HttpClientModule, HttpClient,HTTP_INTERCEPTORS } from \"@angular/common/http\";\r\nimport { TranslateModule, TranslateLoader } from \"@ngx-translate/core\";\r\nimport { TranslateHttpLoader } from \"@ngx-translate/http-loader\";\r\nimport { StoreModule } from \"@ngrx/store\";\r\nimport { DragulaModule, DragulaService } from \"ng2-dragula\";\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\n\r\nimport {\r\n PerfectScrollbarModule,\r\n PERFECT_SCROLLBAR_CONFIG,\r\n PerfectScrollbarConfigInterface\r\n} from 'ngx-perfect-scrollbar';\r\n\r\nimport { AppRoutingModule } from \"./app-routing.module\";\r\n// import { SharedModule } from \"./shared/shared.module\";\r\nimport { AppComponent } from \"./app.component\";\r\nimport { ContentLayoutComponent } from \"./layouts/content/content-layout.component\";\r\nimport { FullLayoutComponent } from \"./layouts/full/full-layout.component\";\r\n\r\nimport { AuthService } from \"./shared/auth/auth.service\";\r\nimport { AuthGuard } from \"./shared/auth/auth-guard.service\";\r\nimport { WINDOW_PROVIDERS } from './shared/services/window.service';\r\nimport { HashLocationStrategy, LocationStrategy } from \"@angular/common\";\r\nimport { SharedModule } from \"./shared/shared.module\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { AuthInterceptorService } from './auth-interceptor.service';\r\nvar firebaseConfig = {\r\n apiKey: \"YOUR_API_KEY\", //YOUR_API_KEY\r\n authDomain: \"YOUR_AUTH_DOMAIN\", //YOUR_AUTH_DOMAIN\r\n databaseURL: \"YOUR_DATABASE_URL\", //YOUR_DATABASE_URL\r\n projectId: \"YOUR_PROJECT_ID\", //YOUR_PROJECT_ID\r\n storageBucket: \"YOUR_STORAGE_BUCKET\", //YOUR_STORAGE_BUCKET\r\n messagingSenderId: \"YOUR_MESSAGING_SENDER_ID\", //YOUR_MESSAGING_SENDER_ID\r\n appId: \"YOUR_APP_ID\", //YOUR_APP_ID\r\n measurementId: \"YOUR_MEASUREMENT_ID\" //YOUR_MEASUREMENT_ID\r\n};\r\n\r\n\r\nconst DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {\r\n suppressScrollX: true,\r\n wheelPropagation: false\r\n};\r\n\r\nexport function createTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http, \"./assets/i18n/\", \".json\");\r\n}\r\n\r\n@NgModule({\r\n declarations: [AppComponent, FullLayoutComponent, ContentLayoutComponent],\r\n imports: [\r\n BrowserAnimationsModule,\r\n // StoreModule.forRoot(fromApp.appReducer),\r\n AppRoutingModule,\r\n SharedModule,\r\n HttpClientModule,\r\n AngularFireModule.initializeApp(firebaseConfig),\r\n AngularFireAuthModule,\r\n ToastrModule.forRoot(),\r\n BrowserModule,\r\n NgbModule,\r\n NgxSpinnerModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: createTranslateLoader,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n AgmCoreModule.forRoot({\r\n apiKey: \"YOUR_GOOGLE_MAP_API_KEY\"\r\n }),\r\n PerfectScrollbarModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DragulaModule.forRoot(),\r\n \r\n ],\r\n providers: [{provide: LocationStrategy, useClass: HashLocationStrategy},\r\n AuthService,\r\n AuthGuard,\r\n DragulaService,\r\n Title,\r\n {\r\n provide: PERFECT_SCROLLBAR_CONFIG,\r\n useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG\r\n },\r\n \r\n { provide: PERFECT_SCROLLBAR_CONFIG, useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG },\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptorService, multi: true },\r\n WINDOW_PROVIDERS\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {}\r\n","import { 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 if(environment.production) { // assuming you have env variable configured\r\n // check if window exists, if you render backend window will not be available \r\n if(window){\r\n window.console.log = function(){};\r\n }\r\n } \r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n"]}