@posiwise/resource-module 0.0.131 → 0.0.132

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.
@@ -107,10 +107,10 @@ export class RelatedResourcesComponent extends AppBaseComponent {
107
107
  return item.id;
108
108
  }
109
109
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RelatedResourcesComponent, deps: [{ token: i1.ResourceService }, { token: i0.Injector }, { token: i2.DomSanitizer }, { token: i3.TagService }, { token: i3.CustomToastService }], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: RelatedResourcesComponent, selector: "pw-related-resources", usesInheritance: true, ngImport: i0, template: "\n\n<section class=\"resource-body-section\">\n <div class=\"container\">\n <div class=\"ql-snow body-quill\"\n >\n <div class=\"ql-editor body post-body-text\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n <section class=\"nce-offer-section\">\n\n <div class=\"row mt-5 mb-4 response-row\">\n <div class=\"col-12\">\n <form\n class=\"p-fluid mb-5\"\n [formGroup]=\"commentForm\"\n (ngSubmit)=\"onComment()\"\n *ngIf=\"userLoggedIn; else userLoggedOut\"\n >\n <div class=\"card shadow-sm border-0 p-4\">\n <div class=\"field\">\n <label for=\"comment\" class=\"font-bold text-lg mb-4 comment-label\">\uD83D\uDCAC Leave a comment</label>\n <textarea\n pInputTextarea\n formControlName=\"comment\"\n rows=\"6\"\n autoResize=\"true\"\n class=\"p-inputtext p-component p-inputtextarea\"\n placeholder=\"What's on your mind?\"\n ></textarea>\n <small\n class=\"text-danger\"\n *ngIf=\"commentForm.get('comment')?.invalid && commentForm.get('comment')?.touched\"\n >Please enter comment</small\n >\n </div>\n <div class=\"text-end mt-3\">\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n class=\"sign-btn sign-header-btn\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n <ng-template #userLoggedOut>\n <p class=\"text-center pt-3 pb-3 user-not-logged-in text-muted shadow-sm mb-5\">\n <a [routerLink]=\"['/login']\" class=\"text-primary fw-bold\">Log in</a> to leave a comment!\n </p>\n </ng-template>\n </div>\n </div>\n\n <div class=\"row mt-5 comment-row\">\n <div class=\"col-12\" *ngFor=\"let comment of postComments; trackBy: trackByComment\">\n <div class=\"card border-0 shadow-sm p-3 mb-3\">\n <div class=\"d-flex align-items-start\">\n <img\n [src]=\"comment?.author?.avatar?.[0]?.url || 'assets/img/icons/male.png'\"\n alt=\"avatar\"\n class=\"rounded-circle me-3\"\n width=\"50\"\n height=\"50\"\n (error)=\"handleImageError($event, 'assets/img/icons/male.png')\"\n />\n <div class=\"flex-grow-1\">\n <div class=\"fw-bold text-dark\">\n {{ comment.user?.first_name || '' }} {{ comment.user?.last_name || '' }}\n </div>\n <div class=\"text-muted small mb-2\">{{ comment.created_at | date: 'dd MMM yyyy, h:mm a' }}</div>\n <div class=\"text-body\">\n {{ comment.comment }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </section>\n </div>\n <hr class=\"nce-divider\" />\n</section>\n\n<section class=\"nce-book-section\" *ngIf=\"hasValidDemoLinks\">\n <div class=\"container\">\n\n <p class=\"nce-contact\">\n Any questions, get in touch <a href=\"mailto:{{ company_email }}\">here</a>,\n <a [href]=\"linkedInUrl\" target=\"_blank\">connect on LinkedIn</a>, or book a meeting below:\n </p>\n </div>\n <pw-book-a-demo [isBlog]=\"true\"></pw-book-a-demo>\n <hr class=\"nce-divider\" />\n</section>\n\n\n<pw-resource-cards *ngIf=\"blogPostTag?.tag_category_id\" [tag]=\"blogPostTag\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [isHeaderVisible]=\"true\" resourceLink=\"/resources/blogs\" [isRelated]=\"true\" [resourceTitle]=\"'Other resources you may be interested in:'\"></pw-resource-cards>\n", styles: [".video-row{gap:5.5rem!important;margin-top:3rem!important}::ng-deep .resource-section{box-shadow:0 4px 32px -14px #40576d4d!important}.release-icon{height:auto;margin:0 11px 1.9rem;display:block;align-self:center}@media (width >= 768px) and (width <= 1200px){.resource-title{font-size:1.4rem!important}}textarea{font-size:1.4rem!important}@media (width <= 768px){.resource-title{font-size:1.2rem!important}.container{padding:7rem 3rem 1rem!important}}@media (width >= 768px) and (width <= 1200px){.container{padding:1rem 3rem!important}}@media (width <= 1200px){.msp-vault-section .vault-heading{font-size:3.5rem}.msp-vault-section .vault-description{margin-top:1.35rem}.msp-vault-section .vault-card{width:100%!important}.msp-vault-section .vault-btn{margin-left:0!important;width:100%!important}}@media (width >= 991px){::ng-deep .trial-meeting-section:before{top:600px!important}::ng-deep .dashboard{margin-bottom:1rem!important}section.bg-white.text-center.extra-top-padding{position:relative;overflow:hidden}section.bg-white.text-center.extra-top-padding .banner-header{margin-bottom:4rem!important}section.bg-white.text-center.extra-top-padding:before,section.bg-white.text-center.extra-top-padding:after{content:\"\";position:absolute;background:url(/assets/img/logos/background-banner.png) no-repeat;background-size:contain;width:160px;height:450px;z-index:0;opacity:.8}section.bg-white.text-center.extra-top-padding:before{top:500px;left:0}section.bg-white.text-center.extra-top-padding:after{top:90px;right:0}}.vault-header{text-align:left}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 1200px){.resource-card{width:100%!important}.release-notes-section{padding:7rem 0!important}}@media (width >= 768px) and (width <= 1200px){.nce-hero-section{padding:0 6rem!important}.cards-row{justify-content:center}}.resource-body-section{background-color:#fff}.resource-body-section .container{padding:0 1.5rem;padding-bottom:4rem!important;padding-top:7rem!important;max-width:850px;margin:0 auto;text-align:left}.user-not-logged-in{background:#f7f7f7;border:1px solid rgb(238,238,238);font-weight:400}.user-not-logged-in a{color:var(--first)!important;text-decoration:none;font-weight:500}.nce-book-section{background:#fff;padding-top:7rem;padding-bottom:0}.nce-book-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.nce-book-section .nce-contact{line-height:1.6;font-size:1.5rem}.nce-book-section .nce-contact a{text-decoration:underline;color:#000;margin:0 .2rem}.nce-book-section .nce-contact a:hover{color:var(--first)!important}.nce-offer-section{background:#fff;padding-top:2rem}.nce-offer-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.nce-offer-section .nce-title{font-size:2rem;font-weight:700;color:#000;margin-bottom:.25em!important}.nce-offer-section .nce-title strong{font-weight:700}.nce-offer-section .nce-description{font-size:1.5rem;line-height:1.8rem;color:#333;margin-bottom:1.5rem}.nce-offer-section .nce-offer-list{font-size:1.1rem;line-height:1.5rem;margin-bottom:2.5rem;margin-top:2.5rem}.nce-offer-section .nce-offer-list p{font-size:1.5rem;margin:.5rem 0;font-weight:400}.nce-offer-section .nce-signup{margin-bottom:2.5rem}.nce-offer-section .nce-signup .signup-link{font-size:1.5rem;font-weight:400;text-decoration:underline;color:#000}@media (width <= 768px){.nce-offer-section .nce-book-section{padding-top:5rem!important}.nce-offer-section .container{text-align:left}.nce-offer-section .nce-title{font-size:1.5rem}.nce-offer-section .nce-description,.nce-offer-section .nce-offer-list,.nce-offer-section .nce-signup,.nce-offer-section .signup-link,.nce-offer-section .nce-contact,.nce-offer-section .nce-offer-list p{font-size:1.2rem!important}}.nce-offer-intro{font-size:1.5rem;font-weight:400}.outer-section-fadeout{position:absolute;top:139rem;height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa)}.body-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}@media (width <= 768px){.nce-book-section{padding-top:5rem!important}.nce-contact{font-size:1.2rem!important}}::ng-deep .body-quill{border-width:0!important;max-width:900px;display:block;margin-left:auto;margin-right:auto}::ng-deep .p-inputtextarea{border-radius:.5rem;border-color:#ced4da;font-size:1rem}.card{background-color:#fff;border-radius:12px}.comment-row{gap:2rem;padding-bottom:5rem;max-width:1000px;display:block;margin-left:auto;margin-right:auto}.comment-label{font-size:1.5rem!important}.response-row{max-width:1000px;display:block;margin-left:auto;margin-right:auto;margin-top:6rem!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i6.HubSpotMeetingsComponent, selector: "pw-book-a-demo", inputs: ["isBlog"] }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8.ButtonBusyDirective, selector: "[buttonBusy]", inputs: ["buttonBusy", "busyText"] }, { kind: "directive", type: i8.LazyImgDirective, selector: "img" }, { kind: "component", type: i9.ResourceCardComponent, selector: "pw-resource-cards", inputs: ["categoryId", "isHeaderVisible", "isRelated", "resourceTitle", "postSlice", "header", "tag", "resourceLink"] }, { kind: "pipe", type: i4.DatePipe, name: "date" }, { kind: "pipe", type: i10.TranslocoPipe, name: "transloco" }] }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: RelatedResourcesComponent, selector: "pw-related-resources", usesInheritance: true, ngImport: i0, template: "\n\n<section class=\"resource-body-section\">\n <div class=\"container\">\n <div class=\"ql-snow body-quill\"\n >\n <div class=\"ql-editor body post-body-text\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n <section class=\"nce-offer-section\">\n\n <div class=\"row mt-5 mb-4 response-row\">\n <div class=\"col-12\">\n <form\n class=\"p-fluid mb-5\"\n [formGroup]=\"commentForm\"\n (ngSubmit)=\"onComment()\"\n *ngIf=\"userLoggedIn; else userLoggedOut\"\n >\n <div class=\"card shadow-sm no-border p-4\">\n <div class=\"field\">\n <label for=\"comment\" class=\"font-bold text-lg mb-4 comment-label\">\uD83D\uDCAC Leave a comment</label>\n <textarea\n pInputTextarea\n formControlName=\"comment\"\n rows=\"6\"\n autoResize=\"true\"\n class=\"p-inputtext p-component p-inputtextarea\"\n placeholder=\"What's on your mind?\"\n ></textarea>\n <small\n class=\"text-danger\"\n *ngIf=\"commentForm.get('comment')?.invalid && commentForm.get('comment')?.touched\"\n >Please enter comment</small\n >\n </div>\n <div class=\"text-end mt-3\">\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n class=\"sign-btn sign-header-btn\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n <ng-template #userLoggedOut>\n <p class=\"text-center pt-3 pb-3 user-not-logged-in text-muted shadow-sm mb-5\">\n <a [routerLink]=\"['/login']\" class=\"text-primary fw-bold\">Log in</a> to leave a comment!\n </p>\n </ng-template>\n </div>\n </div>\n\n <div class=\"row mt-5 comment-row\">\n <div class=\"col-12\" *ngFor=\"let comment of postComments; trackBy: trackByComment\">\n <div class=\"card no-border shadow-sm p-3 mb-3\">\n <div class=\"d-flex align-items-start\">\n <img\n [src]=\"comment?.author?.avatar?.[0]?.url || 'assets/img/icons/male.png'\"\n alt=\"avatar\"\n class=\"rounded-circle me-3\"\n width=\"50\"\n height=\"50\"\n (error)=\"handleImageError($event, 'assets/img/icons/male.png')\"\n />\n <div class=\"flex-grow-1\">\n <div class=\"fw-bold text-dark\">\n {{ comment.user?.first_name || '' }} {{ comment.user?.last_name || '' }}\n </div>\n <div class=\"text-muted small mb-2\">{{ comment.created_at | date: 'dd MMM yyyy, h:mm a' }}</div>\n <div class=\"text-body\">\n {{ comment.comment }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </section>\n </div>\n <hr class=\"nce-divider\" />\n</section>\n\n<section class=\"nce-book-section\" *ngIf=\"hasValidDemoLinks\">\n <div class=\"container\">\n\n <p class=\"nce-contact\">\n Any questions, get in touch <a href=\"mailto:{{ company_email }}\">here</a>,\n <a [href]=\"linkedInUrl\" target=\"_blank\">connect on LinkedIn</a>, or book a meeting below:\n </p>\n </div>\n <pw-book-a-demo [isBlog]=\"true\"></pw-book-a-demo>\n <hr class=\"nce-divider\" />\n</section>\n\n\n<pw-resource-cards *ngIf=\"blogPostTag?.tag_category_id\" [tag]=\"blogPostTag\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [isHeaderVisible]=\"true\" resourceLink=\"/resources/blogs\" [isRelated]=\"true\" [resourceTitle]=\"'Other resources you may be interested in:'\"></pw-resource-cards>\n", styles: [".video-row{gap:5.5rem!important;margin-top:3rem!important}::ng-deep .resource-section{box-shadow:0 4px 32px -14px #40576d4d!important}.release-icon{height:auto;margin:0 11px 1.9rem;display:block;align-self:center}@media (width >= 768px) and (width <= 1200px){.resource-title{font-size:1.4rem!important}}textarea{font-size:1.4rem!important}@media (width <= 768px){.resource-title{font-size:1.2rem!important}.container{padding:7rem 3rem 1rem!important}}@media (width >= 768px) and (width <= 1200px){.container{padding:1rem 3rem!important}}@media (width <= 1200px){.msp-vault-section .vault-heading{font-size:3.5rem}.msp-vault-section .vault-description{margin-top:1.35rem}.msp-vault-section .vault-card{width:100%!important}.msp-vault-section .vault-btn{margin-left:0!important;width:100%!important}}@media (width >= 991px){::ng-deep .trial-meeting-section:before{top:600px!important}::ng-deep .dashboard{margin-bottom:1rem!important}section.bg-white.text-center.extra-top-padding{position:relative;overflow:hidden}section.bg-white.text-center.extra-top-padding .banner-header{margin-bottom:4rem!important}section.bg-white.text-center.extra-top-padding:before,section.bg-white.text-center.extra-top-padding:after{content:\"\";position:absolute;background:url(/assets/img/logos/background-banner.png) no-repeat;background-size:contain;width:160px;height:450px;z-index:0;opacity:.8}section.bg-white.text-center.extra-top-padding:before{top:500px;left:0}section.bg-white.text-center.extra-top-padding:after{top:90px;right:0}}.vault-header{text-align:left}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 1200px){.resource-card{width:100%!important}.release-notes-section{padding:7rem 0!important}}@media (width >= 768px) and (width <= 1200px){.nce-hero-section{padding:0 6rem!important}.cards-row{justify-content:center}}.resource-body-section{background-color:#fff}.resource-body-section .container{padding:0 1.5rem;padding-bottom:4rem!important;padding-top:7rem!important;max-width:850px;margin:0 auto;text-align:left}.user-not-logged-in{background:#f7f7f7;border:1px solid rgb(238,238,238);font-weight:400}.user-not-logged-in a{color:var(--first)!important;text-decoration:none;font-weight:500}.nce-book-section{background:#fff;padding-top:7rem;padding-bottom:0}.nce-book-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.nce-book-section .nce-contact{line-height:1.6;font-size:1.5rem}.nce-book-section .nce-contact a{text-decoration:underline;color:#000;margin:0 .2rem}.nce-book-section .nce-contact a:hover{color:var(--first)!important}.nce-offer-section{background:#fff;padding-top:2rem}.nce-offer-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.nce-offer-section .nce-title{font-size:2rem;font-weight:700;color:#000;margin-bottom:.25em!important}.nce-offer-section .nce-title strong{font-weight:700}.nce-offer-section .nce-description{font-size:1.5rem;line-height:1.8rem;color:#333;margin-bottom:1.5rem}.nce-offer-section .nce-offer-list{font-size:1.1rem;line-height:1.5rem;margin-bottom:2.5rem;margin-top:2.5rem}.nce-offer-section .nce-offer-list p{font-size:1.5rem;margin:.5rem 0;font-weight:400}.nce-offer-section .nce-signup{margin-bottom:2.5rem}.nce-offer-section .nce-signup .signup-link{font-size:1.5rem;font-weight:400;text-decoration:underline;color:#000}@media (width <= 768px){.nce-offer-section .nce-book-section{padding-top:5rem!important}.nce-offer-section .container{text-align:left}.nce-offer-section .nce-title{font-size:1.5rem}.nce-offer-section .nce-description,.nce-offer-section .nce-offer-list,.nce-offer-section .nce-signup,.nce-offer-section .signup-link,.nce-offer-section .nce-contact,.nce-offer-section .nce-offer-list p{font-size:1.2rem!important}}.nce-offer-intro{font-size:1.5rem;font-weight:400}.outer-section-fadeout{position:absolute;top:139rem;height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa)}.body-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}@media (width <= 768px){.nce-book-section{padding-top:5rem!important}.nce-contact{font-size:1.2rem!important}}::ng-deep .body-quill{border-width:0!important;max-width:900px;display:block;margin-left:auto;margin-right:auto}::ng-deep .p-inputtextarea{border-radius:.5rem;border-color:#ced4da;font-size:1rem}.card{background-color:#fff;border-radius:12px}.comment-row{gap:2rem;padding-bottom:5rem;max-width:1000px;display:block;margin-left:auto;margin-right:auto}.comment-label{font-size:1.5rem!important}.response-row{max-width:1000px;display:block;margin-left:auto;margin-right:auto;margin-top:6rem!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i6.HubSpotMeetingsComponent, selector: "pw-book-a-demo", inputs: ["isBlog"] }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8.ButtonBusyDirective, selector: "[buttonBusy]", inputs: ["buttonBusy", "busyText"] }, { kind: "directive", type: i8.LazyImgDirective, selector: "img" }, { kind: "component", type: i9.ResourceCardComponent, selector: "pw-resource-cards", inputs: ["categoryId", "isHeaderVisible", "isRelated", "resourceTitle", "postSlice", "header", "tag", "resourceLink"] }, { kind: "pipe", type: i4.DatePipe, name: "date" }, { kind: "pipe", type: i10.TranslocoPipe, name: "transloco" }] }); }
111
111
  }
112
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RelatedResourcesComponent, decorators: [{
113
113
  type: Component,
114
- args: [{ selector: 'pw-related-resources', template: "\n\n<section class=\"resource-body-section\">\n <div class=\"container\">\n <div class=\"ql-snow body-quill\"\n >\n <div class=\"ql-editor body post-body-text\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n <section class=\"nce-offer-section\">\n\n <div class=\"row mt-5 mb-4 response-row\">\n <div class=\"col-12\">\n <form\n class=\"p-fluid mb-5\"\n [formGroup]=\"commentForm\"\n (ngSubmit)=\"onComment()\"\n *ngIf=\"userLoggedIn; else userLoggedOut\"\n >\n <div class=\"card shadow-sm border-0 p-4\">\n <div class=\"field\">\n <label for=\"comment\" class=\"font-bold text-lg mb-4 comment-label\">\uD83D\uDCAC Leave a comment</label>\n <textarea\n pInputTextarea\n formControlName=\"comment\"\n rows=\"6\"\n autoResize=\"true\"\n class=\"p-inputtext p-component p-inputtextarea\"\n placeholder=\"What's on your mind?\"\n ></textarea>\n <small\n class=\"text-danger\"\n *ngIf=\"commentForm.get('comment')?.invalid && commentForm.get('comment')?.touched\"\n >Please enter comment</small\n >\n </div>\n <div class=\"text-end mt-3\">\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n class=\"sign-btn sign-header-btn\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n <ng-template #userLoggedOut>\n <p class=\"text-center pt-3 pb-3 user-not-logged-in text-muted shadow-sm mb-5\">\n <a [routerLink]=\"['/login']\" class=\"text-primary fw-bold\">Log in</a> to leave a comment!\n </p>\n </ng-template>\n </div>\n </div>\n\n <div class=\"row mt-5 comment-row\">\n <div class=\"col-12\" *ngFor=\"let comment of postComments; trackBy: trackByComment\">\n <div class=\"card border-0 shadow-sm p-3 mb-3\">\n <div class=\"d-flex align-items-start\">\n <img\n [src]=\"comment?.author?.avatar?.[0]?.url || 'assets/img/icons/male.png'\"\n alt=\"avatar\"\n class=\"rounded-circle me-3\"\n width=\"50\"\n height=\"50\"\n (error)=\"handleImageError($event, 'assets/img/icons/male.png')\"\n />\n <div class=\"flex-grow-1\">\n <div class=\"fw-bold text-dark\">\n {{ comment.user?.first_name || '' }} {{ comment.user?.last_name || '' }}\n </div>\n <div class=\"text-muted small mb-2\">{{ comment.created_at | date: 'dd MMM yyyy, h:mm a' }}</div>\n <div class=\"text-body\">\n {{ comment.comment }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </section>\n </div>\n <hr class=\"nce-divider\" />\n</section>\n\n<section class=\"nce-book-section\" *ngIf=\"hasValidDemoLinks\">\n <div class=\"container\">\n\n <p class=\"nce-contact\">\n Any questions, get in touch <a href=\"mailto:{{ company_email }}\">here</a>,\n <a [href]=\"linkedInUrl\" target=\"_blank\">connect on LinkedIn</a>, or book a meeting below:\n </p>\n </div>\n <pw-book-a-demo [isBlog]=\"true\"></pw-book-a-demo>\n <hr class=\"nce-divider\" />\n</section>\n\n\n<pw-resource-cards *ngIf=\"blogPostTag?.tag_category_id\" [tag]=\"blogPostTag\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [isHeaderVisible]=\"true\" resourceLink=\"/resources/blogs\" [isRelated]=\"true\" [resourceTitle]=\"'Other resources you may be interested in:'\"></pw-resource-cards>\n", styles: [".video-row{gap:5.5rem!important;margin-top:3rem!important}::ng-deep .resource-section{box-shadow:0 4px 32px -14px #40576d4d!important}.release-icon{height:auto;margin:0 11px 1.9rem;display:block;align-self:center}@media (width >= 768px) and (width <= 1200px){.resource-title{font-size:1.4rem!important}}textarea{font-size:1.4rem!important}@media (width <= 768px){.resource-title{font-size:1.2rem!important}.container{padding:7rem 3rem 1rem!important}}@media (width >= 768px) and (width <= 1200px){.container{padding:1rem 3rem!important}}@media (width <= 1200px){.msp-vault-section .vault-heading{font-size:3.5rem}.msp-vault-section .vault-description{margin-top:1.35rem}.msp-vault-section .vault-card{width:100%!important}.msp-vault-section .vault-btn{margin-left:0!important;width:100%!important}}@media (width >= 991px){::ng-deep .trial-meeting-section:before{top:600px!important}::ng-deep .dashboard{margin-bottom:1rem!important}section.bg-white.text-center.extra-top-padding{position:relative;overflow:hidden}section.bg-white.text-center.extra-top-padding .banner-header{margin-bottom:4rem!important}section.bg-white.text-center.extra-top-padding:before,section.bg-white.text-center.extra-top-padding:after{content:\"\";position:absolute;background:url(/assets/img/logos/background-banner.png) no-repeat;background-size:contain;width:160px;height:450px;z-index:0;opacity:.8}section.bg-white.text-center.extra-top-padding:before{top:500px;left:0}section.bg-white.text-center.extra-top-padding:after{top:90px;right:0}}.vault-header{text-align:left}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 1200px){.resource-card{width:100%!important}.release-notes-section{padding:7rem 0!important}}@media (width >= 768px) and (width <= 1200px){.nce-hero-section{padding:0 6rem!important}.cards-row{justify-content:center}}.resource-body-section{background-color:#fff}.resource-body-section .container{padding:0 1.5rem;padding-bottom:4rem!important;padding-top:7rem!important;max-width:850px;margin:0 auto;text-align:left}.user-not-logged-in{background:#f7f7f7;border:1px solid rgb(238,238,238);font-weight:400}.user-not-logged-in a{color:var(--first)!important;text-decoration:none;font-weight:500}.nce-book-section{background:#fff;padding-top:7rem;padding-bottom:0}.nce-book-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.nce-book-section .nce-contact{line-height:1.6;font-size:1.5rem}.nce-book-section .nce-contact a{text-decoration:underline;color:#000;margin:0 .2rem}.nce-book-section .nce-contact a:hover{color:var(--first)!important}.nce-offer-section{background:#fff;padding-top:2rem}.nce-offer-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.nce-offer-section .nce-title{font-size:2rem;font-weight:700;color:#000;margin-bottom:.25em!important}.nce-offer-section .nce-title strong{font-weight:700}.nce-offer-section .nce-description{font-size:1.5rem;line-height:1.8rem;color:#333;margin-bottom:1.5rem}.nce-offer-section .nce-offer-list{font-size:1.1rem;line-height:1.5rem;margin-bottom:2.5rem;margin-top:2.5rem}.nce-offer-section .nce-offer-list p{font-size:1.5rem;margin:.5rem 0;font-weight:400}.nce-offer-section .nce-signup{margin-bottom:2.5rem}.nce-offer-section .nce-signup .signup-link{font-size:1.5rem;font-weight:400;text-decoration:underline;color:#000}@media (width <= 768px){.nce-offer-section .nce-book-section{padding-top:5rem!important}.nce-offer-section .container{text-align:left}.nce-offer-section .nce-title{font-size:1.5rem}.nce-offer-section .nce-description,.nce-offer-section .nce-offer-list,.nce-offer-section .nce-signup,.nce-offer-section .signup-link,.nce-offer-section .nce-contact,.nce-offer-section .nce-offer-list p{font-size:1.2rem!important}}.nce-offer-intro{font-size:1.5rem;font-weight:400}.outer-section-fadeout{position:absolute;top:139rem;height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa)}.body-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}@media (width <= 768px){.nce-book-section{padding-top:5rem!important}.nce-contact{font-size:1.2rem!important}}::ng-deep .body-quill{border-width:0!important;max-width:900px;display:block;margin-left:auto;margin-right:auto}::ng-deep .p-inputtextarea{border-radius:.5rem;border-color:#ced4da;font-size:1rem}.card{background-color:#fff;border-radius:12px}.comment-row{gap:2rem;padding-bottom:5rem;max-width:1000px;display:block;margin-left:auto;margin-right:auto}.comment-label{font-size:1.5rem!important}.response-row{max-width:1000px;display:block;margin-left:auto;margin-right:auto;margin-top:6rem!important}\n"] }]
114
+ args: [{ selector: 'pw-related-resources', template: "\n\n<section class=\"resource-body-section\">\n <div class=\"container\">\n <div class=\"ql-snow body-quill\"\n >\n <div class=\"ql-editor body post-body-text\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n <section class=\"nce-offer-section\">\n\n <div class=\"row mt-5 mb-4 response-row\">\n <div class=\"col-12\">\n <form\n class=\"p-fluid mb-5\"\n [formGroup]=\"commentForm\"\n (ngSubmit)=\"onComment()\"\n *ngIf=\"userLoggedIn; else userLoggedOut\"\n >\n <div class=\"card shadow-sm no-border p-4\">\n <div class=\"field\">\n <label for=\"comment\" class=\"font-bold text-lg mb-4 comment-label\">\uD83D\uDCAC Leave a comment</label>\n <textarea\n pInputTextarea\n formControlName=\"comment\"\n rows=\"6\"\n autoResize=\"true\"\n class=\"p-inputtext p-component p-inputtextarea\"\n placeholder=\"What's on your mind?\"\n ></textarea>\n <small\n class=\"text-danger\"\n *ngIf=\"commentForm.get('comment')?.invalid && commentForm.get('comment')?.touched\"\n >Please enter comment</small\n >\n </div>\n <div class=\"text-end mt-3\">\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n class=\"sign-btn sign-header-btn\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n <ng-template #userLoggedOut>\n <p class=\"text-center pt-3 pb-3 user-not-logged-in text-muted shadow-sm mb-5\">\n <a [routerLink]=\"['/login']\" class=\"text-primary fw-bold\">Log in</a> to leave a comment!\n </p>\n </ng-template>\n </div>\n </div>\n\n <div class=\"row mt-5 comment-row\">\n <div class=\"col-12\" *ngFor=\"let comment of postComments; trackBy: trackByComment\">\n <div class=\"card no-border shadow-sm p-3 mb-3\">\n <div class=\"d-flex align-items-start\">\n <img\n [src]=\"comment?.author?.avatar?.[0]?.url || 'assets/img/icons/male.png'\"\n alt=\"avatar\"\n class=\"rounded-circle me-3\"\n width=\"50\"\n height=\"50\"\n (error)=\"handleImageError($event, 'assets/img/icons/male.png')\"\n />\n <div class=\"flex-grow-1\">\n <div class=\"fw-bold text-dark\">\n {{ comment.user?.first_name || '' }} {{ comment.user?.last_name || '' }}\n </div>\n <div class=\"text-muted small mb-2\">{{ comment.created_at | date: 'dd MMM yyyy, h:mm a' }}</div>\n <div class=\"text-body\">\n {{ comment.comment }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </section>\n </div>\n <hr class=\"nce-divider\" />\n</section>\n\n<section class=\"nce-book-section\" *ngIf=\"hasValidDemoLinks\">\n <div class=\"container\">\n\n <p class=\"nce-contact\">\n Any questions, get in touch <a href=\"mailto:{{ company_email }}\">here</a>,\n <a [href]=\"linkedInUrl\" target=\"_blank\">connect on LinkedIn</a>, or book a meeting below:\n </p>\n </div>\n <pw-book-a-demo [isBlog]=\"true\"></pw-book-a-demo>\n <hr class=\"nce-divider\" />\n</section>\n\n\n<pw-resource-cards *ngIf=\"blogPostTag?.tag_category_id\" [tag]=\"blogPostTag\" [categoryId]=\"blogPostTag?.tag_category_id\" [resourceTitle]=\"blogPostTag?.title\" [isHeaderVisible]=\"true\" resourceLink=\"/resources/blogs\" [isRelated]=\"true\" [resourceTitle]=\"'Other resources you may be interested in:'\"></pw-resource-cards>\n", styles: [".video-row{gap:5.5rem!important;margin-top:3rem!important}::ng-deep .resource-section{box-shadow:0 4px 32px -14px #40576d4d!important}.release-icon{height:auto;margin:0 11px 1.9rem;display:block;align-self:center}@media (width >= 768px) and (width <= 1200px){.resource-title{font-size:1.4rem!important}}textarea{font-size:1.4rem!important}@media (width <= 768px){.resource-title{font-size:1.2rem!important}.container{padding:7rem 3rem 1rem!important}}@media (width >= 768px) and (width <= 1200px){.container{padding:1rem 3rem!important}}@media (width <= 1200px){.msp-vault-section .vault-heading{font-size:3.5rem}.msp-vault-section .vault-description{margin-top:1.35rem}.msp-vault-section .vault-card{width:100%!important}.msp-vault-section .vault-btn{margin-left:0!important;width:100%!important}}@media (width >= 991px){::ng-deep .trial-meeting-section:before{top:600px!important}::ng-deep .dashboard{margin-bottom:1rem!important}section.bg-white.text-center.extra-top-padding{position:relative;overflow:hidden}section.bg-white.text-center.extra-top-padding .banner-header{margin-bottom:4rem!important}section.bg-white.text-center.extra-top-padding:before,section.bg-white.text-center.extra-top-padding:after{content:\"\";position:absolute;background:url(/assets/img/logos/background-banner.png) no-repeat;background-size:contain;width:160px;height:450px;z-index:0;opacity:.8}section.bg-white.text-center.extra-top-padding:before{top:500px;left:0}section.bg-white.text-center.extra-top-padding:after{top:90px;right:0}}.vault-header{text-align:left}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 1200px){.resource-card{width:100%!important}.release-notes-section{padding:7rem 0!important}}@media (width >= 768px) and (width <= 1200px){.nce-hero-section{padding:0 6rem!important}.cards-row{justify-content:center}}.resource-body-section{background-color:#fff}.resource-body-section .container{padding:0 1.5rem;padding-bottom:4rem!important;padding-top:7rem!important;max-width:850px;margin:0 auto;text-align:left}.user-not-logged-in{background:#f7f7f7;border:1px solid rgb(238,238,238);font-weight:400}.user-not-logged-in a{color:var(--first)!important;text-decoration:none;font-weight:500}.nce-book-section{background:#fff;padding-top:7rem;padding-bottom:0}.nce-book-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.nce-book-section .nce-contact{line-height:1.6;font-size:1.5rem}.nce-book-section .nce-contact a{text-decoration:underline;color:#000;margin:0 .2rem}.nce-book-section .nce-contact a:hover{color:var(--first)!important}.nce-offer-section{background:#fff;padding-top:2rem}.nce-offer-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.nce-offer-section .nce-title{font-size:2rem;font-weight:700;color:#000;margin-bottom:.25em!important}.nce-offer-section .nce-title strong{font-weight:700}.nce-offer-section .nce-description{font-size:1.5rem;line-height:1.8rem;color:#333;margin-bottom:1.5rem}.nce-offer-section .nce-offer-list{font-size:1.1rem;line-height:1.5rem;margin-bottom:2.5rem;margin-top:2.5rem}.nce-offer-section .nce-offer-list p{font-size:1.5rem;margin:.5rem 0;font-weight:400}.nce-offer-section .nce-signup{margin-bottom:2.5rem}.nce-offer-section .nce-signup .signup-link{font-size:1.5rem;font-weight:400;text-decoration:underline;color:#000}@media (width <= 768px){.nce-offer-section .nce-book-section{padding-top:5rem!important}.nce-offer-section .container{text-align:left}.nce-offer-section .nce-title{font-size:1.5rem}.nce-offer-section .nce-description,.nce-offer-section .nce-offer-list,.nce-offer-section .nce-signup,.nce-offer-section .signup-link,.nce-offer-section .nce-contact,.nce-offer-section .nce-offer-list p{font-size:1.2rem!important}}.nce-offer-intro{font-size:1.5rem;font-weight:400}.outer-section-fadeout{position:absolute;top:139rem;height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa)}.body-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}@media (width <= 768px){.nce-book-section{padding-top:5rem!important}.nce-contact{font-size:1.2rem!important}}::ng-deep .body-quill{border-width:0!important;max-width:900px;display:block;margin-left:auto;margin-right:auto}::ng-deep .p-inputtextarea{border-radius:.5rem;border-color:#ced4da;font-size:1rem}.card{background-color:#fff;border-radius:12px}.comment-row{gap:2rem;padding-bottom:5rem;max-width:1000px;display:block;margin-left:auto;margin-right:auto}.comment-label{font-size:1.5rem!important}.response-row{max-width:1000px;display:block;margin-left:auto;margin-right:auto;margin-top:6rem!important}\n"] }]
115
115
  }], ctorParameters: () => [{ type: i1.ResourceService }, { type: i0.Injector }, { type: i2.DomSanitizer }, { type: i3.TagService }, { type: i3.CustomToastService }] });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1yZXNvdXJjZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1tb2R1bGUvc3JjL2xpYi9wdWJsaWMvY29tcG9uZW50cy9yZXNvdXJjZS1wb3N0L3JlbGF0ZWQtcmVzb3VyY2VzL3JlbGF0ZWQtcmVzb3VyY2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcmVzb3VyY2UtbW9kdWxlL3NyYy9saWIvcHVibGljL2NvbXBvbmVudHMvcmVzb3VyY2UtcG9zdC9yZWxhdGVkLXJlc291cmNlcy9yZWxhdGVkLXJlc291cmNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBT3hFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxnQkFBZ0I7SUF1QzNELFlBQ3FCLGVBQWdDLEVBQ2pELFFBQWtCLEVBQ0QsU0FBdUIsRUFDdkIsVUFBc0IsRUFDdEIsTUFBMEI7UUFFM0MsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBTkMsb0JB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LENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWMsRUFBRSxJQUFvQjtRQUMvQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0FoSFEseUJBQXlCO21HQUF6Qix5QkFBeUIsbUZDaEJ0QywyNEhBb0dBOzs0RkRwRmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNJLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbVRvYXN0U2VydmljZSwgVGFnU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgVE9LRU5fS0VZLCBVc2VyIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5cbmltcG9ydCB7IFJlc291cmNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3Jlc291cmNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzb3VyY2VCbG9nIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL21vZGVscy9yZXNvdXJjZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctcmVsYXRlZC1yZXNvdXJjZXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWxhdGVkLXJlc291cmNlcy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcmVsYXRlZC1yZXNvdXJjZXMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZWxhdGVkUmVzb3VyY2VzQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcmVzb3VyY2VDYXJkcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdCTE9HOiBIZXJl4oCZcyB3aHkgeW91IHNob3VsZCBRQSB5b3VyIGRpc3RyaWJ1dG9yIGludm9pY2VzJyxcbiAgICAgICAgICAgIGltYWdlOiAnL2Fzc2V0cy9pbWcvcmVzb3VyY2UvcmVzb3VyY2UtcWEucG5nJyxcbiAgICAgICAgICAgIGFsdDogJ1FBIGRpc3RyaWJ1dG9yIGludm9pY2VzJyxcbiAgICAgICAgICAgIHVybDogJy9yZXNvdXJjZXMvdmlldy9oZXJlLXMtd2h5LXlvdS1zaG91bGQtYmUtc2Vla2luZy1pbmRlcGVuZGVudC1xYS1vZi1hbGwtZGlzdHJpYnV0b3ItaW52J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogJ0JMT0c6IDQgaW5zdGFudCBoYWNrcyB0byB1cGxpZnQgeW91ciBNU1DigJlzIG1vbnRobHkgYmlsbGluZycsXG4gICAgICAgICAgICBpbWFnZTogJy9hc3NldHMvaW1nL3Jlc291cmNlL3Jlc291cmNlLWhhY2tzLnBuZycsXG4gICAgICAgICAgICBhbHQ6ICdNb250aGx5IGJpbGxpbmcgaGFja3MnLFxuICAgICAgICAgICAgdXJsOiAnL3Jlc291cmNlcy92aWV3LzQtaW5zdGFudC1oYWNrcy10by11cGxpZnQteW91ci1tc3Atcy1tb250aGx5LWJpbGxpbmcnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpdGxlOiAnQkxPRzogVGhlIHRyaXZpYWwgZGV0YWlsIHRoYXQgd2lsbCBlaXRoZXIgZnV0dXJlLXByb29mIG9yIHNhYm90YWdlIHlvdXIgUFNBLicsXG4gICAgICAgICAgICBpbWFnZTogJy9hc3NldHMvaW1nL3Jlc291cmNlL3Jlc291cmNlLXBzYS5wbmcnLFxuICAgICAgICAgICAgYWx0OiAnUFNBIGZ1dHVyZS1wcm9vZicsXG4gICAgICAgICAgICB1cmw6ICcvcmVzb3VyY2VzL3ZpZXcvdGhlLXRyaXZpYWwtZGV0YWlsLXRoYXQtd2lsbC1laXRoZXItZnV0dXJlLXByb29mLW9yLXNhYm90YWdlLXlvdXItcHNhJ1xuICAgICAgICB9XG4gICAgXTtcblxuICAgIHBvc3Q7XG4gICAgbWFzdGVyU3Vic2NyaXB0aW9uSWQ7XG4gICAgc2x1ZztcblxuICAgIHBvc3RDb21tZW50cyA9IFtdO1xuICAgIGNvbW1lbnRGb3JtO1xuXG4gICAgdXNlckxvZ2dlZEluOiBib29sZWFuO1xuXG4gICAgZGVtb0xpbmtzID0gdGhpcy5hcHBDb25maWc/LnBhZ2VzX2NvbmZpZz8uYm9va19kZW1vPy5pdGVtcztcblxuICAgIHVzZXI6IFVzZXI7XG4gICAgYmxvZ1Bvc3RUYWc7XG4gICAgc3Vic2NyaXB0aW9uSWQ7XG4gICAgbGlua2VkSW5VcmwgPSB0aGlzLmFwcENvbmZpZz8uc29jaWFsPy5saW5rZWRpbl91cmw7XG4gICAgY29tcGFueV9lbWFpbCA9IHRoaXMuYXBwQ29uZmlnLmNvbXBhbnkuZW1haWw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZVNlcnZpY2U6IFJlc291cmNlU2VydmljZSxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRhZ1NlcnZpY2U6IFRhZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RyOiBDdXN0b21Ub2FzdFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmNvbW1lbnRGb3JtID0gUmVzb3VyY2VCbG9nLmdldFJlc291cmNlUG9zdHNGb3JtKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWFzdGVyU3Vic2NyaXB0aW9uSWQgPSB0aGlzLmFwcENvbmZpZy5tYXN0ZXJfc3Vic2NyaXB0aW9uLnN1YnNjcmlwdGlvbl9pZDtcbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnNsdWcgPSBwYXJhbXNbJ3NsdWcnXSA/PyAnJztcbiAgICAgICAgICAgIHRoaXMuZ2V0QmxvZ0l0ZW0odGhpcy5zbHVnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0kKFRPS0VOX0tFWSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXJMb2dnZWRJbiA9ICEhcmVzO1xuICAgICAgICAgICAgaWYgKHRoaXMudXNlckxvZ2dlZEluKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS5nZXRVc2VySW5mbygpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyID0gZGF0YTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtJCgncHJvZHVjdCcpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gcmVzID8gSlNPTi5wYXJzZShyZXMpIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IGRhdGE/LnN1YnNjcmlwdGlvbklkO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5nZXRQb3N0VGFncygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgaGFzVmFsaWREZW1vTGlua3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHRoaXMuZGVtb0xpbmtzKSAmJiB0aGlzLmRlbW9MaW5rcy5zb21lKGxpbmsgPT4gbGluaz8udGl0bGUgPz8gbGluaz8udXJsKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9zdFRhZ3MoKSB7XG4gICAgICAgIHRoaXMudGFnU2VydmljZVxuICAgICAgICAgICAgLmdldFRhZ3NCeVR5cGUoJ3Bvc3RfY2F0ZWdvcmllcycsIHt9LCB0aGlzLnN1YnNjcmlwdGlvbklkID8/IHRoaXMubWFzdGVyU3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2dQb3N0VGFnID0gcmVzcG9uc2UudGFncy5maW5kKHRhZyA9PiB0YWcubmFtZSA9PT0gJ0Jsb2cgUG9zdHMnKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QmxvZ0l0ZW0oc2x1Zzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucmVzb3VyY2VTZXJ2aWNlLmdldFBvc3RCeVNsdWcoc2x1Zykuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIGxldCBibG9nQm9keTtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZT8uYm9keSkge1xuICAgICAgICAgICAgICAgIGJsb2dCb2R5ID0gSGVscGVyU2VydmljZS5zYW5pdGl6ZVF1aWxsQm9keShyZXNwb25zZS5ib2R5LCB0aGlzLnNhbml0aXplcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUocmVzcG9uc2U/LndoZW4pO1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XG4gICAgICAgICAgICB0aGlzLnBvc3RDb21tZW50cyA9IHJlc3BvbnNlLmVudGl0eV9jb21tZW50cztcbiAgICAgICAgICAgIHRoaXMucG9zdCA9IHsgLi4ucmVzcG9uc2UsIGJvZHk6IGJsb2dCb2R5LCB3aGVuOiBmb3JtYXR0ZWQgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Db21tZW50KCkge1xuICAgICAgICBjb25zdCBkYXRhID0geyAuLi50aGlzLmNvbW1lbnRGb3JtLnZhbHVlIH07XG4gICAgICAgIGRhdGEucmVsYXRlZF9lbnRpdHlfaWQgPSB0aGlzLnBvc3Q/LmlkO1xuICAgICAgICBkYXRhLnJlbGF0ZWRfZW50aXR5X3R5cGUgPSAnUG9zdCc7XG4gICAgICAgIGRhdGEudXNlcl9pZCA9IHRoaXMudXNlcj8uaWQ7XG4gICAgICAgIHRoaXMucmVzb3VyY2VTZXJ2aWNlLnBvc3RDb21tZW50cyhkYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRCbG9nSXRlbSh0aGlzLnNsdWcpO1xuICAgICAgICAgICAgdGhpcy5jb21tZW50Rm9ybS5yZXNldCgpO1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuc3VjY2Vzcyh0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnUmVzb3VyY2UuUG9zdHMuQ29tbWVudEFkZGVkJykpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0cmFja0J5Q29tbWVudChfaW5kZXg6IG51bWJlciwgaXRlbTogeyBpZDogbnVtYmVyIH0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7XG4gICAgfVxufVxuIiwiXG5cbjxzZWN0aW9uIGNsYXNzPVwicmVzb3VyY2UtYm9keS1zZWN0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicWwtc25vdyBib2R5LXF1aWxsXCJcbiAgICA+XG4gICAgPGRpdiBjbGFzcz1cInFsLWVkaXRvciBib2R5IHBvc3QtYm9keS10ZXh0XCJcbiAgICAgIFtpbm5lckhUTUxdPVwicG9zdD8uYm9keVwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJuY2Utb2ZmZXItc2VjdGlvblwiPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTUgbWItNCByZXNwb25zZS1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICBjbGFzcz1cInAtZmx1aWQgbWItNVwiXG4gICAgICAgICAgICBbZm9ybUdyb3VwXT1cImNvbW1lbnRGb3JtXCJcbiAgICAgICAgICAgIChuZ1N1Ym1pdCk9XCJvbkNvbW1lbnQoKVwiXG4gICAgICAgICAgICAqbmdJZj1cInVzZXJMb2dnZWRJbjsgZWxzZSB1c2VyTG9nZ2VkT3V0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBzaGFkb3ctc20gYm9yZGVyLTAgcC00XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjb21tZW50XCIgY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZyBtYi00IGNvbW1lbnQtbGFiZWxcIj7wn5KsIExlYXZlIGEgY29tbWVudDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICBwSW5wdXRUZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tbWVudFwiXG4gICAgICAgICAgICAgICAgICByb3dzPVwiNlwiXG4gICAgICAgICAgICAgICAgICBhdXRvUmVzaXplPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInAtaW5wdXR0ZXh0IHAtY29tcG9uZW50IHAtaW5wdXR0ZXh0YXJlYVwiXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIldoYXQncyBvbiB5b3VyIG1pbmQ/XCJcbiAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICA8c21hbGxcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb21tZW50Rm9ybS5nZXQoJ2NvbW1lbnQnKT8uaW52YWxpZCAmJiBjb21tZW50Rm9ybS5nZXQoJ2NvbW1lbnQnKT8udG91Y2hlZFwiXG4gICAgICAgICAgICAgICAgICA+UGxlYXNlIGVudGVyIGNvbW1lbnQ8L3NtYWxsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kIG10LTNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgIFtidXR0b25CdXN5XT1cImJ1dHRvbkJ1c3lcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2lnbi1idG4gc2lnbi1oZWFkZXItYnRuXCI+XG4gICAgICAgICAgICAgICAge3sgJ0J1dHRvbi5TdWJtaXQnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3VzZXJMb2dnZWRPdXQ+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtY2VudGVyIHB0LTMgcGItMyB1c2VyLW5vdC1sb2dnZWQtaW4gdGV4dC1tdXRlZCBzaGFkb3ctc20gbWItNVwiPlxuICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9sb2dpbiddXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZnctYm9sZFwiPkxvZyBpbjwvYT4gdG8gbGVhdmUgYSBjb21tZW50IVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNSBjb21tZW50LXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCIgKm5nRm9yPVwibGV0IGNvbW1lbnQgb2YgcG9zdENvbW1lbnRzOyB0cmFja0J5OiB0cmFja0J5Q29tbWVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGJvcmRlci0wIHNoYWRvdy1zbSBwLTMgbWItM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydFwiPlxuICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgW3NyY109XCJjb21tZW50Py5hdXRob3I/LmF2YXRhcj8uWzBdPy51cmwgfHwgJ2Fzc2V0cy9pbWcvaWNvbnMvbWFsZS5wbmcnXCJcbiAgICAgICAgICAgICAgICBhbHQ9XCJhdmF0YXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicm91bmRlZC1jaXJjbGUgbWUtM1wiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCI1MFwiXG4gICAgICAgICAgICAgICAgaGVpZ2h0PVwiNTBcIlxuICAgICAgICAgICAgICAgIChlcnJvcik9XCJoYW5kbGVJbWFnZUVycm9yKCRldmVudCwgJ2Fzc2V0cy9pbWcvaWNvbnMvbWFsZS5wbmcnKVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkIHRleHQtZGFya1wiPlxuICAgICAgICAgICAgICAgICAge3sgY29tbWVudC51c2VyPy5maXJzdF9uYW1lIHx8ICcnIH19IHt7IGNvbW1lbnQudXNlcj8ubGFzdF9uYW1lIHx8ICcnIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbXV0ZWQgc21hbGwgbWItMlwiPnt7IGNvbW1lbnQuY3JlYXRlZF9hdCB8IGRhdGU6ICdkZCBNTU0geXl5eSwgaDptbSBhJyB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWJvZHlcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGNvbW1lbnQuY29tbWVudCB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG5cbiAgPC9zZWN0aW9uPlxuICA8L2Rpdj5cbiAgPGhyIGNsYXNzPVwibmNlLWRpdmlkZXJcIiAvPlxuPC9zZWN0aW9uPlxuXG48c2VjdGlvbiBjbGFzcz1cIm5jZS1ib29rLXNlY3Rpb25cIiAqbmdJZj1cImhhc1ZhbGlkRGVtb0xpbmtzXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cblxuICAgIDxwIGNsYXNzPVwibmNlLWNvbnRhY3RcIj5cbiAgICAgIEFueSBxdWVzdGlvbnMsIGdldCBpbiB0b3VjaCA8YSBocmVmPVwibWFpbHRvOnt7IGNvbXBhbnlfZW1haWwgfX1cIj5oZXJlPC9hPixcbiAgICAgIDxhIFtocmVmXT1cImxpbmtlZEluVXJsXCIgdGFyZ2V0PVwiX2JsYW5rXCI+Y29ubmVjdCBvbiBMaW5rZWRJbjwvYT4sIG9yIGJvb2sgYSBtZWV0aW5nIGJlbG93OlxuICAgIDwvcD5cbiAgPC9kaXY+XG4gIDxwdy1ib29rLWEtZGVtbyBbaXNCbG9nXT1cInRydWVcIj48L3B3LWJvb2stYS1kZW1vPlxuICA8aHIgY2xhc3M9XCJuY2UtZGl2aWRlclwiIC8+XG48L3NlY3Rpb24+XG5cblxuPHB3LXJlc291cmNlLWNhcmRzICpuZ0lmPVwiYmxvZ1Bvc3RUYWc/LnRhZ19jYXRlZ29yeV9pZFwiIFt0YWddPVwiYmxvZ1Bvc3RUYWdcIiBbY2F0ZWdvcnlJZF09XCJibG9nUG9zdFRhZz8udGFnX2NhdGVnb3J5X2lkXCIgW3Jlc291cmNlVGl0bGVdPVwiYmxvZ1Bvc3RUYWc/LnRpdGxlXCIgW2lzSGVhZGVyVmlzaWJsZV09XCJ0cnVlXCIgcmVzb3VyY2VMaW5rPVwiL3Jlc291cmNlcy9ibG9nc1wiIFtpc1JlbGF0ZWRdPVwidHJ1ZVwiIFtyZXNvdXJjZVRpdGxlXT1cIidPdGhlciByZXNvdXJjZXMgeW91IG1heSBiZSBpbnRlcmVzdGVkIGluOidcIj48L3B3LXJlc291cmNlLWNhcmRzPlxuIl19
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1yZXNvdXJjZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1tb2R1bGUvc3JjL2xpYi9wdWJsaWMvY29tcG9uZW50cy9yZXNvdXJjZS1wb3N0L3JlbGF0ZWQtcmVzb3VyY2VzL3JlbGF0ZWQtcmVzb3VyY2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcmVzb3VyY2UtbW9kdWxlL3NyYy9saWIvcHVibGljL2NvbXBvbmVudHMvcmVzb3VyY2UtcG9zdC9yZWxhdGVkLXJlc291cmNlcy9yZWxhdGVkLXJlc291cmNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBT3hFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxnQkFBZ0I7SUF1QzNELFlBQ3FCLGVBQWdDLEVBQ2pELFFBQWtCLEVBQ0QsU0FBdUIsRUFDdkIsVUFBc0IsRUFDdEIsTUFBMEI7UUFFM0MsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBTkMsb0JB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LENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWMsRUFBRSxJQUFvQjtRQUMvQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0FoSFEseUJBQXlCO21HQUF6Qix5QkFBeUIsbUZDaEJ0Qyw2NEhBb0dBOzs0RkRwRmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNJLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbVRvYXN0U2VydmljZSwgVGFnU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgVE9LRU5fS0VZLCBVc2VyIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5cbmltcG9ydCB7IFJlc291cmNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3Jlc291cmNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzb3VyY2VCbG9nIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL21vZGVscy9yZXNvdXJjZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctcmVsYXRlZC1yZXNvdXJjZXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWxhdGVkLXJlc291cmNlcy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcmVsYXRlZC1yZXNvdXJjZXMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZWxhdGVkUmVzb3VyY2VzQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcmVzb3VyY2VDYXJkcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdCTE9HOiBIZXJl4oCZcyB3aHkgeW91IHNob3VsZCBRQSB5b3VyIGRpc3RyaWJ1dG9yIGludm9pY2VzJyxcbiAgICAgICAgICAgIGltYWdlOiAnL2Fzc2V0cy9pbWcvcmVzb3VyY2UvcmVzb3VyY2UtcWEucG5nJyxcbiAgICAgICAgICAgIGFsdDogJ1FBIGRpc3RyaWJ1dG9yIGludm9pY2VzJyxcbiAgICAgICAgICAgIHVybDogJy9yZXNvdXJjZXMvdmlldy9oZXJlLXMtd2h5LXlvdS1zaG91bGQtYmUtc2Vla2luZy1pbmRlcGVuZGVudC1xYS1vZi1hbGwtZGlzdHJpYnV0b3ItaW52J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogJ0JMT0c6IDQgaW5zdGFudCBoYWNrcyB0byB1cGxpZnQgeW91ciBNU1DigJlzIG1vbnRobHkgYmlsbGluZycsXG4gICAgICAgICAgICBpbWFnZTogJy9hc3NldHMvaW1nL3Jlc291cmNlL3Jlc291cmNlLWhhY2tzLnBuZycsXG4gICAgICAgICAgICBhbHQ6ICdNb250aGx5IGJpbGxpbmcgaGFja3MnLFxuICAgICAgICAgICAgdXJsOiAnL3Jlc291cmNlcy92aWV3LzQtaW5zdGFudC1oYWNrcy10by11cGxpZnQteW91ci1tc3Atcy1tb250aGx5LWJpbGxpbmcnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpdGxlOiAnQkxPRzogVGhlIHRyaXZpYWwgZGV0YWlsIHRoYXQgd2lsbCBlaXRoZXIgZnV0dXJlLXByb29mIG9yIHNhYm90YWdlIHlvdXIgUFNBLicsXG4gICAgICAgICAgICBpbWFnZTogJy9hc3NldHMvaW1nL3Jlc291cmNlL3Jlc291cmNlLXBzYS5wbmcnLFxuICAgICAgICAgICAgYWx0OiAnUFNBIGZ1dHVyZS1wcm9vZicsXG4gICAgICAgICAgICB1cmw6ICcvcmVzb3VyY2VzL3ZpZXcvdGhlLXRyaXZpYWwtZGV0YWlsLXRoYXQtd2lsbC1laXRoZXItZnV0dXJlLXByb29mLW9yLXNhYm90YWdlLXlvdXItcHNhJ1xuICAgICAgICB9XG4gICAgXTtcblxuICAgIHBvc3Q7XG4gICAgbWFzdGVyU3Vic2NyaXB0aW9uSWQ7XG4gICAgc2x1ZztcblxuICAgIHBvc3RDb21tZW50cyA9IFtdO1xuICAgIGNvbW1lbnRGb3JtO1xuXG4gICAgdXNlckxvZ2dlZEluOiBib29sZWFuO1xuXG4gICAgZGVtb0xpbmtzID0gdGhpcy5hcHBDb25maWc/LnBhZ2VzX2NvbmZpZz8uYm9va19kZW1vPy5pdGVtcztcblxuICAgIHVzZXI6IFVzZXI7XG4gICAgYmxvZ1Bvc3RUYWc7XG4gICAgc3Vic2NyaXB0aW9uSWQ7XG4gICAgbGlua2VkSW5VcmwgPSB0aGlzLmFwcENvbmZpZz8uc29jaWFsPy5saW5rZWRpbl91cmw7XG4gICAgY29tcGFueV9lbWFpbCA9IHRoaXMuYXBwQ29uZmlnLmNvbXBhbnkuZW1haWw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZVNlcnZpY2U6IFJlc291cmNlU2VydmljZSxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRhZ1NlcnZpY2U6IFRhZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RyOiBDdXN0b21Ub2FzdFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmNvbW1lbnRGb3JtID0gUmVzb3VyY2VCbG9nLmdldFJlc291cmNlUG9zdHNGb3JtKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWFzdGVyU3Vic2NyaXB0aW9uSWQgPSB0aGlzLmFwcENvbmZpZy5tYXN0ZXJfc3Vic2NyaXB0aW9uLnN1YnNjcmlwdGlvbl9pZDtcbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnNsdWcgPSBwYXJhbXNbJ3NsdWcnXSA/PyAnJztcbiAgICAgICAgICAgIHRoaXMuZ2V0QmxvZ0l0ZW0odGhpcy5zbHVnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0kKFRPS0VOX0tFWSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXJMb2dnZWRJbiA9ICEhcmVzO1xuICAgICAgICAgICAgaWYgKHRoaXMudXNlckxvZ2dlZEluKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS5nZXRVc2VySW5mbygpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyID0gZGF0YTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtJCgncHJvZHVjdCcpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gcmVzID8gSlNPTi5wYXJzZShyZXMpIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IGRhdGE/LnN1YnNjcmlwdGlvbklkO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5nZXRQb3N0VGFncygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgaGFzVmFsaWREZW1vTGlua3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHRoaXMuZGVtb0xpbmtzKSAmJiB0aGlzLmRlbW9MaW5rcy5zb21lKGxpbmsgPT4gbGluaz8udGl0bGUgPz8gbGluaz8udXJsKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9zdFRhZ3MoKSB7XG4gICAgICAgIHRoaXMudGFnU2VydmljZVxuICAgICAgICAgICAgLmdldFRhZ3NCeVR5cGUoJ3Bvc3RfY2F0ZWdvcmllcycsIHt9LCB0aGlzLnN1YnNjcmlwdGlvbklkID8/IHRoaXMubWFzdGVyU3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2dQb3N0VGFnID0gcmVzcG9uc2UudGFncy5maW5kKHRhZyA9PiB0YWcubmFtZSA9PT0gJ0Jsb2cgUG9zdHMnKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QmxvZ0l0ZW0oc2x1Zzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucmVzb3VyY2VTZXJ2aWNlLmdldFBvc3RCeVNsdWcoc2x1Zykuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIGxldCBibG9nQm9keTtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZT8uYm9keSkge1xuICAgICAgICAgICAgICAgIGJsb2dCb2R5ID0gSGVscGVyU2VydmljZS5zYW5pdGl6ZVF1aWxsQm9keShyZXNwb25zZS5ib2R5LCB0aGlzLnNhbml0aXplcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUocmVzcG9uc2U/LndoZW4pO1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XG4gICAgICAgICAgICB0aGlzLnBvc3RDb21tZW50cyA9IHJlc3BvbnNlLmVudGl0eV9jb21tZW50cztcbiAgICAgICAgICAgIHRoaXMucG9zdCA9IHsgLi4ucmVzcG9uc2UsIGJvZHk6IGJsb2dCb2R5LCB3aGVuOiBmb3JtYXR0ZWQgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Db21tZW50KCkge1xuICAgICAgICBjb25zdCBkYXRhID0geyAuLi50aGlzLmNvbW1lbnRGb3JtLnZhbHVlIH07XG4gICAgICAgIGRhdGEucmVsYXRlZF9lbnRpdHlfaWQgPSB0aGlzLnBvc3Q/LmlkO1xuICAgICAgICBkYXRhLnJlbGF0ZWRfZW50aXR5X3R5cGUgPSAnUG9zdCc7XG4gICAgICAgIGRhdGEudXNlcl9pZCA9IHRoaXMudXNlcj8uaWQ7XG4gICAgICAgIHRoaXMucmVzb3VyY2VTZXJ2aWNlLnBvc3RDb21tZW50cyhkYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRCbG9nSXRlbSh0aGlzLnNsdWcpO1xuICAgICAgICAgICAgdGhpcy5jb21tZW50Rm9ybS5yZXNldCgpO1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuc3VjY2Vzcyh0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnUmVzb3VyY2UuUG9zdHMuQ29tbWVudEFkZGVkJykpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0cmFja0J5Q29tbWVudChfaW5kZXg6IG51bWJlciwgaXRlbTogeyBpZDogbnVtYmVyIH0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7XG4gICAgfVxufVxuIiwiXG5cbjxzZWN0aW9uIGNsYXNzPVwicmVzb3VyY2UtYm9keS1zZWN0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicWwtc25vdyBib2R5LXF1aWxsXCJcbiAgICA+XG4gICAgPGRpdiBjbGFzcz1cInFsLWVkaXRvciBib2R5IHBvc3QtYm9keS10ZXh0XCJcbiAgICAgIFtpbm5lckhUTUxdPVwicG9zdD8uYm9keVwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJuY2Utb2ZmZXItc2VjdGlvblwiPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTUgbWItNCByZXNwb25zZS1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICBjbGFzcz1cInAtZmx1aWQgbWItNVwiXG4gICAgICAgICAgICBbZm9ybUdyb3VwXT1cImNvbW1lbnRGb3JtXCJcbiAgICAgICAgICAgIChuZ1N1Ym1pdCk9XCJvbkNvbW1lbnQoKVwiXG4gICAgICAgICAgICAqbmdJZj1cInVzZXJMb2dnZWRJbjsgZWxzZSB1c2VyTG9nZ2VkT3V0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBzaGFkb3ctc20gbm8tYm9yZGVyIHAtNFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY29tbWVudFwiIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGcgbWItNCBjb21tZW50LWxhYmVsXCI+8J+SrCBMZWF2ZSBhIGNvbW1lbnQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgcElucHV0VGV4dGFyZWFcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbW1lbnRcIlxuICAgICAgICAgICAgICAgICAgcm93cz1cIjZcIlxuICAgICAgICAgICAgICAgICAgYXV0b1Jlc2l6ZT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWlucHV0dGV4dCBwLWNvbXBvbmVudCBwLWlucHV0dGV4dGFyZWFcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJXaGF0J3Mgb24geW91ciBtaW5kP1wiXG4gICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29tbWVudEZvcm0uZ2V0KCdjb21tZW50Jyk/LmludmFsaWQgJiYgY29tbWVudEZvcm0uZ2V0KCdjb21tZW50Jyk/LnRvdWNoZWRcIlxuICAgICAgICAgICAgICAgICAgPlBsZWFzZSBlbnRlciBjb21tZW50PC9zbWFsbFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZCBtdC0zXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICBbYnV0dG9uQnVzeV09XCJidXR0b25CdXN5XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNpZ24tYnRuIHNpZ24taGVhZGVyLWJ0blwiPlxuICAgICAgICAgICAgICAgIHt7ICdCdXR0b24uU3VibWl0JyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN1c2VyTG9nZ2VkT3V0PlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC0zIHBiLTMgdXNlci1ub3QtbG9nZ2VkLWluIHRleHQtbXV0ZWQgc2hhZG93LXNtIG1iLTVcIj5cbiAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvbG9naW4nXVwiIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZ3LWJvbGRcIj5Mb2cgaW48L2E+IHRvIGxlYXZlIGEgY29tbWVudCFcbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTUgY29tbWVudC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiICpuZ0Zvcj1cImxldCBjb21tZW50IG9mIHBvc3RDb21tZW50czsgdHJhY2tCeTogdHJhY2tCeUNvbW1lbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBuby1ib3JkZXIgc2hhZG93LXNtIHAtMyBtYi0zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBbc3JjXT1cImNvbW1lbnQ/LmF1dGhvcj8uYXZhdGFyPy5bMF0/LnVybCB8fCAnYXNzZXRzL2ltZy9pY29ucy9tYWxlLnBuZydcIlxuICAgICAgICAgICAgICAgIGFsdD1cImF2YXRhclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLWNpcmNsZSBtZS0zXCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjUwXCJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCI1MFwiXG4gICAgICAgICAgICAgICAgKGVycm9yKT1cImhhbmRsZUltYWdlRXJyb3IoJGV2ZW50LCAnYXNzZXRzL2ltZy9pY29ucy9tYWxlLnBuZycpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LWJvbGQgdGV4dC1kYXJrXCI+XG4gICAgICAgICAgICAgICAgICB7eyBjb21tZW50LnVzZXI/LmZpcnN0X25hbWUgfHwgJycgfX0ge3sgY29tbWVudC51c2VyPy5sYXN0X25hbWUgfHwgJycgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tdXRlZCBzbWFsbCBtYi0yXCI+e3sgY29tbWVudC5jcmVhdGVkX2F0IHwgZGF0ZTogJ2RkIE1NTSB5eXl5LCBoOm1tIGEnIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYm9keVwiPlxuICAgICAgICAgICAgICAgICAge3sgY29tbWVudC5jb21tZW50IH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cblxuICA8L3NlY3Rpb24+XG4gIDwvZGl2PlxuICA8aHIgY2xhc3M9XCJuY2UtZGl2aWRlclwiIC8+XG48L3NlY3Rpb24+XG5cbjxzZWN0aW9uIGNsYXNzPVwibmNlLWJvb2stc2VjdGlvblwiICpuZ0lmPVwiaGFzVmFsaWREZW1vTGlua3NcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuXG4gICAgPHAgY2xhc3M9XCJuY2UtY29udGFjdFwiPlxuICAgICAgQW55IHF1ZXN0aW9ucywgZ2V0IGluIHRvdWNoIDxhIGhyZWY9XCJtYWlsdG86e3sgY29tcGFueV9lbWFpbCB9fVwiPmhlcmU8L2E+LFxuICAgICAgPGEgW2hyZWZdPVwibGlua2VkSW5VcmxcIiB0YXJnZXQ9XCJfYmxhbmtcIj5jb25uZWN0IG9uIExpbmtlZEluPC9hPiwgb3IgYm9vayBhIG1lZXRpbmcgYmVsb3c6XG4gICAgPC9wPlxuICA8L2Rpdj5cbiAgPHB3LWJvb2stYS1kZW1vIFtpc0Jsb2ddPVwidHJ1ZVwiPjwvcHctYm9vay1hLWRlbW8+XG4gIDxociBjbGFzcz1cIm5jZS1kaXZpZGVyXCIgLz5cbjwvc2VjdGlvbj5cblxuXG48cHctcmVzb3VyY2UtY2FyZHMgKm5nSWY9XCJibG9nUG9zdFRhZz8udGFnX2NhdGVnb3J5X2lkXCIgW3RhZ109XCJibG9nUG9zdFRhZ1wiIFtjYXRlZ29yeUlkXT1cImJsb2dQb3N0VGFnPy50YWdfY2F0ZWdvcnlfaWRcIiBbcmVzb3VyY2VUaXRsZV09XCJibG9nUG9zdFRhZz8udGl0bGVcIiBbaXNIZWFkZXJWaXNpYmxlXT1cInRydWVcIiByZXNvdXJjZUxpbms9XCIvcmVzb3VyY2VzL2Jsb2dzXCIgW2lzUmVsYXRlZF09XCJ0cnVlXCIgW3Jlc291cmNlVGl0bGVdPVwiJ090aGVyIHJlc291cmNlcyB5b3UgbWF5IGJlIGludGVyZXN0ZWQgaW46J1wiPjwvcHctcmVzb3VyY2UtY2FyZHM+XG4iXX0=
@@ -85,11 +85,11 @@ export class ResourceTopBannerEditComponent extends AppBaseComponent {
85
85
  });
