@posiwise/resource-contact-us 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.mjs +5 -6
- package/esm2022/lib/resource-contact-us/resource-contact-us.component.mjs +511 -0
- package/esm2022/lib/resource-contact-us/shared-contact-us.module.mjs +28 -0
- package/esm2022/lib/resource-header/resource-header.component.mjs +3 -4
- package/esm2022/lib/resource-header/shared-header.module.mjs +34 -0
- package/fesm2022/{posiwise-resource-contact-us-edit-navbar-modal.component-C59Q3971.mjs → posiwise-resource-contact-us-edit-navbar-modal.component-jSKqyC6g.mjs} +4 -4
- package/fesm2022/{posiwise-resource-contact-us-edit-navbar-modal.component-C59Q3971.mjs.map → posiwise-resource-contact-us-edit-navbar-modal.component-jSKqyC6g.mjs.map} +1 -1
- package/fesm2022/posiwise-resource-contact-us.mjs +397 -813
- package/fesm2022/posiwise-resource-contact-us.mjs.map +1 -1
- package/index.d.ts +4 -5
- package/{resource-contact-us → lib/resource-contact-us}/resource-contact-us.component.d.ts +18 -5
- package/lib/resource-contact-us/shared-contact-us.module.d.ts +17 -0
- package/lib/resource-header/shared-header.module.d.ts +15 -0
- package/package.json +1 -1
- package/esm2022/lib/edit-footer-links-modal/edit-footer-links-modal.component.mjs +0 -198
- package/esm2022/lib/edit-questions-modal/edit-questions-modal.component.mjs +0 -156
- package/esm2022/lib/resource-header/resource-header.module.mjs +0 -63
- package/esm2022/resource-contact-us/resource-contact-us.component.mjs +0 -504
- package/esm2022/resource-contact-us/resource-contact-us.module.mjs +0 -79
- package/lib/edit-footer-links-modal/edit-footer-links-modal.component.d.ts +0 -22
- package/lib/edit-questions-modal/edit-questions-modal.component.d.ts +0 -21
- package/lib/resource-header/resource-header.module.d.ts +0 -21
- package/resource-contact-us/resource-contact-us.module.d.ts +0 -25
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core";
|
|
2
|
+
import { Trial4ContactUsComponent } from "./resource-contact-us.component";
|
|
3
|
+
import { CommonModule } from "@angular/common";
|
|
4
|
+
import { FieldErrorDisplayModule } from "../field-error-display/field-error-display.module";
|
|
5
|
+
import { DropdownModule } from "primeng/dropdown";
|
|
6
|
+
import { NgxCaptchaModule } from "ngx-captcha";
|
|
7
|
+
import { RouterModule } from "@angular/router";
|
|
8
|
+
import { PipesModule } from "@posiwise/pipes";
|
|
9
|
+
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
|
|
10
|
+
import { CoreTranslocoModule } from "@posiwise/core-transloco";
|
|
11
|
+
import { AdminModuleUtilsModule } from "@posiwise/admin-module-utils";
|
|
12
|
+
import { DirectivesModule } from "@posiwise/directives";
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
export class Trial4ContactUsComponentModule {
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: Trial4ContactUsComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
16
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: Trial4ContactUsComponentModule, declarations: [Trial4ContactUsComponent], imports: [CommonModule, FieldErrorDisplayModule, DropdownModule, ReactiveFormsModule, NgxCaptchaModule, RouterModule, PipesModule, FormsModule, CoreTranslocoModule, AdminModuleUtilsModule, DirectivesModule], exports: [Trial4ContactUsComponent, CommonModule, FieldErrorDisplayModule, DropdownModule, ReactiveFormsModule, NgxCaptchaModule, RouterModule, PipesModule, FormsModule, CoreTranslocoModule, AdminModuleUtilsModule, DirectivesModule] }); }
|
|
17
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: Trial4ContactUsComponentModule, imports: [CommonModule, FieldErrorDisplayModule, DropdownModule, ReactiveFormsModule, NgxCaptchaModule, RouterModule, PipesModule, FormsModule, CoreTranslocoModule, AdminModuleUtilsModule, DirectivesModule, CommonModule, FieldErrorDisplayModule, DropdownModule, ReactiveFormsModule, NgxCaptchaModule, RouterModule, PipesModule, FormsModule, CoreTranslocoModule, AdminModuleUtilsModule, DirectivesModule] }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: Trial4ContactUsComponentModule, decorators: [{
|
|
20
|
+
type: NgModule,
|
|
21
|
+
args: [{
|
|
22
|
+
declarations: [Trial4ContactUsComponent],
|
|
23
|
+
imports: [CommonModule, FieldErrorDisplayModule, DropdownModule, ReactiveFormsModule, NgxCaptchaModule, RouterModule, PipesModule, FormsModule, CoreTranslocoModule, AdminModuleUtilsModule, DirectivesModule],
|
|
24
|
+
exports: [Trial4ContactUsComponent, CommonModule, FieldErrorDisplayModule, DropdownModule, ReactiveFormsModule, NgxCaptchaModule, RouterModule, PipesModule, FormsModule, CoreTranslocoModule, AdminModuleUtilsModule, DirectivesModule],
|
|
25
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWNvbnRhY3QtdXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1jb250YWN0LXVzL3NyYy9saWIvcmVzb3VyY2UtY29udGFjdC11cy9zaGFyZWQtY29udGFjdC11cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFRdEQsTUFBTSxPQUFPLDhCQUE4QjsrR0FBOUIsOEJBQThCO2dIQUE5Qiw4QkFBOEIsaUJBTDFCLHdCQUF3QixhQUM3QixZQUFZLEVBQUUsdUJBQXVCLEVBQUUsY0FBYyxFQUFDLG1CQUFtQixFQUFJLGdCQUFnQixFQUFHLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixhQUNyTSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsY0FBYyxFQUFDLG1CQUFtQixFQUFJLGdCQUFnQixFQUFHLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLGdCQUFnQjtnSEFHOU4sOEJBQThCLFlBSi9CLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxjQUFjLEVBQUMsbUJBQW1CLEVBQUksZ0JBQWdCLEVBQUcsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQzNLLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxjQUFjLEVBQUMsbUJBQW1CLEVBQUksZ0JBQWdCLEVBQUcsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCOzs0RkFHOU4sOEJBQThCO2tCQU41QyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsY0FBYyxFQUFDLG1CQUFtQixFQUFJLGdCQUFnQixFQUFHLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDO29CQUNoTixPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsY0FBYyxFQUFDLG1CQUFtQixFQUFJLGdCQUFnQixFQUFHLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDO29CQUN6TyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmlhbDRDb250YWN0VXNDb21wb25lbnQgfSBmcm9tIFwiLi9yZXNvdXJjZS1jb250YWN0LXVzLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgRmllbGRFcnJvckRpc3BsYXlNb2R1bGUgfSBmcm9tIFwiLi4vZmllbGQtZXJyb3ItZGlzcGxheS9maWVsZC1lcnJvci1kaXNwbGF5Lm1vZHVsZVwiO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9kcm9wZG93blwiO1xuaW1wb3J0IHsgTmd4Q2FwdGNoYU1vZHVsZSB9IGZyb20gXCJuZ3gtY2FwdGNoYVwiO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgUGlwZXNNb2R1bGUgfSBmcm9tIFwiQHBvc2l3aXNlL3BpcGVzXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQ29yZVRyYW5zbG9jb01vZHVsZSB9IGZyb20gXCJAcG9zaXdpc2UvY29yZS10cmFuc2xvY29cIjtcbmltcG9ydCB7IEFkbWluTW9kdWxlVXRpbHNNb2R1bGUgfSBmcm9tIFwiQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlsc1wiO1xuaW1wb3J0IHsgRGlyZWN0aXZlc01vZHVsZSB9IGZyb20gXCJAcG9zaXdpc2UvZGlyZWN0aXZlc1wiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1RyaWFsNENvbnRhY3RVc0NvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRmllbGRFcnJvckRpc3BsYXlNb2R1bGUsIERyb3Bkb3duTW9kdWxlLFJlYWN0aXZlRm9ybXNNb2R1bGUsICAgTmd4Q2FwdGNoYU1vZHVsZSwgIFJvdXRlck1vZHVsZSwgUGlwZXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBDb3JlVHJhbnNsb2NvTW9kdWxlLCBBZG1pbk1vZHVsZVV0aWxzTW9kdWxlLCBEaXJlY3RpdmVzTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbVHJpYWw0Q29udGFjdFVzQ29tcG9uZW50LCBDb21tb25Nb2R1bGUsIEZpZWxkRXJyb3JEaXNwbGF5TW9kdWxlLCBEcm9wZG93bk1vZHVsZSxSZWFjdGl2ZUZvcm1zTW9kdWxlLCAgIE5neENhcHRjaGFNb2R1bGUsICBSb3V0ZXJNb2R1bGUsIFBpcGVzTW9kdWxlLCBGb3Jtc01vZHVsZSwgQ29yZVRyYW5zbG9jb01vZHVsZSwgQWRtaW5Nb2R1bGVVdGlsc01vZHVsZSwgRGlyZWN0aXZlc01vZHVsZV0sXG4gICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXVxuICB9KVxuICBleHBvcnQgY2xhc3MgVHJpYWw0Q29udGFjdFVzQ29tcG9uZW50TW9kdWxlIHt9XG4iXX0=
|
|
@@ -9,7 +9,6 @@ import * as i1 from "@posiwise/admin-module-utils";
|
|
|
9
9
|
import * as i2 from "@ng-bootstrap/ng-bootstrap";
|
|
10
10
|
import * as i3 from "@angular/common";
|
|
11
11
|
import * as i4 from "@angular/router";
|
|
12
|
-
import * as i5 from "@posiwise/directives";
|
|
13
12
|
export class ResourceHeaderComponent extends AppBaseComponent {
|
|
14
13
|
constructor(injector, document, adminService, modalService) {
|
|
15
14
|
super(injector);
|
|
@@ -198,11 +197,11 @@ export class ResourceHeaderComponent extends AppBaseComponent {
|
|
|
198
197
|
window.location.href = '/login';
|
|
199
198
|
}
|
|
200
199
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderComponent, deps: [{ token: i0.Injector }, { token: DOCUMENT }, { token: i1.AdminService }, { token: i2.NgbModal }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
201
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceHeaderComponent, selector: "pw-resource-header", inputs: { user: "user", userLoggedIn: "userLoggedIn" }, host: { listeners: { "window:scroll": "onScroll()", "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "navbarCollapse", first: true, predicate: ["collapsibleNavbar"], descendants: true }, { propertyName: "logoEditModal", first: true, predicate: ["logoEditModal"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<nav class=\"navbar navbar-expand-md navbar-dark fixed-top primary-nav-bg-color resource-header\"\n id=\"banner\">\n <div class=\"container container-wrapper banner-section\">\n\n <!-- Toggler/collapsibe Button -->\n <button class=\"navbar-toggler header-menu-bar\"\n type=\"button\"\n aria-label=\"Toggle navigation\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#collapsibleNavbar\">\n <img src=\"/assets/img/products/trial/navbar-toggle-icon.png\"\n class=\"img-fluid navbar-toggle-icon\"\n alt=\"\" />\n </button>\n\n <!-- Mobile Logo -->\n <div class=\"d-md-none mb-icon\">\n <div>\n <img src=\"/assets/img/landing-page/site-logo.png\"\n [src]=\"logo || '/assets/img/landing-page/site-logo.png'\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\"\n width=\"100\"\n height=\"100\"\n loading=\"eager\"\n fetchpriority=\"high\"\n sizes=\"100px\" />\n </div>\n </div>\n\n\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openLogoEditModal()\"\n (keydown.enter)=\"openLogoEditModal()\"\n (keydown.space)=\"openLogoEditModal()\"\n title=\"Edit Logo\"></i>\n\n\n <!-- Navbar links -->\n <div class=\"collapse navbar-collapse mt-3 mt-md-0\"\n id=\"collapsibleNavbar\"\n #collapsibleNavbar>\n <div class=\"row align-items-center w-100\">\n\n <!-- Always occupy 3 columns for logo -->\n <div class=\"col-md-2 d-none d-md-flex align-items-center\">\n <div>\n <img src=\"/assets/img/landing-page/site-logo.png\"\n [src]=\"logo || '/assets/img/landing-page/site-logo.png'\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\"\n width=\"100\"\n height=\"100\"\n loading=\"eager\"\n fetchpriority=\"high\"\n sizes=\"100px\" />\n </div>\n </div>\n\n\n <div class=\"col-md-7 d-flex justify-content-start\">\n <ul #anchorLinks\n class=\"navbar-nav flex gap-4 me-0 wow fadeInUp position-relative\"\n data-wow-duration=\"2s\">\n\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openEditNavbarModal()\"\n (keydown.enter)=\"openEditNavbarModal()\"\n (keydown.space)=\"openEditNavbarModal()\"\n title=\"Edit Navbar Links\"></i>\n <li class=\"nav-item\" *ngFor=\"let item of navbarItems\">\n <div class=\"dropdown-container\"\n (mouseenter)=\"openDropdown(item)\">\n <a\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n [ngClass]=\"{ 'scrolled-nav-link': isScrolled }\"\n (click)=\"item.subtitles?.length ? (item.open = !item.open) : null\"\n [attr.href]=\"!(item.subtitles?.length) ? item.path : null\"\n >\n {{ item?.title }}\n <i *ngIf=\"item.subtitles.length > 0 && item.open\" class=\"fa-solid fa-caret-down\"></i>\n </a>\n <div class=\"popup position-absolute\"\n *ngIf=\"item.subtitles.length > 0 && item.open\">\n <ul>\n <li\n *ngFor=\"let sub of item.subtitles\"\n [routerLink]=\"sub.path\"\n class=\"dropdownItem\"\n (click)=\"onDropdownItemClick(item)\"\n (keydown.enter)=\"onDropdownItemClick(item)\"\n (keydown.space)=\"onDropdownItemClick(item)\"\n >\n {{ sub.title }}\n </li>\n </ul>\n </div>\n </div>\n </li>\n\n <li class=\"nav-item ms-2 mb-3 d-flex d-md-none\">\n <a class=\"sign-btn sign-header-btn\"\n (click)=\"navigateToLogin()\">Log In</a>\n </li>\n </ul>\n </div>\n\n <!-- Always 3 columns for login -->\n <div class=\"col-md-3 d-none d-md-flex justify-content-end\">\n <a class=\"sign-btn sign-header-btn\"\n (click)=\"navigateToLogin()\">Log In</a>\n </div>\n\n </div>\n </div>\n </div>\n</nav>\n\n<ng-template #logoEditModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Logo</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n
|
|
200
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceHeaderComponent, selector: "pw-resource-header", inputs: { user: "user", userLoggedIn: "userLoggedIn" }, host: { listeners: { "window:scroll": "onScroll()", "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "navbarCollapse", first: true, predicate: ["collapsibleNavbar"], descendants: true }, { propertyName: "logoEditModal", first: true, predicate: ["logoEditModal"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<nav class=\"navbar navbar-expand-md navbar-dark fixed-top primary-nav-bg-color resource-header\"\n id=\"banner\">\n <div class=\"container container-wrapper banner-section\">\n\n <!-- Toggler/collapsibe Button -->\n <button class=\"navbar-toggler header-menu-bar\"\n type=\"button\"\n aria-label=\"Toggle navigation\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#collapsibleNavbar\">\n <img src=\"/assets/img/products/trial/navbar-toggle-icon.png\"\n class=\"img-fluid navbar-toggle-icon\"\n alt=\"\" />\n </button>\n\n <!-- Mobile Logo -->\n <div class=\"d-md-none mb-icon\">\n <div>\n <img src=\"/assets/img/landing-page/site-logo.png\"\n [src]=\"logo || '/assets/img/landing-page/site-logo.png'\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\"\n width=\"100\"\n height=\"100\"\n loading=\"eager\"\n fetchpriority=\"high\"\n sizes=\"100px\" />\n </div>\n </div>\n\n\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openLogoEditModal()\"\n (keydown.enter)=\"openLogoEditModal()\"\n (keydown.space)=\"openLogoEditModal()\"\n title=\"Edit Logo\"></i>\n\n\n <!-- Navbar links -->\n <div class=\"collapse navbar-collapse mt-3 mt-md-0\"\n id=\"collapsibleNavbar\"\n #collapsibleNavbar>\n <div class=\"row align-items-center w-100\">\n\n <!-- Always occupy 3 columns for logo -->\n <div class=\"col-md-2 d-none d-md-flex align-items-center\">\n <div>\n <img src=\"/assets/img/landing-page/site-logo.png\"\n [src]=\"logo || '/assets/img/landing-page/site-logo.png'\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\"\n width=\"100\"\n height=\"100\"\n loading=\"eager\"\n fetchpriority=\"high\"\n sizes=\"100px\" />\n </div>\n </div>\n\n\n <div class=\"col-md-7 d-flex justify-content-start\">\n <ul #anchorLinks\n class=\"navbar-nav flex gap-4 me-0 wow fadeInUp position-relative\"\n data-wow-duration=\"2s\">\n\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openEditNavbarModal()\"\n (keydown.enter)=\"openEditNavbarModal()\"\n (keydown.space)=\"openEditNavbarModal()\"\n title=\"Edit Navbar Links\"></i>\n <li class=\"nav-item\" *ngFor=\"let item of navbarItems\">\n <div class=\"dropdown-container\"\n (mouseenter)=\"openDropdown(item)\">\n <a\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n [ngClass]=\"{ 'scrolled-nav-link': isScrolled }\"\n (click)=\"item.subtitles?.length ? (item.open = !item.open) : null\"\n [attr.href]=\"!(item.subtitles?.length) ? item.path : null\"\n >\n {{ item?.title }}\n <i *ngIf=\"item.subtitles.length > 0 && item.open\" class=\"fa-solid fa-caret-down\"></i>\n </a>\n <div class=\"popup position-absolute\"\n *ngIf=\"item.subtitles.length > 0 && item.open\">\n <ul>\n <li\n *ngFor=\"let sub of item.subtitles\"\n [routerLink]=\"sub.path\"\n class=\"dropdownItem\"\n (click)=\"onDropdownItemClick(item)\"\n (keydown.enter)=\"onDropdownItemClick(item)\"\n (keydown.space)=\"onDropdownItemClick(item)\"\n >\n {{ sub.title }}\n </li>\n </ul>\n </div>\n </div>\n </li>\n\n <li class=\"nav-item ms-2 mb-3 d-flex d-md-none\">\n <a class=\"sign-btn sign-header-btn\"\n (click)=\"navigateToLogin()\">Log In</a>\n </li>\n </ul>\n </div>\n\n <!-- Always 3 columns for login -->\n <div class=\"col-md-3 d-none d-md-flex justify-content-end\">\n <a class=\"sign-btn sign-header-btn\"\n (click)=\"navigateToLogin()\">Log In</a>\n </div>\n\n </div>\n </div>\n </div>\n</nav>\n\n<ng-template #logoEditModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Logo</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <pw-custom-uploader\n [title]=\"'Main Logo'\"\n [controlName]=\"'logo_main'\"\n [aspectRatio]=\"'fullLogo'\"\n [previewData]=\"{ url: logo, name: 'logo_main.png' }\"\n (saveEvent)=\"onSaveLogo($event)\">\n </pw-custom-uploader>\n </div>\n</ng-template>", styles: [".navbar-custom-background{background-color:#00000080;box-shadow:2px 2px 15px 2px #0000001f;transition:width 2s,height 2s,-webkit-transform 2s;transition:width 2s,height 2s,transform 2s background-color .5s ease;z-index:9999}.fixed-top{position:fixed!important}.primary-button{background-color:#000;border-radius:50px;color:#fff;font: 600 16.3px Montserrat-Regular,sans-serif;padding:5px 16px!important;width:auto;display:flex;gap:15px;align-items:center;justify-content:space-between}.logo_img{width:60%!important;min-width:159px!important}.navbar-toggle-icon{width:25px}@media (min-width: 500px){.navbar-nav .nav-item button{margin-top:10px}}@media (max-width: 1200px){.navbar-nav .nav-item .nav-link{font-size:15px!important}}.navbar-nav .nav-link{display:inline-flex!important;white-space:nowrap;gap:4px}.fa-caret-down{font-family:\"Font Awesome 6 Pro\",sans-serif;font-weight:900}@media (min-width: 1200px){.navbar-nav .nav-item .nav-link{padding-bottom:0!important;padding-top:0!important}.popup{top:3.4rem!important;background-color:var(--first)!important;background-color:transparent;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.router-link-active{color:#000!important}}@media (max-width: 1200px){.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.popup ul li:hover{background-color:#f1f1f1}.mb-icon{width:200px}.container-wrapper{padding:10px 20px!important}.dropdown-container{position:relative;display:inline-block}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}}@media (max-width: 500px){.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}}.popup{top:90%;background-color:transparent;padding:10px;z-index:1000}.popup ul{list-style-type:none;padding:0;margin:0}.popup ul li{padding:5px 10px;font: 500 14px Montserrat-Regular,sans-serif}.resource-header .nav-link.scrolled-nav-link{color:#fff!important}.resource-header .sign-btn,.resource-header .sign-header-btn{text-decoration:none!important}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}@media (max-width: 500px){.logo_img{width:60%!important;margin-left:auto;margin-right:0;display:block;transition:margin .5s ease,width .5s ease}.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul{list-style-type:none;padding:0;margin:0}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}.dropdown-container{position:relative;display:inline-block}}.navbar-nav{visibility:visible!important;display:flex!important}.nav-link{text-transform:uppercase}.dropdown-container{position:relative;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
202
201
|
}
|
|
203
202
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderComponent, decorators: [{
|
|
204
203
|
type: Component,
|
|
205
|
-
args: [{ selector: 'pw-resource-header', template: "<nav class=\"navbar navbar-expand-md navbar-dark fixed-top primary-nav-bg-color resource-header\"\n id=\"banner\">\n <div class=\"container container-wrapper banner-section\">\n\n <!-- Toggler/collapsibe Button -->\n <button class=\"navbar-toggler header-menu-bar\"\n type=\"button\"\n aria-label=\"Toggle navigation\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#collapsibleNavbar\">\n <img src=\"/assets/img/products/trial/navbar-toggle-icon.png\"\n class=\"img-fluid navbar-toggle-icon\"\n alt=\"\" />\n </button>\n\n <!-- Mobile Logo -->\n <div class=\"d-md-none mb-icon\">\n <div>\n <img src=\"/assets/img/landing-page/site-logo.png\"\n [src]=\"logo || '/assets/img/landing-page/site-logo.png'\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\"\n width=\"100\"\n height=\"100\"\n loading=\"eager\"\n fetchpriority=\"high\"\n sizes=\"100px\" />\n </div>\n </div>\n\n\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openLogoEditModal()\"\n (keydown.enter)=\"openLogoEditModal()\"\n (keydown.space)=\"openLogoEditModal()\"\n title=\"Edit Logo\"></i>\n\n\n <!-- Navbar links -->\n <div class=\"collapse navbar-collapse mt-3 mt-md-0\"\n id=\"collapsibleNavbar\"\n #collapsibleNavbar>\n <div class=\"row align-items-center w-100\">\n\n <!-- Always occupy 3 columns for logo -->\n <div class=\"col-md-2 d-none d-md-flex align-items-center\">\n <div>\n <img src=\"/assets/img/landing-page/site-logo.png\"\n [src]=\"logo || '/assets/img/landing-page/site-logo.png'\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\"\n width=\"100\"\n height=\"100\"\n loading=\"eager\"\n fetchpriority=\"high\"\n sizes=\"100px\" />\n </div>\n </div>\n\n\n <div class=\"col-md-7 d-flex justify-content-start\">\n <ul #anchorLinks\n class=\"navbar-nav flex gap-4 me-0 wow fadeInUp position-relative\"\n data-wow-duration=\"2s\">\n\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openEditNavbarModal()\"\n (keydown.enter)=\"openEditNavbarModal()\"\n (keydown.space)=\"openEditNavbarModal()\"\n title=\"Edit Navbar Links\"></i>\n <li class=\"nav-item\" *ngFor=\"let item of navbarItems\">\n <div class=\"dropdown-container\"\n (mouseenter)=\"openDropdown(item)\">\n <a\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n [ngClass]=\"{ 'scrolled-nav-link': isScrolled }\"\n (click)=\"item.subtitles?.length ? (item.open = !item.open) : null\"\n [attr.href]=\"!(item.subtitles?.length) ? item.path : null\"\n >\n {{ item?.title }}\n <i *ngIf=\"item.subtitles.length > 0 && item.open\" class=\"fa-solid fa-caret-down\"></i>\n </a>\n <div class=\"popup position-absolute\"\n *ngIf=\"item.subtitles.length > 0 && item.open\">\n <ul>\n <li\n *ngFor=\"let sub of item.subtitles\"\n [routerLink]=\"sub.path\"\n class=\"dropdownItem\"\n (click)=\"onDropdownItemClick(item)\"\n (keydown.enter)=\"onDropdownItemClick(item)\"\n (keydown.space)=\"onDropdownItemClick(item)\"\n >\n {{ sub.title }}\n </li>\n </ul>\n </div>\n </div>\n </li>\n\n <li class=\"nav-item ms-2 mb-3 d-flex d-md-none\">\n <a class=\"sign-btn sign-header-btn\"\n (click)=\"navigateToLogin()\">Log In</a>\n </li>\n </ul>\n </div>\n\n <!-- Always 3 columns for login -->\n <div class=\"col-md-3 d-none d-md-flex justify-content-end\">\n <a class=\"sign-btn sign-header-btn\"\n (click)=\"navigateToLogin()\">Log In</a>\n </div>\n\n </div>\n </div>\n </div>\n</nav>\n\n<ng-template #logoEditModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Logo</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n
|
|
204
|
+
args: [{ selector: 'pw-resource-header', template: "<nav class=\"navbar navbar-expand-md navbar-dark fixed-top primary-nav-bg-color resource-header\"\n id=\"banner\">\n <div class=\"container container-wrapper banner-section\">\n\n <!-- Toggler/collapsibe Button -->\n <button class=\"navbar-toggler header-menu-bar\"\n type=\"button\"\n aria-label=\"Toggle navigation\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#collapsibleNavbar\">\n <img src=\"/assets/img/products/trial/navbar-toggle-icon.png\"\n class=\"img-fluid navbar-toggle-icon\"\n alt=\"\" />\n </button>\n\n <!-- Mobile Logo -->\n <div class=\"d-md-none mb-icon\">\n <div>\n <img src=\"/assets/img/landing-page/site-logo.png\"\n [src]=\"logo || '/assets/img/landing-page/site-logo.png'\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\"\n width=\"100\"\n height=\"100\"\n loading=\"eager\"\n fetchpriority=\"high\"\n sizes=\"100px\" />\n </div>\n </div>\n\n\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openLogoEditModal()\"\n (keydown.enter)=\"openLogoEditModal()\"\n (keydown.space)=\"openLogoEditModal()\"\n title=\"Edit Logo\"></i>\n\n\n <!-- Navbar links -->\n <div class=\"collapse navbar-collapse mt-3 mt-md-0\"\n id=\"collapsibleNavbar\"\n #collapsibleNavbar>\n <div class=\"row align-items-center w-100\">\n\n <!-- Always occupy 3 columns for logo -->\n <div class=\"col-md-2 d-none d-md-flex align-items-center\">\n <div>\n <img src=\"/assets/img/landing-page/site-logo.png\"\n [src]=\"logo || '/assets/img/landing-page/site-logo.png'\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\"\n width=\"100\"\n height=\"100\"\n loading=\"eager\"\n fetchpriority=\"high\"\n sizes=\"100px\" />\n </div>\n </div>\n\n\n <div class=\"col-md-7 d-flex justify-content-start\">\n <ul #anchorLinks\n class=\"navbar-nav flex gap-4 me-0 wow fadeInUp position-relative\"\n data-wow-duration=\"2s\">\n\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openEditNavbarModal()\"\n (keydown.enter)=\"openEditNavbarModal()\"\n (keydown.space)=\"openEditNavbarModal()\"\n title=\"Edit Navbar Links\"></i>\n <li class=\"nav-item\" *ngFor=\"let item of navbarItems\">\n <div class=\"dropdown-container\"\n (mouseenter)=\"openDropdown(item)\">\n <a\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n [ngClass]=\"{ 'scrolled-nav-link': isScrolled }\"\n (click)=\"item.subtitles?.length ? (item.open = !item.open) : null\"\n [attr.href]=\"!(item.subtitles?.length) ? item.path : null\"\n >\n {{ item?.title }}\n <i *ngIf=\"item.subtitles.length > 0 && item.open\" class=\"fa-solid fa-caret-down\"></i>\n </a>\n <div class=\"popup position-absolute\"\n *ngIf=\"item.subtitles.length > 0 && item.open\">\n <ul>\n <li\n *ngFor=\"let sub of item.subtitles\"\n [routerLink]=\"sub.path\"\n class=\"dropdownItem\"\n (click)=\"onDropdownItemClick(item)\"\n (keydown.enter)=\"onDropdownItemClick(item)\"\n (keydown.space)=\"onDropdownItemClick(item)\"\n >\n {{ sub.title }}\n </li>\n </ul>\n </div>\n </div>\n </li>\n\n <li class=\"nav-item ms-2 mb-3 d-flex d-md-none\">\n <a class=\"sign-btn sign-header-btn\"\n (click)=\"navigateToLogin()\">Log In</a>\n </li>\n </ul>\n </div>\n\n <!-- Always 3 columns for login -->\n <div class=\"col-md-3 d-none d-md-flex justify-content-end\">\n <a class=\"sign-btn sign-header-btn\"\n (click)=\"navigateToLogin()\">Log In</a>\n </div>\n\n </div>\n </div>\n </div>\n</nav>\n\n<ng-template #logoEditModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Logo</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <pw-custom-uploader\n [title]=\"'Main Logo'\"\n [controlName]=\"'logo_main'\"\n [aspectRatio]=\"'fullLogo'\"\n [previewData]=\"{ url: logo, name: 'logo_main.png' }\"\n (saveEvent)=\"onSaveLogo($event)\">\n </pw-custom-uploader>\n </div>\n</ng-template>", styles: [".navbar-custom-background{background-color:#00000080;box-shadow:2px 2px 15px 2px #0000001f;transition:width 2s,height 2s,-webkit-transform 2s;transition:width 2s,height 2s,transform 2s background-color .5s ease;z-index:9999}.fixed-top{position:fixed!important}.primary-button{background-color:#000;border-radius:50px;color:#fff;font: 600 16.3px Montserrat-Regular,sans-serif;padding:5px 16px!important;width:auto;display:flex;gap:15px;align-items:center;justify-content:space-between}.logo_img{width:60%!important;min-width:159px!important}.navbar-toggle-icon{width:25px}@media (min-width: 500px){.navbar-nav .nav-item button{margin-top:10px}}@media (max-width: 1200px){.navbar-nav .nav-item .nav-link{font-size:15px!important}}.navbar-nav .nav-link{display:inline-flex!important;white-space:nowrap;gap:4px}.fa-caret-down{font-family:\"Font Awesome 6 Pro\",sans-serif;font-weight:900}@media (min-width: 1200px){.navbar-nav .nav-item .nav-link{padding-bottom:0!important;padding-top:0!important}.popup{top:3.4rem!important;background-color:var(--first)!important;background-color:transparent;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.router-link-active{color:#000!important}}@media (max-width: 1200px){.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.popup ul li:hover{background-color:#f1f1f1}.mb-icon{width:200px}.container-wrapper{padding:10px 20px!important}.dropdown-container{position:relative;display:inline-block}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}}@media (max-width: 500px){.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}}.popup{top:90%;background-color:transparent;padding:10px;z-index:1000}.popup ul{list-style-type:none;padding:0;margin:0}.popup ul li{padding:5px 10px;font: 500 14px Montserrat-Regular,sans-serif}.resource-header .nav-link.scrolled-nav-link{color:#fff!important}.resource-header .sign-btn,.resource-header .sign-header-btn{text-decoration:none!important}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}@media (max-width: 500px){.logo_img{width:60%!important;margin-left:auto;margin-right:0;display:block;transition:margin .5s ease,width .5s ease}.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul{list-style-type:none;padding:0;margin:0}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}.dropdown-container{position:relative;display:inline-block}}.navbar-nav{visibility:visible!important;display:flex!important}.nav-link{text-transform:uppercase}.dropdown-container{position:relative;display:inline-block}\n"] }]
|
|
206
205
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: Document, decorators: [{
|
|
207
206
|
type: Inject,
|
|
208
207
|
args: [DOCUMENT]
|
|
@@ -223,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
223
222
|
type: HostListener,
|
|
224
223
|
args: ['document:click', ['$event']]
|
|
225
224
|
}] } });
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcmVzb3VyY2UtY29udGFjdC11cy9zcmMvbGliL3Jlc291cmNlLWhlYWRlci9yZXNvdXJjZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1jb250YWN0LXVzL3NyYy9saWIvcmVzb3VyY2UtaGVhZGVyL3Jlc291cmNlLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUlMLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFxQnRELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxnQkFBZ0I7SUFzQnpELFlBQ0ksUUFBa0IsRUFDaUIsUUFBa0IsRUFDcEMsWUFBMEIsRUFDMUIsWUFBc0I7UUFFdkMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSm1CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQVU7UUFwQjNDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNiLFNBQUksR0FB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QkFMbkMsU0FBUzsrQkFDSSxvQkFBb0I7OzBCQTRCekIsTUFBTTsyQkFBQyxRQUFROzJGQXZCWSxjQUFjO3NCQUE3QyxTQUFTO3VCQUFDLG1CQUFtQjtnQkFDRixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBQ2pCLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQXlGTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBdUNqQyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5cbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5pbXBvcnQgeyBDdXN0b21VcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2N1c3RvbS11cGxvYWRlci9jdXN0b20tdXBsb2FkZXIuY29tcG9uZW50JztcblxuaW50ZXJmYWNlIExvZ29Db25maWcge1xuICAgIHVybD86IHN0cmluZztcbiAgICB2ZXJzaW9uXzEwMHgxMDA/OiB7XG4gICAgICAgIHVybD86IHN0cmluZztcbiAgICB9O1xufVxuXG5pbnRlcmZhY2UgTG9nb3NDb25maWcge1xuICAgIG1haW5fY29udHJhc3Q/OiBMb2dvQ29uZmlnO1xuICAgIG1haW5fZGFyaz86IExvZ29Db25maWc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctcmVzb3VyY2UtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmVzb3VyY2UtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yZXNvdXJjZS1oZWFkZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZUhlYWRlckNvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZCgnY29sbGFwc2libGVOYXZiYXInKSBuYXZiYXJDb2xsYXBzZTogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdsb2dvRWRpdE1vZGFsJykgbG9nb0VkaXRNb2RhbDogVGVtcGxhdGVSZWY8Q3VzdG9tVXBsb2FkZXJDb21wb25lbnQ+O1xuICAgIEBJbnB1dCgpIHVzZXI6IFVzZXI7XG4gICAgQElucHV0KCkgdXNlckxvZ2dlZEluOiBib29sZWFuO1xuXG4gICAgaXNTY3JvbGxlZCA9IGZhbHNlO1xuICAgIG9wZW4gPSBmYWxzZTtcbiAgICBsb2dvID0gJy9hc3NldHMvaW1nL2xhbmRpbmctcGFnZS9zaXRlLWxvZ28ucG5nJzsgLy8gU3RhdGljIGZhbGxiYWNrIGZvciBMQ1Agb3B0aW1pemF0aW9uXG4gICAgbmF2YmFySXRlbXMgPSB0aGlzLmFwcENvbmZpZz8ucGFnZXNfY29uZmlnPy5uYXZiYXI/Lml0ZW1zO1xuICAgIGRvbWFpbklkID0gdGhpcy5hcHBDb25maWc/LmRvbWFpbl9pZDtcbiAgICBjb250cmFzdEltYWdlVXJsID0gdGhpcy5hcHBDb25maWc/LmNvbXBhbnk/LmxvZ29zPy5tYWluX2NvbnRyYXN0Py51cmw7XG4gICAgZGFya0ltYWdlVXJsID0gdGhpcy5hcHBDb25maWc/LmNvbXBhbnk/LmxvZ29zPy5tYWluX2Rhcms/LnVybDtcblxuICAgIGVkaXRpbmdOYXZiYXIgPSB7XG4gICAgICAgIGl0ZW1zOiBbXVxuICAgIH07XG4gICAgaWQ6IHN0cmluZztcbiAgICBzY3JvbGxUaW1lb3V0O1xuXG4gICAgY2FuRWRpdFJlc291cmNlc1ZhbHVlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0luIEhlYWRlcicpO1xuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gYXBwQ29uZmlnIGNoYW5nZXMgdG8gdXBkYXRlIGxvZ28gZHluYW1pY2FsbHlcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLmFwcENvbmZpZyQuc3Vic2NyaWJlKGNvbmZpZyA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZmlnPy5jb21wYW55Py5sb2dvcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzQWJvdXRVcyA9IHRoaXMucm91dGVyLnVybD8uaW5jbHVkZXMoJy9hYm91dC11cycpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvZ29zID0gY29uZmlnLmNvbXBhbnkubG9nb3MgYXMgTG9nb3NDb25maWc7XG5cbiAgICAgICAgICAgICAgICAvLyBVc2Ugc21hbGxlciB2ZXJzaW9uIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgKDEwMHgxMDAgaW5zdGVhZCBvZiAxMjAweDI2NClcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ28gPSBpc0Fib3V0VXNcbiAgICAgICAgICAgICAgICAgICAgPyBsb2dvcy5tYWluX2NvbnRyYXN0Py51cmwgfHwgJy9hc3NldHMvaW1nL2xhbmRpbmctcGFnZS9zaXRlLWxvZ28ucG5nJ1xuICAgICAgICAgICAgICAgICAgICA6IGxvZ29zLm1haW5fZGFyaz8udXJsIHx8ICcvYXNzZXRzL2ltZy9sYW5kaW5nLXBhZ2Uvc2l0ZS1sb2dvLnBuZyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLnVzZXJMb2dnZWRJbikge1xuICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSQoJ3Byb2R1Y3QnKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gcmVzID8gSlNPTi5wYXJzZShyZXMpIDogbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmlkID0gZGF0YT8uc3Vic2NyaXB0aW9uSWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ3VzZXInXSB8fCBjaGFuZ2VzWyd1c2VyTG9nZ2VkSW4nXSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudXNlckxvZ2dlZEluICYmIHRoaXMudXNlcikge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FuRWRpdFJlc291cmNlc1ZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuTG9nb0VkaXRNb2RhbCgpIHtcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmxvZ29FZGl0TW9kYWwsIHsgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCcgfSk7XG4gICAgfVxuXG4gICAgb25TYXZlTG9nbyhldmVudCkge1xuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3N1YnNjcmlwdGlvbl9pZCcsIHRoaXMuaWQpO1xuICAgICAgICBpZiAoZXZlbnQuZmlsZSBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCh0aGlzLmlzU2Nyb2xsZWQgPyAnbG9nb19tYWluX2NvbnRyYXN0JyA6ICdsb2dvX21haW5fZGFyaycsIGV2ZW50LmZpbGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgICAgICAgIHRoaXMuaXNTY3JvbGxlZCA/ICdyZW1vdmVfbG9nb19tYWluX2NvbnRyYXN0JyA6ICdyZW1vdmVfbG9nb19tYWluX2RhcmsnLFxuICAgICAgICAgICAgICAgICd0cnVlJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmRvbWFpbklkLCBmb3JtRGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5maWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dvID0gVVJMLmNyZWF0ZU9iamVjdFVSTChldmVudC5maWxlKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1Njcm9sbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJhc3RJbWFnZVVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZXZlbnQuZmlsZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXJrSW1hZ2VVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGV2ZW50LmZpbGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoZXZlbnQuZmlsZSA/ICdMb2dvIHVwZGF0ZWQnIDogJ0xvZ28gcmVtb3ZlZCcpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgW10pXG4gICAgb25TY3JvbGwoKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRpbWVvdXQpO1xuICAgICAgICB0aGlzLnNjcm9sbFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNBYm91dFVzID0gdGhpcy5yb3V0ZXI/LnVybD8uaW5jbHVkZXMoJy9hYm91dC11cycpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFNjcm9sbCA9IHdpbmRvdy5zY3JvbGxZID4gMTUwO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNTY3JvbGxlZCA9IHNob3VsZFNjcm9sbDtcblxuICAgICAgICAgICAgICAgIGlmICghaXNBYm91dFVzKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFVzZSBzbWFsbGVyIHZlcnNpb25zIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2VcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9nb3MgPSB0aGlzLmFwcENvbmZpZz8uY29tcGFueT8ubG9nb3MgYXMgTG9nb3NDb25maWc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0xvZ28gPSBzaG91bGRTY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9nb3M/Lm1haW5fY29udHJhc3Q/LnVybCA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyYXN0SW1hZ2VVcmwgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgJy9hc3NldHMvaW1nL2xhbmRpbmctcGFnZS9zaXRlLWxvZ28ucG5nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBsb2dvcz8ubWFpbl9kYXJrPy51cmwgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXJrSW1hZ2VVcmwgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgJy9hc3NldHMvaW1nL2xhbmRpbmctcGFnZS9zaXRlLWxvZ28ucG5nJztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubG9nbyAhPT0gbmV3TG9nbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dvID0gbmV3TG9nbztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IDc2OCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sbGFwc2VFbGVtZW50ID0gdGhpcy5uYXZiYXJDb2xsYXBzZT8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbGxhcHNlRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdzaG93JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhcHNlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBDbG9zZSBhbGwgZHJvcGRvd25zIHdoZW4gc2Nyb2xsaW5nXG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZUFsbERyb3Bkb3ducygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIDUwKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBDbG9zZSBhbGwgZHJvcGRvd25zIHdoZW4gY2xpY2tpbmcgb3V0c2lkZVxuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0YXJnZXQuY2xvc2VzdCgnLm5hdi1pdGVtJykgJiZcbiAgICAgICAgICAgICF0YXJnZXQuY2xvc2VzdCgnLnBvcHVwJykgJiZcbiAgICAgICAgICAgICF0YXJnZXQuY2xvc2VzdCgnLnNpZ24tYnRuJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlQWxsRHJvcGRvd25zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZUFsbERyb3Bkb3ducygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmF2YmFySXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMubmF2YmFySXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5vcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3BlbkRyb3Bkb3duKGl0ZW0pOiB2b2lkIHtcbiAgICAgICAgLy8gQ2xvc2Ugb3RoZXIgZHJvcGRvd25zIGZpcnN0XG4gICAgICAgIHRoaXMubmF2YmFySXRlbXMuZm9yRWFjaChuYXZJdGVtID0+IHtcbiAgICAgICAgICAgIGlmIChuYXZJdGVtICE9PSBpdGVtKSB7XG4gICAgICAgICAgICAgICAgbmF2SXRlbS5vcGVuID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLm9wZW4gPSB0cnVlO1xuICAgIH1cblxuICAgIG9uRHJvcGRvd25JdGVtQ2xpY2soaXRlbSk6IHZvaWQge1xuICAgICAgICBpdGVtLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBhc3luYyBvcGVuRWRpdE5hdmJhck1vZGFsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBuYXZiYXJDb25maWcgPSB0aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWc/Lm5hdmJhciA/PyB7fTtcbiAgICAgICAgbmF2YmFyQ29uZmlnLml0ZW1zID0gbmF2YmFyQ29uZmlnLml0ZW1zID8/IFtdO1xuXG4gICAgICAgIHRoaXMuZWRpdGluZ05hdmJhciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmF2YmFyQ29uZmlnKSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIER5bmFtaWNhbGx5IGltcG9ydCBFZGl0TmF2YmFyTW9kYWxDb21wb25lbnQgKGluY2x1ZGVzIERyYWdEcm9wTW9kdWxlKVxuICAgICAgICAgICAgLy8gVGhpcyBvbmx5IGxvYWRzIHdoZW4gdGhlIGVkaXQgbW9kYWwgaXMgb3BlbmVkICh1c2VyIGlzIGxvZ2dlZCBpbiB3aXRoIGVkaXQgcGVybWlzc2lvbnMpXG4gICAgICAgICAgICAvLyBSZWR1Y2VzIGJ1bmRsZSBzaXplIGZvciBsYW5kaW5nIHBhZ2VzIHdoZXJlIHVzZXJzIGFyZW4ndCBsb2dnZWQgaW5cbiAgICAgICAgICAgIGNvbnN0IHsgRWRpdE5hdmJhck1vZGFsQ29tcG9uZW50IH0gPSBhd2FpdCBpbXBvcnQoJy4vZWRpdC1uYXZiYXItbW9kYWwuY29tcG9uZW50Jyk7XG5cbiAgICAgICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihFZGl0TmF2YmFyTW9kYWxDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICBzaXplOiAnbGcnLFxuICAgICAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHdpbmRvd0NsYXNzOiAnbW9kYWwtaG9sZGVyJ1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmVkaXRpbmdOYXZiYXIgPSB0aGlzLmVkaXRpbmdOYXZiYXI7XG4gICAgICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zYXZlLnN1YnNjcmliZSgodXBkYXRlZE5hdmJhcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZU5hdmJhckxpbmtzKG1vZGFsUmVmLCB1cGRhdGVkTmF2YmFyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuY2xvc2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBtb2RhbFJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBlZGl0IG5hdmJhciBtb2RhbDonLCBlcnJvcik7XG4gICAgICAgICAgICB0aGlzLnRvYXN0LmVycm9yKCdGYWlsZWQgdG8gb3BlbiBlZGl0IG1vZGFsLiBQbGVhc2UgdHJ5IGFnYWluLicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2F2ZU5hdmJhckxpbmtzKG1vZGFsLCB1cGRhdGVkTmF2YmFyPzogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5hdmJhclRvU2F2ZSA9IHVwZGF0ZWROYXZiYXIgfHwgdGhpcy5lZGl0aW5nTmF2YmFyO1xuICAgICAgICBjb25zdCB1cGRhdGVkQ29uZmlnID0ge1xuICAgICAgICAgICAgbmF2YmFyOiBuYXZiYXJUb1NhdmUsXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuaWRcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmFwcENvbmZpZz8uZG9tYWluX2lkLCB1cGRhdGVkQ29uZmlnKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdOYXZiYXIgbGlua3MgdXBkYXRlZCcpO1xuICAgICAgICAgICAgICAgIHRoaXMubmF2YmFySXRlbXMgPSBbLi4ubmF2YmFyVG9TYXZlLml0ZW1zXTtcbiAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGFwcENvbmZpZyB0byByZWZsZWN0IHRoZSBzYXZlZCBjaGFuZ2VzXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBDb25maWcucGFnZXNfY29uZmlnID0gdGhpcy5hcHBDb25maWcucGFnZXNfY29uZmlnID8/IHt9O1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwQ29uZmlnLnBhZ2VzX2NvbmZpZy5uYXZiYXIgPSB7IC4uLm5hdmJhclRvU2F2ZSB9O1xuICAgICAgICAgICAgICAgIG1vZGFsLmNsb3NlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNhbkVkaXRSZXNvdXJjZXNWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYW5FZGl0UmVzb3VyY2VzVmFsdWUgPSBIZWxwZXJTZXJ2aWNlLmNhbkVkaXRSZXNvdXJjZXMoXG4gICAgICAgICAgICB0aGlzLnVzZXIsXG4gICAgICAgICAgICB0aGlzLnVzZXJMb2dnZWRJbixcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjYW5FZGl0UmVzb3VyY2VzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW5FZGl0UmVzb3VyY2VzVmFsdWU7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb0xvZ2luKCk6IHZvaWQge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvbG9naW4nO1xuICAgIH1cbn1cbiIsIjxuYXYgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLWV4cGFuZC1tZCBuYXZiYXItZGFyayBmaXhlZC10b3AgcHJpbWFyeS1uYXYtYmctY29sb3IgcmVzb3VyY2UtaGVhZGVyXCJcbiAgaWQ9XCJiYW5uZXJcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb250YWluZXItd3JhcHBlciBiYW5uZXItc2VjdGlvblwiPlxuXG4gICAgPCEtLSBUb2dnbGVyL2NvbGxhcHNpYmUgQnV0dG9uIC0tPlxuICAgIDxidXR0b24gY2xhc3M9XCJuYXZiYXItdG9nZ2xlciBoZWFkZXItbWVudS1iYXJcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIlxuICAgICAgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXG4gICAgICBkYXRhLWJzLXRhcmdldD1cIiNjb2xsYXBzaWJsZU5hdmJhclwiPlxuICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9wcm9kdWN0cy90cmlhbC9uYXZiYXItdG9nZ2xlLWljb24ucG5nXCJcbiAgICAgICAgY2xhc3M9XCJpbWctZmx1aWQgbmF2YmFyLXRvZ2dsZS1pY29uXCJcbiAgICAgICAgYWx0PVwiXCIgLz5cbiAgICA8L2J1dHRvbj5cblxuICAgIDwhLS0gTW9iaWxlIExvZ28gLS0+XG4gICAgPGRpdiBjbGFzcz1cImQtbWQtbm9uZSBtYi1pY29uXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1nL2xhbmRpbmctcGFnZS9zaXRlLWxvZ28ucG5nXCJcbiAgICAgICAgICBbc3JjXT1cImxvZ28gfHwgJy9hc3NldHMvaW1nL2xhbmRpbmctcGFnZS9zaXRlLWxvZ28ucG5nJ1wiXG4gICAgICAgICAgcm91dGVyTGluaz1cIi9cIlxuICAgICAgICAgIGFsdD1cImxvZ29cIlxuICAgICAgICAgIGNsYXNzPVwiaW1nLWZsdWlkIGxvZ29faW1nXCJcbiAgICAgICAgICB3aWR0aD1cIjEwMFwiXG4gICAgICAgICAgaGVpZ2h0PVwiMTAwXCJcbiAgICAgICAgICBsb2FkaW5nPVwiZWFnZXJcIlxuICAgICAgICAgIGZldGNocHJpb3JpdHk9XCJoaWdoXCJcbiAgICAgICAgICBzaXplcz1cIjEwMHB4XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG5cbiAgICA8aSAqbmdJZj1cImNhbkVkaXRSZXNvdXJjZXNWYWx1ZVwiXG4gICAgY2xhc3M9XCJmYSBmYS1lZGl0IGluLXBhZ2UtZWRpdC1pY29uIGN1cnNvci1wb2ludGVyIHRleHQtYmxhY2sgbWUtM1wiXG4gICAgKGNsaWNrKT1cIm9wZW5Mb2dvRWRpdE1vZGFsKClcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9wZW5Mb2dvRWRpdE1vZGFsKClcIlxuICAgIChrZXlkb3duLnNwYWNlKT1cIm9wZW5Mb2dvRWRpdE1vZGFsKClcIlxuICAgIHRpdGxlPVwiRWRpdCBMb2dvXCI+PC9pPlxuXG5cbiAgICA8IS0tIE5hdmJhciBsaW5rcyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY29sbGFwc2UgbmF2YmFyLWNvbGxhcHNlIG10LTMgbXQtbWQtMFwiXG4gICAgICBpZD1cImNvbGxhcHNpYmxlTmF2YmFyXCJcbiAgICAgICNjb2xsYXBzaWJsZU5hdmJhcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyIHctMTAwXCI+XG5cbiAgICAgICAgPCEtLSBBbHdheXMgb2NjdXB5IDMgY29sdW1ucyBmb3IgbG9nbyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtbm9uZSBkLW1kLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWcvbGFuZGluZy1wYWdlL3NpdGUtbG9nby5wbmdcIlxuICAgICAgICAgICAgICBbc3JjXT1cImxvZ28gfHwgJy9hc3NldHMvaW1nL2xhbmRpbmctcGFnZS9zaXRlLWxvZ28ucG5nJ1wiXG4gICAgICAgICAgICAgIHJvdXRlckxpbms9XCIvXCJcbiAgICAgICAgICAgICAgYWx0PVwibG9nb1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwiaW1nLWZsdWlkIGxvZ29faW1nXCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxMDBcIlxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxMDBcIlxuICAgICAgICAgICAgICBsb2FkaW5nPVwiZWFnZXJcIlxuICAgICAgICAgICAgICBmZXRjaHByaW9yaXR5PVwiaGlnaFwiXG4gICAgICAgICAgICAgIHNpemVzPVwiMTAwcHhcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNyBkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0XCI+XG4gICAgICAgICAgPHVsICNhbmNob3JMaW5rc1xuICAgICAgICAgICAgY2xhc3M9XCJuYXZiYXItbmF2IGZsZXggZ2FwLTQgbWUtMCB3b3cgZmFkZUluVXAgcG9zaXRpb24tcmVsYXRpdmVcIlxuICAgICAgICAgICAgZGF0YS13b3ctZHVyYXRpb249XCIyc1wiPlxuXG4gICAgICAgICAgPGkgKm5nSWY9XCJjYW5FZGl0UmVzb3VyY2VzVmFsdWVcIlxuICAgICAgICAgIGNsYXNzPVwiZmEgZmEtZWRpdCBpbi1wYWdlLWVkaXQtaWNvbiBjdXJzb3ItcG9pbnRlciB0ZXh0LWJsYWNrIG1lLTNcIlxuICAgICAgICAgIChjbGljayk9XCJvcGVuRWRpdE5hdmJhck1vZGFsKClcIlxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9wZW5FZGl0TmF2YmFyTW9kYWwoKVwiXG4gICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwib3BlbkVkaXROYXZiYXJNb2RhbCgpXCJcbiAgICAgICAgICB0aXRsZT1cIkVkaXQgTmF2YmFyIExpbmtzXCI+PC9pPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBuYXZiYXJJdGVtc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwib3BlbkRyb3Bkb3duKGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3Njcm9sbGVkLW5hdi1saW5rJzogaXNTY3JvbGxlZCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXRlbS5zdWJ0aXRsZXM/Lmxlbmd0aCA/IChpdGVtLm9wZW4gPSAhaXRlbS5vcGVuKSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiIShpdGVtLnN1YnRpdGxlcz8ubGVuZ3RoKSA/IGl0ZW0ucGF0aCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3sgaXRlbT8udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIml0ZW0uc3VidGl0bGVzLmxlbmd0aCA+IDAgJiYgaXRlbS5vcGVuXCIgY2xhc3M9XCJmYS1zb2xpZCBmYS1jYXJldC1kb3duXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cCBwb3NpdGlvbi1hYnNvbHV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5zdWJ0aXRsZXMubGVuZ3RoID4gMCAmJiBpdGVtLm9wZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3ViIG9mIGl0ZW0uc3VidGl0bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwic3ViLnBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duSXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRyb3Bkb3duSXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25Ecm9wZG93bkl0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uRHJvcGRvd25JdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzdWIudGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIG1zLTIgbWItMyBkLWZsZXggZC1tZC1ub25lXCI+XG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwic2lnbi1idG4gc2lnbi1oZWFkZXItYnRuXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb0xvZ2luKClcIj5Mb2cgSW48L2E+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQWx3YXlzIDMgY29sdW1ucyBmb3IgbG9naW4gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBkLW5vbmUgZC1tZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwic2lnbi1idG4gc2lnbi1oZWFkZXItYnRuXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9Mb2dpbigpXCI+TG9nIEluPC9hPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uYXY+XG5cbjxuZy10ZW1wbGF0ZSAjbG9nb0VkaXRNb2RhbCBsZXQtbW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlVwbG9hZCBMb2dvPC9oNT5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1jbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPCEtLSA8cHctY3VzdG9tLXVwbG9hZGVyXG4gICAgICBbdGl0bGVdPVwiJ01haW4gTG9nbydcIlxuICAgICAgW2NvbnRyb2xOYW1lXT1cIidsb2dvX21haW4nXCJcbiAgICAgIFthc3BlY3RSYXRpb109XCInZnVsbExvZ28nXCJcbiAgICAgIFtwcmV2aWV3RGF0YV09XCJ7IHVybDogbG9nbywgbmFtZTogJ2xvZ29fbWFpbi5wbmcnIH1cIlxuICAgICAgKHNhdmVFdmVudCk9XCJvblNhdmVMb2dvKCRldmVudClcIj5cbiAgICA8L3B3LWN1c3RvbS11cGxvYWRlcj4gLS0+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcmVzb3VyY2UtY29udGFjdC11cy9zcmMvbGliL3Jlc291cmNlLWhlYWRlci9yZXNvdXJjZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1jb250YWN0LXVzL3NyYy9saWIvcmVzb3VyY2UtaGVhZGVyL3Jlc291cmNlLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUlMLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQXFCdEQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGdCQUFnQjtJQXNCekQsWUFDSSxRQUFrQixFQUNpQixRQUFrQixFQUNwQyxZQUEwQixFQUMxQixZQUFzQjtRQUV2QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFKbUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQXBCM0MsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsU0FBSSxHQUFH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QUxuQyxTQUFTOytCQUNJLG9CQUFvQjs7MEJBNEJ6QixNQUFNOzJCQUFDLFFBQVE7MkZBdkJZLGNBQWM7c0JBQTdDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUNGLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDakIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBeUZOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRTtnQkF1Q2pDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcblxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbmltcG9ydCB7IEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY3VzdG9tLXVwbG9hZGVyL2N1c3RvbS11cGxvYWRlci5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgTG9nb0NvbmZpZyB7XG4gICAgdXJsPzogc3RyaW5nO1xuICAgIHZlcnNpb25fMTAweDEwMD86IHtcbiAgICAgICAgdXJsPzogc3RyaW5nO1xuICAgIH07XG59XG5cbmludGVyZmFjZSBMb2dvc0NvbmZpZyB7XG4gICAgbWFpbl9jb250cmFzdD86IExvZ29Db25maWc7XG4gICAgbWFpbl9kYXJrPzogTG9nb0NvbmZpZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1yZXNvdXJjZS1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZXNvdXJjZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Jlc291cmNlLWhlYWRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBAVmlld0NoaWxkKCdjb2xsYXBzaWJsZU5hdmJhcicpIG5hdmJhckNvbGxhcHNlOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2xvZ29FZGl0TW9kYWwnKSBsb2dvRWRpdE1vZGFsOiBUZW1wbGF0ZVJlZjxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG4gICAgQElucHV0KCkgdXNlcjogVXNlcjtcbiAgICBASW5wdXQoKSB1c2VyTG9nZ2VkSW46IGJvb2xlYW47XG5cbiAgICBpc1Njcm9sbGVkID0gZmFsc2U7XG4gICAgb3BlbiA9IGZhbHNlO1xuICAgIGxvZ28gPSAnL2Fzc2V0cy9pbWcvbGFuZGluZy1wYWdlL3NpdGUtbG9nby5wbmcnOyAvLyBTdGF0aWMgZmFsbGJhY2sgZm9yIExDUCBvcHRpbWl6YXRpb25cbiAgICBuYXZiYXJJdGVtcyA9IHRoaXMuYXBwQ29uZmlnPy5wYWdlc19jb25maWc/Lm5hdmJhcj8uaXRlbXM7XG4gICAgZG9tYWluSWQgPSB0aGlzLmFwcENvbmZpZz8uZG9tYWluX2lkO1xuICAgIGNvbnRyYXN0SW1hZ2VVcmwgPSB0aGlzLmFwcENvbmZpZz8uY29tcGFueT8ubG9nb3M/Lm1haW5fY29udHJhc3Q/LnVybDtcbiAgICBkYXJrSW1hZ2VVcmwgPSB0aGlzLmFwcENvbmZpZz8uY29tcGFueT8ubG9nb3M/Lm1haW5fZGFyaz8udXJsO1xuXG4gICAgZWRpdGluZ05hdmJhciA9IHtcbiAgICAgICAgaXRlbXM6IFtdXG4gICAgfTtcbiAgICBpZDogc3RyaW5nO1xuICAgIHNjcm9sbFRpbWVvdXQ7XG5cbiAgICBjYW5FZGl0UmVzb3VyY2VzVmFsdWUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFkbWluU2VydmljZTogQWRtaW5TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogTmdiTW9kYWxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zb2xlLmxvZygnSW4gSGVhZGVyJyk7XG4gICAgICAgIC8vIFN1YnNjcmliZSB0byBhcHBDb25maWcgY2hhbmdlcyB0byB1cGRhdGUgbG9nbyBkeW5hbWljYWxseVxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuYXBwQ29uZmlnJC5zdWJzY3JpYmUoY29uZmlnID0+IHtcbiAgICAgICAgICAgIGlmIChjb25maWc/LmNvbXBhbnk/LmxvZ29zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNBYm91dFVzID0gdGhpcy5yb3V0ZXIudXJsPy5pbmNsdWRlcygnL2Fib3V0LXVzJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9nb3MgPSBjb25maWcuY29tcGFueS5sb2dvcyBhcyBMb2dvc0NvbmZpZztcblxuICAgICAgICAgICAgICAgIC8vIFVzZSBzbWFsbGVyIHZlcnNpb24gZm9yIGJldHRlciBwZXJmb3JtYW5jZSAoMTAweDEwMCBpbnN0ZWFkIG9mIDEyMDB4MjY0KVxuICAgICAgICAgICAgICAgIHRoaXMubG9nbyA9IGlzQWJvdXRVc1xuICAgICAgICAgICAgICAgICAgICA/IGxvZ29zLm1haW5fY29udHJhc3Q/LnVybCB8fCAnL2Fzc2V0cy9pbWcvbGFuZGluZy1wYWdlL3NpdGUtbG9nby5wbmcnXG4gICAgICAgICAgICAgICAgICAgIDogbG9nb3MubWFpbl9kYXJrPy51cmwgfHwgJy9hc3NldHMvaW1nL2xhbmRpbmctcGFnZS9zaXRlLWxvZ28ucG5nJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMudXNlckxvZ2dlZEluKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtJCgncHJvZHVjdCcpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXMgPyBKU09OLnBhcnNlKHJlcykgOiBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuaWQgPSBkYXRhPy5zdWJzY3JpcHRpb25JZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1sndXNlciddIHx8IGNoYW5nZXNbJ3VzZXJMb2dnZWRJbiddKSB7XG4gICAgICAgICAgICBpZiAodGhpcy51c2VyTG9nZ2VkSW4gJiYgdGhpcy51c2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYW5FZGl0UmVzb3VyY2VzVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9wZW5Mb2dvRWRpdE1vZGFsKCkge1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMubG9nb0VkaXRNb2RhbCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJyB9KTtcbiAgICB9XG5cbiAgICBvblNhdmVMb2dvKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnc3Vic2NyaXB0aW9uX2lkJywgdGhpcy5pZCk7XG4gICAgICAgIGlmIChldmVudC5maWxlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKHRoaXMuaXNTY3JvbGxlZCA/ICdsb2dvX21haW5fY29udHJhc3QnIDogJ2xvZ29fbWFpbl9kYXJrJywgZXZlbnQuZmlsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgICAgICAgICAgdGhpcy5pc1Njcm9sbGVkID8gJ3JlbW92ZV9sb2dvX21haW5fY29udHJhc3QnIDogJ3JlbW92ZV9sb2dvX21haW5fZGFyaycsXG4gICAgICAgICAgICAgICAgJ3RydWUnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuZG9tYWluSWQsIGZvcm1EYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmZpbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ28gPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGV2ZW50LmZpbGUpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzU2Nyb2xsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cmFzdEltYWdlVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChldmVudC5maWxlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhcmtJbWFnZVVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZXZlbnQuZmlsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmRpc21pc3NBbGwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcyhldmVudC5maWxlID8gJ0xvZ28gdXBkYXRlZCcgOiAnTG9nbyByZW1vdmVkJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbXSlcbiAgICBvblNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVGltZW91dCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0Fib3V0VXMgPSB0aGlzLnJvdXRlcj8udXJsPy5pbmNsdWRlcygnL2Fib3V0LXVzJyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2hvdWxkU2Nyb2xsID0gd2luZG93LnNjcm9sbFkgPiAxNTA7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1Njcm9sbGVkID0gc2hvdWxkU2Nyb2xsO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFpc0Fib3V0VXMpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHNtYWxsZXIgdmVyc2lvbnMgZm9yIGJldHRlciBwZXJmb3JtYW5jZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsb2dvcyA9IHRoaXMuYXBwQ29uZmlnPy5jb21wYW55Py5sb2dvcyBhcyBMb2dvc0NvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3TG9nbyA9IHNob3VsZFNjcm9sbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2dvcz8ubWFpbl9jb250cmFzdD8udXJsID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJhc3RJbWFnZVVybCA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnL2Fzc2V0cy9pbWcvbGFuZGluZy1wYWdlL3NpdGUtbG9nby5wbmcnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGxvZ29zPy5tYWluX2Rhcms/LnVybCA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhcmtJbWFnZVVybCA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnL2Fzc2V0cy9pbWcvbGFuZGluZy1wYWdlL3NpdGUtbG9nby5wbmcnO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2dvICE9PSBuZXdMb2dvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ28gPSBuZXdMb2dvO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgNzY4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xsYXBzZUVsZW1lbnQgPSB0aGlzLm5hdmJhckNvbGxhcHNlPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29sbGFwc2VFbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnMoJ3Nob3cnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIENsb3NlIGFsbCBkcm9wZG93bnMgd2hlbiBzY3JvbGxpbmdcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQWxsRHJvcGRvd25zKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgNTApO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIENsb3NlIGFsbCBkcm9wZG93bnMgd2hlbiBjbGlja2luZyBvdXRzaWRlXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRhcmdldC5jbG9zZXN0KCcubmF2LWl0ZW0nKSAmJlxuICAgICAgICAgICAgIXRhcmdldC5jbG9zZXN0KCcucG9wdXAnKSAmJlxuICAgICAgICAgICAgIXRhcmdldC5jbG9zZXN0KCcuc2lnbi1idG4nKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VBbGxEcm9wZG93bnMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlQWxsRHJvcGRvd25zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXZiYXJJdGVtcykge1xuICAgICAgICAgICAgdGhpcy5uYXZiYXJJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLm9wZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuRHJvcGRvd24oaXRlbSk6IHZvaWQge1xuICAgICAgICAvLyBDbG9zZSBvdGhlciBkcm9wZG93bnMgZmlyc3RcbiAgICAgICAgdGhpcy5uYXZiYXJJdGVtcy5mb3JFYWNoKG5hdkl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKG5hdkl0ZW0gIT09IGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBuYXZJdGVtLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW0ub3BlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgb25Ecm9wZG93bkl0ZW1DbGljayhpdGVtKTogdm9pZCB7XG4gICAgICAgIGl0ZW0ub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIGFzeW5jIG9wZW5FZGl0TmF2YmFyTW9kYWwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IG5hdmJhckNvbmZpZyA9IHRoaXMuYXBwQ29uZmlnLnBhZ2VzX2NvbmZpZz8ubmF2YmFyID8/IHt9O1xuICAgICAgICBuYXZiYXJDb25maWcuaXRlbXMgPSBuYXZiYXJDb25maWcuaXRlbXMgPz8gW107XG5cbiAgICAgICAgdGhpcy5lZGl0aW5nTmF2YmFyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuYXZiYXJDb25maWcpKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gRHluYW1pY2FsbHkgaW1wb3J0IEVkaXROYXZiYXJNb2RhbENvbXBvbmVudCAoaW5jbHVkZXMgRHJhZ0Ryb3BNb2R1bGUpXG4gICAgICAgICAgICAvLyBUaGlzIG9ubHkgbG9hZHMgd2hlbiB0aGUgZWRpdCBtb2RhbCBpcyBvcGVuZWQgKHVzZXIgaXMgbG9nZ2VkIGluIHdpdGggZWRpdCBwZXJtaXNzaW9ucylcbiAgICAgICAgICAgIC8vIFJlZHVjZXMgYnVuZGxlIHNpemUgZm9yIGxhbmRpbmcgcGFnZXMgd2hlcmUgdXNlcnMgYXJlbid0IGxvZ2dlZCBpblxuICAgICAgICAgICAgY29uc3QgeyBFZGl0TmF2YmFyTW9kYWxDb21wb25lbnQgfSA9IGF3YWl0IGltcG9ydCgnLi9lZGl0LW5hdmJhci1tb2RhbC5jb21wb25lbnQnKTtcblxuICAgICAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEVkaXROYXZiYXJNb2RhbENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIHNpemU6ICdsZycsXG4gICAgICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgd2luZG93Q2xhc3M6ICdtb2RhbC1ob2xkZXInXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZWRpdGluZ05hdmJhciA9IHRoaXMuZWRpdGluZ05hdmJhcjtcbiAgICAgICAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnNhdmUuc3Vic2NyaWJlKCh1cGRhdGVkTmF2YmFyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlTmF2YmFyTGlua3MobW9kYWxSZWYsIHVwZGF0ZWROYXZiYXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5jbG9zZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIG1vZGFsUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGVkaXQgbmF2YmFyIG1vZGFsOicsIGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZXJyb3IoJ0ZhaWxlZCB0byBvcGVuIGVkaXQgbW9kYWwuIFBsZWFzZSB0cnkgYWdhaW4uJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzYXZlTmF2YmFyTGlua3MobW9kYWwsIHVwZGF0ZWROYXZiYXI/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmF2YmFyVG9TYXZlID0gdXBkYXRlZE5hdmJhciB8fCB0aGlzLmVkaXRpbmdOYXZiYXI7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRDb25maWcgPSB7XG4gICAgICAgICAgICBuYXZiYXI6IG5hdmJhclRvU2F2ZSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5pZFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuYXBwQ29uZmlnPy5kb21haW5faWQsIHVwZGF0ZWRDb25maWcpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoJ05hdmJhciBsaW5rcyB1cGRhdGVkJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXZiYXJJdGVtcyA9IFsuLi5uYXZiYXJUb1NhdmUuaXRlbXNdO1xuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgYXBwQ29uZmlnIHRvIHJlZmxlY3QgdGhlIHNhdmVkIGNoYW5nZXNcbiAgICAgICAgICAgICAgICB0aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWcgPSB0aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWcgPz8ge307XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBDb25maWcucGFnZXNfY29uZmlnLm5hdmJhciA9IHsgLi4ubmF2YmFyVG9TYXZlIH07XG4gICAgICAgICAgICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ2FuRWRpdFJlc291cmNlc1ZhbHVlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbkVkaXRSZXNvdXJjZXNWYWx1ZSA9IEhlbHBlclNlcnZpY2UuY2FuRWRpdFJlc291cmNlcyhcbiAgICAgICAgICAgIHRoaXMudXNlcixcbiAgICAgICAgICAgIHRoaXMudXNlckxvZ2dlZEluLFxuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNhbkVkaXRSZXNvdXJjZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbkVkaXRSZXNvdXJjZXNWYWx1ZTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvTG9naW4oKTogdm9pZCB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9sb2dpbic7XG4gICAgfVxufVxuIiwiPG5hdiBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLW1kIG5hdmJhci1kYXJrIGZpeGVkLXRvcCBwcmltYXJ5LW5hdi1iZy1jb2xvciByZXNvdXJjZS1oZWFkZXJcIlxuICBpZD1cImJhbm5lclwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGNvbnRhaW5lci13cmFwcGVyIGJhbm5lci1zZWN0aW9uXCI+XG5cbiAgICA8IS0tIFRvZ2dsZXIvY29sbGFwc2liZSBCdXR0b24gLS0+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyIGhlYWRlci1tZW51LWJhclwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJUb2dnbGUgbmF2aWdhdGlvblwiXG4gICAgICBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcbiAgICAgIGRhdGEtYnMtdGFyZ2V0PVwiI2NvbGxhcHNpYmxlTmF2YmFyXCI+XG4gICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1nL3Byb2R1Y3RzL3RyaWFsL25hdmJhci10b2dnbGUtaWNvbi5wbmdcIlxuICAgICAgICBjbGFzcz1cImltZy1mbHVpZCBuYXZiYXItdG9nZ2xlLWljb25cIlxuICAgICAgICBhbHQ9XCJcIiAvPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPCEtLSBNb2JpbGUgTG9nbyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZC1tZC1ub25lIG1iLWljb25cIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWcvbGFuZGluZy1wYWdlL3NpdGUtbG9nby5wbmdcIlxuICAgICAgICAgIFtzcmNdPVwibG9nbyB8fCAnL2Fzc2V0cy9pbWcvbGFuZGluZy1wYWdlL3NpdGUtbG9nby5wbmcnXCJcbiAgICAgICAgICByb3V0ZXJMaW5rPVwiL1wiXG4gICAgICAgICAgYWx0PVwibG9nb1wiXG4gICAgICAgICAgY2xhc3M9XCJpbWctZmx1aWQgbG9nb19pbWdcIlxuICAgICAgICAgIHdpZHRoPVwiMTAwXCJcbiAgICAgICAgICBoZWlnaHQ9XCIxMDBcIlxuICAgICAgICAgIGxvYWRpbmc9XCJlYWdlclwiXG4gICAgICAgICAgZmV0Y2hwcmlvcml0eT1cImhpZ2hcIlxuICAgICAgICAgIHNpemVzPVwiMTAwcHhcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cblxuICAgIDxpICpuZ0lmPVwiY2FuRWRpdFJlc291cmNlc1ZhbHVlXCJcbiAgICBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gY3Vyc29yLXBvaW50ZXIgdGV4dC1ibGFjayBtZS0zXCJcbiAgICAoY2xpY2spPVwib3BlbkxvZ29FZGl0TW9kYWwoKVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwib3BlbkxvZ29FZGl0TW9kYWwoKVwiXG4gICAgKGtleWRvd24uc3BhY2UpPVwib3BlbkxvZ29FZGl0TW9kYWwoKVwiXG4gICAgdGl0bGU9XCJFZGl0IExvZ29cIj48L2k+XG5cblxuICAgIDwhLS0gTmF2YmFyIGxpbmtzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZSBuYXZiYXItY29sbGFwc2UgbXQtMyBtdC1tZC0wXCJcbiAgICAgIGlkPVwiY29sbGFwc2libGVOYXZiYXJcIlxuICAgICAgI2NvbGxhcHNpYmxlTmF2YmFyPlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDBcIj5cblxuICAgICAgICA8IS0tIEFsd2F5cyBvY2N1cHkgMyBjb2x1bW5zIGZvciBsb2dvIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1ub25lIGQtbWQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9sYW5kaW5nLXBhZ2Uvc2l0ZS1sb2dvLnBuZ1wiXG4gICAgICAgICAgICAgIFtzcmNdPVwibG9nbyB8fCAnL2Fzc2V0cy9pbWcvbGFuZGluZy1wYWdlL3NpdGUtbG9nby5wbmcnXCJcbiAgICAgICAgICAgICAgcm91dGVyTGluaz1cIi9cIlxuICAgICAgICAgICAgICBhbHQ9XCJsb2dvXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpbWctZmx1aWQgbG9nb19pbWdcIlxuICAgICAgICAgICAgICB3aWR0aD1cIjEwMFwiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjEwMFwiXG4gICAgICAgICAgICAgIGxvYWRpbmc9XCJlYWdlclwiXG4gICAgICAgICAgICAgIGZldGNocHJpb3JpdHk9XCJoaWdoXCJcbiAgICAgICAgICAgICAgc2l6ZXM9XCIxMDBweFwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnRcIj5cbiAgICAgICAgICA8dWwgI2FuY2hvckxpbmtzXG4gICAgICAgICAgICBjbGFzcz1cIm5hdmJhci1uYXYgZmxleCBnYXAtNCBtZS0wIHdvdyBmYWRlSW5VcCBwb3NpdGlvbi1yZWxhdGl2ZVwiXG4gICAgICAgICAgICBkYXRhLXdvdy1kdXJhdGlvbj1cIjJzXCI+XG5cbiAgICAgICAgICA8aSAqbmdJZj1cImNhbkVkaXRSZXNvdXJjZXNWYWx1ZVwiXG4gICAgICAgICAgY2xhc3M9XCJmYSBmYS1lZGl0IGluLXBhZ2UtZWRpdC1pY29uIGN1cnNvci1wb2ludGVyIHRleHQtYmxhY2sgbWUtM1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5FZGl0TmF2YmFyTW9kYWwoKVwiXG4gICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib3BlbkVkaXROYXZiYXJNb2RhbCgpXCJcbiAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvcGVuRWRpdE5hdmJhck1vZGFsKClcIlxuICAgICAgICAgIHRpdGxlPVwiRWRpdCBOYXZiYXIgTGlua3NcIj48L2k+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5hdmJhckl0ZW1zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJvcGVuRHJvcGRvd24oaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc2Nyb2xsZWQtbmF2LWxpbmsnOiBpc1Njcm9sbGVkIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpdGVtLnN1YnRpdGxlcz8ubGVuZ3RoID8gKGl0ZW0ub3BlbiA9ICFpdGVtLm9wZW4pIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCIhKGl0ZW0uc3VidGl0bGVzPy5sZW5ndGgpID8gaXRlbS5wYXRoIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtPy50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiaXRlbS5zdWJ0aXRsZXMubGVuZ3RoID4gMCAmJiBpdGVtLm9wZW5cIiBjbGFzcz1cImZhLXNvbGlkIGZhLWNhcmV0LWRvd25cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwIHBvc2l0aW9uLWFic29sdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnN1YnRpdGxlcy5sZW5ndGggPiAwICYmIGl0ZW0ub3BlblwiPlxuICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdWIgb2YgaXRlbS5zdWJ0aXRsZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJzdWIucGF0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd25JdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRHJvcGRvd25JdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkRyb3Bkb3duSXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwib25Ecm9wZG93bkl0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN1Yi50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cblxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gbXMtMiBtYi0zIGQtZmxleCBkLW1kLW5vbmVcIj5cbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJzaWduLWJ0biBzaWduLWhlYWRlci1idG5cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvTG9naW4oKVwiPkxvZyBJbjwvYT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBBbHdheXMgMyBjb2x1bW5zIGZvciBsb2dpbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIGQtbm9uZSBkLW1kLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJzaWduLWJ0biBzaWduLWhlYWRlci1idG5cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb0xvZ2luKClcIj5Mb2cgSW48L2E+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25hdj5cblxuPG5nLXRlbXBsYXRlICNsb2dvRWRpdE1vZGFsIGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+VXBsb2FkIExvZ288L2g1PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8cHctY3VzdG9tLXVwbG9hZGVyXG4gICAgICBbdGl0bGVdPVwiJ01haW4gTG9nbydcIlxuICAgICAgW2NvbnRyb2xOYW1lXT1cIidsb2dvX21haW4nXCJcbiAgICAgIFthc3BlY3RSYXRpb109XCInZnVsbExvZ28nXCJcbiAgICAgIFtwcmV2aWV3RGF0YV09XCJ7IHVybDogbG9nbywgbmFtZTogJ2xvZ29fbWFpbi5wbmcnIH1cIlxuICAgICAgKHNhdmVFdmVudCk9XCJvblNhdmVMb2dvKCRldmVudClcIj5cbiAgICA8L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { RouterModule } from '@angular/router';
|
|
5
|
+
import { ResourceHeaderComponent } from './resource-header.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* ResourceHeaderModule - Optimized
|
|
9
|
+
* DragDropModule removed - now lazy-loaded only when edit modal opens
|
|
10
|
+
* This reduces bundle size for landing pages where users aren't logged in
|
|
11
|
+
*/
|
|
12
|
+
export class ResourceSharedHeaderModule {
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceSharedHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: ResourceSharedHeaderModule, declarations: [ResourceHeaderComponent], imports: [CommonModule,
|
|
15
|
+
FormsModule,
|
|
16
|
+
RouterModule], exports: [ResourceHeaderComponent] }); }
|
|
17
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceSharedHeaderModule, imports: [CommonModule,
|
|
18
|
+
FormsModule,
|
|
19
|
+
RouterModule] }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceSharedHeaderModule, decorators: [{
|
|
22
|
+
type: NgModule,
|
|
23
|
+
args: [{
|
|
24
|
+
declarations: [ResourceHeaderComponent],
|
|
25
|
+
imports: [
|
|
26
|
+
CommonModule,
|
|
27
|
+
FormsModule,
|
|
28
|
+
RouterModule,
|
|
29
|
+
],
|
|
30
|
+
exports: [ResourceHeaderComponent],
|
|
31
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
|
32
|
+
}]
|
|
33
|
+
}] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWhlYWRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLWNvbnRhY3QtdXMvc3JjL2xpYi9yZXNvdXJjZS1oZWFkZXIvc2hhcmVkLWhlYWRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFJdEU7Ozs7R0FJRztBQVdILE1BQU0sT0FBTywwQkFBMEI7K0dBQTFCLDBCQUEwQjtnSEFBMUIsMEJBQTBCLGlCQVRwQix1QkFBdUIsYUFFbEMsWUFBWTtZQUNaLFdBQVc7WUFDWCxZQUFZLGFBRU4sdUJBQXVCO2dIQUd4QiwwQkFBMEIsWUFQL0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxZQUFZOzs0RkFLUCwwQkFBMEI7a0JBVnRDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3ZDLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTtxQkFDZjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDbEMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cblxuaW1wb3J0IHsgUmVzb3VyY2VIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3Jlc291cmNlLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZmlsZUltYWdlQ3JvcHBlck1vZHVsZSB9IGZyb20gJy4uL2ltYWdlLWNyb3BwZXIvcHJvZmlsZS1pbWFnZS1jcm9wcGVyLm1vZHVsZSc7XG5cblxuLyoqXG4gKiBSZXNvdXJjZUhlYWRlck1vZHVsZSAtIE9wdGltaXplZFxuICogRHJhZ0Ryb3BNb2R1bGUgcmVtb3ZlZCAtIG5vdyBsYXp5LWxvYWRlZCBvbmx5IHdoZW4gZWRpdCBtb2RhbCBvcGVuc1xuICogVGhpcyByZWR1Y2VzIGJ1bmRsZSBzaXplIGZvciBsYW5kaW5nIHBhZ2VzIHdoZXJlIHVzZXJzIGFyZW4ndCBsb2dnZWQgaW5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtSZXNvdXJjZUhlYWRlckNvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbUmVzb3VyY2VIZWFkZXJDb21wb25lbnRdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXVxufSlcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVNoYXJlZEhlYWRlck1vZHVsZSB7fVxuIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { EventEmitter, Component, Input, Output } from '@angular/core';
|
|
3
|
-
import * as i1
|
|
3
|
+
import * as i1 from '@angular/forms';
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
|
-
import * as
|
|
5
|
+
import * as i7 from '@angular/common';
|
|
6
6
|
import { CommonModule } from '@angular/common';
|
|
7
7
|
import * as i3 from '@angular/cdk/drag-drop';
|
|
8
8
|
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
@@ -112,7 +112,7 @@ class EditNavbarModalComponent {
|
|
|
112
112
|
<button class="btn btn-secondary" (click)="onClose()">Cancel</button>
|
|
113
113
|
<button class="btn btn-primary" (click)="onSave()">Save</button>
|
|
114
114
|
</div>
|
|
115
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type:
|
|
115
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }] }); }
|
|
116
116
|
}
|
|
117
117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: EditNavbarModalComponent, decorators: [{
|
|
118
118
|
type: Component,
|
|
@@ -194,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
194
194
|
}] } });
|
|
195
195
|
|
|
196
196
|
export { EditNavbarModalComponent };
|
|
197
|
-
//# sourceMappingURL=posiwise-resource-contact-us-edit-navbar-modal.component-
|
|
197
|
+
//# sourceMappingURL=posiwise-resource-contact-us-edit-navbar-modal.component-jSKqyC6g.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posiwise-resource-contact-us-edit-navbar-modal.component-
|
|
1
|
+
{"version":3,"file":"posiwise-resource-contact-us-edit-navbar-modal.component-jSKqyC6g.mjs","sources":["../../../../libs/resource-contact-us/src/lib/resource-header/edit-navbar-modal.component.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\n/**\n * Edit Navbar Modal Component\n * Contains drag-drop functionality for reordering navbar items\n * This component is lazy-loaded only when the edit modal is opened\n */\n@Component({\n selector: 'pw-edit-navbar-modal',\n standalone: true,\n imports: [CommonModule, FormsModule, DragDropModule],\n template: `\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Navbar Links</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"onClose()\"></button>\n </div>\n\n <div class=\"modal-body\">\n <h4 class=\"mb-3\">Navbar Section</h4>\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarItems($event)\">\n <div *ngFor=\"let item of editingNavbar.items; let i = index\" class=\"border p-3 mb-3\" cdkDrag>\n <div class=\"row\">\n <div class=\"col-md-5 mb-2\">\n <label [for]=\"'navbarTitle' + i\" class=\"form-label\">Title</label>\n <input [id]=\"'navbarTitle' + i\" class=\"form-control\" [(ngModel)]=\"item.title\" />\n </div>\n <div class=\"col-md-5 mb-2\">\n <label [for]=\"'navbarPath' + i\" class=\"form-label\">Path</label>\n <input [id]=\"'navbarPath' + i\" class=\"form-control\" [(ngModel)]=\"item.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\"\n (click)=\"removeNavbarItem(i)\"\n (keydown.enter)=\"removeNavbarItem(i)\"\n (keydown.space)=\"removeNavbarItem(i)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarSubtitles(i, $event)\">\n <div *ngFor=\"let sub of item.subtitles; let j = index\" class=\"row border p-3 mb-2 align-items-center\" cdkDrag>\n <div class=\"col-md-5\">\n <label [for]=\"'navbarSubtitleTitle' + i + j\" class=\"form-label\">Subtitle Title</label>\n <input [id]=\"'navbarSubtitleTitle' + i + j\" class=\"form-control\" [(ngModel)]=\"sub.title\" />\n </div>\n <div class=\"col-md-5\">\n <label [for]=\"'navbarSubtitlePath' + i + j\" class=\"form-label\">Subtitle Path</label>\n <input [id]=\"'navbarSubtitlePath' + i + j\" class=\"form-control\" [(ngModel)]=\"sub.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\"\n (click)=\"removeNavbarSubtitle(i, j)\"\n (keydown.enter)=\"removeNavbarSubtitle(i, j)\"\n (keydown.space)=\"removeNavbarSubtitle(i, j)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n </div>\n\n <button class=\"btn btn-outline-primary btn-sm mt-2\" (click)=\"addNavbarSubtitle(i)\">\n + Add Subtitle\n </button>\n </div>\n </div>\n\n <button class=\"btn btn-primary mt-3\" (click)=\"addNavbarItem()\">\n + Add Navbar Item\n </button>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"onClose()\">Cancel</button>\n <button class=\"btn btn-primary\" (click)=\"onSave()\">Save</button>\n </div>\n `\n})\nexport class EditNavbarModalComponent {\n @Input() editingNavbar: any;\n @Output() save = new EventEmitter<any>();\n @Output() close = new EventEmitter<void>();\n\n dropNavbarItems(event: any) {\n moveItemInArray(this.editingNavbar.items, event.previousIndex, event.currentIndex);\n }\n\n dropNavbarSubtitles(index: number, event: any) {\n moveItemInArray(\n this.editingNavbar.items[index].subtitles,\n event.previousIndex,\n event.currentIndex\n );\n }\n\n addNavbarItem() {\n this.editingNavbar.items.push({\n title: '',\n path: '',\n subtitles: []\n });\n }\n\n removeNavbarItem(index: number) {\n this.editingNavbar.items.splice(index, 1);\n }\n\n addNavbarSubtitle(index: number) {\n this.editingNavbar.items[index].subtitles.push({\n title: '',\n path: ''\n });\n }\n\n removeNavbarSubtitle(navIndex: number, subIndex: number) {\n this.editingNavbar.items[navIndex].subtitles.splice(subIndex, 1);\n }\n\n onSave() {\n this.save.emit(this.editingNavbar);\n }\n\n onClose() {\n this.close.emit();\n }\n}\n"],"names":["i1","i2"],"mappings":"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"}
|