{"version":3,"sources":["webpack:///src/app/admin/admin-pages-menu.ts","webpack:///src/app/admin/admin.component.ts","webpack:///src/app/admin/admin-routing.module.ts","webpack:///src/app/admin/admin.module.ts"],"names":["AdminPagesMenu","accessChecker","userMenu","title","icon","link","children","undefined","subscriptionMenu","publicfoodMenu","pack","publicTemplateMenu","this","isGranted","pipe","map","hasAccess","AdminComponent","adminPagesMenu","tokenService","initUserService","alive","initMenu","tokenChange","takeWhile","subscribe","getMenu","menu","routes","path","component","redirectTo","canActivate","pathMatch","loadChildren","then","m","UsersModule","SubscriptionsModule","PublicFoodsModule","PublicTemplatesModule","AdminRoutingModule","forChild","AdminModule","AuthModule","N"],"mappings":"kPAOO,Y,MAAMA,EACX,YAAoBC,GAAA,KAAAA,gBAEpB,UACE,MAAMC,EAAuB,CAC3BC,MAAO,QACPC,KAAM,iBACNC,KAAM,oBACNC,cAAUC,GAGNC,EAA+B,CACnCL,MAAO,qBACPC,KAAM,iBACNC,KAAM,4BACNC,cAAUC,GAGNE,EAA6B,CACjCN,MAAO,cACPC,KAAM,CAAEA,KAAM,eAAgBM,KAAM,UACpCL,KAAM,oBACNC,cAAUC,GAGNI,EAAiC,CACrCR,MAAO,mBACPC,KAAM,oBACNC,KAAM,wBACNC,cAAUC,GAGZ,OAAOK,KAAKX,cAAcY,UAAU,OAAQ,SAASC,KACnD,OAAAC,EAAA,GAAKC,GACCA,EACK,CACLd,EACAM,EACAC,EACAE,GAEQ,M,6CAzCPX,GAAc,+B,sDAAdA,EAAc,QAAdA,EAAc,Y,GAApB,G,wCCQA,Y,MAAMiB,EAIX,YACUC,EACAC,EACEC,GAFF,KAAAF,iBACA,KAAAC,eACE,KAAAC,kBALZ,KAAAC,OAAiB,EAOfT,KAAKU,WAELV,KAAKO,aACFI,cACAT,KAAK,OAAAU,EAAA,GAAU,IAAMZ,KAAKS,QAC1BI,UAAU,KACTb,KAAKU,aAIX,WACEV,KAAKM,eACFQ,UACAZ,KAAK,OAAAU,EAAA,GAAU,IAAMZ,KAAKS,QAC1BI,UAAWE,IACVf,KAAKe,KAAOA,IAIlB,cACEf,KAAKS,OAAQ,G,6CA7BJJ,GAAc,kH,mDAAdA,EAAc,0GALb,yDACV,wCACA,4CACF,+B,MAFW,wE,2VAIN,G,gBCVP,MAAMW,EAAiB,CACrB,CACEC,KAAM,GACNC,UAAW,EACXxB,SAAU,CACR,CACEuB,KAAM,GACNE,WAAY,aACZC,YAAa,CAAC,KACdC,UAAW,QAEb,CACEJ,KAAM,QACNG,YAAa,CAAC,KACdE,aAAc,IACZ,wDAA+BC,KAAMC,GAAMA,EAAEC,cAEjD,CACER,KAAM,gBACNG,YAAa,CAAC,KACdE,aAAc,IACZ,kCAA+CC,KAC5CC,GAAMA,EAAEE,sBAGf,CACET,KAAM,QACNG,YAAa,CAAC,KACdE,aAAc,IACZ,kCAA6CC,KAC1CC,GAAMA,EAAEG,oBAGf,CACEV,KAAM,YACNG,YAAa,CAAC,KACdE,aAAc,IACZ,kCAAqDC,KAClDC,GAAMA,EAAEI,wBAGf,CAAEX,KAAM,KAAME,WAAY,OAUzB,Y,MAAMU,G,yDAAAA,I,+EAAAA,IAAkB,UAFlB,GAAE,SAFJ,CAAC,IAAaC,SAASd,IACtB,O,GAGL,G,gBC7BA,Y,MAAMe,G,yDAAAA,I,+EAAAA,IAAW,UAFX,CAAC,GAAe,SAVlB,CACP,IACA,EACA,IACA,EAAAC,WACA,KACA,KACA,EAAAC,M,GAKG","file":"x","sourcesContent":["import { NbMenuItem } from '@nebular/theme';\r\nimport { NbAccessChecker } from '@nebular/security';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class AdminPagesMenu {\r\n constructor(private accessChecker: NbAccessChecker) {}\r\n\r\n getMenu(): Observable {\r\n const userMenu: NbMenuItem = {\r\n title: 'Users',\r\n icon: 'people-outline',\r\n link: '/admin/users/list',\r\n children: undefined,\r\n };\r\n\r\n const subscriptionMenu: NbMenuItem = {\r\n title: 'Subscription Plans',\r\n icon: 'people-outline',\r\n link: '/admin/subscriptions/list',\r\n children: undefined,\r\n };\r\n\r\n const publicfoodMenu: NbMenuItem = {\r\n title: 'Food Groups',\r\n icon: { icon: 'food-outline', pack: 'custom' },\r\n link: '/admin/foods/list',\r\n children: undefined,\r\n };\r\n\r\n const publicTemplateMenu: NbMenuItem = {\r\n title: 'Public Templates',\r\n icon: 'file-text-outline',\r\n link: '/admin/templates/list',\r\n children: undefined,\r\n };\r\n\r\n return this.accessChecker.isGranted('view', 'users').pipe(\r\n map((hasAccess) => {\r\n if (hasAccess)\r\n return [\r\n userMenu,\r\n subscriptionMenu,\r\n publicfoodMenu,\r\n publicTemplateMenu,\r\n ];\r\n else return [];\r\n }),\r\n );\r\n }\r\n}\r\n","import { Component, OnDestroy } from '@angular/core';\r\nimport { NbMenuItem } from '@nebular/theme';\r\nimport { AdminPagesMenu } from './admin-pages-menu';\r\nimport { NbTokenService } from '@nebular/auth';\r\nimport { InitUserService } from '../@theme/services/init-user.service';\r\nimport { takeWhile } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-calorie-friend-admin',\r\n styleUrls: ['admin.component.scss'],\r\n template: ` \r\n \r\n \r\n `,\r\n})\r\nexport class AdminComponent implements OnDestroy {\r\n menu: NbMenuItem[];\r\n alive: boolean = true;\r\n\r\n constructor(\r\n private adminPagesMenu: AdminPagesMenu,\r\n private tokenService: NbTokenService,\r\n protected initUserService: InitUserService,\r\n ) {\r\n this.initMenu();\r\n\r\n this.tokenService\r\n .tokenChange()\r\n .pipe(takeWhile(() => this.alive))\r\n .subscribe(() => {\r\n this.initMenu();\r\n });\r\n }\r\n\r\n initMenu() {\r\n this.adminPagesMenu\r\n .getMenu()\r\n .pipe(takeWhile(() => this.alive))\r\n .subscribe((menu) => {\r\n this.menu = menu;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.alive = false;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AdminComponent } from './admin.component';\r\nimport { AdminGuard } from '../@auth/guards/admin.guard';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: AdminComponent,\r\n children: [\r\n {\r\n path: '',\r\n redirectTo: 'users/list',\r\n canActivate: [AdminGuard],\r\n pathMatch: 'full',\r\n },\r\n {\r\n path: 'users',\r\n canActivate: [AdminGuard],\r\n loadChildren: () =>\r\n import('./users/users.module').then((m) => m.UsersModule),\r\n },\r\n {\r\n path: 'subscriptions',\r\n canActivate: [AdminGuard],\r\n loadChildren: () =>\r\n import('./subscriptions/subscriptions.module').then(\r\n (m) => m.SubscriptionsModule,\r\n ),\r\n },\r\n {\r\n path: 'foods',\r\n canActivate: [AdminGuard],\r\n loadChildren: () =>\r\n import('./public-foods/public-foods.module').then(\r\n (m) => m.PublicFoodsModule,\r\n ),\r\n },\r\n {\r\n path: 'templates',\r\n canActivate: [AdminGuard],\r\n loadChildren: () =>\r\n import('./public-templates/public-templates.module').then(\r\n (m) => m.PublicTemplatesModule,\r\n ),\r\n },\r\n { path: '**', redirectTo: '' },\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: [],\r\n})\r\nexport class AdminRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NbSelectModule, NbMenuModule, NbCheckboxModule } from '@nebular/theme';\r\n\r\nimport { AuthModule } from '../@auth/auth.module';\r\n\r\nimport { AdminRoutingModule } from './admin-routing.module';\r\nimport { AdminComponent } from './admin.component';\r\nimport { AdminPagesMenu } from './admin-pages-menu';\r\nimport { ThemeModule } from 'app/@theme/theme.module';\r\nimport { ConvertToGramPipe } from 'app/@theme/pipes';\r\n\r\nconst PAGES_COMPONENTS = [AdminComponent];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n AdminRoutingModule,\r\n ThemeModule,\r\n AuthModule,\r\n NbMenuModule,\r\n NbSelectModule,\r\n NbCheckboxModule,\r\n ],\r\n declarations: [AdminComponent, ...PAGES_COMPONENTS],\r\n providers: [AdminPagesMenu],\r\n})\r\nexport class AdminModule {}\r\n"]}