@design-system-rte/angular 0.11.0 → 0.13.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/README.md +27 -24
- package/esm2022/lib/components/badge/badge.component.mjs +8 -7
- package/esm2022/lib/components/badge/badge.directive.mjs +4 -4
- package/esm2022/lib/components/banner/banner.component.mjs +65 -0
- package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +34 -0
- package/esm2022/lib/components/button/button.component.mjs +2 -2
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/lib/components/icon/icon.component.mjs +3 -3
- package/esm2022/lib/components/icon-button/icon-button.component.mjs +3 -3
- package/esm2022/lib/components/popover/popover.component.mjs +62 -0
- package/esm2022/lib/components/popover/popover.directive.mjs +147 -0
- package/esm2022/lib/components/radio-button/radio-button.component.mjs +3 -3
- package/esm2022/lib/components/segmented-control/segmented-control.component.mjs +6 -3
- package/esm2022/lib/components/tooltip/tooltip.component.mjs +4 -4
- package/esm2022/lib/components/tooltip/tooltip.directive.mjs +18 -59
- package/esm2022/lib/services/overlay.service.mjs +43 -0
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/design-system-rte-angular.mjs +368 -84
- package/fesm2022/design-system-rte-angular.mjs.map +1 -1
- package/lib/components/badge/badge.component.d.ts +5 -4
- package/lib/components/badge/badge.directive.d.ts +3 -3
- package/lib/components/banner/banner.component.d.ts +24 -0
- package/lib/components/breadcrumbs/breadcrumbs.component.d.ts +10 -0
- package/lib/components/chip/chip.component.d.ts +1 -1
- package/lib/components/divider/divider.component.d.ts +1 -1
- package/lib/components/popover/popover.component.d.ts +29 -0
- package/lib/components/popover/popover.directive.d.ts +41 -0
- package/lib/components/segmented-control/segmented-control.component.d.ts +2 -0
- package/lib/components/tooltip/tooltip.component.d.ts +3 -2
- package/lib/components/tooltip/tooltip.directive.d.ts +5 -7
- package/lib/services/overlay.service.d.ts +12 -0
- package/package.json +2 -2
- package/public-api.d.ts +3 -0
|
@@ -18,8 +18,10 @@ export class SegmentedControlComponent {
|
|
|
18
18
|
this.segmentRefs = viewChildren("segment");
|
|
19
19
|
this.sliderLeft = signal(0);
|
|
20
20
|
this.sliderWidth = signal(0);
|
|
21
|
+
this.sliderTop = signal(0);
|
|
21
22
|
this.segmentSelectedIndicatorStyle = computed(() => ({
|
|
22
23
|
left: `${this.sliderLeft()}px`,
|
|
24
|
+
top: `${this.sliderTop()}px`,
|
|
23
25
|
width: `${this.sliderWidth()}px`,
|
|
24
26
|
}));
|
|
25
27
|
this.isValidOptions = computed(() => isValidSegmentedControlOptions(this.options()));
|
|
@@ -96,6 +98,7 @@ export class SegmentedControlComponent {
|
|
|
96
98
|
const segment = this.segmentRefs()[idx]?.nativeElement;
|
|
97
99
|
if (segment) {
|
|
98
100
|
this.sliderWidth.set(segment.offsetWidth);
|
|
101
|
+
this.sliderTop.set(segment.offsetTop);
|
|
99
102
|
this.sliderLeft.set(segment.offsetLeft);
|
|
100
103
|
}
|
|
101
104
|
}
|
|
@@ -111,10 +114,10 @@ export class SegmentedControlComponent {
|
|
|
111
114
|
}
|
|
112
115
|
}
|
|
113
116
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SegmentedControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "17.3.12", type: SegmentedControlComponent, isStandalone: true, selector: "rte-segmented-control", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedSegment: { classPropertyName: "selectedSegment", publicName: "selectedSegment", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, viewQueries: [{ propertyName: "segmentRefs", predicate: ["segment"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isValidOptions()\" class=\"rte-segmented-control\" role=\"radiogroup\" [attr.aria-label]=\"ariaLabel()\">\n <span class=\"rte-segment-selected-indicator\" [ngStyle]=\"segmentSelectedIndicatorStyle()\"></span>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <div class=\"rte-segment-container\" [attr.data-position]=\"getSegmentPosition(idx)\">\n <div\n #segment\n role=\"radio\"\n class=\"rte-segment\"\n tabindex=\"0\"\n [attr.data-id]=\"option.id\"\n [attr.data-segment-type]=\"option.icon ? 'icon' : 'label'\"\n [class.selected]=\"isSegmentSelected(option.id)\"\n [attr.aria-checked]=\"isSegmentSelected(option.id)\"\n [attr.aria-label]=\"option.label\"\n (click)=\"selectSegment(option.id)\"\n (keydown)=\"handleKeyDown($event)\"\n (keyup)=\"handleKeyUp($event)\"\n >\n <rte-icon\n *ngIf=\"isSegmentSelected(option.id)\"\n name=\"check-small\"\n class=\"rte-selected-icon\"\n [size]=\"24\"\n />\n <div class=\"rte-segment-content\">\n <ng-container *ngIf=\"option.icon; else label\">\n <rte-icon [name]=\"option.icon\" [size]=\"24\" [appearance]=\"isSegmentSelected(option.id) ? 'filled' : 'outlined' \"></rte-icon>\n </ng-container>\n <ng-template #label>\n <span class=\"rte-segment-label\">{{ option.label }}</span>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.rte-segmented-control{
|
|
117
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "17.3.12", type: SegmentedControlComponent, isStandalone: true, selector: "rte-segmented-control", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedSegment: { classPropertyName: "selectedSegment", publicName: "selectedSegment", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, viewQueries: [{ propertyName: "segmentRefs", predicate: ["segment"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isValidOptions()\" class=\"rte-segmented-control\" role=\"radiogroup\" [attr.aria-label]=\"ariaLabel()\">\n <span class=\"rte-segment-selected-indicator\" [ngStyle]=\"segmentSelectedIndicatorStyle()\"></span>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <div class=\"rte-segment-container\" [attr.data-position]=\"getSegmentPosition(idx)\">\n <div\n #segment\n role=\"radio\"\n class=\"rte-segment\"\n tabindex=\"0\"\n [attr.data-id]=\"option.id\"\n [attr.data-segment-type]=\"option.icon ? 'icon' : 'label'\"\n [class.selected]=\"isSegmentSelected(option.id)\"\n [attr.aria-checked]=\"isSegmentSelected(option.id)\"\n [attr.aria-label]=\"option.label\"\n (click)=\"selectSegment(option.id)\"\n (keydown)=\"handleKeyDown($event)\"\n (keyup)=\"handleKeyUp($event)\"\n >\n <rte-icon\n *ngIf=\"isSegmentSelected(option.id)\"\n name=\"check-small\"\n class=\"rte-selected-icon\"\n [size]=\"24\"\n />\n <div class=\"rte-segment-content\">\n <ng-container *ngIf=\"option.icon; else label\">\n <rte-icon [name]=\"option.icon\" [size]=\"24\" [appearance]=\"isSegmentSelected(option.id) ? 'filled' : 'outlined' \"></rte-icon>\n </ng-container>\n <ng-template #label>\n <span class=\"rte-segment-label\">{{ option.label }}</span>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.rte-segmented-control{display:flex;min-width:168px;max-width:720px;height:48px}.rte-segmented-control[data-number-of-segments=\"3\"]{min-width:256px}.rte-segment-selected-indicator{position:absolute;top:4px;height:40px;background:var(--background-default);border-radius:999px;transition:left .2s ease-out,width .2s ease-out}.rte-segment-container{display:flex;border-top:1px solid var(--border-inverse);border-bottom:1px solid var(--border-inverse);background:var(--background-brand-default);padding:4px 2px;align-items:center;flex:1 0 0;overflow:hidden}.rte-segment-container[data-position=left]{border-radius:999px 0 0 999px;border-left:1px solid var(--border-inverse);background:var(--background-brand-default);padding-left:4px}.rte-segment-container[data-position=right]{border-radius:0 999px 999px 0;border-right:1px solid var(--border-inverse);background:var(--background-brand-default);padding-right:4px}.rte-segment{display:flex;padding:6px 8px;align-items:center;border-radius:999px;color:var(--content-primary-inverse);flex:1 1 auto;overflow:hidden;width:100%;z-index:0}.rte-segment:focus-visible{outline:1px solid var(--border-inverse);outline-offset:-2px}.rte-segment.selected{transition:color .2s ease-out;color:var(--content-brand-default)}.rte-segment.selected:focus-visible{outline:1px solid var(--border-brand-focused)}.rte-segment:hover:not(.selected){background:var(--background-brand-hover);cursor:pointer}.rte-segment[data-segment-type=icon]{padding:8px}.rte-segment .rte-segment-content{display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden}.rte-segment .rte-segment-content .rte-segment-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;padding:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-segment .rte-selected-icon{min-width:24px;min-height:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
115
118
|
}
|
|
116
119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SegmentedControlComponent, decorators: [{
|
|
117
120
|
type: Component,
|
|
118
|
-
args: [{ selector: "rte-segmented-control", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"isValidOptions()\" class=\"rte-segmented-control\" role=\"radiogroup\" [attr.aria-label]=\"ariaLabel()\">\n <span class=\"rte-segment-selected-indicator\" [ngStyle]=\"segmentSelectedIndicatorStyle()\"></span>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <div class=\"rte-segment-container\" [attr.data-position]=\"getSegmentPosition(idx)\">\n <div\n #segment\n role=\"radio\"\n class=\"rte-segment\"\n tabindex=\"0\"\n [attr.data-id]=\"option.id\"\n [attr.data-segment-type]=\"option.icon ? 'icon' : 'label'\"\n [class.selected]=\"isSegmentSelected(option.id)\"\n [attr.aria-checked]=\"isSegmentSelected(option.id)\"\n [attr.aria-label]=\"option.label\"\n (click)=\"selectSegment(option.id)\"\n (keydown)=\"handleKeyDown($event)\"\n (keyup)=\"handleKeyUp($event)\"\n >\n <rte-icon\n *ngIf=\"isSegmentSelected(option.id)\"\n name=\"check-small\"\n class=\"rte-selected-icon\"\n [size]=\"24\"\n />\n <div class=\"rte-segment-content\">\n <ng-container *ngIf=\"option.icon; else label\">\n <rte-icon [name]=\"option.icon\" [size]=\"24\" [appearance]=\"isSegmentSelected(option.id) ? 'filled' : 'outlined' \"></rte-icon>\n </ng-container>\n <ng-template #label>\n <span class=\"rte-segment-label\">{{ option.label }}</span>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.rte-segmented-control{
|
|
121
|
+
args: [{ selector: "rte-segmented-control", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"isValidOptions()\" class=\"rte-segmented-control\" role=\"radiogroup\" [attr.aria-label]=\"ariaLabel()\">\n <span class=\"rte-segment-selected-indicator\" [ngStyle]=\"segmentSelectedIndicatorStyle()\"></span>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <div class=\"rte-segment-container\" [attr.data-position]=\"getSegmentPosition(idx)\">\n <div\n #segment\n role=\"radio\"\n class=\"rte-segment\"\n tabindex=\"0\"\n [attr.data-id]=\"option.id\"\n [attr.data-segment-type]=\"option.icon ? 'icon' : 'label'\"\n [class.selected]=\"isSegmentSelected(option.id)\"\n [attr.aria-checked]=\"isSegmentSelected(option.id)\"\n [attr.aria-label]=\"option.label\"\n (click)=\"selectSegment(option.id)\"\n (keydown)=\"handleKeyDown($event)\"\n (keyup)=\"handleKeyUp($event)\"\n >\n <rte-icon\n *ngIf=\"isSegmentSelected(option.id)\"\n name=\"check-small\"\n class=\"rte-selected-icon\"\n [size]=\"24\"\n />\n <div class=\"rte-segment-content\">\n <ng-container *ngIf=\"option.icon; else label\">\n <rte-icon [name]=\"option.icon\" [size]=\"24\" [appearance]=\"isSegmentSelected(option.id) ? 'filled' : 'outlined' \"></rte-icon>\n </ng-container>\n <ng-template #label>\n <span class=\"rte-segment-label\">{{ option.label }}</span>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.rte-segmented-control{display:flex;min-width:168px;max-width:720px;height:48px}.rte-segmented-control[data-number-of-segments=\"3\"]{min-width:256px}.rte-segment-selected-indicator{position:absolute;top:4px;height:40px;background:var(--background-default);border-radius:999px;transition:left .2s ease-out,width .2s ease-out}.rte-segment-container{display:flex;border-top:1px solid var(--border-inverse);border-bottom:1px solid var(--border-inverse);background:var(--background-brand-default);padding:4px 2px;align-items:center;flex:1 0 0;overflow:hidden}.rte-segment-container[data-position=left]{border-radius:999px 0 0 999px;border-left:1px solid var(--border-inverse);background:var(--background-brand-default);padding-left:4px}.rte-segment-container[data-position=right]{border-radius:0 999px 999px 0;border-right:1px solid var(--border-inverse);background:var(--background-brand-default);padding-right:4px}.rte-segment{display:flex;padding:6px 8px;align-items:center;border-radius:999px;color:var(--content-primary-inverse);flex:1 1 auto;overflow:hidden;width:100%;z-index:0}.rte-segment:focus-visible{outline:1px solid var(--border-inverse);outline-offset:-2px}.rte-segment.selected{transition:color .2s ease-out;color:var(--content-brand-default)}.rte-segment.selected:focus-visible{outline:1px solid var(--border-brand-focused)}.rte-segment:hover:not(.selected){background:var(--background-brand-hover);cursor:pointer}.rte-segment[data-segment-type=icon]{padding:8px}.rte-segment .rte-segment-content{display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden}.rte-segment .rte-segment-content .rte-segment-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;padding:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-segment .rte-selected-icon{min-width:24px;min-height:24px}\n"] }]
|
|
119
122
|
}] });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUdaLFFBQVEsRUFDUixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsOEJBQThCLEVBQzlCLHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDM0IsOEJBQThCLEdBQy9CLE1BQU0sOEVBQThFLENBQUM7QUFLdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUNMLGNBQWMsRUFDZCxlQUFlLEVBQ2YsU0FBUyxFQUNULFNBQVMsRUFDVCxPQUFPLEdBQ1IsTUFBTSwrREFBK0QsQ0FBQztBQUV2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUV2RCxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUM7QUFDbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztBQVUzQyxNQUFNLE9BQU8seUJBQXlCO0lBUnRDO1FBU1csWUFBTyxHQUFHLEtBQUssQ0FBbUIsRUFBRSxDQUFDLENBQUM7UUFDdEMs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QU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQVFPLDBCQUEwQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDL0IsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDakUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUNyRCxFQUFFLGFBQWEsQ0FBQztZQUNqQixJQUFJLHNCQUFzQixFQUFFLENBQUM7Z0JBQzNCLHNCQUFzQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0E5SFUseUJBQXlCO21HQUF6Qix5QkFBeUIsdXlCQ2pEdEMseStDQW1DTSxzckVEUU0sWUFBWSxxVkFBRSxhQUFhOzs0RkFNMUIseUJBQXlCO2tCQVJyQyxTQUFTOytCQUNFLHVCQUF1QixXQUN4QixDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsY0FDMUIsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgdmlld0NoaWxkcmVuLFxuICBBZnRlclZpZXdJbml0LFxuICBPbkRlc3Ryb3ksXG4gIGNvbXB1dGVkLFxuICBzaWduYWwsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIGdldFNlZ21lbnRQb3NpdGlvbixcbiAgZm9jdXNOZXh0Tm90U2VnbWVudEVsZW1lbnQsXG4gIGZvY3VzUHJldmlvdXNOb3RTZWdtZW50RWxlbWVudCxcbiAgZm9jdXNOZXh0U2VnbWVudEVsZW1lbnQsXG4gIGZvY3VzUHJldmlvdXNTZWdtZW50RWxlbWVudCxcbiAgaXNWYWxpZFNlZ21lbnRlZENvbnRyb2xPcHRpb25zLFxufSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9zZWdtZW50ZWQtY29udHJvbC9zZWdtZW50ZWQtY29udHJvbC11dGlsc1wiO1xuaW1wb3J0IHtcbiAgU2VnbWVudE9wdGlvbnMsXG4gIFNlZ21lbnRQcm9wcyxcbn0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbXBvbmVudHMvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBGT0NVU0FCTEVfRUxFTUVOVFNfUVVFUlkgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29uc3RhbnRzL2RvbS9kb20uY29uc3RhbnRzXCI7XG5pbXBvcnQge1xuICBBUlJPV19MRUZUX0tFWSxcbiAgQVJST1dfUklHSFRfS0VZLFxuICBFTlRFUl9LRVksXG4gIFNQQUNFX0tFWSxcbiAgVEFCX0tFWSxcbn0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbnN0YW50cy9rZXlib2FyZC9rZXlib2FyZC5jb25zdGFudHNcIjtcblxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9pY29uL2ljb24uY29tcG9uZW50XCI7XG5cbmNvbnN0IHNlZ21lbnRDbGFzcyA9IFwicnRlLXNlZ21lbnRcIjtcbmNvbnN0IHNlZ21lbnRTZWxlY3RvciA9IGAuJHtzZWdtZW50Q2xhc3N9YDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInJ0ZS1zZWdtZW50ZWQtY29udHJvbFwiLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uQ29tcG9uZW50XSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zZWdtZW50ZWQtY29udHJvbC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybDogXCIuL3NlZ21lbnRlZC1jb250cm9sLmNvbXBvbmVudC5zY3NzXCIsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTZWdtZW50ZWRDb250cm9sQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICByZWFkb25seSBvcHRpb25zID0gaW5wdXQ8U2VnbWVudE9wdGlvbnNbXT4oW10pO1xuICByZWFkb25seSBjaGFuZ2UgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBzZWxlY3RlZFNlZ21lbnQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGFyaWFMYWJlbCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgYXJpYUxhYmVsbGVkQnkgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgcmVhZG9ubHkgc2VnbWVudFJlZnMgPSB2aWV3Q2hpbGRyZW48RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4+KFwic2VnbWVudFwiKTtcblxuICByZWFkb25seSBzbGlkZXJMZWZ0ID0gc2lnbmFsKDApO1xuICByZWFkb25seSBzbGlkZXJXaWR0aCA9IHNpZ25hbCgwKTtcblxuICByZWFkb25seSBzZWdtZW50U2VsZWN0ZWRJbmRpY2F0b3JTdHlsZSA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgbGVmdDogYCR7dGhpcy5zbGlkZXJMZWZ0KCl9cHhgLFxuICAgIHdpZHRoOiBgJHt0aGlzLnNsaWRlcldpZHRoKCl9cHhgLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgaXNWYWxpZE9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiBpc1ZhbGlkU2VnbWVudGVkQ29udHJvbE9wdGlvbnModGhpcy5vcHRpb25zKCkpKTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbXCJzZWxlY3RlZFNlZ21lbnRcIl0pIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRTZWdtZW50SW5kaWNhdG9yKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRTZWdtZW50SW5kaWNhdG9yKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy51cGRhdGVTZWxlY3RlZFNlZ21lbnRJbmRpY2F0b3IuYmluZCh0aGlzKSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIHRoaXMub25HbG9iYWxLZXlEb3duLmJpbmQodGhpcykpO1xuXG4gICAgdGhpcy5zZWdtZW50UmVmcygpLmZvckVhY2goKHNlZ21lbnRFbGVtZW50KSA9PiB7XG4gICAgICBzZWdtZW50RWxlbWVudC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLCB0aGlzLmZvY3VzQ3VycmVudFNlZ21lbnRFbGVtZW50LmJpbmQodGhpcykpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy51cGRhdGVTZWxlY3RlZFNlZ21lbnRJbmRpY2F0b3IuYmluZCh0aGlzKSk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIHRoaXMub25HbG9iYWxLZXlEb3duLmJpbmQodGhpcykpO1xuXG4gICAgdGhpcy5zZWdtZW50UmVmcygpLmZvckVhY2goKHNlZ21lbnRFbGVtZW50KSA9PiB7XG4gICAgICBzZWdtZW50RWxlbWVudC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLCB0aGlzLmZvY3VzQ3VycmVudFNlZ21lbnRFbGVtZW50LmJpbmQodGhpcykpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0U2VnbWVudChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdChpZCk7XG4gIH1cblxuICBpc1NlZ21lbnRTZWxlY3RlZChpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRTZWdtZW50KCkgPT09IGlkO1xuICB9XG5cbiAgaGFuZGxlS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmIChldmVudC5rZXkgPT09IEFSUk9XX1JJR0hUX0tFWSB8fCBldmVudC5rZXkgPT09IEFSUk9XX0xFRlRfS0VZKSB7XG4gICAgICBjb25zdCBhbGxTZWdtZW50RWxlbWVudHMgPVxuICAgICAgICBBcnJheS5mcm9tKFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICBzZWdtZW50U2VsZWN0b3IsXG4gICAgICAgICAgKSBhcyBOb2RlTGlzdE9mPEhUTUxFbGVtZW50PixcbiAgICAgICAgKSB8fCBbXTtcblxuICAgICAgY29uc3QgY3VycmVudEFjdGl2ZVNlZ21lbnRFbGVtZW50SW5kZXggPSBBcnJheS5mcm9tKGFsbFNlZ21lbnRFbGVtZW50cykuZmluZEluZGV4KFxuICAgICAgICAoZWxlbWVudCkgPT4gZWxlbWVudCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChldmVudC5rZXkgPT09IEFSUk9XX1JJR0hUX0tFWSkge1xuICAgICAgICBmb2N1c05leHRTZWdtZW50RWxlbWVudChjdXJyZW50QWN0aXZlU2VnbWVudEVsZW1lbnRJbmRleCwgYWxsU2VnbWVudEVsZW1lbnRzKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBBUlJPV19MRUZUX0tFWSkge1xuICAgICAgICBmb2N1c1ByZXZpb3VzU2VnbWVudEVsZW1lbnQoY3VycmVudEFjdGl2ZVNlZ21lbnRFbGVtZW50SW5kZXgsIGFsbFNlZ21lbnRFbGVtZW50cyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IFNQQUNFX0tFWSB8fCBldmVudC5rZXkgPT09IEVOVEVSX0tFWSkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgZGF0YUlkID0gdGFyZ2V0LmdldEF0dHJpYnV0ZShcImRhdGEtaWRcIik7XG4gICAgICB0aGlzLnNlbGVjdFNlZ21lbnQoZGF0YUlkIHx8IFwiXCIpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSBUQUJfS0VZIHx8IGV2ZW50LmtleSA9PT0gU1BBQ0VfS0VZIHx8IGV2ZW50LmtleSA9PT0gRU5URVJfS0VZKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoZXZlbnQua2V5ID09PSBUQUJfS0VZKSB7XG4gICAgICBjb25zdCBhbGxGb2N1c2FibGVFbGVtZW50cyA9IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChGT0NVU0FCTEVfRUxFTUVOVFNfUVVFUlkpKSBhcyBIVE1MRWxlbWVudFtdO1xuICAgICAgY29uc3QgY3VycmVudEFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gYWxsRm9jdXNhYmxlRWxlbWVudHMuaW5kZXhPZihjdXJyZW50QWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICBmb2N1c1ByZXZpb3VzTm90U2VnbWVudEVsZW1lbnQoY3VycmVudEluZGV4LCBhbGxGb2N1c2FibGVFbGVtZW50cywgc2VnbWVudENsYXNzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvY3VzTmV4dE5vdFNlZ21lbnRFbGVtZW50KGN1cnJlbnRJbmRleCwgYWxsRm9jdXNhYmxlRWxlbWVudHMsIHNlZ21lbnRDbGFzcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0U2VnbWVudFBvc2l0aW9uKGluZGV4OiBudW1iZXIpOiBTZWdtZW50UHJvcHNbXCJwb3NpdGlvblwiXSB7XG4gICAgcmV0dXJuIGdldFNlZ21lbnRQb3NpdGlvbihpbmRleCwgdGhpcy5vcHRpb25zKCkubGVuZ3RoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRTZWdtZW50SW5kaWNhdG9yKCkge1xuICAgIGNvbnN0IGlkeCA9IHRoaXMub3B0aW9ucygpLmZpbmRJbmRleCgob3B0KSA9PiBvcHQuaWQgPT09IHRoaXMuc2VsZWN0ZWRTZWdtZW50KCkpO1xuICAgIGNvbnN0IHNlZ21lbnQgPSB0aGlzLnNlZ21lbnRSZWZzKClbaWR4XT8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmIChzZWdtZW50KSB7XG4gICAgICB0aGlzLnNsaWRlcldpZHRoLnNldChzZWdtZW50Lm9mZnNldFdpZHRoKTtcbiAgICAgIHRoaXMuc2xpZGVyTGVmdC5zZXQoc2VnbWVudC5vZmZzZXRMZWZ0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxhc3RLZXlkb3duOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIG9uR2xvYmFsS2V5RG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIHRoaXMubGFzdEtleWRvd24gPSBldmVudC5rZXk7XG4gIH07XG5cbiAgcHJpdmF0ZSBmb2N1c0N1cnJlbnRTZWdtZW50RWxlbWVudCgpIHtcbiAgICBpZiAodGhpcy5sYXN0S2V5ZG93biA9PT0gXCJUYWJcIikge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRTZWdtZW50RWxlbWVudCA9IHRoaXMuc2VnbWVudFJlZnMoKS5maW5kKChzZWdtZW50KSA9PlxuICAgICAgICBzZWdtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwic2VsZWN0ZWRcIiksXG4gICAgICApPy5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKHNlbGVjdGVkU2VnbWVudEVsZW1lbnQpIHtcbiAgICAgICAgc2VsZWN0ZWRTZWdtZW50RWxlbWVudC5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWdtZW50UmVmcygpWzBdPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImlzVmFsaWRPcHRpb25zKClcIiBjbGFzcz1cInJ0ZS1zZWdtZW50ZWQtY29udHJvbFwiIHJvbGU9XCJyYWRpb2dyb3VwXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKVwiPlxuICA8c3BhbiBjbGFzcz1cInJ0ZS1zZWdtZW50LXNlbGVjdGVkLWluZGljYXRvclwiIFtuZ1N0eWxlXT1cInNlZ21lbnRTZWxlY3RlZEluZGljYXRvclN0eWxlKClcIj48L3NwYW4+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zKCk7IGxldCBpZHggPSBpbmRleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJydGUtc2VnbWVudC1jb250YWluZXJcIiBbYXR0ci5kYXRhLXBvc2l0aW9uXT1cImdldFNlZ21lbnRQb3NpdGlvbihpZHgpXCI+XG4gICAgICA8ZGl2XG4gICAgICAjc2VnbWVudFxuICAgICAgcm9sZT1cInJhZGlvXCJcbiAgICAgIGNsYXNzPVwicnRlLXNlZ21lbnRcIlxuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIFthdHRyLmRhdGEtaWRdPVwib3B0aW9uLmlkXCJcbiAgICAgIFthdHRyLmRhdGEtc2VnbWVudC10eXBlXT1cIm9wdGlvbi5pY29uID8gICdpY29uJyA6ICdsYWJlbCdcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzU2VnbWVudFNlbGVjdGVkKG9wdGlvbi5pZClcIlxuICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImlzU2VnbWVudFNlbGVjdGVkKG9wdGlvbi5pZClcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdFNlZ21lbnQob3B0aW9uLmlkKVwiXG4gICAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAgICAgKGtleXVwKT1cImhhbmRsZUtleVVwKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPHJ0ZS1pY29uXG4gICAgICAgICAgKm5nSWY9XCJpc1NlZ21lbnRTZWxlY3RlZChvcHRpb24uaWQpXCJcbiAgICAgICAgICBuYW1lPVwiY2hlY2stc21hbGxcIlxuICAgICAgICAgIGNsYXNzPVwicnRlLXNlbGVjdGVkLWljb25cIlxuICAgICAgICAgIFtzaXplXT1cIjI0XCJcbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwicnRlLXNlZ21lbnQtY29udGVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uLmljb247IGVsc2UgbGFiZWxcIj5cbiAgICAgICAgICA8cnRlLWljb24gW25hbWVdPVwib3B0aW9uLmljb25cIiBbc2l6ZV09XCIyNFwiIFthcHBlYXJhbmNlXT1cImlzU2VnbWVudFNlbGVjdGVkKG9wdGlvbi5pZCkgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCcgXCI+PC9ydGUtaWNvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbGFiZWw+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJydGUtc2VnbWVudC1sYWJlbFwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj4iXX0=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUdaLFFBQVEsRUFDUixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsOEJBQThCLEVBQzlCLHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDM0IsOEJBQThCLEdBQy9CLE1BQU0sOEVBQThFLENBQUM7QUFLdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUNMLGNBQWMsRUFDZCxlQUFlLEVBQ2YsU0FBUyxFQUNULFNBQVMsRUFDVCxPQUFPLEdBQ1IsTUFBTSwrREFBK0QsQ0FBQztBQUV2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUV2RCxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUM7QUFDbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztBQVUzQyxNQUFNLE9BQU8seUJBQXlCO0lBUnRDO1FBU1csWUFBTyxHQUFHLEtBQUssQ0FBbUIsRUFBRSxDQUFDLENBQUM7UUFDdEMs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QUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFRTywwQkFBMEI7UUFDaEMsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQy9CLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ2pFLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FDckQsRUFBRSxhQUFhLENBQUM7WUFDakIsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO2dCQUMzQixzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNoRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBaklVLHlCQUF5QjttR0FBekIseUJBQXlCLHV5QkNqRHRDLHkrQ0FtQ00sb3FFRFFNLFlBQVkscVZBQUUsYUFBYTs7NEZBTTFCLHlCQUF5QjtrQkFSckMsU0FBUzsrQkFDRSx1QkFBdUIsV0FDeEIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLGNBQzFCLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHZpZXdDaGlsZHJlbixcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT25EZXN0cm95LFxuICBjb21wdXRlZCxcbiAgc2lnbmFsLFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBnZXRTZWdtZW50UG9zaXRpb24sXG4gIGZvY3VzTmV4dE5vdFNlZ21lbnRFbGVtZW50LFxuICBmb2N1c1ByZXZpb3VzTm90U2VnbWVudEVsZW1lbnQsXG4gIGZvY3VzTmV4dFNlZ21lbnRFbGVtZW50LFxuICBmb2N1c1ByZXZpb3VzU2VnbWVudEVsZW1lbnQsXG4gIGlzVmFsaWRTZWdtZW50ZWRDb250cm9sT3B0aW9ucyxcbn0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbXBvbmVudHMvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wtdXRpbHNcIjtcbmltcG9ydCB7XG4gIFNlZ21lbnRPcHRpb25zLFxuICBTZWdtZW50UHJvcHMsXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3NlZ21lbnRlZC1jb250cm9sL3NlZ21lbnRlZC1jb250cm9sLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRk9DVVNBQkxFX0VMRU1FTlRTX1FVRVJZIH0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbnN0YW50cy9kb20vZG9tLmNvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgQVJST1dfTEVGVF9LRVksXG4gIEFSUk9XX1JJR0hUX0tFWSxcbiAgRU5URVJfS0VZLFxuICBTUEFDRV9LRVksXG4gIFRBQl9LRVksXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb25zdGFudHMva2V5Ym9hcmQva2V5Ym9hcmQuY29uc3RhbnRzXCI7XG5cbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi9pY29uLmNvbXBvbmVudFwiO1xuXG5jb25zdCBzZWdtZW50Q2xhc3MgPSBcInJ0ZS1zZWdtZW50XCI7XG5jb25zdCBzZWdtZW50U2VsZWN0b3IgPSBgLiR7c2VnbWVudENsYXNzfWA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJydGUtc2VnbWVudGVkLWNvbnRyb2xcIixcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkNvbXBvbmVudF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmw6IFwiLi9zZWdtZW50ZWQtY29udHJvbC5jb21wb25lbnQuc2Nzc1wiLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2VnbWVudGVkQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgb3B0aW9ucyA9IGlucHV0PFNlZ21lbnRPcHRpb25zW10+KFtdKTtcbiAgcmVhZG9ubHkgY2hhbmdlID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgc2VsZWN0ZWRTZWdtZW50ID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBhcmlhTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGFyaWFMYWJlbGxlZEJ5ID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHJlYWRvbmx5IHNlZ21lbnRSZWZzID0gdmlld0NoaWxkcmVuPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PihcInNlZ21lbnRcIik7XG5cbiAgcmVhZG9ubHkgc2xpZGVyTGVmdCA9IHNpZ25hbCgwKTtcbiAgcmVhZG9ubHkgc2xpZGVyV2lkdGggPSBzaWduYWwoMCk7XG4gIHJlYWRvbmx5IHNsaWRlclRvcCA9IHNpZ25hbCgwKTtcblxuICByZWFkb25seSBzZWdtZW50U2VsZWN0ZWRJbmRpY2F0b3JTdHlsZSA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgbGVmdDogYCR7dGhpcy5zbGlkZXJMZWZ0KCl9cHhgLFxuICAgIHRvcDogYCR7dGhpcy5zbGlkZXJUb3AoKX1weGAsXG4gICAgd2lkdGg6IGAke3RoaXMuc2xpZGVyV2lkdGgoKX1weGAsXG4gIH0pKTtcblxuICByZWFkb25seSBpc1ZhbGlkT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IGlzVmFsaWRTZWdtZW50ZWRDb250cm9sT3B0aW9ucyh0aGlzLm9wdGlvbnMoKSkpO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcInNlbGVjdGVkU2VnbWVudFwiXSkge1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFNlZ21lbnRJbmRpY2F0b3IoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZFNlZ21lbnRJbmRpY2F0b3IoKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aGlzLnVwZGF0ZVNlbGVjdGVkU2VnbWVudEluZGljYXRvci5iaW5kKHRoaXMpKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbkdsb2JhbEtleURvd24uYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnNlZ21lbnRSZWZzKCkuZm9yRWFjaCgoc2VnbWVudEVsZW1lbnQpID0+IHtcbiAgICAgIHNlZ21lbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsIHRoaXMuZm9jdXNDdXJyZW50U2VnbWVudEVsZW1lbnQuYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aGlzLnVwZGF0ZVNlbGVjdGVkU2VnbWVudEluZGljYXRvci5iaW5kKHRoaXMpKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbkdsb2JhbEtleURvd24uYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnNlZ21lbnRSZWZzKCkuZm9yRWFjaCgoc2VnbWVudEVsZW1lbnQpID0+IHtcbiAgICAgIHNlZ21lbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsIHRoaXMuZm9jdXNDdXJyZW50U2VnbWVudEVsZW1lbnQuYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RTZWdtZW50KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KGlkKTtcbiAgfVxuXG4gIGlzU2VnbWVudFNlbGVjdGVkKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFNlZ21lbnQoKSA9PT0gaWQ7XG4gIH1cblxuICBoYW5kbGVLZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gQVJST1dfUklHSFRfS0VZIHx8IGV2ZW50LmtleSA9PT0gQVJST1dfTEVGVF9LRVkpIHtcbiAgICAgIGNvbnN0IGFsbFNlZ21lbnRFbGVtZW50cyA9XG4gICAgICAgIEFycmF5LmZyb20oXG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8ucGFyZW50RWxlbWVudD8ucGFyZW50RWxlbWVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgIHNlZ21lbnRTZWxlY3RvcixcbiAgICAgICAgICApIGFzIE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+LFxuICAgICAgICApIHx8IFtdO1xuXG4gICAgICBjb25zdCBjdXJyZW50QWN0aXZlU2VnbWVudEVsZW1lbnRJbmRleCA9IEFycmF5LmZyb20oYWxsU2VnbWVudEVsZW1lbnRzKS5maW5kSW5kZXgoXG4gICAgICAgIChlbGVtZW50KSA9PiBlbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50LFxuICAgICAgKTtcblxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gQVJST1dfUklHSFRfS0VZKSB7XG4gICAgICAgIGZvY3VzTmV4dFNlZ21lbnRFbGVtZW50KGN1cnJlbnRBY3RpdmVTZWdtZW50RWxlbWVudEluZGV4LCBhbGxTZWdtZW50RWxlbWVudHMpO1xuICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IEFSUk9XX0xFRlRfS0VZKSB7XG4gICAgICAgIGZvY3VzUHJldmlvdXNTZWdtZW50RWxlbWVudChjdXJyZW50QWN0aXZlU2VnbWVudEVsZW1lbnRJbmRleCwgYWxsU2VnbWVudEVsZW1lbnRzKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gU1BBQ0VfS0VZIHx8IGV2ZW50LmtleSA9PT0gRU5URVJfS0VZKSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBkYXRhSWQgPSB0YXJnZXQuZ2V0QXR0cmlidXRlKFwiZGF0YS1pZFwiKTtcbiAgICAgIHRoaXMuc2VsZWN0U2VnbWVudChkYXRhSWQgfHwgXCJcIik7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09IFRBQl9LRVkgfHwgZXZlbnQua2V5ID09PSBTUEFDRV9LRVkgfHwgZXZlbnQua2V5ID09PSBFTlRFUl9LRVkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChldmVudC5rZXkgPT09IFRBQl9LRVkpIHtcbiAgICAgIGNvbnN0IGFsbEZvY3VzYWJsZUVsZW1lbnRzID0gQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKEZPQ1VTQUJMRV9FTEVNRU5UU19RVUVSWSkpIGFzIEhUTUxFbGVtZW50W107XG4gICAgICBjb25zdCBjdXJyZW50QWN0aXZlRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBhbGxGb2N1c2FibGVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRBY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcblxuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgIGZvY3VzUHJldmlvdXNOb3RTZWdtZW50RWxlbWVudChjdXJyZW50SW5kZXgsIGFsbEZvY3VzYWJsZUVsZW1lbnRzLCBzZWdtZW50Q2xhc3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9jdXNOZXh0Tm90U2VnbWVudEVsZW1lbnQoY3VycmVudEluZGV4LCBhbGxGb2N1c2FibGVFbGVtZW50cywgc2VnbWVudENsYXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRTZWdtZW50UG9zaXRpb24oaW5kZXg6IG51bWJlcik6IFNlZ21lbnRQcm9wc1tcInBvc2l0aW9uXCJdIHtcbiAgICByZXR1cm4gZ2V0U2VnbWVudFBvc2l0aW9uKGluZGV4LCB0aGlzLm9wdGlvbnMoKS5sZW5ndGgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZFNlZ21lbnRJbmRpY2F0b3IoKSB7XG4gICAgY29uc3QgaWR4ID0gdGhpcy5vcHRpb25zKCkuZmluZEluZGV4KChvcHQpID0+IG9wdC5pZCA9PT0gdGhpcy5zZWxlY3RlZFNlZ21lbnQoKSk7XG4gICAgY29uc3Qgc2VnbWVudCA9IHRoaXMuc2VnbWVudFJlZnMoKVtpZHhdPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKHNlZ21lbnQpIHtcbiAgICAgIHRoaXMuc2xpZGVyV2lkdGguc2V0KHNlZ21lbnQub2Zmc2V0V2lkdGgpO1xuICAgICAgdGhpcy5zbGlkZXJUb3Auc2V0KHNlZ21lbnQub2Zmc2V0VG9wKTtcbiAgICAgIHRoaXMuc2xpZGVyTGVmdC5zZXQoc2VnbWVudC5vZmZzZXRMZWZ0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxhc3RLZXlkb3duOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIG9uR2xvYmFsS2V5RG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIHRoaXMubGFzdEtleWRvd24gPSBldmVudC5rZXk7XG4gIH07XG5cbiAgcHJpdmF0ZSBmb2N1c0N1cnJlbnRTZWdtZW50RWxlbWVudCgpIHtcbiAgICBpZiAodGhpcy5sYXN0S2V5ZG93biA9PT0gXCJUYWJcIikge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRTZWdtZW50RWxlbWVudCA9IHRoaXMuc2VnbWVudFJlZnMoKS5maW5kKChzZWdtZW50KSA9PlxuICAgICAgICBzZWdtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwic2VsZWN0ZWRcIiksXG4gICAgICApPy5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKHNlbGVjdGVkU2VnbWVudEVsZW1lbnQpIHtcbiAgICAgICAgc2VsZWN0ZWRTZWdtZW50RWxlbWVudC5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWdtZW50UmVmcygpWzBdPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImlzVmFsaWRPcHRpb25zKClcIiBjbGFzcz1cInJ0ZS1zZWdtZW50ZWQtY29udHJvbFwiIHJvbGU9XCJyYWRpb2dyb3VwXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKVwiPlxuICA8c3BhbiBjbGFzcz1cInJ0ZS1zZWdtZW50LXNlbGVjdGVkLWluZGljYXRvclwiIFtuZ1N0eWxlXT1cInNlZ21lbnRTZWxlY3RlZEluZGljYXRvclN0eWxlKClcIj48L3NwYW4+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zKCk7IGxldCBpZHggPSBpbmRleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJydGUtc2VnbWVudC1jb250YWluZXJcIiBbYXR0ci5kYXRhLXBvc2l0aW9uXT1cImdldFNlZ21lbnRQb3NpdGlvbihpZHgpXCI+XG4gICAgICA8ZGl2XG4gICAgICAjc2VnbWVudFxuICAgICAgcm9sZT1cInJhZGlvXCJcbiAgICAgIGNsYXNzPVwicnRlLXNlZ21lbnRcIlxuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIFthdHRyLmRhdGEtaWRdPVwib3B0aW9uLmlkXCJcbiAgICAgIFthdHRyLmRhdGEtc2VnbWVudC10eXBlXT1cIm9wdGlvbi5pY29uID8gICdpY29uJyA6ICdsYWJlbCdcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzU2VnbWVudFNlbGVjdGVkKG9wdGlvbi5pZClcIlxuICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImlzU2VnbWVudFNlbGVjdGVkKG9wdGlvbi5pZClcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdFNlZ21lbnQob3B0aW9uLmlkKVwiXG4gICAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAgICAgKGtleXVwKT1cImhhbmRsZUtleVVwKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPHJ0ZS1pY29uXG4gICAgICAgICAgKm5nSWY9XCJpc1NlZ21lbnRTZWxlY3RlZChvcHRpb24uaWQpXCJcbiAgICAgICAgICBuYW1lPVwiY2hlY2stc21hbGxcIlxuICAgICAgICAgIGNsYXNzPVwicnRlLXNlbGVjdGVkLWljb25cIlxuICAgICAgICAgIFtzaXplXT1cIjI0XCJcbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwicnRlLXNlZ21lbnQtY29udGVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uLmljb247IGVsc2UgbGFiZWxcIj5cbiAgICAgICAgICA8cnRlLWljb24gW25hbWVdPVwib3B0aW9uLmljb25cIiBbc2l6ZV09XCIyNFwiIFthcHBlYXJhbmNlXT1cImlzU2VnbWVudFNlbGVjdGVkKG9wdGlvbi5pZCkgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCcgXCI+PC9ydGUtaWNvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbGFiZWw+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJydGUtc2VnbWVudC1sYWJlbFwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj4iXX0=
|
|
@@ -5,15 +5,15 @@ import * as i1 from "@angular/common";
|
|
|
5
5
|
export class TooltipComponent {
|
|
6
6
|
constructor() {
|
|
7
7
|
this.label = input.required();
|
|
8
|
-
this.position = input("
|
|
8
|
+
this.position = input("top");
|
|
9
9
|
this.alignment = input("center");
|
|
10
10
|
this.arrow = input(true);
|
|
11
11
|
}
|
|
12
12
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: TooltipComponent, isStandalone: true, selector: "rte-tooltip", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, alignment: { classPropertyName: "alignment", publicName: "alignment", isSignal: true, isRequired: false, transformFunction: null }, arrow: { classPropertyName: "arrow", publicName: "arrow", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: TooltipComponent, isStandalone: true, selector: "rte-tooltip", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, alignment: { classPropertyName: "alignment", publicName: "alignment", isSignal: true, isRequired: false, transformFunction: null }, arrow: { classPropertyName: "arrow", publicName: "arrow", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"tooltip {{ position() }} {{ alignment() }}\"\n [ngClass]=\"{ arrow: arrow() }\"\n>\n <span role=\"tooltip\" class=\"tooltip-label\"> {{ label() }} </span>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";:host{position:absolute;max-width:160px;max-height:40px;transition:opacity .15s ease-out}:host:not(:hover){transition:opacity .1s ease-in}.tooltip{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-primary-inverse);position:absolute;text-align:center;z-index:1;max-width:160px;max-height:40px;width:fit-content;padding-block:4px;padding-inline:16px;border-radius:4px;background:var(--background-inverse)}.tooltip.top,.tooltip.bottom{transform:translate(-50%)}.tooltip.left,.tooltip.right{transform:translateY(-50%)}.tooltip.top{bottom:0}.tooltip.top:after{top:100%;left:50%;margin-left:-5px;border-color:var(--background-inverse) transparent transparent transparent}.tooltip.top.start:after{left:25%}.tooltip.top.end:after{left:75%}.tooltip.bottom:after{bottom:100%;left:50%;margin-left:-5px;border-color:transparent transparent var(--background-inverse) transparent}.tooltip.bottom.start:after{left:25%}.tooltip.bottom.end:after{left:75%}.tooltip.left{right:0}.tooltip.left:after{top:50%;left:100%;margin-top:-5px;border-color:transparent transparent transparent var(--background-inverse)}.tooltip.left.start:after{top:25%}.tooltip.left.end:after{top:75%}.tooltip.right:after{top:50%;right:100%;margin-top:-5px;border-color:transparent var(--background-inverse) transparent transparent}.tooltip.right.start:after{top:25%}.tooltip.right.end:after{top:75%}.tooltip.arrow:after{content:\"\";position:absolute;border-width:5px;border-style:solid}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
14
14
|
}
|
|
15
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
|
-
args: [{ selector: "rte-tooltip", imports: [CommonModule], standalone: true, template: "<div\n
|
|
17
|
+
args: [{ selector: "rte-tooltip", imports: [CommonModule], standalone: true, template: "<div\n class=\"tooltip {{ position() }} {{ alignment() }}\"\n [ngClass]=\"{ arrow: arrow() }\"\n>\n <span role=\"tooltip\" class=\"tooltip-label\"> {{ label() }} </span>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";:host{position:absolute;max-width:160px;max-height:40px;transition:opacity .15s ease-out}:host:not(:hover){transition:opacity .1s ease-in}.tooltip{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-primary-inverse);position:absolute;text-align:center;z-index:1;max-width:160px;max-height:40px;width:fit-content;padding-block:4px;padding-inline:16px;border-radius:4px;background:var(--background-inverse)}.tooltip.top,.tooltip.bottom{transform:translate(-50%)}.tooltip.left,.tooltip.right{transform:translateY(-50%)}.tooltip.top{bottom:0}.tooltip.top:after{top:100%;left:50%;margin-left:-5px;border-color:var(--background-inverse) transparent transparent transparent}.tooltip.top.start:after{left:25%}.tooltip.top.end:after{left:75%}.tooltip.bottom:after{bottom:100%;left:50%;margin-left:-5px;border-color:transparent transparent var(--background-inverse) transparent}.tooltip.bottom.start:after{left:25%}.tooltip.bottom.end:after{left:75%}.tooltip.left{right:0}.tooltip.left:after{top:50%;left:100%;margin-top:-5px;border-color:transparent transparent transparent var(--background-inverse)}.tooltip.left.start:after{top:25%}.tooltip.left.end:after{top:75%}.tooltip.right:after{top:50%;right:100%;margin-top:-5px;border-color:transparent var(--background-inverse) transparent transparent}.tooltip.right.start:after{top:25%}.tooltip.right.end:after{top:75%}.tooltip.arrow:after{content:\"\";position:absolute;border-width:5px;border-style:solid}\n"] }]
|
|
18
18
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBVWpELE1BQU0sT0FBTyxnQkFBZ0I7SUFQN0I7UUFRVyxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ2pDLGFBQVEsR0FBRyxLQUFLLENBQTRCLEtBQUssQ0FBQyxDQUFDO1FBQ25ELGNBQVMsR0FBRyxLQUFLLENBQVksUUFBUSxDQUFDLENBQUM7UUFDdkMsVUFBSyxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztLQUN2QzsrR0FMWSxnQkFBZ0I7bUdBQWhCLGdCQUFnQix1a0JDWDdCLHdMQU1BLGl6RERBWSxZQUFZOzs0RkFLWCxnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0UsYUFBYSxXQUNkLENBQUMsWUFBWSxDQUFDLGNBQ1gsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWxpZ25tZW50LCBQb3NpdGlvbiB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21tb24vY29tbW9uLXR5cGVzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJydGUtdG9vbHRpcFwiLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi90b29sdGlwLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsOiBcIi4vdG9vbHRpcC5jb21wb25lbnQuc2Nzc1wiLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgbGFiZWwgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHBvc2l0aW9uID0gaW5wdXQ8RXhjbHVkZTxQb3NpdGlvbiwgXCJhdXRvXCI+PihcInRvcFwiKTtcbiAgcmVhZG9ubHkgYWxpZ25tZW50ID0gaW5wdXQ8QWxpZ25tZW50PihcImNlbnRlclwiKTtcbiAgcmVhZG9ubHkgYXJyb3cgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJ0b29sdGlwIHt7IHBvc2l0aW9uKCkgfX0ge3sgYWxpZ25tZW50KCkgfX1cIlxuICBbbmdDbGFzc109XCJ7IGFycm93OiBhcnJvdygpIH1cIlxuPlxuICA8c3BhbiByb2xlPVwidG9vbHRpcFwiIGNsYXNzPVwidG9vbHRpcC1sYWJlbFwiPiB7eyBsYWJlbCgpIH19IDwvc3Bhbj5cbjwvZGl2PlxuIl19
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ChangeDetectorRef, Directive, ElementRef, HostListener, inject, input, Renderer2, ViewContainerRef, } from "@angular/core";
|
|
2
|
-
import {
|
|
2
|
+
import { TOOLTIP_GAP, TOOLTIP_GAP_ARROW } from "@design-system-rte/core/components/tooltip/tooltip.constants";
|
|
3
|
+
import { getAutoPlacement, getCoordinates } from "@design-system-rte/core/components/utils/auto-placement";
|
|
4
|
+
import { OverlayService } from "../../services/overlay.service";
|
|
3
5
|
import { TooltipComponent } from "./tooltip.component";
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
|
-
const TOOLTIP_GAP = 8;
|
|
6
7
|
export class TooltipDirective {
|
|
7
8
|
onMouseEnter() {
|
|
8
9
|
this.showTooltip();
|
|
@@ -26,29 +27,29 @@ export class TooltipDirective {
|
|
|
26
27
|
this.viewContainerRef = inject(ViewContainerRef);
|
|
27
28
|
this.renderer = inject(Renderer2);
|
|
28
29
|
this.cdr = inject(ChangeDetectorRef);
|
|
30
|
+
this.overlayService = inject(OverlayService);
|
|
29
31
|
this.hostElement = this.elementRef.nativeElement;
|
|
30
32
|
this.hostElement.setAttribute("tabindex", "0");
|
|
31
33
|
}
|
|
34
|
+
ngAfterViewInit() {
|
|
35
|
+
window.addEventListener("scroll", this.positionTooltip.bind(this));
|
|
36
|
+
}
|
|
37
|
+
ngOnDestroy() {
|
|
38
|
+
window.removeEventListener("scroll", this.positionTooltip.bind(this));
|
|
39
|
+
}
|
|
32
40
|
showTooltip() {
|
|
33
41
|
if (this.tooltipRef) {
|
|
34
42
|
this.tooltipRef.destroy();
|
|
35
43
|
}
|
|
36
|
-
this.tooltipRef = this.
|
|
44
|
+
this.tooltipRef = this.overlayService.create(TooltipComponent, this.viewContainerRef);
|
|
37
45
|
this.assignDirectiveToComponent();
|
|
38
|
-
this.
|
|
39
|
-
this.cdr.detectChanges();
|
|
40
|
-
if (this.tooltipRef) {
|
|
41
|
-
const tooltipElement = this.tooltipRef.location.nativeElement;
|
|
42
|
-
this.renderer.setStyle(tooltipElement, "opacity", "0");
|
|
43
|
-
this.positionTooltip();
|
|
44
|
-
this.renderer.setStyle(tooltipElement, "opacity", "1");
|
|
45
|
-
}
|
|
46
|
+
this.positionTooltip();
|
|
46
47
|
}
|
|
47
48
|
assignDirectiveToComponent() {
|
|
48
49
|
if (this.tooltipRef) {
|
|
49
50
|
const tooltipElement = this.tooltipRef.location.nativeElement;
|
|
50
51
|
const position = this.rteTooltipPosition() === "auto"
|
|
51
|
-
? getAutoPlacement(this.hostElement, tooltipElement, "top")
|
|
52
|
+
? getAutoPlacement(this.hostElement, tooltipElement, "top", this.rteTooltipArrow() ? TOOLTIP_GAP_ARROW : TOOLTIP_GAP, true)
|
|
52
53
|
: this.rteTooltipPosition();
|
|
53
54
|
this.tooltipRef.setInput("label", this.rteTooltip());
|
|
54
55
|
this.tooltipRef.setInput("position", position);
|
|
@@ -56,57 +57,14 @@ export class TooltipDirective {
|
|
|
56
57
|
this.tooltipRef.setInput("arrow", this.rteTooltipArrow());
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
|
-
appendComponentToHost() {
|
|
60
|
-
if (this.tooltipRef) {
|
|
61
|
-
this.renderer.appendChild(this.elementRef.nativeElement, this.tooltipRef.location.nativeElement);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
60
|
positionTooltip() {
|
|
65
61
|
if (this.tooltipRef) {
|
|
66
62
|
const tooltipElement = this.tooltipRef.location.nativeElement;
|
|
67
|
-
const
|
|
63
|
+
const positions = getCoordinates(this.tooltipRef.instance.position(), this.hostElement, tooltipElement, this.rteTooltipArrow() ? TOOLTIP_GAP_ARROW : TOOLTIP_GAP);
|
|
68
64
|
this.renderer.setStyle(this.hostElement, "position", "relative");
|
|
69
|
-
this.renderer.setStyle(tooltipElement,
|
|
70
|
-
this.renderer.setStyle(tooltipElement,
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
getTooltipPosition(host, tooltip) {
|
|
74
|
-
return {
|
|
75
|
-
x: this.getTooltipXBound(host, tooltip),
|
|
76
|
-
y: this.getTooltipYBound(host, tooltip),
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
getTooltipXBound(host, tooltip) {
|
|
80
|
-
return {
|
|
81
|
-
position: tooltip.instance.position() === "right" ? "right" : "left",
|
|
82
|
-
offset: this.getTooltipXOffset(host, tooltip),
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
getTooltipXOffset(host, tooltip) {
|
|
86
|
-
const hostRect = host.getBoundingClientRect();
|
|
87
|
-
if (tooltip.instance.position() === "left") {
|
|
88
|
-
return -tooltip.location.nativeElement.querySelector(".tooltip").offsetWidth - TOOLTIP_GAP;
|
|
89
|
-
}
|
|
90
|
-
if (tooltip.instance.position() === "right") {
|
|
91
|
-
return -TOOLTIP_GAP;
|
|
92
|
-
}
|
|
93
|
-
return hostRect.width / 2;
|
|
94
|
-
}
|
|
95
|
-
getTooltipYBound(host, tooltip) {
|
|
96
|
-
return {
|
|
97
|
-
position: tooltip.instance.position() === "bottom" ? "bottom" : "top",
|
|
98
|
-
offset: this.getTooltipYOffset(host, tooltip),
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
getTooltipYOffset(host, tooltip) {
|
|
102
|
-
const hostRect = host.getBoundingClientRect();
|
|
103
|
-
if (tooltip.instance.position() === "top") {
|
|
104
|
-
return -tooltip.location.nativeElement.querySelector(".tooltip").offsetHeight - TOOLTIP_GAP;
|
|
105
|
-
}
|
|
106
|
-
if (tooltip.instance.position() === "bottom") {
|
|
107
|
-
return -TOOLTIP_GAP;
|
|
65
|
+
this.renderer.setStyle(tooltipElement, "top", `${positions.top}px`);
|
|
66
|
+
this.renderer.setStyle(tooltipElement, "left", `${positions.left}px`);
|
|
108
67
|
}
|
|
109
|
-
return hostRect.height / 2;
|
|
110
68
|
}
|
|
111
69
|
hideTooltip() {
|
|
112
70
|
if (this.tooltipRef) {
|
|
@@ -116,6 +74,7 @@ export class TooltipDirective {
|
|
|
116
74
|
if (this.tooltipRef) {
|
|
117
75
|
this.tooltipRef.destroy();
|
|
118
76
|
this.tooltipRef = null;
|
|
77
|
+
this.overlayService.destroy();
|
|
119
78
|
}
|
|
120
79
|
}, 200);
|
|
121
80
|
}
|
|
@@ -142,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
142
101
|
type: HostListener,
|
|
143
102
|
args: ["blur"]
|
|
144
103
|
}] } });
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWlCdkQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBTXRCLE1BQU0sT0FBTyxnQkFBZ0I7SUFlM0IsWUFBWTtRQUNWLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBR0QsWUFBWTtRQUNWLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBR0QsT0FBTztRQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBR0QsTUFBTTtRQUNKLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7UUFqQ1MsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUN0Qyx1QkFBa0IsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsd0JBQW1CLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLG9CQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9CLGVBQVUsR0FBMEMsSUFBSSxDQUFDO1FBR3pELGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMscUJB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LENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFFOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUV2RCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDekIsQ0FBQztZQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDOytHQXJKVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO3dEQWdCQyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFNMUIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBTTFCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQU1yQixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBnZXRBdXRvUGxhY2VtZW50IH0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbXBvbmVudHMvdXRpbHMvYXV0by1wbGFjZW1lbnRcIjtcblxuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gXCIuL3Rvb2x0aXAuY29tcG9uZW50XCI7XG5cbmludGVyZmFjZSBUb29sdGlwWEJvdW5kIHtcbiAgcG9zaXRpb246IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuICBvZmZzZXQ6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFRvb2x0aXBZQm91bmQge1xuICBwb3NpdGlvbjogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG4gIG9mZnNldDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgVG9vbHRpcEJvdW5kcyB7XG4gIHg6IFRvb2x0aXBYQm91bmQ7XG4gIHk6IFRvb2x0aXBZQm91bmQ7XG59XG5cbmNvbnN0IFRPT0xUSVBfR0FQID0gODtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltydGVUb29sdGlwXVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIHtcbiAgcmVhZG9ubHkgcnRlVG9vbHRpcCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgcnRlVG9vbHRpcFBvc2l0aW9uID0gaW5wdXQoXCJhdXRvXCIpO1xuICByZWFkb25seSBydGVUb29sdGlwQWxpZ25tZW50ID0gaW5wdXQoXCJjZW50ZXJcIik7XG4gIHJlYWRvbmx5IHJ0ZVRvb2x0aXBBcnJvdyA9IGlucHV0KHRydWUpO1xuXG4gIHByaXZhdGUgdG9vbHRpcFJlZjogQ29tcG9uZW50UmVmPFRvb2x0aXBDb21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBASG9zdExpc3RlbmVyKFwibW91c2VlbnRlclwiKVxuICBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93VG9vbHRpcCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIilcbiAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZVRvb2x0aXAoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJmb2N1c1wiKVxuICBvbkZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1Rvb2x0aXAoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJibHVyXCIpXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVUb29sdGlwKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCBcIjBcIik7XG4gIH1cblxuICBzaG93VG9vbHRpcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50b29sdGlwUmVmKSB7XG4gICAgICB0aGlzLnRvb2x0aXBSZWYuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHRoaXMudG9vbHRpcFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoVG9vbHRpcENvbXBvbmVudCk7XG4gICAgdGhpcy5hc3NpZ25EaXJlY3RpdmVUb0NvbXBvbmVudCgpO1xuICAgIHRoaXMuYXBwZW5kQ29tcG9uZW50VG9Ib3N0KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgaWYgKHRoaXMudG9vbHRpcFJlZikge1xuICAgICAgY29uc3QgdG9vbHRpcEVsZW1lbnQgPSB0aGlzLnRvb2x0aXBSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodG9vbHRpcEVsZW1lbnQsIFwib3BhY2l0eVwiLCBcIjBcIik7XG4gICAgICB0aGlzLnBvc2l0aW9uVG9vbHRpcCgpO1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRvb2x0aXBFbGVtZW50LCBcIm9wYWNpdHlcIiwgXCIxXCIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXNzaWduRGlyZWN0aXZlVG9Db21wb25lbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudG9vbHRpcFJlZikge1xuICAgICAgY29uc3QgdG9vbHRpcEVsZW1lbnQgPSB0aGlzLnRvb2x0aXBSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID1cbiAgICAgICAgdGhpcy5ydGVUb29sdGlwUG9zaXRpb24oKSA9PT0gXCJhdXRvXCJcbiAgICAgICAgICA/IGdldEF1dG9QbGFjZW1lbnQodGhpcy5ob3N0RWxlbWVudCwgdG9vbHRpcEVsZW1lbnQsIFwidG9wXCIpXG4gICAgICAgICAgOiB0aGlzLnJ0ZVRvb2x0aXBQb3NpdGlvbigpO1xuXG4gICAgICB0aGlzLnRvb2x0aXBSZWYuc2V0SW5wdXQoXCJsYWJlbFwiLCB0aGlzLnJ0ZVRvb2x0aXAoKSk7XG4gICAgICB0aGlzLnRvb2x0aXBSZWYuc2V0SW5wdXQoXCJwb3NpdGlvblwiLCBwb3NpdGlvbik7XG4gICAgICB0aGlzLnRvb2x0aXBSZWYuc2V0SW5wdXQoXCJhbGlnbm1lbnRcIiwgdGhpcy5ydGVUb29sdGlwQWxpZ25tZW50KCkpO1xuICAgICAgdGhpcy50b29sdGlwUmVmLnNldElucHV0KFwiYXJyb3dcIiwgdGhpcy5ydGVUb29sdGlwQXJyb3coKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBlbmRDb21wb25lbnRUb0hvc3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudG9vbHRpcFJlZikge1xuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy50b29sdGlwUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zaXRpb25Ub29sdGlwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRvb2x0aXBSZWYpIHtcbiAgICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50ID0gdGhpcy50b29sdGlwUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZ2V0VG9vbHRpcFBvc2l0aW9uKHRoaXMuaG9zdEVsZW1lbnQsIHRoaXMudG9vbHRpcFJlZik7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudCwgXCJwb3NpdGlvblwiLCBcInJlbGF0aXZlXCIpO1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRvb2x0aXBFbGVtZW50LCBib3VuZHMueC5wb3NpdGlvbiwgYCR7Ym91bmRzLngub2Zmc2V0fXB4YCk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRvb2x0aXBFbGVtZW50LCBib3VuZHMueS5wb3NpdGlvbiwgYCR7Ym91bmRzLnkub2Zmc2V0fXB4YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb29sdGlwUG9zaXRpb24oaG9zdDogSFRNTEVsZW1lbnQsIHRvb2x0aXA6IENvbXBvbmVudFJlZjxUb29sdGlwQ29tcG9uZW50Pik6IFRvb2x0aXBCb3VuZHMge1xuICAgIHJldHVybiB7XG4gICAgICB4OiB0aGlzLmdldFRvb2x0aXBYQm91bmQoaG9zdCwgdG9vbHRpcCksXG4gICAgICB5OiB0aGlzLmdldFRvb2x0aXBZQm91bmQoaG9zdCwgdG9vbHRpcCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VG9vbHRpcFhCb3VuZChob3N0OiBIVE1MRWxlbWVudCwgdG9vbHRpcDogQ29tcG9uZW50UmVmPFRvb2x0aXBDb21wb25lbnQ+KTogVG9vbHRpcFhCb3VuZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiB0b29sdGlwLmluc3RhbmNlLnBvc2l0aW9uKCkgPT09IFwicmlnaHRcIiA/IFwicmlnaHRcIiA6IFwibGVmdFwiLFxuICAgICAgb2Zmc2V0OiB0aGlzLmdldFRvb2x0aXBYT2Zmc2V0KGhvc3QsIHRvb2x0aXApLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFRvb2x0aXBYT2Zmc2V0KGhvc3Q6IEhUTUxFbGVtZW50LCB0b29sdGlwOiBDb21wb25lbnRSZWY8VG9vbHRpcENvbXBvbmVudD4pOiBudW1iZXIge1xuICAgIGNvbnN0IGhvc3RSZWN0ID0gaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBpZiAodG9vbHRpcC5pbnN0YW5jZS5wb3NpdGlvbigpID09PSBcImxlZnRcIikge1xuICAgICAgcmV0dXJuIC10b29sdGlwLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcIi50b29sdGlwXCIpLm9mZnNldFdpZHRoIC0gVE9PTFRJUF9HQVA7XG4gICAgfVxuICAgIGlmICh0b29sdGlwLmluc3RhbmNlLnBvc2l0aW9uKCkgPT09IFwicmlnaHRcIikge1xuICAgICAgcmV0dXJuIC1UT09MVElQX0dBUDtcbiAgICB9XG4gICAgcmV0dXJuIGhvc3RSZWN0LndpZHRoIC8gMjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VG9vbHRpcFlCb3VuZChob3N0OiBIVE1MRWxlbWVudCwgdG9vbHRpcDogQ29tcG9uZW50UmVmPFRvb2x0aXBDb21wb25lbnQ+KTogVG9vbHRpcFlCb3VuZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiB0b29sdGlwLmluc3RhbmNlLnBvc2l0aW9uKCkgPT09IFwiYm90dG9tXCIgPyBcImJvdHRvbVwiIDogXCJ0b3BcIixcbiAgICAgIG9mZnNldDogdGhpcy5nZXRUb29sdGlwWU9mZnNldChob3N0LCB0b29sdGlwKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb29sdGlwWU9mZnNldChob3N0OiBIVE1MRWxlbWVudCwgdG9vbHRpcDogQ29tcG9uZW50UmVmPFRvb2x0aXBDb21wb25lbnQ+KTogbnVtYmVyIHtcbiAgICBjb25zdCBob3N0UmVjdCA9IGhvc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAodG9vbHRpcC5pbnN0YW5jZS5wb3NpdGlvbigpID09PSBcInRvcFwiKSB7XG4gICAgICByZXR1cm4gLXRvb2x0aXAubG9jYXRpb24ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnRvb2x0aXBcIikub2Zmc2V0SGVpZ2h0IC0gVE9PTFRJUF9HQVA7XG4gICAgfVxuICAgIGlmICh0b29sdGlwLmluc3RhbmNlLnBvc2l0aW9uKCkgPT09IFwiYm90dG9tXCIpIHtcbiAgICAgIHJldHVybiAtVE9PTFRJUF9HQVA7XG4gICAgfVxuICAgIHJldHVybiBob3N0UmVjdC5oZWlnaHQgLyAyO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWRlVG9vbHRpcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50b29sdGlwUmVmKSB7XG4gICAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRoaXMudG9vbHRpcFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRvb2x0aXBFbGVtZW50LCBcIm9wYWNpdHlcIiwgXCIwXCIpO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcFJlZikge1xuICAgICAgICAgIHRoaXMudG9vbHRpcFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgdGhpcy50b29sdGlwUmVmID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSwgMjAwKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFFakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0seURBQXlELENBQUM7QUFFM0csT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU12RCxNQUFNLE9BQU8sZ0JBQWdCO0lBZ0IzQixZQUFZO1FBQ1YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFHRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFHRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFHRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDtRQWxDUyxlQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ3RDLHVCQUFrQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyx3QkFBbUIsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsb0JBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7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QU0xQixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFNckIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgT25EZXN0cm95LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUT09MVElQX0dBUCwgVE9PTFRJUF9HQVBfQVJST1cgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnZXRBdXRvUGxhY2VtZW50LCBnZXRDb29yZGluYXRlcyB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3V0aWxzL2F1dG8tcGxhY2VtZW50XCI7XG5cbmltcG9ydCB7IE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL292ZXJsYXkuc2VydmljZVwiO1xuXG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSBcIi4vdG9vbHRpcC5jb21wb25lbnRcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltydGVUb29sdGlwXVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgcnRlVG9vbHRpcCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgcnRlVG9vbHRpcFBvc2l0aW9uID0gaW5wdXQoXCJhdXRvXCIpO1xuICByZWFkb25seSBydGVUb29sdGlwQWxpZ25tZW50ID0gaW5wdXQoXCJjZW50ZXJcIik7XG4gIHJlYWRvbmx5IHJ0ZVRvb2x0aXBBcnJvdyA9IGlucHV0KHRydWUpO1xuXG4gIHByaXZhdGUgdG9vbHRpcFJlZjogQ29tcG9uZW50UmVmPFRvb2x0aXBDb21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIG92ZXJsYXlTZXJ2aWNlOiBPdmVybGF5U2VydmljZTtcblxuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIilcbiAgb25Nb3VzZUVudGVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1Rvb2x0aXAoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIpXG4gIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVUb29sdGlwKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwiZm9jdXNcIilcbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dUb29sdGlwKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwiYmx1clwiKVxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlVG9vbHRpcCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5vdmVybGF5U2VydmljZSA9IGluamVjdChPdmVybGF5U2VydmljZSk7XG4gICAgdGhpcy5ob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIiwgXCIwXCIpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMucG9zaXRpb25Ub29sdGlwLmJpbmQodGhpcykpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhpcy5wb3NpdGlvblRvb2x0aXAuYmluZCh0aGlzKSk7XG4gIH1cblxuICBzaG93VG9vbHRpcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50b29sdGlwUmVmKSB7XG4gICAgICB0aGlzLnRvb2x0aXBSZWYuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHRoaXMudG9vbHRpcFJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlKFRvb2x0aXBDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgdGhpcy5hc3NpZ25EaXJlY3RpdmVUb0NvbXBvbmVudCgpO1xuICAgIHRoaXMucG9zaXRpb25Ub29sdGlwKCk7XG4gIH1cblxuICBwcml2YXRlIGFzc2lnbkRpcmVjdGl2ZVRvQ29tcG9uZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRvb2x0aXBSZWYpIHtcbiAgICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50ID0gdGhpcy50b29sdGlwUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIGNvbnN0IHBvc2l0aW9uID1cbiAgICAgICAgdGhpcy5ydGVUb29sdGlwUG9zaXRpb24oKSA9PT0gXCJhdXRvXCJcbiAgICAgICAgICA/IGdldEF1dG9QbGFjZW1lbnQoXG4gICAgICAgICAgICAgIHRoaXMuaG9zdEVsZW1lbnQsXG4gICAgICAgICAgICAgIHRvb2x0aXBFbGVtZW50LFxuICAgICAgICAgICAgICBcInRvcFwiLFxuICAgICAgICAgICAgICB0aGlzLnJ0ZVRvb2x0aXBBcnJvdygpID8gVE9PTFRJUF9HQVBfQVJST1cgOiBUT09MVElQX0dBUCxcbiAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IHRoaXMucnRlVG9vbHRpcFBvc2l0aW9uKCk7XG5cbiAgICAgIHRoaXMudG9vbHRpcFJlZi5zZXRJbnB1dChcImxhYmVsXCIsIHRoaXMucnRlVG9vbHRpcCgpKTtcbiAgICAgIHRoaXMudG9vbHRpcFJlZi5zZXRJbnB1dChcInBvc2l0aW9uXCIsIHBvc2l0aW9uKTtcbiAgICAgIHRoaXMudG9vbHRpcFJlZi5zZXRJbnB1dChcImFsaWdubWVudFwiLCB0aGlzLnJ0ZVRvb2x0aXBBbGlnbm1lbnQoKSk7XG4gICAgICB0aGlzLnRvb2x0aXBSZWYuc2V0SW5wdXQoXCJhcnJvd1wiLCB0aGlzLnJ0ZVRvb2x0aXBBcnJvdygpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBvc2l0aW9uVG9vbHRpcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50b29sdGlwUmVmKSB7XG4gICAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRoaXMudG9vbHRpcFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICBjb25zdCBwb3NpdGlvbnMgPSBnZXRDb29yZGluYXRlcyhcbiAgICAgICAgdGhpcy50b29sdGlwUmVmLmluc3RhbmNlLnBvc2l0aW9uKCksXG4gICAgICAgIHRoaXMuaG9zdEVsZW1lbnQsXG4gICAgICAgIHRvb2x0aXBFbGVtZW50LFxuICAgICAgICB0aGlzLnJ0ZVRvb2x0aXBBcnJvdygpID8gVE9PTFRJUF9HQVBfQVJST1cgOiBUT09MVElQX0dBUCxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudCwgXCJwb3NpdGlvblwiLCBcInJlbGF0aXZlXCIpO1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRvb2x0aXBFbGVtZW50LCBcInRvcFwiLCBgJHtwb3NpdGlvbnMudG9wfXB4YCk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRvb2x0aXBFbGVtZW50LCBcImxlZnRcIiwgYCR7cG9zaXRpb25zLmxlZnR9cHhgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhpZGVUb29sdGlwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRvb2x0aXBSZWYpIHtcbiAgICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50ID0gdGhpcy50b29sdGlwUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodG9vbHRpcEVsZW1lbnQsIFwib3BhY2l0eVwiLCBcIjBcIik7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy50b29sdGlwUmVmKSB7XG4gICAgICAgICAgdGhpcy50b29sdGlwUmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICB0aGlzLnRvb2x0aXBSZWYgPSBudWxsO1xuICAgICAgICAgIHRoaXMub3ZlcmxheVNlcnZpY2UuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICB9LCAyMDApO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class OverlayService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.activeOverlays = new Set();
|
|
6
|
+
}
|
|
7
|
+
getOverlayRoot() {
|
|
8
|
+
if (!this.overlayRoot) {
|
|
9
|
+
this.overlayRoot = document.getElementById("overlay-root");
|
|
10
|
+
if (!this.overlayRoot) {
|
|
11
|
+
this.overlayRoot = document.createElement("div");
|
|
12
|
+
this.overlayRoot.id = "overlay-root";
|
|
13
|
+
document.body.appendChild(this.overlayRoot);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return this.overlayRoot;
|
|
17
|
+
}
|
|
18
|
+
create(component, viewContainer) {
|
|
19
|
+
const root = this.getOverlayRoot();
|
|
20
|
+
const componentRef = viewContainer.createComponent(component);
|
|
21
|
+
root.appendChild(componentRef.location.nativeElement);
|
|
22
|
+
this.activeOverlays.add(componentRef);
|
|
23
|
+
const originalDestroy = componentRef.destroy.bind(componentRef);
|
|
24
|
+
componentRef.destroy = () => {
|
|
25
|
+
this.activeOverlays.delete(componentRef);
|
|
26
|
+
originalDestroy();
|
|
27
|
+
};
|
|
28
|
+
return componentRef;
|
|
29
|
+
}
|
|
30
|
+
destroy() {
|
|
31
|
+
if (this.activeOverlays.size === 0) {
|
|
32
|
+
this.overlayRoot?.remove();
|
|
33
|
+
this.overlayRoot = undefined;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OverlayService, providedIn: "root" }); }
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OverlayService, decorators: [{
|
|
40
|
+
type: Injectable,
|
|
41
|
+
args: [{ providedIn: "root" }]
|
|
42
|
+
}], ctorParameters: () => [] });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF3QyxNQUFNLGVBQWUsQ0FBQzs7QUFHakYsTUFBTSxPQUFPLGNBQWM7SUFJekI7UUFGUSxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO0lBRTNDLENBQUM7SUFFUixjQUFjO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBZ0IsQ0FBQztZQUUxRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLGNBQWMsQ0FBQztnQkFDckMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNLENBQUksU0FBa0IsRUFBRSxhQUErQjtRQUMzRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFbkMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdEMsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEUsWUFBWSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDekMsZUFBZSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDO1FBRUYsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7K0dBekNVLGNBQWM7bUhBQWQsY0FBYyxjQURELE1BQU07OzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIENvbXBvbmVudFJlZiwgVHlwZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBPdmVybGF5U2VydmljZSB7XG4gIHByaXZhdGUgb3ZlcmxheVJvb3Q/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBhY3RpdmVPdmVybGF5cyA9IG5ldyBTZXQ8Q29tcG9uZW50UmVmPHVua25vd24+PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwcml2YXRlIGdldE92ZXJsYXlSb290KCk6IEhUTUxFbGVtZW50IHtcbiAgICBpZiAoIXRoaXMub3ZlcmxheVJvb3QpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIm92ZXJsYXktcm9vdFwiKSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgaWYgKCF0aGlzLm92ZXJsYXlSb290KSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSb290LmlkID0gXCJvdmVybGF5LXJvb3RcIjtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLm92ZXJsYXlSb290KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheVJvb3Q7XG4gIH1cblxuICBjcmVhdGU8VD4oY29tcG9uZW50OiBUeXBlPFQ+LCB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgICBjb25zdCByb290ID0gdGhpcy5nZXRPdmVybGF5Um9vdCgpO1xuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50KTtcblxuICAgIHJvb3QuYXBwZW5kQ2hpbGQoY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuYWN0aXZlT3ZlcmxheXMuYWRkKGNvbXBvbmVudFJlZik7XG5cbiAgICBjb25zdCBvcmlnaW5hbERlc3Ryb3kgPSBjb21wb25lbnRSZWYuZGVzdHJveS5iaW5kKGNvbXBvbmVudFJlZik7XG4gICAgY29tcG9uZW50UmVmLmRlc3Ryb3kgPSAoKSA9PiB7XG4gICAgICB0aGlzLmFjdGl2ZU92ZXJsYXlzLmRlbGV0ZShjb21wb25lbnRSZWYpO1xuICAgICAgb3JpZ2luYWxEZXN0cm95KCk7XG4gICAgfTtcblxuICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmFjdGl2ZU92ZXJsYXlzLnNpemUgPT09IDApIHtcbiAgICAgIHRoaXMub3ZlcmxheVJvb3Q/LnJlbW92ZSgpO1xuICAgICAgdGhpcy5vdmVybGF5Um9vdCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -18,4 +18,7 @@ export * from "./lib/components/textarea/textarea.component";
|
|
|
18
18
|
export * from "./lib/components/divider/divider.component";
|
|
19
19
|
export * from "./lib/components/switch/switch.component";
|
|
20
20
|
export * from "./lib/components/segmented-control/segmented-control.component";
|
|
21
|
-
|
|
21
|
+
export * from "./lib/components/breadcrumbs/breadcrumbs.component";
|
|
22
|
+
export * from "./lib/components/banner/banner.component";
|
|
23
|
+
export * from "./lib/components/popover/popover.directive";
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RzLXJ0ZS1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDRDQUE0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2dyaWQvZ3JpZC5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2dyaWQvY29sL2NvbC5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2xpbmsvbGluay5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9yYWRpby1idXR0b24tZ3JvdXAvcmFkaW8tYnV0dG9uLWdyb3VwLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGVja2JveC1ncm91cC9jaGVja2JveC1ncm91cC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3NwbGl0LWJ1dHRvbi9zcGxpdC1idXR0b24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2ljb24tYnV0dG9uLXRvZ2dsZS9pY29uLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGlwL2NoaXAuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9iYWRnZS9iYWRnZS5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvZGl2aWRlci9kaXZpZGVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvc3dpdGNoL3N3aXRjaC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3NlZ21lbnRlZC1jb250cm9sL3NlZ21lbnRlZC1jb250cm9sLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvYnJlYWRjcnVtYnMvYnJlYWRjcnVtYnMuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9iYW5uZXIvYmFubmVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmRpcmVjdGl2ZVwiO1xuIl19
|