@spartan-ng/brain 0.0.1-alpha.613 → 0.0.1-alpha.628

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.
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-hover-card.mjs","sources":["../tmp-esm2022/hover-card/lib/brn-hover-card-content.service.js","../tmp-esm2022/hover-card/lib/brn-hover-card.js","../tmp-esm2022/hover-card/index.js","../tmp-esm2022/hover-card/spartan-ng-brain-hover-card.js"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { Overlay, OverlayPositionBuilder, } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { computed, Directive, effect, ElementRef, inject, Injectable, input, NgZone, numberAttribute, signal, TemplateRef, untracked, ViewContainerRef, } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { createHoverObservable, provideExposedSideProviderExisting, provideExposesStateProviderExisting, } from '@spartan-ng/brain/core';\nimport { BehaviorSubject, fromEvent, merge, of, Subject } from 'rxjs';\nimport { delay, distinctUntilChanged, filter, map, share, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class BrnHoverCardContent {\n _contentService = inject(BrnHoverCardContentService);\n state = this._contentService.state;\n side = this._contentService.side;\n template = inject(TemplateRef);\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: BrnHoverCardContent, isStandalone: true, selector: \"[brnHoverCardContent]\", providers: [\n provideExposedSideProviderExisting((() => BrnHoverCardContent)),\n provideExposesStateProviderExisting((() => BrnHoverCardContent)),\n ], exportAs: [\"brnHoverCardContent\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardContent, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnHoverCardContent]',\n exportAs: 'brnHoverCardContent',\n providers: [\n provideExposedSideProviderExisting((() => BrnHoverCardContent)),\n provideExposesStateProviderExisting((() => BrnHoverCardContent)),\n ],\n }]\n }] });\nconst topFirstPositions = [\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n];\nconst bottomFirstPositions = [\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n];\nexport class BrnHoverCardContentService {\n _overlay = inject(Overlay);\n _zone = inject(NgZone);\n _psBuilder = inject(OverlayPositionBuilder);\n _content = signal(null);\n _state = signal('closed');\n _config = {};\n _overlayRef;\n _positionStrategy;\n _destroyed$ = new Subject();\n _positionChangesObservables$ = new BehaviorSubject(undefined);\n _overlayHoveredObservables$ = new BehaviorSubject(undefined);\n positionChanges$ = this._positionChangesObservables$.pipe(switchMap((positionChangeObservable) => (positionChangeObservable ? positionChangeObservable : of(undefined))), filter((change) => change !== undefined && change !== null));\n hovered$ = this._overlayHoveredObservables$.pipe(switchMap((overlayHoveredObservable) => (overlayHoveredObservable ? overlayHoveredObservable : of(false))));\n state = this._state.asReadonly();\n side = toSignal(this.positionChanges$.pipe(map((change) => \n // todo: better translation or adjusting hlm to take that into account\n change.connectionPair.originY === 'center'\n ? change.connectionPair.originX === 'start'\n ? 'left'\n : 'right'\n : change.connectionPair.originY)), { initialValue: 'bottom' });\n setConfig(config) {\n this._config = config;\n if (config.attachTo) {\n this._positionStrategy = this._psBuilder\n .flexibleConnectedTo(config.attachTo)\n .withPositions(config.attachPositions ?? (config.align === 'top' ? topFirstPositions : bottomFirstPositions))\n .withDefaultOffsetY(config.sideOffset ?? 0);\n this._config = {\n ...this._config,\n positionStrategy: this._positionStrategy,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n };\n this._positionChangesObservables$.next(this._positionStrategy.positionChanges);\n }\n this._overlayRef = this._overlay.create(this._config);\n }\n setContent(value, vcr) {\n this._content.set(new TemplatePortal(value instanceof TemplateRef ? value : value.template, vcr));\n if (!this._overlayRef) {\n this._overlayRef = this._overlay.create(this._config);\n }\n }\n setState(newState) {\n this._state.set(newState);\n }\n show() {\n const content = this._content();\n if (!content || !this._overlayRef)\n return;\n this._overlayRef?.detach();\n this._overlayRef?.attach(content);\n this._destroyed$ = new Subject();\n this._overlayHoveredObservables$.next(createHoverObservable(this._overlayRef.hostElement, this._zone, this._destroyed$).pipe(map((e) => e.hover)));\n }\n hide() {\n this._overlayRef?.detach();\n this._destroyed$.next();\n this._destroyed$.complete();\n this._destroyed$ = new Subject();\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardContentService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardContentService, decorators: [{\n type: Injectable\n }] });\nexport class BrnHoverCardTrigger {\n _destroy$ = new Subject();\n _vcr = inject(ViewContainerRef);\n _zone = inject(NgZone);\n _el = inject(ElementRef);\n _contentService = inject(BrnHoverCardContentService);\n _focusMonitor = inject(FocusMonitor);\n focused$ = this._focusMonitor.monitor(this._el).pipe(map((e) => e !== null));\n hovered$ = merge(fromEvent(this._el.nativeElement, 'click').pipe(map(() => false)), createHoverObservable(this._el.nativeElement, this._zone, this._destroy$).pipe(map((e) => e.hover)), this._contentService.hovered$, this.focused$).pipe(distinctUntilChanged());\n showing$ = this.hovered$.pipe(\n // we set the state to open here because we are about to open show the content\n tap((visible) => visible && this._contentService.setState('open')), switchMap((visible) => {\n // we are delaying based on the configure-able input\n return of(visible).pipe(delay(visible ? this.showDelay() : this.hideDelay()));\n }), switchMap((visible) => {\n // don't do anything when we are in the process of showing the content\n if (visible)\n return of(visible);\n // we set the state to closed here to trigger any animations for the element leaving\n this._contentService.setState('closed');\n // then delay to wait for the leaving animation to finish\n return of(visible).pipe(delay(this.animationDelay()));\n }), distinctUntilChanged(), share(), takeUntil(this._destroy$));\n showDelay = input(300, { transform: numberAttribute });\n hideDelay = input(500, { transform: numberAttribute });\n animationDelay = input(100, { transform: numberAttribute });\n sideOffset = input(5, { transform: numberAttribute });\n align = input('bottom');\n brnHoverCardTriggerFor = input(undefined);\n mutableBrnHoverCardTriggerFor = computed(() => signal(this.brnHoverCardTriggerFor()));\n _brnHoverCardTriggerForState = computed(() => this.mutableBrnHoverCardTriggerFor()());\n constructor() {\n effect(() => {\n const value = this._brnHoverCardTriggerForState();\n untracked(() => {\n if (value) {\n this._contentService.setContent(value, this._vcr);\n }\n });\n });\n }\n ngOnInit() {\n this._contentService.setConfig({ attachTo: this._el, align: this.align(), sideOffset: this.sideOffset() });\n this.showing$.subscribe((isHovered) => {\n if (isHovered) {\n this._contentService.show();\n }\n else {\n this._contentService.hide();\n }\n });\n }\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n this._focusMonitor.stopMonitoring(this._el);\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnHoverCardTrigger, isStandalone: true, selector: \"[brnHoverCardTrigger]:not(ng-container),[brnHoverCardTriggerFor]:not(ng-container)\", inputs: { showDelay: { classPropertyName: \"showDelay\", publicName: \"showDelay\", isSignal: true, isRequired: false, transformFunction: null }, hideDelay: { classPropertyName: \"hideDelay\", publicName: \"hideDelay\", isSignal: true, isRequired: false, transformFunction: null }, animationDelay: { classPropertyName: \"animationDelay\", publicName: \"animationDelay\", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: \"sideOffset\", publicName: \"sideOffset\", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: \"align\", publicName: \"align\", isSignal: true, isRequired: false, transformFunction: null }, brnHoverCardTriggerFor: { classPropertyName: \"brnHoverCardTriggerFor\", publicName: \"brnHoverCardTriggerFor\", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: [\"brnHoverCardTrigger\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardTrigger, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnHoverCardTrigger]:not(ng-container),[brnHoverCardTriggerFor]:not(ng-container)',\n exportAs: 'brnHoverCardTrigger',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWhvdmVyLWNhcmQtY29udGVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9ob3Zlci1jYXJkL3NyYy9saWIvYnJuLWhvdmVyLWNhcmQtY29udGVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBSU4sT0FBTyxFQUVQLHNCQUFzQixHQUV0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixlQUFlLEVBSWYsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQ04scUJBQXFCLEVBR3JCLGtDQUFrQyxFQUNsQyxtQ0FBbUMsR0FDbkMsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkYsT0FBTyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVU1RyxNQUFNLE9BQU8sbUJBQW1CO0lBQ2QsZUFBZSxHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ3RELEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztJQUNuQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDakMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQzswSEFKbkMsbUJBQW1COzhHQUFuQixtQkFBbUIsb0VBTHBCO1lBQ1Ysa0NBQWtDLEVBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLEVBQUM7WUFDN0QsbUNBQW1DLEVBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLEVBQUM7U0FDOUQ7OzJGQUVXLG1CQUFtQjtrQkFSL0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixTQUFTLEVBQUU7d0JBQ1Ysa0NBQWtDLEVBQUMsR0FBRyxFQUFFLG9CQUFvQixFQUFDO3dCQUM3RCxtQ0FBbUMsRUFBQyxHQUFHLEVBQUUsb0JBQW9CLEVBQUM7cUJBQzlEO2lCQUNEOztBQXVCRCxNQUFNLGlCQUFpQixHQUF3QjtJQUM5QztRQUNDLE9BQU8sRUFBRSxRQUFRO1FBQ2pCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsUUFBUSxFQUFFLFFBQVE7UUFDbEIsUUFBUSxFQUFFLFFBQVE7S0FDbEI7SUFDRDtRQUNDLE9BQU8sRUFBRSxRQUFRO1FBQ2pCLE9BQU8sRUFBRSxRQUFRO1FBQ2pCLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLFFBQVEsRUFBRSxLQUFLO0tBQ2Y7Q0FDRCxDQUFDO0FBQ0YsTUFBTSxvQkFBb0IsR0FBd0I7SUFDakQ7UUFDQyxPQUFPLEVBQUUsUUFBUTtRQUNqQixPQUFPLEVBQUUsUUFBUTtRQUNqQixRQUFRLEVBQUUsUUFBUTtRQUNsQixRQUFRLEVBQUUsS0FBSztLQUNmO0lBQ0Q7UUFDQyxPQUFPLEVBQUUsUUFBUTtRQUNqQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLFFBQVEsRUFBRSxRQUFRO0tBQ2xCO0NBQ0QsQ0FBQztBQUdGLE1BQU0sT0FBTywwQkFBMEI7SUFDckIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZCLFVBQVUsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUU1QyxRQUFRLEdBQUcsTUFBTSxDQUFpQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxNQUFNLEdBQUcsTUFBTSxDQUFvQixRQUFRLENBQUMsQ0FBQztJQUV0RCxPQUFPLEdBQXdCLEVBQUUsQ0FBQztJQUNsQyxXQUFXLENBQWM7SUFDekIsaUJBQWlCLENBQXFDO0lBQ3RELFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXpCLDRCQUE0QixHQUFHLElBQUksZUFBZSxDQUVqRSxTQUFTLENBQUMsQ0FBQztJQUNJLDJCQUEyQixHQUFHLElBQUksZUFBZSxDQUFrQyxTQUFTLENBQUMsQ0FBQztJQUUvRixnQkFBZ0IsR0FBK0MsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FDcEgsU0FBUyxDQUFDLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUM5RyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQXlELEVBQUUsQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FDbEgsQ0FBQztJQUNjLFFBQVEsR0FBd0IsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FDcEYsU0FBUyxDQUFDLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUMxRyxDQUFDO0lBRWMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakMsSUFBSSxHQUFnRCxRQUFRLENBQzNFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ3pCLEdBQUcsQ0FBc0UsQ0FBQyxNQUFNLEVBQUUsRUFBRTtJQUNuRixzRUFBc0U7SUFDdEUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEtBQUssUUFBUTtRQUN6QyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEtBQUssT0FBTztZQUMxQyxDQUFDLENBQUMsTUFBTTtZQUNSLENBQUMsQ0FBQyxPQUFPO1FBQ1YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUNoQyxDQUNELEVBQ0QsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLENBQzFCLENBQUM7SUFFSyxTQUFTLENBQUMsTUFBMkI7UUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVO2lCQUN0QyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO2lCQUNwQyxhQUFhLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQztpQkFDNUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHO2dCQUNkLEdBQUcsSUFBSSxDQUFDLE9BQU87Z0JBQ2YsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtnQkFDeEMsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFO2FBQzNELENBQUM7WUFDRixJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFpRCxFQUFFLEdBQXFCO1FBQ3pGLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksY0FBYyxDQUFVLEtBQUssWUFBWSxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRTNHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNGLENBQUM7SUFFTSxRQUFRLENBQUMsUUFBMkI7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLElBQUk7UUFDVixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUUxQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV2QyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUNwQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDM0csQ0FBQztJQUNILENBQUM7SUFFTSxJQUFJO1FBQ1YsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQ3hDLENBQUM7MEhBekZXLDBCQUEwQjs4SEFBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVOztBQWlHWCxNQUFNLE9BQU8sbUJBQW1CO0lBQ2QsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDaEMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QixlQUFlLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDckQsYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV0QyxRQUFRLEdBQXdCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztJQUVsRyxRQUFRLEdBQXdCLEtBQUssQ0FDcEQsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDakUscUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ25HLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUM3QixJQUFJLENBQUMsUUFBUSxDQUNiLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUNmLFFBQVEsR0FBd0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO0lBQ2pFLDhFQUE4RTtJQUM5RSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUNsRSxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNyQixvREFBb0Q7UUFDcEQsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNyQixzRUFBc0U7UUFDdEUsSUFBSSxPQUFPO1lBQUUsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsb0ZBQW9GO1FBQ3BGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLHlEQUF5RDtRQUN6RCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQyxDQUFDLEVBQ0Ysb0JBQW9CLEVBQUUsRUFDdEIsS0FBSyxFQUFFLEVBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDekIsQ0FBQztJQUVjLFNBQVMsR0FBRyxLQUFLLENBQXNCLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLFNBQVMsR0FBRyxLQUFLLENBQXNCLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLGNBQWMsR0FBRyxLQUFLLENBQXNCLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLFVBQVUsR0FBRyxLQUFLLENBQXNCLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLEtBQUssR0FBRyxLQUFLLENBQW1CLFFBQVEsQ0FBQyxDQUFDO0lBRTFDLHNCQUFzQixHQUFHLEtBQUssQ0FBeUQsU0FBUyxDQUFDLENBQUM7SUFDbEcsNkJBQTZCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckYsNEJBQTRCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV2RztRQUNDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztZQUNsRCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkQsQ0FBQztZQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU0sUUFBUTtRQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3JDLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3QixDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7MEhBeEVXLG1CQUFtQjs4R0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxvRkFBb0Y7b0JBQzlGLFFBQVEsRUFBRSxxQkFBcUI7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcblx0dHlwZSBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsXG5cdHR5cGUgQ29ubmVjdGVkUG9zaXRpb24sXG5cdHR5cGUgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuXHRPdmVybGF5LFxuXHR0eXBlIE92ZXJsYXlDb25maWcsXG5cdE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG5cdHR5cGUgT3ZlcmxheVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG5cdGNvbXB1dGVkLFxuXHREaXJlY3RpdmUsXG5cdGVmZmVjdCxcblx0RWxlbWVudFJlZixcblx0aW5qZWN0LFxuXHRJbmplY3RhYmxlLFxuXHRpbnB1dCxcblx0Tmdab25lLFxuXHRudW1iZXJBdHRyaWJ1dGUsXG5cdHR5cGUgT25EZXN0cm95LFxuXHR0eXBlIE9uSW5pdCxcblx0dHlwZSBTaWduYWwsXG5cdHNpZ25hbCxcblx0VGVtcGxhdGVSZWYsXG5cdHVudHJhY2tlZCxcblx0Vmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG5cdGNyZWF0ZUhvdmVyT2JzZXJ2YWJsZSxcblx0dHlwZSBFeHBvc2VzU2lkZSxcblx0dHlwZSBFeHBvc2VzU3RhdGUsXG5cdHByb3ZpZGVFeHBvc2VkU2lkZVByb3ZpZGVyRXhpc3RpbmcsXG5cdHByb3ZpZGVFeHBvc2VzU3RhdGVQcm92aWRlckV4aXN0aW5nLFxufSBmcm9tICdAc3BhcnRhbi1uZy9icmFpbi9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZnJvbUV2ZW50LCBtZXJnZSwgdHlwZSBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc2hhcmUsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1ticm5Ib3ZlckNhcmRDb250ZW50XScsXG5cdGV4cG9ydEFzOiAnYnJuSG92ZXJDYXJkQ29udGVudCcsXG5cdHByb3ZpZGVyczogW1xuXHRcdHByb3ZpZGVFeHBvc2VkU2lkZVByb3ZpZGVyRXhpc3RpbmcoKCkgPT4gQnJuSG92ZXJDYXJkQ29udGVudCksXG5cdFx0cHJvdmlkZUV4cG9zZXNTdGF0ZVByb3ZpZGVyRXhpc3RpbmcoKCkgPT4gQnJuSG92ZXJDYXJkQ29udGVudCksXG5cdF0sXG59KVxuZXhwb3J0IGNsYXNzIEJybkhvdmVyQ2FyZENvbnRlbnQgaW1wbGVtZW50cyBFeHBvc2VzU3RhdGUsIEV4cG9zZXNTaWRlIHtcblx0cHJpdmF0ZSByZWFkb25seSBfY29udGVudFNlcnZpY2UgPSBpbmplY3QoQnJuSG92ZXJDYXJkQ29udGVudFNlcnZpY2UpO1xuXHRwdWJsaWMgcmVhZG9ubHkgc3RhdGUgPSB0aGlzLl9jb250ZW50U2VydmljZS5zdGF0ZTtcblx0cHVibGljIHJlYWRvbmx5IHNpZGUgPSB0aGlzLl9jb250ZW50U2VydmljZS5zaWRlO1xuXHRwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGUgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xufVxuXG4vKipcbiAqIFdlIGFyZSBidWlsZGluZyBvbiBzaG91bGRlcnMgb2YgZ2lhbnRzIGhlcmUgYW5kIHVzZSB0aGUgaW1wbGVtZW50YXRpb24gcHJvdmlkZWQgYnkgdGhlIGluY3JlZGlibGUgVGFpZ2FVSVxuICogdGVhbTogaHR0cHM6Ly9naXRodWIuY29tL3RhaWdhLWZhbWlseS90YWlnYS11aS9ibG9iL21haW4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duL2Ryb3Bkb3duLWhvdmVyLmRpcmVjdGl2ZS50c1xuICogQ2hlY2sgdGhlbSBvdXQhIEdpdmUgdGhlbSBhIHRyeSEgTGVhdmUgYSBzdGFyISBUaGVpciB3b3JrIGlzIGluY3JlZGlibGUhXG4gKi9cblxuZXhwb3J0IHR5cGUgQnJuSG92ZXJDYXJkT3B0aW9ucyA9IFBhcnRpYWw8XG5cdHtcblx0XHRhdHRhY2hUbzogRWxlbWVudFJlZjtcblx0XHRhdHRhY2hQb3NpdGlvbnM6IENvbm5lY3RlZFBvc2l0aW9uW107XG5cdFx0YWxpZ246ICd0b3AnIHwgJ2JvdHRvbSc7XG5cdFx0c2lkZU9mZnNldDogbnVtYmVyO1xuXHR9ICYgT3ZlcmxheUNvbmZpZ1xuPjtcblxuY29uc3QgdG9wRmlyc3RQb3NpdGlvbnM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbXG5cdHtcblx0XHRvcmlnaW5YOiAnY2VudGVyJyxcblx0XHRvcmlnaW5ZOiAndG9wJyxcblx0XHRvdmVybGF5WDogJ2NlbnRlcicsXG5cdFx0b3ZlcmxheVk6ICdib3R0b20nLFxuXHR9LFxuXHR7XG5cdFx0b3JpZ2luWDogJ2NlbnRlcicsXG5cdFx0b3JpZ2luWTogJ2JvdHRvbScsXG5cdFx0b3ZlcmxheVg6ICdjZW50ZXInLFxuXHRcdG92ZXJsYXlZOiAndG9wJyxcblx0fSxcbl07XG5jb25zdCBib3R0b21GaXJzdFBvc2l0aW9uczogQ29ubmVjdGVkUG9zaXRpb25bXSA9IFtcblx0e1xuXHRcdG9yaWdpblg6ICdjZW50ZXInLFxuXHRcdG9yaWdpblk6ICdib3R0b20nLFxuXHRcdG92ZXJsYXlYOiAnY2VudGVyJyxcblx0XHRvdmVybGF5WTogJ3RvcCcsXG5cdH0sXG5cdHtcblx0XHRvcmlnaW5YOiAnY2VudGVyJyxcblx0XHRvcmlnaW5ZOiAndG9wJyxcblx0XHRvdmVybGF5WDogJ2NlbnRlcicsXG5cdFx0b3ZlcmxheVk6ICdib3R0b20nLFxuXHR9LFxuXTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJybkhvdmVyQ2FyZENvbnRlbnRTZXJ2aWNlIHtcblx0cHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcblx0cHJpdmF0ZSByZWFkb25seSBfem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9wc0J1aWxkZXIgPSBpbmplY3QoT3ZlcmxheVBvc2l0aW9uQnVpbGRlcik7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfY29udGVudCA9IHNpZ25hbDxUZW1wbGF0ZVBvcnRhbDx1bmtub3duPiB8IG51bGw+KG51bGwpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSA9IHNpZ25hbDwnb3BlbicgfCAnY2xvc2VkJz4oJ2Nsb3NlZCcpO1xuXG5cdHByaXZhdGUgX2NvbmZpZzogQnJuSG92ZXJDYXJkT3B0aW9ucyA9IHt9O1xuXHRwcml2YXRlIF9vdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcblx0cHJpdmF0ZSBfcG9zaXRpb25TdHJhdGVneT86IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneTtcblx0cHJpdmF0ZSBfZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfcG9zaXRpb25DaGFuZ2VzT2JzZXJ2YWJsZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcblx0XHRPYnNlcnZhYmxlPENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZT4gfCB1bmRlZmluZWRcblx0Pih1bmRlZmluZWQpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9vdmVybGF5SG92ZXJlZE9ic2VydmFibGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTxib29sZWFuPiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgcG9zaXRpb25DaGFuZ2VzJDogT2JzZXJ2YWJsZTxDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2U+ID0gdGhpcy5fcG9zaXRpb25DaGFuZ2VzT2JzZXJ2YWJsZXMkLnBpcGUoXG5cdFx0c3dpdGNoTWFwKChwb3NpdGlvbkNoYW5nZU9ic2VydmFibGUpID0+IChwb3NpdGlvbkNoYW5nZU9ic2VydmFibGUgPyBwb3NpdGlvbkNoYW5nZU9ic2VydmFibGUgOiBvZih1bmRlZmluZWQpKSksXG5cdFx0ZmlsdGVyKChjaGFuZ2UpOiBjaGFuZ2UgaXMgTm9uTnVsbGFibGU8Q29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlPiA9PiBjaGFuZ2UgIT09IHVuZGVmaW5lZCAmJiBjaGFuZ2UgIT09IG51bGwpLFxuXHQpO1xuXHRwdWJsaWMgcmVhZG9ubHkgaG92ZXJlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9vdmVybGF5SG92ZXJlZE9ic2VydmFibGVzJC5waXBlKFxuXHRcdHN3aXRjaE1hcCgob3ZlcmxheUhvdmVyZWRPYnNlcnZhYmxlKSA9PiAob3ZlcmxheUhvdmVyZWRPYnNlcnZhYmxlID8gb3ZlcmxheUhvdmVyZWRPYnNlcnZhYmxlIDogb2YoZmFsc2UpKSksXG5cdCk7XG5cblx0cHVibGljIHJlYWRvbmx5IHN0YXRlID0gdGhpcy5fc3RhdGUuYXNSZWFkb25seSgpO1xuXHRwdWJsaWMgcmVhZG9ubHkgc2lkZTogU2lnbmFsPCd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnPiA9IHRvU2lnbmFsKFxuXHRcdHRoaXMucG9zaXRpb25DaGFuZ2VzJC5waXBlKFxuXHRcdFx0bWFwPENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSwgJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCc+KChjaGFuZ2UpID0+XG5cdFx0XHRcdC8vIHRvZG86IGJldHRlciB0cmFuc2xhdGlvbiBvciBhZGp1c3RpbmcgaGxtIHRvIHRha2UgdGhhdCBpbnRvIGFjY291bnRcblx0XHRcdFx0Y2hhbmdlLmNvbm5lY3Rpb25QYWlyLm9yaWdpblkgPT09ICdjZW50ZXInXG5cdFx0XHRcdFx0PyBjaGFuZ2UuY29ubmVjdGlvblBhaXIub3JpZ2luWCA9PT0gJ3N0YXJ0J1xuXHRcdFx0XHRcdFx0PyAnbGVmdCdcblx0XHRcdFx0XHRcdDogJ3JpZ2h0J1xuXHRcdFx0XHRcdDogY2hhbmdlLmNvbm5lY3Rpb25QYWlyLm9yaWdpblksXG5cdFx0XHQpLFxuXHRcdCksXG5cdFx0eyBpbml0aWFsVmFsdWU6ICdib3R0b20nIH0sXG5cdCk7XG5cblx0cHVibGljIHNldENvbmZpZyhjb25maWc6IEJybkhvdmVyQ2FyZE9wdGlvbnMpIHtcblx0XHR0aGlzLl9jb25maWcgPSBjb25maWc7XG5cdFx0aWYgKGNvbmZpZy5hdHRhY2hUbykge1xuXHRcdFx0dGhpcy5fcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX3BzQnVpbGRlclxuXHRcdFx0XHQuZmxleGlibGVDb25uZWN0ZWRUbyhjb25maWcuYXR0YWNoVG8pXG5cdFx0XHRcdC53aXRoUG9zaXRpb25zKGNvbmZpZy5hdHRhY2hQb3NpdGlvbnMgPz8gKGNvbmZpZy5hbGlnbiA9PT0gJ3RvcCcgPyB0b3BGaXJzdFBvc2l0aW9ucyA6IGJvdHRvbUZpcnN0UG9zaXRpb25zKSlcblx0XHRcdFx0LndpdGhEZWZhdWx0T2Zmc2V0WShjb25maWcuc2lkZU9mZnNldCA/PyAwKTtcblx0XHRcdHRoaXMuX2NvbmZpZyA9IHtcblx0XHRcdFx0Li4udGhpcy5fY29uZmlnLFxuXHRcdFx0XHRwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LFxuXHRcdFx0XHRzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcblx0XHRcdH07XG5cdFx0XHR0aGlzLl9wb3NpdGlvbkNoYW5nZXNPYnNlcnZhYmxlcyQubmV4dCh0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LnBvc2l0aW9uQ2hhbmdlcyk7XG5cdFx0fVxuXHRcdHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh0aGlzLl9jb25maWcpO1xuXHR9XG5cblx0cHVibGljIHNldENvbnRlbnQodmFsdWU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgQnJuSG92ZXJDYXJkQ29udGVudCwgdmNyOiBWaWV3Q29udGFpbmVyUmVmKSB7XG5cdFx0dGhpcy5fY29udGVudC5zZXQobmV3IFRlbXBsYXRlUG9ydGFsPHVua25vd24+KHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYgPyB2YWx1ZSA6IHZhbHVlLnRlbXBsYXRlLCB2Y3IpKTtcblxuXHRcdGlmICghdGhpcy5fb3ZlcmxheVJlZikge1xuXHRcdFx0dGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHRoaXMuX2NvbmZpZyk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIHNldFN0YXRlKG5ld1N0YXRlOiAnb3BlbicgfCAnY2xvc2VkJykge1xuXHRcdHRoaXMuX3N0YXRlLnNldChuZXdTdGF0ZSk7XG5cdH1cblxuXHRwdWJsaWMgc2hvdygpIHtcblx0XHRjb25zdCBjb250ZW50ID0gdGhpcy5fY29udGVudCgpO1xuXHRcdGlmICghY29udGVudCB8fCAhdGhpcy5fb3ZlcmxheVJlZikgcmV0dXJuO1xuXG5cdFx0dGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XG5cdFx0dGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKGNvbnRlbnQpO1xuXG5cdFx0dGhpcy5fZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cblx0XHR0aGlzLl9vdmVybGF5SG92ZXJlZE9ic2VydmFibGVzJC5uZXh0KFxuXHRcdFx0Y3JlYXRlSG92ZXJPYnNlcnZhYmxlKHRoaXMuX292ZXJsYXlSZWYuaG9zdEVsZW1lbnQsIHRoaXMuX3pvbmUsIHRoaXMuX2Rlc3Ryb3llZCQpLnBpcGUobWFwKChlKSA9PiBlLmhvdmVyKSksXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBoaWRlKCkge1xuXHRcdHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuXHRcdHRoaXMuX2Rlc3Ryb3llZCQubmV4dCgpO1xuXHRcdHRoaXMuX2Rlc3Ryb3llZCQuY29tcGxldGUoKTtcblx0XHR0aGlzLl9kZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblx0fVxufVxuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuSG92ZXJDYXJkVHJpZ2dlcl06bm90KG5nLWNvbnRhaW5lciksW2JybkhvdmVyQ2FyZFRyaWdnZXJGb3JdOm5vdChuZy1jb250YWluZXIpJyxcblx0ZXhwb3J0QXM6ICdicm5Ib3ZlckNhcmRUcmlnZ2VyJyxcbn0pXG5leHBvcnQgY2xhc3MgQnJuSG92ZXJDYXJkVHJpZ2dlciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblx0cHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF92Y3IgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2NvbnRlbnRTZXJ2aWNlID0gaW5qZWN0KEJybkhvdmVyQ2FyZENvbnRlbnRTZXJ2aWNlKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZm9jdXNNb25pdG9yID0gaW5qZWN0KEZvY3VzTW9uaXRvcik7XG5cblx0cHVibGljIHJlYWRvbmx5IGZvY3VzZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWwpLnBpcGUobWFwKChlKSA9PiBlICE9PSBudWxsKSk7XG5cblx0cHVibGljIHJlYWRvbmx5IGhvdmVyZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gbWVyZ2UoXG5cdFx0ZnJvbUV2ZW50KHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLnBpcGUobWFwKCgpID0+IGZhbHNlKSksXG5cdFx0Y3JlYXRlSG92ZXJPYnNlcnZhYmxlKHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX3pvbmUsIHRoaXMuX2Rlc3Ryb3kkKS5waXBlKG1hcCgoZSkgPT4gZS5ob3ZlcikpLFxuXHRcdHRoaXMuX2NvbnRlbnRTZXJ2aWNlLmhvdmVyZWQkLFxuXHRcdHRoaXMuZm9jdXNlZCQsXG5cdCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblx0cHVibGljIHJlYWRvbmx5IHNob3dpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5ob3ZlcmVkJC5waXBlKFxuXHRcdC8vIHdlIHNldCB0aGUgc3RhdGUgdG8gb3BlbiBoZXJlIGJlY2F1c2Ugd2UgYXJlIGFib3V0IHRvIG9wZW4gc2hvdyB0aGUgY29udGVudFxuXHRcdHRhcCgodmlzaWJsZSkgPT4gdmlzaWJsZSAmJiB0aGlzLl9jb250ZW50U2VydmljZS5zZXRTdGF0ZSgnb3BlbicpKSxcblx0XHRzd2l0Y2hNYXAoKHZpc2libGUpID0+IHtcblx0XHRcdC8vIHdlIGFyZSBkZWxheWluZyBiYXNlZCBvbiB0aGUgY29uZmlndXJlLWFibGUgaW5wdXRcblx0XHRcdHJldHVybiBvZih2aXNpYmxlKS5waXBlKGRlbGF5KHZpc2libGUgPyB0aGlzLnNob3dEZWxheSgpIDogdGhpcy5oaWRlRGVsYXkoKSkpO1xuXHRcdH0pLFxuXHRcdHN3aXRjaE1hcCgodmlzaWJsZSkgPT4ge1xuXHRcdFx0Ly8gZG9uJ3QgZG8gYW55dGhpbmcgd2hlbiB3ZSBhcmUgaW4gdGhlIHByb2Nlc3Mgb2Ygc2hvd2luZyB0aGUgY29udGVudFxuXHRcdFx0aWYgKHZpc2libGUpIHJldHVybiBvZih2aXNpYmxlKTtcblx0XHRcdC8vIHdlIHNldCB0aGUgc3RhdGUgdG8gY2xvc2VkIGhlcmUgdG8gdHJpZ2dlciBhbnkgYW5pbWF0aW9ucyBmb3IgdGhlIGVsZW1lbnQgbGVhdmluZ1xuXHRcdFx0dGhpcy5fY29udGVudFNlcnZpY2Uuc2V0U3RhdGUoJ2Nsb3NlZCcpO1xuXHRcdFx0Ly8gdGhlbiBkZWxheSB0byB3YWl0IGZvciB0aGUgbGVhdmluZyBhbmltYXRpb24gdG8gZmluaXNoXG5cdFx0XHRyZXR1cm4gb2YodmlzaWJsZSkucGlwZShkZWxheSh0aGlzLmFuaW1hdGlvbkRlbGF5KCkpKTtcblx0XHR9KSxcblx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuXHRcdHNoYXJlKCksXG5cdFx0dGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcblx0KTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgc2hvd0RlbGF5ID0gaW5wdXQ8bnVtYmVyLCBOdW1iZXJJbnB1dD4oMzAwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXHRwdWJsaWMgcmVhZG9ubHkgaGlkZURlbGF5ID0gaW5wdXQ8bnVtYmVyLCBOdW1iZXJJbnB1dD4oNTAwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXHRwdWJsaWMgcmVhZG9ubHkgYW5pbWF0aW9uRGVsYXkgPSBpbnB1dDxudW1iZXIsIE51bWJlcklucHV0PigxMDAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cdHB1YmxpYyByZWFkb25seSBzaWRlT2Zmc2V0ID0gaW5wdXQ8bnVtYmVyLCBOdW1iZXJJbnB1dD4oNSwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblx0cHVibGljIHJlYWRvbmx5IGFsaWduID0gaW5wdXQ8J3RvcCcgfCAnYm90dG9tJz4oJ2JvdHRvbScpO1xuXG5cdHB1YmxpYyByZWFkb25seSBicm5Ib3ZlckNhcmRUcmlnZ2VyRm9yID0gaW5wdXQ8VGVtcGxhdGVSZWY8dW5rbm93bj4gfCBCcm5Ib3ZlckNhcmRDb250ZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXHRwdWJsaWMgcmVhZG9ubHkgbXV0YWJsZUJybkhvdmVyQ2FyZFRyaWdnZXJGb3IgPSBjb21wdXRlZCgoKSA9PiBzaWduYWwodGhpcy5icm5Ib3ZlckNhcmRUcmlnZ2VyRm9yKCkpKTtcblx0cHJpdmF0ZSByZWFkb25seSBfYnJuSG92ZXJDYXJkVHJpZ2dlckZvclN0YXRlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tdXRhYmxlQnJuSG92ZXJDYXJkVHJpZ2dlckZvcigpKCkpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IHRoaXMuX2JybkhvdmVyQ2FyZFRyaWdnZXJGb3JTdGF0ZSgpO1xuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0aWYgKHZhbHVlKSB7XG5cdFx0XHRcdFx0dGhpcy5fY29udGVudFNlcnZpY2Uuc2V0Q29udGVudCh2YWx1ZSwgdGhpcy5fdmNyKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgbmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fY29udGVudFNlcnZpY2Uuc2V0Q29uZmlnKHsgYXR0YWNoVG86IHRoaXMuX2VsLCBhbGlnbjogdGhpcy5hbGlnbigpLCBzaWRlT2Zmc2V0OiB0aGlzLnNpZGVPZmZzZXQoKSB9KTtcblx0XHR0aGlzLnNob3dpbmckLnN1YnNjcmliZSgoaXNIb3ZlcmVkKSA9PiB7XG5cdFx0XHRpZiAoaXNIb3ZlcmVkKSB7XG5cdFx0XHRcdHRoaXMuX2NvbnRlbnRTZXJ2aWNlLnNob3coKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuX2NvbnRlbnRTZXJ2aWNlLmhpZGUoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG5cdFx0dGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcblx0XHR0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWwpO1xuXHR9XG59XG4iXX0=","import { contentChild, Directive } from '@angular/core';\nimport { BrnHoverCardContent, BrnHoverCardContentService, BrnHoverCardTrigger } from './brn-hover-card-content.service';\nimport * as i0 from \"@angular/core\";\nexport class BrnHoverCard {\n _trigger = contentChild(BrnHoverCardTrigger);\n _content = contentChild(BrnHoverCardContent);\n ngAfterContentInit() {\n if (!this._trigger() || !this._content())\n return;\n this._trigger()?.mutableBrnHoverCardTriggerFor().set(this._content());\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCard, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.0.7\", type: BrnHoverCard, isStandalone: true, selector: \"[brnHoverCard],brn-hover-card\", providers: [BrnHoverCardContentService], queries: [{ propertyName: \"_trigger\", first: true, predicate: BrnHoverCardTrigger, descendants: true, isSignal: true }, { propertyName: \"_content\", first: true, predicate: BrnHoverCardContent, descendants: true, isSignal: true }], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCard, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnHoverCard],brn-hover-card',\n providers: [BrnHoverCardContentService],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWhvdmVyLWNhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2hvdmVyLWNhcmQvc3JjL2xpYi9icm4taG92ZXItY2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlCLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDBCQUEwQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBTXhILE1BQU0sT0FBTyxZQUFZO0lBQ1AsUUFBUSxHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzdDLFFBQVEsR0FBRyxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUV2RCxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFPO1FBQ2pELElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSw2QkFBNkIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDOzBIQVBXLFlBQVk7OEdBQVosWUFBWSw0RUFGYixDQUFDLDBCQUEwQixDQUFDLGdFQUdFLG1CQUFtQiwyRkFDbkIsbUJBQW1COzsyRkFGaEQsWUFBWTtrQkFKeEIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztpQkFDdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEFmdGVyQ29udGVudEluaXQsIGNvbnRlbnRDaGlsZCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcm5Ib3ZlckNhcmRDb250ZW50LCBCcm5Ib3ZlckNhcmRDb250ZW50U2VydmljZSwgQnJuSG92ZXJDYXJkVHJpZ2dlciB9IGZyb20gJy4vYnJuLWhvdmVyLWNhcmQtY29udGVudC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JybkhvdmVyQ2FyZF0sYnJuLWhvdmVyLWNhcmQnLFxuXHRwcm92aWRlcnM6IFtCcm5Ib3ZlckNhcmRDb250ZW50U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEJybkhvdmVyQ2FyZCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuXHRwcml2YXRlIHJlYWRvbmx5IF90cmlnZ2VyID0gY29udGVudENoaWxkKEJybkhvdmVyQ2FyZFRyaWdnZXIpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9jb250ZW50ID0gY29udGVudENoaWxkKEJybkhvdmVyQ2FyZENvbnRlbnQpO1xuXG5cdHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG5cdFx0aWYgKCF0aGlzLl90cmlnZ2VyKCkgfHwgIXRoaXMuX2NvbnRlbnQoKSkgcmV0dXJuO1xuXHRcdHRoaXMuX3RyaWdnZXIoKT8ubXV0YWJsZUJybkhvdmVyQ2FyZFRyaWdnZXJGb3IoKS5zZXQodGhpcy5fY29udGVudCgpKTtcblx0fVxufVxuIl19","import { BrnHoverCard } from './lib/brn-hover-card';\nimport { BrnHoverCardContent, BrnHoverCardTrigger } from './lib/brn-hover-card-content.service';\nexport * from './lib/brn-hover-card';\nexport * from './lib/brn-hover-card-content.service';\nexport const BrnHoverCardImports = [BrnHoverCard, BrnHoverCardContent, BrnHoverCardTrigger];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2hvdmVyLWNhcmQvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVoRyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0NBQXNDLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJybkhvdmVyQ2FyZCB9IGZyb20gJy4vbGliL2Jybi1ob3Zlci1jYXJkJztcbmltcG9ydCB7IEJybkhvdmVyQ2FyZENvbnRlbnQsIEJybkhvdmVyQ2FyZFRyaWdnZXIgfSBmcm9tICcuL2xpYi9icm4taG92ZXItY2FyZC1jb250ZW50LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9icm4taG92ZXItY2FyZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9icm4taG92ZXItY2FyZC1jb250ZW50LnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgQnJuSG92ZXJDYXJkSW1wb3J0cyA9IFtCcm5Ib3ZlckNhcmQsIEJybkhvdmVyQ2FyZENvbnRlbnQsIEJybkhvdmVyQ2FyZFRyaWdnZXJdIGFzIGNvbnN0O1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcnRhbi1uZy1icmFpbi1ob3Zlci1jYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9ob3Zlci1jYXJkL3NyYy9zcGFydGFuLW5nLWJyYWluLWhvdmVyLWNhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-hover-card.mjs","sources":["../tmp-esm2022/hover-card/lib/brn-hover-card.token.js","../tmp-esm2022/hover-card/lib/brn-hover-card-content.service.js","../tmp-esm2022/hover-card/lib/brn-hover-card.js","../tmp-esm2022/hover-card/index.js","../tmp-esm2022/hover-card/spartan-ng-brain-hover-card.js"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nexport const defaultOptions = {\n showDelay: 300,\n hideDelay: 500,\n animationDelay: 100,\n sideOffset: 5,\n align: 'bottom',\n};\nconst BRN_HOVER_CARD_DEFAULT_OPTIONS = new InjectionToken('brn-hover-card-default-options', {\n providedIn: 'root',\n factory: () => defaultOptions,\n});\nexport function provideBrnHoverCardDefaultOptions(options) {\n return { provide: BRN_HOVER_CARD_DEFAULT_OPTIONS, useValue: { ...defaultOptions, ...options } };\n}\nexport function injectBrnHoverCardDefaultOptions() {\n return inject(BRN_HOVER_CARD_DEFAULT_OPTIONS, { optional: true }) ?? defaultOptions;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWhvdmVyLWNhcmQudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2hvdmVyLWNhcmQvc3JjL2xpYi9icm4taG92ZXItY2FyZC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFVM0UsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUErQjtJQUN6RCxTQUFTLEVBQUUsR0FBRztJQUNkLFNBQVMsRUFBRSxHQUFHO0lBQ2QsY0FBYyxFQUFFLEdBQUc7SUFDbkIsVUFBVSxFQUFFLENBQUM7SUFDYixLQUFLLEVBQUUsUUFBUTtDQUNmLENBQUM7QUFFRixNQUFNLDhCQUE4QixHQUFHLElBQUksY0FBYyxDQUN4RCxnQ0FBZ0MsRUFDaEM7SUFDQyxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsY0FBYztDQUM3QixDQUNELENBQUM7QUFFRixNQUFNLFVBQVUsaUNBQWlDLENBQUMsT0FBNEM7SUFDN0YsT0FBTyxFQUFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQUM7QUFDakcsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0M7SUFDL0MsT0FBTyxNQUFNLENBQUMsOEJBQThCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxjQUFjLENBQUM7QUFDckYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIHR5cGUgVmFsdWVQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJybkhvdmVyQ2FyZERlZmF1bHRPcHRpb25zIHtcblx0c2hvd0RlbGF5OiBudW1iZXI7XG5cdGhpZGVEZWxheTogbnVtYmVyO1xuXHRhbmltYXRpb25EZWxheTogbnVtYmVyO1xuXHRzaWRlT2Zmc2V0OiBudW1iZXI7XG5cdGFsaWduOiAndG9wJyB8ICdib3R0b20nO1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdE9wdGlvbnM6IEJybkhvdmVyQ2FyZERlZmF1bHRPcHRpb25zID0ge1xuXHRzaG93RGVsYXk6IDMwMCxcblx0aGlkZURlbGF5OiA1MDAsXG5cdGFuaW1hdGlvbkRlbGF5OiAxMDAsXG5cdHNpZGVPZmZzZXQ6IDUsXG5cdGFsaWduOiAnYm90dG9tJyxcbn07XG5cbmNvbnN0IEJSTl9IT1ZFUl9DQVJEX0RFRkFVTFRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCcm5Ib3ZlckNhcmREZWZhdWx0T3B0aW9ucz4oXG5cdCdicm4taG92ZXItY2FyZC1kZWZhdWx0LW9wdGlvbnMnLFxuXHR7XG5cdFx0cHJvdmlkZWRJbjogJ3Jvb3QnLFxuXHRcdGZhY3Rvcnk6ICgpID0+IGRlZmF1bHRPcHRpb25zLFxuXHR9LFxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVCcm5Ib3ZlckNhcmREZWZhdWx0T3B0aW9ucyhvcHRpb25zOiBQYXJ0aWFsPEJybkhvdmVyQ2FyZERlZmF1bHRPcHRpb25zPik6IFZhbHVlUHJvdmlkZXIge1xuXHRyZXR1cm4geyBwcm92aWRlOiBCUk5fSE9WRVJfQ0FSRF9ERUZBVUxUX09QVElPTlMsIHVzZVZhbHVlOiB7IC4uLmRlZmF1bHRPcHRpb25zLCAuLi5vcHRpb25zIH0gfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEJybkhvdmVyQ2FyZERlZmF1bHRPcHRpb25zKCk6IEJybkhvdmVyQ2FyZERlZmF1bHRPcHRpb25zIHtcblx0cmV0dXJuIGluamVjdChCUk5fSE9WRVJfQ0FSRF9ERUZBVUxUX09QVElPTlMsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gZGVmYXVsdE9wdGlvbnM7XG59XG4iXX0=","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { Overlay, OverlayPositionBuilder, } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { computed, Directive, effect, ElementRef, inject, Injectable, input, NgZone, numberAttribute, signal, TemplateRef, untracked, ViewContainerRef, } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { createHoverObservable, provideExposedSideProviderExisting, provideExposesStateProviderExisting, } from '@spartan-ng/brain/core';\nimport { BehaviorSubject, fromEvent, merge, of, Subject } from 'rxjs';\nimport { delay, distinctUntilChanged, filter, map, share, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { injectBrnHoverCardDefaultOptions } from './brn-hover-card.token';\nimport * as i0 from \"@angular/core\";\nexport class BrnHoverCardContent {\n _contentService = inject(BrnHoverCardContentService);\n state = this._contentService.state;\n side = this._contentService.side;\n template = inject(TemplateRef);\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: BrnHoverCardContent, isStandalone: true, selector: \"[brnHoverCardContent]\", providers: [\n provideExposedSideProviderExisting((() => BrnHoverCardContent)),\n provideExposesStateProviderExisting((() => BrnHoverCardContent)),\n ], exportAs: [\"brnHoverCardContent\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardContent, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnHoverCardContent]',\n exportAs: 'brnHoverCardContent',\n providers: [\n provideExposedSideProviderExisting((() => BrnHoverCardContent)),\n provideExposesStateProviderExisting((() => BrnHoverCardContent)),\n ],\n }]\n }] });\nconst topFirstPositions = [\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n];\nconst bottomFirstPositions = [\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n];\nconst leftFirstPositions = [\n // left side\n {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n },\n // Fallback 1: right (opposite horizontal)\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n },\n // Fallback 2: bottom (vertical fallback)\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n // Fallback 3: top (vertical fallback)\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n];\nconst rightFirstPositions = [\n // right side\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n },\n // Fallback 1: left (opposite horizontal)\n {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n },\n // Fallback 2: bottom (vertical fallback)\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n // Fallback 3: top (vertical fallback)\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n];\nconst POSITION_MAP = {\n top: topFirstPositions,\n bottom: bottomFirstPositions,\n left: leftFirstPositions,\n right: rightFirstPositions,\n};\nexport class BrnHoverCardContentService {\n _overlay = inject(Overlay);\n _zone = inject(NgZone);\n _psBuilder = inject(OverlayPositionBuilder);\n _content = signal(null);\n _state = signal('closed');\n _config = {};\n _overlayRef;\n _positionStrategy;\n _destroyed$ = new Subject();\n _positionChangesObservables$ = new BehaviorSubject(undefined);\n _overlayHoveredObservables$ = new BehaviorSubject(undefined);\n positionChanges$ = this._positionChangesObservables$.pipe(switchMap((positionChangeObservable) => (positionChangeObservable ? positionChangeObservable : of(undefined))), filter((change) => change !== undefined && change !== null));\n hovered$ = this._overlayHoveredObservables$.pipe(switchMap((overlayHoveredObservable) => (overlayHoveredObservable ? overlayHoveredObservable : of(false))));\n state = this._state.asReadonly();\n side = toSignal(this.positionChanges$.pipe(map((change) => \n // todo: better translation or adjusting hlm to take that into account\n change.connectionPair.originY === 'center'\n ? change.connectionPair.originX === 'start'\n ? 'left'\n : 'right'\n : change.connectionPair.originY)), { initialValue: 'bottom' });\n setConfig(config) {\n this._config = config;\n if (config.attachTo) {\n const align = config.align ?? 'bottom';\n const positions = config.attachPositions ?? POSITION_MAP[align];\n this._positionStrategy = this._psBuilder.flexibleConnectedTo(config.attachTo).withPositions(positions);\n const offset = config.sideOffset ?? 0;\n if (align === 'left' || align === 'right') {\n this._positionStrategy.withDefaultOffsetX(align === 'left' ? -offset : offset);\n }\n else {\n this._positionStrategy.withDefaultOffsetY(align === 'top' ? -offset : offset);\n }\n this._config = {\n ...this._config,\n positionStrategy: this._positionStrategy,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n };\n this._positionChangesObservables$.next(this._positionStrategy.positionChanges);\n }\n this._overlayRef = this._overlay.create(this._config);\n }\n setContent(value, vcr) {\n this._content.set(new TemplatePortal(value instanceof TemplateRef ? value : value.template, vcr));\n if (!this._overlayRef) {\n this._overlayRef = this._overlay.create(this._config);\n }\n }\n setState(newState) {\n this._state.set(newState);\n }\n show() {\n const content = this._content();\n if (!content || !this._overlayRef)\n return;\n this._overlayRef?.detach();\n this._overlayRef?.attach(content);\n this._destroyed$ = new Subject();\n this._overlayHoveredObservables$.next(createHoverObservable(this._overlayRef.hostElement, this._zone, this._destroyed$).pipe(map((e) => e.hover)));\n }\n hide() {\n this._overlayRef?.detach();\n this._destroyed$.next();\n this._destroyed$.complete();\n this._destroyed$ = new Subject();\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardContentService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardContentService, decorators: [{\n type: Injectable\n }] });\nexport class BrnHoverCardTrigger {\n _destroy$ = new Subject();\n _vcr = inject(ViewContainerRef);\n _zone = inject(NgZone);\n _el = inject(ElementRef);\n _contentService = inject(BrnHoverCardContentService);\n _focusMonitor = inject(FocusMonitor);\n focused$ = this._focusMonitor.monitor(this._el).pipe(map((e) => e !== null));\n hovered$ = merge(fromEvent(this._el.nativeElement, 'click').pipe(map(() => false)), createHoverObservable(this._el.nativeElement, this._zone, this._destroy$).pipe(map((e) => e.hover)), this._contentService.hovered$, this.focused$).pipe(distinctUntilChanged());\n showing$ = this.hovered$.pipe(\n // we set the state to open here because we are about to open show the content\n tap((visible) => visible && this._contentService.setState('open')), switchMap((visible) => {\n // we are delaying based on the configure-able input\n return of(visible).pipe(delay(visible ? this.showDelay() : this.hideDelay()));\n }), switchMap((visible) => {\n // don't do anything when we are in the process of showing the content\n if (visible)\n return of(visible);\n // we set the state to closed here to trigger any animations for the element leaving\n this._contentService.setState('closed');\n // then delay to wait for the leaving animation to finish\n return of(visible).pipe(delay(this.animationDelay()));\n }), distinctUntilChanged(), share(), takeUntil(this._destroy$));\n _defaultOptions = injectBrnHoverCardDefaultOptions();\n showDelay = input(this._defaultOptions.showDelay, {\n transform: numberAttribute,\n });\n hideDelay = input(this._defaultOptions.hideDelay, {\n transform: numberAttribute,\n });\n animationDelay = input(this._defaultOptions.animationDelay, {\n transform: numberAttribute,\n });\n sideOffset = input(this._defaultOptions.sideOffset, {\n transform: numberAttribute,\n });\n align = input(this._defaultOptions.align);\n brnHoverCardTriggerFor = input(undefined);\n mutableBrnHoverCardTriggerFor = computed(() => signal(this.brnHoverCardTriggerFor()));\n _brnHoverCardTriggerForState = computed(() => this.mutableBrnHoverCardTriggerFor()());\n constructor() {\n effect(() => {\n const value = this._brnHoverCardTriggerForState();\n untracked(() => {\n if (value) {\n this._contentService.setContent(value, this._vcr);\n }\n });\n });\n }\n ngOnInit() {\n this._contentService.setConfig({ attachTo: this._el, align: this.align(), sideOffset: this.sideOffset() });\n this.showing$.subscribe((isHovered) => {\n if (isHovered) {\n this._contentService.show();\n }\n else {\n this._contentService.hide();\n }\n });\n }\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n this._focusMonitor.stopMonitoring(this._el);\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnHoverCardTrigger, isStandalone: true, selector: \"[brnHoverCardTrigger]:not(ng-container),[brnHoverCardTriggerFor]:not(ng-container)\", inputs: { showDelay: { classPropertyName: \"showDelay\", publicName: \"showDelay\", isSignal: true, isRequired: false, transformFunction: null }, hideDelay: { classPropertyName: \"hideDelay\", publicName: \"hideDelay\", isSignal: true, isRequired: false, transformFunction: null }, animationDelay: { classPropertyName: \"animationDelay\", publicName: \"animationDelay\", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: \"sideOffset\", publicName: \"sideOffset\", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: \"align\", publicName: \"align\", isSignal: true, isRequired: false, transformFunction: null }, brnHoverCardTriggerFor: { classPropertyName: \"brnHoverCardTriggerFor\", publicName: \"brnHoverCardTriggerFor\", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: [\"brnHoverCardTrigger\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCardTrigger, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnHoverCardTrigger]:not(ng-container),[brnHoverCardTriggerFor]:not(ng-container)',\n exportAs: 'brnHoverCardTrigger',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWhvdmVyLWNhcmQtY29udGVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9ob3Zlci1jYXJkL3NyYy9saWIvYnJuLWhvdmVyLWNhcmQtY29udGVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBSU4sT0FBTyxFQUVQLHNCQUFzQixHQUV0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixlQUFlLEVBSWYsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQ04scUJBQXFCLEVBR3JCLGtDQUFrQyxFQUNsQyxtQ0FBbUMsR0FDbkMsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkYsT0FBTyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQVUxRSxNQUFNLE9BQU8sbUJBQW1CO0lBQ2QsZUFBZSxHQUFHLE1BQU0sQ0FB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Q0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDN0IsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVc7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDOzBIQWpGVyxtQkFBbUI7OEdBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsb0ZBQW9GO29CQUM5RixRQUFRLEVBQUUscUJBQXFCO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE51bWJlcklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG5cdHR5cGUgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLFxuXHR0eXBlIENvbm5lY3RlZFBvc2l0aW9uLFxuXHR0eXBlIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSxcblx0T3ZlcmxheSxcblx0dHlwZSBPdmVybGF5Q29uZmlnLFxuXHRPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuXHR0eXBlIE92ZXJsYXlSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuXHRjb21wdXRlZCxcblx0RGlyZWN0aXZlLFxuXHRlZmZlY3QsXG5cdEVsZW1lbnRSZWYsXG5cdGluamVjdCxcblx0SW5qZWN0YWJsZSxcblx0aW5wdXQsXG5cdE5nWm9uZSxcblx0bnVtYmVyQXR0cmlidXRlLFxuXHR0eXBlIE9uRGVzdHJveSxcblx0dHlwZSBPbkluaXQsXG5cdHR5cGUgU2lnbmFsLFxuXHRzaWduYWwsXG5cdFRlbXBsYXRlUmVmLFxuXHR1bnRyYWNrZWQsXG5cdFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuXHRjcmVhdGVIb3Zlck9ic2VydmFibGUsXG5cdHR5cGUgRXhwb3Nlc1NpZGUsXG5cdHR5cGUgRXhwb3Nlc1N0YXRlLFxuXHRwcm92aWRlRXhwb3NlZFNpZGVQcm92aWRlckV4aXN0aW5nLFxuXHRwcm92aWRlRXhwb3Nlc1N0YXRlUHJvdmlkZXJFeGlzdGluZyxcbn0gZnJvbSAnQHNwYXJ0YW4tbmcvYnJhaW4vY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb21FdmVudCwgbWVyZ2UsIHR5cGUgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHNoYXJlLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaW5qZWN0QnJuSG92ZXJDYXJkRGVmYXVsdE9wdGlvbnMgfSBmcm9tICcuL2Jybi1ob3Zlci1jYXJkLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JybkhvdmVyQ2FyZENvbnRlbnRdJyxcblx0ZXhwb3J0QXM6ICdicm5Ib3ZlckNhcmRDb250ZW50Jyxcblx0cHJvdmlkZXJzOiBbXG5cdFx0cHJvdmlkZUV4cG9zZWRTaWRlUHJvdmlkZXJFeGlzdGluZygoKSA9PiBCcm5Ib3ZlckNhcmRDb250ZW50KSxcblx0XHRwcm92aWRlRXhwb3Nlc1N0YXRlUHJvdmlkZXJFeGlzdGluZygoKSA9PiBCcm5Ib3ZlckNhcmRDb250ZW50KSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuSG92ZXJDYXJkQ29udGVudCBpbXBsZW1lbnRzIEV4cG9zZXNTdGF0ZSwgRXhwb3Nlc1NpZGUge1xuXHRwcml2YXRlIHJlYWRvbmx5IF9jb250ZW50U2VydmljZSA9IGluamVjdChCcm5Ib3ZlckNhcmRDb250ZW50U2VydmljZSk7XG5cdHB1YmxpYyByZWFkb25seSBzdGF0ZSA9IHRoaXMuX2NvbnRlbnRTZXJ2aWNlLnN0YXRlO1xuXHRwdWJsaWMgcmVhZG9ubHkgc2lkZSA9IHRoaXMuX2NvbnRlbnRTZXJ2aWNlLnNpZGU7XG5cdHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG59XG5cbi8qKlxuICogV2UgYXJlIGJ1aWxkaW5nIG9uIHNob3VsZGVycyBvZiBnaWFudHMgaGVyZSBhbmQgdXNlIHRoZSBpbXBsZW1lbnRhdGlvbiBwcm92aWRlZCBieSB0aGUgaW5jcmVkaWJsZSBUYWlnYVVJXG4gKiB0ZWFtOiBodHRwczovL2dpdGh1Yi5jb20vdGFpZ2EtZmFtaWx5L3RhaWdhLXVpL2Jsb2IvbWFpbi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24vZHJvcGRvd24taG92ZXIuZGlyZWN0aXZlLnRzXG4gKiBDaGVjayB0aGVtIG91dCEgR2l2ZSB0aGVtIGEgdHJ5ISBMZWF2ZSBhIHN0YXIhIFRoZWlyIHdvcmsgaXMgaW5jcmVkaWJsZSFcbiAqL1xuXG5leHBvcnQgdHlwZSBCcm5Ib3ZlckNhcmRPcHRpb25zID0gUGFydGlhbDxcblx0e1xuXHRcdGF0dGFjaFRvOiBFbGVtZW50UmVmO1xuXHRcdGF0dGFjaFBvc2l0aW9uczogQ29ubmVjdGVkUG9zaXRpb25bXTtcblx0XHRhbGlnbjogJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCc7XG5cdFx0c2lkZU9mZnNldDogbnVtYmVyO1xuXHR9ICYgT3ZlcmxheUNvbmZpZ1xuPjtcblxuY29uc3QgdG9wRmlyc3RQb3NpdGlvbnM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbXG5cdHtcblx0XHRvcmlnaW5YOiAnY2VudGVyJyxcblx0XHRvcmlnaW5ZOiAndG9wJyxcblx0XHRvdmVybGF5WDogJ2NlbnRlcicsXG5cdFx0b3ZlcmxheVk6ICdib3R0b20nLFxuXHR9LFxuXHR7XG5cdFx0b3JpZ2luWDogJ2NlbnRlcicsXG5cdFx0b3JpZ2luWTogJ2JvdHRvbScsXG5cdFx0b3ZlcmxheVg6ICdjZW50ZXInLFxuXHRcdG92ZXJsYXlZOiAndG9wJyxcblx0fSxcbl07XG5jb25zdCBib3R0b21GaXJzdFBvc2l0aW9uczogQ29ubmVjdGVkUG9zaXRpb25bXSA9IFtcblx0e1xuXHRcdG9yaWdpblg6ICdjZW50ZXInLFxuXHRcdG9yaWdpblk6ICdib3R0b20nLFxuXHRcdG92ZXJsYXlYOiAnY2VudGVyJyxcblx0XHRvdmVybGF5WTogJ3RvcCcsXG5cdH0sXG5cdHtcblx0XHRvcmlnaW5YOiAnY2VudGVyJyxcblx0XHRvcmlnaW5ZOiAndG9wJyxcblx0XHRvdmVybGF5WDogJ2NlbnRlcicsXG5cdFx0b3ZlcmxheVk6ICdib3R0b20nLFxuXHR9LFxuXTtcblxuY29uc3QgbGVmdEZpcnN0UG9zaXRpb25zOiBDb25uZWN0ZWRQb3NpdGlvbltdID0gW1xuXHQvLyBsZWZ0IHNpZGVcblx0e1xuXHRcdG9yaWdpblg6ICdzdGFydCcsXG5cdFx0b3JpZ2luWTogJ2NlbnRlcicsXG5cdFx0b3ZlcmxheVg6ICdlbmQnLFxuXHRcdG92ZXJsYXlZOiAnY2VudGVyJyxcblx0fSxcblx0Ly8gRmFsbGJhY2sgMTogcmlnaHQgKG9wcG9zaXRlIGhvcml6b250YWwpXG5cdHtcblx0XHRvcmlnaW5YOiAnZW5kJyxcblx0XHRvcmlnaW5ZOiAnY2VudGVyJyxcblx0XHRvdmVybGF5WDogJ3N0YXJ0Jyxcblx0XHRvdmVybGF5WTogJ2NlbnRlcicsXG5cdH0sXG5cdC8vIEZhbGxiYWNrIDI6IGJvdHRvbSAodmVydGljYWwgZmFsbGJhY2spXG5cdHtcblx0XHRvcmlnaW5YOiAnY2VudGVyJyxcblx0XHRvcmlnaW5ZOiAnYm90dG9tJyxcblx0XHRvdmVybGF5WDogJ2NlbnRlcicsXG5cdFx0b3ZlcmxheVk6ICd0b3AnLFxuXHR9LFxuXHQvLyBGYWxsYmFjayAzOiB0b3AgKHZlcnRpY2FsIGZhbGxiYWNrKVxuXHR7XG5cdFx0b3JpZ2luWDogJ2NlbnRlcicsXG5cdFx0b3JpZ2luWTogJ3RvcCcsXG5cdFx0b3ZlcmxheVg6ICdjZW50ZXInLFxuXHRcdG92ZXJsYXlZOiAnYm90dG9tJyxcblx0fSxcbl07XG5cbmNvbnN0IHJpZ2h0Rmlyc3RQb3NpdGlvbnM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbXG5cdC8vIHJpZ2h0IHNpZGVcblx0e1xuXHRcdG9yaWdpblg6ICdlbmQnLFxuXHRcdG9yaWdpblk6ICdjZW50ZXInLFxuXHRcdG92ZXJsYXlYOiAnc3RhcnQnLFxuXHRcdG92ZXJsYXlZOiAnY2VudGVyJyxcblx0fSxcblx0Ly8gRmFsbGJhY2sgMTogbGVmdCAob3Bwb3NpdGUgaG9yaXpvbnRhbClcblx0e1xuXHRcdG9yaWdpblg6ICdzdGFydCcsXG5cdFx0b3JpZ2luWTogJ2NlbnRlcicsXG5cdFx0b3ZlcmxheVg6ICdlbmQnLFxuXHRcdG92ZXJsYXlZOiAnY2VudGVyJyxcblx0fSxcblx0Ly8gRmFsbGJhY2sgMjogYm90dG9tICh2ZXJ0aWNhbCBmYWxsYmFjaylcblx0e1xuXHRcdG9yaWdpblg6ICdjZW50ZXInLFxuXHRcdG9yaWdpblk6ICdib3R0b20nLFxuXHRcdG92ZXJsYXlYOiAnY2VudGVyJyxcblx0XHRvdmVybGF5WTogJ3RvcCcsXG5cdH0sXG5cdC8vIEZhbGxiYWNrIDM6IHRvcCAodmVydGljYWwgZmFsbGJhY2spXG5cdHtcblx0XHRvcmlnaW5YOiAnY2VudGVyJyxcblx0XHRvcmlnaW5ZOiAndG9wJyxcblx0XHRvdmVybGF5WDogJ2NlbnRlcicsXG5cdFx0b3ZlcmxheVk6ICdib3R0b20nLFxuXHR9LFxuXTtcblxuY29uc3QgUE9TSVRJT05fTUFQOiBSZWNvcmQ8J3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcsIENvbm5lY3RlZFBvc2l0aW9uW10+ID0ge1xuXHR0b3A6IHRvcEZpcnN0UG9zaXRpb25zLFxuXHRib3R0b206IGJvdHRvbUZpcnN0UG9zaXRpb25zLFxuXHRsZWZ0OiBsZWZ0Rmlyc3RQb3NpdGlvbnMsXG5cdHJpZ2h0OiByaWdodEZpcnN0UG9zaXRpb25zLFxufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJybkhvdmVyQ2FyZENvbnRlbnRTZXJ2aWNlIHtcblx0cHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcblx0cHJpdmF0ZSByZWFkb25seSBfem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9wc0J1aWxkZXIgPSBpbmplY3QoT3ZlcmxheVBvc2l0aW9uQnVpbGRlcik7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfY29udGVudCA9IHNpZ25hbDxUZW1wbGF0ZVBvcnRhbDx1bmtub3duPiB8IG51bGw+KG51bGwpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSA9IHNpZ25hbDwnb3BlbicgfCAnY2xvc2VkJz4oJ2Nsb3NlZCcpO1xuXG5cdHByaXZhdGUgX2NvbmZpZzogQnJuSG92ZXJDYXJkT3B0aW9ucyA9IHt9O1xuXHRwcml2YXRlIF9vdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcblx0cHJpdmF0ZSBfcG9zaXRpb25TdHJhdGVneT86IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneTtcblx0cHJpdmF0ZSBfZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfcG9zaXRpb25DaGFuZ2VzT2JzZXJ2YWJsZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcblx0XHRPYnNlcnZhYmxlPENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZT4gfCB1bmRlZmluZWRcblx0Pih1bmRlZmluZWQpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9vdmVybGF5SG92ZXJlZE9ic2VydmFibGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTxib29sZWFuPiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgcG9zaXRpb25DaGFuZ2VzJDogT2JzZXJ2YWJsZTxDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2U+ID0gdGhpcy5fcG9zaXRpb25DaGFuZ2VzT2JzZXJ2YWJsZXMkLnBpcGUoXG5cdFx0c3dpdGNoTWFwKChwb3NpdGlvbkNoYW5nZU9ic2VydmFibGUpID0+IChwb3NpdGlvbkNoYW5nZU9ic2VydmFibGUgPyBwb3NpdGlvbkNoYW5nZU9ic2VydmFibGUgOiBvZih1bmRlZmluZWQpKSksXG5cdFx0ZmlsdGVyKChjaGFuZ2UpOiBjaGFuZ2UgaXMgTm9uTnVsbGFibGU8Q29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlPiA9PiBjaGFuZ2UgIT09IHVuZGVmaW5lZCAmJiBjaGFuZ2UgIT09IG51bGwpLFxuXHQpO1xuXHRwdWJsaWMgcmVhZG9ubHkgaG92ZXJlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9vdmVybGF5SG92ZXJlZE9ic2VydmFibGVzJC5waXBlKFxuXHRcdHN3aXRjaE1hcCgob3ZlcmxheUhvdmVyZWRPYnNlcnZhYmxlKSA9PiAob3ZlcmxheUhvdmVyZWRPYnNlcnZhYmxlID8gb3ZlcmxheUhvdmVyZWRPYnNlcnZhYmxlIDogb2YoZmFsc2UpKSksXG5cdCk7XG5cblx0cHVibGljIHJlYWRvbmx5IHN0YXRlID0gdGhpcy5fc3RhdGUuYXNSZWFkb25seSgpO1xuXHRwdWJsaWMgcmVhZG9ubHkgc2lkZTogU2lnbmFsPCd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnPiA9IHRvU2lnbmFsKFxuXHRcdHRoaXMucG9zaXRpb25DaGFuZ2VzJC5waXBlKFxuXHRcdFx0bWFwPENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSwgJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCc+KChjaGFuZ2UpID0+XG5cdFx0XHRcdC8vIHRvZG86IGJldHRlciB0cmFuc2xhdGlvbiBvciBhZGp1c3RpbmcgaGxtIHRvIHRha2UgdGhhdCBpbnRvIGFjY291bnRcblx0XHRcdFx0Y2hhbmdlLmNvbm5lY3Rpb25QYWlyLm9yaWdpblkgPT09ICdjZW50ZXInXG5cdFx0XHRcdFx0PyBjaGFuZ2UuY29ubmVjdGlvblBhaXIub3JpZ2luWCA9PT0gJ3N0YXJ0J1xuXHRcdFx0XHRcdFx0PyAnbGVmdCdcblx0XHRcdFx0XHRcdDogJ3JpZ2h0J1xuXHRcdFx0XHRcdDogY2hhbmdlLmNvbm5lY3Rpb25QYWlyLm9yaWdpblksXG5cdFx0XHQpLFxuXHRcdCksXG5cdFx0eyBpbml0aWFsVmFsdWU6ICdib3R0b20nIH0sXG5cdCk7XG5cblx0cHVibGljIHNldENvbmZpZyhjb25maWc6IEJybkhvdmVyQ2FyZE9wdGlvbnMpIHtcblx0XHR0aGlzLl9jb25maWcgPSBjb25maWc7XG5cdFx0aWYgKGNvbmZpZy5hdHRhY2hUbykge1xuXHRcdFx0Y29uc3QgYWxpZ24gPSBjb25maWcuYWxpZ24gPz8gJ2JvdHRvbSc7XG5cdFx0XHRjb25zdCBwb3NpdGlvbnMgPSBjb25maWcuYXR0YWNoUG9zaXRpb25zID8/IFBPU0lUSU9OX01BUFthbGlnbl07XG5cblx0XHRcdHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9wc0J1aWxkZXIuZmxleGlibGVDb25uZWN0ZWRUbyhjb25maWcuYXR0YWNoVG8pLndpdGhQb3NpdGlvbnMocG9zaXRpb25zKTtcblxuXHRcdFx0Y29uc3Qgb2Zmc2V0ID0gY29uZmlnLnNpZGVPZmZzZXQgPz8gMDtcblx0XHRcdGlmIChhbGlnbiA9PT0gJ2xlZnQnIHx8IGFsaWduID09PSAncmlnaHQnKSB7XG5cdFx0XHRcdHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kud2l0aERlZmF1bHRPZmZzZXRYKGFsaWduID09PSAnbGVmdCcgPyAtb2Zmc2V0IDogb2Zmc2V0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kud2l0aERlZmF1bHRPZmZzZXRZKGFsaWduID09PSAndG9wJyA/IC1vZmZzZXQgOiBvZmZzZXQpO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLl9jb25maWcgPSB7XG5cdFx0XHRcdC4uLnRoaXMuX2NvbmZpZyxcblx0XHRcdFx0cG9zaXRpb25TdHJhdGVneTogdGhpcy5fcG9zaXRpb25TdHJhdGVneSxcblx0XHRcdFx0c2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG5cdFx0XHR9O1xuXHRcdFx0dGhpcy5fcG9zaXRpb25DaGFuZ2VzT2JzZXJ2YWJsZXMkLm5leHQodGhpcy5fcG9zaXRpb25TdHJhdGVneS5wb3NpdGlvbkNoYW5nZXMpO1xuXHRcdH1cblx0XHR0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUodGhpcy5fY29uZmlnKTtcblx0fVxuXG5cdHB1YmxpYyBzZXRDb250ZW50KHZhbHVlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IEJybkhvdmVyQ2FyZENvbnRlbnQsIHZjcjogVmlld0NvbnRhaW5lclJlZikge1xuXHRcdHRoaXMuX2NvbnRlbnQuc2V0KG5ldyBUZW1wbGF0ZVBvcnRhbDx1bmtub3duPih2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmID8gdmFsdWUgOiB2YWx1ZS50ZW1wbGF0ZSwgdmNyKSk7XG5cblx0XHRpZiAoIXRoaXMuX292ZXJsYXlSZWYpIHtcblx0XHRcdHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh0aGlzLl9jb25maWcpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBzZXRTdGF0ZShuZXdTdGF0ZTogJ29wZW4nIHwgJ2Nsb3NlZCcpIHtcblx0XHR0aGlzLl9zdGF0ZS5zZXQobmV3U3RhdGUpO1xuXHR9XG5cblx0cHVibGljIHNob3coKSB7XG5cdFx0Y29uc3QgY29udGVudCA9IHRoaXMuX2NvbnRlbnQoKTtcblx0XHRpZiAoIWNvbnRlbnQgfHwgIXRoaXMuX292ZXJsYXlSZWYpIHJldHVybjtcblxuXHRcdHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuXHRcdHRoaXMuX292ZXJsYXlSZWY/LmF0dGFjaChjb250ZW50KTtcblxuXHRcdHRoaXMuX2Rlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG5cdFx0dGhpcy5fb3ZlcmxheUhvdmVyZWRPYnNlcnZhYmxlcyQubmV4dChcblx0XHRcdGNyZWF0ZUhvdmVyT2JzZXJ2YWJsZSh0aGlzLl9vdmVybGF5UmVmLmhvc3RFbGVtZW50LCB0aGlzLl96b25lLCB0aGlzLl9kZXN0cm95ZWQkKS5waXBlKG1hcCgoZSkgPT4gZS5ob3ZlcikpLFxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgaGlkZSgpIHtcblx0XHR0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKTtcblx0XHR0aGlzLl9kZXN0cm95ZWQkLm5leHQoKTtcblx0XHR0aGlzLl9kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG5cdFx0dGhpcy5fZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cdH1cbn1cblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JybkhvdmVyQ2FyZFRyaWdnZXJdOm5vdChuZy1jb250YWluZXIpLFticm5Ib3ZlckNhcmRUcmlnZ2VyRm9yXTpub3QobmctY29udGFpbmVyKScsXG5cdGV4cG9ydEFzOiAnYnJuSG92ZXJDYXJkVHJpZ2dlcicsXG59KVxuZXhwb3J0IGNsYXNzIEJybkhvdmVyQ2FyZFRyaWdnZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblx0cHJpdmF0ZSByZWFkb25seSBfdmNyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2VsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9jb250ZW50U2VydmljZSA9IGluamVjdChCcm5Ib3ZlckNhcmRDb250ZW50U2VydmljZSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzTW9uaXRvciA9IGluamVjdChGb2N1c01vbml0b3IpO1xuXG5cdHB1YmxpYyByZWFkb25seSBmb2N1c2VkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsKS5waXBlKG1hcCgoZSkgPT4gZSAhPT0gbnVsbCkpO1xuXG5cdHB1YmxpYyByZWFkb25seSBob3ZlcmVkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG1lcmdlKFxuXHRcdGZyb21FdmVudCh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAnY2xpY2snKS5waXBlKG1hcCgoKSA9PiBmYWxzZSkpLFxuXHRcdGNyZWF0ZUhvdmVyT2JzZXJ2YWJsZSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCB0aGlzLl96b25lLCB0aGlzLl9kZXN0cm95JCkucGlwZShtYXAoKGUpID0+IGUuaG92ZXIpKSxcblx0XHR0aGlzLl9jb250ZW50U2VydmljZS5ob3ZlcmVkJCxcblx0XHR0aGlzLmZvY3VzZWQkLFxuXHQpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cdHB1YmxpYyByZWFkb25seSBzaG93aW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuaG92ZXJlZCQucGlwZShcblx0XHQvLyB3ZSBzZXQgdGhlIHN0YXRlIHRvIG9wZW4gaGVyZSBiZWNhdXNlIHdlIGFyZSBhYm91dCB0byBvcGVuIHNob3cgdGhlIGNvbnRlbnRcblx0XHR0YXAoKHZpc2libGUpID0+IHZpc2libGUgJiYgdGhpcy5fY29udGVudFNlcnZpY2Uuc2V0U3RhdGUoJ29wZW4nKSksXG5cdFx0c3dpdGNoTWFwKCh2aXNpYmxlKSA9PiB7XG5cdFx0XHQvLyB3ZSBhcmUgZGVsYXlpbmcgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZS1hYmxlIGlucHV0XG5cdFx0XHRyZXR1cm4gb2YodmlzaWJsZSkucGlwZShkZWxheSh2aXNpYmxlID8gdGhpcy5zaG93RGVsYXkoKSA6IHRoaXMuaGlkZURlbGF5KCkpKTtcblx0XHR9KSxcblx0XHRzd2l0Y2hNYXAoKHZpc2libGUpID0+IHtcblx0XHRcdC8vIGRvbid0IGRvIGFueXRoaW5nIHdoZW4gd2UgYXJlIGluIHRoZSBwcm9jZXNzIG9mIHNob3dpbmcgdGhlIGNvbnRlbnRcblx0XHRcdGlmICh2aXNpYmxlKSByZXR1cm4gb2YodmlzaWJsZSk7XG5cdFx0XHQvLyB3ZSBzZXQgdGhlIHN0YXRlIHRvIGNsb3NlZCBoZXJlIHRvIHRyaWdnZXIgYW55IGFuaW1hdGlvbnMgZm9yIHRoZSBlbGVtZW50IGxlYXZpbmdcblx0XHRcdHRoaXMuX2NvbnRlbnRTZXJ2aWNlLnNldFN0YXRlKCdjbG9zZWQnKTtcblx0XHRcdC8vIHRoZW4gZGVsYXkgdG8gd2FpdCBmb3IgdGhlIGxlYXZpbmcgYW5pbWF0aW9uIHRvIGZpbmlzaFxuXHRcdFx0cmV0dXJuIG9mKHZpc2libGUpLnBpcGUoZGVsYXkodGhpcy5hbmltYXRpb25EZWxheSgpKSk7XG5cdFx0fSksXG5cdFx0ZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcblx0XHRzaGFyZSgpLFxuXHRcdHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG5cdCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdE9wdGlvbnMgPSBpbmplY3RCcm5Ib3ZlckNhcmREZWZhdWx0T3B0aW9ucygpO1xuXHRwdWJsaWMgcmVhZG9ubHkgc2hvd0RlbGF5ID0gaW5wdXQ8bnVtYmVyLCBOdW1iZXJJbnB1dD4odGhpcy5fZGVmYXVsdE9wdGlvbnMuc2hvd0RlbGF5LCB7XG5cdFx0dHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUsXG5cdH0pO1xuXHRwdWJsaWMgcmVhZG9ubHkgaGlkZURlbGF5ID0gaW5wdXQ8bnVtYmVyLCBOdW1iZXJJbnB1dD4odGhpcy5fZGVmYXVsdE9wdGlvbnMuaGlkZURlbGF5LCB7XG5cdFx0dHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUsXG5cdH0pO1xuXHRwdWJsaWMgcmVhZG9ubHkgYW5pbWF0aW9uRGVsYXkgPSBpbnB1dDxudW1iZXIsIE51bWJlcklucHV0Pih0aGlzLl9kZWZhdWx0T3B0aW9ucy5hbmltYXRpb25EZWxheSwge1xuXHRcdHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlLFxuXHR9KTtcblx0cHVibGljIHJlYWRvbmx5IHNpZGVPZmZzZXQgPSBpbnB1dDxudW1iZXIsIE51bWJlcklucHV0Pih0aGlzLl9kZWZhdWx0T3B0aW9ucy5zaWRlT2Zmc2V0LCB7XG5cdFx0dHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUsXG5cdH0pO1xuXHRwdWJsaWMgcmVhZG9ubHkgYWxpZ24gPSBpbnB1dDwndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0Jz4odGhpcy5fZGVmYXVsdE9wdGlvbnMuYWxpZ24pO1xuXG5cdHB1YmxpYyByZWFkb25seSBicm5Ib3ZlckNhcmRUcmlnZ2VyRm9yID0gaW5wdXQ8VGVtcGxhdGVSZWY8dW5rbm93bj4gfCBCcm5Ib3ZlckNhcmRDb250ZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXHRwdWJsaWMgcmVhZG9ubHkgbXV0YWJsZUJybkhvdmVyQ2FyZFRyaWdnZXJGb3IgPSBjb21wdXRlZCgoKSA9PiBzaWduYWwodGhpcy5icm5Ib3ZlckNhcmRUcmlnZ2VyRm9yKCkpKTtcblx0cHJpdmF0ZSByZWFkb25seSBfYnJuSG92ZXJDYXJkVHJpZ2dlckZvclN0YXRlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tdXRhYmxlQnJuSG92ZXJDYXJkVHJpZ2dlckZvcigpKCkpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IHRoaXMuX2JybkhvdmVyQ2FyZFRyaWdnZXJGb3JTdGF0ZSgpO1xuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0aWYgKHZhbHVlKSB7XG5cdFx0XHRcdFx0dGhpcy5fY29udGVudFNlcnZpY2Uuc2V0Q29udGVudCh2YWx1ZSwgdGhpcy5fdmNyKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgbmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fY29udGVudFNlcnZpY2Uuc2V0Q29uZmlnKHsgYXR0YWNoVG86IHRoaXMuX2VsLCBhbGlnbjogdGhpcy5hbGlnbigpLCBzaWRlT2Zmc2V0OiB0aGlzLnNpZGVPZmZzZXQoKSB9KTtcblx0XHR0aGlzLnNob3dpbmckLnN1YnNjcmliZSgoaXNIb3ZlcmVkKSA9PiB7XG5cdFx0XHRpZiAoaXNIb3ZlcmVkKSB7XG5cdFx0XHRcdHRoaXMuX2NvbnRlbnRTZXJ2aWNlLnNob3coKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuX2NvbnRlbnRTZXJ2aWNlLmhpZGUoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG5cdFx0dGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcblx0XHR0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWwpO1xuXHR9XG59XG4iXX0=","import { contentChild, Directive } from '@angular/core';\nimport { BrnHoverCardContent, BrnHoverCardContentService, BrnHoverCardTrigger } from './brn-hover-card-content.service';\nimport * as i0 from \"@angular/core\";\nexport class BrnHoverCard {\n _trigger = contentChild(BrnHoverCardTrigger);\n _content = contentChild(BrnHoverCardContent);\n ngAfterContentInit() {\n if (!this._trigger() || !this._content())\n return;\n this._trigger()?.mutableBrnHoverCardTriggerFor().set(this._content());\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCard, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.0.7\", type: BrnHoverCard, isStandalone: true, selector: \"[brnHoverCard],brn-hover-card\", providers: [BrnHoverCardContentService], queries: [{ propertyName: \"_trigger\", first: true, predicate: BrnHoverCardTrigger, descendants: true, isSignal: true }, { propertyName: \"_content\", first: true, predicate: BrnHoverCardContent, descendants: true, isSignal: true }], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnHoverCard, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnHoverCard],brn-hover-card',\n providers: [BrnHoverCardContentService],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWhvdmVyLWNhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2hvdmVyLWNhcmQvc3JjL2xpYi9icm4taG92ZXItY2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlCLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDBCQUEwQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBTXhILE1BQU0sT0FBTyxZQUFZO0lBQ1AsUUFBUSxHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzdDLFFBQVEsR0FBRyxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUV2RCxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFPO1FBQ2pELElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSw2QkFBNkIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDOzBIQVBXLFlBQVk7OEdBQVosWUFBWSw0RUFGYixDQUFDLDBCQUEwQixDQUFDLGdFQUdFLG1CQUFtQiwyRkFDbkIsbUJBQW1COzsyRkFGaEQsWUFBWTtrQkFKeEIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztpQkFDdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEFmdGVyQ29udGVudEluaXQsIGNvbnRlbnRDaGlsZCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcm5Ib3ZlckNhcmRDb250ZW50LCBCcm5Ib3ZlckNhcmRDb250ZW50U2VydmljZSwgQnJuSG92ZXJDYXJkVHJpZ2dlciB9IGZyb20gJy4vYnJuLWhvdmVyLWNhcmQtY29udGVudC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JybkhvdmVyQ2FyZF0sYnJuLWhvdmVyLWNhcmQnLFxuXHRwcm92aWRlcnM6IFtCcm5Ib3ZlckNhcmRDb250ZW50U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEJybkhvdmVyQ2FyZCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuXHRwcml2YXRlIHJlYWRvbmx5IF90cmlnZ2VyID0gY29udGVudENoaWxkKEJybkhvdmVyQ2FyZFRyaWdnZXIpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9jb250ZW50ID0gY29udGVudENoaWxkKEJybkhvdmVyQ2FyZENvbnRlbnQpO1xuXG5cdHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG5cdFx0aWYgKCF0aGlzLl90cmlnZ2VyKCkgfHwgIXRoaXMuX2NvbnRlbnQoKSkgcmV0dXJuO1xuXHRcdHRoaXMuX3RyaWdnZXIoKT8ubXV0YWJsZUJybkhvdmVyQ2FyZFRyaWdnZXJGb3IoKS5zZXQodGhpcy5fY29udGVudCgpKTtcblx0fVxufVxuIl19","import { BrnHoverCard } from './lib/brn-hover-card';\nimport { BrnHoverCardContent, BrnHoverCardTrigger } from './lib/brn-hover-card-content.service';\nexport * from './lib/brn-hover-card';\nexport * from './lib/brn-hover-card-content.service';\nexport * from './lib/brn-hover-card.token';\nexport const BrnHoverCardImports = [BrnHoverCard, BrnHoverCardContent, BrnHoverCardTrigger];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2hvdmVyLWNhcmQvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVoRyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJuSG92ZXJDYXJkIH0gZnJvbSAnLi9saWIvYnJuLWhvdmVyLWNhcmQnO1xuaW1wb3J0IHsgQnJuSG92ZXJDYXJkQ29udGVudCwgQnJuSG92ZXJDYXJkVHJpZ2dlciB9IGZyb20gJy4vbGliL2Jybi1ob3Zlci1jYXJkLWNvbnRlbnQuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1ob3Zlci1jYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1ob3Zlci1jYXJkLWNvbnRlbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9icm4taG92ZXItY2FyZC50b2tlbic7XG5cbmV4cG9ydCBjb25zdCBCcm5Ib3ZlckNhcmRJbXBvcnRzID0gW0JybkhvdmVyQ2FyZCwgQnJuSG92ZXJDYXJkQ29udGVudCwgQnJuSG92ZXJDYXJkVHJpZ2dlcl0gYXMgY29uc3Q7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcnRhbi1uZy1icmFpbi1ob3Zlci1jYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9ob3Zlci1jYXJkL3NyYy9zcGFydGFuLW5nLWJyYWluLWhvdmVyLWNhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { inject, NgZone, Renderer2, signal, Injectable, InjectionToken, ElementR
5
5
  import { toObservable, toSignal } from '@angular/core/rxjs-interop';
6
6
  import { createHoverObservable, waitForElementAnimations, computedPrevious, isElement } from '@spartan-ng/brain/core';
7
7
  import { Subject, BehaviorSubject, of, fromEvent, merge, combineLatest } from 'rxjs';
8
- import { switchMap, share, takeUntil, map, pairwise, filter, startWith, debounceTime, distinctUntilChanged, delay, tap } from 'rxjs/operators';
8
+ import { switchMap, share, takeUntil, map, pairwise, filter, startWith, debounceTime, delay, tap, distinctUntilChanged } from 'rxjs/operators';
9
9
  import * as i1 from '@spartan-ng/brain/button';
10
10
  import { BrnButton } from '@spartan-ng/brain/button';
11
11
  import { hasModifierKey } from '@angular/cdk/keycodes';
@@ -224,7 +224,9 @@ class BrnNavigationMenuLink {
224
224
  /**
225
225
  * Used to identify the link as the currently active page.
226
226
  */
227
- active = input(undefined, { transform: booleanAttribute });
227
+ active = input(undefined, {
228
+ transform: booleanAttribute,
229
+ });
228
230
  _isActive = computed(() => {
229
231
  const active = this.active();
230
232
  if (active !== undefined)
@@ -254,6 +256,11 @@ class BrnNavigationMenuLink {
254
256
  activate() {
255
257
  if (!this._hasParentNavMenuItem)
256
258
  return;
259
+ // Only activate on hover if openOn is 'hover' or menu is already open
260
+ const openOn = this._navigationMenu.openOn();
261
+ const isMenuOpen = this._navigationMenu.value() !== undefined;
262
+ if (openOn === 'click' && !isMenuOpen)
263
+ return;
257
264
  this._navigationMenu.value.set(this._navigationMenuItem.id());
258
265
  }
259
266
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnNavigationMenuLink, deps: [], target: i0.ɵɵFactoryTarget.Directive });
@@ -298,6 +305,7 @@ class BrnNavigationMenu {
298
305
  _dir = inject(Directionality);
299
306
  _zone = inject(NgZone);
300
307
  _destroy$ = new Subject();
308
+ _anyTriggerHovered$ = new BehaviorSubject(false);
301
309
  el = inject(ElementRef);
302
310
  parentNavMenu = injectBrnParentNavMenu();
303
311
  /**
@@ -312,6 +320,11 @@ class BrnNavigationMenu {
312
320
  * How much time a user has to enter another trigger without incurring a delay again.
313
321
  */
314
322
  skipDelayDuration = input(300);
323
+ /**
324
+ * Controls whether the menu opens on hover or click.
325
+ * When 'click', initial open requires a click, but hover still switches between items once open.
326
+ */
327
+ openOn = input('hover');
315
328
  /** internal **/
316
329
  direction = this._dir.valueSignal;
317
330
  /**
@@ -357,14 +370,28 @@ class BrnNavigationMenu {
357
370
  }, this.skipDelayDuration());
358
371
  }
359
372
  });
360
- combineLatest([this._hovered$, this._contentHovered$])
361
- .pipe(debounceTime(0), filter(([hovered, contentHovered]) => !(hovered === undefined && contentHovered === undefined)), takeUntil(this._destroy$))
362
- .subscribe(([hovered, contentHovered]) => {
363
- if (!hovered && !contentHovered) {
373
+ combineLatest([this._hovered$, this._contentHovered$, this._anyTriggerHovered$])
374
+ .pipe(debounceTime(0), filter(([hovered, contentHovered]) => !(hovered === undefined && contentHovered === undefined)), switchMap(([hovered, contentHovered, triggerHovered]) => {
375
+ const shouldClose = !hovered && !contentHovered && !triggerHovered;
376
+ // Add delay before closing in click mode to allow for sibling hover transitions
377
+ if (shouldClose && this.openOn() === 'click') {
378
+ return of([hovered, contentHovered, triggerHovered]).pipe(delay(150));
379
+ }
380
+ return of([hovered, contentHovered, triggerHovered]);
381
+ }), takeUntil(this._destroy$))
382
+ .subscribe(([hovered, contentHovered, triggerHovered]) => {
383
+ if (!hovered && !contentHovered && !triggerHovered) {
364
384
  this.value.set(undefined);
365
385
  }
366
386
  });
367
387
  }
388
+ /**
389
+ * Called by triggers to report their hover state for coordination.
390
+ * @internal
391
+ */
392
+ setTriggerHovered(hovered) {
393
+ this._anyTriggerHovered$.next(hovered);
394
+ }
368
395
  isLink(id) {
369
396
  return !!this._linkMenuItems().find((item) => item.id() === id);
370
397
  }
@@ -380,7 +407,7 @@ class BrnNavigationMenu {
380
407
  clearTimeout(this._skipDelayTimerRef);
381
408
  }
382
409
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnNavigationMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive });
383
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.0.7", type: BrnNavigationMenu, isStandalone: true, selector: "nav[brnNavigationMenu]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, delayDuration: { classPropertyName: "delayDuration", publicName: "delayDuration", isSignal: true, isRequired: false, transformFunction: null }, skipDelayDuration: { classPropertyName: "skipDelayDuration", publicName: "skipDelayDuration", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { attributes: { "aria-label": "Main", "data-slot": "navigation-menu" }, listeners: { "keydown": "handleKeydown($event)" }, properties: { "attr.data-orientation": "orientation()", "attr.dir": "direction()" } }, providers: [provideBrnNavigationMenu(BrnNavigationMenu)], queries: [{ propertyName: "_navAndSubnavMenuItems", predicate: BrnNavigationMenuItem, descendants: true, isSignal: true }], ngImport: i0 });
410
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.0.7", type: BrnNavigationMenu, isStandalone: true, selector: "nav[brnNavigationMenu]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, delayDuration: { classPropertyName: "delayDuration", publicName: "delayDuration", isSignal: true, isRequired: false, transformFunction: null }, skipDelayDuration: { classPropertyName: "skipDelayDuration", publicName: "skipDelayDuration", isSignal: true, isRequired: false, transformFunction: null }, openOn: { classPropertyName: "openOn", publicName: "openOn", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { attributes: { "aria-label": "Main", "data-slot": "navigation-menu" }, listeners: { "keydown": "handleKeydown($event)" }, properties: { "attr.data-orientation": "orientation()", "attr.dir": "direction()" } }, providers: [provideBrnNavigationMenu(BrnNavigationMenu)], queries: [{ propertyName: "_navAndSubnavMenuItems", predicate: BrnNavigationMenuItem, descendants: true, isSignal: true }], ngImport: i0 });
384
411
  }
385
412
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnNavigationMenu, decorators: [{
386
413
  type: Directive,
@@ -520,8 +547,24 @@ class BrnNavigationMenuTrigger {
520
547
  _isActive$ = toObservable(this._navigationMenuItem.isActive).pipe(map((value) => ({ type: 'set', visible: value })));
521
548
  _clicked$ = fromEvent(this._el.nativeElement, 'click').pipe(map(() => !this._navigationMenuItem.isActive()), map((value) => ({ type: 'click', visible: value })));
522
549
  _hovered$ = merge(createHoverObservable(this._el.nativeElement, this._zone, this._destroy$), this._contentService.hovered$.pipe(map((v) => ({ hover: v, relatedTarget: null })))).pipe(
550
+ // Report hover state to parent for coordination
551
+ tap((e) => this._navigationMenu.setTriggerHovered(e.hover)),
523
552
  // Hover event is NOT allowed when a sub-navigation is currently visible, AND the current hover event is false.
524
- filter((e) => !(this._isSubNavVisible() && !e.hover)), map((e) => ({ type: 'hover', visible: e.hover, relatedTarget: e.relatedTarget })));
553
+ filter((e) => !(this._isSubNavVisible() && !e.hover)),
554
+ // Block hover-open when openOn='click' and no menu is currently open
555
+ filter((e) => {
556
+ const openOn = this._navigationMenu.openOn();
557
+ const isMenuOpen = this._navigationMenu.value() !== undefined;
558
+ // Allow if: openOn is 'hover', OR menu is already open, OR this is hover-out
559
+ return openOn === 'hover' || isMenuOpen || !e.hover;
560
+ }),
561
+ // Add stabilization delay for hover-out in click mode to prevent race conditions
562
+ switchMap((e) => {
563
+ if (!e.hover && this._navigationMenu.openOn() === 'click') {
564
+ return of(e).pipe(delay(50));
565
+ }
566
+ return of(e);
567
+ }), map((e) => ({ type: 'hover', visible: e.hover, relatedTarget: e.relatedTarget })));
525
568
  _showing$ = merge(this._isActive$, this._clicked$, this._hovered$).pipe(debounceTime(0), distinctUntilChanged((prev, curr) => prev.visible === curr.visible), switchMap((ev) => {
526
569
  const shouldDelay = ev.visible && ev.type !== 'click' && this._isOpenDelayed();
527
570
  return of(ev).pipe(delay(shouldDelay ? this._delayDuration() : 0));