86
86
  }
87
87
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceTopBannerEditComponent, deps: [{ token: i1.FormBuilder }, { token: i2.NgbModal }, { token: i3.TagService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceTopBannerEditComponent, selector: "pw-resource-top-banner-edit", inputs: { blogPostTag: "blogPostTag" }, outputs: { getUpdatedTag: "getUpdatedTag" }, viewQueries: [{ propertyName: "editModal", first: true, predicate: ["editModal"], descendants: true }, { propertyName: "imageCropContent", first: true, predicate: ["imageCropContent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"edit-card\">\n <i class=\"fa fa-edit cursor-pointer text-black in-page-edit-icon mb-1 ms-3\"\n (click)=\"openEditModal()\" title=\"Edit Blog Tag\"></i>\n</div>\n\n <ng-template #editModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Blog Post Tag</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n\n <div class=\"modal-body\">\n <form [formGroup]=\"form\">\n <div class=\"row\">\n\n <div class=\"col-12\">\n <pw-input-container label=\"Title\" name=\"title\">\n <input type=\"text\" class=\"form-control\" formControlName=\"title\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12\">\n <pw-input-container label=\"Description\" name=\"description\">\n <textarea class=\"form-control\" rows=\"4\" formControlName=\"description\"></textarea>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 my-4\">\n <label for=\"tagImage\">Blog Tag Image</label>\n <div class=\"text-center d-flex flex-column align-items-center col-6\">\n <img [src]=\"image || defaultImage\"\n (click)=\"openImageModal(imageCropContent)\"\n class=\"image w-100\"\n alt=\"Blog Image\"\n (error)=\"handleImageError($event)\"\n />\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block mt-2\"\n (click)=\"openModal(imageCropContent)\">\n {{ image ? 'Update' : 'Add' }} Image\n </a>\n <i *ngIf=\"image\"\n class=\"fa fa-trash delete-icon text-danger ms-2\"\n title=\"Remove Image\"\n (click)=\"removeImage()\" style=\"cursor: pointer;\"></i>\n </div>\n </div>\n </div>\n\n </div>\n </form>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" [buttonBusy]=\"buttonBusy\" (click)=\"save()\">Save</button>\n </div>\n </ng-template>\n\n <ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Image</h5>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file. Avoid artwork, celebrities, or copyrighted images.</small>\n <pw-image-cropper\n #cropper\n aspectRatio=\"dynamic\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"onClose()\">\n </pw-image-cropper>\n </div>\n </ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i5.ProfileImageCropperComponent, selector: "pw-image-cropper", inputs: ["aspectRatio", "dynamicData"], outputs: ["imageSelectionEvent", "closeEvent", "fileChangeEvent"] }, { kind: "component", type: i5.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText", "showTriangle", "afterLabel", "showAfterLabel", "showTriangleText", "isLeftTooltip"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.ButtonBusyDirective, selector: "[buttonBusy]", inputs: ["buttonBusy", "busyText"] }, { kind: "directive", type: i6.LazyImgDirective, selector: "img" }] }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceTopBannerEditComponent, selector: "pw-resource-top-banner-edit", inputs: { blogPostTag: "blogPostTag" }, outputs: { getUpdatedTag: "getUpdatedTag" }, viewQueries: [{ propertyName: "editModal", first: true, predicate: ["editModal"], descendants: true }, { propertyName: "imageCropContent", first: true, predicate: ["imageCropContent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"edit-card\">\n <i class=\"fa fa-edit cursor-pointer text-black in-page-edit-icon mb-1 ms-3\"\n (click)=\"openEditModal()\" title=\"Edit Blog Tag\"></i>\n</div>\n\n <ng-template #editModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Blog Post Tag</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n\n <div class=\"modal-body\">\n <form [formGroup]=\"form\">\n <div class=\"row\">\n\n <div class=\"col-12\">\n <pw-input-container label=\"Title\" name=\"title\">\n <input type=\"text\" class=\"form-control\" formControlName=\"title\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12\">\n <pw-input-container label=\"Description\" name=\"description\">\n <textarea class=\"form-control\" rows=\"4\" formControlName=\"description\"></textarea>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 my-4\">\n <label for=\"tagImage\">Blog Tag Image</label>\n <div class=\"text-center d-flex flex-column align-items-center col-6\">\n <img [src]=\"image || defaultImage\"\n (click)=\"openImageModal(imageCropContent)\"\n class=\"image w-100\"\n alt=\"Blog Image\"\n (error)=\"handleImageError($event)\"\n />\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block mt-2\"\n (click)=\"openModal(imageCropContent)\">\n {{ image ? 'Update' : 'Add' }} Image\n </a>\n <i *ngIf=\"image\"\n class=\"fa fa-trash delete-icon text-danger ms-2 cursor-pointer\"\n title=\"Remove Image\"\n (click)=\"removeImage()\"></i>\n </div>\n </div>\n </div>\n\n </div>\n </form>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" [buttonBusy]=\"buttonBusy\" (click)=\"save()\">Save</button>\n </div>\n </ng-template>\n\n <ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Image</h5>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file. Avoid artwork, celebrities, or copyrighted images.</small>\n <pw-image-cropper\n #cropper\n aspectRatio=\"dynamic\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"onClose()\">\n </pw-image-cropper>\n </div>\n </ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i5.ProfileImageCropperComponent, selector: "pw-image-cropper", inputs: ["aspectRatio", "dynamicData"], outputs: ["imageSelectionEvent", "closeEvent", "fileChangeEvent"] }, { kind: "component", type: i5.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText", "showTriangle", "afterLabel", "showAfterLabel", "showTriangleText", "isLeftTooltip"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.ButtonBusyDirective, selector: "[buttonBusy]", inputs: ["buttonBusy", "busyText"] }, { kind: "directive", type: i6.LazyImgDirective, selector: "img" }] }); }
89
89
  }
