UNPKG

@ng-bootstrap/ng-bootstrap

Version:
1 lines 45.9 kB
{"version":3,"file":"ng-bootstrap-ng-bootstrap-offcanvas.mjs","sources":["../../../src/offcanvas/offcanvas-config.ts","../../../src/offcanvas/offcanvas-ref.ts","../../../src/offcanvas/offcanvas-dismiss-reasons.ts","../../../src/offcanvas/offcanvas-backdrop.ts","../../../src/offcanvas/offcanvas-panel.ts","../../../src/offcanvas/offcanvas-stack.ts","../../../src/offcanvas/offcanvas.ts","../../../src/offcanvas/offcanvas.module.ts","../../../src/offcanvas/ng-bootstrap-ng-bootstrap-offcanvas.ts"],"sourcesContent":["import { inject, Injectable, Injector } from '@angular/core';\nimport { NgbConfig } from '@ng-bootstrap/ng-bootstrap/config';\n\n/**\n * Options available when opening new offcanvas windows with `NgbOffcanvas.open()` method.\n *\n * @since 12.1.0\n */\nexport interface NgbOffcanvasOptions {\n\t/**\n\t * If `true`, opening and closing will be animated.\n\t */\n\tanimation?: boolean;\n\n\t/**\n\t * `aria-describedby` attribute value to set on the offcanvas panel.\n\t */\n\tariaDescribedBy?: string;\n\n\t/**\n\t * `aria-labelledby` attribute value to set on the offcanvas panel.\n\t */\n\tariaLabelledBy?: string;\n\n\t/**\n\t * If `true`, the backdrop element will be created for a given offcanvas.\n\t * If 'static', clicking the backdrop won't close the offcanvas (available since 13.1.0).\n\t *\n\t * Default value is `true`.\n\t */\n\tbackdrop?: boolean | 'static';\n\n\t/**\n\t * A custom class to append to the offcanvas backdrop.\n\t */\n\tbackdropClass?: string;\n\n\t/**\n\t * Callback right before the offcanvas will be dismissed.\n\t *\n\t * If this function returns:\n\t * * `false`\n\t * * a promise resolved with `false`\n\t * * a promise that is rejected\n\t *\n\t * then the offcanvas won't be dismissed.\n\t */\n\tbeforeDismiss?: () => boolean | Promise<boolean>;\n\n\t/**\n\t * A selector specifying the element all new offcanvas panels and backdrops should be appended to.\n\t *\n\t * If not specified, will be `body`.\n\t */\n\tcontainer?: string | HTMLElement;\n\n\t/**\n\t * The `Injector` to use for offcanvas content.\n\t */\n\tinjector?: Injector;\n\n\t/**\n\t * If `true`, the offcanvas will be closed when `Escape` key is pressed\n\t *\n\t * Default value is `true`.\n\t */\n\tkeyboard?: boolean;\n\n\t/**\n\t * A custom class to append to the offcanvas panel.\n\t */\n\tpanelClass?: string;\n\n\t/**\n\t * The position of the offcanvas\n\t */\n\tposition?: 'start' | 'end' | 'top' | 'bottom';\n\n\t/**\n\t * Scroll content while offcanvas is open (false by default).\n\t */\n\tscroll?: boolean;\n}\n\n/**\n * A configuration service for the [`NgbOffcanvas`](#/components/offcanvas/api#NgbOffcanvas) service.\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 offcanvases used in the application.\n *\n * @since 12.1.0\n */\n@Injectable({ providedIn: 'root' })\nexport class NgbOffcanvasConfig implements Required<NgbOffcanvasOptions> {\n\tprivate _ngbConfig = inject(NgbConfig);\n\tprivate _animation: boolean;\n\n\tariaDescribedBy: string;\n\tariaLabelledBy: string;\n\tbackdrop: boolean | 'static' = true;\n\tbackdropClass: string;\n\tbeforeDismiss: () => boolean | Promise<boolean>;\n\tcontainer: string | HTMLElement;\n\tinjector: Injector;\n\tkeyboard = true;\n\tpanelClass: string;\n\tposition: 'start' | 'end' | 'top' | 'bottom' = 'start';\n\tscroll = false;\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 { ComponentRef } from '@angular/core';\n\nimport { Observable, of, Subject, zip } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { isPromise, ContentRef } from './_ngb-ngbootstrap-utilities.mjs';\nimport { NgbOffcanvasBackdrop } from './offcanvas-backdrop';\nimport { NgbOffcanvasPanel } from './offcanvas-panel';\n\n/**\n * A reference to the currently opened (active) offcanvas.\n *\n * Instances of this class can be injected into your component passed as offcanvas content.\n * So you can `.close()` or `.dismiss()` the offcanvas window from your component.\n *\n * @since 12.1.0\n */\nexport class NgbActiveOffcanvas {\n\t/**\n\t * Closes the offcanvas with an optional `result` value.\n\t *\n\t * The `NgbOffcanvasRef.result` promise will be resolved with the provided value.\n\t */\n\tclose(result?: any): void {}\n\n\t/**\n\t * Dismisses the offcanvas with an optional `reason` value.\n\t *\n\t * The `NgbOffcanvasRef.result` promise will be rejected with the provided value.\n\t */\n\tdismiss(reason?: any): void {}\n}\n\n/**\n * A reference to the newly opened offcanvas returned by the `NgbOffcanvas.open()` method.\n *\n * @since 12.1.0\n */\nexport class NgbOffcanvasRef {\n\tprivate _closed = new Subject<any>();\n\tprivate _dismissed = new Subject<any>();\n\tprivate _hidden = new Subject<void>();\n\tprivate _resolve: (result?: any) => void;\n\tprivate _reject: (reason?: any) => void;\n\n\t/**\n\t * The instance of a component used for the offcanvas content.\n\t *\n\t * When a `TemplateRef` is used as the content or when the offcanvas is closed, will return `undefined`.\n\t */\n\tget componentInstance(): any {\n\t\tif (this._contentRef && this._contentRef.componentRef) {\n\t\t\treturn this._contentRef.componentRef.instance;\n\t\t}\n\t}\n\n\t/**\n\t * The promise that is resolved when the offcanvas is closed and rejected when the offcanvas is dismissed.\n\t */\n\tresult: Promise<any>;\n\n\t/**\n\t * The observable that emits when the offcanvas is closed via the `.close()` method.\n\t *\n\t * It will emit the result passed to the `.close()` method.\n\t */\n\tget closed(): Observable<any> {\n\t\treturn this._closed.asObservable().pipe(takeUntil(this._hidden));\n\t}\n\n\t/**\n\t * The observable that emits when the offcanvas is dismissed via the `.dismiss()` method.\n\t *\n\t * It will emit the reason passed to the `.dismissed()` method by the user, or one of the internal\n\t * reasons like backdrop click or ESC key press.\n\t */\n\tget dismissed(): Observable<any> {\n\t\treturn this._dismissed.asObservable().pipe(takeUntil(this._hidden));\n\t}\n\n\t/**\n\t * The observable that emits when both offcanvas window and backdrop are closed and animations were finished.\n\t * At this point offcanvas and backdrop elements will be removed from the DOM tree.\n\t *\n\t * This observable will be completed after emitting.\n\t */\n\tget hidden(): Observable<void> {\n\t\treturn this._hidden.asObservable();\n\t}\n\n\t/**\n\t * The observable that emits when offcanvas is fully visible and animation was finished.\n\t * The offcanvas DOM element is always available synchronously after calling 'offcanvas.open()' service.\n\t *\n\t * This observable will be completed after emitting.\n\t * It will not emit, if offcanvas is closed before open animation is finished.\n\t */\n\tget shown(): Observable<void> {\n\t\treturn this._panelCmptRef.instance.shown.asObservable();\n\t}\n\n\tconstructor(\n\t\tprivate _panelCmptRef: ComponentRef<NgbOffcanvasPanel>,\n\t\tprivate _contentRef: ContentRef,\n\t\tprivate _backdropCmptRef?: ComponentRef<NgbOffcanvasBackdrop>,\n\t\tprivate _beforeDismiss?: () => boolean | Promise<boolean>,\n\t) {\n\t\t_panelCmptRef.instance.dismissEvent.subscribe((reason: any) => {\n\t\t\tthis.dismiss(reason);\n\t\t});\n\t\tif (_backdropCmptRef) {\n\t\t\t_backdropCmptRef.instance.dismissEvent.subscribe((reason: any) => {\n\t\t\t\tthis.dismiss(reason);\n\t\t\t});\n\t\t}\n\t\tthis.result = new Promise((resolve, reject) => {\n\t\t\tthis._resolve = resolve;\n\t\t\tthis._reject = reject;\n\t\t});\n\t\tthis.result.then(null, () => {});\n\t}\n\n\t/**\n\t * Closes the offcanvas with an optional `result` value.\n\t *\n\t * The `NgbMobalRef.result` promise will be resolved with the provided value.\n\t */\n\tclose(result?: any): void {\n\t\tif (this._panelCmptRef) {\n\t\t\tthis._closed.next(result);\n\t\t\tthis._resolve(result);\n\t\t\tthis._removeOffcanvasElements();\n\t\t}\n\t}\n\n\tprivate _dismiss(reason?: any) {\n\t\tthis._dismissed.next(reason);\n\t\tthis._reject(reason);\n\t\tthis._removeOffcanvasElements();\n\t}\n\n\t/**\n\t * Dismisses the offcanvas with an optional `reason` value.\n\t *\n\t * The `NgbOffcanvasRef.result` promise will be rejected with the provided value.\n\t */\n\tdismiss(reason?: any): void {\n\t\tif (this._panelCmptRef) {\n\t\t\tif (!this._beforeDismiss) {\n\t\t\t\tthis._dismiss(reason);\n\t\t\t} else {\n\t\t\t\tconst dismiss = this._beforeDismiss();\n\t\t\t\tif (isPromise(dismiss)) {\n\t\t\t\t\tdismiss.then(\n\t\t\t\t\t\t(result) => {\n\t\t\t\t\t\t\tif (result !== false) {\n\t\t\t\t\t\t\t\tthis._dismiss(reason);\n\t\t\t\t\t\t\t}\n\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 if (dismiss !== false) {\n\t\t\t\t\tthis._dismiss(reason);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _removeOffcanvasElements() {\n\t\tconst panelTransition$ = this._panelCmptRef.instance.hide();\n\t\tconst backdropTransition$ = this._backdropCmptRef ? this._backdropCmptRef.instance.hide() : of(undefined);\n\n\t\t// hiding panel\n\t\tpanelTransition$.subscribe(() => {\n\t\t\tconst { nativeElement } = this._panelCmptRef.location;\n\t\t\tnativeElement.parentNode.removeChild(nativeElement);\n\t\t\tthis._panelCmptRef.destroy();\n\t\t\tthis._contentRef?.viewRef?.destroy();\n\n\t\t\tthis._panelCmptRef = <any>null;\n\t\t\tthis._contentRef = <any>null;\n\t\t});\n\n\t\t// hiding backdrop\n\t\tbackdropTransition$.subscribe(() => {\n\t\t\tif (this._backdropCmptRef) {\n\t\t\t\tconst { nativeElement } = this._backdropCmptRef.location;\n\t\t\t\tnativeElement.parentNode.removeChild(nativeElement);\n\t\t\t\tthis._backdropCmptRef.destroy();\n\t\t\t\tthis._backdropCmptRef = <any>null;\n\t\t\t}\n\t\t});\n\n\t\t// all done\n\t\tzip(panelTransition$, backdropTransition$).subscribe(() => {\n\t\t\tthis._hidden.next();\n\t\t\tthis._hidden.complete();\n\t\t});\n\t}\n}\n","export enum OffcanvasDismissReasons {\n\tBACKDROP_CLICK,\n\tESC,\n}\n","import {\n\tafterNextRender,\n\tComponent,\n\tElementRef,\n\tEventEmitter,\n\tinject,\n\tInjector,\n\tInput,\n\tNgZone,\n\tOnInit,\n\tOutput,\n\tViewEncapsulation,\n} from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nimport { reflow, ngbRunTransition } from './_ngb-ngbootstrap-utilities.mjs';\nimport { OffcanvasDismissReasons } from './offcanvas-dismiss-reasons';\n\n@Component({\n\tselector: 'ngb-offcanvas-backdrop',\n\tencapsulation: ViewEncapsulation.None,\n\ttemplate: '',\n\thost: {\n\t\t'[class]': '\"offcanvas-backdrop\" + (backdropClass ? \" \" + backdropClass : \"\")',\n\t\t'[class.show]': '!animation',\n\t\t'[class.fade]': 'animation',\n\t\t'(mousedown)': 'dismiss()',\n\t},\n})\nexport class NgbOffcanvasBackdrop implements OnInit {\n\tprivate _nativeElement = inject(ElementRef).nativeElement as HTMLElement;\n\tprivate _zone = inject(NgZone);\n\tprivate _injector = inject(Injector);\n\n\t@Input() animation: boolean;\n\t@Input() backdropClass: string;\n\t@Input() static: boolean;\n\n\t@Output('dismiss') dismissEvent = new EventEmitter();\n\n\tngOnInit() {\n\t\tafterNextRender(\n\t\t\t{\n\t\t\t\tmixedReadWrite: () =>\n\t\t\t\t\tngbRunTransition(\n\t\t\t\t\t\tthis._zone,\n\t\t\t\t\t\tthis._nativeElement,\n\t\t\t\t\t\t(element: HTMLElement, animation: boolean) => {\n\t\t\t\t\t\t\tif (animation) {\n\t\t\t\t\t\t\t\treflow(element);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telement.classList.add('show');\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ animation: this.animation, runningTransition: 'continue' },\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n\n\thide(): Observable<void> {\n\t\treturn ngbRunTransition(this._zone, this._nativeElement, ({ classList }) => classList.remove('show'), {\n\t\t\tanimation: this.animation,\n\t\t\trunningTransition: 'stop',\n\t\t});\n\t}\n\n\tdismiss() {\n\t\tif (!this.static) {\n\t\t\tthis.dismissEvent.emit(OffcanvasDismissReasons.BACKDROP_CLICK);\n\t\t}\n\t}\n}\n","import {\n\tafterNextRender,\n\tComponent,\n\tElementRef,\n\tEventEmitter,\n\tinject,\n\tInjector,\n\tInput,\n\tNgZone,\n\tOnDestroy,\n\tOnInit,\n\tOutput,\n\tViewEncapsulation,\n\tDOCUMENT,\n} from '@angular/core';\n\nimport { fromEvent, Observable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { OffcanvasDismissReasons } from './offcanvas-dismiss-reasons';\nimport {\n\treflow,\n\tgetFocusableBoundaryElements,\n\tngbRunTransition,\n\tNgbTransitionOptions,\n} from './_ngb-ngbootstrap-utilities.mjs';\n\n@Component({\n\tselector: 'ngb-offcanvas-panel',\n\ttemplate: '<ng-content />',\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\t'[class]': '\"offcanvas offcanvas-\" + position + (panelClass ? \" \" + panelClass : \"\")',\n\t\trole: 'dialog',\n\t\ttabindex: '-1',\n\t\t'[attr.aria-modal]': 'true',\n\t\t'[attr.aria-labelledby]': 'ariaLabelledBy',\n\t\t'[attr.aria-describedby]': 'ariaDescribedBy',\n\t},\n})\nexport class NgbOffcanvasPanel implements OnInit, OnDestroy {\n\tprivate _document = inject(DOCUMENT);\n\tprivate _elRef = inject(ElementRef<HTMLElement>);\n\tprivate _zone = inject(NgZone);\n\tprivate _injector = inject(Injector);\n\n\tprivate _closed$ = new Subject<void>();\n\tprivate _elWithFocus: Element | null = null; // element that is focused prior to offcanvas opening\n\n\t@Input() animation: boolean;\n\t@Input() ariaLabelledBy?: string;\n\t@Input() ariaDescribedBy?: string;\n\t@Input() keyboard = true;\n\t@Input() panelClass: string;\n\t@Input() position: 'start' | 'end' | 'top' | 'bottom' = 'start';\n\n\t@Output('dismiss') dismissEvent = new EventEmitter();\n\n\tshown = new Subject<void>();\n\thidden = new Subject<void>();\n\n\tdismiss(reason): void {\n\t\tthis.dismissEvent.emit(reason);\n\t}\n\n\tngOnInit() {\n\t\tthis._elWithFocus = this._document.activeElement;\n\t\tafterNextRender({ mixedReadWrite: () => this._show() }, { injector: this._injector });\n\t}\n\n\tngOnDestroy() {\n\t\tthis._disableEventHandling();\n\t}\n\n\thide(): Observable<any> {\n\t\tconst context: NgbTransitionOptions<any> = { animation: this.animation, runningTransition: 'stop' };\n\n\t\tconst offcanvasTransition$ = ngbRunTransition(\n\t\t\tthis._zone,\n\t\t\tthis._elRef.nativeElement,\n\t\t\t(element) => {\n\t\t\t\telement.classList.remove('showing');\n\t\t\t\telement.classList.add('hiding');\n\t\t\t\treturn () => element.classList.remove('show', 'hiding');\n\t\t\t},\n\t\t\tcontext,\n\t\t);\n\n\t\toffcanvasTransition$.subscribe(() => {\n\t\t\tthis.hidden.next();\n\t\t\tthis.hidden.complete();\n\t\t});\n\n\t\tthis._disableEventHandling();\n\t\tthis._restoreFocus();\n\n\t\treturn offcanvasTransition$;\n\t}\n\n\tprivate _show() {\n\t\tconst context: NgbTransitionOptions<any> = { animation: this.animation, runningTransition: 'continue' };\n\n\t\tconst offcanvasTransition$ = ngbRunTransition(\n\t\t\tthis._zone,\n\t\t\tthis._elRef.nativeElement,\n\t\t\t(element: HTMLElement, animation: boolean) => {\n\t\t\t\tif (animation) {\n\t\t\t\t\treflow(element);\n\t\t\t\t}\n\t\t\t\telement.classList.add('show', 'showing');\n\t\t\t\treturn () => element.classList.remove('showing');\n\t\t\t},\n\t\t\tcontext,\n\t\t);\n\n\t\toffcanvasTransition$.subscribe(() => {\n\t\t\tthis.shown.next();\n\t\t\tthis.shown.complete();\n\t\t});\n\n\t\tthis._enableEventHandling();\n\t\tthis._setFocus();\n\t}\n\n\tprivate _enableEventHandling() {\n\t\tconst { nativeElement } = this._elRef;\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tfromEvent<KeyboardEvent>(nativeElement, 'keydown')\n\t\t\t\t.pipe(\n\t\t\t\t\ttakeUntil(this._closed$),\n\t\t\t\t\tfilter((e) => e.key === 'Escape'),\n\t\t\t\t)\n\t\t\t\t.subscribe((event) => {\n\t\t\t\t\tif (this.keyboard) {\n\t\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\t\tif (!event.defaultPrevented) {\n\t\t\t\t\t\t\t\tthis._zone.run(() => this.dismiss(OffcanvasDismissReasons.ESC));\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});\n\t\t});\n\t}\n\n\tprivate _disableEventHandling() {\n\t\tthis._closed$.next();\n\t}\n\n\tprivate _setFocus() {\n\t\tconst { nativeElement } = this._elRef;\n\t\tif (!nativeElement.contains(document.activeElement)) {\n\t\t\tconst autoFocusable = nativeElement.querySelector(`[ngbAutofocus]`) as HTMLElement;\n\t\t\tconst firstFocusable = getFocusableBoundaryElements(nativeElement)[0];\n\n\t\t\tconst elementToFocus = autoFocusable || firstFocusable || nativeElement;\n\t\t\telementToFocus.focus();\n\t\t}\n\t}\n\n\tprivate _restoreFocus() {\n\t\tconst body = this._document.body;\n\t\tconst elWithFocus = this._elWithFocus;\n\n\t\tlet elementToFocus;\n\t\tif (elWithFocus && elWithFocus['focus'] && body.contains(elWithFocus)) {\n\t\t\telementToFocus = elWithFocus;\n\t\t} else {\n\t\t\telementToFocus = body;\n\t\t}\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tsetTimeout(() => elementToFocus.focus());\n\t\t\tthis._elWithFocus = null;\n\t\t});\n\t}\n}\n","import {\n\tApplicationRef,\n\tComponentRef,\n\tcreateComponent,\n\tEventEmitter,\n\tinject,\n\tInjectable,\n\tInjector,\n\tNgZone,\n\tTemplateRef,\n\tType,\n\tDOCUMENT,\n} from '@angular/core';\nimport { finalize } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { isDefined, isString, ngbFocusTrap, ContentRef, ScrollBar } from './_ngb-ngbootstrap-utilities.mjs';\nimport { NgbActiveOffcanvas, NgbOffcanvasRef } from './offcanvas-ref';\nimport { NgbOffcanvasOptions } from './offcanvas-config';\nimport { NgbOffcanvasBackdrop } from './offcanvas-backdrop';\nimport { NgbOffcanvasPanel } from './offcanvas-panel';\n\n@Injectable({ providedIn: 'root' })\nexport class NgbOffcanvasStack {\n\tprivate _applicationRef = inject(ApplicationRef);\n\tprivate _injector = inject(Injector);\n\tprivate _document = inject(DOCUMENT);\n\tprivate _scrollBar = inject(ScrollBar);\n\n\tprivate _activePanelCmptHasChanged = new Subject<void>();\n\tprivate _scrollBarRestoreFn: null | (() => void) = null;\n\tprivate _backdropAttributes = ['animation', 'backdropClass'];\n\tprivate _offcanvasRef?: NgbOffcanvasRef;\n\tprivate _panelAttributes = ['animation', 'ariaDescribedBy', 'ariaLabelledBy', 'keyboard', 'panelClass', 'position'];\n\tprivate _panelCmpt?: ComponentRef<NgbOffcanvasPanel>;\n\tprivate _activeInstance: EventEmitter<NgbOffcanvasRef | undefined> = new EventEmitter();\n\n\tconstructor() {\n\t\tconst ngZone = inject(NgZone);\n\t\t// Trap focus on active PanelCmpt\n\t\tthis._activePanelCmptHasChanged.subscribe(() => {\n\t\t\tif (this._panelCmpt) {\n\t\t\t\tngbFocusTrap(ngZone, this._panelCmpt.location.nativeElement, this._activePanelCmptHasChanged);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _restoreScrollBar() {\n\t\tconst scrollBarRestoreFn = this._scrollBarRestoreFn;\n\t\tif (scrollBarRestoreFn) {\n\t\t\tthis._scrollBarRestoreFn = null;\n\t\t\tscrollBarRestoreFn();\n\t\t}\n\t}\n\n\tprivate _hideScrollBar() {\n\t\tif (!this._scrollBarRestoreFn) {\n\t\t\tthis._scrollBarRestoreFn = this._scrollBar.hide();\n\t\t}\n\t}\n\n\topen(contentInjector: Injector, content: any, options: NgbOffcanvasOptions): NgbOffcanvasRef {\n\t\tconst containerEl =\n\t\t\toptions.container instanceof HTMLElement\n\t\t\t\t? options.container\n\t\t\t\t: isDefined(options.container)\n\t\t\t\t ? this._document.querySelector(options.container!)\n\t\t\t\t : this._document.body;\n\t\tif (!containerEl) {\n\t\t\tthrow new Error(`The specified offcanvas container \"${options.container || 'body'}\" was not found in the DOM.`);\n\t\t}\n\n\t\tif (!options.scroll) {\n\t\t\tthis._hideScrollBar();\n\t\t}\n\n\t\tconst activeOffcanvas = new NgbActiveOffcanvas();\n\t\tconst contentRef = this._getContentRef(options.injector || contentInjector, content, activeOffcanvas);\n\n\t\tlet backdropCmptRef: ComponentRef<NgbOffcanvasBackdrop> | undefined =\n\t\t\toptions.backdrop !== false ? this._attachBackdrop(containerEl) : undefined;\n\t\tlet panelCmptRef: ComponentRef<NgbOffcanvasPanel> = this._attachWindowComponent(containerEl, contentRef.nodes);\n\t\tlet ngbOffcanvasRef: NgbOffcanvasRef = new NgbOffcanvasRef(\n\t\t\tpanelCmptRef,\n\t\t\tcontentRef,\n\t\t\tbackdropCmptRef,\n\t\t\toptions.beforeDismiss,\n\t\t);\n\n\t\tthis._registerOffcanvasRef(ngbOffcanvasRef);\n\t\tthis._registerPanelCmpt(panelCmptRef);\n\t\tngbOffcanvasRef.hidden.pipe(finalize(() => this._restoreScrollBar())).subscribe();\n\t\tactiveOffcanvas.close = (result: any) => {\n\t\t\tngbOffcanvasRef.close(result);\n\t\t};\n\t\tactiveOffcanvas.dismiss = (reason: any) => {\n\t\t\tngbOffcanvasRef.dismiss(reason);\n\t\t};\n\n\t\tthis._applyPanelOptions(panelCmptRef.instance, options);\n\n\t\tif (backdropCmptRef && backdropCmptRef.instance) {\n\t\t\tthis._applyBackdropOptions(backdropCmptRef.instance, options);\n\t\t\tbackdropCmptRef.changeDetectorRef.detectChanges();\n\t\t}\n\t\tpanelCmptRef.changeDetectorRef.detectChanges();\n\t\treturn ngbOffcanvasRef;\n\t}\n\n\tget activeInstance() {\n\t\treturn this._activeInstance;\n\t}\n\n\tdismiss(reason?: any) {\n\t\tthis._offcanvasRef?.dismiss(reason);\n\t}\n\n\thasOpenOffcanvas(): boolean {\n\t\treturn !!this._offcanvasRef;\n\t}\n\n\tprivate _attachBackdrop(containerEl: Element): ComponentRef<NgbOffcanvasBackdrop> {\n\t\tlet backdropCmptRef = createComponent(NgbOffcanvasBackdrop, {\n\t\t\tenvironmentInjector: this._applicationRef.injector,\n\t\t\telementInjector: this._injector,\n\t\t});\n\t\tthis._applicationRef.attachView(backdropCmptRef.hostView);\n\t\tcontainerEl.appendChild(backdropCmptRef.location.nativeElement);\n\t\treturn backdropCmptRef;\n\t}\n\n\tprivate _attachWindowComponent(containerEl: Element, projectableNodes: Node[][]): ComponentRef<NgbOffcanvasPanel> {\n\t\tlet panelCmptRef = createComponent(NgbOffcanvasPanel, {\n\t\t\tenvironmentInjector: this._applicationRef.injector,\n\t\t\telementInjector: this._injector,\n\t\t\tprojectableNodes,\n\t\t});\n\t\tthis._applicationRef.attachView(panelCmptRef.hostView);\n\t\tcontainerEl.appendChild(panelCmptRef.location.nativeElement);\n\t\treturn panelCmptRef;\n\t}\n\n\tprivate _applyPanelOptions(windowInstance: NgbOffcanvasPanel, options: NgbOffcanvasOptions): void {\n\t\tthis._panelAttributes.forEach((optionName: string) => {\n\t\t\tif (isDefined(options[optionName])) {\n\t\t\t\twindowInstance[optionName] = options[optionName];\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _applyBackdropOptions(backdropInstance: NgbOffcanvasBackdrop, options: NgbOffcanvasOptions): void {\n\t\tthis._backdropAttributes.forEach((optionName: string) => {\n\t\t\tif (isDefined(options[optionName])) {\n\t\t\t\tbackdropInstance[optionName] = options[optionName];\n\t\t\t}\n\t\t});\n\t\tbackdropInstance.static = options.backdrop === 'static';\n\t}\n\n\tprivate _getContentRef(\n\t\tcontentInjector: Injector,\n\t\tcontent: Type<any> | TemplateRef<any> | string,\n\t\tactiveOffcanvas: NgbActiveOffcanvas,\n\t): ContentRef {\n\t\tif (!content) {\n\t\t\treturn new ContentRef([]);\n\t\t} else if (content instanceof TemplateRef) {\n\t\t\treturn this._createFromTemplateRef(content, activeOffcanvas);\n\t\t} else if (isString(content)) {\n\t\t\treturn this._createFromString(content);\n\t\t} else {\n\t\t\treturn this._createFromComponent(contentInjector, content, activeOffcanvas);\n\t\t}\n\t}\n\n\tprivate _createFromTemplateRef(templateRef: TemplateRef<any>, activeOffcanvas: NgbActiveOffcanvas): ContentRef {\n\t\tconst context = {\n\t\t\t$implicit: activeOffcanvas,\n\t\t\tclose(result) {\n\t\t\t\tactiveOffcanvas.close(result);\n\t\t\t},\n\t\t\tdismiss(reason) {\n\t\t\t\tactiveOffcanvas.dismiss(reason);\n\t\t\t},\n\t\t};\n\t\tconst viewRef = templateRef.createEmbeddedView(context);\n\t\tthis._applicationRef.attachView(viewRef);\n\t\treturn new ContentRef([viewRef.rootNodes], viewRef);\n\t}\n\n\tprivate _createFromString(content: string): ContentRef {\n\t\tconst component = this._document.createTextNode(`${content}`);\n\t\treturn new ContentRef([[component]]);\n\t}\n\n\tprivate _createFromComponent(\n\t\tcontentInjector: Injector,\n\t\tcomponentType: Type<any>,\n\t\tcontext: NgbActiveOffcanvas,\n\t): ContentRef {\n\t\tconst elementInjector = Injector.create({\n\t\t\tproviders: [{ provide: NgbActiveOffcanvas, useValue: context }],\n\t\t\tparent: contentInjector,\n\t\t});\n\t\tconst componentRef = createComponent(componentType, {\n\t\t\tenvironmentInjector: this._applicationRef.injector,\n\t\t\telementInjector,\n\t\t});\n\t\tconst componentNativeEl = componentRef.location.nativeElement;\n\t\tthis._applicationRef.attachView(componentRef.hostView);\n\t\treturn new ContentRef([[componentNativeEl]], componentRef.hostView, componentRef);\n\t}\n\n\tprivate _registerOffcanvasRef(ngbOffcanvasRef: NgbOffcanvasRef) {\n\t\tconst unregisterOffcanvasRef = () => {\n\t\t\tthis._offcanvasRef = undefined;\n\t\t\tthis._activeInstance.emit(this._offcanvasRef);\n\t\t};\n\t\tthis._offcanvasRef = ngbOffcanvasRef;\n\t\tthis._activeInstance.emit(this._offcanvasRef);\n\t\tngbOffcanvasRef.result.then(unregisterOffcanvasRef, unregisterOffcanvasRef);\n\t}\n\n\tprivate _registerPanelCmpt(ngbPanelCmpt: ComponentRef<NgbOffcanvasPanel>) {\n\t\tthis._panelCmpt = ngbPanelCmpt;\n\t\tthis._activePanelCmptHasChanged.next();\n\n\t\tngbPanelCmpt.onDestroy(() => {\n\t\t\tthis._panelCmpt = undefined;\n\t\t\tthis._activePanelCmptHasChanged.next();\n\t\t});\n\t}\n}\n","import { inject, Injectable, Injector } from '@angular/core';\nimport { NgbOffcanvasConfig, NgbOffcanvasOptions } from './offcanvas-config';\nimport { NgbOffcanvasRef } from './offcanvas-ref';\nimport { NgbOffcanvasStack } from './offcanvas-stack';\n\n/**\n * A service for opening an offcanvas.\n *\n * Creating an offcanvas is straightforward: create a component or a template and pass it as an argument to\n * the `.open()` method.\n *\n * @since 12.1.0\n */\n@Injectable({ providedIn: 'root' })\nexport class NgbOffcanvas {\n\tprivate _injector = inject(Injector);\n\tprivate _offcanvasStack = inject(NgbOffcanvasStack);\n\tprivate _config = inject(NgbOffcanvasConfig);\n\n\t/**\n\t * Opens a new offcanvas panel with the specified content and supplied options.\n\t *\n\t * Content can be provided as a `TemplateRef` or a component type. If you pass a component type as content,\n\t * then instances of those components can be injected with an instance of the `NgbActiveOffcanvas` class. You can then\n\t * use `NgbActiveOffcanvas` methods to close / dismiss offcanvas from \"inside\" of your component.\n\t *\n\t * Also see the [`NgbOffcanvasOptions`](#/components/offcanvas/api#NgbOffcanvasOptions) for the list of supported\n\t * options.\n\t */\n\topen(content: any, options: NgbOffcanvasOptions = {}): NgbOffcanvasRef {\n\t\tconst combinedOptions = { ...this._config, animation: this._config.animation, ...options };\n\t\treturn this._offcanvasStack.open(this._injector, content, combinedOptions);\n\t}\n\n\t/**\n\t * Returns an observable that holds the active offcanvas instance.\n\t */\n\tget activeInstance() {\n\t\treturn this._offcanvasStack.activeInstance;\n\t}\n\n\t/**\n\t * Dismisses the currently displayed offcanvas with the supplied reason.\n\t */\n\tdismiss(reason?: any) {\n\t\tthis._offcanvasStack.dismiss(reason);\n\t}\n\n\t/**\n\t * Indicates if there is currently an open offcanvas in the application.\n\t */\n\thasOpenOffcanvas(): boolean {\n\t\treturn this._offcanvasStack.hasOpenOffcanvas();\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nexport { NgbOffcanvas } from './offcanvas';\nexport { NgbOffcanvasConfig, NgbOffcanvasOptions } from './offcanvas-config';\nexport { NgbOffcanvasRef, NgbActiveOffcanvas } from './offcanvas-ref';\nexport { OffcanvasDismissReasons } from './offcanvas-dismiss-reasons';\n\n@NgModule({})\nexport class NgbOffcanvasModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}