@skyux/flyout 8.6.0 → 9.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/modules/flyout/flyout-adapter.service.mjs +69 -0
- package/esm2022/lib/modules/flyout/flyout-instance.mjs +122 -0
- package/esm2022/lib/modules/flyout/flyout-iterator.component.mjs +51 -0
- package/esm2022/lib/modules/flyout/flyout-media-query.service.mjs +68 -0
- package/esm2022/lib/modules/flyout/flyout.component.mjs +526 -0
- package/{esm2020 → esm2022}/lib/modules/flyout/flyout.module.mjs +21 -21
- package/esm2022/lib/modules/flyout/flyout.service.mjs +168 -0
- package/esm2022/lib/modules/shared/sky-flyout-resources.module.mjs +54 -0
- package/fesm2022/skyux-flyout.mjs +1098 -0
- package/{fesm2020 → fesm2022}/skyux-flyout.mjs.map +1 -1
- package/lib/modules/flyout/flyout-iterator.component.d.ts +1 -1
- package/package.json +16 -22
- package/esm2020/lib/modules/flyout/flyout-adapter.service.mjs +0 -72
- package/esm2020/lib/modules/flyout/flyout-instance.mjs +0 -119
- package/esm2020/lib/modules/flyout/flyout-iterator.component.mjs +0 -56
- package/esm2020/lib/modules/flyout/flyout-media-query.service.mjs +0 -71
- package/esm2020/lib/modules/flyout/flyout.component.mjs +0 -513
- package/esm2020/lib/modules/flyout/flyout.service.mjs +0 -167
- package/esm2020/lib/modules/shared/sky-flyout-resources.module.mjs +0 -54
- package/fesm2015/skyux-flyout.mjs +0 -1091
- package/fesm2015/skyux-flyout.mjs.map +0 -1
- package/fesm2020/skyux-flyout.mjs +0 -1087
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-action.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-before-close-handler.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-close-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-config-internal.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-message-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-message.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-permalink.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-flyout.mjs +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-flyout.mjs","sources":["../../../../../libs/components/flyout/src/lib/modules/flyout/types/flyout-message-type.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-instance.ts","../../../../../libs/components/flyout/src/lib/modules/shared/sky-flyout-resources.module.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-iterator.component.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-iterator.component.html","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-adapter.service.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout-media-query.service.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/types/flyout-before-close-handler.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.html","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.module.ts","../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.service.ts","../../../../../libs/components/flyout/src/skyux-flyout.ts"],"sourcesContent":["/**\n * @internal\n */\nexport enum SkyFlyoutMessageType {\n Open = 0,\n Close,\n EnableIteratorNextButton,\n EnableIteratorPreviousButton,\n DisableIteratorNextButton,\n DisableIteratorPreviousButton,\n}\n","import { EventEmitter } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { SkyFlyoutBeforeCloseHandler } from './types/flyout-before-close-handler';\nimport { SkyFlyoutCloseArgs } from './types/flyout-close-args';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\n\n/**\n * Represents a single displayed flyout.\n */\nexport class SkyFlyoutInstance<T> {\n /**\n * An event that the modal instance emits when it is about to close.\n * If a subscription exists for this event,\n * the modal does not close until the subscriber calls the handler's `closeModal` method.\n */\n public get beforeClose(): Observable<SkyFlyoutBeforeCloseHandler> {\n return this.#_beforeClose;\n }\n\n /**\n * An event that the flyout instance emits when it closes.\n */\n public closed = new EventEmitter<void>();\n\n /**\n * The instance of the component to display in the flyout.\n */\n public componentInstance!: T;\n\n /**\n * Used to communicate with the host component.\n * @internal\n */\n public get hostController(): Subject<SkyFlyoutMessage> {\n return this.#_hostController;\n }\n\n /**\n * A `boolean` value that returns `true` if the flyout is open.\n * @default true\n */\n public isOpen = true;\n\n /**\n * An event that the flyout instance emits when users click the next iterator button.\n */\n public get iteratorNextButtonClick(): EventEmitter<void> {\n return this.#_iteratorNextButtonClick;\n }\n\n /**\n * An event that the flyout instance emits when users click the previous iterator button.\n */\n public get iteratorPreviousButtonClick(): EventEmitter<void> {\n return this.#_iteratorPreviousButtonClick;\n }\n\n /**\n * Disables the next iterator button.\n * @default false\n */\n public set iteratorNextButtonDisabled(newValue: boolean) {\n this.#_iteratorNextButtonDisabled = newValue;\n if (newValue) {\n this.hostController.next({\n type: SkyFlyoutMessageType.DisableIteratorNextButton,\n });\n } else {\n this.hostController.next({\n type: SkyFlyoutMessageType.EnableIteratorNextButton,\n });\n }\n }\n\n public get iteratorNextButtonDisabled(): boolean {\n return this.#_iteratorNextButtonDisabled;\n }\n\n /**\n * Disables the previous iterator button.\n * @default false\n */\n public set iteratorPreviousButtonDisabled(newValue: boolean) {\n this.#_iteratorPreviousButtonDisabled = newValue;\n if (newValue) {\n this.hostController.next({\n type: SkyFlyoutMessageType.DisableIteratorPreviousButton,\n });\n } else {\n this.hostController.next({\n type: SkyFlyoutMessageType.EnableIteratorPreviousButton,\n });\n }\n }\n\n public get iteratorPreviousButtonDisabled(): boolean {\n return this.#_iteratorPreviousButtonDisabled;\n }\n\n #_beforeClose = new Subject<SkyFlyoutBeforeCloseHandler>();\n\n #_iteratorNextButtonClick = new EventEmitter<void>();\n\n #_iteratorPreviousButtonClick = new EventEmitter<void>();\n\n #_iteratorNextButtonDisabled = false;\n\n #_iteratorPreviousButtonDisabled = false;\n\n #_hostController = new Subject<SkyFlyoutMessage>();\n\n // TODO: Remove this being optional in a future breaking change.\n constructor(componentInstance?: T) {\n if (!componentInstance) {\n console.warn(\n `The SkyFlyoutInstance was created without a reference to the flyout's child component instance.\n The instance will not have a reference ot this child component.\n Support for creating an instance without this reference will be removed in a future breaking change.`\n );\n }\n\n this.componentInstance = componentInstance!;\n this.closed.subscribe(() => {\n this.isOpen = false;\n });\n }\n\n /**\n * Closes the flyout instance and emits its `closed` event.\n * @param args Arguments used when closing the flyout.\n */\n public close(args?: SkyFlyoutCloseArgs): void {\n this.hostController.next({\n type: SkyFlyoutMessageType.Close,\n data: { ignoreBeforeClose: args ? args.ignoreBeforeClose : false },\n });\n\n this.#_iteratorPreviousButtonClick.complete();\n this.#_iteratorNextButtonClick.complete();\n\n this.hostController.complete();\n }\n}\n","/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-flyout' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_flyout_close: { message: 'Close flyout' },\n skyux_flyout_iterator_previous_button: { message: 'Previous' },\n skyux_flyout_iterator_next_button: { message: 'Next' },\n skyux_flyout_permalink_button: { message: 'View record' },\n skyux_flyout_primary_action_button: { message: 'Create list' },\n skyux_flyout_resize_handle: {\n message:\n 'Resize the flyout window. Press the enter or space key to activate, then use left arrow key to expand the flyout window and right arrow key to shrink the flyout window. Press the enter, space, or tab key to deactivate.',\n },\n },\n};\n\nexport class SkyFlyoutResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyFlyoutResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyFlyoutResourcesModule {}\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-flyout-iterator',\n templateUrl: './flyout-iterator.component.html',\n styleUrls: ['./flyout-iterator.component.scss'],\n})\nexport class SkyFlyoutIteratorComponent implements OnDestroy {\n @Input()\n public nextButtonDisabled: boolean | undefined;\n\n @Input()\n public previousButtonDisabled: boolean | undefined;\n\n @Output()\n public get previousButtonClick(): EventEmitter<void> {\n return this.#_previousButtonClick;\n }\n\n @Output()\n public get nextButtonClick(): EventEmitter<void> {\n return this.#_nextButtonClick;\n }\n\n #ngUnsubscribe = new Subject<void>();\n\n #_nextButtonClick = new EventEmitter<void>();\n\n #_previousButtonClick = new EventEmitter<void>();\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public onIteratorPreviousClick(): void {\n /* istanbul ignore else */\n if (!this.previousButtonDisabled) {\n this.#_previousButtonClick.emit();\n }\n }\n\n public onIteratorNextClick(): void {\n /* istanbul ignore else */\n if (!this.nextButtonDisabled) {\n this.#_nextButtonClick.emit();\n }\n }\n}\n","<div id=\"iterators\" class=\"sky-flyout-iterators\">\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"\n 'skyux_flyout_iterator_previous_button' | skyLibResources\n \"\n [disabled]=\"previousButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorPreviousClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-up\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-up\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"'skyux_flyout_iterator_next_button' | skyLibResources\"\n [disabled]=\"nextButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorNextClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-down\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-down\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n</div>\n","import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2,\n} from '@angular/core';\nimport { SkyAppWindowRef, SkyMediaBreakpoints } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFlyoutAdapterService {\n #renderer: Renderer2;\n\n #windowRef: SkyAppWindowRef;\n\n constructor(rendererFactory: RendererFactory2, windowRef: SkyAppWindowRef) {\n this.#windowRef = windowRef;\n this.#renderer = rendererFactory.createRenderer(undefined, null);\n }\n\n public adjustHeaderForHelp(header: ElementRef): void {\n const windowObj = this.#windowRef.nativeWindow;\n const helpWidget = windowObj.document.getElementById('bb-help-invoker');\n\n if (helpWidget) {\n this.#renderer.addClass(header.nativeElement, 'sky-flyout-help-shim');\n }\n }\n\n public setResponsiveClass(\n element: ElementRef,\n breakpoint?: SkyMediaBreakpoints\n ): void {\n /* istanbul ignore if */\n if (!breakpoint) {\n return;\n }\n const nativeEl: HTMLElement = element.nativeElement;\n\n this.#renderer.removeClass(nativeEl, 'sky-responsive-container-xs');\n this.#renderer.removeClass(nativeEl, 'sky-responsive-container-sm');\n this.#renderer.removeClass(nativeEl, 'sky-responsive-container-md');\n this.#renderer.removeClass(nativeEl, 'sky-responsive-container-lg');\n\n let newClass: string;\n\n switch (breakpoint) {\n case SkyMediaBreakpoints.xs: {\n newClass = 'sky-responsive-container-xs';\n break;\n }\n case SkyMediaBreakpoints.sm: {\n newClass = 'sky-responsive-container-sm';\n break;\n }\n case SkyMediaBreakpoints.md: {\n newClass = 'sky-responsive-container-md';\n break;\n }\n default: {\n newClass = 'sky-responsive-container-lg';\n break;\n }\n }\n\n this.#renderer.addClass(nativeEl, newClass);\n }\n\n public toggleIframePointerEvents(enable: boolean): void {\n // When iframes are present on the page, they may interfere with dragging\n // temporarily disable pointer events in iframes when dragging starts.\n // When re-enabling we set to the empty string as it will remove the element styling\n // and fall back to any css originally given to iframe\n const iframes = document.querySelectorAll('iframe');\n for (let i = 0; i < iframes.length; i++) {\n iframes[i].style.pointerEvents = enable ? '' : 'none';\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SkyMediaBreakpoints, SkyMediaQueryListener } from '@skyux/core';\n\nimport { ReplaySubject, Subscription } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFlyoutMediaQueryService {\n public current: SkyMediaBreakpoints | undefined;\n\n #currentSubject: ReplaySubject<SkyMediaBreakpoints>;\n\n constructor() {\n this.#currentSubject = new ReplaySubject<SkyMediaBreakpoints>(1);\n }\n\n public subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.#currentSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public setBreakpointForWidth(width: number): void {\n let breakpoint: SkyMediaBreakpoints;\n\n if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.xs)) {\n breakpoint = SkyMediaBreakpoints.xs;\n } else if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.sm)) {\n breakpoint = SkyMediaBreakpoints.sm;\n } else if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.md)) {\n breakpoint = SkyMediaBreakpoints.md;\n } else {\n breakpoint = SkyMediaBreakpoints.lg;\n }\n\n this.current = breakpoint;\n this.#currentSubject.next(this.current);\n }\n\n public isWidthWithinBreakpoint(\n width: number,\n breakpoint: SkyMediaBreakpoints\n ): boolean {\n const xsBreakpointMaxPixels = 767;\n const smBreakpointMinPixels = 768;\n const smBreakpointMaxPixels = 991;\n const mdBreakpointMinPixels = 992;\n const mdBreakpointMaxPixels = 1199;\n const lgBreakpointMinPixels = 1200;\n\n switch (breakpoint) {\n case SkyMediaBreakpoints.xs: {\n return width <= xsBreakpointMaxPixels;\n }\n case SkyMediaBreakpoints.sm: {\n return width >= smBreakpointMinPixels && width <= smBreakpointMaxPixels;\n }\n case SkyMediaBreakpoints.md: {\n return width >= mdBreakpointMinPixels && width <= mdBreakpointMaxPixels;\n }\n default: {\n return width >= lgBreakpointMinPixels;\n }\n }\n }\n\n public destroy(): void {\n this.#currentSubject.complete();\n }\n}\n","/**\n * Handler for notifying the flyout when it is appropriate to close the flyout. This will be returned from the flyout instance's `beforeClose` observable.\n */\nexport class SkyFlyoutBeforeCloseHandler {\n /**\n * Function which should be called to close the flyout. This should be called once any intervening actions have completed.\n */\n public readonly closeFlyout: Function;\n\n constructor(closeFlyoutFunction: Function) {\n this.closeFlyout = closeFlyoutFunction;\n }\n}\n","import {\n AnimationEvent,\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n HostListener,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n SKY_STACKING_CONTEXT,\n SkyMediaBreakpoints,\n SkyMediaQueryService,\n SkyUIConfigService,\n} from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { BehaviorSubject, Subject, fromEvent } from 'rxjs';\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyFlyoutAdapterService } from './flyout-adapter.service';\nimport { SkyFlyoutInstance } from './flyout-instance';\nimport { SkyFlyoutMediaQueryService } from './flyout-media-query.service';\nimport { SkyFlyoutAction } from './types/flyout-action';\nimport { SkyFlyoutBeforeCloseHandler } from './types/flyout-before-close-handler';\nimport { SkyFlyoutConfig } from './types/flyout-config';\nimport { SkyFlyoutConfigInternal } from './types/flyout-config-internal';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\nimport { SkyFlyoutPermalink } from './types/flyout-permalink';\n\nconst FLYOUT_OPEN_STATE = 'flyoutOpen';\nconst FLYOUT_CLOSED_STATE = 'flyoutClosed';\n\nlet nextId = 0;\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-flyout',\n templateUrl: './flyout.component.html',\n styleUrls: ['./flyout.component.scss'],\n providers: [\n SkyFlyoutAdapterService,\n SkyFlyoutMediaQueryService,\n { provide: SkyMediaQueryService, useExisting: SkyFlyoutMediaQueryService },\n ],\n animations: [\n trigger('flyoutState', [\n state(FLYOUT_OPEN_STATE, style({ transform: 'initial' })),\n state(FLYOUT_CLOSED_STATE, style({ transform: 'translateX(100%)' })),\n transition('void => *', [\n style({ transform: 'translateX(100%)' }),\n animate(250),\n ]),\n transition(`* <=> *`, animate('250ms ease-in')),\n ]),\n ],\n // Allow automatic change detection for child components.\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class SkyFlyoutComponent implements OnDestroy, OnInit {\n public config: SkyFlyoutConfigInternal = {\n defaultWidth: window.innerWidth / 2,\n minWidth: 320,\n maxWidth: window.innerWidth / 2,\n providers: [],\n };\n public enableTrapFocus = false;\n public enableTrapFocusAutoCapture = false;\n public flyoutId = `sky-flyout-${++nextId}`;\n public flyoutState = FLYOUT_CLOSED_STATE;\n public isOpen = false;\n public isOpening = false;\n\n public flyoutWidth = 0;\n public instanceReady = false;\n public isDragging = false;\n public isFullscreen = false;\n public resizeKeyControlActive = false;\n\n #xCoord = 0;\n #windowBufferSize = 20;\n\n public get messageStream(): Subject<SkyFlyoutMessage> {\n return this.#_messageStream;\n }\n\n public permalink: SkyFlyoutPermalink = {};\n\n public permalinkLabel = '';\n\n public primaryAction: SkyFlyoutAction = {};\n\n public primaryActionLabel = '';\n\n /**\n * @internal\n */\n public widthStep = 10;\n\n /**\n * @internal\n */\n @ViewChild('flyoutRef', {\n read: ElementRef,\n static: true,\n })\n public flyoutRef: ElementRef | undefined;\n\n @ViewChild('target', {\n read: ViewContainerRef,\n static: true,\n })\n public target: ViewContainerRef | undefined;\n\n @ViewChild('flyoutHeader', {\n read: ElementRef,\n static: true,\n })\n public flyoutHeader: ElementRef | undefined;\n\n protected zIndex$ = new BehaviorSubject(1001);\n\n #flyoutInstance: SkyFlyoutInstance<any> | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_messageStream = new Subject<SkyFlyoutMessage>();\n\n #adapter: SkyFlyoutAdapterService;\n #changeDetector: ChangeDetectorRef;\n #injector: Injector;\n #resolver: ComponentFactoryResolver;\n #resourcesService: SkyLibResourcesService;\n #flyoutMediaQueryService: SkyFlyoutMediaQueryService;\n #elementRef: ElementRef;\n #uiConfigService: SkyUIConfigService;\n #ngZone: NgZone;\n\n constructor(\n adapter: SkyFlyoutAdapterService,\n changeDetector: ChangeDetectorRef,\n injector: Injector,\n resolver: ComponentFactoryResolver,\n resourcesService: SkyLibResourcesService,\n flyoutMediaQueryService: SkyFlyoutMediaQueryService,\n elementRef: ElementRef,\n uiConfigService: SkyUIConfigService,\n ngZone: NgZone\n ) {\n this.#adapter = adapter;\n this.#changeDetector = changeDetector;\n this.#injector = injector;\n this.#resolver = resolver;\n this.#resourcesService = resourcesService;\n this.#flyoutMediaQueryService = flyoutMediaQueryService;\n this.#elementRef = elementRef;\n this.#uiConfigService = uiConfigService;\n this.#ngZone = ngZone;\n\n // All commands flow through the message stream.\n this.messageStream\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n this.#handleIncomingMessages(message);\n });\n }\n\n public ngOnInit(): void {\n /* istanbul ignore else */\n if (this.flyoutHeader) {\n this.#adapter.adjustHeaderForHelp(this.flyoutHeader);\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n @HostListener('window:resize', ['$event'])\n public onWindowResize(event: any): void {\n if (\n this.#flyoutMediaQueryService.isWidthWithinBreakpoint(\n event.target.innerWidth,\n SkyMediaBreakpoints.xs\n )\n ) {\n this.#updateBreakpointAndResponsiveClass(event.target.innerWidth);\n } else {\n this.#updateBreakpointAndResponsiveClass(this.flyoutWidth);\n }\n\n this.#setFullscreen();\n\n if (event.target.innerWidth - this.flyoutWidth < this.#windowBufferSize) {\n this.flyoutWidth = event.target.innerWidth - this.#windowBufferSize;\n this.#xCoord = this.#windowBufferSize;\n this.#setUserData();\n }\n }\n\n public attach<T>(\n component: Type<T>,\n config?: SkyFlyoutConfig\n ): SkyFlyoutInstance<T> {\n this.#cleanTemplate();\n\n // Emit the closed event on any previously opened flyout instance\n if (this.#flyoutInstance) {\n this.#notifyClosed();\n }\n\n this.config = Object.assign(\n {\n defaultWidth: window.innerWidth / 2,\n minWidth: 320,\n maxWidth: window.innerWidth / 2,\n providers: [\n {\n provide: SKY_STACKING_CONTEXT,\n useValue: {\n zIndex: this.zIndex$\n .asObservable()\n .pipe(takeUntil(this.#ngUnsubscribe)),\n },\n },\n ],\n },\n config\n );\n if (config?.defaultWidth && !config?.maxWidth) {\n this.config.maxWidth = config?.defaultWidth;\n }\n\n this.config.showIterator = this.config.showIterator || false;\n this.config.iteratorNextButtonDisabled =\n this.config.iteratorNextButtonDisabled || false;\n this.config.iteratorPreviousButtonDisabled =\n this.config.iteratorPreviousButtonDisabled || false;\n\n this.permalink = this.config.permalink ?? {};\n this.permalinkLabel =\n this.config.permalink && this.config.permalink.label\n ? this.config.permalink.label\n : this.#getString('skyux_flyout_permalink_button');\n\n this.primaryAction = this.config.primaryAction ?? {};\n this.primaryActionLabel =\n this.config.primaryAction && this.config.primaryAction.label\n ? this.config.primaryAction.label\n : this.#getString('skyux_flyout_primary_action_button');\n\n const factory = this.#resolver.resolveComponentFactory(component);\n\n const injector = Injector.create({\n parent: this.#injector,\n providers: this.config.providers,\n });\n\n const componentRef = this.target?.createComponent(\n factory,\n undefined,\n injector\n );\n\n /* safety check */\n /* istanbul ignore if */\n if (!componentRef) {\n throw new Error(\"Flyout's internal component could not be created\");\n }\n\n this.#flyoutInstance = this.#createFlyoutInstance<T>(componentRef.instance);\n\n // This is used to ensure we do not render the flyout until we have attached the component.\n // This allows the aria-labelledby to function correctly.\n this.instanceReady = true;\n this.#changeDetector.markForCheck();\n\n // Open the flyout immediately.\n this.messageStream.next({\n type: SkyFlyoutMessageType.Open,\n });\n\n if (this.config.settingsKey) {\n this.#uiConfigService\n .getConfig(this.config.settingsKey)\n .pipe(take(1))\n .subscribe((value: any) => {\n if (value && value.flyoutWidth) {\n this.flyoutWidth = value.flyoutWidth;\n } else {\n // Bad data, or config is the default config.\n this.flyoutWidth = this.config.defaultWidth;\n }\n this.#checkInitialSize();\n });\n } else {\n this.flyoutWidth = this.config.defaultWidth;\n this.#checkInitialSize();\n }\n\n return this.#flyoutInstance;\n }\n\n public close(): void {\n this.messageStream.next({\n type: SkyFlyoutMessageType.Close,\n });\n }\n\n public invokePrimaryAction(): boolean {\n if (this.primaryAction.callback) {\n this.primaryAction.callback();\n\n if (this.primaryAction.closeAfterInvoking) {\n this.close();\n }\n\n return false;\n }\n /* istanbul ignore next */\n return true;\n }\n\n public getAnimationState(): string {\n return this.instanceReady && this.isOpening\n ? FLYOUT_OPEN_STATE\n : FLYOUT_CLOSED_STATE;\n }\n\n public animationDone(event: AnimationEvent): void {\n if (event.toState === FLYOUT_OPEN_STATE) {\n this.isOpen = true;\n }\n\n if (event.toState === FLYOUT_CLOSED_STATE) {\n this.isOpen = false;\n this.#notifyClosed();\n this.#cleanTemplate();\n }\n }\n\n public onHeaderGrabHandleMouseDown(event: MouseEvent): void {\n this.onResizeHandleMouseDown(event);\n }\n\n public onHeaderGrabHandleKeyDown(event: KeyboardEvent): void {\n this.#handleResizeKeyDown(event);\n }\n\n public onResizeHandleKeyDown(event: KeyboardEvent): void {\n this.#handleResizeKeyDown(event);\n }\n\n public onResizeHandleMouseDown(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.isFullscreen) {\n return;\n }\n\n this.isDragging = true;\n this.#xCoord = event.clientX;\n\n this.#adapter.toggleIframePointerEvents(false);\n\n fromEvent(document, 'mousemove')\n .pipe(\n takeWhile(() => {\n return this.isDragging;\n })\n )\n .subscribe((moveEvent: any) => {\n this.onMouseMove(moveEvent);\n });\n\n fromEvent(document, 'mouseup')\n .pipe(\n takeWhile(() => {\n return this.isDragging;\n })\n )\n .subscribe((mouseUpEvent: any) => {\n this.onHandleRelease(mouseUpEvent);\n });\n }\n\n public onMouseMove(event: MouseEvent): void {\n /* Sanity check */\n /* istanbul ignore if */\n if (!this.isDragging) {\n return;\n }\n\n const offsetX = event.clientX - this.#xCoord;\n let width = this.flyoutWidth;\n\n width -= offsetX;\n\n if (width < this.config.minWidth || width > this.config.maxWidth) {\n return;\n }\n\n if (window.innerWidth - width < this.#windowBufferSize) {\n width = window.innerWidth - this.#windowBufferSize;\n this.#xCoord = this.#windowBufferSize;\n } else {\n this.#xCoord = event.clientX;\n }\n\n this.flyoutWidth = width;\n\n this.#updateBreakpointAndResponsiveClass(this.flyoutWidth);\n\n this.#changeDetector.markForCheck();\n }\n\n public onHandleRelease(event: MouseEvent): void {\n fromEvent(document, 'click')\n .pipe(take(1))\n .subscribe(() => {\n this.isDragging = false;\n this.#adapter.toggleIframePointerEvents(true);\n this.#setUserData();\n });\n }\n\n public onIteratorPreviousButtonClick(): void {\n /* istanbul ignore else */\n if (this.#flyoutInstance) {\n this.#flyoutInstance.iteratorPreviousButtonClick.emit();\n }\n }\n\n public onIteratorNextButtonClick(): void {\n /* istanbul ignore else */\n if (this.#flyoutInstance) {\n this.#flyoutInstance.iteratorNextButtonClick.emit();\n }\n }\n\n #createFlyoutInstance<T>(component: T): SkyFlyoutInstance<T> {\n const instance = new SkyFlyoutInstance<T>(component);\n\n instance.hostController\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n this.messageStream.next(message);\n });\n\n return instance;\n }\n\n #handleIncomingMessages(message: SkyFlyoutMessage): void {\n switch (message.type) {\n case SkyFlyoutMessageType.Open:\n if (!this.isOpen) {\n this.isOpen = false;\n this.isOpening = true;\n }\n this.#initFocusTrap();\n break;\n\n case SkyFlyoutMessageType.Close:\n if (\n (this.#flyoutInstance?.beforeClose as Subject<any>)?.observers\n .length === 0 ||\n message.data?.ignoreBeforeClose\n ) {\n this.isOpen = true;\n this.isOpening = false;\n } else {\n (this.#flyoutInstance?.beforeClose as Subject<any>)?.next(\n new SkyFlyoutBeforeCloseHandler(() => {\n this.isOpen = true;\n this.isOpening = false;\n })\n );\n }\n break;\n\n case SkyFlyoutMessageType.EnableIteratorNextButton:\n this.config.iteratorNextButtonDisabled = false;\n break;\n\n case SkyFlyoutMessageType.EnableIteratorPreviousButton:\n this.config.iteratorPreviousButtonDisabled = false;\n break;\n\n case SkyFlyoutMessageType.DisableIteratorNextButton:\n this.config.iteratorNextButtonDisabled = true;\n break;\n\n case SkyFlyoutMessageType.DisableIteratorPreviousButton:\n this.config.iteratorPreviousButtonDisabled = true;\n break;\n }\n\n this.#changeDetector.markForCheck();\n }\n\n #notifyClosed(): void {\n this.#flyoutInstance?.closed.emit();\n this.#flyoutInstance?.closed.complete();\n }\n\n #cleanTemplate(): void {\n this.target?.clear();\n }\n\n #updateBreakpointAndResponsiveClass(width: number): void {\n this.#flyoutMediaQueryService.setBreakpointForWidth(width);\n\n const newBreakpoint = this.#flyoutMediaQueryService.current;\n\n this.#adapter.setResponsiveClass(this.#elementRef, newBreakpoint);\n }\n\n #setFullscreen(): void {\n if (window.innerWidth - this.#windowBufferSize < this.config.minWidth) {\n this.isFullscreen = true;\n } else {\n this.isFullscreen = false;\n }\n }\n\n #setUserData(): void {\n if (this.config.settingsKey) {\n this.#uiConfigService\n .setConfig(this.config.settingsKey, {\n flyoutWidth: this.flyoutWidth,\n })\n .pipe(take(1))\n .subscribe(\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {},\n (err) => {\n console.warn('Could not save flyout data.');\n console.warn(err);\n }\n );\n }\n }\n\n #checkInitialSize(): void {\n if (this.flyoutWidth < this.config.minWidth) {\n this.flyoutWidth = this.config.minWidth;\n this.#setUserData();\n } else if (this.flyoutWidth > this.config.maxWidth) {\n this.flyoutWidth = this.config.maxWidth;\n this.#setUserData();\n }\n\n // Ensure flyout does not load larger than the window and its buffer\n if (window.innerWidth - this.flyoutWidth < this.#windowBufferSize) {\n this.flyoutWidth = window.innerWidth - this.#windowBufferSize;\n this.#xCoord = this.#windowBufferSize;\n this.#setUserData();\n }\n\n if (\n this.#flyoutMediaQueryService.isWidthWithinBreakpoint(\n window.innerWidth,\n SkyMediaBreakpoints.xs\n )\n ) {\n this.#updateBreakpointAndResponsiveClass(window.innerWidth);\n } else {\n this.#updateBreakpointAndResponsiveClass(this.flyoutWidth);\n }\n\n this.#setFullscreen();\n }\n\n #getString(key: string): string {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.#resourcesService.getStringForLocale({ locale: 'en-US' }, key);\n }\n\n #handleResizeKeyDown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (event.key) {\n const keyPressed = event.key.toLowerCase().replace('arrow', '');\n switch (keyPressed) {\n case 'enter':\n case ' ':\n this.resizeKeyControlActive = !this.resizeKeyControlActive;\n break;\n case 'tab':\n /* istanbul ignore else */\n if (this.resizeKeyControlActive) {\n this.resizeKeyControlActive = false;\n }\n break;\n case 'left':\n if (this.resizeKeyControlActive) {\n /* istanbul ignore else */\n if (this.flyoutWidth < this.config.maxWidth) {\n this.flyoutWidth = Math.min(\n this.flyoutWidth + this.widthStep,\n this.config.maxWidth\n );\n }\n }\n break;\n\n case 'right':\n if (this.resizeKeyControlActive) {\n /* istanbul ignore else */\n if (this.flyoutWidth > this.config.minWidth) {\n this.flyoutWidth = Math.max(\n this.flyoutWidth - this.widthStep,\n this.config.minWidth\n );\n }\n }\n break;\n\n /* istanbul ignore next */\n default:\n break;\n }\n }\n }\n\n /** Executes a function when the zone is stable. */\n #executeOnStable(fn: () => any): void {\n if (this.#ngZone.isStable) {\n fn();\n } else {\n this.#ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n\n #initFocusTrap(): void {\n this.enableTrapFocusAutoCapture = false;\n this.enableTrapFocus = false;\n // Waiting for zone to be stable will avoid ExpressionChangeAfterCheckedError.\n this.#executeOnStable(() => {\n this.enableTrapFocusAutoCapture = true;\n this.enableTrapFocus = true;\n });\n }\n}\n","<div\n class=\"sky-flyout\"\n tabindex=\"-1\"\n [attr.role]=\"config.ariaRole ? config.ariaRole : 'dialog'\"\n [attr.aria-describedby]=\"config.ariaDescribedBy\"\n [attr.aria-label]=\"config.ariaLabel\"\n [attr.aria-labelledby]=\"config.ariaLabelledBy\"\n [attr.aria-modal]=\"\n config.ariaRole === 'dialog' || !config.ariaRole ? true : false\n \"\n [attr.hidden]=\"!instanceReady ? true : undefined\"\n [id]=\"flyoutId\"\n [ngClass]=\"{\n 'sky-flyout-hidden': !isOpen && !isOpening,\n 'sky-flyout-fullscreen': isFullscreen\n }\"\n [style.z-index]=\"zIndex$ | async\"\n [skyThemeClass]=\"{\n 'sky-shadow': 'default',\n 'sky-elevation-8': 'modern'\n }\"\n (@flyoutState.done)=\"animationDone($event)\"\n [@flyoutState]=\"getAnimationState()\"\n [style.width.px]=\"flyoutWidth\"\n #flyoutRef\n [cdkTrapFocus]=\"enableTrapFocus\"\n [cdkTrapFocusAutoCapture]=\"enableTrapFocusAutoCapture\"\n>\n <div\n class=\"sky-flyout-header\"\n [skyThemeClass]=\"{\n 'sky-padding-squish-large': 'default'\n }\"\n [style.z-index]=\"zIndex$ | async\"\n #flyoutHeader\n >\n <div class=\"sky-flyout-header-content\">\n <button\n *skyThemeIf=\"'modern'\"\n class=\"sky-btn sky-btn-icon-borderless sky-margin-inline-sm sky-flyout-header-grab-handle\"\n [attr.aria-label]=\"'skyux_flyout_resize_handle' | skyLibResources\"\n (keydown)=\"onHeaderGrabHandleKeyDown($event)\"\n (mousedown)=\"onHeaderGrabHandleMouseDown($event)\"\n >\n <sky-icon icon=\"tile-drag\" iconType=\"skyux\" size=\"lg\"> </sky-icon>\n </button>\n\n <sky-flyout-iterator\n *ngIf=\"config.showIterator\"\n [nextButtonDisabled]=\"config.iteratorNextButtonDisabled\"\n [previousButtonDisabled]=\"config.iteratorPreviousButtonDisabled\"\n (nextButtonClick)=\"onIteratorNextButtonClick()\"\n (previousButtonClick)=\"onIteratorPreviousButtonClick()\"\n >\n </sky-flyout-iterator>\n </div>\n <div class=\"sky-flyout-header-buttons\">\n <ng-container *ngTemplateOutlet=\"permalinkTemplate\"> </ng-container>\n <ng-container *ngTemplateOutlet=\"primaryActionTemplate\"> </ng-container>\n <button\n class=\"sky-btn sky-flyout-btn-close sky-label-icon-theme-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_flyout_close' | skyLibResources\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"close()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"close\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"close\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n </div>\n </div>\n <div class=\"sky-flyout-content\">\n <div #target></div>\n </div>\n <div\n class=\"sky-flyout-resize-handle\"\n role=\"separator\"\n tabindex=\"0\"\n type=\"range\"\n [attr.aria-controls]=\"flyoutId\"\n [attr.aria-label]=\"'skyux_flyout_resize_handle' | skyLibResources\"\n [attr.aria-valuemax]=\"config.maxWidth\"\n [attr.aria-valuemin]=\"config.minWidth\"\n [attr.aria-valuenow]=\"flyoutWidth\"\n (keydown)=\"onResizeHandleKeyDown($event)\"\n (mousedown)=\"onResizeHandleMouseDown($event)\"\n ></div>\n</div>\n\n<ng-template #permalinkTemplate>\n <ng-template [ngIf]=\"permalink\">\n <ng-template [ngIf]=\"permalink.url\">\n <a\n class=\"sky-btn sky-flyout-btn-permalink sky-margin-inline-default\"\n [skyHref]=\"permalink.url\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-borderless': 'modern'\n }\"\n (click)=\"close()\"\n >\n {{ permalinkLabel }}\n </a>\n </ng-template>\n <ng-template [ngIf]=\"permalink.route\">\n <a\n class=\"sky-btn sky-flyout-btn-permalink sky-margin-inline-default\"\n [routerLink]=\"permalink.route.commands\"\n [fragment]=\"permalink.route.extras?.fragment\"\n [skyThemeClass]=\"{\n 'sky-btn-default': 'default',\n 'sky-btn-borderless': 'modern'\n }\"\n [queryParams]=\"permalink.route.extras?.queryParams\"\n [queryParamsHandling]=\"permalink.route.extras?.queryParamsHandling\"\n [state]=\"permalink.route.extras?.state\"\n (click)=\"close()\"\n >\n {{ permalinkLabel }}\n </a>\n </ng-template>\n </ng-template>\n</ng-template>\n\n<ng-template #primaryActionTemplate>\n <ng-template [ngIf]=\"primaryAction && primaryAction.callback\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-flyout-btn-primary-action sky-margin-inline-default\"\n (click)=\"invokePrimaryAction()\"\n >\n {{ primaryActionLabel }}\n </button>\n </ng-template>\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyHrefModule } from '@skyux/router';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyFlyoutResourcesModule } from '../shared/sky-flyout-resources.module';\n\nimport { SkyFlyoutIteratorComponent } from './flyout-iterator.component';\nimport { SkyFlyoutComponent } from './flyout.component';\n\n@NgModule({\n declarations: [SkyFlyoutComponent, SkyFlyoutIteratorComponent],\n imports: [\n A11yModule,\n CommonModule,\n FormsModule,\n RouterModule,\n SkyI18nModule,\n SkyIconModule,\n SkyFlyoutResourcesModule,\n SkyThemeModule,\n SkyHrefModule,\n ],\n exports: [SkyFlyoutComponent],\n})\nexport class SkyFlyoutModule {}\n","import {\n ComponentRef,\n Injectable,\n NgZone,\n OnDestroy,\n Type,\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport {\n SkyAppWindowRef,\n SkyCoreAdapterService,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { Subject, fromEvent } from 'rxjs';\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyFlyoutInstance } from './flyout-instance';\nimport { SkyFlyoutComponent } from './flyout.component';\nimport { SkyFlyoutCloseArgs } from './types/flyout-close-args';\nimport { SkyFlyoutConfig } from './types/flyout-config';\nimport { SkyFlyoutMessage } from './types/flyout-message';\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\n\n/**\n * Launches flyouts and provides a common look and feel.\n * This service dynamically generates the flyout component and appends it directly to the\n * document's `body` element. The `SkyFlyoutInstance` class watches for and triggers flyout events.\n */\n@Injectable({\n providedIn: 'any',\n})\nexport class SkyFlyoutService implements OnDestroy {\n #host: ComponentRef<SkyFlyoutComponent> | undefined;\n #removeAfterClosed = false;\n #isOpening = false;\n #ngUnsubscribe = new Subject<boolean>();\n\n #coreAdapter: SkyCoreAdapterService;\n #windowRef: SkyAppWindowRef;\n #dynamicComponentService: SkyDynamicComponentService;\n #router: Router;\n #ngZone: NgZone;\n\n constructor(\n coreAdapter: SkyCoreAdapterService,\n windowRef: SkyAppWindowRef,\n dynamicComponentService: SkyDynamicComponentService,\n router: Router,\n ngZone: NgZone\n ) {\n this.#coreAdapter = coreAdapter;\n this.#windowRef = windowRef;\n this.#dynamicComponentService = dynamicComponentService;\n this.#router = router;\n this.#ngZone = ngZone;\n }\n\n public ngOnDestroy(): void {\n this.#removeListeners();\n if (this.#host) {\n this.#removeHostComponent();\n }\n }\n\n /**\n * Closes the flyout. This method also removes the flyout's HTML elements from the DOM.\n * @param args Arguments used when closing the flyout.\n */\n public close(args?: SkyFlyoutCloseArgs): void {\n if (this.#host && !this.#isOpening) {\n this.#host.instance.messageStream.next({\n type: SkyFlyoutMessageType.Close,\n data: {\n ignoreBeforeClose: args ? args.ignoreBeforeClose : false,\n },\n });\n }\n }\n\n /**\n * Opens a flyout and displays the specified component.\n * @param component Specifies the component to render.\n * @param config Specifies the flyout configuration passed to the specified component's constructor.\n */\n public open<T>(\n component: Type<T>,\n config?: SkyFlyoutConfig\n ): SkyFlyoutInstance<T> {\n // isOpening flag will prevent close() from firing when open() is also fired.\n this.#isOpening = true;\n this.#windowRef.nativeWindow.setTimeout(() => {\n this.#isOpening = false;\n });\n\n if (!this.#host) {\n this.#host = this.#createHostComponent();\n\n this.#router.events\n .pipe(takeWhile(() => this.#host !== undefined))\n .subscribe((event) => {\n if (event instanceof NavigationStart) {\n this.close();\n\n // Sanity check - if the host still exists after animations should have completed - remove host\n this.#ngZone.onStable.pipe(take(1)).subscribe(() => {\n if (this.#host) {\n this.#removeHostComponent();\n }\n });\n }\n });\n }\n\n const flyout = this.#host.instance.attach(component, config);\n\n this.#addListeners(flyout);\n\n return flyout;\n }\n\n #createHostComponent(): ComponentRef<SkyFlyoutComponent> {\n this.#host =\n this.#dynamicComponentService.createComponent(SkyFlyoutComponent);\n return this.#host;\n }\n\n #removeHostComponent(): void {\n if (this.#host) {\n this.#dynamicComponentService.removeComponent(this.#host);\n this.#host = undefined;\n }\n }\n\n #addListeners<T>(flyout: SkyFlyoutInstance<T>): void {\n /* istanbul ignore else */\n if (this.#host) {\n const flyoutInstance = this.#host.instance;\n\n let doClose = false;\n\n /**\n * Handles when to close a flyout.\n * Note: We're using `mouseup` in order to capture the parent of certain targets that will be\n * deleted immediately after being clicked. If we use `click`, the event is fired after the\n * element is removed from the DOM making it impossible to check the parent's z-index\n * relative to the flyout's container.\n */\n fromEvent(document, 'mouseup')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event: Event) => {\n doClose = false;\n\n if (this.#host?.instance.isDragging) {\n return;\n }\n\n if (flyoutInstance.flyoutRef?.nativeElement.contains(event.target)) {\n return;\n }\n\n const isAbove =\n event.target === document || !event.target\n ? false\n : this.#coreAdapter.isTargetAboveElement(\n event.target,\n flyoutInstance.flyoutRef?.nativeElement\n );\n\n /* istanbul ignore else */\n if (!isAbove) {\n doClose = true;\n }\n });\n\n /**\n * Check if we should close the flyout specifically on a `click` event so that we can keep\n * it open when consumers fire another `click` event on a trigger button. Since the consumer\n * will likely use a `click` event to open the flyout, we want to wait for that event to fire\n * before determining if the flyout should be closed.\n */\n fromEvent(document, 'click')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (doClose) {\n this.close();\n }\n });\n\n this.#removeAfterClosed = false;\n flyoutInstance.messageStream\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyFlyoutMessage) => {\n if (message.type === SkyFlyoutMessageType.Close) {\n this.#removeAfterClosed = true;\n this.#isOpening = false;\n }\n });\n\n flyout.closed.pipe(take(1)).subscribe(() => {\n this.#removeListeners();\n if (this.#removeAfterClosed) {\n this.#removeHostComponent();\n }\n });\n }\n }\n\n #removeListeners(): void {\n this.#ngUnsubscribe.next(true);\n this.#ngUnsubscribe.unsubscribe();\n this.#ngUnsubscribe = new Subject<boolean>();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","i1.SkyFlyoutAdapterService","i2","i3.SkyFlyoutMediaQueryService","i4","i7","i8","i9","i11.SkyFlyoutIteratorComponent"],"mappings":"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"}
|