@ascentgl/ads-ui 0.0.10 → 0.0.11

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.
@@ -27,6 +27,8 @@ export class AdsSideNavBarComponent {
27
27
  this.localStorageName = 'side-nav-bar-width';
28
28
  /** @ignore */
29
29
  this.widthToCollapsed = 70;
30
+ /** @ignore */
31
+ this.minWidth = 50;
30
32
  this.registry.register([adsIconSearch]);
31
33
  }
32
34
  /** @ignore */
@@ -44,7 +46,7 @@ export class AdsSideNavBarComponent {
44
46
  /** Expand the sidebar between collapsed and expanded */
45
47
  /** @ignore */
46
48
  expandSidebar() {
47
- if (this.isCollapsed) {
49
+ if (this.isCollapsed()) {
48
50
  this.sidebarSize.set(this.widthToCollapsed);
49
51
  setTimeout(() => {
50
52
  this.isCollapsed.set(false);
@@ -52,6 +54,13 @@ export class AdsSideNavBarComponent {
52
54
  this.sidebarSize.set(this.defaultExpandedWidth());
53
55
  });
54
56
  }
57
+ else {
58
+ setTimeout(() => {
59
+ this.isCollapsed.set(true);
60
+ this.saveLocalStorage(this.minWidth);
61
+ this.sidebarSize.set(this.minWidth);
62
+ });
63
+ }
55
64
  }
56
65
  /** Save current width to the local storage */
57
66
  /** @ignore */
@@ -59,13 +68,13 @@ export class AdsSideNavBarComponent {
59
68
  localStorage.setItem(this.localStorageName, JSON.stringify(size));
60
69
  }
61
70
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AdsSideNavBarComponent, deps: [{ token: i1.AdsIconRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
62
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: AdsSideNavBarComponent, selector: "ads-side-nav-bar", inputs: { defaultExpandedWidth: { classPropertyName: "defaultExpandedWidth", publicName: "defaultExpandedWidth", isSignal: true, isRequired: false, transformFunction: null }, searchTemplate: { classPropertyName: "searchTemplate", publicName: "searchTemplate", isSignal: true, isRequired: false, transformFunction: null }, extraDataTemplate: { classPropertyName: "extraDataTemplate", publicName: "extraDataTemplate", isSignal: true, isRequired: false, transformFunction: null }, navItems: { classPropertyName: "navItems", publicName: "navItems", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "sideNavArea", first: true, predicate: ["sideNavArea"], descendants: true, read: ElementRef }], ngImport: i0, template: "<as-split [useTransition]=\"true\" unit=\"pixel\" [gutterSize]=\"10\" (dragEnd)=\"onDragEnd($event)\">\n <as-split-area [size]=\"sidebarSize()\" [minSize]=\"50\" [maxSize]=\"600\" #sideNavArea>\n <div class=\"left-side-content-container\">\n <div class=\"logo-container\">\n <a [routerLink]=\"'/'\">\n <ads-primary-logo [isCollapsed]=\"true\" class=\"show-on-collapsed\" />\n <ads-primary-logo [isCollapsed]=\"false\" class=\"hide-on-collapsed\" />\n </a>\n </div>\n\n <div class=\"nav-items-container\">\n @for (item of navItems(); track item) {\n <a\n [routerLink]=\"item.href\"\n routerLinkActive=\"active-nav-link\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n class=\"ads-nav-link\"\n >\n <div class=\"ads-nav-item-container\">\n @if (!!item.icon) {\n <ads-icon\n [name]=\"item.icon!\"\n size=\"sm\"\n theme=\"iconPrimary\"\n stroke=\"iconPrimary\"\n color=\"--color-medium\"\n />\n }\n\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\n </div>\n </a>\n }\n </div>\n <div class=\"bottom-container\" (click)=\"!!searchTemplate() && isCollapsed() ? expandSidebar() : null\">\n @if (!!searchTemplate()) {\n <ads-icon name=\"search\" size=\"sm\" theme=\"iconPrimary\" class=\"show-on-collapsed\" />\n <div class=\"hide-on-collapsed\">\n <ng-container *ngTemplateOutlet=\"searchTemplate()!\" />\n </div>\n }\n\n @if (!!extraDataTemplate()) {\n <div class=\"hide-on-collapsed\">\n <ng-container *ngTemplateOutlet=\"extraDataTemplate()!\" />\n </div>\n }\n </div>\n </div>\n </as-split-area>\n\n <as-split-area>\n <router-outlet></router-outlet>\n </as-split-area>\n</as-split>\n", styles: [".nav-items-container{display:flex;flex-direction:column;border-bottom:1px solid var(--color-light)}.nav-items-container .ads-nav-item-container{display:flex;padding:12px;gap:12px;background-color:var(--color-white);align-items:center}.nav-items-container .ads-nav-item-container span{font-weight:400;line-height:21px;color:var(--color-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:unset}.nav-items-container .ads-nav-item-container ads-icon{flex-shrink:0}.nav-items-container .ads-nav-item-container:hover span,.nav-items-container .ads-nav-item-container:focus span,.nav-items-container .ads-nav-item-container:active span{color:var(--color-white)}.nav-items-container .ads-nav-item-container:hover ads-icon ::ng-deep svg,.nav-items-container .ads-nav-item-container:focus ads-icon ::ng-deep svg,.nav-items-container .ads-nav-item-container:active ads-icon ::ng-deep svg{stroke:var(--color-white);fill:var(--color-white)!important}.nav-items-container .ads-nav-item-container:hover{background-color:var(--color-secondary-hover)}.nav-items-container .ads-nav-item-container:active{background-color:var(--color-secondary-pressed)}.nav-items-container .ads-nav-item-container:focus{background-color:var(--color-secondary)}as-split-area{background-color:var(--color-white)}.logo-container{padding:16px 12px;border-bottom:1px solid var(--color-light);height:auto}.ads-nav-link.active-nav-link .ads-nav-item-container{background-color:var(--color-secondary)!important}.ads-nav-link.active-nav-link .ads-nav-item-container span{color:var(--color-white)!important}.ads-nav-link.active-nav-link .ads-nav-item-container ads-icon ::ng-deep svg{stroke:var(--color-white)!important;fill:var(--color-white)!important}.ads-nav-link{text-decoration:none}.left-side-content-container{container-type:inline-size;display:flex;flex-direction:column;height:100vh}::ng-deep as-split .as-split-gutter,::ng-deep as-split .as-split-gutter-icon{background-color:var(--color-light-30)}::ng-deep as-split .as-split-gutter:hover,::ng-deep as-split .as-split-gutter-icon:hover{background-color:var(--color-light-80)}::ng-deep as-split .as-split-gutter:active,::ng-deep as-split .as-split-gutter-icon:active{background-color:var(--color-light)}::ng-deep as-split .as-split-gutter-icon{width:8px;background-color:var(--color-light-30);background-image:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"6\" height=\"11\" viewBox=\"0 0 6 11\" fill=\"none\"><path d=\"M4.7142 2.92855C5.42428 2.92855 5.99991 2.35291 5.99991 1.64283C5.99991 0.932751 5.42428 0.357117 4.7142 0.357117C4.00412 0.357117 3.42848 0.932751 3.42848 1.64283C3.42848 2.35291 4.00412 2.92855 4.7142 2.92855Z\" fill=\"%23041F41\"/><path d=\"M4.7142 6.78566C5.42428 6.78566 5.99991 6.21003 5.99991 5.49995C5.99991 4.78987 5.42428 4.21423 4.7142 4.21423C4.00412 4.21423 3.42848 4.78987 3.42848 5.49995C3.42848 6.21003 4.00412 6.78566 4.7142 6.78566Z\" fill=\"%23041F41\"/><path d=\"M4.7142 10.6428C5.42428 10.6428 5.99991 10.0672 5.99991 9.35713C5.99991 8.64704 5.42428 8.07141 4.7142 8.07141C4.00412 8.07141 3.42848 8.64704 3.42848 9.35713C3.42848 10.0672 4.00412 10.6428 4.7142 10.6428Z\" fill=\"%23041F41\"/><path d=\"M1.28571 2.92855C1.99579 2.92855 2.57143 2.35291 2.57143 1.64283C2.57143 0.932751 1.99579 0.357117 1.28571 0.357117C0.575634 0.357117 0 0.932751 0 1.64283C0 2.35291 0.575634 2.92855 1.28571 2.92855Z\" fill=\"%23041F41\"/><path d=\"M1.28571 6.78566C1.99579 6.78566 2.57143 6.21003 2.57143 5.49995C2.57143 4.78987 1.99579 4.21423 1.28571 4.21423C0.575634 4.21423 0 4.78987 0 5.49995C0 6.21003 0.575634 6.78566 1.28571 6.78566Z\" fill=\"%23041F41\"/><path d=\"M1.28571 10.6428C1.99579 10.6428 2.57143 10.0672 2.57143 9.35713C2.57143 8.64704 1.99579 8.07141 1.28571 8.07141C0.575634 8.07141 0 8.64704 0 9.35713C0 10.0672 0.575634 10.6428 1.28571 10.6428Z\" fill=\"%23041F41\"/></svg>')!important}.bottom-container{padding:16px 12px;flex-grow:1;display:flex;flex-direction:column}@container (max-width: 70px){.bottom-container{flex-grow:unset}.bottom-container:hover{background-color:var(--color-secondary-hover)}.bottom-container:hover ads-icon ::ng-deep svg{stroke:var(--color-white)}.bottom-container:active{background-color:var(--color-secondary-pressed)}.hide-on-collapsed{display:none}.show-on-collapsed{display:contents}}@container (min-width: 71px){.hide-on-collapsed{display:contents}.show-on-collapsed{display:none}}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.AdsPrimaryLogoComponent, selector: "ads-primary-logo", inputs: ["mobileWidth", "isCollapsed"] }, { kind: "component", type: i4.SplitComponent, selector: "as-split", inputs: ["gutterSize", "gutterStep", "disabled", "gutterClickDeltaPx", "direction", "dir", "unit", "gutterAriaLabel", "restrictMove", "useTransition", "gutterDblClickDuration"], outputs: ["gutterClick", "gutterDblClick", "dragStart", "dragEnd", "transitionEnd"], exportAs: ["asSplit"] }, { kind: "component", type: i4.SplitAreaComponent, selector: "as-split-area", inputs: ["size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { kind: "directive", type: i5.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i1.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }] }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: AdsSideNavBarComponent, selector: "ads-side-nav-bar", inputs: { defaultExpandedWidth: { classPropertyName: "defaultExpandedWidth", publicName: "defaultExpandedWidth", isSignal: true, isRequired: false, transformFunction: null }, searchTemplate: { classPropertyName: "searchTemplate", publicName: "searchTemplate", isSignal: true, isRequired: false, transformFunction: null }, extraDataTemplate: { classPropertyName: "extraDataTemplate", publicName: "extraDataTemplate", isSignal: true, isRequired: false, transformFunction: null }, navItems: { classPropertyName: "navItems", publicName: "navItems", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "sideNavArea", first: true, predicate: ["sideNavArea"], descendants: true, read: ElementRef }], ngImport: i0, template: "<as-split\n [useTransition]=\"true\"\n unit=\"pixel\"\n [gutterSize]=\"10\"\n (dragEnd)=\"onDragEnd($event)\"\n (gutterDblClick)=\"expandSidebar()\"\n [gutterDblClickDuration]=\"500\"\n>\n <as-split-area [size]=\"sidebarSize()\" [minSize]=\"50\" [maxSize]=\"600\" #sideNavArea>\n <div class=\"left-side-content-container\">\n <div class=\"logo-container\">\n <a [routerLink]=\"'/'\">\n <ads-primary-logo [isCollapsed]=\"true\" class=\"show-on-collapsed\" />\n <ads-primary-logo [isCollapsed]=\"false\" class=\"hide-on-collapsed\" />\n </a>\n </div>\n\n <div class=\"nav-items-container\">\n @for (item of navItems(); track item) {\n <a\n [routerLink]=\"item.href\"\n routerLinkActive=\"active-nav-link\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n class=\"ads-nav-link\"\n >\n <div class=\"ads-nav-item-container\">\n @if (!!item.icon) {\n <ads-icon\n [name]=\"item.icon!\"\n size=\"sm\"\n theme=\"iconPrimary\"\n stroke=\"iconPrimary\"\n color=\"--color-medium\"\n />\n }\n\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\n </div>\n </a>\n }\n </div>\n <div class=\"bottom-container\" (click)=\"!!searchTemplate() && isCollapsed() ? expandSidebar() : null\">\n @if (!!searchTemplate()) {\n <ads-icon name=\"search\" size=\"sm\" theme=\"iconPrimary\" class=\"show-on-collapsed\" />\n <div class=\"hide-on-collapsed\">\n <ng-container *ngTemplateOutlet=\"searchTemplate()!\" />\n </div>\n }\n\n @if (!!extraDataTemplate()) {\n <div class=\"hide-on-collapsed\">\n <ng-container *ngTemplateOutlet=\"extraDataTemplate()!\" />\n </div>\n }\n </div>\n </div>\n </as-split-area>\n\n <as-split-area>\n <router-outlet></router-outlet>\n </as-split-area>\n</as-split>\n", styles: [".nav-items-container{display:flex;flex-direction:column;border-bottom:1px solid var(--color-light)}.nav-items-container .ads-nav-item-container{display:flex;padding:12px;gap:12px;background-color:var(--color-white);align-items:center}.nav-items-container .ads-nav-item-container span{font-weight:400;line-height:21px;color:var(--color-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:unset}.nav-items-container .ads-nav-item-container ads-icon{flex-shrink:0}.nav-items-container .ads-nav-item-container:hover span,.nav-items-container .ads-nav-item-container:focus span,.nav-items-container .ads-nav-item-container:active span{color:var(--color-white)}.nav-items-container .ads-nav-item-container:hover ads-icon ::ng-deep svg,.nav-items-container .ads-nav-item-container:focus ads-icon ::ng-deep svg,.nav-items-container .ads-nav-item-container:active ads-icon ::ng-deep svg{stroke:var(--color-white);fill:var(--color-white)!important}.nav-items-container .ads-nav-item-container:hover{background-color:var(--color-secondary-hover)}.nav-items-container .ads-nav-item-container:active{background-color:var(--color-secondary-pressed)}.nav-items-container .ads-nav-item-container:focus{background-color:var(--color-secondary)}as-split-area{background-color:var(--color-white)}.logo-container{padding:16px 12px;border-bottom:1px solid var(--color-light);height:auto}.ads-nav-link.active-nav-link .ads-nav-item-container{background-color:var(--color-secondary)!important}.ads-nav-link.active-nav-link .ads-nav-item-container span{color:var(--color-white)!important}.ads-nav-link.active-nav-link .ads-nav-item-container ads-icon ::ng-deep svg{stroke:var(--color-white)!important;fill:var(--color-white)!important}.ads-nav-link{text-decoration:none}.left-side-content-container{container-type:inline-size;display:flex;flex-direction:column;height:100vh}::ng-deep as-split .as-split-gutter,::ng-deep as-split .as-split-gutter-icon{background-color:var(--color-light-30)}::ng-deep as-split .as-split-gutter:hover,::ng-deep as-split .as-split-gutter-icon:hover{background-color:var(--color-light-80)}::ng-deep as-split .as-split-gutter:active,::ng-deep as-split .as-split-gutter-icon:active{background-color:var(--color-light)}::ng-deep as-split .as-split-gutter-icon{width:8px;background-color:var(--color-light-30);background-image:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"6\" height=\"11\" viewBox=\"0 0 6 11\" fill=\"none\"><path d=\"M4.7142 2.92855C5.42428 2.92855 5.99991 2.35291 5.99991 1.64283C5.99991 0.932751 5.42428 0.357117 4.7142 0.357117C4.00412 0.357117 3.42848 0.932751 3.42848 1.64283C3.42848 2.35291 4.00412 2.92855 4.7142 2.92855Z\" fill=\"%23041F41\"/><path d=\"M4.7142 6.78566C5.42428 6.78566 5.99991 6.21003 5.99991 5.49995C5.99991 4.78987 5.42428 4.21423 4.7142 4.21423C4.00412 4.21423 3.42848 4.78987 3.42848 5.49995C3.42848 6.21003 4.00412 6.78566 4.7142 6.78566Z\" fill=\"%23041F41\"/><path d=\"M4.7142 10.6428C5.42428 10.6428 5.99991 10.0672 5.99991 9.35713C5.99991 8.64704 5.42428 8.07141 4.7142 8.07141C4.00412 8.07141 3.42848 8.64704 3.42848 9.35713C3.42848 10.0672 4.00412 10.6428 4.7142 10.6428Z\" fill=\"%23041F41\"/><path d=\"M1.28571 2.92855C1.99579 2.92855 2.57143 2.35291 2.57143 1.64283C2.57143 0.932751 1.99579 0.357117 1.28571 0.357117C0.575634 0.357117 0 0.932751 0 1.64283C0 2.35291 0.575634 2.92855 1.28571 2.92855Z\" fill=\"%23041F41\"/><path d=\"M1.28571 6.78566C1.99579 6.78566 2.57143 6.21003 2.57143 5.49995C2.57143 4.78987 1.99579 4.21423 1.28571 4.21423C0.575634 4.21423 0 4.78987 0 5.49995C0 6.21003 0.575634 6.78566 1.28571 6.78566Z\" fill=\"%23041F41\"/><path d=\"M1.28571 10.6428C1.99579 10.6428 2.57143 10.0672 2.57143 9.35713C2.57143 8.64704 1.99579 8.07141 1.28571 8.07141C0.575634 8.07141 0 8.64704 0 9.35713C0 10.0672 0.575634 10.6428 1.28571 10.6428Z\" fill=\"%23041F41\"/></svg>')!important}.bottom-container{padding:16px 12px;flex-grow:1;display:flex;flex-direction:column}@container (max-width: 70px){.bottom-container{flex-grow:unset}.bottom-container:hover{background-color:var(--color-secondary-hover)}.bottom-container:hover ads-icon ::ng-deep svg{stroke:var(--color-white)}.bottom-container:active{background-color:var(--color-secondary-pressed)}.hide-on-collapsed{display:none}.show-on-collapsed{display:contents}}@container (min-width: 71px){.hide-on-collapsed{display:contents}.show-on-collapsed{display:none}}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.AdsPrimaryLogoComponent, selector: "ads-primary-logo", inputs: ["mobileWidth", "isCollapsed"] }, { kind: "component", type: i4.SplitComponent, selector: "as-split", inputs: ["gutterSize", "gutterStep", "disabled", "gutterClickDeltaPx", "direction", "dir", "unit", "gutterAriaLabel", "restrictMove", "useTransition", "gutterDblClickDuration"], outputs: ["gutterClick", "gutterDblClick", "dragStart", "dragEnd", "transitionEnd"], exportAs: ["asSplit"] }, { kind: "component", type: i4.SplitAreaComponent, selector: "as-split-area", inputs: ["size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { kind: "directive", type: i5.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i1.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }] }); }
63
72
  }