90
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceTopBannerEditComponent, decorators: [{
91
91
  type: Component,
92
- args: [{ selector: 'pw-resource-top-banner-edit', template: "<div class=\"edit-card\">\n <i class=\"fa fa-edit cursor-pointer text-black in-page-edit-icon mb-1 ms-3\"\n (click)=\"openEditModal()\" title=\"Edit Blog Tag\"></i>\n</div>\n\n <ng-template #editModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Blog Post Tag</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n\n <div class=\"modal-body\">\n <form [formGroup]=\"form\">\n <div class=\"row\">\n\n <div class=\"col-12\">\n <pw-input-container label=\"Title\" name=\"title\">\n <input type=\"text\" class=\"form-control\" formControlName=\"title\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12\">\n <pw-input-container label=\"Description\" name=\"description\">\n <textarea class=\"form-control\" rows=\"4\" formControlName=\"description\"></textarea>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 my-4\">\n <label for=\"tagImage\">Blog Tag Image</label>\n <div class=\"text-center d-flex flex-column align-items-center col-6\">\n <img [src]=\"image || defaultImage\"\n (click)=\"openImageModal(imageCropContent)\"\n class=\"image w-100\"\n alt=\"Blog Image\"\n (error)=\"handleImageError($event)\"\n />\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block mt-2\"\n (click)=\"openModal(imageCropContent)\">\n {{ image ? 'Update' : 'Add' }} Image\n </a>\n <i *ngIf=\"image\"\n class=\"fa fa-trash delete-icon text-danger ms-2\"\n title=\"Remove Image\"\n (click)=\"removeImage()\" style=\"cursor: pointer;\"></i>\n </div>\n </div>\n </div>\n\n </div>\n </form>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" [buttonBusy]=\"buttonBusy\" (click)=\"save()\">Save</button>\n </div>\n </ng-template>\n\n <ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Image</h5>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file. Avoid artwork, celebrities, or copyrighted images.</small>\n <pw-image-cropper\n #cropper\n aspectRatio=\"dynamic\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"onClose()\">\n </pw-image-cropper>\n </div>\n </ng-template>\n" }]
92
+ args: [{ selector: 'pw-resource-top-banner-edit', template: "<div class=\"edit-card\">\n <i class=\"fa fa-edit cursor-pointer text-black in-page-edit-icon mb-1 ms-3\"\n (click)=\"openEditModal()\" title=\"Edit Blog Tag\"></i>\n</div>\n\n <ng-template #editModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Blog Post Tag</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n\n <div class=\"modal-body\">\n <form [formGroup]=\"form\">\n <div class=\"row\">\n\n <div class=\"col-12\">\n <pw-input-container label=\"Title\" name=\"title\">\n <input type=\"text\" class=\"form-control\" formControlName=\"title\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12\">\n <pw-input-container label=\"Description\" name=\"description\">\n <textarea class=\"form-control\" rows=\"4\" formControlName=\"description\"></textarea>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 my-4\">\n <label for=\"tagImage\">Blog Tag Image</label>\n <div class=\"text-center d-flex flex-column align-items-center col-6\">\n <img [src]=\"image || defaultImage\"\n (click)=\"openImageModal(imageCropContent)\"\n class=\"image w-100\"\n alt=\"Blog Image\"\n (error)=\"handleImageError($event)\"\n />\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block mt-2\"\n (click)=\"openModal(imageCropContent)\">\n {{ image ? 'Update' : 'Add' }} Image\n </a>\n <i *ngIf=\"image\"\n class=\"fa fa-trash delete-icon text-danger ms-2 cursor-pointer\"\n title=\"Remove Image\"\n (click)=\"removeImage()\"></i>\n </div>\n </div>\n </div>\n\n </div>\n </form>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" [buttonBusy]=\"buttonBusy\" (click)=\"save()\">Save</button>\n </div>\n </ng-template>\n\n <ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Image</h5>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file. Avoid artwork, celebrities, or copyrighted images.</small>\n <pw-image-cropper\n #cropper\n aspectRatio=\"dynamic\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"onClose()\">\n </pw-image-cropper>\n </div>\n </ng-template>\n" }]
93
93
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.NgbModal }, { type: i3.TagService }, { type: i0.Injector }], propDecorators: { blogPostTag: [{
94
94
  type: Input
95
95
  }], getUpdatedTag: [{
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
101
101
  type: ViewChild,
102
102
  args: ['imageCropContent']
103
103
  }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtdG9wLWJhbm5lci1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcmVzb3VyY2UtbW9kdWxlL3NyYy9saWIvcHVibGljL2NvbXBvbmVudHMvcmVzb3VyY2UtdG9wLWJhbm5lci1lZGl0L3Jlc291cmNlLXRvcC1iYW5uZXItZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Jlc291cmNlLXRvcC1iYW5uZXItZWRpdC9yZXNvdXJjZS10b3AtYmFubmVyLWVkaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQU10RCxNQUFNLE9BQU8sOEJBQStCLFNBQVEsZ0JBQWdCO0lBaUJoRSxZQUNZLEVBQWUsRUFDZixZQUFzQixFQUN0QixVQUFzQixFQUM5QixRQUFrQjtRQUVsQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFMUixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2Ys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QTlDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFnU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgVE9LRU5fS0VZLCBVc2VyIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5pbXBvcnQgeyBDdXN0b21VcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9zaGFyZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXJlc291cmNlLXRvcC1iYW5uZXItZWRpdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Jlc291cmNlLXRvcC1iYW5uZXItZWRpdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VUb3BCYW5uZXJFZGl0Q29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgYmxvZ1Bvc3RUYWc7XG4gICAgQE91dHB1dCgpIGdldFVwZGF0ZWRUYWcgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQFZpZXdDaGlsZCgnZWRpdE1vZGFsJykgZWRpdE1vZGFsOiBUZW1wbGF0ZVJlZjxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnaW1hZ2VDcm9wQ29udGVudCcpIGltYWdlQ3JvcENvbnRlbnQ6IFRlbXBsYXRlUmVmPEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50PjtcblxuICAgIGZvcm06IEZvcm1Hcm91cDtcbiAgICBpbWFnZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgZGVmYXVsdEltYWdlID0gJ2Fzc2V0cy9pbWcvcmVzb3VyY2UvYmxvZy5wbmcnO1xuICAgIGZpbGU6IEZpbGU7XG4gICAgdXNlckxvZ2dlZEluOiBib29sZWFuO1xuICAgIHN1YnNjcmlwdGlvbklkOiBzdHJpbmc7XG4gICAgaW1hZ2VNb2RhbFJlZjtcbiAgICBidXR0b25CdXN5OiBib29sZWFuO1xuXG4gICAgdXNlcjogVXNlcjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxuICAgICAgICBwcml2YXRlIHRhZ1NlcnZpY2U6IFRhZ1NlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0kKFRPS0VOX0tFWSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXJMb2dnZWRJbiA9ICEhcmVzO1xuICAgICAgICAgICAgaWYgKHRoaXMudXNlckxvZ2dlZEluKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSQoJ3Byb2R1Y3QnKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlcyA/IEpTT04ucGFyc2UocmVzKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBkYXRhPy5zdWJzY3JpcHRpb25JZDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldFVzZXJJbmZvKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXIgPSBkYXRhO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICB0aXRsZTogW3RoaXMuYmxvZ1Bvc3RUYWc/LnRpdGxlIHx8ICcnXSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbdGhpcy5ibG9nUG9zdFRhZz8uZGVzY3JpcHRpb24gfHwgJyddXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaW1hZ2UgPSB0aGlzLmJsb2dQb3N0VGFnPy5pbWFnZT8udXJsIHx8IG51bGw7XG4gICAgfVxuXG4gICAgb3BlbkVkaXRNb2RhbCgpIHtcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmVkaXRNb2RhbCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ2xnJyB9KTtcbiAgICB9XG5cbiAgICBvcGVuSW1hZ2VNb2RhbChtb2RhbFJlZikge1xuICAgICAgICB0aGlzLmltYWdlTW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKG1vZGFsUmVmLCB7IGNlbnRlcmVkOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIG9uSW1hZ2VTZWxlY3RlZChiYXNlNjQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmltYWdlID0gYmFzZTY0O1xuICAgICAgICB0aGlzLmZpbGUgPSBIZWxwZXJTZXJ2aWNlLmNvbnZlcnRCYXNlNjRUb0ZpbGUoYmFzZTY0KTtcbiAgICAgICAgdGhpcy5pbWFnZU1vZGFsUmVmPy5jbG9zZSgpO1xuICAgIH1cblxuICAgIG9uQ2xvc2UoKSB7XG4gICAgICAgIHRoaXMuaW1hZ2VNb2RhbFJlZj8uY2xvc2UoKTtcbiAgICB9XG5cbiAgICByZW1vdmVJbWFnZSgpIHtcbiAgICAgICAgdGhpcy5pbWFnZSA9IG51bGw7XG4gICAgfVxuXG4gICAgaGFuZGxlSW1hZ2VFcnJvcihldmVudDogRXZlbnQpIHtcbiAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MSW1hZ2VFbGVtZW50KS5zcmMgPSB0aGlzLmRlZmF1bHRJbWFnZTtcbiAgICB9XG5cbiAgICBzYXZlKCkge1xuICAgICAgICB0aGlzLmJ1dHRvbkJ1c3kgPSB0cnVlO1xuICAgICAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgICAgICAgdGl0bGU6IHRoaXMuZm9ybS52YWx1ZS50aXRsZSB8fCB0aGlzLmJsb2dQb3N0VGFnPy50aXRsZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmZvcm0udmFsdWUuZGVzY3JpcHRpb24gfHwgdGhpcy5ibG9nUG9zdFRhZz8uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICB0YWdfY2F0ZWdvcnlfaWQ6IHRoaXMuYmxvZ1Bvc3RUYWc/LnRhZ19jYXRlZ29yeV9pZCxcbiAgICAgICAgICAgIHRhZ190eXBlOiB0aGlzLmJsb2dQb3N0VGFnPy50YWdfdHlwZSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5zdWJzY3JpcHRpb25JZCxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuYmxvZ1Bvc3RUYWc/Lm5hbWVcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5maWxlKSB7XG4gICAgICAgICAgICBwYXlsb2FkWydpbWFnZSddID0gdGhpcy5maWxlO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmltYWdlKSB7XG4gICAgICAgICAgICBwYXlsb2FkWydyZW1vdmVfaW1hZ2UnXSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhZ1NlcnZpY2UudXBkYXRlVGFnQnlJZCh0aGlzLmJsb2dQb3N0VGFnLmlkLCBwYXlsb2FkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5idXR0b25CdXN5ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoJ1RhZyBVcGRhdGVkJyk7XG4gICAgICAgICAgICB0aGlzLmdldFVwZGF0ZWRUYWcuZW1pdCgpO1xuICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZGlzbWlzc0FsbCgpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZWRpdC1jYXJkXCI+XG4gICAgPGkgY2xhc3M9XCJmYSBmYS1lZGl0IGN1cnNvci1wb2ludGVyIHRleHQtYmxhY2sgaW4tcGFnZS1lZGl0LWljb24gbWItMSBtcy0zXCJcbiAgICAgICAoY2xpY2spPVwib3BlbkVkaXRNb2RhbCgpXCIgdGl0bGU9XCJFZGl0IEJsb2cgVGFnXCI+PC9pPlxuPC9kaXY+XG5cbiAgPG5nLXRlbXBsYXRlICNlZGl0TW9kYWwgbGV0LW1vZGFsPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+RWRpdCBCbG9nIFBvc3QgVGFnPC9oNT5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVGl0bGVcIiBuYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIC8+XG4gICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJEZXNjcmlwdGlvblwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiNFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBteS00XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidGFnSW1hZ2VcIj5CbG9nIFRhZyBJbWFnZTwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBjb2wtNlwiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2UgfHwgZGVmYXVsdEltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlTW9kYWwoaW1hZ2VDcm9wQ29udGVudClcIlxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW1hZ2Ugdy0xMDBcIlxuICAgICAgICAgICAgICAgICAgIGFsdD1cIkJsb2cgSW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJoYW5kbGVJbWFnZUVycm9yKCRldmVudClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC0yXCI+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkLWlubGluZS1ibG9jayBtdC0yXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTW9kYWwoaW1hZ2VDcm9wQ29udGVudClcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGltYWdlID8gJ1VwZGF0ZScgOiAnQWRkJyB9fSBJbWFnZVxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImltYWdlXCJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyIG1zLTJcIlxuICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiUmVtb3ZlIEltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSW1hZ2UoKVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPjwvaT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiBbYnV0dG9uQnVzeV09XCJidXR0b25CdXN5XCIgKGNsaWNrKT1cInNhdmUoKVwiPlNhdmU8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI2ltYWdlQ3JvcENvbnRlbnQgbGV0LW1vZGFsPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlVwbG9hZCBJbWFnZTwvaDU+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlIGZsb2F0LWVuZFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgPHNtYWxsPllvdSBjYW4gdXBsb2FkIGEgSlBHLCBHSUYsIG9yIFBORyBmaWxlLiBBdm9pZCBhcnR3b3JrLCBjZWxlYnJpdGllcywgb3IgY29weXJpZ2h0ZWQgaW1hZ2VzLjwvc21hbGw+XG4gICAgICAgIDxwdy1pbWFnZS1jcm9wcGVyXG4gICAgICAgICAgI2Nyb3BwZXJcbiAgICAgICAgICBhc3BlY3RSYXRpbz1cImR5bmFtaWNcIlxuICAgICAgICAgIChpbWFnZVNlbGVjdGlvbkV2ZW50KT1cIm9uSW1hZ2VTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoY2xvc2VFdmVudCk9XCJvbkNsb3NlKClcIj5cbiAgICAgICAgPC9wdy1pbWFnZS1jcm9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtdG9wLWJhbm5lci1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcmVzb3VyY2UtbW9kdWxlL3NyYy9saWIvcHVibGljL2NvbXBvbmVudHMvcmVzb3VyY2UtdG9wLWJhbm5lci1lZGl0L3Jlc291cmNlLXRvcC1iYW5uZXItZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Jlc291cmNlLXRvcC1iYW5uZXItZWRpdC9yZXNvdXJjZS10b3AtYmFubmVyLWVkaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQU10RCxNQUFNLE9BQU8sOEJBQStCLFNBQVEsZ0JBQWdCO0lBaUJoRSxZQUNZLEVBQWUsRUFDZixZQUFzQixFQUN0QixVQUFzQixFQUM5QixRQUFrQjtRQUVsQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFMUixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2Ys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QTlDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFnU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgVE9LRU5fS0VZLCBVc2VyIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5pbXBvcnQgeyBDdXN0b21VcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9zaGFyZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXJlc291cmNlLXRvcC1iYW5uZXItZWRpdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Jlc291cmNlLXRvcC1iYW5uZXItZWRpdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VUb3BCYW5uZXJFZGl0Q29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgYmxvZ1Bvc3RUYWc7XG4gICAgQE91dHB1dCgpIGdldFVwZGF0ZWRUYWcgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQFZpZXdDaGlsZCgnZWRpdE1vZGFsJykgZWRpdE1vZGFsOiBUZW1wbGF0ZVJlZjxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnaW1hZ2VDcm9wQ29udGVudCcpIGltYWdlQ3JvcENvbnRlbnQ6IFRlbXBsYXRlUmVmPEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50PjtcblxuICAgIGZvcm06IEZvcm1Hcm91cDtcbiAgICBpbWFnZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgZGVmYXVsdEltYWdlID0gJ2Fzc2V0cy9pbWcvcmVzb3VyY2UvYmxvZy5wbmcnO1xuICAgIGZpbGU6IEZpbGU7XG4gICAgdXNlckxvZ2dlZEluOiBib29sZWFuO1xuICAgIHN1YnNjcmlwdGlvbklkOiBzdHJpbmc7XG4gICAgaW1hZ2VNb2RhbFJlZjtcbiAgICBidXR0b25CdXN5OiBib29sZWFuO1xuXG4gICAgdXNlcjogVXNlcjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxuICAgICAgICBwcml2YXRlIHRhZ1NlcnZpY2U6IFRhZ1NlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0kKFRPS0VOX0tFWSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXJMb2dnZWRJbiA9ICEhcmVzO1xuICAgICAgICAgICAgaWYgKHRoaXMudXNlckxvZ2dlZEluKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSQoJ3Byb2R1Y3QnKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlcyA/IEpTT04ucGFyc2UocmVzKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBkYXRhPy5zdWJzY3JpcHRpb25JZDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldFVzZXJJbmZvKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXIgPSBkYXRhO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICB0aXRsZTogW3RoaXMuYmxvZ1Bvc3RUYWc/LnRpdGxlIHx8ICcnXSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbdGhpcy5ibG9nUG9zdFRhZz8uZGVzY3JpcHRpb24gfHwgJyddXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaW1hZ2UgPSB0aGlzLmJsb2dQb3N0VGFnPy5pbWFnZT8udXJsIHx8IG51bGw7XG4gICAgfVxuXG4gICAgb3BlbkVkaXRNb2RhbCgpIHtcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmVkaXRNb2RhbCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ2xnJyB9KTtcbiAgICB9XG5cbiAgICBvcGVuSW1hZ2VNb2RhbChtb2RhbFJlZikge1xuICAgICAgICB0aGlzLmltYWdlTW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKG1vZGFsUmVmLCB7IGNlbnRlcmVkOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIG9uSW1hZ2VTZWxlY3RlZChiYXNlNjQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmltYWdlID0gYmFzZTY0O1xuICAgICAgICB0aGlzLmZpbGUgPSBIZWxwZXJTZXJ2aWNlLmNvbnZlcnRCYXNlNjRUb0ZpbGUoYmFzZTY0KTtcbiAgICAgICAgdGhpcy5pbWFnZU1vZGFsUmVmPy5jbG9zZSgpO1xuICAgIH1cblxuICAgIG9uQ2xvc2UoKSB7XG4gICAgICAgIHRoaXMuaW1hZ2VNb2RhbFJlZj8uY2xvc2UoKTtcbiAgICB9XG5cbiAgICByZW1vdmVJbWFnZSgpIHtcbiAgICAgICAgdGhpcy5pbWFnZSA9IG51bGw7XG4gICAgfVxuXG4gICAgaGFuZGxlSW1hZ2VFcnJvcihldmVudDogRXZlbnQpIHtcbiAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MSW1hZ2VFbGVtZW50KS5zcmMgPSB0aGlzLmRlZmF1bHRJbWFnZTtcbiAgICB9XG5cbiAgICBzYXZlKCkge1xuICAgICAgICB0aGlzLmJ1dHRvbkJ1c3kgPSB0cnVlO1xuICAgICAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgICAgICAgdGl0bGU6IHRoaXMuZm9ybS52YWx1ZS50aXRsZSB8fCB0aGlzLmJsb2dQb3N0VGFnPy50aXRsZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmZvcm0udmFsdWUuZGVzY3JpcHRpb24gfHwgdGhpcy5ibG9nUG9zdFRhZz8uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICB0YWdfY2F0ZWdvcnlfaWQ6IHRoaXMuYmxvZ1Bvc3RUYWc/LnRhZ19jYXRlZ29yeV9pZCxcbiAgICAgICAgICAgIHRhZ190eXBlOiB0aGlzLmJsb2dQb3N0VGFnPy50YWdfdHlwZSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5zdWJzY3JpcHRpb25JZCxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuYmxvZ1Bvc3RUYWc/Lm5hbWVcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5maWxlKSB7XG4gICAgICAgICAgICBwYXlsb2FkWydpbWFnZSddID0gdGhpcy5maWxlO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmltYWdlKSB7XG4gICAgICAgICAgICBwYXlsb2FkWydyZW1vdmVfaW1hZ2UnXSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhZ1NlcnZpY2UudXBkYXRlVGFnQnlJZCh0aGlzLmJsb2dQb3N0VGFnLmlkLCBwYXlsb2FkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5idXR0b25CdXN5ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoJ1RhZyBVcGRhdGVkJyk7XG4gICAgICAgICAgICB0aGlzLmdldFVwZGF0ZWRUYWcuZW1pdCgpO1xuICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZGlzbWlzc0FsbCgpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZWRpdC1jYXJkXCI+XG4gICAgPGkgY2xhc3M9XCJmYSBmYS1lZGl0IGN1cnNvci1wb2ludGVyIHRleHQtYmxhY2sgaW4tcGFnZS1lZGl0LWljb24gbWItMSBtcy0zXCJcbiAgICAgICAoY2xpY2spPVwib3BlbkVkaXRNb2RhbCgpXCIgdGl0bGU9XCJFZGl0IEJsb2cgVGFnXCI+PC9pPlxuPC9kaXY+XG5cbiAgPG5nLXRlbXBsYXRlICNlZGl0TW9kYWwgbGV0LW1vZGFsPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+RWRpdCBCbG9nIFBvc3QgVGFnPC9oNT5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGxhYmVsPVwiVGl0bGVcIiBuYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIC8+XG4gICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJEZXNjcmlwdGlvblwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiNFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBteS00XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidGFnSW1hZ2VcIj5CbG9nIFRhZyBJbWFnZTwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBjb2wtNlwiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2UgfHwgZGVmYXVsdEltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlTW9kYWwoaW1hZ2VDcm9wQ29udGVudClcIlxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW1hZ2Ugdy0xMDBcIlxuICAgICAgICAgICAgICAgICAgIGFsdD1cIkJsb2cgSW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJoYW5kbGVJbWFnZUVycm9yKCRldmVudClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC0yXCI+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkLWlubGluZS1ibG9jayBtdC0yXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTW9kYWwoaW1hZ2VDcm9wQ29udGVudClcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGltYWdlID8gJ1VwZGF0ZScgOiAnQWRkJyB9fSBJbWFnZVxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImltYWdlXCJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyIG1zLTIgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiUmVtb3ZlIEltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSW1hZ2UoKVwiPjwvaT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiBbYnV0dG9uQnVzeV09XCJidXR0b25CdXN5XCIgKGNsaWNrKT1cInNhdmUoKVwiPlNhdmU8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI2ltYWdlQ3JvcENvbnRlbnQgbGV0LW1vZGFsPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlVwbG9hZCBJbWFnZTwvaDU+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlIGZsb2F0LWVuZFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgPHNtYWxsPllvdSBjYW4gdXBsb2FkIGEgSlBHLCBHSUYsIG9yIFBORyBmaWxlLiBBdm9pZCBhcnR3b3JrLCBjZWxlYnJpdGllcywgb3IgY29weXJpZ2h0ZWQgaW1hZ2VzLjwvc21hbGw+XG4gICAgICAgIDxwdy1pbWFnZS1jcm9wcGVyXG4gICAgICAgICAgI2Nyb3BwZXJcbiAgICAgICAgICBhc3BlY3RSYXRpbz1cImR5bmFtaWNcIlxuICAgICAgICAgIChpbWFnZVNlbGVjdGlvbkV2ZW50KT1cIm9uSW1hZ2VTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoY2xvc2VFdmVudCk9XCJvbkNsb3NlKClcIj5cbiAgICAgICAgPC9wdy1pbWFnZS1jcm9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -64,11 +64,11 @@ export class ResourceTagComponent extends AppBaseComponent {
64
64
  });
65
65
  }
