@fundamental-ngx/core 0.47.0-rc.9 → 0.47.1
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/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/carousel/carousel-item/carousel-item.component.d.ts +4 -4
- package/carousel/carousel-item.directive.d.ts +4 -4
- package/checkbox/checkbox/checkbox.component.d.ts +10 -10
- package/esm2022/breadcrumb/breadcrumb.component.mjs +2 -2
- package/esm2022/calendar/calendar-header/calendar-header.component.mjs +4 -5
- package/esm2022/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.mjs +4 -5
- package/esm2022/calendar/calendar-views/calendar-month-view/calendar-month-view.component.mjs +4 -5
- package/esm2022/calendar/calendar-views/calendar-year-view/calendar-year-view.component.mjs +4 -5
- package/esm2022/carousel/carousel-item/carousel-item.component.mjs +1 -1
- package/esm2022/carousel/carousel-item.directive.mjs +1 -1
- package/esm2022/checkbox/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/combobox/combobox.component.mjs +2 -2
- package/esm2022/date-picker/date-picker.component.mjs +4 -5
- package/esm2022/datetime-picker/datetime-picker.component.mjs +8 -10
- package/esm2022/feed-input/directives/feed-input-avatar.directive.mjs +2 -2
- package/esm2022/feed-input/directives/feed-input-textarea.directive.mjs +16 -19
- package/esm2022/form/form-control/form-control.component.mjs +3 -3
- package/esm2022/form/form-label/form-label.component.mjs +5 -6
- package/esm2022/input-group/input-group.component.mjs +7 -5
- package/esm2022/menu/menu-mobile/menu-mobile.component.mjs +4 -5
- package/esm2022/message-box/directives/message-box-template.directive.mjs +3 -3
- package/esm2022/message-strip/message-strip.component.mjs +8 -10
- package/esm2022/multi-combobox/base-multi-combobox.class.mjs +4 -4
- package/esm2022/multi-combobox/helpers.mjs +1 -1
- package/esm2022/multi-combobox/multi-announcer/multi-announcer.directive.mjs +11 -5
- package/esm2022/multi-combobox/multi-combobox.component.mjs +6 -6
- package/esm2022/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +4 -5
- package/esm2022/multi-input/multi-input.component.mjs +3 -3
- package/esm2022/notification/notification-utils/notification-config.mjs +1 -1
- package/esm2022/notification/notification-utils/notification-ref.mjs +1 -1
- package/esm2022/object-attribute/fundamental-ngx-core-object-attribute.mjs +5 -0
- package/esm2022/object-attribute/index.mjs +3 -0
- package/esm2022/object-attribute/object-attribute.component.mjs +49 -0
- package/esm2022/object-attribute/object-attribute.module.mjs +16 -0
- package/esm2022/overflow-layout/overflow-layout.component.mjs +18 -5
- package/esm2022/overflow-layout/overflow-layout.service.mjs +3 -3
- package/esm2022/pagination/pagination.component.mjs +2 -2
- package/esm2022/popover/popover-mobile/popover-mobile.module.mjs +6 -6
- package/esm2022/radio/radio-button/radio-button.component.mjs +2 -2
- package/esm2022/select/select-mobile/select-mobile.module.mjs +5 -5
- package/esm2022/select/select.component.mjs +3 -3
- package/esm2022/select/select.interface.mjs +1 -1
- package/esm2022/shellbar/product-menu/product-menu.component.mjs +8 -11
- package/esm2022/shellbar/shellbar-action/shellbar-action.component.mjs +6 -7
- package/esm2022/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.mjs +6 -7
- package/esm2022/shellbar/user-menu/shellbar-user-menu.component.mjs +5 -6
- package/esm2022/splitter/splitter-pane-container/splitter-pane-container.component.mjs +1 -1
- package/esm2022/switch/switch.component.mjs +1 -1
- package/esm2022/tabs/tab-list.component.mjs +6 -3
- package/esm2022/tabs/tabs.module.mjs +5 -1
- package/esm2022/time/time-column/time-column.component.mjs +1 -1
- package/esm2022/time/time.component.mjs +1 -1
- package/esm2022/time-picker/time-picker.component.mjs +2 -2
- package/esm2022/token/tokenizer.component.mjs +6 -7
- package/esm2022/toolbar/toolbar.component.mjs +10 -12
- package/esm2022/tree/components/tree-item/tree-item.component.mjs +5 -6
- package/esm2022/upload-collection/upload-collection-button-group/upload-collection-button-group.component.mjs +4 -6
- package/esm2022/upload-collection/upload-collection-form-item/upload-collection-form-item.component.mjs +2 -2
- package/feed-input/directives/feed-input-textarea.directive.d.ts +7 -8
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-calendar.mjs +9 -10
- package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-date-picker.mjs +3 -4
- package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +8 -10
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-input.mjs +16 -19
- package/fesm2022/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs +6 -7
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-input-group.mjs +6 -4
- package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-menu.mjs +3 -4
- package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +7 -9
- package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +15 -10
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs +6 -7
- package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-attribute.mjs +69 -0
- package/fesm2022/fundamental-ngx-core-object-attribute.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +18 -5
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-popover.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-radio.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs +6 -6
- package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +12 -14
- package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-splitter.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tabs.mjs +9 -2
- package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time-picker.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-token.mjs +5 -6
- package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +7 -8
- package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tree.mjs +4 -5
- package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +6 -7
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/form/form-control/form-control.component.d.ts +3 -3
- package/fundamental-ngx-core-v0.47.1.tgz +0 -0
- package/input-group/input-group.component.d.ts +10 -4
- package/message-box/directives/message-box-template.directive.d.ts +2 -2
- package/message-strip/message-strip.component.d.ts +2 -2
- package/multi-combobox/base-multi-combobox.class.d.ts +7 -7
- package/multi-combobox/helpers.d.ts +3 -3
- package/multi-combobox/multi-announcer/multi-announcer.directive.d.ts +4 -2
- package/notification/notification-utils/notification-config.d.ts +2 -2
- package/notification/notification-utils/notification-ref.d.ts +5 -5
- package/object-attribute/README.md +25 -0
- package/object-attribute/index.d.ts +2 -0
- package/object-attribute/object-attribute.component.d.ts +26 -0
- package/object-attribute/object-attribute.module.d.ts +7 -0
- package/overflow-layout/overflow-layout.component.d.ts +9 -1
- package/overflow-layout/overflow-layout.service.d.ts +1 -1
- package/package.json +9 -3
- package/pagination/pagination.component.d.ts +2 -2
- package/popover/popover-mobile/popover-mobile.module.d.ts +1 -1
- package/radio/radio-button/radio-button.component.d.ts +12 -12
- package/schematics/add-dependencies/index.js +4 -4
- package/select/select-mobile/select-mobile.module.d.ts +1 -1
- package/select/select.interface.d.ts +8 -8
- package/shellbar/product-menu/product-menu.component.d.ts +3 -3
- package/splitter/splitter-pane-container/splitter-pane-container.component.d.ts +1 -1
- package/switch/switch.component.d.ts +1 -1
- package/tabs/tab-list.component.d.ts +2 -0
- package/tabs/tabs.module.d.ts +4 -0
- package/time/time-column/time-column.component.d.ts +3 -3
- package/time/time.component.d.ts +1 -1
- package/toolbar/toolbar.component.d.ts +2 -2
- package/fundamental-ngx-core-v0.47.0-rc.9.tgz +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
export const SELECT_COMPONENT = new InjectionToken('SelectInterface');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3NlbGVjdC9zZWxlY3QuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsY0FBYyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBT3BGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUFrQixpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExpdmVBbm5vdW5jZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBNb2JpbGVNb2RlLCBNb2JpbGVNb2RlQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21vYmlsZS1tb2RlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgU0VMRUNUX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTZWxlY3RJbnRlcmZhY2U+KCdTZWxlY3RJbnRlcmZhY2UnKTtcblxuLyoqXG4gKiBTZWxlY3QgSW50ZXJmYWNlIHRvIGhhdmUgdHlwaW5nIGFuZCBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmN5IGJldHdlZW5cbiAqIFNlbGVjdENvbXBvbmVudCA8PT0+IFNlbGVjdE1vYmlsZUNvbXBvbmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdEludGVyZmFjZTxUT3B0aW9uID0gYW55PiBleHRlbmRzIE1vYmlsZU1vZGUge1xuICAgIHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWw6IG51bWJlcjtcbiAgICBzZWxlY3RlZDogT3B0aW9uQ29tcG9uZW50O1xuICAgIG1vYmlsZUNvbmZpZzogTW9iaWxlTW9kZUNvbmZpZztcbiAgICBfb3B0aW9uczogUXVlcnlMaXN0PFRPcHRpb24+O1xuICAgIF9kZXN0cm95OiBTdWJqZWN0PHZvaWQ+O1xuICAgIF9vcHRpb25QYW5lbDogRWxlbWVudFJlZjtcbiAgICBfaXNPcGVuOiBib29sZWFuO1xuICAgIF9jYWxjdWxhdGVkTWF4SGVpZ2h0OiBudW1iZXI7XG4gICAgX2xpdmVBbm5vdW5jZXI6IExpdmVBbm5vdW5jZXI7XG5cbiAgICBpc09wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgICBjbG9zZShmb3JjZUNsb3NlPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgb3BlbigpOiB2b2lkO1xuICAgIGZvY3VzKCk6IHZvaWQ7XG4gICAgYmx1cigpOiB2b2lkO1xuICAgIF9pc1J0bCgpOiBib29sZWFuO1xuICAgIF9nZXRJdGVtSGVpZ2h0KCk6IG51bWJlcjtcbiAgICBfZ2V0T3B0aW9uU2Nyb2xsUG9zaXRpb24ob3B0aW9uSW5kZXg6IG51bWJlciwgb3B0aW9uSGVpZ2h0OiBudW1iZXIsIGN1cnJlbnRTY3JvbGxQb3NpdGlvbjogbnVtYmVyKTogdm9pZDtcbn1cbiJdfQ==
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
+
import { NgFor, NgIf } from '@angular/common';
|
|
1
2
|
import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { IconModule } from '@fundamental-ngx/core/icon';
|
|
4
|
-
import { MenuModule } from '@fundamental-ngx/core/menu';
|
|
3
|
+
import { ButtonComponent } from '@fundamental-ngx/core/button';
|
|
5
4
|
import { ContentDensityDirective } from '@fundamental-ngx/core/content-density';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { IconComponent } from '@fundamental-ngx/core/icon';
|
|
6
|
+
import { MenuComponent, MenuModule } from '@fundamental-ngx/core/menu';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@fundamental-ngx/core/
|
|
10
|
-
import * as i2 from "@fundamental-ngx/core/menu";
|
|
11
|
-
import * as i3 from "@fundamental-ngx/core/icon";
|
|
8
|
+
import * as i1 from "@fundamental-ngx/core/menu";
|
|
12
9
|
/**
|
|
13
10
|
* The component that represents a product menu.
|
|
14
11
|
* Product menu is used for navigating to applications within the product.
|
|
@@ -45,11 +42,11 @@ export class ProductMenuComponent {
|
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProductMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProductMenuComponent, isStandalone: true, selector: "fd-product-menu", inputs: { closeOnEscapeKey: "closeOnEscapeKey", closeOnOutsideClick: "closeOnOutsideClick", triggers: "triggers", placement: "placement", disabled: "disabled", fillControlMode: "fillControlMode", control: "control", items: "items", closePopoverOnSelect: "closePopoverOnSelect" }, viewQueries: [{ propertyName: "menu", first: true, predicate: MenuComponent, descendants: true }], ngImport: i0, template: "<ng-template [ngIf]=\"items && items.length > 0\" [ngIfElse]=\"subHeader\">\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-shellbar__button fd-shellbar__button--menu\"\n glyph=\"slim-arrow-down\"\n glyphPosition=\"after\"\n fdCozy\n [disabled]=\"disabled\"\n [fdMenuTrigger]=\"menu\"\n >\n <span class=\"fd-shellbar__title\">{{ control }}</span>\n </button>\n\n <fd-menu\n #menu\n [placement]=\"placement\"\n [triggers]=\"triggers\"\n [fillControlMode]=\"fillControlMode\"\n [closeOnEscapeKey]=\"closeOnEscapeKey\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <li *ngFor=\"let item of items\" (click)=\"itemClicked(item, $event)\" fd-menu-item>\n <a\n [attr.href]=\"item.link ? item.link : null\"\n [attr.target]=\"item.newTab ? '_blank' : null\"\n fd-menu-interactive\n >\n <span fd-menu-title>{{ item.name }}</span>\n <fd-icon *ngIf=\"item.glyph\" fd-menu-addon position=\"after\" [glyph]=\"item.glyph\"></fd-icon>\n </a>\n </li>\n </fd-menu>\n</ng-template>\n\n<ng-template #subHeader>\n <span class=\"fd-shellbar__title fd-product-menu__title\">\n {{ control }}\n </span>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProductMenuComponent, isStandalone: true, selector: "fd-product-menu", inputs: { closeOnEscapeKey: "closeOnEscapeKey", closeOnOutsideClick: "closeOnOutsideClick", triggers: "triggers", placement: "placement", disabled: "disabled", fillControlMode: "fillControlMode", control: "control", items: "items", closePopoverOnSelect: "closePopoverOnSelect" }, viewQueries: [{ propertyName: "menu", first: true, predicate: MenuComponent, descendants: true }], ngImport: i0, template: "<ng-template [ngIf]=\"items && items.length > 0\" [ngIfElse]=\"subHeader\">\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-shellbar__button fd-shellbar__button--menu\"\n glyph=\"slim-arrow-down\"\n glyphPosition=\"after\"\n fdCozy\n [disabled]=\"disabled\"\n [fdMenuTrigger]=\"menu\"\n >\n <span class=\"fd-shellbar__title\">{{ control }}</span>\n </button>\n\n <fd-menu\n #menu\n [placement]=\"placement\"\n [triggers]=\"triggers\"\n [fillControlMode]=\"fillControlMode\"\n [closeOnEscapeKey]=\"closeOnEscapeKey\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <li *ngFor=\"let item of items\" (click)=\"itemClicked(item, $event)\" fd-menu-item>\n <a\n [attr.href]=\"item.link ? item.link : null\"\n [attr.target]=\"item.newTab ? '_blank' : null\"\n fd-menu-interactive\n >\n <span fd-menu-title>{{ item.name }}</span>\n <fd-icon *ngIf=\"item.glyph\" fd-menu-addon position=\"after\" [glyph]=\"item.glyph\"></fd-icon>\n </a>\n </li>\n </fd-menu>\n</ng-template>\n\n<ng-template #subHeader>\n <span class=\"fd-shellbar__title fd-product-menu__title\">\n {{ control }}\n </span>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "ngmodule", type: MenuModule }, { kind: "component", type: i1.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i1.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i1.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i1.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "directive", type: i1.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
49
46
|
}
|
|
50
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProductMenuComponent, decorators: [{
|
|
51
48
|
type: Component,
|
|
52
|
-
args: [{ selector: 'fd-product-menu', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf,
|
|
49
|
+
args: [{ selector: 'fd-product-menu', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, ButtonComponent, ContentDensityDirective, MenuModule, NgFor, IconComponent], template: "<ng-template [ngIf]=\"items && items.length > 0\" [ngIfElse]=\"subHeader\">\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-shellbar__button fd-shellbar__button--menu\"\n glyph=\"slim-arrow-down\"\n glyphPosition=\"after\"\n fdCozy\n [disabled]=\"disabled\"\n [fdMenuTrigger]=\"menu\"\n >\n <span class=\"fd-shellbar__title\">{{ control }}</span>\n </button>\n\n <fd-menu\n #menu\n [placement]=\"placement\"\n [triggers]=\"triggers\"\n [fillControlMode]=\"fillControlMode\"\n [closeOnEscapeKey]=\"closeOnEscapeKey\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <li *ngFor=\"let item of items\" (click)=\"itemClicked(item, $event)\" fd-menu-item>\n <a\n [attr.href]=\"item.link ? item.link : null\"\n [attr.target]=\"item.newTab ? '_blank' : null\"\n fd-menu-interactive\n >\n <span fd-menu-title>{{ item.name }}</span>\n <fd-icon *ngIf=\"item.glyph\" fd-menu-addon position=\"after\" [glyph]=\"item.glyph\"></fd-icon>\n </a>\n </li>\n </fd-menu>\n</ng-template>\n\n<ng-template #subHeader>\n <span class=\"fd-shellbar__title fd-product-menu__title\">\n {{ control }}\n </span>\n</ng-template>\n" }]
|
|
53
50
|
}], propDecorators: { closeOnEscapeKey: [{
|
|
54
51
|
type: Input
|
|
55
52
|
}], closeOnOutsideClick: [{
|
|
@@ -72,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
72
69
|
type: ViewChild,
|
|
73
70
|
args: [MenuComponent]
|
|
74
71
|
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3NoZWxsYmFyL3Byb2R1Y3QtbWVudS9wcm9kdWN0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc2hlbGxiYXIvcHJvZHVjdC1tZW51L3Byb2R1Y3QtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUl2RTs7Ozs7Ozs7R0FRRztBQVNILE1BQU0sT0FBTyxvQkFBb0I7SUFSakM7UUFTSSx1RUFBdUU7UUFFdkUscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBRXhCLG9GQUFvRjtRQUVwRix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFFM0I7Z0dBQ3dGO1FBRXhGLGFBQVEsR0FBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9CO21HQUMyRjtRQUUzRixjQUFTLEdBQWMsWUFBWSxDQUFDO1FBRXBDLHVDQUF1QztRQUV2QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBeUJqQiwrRUFBK0U7UUFFL0UseUJBQW9CLEdBQUcsS0FBSyxDQUFDO0tBZWhDO0lBVEcsY0FBYztJQUNkLFdBQVcsQ0FBQyxJQUFzQixFQUFFLEtBQWlCO1FBQ2pELElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDckI7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQzs4R0E5RFEsb0JBQW9CO2tHQUFwQixvQkFBb0IseVlBbURsQixhQUFhLGdEQzlFNUIsKzFDQXdDQSw0Q0RmYyxJQUFJLDZGQUFFLGVBQWUsd0hBQUUsdUJBQXVCLG1kQUFFLFVBQVUsb3ZCQUFFLEtBQUssbUhBQUUsYUFBYTs7MkZBRWpGLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDSSxpQkFBaUIsaUJBRVosaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDOzhCQUszRixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBTU4sUUFBUTtzQkFEUCxLQUFLO2dCQU1OLFNBQVM7c0JBRFIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBVU4sZUFBZTtzQkFEZCxLQUFLO2dCQVFOLE9BQU87c0JBRE4sS0FBSztnQkFRTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sb0JBQW9CO3NCQURuQixLQUFLO2dCQUtOLElBQUk7c0JBREgsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQsIE1lbnVNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVudSc7XG5pbXBvcnQgeyBQbGFjZW1lbnQsIFBvcG92ZXJGaWxsTW9kZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgU2hlbGxiYXJNZW51SXRlbSB9IGZyb20gJy4uL21vZGVsL3NoZWxsYmFyLW1lbnUtaXRlbSc7XG5cbi8qKlxuICogVGhlIGNvbXBvbmVudCB0aGF0IHJlcHJlc2VudHMgYSBwcm9kdWN0IG1lbnUuXG4gKiBQcm9kdWN0IG1lbnUgaXMgdXNlZCBmb3IgbmF2aWdhdGluZyB0byBhcHBsaWNhdGlvbnMgd2l0aGluIHRoZSBwcm9kdWN0LlxuICogYGBgaHRtbFxuICogPGZkLXByb2R1Y3QtbWVudSBbY29udHJvbF09XCJwcm9kdWN0TWVudUNvbnRyb2xcIlxuICogICAgICAgICAgICAgICAgICBbaXRlbXNdPVwicHJvZHVjdE1lbnVJdGVtc1wiPlxuICogPC9mZC1wcm9kdWN0LW1lbnU+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1wcm9kdWN0LW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgQnV0dG9uQ29tcG9uZW50LCBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSwgTWVudU1vZHVsZSwgTmdGb3IsIEljb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RNZW51Q29tcG9uZW50IHtcbiAgICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBzaG91bGQgY2xvc2Ugd2hlbiB0aGUgZXNjYXBlIGtleSBpcyBwcmVzc2VkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VPbkVzY2FwZUtleSA9IHRydWU7XG5cbiAgICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBzaG91bGQgY2xvc2Ugd2hlbiBhIGNsaWNrIGlzIG1hZGUgb3V0c2lkZSBpdHMgYm91bmRhcmllcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlT25PdXRzaWRlQ2xpY2sgPSB0cnVlO1xuXG4gICAgLyoqIFRoZSB0cmlnZ2VyIGV2ZW50cyB0aGF0IHdpbGwgb3Blbi9jbG9zZSB0aGUgcG9wb3Zlci5cbiAgICAgKiAgQWNjZXB0cyBhbnkgW0hUTUwgRE9NIEV2ZW50c10oaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9qc3JlZi9kb21fb2JqX2V2ZW50LmFzcCkuICovXG4gICAgQElucHV0KClcbiAgICB0cmlnZ2Vyczogc3RyaW5nW10gPSBbJ2NsaWNrJ107XG5cbiAgICAvKiogVGhlIHBsYWNlbWVudCBvZiB0aGUgcG9wb3Zlci4gSXQgY2FuIGJlIG9uZSBvZjogdG9wLCB0b3Atc3RhcnQsIHRvcC1lbmQsIGJvdHRvbSxcbiAgICAgKiAgYm90dG9tLXN0YXJ0LCBib3R0b20tZW5kLCByaWdodCwgcmlnaHQtc3RhcnQsIHJpZ2h0LWVuZCwgbGVmdCwgbGVmdC1zdGFydCwgbGVmdC1lbmQuICovXG4gICAgQElucHV0KClcbiAgICBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9ICdib3R0b20tZW5kJztcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBwb3BvdmVyIGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFByZXNldCBvcHRpb25zIGZvciB0aGUgcG9wb3ZlciBib2R5IHdpZHRoLlxuICAgICAqICogYGF0LWxlYXN0YCB3aWxsIGFwcGx5IGEgbWluaW11bSB3aWR0aCB0byB0aGUgYm9keSBlcXVpdmFsZW50IHRvIHRoZSB3aWR0aCBvZiB0aGUgY29udHJvbC5cbiAgICAgKiAqIGBlcXVhbGAgd2lsbCBhcHBseSBhIHdpZHRoIHRvIHRoZSBib2R5IGVxdWl2YWxlbnQgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb250cm9sLlxuICAgICAqICogTGVhdmUgYmxhbmsgZm9yIG5vIGVmZmVjdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbGxDb250cm9sTW9kZTogTnVsbGFibGU8UG9wb3ZlckZpbGxNb2RlPjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBjb250cm9sIGVsZW1lbnQgdG8gdG9nZ2xlIHRoZSBwcm9kdWN0IG1lbnUsXG4gICAgICogcmVwcmVzZW50ZWQgYnkgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjb250cm9sOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiAgVGhlIGl0ZW1zIGluIHRoZSBwcm9kdWN0IG1lbnUuIElmIHRoZSB2YWx1ZSBpcyBub3QgcGFzc2VkIG9yIHRoZXJlIGlzIGVtcHR5IGFycmF5LFxuICAgICAqIHRoZSB0ZW1wbGF0ZSBjaGFuZ2VzIGFuZCBzaG93cyBvbmx5IGNvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGl0ZW1zOiBTaGVsbGJhck1lbnVJdGVtW107XG5cbiAgICAvKiogV2hlbiBzZXQgdG8gdHJ1ZSwgcG9wb3ZlciBsaXN0IHdpbGwgYmUgY2xvc2VkIGFmdGVyIHNlbGVjdGluZyB0aGUgb3B0aW9uICovXG4gICAgQElucHV0KClcbiAgICBjbG9zZVBvcG92ZXJPblNlbGVjdCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKE1lbnVDb21wb25lbnQpXG4gICAgbWVudTogTWVudUNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaXRlbUNsaWNrZWQoaXRlbTogU2hlbGxiYXJNZW51SXRlbSwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VQb3BvdmVyT25TZWxlY3QpIHtcbiAgICAgICAgICAgIHRoaXMubWVudS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpdGVtLmNhbGxiYWNrKSB7XG4gICAgICAgICAgICBpdGVtLmNhbGxiYWNrKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwXCIgW25nSWZFbHNlXT1cInN1YkhlYWRlclwiPlxuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgY2xhc3M9XCJmZC1zaGVsbGJhcl9fYnV0dG9uIGZkLXNoZWxsYmFyX19idXR0b24tLW1lbnVcIlxuICAgICAgICBnbHlwaD1cInNsaW0tYXJyb3ctZG93blwiXG4gICAgICAgIGdseXBoUG9zaXRpb249XCJhZnRlclwiXG4gICAgICAgIGZkQ296eVxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbZmRNZW51VHJpZ2dlcl09XCJtZW51XCJcbiAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtc2hlbGxiYXJfX3RpdGxlXCI+e3sgY29udHJvbCB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxmZC1tZW51XG4gICAgICAgICNtZW51XG4gICAgICAgIFtwbGFjZW1lbnRdPVwicGxhY2VtZW50XCJcbiAgICAgICAgW3RyaWdnZXJzXT1cInRyaWdnZXJzXCJcbiAgICAgICAgW2ZpbGxDb250cm9sTW9kZV09XCJmaWxsQ29udHJvbE1vZGVcIlxuICAgICAgICBbY2xvc2VPbkVzY2FwZUtleV09XCJjbG9zZU9uRXNjYXBlS2V5XCJcbiAgICAgICAgW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwiY2xvc2VPbk91dHNpZGVDbGlja1wiXG4gICAgPlxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIiAoY2xpY2spPVwiaXRlbUNsaWNrZWQoaXRlbSwgJGV2ZW50KVwiIGZkLW1lbnUtaXRlbT5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJpdGVtLmxpbmsgPyBpdGVtLmxpbmsgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwiaXRlbS5uZXdUYWIgPyAnX2JsYW5rJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgIGZkLW1lbnUtaW50ZXJhY3RpdmVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiAqbmdJZj1cIml0ZW0uZ2x5cGhcIiBmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYWZ0ZXJcIiBbZ2x5cGhdPVwiaXRlbS5nbHlwaFwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICA8L2ZkLW1lbnU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3N1YkhlYWRlcj5cbiAgICA8c3BhbiBjbGFzcz1cImZkLXNoZWxsYmFyX190aXRsZSBmZC1wcm9kdWN0LW1lbnVfX3RpdGxlXCI+XG4gICAgICAgIHt7IGNvbnRyb2wgfX1cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { FD_SHELLBAR_ACTION_COMPONENT } from '../tokens';
|
|
3
1
|
import { NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { ButtonComponent } from '@fundamental-ngx/core/button';
|
|
4
4
|
import { ContentDensityDirective } from '@fundamental-ngx/core/content-density';
|
|
5
|
-
import {
|
|
5
|
+
import { FD_SHELLBAR_ACTION_COMPONENT } from '../tokens';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@fundamental-ngx/core/button";
|
|
8
7
|
/**
|
|
9
8
|
* The component that represents a shellbar action.
|
|
10
9
|
* ```html
|
|
@@ -24,7 +23,7 @@ export class ShellbarActionComponent {
|
|
|
24
23
|
provide: FD_SHELLBAR_ACTION_COMPONENT,
|
|
25
24
|
useExisting: ShellbarActionComponent
|
|
26
25
|
}
|
|
27
|
-
], ngImport: i0, template: "<div class=\"fd-shellbar__action fd-shellbar__action--desktop\">\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-shellbar__button\"\n fdCozy\n [glyph]=\"glyph\"\n (click)=\"callback ? callback($event) : ''\"\n >\n <span *ngIf=\"notificationCount\" class=\"fd-button__badge\" [attr.aria-label]=\"notificationLabel\">\n {{ notificationCount }}\n </span>\n </button>\n</div>\n", dependencies: [{ kind: "
|
|
26
|
+
], ngImport: i0, template: "<div class=\"fd-shellbar__action fd-shellbar__action--desktop\">\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-shellbar__button\"\n fdCozy\n [glyph]=\"glyph\"\n (click)=\"callback ? callback($event) : ''\"\n >\n <span *ngIf=\"notificationCount\" class=\"fd-button__badge\" [attr.aria-label]=\"notificationLabel\">\n {{ notificationCount }}\n </span>\n </button>\n</div>\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
28
27
|
}
|
|
29
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ShellbarActionComponent, decorators: [{
|
|
30
29
|
type: Component,
|
|
@@ -33,7 +32,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
33
32
|
provide: FD_SHELLBAR_ACTION_COMPONENT,
|
|
34
33
|
useExisting: ShellbarActionComponent
|
|
35
34
|
}
|
|
36
|
-
], standalone: true, imports: [
|
|
35
|
+
], standalone: true, imports: [ButtonComponent, ContentDensityDirective, NgIf], template: "<div class=\"fd-shellbar__action fd-shellbar__action--desktop\">\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-shellbar__button\"\n fdCozy\n [glyph]=\"glyph\"\n (click)=\"callback ? callback($event) : ''\"\n >\n <span *ngIf=\"notificationCount\" class=\"fd-button__badge\" [attr.aria-label]=\"notificationLabel\">\n {{ notificationCount }}\n </span>\n </button>\n</div>\n" }]
|
|
37
36
|
}], propDecorators: { glyph: [{
|
|
38
37
|
type: Input
|
|
39
38
|
}], callback: [{
|
|
@@ -45,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
45
44
|
}], notificationCount: [{
|
|
46
45
|
type: Input
|
|
47
46
|
}] } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGxiYXItYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3NoZWxsYmFyL3NoZWxsYmFyLWFjdGlvbi9zaGVsbGJhci1hY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc2hlbGxiYXIvc2hlbGxiYXItYWN0aW9uL3NoZWxsYmFyLWFjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFekQ7Ozs7Ozs7Ozs7O0dBV0c7QUFlSCxNQUFNLE9BQU8sdUJBQXVCOzhHQUF2Qix1QkFBdUI7a0dBQXZCLHVCQUF1QixtTkFUckI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsNEJBQTRCO2dCQUNyQyxXQUFXLEVBQUUsdUJBQXVCO2FBQ3ZDO1NBQ0osMEJDN0JMLCtjQWNBLDRDRGlCYyxlQUFlLHdIQUFFLHVCQUF1QixvZEFBRSxJQUFJOzsyRkFFL0MsdUJBQXVCO2tCQWRuQyxTQUFTOytCQUNJLG9CQUFvQixpQkFFZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSw0QkFBNEI7NEJBQ3JDLFdBQVcseUJBQXlCO3lCQUN2QztxQkFDSixjQUNXLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLENBQUM7OEJBS3pELEtBQUs7c0JBREosS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBGRF9TSEVMTEJBUl9BQ1RJT05fQ09NUE9ORU5UIH0gZnJvbSAnLi4vdG9rZW5zJztcblxuLyoqXG4gKiBUaGUgY29tcG9uZW50IHRoYXQgcmVwcmVzZW50cyBhIHNoZWxsYmFyIGFjdGlvbi5cbiAqIGBgYGh0bWxcbiAqICA8ZmQtc2hlbGxiYXItYWN0aW9uICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiXG4gKiAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiYWN0aW9uLmdseXBoXCJcbiAqICAgICAgICAgICAgICAgICAgICAgIFtjYWxsYmFja109XCJhY3Rpb24uY2FsbGJhY2tcIlxuICogICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImFjdGlvbi5sYWJlbFwiXG4gKiAgICAgICAgICAgICAgICAgICAgICBbbm90aWZpY2F0aW9uQ291bnRdPVwiYWN0aW9uLm5vdGlmaWNhdGlvbkNvdW50XCJcbiAqICAgICAgICAgICAgICAgICAgICAgIFtub3RpZmljYXRpb25MYWJlbF09XCJhY3Rpb24ubm90aWZpY2F0aW9uTGFiZWxcIj5cbiAqICA8L2ZkLXNoZWxsYmFyLWFjdGlvbj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXNoZWxsYmFyLWFjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NoZWxsYmFyLWFjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfU0hFTExCQVJfQUNUSU9OX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBTaGVsbGJhckFjdGlvbkNvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtCdXR0b25Db21wb25lbnQsIENvbnRlbnREZW5zaXR5RGlyZWN0aXZlLCBOZ0lmXVxufSlcbmV4cG9ydCBjbGFzcyBTaGVsbGJhckFjdGlvbkNvbXBvbmVudCB7XG4gICAgLyoqIFRoZSBnbHlwaCAoaWNvbikgbmFtZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGg6IHN0cmluZztcblxuICAgIC8qKiBDYWxsYmFjayB0aGF0IGhhbmxkbGVzIHRoZSByZXNwb25zZSB0byBjbGlja3Mgb24gYW55IG9mIHRoZSBhY3Rpb25zLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2FsbGJhY2s6IE51bGxhYmxlPChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZD47XG5cbiAgICAvKiogVGhlIGFjdGlvbiBsYWJlbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogVGhlIG5vdGlmaWNhdGlvbiBsYWJlbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5vdGlmaWNhdGlvbkxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogUmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIG5vdGlmaWNhdGlvbnMuICovXG4gICAgQElucHV0KClcbiAgICBub3RpZmljYXRpb25Db3VudDogbnVtYmVyO1xufVxuIiwiPGRpdiBjbGFzcz1cImZkLXNoZWxsYmFyX19hY3Rpb24gZmQtc2hlbGxiYXJfX2FjdGlvbi0tZGVza3RvcFwiPlxuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgY2xhc3M9XCJmZC1zaGVsbGJhcl9fYnV0dG9uXCJcbiAgICAgICAgZmRDb3p5XG4gICAgICAgIFtnbHlwaF09XCJnbHlwaFwiXG4gICAgICAgIChjbGljayk9XCJjYWxsYmFjayA/IGNhbGxiYWNrKCRldmVudCkgOiAnJ1wiXG4gICAgPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIm5vdGlmaWNhdGlvbkNvdW50XCIgY2xhc3M9XCJmZC1idXR0b25fX2JhZGdlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJub3RpZmljYXRpb25MYWJlbFwiPlxuICAgICAgICAgICAge3sgbm90aWZpY2F0aW9uQ291bnQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
+
import { NgFor, NgIf } from '@angular/common';
|
|
1
2
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, QueryList, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { FdTranslatePipe } from '@fundamental-ngx/i18n';
|
|
3
|
-
import { NgIf, NgFor } from '@angular/common';
|
|
4
|
-
import { ButtonModule } from '@fundamental-ngx/core/button';
|
|
5
3
|
import { ActionSheetModule } from '@fundamental-ngx/core/action-sheet';
|
|
4
|
+
import { ButtonComponent } from '@fundamental-ngx/core/button';
|
|
5
|
+
import { FdTranslatePipe } from '@fundamental-ngx/i18n';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@fundamental-ngx/core/action-sheet";
|
|
8
|
-
import * as i2 from "@fundamental-ngx/core/button";
|
|
9
8
|
export class ShellbarActionsMobileComponent {
|
|
10
9
|
constructor() {
|
|
11
10
|
/**
|
|
@@ -31,11 +30,11 @@ export class ShellbarActionsMobileComponent {
|
|
|
31
30
|
});
|
|
32
31
|
}
|
|
33
32
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ShellbarActionsMobileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ShellbarActionsMobileComponent, isStandalone: true, selector: "fd-shellbar-actions-mobile", inputs: { shellbarActions: "shellbarActions", searchExists: "searchExists" }, outputs: { showSearch: "showSearch" }, ngImport: i0, template: "<div class=\"fd-shellbar-collapse\">\n <fd-action-sheet placement=\"bottom-end\" #actionSheet>\n <fd-action-sheet-control>\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"overflow\"\n class=\"fd-shellbar__button\"\n [attr.aria-label]=\"'coreShellbar.collapsedItemMenuLabel' | fdTranslate\"\n >\n <span *ngIf=\"totalNotifications\" class=\"fd-button__badge\">\n {{ totalNotifications }}\n </span>\n </button>\n </fd-action-sheet-control>\n\n <fd-action-sheet-body>\n <li\n fd-action-sheet-item\n *ngIf=\"searchExists\"\n tabindex=\"-1\"\n [glyph]=\"'search'\"\n [label]=\"'coreShellbar.search' | fdTranslate\"\n (click)=\"showSearch.emit(); actionSheet.close()\"\n ></li>\n <li\n fd-action-sheet-item\n *ngFor=\"let action of shellbarActions\"\n tabindex=\"-1\"\n [glyph]=\"action.glyph\"\n [label]=\"action.label\"\n (click)=\"actionClicked(action, $event)\"\n >\n <span *ngIf=\"action.notificationCount\" class=\"fd-button__badge\">{{ action.notificationCount }}</span>\n </li>\n </fd-action-sheet-body>\n </fd-action-sheet>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ActionSheetModule }, { kind: "component", type: i1.ActionSheetComponent, selector: "fd-action-sheet", inputs: ["mobile", "placement", "noArrow", "isOpen", "keyboardSupport", "triggers"], outputs: ["focusEscapeList", "isOpenChange"] }, { kind: "component", type: i1.ActionSheetControlComponent, selector: "fd-action-sheet-control", outputs: ["clicked"] }, { kind: "component", type: i1.ActionSheetItemComponent, selector: "[fd-action-sheet-item]", inputs: ["label", "glyph", "negative", "isCloseButton", "disabled"], outputs: ["keyDown"] }, { kind: "component", type: i1.ActionSheetBodyComponent, selector: "fd-action-sheet-body", inputs: ["actionSheetBodyId", "mobile", "ariaLabel", "ariaLabelledby"] }, { kind: "
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ShellbarActionsMobileComponent, isStandalone: true, selector: "fd-shellbar-actions-mobile", inputs: { shellbarActions: "shellbarActions", searchExists: "searchExists" }, outputs: { showSearch: "showSearch" }, ngImport: i0, template: "<div class=\"fd-shellbar-collapse\">\n <fd-action-sheet placement=\"bottom-end\" #actionSheet>\n <fd-action-sheet-control>\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"overflow\"\n class=\"fd-shellbar__button\"\n [attr.aria-label]=\"'coreShellbar.collapsedItemMenuLabel' | fdTranslate\"\n >\n <span *ngIf=\"totalNotifications\" class=\"fd-button__badge\">\n {{ totalNotifications }}\n </span>\n </button>\n </fd-action-sheet-control>\n\n <fd-action-sheet-body>\n <li\n fd-action-sheet-item\n *ngIf=\"searchExists\"\n tabindex=\"-1\"\n [glyph]=\"'search'\"\n [label]=\"'coreShellbar.search' | fdTranslate\"\n (click)=\"showSearch.emit(); actionSheet.close()\"\n ></li>\n <li\n fd-action-sheet-item\n *ngFor=\"let action of shellbarActions\"\n tabindex=\"-1\"\n [glyph]=\"action.glyph\"\n [label]=\"action.label\"\n (click)=\"actionClicked(action, $event)\"\n >\n <span *ngIf=\"action.notificationCount\" class=\"fd-button__badge\">{{ action.notificationCount }}</span>\n </li>\n </fd-action-sheet-body>\n </fd-action-sheet>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ActionSheetModule }, { kind: "component", type: i1.ActionSheetComponent, selector: "fd-action-sheet", inputs: ["mobile", "placement", "noArrow", "isOpen", "keyboardSupport", "triggers"], outputs: ["focusEscapeList", "isOpenChange"] }, { kind: "component", type: i1.ActionSheetControlComponent, selector: "fd-action-sheet-control", outputs: ["clicked"] }, { kind: "component", type: i1.ActionSheetItemComponent, selector: "[fd-action-sheet-item]", inputs: ["label", "glyph", "negative", "isCloseButton", "disabled"], outputs: ["keyDown"] }, { kind: "component", type: i1.ActionSheetBodyComponent, selector: "fd-action-sheet-body", inputs: ["actionSheetBodyId", "mobile", "ariaLabel", "ariaLabelledby"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
35
34
|
}
|
|
36
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ShellbarActionsMobileComponent, decorators: [{
|
|
37
36
|
type: Component,
|
|
38
|
-
args: [{ selector: 'fd-shellbar-actions-mobile', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ActionSheetModule,
|
|
37
|
+
args: [{ selector: 'fd-shellbar-actions-mobile', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ActionSheetModule, ButtonComponent, NgIf, NgFor, FdTranslatePipe], template: "<div class=\"fd-shellbar-collapse\">\n <fd-action-sheet placement=\"bottom-end\" #actionSheet>\n <fd-action-sheet-control>\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"overflow\"\n class=\"fd-shellbar__button\"\n [attr.aria-label]=\"'coreShellbar.collapsedItemMenuLabel' | fdTranslate\"\n >\n <span *ngIf=\"totalNotifications\" class=\"fd-button__badge\">\n {{ totalNotifications }}\n </span>\n </button>\n </fd-action-sheet-control>\n\n <fd-action-sheet-body>\n <li\n fd-action-sheet-item\n *ngIf=\"searchExists\"\n tabindex=\"-1\"\n [glyph]=\"'search'\"\n [label]=\"'coreShellbar.search' | fdTranslate\"\n (click)=\"showSearch.emit(); actionSheet.close()\"\n ></li>\n <li\n fd-action-sheet-item\n *ngFor=\"let action of shellbarActions\"\n tabindex=\"-1\"\n [glyph]=\"action.glyph\"\n [label]=\"action.label\"\n (click)=\"actionClicked(action, $event)\"\n >\n <span *ngIf=\"action.notificationCount\" class=\"fd-button__badge\">{{ action.notificationCount }}</span>\n </li>\n </fd-action-sheet-body>\n </fd-action-sheet>\n</div>\n" }]
|
|
39
38
|
}], propDecorators: { shellbarActions: [{
|
|
40
39
|
type: Input
|
|
41
40
|
}], searchExists: [{
|
|
@@ -43,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
43
42
|
}], showSearch: [{
|
|
44
43
|
type: Output
|
|
45
44
|
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGxiYXItYWN0aW9ucy1tb2JpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc2hlbGxiYXIvc2hlbGxiYXItYWN0aW9ucy1tb2JpbGUvc2hlbGxiYXItYWN0aW9ucy1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc2hlbGxiYXIvc2hlbGxiYXItYWN0aW9ucy1tb2JpbGUvc2hlbGxiYXItYWN0aW9ucy1tb2JpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQVd4RCxNQUFNLE9BQU8sOEJBQThCO0lBUjNDO1FBYUk7O1dBRUc7UUFFSCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixjQUFjO1FBRWQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FzQnpDO0lBakJHLGNBQWM7SUFDZCxhQUFhLENBQUMsSUFBNkIsRUFBRSxLQUFpQjtRQUMxRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDZCxxQkFBcUI7UUFDakIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQztRQUU1QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BDLElBQUksTUFBTSxDQUFDLGlCQUFpQixJQUFJLE9BQU8sTUFBTSxDQUFDLGlCQUFpQixLQUFLLFFBQVEsRUFBRTtnQkFDMUUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUM7YUFDaEY7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBbENRLDhCQUE4QjtrR0FBOUIsOEJBQThCLDJNQ3hCM0MsKzhDQXNDQSwyQ0RoQmMsaUJBQWlCLDBzQkFBRSxlQUFlLHdIQUFFLElBQUksNkZBQUUsS0FBSyw4R0FBRSxlQUFlOzsyRkFFakUsOEJBQThCO2tCQVIxQyxTQUFTOytCQUNJLDRCQUE0QixpQkFFdkIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLENBQUM7OEJBSzNFLGVBQWU7c0JBRGQsS0FBSztnQkFPTixZQUFZO3NCQURYLEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvblNoZWV0TW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2FjdGlvbi1zaGVldCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBTaGVsbGJhckFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NoZWxsYmFyLWFjdGlvbi9zaGVsbGJhci1hY3Rpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1zaGVsbGJhci1hY3Rpb25zLW1vYmlsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NoZWxsYmFyLWFjdGlvbnMtbW9iaWxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0FjdGlvblNoZWV0TW9kdWxlLCBCdXR0b25Db21wb25lbnQsIE5nSWYsIE5nRm9yLCBGZFRyYW5zbGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFNoZWxsYmFyQWN0aW9uc01vYmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBzaGVsbGJhckFjdGlvbnM6IFF1ZXJ5TGlzdDxTaGVsbGJhckFjdGlvbkNvbXBvbmVudD47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBzZWFyY2ggaXMgcHJlc2VudCBpbiB0aGUgc2hlbGxiYXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZWFyY2hFeGlzdHMgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQE91dHB1dCgpXG4gICAgc2hvd1NlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdG90YWxOb3RpZmljYXRpb25zOiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFjdGlvbkNsaWNrZWQoaXRlbTogU2hlbGxiYXJBY3Rpb25Db21wb25lbnQsIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChpdGVtLmNhbGxiYWNrKSB7XG4gICAgICAgICAgICBpdGVtLmNhbGxiYWNrKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRvdGFsTm90aWZpY2F0aW9ucyA9IDA7XG5cbiAgICAgICAgdGhpcy5zaGVsbGJhckFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uLm5vdGlmaWNhdGlvbkNvdW50ICYmIHR5cGVvZiBhY3Rpb24ubm90aWZpY2F0aW9uQ291bnQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b3RhbE5vdGlmaWNhdGlvbnMgPSB0aGlzLnRvdGFsTm90aWZpY2F0aW9ucyArIGFjdGlvbi5ub3RpZmljYXRpb25Db3VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZkLXNoZWxsYmFyLWNvbGxhcHNlXCI+XG4gICAgPGZkLWFjdGlvbi1zaGVldCBwbGFjZW1lbnQ9XCJib3R0b20tZW5kXCIgI2FjdGlvblNoZWV0PlxuICAgICAgICA8ZmQtYWN0aW9uLXNoZWV0LWNvbnRyb2w+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIGdseXBoPVwib3ZlcmZsb3dcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtc2hlbGxiYXJfX2J1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInY29yZVNoZWxsYmFyLmNvbGxhcHNlZEl0ZW1NZW51TGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidG90YWxOb3RpZmljYXRpb25zXCIgY2xhc3M9XCJmZC1idXR0b25fX2JhZGdlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHRvdGFsTm90aWZpY2F0aW9ucyB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2ZkLWFjdGlvbi1zaGVldC1jb250cm9sPlxuXG4gICAgICAgIDxmZC1hY3Rpb24tc2hlZXQtYm9keT5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgIGZkLWFjdGlvbi1zaGVldC1pdGVtXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hFeGlzdHNcIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCInc2VhcmNoJ1wiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidjb3JlU2hlbGxiYXIuc2VhcmNoJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1NlYXJjaC5lbWl0KCk7IGFjdGlvblNoZWV0LmNsb3NlKClcIlxuICAgICAgICAgICAgPjwvbGk+XG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICBmZC1hY3Rpb24tc2hlZXQtaXRlbVxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhY3Rpb24gb2Ygc2hlbGxiYXJBY3Rpb25zXCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiYWN0aW9uLmdseXBoXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiYWN0aW9uLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uQ2xpY2tlZChhY3Rpb24sICRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWN0aW9uLm5vdGlmaWNhdGlvbkNvdW50XCIgY2xhc3M9XCJmZC1idXR0b25fX2JhZGdlXCI+e3sgYWN0aW9uLm5vdGlmaWNhdGlvbkNvdW50IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtYm9keT5cbiAgICA8L2ZkLWFjdGlvbi1zaGVldD5cbjwvZGl2PlxuIl19
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { NgFor, NgIf } from '@angular/common';
|
|
2
2
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
3
3
|
import { AvatarComponent } from '@fundamental-ngx/core/avatar';
|
|
4
|
-
import {
|
|
4
|
+
import { ButtonComponent } from '@fundamental-ngx/core/button';
|
|
5
5
|
import { MenuComponent, MenuModule } from '@fundamental-ngx/core/menu';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@fundamental-ngx/core/
|
|
8
|
-
import * as i2 from "@fundamental-ngx/core/menu";
|
|
7
|
+
import * as i1 from "@fundamental-ngx/core/menu";
|
|
9
8
|
/**
|
|
10
9
|
* This Component extends popover component and passes all the options and events from outside to popover component
|
|
11
10
|
* and Vice Versa
|
|
@@ -39,11 +38,11 @@ export class ShellbarUserMenuComponent {
|
|
|
39
38
|
}
|
|
40
39
|
}
|
|
41
40
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ShellbarUserMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ShellbarUserMenuComponent, isStandalone: true, selector: "fd-shellbar-user-menu", inputs: { user: "user", userMenu: "userMenu", fillControlMode: "fillControlMode", placement: "placement", triggers: "triggers", closeOnEscapeKey: "closeOnEscapeKey", closeOnOutsideClick: "closeOnOutsideClick", disabled: "disabled", noArrow: "noArrow" }, outputs: { itemClicked: "itemClicked" }, viewQueries: [{ propertyName: "menu", first: true, predicate: MenuComponent, descendants: true }], ngImport: i0, template: "<div class=\"fd-shellbar__action fd-shellbar__action--show-always\" *ngIf=\"user\">\n <div class=\"fd-user-menu\">\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-shellbar__button fd-shellbar__button--user-menu\"\n [disabled]=\"disabled\"\n [fdMenuTrigger]=\"menu\"\n >\n <fd-avatar\n size=\"xs\"\n *ngIf=\"!user.image\"\n [colorAccent]=\"user.colorAccent\"\n [circle]=\"true\"\n label=\"{{ user.fullName }}\"\n >\n </fd-avatar>\n\n <fd-avatar\n [colorAccent]=\"user.colorAccent\"\n [circle]=\"true\"\n size=\"xs\"\n *ngIf=\"user.image\"\n image=\"{{ user.image }}\"\n ></fd-avatar>\n </button>\n\n <fd-menu\n #menu\n *ngIf=\"userMenu\"\n [triggers]=\"triggers\"\n [placement]=\"placement\"\n [fillControlMode]=\"fillControlMode\"\n [closeOnEscapeKey]=\"closeOnEscapeKey\"\n [noArrow]=\"noArrow\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <li fd-menu-item *ngFor=\"let item of userMenu\" (click)=\"itemClick(item, $event)\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ item.text }}</span>\n </div>\n </li>\n </fd-menu>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "
|
|
41
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ShellbarUserMenuComponent, isStandalone: true, selector: "fd-shellbar-user-menu", inputs: { user: "user", userMenu: "userMenu", fillControlMode: "fillControlMode", placement: "placement", triggers: "triggers", closeOnEscapeKey: "closeOnEscapeKey", closeOnOutsideClick: "closeOnOutsideClick", disabled: "disabled", noArrow: "noArrow" }, outputs: { itemClicked: "itemClicked" }, viewQueries: [{ propertyName: "menu", first: true, predicate: MenuComponent, descendants: true }], ngImport: i0, template: "<div class=\"fd-shellbar__action fd-shellbar__action--show-always\" *ngIf=\"user\">\n <div class=\"fd-user-menu\">\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-shellbar__button fd-shellbar__button--user-menu\"\n [disabled]=\"disabled\"\n [fdMenuTrigger]=\"menu\"\n >\n <fd-avatar\n size=\"xs\"\n *ngIf=\"!user.image\"\n [colorAccent]=\"user.colorAccent\"\n [circle]=\"true\"\n label=\"{{ user.fullName }}\"\n >\n </fd-avatar>\n\n <fd-avatar\n [colorAccent]=\"user.colorAccent\"\n [circle]=\"true\"\n size=\"xs\"\n *ngIf=\"user.image\"\n image=\"{{ user.image }}\"\n ></fd-avatar>\n </button>\n\n <fd-menu\n #menu\n *ngIf=\"userMenu\"\n [triggers]=\"triggers\"\n [placement]=\"placement\"\n [fillControlMode]=\"fillControlMode\"\n [closeOnEscapeKey]=\"closeOnEscapeKey\"\n [noArrow]=\"noArrow\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <li fd-menu-item *ngFor=\"let item of userMenu\" (click)=\"itemClick(item, $event)\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ item.text }}</span>\n </div>\n </li>\n </fd-menu>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "ngmodule", type: MenuModule }, { kind: "component", type: i1.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i1.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i1.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i1.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "directive", type: i1.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
43
42
|
}
|
|
44
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ShellbarUserMenuComponent, decorators: [{
|
|
45
44
|
type: Component,
|
|
46
|
-
args: [{ selector: 'fd-shellbar-user-menu', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf,
|
|
45
|
+
args: [{ selector: 'fd-shellbar-user-menu', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, ButtonComponent, MenuModule, AvatarComponent, NgFor], template: "<div class=\"fd-shellbar__action fd-shellbar__action--show-always\" *ngIf=\"user\">\n <div class=\"fd-user-menu\">\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-shellbar__button fd-shellbar__button--user-menu\"\n [disabled]=\"disabled\"\n [fdMenuTrigger]=\"menu\"\n >\n <fd-avatar\n size=\"xs\"\n *ngIf=\"!user.image\"\n [colorAccent]=\"user.colorAccent\"\n [circle]=\"true\"\n label=\"{{ user.fullName }}\"\n >\n </fd-avatar>\n\n <fd-avatar\n [colorAccent]=\"user.colorAccent\"\n [circle]=\"true\"\n size=\"xs\"\n *ngIf=\"user.image\"\n image=\"{{ user.image }}\"\n ></fd-avatar>\n </button>\n\n <fd-menu\n #menu\n *ngIf=\"userMenu\"\n [triggers]=\"triggers\"\n [placement]=\"placement\"\n [fillControlMode]=\"fillControlMode\"\n [closeOnEscapeKey]=\"closeOnEscapeKey\"\n [noArrow]=\"noArrow\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <li fd-menu-item *ngFor=\"let item of userMenu\" (click)=\"itemClick(item, $event)\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ item.text }}</span>\n </div>\n </li>\n </fd-menu>\n </div>\n</div>\n" }]
|
|
47
46
|
}], propDecorators: { user: [{
|
|
48
47
|
type: Input
|
|
49
48
|
}], userMenu: [{
|
|
@@ -68,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
68
67
|
type: ViewChild,
|
|
69
68
|
args: [MenuComponent]
|
|
70
69
|
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGxiYXItdXNlci1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3NoZWxsYmFyL3VzZXItbWVudS9zaGVsbGJhci11c2VyLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc2hlbGxiYXIvdXNlci1tZW51L3NoZWxsYmFyLXVzZXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBS3ZFOzs7S0FHSztBQVFMLE1BQU0sT0FBTyx5QkFBeUI7SUFQdEM7UUF5Qkk7bUdBQzJGO1FBRTNGLGNBQVMsR0FBYyxZQUFZLENBQUM7UUFFcEM7Z0dBQ3dGO1FBRXhGLGFBQVEsR0FBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9CLHVFQUF1RTtRQUV2RSxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFFeEIsb0ZBQW9GO1FBRXBGLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQUUzQix1Q0FBdUM7UUFFdkMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQiwrQ0FBK0M7UUFFL0MsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixrQ0FBa0M7UUFFbEMsZ0JBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQWU5RDtJQVRHOztPQUVHO0lBQ0gsU0FBUyxDQUFDLElBQXNCLEVBQUUsS0FBaUI7UUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQzs4R0E1RFEseUJBQXlCO2tHQUF6Qix5QkFBeUIsOFpBaUR2QixhQUFhLGdEQ3RFNUIsbWdEQTZDQSw0Q0QxQmMsSUFBSSw2RkFBRSxlQUFlLHVIQUFFLFVBQVUsb3ZCQUFFLGVBQWUsMldBQUUsS0FBSzs7MkZBRTFELHlCQUF5QjtrQkFQckMsU0FBUzsrQkFDSSx1QkFBdUIsbUJBRWhCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQzs4QkFLcEUsSUFBSTtzQkFESCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFVTixlQUFlO3NCQURkLEtBQUs7Z0JBTU4sU0FBUztzQkFEUixLQUFLO2dCQU1OLFFBQVE7c0JBRFAsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSztnQkFLTixXQUFXO3NCQURWLE1BQU07Z0JBS1AsSUFBSTtzQkFESCxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYXZhdGFyJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgTWVudUNvbXBvbmVudCwgTWVudU1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tZW51JztcbmltcG9ydCB7IFBsYWNlbWVudCwgUG9wb3ZlckZpbGxNb2RlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBTaGVsbGJhclVzZXIgfSBmcm9tICcuLi9tb2RlbC9zaGVsbGJhci11c2VyJztcbmltcG9ydCB7IFNoZWxsYmFyVXNlck1lbnUgfSBmcm9tICcuLi9tb2RlbC9zaGVsbGJhci11c2VyLW1lbnUnO1xuXG4vKipcbiAqIFRoaXMgQ29tcG9uZW50IGV4dGVuZHMgcG9wb3ZlciBjb21wb25lbnQgYW5kIHBhc3NlcyBhbGwgdGhlIG9wdGlvbnMgYW5kIGV2ZW50cyBmcm9tIG91dHNpZGUgdG8gcG9wb3ZlciBjb21wb25lbnRcbiAqIGFuZCBWaWNlIFZlcnNhXG4gKiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1zaGVsbGJhci11c2VyLW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaGVsbGJhci11c2VyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIEJ1dHRvbkNvbXBvbmVudCwgTWVudU1vZHVsZSwgQXZhdGFyQ29tcG9uZW50LCBOZ0Zvcl1cbn0pXG5leHBvcnQgY2xhc3MgU2hlbGxiYXJVc2VyTWVudUNvbXBvbmVudCB7XG4gICAgLyoqIFRoZSB1c2VyIGRhdGEuICovXG4gICAgQElucHV0KClcbiAgICB1c2VyOiBTaGVsbGJhclVzZXI7XG5cbiAgICAvKiogVGhlIHVzZXIgbWVudSBkYXRhLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdXNlck1lbnU6IFNoZWxsYmFyVXNlck1lbnVbXTtcblxuICAgIC8qKlxuICAgICAqIFByZXNldCBvcHRpb25zIGZvciB0aGUgcG9wb3ZlciBib2R5IHdpZHRoLlxuICAgICAqICogYGF0LWxlYXN0YCB3aWxsIGFwcGx5IGEgbWluaW11bSB3aWR0aCB0byB0aGUgYm9keSBlcXVpdmFsZW50IHRvIHRoZSB3aWR0aCBvZiB0aGUgY29udHJvbC5cbiAgICAgKiAqIGBlcXVhbGAgd2lsbCBhcHBseSBhIHdpZHRoIHRvIHRoZSBib2R5IGVxdWl2YWxlbnQgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb250cm9sLlxuICAgICAqICogTGVhdmUgYmxhbmsgZm9yIG5vIGVmZmVjdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbGxDb250cm9sTW9kZTogTnVsbGFibGU8UG9wb3ZlckZpbGxNb2RlPjtcblxuICAgIC8qKiBUaGUgcGxhY2VtZW50IG9mIHRoZSBwb3BvdmVyLiBJdCBjYW4gYmUgb25lIG9mOiB0b3AsIHRvcC1zdGFydCwgdG9wLWVuZCwgYm90dG9tLFxuICAgICAqICBib3R0b20tc3RhcnQsIGJvdHRvbS1lbmQsIHJpZ2h0LCByaWdodC1zdGFydCwgcmlnaHQtZW5kLCBsZWZ0LCBsZWZ0LXN0YXJ0LCBsZWZ0LWVuZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlbWVudDogUGxhY2VtZW50ID0gJ2JvdHRvbS1lbmQnO1xuXG4gICAgLyoqIFRoZSB0cmlnZ2VyIGV2ZW50cyB0aGF0IHdpbGwgb3Blbi9jbG9zZSB0aGUgcG9wb3Zlci5cbiAgICAgKiAgQWNjZXB0cyBhbnkgW0hUTUwgRE9NIEV2ZW50c10oaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9qc3JlZi9kb21fb2JqX2V2ZW50LmFzcCkuICovXG4gICAgQElucHV0KClcbiAgICB0cmlnZ2Vyczogc3RyaW5nW10gPSBbJ2NsaWNrJ107XG5cbiAgICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBzaG91bGQgY2xvc2Ugd2hlbiB0aGUgZXNjYXBlIGtleSBpcyBwcmVzc2VkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VPbkVzY2FwZUtleSA9IHRydWU7XG5cbiAgICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBzaG91bGQgY2xvc2Ugd2hlbiBhIGNsaWNrIGlzIG1hZGUgb3V0c2lkZSBpdHMgYm91bmRhcmllcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlT25PdXRzaWRlQ2xpY2sgPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHBvcG92ZXIgaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIHBvcG92ZXIgYXJyb3cgKi9cbiAgICBASW5wdXQoKVxuICAgIG5vQXJyb3cgPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIG9uIGl0ZW0gY2xpY2sgKi9cbiAgICBAT3V0cHV0KClcbiAgICBpdGVtQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIFJlZmVyZW5jZSB0byBNZW51IENvbXBvbmVudCAqL1xuICAgIEBWaWV3Q2hpbGQoTWVudUNvbXBvbmVudClcbiAgICBtZW51OiBNZW51Q29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGl0ZW1DbGljayhpdGVtOiBTaGVsbGJhclVzZXJNZW51LCBldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1DbGlja2VkLmVtaXQoKTtcbiAgICAgICAgaWYgKGl0ZW0uY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGl0ZW0uY2FsbGJhY2soZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZkLXNoZWxsYmFyX19hY3Rpb24gZmQtc2hlbGxiYXJfX2FjdGlvbi0tc2hvdy1hbHdheXNcIiAqbmdJZj1cInVzZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmQtdXNlci1tZW51XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1zaGVsbGJhcl9fYnV0dG9uIGZkLXNoZWxsYmFyX19idXR0b24tLXVzZXItbWVudVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ZkTWVudVRyaWdnZXJdPVwibWVudVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmZC1hdmF0YXJcbiAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXVzZXIuaW1hZ2VcIlxuICAgICAgICAgICAgICAgIFtjb2xvckFjY2VudF09XCJ1c2VyLmNvbG9yQWNjZW50XCJcbiAgICAgICAgICAgICAgICBbY2lyY2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwie3sgdXNlci5mdWxsTmFtZSB9fVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2ZkLWF2YXRhcj5cblxuICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgIFtjb2xvckFjY2VudF09XCJ1c2VyLmNvbG9yQWNjZW50XCJcbiAgICAgICAgICAgICAgICBbY2lyY2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ1c2VyLmltYWdlXCJcbiAgICAgICAgICAgICAgICBpbWFnZT1cInt7IHVzZXIuaW1hZ2UgfX1cIlxuICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8ZmQtbWVudVxuICAgICAgICAgICAgI21lbnVcbiAgICAgICAgICAgICpuZ0lmPVwidXNlck1lbnVcIlxuICAgICAgICAgICAgW3RyaWdnZXJzXT1cInRyaWdnZXJzXCJcbiAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwicGxhY2VtZW50XCJcbiAgICAgICAgICAgIFtmaWxsQ29udHJvbE1vZGVdPVwiZmlsbENvbnRyb2xNb2RlXCJcbiAgICAgICAgICAgIFtjbG9zZU9uRXNjYXBlS2V5XT1cImNsb3NlT25Fc2NhcGVLZXlcIlxuICAgICAgICAgICAgW25vQXJyb3ddPVwibm9BcnJvd1wiXG4gICAgICAgICAgICBbY2xvc2VPbk91dHNpZGVDbGlja109XCJjbG9zZU9uT3V0c2lkZUNsaWNrXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiB1c2VyTWVudVwiIChjbGljayk9XCJpdGVtQ2xpY2soaXRlbSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT57eyBpdGVtLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L2ZkLW1lbnU+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -354,4 +354,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
354
354
|
standalone: true
|
|
355
355
|
}]
|
|
356
356
|
}], ctorParameters: function () { return [{ type: SplitterPaneContainerComponent }]; } });
|
|
357
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXItcGFuZS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc3BsaXR0ZXIvc3BsaXR0ZXItcGFuZS1jb250YWluZXIvc3BsaXR0ZXItcGFuZS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc3BsaXR0ZXIvc3BsaXR0ZXItcGFuZS1jb250YWluZXIvc3BsaXR0ZXItcGFuZS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBRUosU0FBUyxFQUNULFFBQVEsRUFDUixpQkFBaUIsRUFDakIsVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFD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QUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDOzhHQVhRLGlCQUFpQjs0R0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUo3QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxlQUFlO29CQUNyQixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUGlwZSxcbiAgICBQaXBlVHJhbnNmb3JtLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUEFORV9BVVRPX1NJWkUsIFBBTkVfTk9ORV9TSVpFLCBSRVNJWkVSX1NJWkVfUFgsIFJPT1RfUEFHRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTcGxpdHRlclBhbmVSZXNpemVFdmVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvc3BsaXR0ZXItcGFuZS1yZXNpemUtZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNwbGl0dGVyUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NwbGl0dGVyLXBhZ2luYXRpb24vc3BsaXR0ZXItcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BsaXR0ZXJSZXNpemVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BsaXR0ZXItcmVzaXplci9zcGxpdHRlci1yZXNpemVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudCB9IGZyb20gJy4uL3NwbGl0dGVyLXNwbGl0LXBhbmUvc3BsaXR0ZXItc3BsaXQtcGFuZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BsaXR0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9zcGxpdHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBTcGxpdHRlclBhbmVDb250YWluZXJPcmllbnRhdGlvbixcbiAgICBTcGxpdHRlclBhbmVDb250YWluZXJPcmllbnRhdGlvblR5cGVcbn0gZnJvbSAnLi9zcGxpdHRlci1wYW5lLW9yaWVudGF0aW9uLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXNwbGl0dGVyLXBhbmUtY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3BsaXR0ZXItcGFuZS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLXNwbGl0dGVyX19wYW5lLWNvbnRhaW5lcicsXG4gICAgICAgICdbY2xhc3MuZmQtc3BsaXR0ZXJfX3BhbmUtY29udGFpbmVyLS1ob3Jpem9udGFsXSc6ICchX2lzUm9vdENvbnRhaW5lciAmJiBfaXNIb3Jpem9udGFsJyxcbiAgICAgICAgJ1tjbGFzcy5mZC1zcGxpdHRlcl9fcGFuZS1jb250YWluZXItLXZlcnRpY2FsXSc6ICdfaXNSb290Q29udGFpbmVyIHx8IF9pc1ZlcnRpY2FsJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIFNwbGl0dGVyUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICAgICAgTmdGb3IsXG4gICAgICAgIFBvcnRhbE1vZHVsZSxcbiAgICAgICAgU3BsaXR0ZXJSZXNpemVyQ29tcG9uZW50LFxuICAgICAgICBmb3J3YXJkUmVmKCgpID0+IE5vRGVmYXVsdFBhbmVQaXBlKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU3BsaXR0ZXJQYW5lQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogUGFuZSB0eXBlIC0gdmVydGljYWwgKGRlZmF1bHQpIG9yIGhvcml6b250YWwuICovXG4gICAgQElucHV0KClcbiAgICBvcmllbnRhdGlvbjogU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb25UeXBlID0gU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb24udmVydGljYWw7XG5cbiAgICAvKipcbiAgICAgKiBTdHlsZSBvZiB0aGUgcmVzaXplci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlc2l6ZXJUeXBlOiAnZGVmYXVsdCcgfCAndHJhbnNwYXJlbnQnIHwgJ3RyYW5zbHVjZW50JyA9ICdkZWZhdWx0JztcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIGFmdGVyIGNvbnRhaW5lcidzIHBhbmVzIGhhcyByZXNpemVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIHJlYWRvbmx5IHJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8U3BsaXR0ZXJQYW5lUmVzaXplRXZlbnRbXT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIF9wYW5lczogUXVlcnlMaXN0PFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudClcbiAgICBfZGlyZWN0UGFuZXM6IFF1ZXJ5TGlzdDxTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kZWZhdWx0UGFuZTogU3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wYWdlczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2N1cnJlbnRQYWdlOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3BhbmVTaXplczogbnVtYmVyW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfd2FudGVkUGFuZXNTaXplczogbnVtYmVyW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaW5pdGlhbFBhbmVTaXplczogbnVtYmVyW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGlyZWN0UGFuZVN1YnNjcmlwdGlvbiQgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbiQgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNIb3Jpem9udGFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbiA9PT0gU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb24uaG9yaXpvbnRhbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNWZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JpZW50YXRpb24gPT09IFNwbGl0dGVyUGFuZUNvbnRhaW5lck9yaWVudGF0aW9uLnZlcnRpY2FsO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9pc1Jvb3RDb250YWluZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5fcGFyZW50U3BsaXR0ZXJQYW5lQ29udGFpbmVyO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9wYW5lc09uQ2FudmFzKCk6IFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlyZWN0UGFuZXMuZmlsdGVyKChwYW5lKSA9PiBwYW5lLmlzT25DYW52YXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9hY3RpdmVQYW5lcygpOiBTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudFtdIHtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQYWdlID09PSBST09UX1BBR0UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYW5lc09uQ2FudmFzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhbmVzLmZpbHRlcigocGFuZSkgPT4gcGFuZS5pZCA9PT0gdGhpcy5fY3VycmVudFBhZ2UpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX3BhbmVzSW5SaWdodE9yZGVyRm9yUmVzaXplKCk6IFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50W10ge1xuICAgICAgICBjb25zdCBwYW5lcyA9IHRoaXMuX2RpcmVjdFBhbmVzLmZpbHRlcigocGFuZSkgPT4gcGFuZS5pZCAhPT0gdGhpcy5fZGVmYXVsdFBhbmU/LmlkKTtcblxuICAgICAgICBpZiAodGhpcy5fZGVmYXVsdFBhbmUpIHtcbiAgICAgICAgICAgIHBhbmVzLnVuc2hpZnQodGhpcy5fZGVmYXVsdFBhbmUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhbmVzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX2lzUnRsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnRsU2VydmljZT8ucnRsLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfc3BsaXR0ZXI6IFNwbGl0dGVyQ29tcG9uZW50LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRTcGxpdHRlclBhbmVDb250YWluZXI6IFNwbGl0dGVyUGFuZUNvbnRhaW5lckNvbXBvbmVudFxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faXNSb290Q29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXREZWZhdWx0UGFuZSgpO1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlUGFnZXMoKTtcblxuICAgICAgICAgICAgdGhpcy5fcGFuZXMuZm9yRWFjaCgocGFuZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiQuYWRkKHBhbmUudG9nZ2xlT25DYW52YXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3VwZGF0ZVBhZ2VzKCkpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldFBhbmVzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlyZWN0UGFuZVN1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uJC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dldFBhbmVTdHlsZXMocGFuZTogU3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnQpOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0ge1xuICAgICAgICBjb25zdCBzdHlsZSA9IHtcbiAgICAgICAgICAgICdtaW4td2lkdGgnOiBQQU5FX0FVVE9fU0laRSxcbiAgICAgICAgICAgICdtYXgtd2lkdGgnOiBQQU5FX05PTkVfU0laRSxcbiAgICAgICAgICAgICdtaW4taGVpZ2h0JzogUEFORV9BVVRPX1NJWkUsXG4gICAgICAgICAgICAnbWF4LWhlaWdodCc6IFBBTkVfTk9ORV9TSVpFXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMuX2lzVmVydGljYWwgJiYgcGFuZS5pc09uQ2FudmFzICYmIHBhbmUuX2FjdHVhbFNpemUgIT09IFBBTkVfQVVUT19TSVpFKSB7XG4gICAgICAgICAgICBzdHlsZVsnbWluLXdpZHRoJ10gPSBwYW5lLl9hY3R1YWxTaXplO1xuICAgICAgICAgICAgc3R5bGVbJ21heC13aWR0aCddID0gcGFuZS5fYWN0dWFsU2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9pc0hvcml6b250YWwgJiYgcGFuZS5pc09uQ2FudmFzICYmIHBhbmUuX2FjdHVhbFNpemUgIT09IFBBTkVfQVVUT19TSVpFKSB7XG4gICAgICAgICAgICBzdHlsZVsnbWluLWhlaWdodCddID0gcGFuZS5fYWN0dWFsU2l6ZTtcbiAgICAgICAgICAgIHN0eWxlWydtYXgtaGVpZ2h0J10gPSBwYW5lLl9hY3R1YWxTaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN0eWxlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3N0YXJ0UmVzaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wYW5lU2l6ZXMgPSBbXTtcbiAgICAgICAgdGhpcy5faW5pdGlhbFBhbmVTaXplcyA9IFtdO1xuXG4gICAgICAgIHRoaXMuX3BhbmVzSW5SaWdodE9yZGVyRm9yUmVzaXplLmZvckVhY2goKHBhbmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhbmVTaXplID0gdGhpcy5fZ2V0UGFuZUVsZW1lbnRTaXplUHgocGFuZS5pZCk7XG5cbiAgICAgICAgICAgIHRoaXMuX3BhbmVTaXplcy5wdXNoKHBhbmVTaXplKTtcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxQYW5lU2l6ZXMucHVzaChwYW5lU2l6ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2VuZFJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2hhbmdlZFBhbmVTaXplczogU3BsaXR0ZXJQYW5lUmVzaXplRXZlbnRbXSA9IFtdO1xuXG4gICAgICAgIHRoaXMuX3BhbmVzSW5SaWdodE9yZGVyRm9yUmVzaXplLmZvckVhY2goKHBhbmUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fcGFuZVNpemVzW2luZGV4XSAhPT0gdGhpcy5faW5pdGlhbFBhbmVTaXplc1tpbmRleF0pIHtcbiAgICAgICAgICAgICAgICBjaGFuZ2VkUGFuZVNpemVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBwYW5lSWQ6IHBhbmUuaWQsXG4gICAgICAgICAgICAgICAgICAgIG9sZFNpemU6IHRoaXMuX2luaXRpYWxQYW5lU2l6ZXNbaW5kZXhdICsgJ3B4JyxcbiAgICAgICAgICAgICAgICAgICAgbmV3U2l6ZTogdGhpcy5fcGFuZVNpemVzW2luZGV4XSArICdweCdcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yZXNpemUuZW1pdChjaGFuZ2VkUGFuZVNpemVzKTtcblxuICAgICAgICB0aGlzLl9yZXNpemVQYW5lc1RvRml0SW5Db250YWluZXIodHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25SZXNpemUocGFuZUlkOiBzdHJpbmcsIGRpZmY6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoZGlmZiA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlmZiAqPSB0aGlzLl9pc1J0bCAmJiB0aGlzLm9yaWVudGF0aW9uID09PSBTcGxpdHRlclBhbmVDb250YWluZXJPcmllbnRhdGlvbi52ZXJ0aWNhbCA/IC0xIDogMTtcblxuICAgICAgICBjb25zdCByZXNpemVkUGFuZUluZGV4ID1cbiAgICAgICAgICAgIHRoaXMuX3BhbmVzSW5SaWdodE9yZGVyRm9yUmVzaXplLmZpbmRJbmRleCgocGFuZSkgPT4gcGFuZS5pZCA9PT0gcGFuZUlkKSArIChkaWZmIDwgMCA/IDEgOiAwKTtcbiAgICAgICAgY29uc3QgcmVzaXplZFBhbmUgPSB0aGlzLl9wYW5lc0luUmlnaHRPcmRlckZvclJlc2l6ZVtyZXNpemVkUGFuZUluZGV4XTtcblxuICAgICAgICBsZXQgc2libGluZ1BhbmVJbmRleCA9IHJlc2l6ZWRQYW5lSW5kZXg7XG4gICAgICAgIGxldCBzaWJsaW5nUGFuZTtcbiAgICAgICAgbGV0IHNpYmxpbmdQYW5lU2l6ZTtcblxuICAgICAgICBkbyB7XG4gICAgICAgICAgICBzaWJsaW5nUGFuZUluZGV4ICs9IGRpZmYgPCAwID8gLTEgOiAxO1xuICAgICAgICAgICAgc2libGluZ1BhbmUgPSB0aGlzLl9wYW5lc0luUmlnaHRPcmRlckZvclJlc2l6ZVtzaWJsaW5nUGFuZUluZGV4XTtcbiAgICAgICAgICAgIHNpYmxpbmdQYW5lU2l6ZSA9IHRoaXMuX3BhbmVTaXplc1tzaWJsaW5nUGFuZUluZGV4XTtcblxuICAgICAgICAgICAgaWYgKCFzaWJsaW5nUGFuZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSB3aGlsZSAoIXNpYmxpbmdQYW5lU2l6ZSk7XG5cbiAgICAgICAgY29uc3QgcmVzaXplZFBhbmVOZXdTaXplID0gdGhpcy5fcGFuZVNpemVzW3Jlc2l6ZWRQYW5lSW5kZXhdICsgZGlmZiAqIChkaWZmIDwgMCA/IC0xIDogMSk7XG4gICAgICAgIGNvbnN0IHNpYmxpbmdQYW5lTmV3U2l6ZSA9IHRoaXMuX3BhbmVTaXplc1tzaWJsaW5nUGFuZUluZGV4XSArIGRpZmYgKiAoZGlmZiA8IDAgPyAxIDogLTEpO1xuXG4gICAgICAgIC8qKiBQcmV2ZW50IGZyb20gc2V0dGluZyBuZWdhdGl2ZSBzaXplICovXG4gICAgICAgIGlmIChyZXNpemVkUGFuZU5ld1NpemUgPCAwIHx8IHNpYmxpbmdQYW5lTmV3U2l6ZSA8IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3BhbmVTaXplc1tyZXNpemVkUGFuZUluZGV4XSA9IHJlc2l6ZWRQYW5lTmV3U2l6ZTtcbiAgICAgICAgdGhpcy5fcGFuZVNpemVzW3NpYmxpbmdQYW5lSW5kZXhdID0gc2libGluZ1BhbmVOZXdTaXplO1xuXG4gICAgICAgIHJlc2l6ZWRQYW5lLnNpemUgPSB0aGlzLl9wYW5lU2l6ZXNbcmVzaXplZFBhbmVJbmRleF0gKyAncHgnO1xuICAgICAgICBzaWJsaW5nUGFuZS5zaXplID0gdGhpcy5fcGFuZVNpemVzW3NpYmxpbmdQYW5lSW5kZXhdICsgJ3B4JztcblxuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25QYWdlQ2hhbmdlKHBhZ2U6IHN0cmluZyA9IFJPT1RfUEFHRSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50UGFnZSA9IHBhZ2U7XG5cbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZVBhZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wYWdlcyA9IFtdO1xuXG4gICAgICAgIGNvbnN0IG9mZkNhbnZhc0RlbWFuZFBhZ2VzID0gdGhpcy5fcGFuZXNcbiAgICAgICAgICAgIC5maWx0ZXIoKHBhbmUpID0+ICFwYW5lLmlzT25DYW52YXMgJiYgcGFuZS5kZW1hbmRQYW5lKVxuICAgICAgICAgICAgLm1hcCgocGFuZSkgPT4gcGFuZS5pZCk7XG4gICAgICAgIGxldCBuZXdQYWdlID0gUk9PVF9QQUdFO1xuXG4gICAgICAgIGlmIChvZmZDYW52YXNEZW1hbmRQYWdlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhZ2VzID0gb2ZmQ2FudmFzRGVtYW5kUGFnZXM7XG4gICAgICAgICAgICBuZXdQYWdlID0gb2ZmQ2FudmFzRGVtYW5kUGFnZXNbMF07XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9wYW5lc09uQ2FudmFzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9wYWdlcy51bnNoaWZ0KFJPT1RfUEFHRSk7XG4gICAgICAgICAgICAgICAgbmV3UGFnZSA9IFJPT1RfUEFHRTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuX3BhbmVzT25DYW52YXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGFnZXMudW5zaGlmdCh0aGlzLl9wYW5lc09uQ2FudmFzWzBdLmlkKTtcbiAgICAgICAgICAgICAgICBuZXdQYWdlID0gdGhpcy5fcGFuZXNPbkNhbnZhc1swXS5pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlRXhpc3QgPSB0aGlzLl9wYWdlcy5pbmNsdWRlcyh0aGlzLl9jdXJyZW50UGFnZSk7XG5cbiAgICAgICAgaWYgKCFjdXJyZW50UGFnZUV4aXN0KSB7XG4gICAgICAgICAgICAvKiogRGV0YWNoaW5nIGJhc2ljYWxseSB3b3JrcyB3aXRob3V0IHRoZSBjb2RlIGJ1dCBpdCdzIHRoZSBlZGdlLWNhc2UgKi9cbiAgICAgICAgICAgIGNvbnN0IGlzU2hvdWxkRGV0YWNoRGVmYXVsdFBhbmUgPSB0aGlzLl9jdXJyZW50UGFnZSA9PT0gdGhpcy5fZGVmYXVsdFBhbmU/LmlkICYmIG5ld1BhZ2UgPT09IFJPT1RfUEFHRTtcblxuICAgICAgICAgICAgaWYgKGlzU2hvdWxkRGV0YWNoRGVmYXVsdFBhbmUgJiYgdGhpcy5fZGVmYXVsdFBhbmU/Ll9jb250ZW50Py5pc0F0dGFjaGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVmYXVsdFBhbmUuX2NvbnRlbnQuZGV0YWNoKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX29uUGFnZUNoYW5nZShuZXdQYWdlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldFBhbmVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZXNpemVQYW5lc1RvRml0SW5Db250YWluZXIodHJ1ZSk7XG5cbiAgICAgICAgY29uc3Qgc2V0RGlyZWN0UGFuZXNTdWJzY3JpcHRpb24gPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kaXJlY3RQYW5lU3Vic2NyaXB0aW9uJC51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5fZGlyZWN0UGFuZVN1YnNjcmlwdGlvbiQgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAgICAgICAgIHRoaXMuX2RpcmVjdFBhbmVzLmZvckVhY2goKHBhbmUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kaXJlY3RQYW5lU3Vic2NyaXB0aW9uJC5hZGQoXG4gICAgICAgICAgICAgICAgICAgIHBhbmUudG9nZ2xlT25DYW52YXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3Jlc2l6ZVBhbmVzVG9GaXRJbkNvbnRhaW5lcigpKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgcHJldkRpcmVjdFBhbmVzID0gWy4uLnRoaXMuX2RpcmVjdFBhbmVzXTtcbiAgICAgICAgY29uc3QgYXJlRGlyZWN0UGFuZXNTYW1lID0gKHBhbmVzOiBRdWVyeUxpc3Q8U3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnQ+KTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICBpZiAocGFuZXMubGVuZ3RoICE9PSBwcmV2RGlyZWN0UGFuZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcHJldkRpcmVjdFBhbmVzLmV2ZXJ5KChwcmV2UGFuZSkgPT4gISFwYW5lcy5maW5kKChwYW5lKSA9PiBwYW5lLmlkID09PSBwcmV2UGFuZS5pZCkpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNldERpcmVjdFBhbmVzU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uJC5hZGQoXG4gICAgICAgICAgICB0aGlzLl9wYW5lcy5jaGFuZ2VzLnBpcGUoZmlsdGVyKChwYW5lcykgPT4gIWFyZURpcmVjdFBhbmVzU2FtZShwYW5lcykpKS5zdWJzY3JpYmUoKHBhbmVzTGlzdCkgPT4ge1xuICAgICAgICAgICAgICAgIHByZXZEaXJlY3RQYW5lcyA9IHBhbmVzTGlzdC50b0FycmF5KCk7XG5cbiAgICAgICAgICAgICAgICBzZXREaXJlY3RQYW5lc1N1YnNjcmlwdGlvbigpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVzaXplUGFuZXNUb0ZpdEluQ29udGFpbmVyKHRydWUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24kLmFkZCh0aGlzLl92aWV3cG9ydFJ1bGVyLmNoYW5nZSgxMCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3Jlc2l6ZVBhbmVzVG9GaXRJbkNvbnRhaW5lcigpKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXREZWZhdWx0UGFuZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2V0RGVmYXVsdFBhbmUgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fc3BsaXR0ZXIuZGVmYXVsdFBhbmVJZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlZmF1bHRQYW5lID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFuZXMuZmluZCgocGFuZSkgPT4gcGFuZS5pZCA9PT0gdGhpcy5fc3BsaXR0ZXIuZGVmYXVsdFBhbmVJZCkgPz8gdGhpcy5fZGlyZWN0UGFuZXNbMF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKiBEZXRhY2hpbmcgYmFzaWNhbGx5IHdvcmtzIHdpdGhvdXQgdGhlIGNvZGUgYnV0IGl0J3MgdGhlIGVkZ2UtY2FzZSAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuX2RlZmF1bHRQYW5lPy5fY29udGVudD8uaXNBdHRhY2hlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlZmF1bHRQYW5lLl9jb250ZW50LmRldGFjaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHNldERlZmF1bHRQYW5lKCk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uJC5hZGQoXG4gICAgICAgICAgICB0aGlzLl9zcGxpdHRlci5fZGVmYXVsdFBhbmVJZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgICAgICAgICAgc2V0RGVmYXVsdFBhbmUoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZVBhbmVzVG9GaXRJbkNvbnRhaW5lcih0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVQYWdlcygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jlc2l6ZVBhbmVzVG9GaXRJbkNvbnRhaW5lcihzZXRJbml0aWFsU2l6ZSA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmIChzZXRJbml0aWFsU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNpemVQeCA9IHRoaXMuX2lzSG9yaXpvbnRhbFxuICAgICAgICAgICAgPyB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0XG4gICAgICAgICAgICA6IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgbGV0IGF2YWlsYWJsZVNwYWNlUHggPSBjb250YWluZXJTaXplUHggLSBSRVNJWkVSX1NJWkVfUFggKiAodGhpcy5fZGlyZWN0UGFuZXMubGVuZ3RoIC0gMSk7XG5cbiAgICAgICAgdGhpcy5fZGlyZWN0UGFuZXMuZm9yRWFjaCgocGFuZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICghYXZhaWxhYmxlU3BhY2VQeCkge1xuICAgICAgICAgICAgICAgIHBhbmUuX2FjdHVhbFNpemUgPSAnMHB4JztcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZXRJbml0aWFsU2l6ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3dhbnRlZFBhbmVzU2l6ZXNbaW5kZXhdID0gdGhpcy5fZ2V0UGFuZUVsZW1lbnRTaXplUHgocGFuZS5pZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHBhbmVTaXplID0gdGhpcy5fd2FudGVkUGFuZXNTaXplc1tpbmRleF07XG5cbiAgICAgICAgICAgIGlmIChhdmFpbGFibGVTcGFjZVB4IC0gdGhpcy5fd2FudGVkUGFuZXNTaXplc1tpbmRleF0gPCAwKSB7XG4gICAgICAgICAgICAgICAgcGFuZS5fYWN0dWFsU2l6ZSA9IGF2YWlsYWJsZVNwYWNlUHggKyAncHgnO1xuICAgICAgICAgICAgICAgIGF2YWlsYWJsZVNwYWNlUHggPSAwO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGFuZS5fYWN0dWFsU2l6ZSA9IHBhbmUuc2l6ZSA9PT0gUEFORV9BVVRPX1NJWkUgPyBQQU5FX0FVVE9fU0laRSA6IHBhbmVTaXplICsgJ3B4JztcbiAgICAgICAgICAgIGF2YWlsYWJsZVNwYWNlUHggLT0gcGFuZVNpemU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRQYW5lRWxlbWVudFNpemVQeChwYW5lSWQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBhbmVFbGVtZW50ID0gdGhpcy5fZ2V0UGFuZUVsZW1lbnQocGFuZUlkKTtcblxuICAgICAgICBpZiAoIXBhbmVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hvcml6b250YWwgPyBwYW5lRWxlbWVudC5vZmZzZXRIZWlnaHQgOiBwYW5lRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFBhbmVFbGVtZW50KHBhbmVJZDogc3RyaW5nKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3BhbmVJZH1gKTtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnbm9EZWZhdWx0UGFuZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBOb0RlZmF1bHRQYW5lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfc3BsaXR0ZXJQYW5lQ29udGFpbmVyOiBTcGxpdHRlclBhbmVDb250YWluZXJDb21wb25lbnQpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogU3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnRbXSwgZXhjbHVkaW5nQ29uZGl0aW9uID0gdHJ1ZSk6IFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50W10ge1xuICAgICAgICBpZiAoIWV4Y2x1ZGluZ0NvbmRpdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlLmZpbHRlcigocGFuZSkgPT4gcGFuZS5pZCAhPT0gdGhpcy5fc3BsaXR0ZXJQYW5lQ29udGFpbmVyLl9kZWZhdWx0UGFuZT8uaWQpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJfaXNSb290Q29udGFpbmVyOyBlbHNlIHBhbmVzT25DYW52YXNUZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZGVmYXVsdFBhbmU/LmlzT25DYW52YXMgJiYgX2FjdGl2ZVBhbmVzLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYW5lc1RlbXBsYXRlOyBjb250ZXh0OiB7IHBhbmVzOiBbX2RlZmF1bHRQYW5lXSwgc2hvd1Jlc2l6ZXI6IHRydWUgfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgY2xhc3M9XCJmZC1zcGxpdHRlcl9fc3BsaXQtcGFuZVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZkLXNwbGl0dGVyX19wYW5lLWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbY2xhc3MuZmQtc3BsaXR0ZXJfX3BhbmUtY29udGFpbmVyLS1ob3Jpem9udGFsXT1cIiFfaXNSb290Q29udGFpbmVyICYmIF9pc0hvcml6b250YWxcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLXNwbGl0dGVyX19wYW5lLWNvbnRhaW5lci0tdmVydGljYWxdPVwiX2lzUm9vdENvbnRhaW5lciB8fCBfaXNWZXJ0aWNhbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBwYW5lc1RlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYW5lczogX2FjdGl2ZVBhbmVzIHwgbm9EZWZhdWx0UGFuZSA6IF9kZWZhdWx0UGFuZT8uaXNPbkNhbnZhcyAmJiBfYWN0aXZlUGFuZXMubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGZkLXNwbGl0dGVyLXBhZ2luYXRpb25cbiAgICAgICAgICAgICpuZ0lmPVwiX3BhZ2VzLmxlbmd0aFwiXG4gICAgICAgICAgICBbcGFnZXNdPVwiX3BhZ2VzXCJcbiAgICAgICAgICAgIFtjdXJyZW50UGFnZV09XCJfY3VycmVudFBhZ2VcIlxuICAgICAgICAgICAgKG9uUGFnZUNoYW5nZSk9XCJfb25QYWdlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9mZC1zcGxpdHRlci1wYWdpbmF0aW9uPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjcGFuZXNPbkNhbnZhc1RlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYW5lc1RlbXBsYXRlOyBjb250ZXh0OiB7IHBhbmVzOiBfcGFuZXNPbkNhbnZhcyB9XCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIElERSB3b24ndCByZWNvZ25pemUgdHlwZXMgcHJvcGVybHkgYmVsb3cgLS0+XG5cbjxuZy10ZW1wbGF0ZSAjcGFuZXNUZW1wbGF0ZSBsZXQtcGFuZXM9XCJwYW5lc1wiIGxldC1zaG93UmVzaXplcj1cInNob3dSZXNpemVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFuZSBvZiBwYW5lczsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICAgIDxzZWN0aW9uIFtpZF09XCJwYW5lLmlkXCIgY2xhc3M9XCJmZC1zcGxpdHRlcl9fc3BsaXQtcGFuZVwiIFtzdHlsZV09XCJfZ2V0UGFuZVN0eWxlcyhwYW5lKVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwicGFuZS5fY29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICA8ZmQtc3BsaXR0ZXItcmVzaXplclxuICAgICAgICAgICAgKm5nSWY9XCIhbGFzdCB8fCBzaG93UmVzaXplclwiXG4gICAgICAgICAgICBbb3JpZW50YXRpb25dPVwib3JpZW50YXRpb25cIlxuICAgICAgICAgICAgKHN0YXJ0UmVzaXplKT1cIl9zdGFydFJlc2l6ZSgpXCJcbiAgICAgICAgICAgIChlbmRSZXNpemUpPVwiX2VuZFJlc2l6ZSgpXCJcbiAgICAgICAgICAgIChyZXNpemUpPVwiX29uUmVzaXplKHBhbmUuaWQsICRldmVudClcIlxuICAgICAgICAgICAgW2NsYXNzXT1cIidmZC1zcGxpdHRlcl9fcmVzaXplci0tJyArIHJlc2l6ZXJUeXBlXCJcbiAgICAgICAgPjwvZmQtc3BsaXR0ZXItcmVzaXplcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
357
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXItcGFuZS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc3BsaXR0ZXIvc3BsaXR0ZXItcGFuZS1jb250YWluZXIvc3BsaXR0ZXItcGFuZS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc3BsaXR0ZXIvc3BsaXR0ZXItcGFuZS1jb250YWluZXIvc3BsaXR0ZXItcGFuZS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBRUosU0FBUyxFQUNULFFBQVEsRUFDUixpQkFBaUIsRUFDakIsVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFD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QUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDOzhHQVhRLGlCQUFpQjs0R0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUo3QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxlQUFlO29CQUNyQixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUGlwZSxcbiAgICBQaXBlVHJhbnNmb3JtLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUEFORV9BVVRPX1NJWkUsIFBBTkVfTk9ORV9TSVpFLCBSRVNJWkVSX1NJWkVfUFgsIFJPT1RfUEFHRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTcGxpdHRlclBhbmVSZXNpemVFdmVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvc3BsaXR0ZXItcGFuZS1yZXNpemUtZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNwbGl0dGVyUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NwbGl0dGVyLXBhZ2luYXRpb24vc3BsaXR0ZXItcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BsaXR0ZXJSZXNpemVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BsaXR0ZXItcmVzaXplci9zcGxpdHRlci1yZXNpemVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudCB9IGZyb20gJy4uL3NwbGl0dGVyLXNwbGl0LXBhbmUvc3BsaXR0ZXItc3BsaXQtcGFuZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BsaXR0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9zcGxpdHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBTcGxpdHRlclBhbmVDb250YWluZXJPcmllbnRhdGlvbixcbiAgICBTcGxpdHRlclBhbmVDb250YWluZXJPcmllbnRhdGlvblR5cGVcbn0gZnJvbSAnLi9zcGxpdHRlci1wYW5lLW9yaWVudGF0aW9uLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXNwbGl0dGVyLXBhbmUtY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3BsaXR0ZXItcGFuZS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLXNwbGl0dGVyX19wYW5lLWNvbnRhaW5lcicsXG4gICAgICAgICdbY2xhc3MuZmQtc3BsaXR0ZXJfX3BhbmUtY29udGFpbmVyLS1ob3Jpem9udGFsXSc6ICchX2lzUm9vdENvbnRhaW5lciAmJiBfaXNIb3Jpem9udGFsJyxcbiAgICAgICAgJ1tjbGFzcy5mZC1zcGxpdHRlcl9fcGFuZS1jb250YWluZXItLXZlcnRpY2FsXSc6ICdfaXNSb290Q29udGFpbmVyIHx8IF9pc1ZlcnRpY2FsJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIFNwbGl0dGVyUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICAgICAgTmdGb3IsXG4gICAgICAgIFBvcnRhbE1vZHVsZSxcbiAgICAgICAgU3BsaXR0ZXJSZXNpemVyQ29tcG9uZW50LFxuICAgICAgICBmb3J3YXJkUmVmKCgpID0+IE5vRGVmYXVsdFBhbmVQaXBlKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU3BsaXR0ZXJQYW5lQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogUGFuZSB0eXBlIC0gdmVydGljYWwgKGRlZmF1bHQpIG9yIGhvcml6b250YWwuICovXG4gICAgQElucHV0KClcbiAgICBvcmllbnRhdGlvbjogU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb25UeXBlID0gU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb24udmVydGljYWw7XG5cbiAgICAvKipcbiAgICAgKiBTdHlsZSBvZiB0aGUgcmVzaXplci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlc2l6ZXJUeXBlOiAnZGVmYXVsdCcgfCAndHJhbnNwYXJlbnQnIHwgJ3RyYW5zbHVjZW50JyA9ICdkZWZhdWx0JztcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIGFmdGVyIGNvbnRhaW5lcidzIHBhbmVzIGhhcyByZXNpemVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIHJlYWRvbmx5IHJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8U3BsaXR0ZXJQYW5lUmVzaXplRXZlbnRbXT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIF9wYW5lczogUXVlcnlMaXN0PFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudClcbiAgICBfZGlyZWN0UGFuZXM6IFF1ZXJ5TGlzdDxTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kZWZhdWx0UGFuZTogU3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wYWdlczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2N1cnJlbnRQYWdlOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3BhbmVTaXplczogbnVtYmVyW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfd2FudGVkUGFuZXNTaXplczogbnVtYmVyW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaW5pdGlhbFBhbmVTaXplczogbnVtYmVyW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGlyZWN0UGFuZVN1YnNjcmlwdGlvbiQgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbiQgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNIb3Jpem9udGFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbiA9PT0gU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb24uaG9yaXpvbnRhbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNWZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JpZW50YXRpb24gPT09IFNwbGl0dGVyUGFuZUNvbnRhaW5lck9yaWVudGF0aW9uLnZlcnRpY2FsO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9pc1Jvb3RDb250YWluZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5fcGFyZW50U3BsaXR0ZXJQYW5lQ29udGFpbmVyO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9wYW5lc09uQ2FudmFzKCk6IFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlyZWN0UGFuZXMuZmlsdGVyKChwYW5lKSA9PiBwYW5lLmlzT25DYW52YXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9hY3RpdmVQYW5lcygpOiBTcGxpdHRlclNwbGl0UGFuZUNvbXBvbmVudFtdIHtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQYWdlID09PSBST09UX1BBR0UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYW5lc09uQ2FudmFzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhbmVzLmZpbHRlcigocGFuZSkgPT4gcGFuZS5pZCA9PT0gdGhpcy5fY3VycmVudFBhZ2UpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX3BhbmVzSW5SaWdodE9yZGVyRm9yUmVzaXplKCk6IFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50W10ge1xuICAgICAgICBjb25zdCBwYW5lcyA9IHRoaXMuX2RpcmVjdFBhbmVzLmZpbHRlcigocGFuZSkgPT4gcGFuZS5pZCAhPT0gdGhpcy5fZGVmYXVsdFBhbmU/LmlkKTtcblxuICAgICAgICBpZiAodGhpcy5fZGVmYXVsdFBhbmUpIHtcbiAgICAgICAgICAgIHBhbmVzLnVuc2hpZnQodGhpcy5fZGVmYXVsdFBhbmUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhbmVzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX2lzUnRsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnRsU2VydmljZT8ucnRsLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfc3BsaXR0ZXI6IFNwbGl0dGVyQ29tcG9uZW50LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRTcGxpdHRlclBhbmVDb250YWluZXI6IFNwbGl0dGVyUGFuZUNvbnRhaW5lckNvbXBvbmVudFxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faXNSb290Q29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXREZWZhdWx0UGFuZSgpO1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlUGFnZXMoKTtcblxuICAgICAgICAgICAgdGhpcy5fcGFuZXMuZm9yRWFjaCgocGFuZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiQuYWRkKHBhbmUudG9nZ2xlT25DYW52YXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3VwZGF0ZVBhZ2VzKCkpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldFBhbmVzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlyZWN0UGFuZVN1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uJC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dldFBhbmVTdHlsZXMocGFuZTogU3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnQpOiB7IFtrbGFzczogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgICAgICBjb25zdCBzdHlsZSA9IHtcbiAgICAgICAgICAgICdtaW4td2lkdGgnOiBQQU5FX0FVVE9fU0laRSxcbiAgICAgICAgICAgICdtYXgtd2lkdGgnOiBQQU5FX05PTkVfU0laRSxcbiAgICAgICAgICAgICdtaW4taGVpZ2h0JzogUEFORV9BVVRPX1NJWkUsXG4gICAgICAgICAgICAnbWF4LWhlaWdodCc6IFBBTkVfTk9ORV9TSVpFXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMuX2lzVmVydGljYWwgJiYgcGFuZS5pc09uQ2FudmFzICYmIHBhbmUuX2FjdHVhbFNpemUgIT09IFBBTkVfQVVUT19TSVpFKSB7XG4gICAgICAgICAgICBzdHlsZVsnbWluLXdpZHRoJ10gPSBwYW5lLl9hY3R1YWxTaXplO1xuICAgICAgICAgICAgc3R5bGVbJ21heC13aWR0aCddID0gcGFuZS5fYWN0dWFsU2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9pc0hvcml6b250YWwgJiYgcGFuZS5pc09uQ2FudmFzICYmIHBhbmUuX2FjdHVhbFNpemUgIT09IFBBTkVfQVVUT19TSVpFKSB7XG4gICAgICAgICAgICBzdHlsZVsnbWluLWhlaWdodCddID0gcGFuZS5fYWN0dWFsU2l6ZTtcbiAgICAgICAgICAgIHN0eWxlWydtYXgtaGVpZ2h0J10gPSBwYW5lLl9hY3R1YWxTaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN0eWxlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3N0YXJ0UmVzaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wYW5lU2l6ZXMgPSBbXTtcbiAgICAgICAgdGhpcy5faW5pdGlhbFBhbmVTaXplcyA9IFtdO1xuXG4gICAgICAgIHRoaXMuX3BhbmVzSW5SaWdodE9yZGVyRm9yUmVzaXplLmZvckVhY2goKHBhbmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhbmVTaXplID0gdGhpcy5fZ2V0UGFuZUVsZW1lbnRTaXplUHgocGFuZS5pZCk7XG5cbiAgICAgICAgICAgIHRoaXMuX3BhbmVTaXplcy5wdXNoKHBhbmVTaXplKTtcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxQYW5lU2l6ZXMucHVzaChwYW5lU2l6ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2VuZFJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2hhbmdlZFBhbmVTaXplczogU3BsaXR0ZXJQYW5lUmVzaXplRXZlbnRbXSA9IFtdO1xuXG4gICAgICAgIHRoaXMuX3BhbmVzSW5SaWdodE9yZGVyRm9yUmVzaXplLmZvckVhY2goKHBhbmUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fcGFuZVNpemVzW2luZGV4XSAhPT0gdGhpcy5faW5pdGlhbFBhbmVTaXplc1tpbmRleF0pIHtcbiAgICAgICAgICAgICAgICBjaGFuZ2VkUGFuZVNpemVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBwYW5lSWQ6IHBhbmUuaWQsXG4gICAgICAgICAgICAgICAgICAgIG9sZFNpemU6IHRoaXMuX2luaXRpYWxQYW5lU2l6ZXNbaW5kZXhdICsgJ3B4JyxcbiAgICAgICAgICAgICAgICAgICAgbmV3U2l6ZTogdGhpcy5fcGFuZVNpemVzW2luZGV4XSArICdweCdcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yZXNpemUuZW1pdChjaGFuZ2VkUGFuZVNpemVzKTtcblxuICAgICAgICB0aGlzLl9yZXNpemVQYW5lc1RvRml0SW5Db250YWluZXIodHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25SZXNpemUocGFuZUlkOiBzdHJpbmcsIGRpZmY6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoZGlmZiA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlmZiAqPSB0aGlzLl9pc1J0bCAmJiB0aGlzLm9yaWVudGF0aW9uID09PSBTcGxpdHRlclBhbmVDb250YWluZXJPcmllbnRhdGlvbi52ZXJ0aWNhbCA/IC0xIDogMTtcblxuICAgICAgICBjb25zdCByZXNpemVkUGFuZUluZGV4ID1cbiAgICAgICAgICAgIHRoaXMuX3BhbmVzSW5SaWdodE9yZGVyRm9yUmVzaXplLmZpbmRJbmRleCgocGFuZSkgPT4gcGFuZS5pZCA9PT0gcGFuZUlkKSArIChkaWZmIDwgMCA/IDEgOiAwKTtcbiAgICAgICAgY29uc3QgcmVzaXplZFBhbmUgPSB0aGlzLl9wYW5lc0luUmlnaHRPcmRlckZvclJlc2l6ZVtyZXNpemVkUGFuZUluZGV4XTtcblxuICAgICAgICBsZXQgc2libGluZ1BhbmVJbmRleCA9IHJlc2l6ZWRQYW5lSW5kZXg7XG4gICAgICAgIGxldCBzaWJsaW5nUGFuZTtcbiAgICAgICAgbGV0IHNpYmxpbmdQYW5lU2l6ZTtcblxuICAgICAgICBkbyB7XG4gICAgICAgICAgICBzaWJsaW5nUGFuZUluZGV4ICs9IGRpZmYgPCAwID8gLTEgOiAxO1xuICAgICAgICAgICAgc2libGluZ1BhbmUgPSB0aGlzLl9wYW5lc0luUmlnaHRPcmRlckZvclJlc2l6ZVtzaWJsaW5nUGFuZUluZGV4XTtcbiAgICAgICAgICAgIHNpYmxpbmdQYW5lU2l6ZSA9IHRoaXMuX3BhbmVTaXplc1tzaWJsaW5nUGFuZUluZGV4XTtcblxuICAgICAgICAgICAgaWYgKCFzaWJsaW5nUGFuZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSB3aGlsZSAoIXNpYmxpbmdQYW5lU2l6ZSk7XG5cbiAgICAgICAgY29uc3QgcmVzaXplZFBhbmVOZXdTaXplID0gdGhpcy5fcGFuZVNpemVzW3Jlc2l6ZWRQYW5lSW5kZXhdICsgZGlmZiAqIChkaWZmIDwgMCA/IC0xIDogMSk7XG4gICAgICAgIGNvbnN0IHNpYmxpbmdQYW5lTmV3U2l6ZSA9IHRoaXMuX3BhbmVTaXplc1tzaWJsaW5nUGFuZUluZGV4XSArIGRpZmYgKiAoZGlmZiA8IDAgPyAxIDogLTEpO1xuXG4gICAgICAgIC8qKiBQcmV2ZW50IGZyb20gc2V0dGluZyBuZWdhdGl2ZSBzaXplICovXG4gICAgICAgIGlmIChyZXNpemVkUGFuZU5ld1NpemUgPCAwIHx8IHNpYmxpbmdQYW5lTmV3U2l6ZSA8IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3BhbmVTaXplc1tyZXNpemVkUGFuZUluZGV4XSA9IHJlc2l6ZWRQYW5lTmV3U2l6ZTtcbiAgICAgICAgdGhpcy5fcGFuZVNpemVzW3NpYmxpbmdQYW5lSW5kZXhdID0gc2libGluZ1BhbmVOZXdTaXplO1xuXG4gICAgICAgIHJlc2l6ZWRQYW5lLnNpemUgPSB0aGlzLl9wYW5lU2l6ZXNbcmVzaXplZFBhbmVJbmRleF0gKyAncHgnO1xuICAgICAgICBzaWJsaW5nUGFuZS5zaXplID0gdGhpcy5fcGFuZVNpemVzW3NpYmxpbmdQYW5lSW5kZXhdICsgJ3B4JztcblxuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25QYWdlQ2hhbmdlKHBhZ2U6IHN0cmluZyA9IFJPT1RfUEFHRSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50UGFnZSA9IHBhZ2U7XG5cbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZVBhZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wYWdlcyA9IFtdO1xuXG4gICAgICAgIGNvbnN0IG9mZkNhbnZhc0RlbWFuZFBhZ2VzID0gdGhpcy5fcGFuZXNcbiAgICAgICAgICAgIC5maWx0ZXIoKHBhbmUpID0+ICFwYW5lLmlzT25DYW52YXMgJiYgcGFuZS5kZW1hbmRQYW5lKVxuICAgICAgICAgICAgLm1hcCgocGFuZSkgPT4gcGFuZS5pZCk7XG4gICAgICAgIGxldCBuZXdQYWdlID0gUk9PVF9QQUdFO1xuXG4gICAgICAgIGlmIChvZmZDYW52YXNEZW1hbmRQYWdlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhZ2VzID0gb2ZmQ2FudmFzRGVtYW5kUGFnZXM7XG4gICAgICAgICAgICBuZXdQYWdlID0gb2ZmQ2FudmFzRGVtYW5kUGFnZXNbMF07XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9wYW5lc09uQ2FudmFzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9wYWdlcy51bnNoaWZ0KFJPT1RfUEFHRSk7XG4gICAgICAgICAgICAgICAgbmV3UGFnZSA9IFJPT1RfUEFHRTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuX3BhbmVzT25DYW52YXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGFnZXMudW5zaGlmdCh0aGlzLl9wYW5lc09uQ2FudmFzWzBdLmlkKTtcbiAgICAgICAgICAgICAgICBuZXdQYWdlID0gdGhpcy5fcGFuZXNPbkNhbnZhc1swXS5pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlRXhpc3QgPSB0aGlzLl9wYWdlcy5pbmNsdWRlcyh0aGlzLl9jdXJyZW50UGFnZSk7XG5cbiAgICAgICAgaWYgKCFjdXJyZW50UGFnZUV4aXN0KSB7XG4gICAgICAgICAgICAvKiogRGV0YWNoaW5nIGJhc2ljYWxseSB3b3JrcyB3aXRob3V0IHRoZSBjb2RlIGJ1dCBpdCdzIHRoZSBlZGdlLWNhc2UgKi9cbiAgICAgICAgICAgIGNvbnN0IGlzU2hvdWxkRGV0YWNoRGVmYXVsdFBhbmUgPSB0aGlzLl9jdXJyZW50UGFnZSA9PT0gdGhpcy5fZGVmYXVsdFBhbmU/LmlkICYmIG5ld1BhZ2UgPT09IFJPT1RfUEFHRTtcblxuICAgICAgICAgICAgaWYgKGlzU2hvdWxkRGV0YWNoRGVmYXVsdFBhbmUgJiYgdGhpcy5fZGVmYXVsdFBhbmU/Ll9jb250ZW50Py5pc0F0dGFjaGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVmYXVsdFBhbmUuX2NvbnRlbnQuZGV0YWNoKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX29uUGFnZUNoYW5nZShuZXdQYWdlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldFBhbmVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZXNpemVQYW5lc1RvRml0SW5Db250YWluZXIodHJ1ZSk7XG5cbiAgICAgICAgY29uc3Qgc2V0RGlyZWN0UGFuZXNTdWJzY3JpcHRpb24gPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kaXJlY3RQYW5lU3Vic2NyaXB0aW9uJC51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5fZGlyZWN0UGFuZVN1YnNjcmlwdGlvbiQgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAgICAgICAgIHRoaXMuX2RpcmVjdFBhbmVzLmZvckVhY2goKHBhbmUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kaXJlY3RQYW5lU3Vic2NyaXB0aW9uJC5hZGQoXG4gICAgICAgICAgICAgICAgICAgIHBhbmUudG9nZ2xlT25DYW52YXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3Jlc2l6ZVBhbmVzVG9GaXRJbkNvbnRhaW5lcigpKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgcHJldkRpcmVjdFBhbmVzID0gWy4uLnRoaXMuX2RpcmVjdFBhbmVzXTtcbiAgICAgICAgY29uc3QgYXJlRGlyZWN0UGFuZXNTYW1lID0gKHBhbmVzOiBRdWVyeUxpc3Q8U3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnQ+KTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICBpZiAocGFuZXMubGVuZ3RoICE9PSBwcmV2RGlyZWN0UGFuZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcHJldkRpcmVjdFBhbmVzLmV2ZXJ5KChwcmV2UGFuZSkgPT4gISFwYW5lcy5maW5kKChwYW5lKSA9PiBwYW5lLmlkID09PSBwcmV2UGFuZS5pZCkpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNldERpcmVjdFBhbmVzU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uJC5hZGQoXG4gICAgICAgICAgICB0aGlzLl9wYW5lcy5jaGFuZ2VzLnBpcGUoZmlsdGVyKChwYW5lcykgPT4gIWFyZURpcmVjdFBhbmVzU2FtZShwYW5lcykpKS5zdWJzY3JpYmUoKHBhbmVzTGlzdCkgPT4ge1xuICAgICAgICAgICAgICAgIHByZXZEaXJlY3RQYW5lcyA9IHBhbmVzTGlzdC50b0FycmF5KCk7XG5cbiAgICAgICAgICAgICAgICBzZXREaXJlY3RQYW5lc1N1YnNjcmlwdGlvbigpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVzaXplUGFuZXNUb0ZpdEluQ29udGFpbmVyKHRydWUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24kLmFkZCh0aGlzLl92aWV3cG9ydFJ1bGVyLmNoYW5nZSgxMCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3Jlc2l6ZVBhbmVzVG9GaXRJbkNvbnRhaW5lcigpKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXREZWZhdWx0UGFuZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2V0RGVmYXVsdFBhbmUgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fc3BsaXR0ZXIuZGVmYXVsdFBhbmVJZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlZmF1bHRQYW5lID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFuZXMuZmluZCgocGFuZSkgPT4gcGFuZS5pZCA9PT0gdGhpcy5fc3BsaXR0ZXIuZGVmYXVsdFBhbmVJZCkgPz8gdGhpcy5fZGlyZWN0UGFuZXNbMF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKiBEZXRhY2hpbmcgYmFzaWNhbGx5IHdvcmtzIHdpdGhvdXQgdGhlIGNvZGUgYnV0IGl0J3MgdGhlIGVkZ2UtY2FzZSAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuX2RlZmF1bHRQYW5lPy5fY29udGVudD8uaXNBdHRhY2hlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlZmF1bHRQYW5lLl9jb250ZW50LmRldGFjaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHNldERlZmF1bHRQYW5lKCk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uJC5hZGQoXG4gICAgICAgICAgICB0aGlzLl9zcGxpdHRlci5fZGVmYXVsdFBhbmVJZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgICAgICAgICAgc2V0RGVmYXVsdFBhbmUoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZVBhbmVzVG9GaXRJbkNvbnRhaW5lcih0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVQYWdlcygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jlc2l6ZVBhbmVzVG9GaXRJbkNvbnRhaW5lcihzZXRJbml0aWFsU2l6ZSA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmIChzZXRJbml0aWFsU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNpemVQeCA9IHRoaXMuX2lzSG9yaXpvbnRhbFxuICAgICAgICAgICAgPyB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0XG4gICAgICAgICAgICA6IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgbGV0IGF2YWlsYWJsZVNwYWNlUHggPSBjb250YWluZXJTaXplUHggLSBSRVNJWkVSX1NJWkVfUFggKiAodGhpcy5fZGlyZWN0UGFuZXMubGVuZ3RoIC0gMSk7XG5cbiAgICAgICAgdGhpcy5fZGlyZWN0UGFuZXMuZm9yRWFjaCgocGFuZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICghYXZhaWxhYmxlU3BhY2VQeCkge1xuICAgICAgICAgICAgICAgIHBhbmUuX2FjdHVhbFNpemUgPSAnMHB4JztcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZXRJbml0aWFsU2l6ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3dhbnRlZFBhbmVzU2l6ZXNbaW5kZXhdID0gdGhpcy5fZ2V0UGFuZUVsZW1lbnRTaXplUHgocGFuZS5pZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHBhbmVTaXplID0gdGhpcy5fd2FudGVkUGFuZXNTaXplc1tpbmRleF07XG5cbiAgICAgICAgICAgIGlmIChhdmFpbGFibGVTcGFjZVB4IC0gdGhpcy5fd2FudGVkUGFuZXNTaXplc1tpbmRleF0gPCAwKSB7XG4gICAgICAgICAgICAgICAgcGFuZS5fYWN0dWFsU2l6ZSA9IGF2YWlsYWJsZVNwYWNlUHggKyAncHgnO1xuICAgICAgICAgICAgICAgIGF2YWlsYWJsZVNwYWNlUHggPSAwO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGFuZS5fYWN0dWFsU2l6ZSA9IHBhbmUuc2l6ZSA9PT0gUEFORV9BVVRPX1NJWkUgPyBQQU5FX0FVVE9fU0laRSA6IHBhbmVTaXplICsgJ3B4JztcbiAgICAgICAgICAgIGF2YWlsYWJsZVNwYWNlUHggLT0gcGFuZVNpemU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRQYW5lRWxlbWVudFNpemVQeChwYW5lSWQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBhbmVFbGVtZW50ID0gdGhpcy5fZ2V0UGFuZUVsZW1lbnQocGFuZUlkKTtcblxuICAgICAgICBpZiAoIXBhbmVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hvcml6b250YWwgPyBwYW5lRWxlbWVudC5vZmZzZXRIZWlnaHQgOiBwYW5lRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFBhbmVFbGVtZW50KHBhbmVJZDogc3RyaW5nKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3BhbmVJZH1gKTtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnbm9EZWZhdWx0UGFuZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBOb0RlZmF1bHRQYW5lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfc3BsaXR0ZXJQYW5lQ29udGFpbmVyOiBTcGxpdHRlclBhbmVDb250YWluZXJDb21wb25lbnQpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogU3BsaXR0ZXJTcGxpdFBhbmVDb21wb25lbnRbXSwgZXhjbHVkaW5nQ29uZGl0aW9uID0gdHJ1ZSk6IFNwbGl0dGVyU3BsaXRQYW5lQ29tcG9uZW50W10ge1xuICAgICAgICBpZiAoIWV4Y2x1ZGluZ0NvbmRpdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlLmZpbHRlcigocGFuZSkgPT4gcGFuZS5pZCAhPT0gdGhpcy5fc3BsaXR0ZXJQYW5lQ29udGFpbmVyLl9kZWZhdWx0UGFuZT8uaWQpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJfaXNSb290Q29udGFpbmVyOyBlbHNlIHBhbmVzT25DYW52YXNUZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZGVmYXVsdFBhbmU/LmlzT25DYW52YXMgJiYgX2FjdGl2ZVBhbmVzLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYW5lc1RlbXBsYXRlOyBjb250ZXh0OiB7IHBhbmVzOiBbX2RlZmF1bHRQYW5lXSwgc2hvd1Jlc2l6ZXI6IHRydWUgfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgY2xhc3M9XCJmZC1zcGxpdHRlcl9fc3BsaXQtcGFuZVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZkLXNwbGl0dGVyX19wYW5lLWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbY2xhc3MuZmQtc3BsaXR0ZXJfX3BhbmUtY29udGFpbmVyLS1ob3Jpem9udGFsXT1cIiFfaXNSb290Q29udGFpbmVyICYmIF9pc0hvcml6b250YWxcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLXNwbGl0dGVyX19wYW5lLWNvbnRhaW5lci0tdmVydGljYWxdPVwiX2lzUm9vdENvbnRhaW5lciB8fCBfaXNWZXJ0aWNhbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBwYW5lc1RlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYW5lczogX2FjdGl2ZVBhbmVzIHwgbm9EZWZhdWx0UGFuZSA6IF9kZWZhdWx0UGFuZT8uaXNPbkNhbnZhcyAmJiBfYWN0aXZlUGFuZXMubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGZkLXNwbGl0dGVyLXBhZ2luYXRpb25cbiAgICAgICAgICAgICpuZ0lmPVwiX3BhZ2VzLmxlbmd0aFwiXG4gICAgICAgICAgICBbcGFnZXNdPVwiX3BhZ2VzXCJcbiAgICAgICAgICAgIFtjdXJyZW50UGFnZV09XCJfY3VycmVudFBhZ2VcIlxuICAgICAgICAgICAgKG9uUGFnZUNoYW5nZSk9XCJfb25QYWdlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9mZC1zcGxpdHRlci1wYWdpbmF0aW9uPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjcGFuZXNPbkNhbnZhc1RlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYW5lc1RlbXBsYXRlOyBjb250ZXh0OiB7IHBhbmVzOiBfcGFuZXNPbkNhbnZhcyB9XCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIElERSB3b24ndCByZWNvZ25pemUgdHlwZXMgcHJvcGVybHkgYmVsb3cgLS0+XG5cbjxuZy10ZW1wbGF0ZSAjcGFuZXNUZW1wbGF0ZSBsZXQtcGFuZXM9XCJwYW5lc1wiIGxldC1zaG93UmVzaXplcj1cInNob3dSZXNpemVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFuZSBvZiBwYW5lczsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICAgIDxzZWN0aW9uIFtpZF09XCJwYW5lLmlkXCIgY2xhc3M9XCJmZC1zcGxpdHRlcl9fc3BsaXQtcGFuZVwiIFtzdHlsZV09XCJfZ2V0UGFuZVN0eWxlcyhwYW5lKVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwicGFuZS5fY29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICA8ZmQtc3BsaXR0ZXItcmVzaXplclxuICAgICAgICAgICAgKm5nSWY9XCIhbGFzdCB8fCBzaG93UmVzaXplclwiXG4gICAgICAgICAgICBbb3JpZW50YXRpb25dPVwib3JpZW50YXRpb25cIlxuICAgICAgICAgICAgKHN0YXJ0UmVzaXplKT1cIl9zdGFydFJlc2l6ZSgpXCJcbiAgICAgICAgICAgIChlbmRSZXNpemUpPVwiX2VuZFJlc2l6ZSgpXCJcbiAgICAgICAgICAgIChyZXNpemUpPVwiX29uUmVzaXplKHBhbmUuaWQsICRldmVudClcIlxuICAgICAgICAgICAgW2NsYXNzXT1cIidmZC1zcGxpdHRlcl9fcmVzaXplci0tJyArIHJlc2l6ZXJUeXBlXCJcbiAgICAgICAgPjwvZmQtc3BsaXR0ZXItcmVzaXplcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|