@skyux/flyout 5.5.0-alpha.0 → 5.6.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/bundles/skyux-flyout.umd.js +97 -96
- package/documentation.json +39 -39
- package/esm2015/lib/modules/flyout/flyout-adapter.service.js.map +1 -1
- package/esm2015/lib/modules/flyout/flyout-instance.js.map +1 -1
- package/esm2015/lib/modules/flyout/flyout-iterator.component.js.map +1 -1
- package/esm2015/lib/modules/flyout/flyout-media-query.service.js.map +1 -1
- package/esm2015/lib/modules/flyout/flyout.component.js +6 -5
- package/esm2015/lib/modules/flyout/flyout.component.js.map +1 -1
- package/esm2015/lib/modules/flyout/flyout.module.js +3 -3
- package/esm2015/lib/modules/flyout/flyout.module.js.map +1 -1
- package/esm2015/lib/modules/flyout/flyout.service.js +1 -1
- package/esm2015/lib/modules/flyout/flyout.service.js.map +1 -1
- package/esm2015/lib/modules/flyout/types/flyout-config.js.map +1 -1
- package/esm2015/lib/modules/shared/sky-flyout-resources.module.js +1 -1
- package/esm2015/lib/modules/shared/sky-flyout-resources.module.js.map +1 -1
- package/fesm2015/skyux-flyout.js +67 -66
- package/fesm2015/skyux-flyout.js.map +1 -1
- package/lib/modules/flyout/flyout-iterator.component.d.ts +1 -1
- package/lib/modules/flyout/flyout.component.d.ts +2 -2
- package/lib/modules/flyout/flyout.service.d.ts +1 -1
- package/lib/modules/flyout/types/flyout-config.d.ts +1 -1
- package/package.json +20 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flyout.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.ts","../../../../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ElementRef,\n HostListener,\n Injector,\n OnDestroy,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n NgZone,\n} from '@angular/core';\n\nimport {\n animate,\n AnimationEvent,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nimport { fromEvent, Subject } from 'rxjs';\n\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\n\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryService,\n SkyUIConfigService,\n} from '@skyux/core';\n\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { SkyFlyoutAdapterService } from './flyout-adapter.service';\n\nimport { SkyFlyoutInstance } from './flyout-instance';\n\nimport { SkyFlyoutMediaQueryService } from './flyout-media-query.service';\n\nimport { SkyFlyoutAction } from './types/flyout-action';\n\nimport { SkyFlyoutConfig } from './types/flyout-config';\n\nimport { SkyFlyoutMessage } from './types/flyout-message';\n\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\n\nimport { SkyFlyoutPermalink } from './types/flyout-permalink';\nimport { SkyFlyoutBeforeCloseHandler } from './types/flyout-before-close-handler';\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: SkyFlyoutConfig;\n public enableTrapFocus: boolean;\n public enableTrapFocusAutoCapture: boolean;\n public flyoutId: string = `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 private xCoord = 0;\n private windowBufferSize = 20;\n\n public get messageStream(): Subject<SkyFlyoutMessage> {\n return this._messageStream;\n }\n\n public get permalink(): SkyFlyoutPermalink {\n const permalink = this.config.permalink;\n if (permalink) {\n return permalink;\n }\n\n return {};\n }\n\n public get permalinkLabel(): string {\n if (this.permalink.label) {\n return this.permalink.label;\n }\n\n return this.getString('skyux_flyout_permalink_button');\n }\n\n public get primaryAction(): SkyFlyoutAction {\n let primaryAction = this.config.primaryAction;\n if (primaryAction) {\n return primaryAction;\n }\n\n return {};\n }\n\n public get primaryActionLabel(): string {\n if (this.config.primaryAction && this.config.primaryAction.label) {\n return this.config.primaryAction.label;\n }\n\n return this.getString('skyux_flyout_primary_action_button');\n }\n\n public themeName: string;\n\n /**\n * @internal\n */\n public widthStep: number = 10;\n\n /**\n * @internal\n */\n @ViewChild('flyoutRef', {\n read: ElementRef,\n static: true,\n })\n public flyoutRef: ElementRef;\n\n @ViewChild('target', {\n read: ViewContainerRef,\n static: true,\n })\n private target: ViewContainerRef;\n\n @ViewChild('flyoutCloseButton', {\n read: ElementRef,\n static: true,\n })\n private flyoutCloseButton: ElementRef;\n\n @ViewChild('flyoutContent', {\n read: ElementRef,\n static: true,\n })\n private flyoutContent: ElementRef;\n\n @ViewChild('flyoutHeader', {\n read: ElementRef,\n static: true,\n })\n private flyoutHeader: ElementRef;\n\n private flyoutInstance: SkyFlyoutInstance<any>;\n\n private ngUnsubscribe = new Subject();\n\n private _messageStream = new Subject<SkyFlyoutMessage>();\n\n constructor(\n private adapter: SkyFlyoutAdapterService,\n private changeDetector: ChangeDetectorRef,\n private injector: Injector,\n private resolver: ComponentFactoryResolver,\n private resourcesService: SkyLibResourcesService,\n private flyoutMediaQueryService: SkyFlyoutMediaQueryService,\n private elementRef: ElementRef,\n private uiConfigService: SkyUIConfigService,\n private readonly _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 this.adapter.adjustHeaderForHelp(this.flyoutHeader);\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.isWidthWithinBreakpiont(\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({ providers: [] }, config);\n this.config.defaultWidth =\n this.config.defaultWidth || window.innerWidth / 2;\n this.config.minWidth = this.config.minWidth || 320;\n this.config.maxWidth = this.config.maxWidth || this.config.defaultWidth;\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 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 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 this.primaryAction.callback();\n\n if (this.primaryAction.closeAfterInvoking) {\n this.close();\n }\n\n return false;\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 this.flyoutInstance.iteratorPreviousButtonClick.emit();\n }\n\n public onIteratorNextButtonClick(): void {\n this.flyoutInstance.iteratorNextButtonClick.emit();\n }\n\n private createFlyoutInstance<T>(component: T): SkyFlyoutInstance<T> {\n const instance = new SkyFlyoutInstance<T>();\n\n instance.componentInstance = component;\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 private handleIncomingMessages(message: SkyFlyoutMessage): void {\n /* tslint:disable-next-line:switch-default */\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 (<Subject<any>>this.flyoutInstance.beforeClose).observers.length ===\n 0 ||\n message.data?.ignoreBeforeClose\n ) {\n this.isOpen = true;\n this.isOpening = false;\n } else {\n (<Subject<any>>this.flyoutInstance.beforeClose).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 private notifyClosed(): void {\n this.flyoutInstance.closed.emit();\n this.flyoutInstance.closed.complete();\n }\n\n private cleanTemplate(): void {\n this.target.clear();\n }\n\n private updateBreakpointAndResponsiveClass(width: number): void {\n this.flyoutMediaQueryService.setBreakpointForWidth(width);\n\n const newBreakpiont = this.flyoutMediaQueryService.current;\n\n this.adapter.setResponsiveClass(this.elementRef, newBreakpiont);\n }\n\n private 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 private 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 () => {},\n (err) => {\n console.warn('Could not save flyout data.');\n console.warn(err);\n }\n );\n }\n }\n\n private 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.isWidthWithinBreakpiont(\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 private 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 private 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 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 private _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 private 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 [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 #flyoutHeader\n >\n <div class=\"sky-flyout-header-content\">\n <button\n *skyThemeIf=\"'modern'\"\n class=\"\n sky-btn\n sky-btn-icon-borderless\n sky-margin-inline-sm\n sky-flyout-header-grab-handle\n \"\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 #flyoutCloseButton\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\" #flyoutContent>\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=\"\n sky-btn\n sky-btn-default\n sky-flyout-btn-primary-action\n sky-margin-inline-default\n \"\n (click)=\"invokePrimaryAction()\"\n >\n {{ primaryActionLabel }}\n </button>\n </ng-template>\n</ng-template>\n"]}
|
|
1
|
+
{"version":3,"file":"flyout.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.ts","../../../../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.component.html"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EACP,KAAK,EACL,KAAK,EACL,UAAU,EACV,OAAO,GACR,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,EACT,wBAAwB,EACxB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,MAAM,EAIN,SAAS,EACT,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAGlF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;;;;;;;;;;;;;AAGnE,MAAM,iBAAiB,GAAG,YAAY,CAAC;AACvC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAE3C,IAAI,MAAM,GAAG,CAAC,CAAC;AAEf;;GAEG;AAwBH,MAAM,OAAO,kBAAkB;IAsG7B,YACU,OAAgC,EAChC,cAAiC,EACjC,QAAkB,EAClB,QAAkC,EAClC,gBAAwC,EACxC,uBAAmD,EACnD,UAAsB,EACtB,eAAmC,EAC1B,OAAe;QARxB,YAAO,GAAP,OAAO,CAAyB;QAChC,mBAAc,GAAd,cAAc,CAAmB;QACjC,aAAQ,GAAR,QAAQ,CAAU;QAClB,aAAQ,GAAR,QAAQ,CAA0B;QAClC,qBAAgB,GAAhB,gBAAgB,CAAwB;QACxC,4BAAuB,GAAvB,uBAAuB,CAA4B;QACnD,eAAU,GAAV,UAAU,CAAY;QACtB,oBAAe,GAAf,eAAe,CAAoB;QAC1B,YAAO,GAAP,OAAO,CAAQ;QA3G3B,aAAQ,GAAG,cAAc,EAAE,MAAM,EAAE,CAAC;QACpC,gBAAW,GAAG,mBAAmB,CAAC;QAClC,WAAM,GAAG,KAAK,CAAC;QACf,cAAS,GAAG,KAAK,CAAC;QAElB,gBAAW,GAAG,CAAC,CAAC;QAChB,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAG,KAAK,CAAC;QACnB,iBAAY,GAAG,KAAK,CAAC;QACrB,2BAAsB,GAAG,KAAK,CAAC;QAE9B,WAAM,GAAG,CAAC,CAAC;QACX,qBAAgB,GAAG,EAAE,CAAC;QA0C9B;;WAEG;QACI,cAAS,GAAG,EAAE,CAAC;QAqCd,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QAE9B,mBAAc,GAAG,IAAI,OAAO,EAAoB,CAAC;QAavD,gDAAgD;QAChD,IAAI,CAAC,aAAa;aACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,CAAC,CAAC,OAAyB,EAAE,EAAE;YACvC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC;IArGD,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAW,SAAS;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QACxC,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAW,cAAc;QACvB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACxB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC7B;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACzD,CAAC;IAED,IAAW,aAAa;QACtB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChD,IAAI,aAAa,EAAE;YACjB,OAAO,aAAa,CAAC;SACtB;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAW,kBAAkB;QAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE;YAChE,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAC9D,CAAC;IAmEM,QAAQ;QACb,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAGM,cAAc,CAAC,KAAU;QAC9B,IACE,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAClD,KAAK,CAAC,MAAM,CAAC,UAAU,EACvB,mBAAmB,CAAC,EAAE,CACvB,EACD;YACA,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SAClE;aAAM;YACL,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE;YACtE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACnE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;IAEM,MAAM,CACX,SAAkB,EAClB,MAAuB;QAEvB,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,iEAAiE;QACjE,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,YAAY;YACtB,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAExE,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,0BAA0B;YACpC,IAAI,CAAC,MAAM,CAAC,0BAA0B,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,8BAA8B;YACxC,IAAI,CAAC,MAAM,CAAC,8BAA8B,IAAI,KAAK,CAAC;QAEtD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAEjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,IAAI,CAAC,QAAQ;YACrB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;SACjC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAC9C,OAAO,EACP,SAAS,EACT,QAAQ,CACT,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;QAE1E,2FAA2F;QAC3F,yDAAyD;QACzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QAEnC,+BAA+B;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,oBAAoB,CAAC,IAAI;SAChC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAC3B,IAAI,CAAC,eAAe;iBACjB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;iBAClC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACb,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;gBACxB,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE;oBAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;iBACtC;qBAAM;oBACL,6CAA6C;oBAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;iBAC7C;gBACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;SACN;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QAED,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,oBAAoB,CAAC,KAAK;SACjC,CAAC,CAAC;IACL,CAAC;IAEM,mBAAmB;QACxB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS;YACzC,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,mBAAmB,CAAC;IAC1B,CAAC;IAEM,aAAa,CAAC,KAAqB;QACxC,IAAI,KAAK,CAAC,OAAO,KAAK,iBAAiB,EAAE;YACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QAED,IAAI,KAAK,CAAC,OAAO,KAAK,mBAAmB,EAAE;YACzC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IACH,CAAC;IAEM,2BAA2B,CAAC,KAAiB;QAClD,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAEM,yBAAyB,CAAC,KAAoB;QACnD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAEM,qBAAqB,CAAC,KAAoB;QAC/C,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAEM,uBAAuB,CAAC,KAAiB;QAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO;SACR;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;QAE5B,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAE9C,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC;aAC7B,IAAI,CACH,SAAS,CAAC,GAAG,EAAE;YACb,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC,CAAC,CACH;aACA,SAAS,CAAC,CAAC,SAAc,EAAE,EAAE;YAC5B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEL,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;aAC3B,IAAI,CACH,SAAS,CAAC,GAAG,EAAE;YACb,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC,CAAC,CACH;aACA,SAAS,CAAC,CAAC,YAAiB,EAAE,EAAE;YAC/B,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,WAAW,CAAC,KAAiB;QAClC,kBAAkB;QAClB,wBAAwB;QACxB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACR;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5C,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAE7B,KAAK,IAAI,OAAO,CAAC;QAEjB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAChE,OAAO;SACR;QAED,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE;YACrD,KAAK,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACrC;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;SAC7B;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE1D,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAEM,eAAe,CAAC,KAAiB;QACtC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;aACzB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,6BAA6B;QAClC,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;IACzD,CAAC;IAEM,yBAAyB;QAC9B,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IAEO,oBAAoB,CAAI,SAAY;QAC1C,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAK,CAAC;QAE5C,QAAQ,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACvC,QAAQ,CAAC,cAAc;aACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,CAAC,CAAC,OAAyB,EAAE,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEL,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,sBAAsB,CAAC,OAAyB;;QACtD,6CAA6C;QAC7C,QAAQ,OAAO,CAAC,IAAI,EAAE;YACpB,KAAK,oBAAoB,CAAC,IAAI;gBAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;oBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;iBACvB;gBACD,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM;YAER,KAAK,oBAAoB,CAAC,KAAK;gBAC7B,IACG,IAAI,CAAC,cAAc,CAAC,WAA4B,CAAC,SAAS,CAAC,MAAM;oBAChE,CAAC;qBACH,MAAA,OAAO,CAAC,IAAI,0CAAE,iBAAiB,CAAA,EAC/B;oBACA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;qBAAM;oBACJ,IAAI,CAAC,cAAc,CAAC,WAA4B,CAAC,IAAI,CACpD,IAAI,2BAA2B,CAAC,GAAG,EAAE;wBACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;wBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACzB,CAAC,CAAC,CACH,CAAC;iBACH;gBACD,MAAM;YAER,KAAK,oBAAoB,CAAC,wBAAwB;gBAChD,IAAI,CAAC,MAAM,CAAC,0BAA0B,GAAG,KAAK,CAAC;gBAC/C,MAAM;YAER,KAAK,oBAAoB,CAAC,4BAA4B;gBACpD,IAAI,CAAC,MAAM,CAAC,8BAA8B,GAAG,KAAK,CAAC;gBACnD,MAAM;YAER,KAAK,oBAAoB,CAAC,yBAAyB;gBACjD,IAAI,CAAC,MAAM,CAAC,0BAA0B,GAAG,IAAI,CAAC;gBAC9C,MAAM;YAER,KAAK,oBAAoB,CAAC,6BAA6B;gBACrD,IAAI,CAAC,MAAM,CAAC,8BAA8B,GAAG,IAAI,CAAC;gBAClD,MAAM;SACT;QAED,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IACxC,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAEO,kCAAkC,CAAC,KAAa;QACtD,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAE1D,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;QAE3D,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAEO,aAAa;QACnB,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACpE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC1B;aAAM;YACL,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B;IACH,CAAC;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAC3B,IAAI,CAAC,eAAe;iBACjB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;gBAClC,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACb,SAAS,CACR,GAAG,EAAE,GAAE,CAAC,EACR,CAAC,GAAG,EAAE,EAAE;gBACN,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC,CACF,CAAC;SACL;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;aAAM,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QAED,oEAAoE;QACpE,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE;YAChE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC7D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QAED,IACE,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAClD,MAAM,CAAC,UAAU,EACjB,mBAAmB,CAAC,EAAE,CACvB,EACD;YACA,IAAI,CAAC,kCAAkC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SAC5D;aAAM;YACL,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,SAAS,CAAC,GAAW;QAC3B,6EAA6E;QAC7E,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5E,CAAC;IAEO,mBAAmB,CAAC,KAAoB;QAC9C,0BAA0B;QAC1B,IAAI,KAAK,CAAC,GAAG,EAAE;YACb,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAChE,QAAQ,UAAU,EAAE;gBAClB,KAAK,OAAO,CAAC;gBACb,KAAK,GAAG;oBACN,IAAI,CAAC,sBAAsB,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC;oBAC3D,MAAM;gBACR,KAAK,KAAK;oBACR,0BAA0B;oBAC1B,IAAI,IAAI,CAAC,sBAAsB,EAAE;wBAC/B,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;qBACrC;oBACD,MAAM;gBACR,KAAK,MAAM;oBACT,IAAI,IAAI,CAAC,sBAAsB,EAAE;wBAC/B,0BAA0B;wBAC1B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;4BAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,EACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CACrB,CAAC;yBACH;qBACF;oBACD,MAAM;gBAER,KAAK,OAAO;oBACV,IAAI,IAAI,CAAC,sBAAsB,EAAE;wBAC/B,0BAA0B;wBAC1B,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;4BAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,EACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CACrB,CAAC;yBACH;qBACF;oBACD,MAAM;gBAER,0BAA0B;gBAC1B;oBACE,MAAM;aACT;SACF;IACH,CAAC;IAED,mDAAmD;IAC3C,gBAAgB,CAAC,EAAa;QACpC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACzB,EAAE,EAAE,CAAC;SACN;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;SACnD;IACH,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,8EAA8E;QAC9E,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;YACzB,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;;gHAviBU,kBAAkB;oGAAlB,kBAAkB,yGAnBlB;QACT,uBAAuB;QACvB,0BAA0B;QAC1B,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,0BAA0B,EAAE;KAC3E,6GAkFO,UAAU,yGAMV,gBAAgB,+HAMhB,UAAU,uHAMV,UAAU,qHAMV,UAAU,2CCrKpB,u4JAyJA,wqHD7Fc;QACV,OAAO,CAAC,aAAa,EAAE;YACrB,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YACzD,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACpE,UAAU,CAAC,WAAW,EAAE;gBACtB,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC;aACb,CAAC;YACF,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;SAChD,CAAC;KACH;4FAIU,kBAAkB;kBAvB9B,SAAS;mBAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,WAAW,EAAE,yBAAyB;oBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;oBACtC,SAAS,EAAE;wBACT,uBAAuB;wBACvB,0BAA0B;wBAC1B,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,0BAA0B,EAAE;qBAC3E;oBACD,UAAU,EAAE;wBACV,OAAO,CAAC,aAAa,EAAE;4BACrB,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;4BACzD,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;4BACpE,UAAU,CAAC,WAAW,EAAE;gCACtB,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gCACxC,OAAO,CAAC,GAAG,CAAC;6BACb,CAAC;4BACF,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;yBAChD,CAAC;qBACH;oBACD,yDAAyD;oBACzD,eAAe,EAAE,uBAAuB,CAAC,OAAO;iBACjD;yWAuEQ,SAAS;sBAJf,SAAS;uBAAC,WAAW,EAAE;wBACtB,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,IAAI;qBACb;gBAOO,MAAM;sBAJb,SAAS;uBAAC,QAAQ,EAAE;wBACnB,IAAI,EAAE,gBAAgB;wBACtB,MAAM,EAAE,IAAI;qBACb;gBAOO,iBAAiB;sBAJxB,SAAS;uBAAC,mBAAmB,EAAE;wBAC9B,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,IAAI;qBACb;gBAOO,aAAa;sBAJpB,SAAS;uBAAC,eAAe,EAAE;wBAC1B,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,IAAI;qBACb;gBAOO,YAAY;sBAJnB,SAAS;uBAAC,cAAc,EAAE;wBACzB,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,IAAI;qBACb;gBAsCM,cAAc;sBADpB,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC","sourcesContent":["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 SkyMediaBreakpoints,\n SkyMediaQueryService,\n SkyUIConfigService,\n} from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { 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 { 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: SkyFlyoutConfig;\n public enableTrapFocus: boolean;\n public enableTrapFocusAutoCapture: boolean;\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 private xCoord = 0;\n private windowBufferSize = 20;\n\n public get messageStream(): Subject<SkyFlyoutMessage> {\n return this._messageStream;\n }\n\n public get permalink(): SkyFlyoutPermalink {\n const permalink = this.config.permalink;\n if (permalink) {\n return permalink;\n }\n\n return {};\n }\n\n public get permalinkLabel(): string {\n if (this.permalink.label) {\n return this.permalink.label;\n }\n\n return this.getString('skyux_flyout_permalink_button');\n }\n\n public get primaryAction(): SkyFlyoutAction {\n const primaryAction = this.config.primaryAction;\n if (primaryAction) {\n return primaryAction;\n }\n\n return {};\n }\n\n public get primaryActionLabel(): string {\n if (this.config.primaryAction && this.config.primaryAction.label) {\n return this.config.primaryAction.label;\n }\n\n return this.getString('skyux_flyout_primary_action_button');\n }\n\n public themeName: string;\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;\n\n @ViewChild('target', {\n read: ViewContainerRef,\n static: true,\n })\n private target: ViewContainerRef;\n\n @ViewChild('flyoutCloseButton', {\n read: ElementRef,\n static: true,\n })\n private flyoutCloseButton: ElementRef;\n\n @ViewChild('flyoutContent', {\n read: ElementRef,\n static: true,\n })\n private flyoutContent: ElementRef;\n\n @ViewChild('flyoutHeader', {\n read: ElementRef,\n static: true,\n })\n private flyoutHeader: ElementRef;\n\n private flyoutInstance: SkyFlyoutInstance<any>;\n\n private ngUnsubscribe = new Subject();\n\n private _messageStream = new Subject<SkyFlyoutMessage>();\n\n constructor(\n private adapter: SkyFlyoutAdapterService,\n private changeDetector: ChangeDetectorRef,\n private injector: Injector,\n private resolver: ComponentFactoryResolver,\n private resourcesService: SkyLibResourcesService,\n private flyoutMediaQueryService: SkyFlyoutMediaQueryService,\n private elementRef: ElementRef,\n private uiConfigService: SkyUIConfigService,\n private readonly _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 this.adapter.adjustHeaderForHelp(this.flyoutHeader);\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.isWidthWithinBreakpiont(\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({ providers: [] }, config);\n this.config.defaultWidth =\n this.config.defaultWidth || window.innerWidth / 2;\n this.config.minWidth = this.config.minWidth || 320;\n this.config.maxWidth = this.config.maxWidth || this.config.defaultWidth;\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 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 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 this.primaryAction.callback();\n\n if (this.primaryAction.closeAfterInvoking) {\n this.close();\n }\n\n return false;\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 this.flyoutInstance.iteratorPreviousButtonClick.emit();\n }\n\n public onIteratorNextButtonClick(): void {\n this.flyoutInstance.iteratorNextButtonClick.emit();\n }\n\n private createFlyoutInstance<T>(component: T): SkyFlyoutInstance<T> {\n const instance = new SkyFlyoutInstance<T>();\n\n instance.componentInstance = component;\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 private handleIncomingMessages(message: SkyFlyoutMessage): void {\n /* tslint:disable-next-line:switch-default */\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.length ===\n 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 private notifyClosed(): void {\n this.flyoutInstance.closed.emit();\n this.flyoutInstance.closed.complete();\n }\n\n private cleanTemplate(): void {\n this.target.clear();\n }\n\n private updateBreakpointAndResponsiveClass(width: number): void {\n this.flyoutMediaQueryService.setBreakpointForWidth(width);\n\n const newBreakpiont = this.flyoutMediaQueryService.current;\n\n this.adapter.setResponsiveClass(this.elementRef, newBreakpiont);\n }\n\n private 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 private 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 () => {},\n (err) => {\n console.warn('Could not save flyout data.');\n console.warn(err);\n }\n );\n }\n }\n\n private 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.isWidthWithinBreakpiont(\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 private 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 private 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 private _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 private 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 [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 #flyoutHeader\n >\n <div class=\"sky-flyout-header-content\">\n <button\n *skyThemeIf=\"'modern'\"\n class=\"\n sky-btn\n sky-btn-icon-borderless\n sky-margin-inline-sm\n sky-flyout-header-grab-handle\n \"\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 #flyoutCloseButton\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\" #flyoutContent>\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=\"\n sky-btn\n sky-btn-default\n sky-flyout-btn-primary-action\n sky-margin-inline-default\n \"\n (click)=\"invokePrimaryAction()\"\n >\n {{ primaryActionLabel }}\n </button>\n </ng-template>\n</ng-template>\n"]}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
5
|
import { RouterModule } from '@angular/router';
|
|
6
|
-
import { SkyIconModule } from '@skyux/indicators';
|
|
7
6
|
import { SkyI18nModule } from '@skyux/i18n';
|
|
7
|
+
import { SkyIconModule } from '@skyux/indicators';
|
|
8
8
|
import { SkyHrefModule } from '@skyux/router';
|
|
9
9
|
import { SkyThemeModule } from '@skyux/theme';
|
|
10
10
|
import { SkyFlyoutResourcesModule } from '../shared/sky-flyout-resources.module';
|
|
11
|
-
import { SkyFlyoutComponent } from './flyout.component';
|
|
12
11
|
import { SkyFlyoutIteratorComponent } from './flyout-iterator.component';
|
|
12
|
+
import { SkyFlyoutComponent } from './flyout.component';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
export class SkyFlyoutModule {
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flyout.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"flyout.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;;AAkBxD,MAAM,OAAO,eAAe;;6GAAf,eAAe;8GAAf,eAAe,iBAfX,kBAAkB,EAAE,0BAA0B,aAE3D,UAAU;QACV,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,aAAa;QACb,aAAa;QACb,wBAAwB;QACxB,cAAc;QACd,aAAa,aAEL,kBAAkB;8GAGjB,eAAe,YAdjB;YACP,UAAU;YACV,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,aAAa;YACb,aAAa;YACb,wBAAwB;YACxB,cAAc;YACd,aAAa;SACd;4FAIU,eAAe;kBAhB3B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;oBAC9D,OAAO,EAAE;wBACP,UAAU;wBACV,YAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,aAAa;wBACb,aAAa;wBACb,wBAAwB;wBACxB,cAAc;wBACd,aAAa;qBACd;oBACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,eAAe,EAAE,CAAC,kBAAkB,CAAC;iBACtC","sourcesContent":["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 entryComponents: [SkyFlyoutComponent],\n})\nexport class SkyFlyoutModule {}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApplicationRef, Injectable, NgZone, } from '@angular/core';
|
|
2
2
|
import { NavigationStart, Router } from '@angular/router';
|
|
3
3
|
import { SkyAppWindowRef, SkyCoreAdapterService, SkyDynamicComponentService, } from '@skyux/core';
|
|
4
|
-
import {
|
|
4
|
+
import { Subject, fromEvent } from 'rxjs';
|
|
5
5
|
import { take, takeUntil, takeWhile } from 'rxjs/operators';
|
|
6
6
|
import { SkyFlyoutComponent } from './flyout.component';
|
|
7
7
|
import { SkyFlyoutMessageType } from './types/flyout-message-type';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flyout.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ApplicationRef,\n ComponentRef,\n Injectable,\n NgZone,\n OnDestroy,\n Type,\n} from '@angular/core';\n\nimport { NavigationStart, Router } from '@angular/router';\n\nimport {\n SkyAppWindowRef,\n SkyCoreAdapterService,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { fromEvent, Subject } from 'rxjs';\n\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyFlyoutComponent } from './flyout.component';\n\nimport { SkyFlyoutInstance } from './flyout-instance';\n\nimport { SkyFlyoutConfig } from './types/flyout-config';\n\nimport { SkyFlyoutMessage } from './types/flyout-message';\n\nimport { SkyFlyoutMessageType } from './types/flyout-message-type';\nimport { SkyFlyoutCloseArgs } from './types/flyout-close-args';\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 private host: ComponentRef<SkyFlyoutComponent>;\n private removeAfterClosed = false;\n private isOpening: boolean = false;\n private ngUnsubscribe = new Subject<boolean>();\n\n constructor(\n private coreAdapter: SkyCoreAdapterService,\n private windowRef: SkyAppWindowRef,\n private dynamicComponentService: SkyDynamicComponentService,\n private router: Router,\n private readonly _ngZone: NgZone,\n private readonly applicationRef: ApplicationRef\n ) {}\n\n public ngOnDestroy(): void {\n this.removeListners();\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.removeAfterClosed = true;\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 // Without this tick - the host does not actually get removed on initial navigation in this case.\n this.applicationRef.tick();\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 private createHostComponent(): ComponentRef<SkyFlyoutComponent> {\n this.host =\n this.dynamicComponentService.createComponent(SkyFlyoutComponent);\n return this.host;\n }\n\n private removeHostComponent(): void {\n if (this.host) {\n this.dynamicComponentService.removeComponent(this.host);\n this.host = undefined;\n }\n }\n\n private 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: MouseEvent) => {\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\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.removeListners();\n if (this.removeAfterClosed) {\n this.removeHostComponent();\n }\n });\n }\n }\n\n private removeListners(): void {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.unsubscribe();\n this.ngUnsubscribe = new Subject<boolean>();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"flyout.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/flyout/src/lib/modules/flyout/flyout.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ApplicationRef,\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 private host: ComponentRef<SkyFlyoutComponent>;\n private removeAfterClosed = false;\n private isOpening = false;\n private ngUnsubscribe = new Subject<boolean>();\n\n constructor(\n private coreAdapter: SkyCoreAdapterService,\n private windowRef: SkyAppWindowRef,\n private dynamicComponentService: SkyDynamicComponentService,\n private router: Router,\n private readonly _ngZone: NgZone,\n private readonly applicationRef: ApplicationRef\n ) {}\n\n public ngOnDestroy(): void {\n this.removeListners();\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.removeAfterClosed = true;\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 // Without this tick - the host does not actually get removed on initial navigation in this case.\n this.applicationRef.tick();\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 private createHostComponent(): ComponentRef<SkyFlyoutComponent> {\n this.host =\n this.dynamicComponentService.createComponent(SkyFlyoutComponent);\n return this.host;\n }\n\n private removeHostComponent(): void {\n if (this.host) {\n this.dynamicComponentService.removeComponent(this.host);\n this.host = undefined;\n }\n }\n\n private 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: MouseEvent) => {\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\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.removeListners();\n if (this.removeAfterClosed) {\n this.removeHostComponent();\n }\n });\n }\n }\n\n private removeListners(): void {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.unsubscribe();\n this.ngUnsubscribe = new Subject<boolean>();\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flyout-config.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/flyout/src/lib/modules/flyout/types/flyout-config.ts"],"names":[],"mappings":"","sourcesContent":["import { SkyFlyoutAction } from './flyout-action';\
|
|
1
|
+
{"version":3,"file":"flyout-config.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/flyout/src/lib/modules/flyout/types/flyout-config.ts"],"names":[],"mappings":"","sourcesContent":["import { SkyFlyoutAction } from './flyout-action';\nimport { SkyFlyoutPermalink } from './flyout-permalink';\n\n/**\n * Specifies the configuration options to set up a flyout.\n */\nexport interface SkyFlyoutConfig {\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that describes\n * the flyout. This sets the flyout's `aria-describedby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * The description typically includes text on the flyout but not on items that users\n * interact with, such as buttons and forms.\n */\n ariaDescribedBy?: string;\n\n /**\n * Specifies an ARIA label for the flyout. This sets the flyouts's `aria-label` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the flyout includes a visible label, use `ariaLabelledBy` instead.\n */\n ariaLabel?: string;\n\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that labels\n * the flyout. This sets the flyout's `aria-labelledby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the flyout does not include a visible label, use `ariaLabel` instead.\n */\n ariaLabelledBy?: string;\n\n /**\n * Specifies an ARIA role for the flyout\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * by indicating how the flyout functions and what it controls. For information about how\n * an ARIA role indicates what an item represents on a web page,\n * see the [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/roles).\n * @default dialog\n * @deprecated Since version `5.1.0`. Consumers should use the default `dialog` role to ensure a\n * proper accessibility implementation.\n */\n ariaRole?: string;\n\n /**\n * Specifies the default width of the flyout container. If you do not provide a width,\n * the flyout defaults to half the width of its container.\n */\n defaultWidth?: number;\n\n /**\n * Specifies the minimum resize width of the flyout container.\n * @default 320\n */\n minWidth?: number;\n\n /**\n * Specifies the maximum resize width of the flyout container.\n * @default defaultWidth\n */\n maxWidth?: number;\n\n /**\n * Displays a permalink button in the flyout header that navigates users to the URL\n * (or application route) representative of the flyout's contents.\n */\n permalink?: SkyFlyoutPermalink;\n\n /**\n * Displays a configurable button in the flyout header.\n */\n primaryAction?: SkyFlyoutAction;\n\n /**\n * Specifies an array of custom providers to pass to the component's constructor.\n */\n providers?: any[];\n\n /**\n * Indicates whether to display iterator buttons in the flyout header\n * to access the next and previous records in a record set.\n * @default false\n */\n showIterator?: boolean;\n\n /**\n * Disables the previous iterator button in the flyout header that accesses\n * the previous record in a record set.\n * @default false\n */\n iteratorPreviousButtonDisabled?: boolean;\n\n /**\n * Disables the next iterator button in the flyout header that accesses the next record\n * in a record set.\n * @default false\n */\n iteratorNextButtonDisabled?: boolean;\n\n /**\n * Specifies a unique key for the UI Config Service to retrieve stored settings from a database.\n * The UI Config Service saves configuration settings for users to preserve the width of\n * the flyout. For more information about the UI Config Service,\n * see [the sticky settings documentation](https://developer.blackbaud.com/skyux/learn/get-started/sticky-settings).\n */\n settingsKey?: string;\n}\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* To update this file, simply rerun the command.
|
|
6
6
|
*/
|
|
7
7
|
import { NgModule } from '@angular/core';
|
|
8
|
-
import {
|
|
8
|
+
import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
const RESOURCES = {
|
|
11
11
|
'EN-US': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sky-flyout-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/flyout/src/lib/modules/shared/sky-flyout-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"sky-flyout-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/flyout/src/lib/modules/shared/sky-flyout-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,2BAA2B,EAE3B,aAAa,EAGb,qBAAqB,GACtB,MAAM,aAAa,CAAC;;AAErB,MAAM,SAAS,GAA0C;IACvD,OAAO,EAAE;QACP,kBAAkB,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;QAC/C,qCAAqC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;QAC9D,iCAAiC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QACtD,6BAA6B,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QACzD,kCAAkC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAC9D,0BAA0B,EAAE;YAC1B,OAAO,EACL,4NAA4N;SAC/N;KACF;CACF,CAAC;AAEF,MAAM,OAAO,0BAA0B;IAC9B,SAAS,CAAC,UAA4B,EAAE,IAAY;QACzD,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AAWH,MAAM,OAAO,wBAAwB;;sHAAxB,wBAAwB;uHAAxB,wBAAwB,YATzB,aAAa;uHASZ,wBAAwB,aARxB;QACT;YACE,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,0BAA0B;YACpC,KAAK,EAAE,IAAI;SACZ;KACF,YAPS,aAAa;4FASZ,wBAAwB;kBAVpC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,2BAA2B;4BACpC,QAAQ,EAAE,0BAA0B;4BACpC,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF","sourcesContent":["/**\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 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(localeInfo: SkyAppLocaleInfo, name: string): string {\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"]}
|