blob: be5944c39a8f170f3966b1337d9e4daf3d99fb2c [file] [log] [blame]
{"version":3,"sources":["../../../../src/platform/core/nav-links/nav-links.component.ts","../../../../src/platform/core/nav-links/nav-links.module.ts"],"names":["nextUniqueId","TdNavLinksComponent","this","_uniqueId","_collapsedSet","Set","id","afterNavigation","EventEmitter","prototype","_linkClicked","link","emit","_href","href","_routerLink","routerLink","_toggle","_isCollapsed","delete","add","has","Component","args","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","animations","tdCollapseAnimation","tdRotateAnimation","Input","Output","NgModule","declarations","exports","imports","CommonModule","CovalentCommonModule","CovalentExpansionPanelModule","MatRippleModule","MatMenuModule","MatListModule","MatIconModule","MatDividerModule","RouterModule"],"mappings":"umCAsBIA,EAAuB,eAE3B,SAAAC,IAQUC,KAAAC,UAAoB,mBAAkBH,EAEtCE,KAAAE,cAAsC,IAAIC,IAEzCH,KAAAI,GAAaJ,KAAKC,UAWjBD,KAAAK,gBAAyC,IAAIC,EAAAA,oBAEvDP,EAAAQ,UAAAC,aAAA,SAAaC,GACXT,KAAKK,gBAAgBK,KAAKD,IAG5BV,EAAAQ,UAAAI,MAAA,SAAMF,GACJ,OAAOA,EAAKA,MAA4BA,EAAS,KAAEG,MAGrDb,EAAAQ,UAAAM,YAAA,SAAYJ,GACV,OAAOA,EAAKA,MAA6CA,EAAS,KAAEK,YAQtEf,EAAAQ,UAAAQ,QAAA,SAAQN,GACFT,KAAKgB,aAAaP,GACpBT,KAAKE,cAAce,OAAOR,GAE1BT,KAAKE,cAAcgB,IAAIT,IAQ3BV,EAAAQ,UAAAS,aAAA,SAAaP,GACX,OAAOT,KAAKE,cAAciB,IAAIV,6BAvDjCW,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,eACVC,SAAA,qnEAEAC,gBAAiBC,EAAAA,wBAAwBC,OACzCC,WAAY,CAACC,EAAAA,oBAAqBC,EAAAA,sSAOjCC,EAAAA,qBAMAA,EAAAA,+BAKAC,EAAAA,gBChBH,iCAfCC,EAAAA,SAAQX,KAAA,CAAC,CACRY,aAAc,CAAClC,GACfmC,QAAS,CAACnC,GACVoC,QAAS,CACPC,EAAAA,aACAC,EAAAA,qBACAC,EAAAA,6BACAC,EAAAA,gBACAC,EAAAA,cACAC,EAAAA,cACAC,EAAAA,cACAC,EAAAA,iBACAC,EAAAA","sourcesContent":["import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\n\nimport { tdCollapseAnimation, tdRotateAnimation } from '@covalent/core/common';\n\nexport interface ITdNavNode {\n label: string;\n show?: boolean;\n}\n\nexport interface ITdNavHeader extends ITdNavNode {\n children: ITdLink[];\n}\n\nexport interface ITdNavExpansion extends ITdNavHeader {\n collapsable?: boolean;\n}\n\nexport interface ITdLink extends ITdNavNode {\n link: { href: string; openInNewTab?: boolean } | { routerLink: string | string[]; openInNewTab?: boolean };\n icon: { fontSet?: string; name: string };\n}\n\nlet nextUniqueId: number = 0;\n\n@Component({\n selector: 'td-nav-links',\n templateUrl: './nav-links.component.html',\n styleUrls: ['./nav-links.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tdCollapseAnimation, tdRotateAnimation],\n})\nexport class TdNavLinksComponent {\n private _uniqueId: string = `td-nav-links-${++nextUniqueId}`;\n\n private _collapsedSet: Set<ITdNavExpansion> = new Set<ITdNavExpansion>();\n\n @Input() id: string = this._uniqueId;\n\n /**\n * Links to be rendered by component.\n */\n /* tslint:disable-next-line */\n @Input() links: Array<ITdNavExpansion | ITdNavHeader | ITdLink>;\n\n /**\n * Event trigger after a navigation click\n */\n @Output() afterNavigation: EventEmitter<ITdLink> = new EventEmitter<ITdLink>();\n\n _linkClicked(link: ITdLink): void {\n this.afterNavigation.emit(link);\n }\n\n _href(link: ITdLink): string {\n return link.link && (<{ href?: string }>link.link).href;\n }\n\n _routerLink(link: ITdLink): string | string[] {\n return link.link && (<{ routerLink?: string | string[] }>link.link).routerLink;\n }\n\n /**\n * @param link\n * Toggles expand/collapse state of expansion link.\n * Only applied when `collapsable` is true\n */\n _toggle(link: ITdNavExpansion): void {\n if (this._isCollapsed(link)) {\n this._collapsedSet.delete(link);\n } else {\n this._collapsedSet.add(link);\n }\n }\n\n /**\n * @param link\n * Returns true if the state of provided expansion link is collapsed.\n */\n _isCollapsed(link: ITdNavExpansion): boolean {\n return this._collapsedSet.has(link);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatListModule } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { CovalentCommonModule } from '@covalent/core/common';\nimport { CovalentExpansionPanelModule } from '@covalent/core/expansion-panel';\n\nimport { TdNavLinksComponent } from './nav-links.component';\n\n@NgModule({\n declarations: [TdNavLinksComponent], // directives, components, and pipes owned by this NgModule\n exports: [TdNavLinksComponent],\n imports: [\n CommonModule,\n CovalentCommonModule,\n CovalentExpansionPanelModule,\n MatRippleModule,\n MatMenuModule,\n MatListModule,\n MatIconModule,\n MatDividerModule,\n RouterModule,\n ], // modules needed to run this module\n})\nexport class CovalentNavLinksModule {}\n"]}