@magicx-eng/ai-autocomplete-angular 0.7.1 → 0.8.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/esm2020/lib/ai-autocomplete/ai-autocomplete.component.mjs +3 -3
- package/esm2020/lib/ai-autocomplete-dropdown/ai-autocomplete-dropdown.component.mjs +3 -3
- package/esm2020/lib/internal/editor-host/editor-host.directive.mjs +9 -2
- package/esm2020/lib/internal/layout/grid.component.mjs +14 -3
- package/esm2020/lib/internal/pill-list/pill-list.component.mjs +3 -3
- package/esm2020/lib/internal/suggestion-grid/suggestion-grid.component.mjs +27 -4
- package/esm2020/lib/internal/suggestion-item/suggestion-item.component.mjs +3 -3
- package/fesm2015/magicx-eng-ai-autocomplete-angular.mjs +54 -15
- package/fesm2015/magicx-eng-ai-autocomplete-angular.mjs.map +1 -1
- package/fesm2020/magicx-eng-ai-autocomplete-angular.mjs +54 -15
- package/fesm2020/magicx-eng-ai-autocomplete-angular.mjs.map +1 -1
- package/lib/internal/editor-host/editor-host.directive.d.ts.map +1 -1
- package/lib/internal/layout/grid.component.d.ts +9 -1
- package/lib/internal/layout/grid.component.d.ts.map +1 -1
- package/lib/internal/suggestion-grid/suggestion-grid.component.d.ts +10 -1
- package/lib/internal/suggestion-grid/suggestion-grid.component.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -186,7 +186,7 @@ export class AIAutocompleteDropdownComponent {
|
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
AIAutocompleteDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AIAutocompleteDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
189
|
-
AIAutocompleteDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AIAutocompleteDropdownComponent, isStandalone: true, selector: "ai-autocomplete-dropdown", inputs: { controller: "controller", showPills: "showPills", className: "className", mode: "mode" }, usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"vm$ | async as vm\"\n [id]=\"controller.listboxId\"\n role=\"listbox\"\n data-aia-dropdown=\"\"\n [attr.data-aia-loading]=\"vm.isLoading ? '' : null\"\n [attr.data-mode]=\"resolvedMode\"\n [attr.data-options-position]=\"vm.optionsPosition\"\n [attr.data-aia-has-products]=\"vm.products.length > 0 ? '' : null\"\n [class]=\"rootClass\"\n [class.magicx-aia-dropdown-visible]=\"vm.isVisible\"\n (mousedown)=\"preventBlur($event)\"\n>\n <aia-stack space=\"8px\">\n <aia-cluster\n *ngIf=\"vm.showsPills\"\n class=\"magicx-aia-dropdown-pillbar\"\n data-aia-pillbar=\"\"\n [noWrap]=\"true\"\n >\n <aia-pill-list\n [pills]=\"vm.pills\"\n [activePillIndex]=\"0\"\n [activeSelected]=\"vm.isActivePillSelected\"\n [rounded]=\"true\"\n [loading]=\"vm.isLoading\"\n (selectPill)=\"onPillClick($event)\"\n ></aia-pill-list>\n </aia-cluster>\n\n <aia-suggestion-grid\n *ngIf=\"vm.showsOptions\"\n [options]=\"vm.options\"\n [activeIndex]=\"vm.activeIndex\"\n [listboxId]=\"controller.listboxId\"\n [loading]=\"vm.isLoading\"\n [groupKey]=\"vm.groupKey\"\n (select)=\"onSelect($event)\"\n (highlight)=\"onHighlight($event)\"\n ></aia-suggestion-grid>\n\n <div\n *ngIf=\"vm.showsFallbackSkeleton\"\n class=\"magicx-aia-dropdown-skeleton-bars\"\n data-aia-skeleton-bars=\"\"\n >\n <span\n *ngFor=\"let w of fallbackSkeletonBarWidths; trackBy: trackByWidth\"\n class=\"magicx-aia-dropdown-skeleton-bar\"\n [style.width.px]=\"w\"\n ></span>\n </div>\n\n <!-- *ngIf, not just the section's own guard inside the component: the host\n element is an in-flow child of .aia-stack (display:flex; gap:8px), so\n an always-instantiated zero-height host would add a SECOND 8px gap\n between the grid and the footer \u2014 in every dropdown, products or not.\n The grid's --aia-grid-overlap-bottom is tuned for exactly one gap, so\n the footer would land 8px below the band it is meant to cover. -->\n <aia-product-strip\n *ngIf=\"vm.products.length > 0\"\n [products]=\"vm.products\"\n [listboxId]=\"controller.listboxId\"\n [focusable]=\"vm.isVisible\"\n (select)=\"onProductSelect($event)\"\n (focusChange)=\"onProductFocusChange($event)\"\n ></aia-product-strip>\n\n <footer class=\"magicx-aia-footer\" data-aia-footer=\"\">\n <div class=\"magicx-aia-footer-row\">\n <span class=\"magicx-aia-footer-hint-group\">\n <kbd class=\"magicx-aia-footer-key\">{{ vm.footerKey }}</kbd>\n <span class=\"magicx-aia-footer-hint\">{{ vm.footerHint }}</span>\n </span>\n <a\n class=\"magicx-aia-footer-brand-link\"\n [href]=\"brandHref\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span class=\"magicx-aia-footer-brand\">AI</span>\n <span class=\"magicx-aia-footer-badge\">Autocomplete</span>\n </a>\n </div>\n </footer>\n </aia-stack>\n</div>\n", styles: [":where(.magicx-aia,.magicx-aia *,.magicx-aia *::before,.magicx-aia *::after){box-sizing:border-box}:where(.magicx-aia){--aia-primitive-neutral-0: #000000;--aia-primitive-neutral-150: #1a1b1d;--aia-primitive-neutral-250: #323232;--aia-primitive-neutral-300: #333539;--aia-primitive-neutral-400: #4a4a4a;--aia-primitive-neutral-500: #505050;--aia-primitive-neutral-700: #b0b0b0;--aia-primitive-neutral-750: #bdbdbd;--aia-primitive-neutral-900: #e7e7e7;--aia-primitive-neutral-1000: #ffffff;--aia-primitive-blue-50: #eef2ff;--aia-primitive-neutral-750-a50: rgba(189, 189, 189, .51);--aia-primitive-neutral-750-a25: rgba(189, 189, 189, .25);--aia-primitive-neutral-750-a35: rgba(189, 189, 189, .35);--aia-primitive-neutral-750-a30: rgba(189, 189, 189, .3);--aia-primitive-neutral-750-a15: rgba(189, 189, 189, .15);--aia-primitive-neutral-750-a105: rgba(189, 189, 189, .105);--aia-primitive-neutral-700-a40: rgba(176, 176, 176, .4);--aia-primitive-neutral-900-a50: rgba(231, 231, 231, .5);--aia-primitive-neutral-400-a50: rgba(74, 74, 74, .5)}:where(.magicx-aia),:where(.magicx-aia[data-mode=\"light\"]){--aia-surface: var(--aia-primitive-neutral-1000);--aia-border: var(--aia-primitive-neutral-700);--aia-dropdown-border: var(--aia-primitive-neutral-900-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-300);--aia-pill-border: var(--aia-primitive-neutral-750-a30);--aia-pill-font-size: 14px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a105);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-0);--aia-option-bg: var(--aia-primitive-blue-50);--aia-option-color: var(--aia-primitive-neutral-500);--aia-option-color-selected: var(--aia-primitive-neutral-0);--aia-option-font-size: 14px;--aia-written-text-color: var(--aia-primitive-neutral-0);--aia-written-text-font-size: 14px;--aia-caret-color: var(--aia-written-text-color, #000000);--aia-submit-bg: var(--aia-primitive-neutral-0);--aia-submit-color: var(--aia-primitive-neutral-1000);--aia-color-text-muted: #6b7280;--aia-skeleton-bg: var(--aia-primitive-neutral-750-a25);--aia-streak-rgb: 99, 102, 241;--aia-streak-glass-bg: rgba(99, 102, 241, .1);--aia-footer-hint-color: var(--aia-primitive-neutral-500);--aia-footer-brand-color: var(--aia-primitive-neutral-700);--aia-footer-badge-border: var(--aia-primitive-neutral-750-a50)}:where(.magicx-aia[data-mode=\"dark\"]){--aia-surface: var(--aia-primitive-neutral-0);--aia-border: var(--aia-primitive-neutral-500);--aia-dropdown-border: var(--aia-primitive-neutral-400-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-700);--aia-pill-border: var(--aia-primitive-neutral-750-a30);--aia-pill-font-size: 14px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a15);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-1000);--aia-option-bg: var(--aia-primitive-neutral-250);--aia-option-color: var(--aia-primitive-neutral-700);--aia-option-color-selected: var(--aia-primitive-neutral-1000);--aia-option-font-size: 14px;--aia-written-text-color: var(--aia-primitive-neutral-1000);--aia-written-text-font-size: 14px;--aia-caret-color: var(--aia-written-text-color, #ffffff);--aia-submit-bg: var(--aia-primitive-neutral-1000);--aia-submit-color: var(--aia-primitive-neutral-0);--aia-color-text-muted: #c1c4cb;--aia-skeleton-bg: var(--aia-primitive-neutral-150);--aia-streak-rgb: 255, 255, 255;--aia-streak-glass-bg: rgba(255, 255, 255, .1);--aia-footer-hint-color: var(--aia-primitive-neutral-700);--aia-footer-brand-color: var(--aia-primitive-neutral-500);--aia-footer-badge-border: var(--aia-primitive-neutral-500)}[data-aia-dropdown]{--aia-footer-row-height: 23px;--aia-footer-band: calc(var(--aia-footer-gap, 8px) + var(--aia-footer-row-height, 23px));--aia-grid-scroll-bottom: var(--aia-footer-band);--aia-grid-overlap-bottom: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-lead: 20px;--aia-footer-fade-inset: calc(-1 * var(--aia-footer-fade-lead)) 0 0}[data-aia-dropdown] .aia-grid[data-scroll]{padding-top:var(--aia-grid-scroll-top, 0);padding-bottom:var(--aia-grid-scroll-bottom, 0);margin-top:var(--aia-grid-overlap-top, 0);margin-bottom:var(--aia-grid-overlap-bottom, 0)}[data-aia-dropdown] [data-aia-footer]:before{content:\"\";position:absolute;inset:var(--aia-footer-fade-inset, -20px 0 0);z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--aia-surface, #ffffff))}[data-aia-dropdown][data-aia-surface=glass]{--aia-footer-chip-bg: transparent}[data-aia-dropdown][data-aia-surface=glass] [data-aia-footer]:before{display:none}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown],[data-aia-dropdown][data-options-position=above]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: var(--aia-footer-band);--aia-grid-overlap-top: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-inset: 0 0 calc(-1 * var(--aia-footer-fade-lead));top:auto;bottom:100%;margin-top:0;margin-bottom:6px}[data-aia-dropdown][data-aia-has-products]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: 0px;--aia-grid-overlap-top: 0px;--aia-footer-fade-lead: 0px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .aia-stack,[data-aia-dropdown][data-options-position=above] .aia-stack{flex-direction:column-reverse}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer],[data-aia-dropdown][data-options-position=above] [data-aia-footer]{padding:0 8px var(--aia-footer-gap, 8px)}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before{background:linear-gradient(to top,transparent,var(--aia-surface, #ffffff))}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .magicx-aia-footer,[data-aia-dropdown][data-options-position=above] .magicx-aia-footer{flex-direction:column-reverse}\n", ".magicx-aia-dropdown{position:absolute;left:0;right:0;top:100%;max-width:544px;margin-top:6px;display:flex;flex-direction:column;box-sizing:border-box;padding:10px 8px;overflow:hidden;container-type:inline-size;z-index:10;opacity:0;pointer-events:none;transition:opacity .4s cubic-bezier(.4,0,.2,1);background:var(--aia-surface, #ffffff);border:1px solid var(--aia-dropdown-border, rgba(231, 231, 231, .5));border-radius:18px;box-shadow:var(--aia-dropdown-shadow, 0 8px 12px rgba(0, 0, 0, .05))}.magicx-aia-dropdown[data-aia-surface=glass]{background:transparent;border-color:transparent;box-shadow:#fff -3.2px -3.2px 3.2px -3.2px inset,#fff 6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) -6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) 6.4px -6.4px 1.6px -8px inset,#ffffff26 -1.6px 0 0 -1.6px inset,#ffffff26 0 -1.6px 0 -1.6px inset,#ffffff4d 0 1.6px inset,#ffffff4d 1.6px 0 inset,inset 0 0 30px 5px #0000000d,#00000014 0 0 30px 2px;backdrop-filter:blur(30px)}.magicx-aia-dropdown-visible{opacity:1;pointer-events:auto}.magicx-aia-dropdown-pillbar{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%)}.magicx-aia-dropdown-pillbar::-webkit-scrollbar{display:none}.magicx-aia-footer{display:flex;flex-direction:column;gap:8px;padding:var(--aia-footer-gap, 8px) 8px 0;position:relative;z-index:3;pointer-events:none}.magicx-aia-footer-row{display:flex;align-items:center;justify-content:space-between}.magicx-aia-footer-hint-group{display:inline-flex;align-items:center;gap:5px}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{pointer-events:auto}.magicx-aia-footer-brand-link{display:inline-flex;align-items:center;gap:2px;text-decoration:none;cursor:pointer;transition:opacity .15s ease-out}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{background:var( --aia-footer-chip-bg, color-mix(in srgb, var(--aia-surface, #ffffff) 65%, transparent) );padding-inline:4px;border-radius:6px}.magicx-aia-footer-brand-link:hover{opacity:.7}.magicx-aia-footer-key{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:22px;padding:2px 6px;border:.5px solid var(--aia-footer-hint-color, #505050);border-radius:5px;font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-hint{font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-brand{font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}.magicx-aia-footer-badge{display:inline-flex;align-items:center;height:var(--aia-footer-row-height, 23px);padding:2.5px 5.5px;border:.5px solid var(--aia-footer-badge-border, rgba(189, 189, 189, .51));border-radius:999px;font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}@media (max-width: 768px){.magicx-aia-footer-hint-group{display:none}.magicx-aia-footer-row{justify-content:flex-end}}.magicx-aia-dropdown-skeleton-bars{display:flex;flex-direction:column;gap:20px;padding:7px 8px}.magicx-aia-dropdown-skeleton-bar{display:block;height:14px;border-radius:999px;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));opacity:.5;animation:aiaDropdownSkeletonPulse 1.4s ease-in-out infinite}.magicx-aia-dropdown-skeleton-bar:nth-child(2){animation-delay:.15s}.magicx-aia-dropdown-skeleton-bar:nth-child(3){animation-delay:.3s}@keyframes aiaDropdownSkeletonPulse{0%,to{opacity:.5}50%{opacity:.25}}\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: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: PillListComponent, selector: "aia-pill-list", inputs: ["pills", "activePillIndex", "rounded", "loading", "activeSelected"], outputs: ["selectPill"] }, { kind: "component", type: ProductStripComponent, selector: "aia-product-strip", inputs: ["products", "listboxId", "focusable"], outputs: ["select", "focusChange"] }, { kind: "component", type: SuggestionGridComponent, selector: "aia-suggestion-grid", inputs: ["options", "activeIndex", "listboxId", "loading", "groupKey"], outputs: ["select", "highlight"] }, { kind: "component", type: StackComponent, selector: "aia-stack", inputs: ["space", "align"] }, { kind: "component", type: ClusterComponent, selector: "aia-cluster", inputs: ["gap", "align", "justify", "noWrap", "inline"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
189
|
+
AIAutocompleteDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AIAutocompleteDropdownComponent, isStandalone: true, selector: "ai-autocomplete-dropdown", inputs: { controller: "controller", showPills: "showPills", className: "className", mode: "mode" }, usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"vm$ | async as vm\"\n [id]=\"controller.listboxId\"\n role=\"listbox\"\n data-aia-dropdown=\"\"\n [attr.data-aia-loading]=\"vm.isLoading ? '' : null\"\n [attr.data-mode]=\"resolvedMode\"\n [attr.data-options-position]=\"vm.optionsPosition\"\n [attr.data-aia-has-products]=\"vm.products.length > 0 ? '' : null\"\n [class]=\"rootClass\"\n [class.magicx-aia-dropdown-visible]=\"vm.isVisible\"\n (mousedown)=\"preventBlur($event)\"\n>\n <aia-stack space=\"8px\">\n <aia-cluster\n *ngIf=\"vm.showsPills\"\n class=\"magicx-aia-dropdown-pillbar\"\n data-aia-pillbar=\"\"\n [noWrap]=\"true\"\n >\n <aia-pill-list\n [pills]=\"vm.pills\"\n [activePillIndex]=\"0\"\n [activeSelected]=\"vm.isActivePillSelected\"\n [rounded]=\"true\"\n [loading]=\"vm.isLoading\"\n (selectPill)=\"onPillClick($event)\"\n ></aia-pill-list>\n </aia-cluster>\n\n <aia-suggestion-grid\n *ngIf=\"vm.showsOptions\"\n [options]=\"vm.options\"\n [activeIndex]=\"vm.activeIndex\"\n [listboxId]=\"controller.listboxId\"\n [loading]=\"vm.isLoading\"\n [groupKey]=\"vm.groupKey\"\n (select)=\"onSelect($event)\"\n (highlight)=\"onHighlight($event)\"\n ></aia-suggestion-grid>\n\n <div\n *ngIf=\"vm.showsFallbackSkeleton\"\n class=\"magicx-aia-dropdown-skeleton-bars\"\n data-aia-skeleton-bars=\"\"\n >\n <span\n *ngFor=\"let w of fallbackSkeletonBarWidths; trackBy: trackByWidth\"\n class=\"magicx-aia-dropdown-skeleton-bar\"\n [style.width.px]=\"w\"\n ></span>\n </div>\n\n <!-- *ngIf, not just the section's own guard inside the component: the host\n element is an in-flow child of .aia-stack (display:flex; gap:8px), so\n an always-instantiated zero-height host would add a SECOND 8px gap\n between the grid and the footer \u2014 in every dropdown, products or not.\n The grid's --aia-grid-overlap-bottom is tuned for exactly one gap, so\n the footer would land 8px below the band it is meant to cover. -->\n <aia-product-strip\n *ngIf=\"vm.products.length > 0\"\n [products]=\"vm.products\"\n [listboxId]=\"controller.listboxId\"\n [focusable]=\"vm.isVisible\"\n (select)=\"onProductSelect($event)\"\n (focusChange)=\"onProductFocusChange($event)\"\n ></aia-product-strip>\n\n <footer class=\"magicx-aia-footer\" data-aia-footer=\"\">\n <div class=\"magicx-aia-footer-row\">\n <span class=\"magicx-aia-footer-hint-group\">\n <kbd class=\"magicx-aia-footer-key\">{{ vm.footerKey }}</kbd>\n <span class=\"magicx-aia-footer-hint\">{{ vm.footerHint }}</span>\n </span>\n <a\n class=\"magicx-aia-footer-brand-link\"\n [href]=\"brandHref\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span class=\"magicx-aia-footer-brand\">AI</span>\n <span class=\"magicx-aia-footer-badge\">Autocomplete</span>\n </a>\n </div>\n </footer>\n </aia-stack>\n</div>\n", styles: [":where(.magicx-aia,.magicx-aia *,.magicx-aia *::before,.magicx-aia *::after){box-sizing:border-box}:where(.magicx-aia){--aia-primitive-neutral-0: #000000;--aia-primitive-neutral-150: #1a1b1d;--aia-primitive-neutral-250: #323232;--aia-primitive-neutral-300: #333539;--aia-primitive-neutral-400: #4a4a4a;--aia-primitive-neutral-500: #505050;--aia-primitive-neutral-700: #b0b0b0;--aia-primitive-neutral-750: #bdbdbd;--aia-primitive-neutral-900: #e7e7e7;--aia-primitive-neutral-1000: #ffffff;--aia-primitive-blue-50: #eef2ff;--aia-primitive-neutral-750-a50: rgba(189, 189, 189, .51);--aia-primitive-neutral-750-a25: rgba(189, 189, 189, .25);--aia-primitive-neutral-750-a35: rgba(189, 189, 189, .35);--aia-primitive-neutral-750-a30: rgba(189, 189, 189, .3);--aia-primitive-neutral-750-a15: rgba(189, 189, 189, .15);--aia-primitive-neutral-750-a105: rgba(189, 189, 189, .105);--aia-primitive-neutral-700-a40: rgba(176, 176, 176, .4);--aia-primitive-neutral-900-a50: rgba(231, 231, 231, .5);--aia-primitive-neutral-400-a50: rgba(74, 74, 74, .5)}:where(.magicx-aia),:where(.magicx-aia[data-mode=\"light\"]){--aia-surface: var(--aia-primitive-neutral-1000);--aia-border: var(--aia-primitive-neutral-700);--aia-dropdown-border: var(--aia-primitive-neutral-900-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-300);--aia-pill-border: var(--aia-primitive-neutral-750-a30);--aia-pill-font-size: 16px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a105);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-0);--aia-option-bg: var(--aia-primitive-blue-50);--aia-option-color: var(--aia-primitive-neutral-150);--aia-option-color-selected: var(--aia-primitive-neutral-0);--aia-option-font-size: 16px;--aia-written-text-color: var(--aia-primitive-neutral-0);--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #000000);--aia-submit-bg: var(--aia-primitive-neutral-0);--aia-submit-color: var(--aia-primitive-neutral-1000);--aia-color-text-muted: #6b7280;--aia-skeleton-bg: var(--aia-primitive-neutral-750-a25);--aia-streak-rgb: 99, 102, 241;--aia-streak-glass-bg: rgba(99, 102, 241, .1);--aia-footer-hint-color: var(--aia-primitive-neutral-500);--aia-footer-brand-color: var(--aia-primitive-neutral-700);--aia-footer-badge-border: var(--aia-primitive-neutral-750-a50)}:where(.magicx-aia[data-mode=\"dark\"]){--aia-surface: var(--aia-primitive-neutral-0);--aia-border: var(--aia-primitive-neutral-500);--aia-dropdown-border: var(--aia-primitive-neutral-400-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-700);--aia-pill-border: var(--aia-primitive-neutral-750-a30);--aia-pill-font-size: 16px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a15);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-1000);--aia-option-bg: var(--aia-primitive-neutral-250);--aia-option-color: var(--aia-primitive-neutral-900);--aia-option-color-selected: var(--aia-primitive-neutral-1000);--aia-option-font-size: 16px;--aia-written-text-color: var(--aia-primitive-neutral-1000);--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #ffffff);--aia-submit-bg: var(--aia-primitive-neutral-1000);--aia-submit-color: var(--aia-primitive-neutral-0);--aia-color-text-muted: #c1c4cb;--aia-skeleton-bg: var(--aia-primitive-neutral-150);--aia-streak-rgb: 255, 255, 255;--aia-streak-glass-bg: rgba(255, 255, 255, .1);--aia-footer-hint-color: var(--aia-primitive-neutral-700);--aia-footer-brand-color: var(--aia-primitive-neutral-500);--aia-footer-badge-border: var(--aia-primitive-neutral-500)}[data-aia-dropdown]{--aia-footer-row-height: 23px;--aia-footer-band: calc(var(--aia-footer-gap, 8px) + var(--aia-footer-row-height, 23px));--aia-grid-scroll-bottom: var(--aia-footer-band);--aia-grid-overlap-bottom: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-lead: 20px;--aia-footer-fade-inset: calc(-1 * var(--aia-footer-fade-lead)) 0 0}[data-aia-dropdown] .aia-grid[data-scroll]{padding-top:var(--aia-grid-scroll-top, 0);padding-bottom:var(--aia-grid-scroll-bottom, 0);margin-top:var(--aia-grid-overlap-top, 0);margin-bottom:var(--aia-grid-overlap-bottom, 0)}[data-aia-dropdown] [data-aia-footer]:before{content:\"\";position:absolute;inset:var(--aia-footer-fade-inset, -20px 0 0);z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--aia-surface, #ffffff))}[data-aia-dropdown][data-aia-surface=glass]{--aia-footer-chip-bg: transparent}[data-aia-dropdown][data-aia-surface=glass] [data-aia-footer]:before{display:none}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown],[data-aia-dropdown][data-options-position=above]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: var(--aia-footer-band);--aia-grid-overlap-top: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-inset: 0 0 calc(-1 * var(--aia-footer-fade-lead));top:auto;bottom:100%;margin-top:0;margin-bottom:6px}[data-aia-dropdown][data-aia-has-products]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: 0px;--aia-grid-overlap-top: 0px;--aia-footer-fade-lead: 0px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .aia-stack,[data-aia-dropdown][data-options-position=above] .aia-stack{flex-direction:column-reverse}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer],[data-aia-dropdown][data-options-position=above] [data-aia-footer]{padding:0 8px var(--aia-footer-gap, 8px)}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before{background:linear-gradient(to top,transparent,var(--aia-surface, #ffffff))}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .magicx-aia-footer,[data-aia-dropdown][data-options-position=above] .magicx-aia-footer{flex-direction:column-reverse}\n", ".magicx-aia-dropdown{position:absolute;left:0;right:0;top:100%;max-width:544px;margin-top:6px;display:flex;flex-direction:column;box-sizing:border-box;padding:10px 8px;overflow:hidden;container-type:inline-size;z-index:10;opacity:0;pointer-events:none;transition:opacity .4s cubic-bezier(.4,0,.2,1);background:var(--aia-surface, #ffffff);border:1px solid var(--aia-dropdown-border, rgba(231, 231, 231, .5));border-radius:18px;box-shadow:var(--aia-dropdown-shadow, 0 8px 12px rgba(0, 0, 0, .05))}.magicx-aia-dropdown[data-aia-surface=glass]{background:transparent;border-color:transparent;box-shadow:#fff -3.2px -3.2px 3.2px -3.2px inset,#fff 6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) -6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) 6.4px -6.4px 1.6px -8px inset,#ffffff26 -1.6px 0 0 -1.6px inset,#ffffff26 0 -1.6px 0 -1.6px inset,#ffffff4d 0 1.6px inset,#ffffff4d 1.6px 0 inset,inset 0 0 30px 5px #0000000d,#00000014 0 0 30px 2px;backdrop-filter:blur(30px)}.magicx-aia-dropdown-visible{opacity:1;pointer-events:auto}.magicx-aia-dropdown-pillbar{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%)}.magicx-aia-dropdown-pillbar::-webkit-scrollbar{display:none}.magicx-aia-footer{display:flex;flex-direction:column;gap:8px;padding:var(--aia-footer-gap, 8px) 8px 0;position:relative;z-index:3;pointer-events:none}.magicx-aia-footer-row{display:flex;align-items:center;justify-content:space-between}.magicx-aia-footer-hint-group{display:inline-flex;align-items:center;gap:5px}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{pointer-events:auto}.magicx-aia-footer-brand-link{display:inline-flex;align-items:center;gap:2px;text-decoration:none;cursor:pointer;transition:opacity .15s ease-out}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{background:var( --aia-footer-chip-bg, color-mix(in srgb, var(--aia-surface, #ffffff) 65%, transparent) );padding-inline:4px;border-radius:6px}.magicx-aia-footer-brand-link{background:var(--aia-footer-brand-pill-bg, var(--aia-surface, #ffffff));border-radius:999px;padding:2px 7px;gap:4px}.magicx-aia-footer-brand-link:hover{opacity:.7}.magicx-aia-footer-key{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:22px;padding:2px 6px;border:.5px solid var(--aia-footer-hint-color, #505050);border-radius:5px;font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-hint{font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-brand{font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}.magicx-aia-footer-badge{display:inline-flex;align-items:center;height:var(--aia-footer-row-height, 23px);padding:2.5px 5.5px;border:.5px solid var(--aia-footer-badge-border, rgba(189, 189, 189, .51));border-radius:999px;font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}@media (max-width: 768px){.magicx-aia-footer-hint-group{display:none}.magicx-aia-footer-row{justify-content:flex-end}}.magicx-aia-dropdown-skeleton-bars{display:flex;flex-direction:column;gap:20px;padding:7px 8px}.magicx-aia-dropdown-skeleton-bar{display:block;height:14px;border-radius:999px;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));opacity:.5;animation:aiaDropdownSkeletonPulse 1.4s ease-in-out infinite}.magicx-aia-dropdown-skeleton-bar:nth-child(2){animation-delay:.15s}.magicx-aia-dropdown-skeleton-bar:nth-child(3){animation-delay:.3s}@keyframes aiaDropdownSkeletonPulse{0%,to{opacity:.5}50%{opacity:.25}}\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: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: PillListComponent, selector: "aia-pill-list", inputs: ["pills", "activePillIndex", "rounded", "loading", "activeSelected"], outputs: ["selectPill"] }, { kind: "component", type: ProductStripComponent, selector: "aia-product-strip", inputs: ["products", "listboxId", "focusable"], outputs: ["select", "focusChange"] }, { kind: "component", type: SuggestionGridComponent, selector: "aia-suggestion-grid", inputs: ["options", "activeIndex", "listboxId", "loading", "groupKey"], outputs: ["select", "highlight"] }, { kind: "component", type: StackComponent, selector: "aia-stack", inputs: ["space", "align"] }, { kind: "component", type: ClusterComponent, selector: "aia-cluster", inputs: ["gap", "align", "justify", "noWrap", "inline"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
190
190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AIAutocompleteDropdownComponent, decorators: [{
|
|
191
191
|
type: Component,
|
|
192
192
|
args: [{ selector: "ai-autocomplete-dropdown", standalone: true, imports: [
|
|
@@ -196,7 +196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
196
196
|
SuggestionGridComponent,
|
|
197
197
|
StackComponent,
|
|
198
198
|
ClusterComponent,
|
|
199
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n *ngIf=\"vm$ | async as vm\"\n [id]=\"controller.listboxId\"\n role=\"listbox\"\n data-aia-dropdown=\"\"\n [attr.data-aia-loading]=\"vm.isLoading ? '' : null\"\n [attr.data-mode]=\"resolvedMode\"\n [attr.data-options-position]=\"vm.optionsPosition\"\n [attr.data-aia-has-products]=\"vm.products.length > 0 ? '' : null\"\n [class]=\"rootClass\"\n [class.magicx-aia-dropdown-visible]=\"vm.isVisible\"\n (mousedown)=\"preventBlur($event)\"\n>\n <aia-stack space=\"8px\">\n <aia-cluster\n *ngIf=\"vm.showsPills\"\n class=\"magicx-aia-dropdown-pillbar\"\n data-aia-pillbar=\"\"\n [noWrap]=\"true\"\n >\n <aia-pill-list\n [pills]=\"vm.pills\"\n [activePillIndex]=\"0\"\n [activeSelected]=\"vm.isActivePillSelected\"\n [rounded]=\"true\"\n [loading]=\"vm.isLoading\"\n (selectPill)=\"onPillClick($event)\"\n ></aia-pill-list>\n </aia-cluster>\n\n <aia-suggestion-grid\n *ngIf=\"vm.showsOptions\"\n [options]=\"vm.options\"\n [activeIndex]=\"vm.activeIndex\"\n [listboxId]=\"controller.listboxId\"\n [loading]=\"vm.isLoading\"\n [groupKey]=\"vm.groupKey\"\n (select)=\"onSelect($event)\"\n (highlight)=\"onHighlight($event)\"\n ></aia-suggestion-grid>\n\n <div\n *ngIf=\"vm.showsFallbackSkeleton\"\n class=\"magicx-aia-dropdown-skeleton-bars\"\n data-aia-skeleton-bars=\"\"\n >\n <span\n *ngFor=\"let w of fallbackSkeletonBarWidths; trackBy: trackByWidth\"\n class=\"magicx-aia-dropdown-skeleton-bar\"\n [style.width.px]=\"w\"\n ></span>\n </div>\n\n <!-- *ngIf, not just the section's own guard inside the component: the host\n element is an in-flow child of .aia-stack (display:flex; gap:8px), so\n an always-instantiated zero-height host would add a SECOND 8px gap\n between the grid and the footer \u2014 in every dropdown, products or not.\n The grid's --aia-grid-overlap-bottom is tuned for exactly one gap, so\n the footer would land 8px below the band it is meant to cover. -->\n <aia-product-strip\n *ngIf=\"vm.products.length > 0\"\n [products]=\"vm.products\"\n [listboxId]=\"controller.listboxId\"\n [focusable]=\"vm.isVisible\"\n (select)=\"onProductSelect($event)\"\n (focusChange)=\"onProductFocusChange($event)\"\n ></aia-product-strip>\n\n <footer class=\"magicx-aia-footer\" data-aia-footer=\"\">\n <div class=\"magicx-aia-footer-row\">\n <span class=\"magicx-aia-footer-hint-group\">\n <kbd class=\"magicx-aia-footer-key\">{{ vm.footerKey }}</kbd>\n <span class=\"magicx-aia-footer-hint\">{{ vm.footerHint }}</span>\n </span>\n <a\n class=\"magicx-aia-footer-brand-link\"\n [href]=\"brandHref\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span class=\"magicx-aia-footer-brand\">AI</span>\n <span class=\"magicx-aia-footer-badge\">Autocomplete</span>\n </a>\n </div>\n </footer>\n </aia-stack>\n</div>\n", styles: [":where(.magicx-aia,.magicx-aia *,.magicx-aia *::before,.magicx-aia *::after){box-sizing:border-box}:where(.magicx-aia){--aia-primitive-neutral-0: #000000;--aia-primitive-neutral-150: #1a1b1d;--aia-primitive-neutral-250: #323232;--aia-primitive-neutral-300: #333539;--aia-primitive-neutral-400: #4a4a4a;--aia-primitive-neutral-500: #505050;--aia-primitive-neutral-700: #b0b0b0;--aia-primitive-neutral-750: #bdbdbd;--aia-primitive-neutral-900: #e7e7e7;--aia-primitive-neutral-1000: #ffffff;--aia-primitive-blue-50: #eef2ff;--aia-primitive-neutral-750-a50: rgba(189, 189, 189, .51);--aia-primitive-neutral-750-a25: rgba(189, 189, 189, .25);--aia-primitive-neutral-750-a35: rgba(189, 189, 189, .35);--aia-primitive-neutral-750-a30: rgba(189, 189, 189, .3);--aia-primitive-neutral-750-a15: rgba(189, 189, 189, .15);--aia-primitive-neutral-750-a105: rgba(189, 189, 189, .105);--aia-primitive-neutral-700-a40: rgba(176, 176, 176, .4);--aia-primitive-neutral-900-a50: rgba(231, 231, 231, .5);--aia-primitive-neutral-400-a50: rgba(74, 74, 74, .5)}:where(.magicx-aia),:where(.magicx-aia[data-mode=\"light\"]){--aia-surface: var(--aia-primitive-neutral-1000);--aia-border: var(--aia-primitive-neutral-700);--aia-dropdown-border: var(--aia-primitive-neutral-900-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-300);--aia-pill-border: var(--aia-primitive-neutral-750-a30);--aia-pill-font-size: 14px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a105);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-0);--aia-option-bg: var(--aia-primitive-blue-50);--aia-option-color: var(--aia-primitive-neutral-500);--aia-option-color-selected: var(--aia-primitive-neutral-0);--aia-option-font-size: 14px;--aia-written-text-color: var(--aia-primitive-neutral-0);--aia-written-text-font-size: 14px;--aia-caret-color: var(--aia-written-text-color, #000000);--aia-submit-bg: var(--aia-primitive-neutral-0);--aia-submit-color: var(--aia-primitive-neutral-1000);--aia-color-text-muted: #6b7280;--aia-skeleton-bg: var(--aia-primitive-neutral-750-a25);--aia-streak-rgb: 99, 102, 241;--aia-streak-glass-bg: rgba(99, 102, 241, .1);--aia-footer-hint-color: var(--aia-primitive-neutral-500);--aia-footer-brand-color: var(--aia-primitive-neutral-700);--aia-footer-badge-border: var(--aia-primitive-neutral-750-a50)}:where(.magicx-aia[data-mode=\"dark\"]){--aia-surface: var(--aia-primitive-neutral-0);--aia-border: var(--aia-primitive-neutral-500);--aia-dropdown-border: var(--aia-primitive-neutral-400-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-700);--aia-pill-border: var(--aia-primitive-neutral-750-a30);--aia-pill-font-size: 14px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a15);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-1000);--aia-option-bg: var(--aia-primitive-neutral-250);--aia-option-color: var(--aia-primitive-neutral-700);--aia-option-color-selected: var(--aia-primitive-neutral-1000);--aia-option-font-size: 14px;--aia-written-text-color: var(--aia-primitive-neutral-1000);--aia-written-text-font-size: 14px;--aia-caret-color: var(--aia-written-text-color, #ffffff);--aia-submit-bg: var(--aia-primitive-neutral-1000);--aia-submit-color: var(--aia-primitive-neutral-0);--aia-color-text-muted: #c1c4cb;--aia-skeleton-bg: var(--aia-primitive-neutral-150);--aia-streak-rgb: 255, 255, 255;--aia-streak-glass-bg: rgba(255, 255, 255, .1);--aia-footer-hint-color: var(--aia-primitive-neutral-700);--aia-footer-brand-color: var(--aia-primitive-neutral-500);--aia-footer-badge-border: var(--aia-primitive-neutral-500)}[data-aia-dropdown]{--aia-footer-row-height: 23px;--aia-footer-band: calc(var(--aia-footer-gap, 8px) + var(--aia-footer-row-height, 23px));--aia-grid-scroll-bottom: var(--aia-footer-band);--aia-grid-overlap-bottom: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-lead: 20px;--aia-footer-fade-inset: calc(-1 * var(--aia-footer-fade-lead)) 0 0}[data-aia-dropdown] .aia-grid[data-scroll]{padding-top:var(--aia-grid-scroll-top, 0);padding-bottom:var(--aia-grid-scroll-bottom, 0);margin-top:var(--aia-grid-overlap-top, 0);margin-bottom:var(--aia-grid-overlap-bottom, 0)}[data-aia-dropdown] [data-aia-footer]:before{content:\"\";position:absolute;inset:var(--aia-footer-fade-inset, -20px 0 0);z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--aia-surface, #ffffff))}[data-aia-dropdown][data-aia-surface=glass]{--aia-footer-chip-bg: transparent}[data-aia-dropdown][data-aia-surface=glass] [data-aia-footer]:before{display:none}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown],[data-aia-dropdown][data-options-position=above]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: var(--aia-footer-band);--aia-grid-overlap-top: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-inset: 0 0 calc(-1 * var(--aia-footer-fade-lead));top:auto;bottom:100%;margin-top:0;margin-bottom:6px}[data-aia-dropdown][data-aia-has-products]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: 0px;--aia-grid-overlap-top: 0px;--aia-footer-fade-lead: 0px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .aia-stack,[data-aia-dropdown][data-options-position=above] .aia-stack{flex-direction:column-reverse}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer],[data-aia-dropdown][data-options-position=above] [data-aia-footer]{padding:0 8px var(--aia-footer-gap, 8px)}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before{background:linear-gradient(to top,transparent,var(--aia-surface, #ffffff))}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .magicx-aia-footer,[data-aia-dropdown][data-options-position=above] .magicx-aia-footer{flex-direction:column-reverse}\n", ".magicx-aia-dropdown{position:absolute;left:0;right:0;top:100%;max-width:544px;margin-top:6px;display:flex;flex-direction:column;box-sizing:border-box;padding:10px 8px;overflow:hidden;container-type:inline-size;z-index:10;opacity:0;pointer-events:none;transition:opacity .4s cubic-bezier(.4,0,.2,1);background:var(--aia-surface, #ffffff);border:1px solid var(--aia-dropdown-border, rgba(231, 231, 231, .5));border-radius:18px;box-shadow:var(--aia-dropdown-shadow, 0 8px 12px rgba(0, 0, 0, .05))}.magicx-aia-dropdown[data-aia-surface=glass]{background:transparent;border-color:transparent;box-shadow:#fff -3.2px -3.2px 3.2px -3.2px inset,#fff 6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) -6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) 6.4px -6.4px 1.6px -8px inset,#ffffff26 -1.6px 0 0 -1.6px inset,#ffffff26 0 -1.6px 0 -1.6px inset,#ffffff4d 0 1.6px inset,#ffffff4d 1.6px 0 inset,inset 0 0 30px 5px #0000000d,#00000014 0 0 30px 2px;backdrop-filter:blur(30px)}.magicx-aia-dropdown-visible{opacity:1;pointer-events:auto}.magicx-aia-dropdown-pillbar{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%)}.magicx-aia-dropdown-pillbar::-webkit-scrollbar{display:none}.magicx-aia-footer{display:flex;flex-direction:column;gap:8px;padding:var(--aia-footer-gap, 8px) 8px 0;position:relative;z-index:3;pointer-events:none}.magicx-aia-footer-row{display:flex;align-items:center;justify-content:space-between}.magicx-aia-footer-hint-group{display:inline-flex;align-items:center;gap:5px}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{pointer-events:auto}.magicx-aia-footer-brand-link{display:inline-flex;align-items:center;gap:2px;text-decoration:none;cursor:pointer;transition:opacity .15s ease-out}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{background:var( --aia-footer-chip-bg, color-mix(in srgb, var(--aia-surface, #ffffff) 65%, transparent) );padding-inline:4px;border-radius:6px}.magicx-aia-footer-brand-link:hover{opacity:.7}.magicx-aia-footer-key{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:22px;padding:2px 6px;border:.5px solid var(--aia-footer-hint-color, #505050);border-radius:5px;font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-hint{font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-brand{font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}.magicx-aia-footer-badge{display:inline-flex;align-items:center;height:var(--aia-footer-row-height, 23px);padding:2.5px 5.5px;border:.5px solid var(--aia-footer-badge-border, rgba(189, 189, 189, .51));border-radius:999px;font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}@media (max-width: 768px){.magicx-aia-footer-hint-group{display:none}.magicx-aia-footer-row{justify-content:flex-end}}.magicx-aia-dropdown-skeleton-bars{display:flex;flex-direction:column;gap:20px;padding:7px 8px}.magicx-aia-dropdown-skeleton-bar{display:block;height:14px;border-radius:999px;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));opacity:.5;animation:aiaDropdownSkeletonPulse 1.4s ease-in-out infinite}.magicx-aia-dropdown-skeleton-bar:nth-child(2){animation-delay:.15s}.magicx-aia-dropdown-skeleton-bar:nth-child(3){animation-delay:.3s}@keyframes aiaDropdownSkeletonPulse{0%,to{opacity:.5}50%{opacity:.25}}\n"] }]
|
|
199
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n *ngIf=\"vm$ | async as vm\"\n [id]=\"controller.listboxId\"\n role=\"listbox\"\n data-aia-dropdown=\"\"\n [attr.data-aia-loading]=\"vm.isLoading ? '' : null\"\n [attr.data-mode]=\"resolvedMode\"\n [attr.data-options-position]=\"vm.optionsPosition\"\n [attr.data-aia-has-products]=\"vm.products.length > 0 ? '' : null\"\n [class]=\"rootClass\"\n [class.magicx-aia-dropdown-visible]=\"vm.isVisible\"\n (mousedown)=\"preventBlur($event)\"\n>\n <aia-stack space=\"8px\">\n <aia-cluster\n *ngIf=\"vm.showsPills\"\n class=\"magicx-aia-dropdown-pillbar\"\n data-aia-pillbar=\"\"\n [noWrap]=\"true\"\n >\n <aia-pill-list\n [pills]=\"vm.pills\"\n [activePillIndex]=\"0\"\n [activeSelected]=\"vm.isActivePillSelected\"\n [rounded]=\"true\"\n [loading]=\"vm.isLoading\"\n (selectPill)=\"onPillClick($event)\"\n ></aia-pill-list>\n </aia-cluster>\n\n <aia-suggestion-grid\n *ngIf=\"vm.showsOptions\"\n [options]=\"vm.options\"\n [activeIndex]=\"vm.activeIndex\"\n [listboxId]=\"controller.listboxId\"\n [loading]=\"vm.isLoading\"\n [groupKey]=\"vm.groupKey\"\n (select)=\"onSelect($event)\"\n (highlight)=\"onHighlight($event)\"\n ></aia-suggestion-grid>\n\n <div\n *ngIf=\"vm.showsFallbackSkeleton\"\n class=\"magicx-aia-dropdown-skeleton-bars\"\n data-aia-skeleton-bars=\"\"\n >\n <span\n *ngFor=\"let w of fallbackSkeletonBarWidths; trackBy: trackByWidth\"\n class=\"magicx-aia-dropdown-skeleton-bar\"\n [style.width.px]=\"w\"\n ></span>\n </div>\n\n <!-- *ngIf, not just the section's own guard inside the component: the host\n element is an in-flow child of .aia-stack (display:flex; gap:8px), so\n an always-instantiated zero-height host would add a SECOND 8px gap\n between the grid and the footer \u2014 in every dropdown, products or not.\n The grid's --aia-grid-overlap-bottom is tuned for exactly one gap, so\n the footer would land 8px below the band it is meant to cover. -->\n <aia-product-strip\n *ngIf=\"vm.products.length > 0\"\n [products]=\"vm.products\"\n [listboxId]=\"controller.listboxId\"\n [focusable]=\"vm.isVisible\"\n (select)=\"onProductSelect($event)\"\n (focusChange)=\"onProductFocusChange($event)\"\n ></aia-product-strip>\n\n <footer class=\"magicx-aia-footer\" data-aia-footer=\"\">\n <div class=\"magicx-aia-footer-row\">\n <span class=\"magicx-aia-footer-hint-group\">\n <kbd class=\"magicx-aia-footer-key\">{{ vm.footerKey }}</kbd>\n <span class=\"magicx-aia-footer-hint\">{{ vm.footerHint }}</span>\n </span>\n <a\n class=\"magicx-aia-footer-brand-link\"\n [href]=\"brandHref\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span class=\"magicx-aia-footer-brand\">AI</span>\n <span class=\"magicx-aia-footer-badge\">Autocomplete</span>\n </a>\n </div>\n </footer>\n </aia-stack>\n</div>\n", styles: [":where(.magicx-aia,.magicx-aia *,.magicx-aia *::before,.magicx-aia *::after){box-sizing:border-box}:where(.magicx-aia){--aia-primitive-neutral-0: #000000;--aia-primitive-neutral-150: #1a1b1d;--aia-primitive-neutral-250: #323232;--aia-primitive-neutral-300: #333539;--aia-primitive-neutral-400: #4a4a4a;--aia-primitive-neutral-500: #505050;--aia-primitive-neutral-700: #b0b0b0;--aia-primitive-neutral-750: #bdbdbd;--aia-primitive-neutral-900: #e7e7e7;--aia-primitive-neutral-1000: #ffffff;--aia-primitive-blue-50: #eef2ff;--aia-primitive-neutral-750-a50: rgba(189, 189, 189, .51);--aia-primitive-neutral-750-a25: rgba(189, 189, 189, .25);--aia-primitive-neutral-750-a35: rgba(189, 189, 189, .35);--aia-primitive-neutral-750-a30: rgba(189, 189, 189, .3);--aia-primitive-neutral-750-a15: rgba(189, 189, 189, .15);--aia-primitive-neutral-750-a105: rgba(189, 189, 189, .105);--aia-primitive-neutral-700-a40: rgba(176, 176, 176, .4);--aia-primitive-neutral-900-a50: rgba(231, 231, 231, .5);--aia-primitive-neutral-400-a50: rgba(74, 74, 74, .5)}:where(.magicx-aia),:where(.magicx-aia[data-mode=\"light\"]){--aia-surface: var(--aia-primitive-neutral-1000);--aia-border: var(--aia-primitive-neutral-700);--aia-dropdown-border: var(--aia-primitive-neutral-900-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-300);--aia-pill-border: var(--aia-primitive-neutral-750-a30);--aia-pill-font-size: 16px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a105);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-0);--aia-option-bg: var(--aia-primitive-blue-50);--aia-option-color: var(--aia-primitive-neutral-150);--aia-option-color-selected: var(--aia-primitive-neutral-0);--aia-option-font-size: 16px;--aia-written-text-color: var(--aia-primitive-neutral-0);--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #000000);--aia-submit-bg: var(--aia-primitive-neutral-0);--aia-submit-color: var(--aia-primitive-neutral-1000);--aia-color-text-muted: #6b7280;--aia-skeleton-bg: var(--aia-primitive-neutral-750-a25);--aia-streak-rgb: 99, 102, 241;--aia-streak-glass-bg: rgba(99, 102, 241, .1);--aia-footer-hint-color: var(--aia-primitive-neutral-500);--aia-footer-brand-color: var(--aia-primitive-neutral-700);--aia-footer-badge-border: var(--aia-primitive-neutral-750-a50)}:where(.magicx-aia[data-mode=\"dark\"]){--aia-surface: var(--aia-primitive-neutral-0);--aia-border: var(--aia-primitive-neutral-500);--aia-dropdown-border: var(--aia-primitive-neutral-400-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-700);--aia-pill-border: var(--aia-primitive-neutral-750-a30);--aia-pill-font-size: 16px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a15);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-1000);--aia-option-bg: var(--aia-primitive-neutral-250);--aia-option-color: var(--aia-primitive-neutral-900);--aia-option-color-selected: var(--aia-primitive-neutral-1000);--aia-option-font-size: 16px;--aia-written-text-color: var(--aia-primitive-neutral-1000);--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #ffffff);--aia-submit-bg: var(--aia-primitive-neutral-1000);--aia-submit-color: var(--aia-primitive-neutral-0);--aia-color-text-muted: #c1c4cb;--aia-skeleton-bg: var(--aia-primitive-neutral-150);--aia-streak-rgb: 255, 255, 255;--aia-streak-glass-bg: rgba(255, 255, 255, .1);--aia-footer-hint-color: var(--aia-primitive-neutral-700);--aia-footer-brand-color: var(--aia-primitive-neutral-500);--aia-footer-badge-border: var(--aia-primitive-neutral-500)}[data-aia-dropdown]{--aia-footer-row-height: 23px;--aia-footer-band: calc(var(--aia-footer-gap, 8px) + var(--aia-footer-row-height, 23px));--aia-grid-scroll-bottom: var(--aia-footer-band);--aia-grid-overlap-bottom: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-lead: 20px;--aia-footer-fade-inset: calc(-1 * var(--aia-footer-fade-lead)) 0 0}[data-aia-dropdown] .aia-grid[data-scroll]{padding-top:var(--aia-grid-scroll-top, 0);padding-bottom:var(--aia-grid-scroll-bottom, 0);margin-top:var(--aia-grid-overlap-top, 0);margin-bottom:var(--aia-grid-overlap-bottom, 0)}[data-aia-dropdown] [data-aia-footer]:before{content:\"\";position:absolute;inset:var(--aia-footer-fade-inset, -20px 0 0);z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--aia-surface, #ffffff))}[data-aia-dropdown][data-aia-surface=glass]{--aia-footer-chip-bg: transparent}[data-aia-dropdown][data-aia-surface=glass] [data-aia-footer]:before{display:none}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown],[data-aia-dropdown][data-options-position=above]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: var(--aia-footer-band);--aia-grid-overlap-top: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-inset: 0 0 calc(-1 * var(--aia-footer-fade-lead));top:auto;bottom:100%;margin-top:0;margin-bottom:6px}[data-aia-dropdown][data-aia-has-products]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: 0px;--aia-grid-overlap-top: 0px;--aia-footer-fade-lead: 0px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .aia-stack,[data-aia-dropdown][data-options-position=above] .aia-stack{flex-direction:column-reverse}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer],[data-aia-dropdown][data-options-position=above] [data-aia-footer]{padding:0 8px var(--aia-footer-gap, 8px)}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before{background:linear-gradient(to top,transparent,var(--aia-surface, #ffffff))}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .magicx-aia-footer,[data-aia-dropdown][data-options-position=above] .magicx-aia-footer{flex-direction:column-reverse}\n", ".magicx-aia-dropdown{position:absolute;left:0;right:0;top:100%;max-width:544px;margin-top:6px;display:flex;flex-direction:column;box-sizing:border-box;padding:10px 8px;overflow:hidden;container-type:inline-size;z-index:10;opacity:0;pointer-events:none;transition:opacity .4s cubic-bezier(.4,0,.2,1);background:var(--aia-surface, #ffffff);border:1px solid var(--aia-dropdown-border, rgba(231, 231, 231, .5));border-radius:18px;box-shadow:var(--aia-dropdown-shadow, 0 8px 12px rgba(0, 0, 0, .05))}.magicx-aia-dropdown[data-aia-surface=glass]{background:transparent;border-color:transparent;box-shadow:#fff -3.2px -3.2px 3.2px -3.2px inset,#fff 6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) -6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) 6.4px -6.4px 1.6px -8px inset,#ffffff26 -1.6px 0 0 -1.6px inset,#ffffff26 0 -1.6px 0 -1.6px inset,#ffffff4d 0 1.6px inset,#ffffff4d 1.6px 0 inset,inset 0 0 30px 5px #0000000d,#00000014 0 0 30px 2px;backdrop-filter:blur(30px)}.magicx-aia-dropdown-visible{opacity:1;pointer-events:auto}.magicx-aia-dropdown-pillbar{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%)}.magicx-aia-dropdown-pillbar::-webkit-scrollbar{display:none}.magicx-aia-footer{display:flex;flex-direction:column;gap:8px;padding:var(--aia-footer-gap, 8px) 8px 0;position:relative;z-index:3;pointer-events:none}.magicx-aia-footer-row{display:flex;align-items:center;justify-content:space-between}.magicx-aia-footer-hint-group{display:inline-flex;align-items:center;gap:5px}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{pointer-events:auto}.magicx-aia-footer-brand-link{display:inline-flex;align-items:center;gap:2px;text-decoration:none;cursor:pointer;transition:opacity .15s ease-out}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{background:var( --aia-footer-chip-bg, color-mix(in srgb, var(--aia-surface, #ffffff) 65%, transparent) );padding-inline:4px;border-radius:6px}.magicx-aia-footer-brand-link{background:var(--aia-footer-brand-pill-bg, var(--aia-surface, #ffffff));border-radius:999px;padding:2px 7px;gap:4px}.magicx-aia-footer-brand-link:hover{opacity:.7}.magicx-aia-footer-key{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:22px;padding:2px 6px;border:.5px solid var(--aia-footer-hint-color, #505050);border-radius:5px;font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-hint{font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-brand{font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}.magicx-aia-footer-badge{display:inline-flex;align-items:center;height:var(--aia-footer-row-height, 23px);padding:2.5px 5.5px;border:.5px solid var(--aia-footer-badge-border, rgba(189, 189, 189, .51));border-radius:999px;font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}@media (max-width: 768px){.magicx-aia-footer-hint-group{display:none}.magicx-aia-footer-row{justify-content:flex-end}}.magicx-aia-dropdown-skeleton-bars{display:flex;flex-direction:column;gap:20px;padding:7px 8px}.magicx-aia-dropdown-skeleton-bar{display:block;height:14px;border-radius:999px;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));opacity:.5;animation:aiaDropdownSkeletonPulse 1.4s ease-in-out infinite}.magicx-aia-dropdown-skeleton-bar:nth-child(2){animation-delay:.15s}.magicx-aia-dropdown-skeleton-bar:nth-child(3){animation-delay:.3s}@keyframes aiaDropdownSkeletonPulse{0%,to{opacity:.5}50%{opacity:.25}}\n"] }]
|
|
200
200
|
}], propDecorators: { controller: [{
|
|
201
201
|
type: Input
|
|
202
202
|
}], showPills: [{
|
|
@@ -206,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
206
206
|
}], mode: [{
|
|
207
207
|
type: Input
|
|
208
208
|
}] } });
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duL2FpLWF1dG9jb21wbGV0ZS1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL2FpLWF1dG9jb21wbGV0ZS1kcm9wZG93bi9haS1hdXRvY29tcGxldGUtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUtOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLGFBQWEsR0FJZCxNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFtQixNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7QUF3QmhHOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBb0JILE1BQU0sT0FBTywrQkFBK0I7SUFuQjVDO1FBc0JFLDJFQUEyRTtRQUNsRSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBVzFCLG9GQUFvRjtRQUNwRixpQkFBWSxHQUE0QixJQUFJLENBQUM7UUFHNUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBVWpELCtFQUErRTtRQUN0RSw4QkFBeUIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFckQ7OztXQUdHO1FBQ00sY0FBUyxHQUFHLG1CQUFtQixFQUFFLENBQUM7UUFlM0MsOEVBQThFO1FBQzlFLDZFQUE2RTtRQUM3RSwrRUFBK0U7UUFDL0UsNkRBQTZEO1FBQzVDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUVqRSx5RUFBeUU7UUFDekUsc0VBQXNFO1FBQzlELHVCQUFrQixHQUEyQixJQUFJLENBQUM7UUF1SDFELGlCQUFZLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0E4QnBEO0lBM0xDLDZFQUE2RTtJQUM3RSxJQUFJLFNBQVM7UUFDWCxJQUFJLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxZQUFZO1lBQUUsR0FBRyxJQUFJLGFBQWEsQ0FBQztRQUM1QyxJQUFJLElBQUksQ0FBQyxTQUFTO1lBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQWtDRCxRQUFRO1FBQ04sZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFO1lBQ25ELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtRQUNELDRFQUE0RTtRQUM1RSwyRUFBMkU7UUFDM0UseUVBQXlFO1FBQ3pFLHlFQUF5RTtRQUN6RSx3RUFBd0U7UUFDeEUsNkNBQTZDO1FBQzdDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNmO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFNBQVM7UUFDZixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLE9BQU87U0FDUjtRQUNELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzlCLE9BQU87U0FDUjtRQUNELFNBQVM7UUFDVCxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxPQUFPLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQzVFLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO1lBQzVCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQzVELElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzdELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQy9EO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVELDRFQUE0RTtJQUNwRSxNQUFNO1FBQ1osSUFBSSxDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3pFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUU7WUFDdEIsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDaEQsTUFBTSxVQUFVLEdBQUcsU0FBUyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN4QyxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQyxTQUFTLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDNUQsc0VBQXNFO1lBQ3RFLG9EQUFvRDtZQUNwRCxNQUFNLFNBQVMsR0FDYixFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxJQUFJLFVBQVUsSUFBSSxFQUFFLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRXRGLGlFQUFpRTtZQUNqRSxvRUFBb0U7WUFDcEUsa0VBQWtFO1lBQ2xFLHVFQUF1RTtZQUN2RSxtRUFBbUU7WUFDbkUsZ0NBQWdDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUN6QyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ3pEO1lBRUQsTUFBTSxpQkFBaUIsR0FDckIsRUFBRSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDdkUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLGFBQWEsQ0FDeEQsaUJBQWlCLEVBQ2pCLEVBQUUsQ0FBQyxZQUFZLENBQ2hCLENBQUM7WUFDRixNQUFNLE9BQU8sR0FBb0I7Z0JBQy9CLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztnQkFDZixPQUFPO2dCQUNQLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVztnQkFDM0Isb0JBQW9CLEVBQUUsRUFBRSxDQUFDLG9CQUFvQjtnQkFDN0MsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTO2dCQUN2QixVQUFVO2dCQUNWLFlBQVk7Z0JBQ1oscUJBQXFCO2dCQUNyQixRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVE7Z0JBQ3JCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JGLFNBQVM7Z0JBQ1QsVUFBVTtnQkFDVixlQUFlLEVBQUUsRUFBRSxDQUFDLGVBQWU7YUFDcEMsQ0FBQztZQUNGLElBQUksU0FBUztnQkFBRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDO1lBQ2pELE9BQU8sRUFBRSxHQUFHLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUlELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBd0I7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsb0JBQW9CLENBQUMsT0FBZ0I7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFZO1FBQ3RCLDJFQUEyRTtRQUMzRSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7NkhBL01VLCtCQUErQjtpSEFBL0IsK0JBQStCLDZNQ3RGNUMsMmpHQXVGQSw2d1REaEJJLFlBQVkscVRBQ1osaUJBQWlCLGlLQUNqQixxQkFBcUIsa0pBQ3JCLHVCQUF1QiwwS0FDdkIsY0FBYyxrRkFDZCxnQkFBZ0I7NEZBVVAsK0JBQStCO2tCQW5CM0MsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCxnQkFBZ0I7cUJBQ2pCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQVM1QixVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFPRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIGluamVjdCxcbiAgdHlwZSBPbkNoYW5nZXMsXG4gIHR5cGUgT25EZXN0cm95LFxuICB0eXBlIE9uSW5pdCxcbiAgdHlwZSBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIHR5cGUgQXBwZWFyYW5jZU1vZGUsXG4gIGJ1aWxkQXR0cmlidXRpb25VcmwsXG4gIGdldEZvb3RlckhpbnQsXG4gIHR5cGUgUHJvZHVjdCxcbiAgdHlwZSBTdWdnZXN0aW9uLFxuICB0eXBlIFN1Z2dlc3Rpb25PcHRpb24sXG59IGZyb20gXCJAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYVwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCB0eXBlIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgdHlwZSB7IEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlciB9IGZyb20gXCIuLi9jb250cm9sbGVyL2FpLWF1dG9jb21wbGV0ZS5jb250cm9sbGVyXCI7XG5pbXBvcnQgeyBDbHVzdGVyQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ludGVybmFsL2xheW91dC9jbHVzdGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU3RhY2tDb21wb25lbnQgfSBmcm9tIFwiLi4vaW50ZXJuYWwvbGF5b3V0L3N0YWNrLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUGlsbExpc3RDb21wb25lbnQgfSBmcm9tIFwiLi4vaW50ZXJuYWwvcGlsbC1saXN0L3BpbGwtbGlzdC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb2R1Y3RTdHJpcENvbXBvbmVudCB9IGZyb20gXCIuLi9pbnRlcm5hbC9wcm9kdWN0LXN0cmlwL3Byb2R1Y3Qtc3RyaXAuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTdWdnZXN0aW9uR3JpZENvbXBvbmVudCB9IGZyb20gXCIuLi9pbnRlcm5hbC9zdWdnZXN0aW9uLWdyaWQvc3VnZ2VzdGlvbi1ncmlkLmNvbXBvbmVudFwiO1xuXG5pbnRlcmZhY2UgRHJvcGRvd25WbSB7XG4gIHBpbGxzOiBTdWdnZXN0aW9uW107XG4gIG9wdGlvbnM6IFN1Z2dlc3Rpb25PcHRpb25bXTtcbiAgYWN0aXZlSW5kZXg6IG51bWJlcjtcbiAgaXNBY3RpdmVQaWxsU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgc2hvd3NQaWxsczogYm9vbGVhbjtcbiAgc2hvd3NPcHRpb25zOiBib29sZWFuO1xuICBzaG93c0ZhbGxiYWNrU2tlbGV0b246IGJvb2xlYW47XG4gIGlzVmlzaWJsZTogYm9vbGVhbjtcbiAgLyoqIFByb2R1Y3QgY2FyZHMgZm9yIHRoZSBzdHJpcC4gRW1wdHkgdW5sZXNzIGBwcm9kdWN0c2AgaXMgY29uZmlndXJlZC4gKi9cbiAgcHJvZHVjdHM6IFByb2R1Y3RbXTtcbiAgLyoqIElkZW50aXR5IG9mIHRoZSBzdWdnZXN0aW9uIHRoZSBvcHRpb25zIGJlbG9uZyB0byDigJQgZHJpdmVzIHRoZSBncmlkJ3Mgc2Nyb2xsIHJlc2V0LiAqL1xuICBncm91cEtleTogc3RyaW5nO1xuICBmb290ZXJLZXk6IHN0cmluZztcbiAgZm9vdGVySGludDogc3RyaW5nO1xuICBvcHRpb25zUG9zaXRpb246IFwiYWJvdmVcIiB8IFwiYmVsb3dcIjtcbn1cblxuLyoqIFRoZSBjb250ZW50LWJlYXJpbmcgZmllbGRzIG9mIHRoZSB2aWV3LW1vZGVsIChldmVyeXRoaW5nIGJ1dCBgaXNWaXNpYmxlYCkuICovXG50eXBlIERyb3Bkb3duQ29udGVudCA9IE9taXQ8RHJvcGRvd25WbSwgXCJpc1Zpc2libGVcIj47XG5cbi8qKlxuICogVGllciAyIGRyb3Bkb3duIGNvbXBvbmVudCDigJQgdGhlIEFuZ3VsYXIgZXF1aXZhbGVudCBvZiBSZWFjdCdzXG4gKiBgPEFJQXV0b2NvbXBsZXRlRHJvcGRvd24gLz5gLiBSZW5kZXJzIHRoZSBwaWxsYmFyLCBvcHRpb25zIGdyaWQsIGFuZFxuICogbG9hZGluZyBza2VsZXRvbiBiYXNlZCBvbiB0aGUgc3VwcGxpZWQgY29udHJvbGxlcidzIGBkcm9wZG93biRgIHNuYXBzaG90LlxuICpcbiAqIGBgYGh0bWxcbiAqIDxhaS1hdXRvY29tcGxldGUtZHJvcGRvd24gW2NvbnRyb2xsZXJdPVwiYWNcIj48L2FpLWF1dG9jb21wbGV0ZS1kcm9wZG93bj5cbiAqIGBgYFxuICpcbiAqIEFsbCBhY3Rpb25zIChwaWxsIGNsaWNrLCBvcHRpb24gc2VsZWN0LCBvcHRpb24gaGlnaGxpZ2h0KSBhcmUgZm9yd2FyZGVkIHRvXG4gKiB0aGUgY29udHJvbGxlci4gQ29uc3VtZXJzIHdobyBuZWVkIHRvIG9ic2VydmUgdGhlc2UgZXZlbnRzIGNhbiBzdWJzY3JpYmVcbiAqIHRvIHRoZSBjb250cm9sbGVyJ3MgcGVyLWZpZWxkIG9ic2VydmFibGVzLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFpLWF1dG9jb21wbGV0ZS1kcm9wZG93blwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFBpbGxMaXN0Q29tcG9uZW50LFxuICAgIFByb2R1Y3RTdHJpcENvbXBvbmVudCxcbiAgICBTdWdnZXN0aW9uR3JpZENvbXBvbmVudCxcbiAgICBTdGFja0NvbXBvbmVudCxcbiAgICBDbHVzdGVyQ29tcG9uZW50LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9haS1hdXRvY29tcGxldGUtZHJvcGRvd24uY29tcG9uZW50Lmh0bWxcIixcbiAgLy8gVGhlIHNoYXJlZCBhcHBlYXJhbmNlIGxheWVyIGNhcnJpZXMgdGhlIGRlc2lnbiB0b2tlbnMgKyBib3gtc2l6aW5nIHJlc2V0ICtcbiAgLy8gb3B0aW9uc1Bvc2l0aW9uIHJldmVyc2FsLCBzbyBhIHN0YW5kYWxvbmUgZHJvcGRvd24gKG5vIFRpZXIgMSBjb21wb25lbnQgb25cbiAgLy8gdGhlIHBhZ2UpIGlzIGZ1bGx5IHN0eWxlZCBvbmNlIGBtb2RlYCBpcyBzZXQuXG4gIHN0eWxlVXJsczogW1wiLi4vc2hhcmVkL2FwcGVhcmFuY2UuY3NzXCIsIFwiLi9haS1hdXRvY29tcGxldGUtZHJvcGRvd24uY29tcG9uZW50LmNzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgQUlBdXRvY29tcGxldGVEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKiogVGhlIGNvbnRyb2xsZXIgdGhhdCBvd25zIHRoZSBhdXRvY29tcGxldGUgc3RhdGUuIFJlcXVpcmVkLiAqL1xuICBASW5wdXQoKSBjb250cm9sbGVyITogQUlBdXRvY29tcGxldGVDb250cm9sbGVyO1xuICAvKiogV2hldGhlciB0byByZW5kZXIgdGhlIHBpbGxiYXIgYWJvdmUgdGhlIG9wdGlvbnMgZ3JpZC4gRGVmYXVsdDogdHJ1ZS4gKi9cbiAgQElucHV0KCkgc2hvd1BpbGxzID0gdHJ1ZTtcbiAgLyoqIE9wdGlvbmFsIENTUyBjbGFzcyBhcHBsaWVkIHRvIHRoZSBkcm9wZG93biByb290LiAqL1xuICBASW5wdXQoKSBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDb2xvciBtb2RlIGZvciBhIHN0YW5kYWxvbmUgZHJvcGRvd24uIFdoZW4gc2V0LCB0aGUgZHJvcGRvd24gc2VsZi1zY29wZXMgdGhlXG4gICAqIGRlc2lnbiB0b2tlbnMgdG8gaXRzIG93biByb290IChhZGRzIGBtYWdpY3gtYWlhYCArIGBkYXRhLW1vZGVgKSwgc28gaXQgbmVlZHNcbiAgICogbm8gYC5tYWdpY3gtYWlhYCB3cmFwcGVyLiBgXCJhdXRvXCJgIGZvbGxvd3MgYHByZWZlcnMtY29sb3Itc2NoZW1lYC4gTGVhdmUgaXRcbiAgICogdW5zZXQgd2hlbiB0aGUgZHJvcGRvd24gc2l0cyBpbnNpZGUgYSBgLm1hZ2ljeC1haWFgIGFuY2VzdG9yIChlLmcuIFRpZXIgMSkuXG4gICAqL1xuICBASW5wdXQoKSBtb2RlPzogQXBwZWFyYW5jZU1vZGU7XG5cbiAgLyoqIENvbmNyZXRlIHJlc29sdmVkIG1vZGUsIG9yIG51bGwgd2hlbiBgbW9kZWAgaXMgdW5zZXQgKGluaGVyaXQgZnJvbSBhbmNlc3RvcikuICovXG4gIHJlc29sdmVkTW9kZTogXCJsaWdodFwiIHwgXCJkYXJrXCIgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBtb2RlTXFsPzogTWVkaWFRdWVyeUxpc3Q7XG4gIHByaXZhdGUgbW9kZUxpc3RlbmVyPzogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIC8qKiBSb290IGNsYXNzIGxpc3Qg4oCUIGFkZHMgYG1hZ2ljeC1haWFgIG9ubHkgd2hlbiBzZWxmLXNjb3BpbmcgdmlhIGBtb2RlYC4gKi9cbiAgZ2V0IHJvb3RDbGFzcygpOiBzdHJpbmcge1xuICAgIGxldCBjbHMgPSBcIm1hZ2ljeC1haWEtZHJvcGRvd25cIjtcbiAgICBpZiAodGhpcy5yZXNvbHZlZE1vZGUpIGNscyArPSBcIiBtYWdpY3gtYWlhXCI7XG4gICAgaWYgKHRoaXMuY2xhc3NOYW1lKSBjbHMgKz0gYCAke3RoaXMuY2xhc3NOYW1lfWA7XG4gICAgcmV0dXJuIGNscztcbiAgfVxuXG4gIC8qKiBGYWxsYmFjayBza2VsZXRvbi1iYXIgd2lkdGhzIHVzZWQgd2hlbiBsb2FkaW5nIHdpdGggemVybyBjYWNoZWQgb3B0aW9ucy4gKi9cbiAgcmVhZG9ubHkgZmFsbGJhY2tTa2VsZXRvbkJhcldpZHRocyA9IFsxNTksIDExOSwgMTY0XTtcblxuICAvKipcbiAgICogQXR0cmlidXRpb24vYnJhbmRpbmcgbGluayBVUkwgZm9yIHRoZSBmb290ZXIsIHdpdGggYSBgdXRtX3NvdXJjZWAgZGVyaXZlZFxuICAgKiBmcm9tIHRoZSBlbWJlZGRpbmcgcGFnZSdzIGhvc3RuYW1lIChzZWUge0BsaW5rIGJ1aWxkQXR0cmlidXRpb25Vcmx9KS5cbiAgICovXG4gIHJlYWRvbmx5IGJyYW5kSHJlZiA9IGJ1aWxkQXR0cmlidXRpb25VcmwoKTtcblxuICAvKipcbiAgICogVmlldy1tb2RlbCBkZXJpdmVkIGZyb20gdGhlIGNvbnRyb2xsZXIncyBgZHJvcGRvd24kYC4gQWRkcyB0aHJlZSBib29sZWFuc1xuICAgKiAoYHNob3dzUGlsbHNgLCBgc2hvd3NPcHRpb25zYCwgYHNob3dzRmFsbGJhY2tTa2VsZXRvbmAsIGBpc1Zpc2libGVgKSB0aGF0XG4gICAqIGtlZXAgdGVtcGxhdGUtbGV2ZWwgbG9naWMgdG8gYSBwcm9wZXJ0eSByZWFkIHBlciDCpzE5LjYuXG4gICAqXG4gICAqIEluaXRpYWxpemVkIG9uY2UgaW4gYG5nT25Jbml0YCDigJQgbXVzdCBOT1QgYmUgYSBnZXR0ZXIuIEEgZ2V0dGVyIHJldHVybnMgYVxuICAgKiBmcmVzaCBgT2JzZXJ2YWJsZWAgaW5zdGFuY2Ugb24gZXZlcnkgcHJvcGVydHkgcmVhZDsgd2l0aCBPblB1c2ggKyBgYXN5bmNgXG4gICAqIHBpcGUgdGhhdCBtZWFucyBlYWNoIGNoYW5nZS1kZXRlY3Rpb24gY3ljbGUgdW5zdWJzY3JpYmVzL3Jlc3Vic2NyaWJlcyxcbiAgICogY2F1c2luZyB0aGUgYCpuZ0lmPVwidm0kIHwgYXN5bmMgYXMgdm1cImAgcm9vdCB0byBicmllZmx5IHJlc29sdmUgYG51bGxgXG4gICAqIGFuZCBmbGlja2VyIHRoZSBlbnRpcmUgZHJvcGRvd24gRE9NLlxuICAgKi9cbiAgdm0kITogT2JzZXJ2YWJsZTxEcm9wZG93blZtPjtcblxuICAvLyBCcmlkZ2UgZm9yIHRoZSBASW5wdXQgYHNob3dQaWxsc2AgaW50byB0aGUgcmVhY3RpdmUgcGlwZWxpbmUuIFdpdGhvdXQgdGhpcyxcbiAgLy8gY2hhbmdpbmcgdGhlIGlucHV0IGFmdGVyIGluaXQgd291bGRuJ3QgdHJpZ2dlciBhIG5ldyB2bSBlbWlzc2lvbiB1bnRpbCB0aGVcbiAgLy8gbmV4dCBjb250cm9sbGVyLmRyb3Bkb3duJCB0aWNrIOKAlCBhbmQgd2UnZCBsb3NlIHRoZSBzaG93UGlsbHMgdXBkYXRlIGVudGlyZWx5XG4gIC8vIGlmIHRoZSBjb250cm9sbGVyIGlzIGlkbGUuIFVwZGF0ZWQgZnJvbSBuZ09uQ2hhbmdlcyBiZWxvdy5cbiAgcHJpdmF0ZSByZWFkb25seSBzaG93UGlsbHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAvLyBMYXN0IGNvbnRlbnQgZW1pdHRlZCB3aGlsZSB0aGUgZHJvcGRvd24gd2FzIHZpc2libGUuIFJldXNlZCBkdXJpbmcgdGhlXG4gIC8vIGNsb3NlIGZhZGUgc28gdGhlIHBvcHVsYXRlZCBkcm9wZG93biBmYWRlcyBvdXQgYXMgb25lIOKAlCBzZWUgaW5pdFZtLlxuICBwcml2YXRlIGxhc3RWaXNpYmxlQ29udGVudDogRHJvcGRvd25Db250ZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gU2VlZCBzaG93UGlsbHMkIGZyb20gdGhlIGlucHV0J3MgcmVzb2x2ZWQgdmFsdWUgYXQgaW5pdCB0aW1lLlxuICAgIHRoaXMuc2hvd1BpbGxzJC5uZXh0KHRoaXMuc2hvd1BpbGxzKTtcbiAgICB0aGlzLmFwcGx5TW9kZSgpO1xuICAgIHRoaXMuaW5pdFZtKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbXCJzaG93UGlsbHNcIl0pIHtcbiAgICAgIHRoaXMuc2hvd1BpbGxzJC5uZXh0KHRoaXMuc2hvd1BpbGxzKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJtb2RlXCJdICYmICFjaGFuZ2VzW1wibW9kZVwiXS5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5hcHBseU1vZGUoKTtcbiAgICB9XG4gICAgLy8gUmUtYmluZCB2bSQgd2hlbiB0aGUgY29udHJvbGxlciBASW5wdXQgaXMgc3dhcHBlZCAoZS5nLiBhIG11bHRpLXN0ZXAgZm9ybVxuICAgIC8vIHRvZ2dsaW5nIGJldHdlZW4gY29udHJvbGxlcnMpLiBXaXRob3V0IHRoaXMsIHZtJCBzdGF5cyBzdWJzY3JpYmVkIHRvIHRoZVxuICAgIC8vIHByZXZpb3VzIGNvbnRyb2xsZXIncyBkcm9wZG93biQg4oCUIHJlbmRlcmluZyBzdGFsZSBvcHRpb25zLCBvciwgaWYgdGhhdFxuICAgIC8vIGNvbnRyb2xsZXIgd2FzIGRlc3Ryb3koKS1lZCwgcmVjZWl2aW5nIGEgY29tcGxldGlvbiB0aGF0IGNvbGxhcHNlcyB0aGVcbiAgICAvLyBkcm9wZG93biBwZXJtYW5lbnRseS4gU2tpcCB0aGUgZmlyc3QgY2hhbmdlOiBuZ09uQ2hhbmdlcyBmaXJlcyBiZWZvcmVcbiAgICAvLyBuZ09uSW5pdCwgd2hpY2ggb3ducyB0aGUgaW5pdGlhbCBjcmVhdGlvbi5cbiAgICBpZiAoY2hhbmdlc1tcImNvbnRyb2xsZXJcIl0gJiYgIWNoYW5nZXNbXCJjb250cm9sbGVyXCJdLmZpcnN0Q2hhbmdlICYmIHRoaXMuY29udHJvbGxlcikge1xuICAgICAgdGhpcy5pbml0Vm0oKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRlYXJkb3duTW9kZUxpc3RlbmVyKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgYG1vZGVgIGlucHV0IGludG8gYHJlc29sdmVkTW9kZWAuIFVuc2V0IOKGkiBudWxsICh0aGUgZHJvcGRvd25cbiAgICogc3RheXMgY2xhc3MtbGVzcyBhbmQgaW5oZXJpdHMgZnJvbSBhIGAubWFnaWN4LWFpYWAgYW5jZXN0b3IpLiBgXCJhdXRvXCJgIHJlYWRzXG4gICAqIGBwcmVmZXJzLWNvbG9yLXNjaGVtZWAgYW5kIHRyYWNrcyBpdCBsaXZlIHZpYSBhIG1lZGlhLXF1ZXJ5IGxpc3RlbmVyLlxuICAgKi9cbiAgcHJpdmF0ZSBhcHBseU1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy50ZWFyZG93bk1vZGVMaXN0ZW5lcigpO1xuICAgIGlmICh0aGlzLm1vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZXNvbHZlZE1vZGUgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5tb2RlID09PSBcImxpZ2h0XCIgfHwgdGhpcy5tb2RlID09PSBcImRhcmtcIikge1xuICAgICAgdGhpcy5yZXNvbHZlZE1vZGUgPSB0aGlzLm1vZGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFwiYXV0b1wiXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIgfHwgdHlwZW9mIHdpbmRvdy5tYXRjaE1lZGlhICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRoaXMucmVzb2x2ZWRNb2RlID0gXCJsaWdodFwiO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1vZGVNcWwgPSB3aW5kb3cubWF0Y2hNZWRpYShcIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylcIik7XG4gICAgdGhpcy5yZXNvbHZlZE1vZGUgPSB0aGlzLm1vZGVNcWwubWF0Y2hlcyA/IFwiZGFya1wiIDogXCJsaWdodFwiO1xuICAgIHRoaXMubW9kZUxpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgdGhpcy5yZXNvbHZlZE1vZGUgPSB0aGlzLm1vZGVNcWw/Lm1hdGNoZXMgPyBcImRhcmtcIiA6IFwibGlnaHRcIjtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH07XG4gICAgdGhpcy5tb2RlTXFsLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwgdGhpcy5tb2RlTGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSB0ZWFyZG93bk1vZGVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tb2RlTXFsICYmIHRoaXMubW9kZUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLm1vZGVNcWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLCB0aGlzLm1vZGVMaXN0ZW5lcik7XG4gICAgfVxuICAgIHRoaXMubW9kZU1xbCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLm1vZGVMaXN0ZW5lciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBCdWlsZCB0aGUgdmlldy1tb2RlbCBzdHJlYW0gZnJvbSB0aGUgY3VycmVudCBjb250cm9sbGVyICsgc2hvd1BpbGxzJC4gKi9cbiAgcHJpdmF0ZSBpbml0Vm0oKTogdm9pZCB7XG4gICAgdGhpcy52bSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNvbnRyb2xsZXIuZHJvcGRvd24kLCB0aGlzLnNob3dQaWxscyRdKS5waXBlKFxuICAgICAgbWFwKChbZGQsIHNob3dQaWxsc10pID0+IHtcbiAgICAgICAgY29uc3QgYWN0aXZlU3VnZ2VzdGlvbiA9IGRkLnN1Z2dlc3Rpb25zWzBdO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gYWN0aXZlU3VnZ2VzdGlvbj8ub3B0aW9ucyA/PyBbXTtcbiAgICAgICAgY29uc3Qgc2hvd3NQaWxscyA9IHNob3dQaWxscyAmJiAoZGQucGlsbHMubGVuZ3RoID4gMCB8fCBkZC5pc0xvYWRpbmcpO1xuICAgICAgICBjb25zdCBzaG93c09wdGlvbnMgPSBvcHRpb25zLmxlbmd0aCA+IDA7XG4gICAgICAgIGNvbnN0IHNob3dzRmFsbGJhY2tTa2VsZXRvbiA9IGRkLmlzTG9hZGluZyAmJiAhc2hvd3NPcHRpb25zO1xuICAgICAgICAvLyBFaXRoZXIgaGFsZiBpcyBlbm91Z2ggdG8ga2VlcCB0aGUgcGFuZWwgdXA6IHByb2R1Y3RzIHJlbmRlciB3aXRoIG5vXG4gICAgICAgIC8vIHN1Z2dlc3Rpb25zLCBzdWdnZXN0aW9ucyByZW5kZXIgd2l0aCBubyBwcm9kdWN0cy5cbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID1cbiAgICAgICAgICBkZC5pc09wZW4gJiYgKHNob3dzT3B0aW9ucyB8fCBzaG93c1BpbGxzIHx8IGRkLmlzTG9hZGluZyB8fCBkZC5wcm9kdWN0cy5sZW5ndGggPiAwKTtcblxuICAgICAgICAvLyBXaGlsZSBjbG9zaW5nLCByZXVzZSB0aGUgbGFzdCB2aXNpYmxlIGNvbnRlbnQgc28gdGhlIHBvcHVsYXRlZFxuICAgICAgICAvLyBkcm9wZG93biBmYWRlcyBvdXQgYXMgb25lLiBPdGhlcndpc2UgdGhlIHBpbGxzL29wdGlvbnMgdmFuaXNoIHRoZVxuICAgICAgICAvLyBpbnN0YW50IHRoZSBzdGF0ZSBlbXB0aWVzIChlLmcuIHNraXBwaW5nIHRoZSBsYXN0IHBpbGwgd2l0aCDihpIpLFxuICAgICAgICAvLyBsZWF2aW5nIHRoZSBhbHdheXMtcHJlc2VudCBmb290ZXIgYWxvbmUgZm9yIGEgZmxhc2ggb2YgYSBmb290ZXItb25seVxuICAgICAgICAvLyBcIm5vIG9wdGlvbnNcIiBib3ggbWlkLWZhZGUuIE9ubHkgYGlzVmlzaWJsZWAgdHJhY2tzIGxpdmUgc3RhdGUgdG9cbiAgICAgICAgLy8gZHJpdmUgdGhlIG9wYWNpdHkgdHJhbnNpdGlvbi5cbiAgICAgICAgaWYgKCFpc1Zpc2libGUgJiYgdGhpcy5sYXN0VmlzaWJsZUNvbnRlbnQpIHtcbiAgICAgICAgICByZXR1cm4geyAuLi50aGlzLmxhc3RWaXNpYmxlQ29udGVudCwgaXNWaXNpYmxlOiBmYWxzZSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3B0aW9uSGlnaGxpZ2h0ZWQgPVxuICAgICAgICAgIGRkLmFjdGl2ZUluZGV4ID49IDAgJiYgQm9vbGVhbihvcHRpb25zW2RkLmFjdGl2ZUluZGV4XT8uaXNfdGFwcGFibGUpO1xuICAgICAgICBjb25zdCB7IGtleTogZm9vdGVyS2V5LCBoaW50OiBmb290ZXJIaW50IH0gPSBnZXRGb290ZXJIaW50KFxuICAgICAgICAgIG9wdGlvbkhpZ2hsaWdodGVkLFxuICAgICAgICAgIGRkLmlzSW5wdXRFbXB0eSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgY29udGVudDogRHJvcGRvd25Db250ZW50ID0ge1xuICAgICAgICAgIHBpbGxzOiBkZC5waWxscyxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIGFjdGl2ZUluZGV4OiBkZC5hY3RpdmVJbmRleCxcbiAgICAgICAgICBpc0FjdGl2ZVBpbGxTZWxlY3RlZDogZGQuaXNBY3RpdmVQaWxsU2VsZWN0ZWQsXG4gICAgICAgICAgaXNMb2FkaW5nOiBkZC5pc0xvYWRpbmcsXG4gICAgICAgICAgc2hvd3NQaWxscyxcbiAgICAgICAgICBzaG93c09wdGlvbnMsXG4gICAgICAgICAgc2hvd3NGYWxsYmFja1NrZWxldG9uLFxuICAgICAgICAgIHByb2R1Y3RzOiBkZC5wcm9kdWN0cyxcbiAgICAgICAgICBncm91cEtleTogYWN0aXZlU3VnZ2VzdGlvbiA/IGAke2FjdGl2ZVN1Z2dlc3Rpb24udHlwZX0gJHthY3RpdmVTdWdnZXN0aW9uLnRleHR9YCA6IFwiXCIsXG4gICAgICAgICAgZm9vdGVyS2V5LFxuICAgICAgICAgIGZvb3RlckhpbnQsXG4gICAgICAgICAgb3B0aW9uc1Bvc2l0aW9uOiBkZC5vcHRpb25zUG9zaXRpb24sXG4gICAgICAgIH07XG4gICAgICAgIGlmIChpc1Zpc2libGUpIHRoaXMubGFzdFZpc2libGVDb250ZW50ID0gY29udGVudDtcbiAgICAgICAgcmV0dXJuIHsgLi4uY29udGVudCwgaXNWaXNpYmxlIH07XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgdHJhY2tCeVdpZHRoID0gKF86IG51bWJlciwgdzogbnVtYmVyKTogbnVtYmVyID0+IHc7XG5cbiAgb25QaWxsQ2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZXRBY3RpdmVQaWxsKGluZGV4KTtcbiAgfVxuXG4gIG9uU2VsZWN0KG9wdGlvbjogU3VnZ2VzdGlvbk9wdGlvbik6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZWxlY3RPcHRpb24ob3B0aW9uKTtcbiAgfVxuXG4gIG9uSGlnaGxpZ2h0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIuc2V0QWN0aXZlRHJvcGRvd25JbmRleChpbmRleCk7XG4gIH1cblxuICBvblByb2R1Y3RTZWxlY3QocHJvZHVjdDogUHJvZHVjdCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZWxlY3RQcm9kdWN0KHByb2R1Y3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgY2FyZCB0YWtpbmcgZm9jdXMgYmx1cnMgdGhlIGVkaXRvciwgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGNsb3NlIHRoZVxuICAgKiBwYW5lbCBvdXQgZnJvbSB1bmRlciB0aGUgY2FyZCB0aGUgdXNlciBqdXN0IHRhYmJlZCB0by5cbiAgICovXG4gIG9uUHJvZHVjdEZvY3VzQ2hhbmdlKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIuc2V0Rm9jdXNlZChmb2N1c2VkKTtcbiAgfVxuXG4gIHByZXZlbnRCbHVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIC8vIFByZXZlbnQgdGhlIGVkaXRvciBmcm9tIGxvc2luZyBmb2N1cyB3aGVuIGludGVyYWN0aW5nIHdpdGggdGhlIGRyb3Bkb3duLlxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJ2bSQgfCBhc3luYyBhcyB2bVwiXG4gIFtpZF09XCJjb250cm9sbGVyLmxpc3Rib3hJZFwiXG4gIHJvbGU9XCJsaXN0Ym94XCJcbiAgZGF0YS1haWEtZHJvcGRvd249XCJcIlxuICBbYXR0ci5kYXRhLWFpYS1sb2FkaW5nXT1cInZtLmlzTG9hZGluZyA/ICcnIDogbnVsbFwiXG4gIFthdHRyLmRhdGEtbW9kZV09XCJyZXNvbHZlZE1vZGVcIlxuICBbYXR0ci5kYXRhLW9wdGlvbnMtcG9zaXRpb25dPVwidm0ub3B0aW9uc1Bvc2l0aW9uXCJcbiAgW2F0dHIuZGF0YS1haWEtaGFzLXByb2R1Y3RzXT1cInZtLnByb2R1Y3RzLmxlbmd0aCA+IDAgPyAnJyA6IG51bGxcIlxuICBbY2xhc3NdPVwicm9vdENsYXNzXCJcbiAgW2NsYXNzLm1hZ2ljeC1haWEtZHJvcGRvd24tdmlzaWJsZV09XCJ2bS5pc1Zpc2libGVcIlxuICAobW91c2Vkb3duKT1cInByZXZlbnRCbHVyKCRldmVudClcIlxuPlxuICA8YWlhLXN0YWNrIHNwYWNlPVwiOHB4XCI+XG4gICAgPGFpYS1jbHVzdGVyXG4gICAgICAqbmdJZj1cInZtLnNob3dzUGlsbHNcIlxuICAgICAgY2xhc3M9XCJtYWdpY3gtYWlhLWRyb3Bkb3duLXBpbGxiYXJcIlxuICAgICAgZGF0YS1haWEtcGlsbGJhcj1cIlwiXG4gICAgICBbbm9XcmFwXT1cInRydWVcIlxuICAgID5cbiAgICAgIDxhaWEtcGlsbC1saXN0XG4gICAgICAgIFtwaWxsc109XCJ2bS5waWxsc1wiXG4gICAgICAgIFthY3RpdmVQaWxsSW5kZXhdPVwiMFwiXG4gICAgICAgIFthY3RpdmVTZWxlY3RlZF09XCJ2bS5pc0FjdGl2ZVBpbGxTZWxlY3RlZFwiXG4gICAgICAgIFtyb3VuZGVkXT1cInRydWVcIlxuICAgICAgICBbbG9hZGluZ109XCJ2bS5pc0xvYWRpbmdcIlxuICAgICAgICAoc2VsZWN0UGlsbCk9XCJvblBpbGxDbGljaygkZXZlbnQpXCJcbiAgICAgID48L2FpYS1waWxsLWxpc3Q+XG4gICAgPC9haWEtY2x1c3Rlcj5cblxuICAgIDxhaWEtc3VnZ2VzdGlvbi1ncmlkXG4gICAgICAqbmdJZj1cInZtLnNob3dzT3B0aW9uc1wiXG4gICAgICBbb3B0aW9uc109XCJ2bS5vcHRpb25zXCJcbiAgICAgIFthY3RpdmVJbmRleF09XCJ2bS5hY3RpdmVJbmRleFwiXG4gICAgICBbbGlzdGJveElkXT1cImNvbnRyb2xsZXIubGlzdGJveElkXCJcbiAgICAgIFtsb2FkaW5nXT1cInZtLmlzTG9hZGluZ1wiXG4gICAgICBbZ3JvdXBLZXldPVwidm0uZ3JvdXBLZXlcIlxuICAgICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgIChoaWdobGlnaHQpPVwib25IaWdobGlnaHQoJGV2ZW50KVwiXG4gICAgPjwvYWlhLXN1Z2dlc3Rpb24tZ3JpZD5cblxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwidm0uc2hvd3NGYWxsYmFja1NrZWxldG9uXCJcbiAgICAgIGNsYXNzPVwibWFnaWN4LWFpYS1kcm9wZG93bi1za2VsZXRvbi1iYXJzXCJcbiAgICAgIGRhdGEtYWlhLXNrZWxldG9uLWJhcnM9XCJcIlxuICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0Zvcj1cImxldCB3IG9mIGZhbGxiYWNrU2tlbGV0b25CYXJXaWR0aHM7IHRyYWNrQnk6IHRyYWNrQnlXaWR0aFwiXG4gICAgICAgIGNsYXNzPVwibWFnaWN4LWFpYS1kcm9wZG93bi1za2VsZXRvbi1iYXJcIlxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwid1wiXG4gICAgICA+PC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSAqbmdJZiwgbm90IGp1c3QgdGhlIHNlY3Rpb24ncyBvd24gZ3VhcmQgaW5zaWRlIHRoZSBjb21wb25lbnQ6IHRoZSBob3N0XG4gICAgICAgICBlbGVtZW50IGlzIGFuIGluLWZsb3cgY2hpbGQgb2YgLmFpYS1zdGFjayAoZGlzcGxheTpmbGV4OyBnYXA6OHB4KSwgc29cbiAgICAgICAgIGFuIGFsd2F5cy1pbnN0YW50aWF0ZWQgemVyby1oZWlnaHQgaG9zdCB3b3VsZCBhZGQgYSBTRUNPTkQgOHB4IGdhcFxuICAgICAgICAgYmV0d2VlbiB0aGUgZ3JpZCBhbmQgdGhlIGZvb3RlciDigJQgaW4gZXZlcnkgZHJvcGRvd24sIHByb2R1Y3RzIG9yIG5vdC5cbiAgICAgICAgIFRoZSBncmlkJ3MgLS1haWEtZ3JpZC1vdmVybGFwLWJvdHRvbSBpcyB0dW5lZCBmb3IgZXhhY3RseSBvbmUgZ2FwLCBzb1xuICAgICAgICAgdGhlIGZvb3RlciB3b3VsZCBsYW5kIDhweCBiZWxvdyB0aGUgYmFuZCBpdCBpcyBtZWFudCB0byBjb3Zlci4gLS0+XG4gICAgPGFpYS1wcm9kdWN0LXN0cmlwXG4gICAgICAqbmdJZj1cInZtLnByb2R1Y3RzLmxlbmd0aCA+IDBcIlxuICAgICAgW3Byb2R1Y3RzXT1cInZtLnByb2R1Y3RzXCJcbiAgICAgIFtsaXN0Ym94SWRdPVwiY29udHJvbGxlci5saXN0Ym94SWRcIlxuICAgICAgW2ZvY3VzYWJsZV09XCJ2bS5pc1Zpc2libGVcIlxuICAgICAgKHNlbGVjdCk9XCJvblByb2R1Y3RTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAoZm9jdXNDaGFuZ2UpPVwib25Qcm9kdWN0Rm9jdXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvYWlhLXByb2R1Y3Qtc3RyaXA+XG5cbiAgICA8Zm9vdGVyIGNsYXNzPVwibWFnaWN4LWFpYS1mb290ZXJcIiBkYXRhLWFpYS1mb290ZXI9XCJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYWdpY3gtYWlhLWZvb3Rlci1yb3dcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWdpY3gtYWlhLWZvb3Rlci1oaW50LWdyb3VwXCI+XG4gICAgICAgICAgPGtiZCBjbGFzcz1cIm1hZ2ljeC1haWEtZm9vdGVyLWtleVwiPnt7IHZtLmZvb3RlcktleSB9fTwva2JkPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFnaWN4LWFpYS1mb290ZXItaGludFwiPnt7IHZtLmZvb3RlckhpbnQgfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGFcbiAgICAgICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtZm9vdGVyLWJyYW5kLWxpbmtcIlxuICAgICAgICAgIFtocmVmXT1cImJyYW5kSHJlZlwiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFnaWN4LWFpYS1mb290ZXItYnJhbmRcIj5BSTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hZ2ljeC1haWEtZm9vdGVyLWJhZGdlXCI+QXV0b2NvbXBsZXRlPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvb3Rlcj5cbiAgPC9haWEtc3RhY2s+XG48L2Rpdj5cbiJdfQ==
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duL2FpLWF1dG9jb21wbGV0ZS1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL2FpLWF1dG9jb21wbGV0ZS1kcm9wZG93bi9haS1hdXRvY29tcGxldGUtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUtOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLGFBQWEsR0FJZCxNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFtQixNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7QUF3QmhHOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBb0JILE1BQU0sT0FBTywrQkFBK0I7SUFuQjVDO1FBc0JFLDJFQUEyRTtRQUNsRSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBVzFC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LCtCQUErQjtpSEFBL0IsK0JBQStCLDZNQ3RGNUMsMmpHQXVGQSwrNVREaEJJLFlBQVkscVRBQ1osaUJBQWlCLGlLQUNqQixxQkFBcUIsa0pBQ3JCLHVCQUF1QiwwS0FDdkIsY0FBYyxrRkFDZCxnQkFBZ0I7NEZBVVAsK0JBQStCO2tCQW5CM0MsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCxnQkFBZ0I7cUJBQ2pCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQVM1QixVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFPRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIGluamVjdCxcbiAgdHlwZSBPbkNoYW5nZXMsXG4gIHR5cGUgT25EZXN0cm95LFxuICB0eXBlIE9uSW5pdCxcbiAgdHlwZSBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIHR5cGUgQXBwZWFyYW5jZU1vZGUsXG4gIGJ1aWxkQXR0cmlidXRpb25VcmwsXG4gIGdldEZvb3RlckhpbnQsXG4gIHR5cGUgUHJvZHVjdCxcbiAgdHlwZSBTdWdnZXN0aW9uLFxuICB0eXBlIFN1Z2dlc3Rpb25PcHRpb24sXG59IGZyb20gXCJAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYVwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCB0eXBlIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgdHlwZSB7IEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlciB9IGZyb20gXCIuLi9jb250cm9sbGVyL2FpLWF1dG9jb21wbGV0ZS5jb250cm9sbGVyXCI7XG5pbXBvcnQgeyBDbHVzdGVyQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ludGVybmFsL2xheW91dC9jbHVzdGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU3RhY2tDb21wb25lbnQgfSBmcm9tIFwiLi4vaW50ZXJuYWwvbGF5b3V0L3N0YWNrLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUGlsbExpc3RDb21wb25lbnQgfSBmcm9tIFwiLi4vaW50ZXJuYWwvcGlsbC1saXN0L3BpbGwtbGlzdC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb2R1Y3RTdHJpcENvbXBvbmVudCB9IGZyb20gXCIuLi9pbnRlcm5hbC9wcm9kdWN0LXN0cmlwL3Byb2R1Y3Qtc3RyaXAuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTdWdnZXN0aW9uR3JpZENvbXBvbmVudCB9IGZyb20gXCIuLi9pbnRlcm5hbC9zdWdnZXN0aW9uLWdyaWQvc3VnZ2VzdGlvbi1ncmlkLmNvbXBvbmVudFwiO1xuXG5pbnRlcmZhY2UgRHJvcGRvd25WbSB7XG4gIHBpbGxzOiBTdWdnZXN0aW9uW107XG4gIG9wdGlvbnM6IFN1Z2dlc3Rpb25PcHRpb25bXTtcbiAgYWN0aXZlSW5kZXg6IG51bWJlcjtcbiAgaXNBY3RpdmVQaWxsU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgc2hvd3NQaWxsczogYm9vbGVhbjtcbiAgc2hvd3NPcHRpb25zOiBib29sZWFuO1xuICBzaG93c0ZhbGxiYWNrU2tlbGV0b246IGJvb2xlYW47XG4gIGlzVmlzaWJsZTogYm9vbGVhbjtcbiAgLyoqIFByb2R1Y3QgY2FyZHMgZm9yIHRoZSBzdHJpcC4gRW1wdHkgdW5sZXNzIGBwcm9kdWN0c2AgaXMgY29uZmlndXJlZC4gKi9cbiAgcHJvZHVjdHM6IFByb2R1Y3RbXTtcbiAgLyoqIElkZW50aXR5IG9mIHRoZSBzdWdnZXN0aW9uIHRoZSBvcHRpb25zIGJlbG9uZyB0byDigJQgZHJpdmVzIHRoZSBncmlkJ3Mgc2Nyb2xsIHJlc2V0LiAqL1xuICBncm91cEtleTogc3RyaW5nO1xuICBmb290ZXJLZXk6IHN0cmluZztcbiAgZm9vdGVySGludDogc3RyaW5nO1xuICBvcHRpb25zUG9zaXRpb246IFwiYWJvdmVcIiB8IFwiYmVsb3dcIjtcbn1cblxuLyoqIFRoZSBjb250ZW50LWJlYXJpbmcgZmllbGRzIG9mIHRoZSB2aWV3LW1vZGVsIChldmVyeXRoaW5nIGJ1dCBgaXNWaXNpYmxlYCkuICovXG50eXBlIERyb3Bkb3duQ29udGVudCA9IE9taXQ8RHJvcGRvd25WbSwgXCJpc1Zpc2libGVcIj47XG5cbi8qKlxuICogVGllciAyIGRyb3Bkb3duIGNvbXBvbmVudCDigJQgdGhlIEFuZ3VsYXIgZXF1aXZhbGVudCBvZiBSZWFjdCdzXG4gKiBgPEFJQXV0b2NvbXBsZXRlRHJvcGRvd24gLz5gLiBSZW5kZXJzIHRoZSBwaWxsYmFyLCBvcHRpb25zIGdyaWQsIGFuZFxuICogbG9hZGluZyBza2VsZXRvbiBiYXNlZCBvbiB0aGUgc3VwcGxpZWQgY29udHJvbGxlcidzIGBkcm9wZG93biRgIHNuYXBzaG90LlxuICpcbiAqIGBgYGh0bWxcbiAqIDxhaS1hdXRvY29tcGxldGUtZHJvcGRvd24gW2NvbnRyb2xsZXJdPVwiYWNcIj48L2FpLWF1dG9jb21wbGV0ZS1kcm9wZG93bj5cbiAqIGBgYFxuICpcbiAqIEFsbCBhY3Rpb25zIChwaWxsIGNsaWNrLCBvcHRpb24gc2VsZWN0LCBvcHRpb24gaGlnaGxpZ2h0KSBhcmUgZm9yd2FyZGVkIHRvXG4gKiB0aGUgY29udHJvbGxlci4gQ29uc3VtZXJzIHdobyBuZWVkIHRvIG9ic2VydmUgdGhlc2UgZXZlbnRzIGNhbiBzdWJzY3JpYmVcbiAqIHRvIHRoZSBjb250cm9sbGVyJ3MgcGVyLWZpZWxkIG9ic2VydmFibGVzLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFpLWF1dG9jb21wbGV0ZS1kcm9wZG93blwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFBpbGxMaXN0Q29tcG9uZW50LFxuICAgIFByb2R1Y3RTdHJpcENvbXBvbmVudCxcbiAgICBTdWdnZXN0aW9uR3JpZENvbXBvbmVudCxcbiAgICBTdGFja0NvbXBvbmVudCxcbiAgICBDbHVzdGVyQ29tcG9uZW50LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9haS1hdXRvY29tcGxldGUtZHJvcGRvd24uY29tcG9uZW50Lmh0bWxcIixcbiAgLy8gVGhlIHNoYXJlZCBhcHBlYXJhbmNlIGxheWVyIGNhcnJpZXMgdGhlIGRlc2lnbiB0b2tlbnMgKyBib3gtc2l6aW5nIHJlc2V0ICtcbiAgLy8gb3B0aW9uc1Bvc2l0aW9uIHJldmVyc2FsLCBzbyBhIHN0YW5kYWxvbmUgZHJvcGRvd24gKG5vIFRpZXIgMSBjb21wb25lbnQgb25cbiAgLy8gdGhlIHBhZ2UpIGlzIGZ1bGx5IHN0eWxlZCBvbmNlIGBtb2RlYCBpcyBzZXQuXG4gIHN0eWxlVXJsczogW1wiLi4vc2hhcmVkL2FwcGVhcmFuY2UuY3NzXCIsIFwiLi9haS1hdXRvY29tcGxldGUtZHJvcGRvd24uY29tcG9uZW50LmNzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgQUlBdXRvY29tcGxldGVEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKiogVGhlIGNvbnRyb2xsZXIgdGhhdCBvd25zIHRoZSBhdXRvY29tcGxldGUgc3RhdGUuIFJlcXVpcmVkLiAqL1xuICBASW5wdXQoKSBjb250cm9sbGVyITogQUlBdXRvY29tcGxldGVDb250cm9sbGVyO1xuICAvKiogV2hldGhlciB0byByZW5kZXIgdGhlIHBpbGxiYXIgYWJvdmUgdGhlIG9wdGlvbnMgZ3JpZC4gRGVmYXVsdDogdHJ1ZS4gKi9cbiAgQElucHV0KCkgc2hvd1BpbGxzID0gdHJ1ZTtcbiAgLyoqIE9wdGlvbmFsIENTUyBjbGFzcyBhcHBsaWVkIHRvIHRoZSBkcm9wZG93biByb290LiAqL1xuICBASW5wdXQoKSBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDb2xvciBtb2RlIGZvciBhIHN0YW5kYWxvbmUgZHJvcGRvd24uIFdoZW4gc2V0LCB0aGUgZHJvcGRvd24gc2VsZi1zY29wZXMgdGhlXG4gICAqIGRlc2lnbiB0b2tlbnMgdG8gaXRzIG93biByb290IChhZGRzIGBtYWdpY3gtYWlhYCArIGBkYXRhLW1vZGVgKSwgc28gaXQgbmVlZHNcbiAgICogbm8gYC5tYWdpY3gtYWlhYCB3cmFwcGVyLiBgXCJhdXRvXCJgIGZvbGxvd3MgYHByZWZlcnMtY29sb3Itc2NoZW1lYC4gTGVhdmUgaXRcbiAgICogdW5zZXQgd2hlbiB0aGUgZHJvcGRvd24gc2l0cyBpbnNpZGUgYSBgLm1hZ2ljeC1haWFgIGFuY2VzdG9yIChlLmcuIFRpZXIgMSkuXG4gICAqL1xuICBASW5wdXQoKSBtb2RlPzogQXBwZWFyYW5jZU1vZGU7XG5cbiAgLyoqIENvbmNyZXRlIHJlc29sdmVkIG1vZGUsIG9yIG51bGwgd2hlbiBgbW9kZWAgaXMgdW5zZXQgKGluaGVyaXQgZnJvbSBhbmNlc3RvcikuICovXG4gIHJlc29sdmVkTW9kZTogXCJsaWdodFwiIHwgXCJkYXJrXCIgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBtb2RlTXFsPzogTWVkaWFRdWVyeUxpc3Q7XG4gIHByaXZhdGUgbW9kZUxpc3RlbmVyPzogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIC8qKiBSb290IGNsYXNzIGxpc3Qg4oCUIGFkZHMgYG1hZ2ljeC1haWFgIG9ubHkgd2hlbiBzZWxmLXNjb3BpbmcgdmlhIGBtb2RlYC4gKi9cbiAgZ2V0IHJvb3RDbGFzcygpOiBzdHJpbmcge1xuICAgIGxldCBjbHMgPSBcIm1hZ2ljeC1haWEtZHJvcGRvd25cIjtcbiAgICBpZiAodGhpcy5yZXNvbHZlZE1vZGUpIGNscyArPSBcIiBtYWdpY3gtYWlhXCI7XG4gICAgaWYgKHRoaXMuY2xhc3NOYW1lKSBjbHMgKz0gYCAke3RoaXMuY2xhc3NOYW1lfWA7XG4gICAgcmV0dXJuIGNscztcbiAgfVxuXG4gIC8qKiBGYWxsYmFjayBza2VsZXRvbi1iYXIgd2lkdGhzIHVzZWQgd2hlbiBsb2FkaW5nIHdpdGggemVybyBjYWNoZWQgb3B0aW9ucy4gKi9cbiAgcmVhZG9ubHkgZmFsbGJhY2tTa2VsZXRvbkJhcldpZHRocyA9IFsxNTksIDExOSwgMTY0XTtcblxuICAvKipcbiAgICogQXR0cmlidXRpb24vYnJhbmRpbmcgbGluayBVUkwgZm9yIHRoZSBmb290ZXIsIHdpdGggYSBgdXRtX3NvdXJjZWAgZGVyaXZlZFxuICAgKiBmcm9tIHRoZSBlbWJlZGRpbmcgcGFnZSdzIGhvc3RuYW1lIChzZWUge0BsaW5rIGJ1aWxkQXR0cmlidXRpb25Vcmx9KS5cbiAgICovXG4gIHJlYWRvbmx5IGJyYW5kSHJlZiA9IGJ1aWxkQXR0cmlidXRpb25VcmwoKTtcblxuICAvKipcbiAgICogVmlldy1tb2RlbCBkZXJpdmVkIGZyb20gdGhlIGNvbnRyb2xsZXIncyBgZHJvcGRvd24kYC4gQWRkcyB0aHJlZSBib29sZWFuc1xuICAgKiAoYHNob3dzUGlsbHNgLCBgc2hvd3NPcHRpb25zYCwgYHNob3dzRmFsbGJhY2tTa2VsZXRvbmAsIGBpc1Zpc2libGVgKSB0aGF0XG4gICAqIGtlZXAgdGVtcGxhdGUtbGV2ZWwgbG9naWMgdG8gYSBwcm9wZXJ0eSByZWFkIHBlciDCpzE5LjYuXG4gICAqXG4gICAqIEluaXRpYWxpemVkIG9uY2UgaW4gYG5nT25Jbml0YCDigJQgbXVzdCBOT1QgYmUgYSBnZXR0ZXIuIEEgZ2V0dGVyIHJldHVybnMgYVxuICAgKiBmcmVzaCBgT2JzZXJ2YWJsZWAgaW5zdGFuY2Ugb24gZXZlcnkgcHJvcGVydHkgcmVhZDsgd2l0aCBPblB1c2ggKyBgYXN5bmNgXG4gICAqIHBpcGUgdGhhdCBtZWFucyBlYWNoIGNoYW5nZS1kZXRlY3Rpb24gY3ljbGUgdW5zdWJzY3JpYmVzL3Jlc3Vic2NyaWJlcyxcbiAgICogY2F1c2luZyB0aGUgYCpuZ0lmPVwidm0kIHwgYXN5bmMgYXMgdm1cImAgcm9vdCB0byBicmllZmx5IHJlc29sdmUgYG51bGxgXG4gICAqIGFuZCBmbGlja2VyIHRoZSBlbnRpcmUgZHJvcGRvd24gRE9NLlxuICAgKi9cbiAgdm0kITogT2JzZXJ2YWJsZTxEcm9wZG93blZtPjtcblxuICAvLyBCcmlkZ2UgZm9yIHRoZSBASW5wdXQgYHNob3dQaWxsc2AgaW50byB0aGUgcmVhY3RpdmUgcGlwZWxpbmUuIFdpdGhvdXQgdGhpcyxcbiAgLy8gY2hhbmdpbmcgdGhlIGlucHV0IGFmdGVyIGluaXQgd291bGRuJ3QgdHJpZ2dlciBhIG5ldyB2bSBlbWlzc2lvbiB1bnRpbCB0aGVcbiAgLy8gbmV4dCBjb250cm9sbGVyLmRyb3Bkb3duJCB0aWNrIOKAlCBhbmQgd2UnZCBsb3NlIHRoZSBzaG93UGlsbHMgdXBkYXRlIGVudGlyZWx5XG4gIC8vIGlmIHRoZSBjb250cm9sbGVyIGlzIGlkbGUuIFVwZGF0ZWQgZnJvbSBuZ09uQ2hhbmdlcyBiZWxvdy5cbiAgcHJpdmF0ZSByZWFkb25seSBzaG93UGlsbHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAvLyBMYXN0IGNvbnRlbnQgZW1pdHRlZCB3aGlsZSB0aGUgZHJvcGRvd24gd2FzIHZpc2libGUuIFJldXNlZCBkdXJpbmcgdGhlXG4gIC8vIGNsb3NlIGZhZGUgc28gdGhlIHBvcHVsYXRlZCBkcm9wZG93biBmYWRlcyBvdXQgYXMgb25lIOKAlCBzZWUgaW5pdFZtLlxuICBwcml2YXRlIGxhc3RWaXNpYmxlQ29udGVudDogRHJvcGRvd25Db250ZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gU2VlZCBzaG93UGlsbHMkIGZyb20gdGhlIGlucHV0J3MgcmVzb2x2ZWQgdmFsdWUgYXQgaW5pdCB0aW1lLlxuICAgIHRoaXMuc2hvd1BpbGxzJC5uZXh0KHRoaXMuc2hvd1BpbGxzKTtcbiAgICB0aGlzLmFwcGx5TW9kZSgpO1xuICAgIHRoaXMuaW5pdFZtKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbXCJzaG93UGlsbHNcIl0pIHtcbiAgICAgIHRoaXMuc2hvd1BpbGxzJC5uZXh0KHRoaXMuc2hvd1BpbGxzKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJtb2RlXCJdICYmICFjaGFuZ2VzW1wibW9kZVwiXS5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5hcHBseU1vZGUoKTtcbiAgICB9XG4gICAgLy8gUmUtYmluZCB2bSQgd2hlbiB0aGUgY29udHJvbGxlciBASW5wdXQgaXMgc3dhcHBlZCAoZS5nLiBhIG11bHRpLXN0ZXAgZm9ybVxuICAgIC8vIHRvZ2dsaW5nIGJldHdlZW4gY29udHJvbGxlcnMpLiBXaXRob3V0IHRoaXMsIHZtJCBzdGF5cyBzdWJzY3JpYmVkIHRvIHRoZVxuICAgIC8vIHByZXZpb3VzIGNvbnRyb2xsZXIncyBkcm9wZG93biQg4oCUIHJlbmRlcmluZyBzdGFsZSBvcHRpb25zLCBvciwgaWYgdGhhdFxuICAgIC8vIGNvbnRyb2xsZXIgd2FzIGRlc3Ryb3koKS1lZCwgcmVjZWl2aW5nIGEgY29tcGxldGlvbiB0aGF0IGNvbGxhcHNlcyB0aGVcbiAgICAvLyBkcm9wZG93biBwZXJtYW5lbnRseS4gU2tpcCB0aGUgZmlyc3QgY2hhbmdlOiBuZ09uQ2hhbmdlcyBmaXJlcyBiZWZvcmVcbiAgICAvLyBuZ09uSW5pdCwgd2hpY2ggb3ducyB0aGUgaW5pdGlhbCBjcmVhdGlvbi5cbiAgICBpZiAoY2hhbmdlc1tcImNvbnRyb2xsZXJcIl0gJiYgIWNoYW5nZXNbXCJjb250cm9sbGVyXCJdLmZpcnN0Q2hhbmdlICYmIHRoaXMuY29udHJvbGxlcikge1xuICAgICAgdGhpcy5pbml0Vm0oKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRlYXJkb3duTW9kZUxpc3RlbmVyKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgYG1vZGVgIGlucHV0IGludG8gYHJlc29sdmVkTW9kZWAuIFVuc2V0IOKGkiBudWxsICh0aGUgZHJvcGRvd25cbiAgICogc3RheXMgY2xhc3MtbGVzcyBhbmQgaW5oZXJpdHMgZnJvbSBhIGAubWFnaWN4LWFpYWAgYW5jZXN0b3IpLiBgXCJhdXRvXCJgIHJlYWRzXG4gICAqIGBwcmVmZXJzLWNvbG9yLXNjaGVtZWAgYW5kIHRyYWNrcyBpdCBsaXZlIHZpYSBhIG1lZGlhLXF1ZXJ5IGxpc3RlbmVyLlxuICAgKi9cbiAgcHJpdmF0ZSBhcHBseU1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy50ZWFyZG93bk1vZGVMaXN0ZW5lcigpO1xuICAgIGlmICh0aGlzLm1vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZXNvbHZlZE1vZGUgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5tb2RlID09PSBcImxpZ2h0XCIgfHwgdGhpcy5tb2RlID09PSBcImRhcmtcIikge1xuICAgICAgdGhpcy5yZXNvbHZlZE1vZGUgPSB0aGlzLm1vZGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFwiYXV0b1wiXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIgfHwgdHlwZW9mIHdpbmRvdy5tYXRjaE1lZGlhICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRoaXMucmVzb2x2ZWRNb2RlID0gXCJsaWdodFwiO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1vZGVNcWwgPSB3aW5kb3cubWF0Y2hNZWRpYShcIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylcIik7XG4gICAgdGhpcy5yZXNvbHZlZE1vZGUgPSB0aGlzLm1vZGVNcWwubWF0Y2hlcyA/IFwiZGFya1wiIDogXCJsaWdodFwiO1xuICAgIHRoaXMubW9kZUxpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgdGhpcy5yZXNvbHZlZE1vZGUgPSB0aGlzLm1vZGVNcWw/Lm1hdGNoZXMgPyBcImRhcmtcIiA6IFwibGlnaHRcIjtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH07XG4gICAgdGhpcy5tb2RlTXFsLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwgdGhpcy5tb2RlTGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSB0ZWFyZG93bk1vZGVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tb2RlTXFsICYmIHRoaXMubW9kZUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLm1vZGVNcWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLCB0aGlzLm1vZGVMaXN0ZW5lcik7XG4gICAgfVxuICAgIHRoaXMubW9kZU1xbCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLm1vZGVMaXN0ZW5lciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBCdWlsZCB0aGUgdmlldy1tb2RlbCBzdHJlYW0gZnJvbSB0aGUgY3VycmVudCBjb250cm9sbGVyICsgc2hvd1BpbGxzJC4gKi9cbiAgcHJpdmF0ZSBpbml0Vm0oKTogdm9pZCB7XG4gICAgdGhpcy52bSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNvbnRyb2xsZXIuZHJvcGRvd24kLCB0aGlzLnNob3dQaWxscyRdKS5waXBlKFxuICAgICAgbWFwKChbZGQsIHNob3dQaWxsc10pID0+IHtcbiAgICAgICAgY29uc3QgYWN0aXZlU3VnZ2VzdGlvbiA9IGRkLnN1Z2dlc3Rpb25zWzBdO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gYWN0aXZlU3VnZ2VzdGlvbj8ub3B0aW9ucyA/PyBbXTtcbiAgICAgICAgY29uc3Qgc2hvd3NQaWxscyA9IHNob3dQaWxscyAmJiAoZGQucGlsbHMubGVuZ3RoID4gMCB8fCBkZC5pc0xvYWRpbmcpO1xuICAgICAgICBjb25zdCBzaG93c09wdGlvbnMgPSBvcHRpb25zLmxlbmd0aCA+IDA7XG4gICAgICAgIGNvbnN0IHNob3dzRmFsbGJhY2tTa2VsZXRvbiA9IGRkLmlzTG9hZGluZyAmJiAhc2hvd3NPcHRpb25zO1xuICAgICAgICAvLyBFaXRoZXIgaGFsZiBpcyBlbm91Z2ggdG8ga2VlcCB0aGUgcGFuZWwgdXA6IHByb2R1Y3RzIHJlbmRlciB3aXRoIG5vXG4gICAgICAgIC8vIHN1Z2dlc3Rpb25zLCBzdWdnZXN0aW9ucyByZW5kZXIgd2l0aCBubyBwcm9kdWN0cy5cbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID1cbiAgICAgICAgICBkZC5pc09wZW4gJiYgKHNob3dzT3B0aW9ucyB8fCBzaG93c1BpbGxzIHx8IGRkLmlzTG9hZGluZyB8fCBkZC5wcm9kdWN0cy5sZW5ndGggPiAwKTtcblxuICAgICAgICAvLyBXaGlsZSBjbG9zaW5nLCByZXVzZSB0aGUgbGFzdCB2aXNpYmxlIGNvbnRlbnQgc28gdGhlIHBvcHVsYXRlZFxuICAgICAgICAvLyBkcm9wZG93biBmYWRlcyBvdXQgYXMgb25lLiBPdGhlcndpc2UgdGhlIHBpbGxzL29wdGlvbnMgdmFuaXNoIHRoZVxuICAgICAgICAvLyBpbnN0YW50IHRoZSBzdGF0ZSBlbXB0aWVzIChlLmcuIHNraXBwaW5nIHRoZSBsYXN0IHBpbGwgd2l0aCDihpIpLFxuICAgICAgICAvLyBsZWF2aW5nIHRoZSBhbHdheXMtcHJlc2VudCBmb290ZXIgYWxvbmUgZm9yIGEgZmxhc2ggb2YgYSBmb290ZXItb25seVxuICAgICAgICAvLyBcIm5vIG9wdGlvbnNcIiBib3ggbWlkLWZhZGUuIE9ubHkgYGlzVmlzaWJsZWAgdHJhY2tzIGxpdmUgc3RhdGUgdG9cbiAgICAgICAgLy8gZHJpdmUgdGhlIG9wYWNpdHkgdHJhbnNpdGlvbi5cbiAgICAgICAgaWYgKCFpc1Zpc2libGUgJiYgdGhpcy5sYXN0VmlzaWJsZUNvbnRlbnQpIHtcbiAgICAgICAgICByZXR1cm4geyAuLi50aGlzLmxhc3RWaXNpYmxlQ29udGVudCwgaXNWaXNpYmxlOiBmYWxzZSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3B0aW9uSGlnaGxpZ2h0ZWQgPVxuICAgICAgICAgIGRkLmFjdGl2ZUluZGV4ID49IDAgJiYgQm9vbGVhbihvcHRpb25zW2RkLmFjdGl2ZUluZGV4XT8uaXNfdGFwcGFibGUpO1xuICAgICAgICBjb25zdCB7IGtleTogZm9vdGVyS2V5LCBoaW50OiBmb290ZXJIaW50IH0gPSBnZXRGb290ZXJIaW50KFxuICAgICAgICAgIG9wdGlvbkhpZ2hsaWdodGVkLFxuICAgICAgICAgIGRkLmlzSW5wdXRFbXB0eSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgY29udGVudDogRHJvcGRvd25Db250ZW50ID0ge1xuICAgICAgICAgIHBpbGxzOiBkZC5waWxscyxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIGFjdGl2ZUluZGV4OiBkZC5hY3RpdmVJbmRleCxcbiAgICAgICAgICBpc0FjdGl2ZVBpbGxTZWxlY3RlZDogZGQuaXNBY3RpdmVQaWxsU2VsZWN0ZWQsXG4gICAgICAgICAgaXNMb2FkaW5nOiBkZC5pc0xvYWRpbmcsXG4gICAgICAgICAgc2hvd3NQaWxscyxcbiAgICAgICAgICBzaG93c09wdGlvbnMsXG4gICAgICAgICAgc2hvd3NGYWxsYmFja1NrZWxldG9uLFxuICAgICAgICAgIHByb2R1Y3RzOiBkZC5wcm9kdWN0cyxcbiAgICAgICAgICBncm91cEtleTogYWN0aXZlU3VnZ2VzdGlvbiA/IGAke2FjdGl2ZVN1Z2dlc3Rpb24udHlwZX0gJHthY3RpdmVTdWdnZXN0aW9uLnRleHR9YCA6IFwiXCIsXG4gICAgICAgICAgZm9vdGVyS2V5LFxuICAgICAgICAgIGZvb3RlckhpbnQsXG4gICAgICAgICAgb3B0aW9uc1Bvc2l0aW9uOiBkZC5vcHRpb25zUG9zaXRpb24sXG4gICAgICAgIH07XG4gICAgICAgIGlmIChpc1Zpc2libGUpIHRoaXMubGFzdFZpc2libGVDb250ZW50ID0gY29udGVudDtcbiAgICAgICAgcmV0dXJuIHsgLi4uY29udGVudCwgaXNWaXNpYmxlIH07XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgdHJhY2tCeVdpZHRoID0gKF86IG51bWJlciwgdzogbnVtYmVyKTogbnVtYmVyID0+IHc7XG5cbiAgb25QaWxsQ2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZXRBY3RpdmVQaWxsKGluZGV4KTtcbiAgfVxuXG4gIG9uU2VsZWN0KG9wdGlvbjogU3VnZ2VzdGlvbk9wdGlvbik6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZWxlY3RPcHRpb24ob3B0aW9uKTtcbiAgfVxuXG4gIG9uSGlnaGxpZ2h0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIuc2V0QWN0aXZlRHJvcGRvd25JbmRleChpbmRleCk7XG4gIH1cblxuICBvblByb2R1Y3RTZWxlY3QocHJvZHVjdDogUHJvZHVjdCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZWxlY3RQcm9kdWN0KHByb2R1Y3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgY2FyZCB0YWtpbmcgZm9jdXMgYmx1cnMgdGhlIGVkaXRvciwgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGNsb3NlIHRoZVxuICAgKiBwYW5lbCBvdXQgZnJvbSB1bmRlciB0aGUgY2FyZCB0aGUgdXNlciBqdXN0IHRhYmJlZCB0by5cbiAgICovXG4gIG9uUHJvZHVjdEZvY3VzQ2hhbmdlKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIuc2V0Rm9jdXNlZChmb2N1c2VkKTtcbiAgfVxuXG4gIHByZXZlbnRCbHVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIC8vIFByZXZlbnQgdGhlIGVkaXRvciBmcm9tIGxvc2luZyBmb2N1cyB3aGVuIGludGVyYWN0aW5nIHdpdGggdGhlIGRyb3Bkb3duLlxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJ2bSQgfCBhc3luYyBhcyB2bVwiXG4gIFtpZF09XCJjb250cm9sbGVyLmxpc3Rib3hJZFwiXG4gIHJvbGU9XCJsaXN0Ym94XCJcbiAgZGF0YS1haWEtZHJvcGRvd249XCJcIlxuICBbYXR0ci5kYXRhLWFpYS1sb2FkaW5nXT1cInZtLmlzTG9hZGluZyA/ICcnIDogbnVsbFwiXG4gIFthdHRyLmRhdGEtbW9kZV09XCJyZXNvbHZlZE1vZGVcIlxuICBbYXR0ci5kYXRhLW9wdGlvbnMtcG9zaXRpb25dPVwidm0ub3B0aW9uc1Bvc2l0aW9uXCJcbiAgW2F0dHIuZGF0YS1haWEtaGFzLXByb2R1Y3RzXT1cInZtLnByb2R1Y3RzLmxlbmd0aCA+IDAgPyAnJyA6IG51bGxcIlxuICBbY2xhc3NdPVwicm9vdENsYXNzXCJcbiAgW2NsYXNzLm1hZ2ljeC1haWEtZHJvcGRvd24tdmlzaWJsZV09XCJ2bS5pc1Zpc2libGVcIlxuICAobW91c2Vkb3duKT1cInByZXZlbnRCbHVyKCRldmVudClcIlxuPlxuICA8YWlhLXN0YWNrIHNwYWNlPVwiOHB4XCI+XG4gICAgPGFpYS1jbHVzdGVyXG4gICAgICAqbmdJZj1cInZtLnNob3dzUGlsbHNcIlxuICAgICAgY2xhc3M9XCJtYWdpY3gtYWlhLWRyb3Bkb3duLXBpbGxiYXJcIlxuICAgICAgZGF0YS1haWEtcGlsbGJhcj1cIlwiXG4gICAgICBbbm9XcmFwXT1cInRydWVcIlxuICAgID5cbiAgICAgIDxhaWEtcGlsbC1saXN0XG4gICAgICAgIFtwaWxsc109XCJ2bS5waWxsc1wiXG4gICAgICAgIFthY3RpdmVQaWxsSW5kZXhdPVwiMFwiXG4gICAgICAgIFthY3RpdmVTZWxlY3RlZF09XCJ2bS5pc0FjdGl2ZVBpbGxTZWxlY3RlZFwiXG4gICAgICAgIFtyb3VuZGVkXT1cInRydWVcIlxuICAgICAgICBbbG9hZGluZ109XCJ2bS5pc0xvYWRpbmdcIlxuICAgICAgICAoc2VsZWN0UGlsbCk9XCJvblBpbGxDbGljaygkZXZlbnQpXCJcbiAgICAgID48L2FpYS1waWxsLWxpc3Q+XG4gICAgPC9haWEtY2x1c3Rlcj5cblxuICAgIDxhaWEtc3VnZ2VzdGlvbi1ncmlkXG4gICAgICAqbmdJZj1cInZtLnNob3dzT3B0aW9uc1wiXG4gICAgICBbb3B0aW9uc109XCJ2bS5vcHRpb25zXCJcbiAgICAgIFthY3RpdmVJbmRleF09XCJ2bS5hY3RpdmVJbmRleFwiXG4gICAgICBbbGlzdGJveElkXT1cImNvbnRyb2xsZXIubGlzdGJveElkXCJcbiAgICAgIFtsb2FkaW5nXT1cInZtLmlzTG9hZGluZ1wiXG4gICAgICBbZ3JvdXBLZXldPVwidm0uZ3JvdXBLZXlcIlxuICAgICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgIChoaWdobGlnaHQpPVwib25IaWdobGlnaHQoJGV2ZW50KVwiXG4gICAgPjwvYWlhLXN1Z2dlc3Rpb24tZ3JpZD5cblxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwidm0uc2hvd3NGYWxsYmFja1NrZWxldG9uXCJcbiAgICAgIGNsYXNzPVwibWFnaWN4LWFpYS1kcm9wZG93bi1za2VsZXRvbi1iYXJzXCJcbiAgICAgIGRhdGEtYWlhLXNrZWxldG9uLWJhcnM9XCJcIlxuICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0Zvcj1cImxldCB3IG9mIGZhbGxiYWNrU2tlbGV0b25CYXJXaWR0aHM7IHRyYWNrQnk6IHRyYWNrQnlXaWR0aFwiXG4gICAgICAgIGNsYXNzPVwibWFnaWN4LWFpYS1kcm9wZG93bi1za2VsZXRvbi1iYXJcIlxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwid1wiXG4gICAgICA+PC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSAqbmdJZiwgbm90IGp1c3QgdGhlIHNlY3Rpb24ncyBvd24gZ3VhcmQgaW5zaWRlIHRoZSBjb21wb25lbnQ6IHRoZSBob3N0XG4gICAgICAgICBlbGVtZW50IGlzIGFuIGluLWZsb3cgY2hpbGQgb2YgLmFpYS1zdGFjayAoZGlzcGxheTpmbGV4OyBnYXA6OHB4KSwgc29cbiAgICAgICAgIGFuIGFsd2F5cy1pbnN0YW50aWF0ZWQgemVyby1oZWlnaHQgaG9zdCB3b3VsZCBhZGQgYSBTRUNPTkQgOHB4IGdhcFxuICAgICAgICAgYmV0d2VlbiB0aGUgZ3JpZCBhbmQgdGhlIGZvb3RlciDigJQgaW4gZXZlcnkgZHJvcGRvd24sIHByb2R1Y3RzIG9yIG5vdC5cbiAgICAgICAgIFRoZSBncmlkJ3MgLS1haWEtZ3JpZC1vdmVybGFwLWJvdHRvbSBpcyB0dW5lZCBmb3IgZXhhY3RseSBvbmUgZ2FwLCBzb1xuICAgICAgICAgdGhlIGZvb3RlciB3b3VsZCBsYW5kIDhweCBiZWxvdyB0aGUgYmFuZCBpdCBpcyBtZWFudCB0byBjb3Zlci4gLS0+XG4gICAgPGFpYS1wcm9kdWN0LXN0cmlwXG4gICAgICAqbmdJZj1cInZtLnByb2R1Y3RzLmxlbmd0aCA+IDBcIlxuICAgICAgW3Byb2R1Y3RzXT1cInZtLnByb2R1Y3RzXCJcbiAgICAgIFtsaXN0Ym94SWRdPVwiY29udHJvbGxlci5saXN0Ym94SWRcIlxuICAgICAgW2ZvY3VzYWJsZV09XCJ2bS5pc1Zpc2libGVcIlxuICAgICAgKHNlbGVjdCk9XCJvblByb2R1Y3RTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAoZm9jdXNDaGFuZ2UpPVwib25Qcm9kdWN0Rm9jdXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvYWlhLXByb2R1Y3Qtc3RyaXA+XG5cbiAgICA8Zm9vdGVyIGNsYXNzPVwibWFnaWN4LWFpYS1mb290ZXJcIiBkYXRhLWFpYS1mb290ZXI9XCJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYWdpY3gtYWlhLWZvb3Rlci1yb3dcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWdpY3gtYWlhLWZvb3Rlci1oaW50LWdyb3VwXCI+XG4gICAgICAgICAgPGtiZCBjbGFzcz1cIm1hZ2ljeC1haWEtZm9vdGVyLWtleVwiPnt7IHZtLmZvb3RlcktleSB9fTwva2JkPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFnaWN4LWFpYS1mb290ZXItaGludFwiPnt7IHZtLmZvb3RlckhpbnQgfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGFcbiAgICAgICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtZm9vdGVyLWJyYW5kLWxpbmtcIlxuICAgICAgICAgIFtocmVmXT1cImJyYW5kSHJlZlwiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFnaWN4LWFpYS1mb290ZXItYnJhbmRcIj5BSTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hZ2ljeC1haWEtZm9vdGVyLWJhZGdlXCI+QXV0b2NvbXBsZXRlPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvb3Rlcj5cbiAgPC9haWEtc3RhY2s+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -150,7 +150,14 @@ export class AIAutocompleteEditorHostDirective {
|
|
|
150
150
|
return;
|
|
151
151
|
const anchor = sel.anchorNode;
|
|
152
152
|
const startEl = anchor.nodeType === Node.ELEMENT_NODE ? anchor : anchor.parentElement;
|
|
153
|
-
|
|
153
|
+
// Only a COLLAPSED selection means "the caret landed in a chip". A
|
|
154
|
+
// range selection (Cmd+A, shift-arrow, drag) anchors at its start,
|
|
155
|
+
// which lands inside the first `<strong>` whenever the input begins
|
|
156
|
+
// with a chip — starting re-edit there parks the caret on that chip
|
|
157
|
+
// and destroys the user's selection.
|
|
158
|
+
const strong = sel.isCollapsed
|
|
159
|
+
? startEl?.closest('strong[data-seg="completed"][data-param-id]')
|
|
160
|
+
: null;
|
|
154
161
|
// `DOMStringMap` is an index signature; bracket notation is required
|
|
155
162
|
// by `noPropertyAccessFromIndexSignature`.
|
|
156
163
|
const enclosing = strong?.dataset["paramId"] ?? null;
|
|
@@ -252,4 +259,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
252
259
|
}], autoFocus: [{
|
|
253
260
|
type: Input
|
|
254
261
|
}] } });
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWhvc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9pbnRlcm5hbC9lZGl0b3ItaG9zdC9lZGl0b3ItaG9zdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBR04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsZUFBZSxHQUNoQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUcxQzs7O0dBR0c7QUFDSCxJQUFJLGtCQUF1QyxDQUFDO0FBQzVDLFNBQVMscUJBQXFCO0lBQzVCLElBQUksa0JBQWtCLEtBQUssU0FBUztRQUFFLE9BQU8sa0JBQWtCLENBQUM7SUFDaEUsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDbEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxLQUFLLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDeEQsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLGVBQWUsS0FBSyxnQkFBZ0IsQ0FBQztJQUNoRSxPQUFPLGtCQUFrQixDQUFDO0FBQzVCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQW9CSCxNQUFNLE9BQU8saUNBQWlDO0lBbkI5QztRQXFCVyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRVQsT0FBRSxHQUFHLE1BQU0sQ0FBNkIsVUFBVSxDQUFDLENBQUM7UUFDcEQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENB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QyxJQUFJLFNBQVMsSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsYUFBYSxJQUFJLElBQUksRUFBRTtnQkFDaEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7Z0JBQy9CLGVBQWUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQzFDO2lCQUFNLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsrSEE5TVUsaUNBQWlDO21IQUFqQyxpQ0FBaUM7NEZBQWpDLGlDQUFpQztrQkFuQjdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsbUJBQW1CLEVBQUUsTUFBTTt3QkFDM0IsZUFBZSxFQUFFLFNBQVM7d0JBQzFCLFVBQVUsRUFBRSxNQUFNO3dCQUNsQixZQUFZLEVBQUUsTUFBTTt3QkFDcEIsUUFBUSxFQUFFLEdBQUc7d0JBQ2IsU0FBUyxFQUFFLFdBQVc7d0JBQ3RCLFdBQVcsRUFBRSxtQkFBbUI7d0JBQ2hDLG9CQUFvQixFQUFFLHNCQUFzQjt3QkFDNUMsa0JBQWtCLEVBQUUsb0JBQW9CO3dCQUN4QyxTQUFTLEVBQUUsaUJBQWlCO3dCQUM1QixTQUFTLEVBQUUsV0FBVzt3QkFDdEIsUUFBUSxFQUFFLFVBQVU7cUJBQ3JCO2lCQUNGOzhCQUV5QixVQUFVO3NCQUFqQyxLQUFLO3VCQUFDLGVBQWU7Z0JBQ2IsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIGluamVjdCxcbiAgTmdab25lLFxuICB0eXBlIE9uRGVzdHJveSxcbiAgdHlwZSBPbkluaXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIGV4dHJhY3RQbGFpblRleHQsXG4gIGdldEN1cnNvck9mZnNldCxcbiAgcGxhaW5UZXh0TGVuZ3RoLFxuICByZW5kZXJFZGl0YWJsZUNvbnRlbnQsXG4gIHNldEN1cnNvck9mZnNldCxcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHR5cGUgeyBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXIgfSBmcm9tIFwiLi4vLi4vY29udHJvbGxlci9haS1hdXRvY29tcGxldGUuY29udHJvbGxlclwiO1xuXG4vKipcbiAqIE1vZHVsZS1sZXZlbCBjYWNoZSBmb3IgdGhlIG9uZS10aW1lIHBsYWludGV4dC1vbmx5IGZlYXR1cmUgZGV0ZWN0aW9uLlxuICogTWlycm9ycyBgc3VwcG9ydHNQbGFpbnRleHRPbmx5YCBpbiB1c2VDb250ZW50RWRpdGFibGVFZGl0b3IudHMuXG4gKi9cbmxldCBwbGFpbnRleHRPbmx5Q2FjaGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5mdW5jdGlvbiBzdXBwb3J0c1BsYWludGV4dE9ubHkoKTogYm9vbGVhbiB7XG4gIGlmIChwbGFpbnRleHRPbmx5Q2FjaGUgIT09IHVuZGVmaW5lZCkgcmV0dXJuIHBsYWludGV4dE9ubHlDYWNoZTtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIGZhbHNlO1xuICBjb25zdCBwcm9iZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gIHByb2JlLnNldEF0dHJpYnV0ZShcImNvbnRlbnRlZGl0YWJsZVwiLCBcInBsYWludGV4dC1vbmx5XCIpO1xuICBwbGFpbnRleHRPbmx5Q2FjaGUgPSBwcm9iZS5jb250ZW50RWRpdGFibGUgPT09IFwicGxhaW50ZXh0LW9ubHlcIjtcbiAgcmV0dXJuIHBsYWludGV4dE9ubHlDYWNoZTtcbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBkaXJlY3RpdmUgdGhhdCBvd25zIGV2ZXJ5IGNvbmNlcm4gc3BlY2lmaWMgdG8gcnVubmluZyB0aGVcbiAqIGF1dG9jb21wbGV0ZSBvbiB0b3Agb2YgYSBjb250ZW50RWRpdGFibGUgaG9zdDogY29tcG9zaXRpb24gc3RhdGUsIGNhcmV0XG4gKiB0cmFja2luZywgc2VsZWN0aW9uY2hhbmdlIGhhbmRsaW5nLCBgYmVmb3JlaW5wdXRgIGludGVyY2VwdGlvbiwgcGFzdGVcbiAqIHNhbml0aXphdGlvbiwgcGxhaW50ZXh0LW9ubHkgZmVhdHVyZSBkZXRlY3Rpb24sIHNlZ21lbnQgcmVuZGVyaW5nLFxuICogcG9zdC1wcm9tb3RlIHJlZm9jdXMsIGFuZCByZS1lZGl0IGNhcmV0IHBhcmsuXG4gKlxuICogTWlycm9ycyBgcGFja2FnZXMvcmVhY3Qvc3JjL2hvb2tzL3VzZUNvbnRlbnRFZGl0YWJsZUVkaXRvci50c2Agb25lLWZvci1vbmUuXG4gKiBVc2VkIG9ubHkgYnkgdGhlIFRpZXIgMSBgPGFpLWF1dG9jb21wbGV0ZT5gIGNvbXBvbmVudCDigJQgbmV2ZXIgZXhwb3J0ZWQuXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbYWlhRWRpdG9ySG9zdF1cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgIHJvbGU6IFwiY29tYm9ib3hcIixcbiAgICBcImFyaWEtYXV0b2NvbXBsZXRlXCI6IFwibGlzdFwiLFxuICAgIFwiYXJpYS1oYXNwb3B1cFwiOiBcImxpc3Rib3hcIixcbiAgICBzcGVsbGNoZWNrOiBcInRydWVcIixcbiAgICBlbnRlcmtleWhpbnQ6IFwic2VuZFwiLFxuICAgIHRhYmluZGV4OiBcIjBcIixcbiAgICBcIihpbnB1dClcIjogXCJvbklucHV0KClcIixcbiAgICBcIihrZXlkb3duKVwiOiBcIm9uS2V5RG93bigkZXZlbnQpXCIsXG4gICAgXCIoY29tcG9zaXRpb25zdGFydClcIjogXCJvbkNvbXBvc2l0aW9uU3RhcnQoKVwiLFxuICAgIFwiKGNvbXBvc2l0aW9uZW5kKVwiOiBcIm9uQ29tcG9zaXRpb25FbmQoKVwiLFxuICAgIFwiKHBhc3RlKVwiOiBcIm9uUGFzdGUoJGV2ZW50KVwiLFxuICAgIFwiKGZvY3VzKVwiOiBcIm9uRm9jdXMoKVwiLFxuICAgIFwiKGJsdXIpXCI6IFwib25CbHVyKClcIixcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQUlBdXRvY29tcGxldGVFZGl0b3JIb3N0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoXCJhaWFFZGl0b3JIb3N0XCIpIGNvbnRyb2xsZXIhOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXI7XG4gIEBJbnB1dCgpIGF1dG9Gb2N1cyA9IHRydWU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgY29tcG9zaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgbGFzdElucHV0QXQgPSAwO1xuICBwcml2YXRlIGxhc3RTZWVuUGFyYW1JZCA9IFwiXCI7XG4gIHByaXZhdGUgbGFzdEVkaXRpbmdJZCA9IFwiXCI7XG4gIHByaXZhdGUgZWRpdGluZ1BhcmFtSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgZG9jdW1lbnRTZWxlY3Rpb25MaXN0ZW5lcj86ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgYmVmb3JlSW5wdXRMaXN0ZW5lcj86IChldmVudDogRXZlbnQpID0+IHZvaWQ7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2xsZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlthaWFFZGl0b3JIb3N0XSByZXF1aXJlcyBhIGNvbnRyb2xsZXJcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgY2VNb2RlID0gc3VwcG9ydHNQbGFpbnRleHRPbmx5KCkgPyBcInBsYWludGV4dC1vbmx5XCIgOiBcInRydWVcIjtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbCwgXCJjb250ZW50ZWRpdGFibGVcIiwgY2VNb2RlKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbCwgXCJhcmlhLWNvbnRyb2xzXCIsIHRoaXMuY29udHJvbGxlci5saXN0Ym94SWQpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsLCBcInN1cHByZXNzLWNvbnRlbnQtZWRpdGFibGUtd2FybmluZ1wiLCBcInRydWVcIik7XG5cbiAgICAvLyBBdXRvLWZvY3VzIG9uIG1vdW50LiBJZiB0aGUgZWRpdG9yIGFscmVhZHkgaGFzIGZvY3VzIChlLmcuIGZyb20gYVxuICAgIC8vIGNsaWNrIHRoYXQgZmlyZWQgYmVmb3JlIG91ciBsaWZlY3ljbGUgcmFuKSwgbm90aWZ5IHRoZSBjb250cm9sbGVyXG4gICAgLy8gaW5zdGVhZCBvZiBzdGVhbGluZyBmb2N1cy5cbiAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xuICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZWwpIHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIuc2V0Rm9jdXNlZCh0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmJpbmREb2N1bWVudFNlbGVjdGlvbkxpc3RlbmVyKCk7XG4gICAgdGhpcy5iaW5kQmVmb3JlSW5wdXRMaXN0ZW5lcigpO1xuICAgIHRoaXMuYmluZFN0YXRlU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgaWYgKHRoaXMuZG9jdW1lbnRTZWxlY3Rpb25MaXN0ZW5lciAmJiB0eXBlb2YgZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzZWxlY3Rpb25jaGFuZ2VcIiwgdGhpcy5kb2N1bWVudFNlbGVjdGlvbkxpc3RlbmVyKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmVmb3JlSW5wdXRMaXN0ZW5lcikge1xuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJiZWZvcmVpbnB1dFwiLCB0aGlzLmJlZm9yZUlucHV0TGlzdGVuZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PSBIb3N0IGV2ZW50IGhhbmRsZXJzID09PVxuXG4gIG9uQ29tcG9zaXRpb25TdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvc2luZyA9IHRydWU7XG4gIH1cblxuICBvbkNvbXBvc2l0aW9uRW5kKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9zaW5nID0gZmFsc2U7XG4gICAgdGhpcy5maXJlSW5wdXQoKTtcbiAgfVxuXG4gIG9uSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5sYXN0SW5wdXRBdCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgIHRoaXMuZmlyZUlucHV0KCk7XG4gICAgdGhpcy5jb250cm9sbGVyLmhhbmRsZUNhcmV0QWZ0ZXJJbnB1dChnZXRDdXJzb3JPZmZzZXQodGhpcy5lbC5uYXRpdmVFbGVtZW50KSk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIuaGFuZGxlS2V5RG93bihldmVudCk7XG4gIH1cblxuICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgdGV4dCA9IChldmVudC5jbGlwYm9hcmREYXRhPy5nZXREYXRhKFwidGV4dC9wbGFpblwiKSA/PyBcIlwiKS5yZXBsYWNlKC9cXHI/XFxuL2csIFwiIFwiKTtcbiAgICBpZiAoIXRleHQpIHJldHVybjtcbiAgICBjb25zdCBkb2MgPSBlbC5vd25lckRvY3VtZW50ID8/IGRvY3VtZW50O1xuICAgIGNvbnN0IHNlbCA9IGRvYy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoIXNlbCB8fCBzZWwucmFuZ2VDb3VudCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IHJhbmdlID0gc2VsLmdldFJhbmdlQXQoMCk7XG4gICAgaWYgKCFlbC5jb250YWlucyhyYW5nZS5zdGFydENvbnRhaW5lcikpIHJldHVybjtcbiAgICByYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgIGNvbnN0IG5vZGUgPSBkb2MuY3JlYXRlVGV4dE5vZGUodGV4dCk7XG4gICAgcmFuZ2UuaW5zZXJ0Tm9kZShub2RlKTtcbiAgICByYW5nZS5zZXRTdGFydEFmdGVyKG5vZGUpO1xuICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICBzZWwuYWRkUmFuZ2UocmFuZ2UpO1xuICAgIHRoaXMuZmlyZUlucHV0KCk7XG4gIH1cblxuICBvbkZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZXRGb2N1c2VkKHRydWUpO1xuICB9XG5cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZXRGb2N1c2VkKGZhbHNlKTtcbiAgfVxuXG4gIC8vID09PSBJbnRlcm5hbCBoZWxwZXJzID09PVxuXG4gIHByaXZhdGUgZmlyZUlucHV0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbXBvc2luZykgcmV0dXJuO1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHJhdyA9IGV4dHJhY3RQbGFpblRleHQoZWwpO1xuICAgIGNvbnN0IHNob3VsZENhcGl0YWxpemUgPSByYXcubGVuZ3RoID4gMCAmJiByYXdbMF0gIT09IHJhd1swXS50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IG5leHQgPSBzaG91bGRDYXBpdGFsaXplID8gcmF3WzBdLnRvVXBwZXJDYXNlKCkgKyByYXcuc2xpY2UoMSkgOiByYXc7XG4gICAgdGhpcy5jb250cm9sbGVyLmhhbmRsZVRleHRDaGFuZ2UobmV4dCk7XG4gIH1cblxuICBwcml2YXRlIGJpbmREb2N1bWVudFNlbGVjdGlvbkxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcbiAgICBjb25zdCBlbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAvLyBzZWxlY3Rpb25jaGFuZ2UgZmlyZXMgb24gZXZlcnkga2V5c3Ryb2tlIGFuZCBjYXJldCBtb3ZlIOKAlCBydW4gb3V0c2lkZVxuICAgIC8vIEFuZ3VsYXIncyB6b25lICjCpzE2LjEpIGFuZCByZS1lbnRlciBvbmx5IHdoZW4gd2UgYWN0dWFsbHkgbmVlZCB0b1xuICAgIC8vIG5vdGlmeSB0aGUgY29udHJvbGxlciBvZiBhIG1lYW5pbmdmdWwgY2hhbmdlLlxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBzZWwgPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKCFzZWwgfHwgc2VsLnJhbmdlQ291bnQgPT09IDApIHJldHVybjtcbiAgICAgICAgaWYgKCFzZWwuYW5jaG9yTm9kZSB8fCAhZWwuY29udGFpbnMoc2VsLmFuY2hvck5vZGUpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IHNlbC5hbmNob3JOb2RlO1xuICAgICAgICBjb25zdCBzdGFydEVsID1cbiAgICAgICAgICBhbmNob3Iubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFID8gKGFuY2hvciBhcyBFbGVtZW50KSA6IGFuY2hvci5wYXJlbnRFbGVtZW50O1xuICAgICAgICBjb25zdCBzdHJvbmcgPSBzdGFydEVsPy5jbG9zZXN0PEhUTUxFbGVtZW50Pignc3Ryb25nW2RhdGEtc2VnPVwiY29tcGxldGVkXCJdW2RhdGEtcGFyYW0taWRdJyk7XG4gICAgICAgIC8vIGBET01TdHJpbmdNYXBgIGlzIGFuIGluZGV4IHNpZ25hdHVyZTsgYnJhY2tldCBub3RhdGlvbiBpcyByZXF1aXJlZFxuICAgICAgICAvLyBieSBgbm9Qcm9wZXJ0eUFjY2Vzc0Zyb21JbmRleFNpZ25hdHVyZWAuXG4gICAgICAgIGNvbnN0IGVuY2xvc2luZyA9IHN0cm9uZz8uZGF0YXNldFtcInBhcmFtSWRcIl0gPz8gbnVsbDtcbiAgICAgICAgaWYgKGVuY2xvc2luZyAmJiBlbmNsb3NpbmcgIT09IHRoaXMuZWRpdGluZ1BhcmFtSWQpIHtcbiAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuY29udHJvbGxlci5zdGFydEVkaXRpbmdQYXJhbShlbmNsb3NpbmcpKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlcmZvcm1hbmNlLm5vdygpIC0gdGhpcy5sYXN0SW5wdXRBdCA8IDUwKSByZXR1cm47XG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5jb250cm9sbGVyLmhhbmRsZUNhcmV0TW92ZShnZXRDdXJzb3JPZmZzZXQoZWwpKSk7XG4gICAgICB9O1xuICAgICAgdGhpcy5kb2N1bWVudFNlbGVjdGlvbkxpc3RlbmVyID0gaGFuZGxlcjtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJzZWxlY3Rpb25jaGFuZ2VcIiwgaGFuZGxlcik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJpbmRCZWZvcmVJbnB1dExpc3RlbmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIC8vIE5hdGl2ZSBiZWZvcmVpbnB1dCDigJQgUmVhY3QncyBzeW50aGV0aWMgb25CZWZvcmVJbnB1dCBpcyB3aXJlZCB0byB0aGVcbiAgICAvLyBsZWdhY3kgdGV4dElucHV0IGV2ZW50IGFuZCBkb2Vzbid0IGZpcmUgcmVsaWFibHkgZm9yIGRlbGV0ZSogdHlwZXMuXG4gICAgY29uc3QgaGFuZGxlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGlucHV0RXZlbnQgPSBldmVudCBhcyBJbnB1dEV2ZW50O1xuICAgICAgY29uc3QgdCA9IGlucHV0RXZlbnQuaW5wdXRUeXBlO1xuICAgICAgaWYgKHQgPT09IFwiaW5zZXJ0UGFyYWdyYXBoXCIgfHwgdCA9PT0gXCJpbnNlcnRMaW5lQnJlYWtcIiB8fCB0ID09PSBcImluc2VydEZyb21Ecm9wXCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHQuc3RhcnRzV2l0aChcImluc2VydFwiKSB8fCB0LnN0YXJ0c1dpdGgoXCJkZWxldGVcIikpIHtcbiAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQgPSB0LnN0YXJ0c1dpdGgoXCJkZWxldGVcIikgPyBcIlwiIDogKGlucHV0RXZlbnQuZGF0YSA/PyBcIlwiKTtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbGxlci5yZXBsYWNlRWRpdGluZ1JhbmdlKHJlcGxhY2VtZW50KSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuYmVmb3JlSW5wdXRMaXN0ZW5lciA9IGhhbmRsZXI7XG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcImJlZm9yZWlucHV0XCIsIGhhbmRsZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kU3RhdGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5jb250cm9sbGVyLnN0YXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgdGhpcy5lZGl0aW5nUGFyYW1JZCA9IHN0YXRlLmVkaXRpbmdQYXJhbT8uaWQgPz8gbnVsbDtcblxuICAgICAgcmVuZGVyRWRpdGFibGVDb250ZW50KHtcbiAgICAgICAgaW5wdXQ6IGVsLFxuICAgICAgICBzZWdtZW50czogc3RhdGUuc2VnbWVudHMsXG4gICAgICAgIG5ld1BhcmFtSWQ6IHN0YXRlLm5ld1BhcmFtSWQsXG4gICAgICAgIGVkaXRpbmdQYXJhbUlkOiBzdGF0ZS5lZGl0aW5nUGFyYW0/LmlkID8/IG51bGwsXG4gICAgICAgIHBsYWNlaG9sZGVyVGV4dDogc3RhdGUucGxhY2Vob2xkZXJUZXh0LFxuICAgICAgICBpc0ZvY3VzZWQ6IHN0YXRlLmlzRm9jdXNlZCxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBQb3N0LXByb21vdGUgcmVmb2N1cyArIGNhcmV0LWFmdGVyLWJvbGQgcGxhY2VtZW50IChtaXJyb3JzIFJlYWN0J3NcbiAgICAgIC8vIHVzZUxheW91dEVmZmVjdCBvbiBuZXdQYXJhbUlkKS5cbiAgICAgIGNvbnN0IGN1cnJlbnRQYXJhbUlkID0gc3RhdGUubmV3UGFyYW1JZCA/PyBcIlwiO1xuICAgICAgaWYgKGN1cnJlbnRQYXJhbUlkICYmIGN1cnJlbnRQYXJhbUlkICE9PSB0aGlzLmxhc3RTZWVuUGFyYW1JZCkge1xuICAgICAgICB0aGlzLmxhc3RTZWVuUGFyYW1JZCA9IGN1cnJlbnRQYXJhbUlkO1xuICAgICAgICBlbC5mb2N1cygpO1xuICAgICAgICBjb25zdCBkZXNpcmVkID0gc3RhdGUuY2FyZXRPZmZzZXQgPz8gcGxhaW5UZXh0TGVuZ3RoKGVsKTtcbiAgICAgICAgc2V0Q3Vyc29yT2Zmc2V0KGVsLCBkZXNpcmVkKTtcbiAgICAgIH0gZWxzZSBpZiAoIWN1cnJlbnRQYXJhbUlkKSB7XG4gICAgICAgIHRoaXMubGFzdFNlZW5QYXJhbUlkID0gXCJcIjtcbiAgICAgIH1cblxuICAgICAgLy8gUmUtZWRpdCBjYXJldCBwYXJrIChtaXJyb3JzIFJlYWN0J3MgdXNlTGF5b3V0RWZmZWN0IG9uIGVkaXRpbmdQYXJhbSkuXG4gICAgICBjb25zdCBlZGl0aW5nSWQgPSBzdGF0ZS5lZGl0aW5nUGFyYW0/LmlkID8/IFwiXCI7XG4gICAgICBpZiAoZWRpdGluZ0lkICYmIGVkaXRpbmdJZCAhPT0gdGhpcy5sYXN0RWRpdGluZ0lkICYmIHN0YXRlLmVkaXRpbmdBbmNob3IgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxhc3RFZGl0aW5nSWQgPSBlZGl0aW5nSWQ7XG4gICAgICAgIHNldEN1cnNvck9mZnNldChlbCwgc3RhdGUuZWRpdGluZ0FuY2hvcik7XG4gICAgICB9IGVsc2UgaWYgKCFlZGl0aW5nSWQpIHtcbiAgICAgICAgdGhpcy5sYXN0RWRpdGluZ0lkID0gXCJcIjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWhvc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9pbnRlcm5hbC9lZGl0b3ItaG9zdC9lZGl0b3ItaG9zdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBR04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsZUFBZSxHQUNoQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUcxQzs7O0dBR0c7QUFDSCxJQUFJLGtCQUF1QyxDQUFDO0FBQzVDLFNBQVMscUJBQXFCO0lBQzVCLElBQUksa0JBQWtCLEtBQUssU0FBUztRQUFFLE9BQU8sa0JBQWtCLENBQUM7SUFDaEUsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDbEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxLQUFLLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDeEQsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLGVBQWUsS0FBSyxnQkFBZ0IsQ0FBQztJQUNoRSxPQUFPLGtCQUFrQixDQUFDO0FBQzVCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQW9CSCxNQUFNLE9BQU8saUNBQWlDO0lBbkI5QztRQXFCVyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRVQsT0FBRSxHQUFHLE1BQU0sQ0FBNkIsVUFBVSxDQUFDLENBQUM7UUFDcEQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENB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ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIGluamVjdCxcbiAgTmdab25lLFxuICB0eXBlIE9uRGVzdHJveSxcbiAgdHlwZSBPbkluaXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIGV4dHJhY3RQbGFpblRleHQsXG4gIGdldEN1cnNvck9mZnNldCxcbiAgcGxhaW5UZXh0TGVuZ3RoLFxuICByZW5kZXJFZGl0YWJsZUNvbnRlbnQsXG4gIHNldEN1cnNvck9mZnNldCxcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHR5cGUgeyBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXIgfSBmcm9tIFwiLi4vLi4vY29udHJvbGxlci9haS1hdXRvY29tcGxldGUuY29udHJvbGxlclwiO1xuXG4vKipcbiAqIE1vZHVsZS1sZXZlbCBjYWNoZSBmb3IgdGhlIG9uZS10aW1lIHBsYWludGV4dC1vbmx5IGZlYXR1cmUgZGV0ZWN0aW9uLlxuICogTWlycm9ycyBgc3VwcG9ydHNQbGFpbnRleHRPbmx5YCBpbiB1c2VDb250ZW50RWRpdGFibGVFZGl0b3IudHMuXG4gKi9cbmxldCBwbGFpbnRleHRPbmx5Q2FjaGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5mdW5jdGlvbiBzdXBwb3J0c1BsYWludGV4dE9ubHkoKTogYm9vbGVhbiB7XG4gIGlmIChwbGFpbnRleHRPbmx5Q2FjaGUgIT09IHVuZGVmaW5lZCkgcmV0dXJuIHBsYWludGV4dE9ubHlDYWNoZTtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIGZhbHNlO1xuICBjb25zdCBwcm9iZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gIHByb2JlLnNldEF0dHJpYnV0ZShcImNvbnRlbnRlZGl0YWJsZVwiLCBcInBsYWludGV4dC1vbmx5XCIpO1xuICBwbGFpbnRleHRPbmx5Q2FjaGUgPSBwcm9iZS5jb250ZW50RWRpdGFibGUgPT09IFwicGxhaW50ZXh0LW9ubHlcIjtcbiAgcmV0dXJuIHBsYWludGV4dE9ubHlDYWNoZTtcbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBkaXJlY3RpdmUgdGhhdCBvd25zIGV2ZXJ5IGNvbmNlcm4gc3BlY2lmaWMgdG8gcnVubmluZyB0aGVcbiAqIGF1dG9jb21wbGV0ZSBvbiB0b3Agb2YgYSBjb250ZW50RWRpdGFibGUgaG9zdDogY29tcG9zaXRpb24gc3RhdGUsIGNhcmV0XG4gKiB0cmFja2luZywgc2VsZWN0aW9uY2hhbmdlIGhhbmRsaW5nLCBgYmVmb3JlaW5wdXRgIGludGVyY2VwdGlvbiwgcGFzdGVcbiAqIHNhbml0aXphdGlvbiwgcGxhaW50ZXh0LW9ubHkgZmVhdHVyZSBkZXRlY3Rpb24sIHNlZ21lbnQgcmVuZGVyaW5nLFxuICogcG9zdC1wcm9tb3RlIHJlZm9jdXMsIGFuZCByZS1lZGl0IGNhcmV0IHBhcmsuXG4gKlxuICogTWlycm9ycyBgcGFja2FnZXMvcmVhY3Qvc3JjL2hvb2tzL3VzZUNvbnRlbnRFZGl0YWJsZUVkaXRvci50c2Agb25lLWZvci1vbmUuXG4gKiBVc2VkIG9ubHkgYnkgdGhlIFRpZXIgMSBgPGFpLWF1dG9jb21wbGV0ZT5gIGNvbXBvbmVudCDigJQgbmV2ZXIgZXhwb3J0ZWQuXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbYWlhRWRpdG9ySG9zdF1cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgIHJvbGU6IFwiY29tYm9ib3hcIixcbiAgICBcImFyaWEtYXV0b2NvbXBsZXRlXCI6IFwibGlzdFwiLFxuICAgIFwiYXJpYS1oYXNwb3B1cFwiOiBcImxpc3Rib3hcIixcbiAgICBzcGVsbGNoZWNrOiBcInRydWVcIixcbiAgICBlbnRlcmtleWhpbnQ6IFwic2VuZFwiLFxuICAgIHRhYmluZGV4OiBcIjBcIixcbiAgICBcIihpbnB1dClcIjogXCJvbklucHV0KClcIixcbiAgICBcIihrZXlkb3duKVwiOiBcIm9uS2V5RG93bigkZXZlbnQpXCIsXG4gICAgXCIoY29tcG9zaXRpb25zdGFydClcIjogXCJvbkNvbXBvc2l0aW9uU3RhcnQoKVwiLFxuICAgIFwiKGNvbXBvc2l0aW9uZW5kKVwiOiBcIm9uQ29tcG9zaXRpb25FbmQoKVwiLFxuICAgIFwiKHBhc3RlKVwiOiBcIm9uUGFzdGUoJGV2ZW50KVwiLFxuICAgIFwiKGZvY3VzKVwiOiBcIm9uRm9jdXMoKVwiLFxuICAgIFwiKGJsdXIpXCI6IFwib25CbHVyKClcIixcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQUlBdXRvY29tcGxldGVFZGl0b3JIb3N0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoXCJhaWFFZGl0b3JIb3N0XCIpIGNvbnRyb2xsZXIhOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXI7XG4gIEBJbnB1dCgpIGF1dG9Gb2N1cyA9IHRydWU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgY29tcG9zaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgbGFzdElucHV0QXQgPSAwO1xuICBwcml2YXRlIGxhc3RTZWVuUGFyYW1JZCA9IFwiXCI7XG4gIHByaXZhdGUgbGFzdEVkaXRpbmdJZCA9IFwiXCI7XG4gIHByaXZhdGUgZWRpdGluZ1BhcmFtSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgZG9jdW1lbnRTZWxlY3Rpb25MaXN0ZW5lcj86ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgYmVmb3JlSW5wdXRMaXN0ZW5lcj86IChldmVudDogRXZlbnQpID0+IHZvaWQ7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2xsZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlthaWFFZGl0b3JIb3N0XSByZXF1aXJlcyBhIGNvbnRyb2xsZXJcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgY2VNb2RlID0gc3VwcG9ydHNQbGFpbnRleHRPbmx5KCkgPyBcInBsYWludGV4dC1vbmx5XCIgOiBcInRydWVcIjtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbCwgXCJjb250ZW50ZWRpdGFibGVcIiwgY2VNb2RlKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbCwgXCJhcmlhLWNvbnRyb2xzXCIsIHRoaXMuY29udHJvbGxlci5saXN0Ym94SWQpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsLCBcInN1cHByZXNzLWNvbnRlbnQtZWRpdGFibGUtd2FybmluZ1wiLCBcInRydWVcIik7XG5cbiAgICAvLyBBdXRvLWZvY3VzIG9uIG1vdW50LiBJZiB0aGUgZWRpdG9yIGFscmVhZHkgaGFzIGZvY3VzIChlLmcuIGZyb20gYVxuICAgIC8vIGNsaWNrIHRoYXQgZmlyZWQgYmVmb3JlIG91ciBsaWZlY3ljbGUgcmFuKSwgbm90aWZ5IHRoZSBjb250cm9sbGVyXG4gICAgLy8gaW5zdGVhZCBvZiBzdGVhbGluZyBmb2N1cy5cbiAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xuICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZWwpIHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIuc2V0Rm9jdXNlZCh0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmJpbmREb2N1bWVudFNlbGVjdGlvbkxpc3RlbmVyKCk7XG4gICAgdGhpcy5iaW5kQmVmb3JlSW5wdXRMaXN0ZW5lcigpO1xuICAgIHRoaXMuYmluZFN0YXRlU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgaWYgKHRoaXMuZG9jdW1lbnRTZWxlY3Rpb25MaXN0ZW5lciAmJiB0eXBlb2YgZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzZWxlY3Rpb25jaGFuZ2VcIiwgdGhpcy5kb2N1bWVudFNlbGVjdGlvbkxpc3RlbmVyKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmVmb3JlSW5wdXRMaXN0ZW5lcikge1xuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJiZWZvcmVpbnB1dFwiLCB0aGlzLmJlZm9yZUlucHV0TGlzdGVuZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PSBIb3N0IGV2ZW50IGhhbmRsZXJzID09PVxuXG4gIG9uQ29tcG9zaXRpb25TdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvc2luZyA9IHRydWU7XG4gIH1cblxuICBvbkNvbXBvc2l0aW9uRW5kKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9zaW5nID0gZmFsc2U7XG4gICAgdGhpcy5maXJlSW5wdXQoKTtcbiAgfVxuXG4gIG9uSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5sYXN0SW5wdXRBdCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgIHRoaXMuZmlyZUlucHV0KCk7XG4gICAgdGhpcy5jb250cm9sbGVyLmhhbmRsZUNhcmV0QWZ0ZXJJbnB1dChnZXRDdXJzb3JPZmZzZXQodGhpcy5lbC5uYXRpdmVFbGVtZW50KSk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIuaGFuZGxlS2V5RG93bihldmVudCk7XG4gIH1cblxuICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgdGV4dCA9IChldmVudC5jbGlwYm9hcmREYXRhPy5nZXREYXRhKFwidGV4dC9wbGFpblwiKSA/PyBcIlwiKS5yZXBsYWNlKC9cXHI/XFxuL2csIFwiIFwiKTtcbiAgICBpZiAoIXRleHQpIHJldHVybjtcbiAgICBjb25zdCBkb2MgPSBlbC5vd25lckRvY3VtZW50ID8/IGRvY3VtZW50O1xuICAgIGNvbnN0IHNlbCA9IGRvYy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoIXNlbCB8fCBzZWwucmFuZ2VDb3VudCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IHJhbmdlID0gc2VsLmdldFJhbmdlQXQoMCk7XG4gICAgaWYgKCFlbC5jb250YWlucyhyYW5nZS5zdGFydENvbnRhaW5lcikpIHJldHVybjtcbiAgICByYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgIGNvbnN0IG5vZGUgPSBkb2MuY3JlYXRlVGV4dE5vZGUodGV4dCk7XG4gICAgcmFuZ2UuaW5zZXJ0Tm9kZShub2RlKTtcbiAgICByYW5nZS5zZXRTdGFydEFmdGVyKG5vZGUpO1xuICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICBzZWwuYWRkUmFuZ2UocmFuZ2UpO1xuICAgIHRoaXMuZmlyZUlucHV0KCk7XG4gIH1cblxuICBvbkZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZXRGb2N1c2VkKHRydWUpO1xuICB9XG5cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZXRGb2N1c2VkKGZhbHNlKTtcbiAgfVxuXG4gIC8vID09PSBJbnRlcm5hbCBoZWxwZXJzID09PVxuXG4gIHByaXZhdGUgZmlyZUlucHV0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbXBvc2luZykgcmV0dXJuO1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHJhdyA9IGV4dHJhY3RQbGFpblRleHQoZWwpO1xuICAgIGNvbnN0IHNob3VsZENhcGl0YWxpemUgPSByYXcubGVuZ3RoID4gMCAmJiByYXdbMF0gIT09IHJhd1swXS50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IG5leHQgPSBzaG91bGRDYXBpdGFsaXplID8gcmF3WzBdLnRvVXBwZXJDYXNlKCkgKyByYXcuc2xpY2UoMSkgOiByYXc7XG4gICAgdGhpcy5jb250cm9sbGVyLmhhbmRsZVRleHRDaGFuZ2UobmV4dCk7XG4gIH1cblxuICBwcml2YXRlIGJpbmREb2N1bWVudFNlbGVjdGlvbkxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcbiAgICBjb25zdCBlbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAvLyBzZWxlY3Rpb25jaGFuZ2UgZmlyZXMgb24gZXZlcnkga2V5c3Ryb2tlIGFuZCBjYXJldCBtb3ZlIOKAlCBydW4gb3V0c2lkZVxuICAgIC8vIEFuZ3VsYXIncyB6b25lICjCpzE2LjEpIGFuZCByZS1lbnRlciBvbmx5IHdoZW4gd2UgYWN0dWFsbHkgbmVlZCB0b1xuICAgIC8vIG5vdGlmeSB0aGUgY29udHJvbGxlciBvZiBhIG1lYW5pbmdmdWwgY2hhbmdlLlxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBzZWwgPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKCFzZWwgfHwgc2VsLnJhbmdlQ291bnQgPT09IDApIHJldHVybjtcbiAgICAgICAgaWYgKCFzZWwuYW5jaG9yTm9kZSB8fCAhZWwuY29udGFpbnMoc2VsLmFuY2hvck5vZGUpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IHNlbC5hbmNob3JOb2RlO1xuICAgICAgICBjb25zdCBzdGFydEVsID1cbiAgICAgICAgICBhbmNob3Iubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFID8gKGFuY2hvciBhcyBFbGVtZW50KSA6IGFuY2hvci5wYXJlbnRFbGVtZW50O1xuICAgICAgICAvLyBPbmx5IGEgQ09MTEFQU0VEIHNlbGVjdGlvbiBtZWFucyBcInRoZSBjYXJldCBsYW5kZWQgaW4gYSBjaGlwXCIuIEFcbiAgICAgICAgLy8gcmFuZ2Ugc2VsZWN0aW9uIChDbWQrQSwgc2hpZnQtYXJyb3csIGRyYWcpIGFuY2hvcnMgYXQgaXRzIHN0YXJ0LFxuICAgICAgICAvLyB3aGljaCBsYW5kcyBpbnNpZGUgdGhlIGZpcnN0IGA8c3Ryb25nPmAgd2hlbmV2ZXIgdGhlIGlucHV0IGJlZ2luc1xuICAgICAgICAvLyB3aXRoIGEgY2hpcCDigJQgc3RhcnRpbmcgcmUtZWRpdCB0aGVyZSBwYXJrcyB0aGUgY2FyZXQgb24gdGhhdCBjaGlwXG4gICAgICAgIC8vIGFuZCBkZXN0cm95cyB0aGUgdXNlcidzIHNlbGVjdGlvbi5cbiAgICAgICAgY29uc3Qgc3Ryb25nID0gc2VsLmlzQ29sbGFwc2VkXG4gICAgICAgICAgPyBzdGFydEVsPy5jbG9zZXN0PEhUTUxFbGVtZW50Pignc3Ryb25nW2RhdGEtc2VnPVwiY29tcGxldGVkXCJdW2RhdGEtcGFyYW0taWRdJylcbiAgICAgICAgICA6IG51bGw7XG4gICAgICAgIC8vIGBET01TdHJpbmdNYXBgIGlzIGFuIGluZGV4IHNpZ25hdHVyZTsgYnJhY2tldCBub3RhdGlvbiBpcyByZXF1aXJlZFxuICAgICAgICAvLyBieSBgbm9Qcm9wZXJ0eUFjY2Vzc0Zyb21JbmRleFNpZ25hdHVyZWAuXG4gICAgICAgIGNvbnN0IGVuY2xvc2luZyA9IHN0cm9uZz8uZGF0YXNldFtcInBhcmFtSWRcIl0gPz8gbnVsbDtcbiAgICAgICAgaWYgKGVuY2xvc2luZyAmJiBlbmNsb3NpbmcgIT09IHRoaXMuZWRpdGluZ1BhcmFtSWQpIHtcbiAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuY29udHJvbGxlci5zdGFydEVkaXRpbmdQYXJhbShlbmNsb3NpbmcpKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlcmZvcm1hbmNlLm5vdygpIC0gdGhpcy5sYXN0SW5wdXRBdCA8IDUwKSByZXR1cm47XG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5jb250cm9sbGVyLmhhbmRsZUNhcmV0TW92ZShnZXRDdXJzb3JPZmZzZXQoZWwpKSk7XG4gICAgICB9O1xuICAgICAgdGhpcy5kb2N1bWVudFNlbGVjdGlvbkxpc3RlbmVyID0gaGFuZGxlcjtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJzZWxlY3Rpb25jaGFuZ2VcIiwgaGFuZGxlcik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJpbmRCZWZvcmVJbnB1dExpc3RlbmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIC8vIE5hdGl2ZSBiZWZvcmVpbnB1dCDigJQgUmVhY3QncyBzeW50aGV0aWMgb25CZWZvcmVJbnB1dCBpcyB3aXJlZCB0byB0aGVcbiAgICAvLyBsZWdhY3kgdGV4dElucHV0IGV2ZW50IGFuZCBkb2Vzbid0IGZpcmUgcmVsaWFibHkgZm9yIGRlbGV0ZSogdHlwZXMuXG4gICAgY29uc3QgaGFuZGxlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGlucHV0RXZlbnQgPSBldmVudCBhcyBJbnB1dEV2ZW50O1xuICAgICAgY29uc3QgdCA9IGlucHV0RXZlbnQuaW5wdXRUeXBlO1xuICAgICAgaWYgKHQgPT09IFwiaW5zZXJ0UGFyYWdyYXBoXCIgfHwgdCA9PT0gXCJpbnNlcnRMaW5lQnJlYWtcIiB8fCB0ID09PSBcImluc2VydEZyb21Ecm9wXCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHQuc3RhcnRzV2l0aChcImluc2VydFwiKSB8fCB0LnN0YXJ0c1dpdGgoXCJkZWxldGVcIikpIHtcbiAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQgPSB0LnN0YXJ0c1dpdGgoXCJkZWxldGVcIikgPyBcIlwiIDogKGlucHV0RXZlbnQuZGF0YSA/PyBcIlwiKTtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbGxlci5yZXBsYWNlRWRpdGluZ1JhbmdlKHJlcGxhY2VtZW50KSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuYmVmb3JlSW5wdXRMaXN0ZW5lciA9IGhhbmRsZXI7XG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcImJlZm9yZWlucHV0XCIsIGhhbmRsZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kU3RhdGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5jb250cm9sbGVyLnN0YXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgdGhpcy5lZGl0aW5nUGFyYW1JZCA9IHN0YXRlLmVkaXRpbmdQYXJhbT8uaWQgPz8gbnVsbDtcblxuICAgICAgcmVuZGVyRWRpdGFibGVDb250ZW50KHtcbiAgICAgICAgaW5wdXQ6IGVsLFxuICAgICAgICBzZWdtZW50czogc3RhdGUuc2VnbWVudHMsXG4gICAgICAgIG5ld1BhcmFtSWQ6IHN0YXRlLm5ld1BhcmFtSWQsXG4gICAgICAgIGVkaXRpbmdQYXJhbUlkOiBzdGF0ZS5lZGl0aW5nUGFyYW0/LmlkID8/IG51bGwsXG4gICAgICAgIHBsYWNlaG9sZGVyVGV4dDogc3RhdGUucGxhY2Vob2xkZXJUZXh0LFxuICAgICAgICBpc0ZvY3VzZWQ6IHN0YXRlLmlzRm9jdXNlZCxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBQb3N0LXByb21vdGUgcmVmb2N1cyArIGNhcmV0LWFmdGVyLWJvbGQgcGxhY2VtZW50IChtaXJyb3JzIFJlYWN0J3NcbiAgICAgIC8vIHVzZUxheW91dEVmZmVjdCBvbiBuZXdQYXJhbUlkKS5cbiAgICAgIGNvbnN0IGN1cnJlbnRQYXJhbUlkID0gc3RhdGUubmV3UGFyYW1JZCA/PyBcIlwiO1xuICAgICAgaWYgKGN1cnJlbnRQYXJhbUlkICYmIGN1cnJlbnRQYXJhbUlkICE9PSB0aGlzLmxhc3RTZWVuUGFyYW1JZCkge1xuICAgICAgICB0aGlzLmxhc3RTZWVuUGFyYW1JZCA9IGN1cnJlbnRQYXJhbUlkO1xuICAgICAgICBlbC5mb2N1cygpO1xuICAgICAgICBjb25zdCBkZXNpcmVkID0gc3RhdGUuY2FyZXRPZmZzZXQgPz8gcGxhaW5UZXh0TGVuZ3RoKGVsKTtcbiAgICAgICAgc2V0Q3Vyc29yT2Zmc2V0KGVsLCBkZXNpcmVkKTtcbiAgICAgIH0gZWxzZSBpZiAoIWN1cnJlbnRQYXJhbUlkKSB7XG4gICAgICAgIHRoaXMubGFzdFNlZW5QYXJhbUlkID0gXCJcIjtcbiAgICAgIH1cblxuICAgICAgLy8gUmUtZWRpdCBjYXJldCBwYXJrIChtaXJyb3JzIFJlYWN0J3MgdXNlTGF5b3V0RWZmZWN0IG9uIGVkaXRpbmdQYXJhbSkuXG4gICAgICBjb25zdCBlZGl0aW5nSWQgPSBzdGF0ZS5lZGl0aW5nUGFyYW0/LmlkID8/IFwiXCI7XG4gICAgICBpZiAoZWRpdGluZ0lkICYmIGVkaXRpbmdJZCAhPT0gdGhpcy5sYXN0RWRpdGluZ0lkICYmIHN0YXRlLmVkaXRpbmdBbmNob3IgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxhc3RFZGl0aW5nSWQgPSBlZGl0aW5nSWQ7XG4gICAgICAgIHNldEN1cnNvck9mZnNldChlbCwgc3RhdGUuZWRpdGluZ0FuY2hvcik7XG4gICAgICB9IGVsc2UgaWYgKCFlZGl0aW5nSWQpIHtcbiAgICAgICAgdGhpcy5sYXN0RWRpdGluZ0lkID0gXCJcIjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation, } from "@angular/core";
|
|
2
|
+
import { optionsGridTemplateColumns } from "@magicx-eng/ai-autocomplete-vanilla";
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
/**
|
|
4
5
|
* Intrinsic grid layout primitive — auto-fits as many columns as fit between
|
|
@@ -16,6 +17,14 @@ export class GridComponent {
|
|
|
16
17
|
/** Cap the height and scroll vertically when content overflows. */
|
|
17
18
|
this.scroll = false;
|
|
18
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Explicit column template overrides the intrinsic auto-fit (inline wins).
|
|
22
|
+
* The track string is built by the core so all three packages emit the same
|
|
23
|
+
* one.
|
|
24
|
+
*/
|
|
25
|
+
get templateColumns() {
|
|
26
|
+
return this.cols ? optionsGridTemplateColumns(this.cols) : null;
|
|
27
|
+
}
|
|
19
28
|
/**
|
|
20
29
|
* A new `scrollResetKey` means a different content group is being shown (e.g.
|
|
21
30
|
* the next suggestion's options after a selection) — start it from the top
|
|
@@ -31,10 +40,10 @@ export class GridComponent {
|
|
|
31
40
|
}
|
|
32
41
|
}
|
|
33
42
|
GridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GridComponent, isStandalone: true, selector: "aia-grid", inputs: { min: "min", max: "max", gap: "gap", scroll: "scroll", maxHeight: "maxHeight", scrollResetKey: "scrollResetKey" }, viewQueries: [{ propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #grid\n class=\"aia-grid\"\n [attr.data-scroll]=\"scroll ? '' : null\"\n [style.--aia-grid-min]=\"min\"\n [style.--aia-grid-max]=\"max\"\n [style.--aia-grid-gap]=\"gap\"\n [style.--aia-grid-max-height]=\"maxHeight\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["aia-grid{display:contents}@layer layout{.aia-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(var(--aia-grid-min),100%),var(--aia-grid-max, 1fr)));gap:var(--aia-grid-gap, 0)}.aia-grid[data-scroll]{grid-auto-rows:min-content;align-content:start;justify-content:start;max-height:var(--aia-grid-max-height, 120px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--aia-scrollbar-thumb, rgba(0, 0, 0, .3)) transparent}.aia-grid[data-scroll]::-webkit-scrollbar{width:6px}.aia-grid[data-scroll]::-webkit-scrollbar-track{background:transparent}.aia-grid[data-scroll]::-webkit-scrollbar-thumb{background:var(--aia-scrollbar-thumb, rgba(0, 0, 0, .3));border-radius:3px}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
43
|
+
GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GridComponent, isStandalone: true, selector: "aia-grid", inputs: { min: "min", max: "max", gap: "gap", scroll: "scroll", maxHeight: "maxHeight", scrollResetKey: "scrollResetKey", cols: "cols" }, viewQueries: [{ propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #grid\n class=\"aia-grid\"\n [attr.data-scroll]=\"scroll ? '' : null\"\n [style.--aia-grid-min]=\"min\"\n [style.--aia-grid-max]=\"max\"\n [style.--aia-grid-gap]=\"gap\"\n [style.--aia-grid-max-height]=\"maxHeight\"\n [style.grid-template-columns]=\"templateColumns\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["aia-grid{display:contents}@layer layout{.aia-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(var(--aia-grid-min),100%),var(--aia-grid-max, 1fr)));gap:var(--aia-grid-gap, 0)}.aia-grid[data-scroll]{grid-auto-rows:min-content;align-content:start;justify-content:start;max-height:var(--aia-grid-max-height, 120px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--aia-scrollbar-thumb, rgba(0, 0, 0, .3)) transparent}.aia-grid[data-scroll]::-webkit-scrollbar{width:6px}.aia-grid[data-scroll]::-webkit-scrollbar-track{background:transparent}.aia-grid[data-scroll]::-webkit-scrollbar-thumb{background:var(--aia-scrollbar-thumb, rgba(0, 0, 0, .3));border-radius:3px}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
35
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GridComponent, decorators: [{
|
|
36
45
|
type: Component,
|
|
37
|
-
args: [{ selector: "aia-grid", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n #grid\n class=\"aia-grid\"\n [attr.data-scroll]=\"scroll ? '' : null\"\n [style.--aia-grid-min]=\"min\"\n [style.--aia-grid-max]=\"max\"\n [style.--aia-grid-gap]=\"gap\"\n [style.--aia-grid-max-height]=\"maxHeight\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["aia-grid{display:contents}@layer layout{.aia-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(var(--aia-grid-min),100%),var(--aia-grid-max, 1fr)));gap:var(--aia-grid-gap, 0)}.aia-grid[data-scroll]{grid-auto-rows:min-content;align-content:start;justify-content:start;max-height:var(--aia-grid-max-height, 120px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--aia-scrollbar-thumb, rgba(0, 0, 0, .3)) transparent}.aia-grid[data-scroll]::-webkit-scrollbar{width:6px}.aia-grid[data-scroll]::-webkit-scrollbar-track{background:transparent}.aia-grid[data-scroll]::-webkit-scrollbar-thumb{background:var(--aia-scrollbar-thumb, rgba(0, 0, 0, .3));border-radius:3px}}\n"] }]
|
|
46
|
+
args: [{ selector: "aia-grid", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n #grid\n class=\"aia-grid\"\n [attr.data-scroll]=\"scroll ? '' : null\"\n [style.--aia-grid-min]=\"min\"\n [style.--aia-grid-max]=\"max\"\n [style.--aia-grid-gap]=\"gap\"\n [style.--aia-grid-max-height]=\"maxHeight\"\n [style.grid-template-columns]=\"templateColumns\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["aia-grid{display:contents}@layer layout{.aia-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(var(--aia-grid-min),100%),var(--aia-grid-max, 1fr)));gap:var(--aia-grid-gap, 0)}.aia-grid[data-scroll]{grid-auto-rows:min-content;align-content:start;justify-content:start;max-height:var(--aia-grid-max-height, 120px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--aia-scrollbar-thumb, rgba(0, 0, 0, .3)) transparent}.aia-grid[data-scroll]::-webkit-scrollbar{width:6px}.aia-grid[data-scroll]::-webkit-scrollbar-track{background:transparent}.aia-grid[data-scroll]::-webkit-scrollbar-thumb{background:var(--aia-scrollbar-thumb, rgba(0, 0, 0, .3));border-radius:3px}}\n"] }]
|
|
38
47
|
}], propDecorators: { min: [{
|
|
39
48
|
type: Input
|
|
40
49
|
}], max: [{
|
|
@@ -47,8 +56,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
47
56
|
type: Input
|
|
48
57
|
}], scrollResetKey: [{
|
|
49
58
|
type: Input
|
|
59
|
+
}], cols: [{
|
|
60
|
+
type: Input
|
|
50
61
|
}], gridRef: [{
|
|
51
62
|
type: ViewChild,
|
|
52
63
|
args: ["grid", { static: false }]
|
|
53
64
|
}] } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL2xheW91dC9ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvbGF5b3V0L2dyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsS0FBSyxFQUdMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBRWpGOzs7Ozs7OztHQVFHO0FBU0gsTUFBTSxPQUFPLGFBQWE7SUFSMUI7UUFTRSxpRkFBaUY7UUFDeEUsUUFBRyxHQUFHLE9BQU8sQ0FBQztRQUt2QixtRUFBbUU7UUFDMUQsV0FBTSxHQUFHLEtBQUssQ0FBQztLQThCekI7SUF0QkM7Ozs7T0FJRztJQUNILElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2xFLENBQUM7SUFJRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUFFLE9BQU87UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUM7UUFDekMsSUFBSSxJQUFJO1lBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7MkdBckNVLGFBQWE7K0ZBQWIsYUFBYSxvVUM3QjFCLHNVQVlBOzRGRGlCYSxhQUFhO2tCQVJ6QixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OEJBTTVCLEdBQUc7c0JBQVgsS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRUcsR0FBRztzQkFBWCxLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQVdnQyxPQUFPO3NCQUE1QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICB0eXBlIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICB0eXBlIE9uQ2hhbmdlcyxcbiAgdHlwZSBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgb3B0aW9uc0dyaWRUZW1wbGF0ZUNvbHVtbnMgfSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcblxuLyoqXG4gKiBJbnRyaW5zaWMgZ3JpZCBsYXlvdXQgcHJpbWl0aXZlIOKAlCBhdXRvLWZpdHMgYXMgbWFueSBjb2x1bW5zIGFzIGZpdCBiZXR3ZWVuXG4gKiBgbWluYCBhbmQgYG1heGAgd2lkZSwgd3JhcHBpbmcgdG8gbmV3IHJvd3Mgd2hlbiB0aGVyZSdzIG5vIG1vcmUgaG9yaXpvbnRhbFxuICogcm9vbS4gTWlycm9ycyB0aGUgUmVhY3QgYDxHcmlkPmAgY29tcG9uZW50IC8gdmFuaWxsYSBgLmFpYS1ncmlkYCBwcmltaXRpdmUuXG4gKlxuICogT3B0aW9uYWxseSBzY3JvbGxzIChgc2Nyb2xsYCwgY2FwcGVkIGhlaWdodCkuXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaWEtZ3JpZFwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9ncmlkLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9ncmlkLmNvbXBvbmVudC5jc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvKiogTWluaW11bSBjZWxsIHdpZHRoLiBDU1MgbGVuZ3RoLCBlLmcuIFwiMTZyZW1cIi4gQ29sdW1ucyBhdXRvLWZpdCBhdCBydW50aW1lLiAqL1xuICBASW5wdXQoKSBtaW4gPSBcIjE2cmVtXCI7XG4gIC8qKiBNYXhpbXVtIGNlbGwgd2lkdGguIENTUyBsZW5ndGguIERlZmF1bHRzICh2aWEgQ1NTKSB0byBgMWZyYCAoc3RyZXRjaCkuICovXG4gIEBJbnB1dCgpIG1heD86IHN0cmluZztcbiAgLyoqIEdhcCBiZXR3ZWVuIGNlbGxzLiAqL1xuICBASW5wdXQoKSBnYXA/OiBzdHJpbmc7XG4gIC8qKiBDYXAgdGhlIGhlaWdodCBhbmQgc2Nyb2xsIHZlcnRpY2FsbHkgd2hlbiBjb250ZW50IG92ZXJmbG93cy4gKi9cbiAgQElucHV0KCkgc2Nyb2xsID0gZmFsc2U7XG4gIC8qKiBNYXggaGVpZ2h0IHdoZW4gYHNjcm9sbGAuIENTUyBsZW5ndGguIERlZmF1bHRzICh2aWEgQ1NTKSB0byAxMjBweC4gKi9cbiAgQElucHV0KCkgbWF4SGVpZ2h0Pzogc3RyaW5nO1xuICAvKiogU2Nyb2xsIGJhY2sgdG8gdGhlIHRvcCB3aGVuZXZlciB0aGlzIGtleSBjaGFuZ2VzIChgc2Nyb2xsYCBvbmx5KS4gKi9cbiAgQElucHV0KCkgc2Nyb2xsUmVzZXRLZXk/OiBzdHJpbmc7XG4gIC8qKiBGaXhlZCBjb2x1bW4gY291bnQuIE92ZXJyaWRlcyB0aGUgaW50cmluc2ljIGF1dG8tZml0IHdoZW4gc2V0OyByb3dzIGZpbGwgbGVmdC10by1yaWdodC4gKi9cbiAgQElucHV0KCkgY29scz86IG51bWJlcjtcblxuICAvKipcbiAgICogRXhwbGljaXQgY29sdW1uIHRlbXBsYXRlIG92ZXJyaWRlcyB0aGUgaW50cmluc2ljIGF1dG8tZml0IChpbmxpbmUgd2lucykuXG4gICAqIFRoZSB0cmFjayBzdHJpbmcgaXMgYnVpbHQgYnkgdGhlIGNvcmUgc28gYWxsIHRocmVlIHBhY2thZ2VzIGVtaXQgdGhlIHNhbWVcbiAgICogb25lLlxuICAgKi9cbiAgZ2V0IHRlbXBsYXRlQ29sdW1ucygpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb2xzID8gb3B0aW9uc0dyaWRUZW1wbGF0ZUNvbHVtbnModGhpcy5jb2xzKSA6IG51bGw7XG4gIH1cblxuICBAVmlld0NoaWxkKFwiZ3JpZFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgZ3JpZFJlZj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBBIG5ldyBgc2Nyb2xsUmVzZXRLZXlgIG1lYW5zIGEgZGlmZmVyZW50IGNvbnRlbnQgZ3JvdXAgaXMgYmVpbmcgc2hvd24gKGUuZy5cbiAgICogdGhlIG5leHQgc3VnZ2VzdGlvbidzIG9wdGlvbnMgYWZ0ZXIgYSBzZWxlY3Rpb24pIOKAlCBzdGFydCBpdCBmcm9tIHRoZSB0b3BcbiAgICogaW5zdGVhZCBvZiBpbmhlcml0aW5nIHRoZSBwcmV2aW91cyBncm91cCdzIHNjcm9sbCBvZmZzZXQuXG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgY2hhbmdlID0gY2hhbmdlc1tcInNjcm9sbFJlc2V0S2V5XCJdO1xuICAgIGlmICghY2hhbmdlIHx8IGNoYW5nZS5pc0ZpcnN0Q2hhbmdlKCkpIHJldHVybjtcbiAgICBjb25zdCBncmlkID0gdGhpcy5ncmlkUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChncmlkKSBncmlkLnNjcm9sbFRvcCA9IDA7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI2dyaWRcbiAgY2xhc3M9XCJhaWEtZ3JpZFwiXG4gIFthdHRyLmRhdGEtc2Nyb2xsXT1cInNjcm9sbCA/ICcnIDogbnVsbFwiXG4gIFtzdHlsZS4tLWFpYS1ncmlkLW1pbl09XCJtaW5cIlxuICBbc3R5bGUuLS1haWEtZ3JpZC1tYXhdPVwibWF4XCJcbiAgW3N0eWxlLi0tYWlhLWdyaWQtZ2FwXT1cImdhcFwiXG4gIFtzdHlsZS4tLWFpYS1ncmlkLW1heC1oZWlnaHRdPVwibWF4SGVpZ2h0XCJcbiAgW3N0eWxlLmdyaWQtdGVtcGxhdGUtY29sdW1uc109XCJ0ZW1wbGF0ZUNvbHVtbnNcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -64,10 +64,10 @@ export class PillListComponent {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
PillListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PillListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
-
PillListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PillListComponent, isStandalone: true, selector: "aia-pill-list", inputs: { pills: "pills", activePillIndex: "activePillIndex", rounded: "rounded", loading: "loading", activeSelected: "activeSelected" }, outputs: { selectPill: "selectPill" }, ngImport: i0, template: "<ng-container *ngIf=\"loading && pills.length === 0; else realPills\">\n <span class=\"aia-pill-list\" data-aia-pill-list-loading=\"\">\n <span\n *ngFor=\"let w of fallbackSkeletonWidths; trackBy: trackByWidth; let i = index\"\n data-aia-pill-skeleton=\"\"\n class=\"aia-pill aia-pill-skeleton\"\n [class.aia-pill-rounded]=\"rounded\"\n [style.width.px]=\"w\"\n [style.opacity]=\"pillOpacity(i)\"\n ></span>\n </span>\n</ng-container>\n\n<ng-template #realPills>\n <span\n class=\"aia-pill-list\"\n [attr.data-aia-pill-list-loading]=\"loading ? '' : null\"\n >\n <button\n *ngFor=\"let pill of pills; trackBy: trackByType; let i = index\"\n type=\"button\"\n data-aia-pill=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n tabindex=\"-1\"\n class=\"aia-pill\"\n [class.aia-pill-rounded]=\"rounded\"\n [class.aia-pill-skeleton]=\"loading\"\n [style.opacity]=\"pillOpacity(i)\"\n [disabled]=\"loading\"\n (mousedown)=\"onPillMouseDown($event)\"\n (click)=\"onPillClick(i)\"\n >\n {{ pill.text }}\n </button>\n </span>\n</ng-template>\n", styles: [".aia-pill-list{position:relative;z-index:1;pointer-events:auto;display:inline-flex;gap:7px;padding:0 8px;align-items:center;vertical-align:middle}.aia-pill{display:inline-flex;align-items:center;justify-content:center;padding:
|
|
67
|
+
PillListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PillListComponent, isStandalone: true, selector: "aia-pill-list", inputs: { pills: "pills", activePillIndex: "activePillIndex", rounded: "rounded", loading: "loading", activeSelected: "activeSelected" }, outputs: { selectPill: "selectPill" }, ngImport: i0, template: "<ng-container *ngIf=\"loading && pills.length === 0; else realPills\">\n <span class=\"aia-pill-list\" data-aia-pill-list-loading=\"\">\n <span\n *ngFor=\"let w of fallbackSkeletonWidths; trackBy: trackByWidth; let i = index\"\n data-aia-pill-skeleton=\"\"\n class=\"aia-pill aia-pill-skeleton\"\n [class.aia-pill-rounded]=\"rounded\"\n [style.width.px]=\"w\"\n [style.opacity]=\"pillOpacity(i)\"\n ></span>\n </span>\n</ng-container>\n\n<ng-template #realPills>\n <span\n class=\"aia-pill-list\"\n [attr.data-aia-pill-list-loading]=\"loading ? '' : null\"\n >\n <button\n *ngFor=\"let pill of pills; trackBy: trackByType; let i = index\"\n type=\"button\"\n data-aia-pill=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n tabindex=\"-1\"\n class=\"aia-pill\"\n [class.aia-pill-rounded]=\"rounded\"\n [class.aia-pill-skeleton]=\"loading\"\n [style.opacity]=\"pillOpacity(i)\"\n [disabled]=\"loading\"\n (mousedown)=\"onPillMouseDown($event)\"\n (click)=\"onPillClick(i)\"\n >\n {{ pill.text }}\n </button>\n </span>\n</ng-template>\n", styles: [".aia-pill-list{position:relative;z-index:1;pointer-events:auto;display:inline-flex;gap:7px;padding:0 8px;align-items:center;vertical-align:middle}.aia-pill{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border:1px dashed var(--aia-pill-border, rgba(189, 189, 189, .3));border-radius:7px;background:transparent;color:var(--aia-pill-color, var(--aia-color-text-muted, #c1c4cb));font-family:inherit;font-size:calc(var(--aia-pill-font-size, 14px) * .8);font-weight:600;line-height:normal;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;white-space:nowrap;animation:aiaPillFadeIn .4s cubic-bezier(.4,0,.2,1) forwards}.aia-pill-rounded{border-radius:999px}.aia-pill-skeleton{pointer-events:none;cursor:default;color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));animation:aiaPillSkeletonPulse 1.4s ease-in-out infinite}@keyframes aiaPillFadeIn{0%{opacity:0}}@keyframes aiaPillSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}\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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
68
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PillListComponent, decorators: [{
|
|
69
69
|
type: Component,
|
|
70
|
-
args: [{ selector: "aia-pill-list", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"loading && pills.length === 0; else realPills\">\n <span class=\"aia-pill-list\" data-aia-pill-list-loading=\"\">\n <span\n *ngFor=\"let w of fallbackSkeletonWidths; trackBy: trackByWidth; let i = index\"\n data-aia-pill-skeleton=\"\"\n class=\"aia-pill aia-pill-skeleton\"\n [class.aia-pill-rounded]=\"rounded\"\n [style.width.px]=\"w\"\n [style.opacity]=\"pillOpacity(i)\"\n ></span>\n </span>\n</ng-container>\n\n<ng-template #realPills>\n <span\n class=\"aia-pill-list\"\n [attr.data-aia-pill-list-loading]=\"loading ? '' : null\"\n >\n <button\n *ngFor=\"let pill of pills; trackBy: trackByType; let i = index\"\n type=\"button\"\n data-aia-pill=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n tabindex=\"-1\"\n class=\"aia-pill\"\n [class.aia-pill-rounded]=\"rounded\"\n [class.aia-pill-skeleton]=\"loading\"\n [style.opacity]=\"pillOpacity(i)\"\n [disabled]=\"loading\"\n (mousedown)=\"onPillMouseDown($event)\"\n (click)=\"onPillClick(i)\"\n >\n {{ pill.text }}\n </button>\n </span>\n</ng-template>\n", styles: [".aia-pill-list{position:relative;z-index:1;pointer-events:auto;display:inline-flex;gap:7px;padding:0 8px;align-items:center;vertical-align:middle}.aia-pill{display:inline-flex;align-items:center;justify-content:center;padding:
|
|
70
|
+
args: [{ selector: "aia-pill-list", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"loading && pills.length === 0; else realPills\">\n <span class=\"aia-pill-list\" data-aia-pill-list-loading=\"\">\n <span\n *ngFor=\"let w of fallbackSkeletonWidths; trackBy: trackByWidth; let i = index\"\n data-aia-pill-skeleton=\"\"\n class=\"aia-pill aia-pill-skeleton\"\n [class.aia-pill-rounded]=\"rounded\"\n [style.width.px]=\"w\"\n [style.opacity]=\"pillOpacity(i)\"\n ></span>\n </span>\n</ng-container>\n\n<ng-template #realPills>\n <span\n class=\"aia-pill-list\"\n [attr.data-aia-pill-list-loading]=\"loading ? '' : null\"\n >\n <button\n *ngFor=\"let pill of pills; trackBy: trackByType; let i = index\"\n type=\"button\"\n data-aia-pill=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n tabindex=\"-1\"\n class=\"aia-pill\"\n [class.aia-pill-rounded]=\"rounded\"\n [class.aia-pill-skeleton]=\"loading\"\n [style.opacity]=\"pillOpacity(i)\"\n [disabled]=\"loading\"\n (mousedown)=\"onPillMouseDown($event)\"\n (click)=\"onPillClick(i)\"\n >\n {{ pill.text }}\n </button>\n </span>\n</ng-template>\n", styles: [".aia-pill-list{position:relative;z-index:1;pointer-events:auto;display:inline-flex;gap:7px;padding:0 8px;align-items:center;vertical-align:middle}.aia-pill{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border:1px dashed var(--aia-pill-border, rgba(189, 189, 189, .3));border-radius:7px;background:transparent;color:var(--aia-pill-color, var(--aia-color-text-muted, #c1c4cb));font-family:inherit;font-size:calc(var(--aia-pill-font-size, 14px) * .8);font-weight:600;line-height:normal;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;white-space:nowrap;animation:aiaPillFadeIn .4s cubic-bezier(.4,0,.2,1) forwards}.aia-pill-rounded{border-radius:999px}.aia-pill-skeleton{pointer-events:none;cursor:default;color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));animation:aiaPillSkeletonPulse 1.4s ease-in-out infinite}@keyframes aiaPillFadeIn{0%{opacity:0}}@keyframes aiaPillSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}\n"] }]
|
|
71
71
|
}], propDecorators: { pills: [{
|
|
72
72
|
type: Input
|
|
73
73
|
}], activePillIndex: [{
|
|
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
81
81
|
}], selectPill: [{
|
|
82
82
|
type: Output
|
|
83
83
|
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlsbC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvcGlsbC1saXN0L3BpbGwtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3BpbGwtbGlzdC9waWxsLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQzs7O0FBR3ZCOzs7Ozs7O0dBT0c7QUFVSCxNQUFNLE9BQU8saUJBQWlCO0lBVDlCO1FBVVcsVUFBSyxHQUFpQixFQUFFLENBQUM7UUFDekIsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFDcEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUN6Qjs7Ozs7V0FLRztRQUNNLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDekI7Ozs7O1dBS0c7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUViLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTNELDJFQUEyRTtRQUNsRSwyQkFBc0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQW1CNUMsZ0JBQVcsR0FBRyxDQUFDLENBQVMsRUFBRSxJQUFnQixFQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2pFLGlCQUFZLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FXcEQ7SUE3QkMsdUVBQXVFO0lBQ3ZFLFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVc7UUFDakQsSUFBSSxLQUFLLEtBQUssQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsUUFBUTtRQUNyQyxJQUFJLEtBQUssS0FBSyxDQUFDO1lBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPO1FBQ3BDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTztJQUNyQixDQUFDO0lBS0QsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFZO1FBQzFCLDhEQUE4RDtRQUM5RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7K0dBcERVLGlCQUFpQjttR0FBakIsaUJBQWlCLDBQQzVCOUIsMm9DQW9DQSxna0NEZFksWUFBWTs0RkFNWCxpQkFBaUI7a0JBVDdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFDTix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQUs1QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQU9HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRWEsVUFBVTtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgdHlwZSB7IFN1Z2dlc3Rpb24gfSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcblxuLyoqXG4gKiBJbnRlcm5hbCBwaWxsIGxpc3QgdXNlZCBieSBib3RoIHRoZSBkcm9wZG93biBhbmQgVGllciAxJ3MgaW5saW5lIHBpbGxiYXIuXG4gKiBNaXJyb3JzIGBwYWNrYWdlcy9yZWFjdC9zcmMvY29tcG9uZW50cy9QaWxsTGlzdC50c3hgIG9uZS1mb3Itb25lIOKAlCBpbmNsdWRpbmdcbiAqIHRoZSBwZXItaW5kZXggb3BhY2l0eSByYW1wICgxIC8gMC43IC8gMC40IC8gMC4yKSBhbmQgdGhlIHNrZWxldG9uLWxvYWRpbmdcbiAqIGZhbGxiYWNrIHRoYXQgcHJlc2VydmVzIGxheW91dCB3aGlsZSB0aGUgbmV4dCBmZXRjaCBpcyBpbiBmbGlnaHQuXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaWEtcGlsbC1saXN0XCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9waWxsLWxpc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3BpbGwtbGlzdC5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBQaWxsTGlzdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHBpbGxzOiBTdWdnZXN0aW9uW10gPSBbXTtcbiAgQElucHV0KCkgYWN0aXZlUGlsbEluZGV4ID0gMDtcbiAgQElucHV0KCkgcm91bmRlZCA9IGZhbHNlO1xuICAvKipcbiAgICogV2hlbiB0cnVlLCBwaWxscyBiZWNvbWUgbm9uLWludGVyYWN0aXZlIHNoaW1tZXJpbmcgc2tlbGV0b25zLiBSZWFsIHBpbGxzXG4gICAqICh3aXRoIHRoZWlyIHRleHQpIGFyZSByZW5kZXJlZCB3aGVuIHByb3ZpZGVkIHNvIHdpZHRocy9wb3NpdGlvbnMgbWF0Y2hcbiAgICogdGhlIHByZXZpb3VzIHN0YXRlOyB3aXRoIG5vIHBpbGxzLCBmaXhlZC13aWR0aCBmYWxsYmFjayBwbGFjZWhvbGRlcnMgYXJlXG4gICAqIHJlbmRlcmVkIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBhY3RpdmUgKGxlYWRpbmcpIHBpbGwgc2hvdWxkIHJlbmRlciBzZWxlY3RlZCAoZnVsbCBvcGFjaXR5KVxuICAgKiByYXRoZXIgdGhhbiBpdHMgcG9zaXRpb25hbCBgZmlyc3RgIHRpZXIuIEF1dG8gdHJpZ2dlciDih5IgdHJ1ZSB3aGlsZSBhXG4gICAqIGRyb3Bkb3duIG9wdGlvbiBpcyBoaWdobGlnaHRlZDsgbWFudWFsIHRyaWdnZXIg4oeSIHRydWUgYWZ0ZXIgdGhlIHVzZXIgdGFwc1xuICAgKiB0aGUgcGlsbC4gU2VlIGBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXIuaXNBY3RpdmVQaWxsU2VsZWN0ZWQkYC5cbiAgICovXG4gIEBJbnB1dCgpIGFjdGl2ZVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdFBpbGwgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAvKiogRmFsbGJhY2sgd2lkdGhzIHdoZW4gbG9hZGluZyB3aXRoIHplcm8gY2FjaGVkIHBpbGxzIChtYXRjaGVzIFJlYWN0KS4gKi9cbiAgcmVhZG9ubHkgZmFsbGJhY2tTa2VsZXRvbldpZHRocyA9IFsxMjUsIDY5XTtcblxuICAvKiogVGhlIGFjdGl2ZSBwaWxsIGlzIFwic2VsZWN0ZWRcIiBvbmx5IHdoZW4gYGFjdGl2ZVNlbGVjdGVkYCBpcyBzZXQuICovXG4gIGlzU2VsZWN0ZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZVNlbGVjdGVkICYmIGluZGV4ID09PSB0aGlzLmFjdGl2ZVBpbGxJbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGFjaXR5IHBlciBwaWxsIHN0YXRlIOKAlCBtaXJyb3JzIFBpbGxMaXN0LnRzeCBgUElMTF9PUEFDSVRZYC4gVGhlIHNlbGVjdGVkXG4gICAqIHBpbGwgaXMgZnVsbCBvcGFjaXR5OyBvdGhlcndpc2UgcGlsbHMgdGFrZSBhIHBvc2l0aW9uYWwgdGllciAoZmlyc3QgLyBuZXh0XG4gICAqIC8gbGFzdCkuXG4gICAqL1xuICBwaWxsT3BhY2l0eShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkKGluZGV4KSkgcmV0dXJuIDE7IC8vIFNlbGVjdGVkXG4gICAgaWYgKGluZGV4ID09PSAwKSByZXR1cm4gMC43OyAvLyBGaXJzdFxuICAgIGlmIChpbmRleCA9PT0gMSkgcmV0dXJuIDAuNDsgLy8gTmV4dFxuICAgIHJldHVybiAwLjI7IC8vIExhc3RcbiAgfVxuXG4gIHRyYWNrQnlUeXBlID0gKF86IG51bWJlciwgcGlsbDogU3VnZ2VzdGlvbik6IHN0cmluZyA9PiBwaWxsLnR5cGU7XG4gIHRyYWNrQnlXaWR0aCA9IChfOiBudW1iZXIsIHc6IG51bWJlcik6IG51bWJlciA9PiB3O1xuXG4gIG9uUGlsbENsaWNrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nKSByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RQaWxsLmVtaXQoaW5kZXgpO1xuICB9XG5cbiAgb25QaWxsTW91c2VEb3duKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIC8vIFByZXZlbnQgdGhlIGVkaXRvciBmcm9tIGxvc2luZyBmb2N1cyB3aGVuIGEgcGlsbCBpcyB0YXBwZWQuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmcgJiYgcGlsbHMubGVuZ3RoID09PSAwOyBlbHNlIHJlYWxQaWxsc1wiPlxuICA8c3BhbiBjbGFzcz1cImFpYS1waWxsLWxpc3RcIiBkYXRhLWFpYS1waWxsLWxpc3QtbG9hZGluZz1cIlwiPlxuICAgIDxzcGFuXG4gICAgICAqbmdGb3I9XCJsZXQgdyBvZiBmYWxsYmFja1NrZWxldG9uV2lkdGhzOyB0cmFja0J5OiB0cmFja0J5V2lkdGg7IGxldCBpID0gaW5kZXhcIlxuICAgICAgZGF0YS1haWEtcGlsbC1za2VsZXRvbj1cIlwiXG4gICAgICBjbGFzcz1cImFpYS1waWxsIGFpYS1waWxsLXNrZWxldG9uXCJcbiAgICAgIFtjbGFzcy5haWEtcGlsbC1yb3VuZGVkXT1cInJvdW5kZWRcIlxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIndcIlxuICAgICAgW3N0eWxlLm9wYWNpdHldPVwicGlsbE9wYWNpdHkoaSlcIlxuICAgID48L3NwYW4+XG4gIDwvc3Bhbj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3JlYWxQaWxscz5cbiAgPHNwYW5cbiAgICBjbGFzcz1cImFpYS1waWxsLWxpc3RcIlxuICAgIFthdHRyLmRhdGEtYWlhLXBpbGwtbGlzdC1sb2FkaW5nXT1cImxvYWRpbmcgPyAnJyA6IG51bGxcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nRm9yPVwibGV0IHBpbGwgb2YgcGlsbHM7IHRyYWNrQnk6IHRyYWNrQnlUeXBlOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgZGF0YS1haWEtcGlsbD1cIlwiXG4gICAgICBbYXR0ci5kYXRhLWFpYS1sb2FkaW5nXT1cImxvYWRpbmcgPyAnJyA6IG51bGxcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBjbGFzcz1cImFpYS1waWxsXCJcbiAgICAgIFtjbGFzcy5haWEtcGlsbC1yb3VuZGVkXT1cInJvdW5kZWRcIlxuICAgICAgW2NsYXNzLmFpYS1waWxsLXNrZWxldG9uXT1cImxvYWRpbmdcIlxuICAgICAgW3N0eWxlLm9wYWNpdHldPVwicGlsbE9wYWNpdHkoaSlcIlxuICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIlxuICAgICAgKG1vdXNlZG93bik9XCJvblBpbGxNb3VzZURvd24oJGV2ZW50KVwiXG4gICAgICAoY2xpY2spPVwib25QaWxsQ2xpY2soaSlcIlxuICAgID5cbiAgICAgIHt7IHBpbGwudGV4dCB9fVxuICAgIDwvYnV0dG9uPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
|