66
66
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceTagComponent, deps: [{ token: i1.TagService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceTagComponent, selector: "pw-resource-tags", outputs: { tagsLoaded: "tagsLoaded", tagSelected: "tagSelected" }, usesInheritance: true, ngImport: i0, template: "<section class=\"tag-section py-5 bg-white\" *ngIf=\"tags?.length\">\n <div class=\"container\">\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.SuperAdmin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black d-flex justify-content-end mb-3\"\n (click)=\"navigateToTagList()\"\n title=\"Edit Tags\"></i>\n <div class=\"row g-4\">\n <div class=\"col-md-3 col-sm-6 mb-4\" *ngFor=\"let tag of tags\">\n <div (click)=\"selectTag(tag)\" (keydown.enter)=\"selectTag(tag)\" class=\"resource-card d-flex align-items-center p-3\" [ngClass]=\"{ 'selected': selectedTag?.name === tag.name }\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n </div>\n</section>\n", styles: [".selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.tag-section{padding-top:4.5rem!important}\n", ":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}body{background:#fff}.edit-card .in-page-edit-icon{margin-top:1rem!important}.blog-listing{border:1px solid rgb(238,238,238);cursor:pointer;box-shadow:0 4px 12px #00000026}.all-posts{margin:2.5em auto 0;max-width:980px;padding:14px 20px;width:100%}.tag-div{height:100%;display:flex;flex-direction:column;justify-content:space-between}ul.tags{display:inline-flex;font-size:16px;font-weight:400}ul.tags li{color:#337ab7;cursor:pointer;font-weight:600;margin-right:20px}ul.tags li:hover{color:#000}.search{position:relative}.search input{border:0;border-bottom:1px solid rgb(213,206,206)}.search i{position:absolute;right:5px}.scroll-container{max-height:70vh;overflow-y:auto}.blog-list .blog-listing h4{color:#000;font:28px/1.3 Roboto,sans-serif;transition:all .5s}.blog-list .blog-listing h4:hover{color:#0045c7}.blog-list .blog-listing p.body{color:#b3b3b3;font:16px/1.4 Roboto,sans-serif;transition:all .5s;min-height:120px!important;word-break:break-word;overflow-wrap:break-word;white-space:normal}.blog-list .blog-listing p.body:hover{color:#0045c7}.blog-list .blog-listing p.body p{color:inherit;font:inherit;transition:inherit}.blog-list .blog-listing p.body p:hover{color:#0045c7}.blog-list .blog-listing .list-blog-image img{padding:7px 25px 25px}.blog-list .blog-listing .author{padding-top:1.5rem}.blog-list .blog-listing .author .avatar-image{border:1px solid rgb(0,0,0);border-radius:50px;height:50px;clip-path:circle(50% at 50% 50%);width:50px}.blog-list .blog-listing .author .avatar-image img{left:50%;position:relative;top:50%;transform:translate(-50%,-50%)}.blog-list .blog-listing .author .avatar-image .default-user-image{width:50px}.blog-list .blog-listing .author .author-name p.name{color:#000;font:14px/1 Roboto,sans-serif;margin:0;transition:all .5s}.blog-list .blog-listing .author .author-name p.name:hover{color:#0045c7}.blog-list .blog-listing .author .author-name p.name i{color:#000}.blog-list .blog-listing .author .author-name ul li{display:inline-block;padding-right:10px;vertical-align:middle}.blog-list .blog-listing .author .author-name ul li a{color:#b3b3b3;font:12px/1 Roboto,sans-serif}.blog-list .blog-listing .author .share-post{flex-grow:3;position:relative;text-align:right}.blog-list .blog-listing .author .share-post i{color:var(--first)}.blog-list .blog-listing .author .share-post .dropdown-menu{border:0 0;box-shadow:0 3px 8px #0003;left:auto!important;right:12px;top:26px!important;transform:translate(0)!important}.blog-list .blog-listing .blog-view{border-top:1px solid rgb(238,238,238)}.blog-list .blog-listing .blog-view ul li{color:#b3b3b3;font:12px/1 Roboto,sans-serif;padding-right:14px}.blog-list .blog-listing .blog-view ul li a{color:inherit;font:inherit;transition:all .5s}.blog-list .blog-listing .blog-view ul li a:hover{color:#0045c7}.blog-list .blog-listing .blog-view ul li:last-child{flex-grow:3;padding-right:0;text-align:right}.blog-list .blog-listing .blog-view ul li:last-child i{color:#e84a43;font-size:14px}@media only screen and (width <= 1024px){.cust-mt{padding:14px 5px}.cust-mt .blog-list .blog-listing h4{font:20px/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body{font:.9rem/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body p{font:inherit}.cust-mt .blog-list .blog-listing .blog-image{height:300px}}@media only screen and (width <= 767px){.blog-list .blog-listing{height:auto;max-height:none;overflow:visible}.blog-list .blog-listing .blog-view{padding-bottom:1rem}}@media (width >= 768px){.blog-view{bottom:0;width:92%}}.post-body-text:hover{color:var(--titles)!important}.resource-card{border:2px dashed #d4d4d4;border-radius:16px;background-color:#fff;transition:box-shadow .3s ease;cursor:pointer;min-height:95px;padding:1.5rem!important}.resource-card:hover{box-shadow:0 0 30px #00000014}.selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.resource-icon{font-size:2.5rem;color:var(--first)}.resource-text{font-size:1.4rem;font-weight:500;color:var(--text-color);line-height:2rem}.three-dots-wrapper{width:32px;height:32px;display:flex;margin-top:.25rem!important;justify-content:center;cursor:pointer;position:relative;z-index:2}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceTagComponent, selector: "pw-resource-tags", outputs: { tagsLoaded: "tagsLoaded", tagSelected: "tagSelected" }, usesInheritance: true, ngImport: i0, template: "<section class=\"tag-section py-5 bg-white\" *ngIf=\"tags?.length\">\n <div class=\"container\">\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.SuperAdmin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black d-flex justify-content-end mb-3\"\n (click)=\"navigateToTagList()\"\n title=\"Edit Tags\"></i>\n <div class=\"row g-4\">\n <div class=\"col-md-3 col-sm-6 mb-4\" *ngFor=\"let tag of tags\">\n <div (click)=\"selectTag(tag)\" (keydown.enter)=\"selectTag(tag)\" class=\"resource-card d-flex align-items-center p-3\" [ngClass]=\"{ 'selected': selectedTag?.name === tag.name }\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n </div>\n</section>\n", styles: [".selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.tag-section{padding-top:4.5rem!important}\n", ":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}body{background:#fff}.edit-card .in-page-edit-icon{margin-top:1rem!important}.blog-listing{border:1px solid rgb(238,238,238);cursor:pointer;box-shadow:0 4px 12px #00000026}.all-posts{margin:2.5em auto 0;max-width:980px;padding:14px 20px;width:100%}.tag-div{height:100%;display:flex;flex-direction:column;justify-content:space-between}ul.tags{display:inline-flex;font-size:16px;font-weight:400}ul.tags li{color:#337ab7;cursor:pointer;font-weight:600;margin-right:20px}ul.tags li:hover{color:#000}.search{position:relative}.search input{border:0;border-bottom:1px solid rgb(213,206,206)}.search i{position:absolute;right:5px}.scroll-container{max-height:70vh;overflow-y:auto}.blog-list .blog-listing h4{color:#000;font:28px/1.3 Roboto,sans-serif;transition:all .5s}.blog-list .blog-listing h4:hover{color:#0045c7}.blog-list .blog-listing p.body{color:#b3b3b3;font:16px/1.4 Roboto,sans-serif;transition:all .5s;min-height:120px!important;word-break:break-word;overflow-wrap:break-word;white-space:normal}.blog-list .blog-listing p.body:hover{color:#0045c7}.blog-list .blog-listing p.body p{color:inherit;font:inherit;transition:inherit}.blog-list .blog-listing p.body p:hover{color:#0045c7}.blog-list .blog-listing .list-blog-image img{padding:7px 25px 25px}.blog-list .blog-listing .author{padding-top:1.5rem}.blog-list .blog-listing .author .avatar-image{border:1px solid rgb(0,0,0);border-radius:50px;height:50px;clip-path:circle(50% at 50% 50%);width:50px}.blog-list .blog-listing .author .avatar-image img{left:50%;position:relative;top:50%;transform:translate(-50%,-50%)}.blog-list .blog-listing .author .avatar-image .default-user-image{width:50px}.blog-list .blog-listing .author .author-name p.name{color:#000;font:14px/1 Roboto,sans-serif;margin:0;transition:all .5s}.blog-list .blog-listing .author .author-name p.name:hover{color:#0045c7}.blog-list .blog-listing .author .author-name p.name i{color:#000}.blog-list .blog-listing .author .author-name ul li{display:inline-block;padding-right:10px;vertical-align:middle}.blog-list .blog-listing .author .author-name ul li a{color:#b3b3b3;font:12px/1 Roboto,sans-serif}.blog-list .blog-listing .author .share-post{flex-grow:3;position:relative;text-align:right}.blog-list .blog-listing .author .share-post i{color:var(--first)}.blog-list .blog-listing .author .share-post .dropdown-menu{border:0 0;box-shadow:0 3px 8px #0003;left:auto!important;right:12px;top:26px!important;transform:translate(0)!important}.blog-list .blog-listing .blog-view{border-top:1px solid rgb(238,238,238)}.blog-list .blog-listing .blog-view ul li{color:#b3b3b3;font:12px/1 Roboto,sans-serif;padding-right:14px}.blog-list .blog-listing .blog-view ul li a{color:inherit;font:inherit;transition:all .5s}.blog-list .blog-listing .blog-view ul li a:hover{color:#0045c7}.blog-list .blog-listing .blog-view ul li:last-child{flex-grow:3;padding-right:0;text-align:right}.blog-list .blog-listing .blog-view ul li:last-child i{color:#e84a43;font-size:14px}@media only screen and (width <= 1024px){.cust-mt{padding:14px 5px}.cust-mt .blog-list .blog-listing h4{font:20px/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body{font:.9rem/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body p{font:inherit}.cust-mt .blog-list .blog-listing .blog-image{height:300px}}@media only screen and (width <= 767px){.blog-list .blog-listing{height:auto;max-height:none;overflow:visible}.blog-list .blog-listing .blog-view{padding-bottom:1rem}}@media (width >= 768px){.blog-view{bottom:0;width:92%}}.post-body-text:hover{color:var(--titles)!important}.resource-card{border:2px dashed #d4d4d4;border-radius:16px;background-color:#fff;transition:box-shadow .3s ease;cursor:pointer;min-height:95px;padding:1.5rem!important}.resource-card:hover{box-shadow:0 0 30px #00000014}.selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.resource-icon{font-size:2.5rem;color:var(--first)}.resource-text{font-size:1.4rem;font-weight:500;color:var(--text-color);line-height:2rem}.three-dots-wrapper{width:32px;height:32px;display:flex;margin-top:.25rem!important;justify-content:center;cursor:pointer;position:relative;z-index:2}.expand-tags{font-size:1.2rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
68
68
  }
69
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceTagComponent, decorators: [{
70
70
  type: Component,
71
- args: [{ selector: 'pw-resource-tags', template: "<section class=\"tag-section py-5 bg-white\" *ngIf=\"tags?.length\">\n <div class=\"container\">\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.SuperAdmin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black d-flex justify-content-end mb-3\"\n (click)=\"navigateToTagList()\"\n title=\"Edit Tags\"></i>\n <div class=\"row g-4\">\n <div class=\"col-md-3 col-sm-6 mb-4\" *ngFor=\"let tag of tags\">\n <div (click)=\"selectTag(tag)\" (keydown.enter)=\"selectTag(tag)\" class=\"resource-card d-flex align-items-center p-3\" [ngClass]=\"{ 'selected': selectedTag?.name === tag.name }\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n </div>\n</section>\n", styles: [".selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.tag-section{padding-top:4.5rem!important}\n", ":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}body{background:#fff}.edit-card .in-page-edit-icon{margin-top:1rem!important}.blog-listing{border:1px solid rgb(238,238,238);cursor:pointer;box-shadow:0 4px 12px #00000026}.all-posts{margin:2.5em auto 0;max-width:980px;padding:14px 20px;width:100%}.tag-div{height:100%;display:flex;flex-direction:column;justify-content:space-between}ul.tags{display:inline-flex;font-size:16px;font-weight:400}ul.tags li{color:#337ab7;cursor:pointer;font-weight:600;margin-right:20px}ul.tags li:hover{color:#000}.search{position:relative}.search input{border:0;border-bottom:1px solid rgb(213,206,206)}.search i{position:absolute;right:5px}.scroll-container{max-height:70vh;overflow-y:auto}.blog-list .blog-listing h4{color:#000;font:28px/1.3 Roboto,sans-serif;transition:all .5s}.blog-list .blog-listing h4:hover{color:#0045c7}.blog-list .blog-listing p.body{color:#b3b3b3;font:16px/1.4 Roboto,sans-serif;transition:all .5s;min-height:120px!important;word-break:break-word;overflow-wrap:break-word;white-space:normal}.blog-list .blog-listing p.body:hover{color:#0045c7}.blog-list .blog-listing p.body p{color:inherit;font:inherit;transition:inherit}.blog-list .blog-listing p.body p:hover{color:#0045c7}.blog-list .blog-listing .list-blog-image img{padding:7px 25px 25px}.blog-list .blog-listing .author{padding-top:1.5rem}.blog-list .blog-listing .author .avatar-image{border:1px solid rgb(0,0,0);border-radius:50px;height:50px;clip-path:circle(50% at 50% 50%);width:50px}.blog-list .blog-listing .author .avatar-image img{left:50%;position:relative;top:50%;transform:translate(-50%,-50%)}.blog-list .blog-listing .author .avatar-image .default-user-image{width:50px}.blog-list .blog-listing .author .author-name p.name{color:#000;font:14px/1 Roboto,sans-serif;margin:0;transition:all .5s}.blog-list .blog-listing .author .author-name p.name:hover{color:#0045c7}.blog-list .blog-listing .author .author-name p.name i{color:#000}.blog-list .blog-listing .author .author-name ul li{display:inline-block;padding-right:10px;vertical-align:middle}.blog-list .blog-listing .author .author-name ul li a{color:#b3b3b3;font:12px/1 Roboto,sans-serif}.blog-list .blog-listing .author .share-post{flex-grow:3;position:relative;text-align:right}.blog-list .blog-listing .author .share-post i{color:var(--first)}.blog-list .blog-listing .author .share-post .dropdown-menu{border:0 0;box-shadow:0 3px 8px #0003;left:auto!important;right:12px;top:26px!important;transform:translate(0)!important}.blog-list .blog-listing .blog-view{border-top:1px solid rgb(238,238,238)}.blog-list .blog-listing .blog-view ul li{color:#b3b3b3;font:12px/1 Roboto,sans-serif;padding-right:14px}.blog-list .blog-listing .blog-view ul li a{color:inherit;font:inherit;transition:all .5s}.blog-list .blog-listing .blog-view ul li a:hover{color:#0045c7}.blog-list .blog-listing .blog-view ul li:last-child{flex-grow:3;padding-right:0;text-align:right}.blog-list .blog-listing .blog-view ul li:last-child i{color:#e84a43;font-size:14px}@media only screen and (width <= 1024px){.cust-mt{padding:14px 5px}.cust-mt .blog-list .blog-listing h4{font:20px/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body{font:.9rem/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body p{font:inherit}.cust-mt .blog-list .blog-listing .blog-image{height:300px}}@media only screen and (width <= 767px){.blog-list .blog-listing{height:auto;max-height:none;overflow:visible}.blog-list .blog-listing .blog-view{padding-bottom:1rem}}@media (width >= 768px){.blog-view{bottom:0;width:92%}}.post-body-text:hover{color:var(--titles)!important}.resource-card{border:2px dashed #d4d4d4;border-radius:16px;background-color:#fff;transition:box-shadow .3s ease;cursor:pointer;min-height:95px;padding:1.5rem!important}.resource-card:hover{box-shadow:0 0 30px #00000014}.selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.resource-icon{font-size:2.5rem;color:var(--first)}.resource-text{font-size:1.4rem;font-weight:500;color:var(--text-color);line-height:2rem}.three-dots-wrapper{width:32px;height:32px;display:flex;margin-top:.25rem!important;justify-content:center;cursor:pointer;position:relative;z-index:2}\n"] }]
71
+ args: [{ selector: 'pw-resource-tags', template: "<section class=\"tag-section py-5 bg-white\" *ngIf=\"tags?.length\">\n <div class=\"container\">\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.SuperAdmin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black d-flex justify-content-end mb-3\"\n (click)=\"navigateToTagList()\"\n title=\"Edit Tags\"></i>\n <div class=\"row g-4\">\n <div class=\"col-md-3 col-sm-6 mb-4\" *ngFor=\"let tag of tags\">\n <div (click)=\"selectTag(tag)\" (keydown.enter)=\"selectTag(tag)\" class=\"resource-card d-flex align-items-center p-3\" [ngClass]=\"{ 'selected': selectedTag?.name === tag.name }\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n </div>\n</section>\n", styles: [".selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.tag-section{padding-top:4.5rem!important}\n", ":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}body{background:#fff}.edit-card .in-page-edit-icon{margin-top:1rem!important}.blog-listing{border:1px solid rgb(238,238,238);cursor:pointer;box-shadow:0 4px 12px #00000026}.all-posts{margin:2.5em auto 0;max-width:980px;padding:14px 20px;width:100%}.tag-div{height:100%;display:flex;flex-direction:column;justify-content:space-between}ul.tags{display:inline-flex;font-size:16px;font-weight:400}ul.tags li{color:#337ab7;cursor:pointer;font-weight:600;margin-right:20px}ul.tags li:hover{color:#000}.search{position:relative}.search input{border:0;border-bottom:1px solid rgb(213,206,206)}.search i{position:absolute;right:5px}.scroll-container{max-height:70vh;overflow-y:auto}.blog-list .blog-listing h4{color:#000;font:28px/1.3 Roboto,sans-serif;transition:all .5s}.blog-list .blog-listing h4:hover{color:#0045c7}.blog-list .blog-listing p.body{color:#b3b3b3;font:16px/1.4 Roboto,sans-serif;transition:all .5s;min-height:120px!important;word-break:break-word;overflow-wrap:break-word;white-space:normal}.blog-list .blog-listing p.body:hover{color:#0045c7}.blog-list .blog-listing p.body p{color:inherit;font:inherit;transition:inherit}.blog-list .blog-listing p.body p:hover{color:#0045c7}.blog-list .blog-listing .list-blog-image img{padding:7px 25px 25px}.blog-list .blog-listing .author{padding-top:1.5rem}.blog-list .blog-listing .author .avatar-image{border:1px solid rgb(0,0,0);border-radius:50px;height:50px;clip-path:circle(50% at 50% 50%);width:50px}.blog-list .blog-listing .author .avatar-image img{left:50%;position:relative;top:50%;transform:translate(-50%,-50%)}.blog-list .blog-listing .author .avatar-image .default-user-image{width:50px}.blog-list .blog-listing .author .author-name p.name{color:#000;font:14px/1 Roboto,sans-serif;margin:0;transition:all .5s}.blog-list .blog-listing .author .author-name p.name:hover{color:#0045c7}.blog-list .blog-listing .author .author-name p.name i{color:#000}.blog-list .blog-listing .author .author-name ul li{display:inline-block;padding-right:10px;vertical-align:middle}.blog-list .blog-listing .author .author-name ul li a{color:#b3b3b3;font:12px/1 Roboto,sans-serif}.blog-list .blog-listing .author .share-post{flex-grow:3;position:relative;text-align:right}.blog-list .blog-listing .author .share-post i{color:var(--first)}.blog-list .blog-listing .author .share-post .dropdown-menu{border:0 0;box-shadow:0 3px 8px #0003;left:auto!important;right:12px;top:26px!important;transform:translate(0)!important}.blog-list .blog-listing .blog-view{border-top:1px solid rgb(238,238,238)}.blog-list .blog-listing .blog-view ul li{color:#b3b3b3;font:12px/1 Roboto,sans-serif;padding-right:14px}.blog-list .blog-listing .blog-view ul li a{color:inherit;font:inherit;transition:all .5s}.blog-list .blog-listing .blog-view ul li a:hover{color:#0045c7}.blog-list .blog-listing .blog-view ul li:last-child{flex-grow:3;padding-right:0;text-align:right}.blog-list .blog-listing .blog-view ul li:last-child i{color:#e84a43;font-size:14px}@media only screen and (width <= 1024px){.cust-mt{padding:14px 5px}.cust-mt .blog-list .blog-listing h4{font:20px/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body{font:.9rem/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body p{font:inherit}.cust-mt .blog-list .blog-listing .blog-image{height:300px}}@media only screen and (width <= 767px){.blog-list .blog-listing{height:auto;max-height:none;overflow:visible}.blog-list .blog-listing .blog-view{padding-bottom:1rem}}@media (width >= 768px){.blog-view{bottom:0;width:92%}}.post-body-text:hover{color:var(--titles)!important}.resource-card{border:2px dashed #d4d4d4;border-radius:16px;background-color:#fff;transition:box-shadow .3s ease;cursor:pointer;min-height:95px;padding:1.5rem!important}.resource-card:hover{box-shadow:0 0 30px #00000014}.selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.resource-icon{font-size:2.5rem;color:var(--first)}.resource-text{font-size:1.4rem;font-weight:500;color:var(--text-color);line-height:2rem}.three-dots-wrapper{width:32px;height:32px;display:flex;margin-top:.25rem!important;justify-content:center;cursor:pointer;position:relative;z-index:2}.expand-tags{font-size:1.2rem}\n"] }]
72
72
  }], ctorParameters: () => [{ type: i1.TagService }, { type: i0.Injector }], propDecorators: { tagsLoaded: [{
73
73
  type: Output
74
74
  }], tagSelected: [{
@@ -84,13 +84,13 @@ export class VaultSectionComponent extends AppBaseComponent {
84
84
  this.file = null;
85
85
  }
86
86
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: VaultSectionComponent, deps: [{ token: i0.Injector }, { token: i1.NgbModal }, { token: i2.AdminService }], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: VaultSectionComponent, selector: "pw-vault-section", viewQueries: [{ propertyName: "editResourceModalRef", first: true, predicate: ["editResourceModal"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section class=\"vault-section\">\n <div class=\"skewed-bg\"></div>\n\n <!-- Edit Icon (top-right) -->\n\n <div class=\"container\">\n <div class=\"row align-items-center vault-row\">\n <!-- Left Content -->\n <div class=\"col-lg-6 col-12 text-content\">\n <div class=\"d-flex\">\n <h2 class=\"headline\">{{resourceTagLine || 'UPDATE ME ON ADMIN/DOMAINS MODULE'}}</h2>\n <i\n *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit tag-edit-icon in-page-edit-icon mt-4 ms-3 cursor-pointer\"\n title=\"Edit Resource\"\n (click)=\"openEditResourceModal()\"\n ></i>\n </div>\n <div class=\"description-content\">\n <p class=\"description\" [innerHTML]=\"resourceDescription || 'UPDATE ME ON ADMIN/DOMAINS MODULE.'\">\n </p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"col-lg-6 col-12 img-wrapper\">\n <ng-container *ngIf=\"resourceImage; else noVideo\">\n <img [src]=\"resourceImage\" alt=\"Vault Mockup\" class=\"img-fluid\" />\n </ng-container>\n\n <ng-template #noVideo>\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n<!-- Edit Modal -->\n<ng-template #editResourceModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Resources</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"mb-3\">\n <label class=\"form-label\">Tagline</label>\n <input [(ngModel)]=\"editingTagline\" class=\"form-control\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">Description</label>\n <textarea [(ngModel)]=\"editingDescription\" rows=\"4\" class=\"form-control\"></textarea>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">Resource Image</label>\n <div class=\"text-center d-flex flex-column align-items-center\">\n <img\n [src]=\"image || 'assets/img/resource/blog.png'\"\n (click)=\"openImageModal(imageCropContent)\"\n (keydown.enter)=\"openImageModal(imageCropContent)\"\n class=\"image w-100 mb-2\"\n alt=\"Resource Image\"\n (error)=\"handleImageError($event, 'assets/img/resource/blog.png')\" />\n\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block\" (click)=\"openImageModal(imageCropContent)\">\n {{ file || image ? 'Edit' : 'Add' }} Picture\n </a>\n <i *ngIf=\"image\"\n class=\"fa fa-trash delete-icon text-danger ms-2\"\n title=\"Remove Image\"\n (click)=\"removeImage()\"\n (keydown.enter)=\"removeImage()\"\n style=\"cursor: pointer;\"></i>\n </div>\n </div>\n </div>\n\n </div>\n <div class=\"modal-footer\">\n <button class=\"btn btn-primary\" (click)=\"saveResourceContent(modal)\">Save</button>\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n </div>\n</ng-template>\n\n\n\n<ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Picture</h5>\n <button type=\"button\" class=\"btn-close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file.</small>\n <pw-image-cropper\n [aspectRatio]=\"'dynamic'\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"modal.close()\">\n </pw-image-cropper>\n </div>\n</ng-template>\n", styles: [".vault-section{position:relative;padding:5rem 0;color:#fff;background:linear-gradient(90deg,var(--first) 0%,#a8e1fb 100%);overflow:hidden}.vault-section:after{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:61%;background:#fff;clip-path:polygon(0 18%,100% 0%,100% 100%,0% 100%);z-index:1}.vault-section .container{position:relative;z-index:2}.vault-section .row{min-height:600px;align-items:center}.vault-section .text-content{max-width:550px;height:100%;display:flex;flex-direction:column;justify-content:center}.vault-section .text-content .headline{font-weight:500;color:#fff!important;font-size:4.5rem!important}.vault-section .text-content .description{font-size:2rem;line-height:3rem;font-weight:400;color:var(--text-color, black);margin-bottom:1rem}.vault-section .text-content .description strong{font-weight:700}.vault-section .text-content .cta-btn{display:inline-block;background:var(--text-color, black);color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.vault-section .text-content .cta-btn:hover{background-color:#fff!important;color:var(--text-color, black)!important}.vault-section .img-wrapper{text-align:center}.vault-section .img-wrapper img,.vault-section .img-wrapper pw-no-data{max-width:800px;max-height:800px;height:auto}@media (width >= 991px){.vault-section img,.vault-section pw-no-data{max-width:800px;width:100%;height:auto;position:relative;top:11.6rem}.vault-section .description-content{max-width:500px;position:absolute;margin-top:31rem!important}.vault-section .headline{margin-bottom:21rem!important}}@media (width >= 1100px){.vault-section img,.vault-section pw-no-data{left:25%}}@media (width >= 991px) and (width <= 1100px){.vault-section img,.vault-section pw-no-data{top:12.9rem!important;left:19%}}@media (width <= 991px){.vault-section .vault-row{text-align:center;justify-content:center}.vault-section img,.vault-section pw-no-data{top:5rem!important;position:relative}}@media (width <= 768px){.vault-section .text-content{text-align:center;margin-bottom:2rem;margin-top:3rem!important}.vault-section .text-content .headline{font-size:3rem!important}.vault-section .text-content .description{font-size:1.5rem;line-height:2rem}}.tag-edit-icon{margin-top:2rem!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.ProfileImageCropperComponent, selector: "pw-image-cropper", inputs: ["aspectRatio", "dynamicData"], outputs: ["imageSelectionEvent", "closeEvent", "fileChangeEvent"] }, { kind: "component", type: i5.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "directive", type: i6.LazyImgDirective, selector: "img" }, { kind: "pipe", type: i7.TranslocoPipe, name: "transloco" }] }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: VaultSectionComponent, selector: "pw-vault-section", viewQueries: [{ propertyName: "editResourceModalRef", first: true, predicate: ["editResourceModal"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section class=\"vault-section\">\n <div class=\"skewed-bg\"></div>\n\n <!-- Edit Icon (top-right) -->\n\n <div class=\"container\">\n <div class=\"row align-items-center vault-row\">\n <!-- Left Content -->\n <div class=\"col-lg-6 col-12 text-content\">\n <div class=\"d-flex\">\n <h2 class=\"headline\">{{resourceTagLine || 'UPDATE ME ON ADMIN/DOMAINS MODULE'}}</h2>\n <i\n *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit tag-edit-icon in-page-edit-icon mt-4 ms-3 cursor-pointer\"\n title=\"Edit Resource\"\n (click)=\"openEditResourceModal()\"\n ></i>\n </div>\n <div class=\"description-content\">\n <p class=\"description\" [innerHTML]=\"resourceDescription || 'UPDATE ME ON ADMIN/DOMAINS MODULE.'\">\n </p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"col-lg-6 col-12 img-wrapper\">\n <ng-container *ngIf=\"resourceImage; else noVideo\">\n <img [src]=\"resourceImage\" alt=\"Vault Mockup\" class=\"img-fluid\" />\n </ng-container>\n\n <ng-template #noVideo>\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n<!-- Edit Modal -->\n<ng-template #editResourceModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Resources</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"mb-3\">\n <label class=\"form-label\">Tagline</label>\n <input [(ngModel)]=\"editingTagline\" class=\"form-control\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">Description</label>\n <textarea [(ngModel)]=\"editingDescription\" rows=\"4\" class=\"form-control\"></textarea>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">Resource Image</label>\n <div class=\"text-center d-flex flex-column align-items-center\">\n <img\n [src]=\"image || 'assets/img/resource/blog.png'\"\n (click)=\"openImageModal(imageCropContent)\"\n (keydown.enter)=\"openImageModal(imageCropContent)\"\n class=\"image w-100 mb-2\"\n alt=\"Resource Image\"\n (error)=\"handleImageError($event, 'assets/img/resource/blog.png')\" />\n\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block\" (click)=\"openImageModal(imageCropContent)\">\n {{ file || image ? 'Edit' : 'Add' }} Picture\n </a>\n <i *ngIf=\"image\"\n class=\"fa fa-trash delete-icon text-danger ms-2 cursor-pointer\"\n title=\"Remove Image\"\n (click)=\"removeImage()\"\n (keydown.enter)=\"removeImage()\"></i>\n </div>\n </div>\n </div>\n\n </div>\n <div class=\"modal-footer\">\n <button class=\"btn btn-primary\" (click)=\"saveResourceContent(modal)\">Save</button>\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n </div>\n</ng-template>\n\n\n\n<ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Picture</h5>\n <button type=\"button\" class=\"btn-close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file.</small>\n <pw-image-cropper\n [aspectRatio]=\"'dynamic'\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"modal.close()\">\n </pw-image-cropper>\n </div>\n</ng-template>\n", styles: [".vault-section{position:relative;padding:5rem 0;color:#fff;background:linear-gradient(90deg,var(--first) 0%,#a8e1fb 100%);overflow:hidden}.vault-section:after{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:61%;background:#fff;clip-path:polygon(0 18%,100% 0%,100% 100%,0% 100%);z-index:1}.vault-section .container{position:relative;z-index:2}.vault-section .row{min-height:600px;align-items:center}.vault-section .text-content{max-width:550px;height:100%;display:flex;flex-direction:column;justify-content:center}.vault-section .text-content .headline{font-weight:500;color:#fff!important;font-size:4.5rem!important}.vault-section .text-content .description{font-size:2rem;line-height:3rem;font-weight:400;color:var(--text-color, black);margin-bottom:1rem}.vault-section .text-content .description strong{font-weight:700}.vault-section .text-content .cta-btn{display:inline-block;background:var(--text-color, black);color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.vault-section .text-content .cta-btn:hover{background-color:#fff!important;color:var(--text-color, black)!important}.vault-section .img-wrapper{text-align:center}.vault-section .img-wrapper img,.vault-section .img-wrapper pw-no-data{max-width:800px;max-height:800px;height:auto}@media (width >= 991px){.vault-section img,.vault-section pw-no-data{max-width:800px;width:100%;height:auto;position:relative;top:11.6rem}.vault-section .description-content{max-width:500px;position:absolute;margin-top:31rem!important}.vault-section .headline{margin-bottom:21rem!important}}@media (width >= 1100px){.vault-section img,.vault-section pw-no-data{left:25%}}@media (width >= 991px) and (width <= 1100px){.vault-section img,.vault-section pw-no-data{top:12.9rem!important;left:19%}}@media (width <= 991px){.vault-section .vault-row{text-align:center;justify-content:center}.vault-section img,.vault-section pw-no-data{top:5rem!important;position:relative}}@media (width <= 768px){.vault-section .text-content{text-align:center;margin-bottom:2rem;margin-top:3rem!important}.vault-section .text-content .headline{font-size:3rem!important}.vault-section .text-content .description{font-size:1.5rem;line-height:2rem}}.tag-edit-icon{margin-top:2rem!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.ProfileImageCropperComponent, selector: "pw-image-cropper", inputs: ["aspectRatio", "dynamicData"], outputs: ["imageSelectionEvent", "closeEvent", "fileChangeEvent"] }, { kind: "component", type: i5.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "directive", type: i6.LazyImgDirective, selector: "img" }, { kind: "pipe", type: i7.TranslocoPipe, name: "transloco" }] }); }
88
88
  }
89
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: VaultSectionComponent, decorators: [{
90
90
  type: Component,
91
- args: [{ selector: 'pw-vault-section', template: "<section class=\"vault-section\">\n <div class=\"skewed-bg\"></div>\n\n <!-- Edit Icon (top-right) -->\n\n <div class=\"container\">\n <div class=\"row align-items-center vault-row\">\n <!-- Left Content -->\n <div class=\"col-lg-6 col-12 text-content\">\n <div class=\"d-flex\">\n <h2 class=\"headline\">{{resourceTagLine || 'UPDATE ME ON ADMIN/DOMAINS MODULE'}}</h2>\n <i\n *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit tag-edit-icon in-page-edit-icon mt-4 ms-3 cursor-pointer\"\n title=\"Edit Resource\"\n (click)=\"openEditResourceModal()\"\n ></i>\n </div>\n <div class=\"description-content\">\n <p class=\"description\" [innerHTML]=\"resourceDescription || 'UPDATE ME ON ADMIN/DOMAINS MODULE.'\">\n </p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"col-lg-6 col-12 img-wrapper\">\n <ng-container *ngIf=\"resourceImage; else noVideo\">\n <img [src]=\"resourceImage\" alt=\"Vault Mockup\" class=\"img-fluid\" />\n </ng-container>\n\n <ng-template #noVideo>\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n<!-- Edit Modal -->\n<ng-template #editResourceModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Resources</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"mb-3\">\n <label class=\"form-label\">Tagline</label>\n <input [(ngModel)]=\"editingTagline\" class=\"form-control\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">Description</label>\n <textarea [(ngModel)]=\"editingDescription\" rows=\"4\" class=\"form-control\"></textarea>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">Resource Image</label>\n <div class=\"text-center d-flex flex-column align-items-center\">\n <img\n [src]=\"image || 'assets/img/resource/blog.png'\"\n (click)=\"openImageModal(imageCropContent)\"\n (keydown.enter)=\"openImageModal(imageCropContent)\"\n class=\"image w-100 mb-2\"\n alt=\"Resource Image\"\n (error)=\"handleImageError($event, 'assets/img/resource/blog.png')\" />\n\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block\" (click)=\"openImageModal(imageCropContent)\">\n {{ file || image ? 'Edit' : 'Add' }} Picture\n </a>\n <i *ngIf=\"image\"\n class=\"fa fa-trash delete-icon text-danger ms-2\"\n title=\"Remove Image\"\n (click)=\"removeImage()\"\n (keydown.enter)=\"removeImage()\"\n style=\"cursor: pointer;\"></i>\n </div>\n </div>\n </div>\n\n </div>\n <div class=\"modal-footer\">\n <button class=\"btn btn-primary\" (click)=\"saveResourceContent(modal)\">Save</button>\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n </div>\n</ng-template>\n\n\n\n<ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Picture</h5>\n <button type=\"button\" class=\"btn-close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file.</small>\n <pw-image-cropper\n [aspectRatio]=\"'dynamic'\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"modal.close()\">\n </pw-image-cropper>\n </div>\n</ng-template>\n", styles: [".vault-section{position:relative;padding:5rem 0;color:#fff;background:linear-gradient(90deg,var(--first) 0%,#a8e1fb 100%);overflow:hidden}.vault-section:after{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:61%;background:#fff;clip-path:polygon(0 18%,100% 0%,100% 100%,0% 100%);z-index:1}.vault-section .container{position:relative;z-index:2}.vault-section .row{min-height:600px;align-items:center}.vault-section .text-content{max-width:550px;height:100%;display:flex;flex-direction:column;justify-content:center}.vault-section .text-content .headline{font-weight:500;color:#fff!important;font-size:4.5rem!important}.vault-section .text-content .description{font-size:2rem;line-height:3rem;font-weight:400;color:var(--text-color, black);margin-bottom:1rem}.vault-section .text-content .description strong{font-weight:700}.vault-section .text-content .cta-btn{display:inline-block;background:var(--text-color, black);color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.vault-section .text-content .cta-btn:hover{background-color:#fff!important;color:var(--text-color, black)!important}.vault-section .img-wrapper{text-align:center}.vault-section .img-wrapper img,.vault-section .img-wrapper pw-no-data{max-width:800px;max-height:800px;height:auto}@media (width >= 991px){.vault-section img,.vault-section pw-no-data{max-width:800px;width:100%;height:auto;position:relative;top:11.6rem}.vault-section .description-content{max-width:500px;position:absolute;margin-top:31rem!important}.vault-section .headline{margin-bottom:21rem!important}}@media (width >= 1100px){.vault-section img,.vault-section pw-no-data{left:25%}}@media (width >= 991px) and (width <= 1100px){.vault-section img,.vault-section pw-no-data{top:12.9rem!important;left:19%}}@media (width <= 991px){.vault-section .vault-row{text-align:center;justify-content:center}.vault-section img,.vault-section pw-no-data{top:5rem!important;position:relative}}@media (width <= 768px){.vault-section .text-content{text-align:center;margin-bottom:2rem;margin-top:3rem!important}.vault-section .text-content .headline{font-size:3rem!important}.vault-section .text-content .description{font-size:1.5rem;line-height:2rem}}.tag-edit-icon{margin-top:2rem!important}\n"] }]
91
+ args: [{ selector: 'pw-vault-section', template: "<section class=\"vault-section\">\n <div class=\"skewed-bg\"></div>\n\n <!-- Edit Icon (top-right) -->\n\n <div class=\"container\">\n <div class=\"row align-items-center vault-row\">\n <!-- Left Content -->\n <div class=\"col-lg-6 col-12 text-content\">\n <div class=\"d-flex\">\n <h2 class=\"headline\">{{resourceTagLine || 'UPDATE ME ON ADMIN/DOMAINS MODULE'}}</h2>\n <i\n *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit tag-edit-icon in-page-edit-icon mt-4 ms-3 cursor-pointer\"\n title=\"Edit Resource\"\n (click)=\"openEditResourceModal()\"\n ></i>\n </div>\n <div class=\"description-content\">\n <p class=\"description\" [innerHTML]=\"resourceDescription || 'UPDATE ME ON ADMIN/DOMAINS MODULE.'\">\n </p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"col-lg-6 col-12 img-wrapper\">\n <ng-container *ngIf=\"resourceImage; else noVideo\">\n <img [src]=\"resourceImage\" alt=\"Vault Mockup\" class=\"img-fluid\" />\n </ng-container>\n\n <ng-template #noVideo>\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n<!-- Edit Modal -->\n<ng-template #editResourceModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Resources</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"mb-3\">\n <label class=\"form-label\">Tagline</label>\n <input [(ngModel)]=\"editingTagline\" class=\"form-control\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">Description</label>\n <textarea [(ngModel)]=\"editingDescription\" rows=\"4\" class=\"form-control\"></textarea>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">Resource Image</label>\n <div class=\"text-center d-flex flex-column align-items-center\">\n <img\n [src]=\"image || 'assets/img/resource/blog.png'\"\n (click)=\"openImageModal(imageCropContent)\"\n (keydown.enter)=\"openImageModal(imageCropContent)\"\n class=\"image w-100 mb-2\"\n alt=\"Resource Image\"\n (error)=\"handleImageError($event, 'assets/img/resource/blog.png')\" />\n\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block\" (click)=\"openImageModal(imageCropContent)\">\n {{ file || image ? 'Edit' : 'Add' }} Picture\n </a>\n <i *ngIf=\"image\"\n class=\"fa fa-trash delete-icon text-danger ms-2 cursor-pointer\"\n title=\"Remove Image\"\n (click)=\"removeImage()\"\n (keydown.enter)=\"removeImage()\"></i>\n </div>\n </div>\n </div>\n\n </div>\n <div class=\"modal-footer\">\n <button class=\"btn btn-primary\" (click)=\"saveResourceContent(modal)\">Save</button>\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n </div>\n</ng-template>\n\n\n\n<ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Picture</h5>\n <button type=\"button\" class=\"btn-close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file.</small>\n <pw-image-cropper\n [aspectRatio]=\"'dynamic'\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"modal.close()\">\n </pw-image-cropper>\n </div>\n</ng-template>\n", styles: [".vault-section{position:relative;padding:5rem 0;color:#fff;background:linear-gradient(90deg,var(--first) 0%,#a8e1fb 100%);overflow:hidden}.vault-section:after{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:61%;background:#fff;clip-path:polygon(0 18%,100% 0%,100% 100%,0% 100%);z-index:1}.vault-section .container{position:relative;z-index:2}.vault-section .row{min-height:600px;align-items:center}.vault-section .text-content{max-width:550px;height:100%;display:flex;flex-direction:column;justify-content:center}.vault-section .text-content .headline{font-weight:500;color:#fff!important;font-size:4.5rem!important}.vault-section .text-content .description{font-size:2rem;line-height:3rem;font-weight:400;color:var(--text-color, black);margin-bottom:1rem}.vault-section .text-content .description strong{font-weight:700}.vault-section .text-content .cta-btn{display:inline-block;background:var(--text-color, black);color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.vault-section .text-content .cta-btn:hover{background-color:#fff!important;color:var(--text-color, black)!important}.vault-section .img-wrapper{text-align:center}.vault-section .img-wrapper img,.vault-section .img-wrapper pw-no-data{max-width:800px;max-height:800px;height:auto}@media (width >= 991px){.vault-section img,.vault-section pw-no-data{max-width:800px;width:100%;height:auto;position:relative;top:11.6rem}.vault-section .description-content{max-width:500px;position:absolute;margin-top:31rem!important}.vault-section .headline{margin-bottom:21rem!important}}@media (width >= 1100px){.vault-section img,.vault-section pw-no-data{left:25%}}@media (width >= 991px) and (width <= 1100px){.vault-section img,.vault-section pw-no-data{top:12.9rem!important;left:19%}}@media (width <= 991px){.vault-section .vault-row{text-align:center;justify-content:center}.vault-section img,.vault-section pw-no-data{top:5rem!important;position:relative}}@media (width <= 768px){.vault-section .text-content{text-align:center;margin-bottom:2rem;margin-top:3rem!important}.vault-section .text-content .headline{font-size:3rem!important}.vault-section .text-content .description{font-size:1.5rem;line-height:2rem}}.tag-edit-icon{margin-top:2rem!important}\n"] }]
92
92
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.NgbModal }, { type: i2.AdminService }], propDecorators: { editResourceModalRef: [{
93
93
  type: ViewChild,
94
94
  args: ['editResourceModal']
95
95
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmF1bHQtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Jlc291cmNlcy92YXVsdC1zZWN0aW9uL3ZhdWx0LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1tb2R1bGUvc3JjL2xpYi9wdWJsaWMvY29tcG9uZW50cy9yZXNvdXJjZXMvdmF1bHQtc2VjdGlvbi92YXVsdC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQXNCdkQsWUFDSSxRQUFrQixFQUNELFlBQXNCLEVBQ3RCLFlBQTBCO1FBRTNDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUhDLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBckIvQyxvQkFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztRQUMxRSxrQkFBYSxHQUFHLElB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UzsrQkFDSSxrQkFBa0I7K0hBS0ksb0JBQW9CO3NCQUFuRCxTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IFRPS0VOX0tFWSwgVXNlciB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IEhlbHBlclNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvaGVscGVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2Uvc2hhcmVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy12YXVsdC1zZWN0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmF1bHQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdmF1bHQtc2VjdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFZhdWx0U2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2VkaXRSZXNvdXJjZU1vZGFsJykgZWRpdFJlc291cmNlTW9kYWxSZWYhOiBUZW1wbGF0ZVJlZjxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG5cbiAgICBjb21wYW55TmFtZTtcbiAgICByZXNvdXJjZVRhZ0xpbmUgPSB0aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWcucmVzb3VyY2VzLnJlc291cmNlc190YWdsaW5lO1xuICAgIHJlc291cmNlSW1hZ2UgPSB0aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWcucmVzb3VyY2VzLnJlc291cmNlc19pbWFnZS51cmw7XG4gICAgcmVzb3VyY2VEZXNjcmlwdGlvbiA9IHRoaXMuYXBwQ29uZmlnLnBhZ2VzX2NvbmZpZy5yZXNvdXJjZXMucmVzb3VyY2VzX2Rlc2NyaXB0aW9uO1xuICAgIGRvbWFpbklkID0gdGhpcy5hcHBDb25maWcuZG9tYWluX2lkO1xuXG4gICAgaW1hZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIGZpbGU6IEZpbGUgfCBudWxsID0gbnVsbDtcbiAgICBpbWFnZU1vZGFsUmVmO1xuXG4gICAgZWRpdGluZ1RhZ2xpbmUgPSAnJztcbiAgICBlZGl0aW5nRGVzY3JpcHRpb24gPSAnJztcblxuICAgIHVzZXJMb2dnZWRJbjogYm9vbGVhbjtcbiAgICBzdWJzY3JpcHRpb25JZDogc3RyaW5nO1xuXG4gICAgdXNlcjogVXNlcjtcbiAgICBwcmV2aWV3UmVzb3VyY2VJbWFnZTogeyB1cmw6IHN0cmluZzsgbmFtZTogc3RyaW5nIH07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogTmdiTW9kYWwsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtJChUT0tFTl9LRVkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy51c2VyTG9nZ2VkSW4gPSAhIXJlcztcbiAgICAgICAgICAgIGlmICh0aGlzLnVzZXJMb2dnZWRJbikge1xuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0kKCdwcm9kdWN0Jykuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXMgPyBKU09OLnBhcnNlKHJlcykgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gZGF0YT8uc3Vic2NyaXB0aW9uSWQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS5nZXRVc2VySW5mbygpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyID0gZGF0YTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucHJldmlld1Jlc291cmNlSW1hZ2UgPSB7XG4gICAgICAgICAgICB1cmw6IHRoaXMuYXBwQ29uZmlnLnBhZ2VzX2NvbmZpZy5yZXNvdXJjZXMucmVzb3VyY2VzX2ltYWdlLnVybCB8fCAnJyxcbiAgICAgICAgICAgIG5hbWU6ICdyZXNvdXJjZXNfaW1hZ2UucG5nJ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvbXBhbnlOYW1lID0gdGhpcy5hcHBDb25maWc/LmNvbXBhbnkubmFtZTtcbiAgICB9XG5cbiAgICBvcGVuRWRpdFJlc291cmNlTW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ1RhZ2xpbmUgPSB0aGlzLnJlc291cmNlVGFnTGluZTtcbiAgICAgICAgdGhpcy5lZGl0aW5nRGVzY3JpcHRpb24gPSB0aGlzLnJlc291cmNlRGVzY3JpcHRpb247XG4gICAgICAgIHRoaXMuaW1hZ2UgPSB0aGlzLnJlc291cmNlSW1hZ2U7XG4gICAgICAgIHRoaXMuZmlsZSA9IG51bGw7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5lZGl0UmVzb3VyY2VNb2RhbFJlZiwgeyBjZW50ZXJlZDogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBzYXZlUmVzb3VyY2VDb250ZW50KG1vZGFsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdzdWJzY3JpcHRpb25faWQnLCB0aGlzLnN1YnNjcmlwdGlvbklkKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdyZXNvdXJjZXNfdGFnbGluZScsIHRoaXMuZWRpdGluZ1RhZ2xpbmUgfHwgJycpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Jlc291cmNlc19kZXNjcmlwdGlvbicsIHRoaXMuZWRpdGluZ0Rlc2NyaXB0aW9uIHx8ICcnKTtcblxuICAgICAgICBpZiAodGhpcy5maWxlKSB7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Jlc291cmNlc19pbWFnZScsIHRoaXMuZmlsZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaW1hZ2UpIHtcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgncmVtb3ZlX3Jlc291cmNlc19pbWFnZScsICd0cnVlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuYXBwQ29uZmlnPy5kb21haW5faWQsIGZvcm1EYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZVRhZ0xpbmUgPSB0aGlzLmVkaXRpbmdUYWdsaW5lO1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZURlc2NyaXB0aW9uID0gdGhpcy5lZGl0aW5nRGVzY3JpcHRpb247XG4gICAgICAgICAgICB0aGlzLnJlc291cmNlSW1hZ2UgPSB0aGlzLmltYWdlO1xuICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdSZXNvdXJjZXMgdXBkYXRlZCcpO1xuICAgICAgICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3BlbkltYWdlTW9kYWwobW9kYWxUZW1wbGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmltYWdlTW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKG1vZGFsVGVtcGxhdGUsIHsgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCcgfSk7XG4gICAgfVxuXG4gICAgb25JbWFnZVNlbGVjdGVkKGJhc2U2NDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW1hZ2UgPSBiYXNlNjQ7XG4gICAgICAgIHRoaXMuZmlsZSA9IEhlbHBlclNlcnZpY2UuY29udmVydEJhc2U2NFRvRmlsZShiYXNlNjQpO1xuICAgICAgICB0aGlzLmltYWdlTW9kYWxSZWY/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSW1hZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW1hZ2UgPSBudWxsO1xuICAgICAgICB0aGlzLmZpbGUgPSBudWxsO1xuICAgIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwidmF1bHQtc2VjdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwic2tld2VkLWJnXCI+PC9kaXY+XG5cbiAgPCEtLSBFZGl0IEljb24gKHRvcC1yaWdodCkgLS0+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyIHZhdWx0LXJvd1wiPlxuICAgICAgPCEtLSBMZWZ0IENvbnRlbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgY29sLTEyIHRleHQtY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiaGVhZGxpbmVcIj57e3Jlc291cmNlVGFnTGluZSB8fCAnVVBEQVRFIE1FIE9OIEFETUlOL0RPTUFJTlMgTU9EVUxFJ319PC9oMj5cbiAgICAgICAgICA8aVxuICAgICAgICAgICpuZ0lmPVwidXNlckxvZ2dlZEluICYmIHVzZXI/LmF1dGg/LmdyYW50ZWRbJ1BhZ2VzLkFkbWluJ11cIlxuICAgICAgICAgIGNsYXNzPVwiZmEgZmEtZWRpdCB0YWctZWRpdC1pY29uIGluLXBhZ2UtZWRpdC1pY29uIG10LTQgbXMtMyBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgdGl0bGU9XCJFZGl0IFJlc291cmNlXCJcbiAgICAgICAgICAoY2xpY2spPVwib3BlbkVkaXRSZXNvdXJjZU1vZGFsKClcIlxuICAgICAgICA+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJkZXNjcmlwdGlvblwiIFtpbm5lckhUTUxdPVwicmVzb3VyY2VEZXNjcmlwdGlvbiB8fCAnVVBEQVRFIE1FIE9OIEFETUlOL0RPTUFJTlMgTU9EVUxFLidcIj5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFJpZ2h0IENvbnRlbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgY29sLTEyIGltZy13cmFwcGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNvdXJjZUltYWdlOyBlbHNlIG5vVmlkZW9cIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwicmVzb3VyY2VJbWFnZVwiIGFsdD1cIlZhdWx0IE1vY2t1cFwiIGNsYXNzPVwiaW1nLWZsdWlkXCIgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNub1ZpZGVvPlxuICAgICAgICAgIDxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiIFttZXNzYWdlXT1cIidBREQgTUUgT04gQURNSU4vRE9NQUlOUyBNT0RVTEUnIHwgdHJhbnNsb2NvXCI+PC9wdy1uby1kYXRhPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuXG48IS0tIEVkaXQgTW9kYWwgLS0+XG48bmctdGVtcGxhdGUgI2VkaXRSZXNvdXJjZU1vZGFsIGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+RWRpdCBSZXNvdXJjZXM8L2g1PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlRhZ2xpbmU8L2xhYmVsPlxuICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwiZWRpdGluZ1RhZ2xpbmVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5EZXNjcmlwdGlvbjwvbGFiZWw+XG4gICAgICA8dGV4dGFyZWEgWyhuZ01vZGVsKV09XCJlZGl0aW5nRGVzY3JpcHRpb25cIiByb3dzPVwiNFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+PC90ZXh0YXJlYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlJlc291cmNlIEltYWdlPC9sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBbc3JjXT1cImltYWdlIHx8ICdhc3NldHMvaW1nL3Jlc291cmNlL2Jsb2cucG5nJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZU1vZGFsKGltYWdlQ3JvcENvbnRlbnQpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvcGVuSW1hZ2VNb2RhbChpbWFnZUNyb3BDb250ZW50KVwiXG4gICAgICAgICAgY2xhc3M9XCJpbWFnZSB3LTEwMCBtYi0yXCJcbiAgICAgICAgICBhbHQ9XCJSZXNvdXJjZSBJbWFnZVwiXG4gICAgICAgICAgKGVycm9yKT1cImhhbmRsZUltYWdlRXJyb3IoJGV2ZW50LCAnYXNzZXRzL2ltZy9yZXNvdXJjZS9ibG9nLnBuZycpXCIgLz5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC0yXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiIChjbGljayk9XCJvcGVuSW1hZ2VNb2RhbChpbWFnZUNyb3BDb250ZW50KVwiPlxuICAgICAgICAgICAge3sgZmlsZSB8fCBpbWFnZSA/ICdFZGl0JyA6ICdBZGQnIH19IFBpY3R1cmVcbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgPGkgKm5nSWY9XCJpbWFnZVwiXG4gICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyIG1zLTJcIlxuICAgICAgICAgICAgdGl0bGU9XCJSZW1vdmUgSW1hZ2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUltYWdlKClcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlSW1hZ2UoKVwiXG4gICAgICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNhdmVSZXNvdXJjZUNvbnRlbnQobW9kYWwpXCI+U2F2ZTwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG5cblxuPG5nLXRlbXBsYXRlICNpbWFnZUNyb3BDb250ZW50IGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+VXBsb2FkIFBpY3R1cmU8L2g1PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8c21hbGw+WW91IGNhbiB1cGxvYWQgYSBKUEcsIEdJRiwgb3IgUE5HIGZpbGUuPC9zbWFsbD5cbiAgICA8cHctaW1hZ2UtY3JvcHBlclxuICAgICAgW2FzcGVjdFJhdGlvXT1cIidkeW5hbWljJ1wiXG4gICAgICAoaW1hZ2VTZWxlY3Rpb25FdmVudCk9XCJvbkltYWdlU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAoY2xvc2VFdmVudCk9XCJtb2RhbC5jbG9zZSgpXCI+XG4gICAgPC9wdy1pbWFnZS1jcm9wcGVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmF1bHQtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Jlc291cmNlcy92YXVsdC1zZWN0aW9uL3ZhdWx0LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1tb2R1bGUvc3JjL2xpYi9wdWJsaWMvY29tcG9uZW50cy9yZXNvdXJjZXMvdmF1bHQtc2VjdGlvbi92YXVsdC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQXNCdkQsWUFDSSxRQUFrQixFQUNELFlBQXNCLEVBQ3RCLFlBQTBCO1FBRTNDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUhDLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBckIvQyxvQkFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztRQUMxRSxrQkFBYSxHQUFHLElB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UzsrQkFDSSxrQkFBa0I7K0hBS0ksb0JBQW9CO3NCQUFuRCxTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IFRPS0VOX0tFWSwgVXNlciB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IEhlbHBlclNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvaGVscGVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2Uvc2hhcmVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy12YXVsdC1zZWN0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmF1bHQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdmF1bHQtc2VjdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFZhdWx0U2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2VkaXRSZXNvdXJjZU1vZGFsJykgZWRpdFJlc291cmNlTW9kYWxSZWYhOiBUZW1wbGF0ZVJlZjxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG5cbiAgICBjb21wYW55TmFtZTtcbiAgICByZXNvdXJjZVRhZ0xpbmUgPSB0aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWcucmVzb3VyY2VzLnJlc291cmNlc190YWdsaW5lO1xuICAgIHJlc291cmNlSW1hZ2UgPSB0aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWcucmVzb3VyY2VzLnJlc291cmNlc19pbWFnZS51cmw7XG4gICAgcmVzb3VyY2VEZXNjcmlwdGlvbiA9IHRoaXMuYXBwQ29uZmlnLnBhZ2VzX2NvbmZpZy5yZXNvdXJjZXMucmVzb3VyY2VzX2Rlc2NyaXB0aW9uO1xuICAgIGRvbWFpbklkID0gdGhpcy5hcHBDb25maWcuZG9tYWluX2lkO1xuXG4gICAgaW1hZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIGZpbGU6IEZpbGUgfCBudWxsID0gbnVsbDtcbiAgICBpbWFnZU1vZGFsUmVmO1xuXG4gICAgZWRpdGluZ1RhZ2xpbmUgPSAnJztcbiAgICBlZGl0aW5nRGVzY3JpcHRpb24gPSAnJztcblxuICAgIHVzZXJMb2dnZWRJbjogYm9vbGVhbjtcbiAgICBzdWJzY3JpcHRpb25JZDogc3RyaW5nO1xuXG4gICAgdXNlcjogVXNlcjtcbiAgICBwcmV2aWV3UmVzb3VyY2VJbWFnZTogeyB1cmw6IHN0cmluZzsgbmFtZTogc3RyaW5nIH07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogTmdiTW9kYWwsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtJChUT0tFTl9LRVkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy51c2VyTG9nZ2VkSW4gPSAhIXJlcztcbiAgICAgICAgICAgIGlmICh0aGlzLnVzZXJMb2dnZWRJbikge1xuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0kKCdwcm9kdWN0Jykuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXMgPyBKU09OLnBhcnNlKHJlcykgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gZGF0YT8uc3Vic2NyaXB0aW9uSWQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS5nZXRVc2VySW5mbygpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyID0gZGF0YTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucHJldmlld1Jlc291cmNlSW1hZ2UgPSB7XG4gICAgICAgICAgICB1cmw6IHRoaXMuYXBwQ29uZmlnLnBhZ2VzX2NvbmZpZy5yZXNvdXJjZXMucmVzb3VyY2VzX2ltYWdlLnVybCB8fCAnJyxcbiAgICAgICAgICAgIG5hbWU6ICdyZXNvdXJjZXNfaW1hZ2UucG5nJ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvbXBhbnlOYW1lID0gdGhpcy5hcHBDb25maWc/LmNvbXBhbnkubmFtZTtcbiAgICB9XG5cbiAgICBvcGVuRWRpdFJlc291cmNlTW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ1RhZ2xpbmUgPSB0aGlzLnJlc291cmNlVGFnTGluZTtcbiAgICAgICAgdGhpcy5lZGl0aW5nRGVzY3JpcHRpb24gPSB0aGlzLnJlc291cmNlRGVzY3JpcHRpb247XG4gICAgICAgIHRoaXMuaW1hZ2UgPSB0aGlzLnJlc291cmNlSW1hZ2U7XG4gICAgICAgIHRoaXMuZmlsZSA9IG51bGw7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5lZGl0UmVzb3VyY2VNb2RhbFJlZiwgeyBjZW50ZXJlZDogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBzYXZlUmVzb3VyY2VDb250ZW50KG1vZGFsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdzdWJzY3JpcHRpb25faWQnLCB0aGlzLnN1YnNjcmlwdGlvbklkKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdyZXNvdXJjZXNfdGFnbGluZScsIHRoaXMuZWRpdGluZ1RhZ2xpbmUgfHwgJycpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Jlc291cmNlc19kZXNjcmlwdGlvbicsIHRoaXMuZWRpdGluZ0Rlc2NyaXB0aW9uIHx8ICcnKTtcblxuICAgICAgICBpZiAodGhpcy5maWxlKSB7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Jlc291cmNlc19pbWFnZScsIHRoaXMuZmlsZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaW1hZ2UpIHtcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgncmVtb3ZlX3Jlc291cmNlc19pbWFnZScsICd0cnVlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuYXBwQ29uZmlnPy5kb21haW5faWQsIGZvcm1EYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZVRhZ0xpbmUgPSB0aGlzLmVkaXRpbmdUYWdsaW5lO1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZURlc2NyaXB0aW9uID0gdGhpcy5lZGl0aW5nRGVzY3JpcHRpb247XG4gICAgICAgICAgICB0aGlzLnJlc291cmNlSW1hZ2UgPSB0aGlzLmltYWdlO1xuICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdSZXNvdXJjZXMgdXBkYXRlZCcpO1xuICAgICAgICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3BlbkltYWdlTW9kYWwobW9kYWxUZW1wbGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmltYWdlTW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKG1vZGFsVGVtcGxhdGUsIHsgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCcgfSk7XG4gICAgfVxuXG4gICAgb25JbWFnZVNlbGVjdGVkKGJhc2U2NDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW1hZ2UgPSBiYXNlNjQ7XG4gICAgICAgIHRoaXMuZmlsZSA9IEhlbHBlclNlcnZpY2UuY29udmVydEJhc2U2NFRvRmlsZShiYXNlNjQpO1xuICAgICAgICB0aGlzLmltYWdlTW9kYWxSZWY/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSW1hZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW1hZ2UgPSBudWxsO1xuICAgICAgICB0aGlzLmZpbGUgPSBudWxsO1xuICAgIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwidmF1bHQtc2VjdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwic2tld2VkLWJnXCI+PC9kaXY+XG5cbiAgPCEtLSBFZGl0IEljb24gKHRvcC1yaWdodCkgLS0+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyIHZhdWx0LXJvd1wiPlxuICAgICAgPCEtLSBMZWZ0IENvbnRlbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgY29sLTEyIHRleHQtY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiaGVhZGxpbmVcIj57e3Jlc291cmNlVGFnTGluZSB8fCAnVVBEQVRFIE1FIE9OIEFETUlOL0RPTUFJTlMgTU9EVUxFJ319PC9oMj5cbiAgICAgICAgICA8aVxuICAgICAgICAgICpuZ0lmPVwidXNlckxvZ2dlZEluICYmIHVzZXI/LmF1dGg/LmdyYW50ZWRbJ1BhZ2VzLkFkbWluJ11cIlxuICAgICAgICAgIGNsYXNzPVwiZmEgZmEtZWRpdCB0YWctZWRpdC1pY29uIGluLXBhZ2UtZWRpdC1pY29uIG10LTQgbXMtMyBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgdGl0bGU9XCJFZGl0IFJlc291cmNlXCJcbiAgICAgICAgICAoY2xpY2spPVwib3BlbkVkaXRSZXNvdXJjZU1vZGFsKClcIlxuICAgICAgICA+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJkZXNjcmlwdGlvblwiIFtpbm5lckhUTUxdPVwicmVzb3VyY2VEZXNjcmlwdGlvbiB8fCAnVVBEQVRFIE1FIE9OIEFETUlOL0RPTUFJTlMgTU9EVUxFLidcIj5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFJpZ2h0IENvbnRlbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgY29sLTEyIGltZy13cmFwcGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNvdXJjZUltYWdlOyBlbHNlIG5vVmlkZW9cIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwicmVzb3VyY2VJbWFnZVwiIGFsdD1cIlZhdWx0IE1vY2t1cFwiIGNsYXNzPVwiaW1nLWZsdWlkXCIgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNub1ZpZGVvPlxuICAgICAgICAgIDxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiIFttZXNzYWdlXT1cIidBREQgTUUgT04gQURNSU4vRE9NQUlOUyBNT0RVTEUnIHwgdHJhbnNsb2NvXCI+PC9wdy1uby1kYXRhPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuXG48IS0tIEVkaXQgTW9kYWwgLS0+XG48bmctdGVtcGxhdGUgI2VkaXRSZXNvdXJjZU1vZGFsIGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+RWRpdCBSZXNvdXJjZXM8L2g1PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlRhZ2xpbmU8L2xhYmVsPlxuICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwiZWRpdGluZ1RhZ2xpbmVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5EZXNjcmlwdGlvbjwvbGFiZWw+XG4gICAgICA8dGV4dGFyZWEgWyhuZ01vZGVsKV09XCJlZGl0aW5nRGVzY3JpcHRpb25cIiByb3dzPVwiNFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+PC90ZXh0YXJlYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlJlc291cmNlIEltYWdlPC9sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBbc3JjXT1cImltYWdlIHx8ICdhc3NldHMvaW1nL3Jlc291cmNlL2Jsb2cucG5nJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZU1vZGFsKGltYWdlQ3JvcENvbnRlbnQpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvcGVuSW1hZ2VNb2RhbChpbWFnZUNyb3BDb250ZW50KVwiXG4gICAgICAgICAgY2xhc3M9XCJpbWFnZSB3LTEwMCBtYi0yXCJcbiAgICAgICAgICBhbHQ9XCJSZXNvdXJjZSBJbWFnZVwiXG4gICAgICAgICAgKGVycm9yKT1cImhhbmRsZUltYWdlRXJyb3IoJGV2ZW50LCAnYXNzZXRzL2ltZy9yZXNvdXJjZS9ibG9nLnBuZycpXCIgLz5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC0yXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiIChjbGljayk9XCJvcGVuSW1hZ2VNb2RhbChpbWFnZUNyb3BDb250ZW50KVwiPlxuICAgICAgICAgICAge3sgZmlsZSB8fCBpbWFnZSA/ICdFZGl0JyA6ICdBZGQnIH19IFBpY3R1cmVcbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgPGkgKm5nSWY9XCJpbWFnZVwiXG4gICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyIG1zLTIgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgdGl0bGU9XCJSZW1vdmUgSW1hZ2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUltYWdlKClcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlSW1hZ2UoKVwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwic2F2ZVJlc291cmNlQ29udGVudChtb2RhbClcIj5TYXZlPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuXG48bmctdGVtcGxhdGUgI2ltYWdlQ3JvcENvbnRlbnQgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5VcGxvYWQgUGljdHVyZTwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxzbWFsbD5Zb3UgY2FuIHVwbG9hZCBhIEpQRywgR0lGLCBvciBQTkcgZmlsZS48L3NtYWxsPlxuICAgIDxwdy1pbWFnZS1jcm9wcGVyXG4gICAgICBbYXNwZWN0UmF0aW9dPVwiJ2R5bmFtaWMnXCJcbiAgICAgIChpbWFnZVNlbGVjdGlvbkV2ZW50KT1cIm9uSW1hZ2VTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgIChjbG9zZUV2ZW50KT1cIm1vZGFsLmNsb3NlKClcIj5cbiAgICA8L3B3LWltYWdlLWNyb3BwZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==