64
73
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AdsSideNavBarComponent, decorators: [{
65
74
  type: Component,
66
- args: [{ selector: 'ads-side-nav-bar', template: "<as-split [useTransition]=\"true\" unit=\"pixel\" [gutterSize]=\"10\" (dragEnd)=\"onDragEnd($event)\">\n <as-split-area [size]=\"sidebarSize()\" [minSize]=\"50\" [maxSize]=\"600\" #sideNavArea>\n <div class=\"left-side-content-container\">\n <div class=\"logo-container\">\n <a [routerLink]=\"'/'\">\n <ads-primary-logo [isCollapsed]=\"true\" class=\"show-on-collapsed\" />\n <ads-primary-logo [isCollapsed]=\"false\" class=\"hide-on-collapsed\" />\n </a>\n </div>\n\n <div class=\"nav-items-container\">\n @for (item of navItems(); track item) {\n <a\n [routerLink]=\"item.href\"\n routerLinkActive=\"active-nav-link\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n class=\"ads-nav-link\"\n >\n <div class=\"ads-nav-item-container\">\n @if (!!item.icon) {\n <ads-icon\n [name]=\"item.icon!\"\n size=\"sm\"\n theme=\"iconPrimary\"\n stroke=\"iconPrimary\"\n color=\"--color-medium\"\n />\n }\n\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\n </div>\n </a>\n }\n </div>\n <div class=\"bottom-container\" (click)=\"!!searchTemplate() && isCollapsed() ? expandSidebar() : null\">\n @if (!!searchTemplate()) {\n <ads-icon name=\"search\" size=\"sm\" theme=\"iconPrimary\" class=\"show-on-collapsed\" />\n <div class=\"hide-on-collapsed\">\n <ng-container *ngTemplateOutlet=\"searchTemplate()!\" />\n </div>\n }\n\n @if (!!extraDataTemplate()) {\n <div class=\"hide-on-collapsed\">\n <ng-container *ngTemplateOutlet=\"extraDataTemplate()!\" />\n </div>\n }\n </div>\n </div>\n </as-split-area>\n\n <as-split-area>\n <router-outlet></router-outlet>\n </as-split-area>\n</as-split>\n", styles: [".nav-items-container{display:flex;flex-direction:column;border-bottom:1px solid var(--color-light)}.nav-items-container .ads-nav-item-container{display:flex;padding:12px;gap:12px;background-color:var(--color-white);align-items:center}.nav-items-container .ads-nav-item-container span{font-weight:400;line-height:21px;color:var(--color-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:unset}.nav-items-container .ads-nav-item-container ads-icon{flex-shrink:0}.nav-items-container .ads-nav-item-container:hover span,.nav-items-container .ads-nav-item-container:focus span,.nav-items-container .ads-nav-item-container:active span{color:var(--color-white)}.nav-items-container .ads-nav-item-container:hover ads-icon ::ng-deep svg,.nav-items-container .ads-nav-item-container:focus ads-icon ::ng-deep svg,.nav-items-container .ads-nav-item-container:active ads-icon ::ng-deep svg{stroke:var(--color-white);fill:var(--color-white)!important}.nav-items-container .ads-nav-item-container:hover{background-color:var(--color-secondary-hover)}.nav-items-container .ads-nav-item-container:active{background-color:var(--color-secondary-pressed)}.nav-items-container .ads-nav-item-container:focus{background-color:var(--color-secondary)}as-split-area{background-color:var(--color-white)}.logo-container{padding:16px 12px;border-bottom:1px solid var(--color-light);height:auto}.ads-nav-link.active-nav-link .ads-nav-item-container{background-color:var(--color-secondary)!important}.ads-nav-link.active-nav-link .ads-nav-item-container span{color:var(--color-white)!important}.ads-nav-link.active-nav-link .ads-nav-item-container ads-icon ::ng-deep svg{stroke:var(--color-white)!important;fill:var(--color-white)!important}.ads-nav-link{text-decoration:none}.left-side-content-container{container-type:inline-size;display:flex;flex-direction:column;height:100vh}::ng-deep as-split .as-split-gutter,::ng-deep as-split .as-split-gutter-icon{background-color:var(--color-light-30)}::ng-deep as-split .as-split-gutter:hover,::ng-deep as-split .as-split-gutter-icon:hover{background-color:var(--color-light-80)}::ng-deep as-split .as-split-gutter:active,::ng-deep as-split .as-split-gutter-icon:active{background-color:var(--color-light)}::ng-deep as-split .as-split-gutter-icon{width:8px;background-color:var(--color-light-30);background-image:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"6\" height=\"11\" viewBox=\"0 0 6 11\" fill=\"none\"><path d=\"M4.7142 2.92855C5.42428 2.92855 5.99991 2.35291 5.99991 1.64283C5.99991 0.932751 5.42428 0.357117 4.7142 0.357117C4.00412 0.357117 3.42848 0.932751 3.42848 1.64283C3.42848 2.35291 4.00412 2.92855 4.7142 2.92855Z\" fill=\"%23041F41\"/><path d=\"M4.7142 6.78566C5.42428 6.78566 5.99991 6.21003 5.99991 5.49995C5.99991 4.78987 5.42428 4.21423 4.7142 4.21423C4.00412 4.21423 3.42848 4.78987 3.42848 5.49995C3.42848 6.21003 4.00412 6.78566 4.7142 6.78566Z\" fill=\"%23041F41\"/><path d=\"M4.7142 10.6428C5.42428 10.6428 5.99991 10.0672 5.99991 9.35713C5.99991 8.64704 5.42428 8.07141 4.7142 8.07141C4.00412 8.07141 3.42848 8.64704 3.42848 9.35713C3.42848 10.0672 4.00412 10.6428 4.7142 10.6428Z\" fill=\"%23041F41\"/><path d=\"M1.28571 2.92855C1.99579 2.92855 2.57143 2.35291 2.57143 1.64283C2.57143 0.932751 1.99579 0.357117 1.28571 0.357117C0.575634 0.357117 0 0.932751 0 1.64283C0 2.35291 0.575634 2.92855 1.28571 2.92855Z\" fill=\"%23041F41\"/><path d=\"M1.28571 6.78566C1.99579 6.78566 2.57143 6.21003 2.57143 5.49995C2.57143 4.78987 1.99579 4.21423 1.28571 4.21423C0.575634 4.21423 0 4.78987 0 5.49995C0 6.21003 0.575634 6.78566 1.28571 6.78566Z\" fill=\"%23041F41\"/><path d=\"M1.28571 10.6428C1.99579 10.6428 2.57143 10.0672 2.57143 9.35713C2.57143 8.64704 1.99579 8.07141 1.28571 8.07141C0.575634 8.07141 0 8.64704 0 9.35713C0 10.0672 0.575634 10.6428 1.28571 10.6428Z\" fill=\"%23041F41\"/></svg>')!important}.bottom-container{padding:16px 12px;flex-grow:1;display:flex;flex-direction:column}@container (max-width: 70px){.bottom-container{flex-grow:unset}.bottom-container:hover{background-color:var(--color-secondary-hover)}.bottom-container:hover ads-icon ::ng-deep svg{stroke:var(--color-white)}.bottom-container:active{background-color:var(--color-secondary-pressed)}.hide-on-collapsed{display:none}.show-on-collapsed{display:contents}}@container (min-width: 71px){.hide-on-collapsed{display:contents}.show-on-collapsed{display:none}}\n"] }]
75
+ args: [{ selector: 'ads-side-nav-bar', template: "<as-split\n [useTransition]=\"true\"\n unit=\"pixel\"\n [gutterSize]=\"10\"\n (dragEnd)=\"onDragEnd($event)\"\n (gutterDblClick)=\"expandSidebar()\"\n [gutterDblClickDuration]=\"500\"\n>\n <as-split-area [size]=\"sidebarSize()\" [minSize]=\"50\" [maxSize]=\"600\" #sideNavArea>\n <div class=\"left-side-content-container\">\n <div class=\"logo-container\">\n <a [routerLink]=\"'/'\">\n <ads-primary-logo [isCollapsed]=\"true\" class=\"show-on-collapsed\" />\n <ads-primary-logo [isCollapsed]=\"false\" class=\"hide-on-collapsed\" />\n </a>\n </div>\n\n <div class=\"nav-items-container\">\n @for (item of navItems(); track item) {\n <a\n [routerLink]=\"item.href\"\n routerLinkActive=\"active-nav-link\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n class=\"ads-nav-link\"\n >\n <div class=\"ads-nav-item-container\">\n @if (!!item.icon) {\n <ads-icon\n [name]=\"item.icon!\"\n size=\"sm\"\n theme=\"iconPrimary\"\n stroke=\"iconPrimary\"\n color=\"--color-medium\"\n />\n }\n\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\n </div>\n </a>\n }\n </div>\n <div class=\"bottom-container\" (click)=\"!!searchTemplate() && isCollapsed() ? expandSidebar() : null\">\n @if (!!searchTemplate()) {\n <ads-icon name=\"search\" size=\"sm\" theme=\"iconPrimary\" class=\"show-on-collapsed\" />\n <div class=\"hide-on-collapsed\">\n <ng-container *ngTemplateOutlet=\"searchTemplate()!\" />\n </div>\n }\n\n @if (!!extraDataTemplate()) {\n <div class=\"hide-on-collapsed\">\n <ng-container *ngTemplateOutlet=\"extraDataTemplate()!\" />\n </div>\n }\n </div>\n </div>\n </as-split-area>\n\n <as-split-area>\n <router-outlet></router-outlet>\n </as-split-area>\n</as-split>\n", styles: [".nav-items-container{display:flex;flex-direction:column;border-bottom:1px solid var(--color-light)}.nav-items-container .ads-nav-item-container{display:flex;padding:12px;gap:12px;background-color:var(--color-white);align-items:center}.nav-items-container .ads-nav-item-container span{font-weight:400;line-height:21px;color:var(--color-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:unset}.nav-items-container .ads-nav-item-container ads-icon{flex-shrink:0}.nav-items-container .ads-nav-item-container:hover span,.nav-items-container .ads-nav-item-container:focus span,.nav-items-container .ads-nav-item-container:active span{color:var(--color-white)}.nav-items-container .ads-nav-item-container:hover ads-icon ::ng-deep svg,.nav-items-container .ads-nav-item-container:focus ads-icon ::ng-deep svg,.nav-items-container .ads-nav-item-container:active ads-icon ::ng-deep svg{stroke:var(--color-white);fill:var(--color-white)!important}.nav-items-container .ads-nav-item-container:hover{background-color:var(--color-secondary-hover)}.nav-items-container .ads-nav-item-container:active{background-color:var(--color-secondary-pressed)}.nav-items-container .ads-nav-item-container:focus{background-color:var(--color-secondary)}as-split-area{background-color:var(--color-white)}.logo-container{padding:16px 12px;border-bottom:1px solid var(--color-light);height:auto}.ads-nav-link.active-nav-link .ads-nav-item-container{background-color:var(--color-secondary)!important}.ads-nav-link.active-nav-link .ads-nav-item-container span{color:var(--color-white)!important}.ads-nav-link.active-nav-link .ads-nav-item-container ads-icon ::ng-deep svg{stroke:var(--color-white)!important;fill:var(--color-white)!important}.ads-nav-link{text-decoration:none}.left-side-content-container{container-type:inline-size;display:flex;flex-direction:column;height:100vh}::ng-deep as-split .as-split-gutter,::ng-deep as-split .as-split-gutter-icon{background-color:var(--color-light-30)}::ng-deep as-split .as-split-gutter:hover,::ng-deep as-split .as-split-gutter-icon:hover{background-color:var(--color-light-80)}::ng-deep as-split .as-split-gutter:active,::ng-deep as-split .as-split-gutter-icon:active{background-color:var(--color-light)}::ng-deep as-split .as-split-gutter-icon{width:8px;background-color:var(--color-light-30);background-image:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"6\" height=\"11\" viewBox=\"0 0 6 11\" fill=\"none\"><path d=\"M4.7142 2.92855C5.42428 2.92855 5.99991 2.35291 5.99991 1.64283C5.99991 0.932751 5.42428 0.357117 4.7142 0.357117C4.00412 0.357117 3.42848 0.932751 3.42848 1.64283C3.42848 2.35291 4.00412 2.92855 4.7142 2.92855Z\" fill=\"%23041F41\"/><path d=\"M4.7142 6.78566C5.42428 6.78566 5.99991 6.21003 5.99991 5.49995C5.99991 4.78987 5.42428 4.21423 4.7142 4.21423C4.00412 4.21423 3.42848 4.78987 3.42848 5.49995C3.42848 6.21003 4.00412 6.78566 4.7142 6.78566Z\" fill=\"%23041F41\"/><path d=\"M4.7142 10.6428C5.42428 10.6428 5.99991 10.0672 5.99991 9.35713C5.99991 8.64704 5.42428 8.07141 4.7142 8.07141C4.00412 8.07141 3.42848 8.64704 3.42848 9.35713C3.42848 10.0672 4.00412 10.6428 4.7142 10.6428Z\" fill=\"%23041F41\"/><path d=\"M1.28571 2.92855C1.99579 2.92855 2.57143 2.35291 2.57143 1.64283C2.57143 0.932751 1.99579 0.357117 1.28571 0.357117C0.575634 0.357117 0 0.932751 0 1.64283C0 2.35291 0.575634 2.92855 1.28571 2.92855Z\" fill=\"%23041F41\"/><path d=\"M1.28571 6.78566C1.99579 6.78566 2.57143 6.21003 2.57143 5.49995C2.57143 4.78987 1.99579 4.21423 1.28571 4.21423C0.575634 4.21423 0 4.78987 0 5.49995C0 6.21003 0.575634 6.78566 1.28571 6.78566Z\" fill=\"%23041F41\"/><path d=\"M1.28571 10.6428C1.99579 10.6428 2.57143 10.0672 2.57143 9.35713C2.57143 8.64704 1.99579 8.07141 1.28571 8.07141C0.575634 8.07141 0 8.64704 0 9.35713C0 10.0672 0.575634 10.6428 1.28571 10.6428Z\" fill=\"%23041F41\"/></svg>')!important}.bottom-container{padding:16px 12px;flex-grow:1;display:flex;flex-direction:column}@container (max-width: 70px){.bottom-container{flex-grow:unset}.bottom-container:hover{background-color:var(--color-secondary-hover)}.bottom-container:hover ads-icon ::ng-deep svg{stroke:var(--color-white)}.bottom-container:active{background-color:var(--color-secondary-pressed)}.hide-on-collapsed{display:none}.show-on-collapsed{display:contents}}@container (min-width: 71px){.hide-on-collapsed{display:contents}.show-on-collapsed{display:none}}\n"] }]
67
76
  }], ctorParameters: () => [{ type: i1.AdsIconRegistry }], propDecorators: { sideNavArea: [{
68
77
  type: ViewChild,
69
78
  args: ['sideNavArea', { read: ElementRef }]
70
79
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRzLXVpL3NyYy9saWIvY29tcG9uZW50cy9uYXYtYmFyL3NpZGUtbmF2LWJhci9zaWRlLW5hdi1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZHMtdWkvc3JjL2xpYi9jb21wb25lbnRzL25hdi1iYXIvc2lkZS1uYXYtYmFyL3NpZGUtbmF2LWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBUzFELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsY0FBYztJQUNkLFlBQW9CLFFBQXlCO1FBQXpCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBSTdDLGlEQUFpRDtRQUNqRCx5QkFBb0IsR0FBRyxLQUFLLENBQVMsR0FBRyxDQUFDLENBQUM7UUFFMUMsMEJBQTBCO1FBQzFCLG1CQUFjLEdBQUcsS0FBSyxFQUF3QixDQUFDO1FBRS9DLDRDQUE0QztRQUM1QyxzQkFBaUIsR0FBRyxLQUFLLEVBQXdCLENBQUM7UUFFbEQsNEJBQTRCO1FBQzVCLGFBQVEsR0FBRyxLQUFLLENBQVksRUFBRSxDQUFDLENBQUM7UUFFaEMsY0FBYztRQUNkLGdCQUFXLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXJDLGNBQWM7UUFDZCxnQkFBVyxHQUFHLE1BQU0sQ0FBUyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBRTFELGNBQWM7UUFDTixxQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztRQUVoRCxjQUFjO1FBQ04scUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBekI1QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQTZCRCxjQUFjO0lBQ2QsUUFBUTtRQUNOLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsY0FBYztJQUNkLFNBQVMsQ0FBQyxLQUFrQztRQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxjQUFjO0lBQ2QsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzVDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCw4Q0FBOEM7SUFDOUMsY0FBYztJQUNkLGdCQUFnQixDQUFDLElBQVk7UUFDM0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7OEdBaEVVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGd2QkErQkMsVUFBVSw2QkMxQzlDLDArREF1REE7OzJGRDVDYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usa0JBQWtCO29GQW1Db0IsV0FBVztzQkFBMUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBpbnB1dCwgT25Jbml0LCBzaWduYWwsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFkc0ljb25SZWdpc3RyeSB9IGZyb20gJ0Bhc2NlbnRnbC9hZHMtaWNvbnMnO1xuaW1wb3J0IHsgYWRzSWNvblNlYXJjaCB9IGZyb20gJ0Bhc2NlbnRnbC9hZHMtaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgTmF2SXRlbSB9IGZyb20gJy4vbmF2LWl0ZW0udHlwZXMnO1xuaW1wb3J0IHsgU3BsaXRHdXR0ZXJJbnRlcmFjdGlvbkV2ZW50IH0gZnJvbSAnYW5ndWxhci1zcGxpdC9saWIvbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRzLXNpZGUtbmF2LWJhcicsXG4gIHN0eWxlVXJsczogWydzaWRlLW5hdi1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICdzaWRlLW5hdi1iYXIuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBBZHNTaWRlTmF2QmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWdpc3RyeTogQWRzSWNvblJlZ2lzdHJ5KSB7XG4gICAgdGhpcy5yZWdpc3RyeS5yZWdpc3RlcihbYWRzSWNvblNlYXJjaF0pO1xuICB9XG5cbiAgLyoqIFRoZSBkZWZhdWx0IGV4cGFuZGVkIHdpZHRoIGZvciB0aGUgc2lkZWJhciAqL1xuICBkZWZhdWx0RXhwYW5kZWRXaWR0aCA9IGlucHV0PG51bWJlcj4oMjIwKTtcblxuICAvKiogVGhlIHNlYXJjaCB0ZW1wbGF0ZSAqL1xuICBzZWFyY2hUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPHVua25vd24+PigpO1xuXG4gIC8qKiBUaGUgZXh0cmEgZGF0YSAgdGVtcGxhdGUgYmVsb3cgc2VhcmNoICovXG4gIGV4dHJhRGF0YVRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8dW5rbm93bj4+KCk7XG5cbiAgLyoqIEFycmF5IG9mIG5hdiBlbGVtZW50cyAqL1xuICBuYXZJdGVtcyA9IGlucHV0PE5hdkl0ZW1bXT4oW10pO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIGlzQ29sbGFwc2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBzaWRlYmFyU2l6ZSA9IHNpZ25hbDxudW1iZXI+KHRoaXMuZGVmYXVsdEV4cGFuZGVkV2lkdGgoKSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VOYW1lID0gJ3NpZGUtbmF2LWJhci13aWR0aCc7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSB3aWR0aFRvQ29sbGFwc2VkID0gNzA7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQFZpZXdDaGlsZCgnc2lkZU5hdkFyZWEnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgc2lkZU5hdkFyZWEhOiBFbGVtZW50UmVmO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25Jbml0KCkge1xuICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZU5hbWUpKSB7XG4gICAgICB0aGlzLnNpZGViYXJTaXplLnNldChKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlTmFtZSkhKSk7XG4gICAgfVxuICAgIHRoaXMuaXNDb2xsYXBzZWQuc2V0KHRoaXMuc2lkZWJhclNpemUoKSA8PSB0aGlzLndpZHRoVG9Db2xsYXBzZWQpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgb25EcmFnRW5kKGV2ZW50OiBTcGxpdEd1dHRlckludGVyYWN0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNhdmVMb2NhbFN0b3JhZ2UoTnVtYmVyKGV2ZW50LnNpemVzWzBdKSk7XG4gICAgdGhpcy5pc0NvbGxhcHNlZC5zZXQoTnVtYmVyKGV2ZW50LnNpemVzWzBdKSA8PSB0aGlzLndpZHRoVG9Db2xsYXBzZWQpO1xuICB9XG5cbiAgLyoqIEV4cGFuZCB0aGUgc2lkZWJhciBiZXR3ZWVuIGNvbGxhcHNlZCBhbmQgZXhwYW5kZWQgKi9cbiAgLyoqIEBpZ25vcmUgKi9cbiAgZXhwYW5kU2lkZWJhcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0NvbGxhcHNlZCkge1xuICAgICAgdGhpcy5zaWRlYmFyU2l6ZS5zZXQodGhpcy53aWR0aFRvQ29sbGFwc2VkKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmlzQ29sbGFwc2VkLnNldChmYWxzZSk7XG4gICAgICAgIHRoaXMuc2F2ZUxvY2FsU3RvcmFnZSh0aGlzLmRlZmF1bHRFeHBhbmRlZFdpZHRoKCkpO1xuICAgICAgICB0aGlzLnNpZGViYXJTaXplLnNldCh0aGlzLmRlZmF1bHRFeHBhbmRlZFdpZHRoKCkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFNhdmUgY3VycmVudCB3aWR0aCB0byB0aGUgbG9jYWwgc3RvcmFnZSAqL1xuICAvKiogQGlnbm9yZSAqL1xuICBzYXZlTG9jYWxTdG9yYWdlKHNpemU6IG51bWJlcik6IHZvaWQge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlTmFtZSwgSlNPTi5zdHJpbmdpZnkoc2l6ZSkpO1xuICB9XG59XG4iLCI8YXMtc3BsaXQgW3VzZVRyYW5zaXRpb25dPVwidHJ1ZVwiIHVuaXQ9XCJwaXhlbFwiIFtndXR0ZXJTaXplXT1cIjEwXCIgKGRyYWdFbmQpPVwib25EcmFnRW5kKCRldmVudClcIj5cbiAgPGFzLXNwbGl0LWFyZWEgW3NpemVdPVwic2lkZWJhclNpemUoKVwiIFttaW5TaXplXT1cIjUwXCIgW21heFNpemVdPVwiNjAwXCIgI3NpZGVOYXZBcmVhPlxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXNpZGUtY29udGVudC1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsb2dvLWNvbnRhaW5lclwiPlxuICAgICAgICA8YSBbcm91dGVyTGlua109XCInLydcIj5cbiAgICAgICAgICA8YWRzLXByaW1hcnktbG9nbyBbaXNDb2xsYXBzZWRdPVwidHJ1ZVwiIGNsYXNzPVwic2hvdy1vbi1jb2xsYXBzZWRcIiAvPlxuICAgICAgICAgIDxhZHMtcHJpbWFyeS1sb2dvIFtpc0NvbGxhcHNlZF09XCJmYWxzZVwiIGNsYXNzPVwiaGlkZS1vbi1jb2xsYXBzZWRcIiAvPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtcy1jb250YWluZXJcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBuYXZJdGVtcygpOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0uaHJlZlwiXG4gICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlLW5hdi1saW5rXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiB0cnVlIH1cIlxuICAgICAgICAgICAgY2xhc3M9XCJhZHMtbmF2LWxpbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZHMtbmF2LWl0ZW0tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIEBpZiAoISFpdGVtLmljb24pIHtcbiAgICAgICAgICAgICAgICA8YWRzLWljb25cbiAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIml0ZW0uaWNvbiFcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgIHRoZW1lPVwiaWNvblByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiaWNvblByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgY29sb3I9XCItLWNvbG9yLW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGlkZS1vbi1jb2xsYXBzZWRcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tY29udGFpbmVyXCIgKGNsaWNrKT1cIiEhc2VhcmNoVGVtcGxhdGUoKSAmJiBpc0NvbGxhcHNlZCgpID8gZXhwYW5kU2lkZWJhcigpIDogbnVsbFwiPlxuICAgICAgICBAaWYgKCEhc2VhcmNoVGVtcGxhdGUoKSkge1xuICAgICAgICAgIDxhZHMtaWNvbiBuYW1lPVwic2VhcmNoXCIgc2l6ZT1cInNtXCIgdGhlbWU9XCJpY29uUHJpbWFyeVwiIGNsYXNzPVwic2hvdy1vbi1jb2xsYXBzZWRcIiAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRlLW9uLWNvbGxhcHNlZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaFRlbXBsYXRlKCkhXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoISFleHRyYURhdGFUZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhpZGUtb24tY29sbGFwc2VkXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXh0cmFEYXRhVGVtcGxhdGUoKSFcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9hcy1zcGxpdC1hcmVhPlxuXG4gIDxhcy1zcGxpdC1hcmVhPlxuICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgPC9hcy1zcGxpdC1hcmVhPlxuPC9hcy1zcGxpdD5cbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRzLXVpL3NyYy9saWIvY29tcG9uZW50cy9uYXYtYmFyL3NpZGUtbmF2LWJhci9zaWRlLW5hdi1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZHMtdWkvc3JjL2xpYi9jb21wb25lbnRzL25hdi1iYXIvc2lkZS1uYXYtYmFyL3NpZGUtbmF2LWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBUzFELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsY0FBYztJQUNkLFlBQW9CLFFBQXlCO1FBQXpCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBSTdDLGlEQUFpRDtRQUNqRCx5QkFBb0IsR0FBRyxLQUFLLENBQVMsR0FBRyxDQUFDLENBQUM7UUFFMUMsMEJBQTBCO1FBQzFCLG1CQUFjLEdBQUcsS0FBSyxFQUF3QixDQUFDO1FBRS9DLDRDQUE0QztRQUM1QyxzQkFBaUIsR0FBRyxLQUFLLEVBQXdCLENBQUM7UUFFbEQsNEJBQTRCO1FBQzVCLGFBQVEsR0FBRyxLQUFLLENBQVksRUFBRSxDQUFDLENBQUM7UUFFaEMsY0FBYztRQUNkLGdCQUFXLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXJDLGNBQWM7UUFDZCxnQkFBVyxHQUFHLE1BQU0sQ0FBUyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBRTFELGNBQWM7UUFDTixxQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztRQUVoRCxjQUFjO1FBQ04scUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBRTlCLGNBQWM7UUFDTixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBNUJwQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQWdDRCxjQUFjO0lBQ2QsUUFBUTtRQUNOLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsY0FBYztJQUNkLFNBQVMsQ0FBQyxLQUFrQztRQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxjQUFjO0lBQ2QsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDNUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsOENBQThDO0lBQzlDLGNBQWM7SUFDZCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDOzhHQXpFVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixndkJBa0NDLFVBQVUsNkJDN0M5Qyxva0VBOERBOzsyRkRuRGEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGtCQUFrQjtvRkFzQ29CLFdBQVc7c0JBQTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5wdXQsIE9uSW5pdCwgc2lnbmFsLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBZHNJY29uUmVnaXN0cnkgfSBmcm9tICdAYXNjZW50Z2wvYWRzLWljb25zJztcbmltcG9ydCB7IGFkc0ljb25TZWFyY2ggfSBmcm9tICdAYXNjZW50Z2wvYWRzLWljb25zL2ljb25zJztcbmltcG9ydCB7IE5hdkl0ZW0gfSBmcm9tICcuL25hdi1pdGVtLnR5cGVzJztcbmltcG9ydCB7IFNwbGl0R3V0dGVySW50ZXJhY3Rpb25FdmVudCB9IGZyb20gJ2FuZ3VsYXItc3BsaXQvbGliL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Fkcy1zaWRlLW5hdi1iYXInLFxuICBzdHlsZVVybHM6IFsnc2lkZS1uYXYtYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnc2lkZS1uYXYtYmFyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQWRzU2lkZU5hdkJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKiBAaWdub3JlICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVnaXN0cnk6IEFkc0ljb25SZWdpc3RyeSkge1xuICAgIHRoaXMucmVnaXN0cnkucmVnaXN0ZXIoW2Fkc0ljb25TZWFyY2hdKTtcbiAgfVxuXG4gIC8qKiBUaGUgZGVmYXVsdCBleHBhbmRlZCB3aWR0aCBmb3IgdGhlIHNpZGViYXIgKi9cbiAgZGVmYXVsdEV4cGFuZGVkV2lkdGggPSBpbnB1dDxudW1iZXI+KDIyMCk7XG5cbiAgLyoqIFRoZSBzZWFyY2ggdGVtcGxhdGUgKi9cbiAgc2VhcmNoVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oKTtcblxuICAvKiogVGhlIGV4dHJhIGRhdGEgIHRlbXBsYXRlIGJlbG93IHNlYXJjaCAqL1xuICBleHRyYURhdGFUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPHVua25vd24+PigpO1xuXG4gIC8qKiBBcnJheSBvZiBuYXYgZWxlbWVudHMgKi9cbiAgbmF2SXRlbXMgPSBpbnB1dDxOYXZJdGVtW10+KFtdKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBpc0NvbGxhcHNlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgc2lkZWJhclNpemUgPSBzaWduYWw8bnVtYmVyPih0aGlzLmRlZmF1bHRFeHBhbmRlZFdpZHRoKCkpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgbG9jYWxTdG9yYWdlTmFtZSA9ICdzaWRlLW5hdi1iYXItd2lkdGgnO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgd2lkdGhUb0NvbGxhcHNlZCA9IDcwO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgbWluV2lkdGggPSA1MDtcblxuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKCdzaWRlTmF2QXJlYScsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBzaWRlTmF2QXJlYSE6IEVsZW1lbnRSZWY7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlTmFtZSkpIHtcbiAgICAgIHRoaXMuc2lkZWJhclNpemUuc2V0KEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sb2NhbFN0b3JhZ2VOYW1lKSEpKTtcbiAgICB9XG4gICAgdGhpcy5pc0NvbGxhcHNlZC5zZXQodGhpcy5zaWRlYmFyU2l6ZSgpIDw9IHRoaXMud2lkdGhUb0NvbGxhcHNlZCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBvbkRyYWdFbmQoZXZlbnQ6IFNwbGl0R3V0dGVySW50ZXJhY3Rpb25FdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZUxvY2FsU3RvcmFnZShOdW1iZXIoZXZlbnQuc2l6ZXNbMF0pKTtcbiAgICB0aGlzLmlzQ29sbGFwc2VkLnNldChOdW1iZXIoZXZlbnQuc2l6ZXNbMF0pIDw9IHRoaXMud2lkdGhUb0NvbGxhcHNlZCk7XG4gIH1cblxuICAvKiogRXhwYW5kIHRoZSBzaWRlYmFyIGJldHdlZW4gY29sbGFwc2VkIGFuZCBleHBhbmRlZCAqL1xuICAvKiogQGlnbm9yZSAqL1xuICBleHBhbmRTaWRlYmFyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQ29sbGFwc2VkKCkpIHtcbiAgICAgIHRoaXMuc2lkZWJhclNpemUuc2V0KHRoaXMud2lkdGhUb0NvbGxhcHNlZCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5pc0NvbGxhcHNlZC5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLnNhdmVMb2NhbFN0b3JhZ2UodGhpcy5kZWZhdWx0RXhwYW5kZWRXaWR0aCgpKTtcbiAgICAgICAgdGhpcy5zaWRlYmFyU2l6ZS5zZXQodGhpcy5kZWZhdWx0RXhwYW5kZWRXaWR0aCgpKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5pc0NvbGxhcHNlZC5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuc2F2ZUxvY2FsU3RvcmFnZSh0aGlzLm1pbldpZHRoKTtcbiAgICAgICAgdGhpcy5zaWRlYmFyU2l6ZS5zZXQodGhpcy5taW5XaWR0aCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogU2F2ZSBjdXJyZW50IHdpZHRoIHRvIHRoZSBsb2NhbCBzdG9yYWdlICovXG4gIC8qKiBAaWdub3JlICovXG4gIHNhdmVMb2NhbFN0b3JhZ2Uoc2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sb2NhbFN0b3JhZ2VOYW1lLCBKU09OLnN0cmluZ2lmeShzaXplKSk7XG4gIH1cbn1cbiIsIjxhcy1zcGxpdFxuICBbdXNlVHJhbnNpdGlvbl09XCJ0cnVlXCJcbiAgdW5pdD1cInBpeGVsXCJcbiAgW2d1dHRlclNpemVdPVwiMTBcIlxuICAoZHJhZ0VuZCk9XCJvbkRyYWdFbmQoJGV2ZW50KVwiXG4gIChndXR0ZXJEYmxDbGljayk9XCJleHBhbmRTaWRlYmFyKClcIlxuICBbZ3V0dGVyRGJsQ2xpY2tEdXJhdGlvbl09XCI1MDBcIlxuPlxuICA8YXMtc3BsaXQtYXJlYSBbc2l6ZV09XCJzaWRlYmFyU2l6ZSgpXCIgW21pblNpemVdPVwiNTBcIiBbbWF4U2l6ZV09XCI2MDBcIiAjc2lkZU5hdkFyZWE+XG4gICAgPGRpdiBjbGFzcz1cImxlZnQtc2lkZS1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIicvJ1wiPlxuICAgICAgICAgIDxhZHMtcHJpbWFyeS1sb2dvIFtpc0NvbGxhcHNlZF09XCJ0cnVlXCIgY2xhc3M9XCJzaG93LW9uLWNvbGxhcHNlZFwiIC8+XG4gICAgICAgICAgPGFkcy1wcmltYXJ5LWxvZ28gW2lzQ29sbGFwc2VkXT1cImZhbHNlXCIgY2xhc3M9XCJoaWRlLW9uLWNvbGxhcHNlZFwiIC8+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibmF2LWl0ZW1zLWNvbnRhaW5lclwiPlxuICAgICAgICBAZm9yIChpdGVtIG9mIG5hdkl0ZW1zKCk7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICA8YVxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS5ocmVmXCJcbiAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmUtbmF2LWxpbmtcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IHRydWUgfVwiXG4gICAgICAgICAgICBjbGFzcz1cImFkcy1uYXYtbGlua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkcy1uYXYtaXRlbS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgQGlmICghIWl0ZW0uaWNvbikge1xuICAgICAgICAgICAgICAgIDxhZHMtaWNvblxuICAgICAgICAgICAgICAgICAgW25hbWVdPVwiaXRlbS5pY29uIVwiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgdGhlbWU9XCJpY29uUHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICBzdHJva2U9XCJpY29uUHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICBjb2xvcj1cIi0tY29sb3ItbWVkaXVtXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoaWRlLW9uLWNvbGxhcHNlZFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbS1jb250YWluZXJcIiAoY2xpY2spPVwiISFzZWFyY2hUZW1wbGF0ZSgpICYmIGlzQ29sbGFwc2VkKCkgPyBleHBhbmRTaWRlYmFyKCkgOiBudWxsXCI+XG4gICAgICAgIEBpZiAoISFzZWFyY2hUZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgPGFkcy1pY29uIG5hbWU9XCJzZWFyY2hcIiBzaXplPVwic21cIiB0aGVtZT1cImljb25QcmltYXJ5XCIgY2xhc3M9XCJzaG93LW9uLWNvbGxhcHNlZFwiIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhpZGUtb24tY29sbGFwc2VkXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VhcmNoVGVtcGxhdGUoKSFcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICghIWV4dHJhRGF0YVRlbXBsYXRlKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZS1vbi1jb2xsYXBzZWRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJleHRyYURhdGFUZW1wbGF0ZSgpIVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2FzLXNwbGl0LWFyZWE+XG5cbiAgPGFzLXNwbGl0LWFyZWE+XG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICA8L2FzLXNwbGl0LWFyZWE+XG48L2FzLXNwbGl0PlxuIl19