UNPKG

@ng-doc/ui-kit

Version:

<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>

1 lines 31.4 kB
{"version":3,"file":"ng-doc-ui-kit-components-overlay-container.mjs","sources":["../tmp-esm2022/components/overlay-container/overlay-container.component.js","../tmp-esm2022/components/overlay-container/ng-doc-ui-kit-components-overlay-container.js"],"sourcesContent":["import { AnimationBuilder } from '@angular/animations';\nimport { FlexibleConnectedPositionStrategy, } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, DOCUMENT, ElementRef, HostBinding, inject, Input, NgZone, ViewChild, } from '@angular/core';\nimport { NgDocFocusControlComponent } from '@ng-doc/ui-kit/components/focus-control';\nimport { NgDocOverlayPointerComponent } from '@ng-doc/ui-kit/components/overlay-pointer';\nimport { NgDocEventSwitcherDirective } from '@ng-doc/ui-kit/directives/event-switcher';\nimport { NgDocFocusCatcherDirective } from '@ng-doc/ui-kit/directives/focus-catcher';\nimport { toElement } from '@ng-doc/ui-kit/helpers';\nimport { ngDocZoneOptimize } from '@ng-doc/ui-kit/observables';\nimport { NgDocFocusUtils, NgDocOverlayUtils } from '@ng-doc/ui-kit/utils';\nimport { PolymorpheusModule, PolymorpheusOutletDirective } from '@tinkoff/ng-polymorpheus';\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@tinkoff/ng-polymorpheus\";\nexport class NgDocOverlayContainerComponent {\n constructor() {\n this.elementRef = inject(ElementRef);\n this.documentRef = inject(DOCUMENT);\n this.changeDetectorRef = inject(ChangeDetectorRef);\n this.ngZone = inject(NgZone);\n this.animationBuilder = inject(AnimationBuilder);\n this.content = '';\n this.relativePosition = null;\n this.animationEvent$ = new Subject();\n this.isOpened = true;\n }\n ngOnInit() {\n if (this.config?.positionStrategy instanceof FlexibleConnectedPositionStrategy) {\n this.config.positionStrategy.positionChanges\n .pipe(distinctUntilChanged((a, b) => a.connectionPair === b.connectionPair), ngDocZoneOptimize(this.ngZone))\n .subscribe((change) => {\n this.currentPosition = NgDocOverlayUtils.getOverlayPosition(change.connectionPair);\n this.relativePosition = NgDocOverlayUtils.getRelativePosition(this.currentPosition);\n this.changeDetectorRef.markForCheck();\n });\n }\n }\n ngAfterViewInit() {\n this.runAnimation(this.config?.openAnimation || []);\n }\n get contactBorder() {\n return !!this.config?.contactBorder;\n }\n get isFocused() {\n return !!this.focusCatcher?.focused;\n }\n get animationEvent() {\n return this.animationEvent$.asObservable();\n }\n get overlayAlign() {\n return this.currentPosition\n ? NgDocOverlayUtils.getPositionAlign(NgDocOverlayUtils.toConnectedPosition(this.currentPosition))\n : null;\n }\n close() {\n if (this.isOpened) {\n this.runAnimation(this.config?.closeAnimation || [], true);\n this.isOpened = false;\n this.changeDetectorRef.markForCheck();\n }\n }\n focus() {\n if (this.contentContainer) {\n NgDocFocusUtils.focusClosestElement(toElement(this.contentContainer), toElement(this.contentContainer));\n }\n }\n markForCheck() {\n this.changeDetectorRef.markForCheck();\n }\n runAnimation(animation, close = false) {\n const player = this.animationBuilder\n .build(animation)\n .create(this.elementRef.nativeElement);\n player.onStart(() => this.animationEvent$.next(close ? 'beforeClose' : 'beforeOpen'));\n player.onDone(() => this.animationEvent$.next(close ? 'afterClose' : 'afterOpen'));\n player.play();\n }\n ngOnDestroy() {\n if (this.isFocused && this.config && this.config.viewContainerRef) {\n NgDocFocusUtils.focusClosestElement(this.config.viewContainerRef.element.nativeElement, this.documentRef.body, false);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgDocOverlayContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: NgDocOverlayContainerComponent, isStandalone: true, selector: \"ng-doc-overlay-container\", inputs: { content: \"content\", config: \"config\" }, host: { properties: { \"attr.data-ng-doc-overlay-position\": \"this.relativePosition\", \"attr.data-ng-doc-overlay-with-contact-border\": \"this.contactBorder\" } }, viewQueries: [{ propertyName: \"contentContainer\", first: true, predicate: [\"contentContainer\"], descendants: true, read: ElementRef, static: true }, { propertyName: \"focusCatcher\", first: true, predicate: NgDocFocusCatcherDirective, descendants: true }, { propertyName: \"outlet\", first: true, predicate: PolymorpheusOutletDirective, descendants: true, static: true }], ngImport: i0, template: \"<ng-doc-overlay-pointer\\n\\t[overlayPosition]=\\\"relativePosition\\\"\\n\\t[overlayAlign]=\\\"overlayAlign\\\"\\n\\t[withPointer]=\\\"!!config?.withPointer\\\"\\n\\t[ngDocEventSwitcher]=\\\"config?.viewContainerRef?.element?.nativeElement ?? null\\\"\\n\\t[events]=\\\"['focusin', 'focusout', 'keydown', 'scroll']\\\">\\n\\t<ng-doc-focus-control\\n\\t\\t[focusHost]=\\\"this.config?.viewContainerRef?.element?.nativeElement ?? null\\\"\\n\\t\\tngDocFocusCatcher>\\n\\t\\t<div class=\\\"ng-doc-overlay-content\\\" [tabIndex]=\\\"-1\\\" #contentContainer>\\n\\t\\t\\t<ng-container *polymorpheusOutlet=\\\"content as text\\\">{{ text }}</ng-container>\\n\\t\\t</div>\\n\\t</ng-doc-focus-control>\\n</ng-doc-overlay-pointer>\\n\", styles: [\":host{display:block;height:auto;width:100%}.ng-doc-overlay-content{width:100%;height:100%;background-color:var(--ng-doc-overlay-background);border:1px solid var(--ng-doc-overlay-border);border-radius:var(--ng-doc-overlay-border-radius);box-shadow:var(--ng-doc-overlay-shadow);overflow:auto}:host[data-ng-doc-overlay-position=top]{transform-origin:bottom}:host[data-ng-doc-overlay-position=top][data-ng-doc-overlay-with-contact-border=false] .ng-doc-overlay-content{border-bottom:none}:host[data-ng-doc-overlay-position=bottom]{transform-origin:top}:host[data-ng-doc-overlay-position=bottom][data-ng-doc-overlay-with-contact-border=false] .ng-doc-overlay-content{border-top:none}:host[data-ng-doc-overlay-position=left]{transform-origin:right}:host[data-ng-doc-overlay-position=left][data-ng-doc-overlay-with-contact-border=false] .ng-doc-overlay-content{border-right:none}:host[data-ng-doc-overlay-position=right]{transform-origin:left}:host[data-ng-doc-overlay-position=right][data-ng-doc-overlay-with-contact-border=false] .ng-doc-overlay-content{border-left:none}\\n\"], dependencies: [{ kind: \"component\", type: NgDocOverlayPointerComponent, selector: \"ng-doc-overlay-pointer\", inputs: [\"overlayPosition\", \"overlayAlign\", \"withPointer\"] }, { kind: \"directive\", type: NgDocEventSwitcherDirective, selector: \"[ngDocEventSwitcher]\", inputs: [\"ngDocEventSwitcher\", \"events\"] }, { kind: \"component\", type: NgDocFocusControlComponent, selector: \"ng-doc-focus-control\", inputs: [\"focusHost\"] }, { kind: \"directive\", type: NgDocFocusCatcherDirective, selector: \"[ngDocFocusCatcher]\", outputs: [\"focusEvent\", \"blurEvent\"], exportAs: [\"ngDocFocusCatcher\"] }, { kind: \"ngmodule\", type: PolymorpheusModule }, { kind: \"directive\", type: i1.PolymorpheusOutletDirective, selector: \"[polymorpheusOutlet]\", inputs: [\"polymorpheusOutlet\", \"polymorpheusOutletContext\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgDocOverlayContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ng-doc-overlay-container', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n NgDocOverlayPointerComponent,\n NgDocEventSwitcherDirective,\n NgDocFocusControlComponent,\n NgDocFocusCatcherDirective,\n PolymorpheusModule,\n ], template: \"<ng-doc-overlay-pointer\\n\\t[overlayPosition]=\\\"relativePosition\\\"\\n\\t[overlayAlign]=\\\"overlayAlign\\\"\\n\\t[withPointer]=\\\"!!config?.withPointer\\\"\\n\\t[ngDocEventSwitcher]=\\\"config?.viewContainerRef?.element?.nativeElement ?? null\\\"\\n\\t[events]=\\\"['focusin', 'focusout', 'keydown', 'scroll']\\\">\\n\\t<ng-doc-focus-control\\n\\t\\t[focusHost]=\\\"this.config?.viewContainerRef?.element?.nativeElement ?? null\\\"\\n\\t\\tngDocFocusCatcher>\\n\\t\\t<div class=\\\"ng-doc-overlay-content\\\" [tabIndex]=\\\"-1\\\" #contentContainer>\\n\\t\\t\\t<ng-container *polymorpheusOutlet=\\\"content as text\\\">{{ text }}</ng-container>\\n\\t\\t</div>\\n\\t</ng-doc-focus-control>\\n</ng-doc-overlay-pointer>\\n\", styles: [\":host{display:block;height:auto;width:100%}.ng-doc-overlay-content{width:100%;height:100%;background-color:var(--ng-doc-overlay-background);border:1px solid var(--ng-doc-overlay-border);border-radius:var(--ng-doc-overlay-border-radius);box-shadow:var(--ng-doc-overlay-shadow);overflow:auto}:host[data-ng-doc-overlay-position=top]{transform-origin:bottom}:host[data-ng-doc-overlay-position=top][data-ng-doc-overlay-with-contact-border=false] .ng-doc-overlay-content{border-bottom:none}:host[data-ng-doc-overlay-position=bottom]{transform-origin:top}:host[data-ng-doc-overlay-position=bottom][data-ng-doc-overlay-with-contact-border=false] .ng-doc-overlay-content{border-top:none}:host[data-ng-doc-overlay-position=left]{transform-origin:right}:host[data-ng-doc-overlay-position=left][data-ng-doc-overlay-with-contact-border=false] .ng-doc-overlay-content{border-right:none}:host[data-ng-doc-overlay-position=right]{transform-origin:left}:host[data-ng-doc-overlay-position=right][data-ng-doc-overlay-with-contact-border=false] .ng-doc-overlay-content{border-left:none}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { content: [{\n type: Input\n }], config: [{\n type: Input\n }], contentContainer: [{\n type: ViewChild,\n args: ['contentContainer', { read: ElementRef, static: true }]\n }], focusCatcher: [{\n type: ViewChild,\n args: [NgDocFocusCatcherDirective]\n }], outlet: [{\n type: ViewChild,\n args: [PolymorpheusOutletDirective, { static: true }]\n }], relativePosition: [{\n type: HostBinding,\n args: ['attr.data-ng-doc-overlay-position']\n }], contactBorder: [{\n type: HostBinding,\n args: ['attr.data-ng-doc-overlay-with-contact-border']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1raXQvY29tcG9uZW50cy9vdmVybGF5LWNvbnRhaW5lci9vdmVybGF5LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWtpdC9jb21wb25lbnRzL292ZXJsYXktY29udGFpbmVyL292ZXJsYXktY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBc0MsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRixPQUFPLEVBRUwsaUNBQWlDLEdBQ2xDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFTL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNGLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQWV0RCxNQUFNLE9BQU8sOEJBQThCO0lBZ0N6QztRQTdCUSxlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUN6RCxnQkFBVyxHQUFHLE1BQU0sQ0FBVyxRQUFRLENBQUMsQ0FBQztRQUN6QyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5QyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBR3BELFlBQU8sR0FBaUIsRUFBRSxDQUFDO1FBZTNCLHFCQUFnQixHQUF3QyxJQUFJLENBQUM7UUFHckQsb0JBQWUsR0FDckIsSUFBSSxPQUFPLEVBQThCLENBQUM7UUFDcEMsYUFBUSxHQUFZLElBQUksQ0FBQztJQUVsQixDQUFDO0lBRWhCLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLFlBQVksaUNBQWlDLEVBQUUsQ0FBQztZQUMvRSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGVBQWU7aUJBQ3pDLElBQUksQ0FDSCxvQkFBb0IsQ0FDbEIsQ0FBQyxDQUFpQyxFQUFFLENBQWlDLEVBQUUsRUFBRSxDQUN2RSxDQUFDLENBQUMsY0FBYyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQ3hDLEVBQ0QsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUMvQjtpQkFDQSxTQUFTLENBQUMsQ0FBQyxNQUFzQyxFQUFFLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxlQUFlLEdBQUcsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNuRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUNwRixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUNJLGFBQWE7UUFDZixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWU7WUFDekIsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUNoQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQzVEO1lBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNYLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGNBQWMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsZUFBZSxDQUFDLG1CQUFtQixDQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQ2hDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FDakMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRU8sWUFBWSxDQUFDLFNBQThCLEVBQUUsUUFBaUIsS0FBSztRQUN6RSxNQUFNLE1BQU0sR0FBb0IsSUFBSSxDQUFDLGdCQUFnQjthQUNsRCxLQUFLLENBQUMsU0FBUyxDQUFDO2FBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDdEYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNuRixNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDbEUsZUFBZSxDQUFDLG1CQUFtQixDQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUNyQixLQUFLLENBQ04sQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOzhHQW5IVSw4QkFBOEI7a0dBQTlCLDhCQUE4QixxWUFlRixVQUFVLDBFQUd0QywwQkFBMEIseUVBRzFCLDJCQUEyQiw4REMxRXhDLG1wQkFjQSxzbUNEZ0NJLDRCQUE0QiwrSEFDNUIsMkJBQTJCLDJHQUMzQiwwQkFBMEIsd0ZBQzFCLDBCQUEwQixzSUFDMUIsa0JBQWtCOzsyRkFHVCw4QkFBOEI7a0JBYjFDLFNBQVM7K0JBQ0UsMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLDRCQUE0Qjt3QkFDNUIsMkJBQTJCO3dCQUMzQiwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIsa0JBQWtCO3FCQUNuQjt3REFZRCxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlqRSxZQUFZO3NCQURYLFNBQVM7dUJBQUMsMEJBQTBCO2dCQUlyQyxNQUFNO3NCQURMLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl4RCxnQkFBZ0I7c0JBRGYsV0FBVzt1QkFBQyxtQ0FBbUM7Z0JBaUM1QyxhQUFhO3NCQURoQixXQUFXO3VCQUFDLDhDQUE4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGlvbkJ1aWxkZXIsIEFuaW1hdGlvbk1ldGFkYXRhLCBBbmltYXRpb25QbGF5ZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSxcbiAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRE9DVU1FTlQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdEb2NGb2N1c0NvbnRyb2xDb21wb25lbnQgfSBmcm9tICdAbmctZG9jL3VpLWtpdC9jb21wb25lbnRzL2ZvY3VzLWNvbnRyb2wnO1xuaW1wb3J0IHsgTmdEb2NPdmVybGF5UG9pbnRlckNvbXBvbmVudCB9IGZyb20gJ0BuZy1kb2MvdWkta2l0L2NvbXBvbmVudHMvb3ZlcmxheS1wb2ludGVyJztcbmltcG9ydCB7IE5nRG9jRXZlbnRTd2l0Y2hlckRpcmVjdGl2ZSB9IGZyb20gJ0BuZy1kb2MvdWkta2l0L2RpcmVjdGl2ZXMvZXZlbnQtc3dpdGNoZXInO1xuaW1wb3J0IHsgTmdEb2NGb2N1c0NhdGNoZXJEaXJlY3RpdmUgfSBmcm9tICdAbmctZG9jL3VpLWtpdC9kaXJlY3RpdmVzL2ZvY3VzLWNhdGNoZXInO1xuaW1wb3J0IHsgdG9FbGVtZW50IH0gZnJvbSAnQG5nLWRvYy91aS1raXQvaGVscGVycyc7XG5pbXBvcnQgeyBOZ0RvY092ZXJsYXlDb25maWcsIE5nRG9jT3ZlcmxheUNvbnRhaW5lciB9IGZyb20gJ0BuZy1kb2MvdWkta2l0L2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgbmdEb2Nab25lT3B0aW1pemUgfSBmcm9tICdAbmctZG9jL3VpLWtpdC9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge1xuICBOZ0RvY0NvbnRlbnQsXG4gIE5nRG9jSG9yaXpvbnRhbEFsaWduLFxuICBOZ0RvY092ZXJsYXlBbmltYXRpb25FdmVudCxcbiAgTmdEb2NPdmVybGF5UG9zaXRpb24sXG4gIE5nRG9jT3ZlcmxheVJlbGF0aXZlUG9zaXRpb24sXG4gIE5nRG9jVmVydGljYWxBbGlnbixcbn0gZnJvbSAnQG5nLWRvYy91aS1raXQvdHlwZXMnO1xuaW1wb3J0IHsgTmdEb2NGb2N1c1V0aWxzLCBOZ0RvY092ZXJsYXlVdGlscyB9IGZyb20gJ0BuZy1kb2MvdWkta2l0L3V0aWxzJztcbmltcG9ydCB7IFBvbHltb3JwaGV1c01vZHVsZSwgUG9seW1vcnBoZXVzT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1kb2Mtb3ZlcmxheS1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vb3ZlcmxheS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vdmVybGF5LWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIE5nRG9jT3ZlcmxheVBvaW50ZXJDb21wb25lbnQsXG4gICAgTmdEb2NFdmVudFN3aXRjaGVyRGlyZWN0aXZlLFxuICAgIE5nRG9jRm9jdXNDb250cm9sQ29tcG9uZW50LFxuICAgIE5nRG9jRm9jdXNDYXRjaGVyRGlyZWN0aXZlLFxuICAgIFBvbHltb3JwaGV1c01vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdEb2NPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgTmdEb2NPdmVybGF5Q29udGFpbmVyLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIGRvY3VtZW50UmVmID0gaW5qZWN0PERvY3VtZW50PihET0NVTUVOVCk7XG4gIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIGFuaW1hdGlvbkJ1aWxkZXIgPSBpbmplY3QoQW5pbWF0aW9uQnVpbGRlcik7XG5cbiAgQElucHV0KClcbiAgY29udGVudDogTmdEb2NDb250ZW50ID0gJyc7XG5cbiAgQElucHV0KClcbiAgY29uZmlnPzogTmdEb2NPdmVybGF5Q29uZmlnO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRDb250YWluZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBjb250ZW50Q29udGFpbmVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZChOZ0RvY0ZvY3VzQ2F0Y2hlckRpcmVjdGl2ZSlcbiAgZm9jdXNDYXRjaGVyPzogTmdEb2NGb2N1c0NhdGNoZXJEaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZChQb2x5bW9ycGhldXNPdXRsZXREaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIG91dGxldD86IFBvbHltb3JwaGV1c091dGxldERpcmVjdGl2ZTxvYmplY3Q+O1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLW5nLWRvYy1vdmVybGF5LXBvc2l0aW9uJylcbiAgcmVsYXRpdmVQb3NpdGlvbjogTmdEb2NPdmVybGF5UmVsYXRpdmVQb3NpdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgY3VycmVudFBvc2l0aW9uPzogTmdEb2NPdmVybGF5UG9zaXRpb247XG4gIHByaXZhdGUgYW5pbWF0aW9uRXZlbnQkOiBTdWJqZWN0PE5nRG9jT3ZlcmxheUFuaW1hdGlvbkV2ZW50PiA9XG4gICAgbmV3IFN1YmplY3Q8TmdEb2NPdmVybGF5QW5pbWF0aW9uRXZlbnQ+KCk7XG4gIHByaXZhdGUgaXNPcGVuZWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb25maWc/LnBvc2l0aW9uU3RyYXRlZ3kgaW5zdGFuY2VvZiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kpIHtcbiAgICAgIHRoaXMuY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kucG9zaXRpb25DaGFuZ2VzXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKFxuICAgICAgICAgICAgKGE6IENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSwgYjogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKSA9PlxuICAgICAgICAgICAgICBhLmNvbm5lY3Rpb25QYWlyID09PSBiLmNvbm5lY3Rpb25QYWlyLFxuICAgICAgICAgICksXG4gICAgICAgICAgbmdEb2Nab25lT3B0aW1pemUodGhpcy5uZ1pvbmUpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZTogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50UG9zaXRpb24gPSBOZ0RvY092ZXJsYXlVdGlscy5nZXRPdmVybGF5UG9zaXRpb24oY2hhbmdlLmNvbm5lY3Rpb25QYWlyKTtcbiAgICAgICAgICB0aGlzLnJlbGF0aXZlUG9zaXRpb24gPSBOZ0RvY092ZXJsYXlVdGlscy5nZXRSZWxhdGl2ZVBvc2l0aW9uKHRoaXMuY3VycmVudFBvc2l0aW9uKTtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ydW5BbmltYXRpb24odGhpcy5jb25maWc/Lm9wZW5BbmltYXRpb24gfHwgW10pO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtbmctZG9jLW92ZXJsYXktd2l0aC1jb250YWN0LWJvcmRlcicpXG4gIGdldCBjb250YWN0Qm9yZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuY29uZmlnPy5jb250YWN0Qm9yZGVyO1xuICB9XG5cbiAgZ2V0IGlzRm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZvY3VzQ2F0Y2hlcj8uZm9jdXNlZDtcbiAgfVxuXG4gIGdldCBhbmltYXRpb25FdmVudCgpOiBPYnNlcnZhYmxlPE5nRG9jT3ZlcmxheUFuaW1hdGlvbkV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uRXZlbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IG92ZXJsYXlBbGlnbigpOiBOZ0RvY0hvcml6b250YWxBbGlnbiB8IE5nRG9jVmVydGljYWxBbGlnbiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRQb3NpdGlvblxuICAgICAgPyBOZ0RvY092ZXJsYXlVdGlscy5nZXRQb3NpdGlvbkFsaWduKFxuICAgICAgICAgIE5nRG9jT3ZlcmxheVV0aWxzLnRvQ29ubmVjdGVkUG9zaXRpb24odGhpcy5jdXJyZW50UG9zaXRpb24pLFxuICAgICAgICApXG4gICAgICA6IG51bGw7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW5lZCkge1xuICAgICAgdGhpcy5ydW5BbmltYXRpb24odGhpcy5jb25maWc/LmNsb3NlQW5pbWF0aW9uIHx8IFtdLCB0cnVlKTtcbiAgICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29udGVudENvbnRhaW5lcikge1xuICAgICAgTmdEb2NGb2N1c1V0aWxzLmZvY3VzQ2xvc2VzdEVsZW1lbnQoXG4gICAgICAgIHRvRWxlbWVudCh0aGlzLmNvbnRlbnRDb250YWluZXIpLFxuICAgICAgICB0b0VsZW1lbnQodGhpcy5jb250ZW50Q29udGFpbmVyKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbWFya0ZvckNoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHJ1bkFuaW1hdGlvbihhbmltYXRpb246IEFuaW1hdGlvbk1ldGFkYXRhW10sIGNsb3NlOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICBjb25zdCBwbGF5ZXI6IEFuaW1hdGlvblBsYXllciA9IHRoaXMuYW5pbWF0aW9uQnVpbGRlclxuICAgICAgLmJ1aWxkKGFuaW1hdGlvbilcbiAgICAgIC5jcmVhdGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHBsYXllci5vblN0YXJ0KCgpID0+IHRoaXMuYW5pbWF0aW9uRXZlbnQkLm5leHQoY2xvc2UgPyAnYmVmb3JlQ2xvc2UnIDogJ2JlZm9yZU9wZW4nKSk7XG4gICAgcGxheWVyLm9uRG9uZSgoKSA9PiB0aGlzLmFuaW1hdGlvbkV2ZW50JC5uZXh0KGNsb3NlID8gJ2FmdGVyQ2xvc2UnIDogJ2FmdGVyT3BlbicpKTtcbiAgICBwbGF5ZXIucGxheSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNGb2N1c2VkICYmIHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLnZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgIE5nRG9jRm9jdXNVdGlscy5mb2N1c0Nsb3Nlc3RFbGVtZW50KFxuICAgICAgICB0aGlzLmNvbmZpZy52aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgdGhpcy5kb2N1bWVudFJlZi5ib2R5LFxuICAgICAgICBmYWxzZSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctZG9jLW92ZXJsYXktcG9pbnRlclxuXHRbb3ZlcmxheVBvc2l0aW9uXT1cInJlbGF0aXZlUG9zaXRpb25cIlxuXHRbb3ZlcmxheUFsaWduXT1cIm92ZXJsYXlBbGlnblwiXG5cdFt3aXRoUG9pbnRlcl09XCIhIWNvbmZpZz8ud2l0aFBvaW50ZXJcIlxuXHRbbmdEb2NFdmVudFN3aXRjaGVyXT1cImNvbmZpZz8udmlld0NvbnRhaW5lclJlZj8uZWxlbWVudD8ubmF0aXZlRWxlbWVudCA/PyBudWxsXCJcblx0W2V2ZW50c109XCJbJ2ZvY3VzaW4nLCAnZm9jdXNvdXQnLCAna2V5ZG93bicsICdzY3JvbGwnXVwiPlxuXHQ8bmctZG9jLWZvY3VzLWNvbnRyb2xcblx0XHRbZm9jdXNIb3N0XT1cInRoaXMuY29uZmlnPy52aWV3Q29udGFpbmVyUmVmPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50ID8/IG51bGxcIlxuXHRcdG5nRG9jRm9jdXNDYXRjaGVyPlxuXHRcdDxkaXYgY2xhc3M9XCJuZy1kb2Mtb3ZlcmxheS1jb250ZW50XCIgW3RhYkluZGV4XT1cIi0xXCIgI2NvbnRlbnRDb250YWluZXI+XG5cdFx0XHQ8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZW50IGFzIHRleHRcIj57eyB0ZXh0IH19PC9uZy1jb250YWluZXI+XG5cdFx0PC9kaXY+XG5cdDwvbmctZG9jLWZvY3VzLWNvbnRyb2w+XG48L25nLWRvYy1vdmVybGF5LXBvaW50ZXI+XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZG9jLXVpLWtpdC1jb21wb25lbnRzLW92ZXJsYXktY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1raXQvY29tcG9uZW50cy9vdmVybGF5LWNvbnRhaW5lci9uZy1kb2MtdWkta2l0LWNvbXBvbmVudHMtb3ZlcmxheS1jb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}