{"version":3,"file":"main-class-template.mjs","sources":["../../../../projects/main-class/template/src/menu/menu-config.ts","../../../../projects/main-class/template/src/menu/menu.service.ts","../../../../projects/main-class/template/src/base/base.service.ts","../../../../projects/main-class/template/src/menu/menu.component.ts","../../../../projects/main-class/template/src/menu/menu.component.html","../../../../projects/main-class/template/src/header/header.component.ts","../../../../projects/main-class/template/src/header/header.component.html","../../../../projects/main-class/template/src/footer/footer.component.ts","../../../../projects/main-class/template/src/footer/footer.component.html","../../../../projects/main-class/template/src/base/base.component.ts","../../../../projects/main-class/template/src/base/base.component.html","../../../../projects/main-class/template/src/acesso/acesso.component.ts","../../../../projects/main-class/template/src/acesso/acesso.component.html","../../../../projects/main-class/template/src/route/crud.routes.ts","../../../../projects/main-class/template/src/route/siblings.routes.ts","../../../../projects/main-class/template/src/route/tab.route.ts","../../../../projects/main-class/template/src/public-api.ts","../../../../projects/main-class/template/src/main-class-template.ts"],"sourcesContent":["import {Observable} from 'rxjs';\nimport {InjectionToken} from '@angular/core';\n\nexport interface Menu {\n  label: string;\n  route?: string;\n  icon?: string;\n  badge?: string;\n  children?: Array<Menu>;\n  collapsible?: boolean;\n}\n\nexport interface User {\n  name: string;\n  role?: string;\n  photoUrl?: string;\n  menus?: Array<{\n    label: string;\n    action: () => any;\n    icon?: string;\n  }>;\n}\n\nexport const MENU_CONFIG = new InjectionToken<MenuConfig>('MENU_CONFIG');\n\nexport interface MenuConfig {\n  menus(): Observable<Array<Menu>>;\n\n  user(): Observable<User | undefined>;\n}\n","import {Injectable} from '@angular/core';\n\nexport interface MenuToggleDelegate {\n  toggle(): void;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MenuService {\n\n  delegates: Array<MenuToggleDelegate> = [];\n\n  constructor() {\n  }\n\n  register(delegate: MenuToggleDelegate) {\n    this.delegates.push(delegate);\n  }\n\n  unregister(delegate: MenuToggleDelegate) {\n    this.delegates.splice(\n      this.delegates.indexOf(delegate), 1\n    );\n  }\n\n  toggle() {\n    this.delegates.forEach(d => d.toggle());\n  }\n\n}\n","import {ApplicationRef, Injectable, Injector} from '@angular/core';\nimport {BehaviorSubject, from, Observable, Subscription} from 'rxjs';\nimport {ActivatedRoute, NavigationEnd, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {map} from 'rxjs/operators';\n\nexport interface TabBase {\n  label: string;\n  route?: string;\n  badge?: number;\n  badgeSubscription?: Subscription;\n}\n\nexport interface BadgeProvider {\n  badge(): Observable<number>;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BaseService {\n\n  private $tabs = new BehaviorSubject<Array<TabBase>>([]);\n\n  private $mode = new BehaviorSubject<'default' | 'dialog'>('default');\n\n  constructor(\n    private router: Router,\n    private injector: Injector,\n    private activatedRoute: ActivatedRoute,\n    private application: ApplicationRef,\n    private translateService: TranslateService,\n  ) {\n    this.activatedRoute.queryParams.subscribe(qp => {\n      if (qp['mode'] === 'dialog') {\n        this.$mode.next('dialog');\n      } else {\n        this.$mode.next('default');\n      }\n    });\n\n    this.init();\n  }\n\n  get title(): Observable<string | undefined> {\n    return this.$tabs.pipe(map(tabs => tabs.find(t => !t.route)?.label));\n  }\n\n  get tabs(): Observable<Array<TabBase>> {\n    return this.$tabs.asObservable();\n  }\n\n  get hasTabs(): boolean {\n    return !!this.$tabs.value.length;\n  }\n\n  get mode() {\n    return this.$mode.asObservable();\n  }\n\n  private async init() {\n    const updateState = async (tabs: Array<TabBase> = [], activatedRoute = this.activatedRoute) => {\n\n      if (!!activatedRoute.snapshot.data &&\n        activatedRoute.snapshot.data['hasTabs'] !== null &&\n        activatedRoute.snapshot.data['hasTabs'] !== undefined &&\n        !activatedRoute.snapshot.data['hasTabs']) {\n\n        return [];\n      } else {\n        if (!!activatedRoute.snapshot.data &&\n          activatedRoute.snapshot.data['tabs']) {\n          for (const tab of activatedRoute.snapshot.data['tabs']) {\n            const permission = await this.checkPermission(tab);\n\n            if (permission) {\n              const route = !!tab.route ? this.router.createUrlTree(tab.route.split('/'), {\n                relativeTo: activatedRoute,\n              }).toString() : undefined;\n\n              const label = this.translateService.instant(tab.label);\n\n              const t = tabs.find(t0 => t0.label === label);\n\n              if (t) {\n                t.route = route;\n              } else {\n                if (!!tab.badgeProvider) {\n                  const badgeProvider = this.injector.get<BadgeProvider>(tab.badgeProvider);\n\n                  tab.badgeSubscription = badgeProvider.badge().subscribe(badge => tab.badge = badge);\n                }\n\n                tabs.push({\n                  ...tab,\n                  label,\n                  route,\n                });\n              }\n            }\n          }\n        }\n\n        if (activatedRoute.firstChild) {\n          return await updateState(tabs, activatedRoute.firstChild);\n        }\n      }\n\n      return tabs;\n    };\n\n    this.router.events.subscribe(async event => {\n      if (event instanceof NavigationEnd) {\n        this.$tabs.value.forEach(tab => {\n          tab.badgeSubscription?.unsubscribe();\n        });\n\n        this.$tabs.next(await updateState());\n\n        this.application.tick();\n      }\n    });\n\n    this.application.tick();\n  }\n\n  private async checkPermission(tab: any) {\n    if (tab.permission && tab.permission.condition) {\n      const deps = tab.permission.deps ? tab.permission.deps.map((dep: any) => this.injector.get<any>(dep)) : [];\n      return await from(tab.permission.condition(...deps)).toPromise();\n    }\n\n    return true;\n  }\n\n}\n","import {Component, inject} from '@angular/core';\nimport {MenuService} from './menu.service';\nimport {BaseService} from '../base/base.service';\nimport {MobileService} from '@main-class/componentes/core';\nimport {RouterLink, RouterLinkActive, RouterOutlet} from '@angular/router';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {MatIcon} from '@angular/material/icon';\nimport {Menu, MENU_CONFIG, MenuConfig} from './menu-config';\nimport {AsyncPipe} from '@angular/common';\n\n@Component({\n  selector: 'mcl-menu',\n  templateUrl: './menu.component.html',\n  imports: [\n    AsyncPipe,\n    RouterLink,\n    MatIcon,\n    TranslatePipe,\n    RouterOutlet,\n    RouterLinkActive,\n  ],\n  styleUrls: ['./menu.component.scss']\n})\nexport class MenuComponent {\n  menuConfig = inject<MenuConfig>(MENU_CONFIG);\n\n  collapsedSections = new Set<string>();\n\n  constructor(\n    private mobileService: MobileService,\n    private menuService: MenuService,\n    private baseService: BaseService,\n  ) {\n  }\n\n  toggleSection(menu: Menu): void {\n    if (this.collapsedSections.has(menu.label)) {\n      this.collapsedSections.delete(menu.label);\n    } else {\n      this.collapsedSections.add(menu.label);\n    }\n  }\n\n  isSectionCollapsed(menu: Menu): boolean {\n    return this.collapsedSections.has(menu.label);\n  }\n\n  menuClicked(menu: Menu) {\n    if (this.mobileService.mobile) {\n      this.menuService.toggle();\n    }\n  }\n\n}\n\n","<div class=\"menu\">\n  <div class=\"menu__brand\">\n    <router-outlet name=\"menu-header\"></router-outlet>\n  </div>\n    @let menus = menuConfig.menus() | async;\n\n    @for (menu of menus; track menu.label) {\n      @if (!menu.children?.length) {\n        <div class=\"menu__list\">\n          <button class=\"menu__item\"\n                  (click)=\"menuClicked(menu)\"\n                  [routerLink]=\"menu.route\" [routerLinkActive]=\"['is-active']\">\n            @if (menu.icon) { <span class=\"menu__icon\"><mat-icon>{{menu.icon}}</mat-icon></span> }\n            <span>{{menu.label | translate}}</span>\n          </button>\n        </div>\n      }\n\n      @if (menu.children?.length){\n        @if (menu.collapsible) {\n          <button class=\"menu__section menu__section--collapsible\"\n                  (click)=\"toggleSection(menu)\"\n                  [class.is-collapsed]=\"isSectionCollapsed(menu)\"\n                  type=\"button\">\n            <span>{{menu.label | translate}}</span>\n            <mat-icon class=\"menu__section-chevron\">expand_more</mat-icon>\n          </button>\n          <div class=\"menu__collapsible-wrapper\"\n               [class.is-collapsed]=\"isSectionCollapsed(menu)\">\n            <div class=\"menu__list\">\n              @for (sub of menu.children; track sub.label){\n                <button class=\"menu__item\"\n                        (click)=\"menuClicked(sub)\"\n                        [routerLink]=\"sub.route\" [routerLinkActive]=\"['is-active']\">\n                  @if (sub.icon) { <span class=\"menu__icon\"><mat-icon>{{sub.icon}}</mat-icon></span> }\n                  <span>{{sub.label | translate}}</span>\n                </button>\n              }\n            </div>\n          </div>\n        } @else {\n          <div class=\"menu__section\">\n            {{menu.label | translate}}\n          </div>\n\n          <div class=\"menu__list\">\n            @for (sub of menu.children; track sub.label){\n              <button class=\"menu__item\"\n                      (click)=\"menuClicked(sub)\"\n                      [routerLink]=\"sub.route\" [routerLinkActive]=\"['is-active']\">\n                @if (sub.icon) { <span class=\"menu__icon\"><mat-icon>{{sub.icon}}</mat-icon></span> }\n                <span>{{sub.label | translate}}</span>\n              </button>\n            }\n          </div>\n        }\n      }\n    }\n\n  <div class=\"menu__footer\">\n    <router-outlet name=\"menu-bottom\"></router-outlet>\n  </div>\n</div>\n","import {Component, inject, OnInit} from '@angular/core';\nimport {Router, RouterOutlet} from '@angular/router';\nimport {AsyncPipe} from '@angular/common';\nimport {BaseService} from '../base/base.service';\nimport {MatIcon} from '@angular/material/icon';\nimport {MenuService} from '../menu/menu.service';\nimport {MobileService} from '@main-class/componentes/core';\nimport {MENU_CONFIG, MenuConfig} from '../menu/menu-config';\nimport {MatMenu, MatMenuItem, MatMenuTrigger} from '@angular/material/menu';\nimport {ImagemDirective} from '@main-class/componentes/arquivo';\n\n@Component({\n  selector: 'mcl-header',\n  templateUrl: './header.component.html',\n  imports: [\n    RouterOutlet,\n    AsyncPipe,\n    MatIcon,\n    MatMenu,\n    ImagemDirective,\n    MatMenuTrigger,\n    MatMenuItem,\n  ],\n  styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n  menuConfig = inject<MenuConfig>(MENU_CONFIG);\n\n  private router = inject(Router);\n\n  constructor(\n    private menuService: MenuService,\n    private baseService: BaseService,\n    private mobileService: MobileService,\n\n  ) {\n  }\n\n  get mobile(): boolean {\n    return this.mobileService.mobile;\n  }\n\n  ngOnInit(): void {\n  }\n\n  get title() {\n    return this.baseService.title;\n  }\n\n  toggleMenu() {\n    this.menuService.toggle();\n  }\n\n}\n","<div class=\"header\">\n  <div class=\"header__left\">\n    <!-- botão do menu (mobile) -->\n    <button class=\"header__btn\" type=\"button\" (click)=\"toggleMenu()\" aria-label=\"Abrir menu\">\n      <mat-icon>menu</mat-icon>\n    </button>\n\n    <div class=\"header__brand\">\n      <div class=\"header__brand-text\">\n        <div class=\"header__title\">\n          {{ title | async }}\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"header__right\">\n    <router-outlet name=\"header-actions\"></router-outlet>\n\n    @let user = menuConfig.user() | async;\n\n    @if (!!user) {\n      <div class=\"header__user\" [matMenuTriggerFor]=\"acoes\" >\n        <div class=\"header__avatar\" [mclImagemBackground]=\"user.photoUrl\"></div>\n        <div class=\"header__user-meta\">\n          <div class=\"header__user-name\">{{ user.name }}</div>\n          @if (user.role) {\n            <div class=\"header__user-role\">{{ user.role }}</div>\n          }\n        </div>\n      </div>\n\n      <mat-menu #acoes>\n        @for (menu of user.menus; track menu.label) {\n          <button mat-menu-item type=\"button\" (click)=\"menu.action()\">\n            <mat-icon>{{ menu.icon }}</mat-icon>\n            <span>{{ menu.label }}</span>\n          </button>\n        }\n      </mat-menu>\n    }\n  </div>\n\n\n\n</div>\n","import {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslatePipe} from '@ngx-translate/core';\n\n@Component({\n  selector: 'mcl-footer',\n  templateUrl: './footer.component.html',\n  imports: [\n    TranslatePipe\n  ],\n  styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent implements OnInit {\n\n  constructor(\n    private activatedRoute: ActivatedRoute,\n  ) {\n  }\n\n  ngOnInit(): void {\n  }\n\n  get direitos(): string {\n    return this.activatedRoute.snapshot.data['direitos'];\n  }\n\n}\n","{{direitos | translate}}\n","import {AfterViewInit, Component, inject, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {ActivatedRoute, RouterLink, RouterOutlet} from '@angular/router';\nimport {MenuService, MenuToggleDelegate} from '../menu/menu.service';\nimport {MatDrawer, MatDrawerContainer, MatDrawerContent, MatSidenav} from '@angular/material/sidenav';\nimport {BaseService, TabBase} from './base.service';\nimport {MobileService} from '@main-class/componentes/core';\nimport {HeaderComponent} from '../header/header.component';\nimport {MenuComponent} from '../menu/menu.component';\nimport {NgClass} from '@angular/common';\nimport {MatTabLink, MatTabNav} from '@angular/material/tabs';\nimport {FooterComponent} from '../footer/footer.component';\nimport {Subscription} from 'rxjs';\n\n@Component({\n  selector: 'mcl-base',\n  templateUrl: './base.component.html',\n  imports: [\n    HeaderComponent,\n    MenuComponent,\n    NgClass,\n    MatTabNav,\n    MatTabLink,\n    RouterLink,\n    RouterOutlet,\n    FooterComponent,\n    MatDrawerContainer,\n    MatDrawerContent,\n    MatDrawer\n  ],\n  styleUrls: ['./base.component.scss']\n})\nexport class BaseComponent implements OnInit, OnDestroy, AfterViewInit, MenuToggleDelegate {\n\n  private activatedRoute = inject(ActivatedRoute);\n\n  private modeSubscription?: Subscription;\n  private tabsSubscription?: Subscription;\n\n  tabs: Array<TabBase> = [];\n  mobile: boolean = false;\n\n  mode: 'default' | 'dialog' = 'default';\n\n  @ViewChild('sidenav') sidenav!: MatSidenav;\n\n  private mobieListener = (mobile: boolean) => this.mobile = mobile;\n\n  get hasTabs() {\n    return this.baseService.hasTabs;\n  }\n\n  constructor(\n    private mobileService: MobileService,\n    private menuService: MenuService,\n    private baseService: BaseService,\n  ) {\n\n\n  }\n\n  ngOnDestroy() {\n    this.tabsSubscription?.unsubscribe();\n    this.modeSubscription?.unsubscribe();\n    this.menuService.unregister(this);\n    this.mobileService.removeListener(this.mobieListener);\n  }\n\n  ngAfterViewInit() {\n    this.tabsSubscription = this.baseService.tabs\n      .subscribe(tabs => this.tabs = tabs);\n    this.modeSubscription = this.baseService.mode\n      .subscribe(mode => this.mode = mode);\n  }\n\n  async ngOnInit() {\n    this.mobile = this.mobileService.mobile;\n\n    this.menuService.register(this);\n    this.mobileService.addListener(this.mobieListener);\n\n  }\n\n  toggle() {\n    this.sidenav.toggle();\n  }\n\n}\n","<mat-drawer-container [ngClass]=\"{'dialog': mode === 'dialog'}\">\n  @if (mode !== 'dialog') {\n    <mat-drawer [mode]=\"mobile ? 'over' : 'side'\"\n                [opened]=\"!mobile\" #sidenav>\n      <mcl-menu></mcl-menu>\n    </mat-drawer>\n  }\n  <mat-drawer-content>\n    @if (mode !== 'dialog') {\n      <mcl-header></mcl-header>\n\n      @if (hasTabs) {\n        <div class=\"toolbar toolbar--breadcrumb\">\n          <nav mat-tab-nav-bar class=\"path-nav\" aria-label=\"Navegação\">\n            @for (tab of tabs; track tab.label) {\n              <a\n                mat-tab-link\n                class=\"path-link\"\n                [routerLink]=\"tab.route\"\n                queryParamsHandling=\"preserve\"\n                [active]=\"!tab.route\">\n                {{ tab.label }}\n                @if (tab.badge) {\n                  <span class=\"path-badge\">{{ tab.badge }}</span>\n                }\n              </a>\n            }\n          </nav>\n        </div>\n      }\n\n    }\n\n    <div class=\"content\">\n      <router-outlet></router-outlet>\n    </div>\n\n    @if (mode !== 'dialog') {\n      <mcl-footer></mcl-footer>\n    }\n  </mat-drawer-content>\n</mat-drawer-container>\n\n","import {Component, computed, inject} from '@angular/core';\nimport {ActivatedRoute, RouterModule} from '@angular/router';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatButtonModule} from '@angular/material/button';\nimport {CommonModule} from '@angular/common';\nimport {MatDividerModule} from '@angular/material/divider';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {map, startWith} from 'rxjs';\n\ntype SignInShellData = Partial<{\n  brand: string;\n  logoUrl: string;\n  headline: string;\n  subhead: string;\n  imageUrl: string;\n  videoUrl: string;\n  hideMedia: boolean;\n  helpLink: string;\n}>;\n\nconst DEFAULTS: Required<SignInShellData> = {\n  brand: 'Admin Portal',\n  logoUrl: '',\n  headline: 'Welcome back',\n  subhead: 'Sign in to continue managing your workspace',\n  imageUrl: '',\n  videoUrl: '',\n  hideMedia: false,\n  helpLink: '',\n};\n\n@Component({\n  selector: 'mcl-acesso',\n  templateUrl: './acesso.component.html',\n  imports: [\n    CommonModule,\n    RouterModule,\n    MatButtonModule,\n    MatIconModule,\n    MatDividerModule,\n    MatProgressSpinnerModule,\n  ],\n  styleUrls: ['./acesso.component.scss']\n})\nexport class AcessoComponent {\n  private readonly route = inject(ActivatedRoute);\n\n  /**\n   * vm(): merged data from route.data with DEFAULTS.\n   * You can set any of these keys via the route's `data` property.\n   */\n  readonly vm = toSignal(\n    this.route.data.pipe(\n      map(d => ({ ...DEFAULTS, ...(d as SignInShellData) })),\n      startWith(DEFAULTS)\n    ),\n    { initialValue: DEFAULTS }\n  );\n\n  /** Render-safe current year for footer */\n  readonly year = computed(() => new Date().getFullYear());\n\n}\n","<div class=\"page\" role=\"main\" aria-label=\"Sign in\">\n  <!-- background deco layers -->\n  <div class=\"bg aurora\" aria-hidden=\"true\"></div>\n  <div class=\"bg mesh\" aria-hidden=\"true\"></div>\n  <div class=\"bg noise\" aria-hidden=\"true\"></div>\n\n  <div class=\"layout\" [class.no-media]=\"vm().hideMedia\">\n    <aside class=\"media\" *ngIf=\"!vm().hideMedia\" aria-hidden=\"true\">\n      <div class=\"media-surface\">\n        <video\n          *ngIf=\"vm().videoUrl\"\n          class=\"media-video\"\n          [attr.poster]=\"vm().imageUrl || null\"\n          [src]=\"vm().videoUrl\"\n          autoplay muted loop playsinline\n        ></video>\n\n        <img\n          *ngIf=\"!vm().videoUrl && vm().imageUrl\"\n          class=\"media-image\"\n          [src]=\"vm().imageUrl\"\n          alt=\"\"\n          loading=\"eager\" decoding=\"async\"\n        />\n\n        <div class=\"media-overlay\">\n          <div class=\"brand-section\" *ngIf=\"vm().logoUrl\">\n            <img\n              class=\"brand-logo\"\n              [src]=\"vm().logoUrl\"\n              [alt]=\"vm().brand + ' logo'\"\n              loading=\"eager\"\n              decoding=\"async\"\n            />\n          </div>\n          <h1 class=\"headline\">{{ vm().headline }}</h1>\n          <p class=\"subhead\">{{ vm().subhead }}</p>\n        </div>\n      </div>\n    </aside>\n\n    <section class=\"auth\">\n      <div class=\"auth-card edge-glow\" role=\"region\" aria-label=\"Sign in form\">\n        <div class=\"accent-bar\" aria-hidden=\"true\"></div>\n\n        <div class=\"card-header\">\n          <div class=\"avatar\">\n            <mat-icon>lock</mat-icon>\n          </div>\n          <div class=\"titles\">\n            <h2 class=\"title\">Acesso</h2>\n            <p class=\"subtitle\">Bem-vindo de volta!</p>\n          </div>\n        </div>\n\n        <router-outlet></router-outlet>\n\n      </div>\n\n      <footer class=\"footnote\">\n        <span>© {{ year() }} — Todos os direitos reservados.</span>\n      </footer>\n    </section>\n  </div>\n</div>\n","import {Routes} from '@angular/router';\n\nexport interface CrudRoutesConfig {\n  baseRoute: string;\n  list: {\n    tab?: string;\n    component: any;\n  },\n  creation?: {\n    tab?: string;\n    component?: any;\n  },\n  update: {\n    tab?: string;\n    component: any;\n  }\n}\n\nexport function crudRoutes(config: CrudRoutesConfig): Routes {\n  return [\n    {\n      path: '',\n      data: {\n        tabs: [\n          {\n            label: config.list.tab || 'Listagem',\n            route: `${config.baseRoute}`,\n          },\n          {\n            label: config.creation?.tab || 'Cadastro',\n            route: `${config.baseRoute}/novo`,\n          }\n        ]\n      },\n      children: [\n        {\n          path: '',\n          component: config.list.component,\n          data: {\n            tabs: [\n              {\n                label: config.list.tab || 'Listagem',\n              }\n            ]\n          }\n        },\n        {\n          path: 'novo',\n          component: config.creation?.component || config.update.component,\n          data: {\n            tabs: [\n              {\n                label: config.creation?.tab || 'Cadastro',\n              }\n            ]\n          }\n        },\n        {\n          path: ':id',\n          component: config.update.component,\n          data: {\n            tabs: [\n              {\n                label: config.update.tab|| 'Edição',\n              }\n            ]\n          }\n        }\n      ]\n    }\n  ];\n}\n","import {Routes} from '@angular/router';\nimport {TabCompoent} from './tab.route';\n\nexport function siblingsRoutes(siblings: Array<TabCompoent>): Routes {\n  return [\n    {\n      path: '',\n      data: {\n        tabs: siblings.map(route => ({\n          label: route.tab,\n          route: route.path,\n        }))\n      },\n      children: siblings.map(route => ({\n        path: route.path,\n        component: route.component,\n        data: {\n          tabs: [\n            {\n              label: route.tab,\n            }\n          ]\n        }\n      }))\n    },\n    {\n      path: '',\n      pathMatch: 'full',\n      redirectTo: siblings[0].path\n    }\n  ];\n}\n","import {Route} from '@angular/router';\n\nexport interface TabCompoent {\n  tab: string;\n  path: string;\n  component: any;\n}\n\nexport function tabRoute(route: TabCompoent): Route {\n  return {\n    path: route.path,\n    component: route.component,\n    data: {\n      tabs: [\n        {\n          label: route.tab,\n        }\n      ]\n    }\n  };\n}\n","/*\n * Public API Surface of template\n */\n\nexport * from './menu/menu-config';\nexport * from './menu/menu.component';\nexport * from './menu/menu.service';\nexport * from './base/base.component';\nexport * from './base/base.service';\nexport * from './header/header.component';\nexport * from './acesso/acesso.component';\nexport * from './footer/footer.component';\nexport * from './route/crud.routes';\nexport * from './route/siblings.routes';\nexport * from './route/tab.route';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.MenuService","i3.BaseService","i1.MenuService","i2.BaseService","i3","map","i2"],"mappings":"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"}