@design-system-rte/angular 1.0.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/assistive-text/assistive-text.component.mjs +34 -0
- package/esm2022/lib/components/badge/badge.component.mjs +7 -4
- package/esm2022/lib/components/banner/banner.component.mjs +3 -3
- package/esm2022/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +18 -3
- package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +19 -3
- package/esm2022/lib/components/dropdown/dropdown-item/dropdown-item.component.mjs +23 -6
- package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu-footer.directive.mjs +17 -0
- package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu-header.directive.mjs +17 -0
- package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu.component.mjs +35 -5
- package/esm2022/lib/components/dropdown/dropdown-trigger/dropdown-trigger.directive.mjs +23 -2
- package/esm2022/lib/components/dropdown/dropdown.directive.mjs +93 -14
- package/esm2022/lib/components/dropdown/dropdown.module.mjs +32 -5
- package/esm2022/lib/components/icon-button/icon-button.component.mjs +6 -6
- package/esm2022/lib/components/icon-button-toggle/icon-button-toggle.component.mjs +3 -3
- package/esm2022/lib/components/modal/modal.component.mjs +3 -3
- package/esm2022/lib/components/searchbar/searchbar.component.mjs +86 -0
- package/esm2022/lib/components/segmented-control/segmented-control.component.mjs +13 -3
- package/esm2022/lib/components/select/select.component.mjs +168 -0
- package/esm2022/lib/components/split-button/split-button.component.mjs +17 -3
- package/esm2022/lib/components/tab/tab-item/tab-item.component.mjs +112 -0
- package/esm2022/lib/components/tab/tab.component.mjs +242 -0
- package/esm2022/lib/components/text-input/base-text-input/base-text-input.component.mjs +109 -0
- package/esm2022/lib/components/text-input/text-input.component.mjs +8 -103
- package/esm2022/lib/components/textarea/textarea.component.mjs +6 -5
- package/esm2022/lib/components/toast/toast.component.mjs +44 -5
- package/esm2022/lib/services/dropdown.service.mjs +2 -3
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/design-system-rte-angular.mjs +1047 -156
- package/fesm2022/design-system-rte-angular.mjs.map +1 -1
- package/lib/components/assistive-text/assistive-text.component.d.ts +14 -0
- package/lib/components/badge/badge.directive.d.ts +1 -1
- package/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +3 -2
- package/lib/components/breadcrumbs/breadcrumbs.component.d.ts +10 -3
- package/lib/components/dropdown/dropdown-item/dropdown-item.component.d.ts +4 -1
- package/lib/components/dropdown/dropdown-menu/dropdown-menu-footer.directive.d.ts +7 -0
- package/lib/components/dropdown/dropdown-menu/dropdown-menu-header.directive.d.ts +7 -0
- package/lib/components/dropdown/dropdown-menu/dropdown-menu.component.d.ts +23 -1
- package/lib/components/dropdown/dropdown-trigger/dropdown-trigger.directive.d.ts +7 -1
- package/lib/components/dropdown/dropdown.directive.d.ts +17 -3
- package/lib/components/dropdown/dropdown.module.d.ts +3 -1
- package/lib/components/icon-button/icon-button.component.d.ts +5 -4
- package/lib/components/icon-button-toggle/icon-button-toggle.component.d.ts +2 -2
- package/lib/components/popover/popover.component.d.ts +1 -1
- package/lib/components/searchbar/searchbar.component.d.ts +31 -0
- package/lib/components/segmented-control/segmented-control.component.d.ts +1 -0
- package/lib/components/select/select.component.d.ts +56 -0
- package/lib/components/split-button/split-button.component.d.ts +10 -2
- package/lib/components/tab/tab-item/tab-item.component.d.ts +35 -0
- package/lib/components/tab/tab.component.d.ts +70 -0
- package/lib/components/tag/tag.component.d.ts +2 -2
- package/lib/components/text-input/base-text-input/base-text-input.component.d.ts +47 -0
- package/lib/components/text-input/text-input.component.d.ts +3 -39
- package/lib/components/toast/toast.component.d.ts +9 -1
- package/lib/components/tooltip/tooltip.component.d.ts +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +3 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Directive, TemplateRef, inject } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DropdownMenuFooterDirective {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.templateRef = inject((TemplateRef), { optional: true });
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownMenuFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: DropdownMenuFooterDirective, isStandalone: true, selector: "[rteDropdownMenuFooter]", ngImport: i0 }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownMenuFooterDirective, decorators: [{
|
|
11
|
+
type: Directive,
|
|
12
|
+
args: [{
|
|
13
|
+
selector: "[rteDropdownMenuFooter]",
|
|
14
|
+
standalone: true,
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1mb290ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LWZvb3Rlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0vRCxNQUFNLE9BQU8sMkJBQTJCO0lBSnhDO1FBS1csZ0JBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQSxXQUF3QixDQUFBLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUM3RTsrR0FGWSwyQkFBMkI7bUdBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW3J0ZURyb3Bkb3duTWVudUZvb3Rlcl1cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25NZW51Rm9vdGVyRGlyZWN0aXZlIHtcbiAgcmVhZG9ubHkgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Directive, TemplateRef, inject } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DropdownMenuHeaderDirective {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.templateRef = inject((TemplateRef), { optional: true });
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownMenuHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: DropdownMenuHeaderDirective, isStandalone: true, selector: "[rteDropdownMenuHeader]", ngImport: i0 }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownMenuHeaderDirective, decorators: [{
|
|
11
|
+
type: Directive,
|
|
12
|
+
args: [{
|
|
13
|
+
selector: "[rteDropdownMenuHeader]",
|
|
14
|
+
standalone: true,
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1oZWFkZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LWhlYWRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0vRCxNQUFNLE9BQU8sMkJBQTJCO0lBSnhDO1FBS1csZ0JBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQSxXQUF3QixDQUFBLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUM3RTsrR0FGWSwyQkFBMkI7bUdBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW3J0ZURyb3Bkb3duTWVudUhlYWRlcl1cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25NZW51SGVhZGVyRGlyZWN0aXZlIHtcbiAgcmVhZG9ubHkgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xufVxuIl19
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { CommonModule } from "@angular/common";
|
|
2
|
-
import { Component, ElementRef, HostListener, inject, input, output } from "@angular/core";
|
|
3
|
-
import { ARROW_DOWN_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, TAB_KEY, } from "@design-system-rte/core/constants/keyboard/keyboard.constants";
|
|
2
|
+
import { Component, computed, contentChild, ElementRef, HostListener, inject, input, output, viewChild, } from "@angular/core";
|
|
3
|
+
import { ARROW_DOWN_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ESCAPE_KEY, TAB_KEY, } from "@design-system-rte/core/constants/keyboard/keyboard.constants";
|
|
4
4
|
import { DropdownService } from "../../../services/dropdown.service";
|
|
5
|
+
import { DividerComponent } from "../../divider/divider.component";
|
|
5
6
|
import { DropdownItemComponent } from "../dropdown-item/dropdown-item.component";
|
|
7
|
+
import { DropdownMenuFooterDirective } from "./dropdown-menu-footer.directive";
|
|
8
|
+
import { DropdownMenuHeaderDirective } from "./dropdown-menu-header.directive";
|
|
6
9
|
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common";
|
|
7
11
|
export class DropdownMenuComponent {
|
|
8
12
|
constructor() {
|
|
9
13
|
this.elementRef = inject(ElementRef);
|
|
@@ -11,6 +15,29 @@ export class DropdownMenuComponent {
|
|
|
11
15
|
this.items = input([]);
|
|
12
16
|
this.menuId = input();
|
|
13
17
|
this.itemEvent = output();
|
|
18
|
+
this.widthStyle = computed(() => (this.width() !== undefined ? `${this.width()}px` : undefined));
|
|
19
|
+
this.isOpen = input(false);
|
|
20
|
+
this.width = input(null);
|
|
21
|
+
this.closingMenu = output();
|
|
22
|
+
this.menuStyle = computed(() => {
|
|
23
|
+
return this.width() ? { width: this.width() + "px", "max-width": this.width() + "px" } : {};
|
|
24
|
+
});
|
|
25
|
+
this.headerDirective = contentChild(DropdownMenuHeaderDirective);
|
|
26
|
+
this.footerDirective = contentChild(DropdownMenuFooterDirective);
|
|
27
|
+
this.headerTemplate = input(undefined);
|
|
28
|
+
this.footerTemplate = input(undefined);
|
|
29
|
+
this.headerContentRef = viewChild("headerContent");
|
|
30
|
+
this.footerContentRef = viewChild("footerContent");
|
|
31
|
+
this.hasHeaderContent = computed(() => {
|
|
32
|
+
const hasTemplate = !!this.headerTemplate();
|
|
33
|
+
const hasProjectedContent = !!this.headerContentRef()?.nativeElement?.children.length;
|
|
34
|
+
return hasTemplate || hasProjectedContent;
|
|
35
|
+
});
|
|
36
|
+
this.hasFooterContent = computed(() => {
|
|
37
|
+
const hasTemplate = !!this.footerTemplate();
|
|
38
|
+
const hasProjectedContent = !!this.footerContentRef()?.nativeElement?.children.length;
|
|
39
|
+
return hasTemplate || hasProjectedContent;
|
|
40
|
+
});
|
|
14
41
|
}
|
|
15
42
|
getChildMenuId(itemIndex) {
|
|
16
43
|
return `${this.menuId()}:${itemIndex + 1}`;
|
|
@@ -25,6 +52,9 @@ export class DropdownMenuComponent {
|
|
|
25
52
|
if ([ARROW_UP_KEY, ARROW_DOWN_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY, TAB_KEY].includes(event.key)) {
|
|
26
53
|
event.preventDefault();
|
|
27
54
|
}
|
|
55
|
+
if (event.key === ESCAPE_KEY) {
|
|
56
|
+
this.closingMenu.emit();
|
|
57
|
+
}
|
|
28
58
|
const menuId = this.menuId();
|
|
29
59
|
this.dropdownService.handleKeyboardInput(event.key, {
|
|
30
60
|
menuElement: this.elementRef,
|
|
@@ -32,13 +62,13 @@ export class DropdownMenuComponent {
|
|
|
32
62
|
});
|
|
33
63
|
}
|
|
34
64
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DropdownMenuComponent, isStandalone: true, selector: "rte-dropdown-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, menuId: { classPropertyName: "menuId", publicName: "menuId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemEvent: "itemEvent" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.data-menu-id": "menuId()" } }, ngImport: i0, template: "<div class=\"rte-dropdown-menu\">\n <ul class=\"rte-dropdown-items\" role=\"menu\" [attr.aria-activedescendant]=\"menuId()\">\n
|
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DropdownMenuComponent, isStandalone: true, selector: "rte-dropdown-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, menuId: { classPropertyName: "menuId", publicName: "menuId", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, footerTemplate: { classPropertyName: "footerTemplate", publicName: "footerTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemEvent: "itemEvent", closingMenu: "closingMenu" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.data-menu-id": "menuId()" } }, queries: [{ propertyName: "headerDirective", first: true, predicate: DropdownMenuHeaderDirective, descendants: true, isSignal: true }, { propertyName: "footerDirective", first: true, predicate: DropdownMenuFooterDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "headerContentRef", first: true, predicate: ["headerContent"], descendants: true, isSignal: true }, { propertyName: "footerContentRef", first: true, predicate: ["footerContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"rte-dropdown-menu {{ isOpen() ? 'open' : 'closed' }}\" [ngStyle]=\"menuStyle()\">\n @if (hasHeaderContent()) {\n <div class=\"rte-dropdown-menu-header\">\n @if (headerTemplate() || headerDirective()?.templateRef) {\n <ng-container [ngTemplateOutlet]=\"(headerTemplate() || headerDirective()?.templateRef) ?? null\"></ng-container>\n } @else {\n <div #headerContent>\n <ng-content select=\"[dropdown-menu-header]\"></ng-content>\n </div>\n }\n <rte-divider />\n </div>\n }\n <div class=\"rte-dropdown-menu-content\">\n <ul class=\"rte-dropdown-items\" role=\"menu\" [attr.aria-activedescendant]=\"menuId()\">\n @for (item of items(); track item.label; let i = $index) {\n <rte-dropdown-item [item]=\"item\" (itemEvent)=\"handleItemEvent($event)\" />\n }\n </ul>\n </div>\n @if (hasFooterContent()) {\n <div class=\"rte-dropdown-menu-footer\">\n <rte-divider />\n @if (footerTemplate() || footerDirective()?.templateRef) {\n <ng-container [ngTemplateOutlet]=\"(footerTemplate() || footerDirective()?.templateRef) ?? null\"></ng-container>\n } @else {\n <div #footerContent>\n <ng-content select=\"[dropdown-menu-footer]\"></ng-content>\n </div>\n }\n </div>\n }\n</div>\n", styles: [":host{display:none;position:absolute}.rte-dropdown-menu{opacity:0;box-shadow:0 8px 16px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-4) 0%,var(--elevation-surface-shadow-4) 100%);background-color:var(--background-default);position:absolute;top:0;left:0;display:flex;min-width:112px;max-width:280px;padding:8px 0;flex-direction:column;align-items:flex-start;gap:0px;border-radius:4px;transition:opacity .1s ease-in-out;pointer-events:auto;overflow-x:hidden;overflow-y:auto}.rte-dropdown-menu-header,.rte-dropdown-menu-content,.rte-dropdown-menu-footer{width:100%}.rte-dropdown-menu.open{opacity:1}.rte-dropdown-menu .rte-dropdown-items{width:100%;padding:0;margin:0}.rte-dropdown-menu .rte-dropdown-items li{list-style:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: DropdownItemComponent, selector: "rte-dropdown-item", inputs: ["item", "menuId"], outputs: ["itemEvent"] }, { kind: "component", type: DividerComponent, selector: "rte-divider", inputs: ["orientation", "thickness", "appearance", "endPoint"] }] }); }
|
|
36
66
|
}
|
|
37
67
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownMenuComponent, decorators: [{
|
|
38
68
|
type: Component,
|
|
39
|
-
args: [{ selector: "rte-dropdown-menu", imports: [CommonModule, DropdownItemComponent], standalone: true, host: { "[attr.data-menu-id]": "menuId()" }, template: "<div class=\"rte-dropdown-menu\">\n <ul class=\"rte-dropdown-items\" role=\"menu\" [attr.aria-activedescendant]=\"menuId()\">\n
|
|
69
|
+
args: [{ selector: "rte-dropdown-menu", imports: [CommonModule, DropdownItemComponent, DividerComponent], standalone: true, host: { "[attr.data-menu-id]": "menuId()" }, template: "<div class=\"rte-dropdown-menu {{ isOpen() ? 'open' : 'closed' }}\" [ngStyle]=\"menuStyle()\">\n @if (hasHeaderContent()) {\n <div class=\"rte-dropdown-menu-header\">\n @if (headerTemplate() || headerDirective()?.templateRef) {\n <ng-container [ngTemplateOutlet]=\"(headerTemplate() || headerDirective()?.templateRef) ?? null\"></ng-container>\n } @else {\n <div #headerContent>\n <ng-content select=\"[dropdown-menu-header]\"></ng-content>\n </div>\n }\n <rte-divider />\n </div>\n }\n <div class=\"rte-dropdown-menu-content\">\n <ul class=\"rte-dropdown-items\" role=\"menu\" [attr.aria-activedescendant]=\"menuId()\">\n @for (item of items(); track item.label; let i = $index) {\n <rte-dropdown-item [item]=\"item\" (itemEvent)=\"handleItemEvent($event)\" />\n }\n </ul>\n </div>\n @if (hasFooterContent()) {\n <div class=\"rte-dropdown-menu-footer\">\n <rte-divider />\n @if (footerTemplate() || footerDirective()?.templateRef) {\n <ng-container [ngTemplateOutlet]=\"(footerTemplate() || footerDirective()?.templateRef) ?? null\"></ng-container>\n } @else {\n <div #footerContent>\n <ng-content select=\"[dropdown-menu-footer]\"></ng-content>\n </div>\n }\n </div>\n }\n</div>\n", styles: [":host{display:none;position:absolute}.rte-dropdown-menu{opacity:0;box-shadow:0 8px 16px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-4) 0%,var(--elevation-surface-shadow-4) 100%);background-color:var(--background-default);position:absolute;top:0;left:0;display:flex;min-width:112px;max-width:280px;padding:8px 0;flex-direction:column;align-items:flex-start;gap:0px;border-radius:4px;transition:opacity .1s ease-in-out;pointer-events:auto;overflow-x:hidden;overflow-y:auto}.rte-dropdown-menu-header,.rte-dropdown-menu-content,.rte-dropdown-menu-footer{width:100%}.rte-dropdown-menu.open{opacity:1}.rte-dropdown-menu .rte-dropdown-items{width:100%;padding:0;margin:0}.rte-dropdown-menu .rte-dropdown-items li{list-style:none}\n"] }]
|
|
40
70
|
}], propDecorators: { onKeyDown: [{
|
|
41
71
|
type: HostListener,
|
|
42
72
|
args: ["keydown", ["$event"]]
|
|
43
73
|
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUNMLGNBQWMsRUFDZCxjQUFjLEVBQ2QsZUFBZSxFQUNmLFlBQVksRUFDWixPQUFPLEdBQ1IsTUFBTSwrREFBK0QsQ0FBQztBQUV2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFzQixNQUFNLDBDQUEwQyxDQUFDOztBQVVyRyxNQUFNLE9BQU8scUJBQXFCO0lBUmxDO1FBU21CLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbEQsVUFBSyxHQUFHLEtBQUssQ0FBdUIsRUFBRSxDQUFDLENBQUM7UUFDeEMsV0FBTSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBRXpCLGNBQVMsR0FBRyxNQUFNLEVBQWdDLENBQUM7S0EyQjdEO0lBekJDLGNBQWMsQ0FBQyxTQUFpQjtRQUM5QixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQXVDO1FBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFHRCxTQUFTLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pHLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBWSxDQUFDO1FBRXZDLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNsRCxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDNUIsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBakNVLHFCQUFxQjttR0FBckIscUJBQXFCLDJkQ3JCbEMsK1NBT0EsdXlCRFFZLFlBQVksK0JBQUUscUJBQXFCOzs0RkFNbEMscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLG1CQUFtQixXQUNwQixDQUFDLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxjQUNsQyxJQUFJLFFBR1YsRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUU7OEJBb0IzQyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgaW5wdXQsIG91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBBUlJPV19ET1dOX0tFWSxcbiAgQVJST1dfTEVGVF9LRVksXG4gIEFSUk9XX1JJR0hUX0tFWSxcbiAgQVJST1dfVVBfS0VZLFxuICBUQUJfS0VZLFxufSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29uc3RhbnRzL2tleWJvYXJkL2tleWJvYXJkLmNvbnN0YW50c1wiO1xuXG5pbXBvcnQgeyBEcm9wZG93blNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvZHJvcGRvd24uc2VydmljZVwiO1xuaW1wb3J0IHsgRHJvcGRvd25JdGVtQ29tcG9uZW50LCBEcm9wZG93bkl0ZW1Db25maWcgfSBmcm9tIFwiLi4vZHJvcGRvd24taXRlbS9kcm9wZG93bi1pdGVtLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwicnRlLWRyb3Bkb3duLW1lbnVcIixcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRHJvcGRvd25JdGVtQ29tcG9uZW50XSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9kcm9wZG93bi1tZW51LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsOiBcIi4vZHJvcGRvd24tbWVudS5jb21wb25lbnQuc2Nzc1wiLFxuICBob3N0OiB7IFwiW2F0dHIuZGF0YS1tZW51LWlkXVwiOiBcIm1lbnVJZCgpXCIgfSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25NZW51Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duU2VydmljZSA9IGluamVjdChEcm9wZG93blNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGl0ZW1zID0gaW5wdXQ8RHJvcGRvd25JdGVtQ29uZmlnW10+KFtdKTtcbiAgcmVhZG9ubHkgbWVudUlkID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHJlYWRvbmx5IGl0ZW1FdmVudCA9IG91dHB1dDx7IGV2ZW50OiBFdmVudDsgaWQ6IHN0cmluZyB9PigpO1xuXG4gIGdldENoaWxkTWVudUlkKGl0ZW1JbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5tZW51SWQoKX06JHtpdGVtSW5kZXggKyAxfWA7XG4gIH1cblxuICBoYW5kbGVJdGVtRXZlbnQoaXRlbUV2ZW50OiB7IGV2ZW50OiBFdmVudDsgaWQ6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgdGhpcy5pdGVtRXZlbnQuZW1pdChpdGVtRXZlbnQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIWV2ZW50LnRhcmdldCB8fCAhdGhpcy5tZW51SWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChbQVJST1dfVVBfS0VZLCBBUlJPV19ET1dOX0tFWSwgQVJST1dfTEVGVF9LRVksIEFSUk9XX1JJR0hUX0tFWSwgVEFCX0tFWV0uaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZW51SWQgPSB0aGlzLm1lbnVJZCgpIGFzIHN0cmluZztcblxuICAgIHRoaXMuZHJvcGRvd25TZXJ2aWNlLmhhbmRsZUtleWJvYXJkSW5wdXQoZXZlbnQua2V5LCB7XG4gICAgICBtZW51RWxlbWVudDogdGhpcy5lbGVtZW50UmVmLFxuICAgICAgbWVudUlkLFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRlLWRyb3Bkb3duLW1lbnVcIj5cbiAgPHVsIGNsYXNzPVwicnRlLWRyb3Bkb3duLWl0ZW1zXCIgcm9sZT1cIm1lbnVcIiBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwibWVudUlkKClcIj5cbiAgICBAZm9yIChpdGVtIG9mIGl0ZW1zKCk7IHRyYWNrIGl0ZW0ubGFiZWw7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICA8cnRlLWRyb3Bkb3duLWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIChpdGVtRXZlbnQpPVwiaGFuZGxlSXRlbUV2ZW50KCRldmVudClcIiAvPlxuICAgIH1cbiAgPC91bD5cbjwvZGl2PlxuIl19
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGNBQWMsRUFDZCxjQUFjLEVBQ2QsZUFBZSxFQUNmLFlBQVksRUFDWixVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0sK0RBQStELENBQUM7QUFFdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBc0IsTUFBTSwwQ0FBMEMsQ0FBQztBQUVyRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBVS9FLE1BQU0sT0FBTyxxQkFBcUI7SUFSbEM7UUFTbUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVsRCxVQUFLLEdBQUcsS0FBSyxDQUF1QixFQUFFLENBQUMsQ0FBQztRQUN4QyxXQUFNLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFFekIsY0FBUyxHQUFHLE1BQU0sRUFBZ0MsQ0FBQztRQUVuRCxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM1RixXQUFNLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQy9CLFVBQUssR0FBRyxLQUFLLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsTUFBTSxFQUFRLENBQUM7UUFFN0IsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlGLENBQUMsQ0FBQyxDQUFDO1FBRU0sb0JBQWUsR0FBRyxZQUFZLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUM1RCxvQkFBZSxHQUFHLFlBQVksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRTVELG1CQUFjLEdBQUcsS0FBSyxDQUF1QyxTQUFTLENBQUMsQ0FBQztRQUN4RSxtQkFBYyxHQUFHLEtBQUssQ0FBdUMsU0FBUyxDQUFDLENBQUM7UUFFeEUscUJBQWdCLEdBQUcsU0FBUyxDQUEwQixlQUFlLENBQUMsQ0FBQztRQUN2RSxxQkFBZ0IsR0FBRyxTQUFTLENBQTBCLGVBQWUsQ0FBQyxDQUFDO1FBRXZFLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM1QyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUN0RixPQUFPLFdBQVcsSUFBSSxtQkFBbUIsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUVNLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM1QyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUN0RixPQUFPLFdBQVcsSUFBSSxtQkFBbUIsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztLQThCSjtJQTVCQyxjQUFjLENBQUMsU0FBaUI7UUFDOUIsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUF1QztRQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBR0QsU0FBUyxDQUFDLEtBQW9CO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDcEMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqRyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ2xELFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUM1QixNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FsRVUscUJBQXFCO21HQUFyQixxQkFBcUIsNmpDQWtCUSwyQkFBMkIsa0dBQzNCLDJCQUEyQix1VEN4RHJFLDZ5Q0FpQ0EsdzJCREZZLFlBQVksMlJBQUUscUJBQXFCLGtIQUFFLGdCQUFnQjs7NEZBTXBELHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDRSxtQkFBbUIsV0FDcEIsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLENBQUMsY0FDcEQsSUFBSSxRQUdWLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxFQUFFOzhCQWtEM0MsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICB2aWV3Q2hpbGQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBBUlJPV19ET1dOX0tFWSxcbiAgQVJST1dfTEVGVF9LRVksXG4gIEFSUk9XX1JJR0hUX0tFWSxcbiAgQVJST1dfVVBfS0VZLFxuICBFU0NBUEVfS0VZLFxuICBUQUJfS0VZLFxufSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29uc3RhbnRzL2tleWJvYXJkL2tleWJvYXJkLmNvbnN0YW50c1wiO1xuXG5pbXBvcnQgeyBEcm9wZG93blNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvZHJvcGRvd24uc2VydmljZVwiO1xuaW1wb3J0IHsgRGl2aWRlckNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEcm9wZG93bkl0ZW1Db21wb25lbnQsIERyb3Bkb3duSXRlbUNvbmZpZyB9IGZyb20gXCIuLi9kcm9wZG93bi1pdGVtL2Ryb3Bkb3duLWl0ZW0uY29tcG9uZW50XCI7XG5cbmltcG9ydCB7IERyb3Bkb3duTWVudUZvb3RlckRpcmVjdGl2ZSB9IGZyb20gXCIuL2Ryb3Bkb3duLW1lbnUtZm9vdGVyLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRHJvcGRvd25NZW51SGVhZGVyRGlyZWN0aXZlIH0gZnJvbSBcIi4vZHJvcGRvd24tbWVudS1oZWFkZXIuZGlyZWN0aXZlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJydGUtZHJvcGRvd24tbWVudVwiLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEcm9wZG93bkl0ZW1Db21wb25lbnQsIERpdmlkZXJDb21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmw6IFwiLi9kcm9wZG93bi1tZW51LmNvbXBvbmVudC5zY3NzXCIsXG4gIGhvc3Q6IHsgXCJbYXR0ci5kYXRhLW1lbnUtaWRdXCI6IFwibWVudUlkKClcIiB9LFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bk1lbnVDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd25TZXJ2aWNlID0gaW5qZWN0KERyb3Bkb3duU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgaXRlbXMgPSBpbnB1dDxEcm9wZG93bkl0ZW1Db25maWdbXT4oW10pO1xuICByZWFkb25seSBtZW51SWQgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgcmVhZG9ubHkgaXRlbUV2ZW50ID0gb3V0cHV0PHsgZXZlbnQ6IEV2ZW50OyBpZDogc3RyaW5nIH0+KCk7XG5cbiAgcmVhZG9ubHkgd2lkdGhTdHlsZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLndpZHRoKCkgIT09IHVuZGVmaW5lZCA/IGAke3RoaXMud2lkdGgoKX1weGAgOiB1bmRlZmluZWQpKTtcbiAgcmVhZG9ubHkgaXNPcGVuID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB3aWR0aCA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBjbG9zaW5nTWVudSA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IG1lbnVTdHlsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy53aWR0aCgpID8geyB3aWR0aDogdGhpcy53aWR0aCgpICsgXCJweFwiLCBcIm1heC13aWR0aFwiOiB0aGlzLndpZHRoKCkgKyBcInB4XCIgfSA6IHt9O1xuICB9KTtcblxuICByZWFkb25seSBoZWFkZXJEaXJlY3RpdmUgPSBjb250ZW50Q2hpbGQoRHJvcGRvd25NZW51SGVhZGVyRGlyZWN0aXZlKTtcbiAgcmVhZG9ubHkgZm9vdGVyRGlyZWN0aXZlID0gY29udGVudENoaWxkKERyb3Bkb3duTWVudUZvb3RlckRpcmVjdGl2ZSk7XG5cbiAgcmVhZG9ubHkgaGVhZGVyVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGZvb3RlclRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IGhlYWRlckNvbnRlbnRSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KFwiaGVhZGVyQ29udGVudFwiKTtcbiAgcmVhZG9ubHkgZm9vdGVyQ29udGVudFJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oXCJmb290ZXJDb250ZW50XCIpO1xuXG4gIHJlYWRvbmx5IGhhc0hlYWRlckNvbnRlbnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaGFzVGVtcGxhdGUgPSAhIXRoaXMuaGVhZGVyVGVtcGxhdGUoKTtcbiAgICBjb25zdCBoYXNQcm9qZWN0ZWRDb250ZW50ID0gISF0aGlzLmhlYWRlckNvbnRlbnRSZWYoKT8ubmF0aXZlRWxlbWVudD8uY2hpbGRyZW4ubGVuZ3RoO1xuICAgIHJldHVybiBoYXNUZW1wbGF0ZSB8fCBoYXNQcm9qZWN0ZWRDb250ZW50O1xuICB9KTtcblxuICByZWFkb25seSBoYXNGb290ZXJDb250ZW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGhhc1RlbXBsYXRlID0gISF0aGlzLmZvb3RlclRlbXBsYXRlKCk7XG4gICAgY29uc3QgaGFzUHJvamVjdGVkQ29udGVudCA9ICEhdGhpcy5mb290ZXJDb250ZW50UmVmKCk/Lm5hdGl2ZUVsZW1lbnQ/LmNoaWxkcmVuLmxlbmd0aDtcbiAgICByZXR1cm4gaGFzVGVtcGxhdGUgfHwgaGFzUHJvamVjdGVkQ29udGVudDtcbiAgfSk7XG5cbiAgZ2V0Q2hpbGRNZW51SWQoaXRlbUluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLm1lbnVJZCgpfToke2l0ZW1JbmRleCArIDF9YDtcbiAgfVxuXG4gIGhhbmRsZUl0ZW1FdmVudChpdGVtRXZlbnQ6IHsgZXZlbnQ6IEV2ZW50OyBpZDogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICB0aGlzLml0ZW1FdmVudC5lbWl0KGl0ZW1FdmVudCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwia2V5ZG93blwiLCBbXCIkZXZlbnRcIl0pXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghZXZlbnQudGFyZ2V0IHx8ICF0aGlzLm1lbnVJZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKFtBUlJPV19VUF9LRVksIEFSUk9XX0RPV05fS0VZLCBBUlJPV19MRUZUX0tFWSwgQVJST1dfUklHSFRfS0VZLCBUQUJfS0VZXS5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09IEVTQ0FQRV9LRVkpIHtcbiAgICAgIHRoaXMuY2xvc2luZ01lbnUuZW1pdCgpO1xuICAgIH1cblxuICAgIGNvbnN0IG1lbnVJZCA9IHRoaXMubWVudUlkKCkgYXMgc3RyaW5nO1xuICAgIHRoaXMuZHJvcGRvd25TZXJ2aWNlLmhhbmRsZUtleWJvYXJkSW5wdXQoZXZlbnQua2V5LCB7XG4gICAgICBtZW51RWxlbWVudDogdGhpcy5lbGVtZW50UmVmLFxuICAgICAgbWVudUlkLFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRlLWRyb3Bkb3duLW1lbnUge3sgaXNPcGVuKCkgPyAnb3BlbicgOiAnY2xvc2VkJyB9fVwiIFtuZ1N0eWxlXT1cIm1lbnVTdHlsZSgpXCI+XG4gIEBpZiAoaGFzSGVhZGVyQ29udGVudCgpKSB7XG4gICAgPGRpdiBjbGFzcz1cInJ0ZS1kcm9wZG93bi1tZW51LWhlYWRlclwiPlxuICAgICAgQGlmIChoZWFkZXJUZW1wbGF0ZSgpIHx8IGhlYWRlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZikge1xuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIihoZWFkZXJUZW1wbGF0ZSgpIHx8IGhlYWRlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZikgPz8gbnVsbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgI2hlYWRlckNvbnRlbnQ+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Ryb3Bkb3duLW1lbnUtaGVhZGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8cnRlLWRpdmlkZXIgLz5cbiAgICA8L2Rpdj5cbiAgfVxuICA8ZGl2IGNsYXNzPVwicnRlLWRyb3Bkb3duLW1lbnUtY29udGVudFwiPlxuICAgIDx1bCBjbGFzcz1cInJ0ZS1kcm9wZG93bi1pdGVtc1wiIHJvbGU9XCJtZW51XCIgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cIm1lbnVJZCgpXCI+XG4gICAgICBAZm9yIChpdGVtIG9mIGl0ZW1zKCk7IHRyYWNrIGl0ZW0ubGFiZWw7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDxydGUtZHJvcGRvd24taXRlbSBbaXRlbV09XCJpdGVtXCIgKGl0ZW1FdmVudCk9XCJoYW5kbGVJdGVtRXZlbnQoJGV2ZW50KVwiIC8+XG4gICAgICB9XG4gICAgPC91bD5cbiAgPC9kaXY+XG4gIEBpZiAoaGFzRm9vdGVyQ29udGVudCgpKSB7XG4gICAgPGRpdiBjbGFzcz1cInJ0ZS1kcm9wZG93bi1tZW51LWZvb3RlclwiPlxuICAgICAgPHJ0ZS1kaXZpZGVyIC8+XG4gICAgICBAaWYgKGZvb3RlclRlbXBsYXRlKCkgfHwgZm9vdGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiKGZvb3RlclRlbXBsYXRlKCkgfHwgZm9vdGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmKSA/PyBudWxsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiAjZm9vdGVyQ29udGVudD5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZHJvcGRvd24tbWVudS1mb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
@@ -7,6 +7,9 @@ export class DropdownTriggerDirective {
|
|
|
7
7
|
this.dropdownKeyDown = output();
|
|
8
8
|
this.dropdownTriggered = output();
|
|
9
9
|
this.dropdownTriggerFocus = output();
|
|
10
|
+
this.dropdownTriggerClearContent = output();
|
|
11
|
+
this.dropdownTriggerOpenDropdown = output();
|
|
12
|
+
this.dropdownTriggerCloseDropdown = output();
|
|
10
13
|
}
|
|
11
14
|
onDropdownTriggered(event) {
|
|
12
15
|
this.dropdownTriggered.emit(event);
|
|
@@ -17,8 +20,17 @@ export class DropdownTriggerDirective {
|
|
|
17
20
|
onKeyDown(event) {
|
|
18
21
|
this.dropdownKeyDown.emit(event);
|
|
19
22
|
}
|
|
23
|
+
onDropdownTriggerClearContent(event) {
|
|
24
|
+
this.dropdownTriggerClearContent.emit(event);
|
|
25
|
+
}
|
|
26
|
+
onDropdownTriggerOpenDropdown(event) {
|
|
27
|
+
this.dropdownTriggerOpenDropdown.emit(event);
|
|
28
|
+
}
|
|
29
|
+
onDropdownTriggerCloseDropdown(event) {
|
|
30
|
+
this.dropdownTriggerCloseDropdown.emit(event);
|
|
31
|
+
}
|
|
20
32
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: DropdownTriggerDirective, isStandalone: true, selector: "[rteDropdownTrigger]", inputs: { rteDropdownTriggerActivateWithArrowDown: { classPropertyName: "rteDropdownTriggerActivateWithArrowDown", publicName: "rteDropdownTriggerActivateWithArrowDown", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dropdownKeyDown: "dropdownKeyDown", dropdownTriggered: "dropdownTriggered", dropdownTriggerFocus: "dropdownTriggerFocus" }, host: { listeners: { "click": "onDropdownTriggered($event)", "focus": "onDropdownTriggerFocus($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
|
|
33
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: DropdownTriggerDirective, isStandalone: true, selector: "[rteDropdownTrigger]", inputs: { rteDropdownTriggerActivateWithArrowDown: { classPropertyName: "rteDropdownTriggerActivateWithArrowDown", publicName: "rteDropdownTriggerActivateWithArrowDown", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dropdownKeyDown: "dropdownKeyDown", dropdownTriggered: "dropdownTriggered", dropdownTriggerFocus: "dropdownTriggerFocus", dropdownTriggerClearContent: "dropdownTriggerClearContent", dropdownTriggerOpenDropdown: "dropdownTriggerOpenDropdown", dropdownTriggerCloseDropdown: "dropdownTriggerCloseDropdown" }, host: { listeners: { "click": "onDropdownTriggered($event)", "focus": "onDropdownTriggerFocus($event)", "keydown": "onKeyDown($event)", "clearContent": "onDropdownTriggerClearContent($event)", "openDropdown": "onDropdownTriggerOpenDropdown($event)", "closeDropdown": "onDropdownTriggerCloseDropdown($event)" } }, ngImport: i0 }); }
|
|
22
34
|
}
|
|
23
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownTriggerDirective, decorators: [{
|
|
24
36
|
type: Directive,
|
|
@@ -35,5 +47,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
35
47
|
}], onKeyDown: [{
|
|
36
48
|
type: HostListener,
|
|
37
49
|
args: ["keydown", ["$event"]]
|
|
50
|
+
}], onDropdownTriggerClearContent: [{
|
|
51
|
+
type: HostListener,
|
|
52
|
+
args: ["clearContent", ["$event"]]
|
|
53
|
+
}], onDropdownTriggerOpenDropdown: [{
|
|
54
|
+
type: HostListener,
|
|
55
|
+
args: ["openDropdown", ["$event"]]
|
|
56
|
+
}], onDropdownTriggerCloseDropdown: [{
|
|
57
|
+
type: HostListener,
|
|
58
|
+
args: ["closeDropdown", ["$event"]]
|
|
38
59
|
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi10cmlnZ2VyL2Ryb3Bkb3duLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0YsTUFBTSxPQUFPLHdCQUF3QjtJQUpyQztRQUtXLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEMsNENBQXVDLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRWhFLG9CQUFlLEdBQUcsTUFBTSxFQUFpQixDQUFDO1FBRTFDLHNCQUFpQixHQUFHLE1BQU0sRUFBUyxDQUFDO1FBRXBDLHlCQUFvQixHQUFHLE1BQU0sRUFBUyxDQUFDO1FBRXZDLGdDQUEyQixHQUFHLE1BQU0sRUFBUyxDQUFDO1FBRTlDLGdDQUEyQixHQUFHLE1BQU0sRUFBUyxDQUFDO1FBRTlDLGlDQUE0QixHQUFHLE1BQU0sRUFBUyxDQUFDO0tBOEJ6RDtJQTNCQyxtQkFBbUIsQ0FBQyxLQUFZO1FBQzlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUdELHNCQUFzQixDQUFDLEtBQVk7UUFDakMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBR0QsU0FBUyxDQUFDLEtBQW9CO1FBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFHRCw2QkFBNkIsQ0FBQyxLQUFZO1FBQ3hDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUdELDZCQUE2QixDQUFDLEtBQVk7UUFDeEMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsOEJBQThCLENBQUMsS0FBWTtRQUN6QyxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7K0dBNUNVLHdCQUF3QjttR0FBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFtQkMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNakMsc0JBQXNCO3NCQURyQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNakMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNbkMsNkJBQTZCO3NCQUQ1QixZQUFZO3VCQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNeEMsNkJBQTZCO3NCQUQ1QixZQUFZO3VCQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLeEMsOEJBQThCO3NCQUQ3QixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBpbmplY3QsIGlucHV0LCBvdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW3J0ZURyb3Bkb3duVHJpZ2dlcl1cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlIHtcbiAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICByZWFkb25seSBydGVEcm9wZG93blRyaWdnZXJBY3RpdmF0ZVdpdGhBcnJvd0Rvd24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgZHJvcGRvd25LZXlEb3duID0gb3V0cHV0PEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgcmVhZG9ubHkgZHJvcGRvd25UcmlnZ2VyZWQgPSBvdXRwdXQ8RXZlbnQ+KCk7XG5cbiAgcmVhZG9ubHkgZHJvcGRvd25UcmlnZ2VyRm9jdXMgPSBvdXRwdXQ8RXZlbnQ+KCk7XG5cbiAgcmVhZG9ubHkgZHJvcGRvd25UcmlnZ2VyQ2xlYXJDb250ZW50ID0gb3V0cHV0PEV2ZW50PigpO1xuXG4gIHJlYWRvbmx5IGRyb3Bkb3duVHJpZ2dlck9wZW5Ecm9wZG93biA9IG91dHB1dDxFdmVudD4oKTtcblxuICByZWFkb25seSBkcm9wZG93blRyaWdnZXJDbG9zZURyb3Bkb3duID0gb3V0cHV0PEV2ZW50PigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiLCBbXCIkZXZlbnRcIl0pXG4gIG9uRHJvcGRvd25UcmlnZ2VyZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93blRyaWdnZXJlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJmb2N1c1wiLCBbXCIkZXZlbnRcIl0pXG4gIG9uRHJvcGRvd25UcmlnZ2VyRm9jdXMoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93blRyaWdnZXJGb2N1cy5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duXCIsIFtcIiRldmVudFwiXSlcbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93bktleURvd24uZW1pdChldmVudCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwiY2xlYXJDb250ZW50XCIsIFtcIiRldmVudFwiXSlcbiAgb25Ecm9wZG93blRyaWdnZXJDbGVhckNvbnRlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5kcm9wZG93blRyaWdnZXJDbGVhckNvbnRlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwib3BlbkRyb3Bkb3duXCIsIFtcIiRldmVudFwiXSlcbiAgb25Ecm9wZG93blRyaWdnZXJPcGVuRHJvcGRvd24oZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5kcm9wZG93blRyaWdnZXJPcGVuRHJvcGRvd24uZW1pdChldmVudCk7XG4gIH1cbiAgQEhvc3RMaXN0ZW5lcihcImNsb3NlRHJvcGRvd25cIiwgW1wiJGV2ZW50XCJdKVxuICBvbkRyb3Bkb3duVHJpZ2dlckNsb3NlRHJvcGRvd24oZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5kcm9wZG93blRyaWdnZXJDbG9zZURyb3Bkb3duLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { ChangeDetectorRef, contentChild, DestroyRef, Directive, ElementRef, inject, input, output, Renderer2, ViewContainerRef, } from "@angular/core";
|
|
1
|
+
import { ChangeDetectorRef, computed, contentChild, DestroyRef, Directive, effect, ElementRef, inject, input, output, Renderer2, signal, ViewContainerRef, } from "@angular/core";
|
|
2
|
+
import { waitForNextFrame } from "@design-system-rte/core/common/animation";
|
|
3
|
+
import { DROPDOWN_ANIMATION_DURATION } from "@design-system-rte/core/components/dropdown/dropdown.constants";
|
|
2
4
|
import { getAutoAlignment, getAutoPlacementDropdown, getCoordinates, } from "@design-system-rte/core/components/utils/auto-placement";
|
|
3
5
|
import { ARROW_DOWN_KEY, ENTER_KEY, SPACE_KEY } from "@design-system-rte/core/constants/keyboard/keyboard.constants";
|
|
4
6
|
import { DropdownService } from "../../services/dropdown.service";
|
|
@@ -12,12 +14,16 @@ export class DropdownDirective {
|
|
|
12
14
|
constructor() {
|
|
13
15
|
this.trigger = contentChild(DropdownTriggerDirective);
|
|
14
16
|
this.menu = contentChild(DropdownMenuComponent);
|
|
17
|
+
this.rteDropdownId = input(undefined);
|
|
15
18
|
this.rteDropdownPosition = input("bottom");
|
|
16
19
|
this.rteDropdownAlignment = input("start");
|
|
17
20
|
this.rteDropdownIsOpen = input(false);
|
|
18
21
|
this.rteDropdownOffset = input(0);
|
|
19
|
-
this.
|
|
22
|
+
this.rteDropdownAutofocus = input(true);
|
|
23
|
+
this.rteDropdownAutoOpen = input(true);
|
|
24
|
+
this.rteDropdownWidth = input(null);
|
|
20
25
|
this.menuEvent = output();
|
|
26
|
+
this.dropdownId = `dropdown_${++DropdownDirective.idCounter}`;
|
|
21
27
|
this.overlayService = inject(OverlayService);
|
|
22
28
|
this.dropdownService = inject(DropdownService);
|
|
23
29
|
this.viewContainerRef = inject(ViewContainerRef);
|
|
@@ -25,6 +31,21 @@ export class DropdownDirective {
|
|
|
25
31
|
this.renderer = inject(Renderer2);
|
|
26
32
|
this.destroyRef = inject(DestroyRef);
|
|
27
33
|
this.cdr = inject(ChangeDetectorRef);
|
|
34
|
+
this.clickedOutside = output();
|
|
35
|
+
this.closedDropdown = output();
|
|
36
|
+
this.isActive = signal(false);
|
|
37
|
+
this.menuInputs = computed(() => {
|
|
38
|
+
const menu = this.menu();
|
|
39
|
+
if (!menu) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
items: menu.items(),
|
|
44
|
+
headerTemplate: menu.headerDirective()?.templateRef,
|
|
45
|
+
footerTemplate: menu.footerDirective()?.templateRef,
|
|
46
|
+
width: menu.width(),
|
|
47
|
+
};
|
|
48
|
+
});
|
|
28
49
|
this.dropdownMenuRef = null;
|
|
29
50
|
this.handleClickOutside = (event) => {
|
|
30
51
|
const target = event.target;
|
|
@@ -33,27 +54,55 @@ export class DropdownDirective {
|
|
|
33
54
|
return;
|
|
34
55
|
}
|
|
35
56
|
const clickedInTrigger = this.hostElement.contains(target);
|
|
36
|
-
|
|
57
|
+
const clickedInMenu = this.dropdownMenuRef?.location.nativeElement.contains(target);
|
|
58
|
+
if (!clickedInTrigger && !clickedInMenu) {
|
|
37
59
|
this.closeDropdown();
|
|
60
|
+
this.clickedOutside.emit();
|
|
38
61
|
}
|
|
39
62
|
};
|
|
40
63
|
this.hostElement = this.elementRef.nativeElement;
|
|
64
|
+
effect(() => {
|
|
65
|
+
const isOpen = this.rteDropdownIsOpen();
|
|
66
|
+
if (isOpen) {
|
|
67
|
+
if (!this.dropdownMenuRef) {
|
|
68
|
+
this.showDropdownMenu();
|
|
69
|
+
if (this.rteDropdownAutofocus()) {
|
|
70
|
+
waitForNextFrame(() => focusDropdownFirstElement(this.dropdownId));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (this.dropdownMenuRef) {
|
|
75
|
+
this.dropdownService.closeAllMenus();
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
effect(() => {
|
|
79
|
+
const inputs = this.menuInputs();
|
|
80
|
+
if (this.dropdownMenuRef && inputs) {
|
|
81
|
+
this.assignInputs();
|
|
82
|
+
}
|
|
83
|
+
});
|
|
41
84
|
}
|
|
42
85
|
onTrigger() {
|
|
43
|
-
this.
|
|
86
|
+
if (this.rteDropdownAutoOpen()) {
|
|
87
|
+
this.showDropdownMenu();
|
|
88
|
+
}
|
|
89
|
+
if (this.rteDropdownAutofocus()) {
|
|
90
|
+
waitForNextFrame(() => focusDropdownFirstElement(this.dropdownId));
|
|
91
|
+
}
|
|
44
92
|
}
|
|
45
93
|
onTriggerKeyEvent(event) {
|
|
46
94
|
if (event.key === SPACE_KEY ||
|
|
47
95
|
event.key === ENTER_KEY ||
|
|
48
96
|
(event.key === ARROW_DOWN_KEY && this.trigger()?.rteDropdownTriggerActivateWithArrowDown())) {
|
|
49
97
|
this.showDropdownMenu();
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
98
|
+
if (this.rteDropdownAutofocus()) {
|
|
99
|
+
waitForNextFrame(() => focusDropdownFirstElement(this.dropdownId));
|
|
100
|
+
}
|
|
53
101
|
}
|
|
54
102
|
}
|
|
55
103
|
onMenuEvent(event) {
|
|
56
104
|
this.menuEvent.emit(event);
|
|
105
|
+
this.isActive.set(false);
|
|
57
106
|
this.dropdownService.closeAllMenus();
|
|
58
107
|
}
|
|
59
108
|
ngAfterContentInit() {
|
|
@@ -64,6 +113,15 @@ export class DropdownDirective {
|
|
|
64
113
|
this.trigger()?.dropdownKeyDown.subscribe((event) => {
|
|
65
114
|
this.onTriggerKeyEvent(event);
|
|
66
115
|
});
|
|
116
|
+
this.trigger()?.dropdownTriggerClearContent.subscribe(() => {
|
|
117
|
+
this.closeDropdown();
|
|
118
|
+
});
|
|
119
|
+
this.trigger()?.dropdownTriggerOpenDropdown.subscribe(() => {
|
|
120
|
+
this.showDropdownMenu();
|
|
121
|
+
});
|
|
122
|
+
this.trigger()?.dropdownTriggerCloseDropdown.subscribe(() => {
|
|
123
|
+
this.closeDropdown();
|
|
124
|
+
});
|
|
67
125
|
}
|
|
68
126
|
}
|
|
69
127
|
showDropdownMenu() {
|
|
@@ -71,10 +129,10 @@ export class DropdownDirective {
|
|
|
71
129
|
this.dropdownMenuRef.destroy();
|
|
72
130
|
}
|
|
73
131
|
this.dropdownMenuRef = this.overlayService.create(DropdownMenuComponent, this.viewContainerRef);
|
|
74
|
-
const menuId = this.dropdownId;
|
|
132
|
+
const menuId = this.rteDropdownId() || this.dropdownId;
|
|
75
133
|
this.dropdownMenuRef.setInput("menuId", menuId);
|
|
76
134
|
this.dropdownService.openMenu(menuId);
|
|
77
|
-
this.
|
|
135
|
+
this.assignInputs();
|
|
78
136
|
this.positionDropdownMenu(this.rteDropdownPosition());
|
|
79
137
|
this.addClickOutsideListener();
|
|
80
138
|
this.dropdownMenuRef.instance.itemEvent.subscribe((event) => {
|
|
@@ -92,9 +150,26 @@ export class DropdownDirective {
|
|
|
92
150
|
});
|
|
93
151
|
this.destroyRef.onDestroy(() => dropdownStateSubscription.unsubscribe());
|
|
94
152
|
}
|
|
95
|
-
|
|
153
|
+
assignInputs() {
|
|
96
154
|
if (this.dropdownMenuRef) {
|
|
97
|
-
|
|
155
|
+
const items = this.menu()?.items() ?? [];
|
|
156
|
+
this.dropdownMenuRef.setInput("items", items);
|
|
157
|
+
this.dropdownMenuRef.setInput("headerTemplate", this.menu()?.headerDirective()?.templateRef);
|
|
158
|
+
this.dropdownMenuRef.setInput("footerTemplate", this.menu()?.footerDirective()?.templateRef);
|
|
159
|
+
}
|
|
160
|
+
this.assignWidth();
|
|
161
|
+
}
|
|
162
|
+
assignWidth() {
|
|
163
|
+
if (!this.dropdownMenuRef) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const width = this.menuInputs()?.width ?? this.rteDropdownWidth();
|
|
167
|
+
if (width !== undefined && width !== null) {
|
|
168
|
+
this.dropdownMenuRef.setInput("width", width);
|
|
169
|
+
waitForNextFrame(() => this.dropdownMenuRef?.setInput("isOpen", true));
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
this.dropdownMenuRef.setInput("isOpen", true);
|
|
98
173
|
}
|
|
99
174
|
}
|
|
100
175
|
positionDropdownMenu(position = "bottom") {
|
|
@@ -126,10 +201,14 @@ export class DropdownDirective {
|
|
|
126
201
|
document.removeEventListener("mousedown", this.handleClickOutside);
|
|
127
202
|
}
|
|
128
203
|
closeDropdown() {
|
|
129
|
-
this.
|
|
204
|
+
this.dropdownMenuRef?.setInput("isOpen", false);
|
|
205
|
+
this.isActive.set(false);
|
|
206
|
+
setTimeout(() => {
|
|
207
|
+
this.dropdownService.closeAllMenus();
|
|
208
|
+
}, DROPDOWN_ANIMATION_DURATION);
|
|
130
209
|
}
|
|
131
210
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
132
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.14", type: DropdownDirective, isStandalone: true, selector: "[rteDropdown]", inputs: { rteDropdownPosition: { classPropertyName: "rteDropdownPosition", publicName: "rteDropdownPosition", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAlignment: { classPropertyName: "rteDropdownAlignment", publicName: "rteDropdownAlignment", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownIsOpen: { classPropertyName: "rteDropdownIsOpen", publicName: "rteDropdownIsOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownOffset: { classPropertyName: "rteDropdownOffset", publicName: "rteDropdownOffset", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuEvent: "menuEvent" }, host: { properties: { "class.dropdown": "true", "attr.data-dropdown-id": "dropdownId" } }, queries: [{ propertyName: "trigger", first: true, predicate: DropdownTriggerDirective, descendants: true, isSignal: true }, { propertyName: "menu", first: true, predicate: DropdownMenuComponent, descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
211
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.14", type: DropdownDirective, isStandalone: true, selector: "[rteDropdown]", inputs: { rteDropdownId: { classPropertyName: "rteDropdownId", publicName: "rteDropdownId", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownPosition: { classPropertyName: "rteDropdownPosition", publicName: "rteDropdownPosition", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAlignment: { classPropertyName: "rteDropdownAlignment", publicName: "rteDropdownAlignment", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownIsOpen: { classPropertyName: "rteDropdownIsOpen", publicName: "rteDropdownIsOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownOffset: { classPropertyName: "rteDropdownOffset", publicName: "rteDropdownOffset", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAutofocus: { classPropertyName: "rteDropdownAutofocus", publicName: "rteDropdownAutofocus", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAutoOpen: { classPropertyName: "rteDropdownAutoOpen", publicName: "rteDropdownAutoOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownWidth: { classPropertyName: "rteDropdownWidth", publicName: "rteDropdownWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuEvent: "menuEvent", clickedOutside: "clickedOutside", closedDropdown: "closedDropdown" }, host: { properties: { "class.dropdown": "true", "attr.data-dropdown-id": "dropdownId" } }, queries: [{ propertyName: "trigger", first: true, predicate: DropdownTriggerDirective, descendants: true, isSignal: true }, { propertyName: "menu", first: true, predicate: DropdownMenuComponent, descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
133
212
|
}
|
|
134
213
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownDirective, decorators: [{
|
|
135
214
|
type: Directive,
|
|
@@ -142,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
142
221
|
standalone: true,
|
|
143
222
|
}]
|
|
144
223
|
}], ctorParameters: () => [] });
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFFakIsWUFBWSxFQUNaLFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0seURBQXlELENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFckgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFVN0QsTUFBTSxPQUFPLGlCQUFpQjthQUNiLGNBQVMsR0FBRyxDQUFDLEFBQUosQ0FBSztJQXNCN0I7UUFwQlMsWUFBTyxHQUFHLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2pELFNBQUksR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUUzQyx3QkFBbUIsR0FBRyxLQUFLLENBQVcsUUFBUSxDQUFDLENBQUM7UUFDaEQseUJBQW9CLEdBQUcsS0FBSyxDQUFZLE9BQU8sQ0FB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b0JBQ3pCLElBQUksRUFBRTt3QkFDSixrQkFBa0IsRUFBRSxNQUFNO3dCQUMxQix5QkFBeUIsRUFBRSxZQUFZO3FCQUN4QztvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBjb250ZW50Q2hpbGQsXG4gIERlc3Ryb3lSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgT25EZXN0cm95LFxuICBvdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFsaWdubWVudCB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21tb24vY29tbW9uLXR5cGVzXCI7XG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL2NvbW1vbi9jb21tb24tdHlwZXNcIjtcbmltcG9ydCB7XG4gIGdldEF1dG9BbGlnbm1lbnQsXG4gIGdldEF1dG9QbGFjZW1lbnREcm9wZG93bixcbiAgZ2V0Q29vcmRpbmF0ZXMsXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3V0aWxzL2F1dG8tcGxhY2VtZW50XCI7XG5pbXBvcnQgeyBBUlJPV19ET1dOX0tFWSwgRU5URVJfS0VZLCBTUEFDRV9LRVkgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29uc3RhbnRzL2tleWJvYXJkL2tleWJvYXJkLmNvbnN0YW50c1wiO1xuXG5pbXBvcnQgeyBEcm9wZG93blNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZHJvcGRvd24uc2VydmljZVwiO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvb3ZlcmxheS5zZXJ2aWNlXCI7XG5cbmltcG9ydCB7IERyb3Bkb3duTWVudUNvbXBvbmVudCB9IGZyb20gXCIuL2Ryb3Bkb3duLW1lbnUvZHJvcGRvd24tbWVudS5jb21wb25lbnRcIjtcbmltcG9ydCB7IERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gXCIuL2Ryb3Bkb3duLXRyaWdnZXIvZHJvcGRvd24tdHJpZ2dlci5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IGZvY3VzRHJvcGRvd25GaXJzdEVsZW1lbnQgfSBmcm9tIFwiLi9kcm9wZG93bi51dGlsc1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW3J0ZURyb3Bkb3duXVwiLFxuICBob3N0OiB7XG4gICAgXCJbY2xhc3MuZHJvcGRvd25dXCI6IFwidHJ1ZVwiLFxuICAgIFwiW2F0dHIuZGF0YS1kcm9wZG93bi1pZF1cIjogXCJkcm9wZG93bklkXCIsXG4gIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgaWRDb3VudGVyID0gMDtcblxuICByZWFkb25seSB0cmlnZ2VyID0gY29udGVudENoaWxkKERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSk7XG4gIHJlYWRvbmx5IG1lbnUgPSBjb250ZW50Q2hpbGQoRHJvcGRvd25NZW51Q29tcG9uZW50KTtcblxuICByZWFkb25seSBydGVEcm9wZG93blBvc2l0aW9uID0gaW5wdXQ8UG9zaXRpb24+KFwiYm90dG9tXCIpO1xuICByZWFkb25seSBydGVEcm9wZG93bkFsaWdubWVudCA9IGlucHV0PEFsaWdubWVudD4oXCJzdGFydFwiKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25Jc09wZW4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duT2Zmc2V0ID0gaW5wdXQ8bnVtYmVyPigwKTtcblxuICByZWFkb25seSBkcm9wZG93bklkID0gYGRyb3Bkb3duXyR7KytEcm9wZG93bkRpcmVjdGl2ZS5pZENvdW50ZXJ9YDtcbiAgcmVhZG9ubHkgbWVudUV2ZW50ID0gb3V0cHV0PHsgZXZlbnQ6IEV2ZW50OyBpZDogc3RyaW5nIH0+KCk7XG5cbiAgcmVhZG9ubHkgb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoT3ZlcmxheVNlcnZpY2UpO1xuICByZWFkb25seSBkcm9wZG93blNlcnZpY2UgPSBpbmplY3QoRHJvcGRvd25TZXJ2aWNlKTtcbiAgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcmVhZG9ubHkgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIGRyb3Bkb3duTWVudVJlZjogQ29tcG9uZW50UmVmPERyb3Bkb3duTWVudUNvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcblxuICBvblRyaWdnZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gIH1cblxuICBvblRyaWdnZXJLZXlFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LmtleSA9PT0gU1BBQ0VfS0VZIHx8XG4gICAgICBldmVudC5rZXkgPT09IEVOVEVSX0tFWSB8fFxuICAgICAgKGV2ZW50LmtleSA9PT0gQVJST1dfRE9XTl9LRVkgJiYgdGhpcy50cmlnZ2VyKCk/LnJ0ZURyb3Bkb3duVHJpZ2dlckFjdGl2YXRlV2l0aEFycm93RG93bigpKVxuICAgICkge1xuICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCh0aGlzLmRyb3Bkb3duSWQpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uTWVudUV2ZW50KGV2ZW50OiB7IGV2ZW50OiBFdmVudDsgaWQ6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgdGhpcy5tZW51RXZlbnQuZW1pdChldmVudCk7XG4gICAgdGhpcy5kcm9wZG93blNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIoKSkge1xuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duVHJpZ2dlcmVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMub25UcmlnZ2VyKCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duS2V5RG93bi5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMub25UcmlnZ2VyS2V5RXZlbnQoZXZlbnQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2hvd0Ryb3Bkb3duTWVudSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICB0aGlzLmRyb3Bkb3duTWVudVJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlKERyb3Bkb3duTWVudUNvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcblxuICAgIGNvbnN0IG1lbnVJZCA9IHRoaXMuZHJvcGRvd25JZDtcblxuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwibWVudUlkXCIsIG1lbnVJZCk7XG5cbiAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5vcGVuTWVudShtZW51SWQpO1xuXG4gICAgdGhpcy5hc3NpZ25JdGVtcygpO1xuICAgIHRoaXMucG9zaXRpb25Ecm9wZG93bk1lbnUodGhpcy5ydGVEcm9wZG93blBvc2l0aW9uKCkpO1xuICAgIHRoaXMuYWRkQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcblxuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmluc3RhbmNlLml0ZW1FdmVudC5zdWJzY3JpYmUoKGV2ZW50OiB7IGV2ZW50OiBFdmVudDsgaWQ6IHN0cmluZyB9KSA9PiB7XG4gICAgICB0aGlzLm9uTWVudUV2ZW50KGV2ZW50KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLmRyb3Bkb3duU2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgaWYgKHN0YXRlID09PSBudWxsKSB7XG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZiA9IG51bGw7XG5cbiAgICAgICAgICB0aGlzLnJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG4gICAgICAgICAgZHJvcGRvd25TdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IGRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBwcml2YXRlIGFzc2lnbkl0ZW1zKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJpdGVtc1wiLCB0aGlzLm1lbnUoKT8uaXRlbXMoKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwb3NpdGlvbkRyb3Bkb3duTWVudShwb3NpdGlvbjogUG9zaXRpb24gPSBcImJvdHRvbVwiKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmICYmIHRoaXMudHJpZ2dlcigpKSB7XG4gICAgICBjb25zdCBkcm9wZG93bk1lbnVFbGVtZW50ID0gdGhpcy5kcm9wZG93bk1lbnVSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAgIGNvbnN0IHRyaWdnZXJFbGVtZW50ID0gdGhpcy50cmlnZ2VyKCk/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgaWYgKHRyaWdnZXJFbGVtZW50KSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgXCJkaXNwbGF5XCIsIFwiYmxvY2tcIik7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgY29uc3QgY29tcHV0ZWRQb3NpdGlvbjogRXhjbHVkZTxQb3NpdGlvbiwgXCJhdXRvXCI+ID1cbiAgICAgICAgICBwb3NpdGlvbiA9PT0gXCJhdXRvXCIgPyBnZXRBdXRvUGxhY2VtZW50RHJvcGRvd24odHJpZ2dlckVsZW1lbnQsIGRyb3Bkb3duTWVudUVsZW1lbnQsIFwiYm90dG9tXCIpIDogcG9zaXRpb247XG4gICAgICAgIGNvbnN0IGF1dG9BbGlnbm1lbnQgPVxuICAgICAgICAgIHRoaXMucnRlRHJvcGRvd25BbGlnbm1lbnQoKSA/PyBnZXRBdXRvQWxpZ25tZW50KHRyaWdnZXJFbGVtZW50LCBkcm9wZG93bk1lbnVFbGVtZW50LCBjb21wdXRlZFBvc2l0aW9uKTtcbiAgICAgICAgY29uc3QgY29tcHV0ZWRDb29yZGluYXRlcyA9IGdldENvb3JkaW5hdGVzKFxuICAgICAgICAgIGNvbXB1dGVkUG9zaXRpb24sXG4gICAgICAgICAgdHJpZ2dlckVsZW1lbnQsXG4gICAgICAgICAgZHJvcGRvd25NZW51RWxlbWVudC5jaGlsZHJlblswXSxcbiAgICAgICAgICB0aGlzLnJ0ZURyb3Bkb3duT2Zmc2V0KCksXG4gICAgICAgICAgYXV0b0FsaWdubWVudCxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsIFwidG9wXCIsIGAke2NvbXB1dGVkQ29vcmRpbmF0ZXMudG9wfXB4YCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgXCJsZWZ0XCIsIGAke2NvbXB1dGVkQ29vcmRpbmF0ZXMubGVmdH1weGApO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgXCJvcGFjaXR5XCIsIFwiMVwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG4gICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5kZXN0cm95KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgRWxlbWVudDtcblxuICAgIGNvbnN0IGlzTWVudUl0ZW1DbGljayA9IHRhcmdldC5jbG9zZXN0KFwiLnJ0ZS1kcm9wZG93bi1pdGVtXCIpICE9PSBudWxsO1xuICAgIGlmIChpc01lbnVJdGVtQ2xpY2spIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjbGlja2VkSW5UcmlnZ2VyID0gdGhpcy5ob3N0RWxlbWVudC5jb250YWlucyh0YXJnZXQpO1xuXG4gICAgaWYgKCFjbGlja2VkSW5UcmlnZ2VyKSB7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBhZGRDbGlja091dHNpZGVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93blNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICB9XG59XG4iXX0=
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFFakIsUUFBUSxFQUNSLFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHNUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUNMLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0seURBQXlELENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFckgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFVN0QsTUFBTSxPQUFPLGlCQUFpQjthQUNiLGNBQVMsR0FBRyxDQUFDLEFBQUosQ0FBSztJQTRDN0I7UUExQ1MsWUFBTyxHQUFHLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FB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Q25CLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxDQUFDLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUNsQyxDQUFDOytHQTFQVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw2aURBR0ksd0JBQXdCLHVGQUMzQixxQkFBcUI7OzRGQUp2QyxpQkFBaUI7a0JBUjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLElBQUksRUFBRTt3QkFDSixrQkFBa0IsRUFBRSxNQUFNO3dCQUMxQix5QkFBeUIsRUFBRSxZQUFZO3FCQUN4QztvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkLFxuICBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgT25EZXN0cm95LFxuICBvdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgd2FpdEZvck5leHRGcmFtZSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21tb24vYW5pbWF0aW9uXCI7XG5pbXBvcnQgeyBBbGlnbm1lbnQgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tbW9uL2NvbW1vbi10eXBlc1wiO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9jb21tb24vY29tbW9uLXR5cGVzXCI7XG5pbXBvcnQgeyBEUk9QRE9XTl9BTklNQVRJT05fRFVSQVRJT04gfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIGdldEF1dG9BbGlnbm1lbnQsXG4gIGdldEF1dG9QbGFjZW1lbnREcm9wZG93bixcbiAgZ2V0Q29vcmRpbmF0ZXMsXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3V0aWxzL2F1dG8tcGxhY2VtZW50XCI7XG5pbXBvcnQgeyBBUlJPV19ET1dOX0tFWSwgRU5URVJfS0VZLCBTUEFDRV9LRVkgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29uc3RhbnRzL2tleWJvYXJkL2tleWJvYXJkLmNvbnN0YW50c1wiO1xuXG5pbXBvcnQgeyBEcm9wZG93blNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZHJvcGRvd24uc2VydmljZVwiO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvb3ZlcmxheS5zZXJ2aWNlXCI7XG5cbmltcG9ydCB7IERyb3Bkb3duTWVudUNvbXBvbmVudCB9IGZyb20gXCIuL2Ryb3Bkb3duLW1lbnUvZHJvcGRvd24tbWVudS5jb21wb25lbnRcIjtcbmltcG9ydCB7IERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gXCIuL2Ryb3Bkb3duLXRyaWdnZXIvZHJvcGRvd24tdHJpZ2dlci5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IGZvY3VzRHJvcGRvd25GaXJzdEVsZW1lbnQgfSBmcm9tIFwiLi9kcm9wZG93bi51dGlsc1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW3J0ZURyb3Bkb3duXVwiLFxuICBob3N0OiB7XG4gICAgXCJbY2xhc3MuZHJvcGRvd25dXCI6IFwidHJ1ZVwiLFxuICAgIFwiW2F0dHIuZGF0YS1kcm9wZG93bi1pZF1cIjogXCJkcm9wZG93bklkXCIsXG4gIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgaWRDb3VudGVyID0gMDtcblxuICByZWFkb25seSB0cmlnZ2VyID0gY29udGVudENoaWxkKERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSk7XG4gIHJlYWRvbmx5IG1lbnUgPSBjb250ZW50Q2hpbGQoRHJvcGRvd25NZW51Q29tcG9uZW50KTtcblxuICByZWFkb25seSBydGVEcm9wZG93bklkID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBydGVEcm9wZG93blBvc2l0aW9uID0gaW5wdXQ8UG9zaXRpb24+KFwiYm90dG9tXCIpO1xuICByZWFkb25seSBydGVEcm9wZG93bkFsaWdubWVudCA9IGlucHV0PEFsaWdubWVudD4oXCJzdGFydFwiKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25Jc09wZW4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duT2Zmc2V0ID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25BdXRvZm9jdXMgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25BdXRvT3BlbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBydGVEcm9wZG93bldpZHRoID0gaW5wdXQ8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgbWVudUV2ZW50ID0gb3V0cHV0PHsgZXZlbnQ6IEV2ZW50OyBpZDogc3RyaW5nIH0+KCk7XG4gIHJlYWRvbmx5IGRyb3Bkb3duSWQgPSBgZHJvcGRvd25fJHsrK0Ryb3Bkb3duRGlyZWN0aXZlLmlkQ291bnRlcn1gO1xuXG4gIHJlYWRvbmx5IG92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgZHJvcGRvd25TZXJ2aWNlID0gaW5qZWN0KERyb3Bkb3duU2VydmljZSk7XG4gIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHJlYWRvbmx5IGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICByZWFkb25seSBjbGlja2VkT3V0c2lkZSA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSBjbG9zZWREcm9wZG93biA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGlzQWN0aXZlID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWFkb25seSBtZW51SW5wdXRzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1lbnUgPSB0aGlzLm1lbnUoKTtcbiAgICBpZiAoIW1lbnUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IG1lbnUuaXRlbXMoKSxcbiAgICAgIGhlYWRlclRlbXBsYXRlOiBtZW51LmhlYWRlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZixcbiAgICAgIGZvb3RlclRlbXBsYXRlOiBtZW51LmZvb3RlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZixcbiAgICAgIHdpZHRoOiBtZW51LndpZHRoKCksXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5ob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzT3BlbiA9IHRoaXMucnRlRHJvcGRvd25Jc09wZW4oKTtcbiAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duTWVudSgpO1xuICAgICAgICAgIGlmICh0aGlzLnJ0ZURyb3Bkb3duQXV0b2ZvY3VzKCkpIHtcbiAgICAgICAgICAgIHdhaXRGb3JOZXh0RnJhbWUoKCkgPT4gZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCh0aGlzLmRyb3Bkb3duSWQpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0cyA9IHRoaXMubWVudUlucHV0cygpO1xuICAgICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmICYmIGlucHV0cykge1xuICAgICAgICB0aGlzLmFzc2lnbklucHV0cygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZHJvcGRvd25NZW51UmVmOiBDb21wb25lbnRSZWY8RHJvcGRvd25NZW51Q29tcG9uZW50PiB8IG51bGwgPSBudWxsO1xuXG4gIG9uVHJpZ2dlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ydGVEcm9wZG93bkF1dG9PcGVuKCkpIHtcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duTWVudSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5ydGVEcm9wZG93bkF1dG9mb2N1cygpKSB7XG4gICAgICB3YWl0Rm9yTmV4dEZyYW1lKCgpID0+IGZvY3VzRHJvcGRvd25GaXJzdEVsZW1lbnQodGhpcy5kcm9wZG93bklkKSk7XG4gICAgfVxuICB9XG5cbiAgb25UcmlnZ2VyS2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5rZXkgPT09IFNQQUNFX0tFWSB8fFxuICAgICAgZXZlbnQua2V5ID09PSBFTlRFUl9LRVkgfHxcbiAgICAgIChldmVudC5rZXkgPT09IEFSUk9XX0RPV05fS0VZICYmIHRoaXMudHJpZ2dlcigpPy5ydGVEcm9wZG93blRyaWdnZXJBY3RpdmF0ZVdpdGhBcnJvd0Rvd24oKSlcbiAgICApIHtcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duTWVudSgpO1xuICAgICAgaWYgKHRoaXMucnRlRHJvcGRvd25BdXRvZm9jdXMoKSkge1xuICAgICAgICB3YWl0Rm9yTmV4dEZyYW1lKCgpID0+IGZvY3VzRHJvcGRvd25GaXJzdEVsZW1lbnQodGhpcy5kcm9wZG93bklkKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25NZW51RXZlbnQoZXZlbnQ6IHsgZXZlbnQ6IEV2ZW50OyBpZDogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICB0aGlzLm1lbnVFdmVudC5lbWl0KGV2ZW50KTtcbiAgICB0aGlzLmlzQWN0aXZlLnNldChmYWxzZSk7XG4gICAgdGhpcy5kcm9wZG93blNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIoKSkge1xuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duVHJpZ2dlcmVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMub25UcmlnZ2VyKCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duS2V5RG93bi5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMub25UcmlnZ2VyS2V5RXZlbnQoZXZlbnQpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMudHJpZ2dlcigpPy5kcm9wZG93blRyaWdnZXJDbGVhckNvbnRlbnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMudHJpZ2dlcigpPy5kcm9wZG93blRyaWdnZXJPcGVuRHJvcGRvd24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMudHJpZ2dlcigpPy5kcm9wZG93blRyaWdnZXJDbG9zZURyb3Bkb3duLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2hvd0Ryb3Bkb3duTWVudSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICB0aGlzLmRyb3Bkb3duTWVudVJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlKERyb3Bkb3duTWVudUNvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcblxuICAgIGNvbnN0IG1lbnVJZCA9IHRoaXMucnRlRHJvcGRvd25JZCgpIHx8IHRoaXMuZHJvcGRvd25JZDtcblxuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwibWVudUlkXCIsIG1lbnVJZCk7XG5cbiAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5vcGVuTWVudShtZW51SWQpO1xuXG4gICAgdGhpcy5hc3NpZ25JbnB1dHMoKTtcbiAgICB0aGlzLnBvc2l0aW9uRHJvcGRvd25NZW51KHRoaXMucnRlRHJvcGRvd25Qb3NpdGlvbigpKTtcbiAgICB0aGlzLmFkZENsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG5cbiAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5pbnN0YW5jZS5pdGVtRXZlbnQuc3Vic2NyaWJlKChldmVudDogeyBldmVudDogRXZlbnQ7IGlkOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgdGhpcy5vbk1lbnVFdmVudChldmVudCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBkcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uID0gdGhpcy5kcm9wZG93blNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgIGlmIChzdGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYgPSBudWxsO1xuXG4gICAgICAgICAgdGhpcy5yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpO1xuICAgICAgICAgIGRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiBkcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NpZ25JbnB1dHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHRoaXMubWVudSgpPy5pdGVtcygpID8/IFtdO1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJpdGVtc1wiLCBpdGVtcyk7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5zZXRJbnB1dChcImhlYWRlclRlbXBsYXRlXCIsIHRoaXMubWVudSgpPy5oZWFkZXJEaXJlY3RpdmUoKT8udGVtcGxhdGVSZWYpO1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJmb290ZXJUZW1wbGF0ZVwiLCB0aGlzLm1lbnUoKT8uZm9vdGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmKTtcbiAgICB9XG5cbiAgICB0aGlzLmFzc2lnbldpZHRoKCk7XG4gIH1cblxuICBwcml2YXRlIGFzc2lnbldpZHRoKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB3aWR0aCA9IHRoaXMubWVudUlucHV0cygpPy53aWR0aCA/PyB0aGlzLnJ0ZURyb3Bkb3duV2lkdGgoKTtcbiAgICBpZiAod2lkdGggIT09IHVuZGVmaW5lZCAmJiB3aWR0aCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJ3aWR0aFwiLCB3aWR0aCk7XG4gICAgICB3YWl0Rm9yTmV4dEZyYW1lKCgpID0+IHRoaXMuZHJvcGRvd25NZW51UmVmPy5zZXRJbnB1dChcImlzT3BlblwiLCB0cnVlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwiaXNPcGVuXCIsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zaXRpb25Ecm9wZG93bk1lbnUocG9zaXRpb246IFBvc2l0aW9uID0gXCJib3R0b21cIik6IHZvaWQge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZiAmJiB0aGlzLnRyaWdnZXIoKSkge1xuICAgICAgY29uc3QgZHJvcGRvd25NZW51RWxlbWVudCA9IHRoaXMuZHJvcGRvd25NZW51UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCB0cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcigpPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIGlmICh0cmlnZ2VyRWxlbWVudCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsIFwiZGlzcGxheVwiLCBcImJsb2NrXCIpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkUG9zaXRpb246IEV4Y2x1ZGU8UG9zaXRpb24sIFwiYXV0b1wiPiA9XG4gICAgICAgICAgcG9zaXRpb24gPT09IFwiYXV0b1wiID8gZ2V0QXV0b1BsYWNlbWVudERyb3Bkb3duKHRyaWdnZXJFbGVtZW50LCBkcm9wZG93bk1lbnVFbGVtZW50LCBcImJvdHRvbVwiKSA6IHBvc2l0aW9uO1xuICAgICAgICBjb25zdCBhdXRvQWxpZ25tZW50ID1cbiAgICAgICAgICB0aGlzLnJ0ZURyb3Bkb3duQWxpZ25tZW50KCkgPz8gZ2V0QXV0b0FsaWdubWVudCh0cmlnZ2VyRWxlbWVudCwgZHJvcGRvd25NZW51RWxlbWVudCwgY29tcHV0ZWRQb3NpdGlvbik7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkQ29vcmRpbmF0ZXMgPSBnZXRDb29yZGluYXRlcyhcbiAgICAgICAgICBjb21wdXRlZFBvc2l0aW9uLFxuICAgICAgICAgIHRyaWdnZXJFbGVtZW50LFxuICAgICAgICAgIGRyb3Bkb3duTWVudUVsZW1lbnQuY2hpbGRyZW5bMF0sXG4gICAgICAgICAgdGhpcy5ydGVEcm9wZG93bk9mZnNldCgpLFxuICAgICAgICAgIGF1dG9BbGlnbm1lbnQsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93bk1lbnVFbGVtZW50LCBcInRvcFwiLCBgJHtjb21wdXRlZENvb3JkaW5hdGVzLnRvcH1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsIFwibGVmdFwiLCBgJHtjb21wdXRlZENvb3JkaW5hdGVzLmxlZnR9cHhgKTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsIFwib3BhY2l0eVwiLCBcIjFcIik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpO1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQ7XG5cbiAgICBjb25zdCBpc01lbnVJdGVtQ2xpY2sgPSB0YXJnZXQuY2xvc2VzdChcIi5ydGUtZHJvcGRvd24taXRlbVwiKSAhPT0gbnVsbDtcbiAgICBpZiAoaXNNZW51SXRlbUNsaWNrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2xpY2tlZEluVHJpZ2dlciA9IHRoaXMuaG9zdEVsZW1lbnQuY29udGFpbnModGFyZ2V0KTtcbiAgICBjb25zdCBjbGlja2VkSW5NZW51ID0gdGhpcy5kcm9wZG93bk1lbnVSZWY/LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KTtcblxuICAgIGlmICghY2xpY2tlZEluVHJpZ2dlciAmJiAhY2xpY2tlZEluTWVudSkge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICB0aGlzLmNsaWNrZWRPdXRzaWRlLmVtaXQoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBhZGRDbGlja091dHNpZGVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93bk1lbnVSZWY/LnNldElucHV0KFwiaXNPcGVuXCIsIGZhbHNlKTtcbiAgICB0aGlzLmlzQWN0aXZlLnNldChmYWxzZSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZHJvcGRvd25TZXJ2aWNlLmNsb3NlQWxsTWVudXMoKTtcbiAgICB9LCBEUk9QRE9XTl9BTklNQVRJT05fRFVSQVRJT04pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,19 +1,46 @@
|
|
|
1
1
|
import { NgModule } from "@angular/core";
|
|
2
2
|
import { DropdownItemComponent } from "./dropdown-item/dropdown-item.component";
|
|
3
|
+
import { DropdownMenuFooterDirective } from "./dropdown-menu/dropdown-menu-footer.directive";
|
|
4
|
+
import { DropdownMenuHeaderDirective } from "./dropdown-menu/dropdown-menu-header.directive";
|
|
3
5
|
import { DropdownMenuComponent } from "./dropdown-menu/dropdown-menu.component";
|
|
4
6
|
import { DropdownTriggerDirective } from "./dropdown-trigger/dropdown-trigger.directive";
|
|
5
7
|
import { DropdownDirective } from "./dropdown.directive";
|
|
6
8
|
import * as i0 from "@angular/core";
|
|
7
9
|
export class DropdownModule {
|
|
8
10
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DropdownModule, imports: [DropdownDirective,
|
|
10
|
-
|
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DropdownModule, imports: [DropdownDirective,
|
|
12
|
+
DropdownTriggerDirective,
|
|
13
|
+
DropdownMenuComponent,
|
|
14
|
+
DropdownItemComponent,
|
|
15
|
+
DropdownMenuHeaderDirective,
|
|
16
|
+
DropdownMenuFooterDirective], exports: [DropdownDirective,
|
|
17
|
+
DropdownTriggerDirective,
|
|
18
|
+
DropdownMenuComponent,
|
|
19
|
+
DropdownItemComponent,
|
|
20
|
+
DropdownMenuHeaderDirective,
|
|
21
|
+
DropdownMenuFooterDirective] }); }
|
|
22
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownModule, imports: [DropdownMenuComponent,
|
|
23
|
+
DropdownItemComponent] }); }
|
|
11
24
|
}
|
|
12
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownModule, decorators: [{
|
|
13
26
|
type: NgModule,
|
|
14
27
|
args: [{
|
|
15
|
-
imports: [
|
|
16
|
-
|
|
28
|
+
imports: [
|
|
29
|
+
DropdownDirective,
|
|
30
|
+
DropdownTriggerDirective,
|
|
31
|
+
DropdownMenuComponent,
|
|
32
|
+
DropdownItemComponent,
|
|
33
|
+
DropdownMenuHeaderDirective,
|
|
34
|
+
DropdownMenuFooterDirective,
|
|
35
|
+
],
|
|
36
|
+
exports: [
|
|
37
|
+
DropdownDirective,
|
|
38
|
+
DropdownTriggerDirective,
|
|
39
|
+
DropdownMenuComponent,
|
|
40
|
+
DropdownItemComponent,
|
|
41
|
+
DropdownMenuHeaderDirective,
|
|
42
|
+
DropdownMenuFooterDirective,
|
|
43
|
+
],
|
|
17
44
|
}]
|
|
18
45
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDN0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDN0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBb0J6RCxNQUFNLE9BQU8sY0FBYzsrR0FBZCxjQUFjO2dIQUFkLGNBQWMsWUFoQnZCLGlCQUFpQjtZQUNqQix3QkFBd0I7WUFDeEIscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsMkJBQTJCLGFBRzNCLGlCQUFpQjtZQUNqQix3QkFBd0I7WUFDeEIscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsMkJBQTJCO2dIQUdsQixjQUFjLFlBZHZCLHFCQUFxQjtZQUNyQixxQkFBcUI7OzRGQWFaLGNBQWM7a0JBbEIxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxpQkFBaUI7d0JBQ2pCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUJBQWlCO3dCQUNqQix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQiwyQkFBMkI7d0JBQzNCLDJCQUEyQjtxQkFDNUI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IERyb3Bkb3duSXRlbUNvbXBvbmVudCB9IGZyb20gXCIuL2Ryb3Bkb3duLWl0ZW0vZHJvcGRvd24taXRlbS5jb21wb25lbnRcIjtcbmltcG9ydCB7IERyb3Bkb3duTWVudUZvb3RlckRpcmVjdGl2ZSB9IGZyb20gXCIuL2Ryb3Bkb3duLW1lbnUvZHJvcGRvd24tbWVudS1mb290ZXIuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBEcm9wZG93bk1lbnVIZWFkZXJEaXJlY3RpdmUgfSBmcm9tIFwiLi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUtaGVhZGVyLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSBcIi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSBcIi4vZHJvcGRvd24tdHJpZ2dlci9kcm9wZG93bi10cmlnZ2VyLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tIFwiLi9kcm9wZG93bi5kaXJlY3RpdmVcIjtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIERyb3Bkb3duRGlyZWN0aXZlLFxuICAgIERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSxcbiAgICBEcm9wZG93bk1lbnVDb21wb25lbnQsXG4gICAgRHJvcGRvd25JdGVtQ29tcG9uZW50LFxuICAgIERyb3Bkb3duTWVudUhlYWRlckRpcmVjdGl2ZSxcbiAgICBEcm9wZG93bk1lbnVGb290ZXJEaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICBEcm9wZG93blRyaWdnZXJEaXJlY3RpdmUsXG4gICAgRHJvcGRvd25NZW51Q29tcG9uZW50LFxuICAgIERyb3Bkb3duSXRlbUNvbXBvbmVudCxcbiAgICBEcm9wZG93bk1lbnVIZWFkZXJEaXJlY3RpdmUsXG4gICAgRHJvcGRvd25NZW51Rm9vdGVyRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bk1vZHVsZSB7fVxuIl19
|