UNPKG

novo-elements

Version:

1 lines 22.5 kB
{"version":3,"file":"novo-elements-elements-tabs.mjs","sources":["../../../projects/novo-elements/src/elements/tabs/Tabs.ts","../../../projects/novo-elements/src/elements/tabs/Tabs.module.ts","../../../projects/novo-elements/src/elements/tabs/novo-elements-elements-tabs.ts"],"sourcesContent":["// NG2\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Router, RouterLink } from '@angular/router';\nimport { BooleanInput } from 'novo-elements/utils';\n\n@Component({\n selector: 'novo-nav',\n template: '<ng-content></ng-content>',\n styleUrls: ['./tab-nav.scss'],\n standalone: false,\n})\nexport class NovoNavElement implements AfterContentChecked {\n @Input()\n theme: string = '';\n @Input()\n direction: string = '';\n @Input()\n outlet: any;\n @Input()\n router: string;\n @HostBinding('class.condensed')\n @Input()\n @BooleanInput()\n condensed: boolean = false;\n\n items: Array<any> = [];\n\n /** The index of the active tab. */\n @Input()\n get selectedIndex(): number | null {\n return this._selectedIndex;\n }\n set selectedIndex(value: number | null) {\n this._indexToSelect = coerceNumberProperty(value, null);\n }\n private _selectedIndex: number | null = null;\n /** The tab index that should be selected after the content has been checked. */\n private _indexToSelect: number | null = 0;\n /** Output to enable support for two-way binding on `[(selectedIndex)]` */\n @Output() readonly selectedIndexChange: EventEmitter<number> = new EventEmitter<number>();\n\n ngAfterContentChecked() {\n // Don't clamp the `indexToSelect` immediately in the setter because it can happen that\n // the amount of tabs changes before the actual change detection runs.\n const indexToSelect = (this._indexToSelect = this._clampTabIndex(this._indexToSelect));\n if (this._selectedIndex !== indexToSelect) {\n const isFirstRun = this._selectedIndex == null;\n // Changing these values after change detection has run\n // since the checked content may contain references to them.\n Promise.resolve().then(() => {\n this._deactivateAllItems(this.items);\n this._activateSelectedItem(indexToSelect);\n this._showActiveContent(indexToSelect);\n if (!isFirstRun) {\n this.selectedIndexChange.emit(indexToSelect);\n }\n });\n\n this._selectedIndex = indexToSelect;\n }\n }\n\n select(item) {\n const indexToSelect = this.items.indexOf(item);\n // Deactivate all other tabs\n this._deactivateAllItems(this.items);\n this._activateSelectedItem(indexToSelect);\n this._showActiveContent(indexToSelect);\n this.selectedIndexChange.emit(indexToSelect);\n }\n\n add(item) {\n if (this.items.length === 0) {\n item.active = true;\n // item.selected.next();\n }\n this.items.push(item);\n }\n\n private _activateSelectedItem(indexToSelect: number) {\n const item = this.items[indexToSelect];\n if (item) {\n item.active = true;\n }\n }\n\n private _showActiveContent(indexToSelect: number) {\n if (this.outlet) {\n this.outlet.show(indexToSelect);\n }\n }\n\n private _deactivateAllItems(items: Array<any>) {\n items.forEach((t) => {\n if (t.active === true) {\n // t.deselected.next();\n }\n t.active = false;\n });\n }\n\n /** Clamps the given index to the bounds of 0 and the tabs length. */\n private _clampTabIndex(index: number | null): number {\n return Math.min(this.items.length - 1, Math.max(index || 0, 0));\n }\n}\n\n@Component({\n selector: 'novo-tab',\n host: {\n '(click)': 'select()',\n '[class.active]': 'active',\n '[class.disabled]': 'disabled',\n '[attr.role]': '\"tab\"',\n },\n template: `\n <div #tablink class=\"novo-tab-link\">\n <ng-content></ng-content>\n </div>\n <span class=\"indicator\"></span>\n `,\n styleUrls: ['./tab.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoTabElement {\n @HostBinding('attr.role')\n public role = 'tab';\n\n @Input()\n active: boolean = false;\n\n @Input()\n color: string;\n\n @Input()\n @BooleanInput()\n disabled: boolean = false;\n\n @Output()\n activeChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n onlyText = true;\n @HostBinding('class.text-only')\n get hb_textOnly() {\n return this.onlyText;\n }\n\n @ViewChild('tablink')\n tablink;\n\n nav: any;\n\n constructor(nav: NovoNavElement, private el: ElementRef, private cdr: ChangeDetectorRef) {\n this.nav = nav;\n this.nav.add(this);\n const tablink = el.nativeElement.querySelector('.novo-tab-link');\n if (tablink) {\n for (let i = 0; i < tablink.childNodes.length; i++) {\n if (tablink.childNodes[i].nodeType !== Node.TEXT_NODE) {\n this.onlyText = false;\n }\n }\n }\n }\n\n select() {\n if (!this.disabled) {\n this.activeChange.emit(true);\n this.nav.select(this);\n }\n this.cdr.detectChanges();\n }\n}\n\n@Component({\n selector: 'novo-tab-button',\n host: {\n '(click)': 'select()',\n '[class.active]': 'active',\n '[class.disabled]': 'disabled',\n },\n template: '<ng-content></ng-content>',\n styleUrls: ['./tab-button.scss'],\n standalone: false,\n})\nexport class NovoTabButtonElement {\n @HostBinding('attr.role')\n public role = 'tab';\n @Input()\n active: boolean = false;\n @Input()\n disabled: boolean = false;\n\n nav: any;\n\n constructor(nav: NovoNavElement) {\n this.nav = nav;\n this.nav.add(this);\n }\n\n select() {\n if (!this.disabled) {\n this.nav.select(this);\n }\n }\n}\n\n@Component({\n selector: 'novo-tab-link',\n host: {\n '(click)': 'select()',\n '[class.active]': 'active',\n '[class.disabled]': 'disabled',\n },\n template: `\n <div class=\"novo-tab-link\">\n <ng-content></ng-content>\n </div>\n <span class=\"indicator\"></span>\n `,\n styleUrls: ['./tab.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoTabLinkElement implements OnInit {\n @HostBinding('attr.role')\n public role = 'tab';\n @Input()\n active: boolean = false;\n @Input()\n disabled: boolean = false;\n @Input()\n spy: string;\n\n nav: any;\n\n constructor(nav: NovoNavElement, private router: Router, private cdr: ChangeDetectorRef, @Optional() private link?: RouterLink) {\n this.nav = nav;\n this.nav.add(this);\n }\n\n ngOnInit(): void {\n if (this.isLinkActive(this.link)) {\n this.nav.select(this);\n }\n }\n\n select() {\n if (!this.disabled) {\n this.nav.select(this);\n if (this.spy) {\n const el = document.querySelector(`#${this.spy}`);\n el?.scrollIntoView(true);\n }\n }\n }\n\n private isLinkActive(link: RouterLink) {\n return link && link.urlTree ? this.router.isActive(link.urlTree, false) : false;\n }\n}\n\n@Component({\n selector: 'novo-nav-outlet',\n template: '<ng-content></ng-content>',\n styleUrls: ['./tab-outlet.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class NovoNavOutletElement {\n items: Array<any> = [];\n\n show(index) {\n const item = this.items[index];\n\n /**\n * Deactivates other tab items\n * @param items - deactivated items\n */\n function _deactivateAllItems(items) {\n items.forEach((t) => {\n if (t.active === true) {\n // t.deselected.next();\n }\n t.active = false;\n });\n }\n\n _deactivateAllItems(this.items);\n item.active = true;\n }\n\n add(item) {\n if (this.items.length === 0) {\n item.active = true;\n }\n this.items.push(item);\n }\n}\n\n@Component({\n selector: 'novo-nav-content',\n host: {\n '[class.active]': 'active',\n },\n template: '<ng-content></ng-content>',\n styleUrls: ['./tab-content.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class NovoNavContentElement {\n @Input()\n active: boolean = false;\n\n constructor(outlet: NovoNavOutletElement) {\n outlet.add(this);\n }\n}\n\n@Component({\n selector: 'novo-nav-header',\n host: {\n '[class.active]': 'active',\n '(click)': 'show($event)',\n },\n template: '<ng-content></ng-content>',\n styleUrls: ['./tab-header.scss'],\n standalone: false,\n})\nexport class NovoNavHeaderElement {\n @HostBinding('attr.role')\n public role = 'tabpanel';\n @Input()\n active: boolean = false;\n @Input('for')\n forElement: any;\n outlet: any;\n\n constructor(outlet: NovoNavOutletElement) {\n this.active = this.active || false;\n this.outlet = outlet;\n }\n\n show(event?: any) {\n try {\n const INDEX = this.outlet.items.indexOf(this.forElement);\n if (INDEX > -1) {\n this.outlet.show(INDEX);\n }\n } catch (err) {\n // do nothing\n }\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport {\n NovoNavContentElement,\n NovoNavElement,\n NovoNavHeaderElement,\n NovoNavOutletElement,\n NovoTabButtonElement,\n NovoTabElement,\n NovoTabLinkElement,\n} from './Tabs';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n NovoNavElement,\n NovoTabElement,\n NovoTabButtonElement,\n NovoTabLinkElement,\n NovoNavOutletElement,\n NovoNavContentElement,\n NovoNavHeaderElement,\n ],\n exports: [\n NovoNavElement,\n NovoTabElement,\n NovoTabButtonElement,\n NovoTabLinkElement,\n NovoNavOutletElement,\n NovoNavContentElement,\n NovoNavHeaderElement,\n ],\n})\nexport class NovoTabModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}