UNPKG

@ng-bootstrap/ng-bootstrap

Version:
1 lines 30.5 kB
{"version":3,"file":"ng-bootstrap-ng-bootstrap-accordion.mjs","sources":["../../../src/accordion/accordion-config.ts","../../../src/accordion/accordion.directive.ts","../../../src/accordion/accordion.module.ts","../../../src/accordion/ng-bootstrap-ng-bootstrap-accordion.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { NgbConfig } from '@ng-bootstrap/ng-bootstrap/config';\n\n/**\n * A configuration service for the [`NgbAccordionDirective`](#/components/accordion/api#NgbAccordionDirective).\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all accordions used in the application.\n */\n@Injectable({ providedIn: 'root' })\nexport class NgbAccordionConfig {\n\tprivate _ngbConfig = inject(NgbConfig);\n\tprivate _animation: boolean;\n\n\tcloseOthers = false;\n\tdestroyOnHide = 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\tAfterContentChecked,\n\tAfterContentInit,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChild,\n\tContentChildren,\n\tDestroyRef,\n\tDirective,\n\tElementRef,\n\tEmbeddedViewRef,\n\tEventEmitter,\n\tinject,\n\tInput,\n\tOnDestroy,\n\tOutput,\n\tQueryList,\n\tTemplateRef,\n\tViewChild,\n\tViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgbAccordionConfig } from './accordion-config';\nimport { NgbCollapse } from '@ng-bootstrap/ng-bootstrap/collapse';\nimport { isString } from './_ngb-ngbootstrap-utilities.mjs';\n\nlet nextId = 0;\n\n/**\n * A directive that wraps the content of an accordion item's collapsible body.\n *\n * The actual content is provided in a child `ng-template` element.\n * Depending on the state of the accordion, the template will be either inserted or removed from the DOM.\n *\n * @since 14.1.0\n */\n@Component({\n\tselector: '[ngbAccordionBody]',\n\ttemplate: `\n\t\t<ng-container #container />\n\t\t<ng-content />\n\t`,\n\thost: {\n\t\tclass: 'accordion-body',\n\t},\n})\nexport class NgbAccordionBody implements AfterContentChecked, OnDestroy {\n\tprivate _item = inject(NgbAccordionItem);\n\tprivate _viewRef: EmbeddedViewRef<any> | null = null;\n\n\t/**\n\t * the `ElementRef` of the component\n\t *\n\t * @since 18.0.0\n\t */\n\tpublic readonly elementRef = inject(ElementRef);\n\n\t@ViewChild('container', { read: ViewContainerRef, static: true }) private _vcr: ViewContainerRef;\n\t@ContentChild(TemplateRef, { static: true }) private _bodyTpl: TemplateRef<any>;\n\n\tngAfterContentChecked(): void {\n\t\tif (this._bodyTpl) {\n\t\t\tif (this._item._shouldBeInDOM) {\n\t\t\t\tthis._createViewIfNotExists();\n\t\t\t} else {\n\t\t\t\tthis._destroyViewIfExists();\n\t\t\t}\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._destroyViewIfExists();\n\t}\n\n\tprivate _destroyViewIfExists(): void {\n\t\tthis._viewRef?.destroy();\n\t\tthis._viewRef = null;\n\t}\n\n\tprivate _createViewIfNotExists(): void {\n\t\tif (!this._viewRef) {\n\t\t\tthis._viewRef = this._vcr.createEmbeddedView(this._bodyTpl);\n\t\t\tthis._viewRef.detectChanges();\n\t\t}\n\t}\n}\n\n/**\n * A directive that wraps the collapsible item's content of the accordion.\n *\n * Internally it reuses the [`NgbCollapse` directive](#/components/collapse)\n *\n * @since 14.1.0\n */\n@Directive({\n\texportAs: 'ngbAccordionCollapse',\n\tselector: '[ngbAccordionCollapse]',\n\thost: {\n\t\trole: 'region',\n\t\tclass: 'accordion-collapse',\n\t\t'[id]': 'item.collapseId',\n\t\t'[attr.aria-labelledby]': 'item.toggleId',\n\t},\n\thostDirectives: [NgbCollapse],\n})\nexport class NgbAccordionCollapse {\n\titem = inject(NgbAccordionItem);\n\tngbCollapse = inject(NgbCollapse);\n}\n\n/**\n * A directive to put on a toggling element inside the accordion item's header.\n * It will register click handlers that toggle the associated panel and will handle accessibility attributes.\n *\n * This directive is used internally by the [`NgbAccordionButton` directive](#/components/accordion/api#NgbAccordionButton).\n *\n * @since 14.1.0\n */\n@Directive({\n\tselector: '[ngbAccordionToggle]',\n\thost: {\n\t\t'[id]': 'item.toggleId',\n\t\t'[class.collapsed]': 'item.collapsed',\n\t\t'[attr.aria-controls]': 'item.collapseId',\n\t\t'[attr.aria-expanded]': '!item.collapsed',\n\t\t'(click)': '!item.disabled && accordion.toggle(item.id)',\n\t},\n})\nexport class NgbAccordionToggle {\n\titem = inject(NgbAccordionItem);\n\taccordion = inject(NgbAccordionDirective);\n}\n\n/**\n * A directive to put on a button element inside an accordion item's header.\n *\n * If you want a custom markup for the header, you can also use the [`NgbAccordionToggle` directive](#/components/accordion/api#NgbAccordionToggle).\n *\n * @since 14.1.0\n */\n@Directive({\n\tselector: 'button[ngbAccordionButton]',\n\thost: {\n\t\t'[disabled]': 'item.disabled',\n\t\tclass: 'accordion-button',\n\t\ttype: 'button',\n\t},\n\thostDirectives: [NgbAccordionToggle],\n})\nexport class NgbAccordionButton {\n\titem = inject(NgbAccordionItem);\n}\n\n/**\n * A directive that wraps an accordion item's header.\n *\n * @since 14.1.0\n */\n@Directive({\n\tselector: '[ngbAccordionHeader]',\n\thost: {\n\t\trole: 'heading',\n\t\tclass: 'accordion-header',\n\t\t'[class.collapsed]': 'item.collapsed',\n\t},\n})\nexport class NgbAccordionHeader {\n\titem = inject(NgbAccordionItem);\n}\n\n/**\n * A directive that wraps an accordion item: a toggleable header + body that collapses.\n *\n * You can get hold of the `NgbAccordionItem` instance in the template with `#item=\"ngbAccordionItem\"`.\n * It allows to check if the item is collapsed or not, toggle the collapse state, etc.\n *\n * Every accordion item has a string ID that is automatically generated in the `ngb-accordion-item-XX` format, unless provided explicitly.\n *\n * @since 14.1.0\n */\n@Directive({\n\tselector: '[ngbAccordionItem]',\n\texportAs: 'ngbAccordionItem',\n\thost: {\n\t\t'[id]': 'id',\n\t\tclass: 'accordion-item',\n\t},\n})\nexport class NgbAccordionItem implements AfterContentInit {\n\tprivate _accordion = inject(NgbAccordionDirective);\n\tprivate _cd = inject(ChangeDetectorRef);\n\tprivate _destroyRef = inject(DestroyRef);\n\n\tprivate _collapsed = true;\n\tprivate _id = `ngb-accordion-item-${nextId++}`;\n\tprivate _destroyOnHide: boolean | undefined;\n\n\tprivate _collapseAnimationRunning = false;\n\n\t@ContentChild(NgbAccordionCollapse, { static: true }) private _collapse: NgbAccordionCollapse;\n\n\t/**\n\t * Sets the custom ID of the accordion item. It must be unique for the document.\n\t *\n\t * @param id The ID of the accordion item, must be a non-empty string\n\t */\n\t@Input('ngbAccordionItem') set id(id: string) {\n\t\tif (isString(id) && id !== '') {\n\t\t\tthis._id = id;\n\t\t}\n\t}\n\n\t/**\n\t * If `true`, the content of the accordion item's body will be removed from the DOM. It will be just hidden otherwise.\n\t *\n\t * This property can also be set up on the parent [`NgbAccordion` directive](#/components/accordion/api#NgbAccordionDirective).\n\t */\n\t@Input() set destroyOnHide(destroyOnHide: boolean) {\n\t\tthis._destroyOnHide = destroyOnHide;\n\t}\n\n\tget destroyOnHide(): boolean {\n\t\treturn this._destroyOnHide === undefined ? this._accordion.destroyOnHide : this._destroyOnHide!;\n\t}\n\n\t/**\n\t * If `true`, the accordion item will be disabled.\n\t * It won't react to user's clicks, but still will be toggelable programmatically.\n\t */\n\t@Input() disabled = false;\n\n\t/**\n\t *\tIf `true`, the accordion item will be collapsed. Otherwise, it will be expanded.\n\t *\n\t * @param collapsed New state of the accordion item.\n\t */\n\t@Input() set collapsed(collapsed: boolean) {\n\t\tif (collapsed) {\n\t\t\tthis.collapse();\n\t\t} else {\n\t\t\tthis.expand();\n\t\t}\n\t}\n\n\t/**\n\t * Event emitted before the expanding animation starts. It has no payload.\n\t *\n\t * @since 15.1.0\n\t */\n\t@Output() show = new EventEmitter<void>();\n\n\t/**\n\t * Event emitted when the expanding animation is finished. It has no payload.\n\t */\n\t@Output() shown = new EventEmitter<void>();\n\n\t/**\n\t * Event emitted before the collapsing animation starts. It has no payload.\n\t *\n\t * @since 15.1.0\n\t */\n\t@Output() hide = new EventEmitter<void>();\n\n\t/**\n\t * Event emitted when the collapsing animation is finished and before the content is removed from DOM.\n\t * It has no payload.\n\t */\n\t@Output() hidden = new EventEmitter<void>();\n\n\tget collapsed() {\n\t\treturn this._collapsed;\n\t}\n\n\tget id() {\n\t\treturn `${this._id}`;\n\t}\n\n\tget toggleId() {\n\t\treturn `${this.id}-toggle`;\n\t}\n\n\tget collapseId() {\n\t\treturn `${this.id}-collapse`;\n\t}\n\n\tget _shouldBeInDOM() {\n\t\treturn !this.collapsed || this._collapseAnimationRunning || !this.destroyOnHide;\n\t}\n\n\tngAfterContentInit() {\n\t\tconst { ngbCollapse } = this._collapse;\n\t\t// we need to disable the animation for the first init\n\t\tngbCollapse.animation = false;\n\t\tngbCollapse.collapsed = this.collapsed;\n\t\t// we set the animation to the default of the accordion\n\t\tngbCollapse.animation = this._accordion.animation;\n\t\t// event forwarding from 'ngbCollapse' to 'ngbAccordion'\n\t\tngbCollapse.hidden.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n\t\t\t// when the animation finishes we can remove the template from DOM\n\t\t\tthis._collapseAnimationRunning = false;\n\t\t\tthis.hidden.emit();\n\t\t\tthis._accordion.hidden.emit(this.id);\n\t\t\t// need if the accordion is used inside a component having OnPush change detection strategy\n\t\t\tthis._cd.markForCheck();\n\t\t});\n\t\tngbCollapse.shown.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n\t\t\tthis.shown.emit();\n\t\t\tthis._accordion.shown.emit(this.id);\n\t\t\t// need if the accordion is used inside a component having OnPush change detection strategy\n\t\t\tthis._cd.markForCheck();\n\t\t});\n\t}\n\n\t/**\n\t * Toggles an accordion item.\n\t */\n\ttoggle() {\n\t\tthis.collapsed = !this.collapsed;\n\t}\n\n\t/**\n\t * Expands an accordion item.\n\t */\n\texpand() {\n\t\tif (this.collapsed) {\n\t\t\t// checking if accordion allows to expand the panel in respect to 'closeOthers' flag\n\t\t\tif (!this._accordion._ensureCanExpand(this)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._collapsed = false;\n\n\t\t\t// need if the accordion is used inside a component having OnPush change detection strategy\n\t\t\tthis._cd.markForCheck();\n\n\t\t\t// we need force CD to get template into DOM before starting animation to calculate its height correctly\n\t\t\t// this will synchronously put the item body into DOM, because `this._collapsed` was flipped to `false`\n\t\t\tthis._cd.detectChanges();\n\n\t\t\t// firing events before starting animations\n\t\t\tthis.show.emit();\n\t\t\tthis._accordion.show.emit(this.id);\n\n\t\t\t// we also need to make sure 'animation' flag is up-to- date\n\t\t\tthis._collapse.ngbCollapse.animation = this._accordion.animation;\n\t\t\tthis._collapse.ngbCollapse.collapsed = false;\n\t\t}\n\t}\n\n\t/**\n\t * Collapses an accordion item.\n\t */\n\tcollapse() {\n\t\tif (!this.collapsed) {\n\t\t\tthis._collapsed = true;\n\t\t\tthis._collapseAnimationRunning = true;\n\n\t\t\t// need if the accordion is used inside a component having OnPush change detection strategy\n\t\t\tthis._cd.markForCheck();\n\n\t\t\t// firing events before starting animations\n\t\t\tthis.hide.emit();\n\t\t\tthis._accordion.hide.emit(this.id);\n\n\t\t\t// we also need to make sure 'animation' flag is up-to- date\n\t\t\tthis._collapse.ngbCollapse.animation = this._accordion.animation;\n\t\t\tthis._collapse.ngbCollapse.collapsed = true;\n\t\t}\n\t}\n}\n\n/**\n * Accordion is a stack of cards that have a header and collapsible body.\n *\n * This directive is a container for these items and provides an API to handle them.\n *\n * @since 14.1.0\n */\n@Directive({\n\tselector: '[ngbAccordion]',\n\texportAs: 'ngbAccordion',\n\thost: {\n\t\tclass: 'accordion',\n\t},\n})\nexport class NgbAccordionDirective {\n\tprivate _config = inject(NgbAccordionConfig);\n\tprivate _anItemWasAlreadyExpandedDuringInitialisation = false;\n\n\t@ContentChildren(NgbAccordionItem, { descendants: false }) private _items?: QueryList<NgbAccordionItem>;\n\t/**\n\t * If `true`, accordion will be animated.\n\t */\n\t@Input() animation = this._config.animation;\n\n\t/**\n\t * If `true`, only one item at the time can stay open.\n\t */\n\t@Input() closeOthers = this._config.closeOthers;\n\t/**\n\t * If `true`, the content of the accordion items body will be removed from the DOM. It will be just hidden otherwise.\n\t *\n\t * This property can be overwritten at the [`NgbAccordionItem`](#/components/accordion/api#NgbAccordionItem) level\n\t */\n\t@Input() destroyOnHide = this._config.destroyOnHide;\n\n\t/**\n\t * Event emitted before expanding animation starts. The payload is the id of shown accordion item.\n\t *\n\t * @since 15.1.0\n\t */\n\t@Output() show = new EventEmitter<string>();\n\n\t/**\n\t * Event emitted when the expanding animation is finished. The payload is the id of shown accordion item.\n\t */\n\t@Output() shown = new EventEmitter<string>();\n\n\t/**\n\t * Event emitted before the collapsing animation starts. The payload is the id of hidden accordion item.\n\t *\n\t * @since 15.1.0\n\t */\n\t@Output() hide = new EventEmitter<string>();\n\n\t/**\n\t * Event emitted when the collapsing animation is finished and before the content is removed from DOM.\n\t * The payload is the id of hidden accordion item.\n\t */\n\t@Output() hidden = new EventEmitter<string>();\n\n\t/**\n\t * Toggles an item with the given id.\n\t *\n\t * It will toggle an item, even if it is disabled.\n\t *\n\t * @param itemId The id of the item to toggle.\n\t */\n\ttoggle(itemId: string) {\n\t\tthis._getItem(itemId)?.toggle();\n\t}\n\n\t/**\n\t * Expands an item with the given id.\n\t *\n\t * If `closeOthers` is `true`, it will collapse other panels.\n\t *\n\t * @param itemId The id of the item to expand.\n\t */\n\texpand(itemId: string) {\n\t\tthis._getItem(itemId)?.expand();\n\t}\n\n\t/**\n\t * Expands all items.\n\t *\n\t * If `closeOthers` is `true` and all items are closed, it will open the first one. Otherwise, it will keep the opened one.\n\t */\n\texpandAll() {\n\t\tif (this._items) {\n\t\t\tif (this.closeOthers) {\n\t\t\t\t// we check if there is an item open and if it is not we can expand the first item\n\t\t\t\t// (otherwise we toggle nothing)\n\t\t\t\tif (!this._items.find((item) => !item.collapsed)) {\n\t\t\t\t\tthis._items.first.expand();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._items.forEach((item) => item.expand());\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Collapses an item with the given id.\n\t *\n\t * Has no effect if the `itemId` does not correspond to any item.\n\t *\n\t * @param itemId The id of the item to collapse.\n\t */\n\tcollapse(itemId: string) {\n\t\tthis._getItem(itemId)?.collapse();\n\t}\n\n\t/**\n\t * Collapses all items.\n\t */\n\tcollapseAll() {\n\t\tthis._items?.forEach((item) => item.collapse());\n\t}\n\n\t/**\n\t * Checks if an item with the given id is expanded.\n\t *\n\t * If the `itemId` does not correspond to any item, it returns `false`.\n\t *\n\t * @param itemId The id of the item to check.\n\t */\n\tisExpanded(itemId: string) {\n\t\tconst item = this._getItem(itemId);\n\t\treturn item ? !item.collapsed : false;\n\t}\n\n\t/**\n\t * It checks, if the item can be expanded in the current state of the accordion.\n\t * With `closeOthers` there can be only one expanded item at a time.\n\t *\n\t * @internal\n\t */\n\t_ensureCanExpand(toExpand: NgbAccordionItem) {\n\t\tif (!this.closeOthers) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// special case during the initialization of the [collapse]=\"false\" inputs\n\t\t// `this._items` QueryList is not yet initialized, but we need to ensure only one item can be expanded at a time\n\t\tif (!this._items) {\n\t\t\tif (!this._anItemWasAlreadyExpandedDuringInitialisation) {\n\t\t\t\tthis._anItemWasAlreadyExpandedDuringInitialisation = true;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\t// if there is an expanded item, we need to collapse it first\n\t\tthis._items.find((item) => !item.collapsed && toExpand !== item)?.collapse();\n\n\t\treturn true;\n\t}\n\n\tprivate _getItem(itemId: string): NgbAccordionItem | undefined {\n\t\treturn this._items?.find((item) => item.id === itemId);\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport {\n\tNgbAccordionDirective,\n\tNgbAccordionItem,\n\tNgbAccordionHeader,\n\tNgbAccordionToggle,\n\tNgbAccordionBody,\n\tNgbAccordionCollapse,\n\tNgbAccordionButton,\n} from './accordion.directive';\n\nexport {\n\tNgbAccordionButton,\n\tNgbAccordionDirective,\n\tNgbAccordionItem,\n\tNgbAccordionHeader,\n\tNgbAccordionToggle,\n\tNgbAccordionBody,\n\tNgbAccordionCollapse,\n} from './accordion.directive';\nexport { NgbAccordionConfig } from './accordion-config';\n\nconst NGB_ACCORDION_DIRECTIVES = [\n\tNgbAccordionButton,\n\tNgbAccordionDirective,\n\tNgbAccordionItem,\n\tNgbAccordionHeader,\n\tNgbAccordionToggle,\n\tNgbAccordionBody,\n\tNgbAccordionCollapse,\n];\n\n@NgModule({\n\timports: NGB_ACCORDION_DIRECTIVES,\n\texports: NGB_ACCORDION_DIRECTIVES,\n})\nexport class NgbAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}