UNPKG

@ng-bootstrap/ng-bootstrap

Version:
1 lines 37.9 kB
{"version":3,"file":"ng-bootstrap-ng-bootstrap-nav.mjs","sources":["../../../src/nav/nav-config.ts","../../../src/nav/nav.ts","../../../src/nav/nav-transition.ts","../../../src/nav/nav-outlet.ts","../../../src/nav/nav.module.ts","../../../src/nav/ng-bootstrap-ng-bootstrap-nav.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { NgbConfig } from '@ng-bootstrap/ng-bootstrap/config';\n\n/**\n * A configuration service for the [`NgbNav`](#/components/nav/api#NgbNav) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the navs used in the application.\n *\n * @since 5.2.0\n */\n@Injectable({ providedIn: 'root' })\nexport class NgbNavConfig {\n\tprivate _ngbConfig = inject(NgbConfig);\n\tprivate _animation: boolean;\n\n\tdestroyOnHide = true;\n\torientation: 'horizontal' | 'vertical' = 'horizontal';\n\troles: 'tablist' | false = 'tablist';\n\tkeyboard: boolean | 'changeWithArrows' = true;\n\n\tget animation(): boolean {\n\t\treturn this._animation ?? this._ngbConfig.animation;\n\t}\n\tset animation(animation: boolean) {\n\t\tthis._animation = animation;\n\t}\n}\n","import {\n\tAfterContentInit,\n\tAttribute,\n\tChangeDetectorRef,\n\tContentChild,\n\tContentChildren,\n\tDestroyRef,\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tforwardRef,\n\tinject,\n\tInput,\n\tOnChanges,\n\tOnInit,\n\tOutput,\n\tQueryList,\n\tSimpleChanges,\n\tTemplateRef,\n\tDOCUMENT,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { isDefined } from './_ngb-ngbootstrap-utilities.mjs';\nimport { NgbNavConfig } from './nav-config';\n\nconst isValidNavId = (id: any) => isDefined(id) && id !== '';\n\nlet navCounter = 0;\n\n/**\n * Context passed to the nav content template.\n *\n * See [this demo](#/components/nav/examples#keep-content) as the example.\n *\n * @since 5.2.0\n */\nexport interface NgbNavContentContext {\n\t/**\n\t * If `true`, current nav content is visible and active\n\t */\n\t$implicit: boolean;\n}\n\n/**\n * This directive must be used to wrap content to be displayed in the nav.\n *\n * @since 5.2.0\n */\n@Directive({ selector: 'ng-template[ngbNavContent]' })\nexport class NgbNavContent {\n\ttemplateRef = inject(TemplateRef);\n}\n\n/**\n * This directive applies a specific role on a non-container based ngbNavItem.\n *\n * @since 14.1.0\n */\n@Directive({\n\tselector: '[ngbNavItem]:not(ng-container)',\n\thost: {\n\t\t'[attr.role]': `role ? role : nav.roles ? 'presentation' : undefined`,\n\t},\n})\nexport class NgbNavItemRole {\n\tnav = inject(NgbNav);\n\n\tconstructor(@Attribute('role') public role: string) {}\n}\n\n/**\n * The directive used to group nav link and related nav content. As well as set nav identifier and some options.\n *\n * @since 5.2.0\n */\n@Directive({\n\tselector: '[ngbNavItem]',\n\texportAs: 'ngbNavItem',\n\n\thost: {\n\t\tclass: 'nav-item',\n\t},\n})\nexport class NgbNavItem implements OnInit {\n\tprivate _nav = inject(NgbNav);\n\tprivate _nativeElement = inject(ElementRef).nativeElement as HTMLElement;\n\n\t/**\n\t * If `true`, non-active current nav item content will be removed from DOM\n\t * Otherwise it will just be hidden\n\t */\n\t@Input() destroyOnHide;\n\n\t/**\n\t * If `true`, the current nav item is disabled and can't be toggled by user.\n\t *\n\t * Nevertheless disabled nav can be selected programmatically via the `.select()` method and the `[activeId]` binding.\n\t */\n\t@Input() disabled = false;\n\n\t/**\n\t * The id used for the DOM elements.\n\t * Must be unique inside the document in case you have multiple `ngbNav`s on the page.\n\t *\n\t * Autogenerated as `ngb-nav-XXX` if not provided.\n\t */\n\t@Input() domId: string;\n\n\t/**\n\t * The id used as a model for active nav.\n\t * It can be anything, but must be unique inside one `ngbNav`.\n\t *\n\t * The only limitation is that it is not possible to have the `''` (empty string) as id,\n\t * because ` ngbNavItem `, `ngbNavItem=''` and `[ngbNavItem]=\"''\"` are indistinguishable\n\t */\n\t@Input('ngbNavItem') _id: any;\n\n\t/**\n\t * An event emitted when the fade in transition is finished on the related nav content\n\t *\n\t * @since 8.0.0\n\t */\n\t@Output() shown = new EventEmitter<void>();\n\n\t/**\n\t * An event emitted when the fade out transition is finished on the related nav content\n\t *\n\t * @since 8.0.0\n\t */\n\t@Output() hidden = new EventEmitter<void>();\n\n\t@ContentChild(NgbNavContent, { descendants: false }) contentTpl?: NgbNavContent;\n\n\tngOnInit() {\n\t\tif (!isDefined(this.domId)) {\n\t\t\tthis.domId = `ngb-nav-${navCounter++}`;\n\t\t}\n\t}\n\n\tget active() {\n\t\treturn this._nav.activeId === this.id;\n\t}\n\n\tget id() {\n\t\treturn isValidNavId(this._id) ? this._id : this.domId;\n\t}\n\n\tget panelDomId() {\n\t\treturn `${this.domId}-panel`;\n\t}\n\n\tisPanelInDom() {\n\t\treturn (isDefined(this.destroyOnHide) ? !this.destroyOnHide : !this._nav.destroyOnHide) || this.active;\n\t}\n\n\t/**\n\t * @internal\n\t */\n\tisNgContainer() {\n\t\treturn this._nativeElement.nodeType === Node.COMMENT_NODE;\n\t}\n}\n\n/**\n * A nav directive that helps with implementing tabbed navigation components.\n *\n * @since 5.2.0\n */\n@Directive({\n\tselector: '[ngbNav]',\n\texportAs: 'ngbNav',\n\thost: {\n\t\tclass: 'nav',\n\t\t'[class.flex-column]': `orientation === 'vertical'`,\n\t\t'[attr.aria-orientation]': `orientation === 'vertical' && roles === 'tablist' ? 'vertical' : undefined`,\n\t\t'[attr.role]': `role ? role : roles ? 'tablist' : undefined`,\n\t\t'(keydown.arrowLeft)': 'onKeyDown($any($event))',\n\t\t'(keydown.arrowRight)': 'onKeyDown($any($event))',\n\t\t'(keydown.arrowDown)': 'onKeyDown($any($event))',\n\t\t'(keydown.arrowUp)': 'onKeyDown($any($event))',\n\t\t'(keydown.Home)': 'onKeyDown($any($event))',\n\t\t'(keydown.End)': 'onKeyDown($any($event))',\n\t\t'(focusout)': 'onFocusout($any($event))',\n\t},\n})\nexport class NgbNav implements AfterContentInit, OnChanges {\n\tstatic ngAcceptInputType_orientation: string;\n\tstatic ngAcceptInputType_roles: boolean | string;\n\n\tprivate _config = inject(NgbNavConfig);\n\tprivate _cd = inject(ChangeDetectorRef);\n\tprivate _document = inject(DOCUMENT);\n\tprivate _nativeElement = inject(ElementRef).nativeElement as HTMLElement;\n\n\tdestroyRef = inject(DestroyRef);\n\n\t_navigatingWithKeyboard = false;\n\n\t/**\n\t * The id of the nav that should be active\n\t *\n\t * You could also use the `.select()` method and the `(navChange)` event\n\t */\n\t@Input() activeId: any;\n\n\t/**\n\t * The event emitted after the active nav changes\n\t * The payload of the event is the newly active nav id\n\t *\n\t * If you want to prevent nav change, you should use `(navChange)` event\n\t */\n\t@Output() activeIdChange = new EventEmitter<any>();\n\n\t/**\n\t * If `true`, nav change will be animated.\n\t *\n\t * @since 8.0.0\n\t */\n\t@Input() animation = this._config.animation;\n\n\t/**\n\t * If `true`, non-active nav content will be removed from DOM\n\t * Otherwise it will just be hidden\n\t */\n\t@Input() destroyOnHide = this._config.destroyOnHide;\n\n\t/**\n\t * The orientation of navs.\n\t *\n\t * Using `vertical` will also add the `aria-orientation` attribute\n\t */\n\t@Input() orientation = this._config.orientation;\n\n\t/**\n\t * Role attribute generating strategy:\n\t * - `false` - no role attributes will be generated\n\t * - `'tablist'` - 'tablist', 'tab' and 'tabpanel' will be generated (default)\n\t */\n\t@Input() roles = this._config.roles;\n\n\t/**\n\t * Keyboard support for nav focus/selection using arrow keys.\n\t *\n\t * * `true` - navs will be focused using keyboard arrow keys\n\t * * `false` - no keyboard support\n\t * * `'changeWithArrows'` - nav will be selected using keyboard arrow keys\n\t *\n\t * See the [list of available keyboard shortcuts](#/components/nav/overview#keyboard-shortcuts).\n\t *\n\t * @since 6.1.0\n\t */\n\t@Input() keyboard = this._config.keyboard;\n\n\t/**\n\t * An event emitted when the fade in transition is finished for one of the items.\n\t *\n\t * Payload of the event is the nav id that was just shown.\n\t *\n\t * @since 8.0.0\n\t */\n\t@Output() shown = new EventEmitter<any>();\n\n\t/**\n\t * An event emitted when the fade out transition is finished for one of the items.\n\t *\n\t * Payload of the event is the nav id that was just hidden.\n\t *\n\t * @since 8.0.0\n\t */\n\t@Output() hidden = new EventEmitter<any>();\n\n\t@ContentChildren(NgbNavItem) items: QueryList<NgbNavItem>;\n\t@ContentChildren(forwardRef(() => NgbNavLinkBase), { descendants: true }) links: QueryList<NgbNavLinkBase>;\n\n\tnavItemChange$ = new Subject<NgbNavItem | null>();\n\n\tconstructor(@Attribute('role') public role: string) {}\n\n\t/**\n\t * The nav change event emitted right before the nav change happens on user click.\n\t *\n\t * This event won't be emitted if nav is changed programmatically via `[activeId]` or `.select()`.\n\t *\n\t * See [`NgbNavChangeEvent`](#/components/nav/api#NgbNavChangeEvent) for payload details.\n\t */\n\t@Output() navChange = new EventEmitter<NgbNavChangeEvent>();\n\n\tclick(item: NgbNavItem) {\n\t\tif (!item.disabled) {\n\t\t\tthis._updateActiveId(item.id);\n\t\t}\n\t}\n\n\tonFocusout({ relatedTarget }: FocusEvent) {\n\t\tif (!this._nativeElement.contains(relatedTarget as HTMLElement)) {\n\t\t\tthis._navigatingWithKeyboard = false;\n\t\t}\n\t}\n\n\tonKeyDown(event: KeyboardEvent) {\n\t\tif (this.roles !== 'tablist' || !this.keyboard) {\n\t\t\treturn;\n\t\t}\n\t\tconst enabledLinks = this.links.filter((link) => !link.navItem.disabled);\n\t\tconst { length } = enabledLinks;\n\n\t\tlet position = -1;\n\n\t\tenabledLinks.forEach((link, index) => {\n\t\t\tif (link.nativeElement === this._document.activeElement) {\n\t\t\t\tposition = index;\n\t\t\t}\n\t\t});\n\n\t\tif (length) {\n\t\t\tswitch (event.key) {\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\tcase 'ArrowLeft':\n\t\t\t\t\tposition = (position - 1 + length) % length;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowRight':\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tposition = (position + 1) % length;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Home':\n\t\t\t\t\tposition = 0;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'End':\n\t\t\t\t\tposition = length - 1;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (this.keyboard === 'changeWithArrows') {\n\t\t\t\tthis.select(enabledLinks[position].navItem.id);\n\t\t\t}\n\t\t\tenabledLinks[position].nativeElement.focus();\n\t\t\tthis._navigatingWithKeyboard = true;\n\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\t/**\n\t * Selects the nav with the given id and shows its associated pane.\n\t * Any other nav that was previously selected becomes unselected and its associated pane is hidden.\n\t */\n\tselect(id: any) {\n\t\tthis._updateActiveId(id, false);\n\t}\n\n\tngAfterContentInit() {\n\t\tif (!isDefined(this.activeId)) {\n\t\t\tconst nextId = this.items.first ? this.items.first.id : null;\n\t\t\tif (isValidNavId(nextId)) {\n\t\t\t\tthis._updateActiveId(nextId, false);\n\t\t\t\tthis._cd.detectChanges();\n\t\t\t}\n\t\t}\n\n\t\tthis.items.changes\n\t\t\t.pipe(takeUntilDestroyed(this.destroyRef))\n\t\t\t.subscribe(() => this._notifyItemChanged(this.activeId));\n\t}\n\n\tngOnChanges({ activeId }: SimpleChanges): void {\n\t\tif (activeId && !activeId.firstChange) {\n\t\t\tthis._notifyItemChanged(activeId.currentValue);\n\t\t}\n\t}\n\n\tprivate _updateActiveId(nextId: any, emitNavChange = true) {\n\t\tif (this.activeId !== nextId) {\n\t\t\tlet defaultPrevented = false;\n\n\t\t\tif (emitNavChange) {\n\t\t\t\tthis.navChange.emit({\n\t\t\t\t\tactiveId: this.activeId,\n\t\t\t\t\tnextId,\n\t\t\t\t\tpreventDefault: () => {\n\t\t\t\t\t\tdefaultPrevented = true;\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (!defaultPrevented) {\n\t\t\t\tthis.activeId = nextId;\n\t\t\t\tthis.activeIdChange.emit(nextId);\n\t\t\t\tthis._notifyItemChanged(nextId);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _notifyItemChanged(nextItemId: any) {\n\t\tthis.navItemChange$.next(this._getItemById(nextItemId));\n\t}\n\n\tprivate _getItemById(itemId: any): NgbNavItem | null {\n\t\treturn (this.items && this.items.find((item) => item.id === itemId)) || null;\n\t}\n}\n\n@Directive({\n\tselector: '[ngbNavLink]',\n\thost: {\n\t\t'[id]': 'navItem.domId',\n\t\tclass: 'nav-link',\n\t\t'[class.nav-item]': 'navItem.isNgContainer()',\n\t\t'[attr.role]': `role ? role : nav.roles ? 'tab' : undefined`,\n\t\t'[class.active]': 'navItem.active',\n\t\t'[class.disabled]': 'navItem.disabled',\n\t\t'[attr.tabindex]': 'tabindex',\n\t\t'[attr.aria-controls]': 'navItem.isPanelInDom() ? navItem.panelDomId : null',\n\t\t'[attr.aria-selected]': 'navItem.active',\n\t\t'[attr.aria-disabled]': 'navItem.disabled',\n\t},\n})\nexport class NgbNavLinkBase {\n\tnavItem = inject(NgbNavItem);\n\tnav = inject(NgbNav);\n\tnativeElement = inject(ElementRef).nativeElement as HTMLElement;\n\n\tconstructor(@Attribute('role') public role: string) {}\n\n\tget tabindex() {\n\t\tif (this.nav.keyboard === false) {\n\t\t\treturn this.navItem.disabled ? -1 : undefined;\n\t\t}\n\t\tif (this.nav._navigatingWithKeyboard) {\n\t\t\treturn -1;\n\t\t}\n\t\treturn this.navItem.disabled || !this.navItem.active ? -1 : undefined;\n\t}\n}\n\n/**\n * A directive to mark the nav link when used on a button element.\n */\n@Directive({\n\tselector: 'button[ngbNavLink]',\n\thost: {\n\t\ttype: 'button',\n\t\t'[disabled]': 'navItem.disabled',\n\t\t'(click)': 'nav.click(navItem)',\n\t},\n})\nexport class NgbNavLinkButton extends NgbNavLinkBase {}\n\n/**\n * A directive to mark the nav link when used on a link element.\n *\n * @since 5.2.0\n */\n@Directive({\n\tselector: 'a[ngbNavLink]',\n\thost: {\n\t\thref: '',\n\t\t'(click)': 'nav.click(navItem); $event.preventDefault()',\n\t},\n})\nexport class NgbNavLink extends NgbNavLinkBase {}\n\n/**\n * The payload of the change event emitted right before the nav change happens on user click.\n *\n * This event won't be emitted if nav is changed programmatically via `[activeId]` or `.select()`.\n *\n * @since 5.2.0\n */\nexport interface NgbNavChangeEvent<T = any> {\n\t/**\n\t * Id of the currently active nav.\n\t */\n\tactiveId: T;\n\n\t/**\n\t * Id of the newly selected nav.\n\t */\n\tnextId: T;\n\n\t/**\n\t * Function that will prevent nav change if called.\n\t */\n\tpreventDefault: () => void;\n}\n","import { reflow, NgbTransitionStartFn } from './_ngb-ngbootstrap-utilities.mjs';\n\nexport const ngbNavFadeOutTransition: NgbTransitionStartFn = ({ classList }) => {\n\tclassList.remove('show');\n\treturn () => classList.remove('active');\n};\n\nexport const ngbNavFadeInTransition: NgbTransitionStartFn = (element: HTMLElement, animation: boolean) => {\n\tif (animation) {\n\t\treflow(element);\n\t}\n\telement.classList.add('show');\n};\n","import {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tDirective,\n\tElementRef,\n\tinject,\n\tInput,\n\tNgZone,\n\tQueryList,\n\tViewChildren,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { distinctUntilChanged, skip, startWith } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ngbNavFadeInTransition, ngbNavFadeOutTransition } from './nav-transition';\nimport { ngbRunTransition, NgbTransitionOptions } from './_ngb-ngbootstrap-utilities.mjs';\nimport { NgbNav, NgbNavItem } from './nav';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Directive({\n\tselector: '[ngbNavPane]',\n\thost: {\n\t\t'[id]': 'item.panelDomId',\n\t\tclass: 'tab-pane',\n\t\t'[class.fade]': 'nav.animation',\n\t\t'[attr.role]': 'role ? role : nav.roles ? \"tabpanel\" : undefined',\n\t\t'[attr.aria-labelledby]': 'item.domId',\n\t},\n})\nexport class NgbNavPane {\n\tnativeElement = inject(ElementRef).nativeElement as HTMLElement;\n\n\t@Input() item: NgbNavItem;\n\t@Input() nav: NgbNav;\n\t@Input() role: string;\n}\n\n/**\n * The outlet where currently active nav content will be displayed.\n *\n * @since 5.2.0\n */\n@Component({\n\tselector: '[ngbNavOutlet]',\n\timports: [NgbNavPane, NgTemplateOutlet],\n\thost: {\n\t\tclass: 'tab-content',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t@for (item of nav.items; track item) {\n\t\t\t@if (item.isPanelInDom() || isPanelTransitioning(item)) {\n\t\t\t\t<div ngbNavPane [item]=\"item\" [nav]=\"nav\" [role]=\"paneRole\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"item.contentTpl?.templateRef || null\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: item.active || isPanelTransitioning(item) }\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t}\n\t\t}\n\t`,\n})\nexport class NgbNavOutlet implements AfterViewInit {\n\tprivate _cd = inject(ChangeDetectorRef);\n\tprivate _ngZone = inject(NgZone);\n\n\tprivate _activePane: NgbNavPane | null = null;\n\n\t@ViewChildren(NgbNavPane) private _panes: QueryList<NgbNavPane>;\n\n\t/**\n\t * A role to set on the nav pane\n\t */\n\t@Input() paneRole;\n\n\t/**\n\t * Reference to the `NgbNav`\n\t */\n\t@Input('ngbNavOutlet') nav: NgbNav;\n\n\tisPanelTransitioning(item: NgbNavItem) {\n\t\treturn this._activePane?.item === item;\n\t}\n\n\tngAfterViewInit() {\n\t\t// initial display\n\t\tthis._updateActivePane();\n\n\t\t// this will be emitted for all 3 types of nav changes: .select(), [activeId] or (click)\n\t\tthis.nav.navItemChange$\n\t\t\t.pipe(\n\t\t\t\ttakeUntilDestroyed(this.nav.destroyRef),\n\t\t\t\tstartWith(this._activePane?.item || null),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\tskip(1),\n\t\t\t)\n\t\t\t.subscribe((nextItem) => {\n\t\t\t\tconst options: NgbTransitionOptions<undefined> = { animation: this.nav.animation, runningTransition: 'stop' };\n\n\t\t\t\t// next panel we're switching to will only appear in DOM after the change detection is done\n\t\t\t\t// and `this._panes` will be updated\n\t\t\t\tthis._cd.detectChanges();\n\n\t\t\t\t// fading out\n\t\t\t\tif (this._activePane) {\n\t\t\t\t\tngbRunTransition(this._ngZone, this._activePane.nativeElement, ngbNavFadeOutTransition, options).subscribe(\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tconst activeItem = this._activePane?.item;\n\t\t\t\t\t\t\tthis._activePane = this._getPaneForItem(nextItem);\n\n\t\t\t\t\t\t\t// mark for check when transition finishes as outlet or parent containers might be OnPush\n\t\t\t\t\t\t\t// without this the panes that have \"faded out\" will stay in DOM\n\t\t\t\t\t\t\tthis._cd.markForCheck();\n\n\t\t\t\t\t\t\t// fading in\n\t\t\t\t\t\t\tif (this._activePane) {\n\t\t\t\t\t\t\t\t// we have to add the '.active' class before running the transition,\n\t\t\t\t\t\t\t\t// because it should be in place before `ngbRunTransition` does `reflow()`\n\t\t\t\t\t\t\t\tthis._activePane.nativeElement.classList.add('active');\n\t\t\t\t\t\t\t\tngbRunTransition(\n\t\t\t\t\t\t\t\t\tthis._ngZone,\n\t\t\t\t\t\t\t\t\tthis._activePane.nativeElement,\n\t\t\t\t\t\t\t\t\tngbNavFadeInTransition,\n\t\t\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\t\t).subscribe(() => {\n\t\t\t\t\t\t\t\t\tif (nextItem) {\n\t\t\t\t\t\t\t\t\t\tnextItem.shown.emit();\n\t\t\t\t\t\t\t\t\t\tthis.nav.shown.emit(nextItem.id);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (activeItem) {\n\t\t\t\t\t\t\t\tactiveItem.hidden.emit();\n\t\t\t\t\t\t\t\tthis.nav.hidden.emit(activeItem.id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis._updateActivePane();\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tprivate _updateActivePane() {\n\t\tthis._activePane = this._getActivePane();\n\t\tthis._activePane?.nativeElement.classList.add('show', 'active');\n\t}\n\n\tprivate _getPaneForItem(item: NgbNavItem | null) {\n\t\treturn (this._panes && this._panes.find((pane) => pane.item === item)) || null;\n\t}\n\n\tprivate _getActivePane(): NgbNavPane | null {\n\t\treturn (this._panes && this._panes.find((pane) => pane.item.active)) || null;\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { NgbNav, NgbNavContent, NgbNavItem, NgbNavItemRole, NgbNavLink, NgbNavLinkButton, NgbNavLinkBase } from './nav';\n\nimport { NgbNavOutlet, NgbNavPane } from './nav-outlet';\n\nexport {\n\tNgbNav,\n\tNgbNavContent,\n\tNgbNavContentContext,\n\tNgbNavItem,\n\tNgbNavItemRole,\n\tNgbNavLink,\n\tNgbNavLinkButton,\n\tNgbNavLinkBase,\n\tNgbNavChangeEvent,\n} from './nav';\nexport { NgbNavOutlet, NgbNavPane } from './nav-outlet';\nexport { NgbNavConfig } from './nav-config';\n\nconst NGB_NAV_DIRECTIVES = [\n\tNgbNavContent,\n\tNgbNav,\n\tNgbNavItem,\n\tNgbNavItemRole,\n\tNgbNavLink,\n\tNgbNavLinkButton,\n\tNgbNavLinkBase,\n\tNgbNavOutlet,\n\tNgbNavPane,\n];\n\n@NgModule({\n\timports: NGB_NAV_DIRECTIVES,\n\texports: NGB_NAV_DIRECTIVES,\n})\nexport class NgbNavModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}