@pepperi-addons/ngx-composite-lib 0.4.2-beta.66 → 0.4.2-beta.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/layout-builder/layout-builder.component.mjs +3 -3
- package/esm2020/layout-builder/layout-builder.service.mjs +10 -3
- package/esm2020/layout-builder/section/section.component.mjs +2 -2
- package/esm2020/layout-builder/section-block/section-block.component.mjs +3 -3
- package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs +15 -8
- package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs +15 -8
- package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -1
- package/layout-builder/layout-builder.service.d.ts +3 -2
- package/package.json +1 -1
|
@@ -158,10 +158,10 @@ export class PepLayoutBuilderComponent extends BaseDestroyerDirective {
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
PepLayoutBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutBuilderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.TranslateService }, { token: i2.PepLayoutBuilderService }, { token: i3.PepAddonService }], target: i0.ɵɵFactoryTarget.Component });
|
|
161
|
-
PepLayoutBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepLayoutBuilderComponent, selector: "pep-layout-builder", inputs: { availableBlocksForDrag: "availableBlocksForDrag" }, outputs: { backClick: "backClick", blockEditorChange: "blockEditorChange", blockAdded: "blockAdded", blocksRemoved: "blocksRemoved" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "layoutBuilderWrapper", first: true, predicate: ["layoutBuilderWrapper"], descendants: true, static: true }, { propertyName: "sideBarComponent", first: true, predicate: PepSideBarComponent, descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"lockScreen\" class=\"cdk-overlay-backdrop cdk-overlay-dark-backdrop cdk-overlay-backdrop-showing\"></div>\n\n<pep-page-layout [showShadow]=\"!previewMode && currentEditor !== null\" >\n <div pep-side-area *ngIf=\"!previewMode && currentEditor\" style=\"height: inherit;\">\n <pep-side-bar #sideBar [ignoreResize]=\"true\" (stateChange)=\"onSidebarStateChange($event)\">\n <div header-content class=\"side-bar-title\">\n <pep-button class=\"back-button\" sizeType=\"sm\" iconName=\"arrow_left_alt\" (buttonClick)=\"onNavigateBackFromEditor();\"></pep-button>\n <div class=\"title title-lg ellipsis\" [title]=\"currentEditor?.title\">\n <span>{{ currentEditor?.title }}</span>\n </div>\n </div>\n <div class=\"layout-builder-editor-wrapper\">\n <pep-layout-editor *ngIf=\"currentEditor?.type === 'layout-builder'\" [availableBlocksForDrag]=\"availableBlocksForDrag\"\n [hostObject]=\"currentEditor?.hostObject\" (hostObjectChange)=\"onLayoutEditorObjectChange($event)\"\n >\n <ng-container layout-editor-top-content>\n <ng-content select=\"[layout-editor-top-content]\"></ng-content>\n </ng-container>\n <ng-container layout-editor-bottom-content>\n <ng-content select=\"[layout-editor-bottom-content]\"></ng-content>\n </ng-container>\n </pep-layout-editor>\n \n <section-editor *ngIf=\"currentEditor?.type === 'section'\" \n [hostObject]=\"currentEditor?.hostObject\" (hostObjectChange)=\"onSectionEditorObjectChange($event)\"></section-editor>\n \n <div *ngIf=\"currentEditor?.type === 'block'\" class=\"layout-builder-editor-container\">\n <ng-content select=\"[block-editor-content]\"></ng-content>\n </div>\n </div>\n </pep-side-bar>\n </div>\n <ng-container pep-main-area>\n <div class=\"main-area-container\" [ngClass]=\"{'preview-mode': previewMode }\">\n <div class=\"header-container\" >\n <ng-container *ngIf=\"!previewMode; then editorTitleTemplate; else previewTitleTemplate\"></ng-container>\n <ng-template #editorTitleTemplate>\n <div>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.VIEWPORT_WIDTH' | translate)}}: </span>\n <span class=\"body-xs\"><b>{{viewportWidth}}</b></span>\n </div>\n </ng-template>\n <ng-template #previewTitleTemplate>\n <div class=\"preview-title body-sm\">\n <span>{{('LAYOUT_BUILDER.PREVIEW_TITLE' | translate)}}</span>\n </div>\n </ng-template>\n\n <div class=\"header-group-btn\">\n <pep-group-buttons [buttons]=\"screenTypes\" [selectedButtonKey]=\"selectedScreenType\" sizeType=\"sm\" viewType=\"toggle\" >\n </pep-group-buttons>\n </div>\n\n <ng-container *ngIf=\"!previewMode; then editorButtonsTemplate; else previewButtonsTemplate\"></ng-container>\n <ng-template #editorButtonsTemplate>\n <div class=\"header-end\">\n <pep-button key='Preview' [value]=\"'ACTIONS.PREVIEW' | translate\" sizeType=\"sm\" classNames=\"pep-spacing-element\" (buttonClick)=\"togglePreviewMode()\"></pep-button>\n <ng-content select=\"[header-end-content]\"></ng-content>\n </div>\n </ng-template>\n <ng-template #previewButtonsTemplate>\n <a class=\"color-link body-sm\" (click)=\"togglePreviewMode()\" href=\"javascript:void(0)\">{{('LAYOUT_BUILDER.PREVIEW_CLICK_HERE' | translate)}}</a> \n </ng-template>\n </div>\n <div #layoutBuilderWrapper class=\"layout-builder-wrapper\" [ngClass]=\"{'limit-min-width': selectedScreenType === 'Landscape' }\">\n <ng-content></ng-content>\n <div *ngIf=\"!previewMode\" class=\"backdrop\" [ngClass]=\"{'show-backdrop': currentEditor?.type === 'section' || currentEditor?.type === 'block'}\"></div>\n </div>\n </div>\n </ng-container>\n</pep-page-layout>", styles: [".side-bar-title{display:flex;padding-top:var(--pep-spacing-sm, .5rem)}.side-bar-title .back-button{margin-inline-end:var(--pep-spacing-sm, .5rem)}.side-bar-title .title{display:flex;align-items:center}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs{height:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header{position:sticky;top:calc(var(--pep-top-bar-spacing-top, 1.5rem) + var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));z-index:2}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header-pagination{display:none}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-labels{display:grid;grid-template-columns:1fr 1fr}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-labels .mat-tab-label{padding:0 var(--pep-spacing-md, .75rem)!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper{overflow:unset;margin:0;display:block}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper .mat-tab-body.mat-tab-body-active{overflow:unset}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper .mat-tab-body.mat-tab-body-active .mat-tab-body-content{overflow:unset;display:flex;flex-direction:column;padding-inline:0!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab{overflow:inherit;display:inherit;flex-direction:inherit;gap:var(--pep-spacing-lg, 1rem)}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab .group-buttons-container .toggle-buttons{width:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-textbox{margin-bottom:0!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container{padding-top:var(--pep-spacing-lg, 1rem);padding-bottom:var(--pep-spacing-lg, 1rem)}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group{overflow:inherit;display:inherit;flex-direction:inherit;gap:var(--pep-spacing-lg, 1rem);display:flex;flex-direction:column}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container .group-buttons-container .toggle-buttons,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group .group-buttons-container .toggle-buttons{width:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-textbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-textbox{margin-bottom:0!important}.layout-builder-editor-wrapper ::ng-deep .editor-title{display:block;font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-bold, 600)!important;font-size:var(--pep-font-size-xl, 1.25rem)!important;line-height:var(--pep-line-height-xl, 1.5625rem)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layout-builder-editor-wrapper ::ng-deep .editor-sub-title{display:block;font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400)!important;font-size:var(--pep-font-size-md, 1rem)!important;line-height:var(--pep-line-height-md, 1.25rem)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layout-builder-editor-wrapper ::ng-deep .editor-separator{margin-top:var(--pep-spacing-lg, 1rem);border-bottom:1px solid hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title{margin-bottom:.5rem!important;min-height:unset!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container{background:unset!important;padding-left:unset!important;padding-right:unset!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-inner-container,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-inner-container{margin-left:0!important;margin-right:0!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-layout{font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400);font-size:var(--pep-font-size-lg, 1.125rem)!important;line-height:var(--pep-line-height-lg, 1.40625rem)!important;font-weight:var(--pep-font-weight-bold, 600)!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout .mat-checkbox-label span,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-layout .mat-checkbox-label span{margin:0 .5rem}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout{font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400);font-size:var(--pep-font-size-md, 1rem)!important;line-height:var(--pep-line-height-md, 1.25rem)!important;font-weight:var(--pep-font-weight-normal, 400)!important}.main-area-container{min-height:100%;display:grid;grid-template-rows:auto 1fr}.main-area-container .header-container{display:flex;position:sticky;top:0;z-index:100;height:3rem;align-items:center;justify-content:space-between;padding:0 var(--pep-spacing-sm, .5rem)}.main-area-container .header-container .header-group-btn{display:flex;justify-content:space-around;align-items:center}.main-area-container .header-container .header-end{display:flex;justify-content:flex-end;gap:var(--pep-spacing-sm, .5rem)}.main-area-container .header-container ::ng-deep .group-buttons-container .toggle-buttons{width:16rem}.main-area-container .layout-builder-wrapper{width:100%;margin:0 auto;position:relative}.main-area-container .layout-builder-wrapper.limit-min-width{min-width:800px}.main-area-container .layout-builder-wrapper .backdrop{position:absolute;width:100%;height:100%;top:0;z-index:10;display:none}.main-area-container .layout-builder-wrapper .backdrop.show-backdrop{display:block}\n", ".layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.main-area-container{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.04)}.main-area-container .header-container{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:var(--pep-shadow-sm-offset, 0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.main-area-container .header-container .header-title{color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.7)}.main-area-container .header-container .size-limit-container{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.12)}.main-area-container.preview-mode .header-container{background:unset;background-color:hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.main-area-container.preview-mode .header-container .preview-title,.main-area-container.preview-mode .header-container .color-link{color:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.main-area-container.preview-mode .layout-builder-wrapper{overflow:auto}.main-area-container .layout-builder-wrapper{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:var(--pep-shadow-md-offset, 0 .5rem 1rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.main-area-container .layout-builder-wrapper .backdrop{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.5)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PepPageLayoutComponent, selector: "pep-page-layout", inputs: ["addPadding", "showShadow"] }, { kind: "component", type: i6.PepSideBarComponent, selector: "pep-side-bar", inputs: ["position", "ignoreResize", "showHeader", "showFooter", "showToggle", "useAsWebComponent"], outputs: ["stateChange"] }, { kind: "component", type: i7.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i8.PepGroupButtonsComponent, selector: "pep-group-buttons", inputs: ["viewType", "styleType", "sizeType", "buttons", "buttonsDisabled", "supportUnselect", "selectedButtonKey", "stretch"], outputs: ["buttonClick"] }, { kind: "component", type: i9.PepLayoutEditorComponent, selector: "pep-layout-editor", inputs: ["availableBlocksForDrag", "hostObject"], outputs: ["hostObjectChange"] }, { kind: "component", type: i10.SectionEditorComponent, selector: "section-editor", inputs: ["hostObject"], outputs: ["hostObjectChange"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
161
|
+
PepLayoutBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepLayoutBuilderComponent, selector: "pep-layout-builder", inputs: { availableBlocksForDrag: "availableBlocksForDrag" }, outputs: { backClick: "backClick", blockEditorChange: "blockEditorChange", blockAdded: "blockAdded", blocksRemoved: "blocksRemoved" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "layoutBuilderWrapper", first: true, predicate: ["layoutBuilderWrapper"], descendants: true, static: true }, { propertyName: "sideBarComponent", first: true, predicate: PepSideBarComponent, descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"lockScreen\" class=\"cdk-overlay-backdrop cdk-overlay-dark-backdrop cdk-overlay-backdrop-showing\"></div>\n\n<pep-page-layout [showShadow]=\"!previewMode && currentEditor !== null\" >\n <div pep-side-area *ngIf=\"!previewMode && currentEditor\" style=\"height: inherit;\">\n <pep-side-bar #sideBar [ignoreResize]=\"true\" (stateChange)=\"onSidebarStateChange($event)\">\n <div header-content class=\"side-bar-title\">\n <pep-button class=\"back-button\" sizeType=\"sm\" iconName=\"arrow_left_alt\" (buttonClick)=\"onNavigateBackFromEditor();\"></pep-button>\n <div class=\"title title-lg ellipsis\" [title]=\"currentEditor.title\">\n <span>{{ currentEditor.title }}</span>\n </div>\n </div>\n <div class=\"layout-builder-editor-wrapper\">\n <pep-layout-editor *ngIf=\"currentEditor.type === 'layout-builder'\" [availableBlocksForDrag]=\"availableBlocksForDrag\"\n [hostObject]=\"currentEditor.hostObject\" (hostObjectChange)=\"onLayoutEditorObjectChange($event)\"\n >\n <ng-container layout-editor-top-content>\n <ng-content select=\"[layout-editor-top-content]\"></ng-content>\n </ng-container>\n <ng-container layout-editor-bottom-content>\n <ng-content select=\"[layout-editor-bottom-content]\"></ng-content>\n </ng-container>\n </pep-layout-editor>\n \n <section-editor *ngIf=\"currentEditor.type === 'section'\" \n [hostObject]=\"currentEditor.hostObject\" (hostObjectChange)=\"onSectionEditorObjectChange($event)\"></section-editor>\n \n <div *ngIf=\"currentEditor.type === 'block'\" class=\"layout-builder-editor-container\">\n <ng-content select=\"[block-editor-content]\"></ng-content>\n </div>\n </div>\n </pep-side-bar>\n </div>\n <ng-container pep-main-area>\n <div class=\"main-area-container\" [ngClass]=\"{'preview-mode': previewMode }\">\n <div class=\"header-container\" >\n <ng-container *ngIf=\"!previewMode; then editorTitleTemplate; else previewTitleTemplate\"></ng-container>\n <ng-template #editorTitleTemplate>\n <div>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.VIEWPORT_WIDTH' | translate)}}: </span>\n <span class=\"body-xs\"><b>{{viewportWidth}}</b></span>\n </div>\n </ng-template>\n <ng-template #previewTitleTemplate>\n <div class=\"preview-title body-sm\">\n <span>{{('LAYOUT_BUILDER.PREVIEW_TITLE' | translate)}}</span>\n </div>\n </ng-template>\n\n <div class=\"header-group-btn\">\n <pep-group-buttons [buttons]=\"screenTypes\" [selectedButtonKey]=\"selectedScreenType\" sizeType=\"sm\" viewType=\"toggle\" >\n </pep-group-buttons>\n </div>\n\n <ng-container *ngIf=\"!previewMode; then editorButtonsTemplate; else previewButtonsTemplate\"></ng-container>\n <ng-template #editorButtonsTemplate>\n <div class=\"header-end\">\n <pep-button key='Preview' [value]=\"'ACTIONS.PREVIEW' | translate\" sizeType=\"sm\" classNames=\"pep-spacing-element\" (buttonClick)=\"togglePreviewMode()\"></pep-button>\n <ng-content select=\"[header-end-content]\"></ng-content>\n </div>\n </ng-template>\n <ng-template #previewButtonsTemplate>\n <a class=\"color-link body-sm\" (click)=\"togglePreviewMode()\" href=\"javascript:void(0)\">{{('LAYOUT_BUILDER.PREVIEW_CLICK_HERE' | translate)}}</a> \n </ng-template>\n </div>\n <div #layoutBuilderWrapper class=\"layout-builder-wrapper\" [ngClass]=\"{'limit-min-width': selectedScreenType === 'Landscape' }\">\n <ng-content></ng-content>\n <div *ngIf=\"!previewMode\" class=\"backdrop\" [ngClass]=\"{'show-backdrop': currentEditor?.type === 'section' || currentEditor?.type === 'block'}\"></div>\n </div>\n </div>\n </ng-container>\n</pep-page-layout>", styles: [".side-bar-title{display:flex;padding-top:var(--pep-spacing-sm, .5rem)}.side-bar-title .back-button{margin-inline-end:var(--pep-spacing-sm, .5rem)}.side-bar-title .title{display:flex;align-items:center}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs{height:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header{position:sticky;top:calc(var(--pep-top-bar-spacing-top, 1.5rem) + var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));z-index:2}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header-pagination{display:none}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-labels{display:grid;grid-template-columns:1fr 1fr}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-labels .mat-tab-label{padding:0 var(--pep-spacing-md, .75rem)!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper{overflow:unset;margin:0;display:block}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper .mat-tab-body.mat-tab-body-active{overflow:unset}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper .mat-tab-body.mat-tab-body-active .mat-tab-body-content{overflow:unset;display:flex;flex-direction:column;padding-inline:0!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab{overflow:inherit;display:inherit;flex-direction:inherit;gap:var(--pep-spacing-lg, 1rem)}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab .group-buttons-container .toggle-buttons{width:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-textbox{margin-bottom:0!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container{padding-top:var(--pep-spacing-lg, 1rem);padding-bottom:var(--pep-spacing-lg, 1rem)}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group{overflow:inherit;display:inherit;flex-direction:inherit;gap:var(--pep-spacing-lg, 1rem);display:flex;flex-direction:column}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container .group-buttons-container .toggle-buttons,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group .group-buttons-container .toggle-buttons{width:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-textbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-textbox{margin-bottom:0!important}.layout-builder-editor-wrapper ::ng-deep .editor-title{display:block;font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-bold, 600)!important;font-size:var(--pep-font-size-xl, 1.25rem)!important;line-height:var(--pep-line-height-xl, 1.5625rem)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layout-builder-editor-wrapper ::ng-deep .editor-sub-title{display:block;font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400)!important;font-size:var(--pep-font-size-md, 1rem)!important;line-height:var(--pep-line-height-md, 1.25rem)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layout-builder-editor-wrapper ::ng-deep .editor-separator{margin-top:var(--pep-spacing-lg, 1rem);border-bottom:1px solid hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title{margin-bottom:.5rem!important;min-height:unset!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container{background:unset!important;padding-left:unset!important;padding-right:unset!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-inner-container,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-inner-container{margin-left:0!important;margin-right:0!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-layout{font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400);font-size:var(--pep-font-size-lg, 1.125rem)!important;line-height:var(--pep-line-height-lg, 1.40625rem)!important;font-weight:var(--pep-font-weight-bold, 600)!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout .mat-checkbox-label span,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-layout .mat-checkbox-label span{margin:0 .5rem}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout{font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400);font-size:var(--pep-font-size-md, 1rem)!important;line-height:var(--pep-line-height-md, 1.25rem)!important;font-weight:var(--pep-font-weight-normal, 400)!important}.main-area-container{min-height:100%;display:grid;grid-template-rows:auto 1fr}.main-area-container .header-container{display:flex;position:sticky;top:0;z-index:100;height:3rem;align-items:center;justify-content:space-between;padding:0 var(--pep-spacing-sm, .5rem)}.main-area-container .header-container .header-group-btn{display:flex;justify-content:space-around;align-items:center}.main-area-container .header-container .header-end{display:flex;justify-content:flex-end;gap:var(--pep-spacing-sm, .5rem)}.main-area-container .header-container ::ng-deep .group-buttons-container .toggle-buttons{width:16rem}.main-area-container .layout-builder-wrapper{width:100%;margin:0 auto;position:relative}.main-area-container .layout-builder-wrapper.limit-min-width{min-width:800px}.main-area-container .layout-builder-wrapper .backdrop{position:absolute;width:100%;height:100%;top:0;z-index:10;display:none}.main-area-container .layout-builder-wrapper .backdrop.show-backdrop{display:block}\n", ".layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.main-area-container{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.04)}.main-area-container .header-container{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:var(--pep-shadow-sm-offset, 0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.main-area-container .header-container .header-title{color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.7)}.main-area-container .header-container .size-limit-container{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.12)}.main-area-container.preview-mode .header-container{background:unset;background-color:hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.main-area-container.preview-mode .header-container .preview-title,.main-area-container.preview-mode .header-container .color-link{color:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.main-area-container.preview-mode .layout-builder-wrapper{overflow:auto}.main-area-container .layout-builder-wrapper{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:var(--pep-shadow-md-offset, 0 .5rem 1rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.main-area-container .layout-builder-wrapper .backdrop{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.5)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PepPageLayoutComponent, selector: "pep-page-layout", inputs: ["addPadding", "showShadow"] }, { kind: "component", type: i6.PepSideBarComponent, selector: "pep-side-bar", inputs: ["position", "ignoreResize", "showHeader", "showFooter", "showToggle", "useAsWebComponent"], outputs: ["stateChange"] }, { kind: "component", type: i7.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i8.PepGroupButtonsComponent, selector: "pep-group-buttons", inputs: ["viewType", "styleType", "sizeType", "buttons", "buttonsDisabled", "supportUnselect", "selectedButtonKey", "stretch"], outputs: ["buttonClick"] }, { kind: "component", type: i9.PepLayoutEditorComponent, selector: "pep-layout-editor", inputs: ["availableBlocksForDrag", "hostObject"], outputs: ["hostObjectChange"] }, { kind: "component", type: i10.SectionEditorComponent, selector: "section-editor", inputs: ["hostObject"], outputs: ["hostObjectChange"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
162
162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutBuilderComponent, decorators: [{
|
|
163
163
|
type: Component,
|
|
164
|
-
args: [{ selector: 'pep-layout-builder', template: "<div *ngIf=\"lockScreen\" class=\"cdk-overlay-backdrop cdk-overlay-dark-backdrop cdk-overlay-backdrop-showing\"></div>\n\n<pep-page-layout [showShadow]=\"!previewMode && currentEditor !== null\" >\n <div pep-side-area *ngIf=\"!previewMode && currentEditor\" style=\"height: inherit;\">\n <pep-side-bar #sideBar [ignoreResize]=\"true\" (stateChange)=\"onSidebarStateChange($event)\">\n <div header-content class=\"side-bar-title\">\n <pep-button class=\"back-button\" sizeType=\"sm\" iconName=\"arrow_left_alt\" (buttonClick)=\"onNavigateBackFromEditor();\"></pep-button>\n <div class=\"title title-lg ellipsis\" [title]=\"currentEditor?.title\">\n <span>{{ currentEditor?.title }}</span>\n </div>\n </div>\n <div class=\"layout-builder-editor-wrapper\">\n <pep-layout-editor *ngIf=\"currentEditor?.type === 'layout-builder'\" [availableBlocksForDrag]=\"availableBlocksForDrag\"\n [hostObject]=\"currentEditor?.hostObject\" (hostObjectChange)=\"onLayoutEditorObjectChange($event)\"\n >\n <ng-container layout-editor-top-content>\n <ng-content select=\"[layout-editor-top-content]\"></ng-content>\n </ng-container>\n <ng-container layout-editor-bottom-content>\n <ng-content select=\"[layout-editor-bottom-content]\"></ng-content>\n </ng-container>\n </pep-layout-editor>\n \n <section-editor *ngIf=\"currentEditor?.type === 'section'\" \n [hostObject]=\"currentEditor?.hostObject\" (hostObjectChange)=\"onSectionEditorObjectChange($event)\"></section-editor>\n \n <div *ngIf=\"currentEditor?.type === 'block'\" class=\"layout-builder-editor-container\">\n <ng-content select=\"[block-editor-content]\"></ng-content>\n </div>\n </div>\n </pep-side-bar>\n </div>\n <ng-container pep-main-area>\n <div class=\"main-area-container\" [ngClass]=\"{'preview-mode': previewMode }\">\n <div class=\"header-container\" >\n <ng-container *ngIf=\"!previewMode; then editorTitleTemplate; else previewTitleTemplate\"></ng-container>\n <ng-template #editorTitleTemplate>\n <div>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.VIEWPORT_WIDTH' | translate)}}: </span>\n <span class=\"body-xs\"><b>{{viewportWidth}}</b></span>\n </div>\n </ng-template>\n <ng-template #previewTitleTemplate>\n <div class=\"preview-title body-sm\">\n <span>{{('LAYOUT_BUILDER.PREVIEW_TITLE' | translate)}}</span>\n </div>\n </ng-template>\n\n <div class=\"header-group-btn\">\n <pep-group-buttons [buttons]=\"screenTypes\" [selectedButtonKey]=\"selectedScreenType\" sizeType=\"sm\" viewType=\"toggle\" >\n </pep-group-buttons>\n </div>\n\n <ng-container *ngIf=\"!previewMode; then editorButtonsTemplate; else previewButtonsTemplate\"></ng-container>\n <ng-template #editorButtonsTemplate>\n <div class=\"header-end\">\n <pep-button key='Preview' [value]=\"'ACTIONS.PREVIEW' | translate\" sizeType=\"sm\" classNames=\"pep-spacing-element\" (buttonClick)=\"togglePreviewMode()\"></pep-button>\n <ng-content select=\"[header-end-content]\"></ng-content>\n </div>\n </ng-template>\n <ng-template #previewButtonsTemplate>\n <a class=\"color-link body-sm\" (click)=\"togglePreviewMode()\" href=\"javascript:void(0)\">{{('LAYOUT_BUILDER.PREVIEW_CLICK_HERE' | translate)}}</a> \n </ng-template>\n </div>\n <div #layoutBuilderWrapper class=\"layout-builder-wrapper\" [ngClass]=\"{'limit-min-width': selectedScreenType === 'Landscape' }\">\n <ng-content></ng-content>\n <div *ngIf=\"!previewMode\" class=\"backdrop\" [ngClass]=\"{'show-backdrop': currentEditor?.type === 'section' || currentEditor?.type === 'block'}\"></div>\n </div>\n </div>\n </ng-container>\n</pep-page-layout>", styles: [".side-bar-title{display:flex;padding-top:var(--pep-spacing-sm, .5rem)}.side-bar-title .back-button{margin-inline-end:var(--pep-spacing-sm, .5rem)}.side-bar-title .title{display:flex;align-items:center}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs{height:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header{position:sticky;top:calc(var(--pep-top-bar-spacing-top, 1.5rem) + var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));z-index:2}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header-pagination{display:none}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-labels{display:grid;grid-template-columns:1fr 1fr}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-labels .mat-tab-label{padding:0 var(--pep-spacing-md, .75rem)!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper{overflow:unset;margin:0;display:block}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper .mat-tab-body.mat-tab-body-active{overflow:unset}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper .mat-tab-body.mat-tab-body-active .mat-tab-body-content{overflow:unset;display:flex;flex-direction:column;padding-inline:0!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab{overflow:inherit;display:inherit;flex-direction:inherit;gap:var(--pep-spacing-lg, 1rem)}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab .group-buttons-container .toggle-buttons{width:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-textbox{margin-bottom:0!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container{padding-top:var(--pep-spacing-lg, 1rem);padding-bottom:var(--pep-spacing-lg, 1rem)}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group{overflow:inherit;display:inherit;flex-direction:inherit;gap:var(--pep-spacing-lg, 1rem);display:flex;flex-direction:column}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container .group-buttons-container .toggle-buttons,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group .group-buttons-container .toggle-buttons{width:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-textbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-textbox{margin-bottom:0!important}.layout-builder-editor-wrapper ::ng-deep .editor-title{display:block;font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-bold, 600)!important;font-size:var(--pep-font-size-xl, 1.25rem)!important;line-height:var(--pep-line-height-xl, 1.5625rem)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layout-builder-editor-wrapper ::ng-deep .editor-sub-title{display:block;font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400)!important;font-size:var(--pep-font-size-md, 1rem)!important;line-height:var(--pep-line-height-md, 1.25rem)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layout-builder-editor-wrapper ::ng-deep .editor-separator{margin-top:var(--pep-spacing-lg, 1rem);border-bottom:1px solid hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title{margin-bottom:.5rem!important;min-height:unset!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container{background:unset!important;padding-left:unset!important;padding-right:unset!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-inner-container,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-inner-container{margin-left:0!important;margin-right:0!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-layout{font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400);font-size:var(--pep-font-size-lg, 1.125rem)!important;line-height:var(--pep-line-height-lg, 1.40625rem)!important;font-weight:var(--pep-font-weight-bold, 600)!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout .mat-checkbox-label span,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-layout .mat-checkbox-label span{margin:0 .5rem}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout{font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400);font-size:var(--pep-font-size-md, 1rem)!important;line-height:var(--pep-line-height-md, 1.25rem)!important;font-weight:var(--pep-font-weight-normal, 400)!important}.main-area-container{min-height:100%;display:grid;grid-template-rows:auto 1fr}.main-area-container .header-container{display:flex;position:sticky;top:0;z-index:100;height:3rem;align-items:center;justify-content:space-between;padding:0 var(--pep-spacing-sm, .5rem)}.main-area-container .header-container .header-group-btn{display:flex;justify-content:space-around;align-items:center}.main-area-container .header-container .header-end{display:flex;justify-content:flex-end;gap:var(--pep-spacing-sm, .5rem)}.main-area-container .header-container ::ng-deep .group-buttons-container .toggle-buttons{width:16rem}.main-area-container .layout-builder-wrapper{width:100%;margin:0 auto;position:relative}.main-area-container .layout-builder-wrapper.limit-min-width{min-width:800px}.main-area-container .layout-builder-wrapper .backdrop{position:absolute;width:100%;height:100%;top:0;z-index:10;display:none}.main-area-container .layout-builder-wrapper .backdrop.show-backdrop{display:block}\n", ".layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.main-area-container{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.04)}.main-area-container .header-container{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:var(--pep-shadow-sm-offset, 0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.main-area-container .header-container .header-title{color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.7)}.main-area-container .header-container .size-limit-container{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.12)}.main-area-container.preview-mode .header-container{background:unset;background-color:hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.main-area-container.preview-mode .header-container .preview-title,.main-area-container.preview-mode .header-container .color-link{color:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.main-area-container.preview-mode .layout-builder-wrapper{overflow:auto}.main-area-container .layout-builder-wrapper{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:var(--pep-shadow-md-offset, 0 .5rem 1rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.main-area-container .layout-builder-wrapper .backdrop{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.5)}\n"] }]
|
|
164
|
+
args: [{ selector: 'pep-layout-builder', template: "<div *ngIf=\"lockScreen\" class=\"cdk-overlay-backdrop cdk-overlay-dark-backdrop cdk-overlay-backdrop-showing\"></div>\n\n<pep-page-layout [showShadow]=\"!previewMode && currentEditor !== null\" >\n <div pep-side-area *ngIf=\"!previewMode && currentEditor\" style=\"height: inherit;\">\n <pep-side-bar #sideBar [ignoreResize]=\"true\" (stateChange)=\"onSidebarStateChange($event)\">\n <div header-content class=\"side-bar-title\">\n <pep-button class=\"back-button\" sizeType=\"sm\" iconName=\"arrow_left_alt\" (buttonClick)=\"onNavigateBackFromEditor();\"></pep-button>\n <div class=\"title title-lg ellipsis\" [title]=\"currentEditor.title\">\n <span>{{ currentEditor.title }}</span>\n </div>\n </div>\n <div class=\"layout-builder-editor-wrapper\">\n <pep-layout-editor *ngIf=\"currentEditor.type === 'layout-builder'\" [availableBlocksForDrag]=\"availableBlocksForDrag\"\n [hostObject]=\"currentEditor.hostObject\" (hostObjectChange)=\"onLayoutEditorObjectChange($event)\"\n >\n <ng-container layout-editor-top-content>\n <ng-content select=\"[layout-editor-top-content]\"></ng-content>\n </ng-container>\n <ng-container layout-editor-bottom-content>\n <ng-content select=\"[layout-editor-bottom-content]\"></ng-content>\n </ng-container>\n </pep-layout-editor>\n \n <section-editor *ngIf=\"currentEditor.type === 'section'\" \n [hostObject]=\"currentEditor.hostObject\" (hostObjectChange)=\"onSectionEditorObjectChange($event)\"></section-editor>\n \n <div *ngIf=\"currentEditor.type === 'block'\" class=\"layout-builder-editor-container\">\n <ng-content select=\"[block-editor-content]\"></ng-content>\n </div>\n </div>\n </pep-side-bar>\n </div>\n <ng-container pep-main-area>\n <div class=\"main-area-container\" [ngClass]=\"{'preview-mode': previewMode }\">\n <div class=\"header-container\" >\n <ng-container *ngIf=\"!previewMode; then editorTitleTemplate; else previewTitleTemplate\"></ng-container>\n <ng-template #editorTitleTemplate>\n <div>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.VIEWPORT_WIDTH' | translate)}}: </span>\n <span class=\"body-xs\"><b>{{viewportWidth}}</b></span>\n </div>\n </ng-template>\n <ng-template #previewTitleTemplate>\n <div class=\"preview-title body-sm\">\n <span>{{('LAYOUT_BUILDER.PREVIEW_TITLE' | translate)}}</span>\n </div>\n </ng-template>\n\n <div class=\"header-group-btn\">\n <pep-group-buttons [buttons]=\"screenTypes\" [selectedButtonKey]=\"selectedScreenType\" sizeType=\"sm\" viewType=\"toggle\" >\n </pep-group-buttons>\n </div>\n\n <ng-container *ngIf=\"!previewMode; then editorButtonsTemplate; else previewButtonsTemplate\"></ng-container>\n <ng-template #editorButtonsTemplate>\n <div class=\"header-end\">\n <pep-button key='Preview' [value]=\"'ACTIONS.PREVIEW' | translate\" sizeType=\"sm\" classNames=\"pep-spacing-element\" (buttonClick)=\"togglePreviewMode()\"></pep-button>\n <ng-content select=\"[header-end-content]\"></ng-content>\n </div>\n </ng-template>\n <ng-template #previewButtonsTemplate>\n <a class=\"color-link body-sm\" (click)=\"togglePreviewMode()\" href=\"javascript:void(0)\">{{('LAYOUT_BUILDER.PREVIEW_CLICK_HERE' | translate)}}</a> \n </ng-template>\n </div>\n <div #layoutBuilderWrapper class=\"layout-builder-wrapper\" [ngClass]=\"{'limit-min-width': selectedScreenType === 'Landscape' }\">\n <ng-content></ng-content>\n <div *ngIf=\"!previewMode\" class=\"backdrop\" [ngClass]=\"{'show-backdrop': currentEditor?.type === 'section' || currentEditor?.type === 'block'}\"></div>\n </div>\n </div>\n </ng-container>\n</pep-page-layout>", styles: [".side-bar-title{display:flex;padding-top:var(--pep-spacing-sm, .5rem)}.side-bar-title .back-button{margin-inline-end:var(--pep-spacing-sm, .5rem)}.side-bar-title .title{display:flex;align-items:center}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs{height:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header{position:sticky;top:calc(var(--pep-top-bar-spacing-top, 1.5rem) + var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));z-index:2}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header-pagination{display:none}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-labels{display:grid;grid-template-columns:1fr 1fr}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-labels .mat-tab-label{padding:0 var(--pep-spacing-md, .75rem)!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper{overflow:unset;margin:0;display:block}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper .mat-tab-body.mat-tab-body-active{overflow:unset}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-body-wrapper .mat-tab-body.mat-tab-body-active .mat-tab-body-content{overflow:unset;display:flex;flex-direction:column;padding-inline:0!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab{overflow:inherit;display:inherit;flex-direction:inherit;gap:var(--pep-spacing-lg, 1rem)}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab .group-buttons-container .toggle-buttons{width:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .layout-builder-editor-tab pep-textbox{margin-bottom:0!important}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container{padding-top:var(--pep-spacing-lg, 1rem);padding-bottom:var(--pep-spacing-lg, 1rem)}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group{overflow:inherit;display:inherit;flex-direction:inherit;gap:var(--pep-spacing-lg, 1rem);display:flex;flex-direction:column}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container .group-buttons-container .toggle-buttons,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group .group-buttons-container .toggle-buttons{width:100%}.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-container pep-textbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-checkbox,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-color,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-select,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-textarea,.layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-group pep-textbox{margin-bottom:0!important}.layout-builder-editor-wrapper ::ng-deep .editor-title{display:block;font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-bold, 600)!important;font-size:var(--pep-font-size-xl, 1.25rem)!important;line-height:var(--pep-line-height-xl, 1.5625rem)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layout-builder-editor-wrapper ::ng-deep .editor-sub-title{display:block;font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400)!important;font-size:var(--pep-font-size-md, 1rem)!important;line-height:var(--pep-line-height-md, 1.25rem)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layout-builder-editor-wrapper ::ng-deep .editor-separator{margin-top:var(--pep-spacing-lg, 1rem);border-bottom:1px solid hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title{margin-bottom:.5rem!important;min-height:unset!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container{background:unset!important;padding-left:unset!important;padding-right:unset!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-inner-container,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-inner-container{margin-left:0!important;margin-right:0!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-layout{font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400);font-size:var(--pep-font-size-lg, 1.125rem)!important;line-height:var(--pep-line-height-lg, 1.40625rem)!important;font-weight:var(--pep-font-weight-bold, 600)!important}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout .mat-checkbox-label span,.layout-builder-editor-wrapper ::ng-deep .checkbox-as-title .pep-checkbox-container .mat-checkbox-layout .mat-checkbox-label span{margin:0 .5rem}.layout-builder-editor-wrapper ::ng-deep .checkbox-as-sub-title .pep-checkbox-container .mat-checkbox-layout{font-family:var(--pep-font-family-body, Inter),-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif!important;font-weight:var(--pep-font-weight-normal, 400);font-size:var(--pep-font-size-md, 1rem)!important;line-height:var(--pep-line-height-md, 1.25rem)!important;font-weight:var(--pep-font-weight-normal, 400)!important}.main-area-container{min-height:100%;display:grid;grid-template-rows:auto 1fr}.main-area-container .header-container{display:flex;position:sticky;top:0;z-index:100;height:3rem;align-items:center;justify-content:space-between;padding:0 var(--pep-spacing-sm, .5rem)}.main-area-container .header-container .header-group-btn{display:flex;justify-content:space-around;align-items:center}.main-area-container .header-container .header-end{display:flex;justify-content:flex-end;gap:var(--pep-spacing-sm, .5rem)}.main-area-container .header-container ::ng-deep .group-buttons-container .toggle-buttons{width:16rem}.main-area-container .layout-builder-wrapper{width:100%;margin:0 auto;position:relative}.main-area-container .layout-builder-wrapper.limit-min-width{min-width:800px}.main-area-container .layout-builder-wrapper .backdrop{position:absolute;width:100%;height:100%;top:0;z-index:10;display:none}.main-area-container .layout-builder-wrapper .backdrop.show-backdrop{display:block}\n", ".layout-builder-editor-wrapper ::ng-deep .layout-builder-editor-tabs .mat-tab-header{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.main-area-container{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.04)}.main-area-container .header-container{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:var(--pep-shadow-sm-offset, 0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.main-area-container .header-container .header-title{color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.7)}.main-area-container .header-container .size-limit-container{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.12)}.main-area-container.preview-mode .header-container{background:unset;background-color:hsl(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%))}.main-area-container.preview-mode .header-container .preview-title,.main-area-container.preview-mode .header-container .color-link{color:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.main-area-container.preview-mode .layout-builder-wrapper{overflow:auto}.main-area-container .layout-builder-wrapper{background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));box-shadow:var(--pep-shadow-md-offset, 0 .5rem 1rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.main-area-container .layout-builder-wrapper .backdrop{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.5)}\n"] }]
|
|
165
165
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.TranslateService }, { type: i2.PepLayoutBuilderService }, { type: i3.PepAddonService }]; }, propDecorators: { layoutBuilderWrapper: [{
|
|
166
166
|
type: ViewChild,
|
|
167
167
|
args: ['layoutBuilderWrapper', { static: true }]
|
|
@@ -182,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
182
182
|
type: HostListener,
|
|
183
183
|
args: ['window:resize', ['$event']]
|
|
184
184
|
}] } });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxTQUFTLEVBQVUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsc0JBQXNCLEVBQXdELE1BQU0seUJBQXlCLENBQUM7QUFJdkgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUcsT0FBTyxFQUErQixtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBS3BHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7QUFPN0QsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHNCQUFzQjtJQTJCakUsWUFDWSxRQUFtQixFQUNuQixXQUF1QixFQUN2QixTQUEyQixFQUMzQixvQkFBNkMsRUFDN0MsZUFBZ0M7UUFFeEMsS0FBSyxFQUFFLENBQUM7UUFOQSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDN0Msb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBNUJwQyw0QkFBdUIsR0FBNkIsRUFBRSxDQUFDO1FBVXJELGNBQVMsR0FBdUIsSUFB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QjswR0FBekIseUJBQXlCLDRlQUV2QixtQkFBbUIsMkJBQVUsVUFBVSxvRENwQnRELDA3SUFzRWtCOzJGRHBETCx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0ksb0JBQW9COzROQUt1QixvQkFBb0I7c0JBQXhFLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNXLGdCQUFnQjtzQkFBN0UsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSWhELHNCQUFzQjtzQkFEekIsS0FBSztnQkFTSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBeUlQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgT25Jbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRGVzdHJveWVyRGlyZWN0aXZlLCBQZXBBZGRvblNlcnZpY2UsIFBlcExheW91dFNlcnZpY2UsIFBlcFNjcmVlblNpemVUeXBlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgRGF0YVZpZXdTY3JlZW5TaXplIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL3BhcGktc2RrJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFBlcEJ1dHRvbiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2J1dHRvbic7XG5pbXBvcnQgeyBwZXBJY29uRGV2aWNlRGVza3RvcCwgcGVwSWNvbkRldmljZU1vYmlsZSwgcGVwSWNvbkRldmljZVRhYmxldCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuaW1wb3J0IHsgSVBlcFNpZGVCYXJTdGF0ZUNoYW5nZUV2ZW50LCBQZXBTaWRlQmFyQ29tcG9uZW50IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc2lkZS1iYXInO1xuaW1wb3J0IHsgSVBlcERyYWdnYWJsZUl0ZW0gfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kcmFnZ2FibGUtaXRlbXMnO1xuXG5pbXBvcnQgeyBJRWRpdG9yLCBJTGF5b3V0RWRpdG9yLCBJUGVwTGF5b3V0U2VjdGlvbiwgSVBlcExheW91dFZpZXcsIElMYXlvdXRTZWN0aW9uRWRpdG9yLCBJUGVwTGF5b3V0QmxvY2tBZGRlZEV2ZW50IH0gZnJvbSAnLi9sYXlvdXQtYnVpbGRlci5tb2RlbCc7XG5pbXBvcnQgeyBQZXBMYXlvdXRCdWlsZGVyU2VydmljZSB9IGZyb20gJy4vbGF5b3V0LWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWxheW91dC1idWlsZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xheW91dC1idWlsZGVyLmNvbXBvbmVudC5zY3NzJywgJy4vbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LnRoZW1lLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwTGF5b3V0QnVpbGRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2xheW91dEJ1aWxkZXJXcmFwcGVyJywgeyBzdGF0aWM6IHRydWUgfSkgbGF5b3V0QnVpbGRlcldyYXBwZXIhOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoUGVwU2lkZUJhckNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHByaXZhdGUgc2lkZUJhckNvbXBvbmVudCE6IEVsZW1lbnRSZWY7XG4gICAgXG4gICAgcHJpdmF0ZSBfYXZhaWxhYmxlQmxvY2tzRm9yRHJhZzogQXJyYXk8SVBlcERyYWdnYWJsZUl0ZW0+ID0gW107XG4gICAgQElucHV0KCkgXG4gICAgc2V0IGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWcodmFsdWU6IEFycmF5PElQZXBEcmFnZ2FibGVJdGVtPikge1xuICAgICAgICB0aGlzLl9hdmFpbGFibGVCbG9ja3NGb3JEcmFnID0gdmFsdWU7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uuc2V0QXZhaWxhYmxlQmxvY2tzVG9EcmFnKHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWcoKTogQXJyYXk8SVBlcERyYWdnYWJsZUl0ZW0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJsZUJsb2Nrc0ZvckRyYWc7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGJhY2tDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBibG9ja0VkaXRvckNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7IC8vIGJsb2NrS2V5XG4gICAgQE91dHB1dCgpIGJsb2NrQWRkZWQ6IEV2ZW50RW1pdHRlcjxJUGVwTGF5b3V0QmxvY2tBZGRlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYmxvY2tzUmVtb3ZlZDogRXZlbnRFbWl0dGVyPHN0cmluZ1tdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByb3RlY3RlZCBsb2NrU2NyZWVuID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHByZXZpZXdNb2RlID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGN1cnJlbnRFZGl0b3I6IElFZGl0b3IgfCBudWxsID0gbnVsbDtcbiAgICBwcm90ZWN0ZWQgdmlld3BvcnRXaWR0aDogbnVtYmVyID0gMDtcbiAgICBwcm90ZWN0ZWQgc2NyZWVuVHlwZXMhOiBBcnJheTxQZXBCdXR0b24+O1xuXG4gICAgcHJvdGVjdGVkIHNlbGVjdGVkU2NyZWVuVHlwZSE6IERhdGFWaWV3U2NyZWVuU2l6ZTtcbiAgICBcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsYXlvdXRCdWlsZGVyU2VydmljZTogUGVwTGF5b3V0QnVpbGRlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcGVwQWRkb25TZXJ2aWNlOiBQZXBBZGRvblNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5wZXBBZGRvblNlcnZpY2Uuc2V0U2hlbGxSb3V0ZXJEYXRhKHsgc2hvd1NpZGViYXI6IGZhbHNlLCBhZGRQYWRkaW5nOiBmYWxzZX0pO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3BlcC1sYXlvdXQtYnVpbGRlcicpO1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnNldEVkaXRNb2RlKHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2NyZWVuV2lkdGgoc2NyZWVuVHlwZTogRGF0YVZpZXdTY3JlZW5TaXplKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uuc2V0U2NyZWVuV2lkdGgoc2NyZWVuVHlwZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWaWV3cG9ydFdpZHRoKCkge1xuICAgICAgICBpZiAodGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3cG9ydFdpZHRoID0gdGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVFdmVudHMoKSB7XG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgIEludGVybmFsIEV2ZW50cyAtIGZvciBjb2RlIHVzYWdlXG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnByZXZpZXdNb2RlQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgocHJldmlld01vZGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcmV2aWV3TW9kZSA9IHByZXZpZXdNb2RlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmxvY2tTY3JlZW5DaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChsb2NrU2NyZWVuOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9ja1NjcmVlbiA9IGxvY2tTY3JlZW47XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uuc2NyZWVuU2l6ZUNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHNpemU6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2NyZWVuVHlwZSA9IHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuZ2V0U2NyZWVuVHlwZShzaXplKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTY3JlZW5UeXBlID0gc2NyZWVuVHlwZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRm9yIHVwZGF0ZSB0aGUgbGF5b3V0IGRhdGFcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5sYXlvdXRWaWV3Q2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgobGF5b3V0VmlldzogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAobGF5b3V0Vmlldykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxheW91dEJ1aWxkZXJXcmFwcGVyPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtYXhXaWR0aCA9IGNvZXJjZU51bWJlclByb3BlcnR5KGxheW91dFZpZXcuTGF5b3V0Lk1heFdpZHRoLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF4V2lkdGhUb1NldCA9IG1heFdpZHRoID09PSAwID8gJzEwMCUnIDogYCR7bWF4V2lkdGh9cHhgO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMubGF5b3V0QnVpbGRlcldyYXBwZXIubmF0aXZlRWxlbWVudCwgJ21heC13aWR0aCcsIG1heFdpZHRoVG9TZXQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0V2lkdGgoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uuc2NyZWVuV2lkdGhDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKCh3aWR0aDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlci5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCB3aWR0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3cG9ydFdpZHRoKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEdldCB0aGUgc2VjdGlvbnMgaWQncyBpbnRvIHNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0IGZvciB0aGUgZHJhZyAmIGRyb3AuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uuc2VjdGlvbnNDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzZWN0aW9uczogYW55KSA9PiB7XG4gICAgICAgICAgICAvLyBDb25jYXQgYWxsIHJlc3VsdHMgaW50byBvbmUgYXJyYXkuXG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uc0NvbHVtbnNEcm9wTGlzdCA9IFtdLmNvbmNhdCguLi5zZWN0aW9ucy5tYXAoKHNlY3Rpb246IElQZXBMYXlvdXRTZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlY3Rpb24uQ29sdW1ucy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+IFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmdldFNlY3Rpb25Db2x1bW5LZXkoc2VjdGlvbi5LZXksIGluZGV4LnRvU3RyaW5nKCkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLm5vdGlmeVNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0Q2hhbmdlKHNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0KTtcbiAgICAgICAgfSk7XG5cblxuICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbCBFdmVudHMgLSBmb3IgcmFpc2UgdG8gdGhlIGNsaWVudFxuICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICAgICAgLy8gRm9yIHVwZGF0ZSBlZGl0b3IuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuZWRpdG9yQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoZWRpdG9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChlZGl0b3IpIHtcbiAgICAgICAgICAgICAgICAvLyBJbml0IHRoZSBzaWRlIGJhciBzY3JvbGwgdG9wIHRvIDAuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2lkZUJhckNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaWRlTGF5b3V0ID0gdGhpcy5zaWRlQmFyQ29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNpZGUtbGF5b3V0Jyk7XG4gICAgICAgICAgICAgICAgICAgIHNpZGVMYXlvdXQ/LnNjcm9sbFRvKDAsIDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRFZGl0b3IgPSBlZGl0b3I7XG4gICAgXG4gICAgICAgICAgICAgICAgLy8gUmFpc2UgZXZlbnQgdG8gbGV0IHRoZSB1c2VyIHNldCB0aGUgYmxvY2sgZWRpdG9yIGluIHRoZSBVSS5cbiAgICAgICAgICAgICAgICBpZiAoZWRpdG9yLnR5cGUgPT09ICdibG9jaycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja0VkaXRvckNoYW5nZS5lbWl0KGVkaXRvci5pZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmJsb2NrQWRkZWRFdmVudFN1YmplY3QkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrQWRkZWQuZW1pdChldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuYmxvY2tzUmVtb3ZlZEV2ZW50U3ViamVjdCQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudD8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzUmVtb3ZlZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIEdldCB0aGUgZmlyc3QgdHJhbnNsYXRpb24gZm9yIGxvYWQgYWxsIHRyYW5zbGF0aW9ucy5cbiAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0KCdMQVlPVVRfQlVJTERFUi5ERVNLVE9QJykuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuZGVmYXVsdFNlY3Rpb25UaXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0xBWU9VVF9CVUlMREVSLlNFQ1RJT04nKTtcbiAgICBcbiAgICAgICAgICAgIHRoaXMuc2NyZWVuVHlwZXMgPSBbXG4gICAgICAgICAgICAgICAgeyBrZXk6ICdMYW5kc2NhcGUnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnTEFZT1VUX0JVSUxERVIuREVTS1RPUCcpLCBjYWxsYmFjazogKCkgPT4gdGhpcy5zZXRTY3JlZW5XaWR0aCgnTGFuZHNjYXBlJyksIGljb25OYW1lOiBwZXBJY29uRGV2aWNlRGVza3RvcC5uYW1lLCBpY29uUG9zaXRpb246ICdlbmQnIH0sXG4gICAgICAgICAgICAgICAgeyBrZXk6ICdUYWJsZXQnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnTEFZT1VUX0JVSUxERVIuVEFCTEVUJyksIGNhbGxiYWNrOiAoKSA9PiB0aGlzLnNldFNjcmVlbldpZHRoKCdUYWJsZXQnKSwgaWNvbk5hbWU6IHBlcEljb25EZXZpY2VUYWJsZXQubmFtZSwgaWNvblBvc2l0aW9uOiAnZW5kJyB9LFxuICAgICAgICAgICAgICAgIHsga2V5OiAnUGhhYmxldCcsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdMQVlPVVRfQlVJTERFUi5NT0JJTEUnKSwgY2FsbGJhY2s6ICgpID0+IHRoaXMuc2V0U2NyZWVuV2lkdGgoJ1BoYWJsZXQnKSwgaWNvbk5hbWU6IHBlcEljb25EZXZpY2VNb2JpbGUubmFtZSwgaWNvblBvc2l0aW9uOiAnZW5kJyB9XG4gICAgICAgICAgICBdO1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25SZXNpemUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0V2lkdGgoKTtcbiAgICB9XG5cbiAgICB0b2dnbGVQcmV2aWV3TW9kZSgpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5ub3RpZnlQcmV2aWV3TW9kZUNoYW5nZSghdGhpcy5wcmV2aWV3TW9kZSk7XG4gICAgICAgIHRoaXMudXBkYXRlVmlld3BvcnRXaWR0aCgpO1xuICAgIH1cblxuICAgIG9uU2lkZWJhclN0YXRlQ2hhbmdlKGV2ZW50OiBJUGVwU2lkZUJhclN0YXRlQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3cG9ydFdpZHRoKCk7XG4gICAgfVxuXG4gICAgb25MYXlvdXRFZGl0b3JPYmplY3RDaGFuZ2UocGFnZUVkaXRvcjogSUxheW91dEVkaXRvcikge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnVwZGF0ZUxheW91dEZyb21FZGl0b3IocGFnZUVkaXRvcik7XG4gICAgfVxuXG4gICAgb25TZWN0aW9uRWRpdG9yT2JqZWN0Q2hhbmdlKHNlY3Rpb25FZGl0b3I6IElMYXlvdXRTZWN0aW9uRWRpdG9yKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UudXBkYXRlU2VjdGlvbkZyb21FZGl0b3Ioc2VjdGlvbkVkaXRvcik7XG4gICAgfVxuXG4gICAgb25OYXZpZ2F0ZUJhY2tGcm9tRWRpdG9yKCkge1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudEVkaXRvciB8fCB0aGlzLmN1cnJlbnRFZGl0b3I/LnR5cGUgPT09ICdsYXlvdXQtYnVpbGRlcicpIHtcbiAgICAgICAgICAgIHRoaXMuYmFja0NsaWNrLmVtaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UubmF2aWdhdGVCYWNrRnJvbUVkaXRvcigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImxvY2tTY3JlZW5cIiBjbGFzcz1cImNkay1vdmVybGF5LWJhY2tkcm9wIGNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AgY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1wiPjwvZGl2PlxuXG48cGVwLXBhZ2UtbGF5b3V0IFtzaG93U2hhZG93XT1cIiFwcmV2aWV3TW9kZSAmJiBjdXJyZW50RWRpdG9yICE9PSBudWxsXCIgPlxuICAgIDxkaXYgcGVwLXNpZGUtYXJlYSAqbmdJZj1cIiFwcmV2aWV3TW9kZSAmJiBjdXJyZW50RWRpdG9yXCIgc3R5bGU9XCJoZWlnaHQ6IGluaGVyaXQ7XCI+XG4gICAgICAgIDxwZXAtc2lkZS1iYXIgI3NpZGVCYXIgW2lnbm9yZVJlc2l6ZV09XCJ0cnVlXCIgKHN0YXRlQ2hhbmdlKT1cIm9uU2lkZWJhclN0YXRlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgIDxkaXYgaGVhZGVyLWNvbnRlbnQgY2xhc3M9XCJzaWRlLWJhci10aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxwZXAtYnV0dG9uIGNsYXNzPVwiYmFjay1idXR0b25cIiBzaXplVHlwZT1cInNtXCIgaWNvbk5hbWU9XCJhcnJvd19sZWZ0X2FsdFwiIChidXR0b25DbGljayk9XCJvbk5hdmlnYXRlQmFja0Zyb21FZGl0b3IoKTtcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlIHRpdGxlLWxnIGVsbGlwc2lzXCIgW3RpdGxlXT1cImN1cnJlbnRFZGl0b3I/LnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGN1cnJlbnRFZGl0b3I/LnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWJ1aWxkZXItZWRpdG9yLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8cGVwLWxheW91dC1lZGl0b3IgKm5nSWY9XCJjdXJyZW50RWRpdG9yPy50eXBlID09PSAnbGF5b3V0LWJ1aWxkZXInXCIgW2F2YWlsYWJsZUJsb2Nrc0ZvckRyYWddPVwiYXZhaWxhYmxlQmxvY2tzRm9yRHJhZ1wiXG4gICAgICAgICAgICAgICAgICAgIFtob3N0T2JqZWN0XT1cImN1cnJlbnRFZGl0b3I/Lmhvc3RPYmplY3RcIiAoaG9zdE9iamVjdENoYW5nZSk9XCJvbkxheW91dEVkaXRvck9iamVjdENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGxheW91dC1lZGl0b3ItdG9wLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbGF5b3V0LWVkaXRvci10b3AtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGxheW91dC1lZGl0b3ItYm90dG9tLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbGF5b3V0LWVkaXRvci1ib3R0b20tY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvcGVwLWxheW91dC1lZGl0b3I+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8c2VjdGlvbi1lZGl0b3IgKm5nSWY9XCJjdXJyZW50RWRpdG9yPy50eXBlID09PSAnc2VjdGlvbidcIiBcbiAgICAgICAgICAgICAgICAgICAgW2hvc3RPYmplY3RdPVwiY3VycmVudEVkaXRvcj8uaG9zdE9iamVjdFwiIChob3N0T2JqZWN0Q2hhbmdlKT1cIm9uU2VjdGlvbkVkaXRvck9iamVjdENoYW5nZSgkZXZlbnQpXCI+PC9zZWN0aW9uLWVkaXRvcj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50RWRpdG9yPy50eXBlID09PSAnYmxvY2snXCIgY2xhc3M9XCJsYXlvdXQtYnVpbGRlci1lZGl0b3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltibG9jay1lZGl0b3ItY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wZXAtc2lkZS1iYXI+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciBwZXAtbWFpbi1hcmVhPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1hcmVhLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsncHJldmlldy1tb2RlJzogcHJldmlld01vZGUgfVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIiA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwcmV2aWV3TW9kZTsgdGhlbiBlZGl0b3JUaXRsZVRlbXBsYXRlOyBlbHNlIHByZXZpZXdUaXRsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0b3JUaXRsZVRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXItdGl0bGUgYm9keS14c1wiPnt7KCdMQVlPVVRfQlVJTERFUi5WSUVXUE9SVF9XSURUSCcgfCB0cmFuc2xhdGUpfX06Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2R5LXhzXCI+PGI+e3t2aWV3cG9ydFdpZHRofX08L2I+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcHJldmlld1RpdGxlVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LXRpdGxlIGJvZHktc21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7KCdMQVlPVVRfQlVJTERFUi5QUkVWSUVXX1RJVExFJyB8IHRyYW5zbGF0ZSl9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZ3JvdXAtYnRuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwZXAtZ3JvdXAtYnV0dG9ucyBbYnV0dG9uc109XCJzY3JlZW5UeXBlc1wiIFtzZWxlY3RlZEJ1dHRvbktleV09XCJzZWxlY3RlZFNjcmVlblR5cGVcIiBzaXplVHlwZT1cInNtXCIgdmlld1R5cGU9XCJ0b2dnbGVcIiA+XG4gICAgICAgICAgICAgICAgICAgIDwvcGVwLWdyb3VwLWJ1dHRvbnM+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByZXZpZXdNb2RlOyB0aGVuIGVkaXRvckJ1dHRvbnNUZW1wbGF0ZTsgZWxzZSBwcmV2aWV3QnV0dG9uc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0b3JCdXR0b25zVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGVwLWJ1dHRvbiBrZXk9J1ByZXZpZXcnIFt2YWx1ZV09XCInQUNUSU9OUy5QUkVWSUVXJyB8IHRyYW5zbGF0ZVwiIHNpemVUeXBlPVwic21cIiBjbGFzc05hbWVzPVwicGVwLXNwYWNpbmctZWxlbWVudFwiIChidXR0b25DbGljayk9XCJ0b2dnbGVQcmV2aWV3TW9kZSgpXCI+PC9wZXAtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hlYWRlci1lbmQtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNwcmV2aWV3QnV0dG9uc1RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImNvbG9yLWxpbmsgYm9keS1zbVwiIChjbGljayk9XCJ0b2dnbGVQcmV2aWV3TW9kZSgpXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiPnt7KCdMQVlPVVRfQlVJTERFUi5QUkVWSUVXX0NMSUNLX0hFUkUnIHwgdHJhbnNsYXRlKX19PC9hPiAgICBcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICNsYXlvdXRCdWlsZGVyV3JhcHBlciBjbGFzcz1cImxheW91dC1idWlsZGVyLXdyYXBwZXJcIiBbbmdDbGFzc109XCJ7J2xpbWl0LW1pbi13aWR0aCc6IHNlbGVjdGVkU2NyZWVuVHlwZSA9PT0gJ0xhbmRzY2FwZScgfVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXByZXZpZXdNb2RlXCIgY2xhc3M9XCJiYWNrZHJvcFwiIFtuZ0NsYXNzXT1cInsnc2hvdy1iYWNrZHJvcCc6IGN1cnJlbnRFZGl0b3I/LnR5cGUgPT09ICdzZWN0aW9uJyB8fCBjdXJyZW50RWRpdG9yPy50eXBlID09PSAnYmxvY2snfVwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9wZXAtcGFnZS1sYXlvdXQ+Il19
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxTQUFTLEVBQVUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsc0JBQXNCLEVBQXdELE1BQU0seUJBQXlCLENBQUM7QUFJdkgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUcsT0FBTyxFQUErQixtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBS3BHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7QUFPN0QsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHNCQUFzQjtJQTJCakUsWUFDWSxRQUFtQixFQUNuQixXQUF1QixFQUN2QixTQUEyQixFQUMzQixvQkFBNkMsRUFDN0MsZUFBZ0M7UUFFeEMsS0FBSyxFQUFFLENBQUM7UUFOQSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDN0Msb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBNUJwQyw0QkFBdUIsR0FBNkIsRUFBRSxDQUFDO1FBVXJELGNBQVMsR0FBdUIsSUFB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QjswR0FBekIseUJBQXlCLDRlQUV2QixtQkFBbUIsMkJBQVUsVUFBVSxvRENwQnRELG03SUFzRWtCOzJGRHBETCx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0ksb0JBQW9COzROQUt1QixvQkFBb0I7c0JBQXhFLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNXLGdCQUFnQjtzQkFBN0UsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSWhELHNCQUFzQjtzQkFEekIsS0FBSztnQkFTSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBeUlQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgT25Jbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRGVzdHJveWVyRGlyZWN0aXZlLCBQZXBBZGRvblNlcnZpY2UsIFBlcExheW91dFNlcnZpY2UsIFBlcFNjcmVlblNpemVUeXBlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgRGF0YVZpZXdTY3JlZW5TaXplIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL3BhcGktc2RrJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFBlcEJ1dHRvbiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2J1dHRvbic7XG5pbXBvcnQgeyBwZXBJY29uRGV2aWNlRGVza3RvcCwgcGVwSWNvbkRldmljZU1vYmlsZSwgcGVwSWNvbkRldmljZVRhYmxldCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuaW1wb3J0IHsgSVBlcFNpZGVCYXJTdGF0ZUNoYW5nZUV2ZW50LCBQZXBTaWRlQmFyQ29tcG9uZW50IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc2lkZS1iYXInO1xuaW1wb3J0IHsgSVBlcERyYWdnYWJsZUl0ZW0gfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kcmFnZ2FibGUtaXRlbXMnO1xuXG5pbXBvcnQgeyBJRWRpdG9yLCBJTGF5b3V0RWRpdG9yLCBJUGVwTGF5b3V0U2VjdGlvbiwgSVBlcExheW91dFZpZXcsIElMYXlvdXRTZWN0aW9uRWRpdG9yLCBJUGVwTGF5b3V0QmxvY2tBZGRlZEV2ZW50IH0gZnJvbSAnLi9sYXlvdXQtYnVpbGRlci5tb2RlbCc7XG5pbXBvcnQgeyBQZXBMYXlvdXRCdWlsZGVyU2VydmljZSB9IGZyb20gJy4vbGF5b3V0LWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWxheW91dC1idWlsZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xheW91dC1idWlsZGVyLmNvbXBvbmVudC5zY3NzJywgJy4vbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LnRoZW1lLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwTGF5b3V0QnVpbGRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2xheW91dEJ1aWxkZXJXcmFwcGVyJywgeyBzdGF0aWM6IHRydWUgfSkgbGF5b3V0QnVpbGRlcldyYXBwZXIhOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoUGVwU2lkZUJhckNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHByaXZhdGUgc2lkZUJhckNvbXBvbmVudCE6IEVsZW1lbnRSZWY7XG4gICAgXG4gICAgcHJpdmF0ZSBfYXZhaWxhYmxlQmxvY2tzRm9yRHJhZzogQXJyYXk8SVBlcERyYWdnYWJsZUl0ZW0+ID0gW107XG4gICAgQElucHV0KCkgXG4gICAgc2V0IGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWcodmFsdWU6IEFycmF5PElQZXBEcmFnZ2FibGVJdGVtPikge1xuICAgICAgICB0aGlzLl9hdmFpbGFibGVCbG9ja3NGb3JEcmFnID0gdmFsdWU7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uuc2V0QXZhaWxhYmxlQmxvY2tzVG9EcmFnKHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWcoKTogQXJyYXk8SVBlcERyYWdnYWJsZUl0ZW0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJsZUJsb2Nrc0ZvckRyYWc7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGJhY2tDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBibG9ja0VkaXRvckNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7IC8vIGJsb2NrS2V5XG4gICAgQE91dHB1dCgpIGJsb2NrQWRkZWQ6IEV2ZW50RW1pdHRlcjxJUGVwTGF5b3V0QmxvY2tBZGRlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYmxvY2tzUmVtb3ZlZDogRXZlbnRFbWl0dGVyPHN0cmluZ1tdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByb3RlY3RlZCBsb2NrU2NyZWVuID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHByZXZpZXdNb2RlID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGN1cnJlbnRFZGl0b3I6IElFZGl0b3IgfCBudWxsID0gbnVsbDtcbiAgICBwcm90ZWN0ZWQgdmlld3BvcnRXaWR0aDogbnVtYmVyID0gMDtcbiAgICBwcm90ZWN0ZWQgc2NyZWVuVHlwZXMhOiBBcnJheTxQZXBCdXR0b24+O1xuXG4gICAgcHJvdGVjdGVkIHNlbGVjdGVkU2NyZWVuVHlwZSE6IERhdGFWaWV3U2NyZWVuU2l6ZTtcbiAgICBcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsYXlvdXRCdWlsZGVyU2VydmljZTogUGVwTGF5b3V0QnVpbGRlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcGVwQWRkb25TZXJ2aWNlOiBQZXBBZGRvblNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5wZXBBZGRvblNlcnZpY2Uuc2V0U2hlbGxSb3V0ZXJEYXRhKHsgc2hvd1NpZGViYXI6IGZhbHNlLCBhZGRQYWRkaW5nOiBmYWxzZX0pO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3BlcC1sYXlvdXQtYnVpbGRlcicpO1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnNldEVkaXRNb2RlKHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2NyZWVuV2lkdGgoc2NyZWVuVHlwZTogRGF0YVZpZXdTY3JlZW5TaXplKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uuc2V0U2NyZWVuV2lkdGgoc2NyZWVuVHlwZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWaWV3cG9ydFdpZHRoKCkge1xuICAgICAgICBpZiAodGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3cG9ydFdpZHRoID0gdGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVFdmVudHMoKSB7XG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgIEludGVybmFsIEV2ZW50cyAtIGZvciBjb2RlIHVzYWdlXG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnByZXZpZXdNb2RlQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgocHJldmlld01vZGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcmV2aWV3TW9kZSA9IHByZXZpZXdNb2RlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmxvY2tTY3JlZW5DaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChsb2NrU2NyZWVuOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9ja1NjcmVlbiA9IGxvY2tTY3JlZW47XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uuc2NyZWVuU2l6ZUNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHNpemU6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2NyZWVuVHlwZSA9IHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuZ2V0U2NyZWVuVHlwZShzaXplKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTY3JlZW5UeXBlID0gc2NyZWVuVHlwZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRm9yIHVwZGF0ZSB0aGUgbGF5b3V0IGRhdGFcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5sYXlvdXRWaWV3Q2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgobGF5b3V0VmlldzogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAobGF5b3V0Vmlldykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxheW91dEJ1aWxkZXJXcmFwcGVyPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtYXhXaWR0aCA9IGNvZXJjZU51bWJlclByb3BlcnR5KGxheW91dFZpZXcuTGF5b3V0Lk1heFdpZHRoLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF4V2lkdGhUb1NldCA9IG1heFdpZHRoID09PSAwID8gJzEwMCUnIDogYCR7bWF4V2lkdGh9cHhgO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMubGF5b3V0QnVpbGRlcldyYXBwZXIubmF0aXZlRWxlbWVudCwgJ21heC13aWR0aCcsIG1heFdpZHRoVG9TZXQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0V2lkdGgoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uuc2NyZWVuV2lkdGhDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKCh3aWR0aDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlci5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCB3aWR0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3cG9ydFdpZHRoKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEdldCB0aGUgc2VjdGlvbnMgaWQncyBpbnRvIHNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0IGZvciB0aGUgZHJhZyAmIGRyb3AuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2Uuc2VjdGlvbnNDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzZWN0aW9uczogYW55KSA9PiB7XG4gICAgICAgICAgICAvLyBDb25jYXQgYWxsIHJlc3VsdHMgaW50byBvbmUgYXJyYXkuXG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uc0NvbHVtbnNEcm9wTGlzdCA9IFtdLmNvbmNhdCguLi5zZWN0aW9ucy5tYXAoKHNlY3Rpb246IElQZXBMYXlvdXRTZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlY3Rpb24uQ29sdW1ucy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+IFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmdldFNlY3Rpb25Db2x1bW5LZXkoc2VjdGlvbi5LZXksIGluZGV4LnRvU3RyaW5nKCkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLm5vdGlmeVNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0Q2hhbmdlKHNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0KTtcbiAgICAgICAgfSk7XG5cblxuICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbCBFdmVudHMgLSBmb3IgcmFpc2UgdG8gdGhlIGNsaWVudFxuICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICAgICAgLy8gRm9yIHVwZGF0ZSBlZGl0b3IuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuZWRpdG9yQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoZWRpdG9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChlZGl0b3IpIHtcbiAgICAgICAgICAgICAgICAvLyBJbml0IHRoZSBzaWRlIGJhciBzY3JvbGwgdG9wIHRvIDAuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2lkZUJhckNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaWRlTGF5b3V0ID0gdGhpcy5zaWRlQmFyQ29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNpZGUtbGF5b3V0Jyk7XG4gICAgICAgICAgICAgICAgICAgIHNpZGVMYXlvdXQ/LnNjcm9sbFRvKDAsIDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRFZGl0b3IgPSBlZGl0b3I7XG4gICAgXG4gICAgICAgICAgICAgICAgLy8gUmFpc2UgZXZlbnQgdG8gbGV0IHRoZSB1c2VyIHNldCB0aGUgYmxvY2sgZWRpdG9yIGluIHRoZSBVSS5cbiAgICAgICAgICAgICAgICBpZiAoZWRpdG9yLnR5cGUgPT09ICdibG9jaycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja0VkaXRvckNoYW5nZS5lbWl0KGVkaXRvci5pZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLmJsb2NrQWRkZWRFdmVudFN1YmplY3QkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrQWRkZWQuZW1pdChldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuYmxvY2tzUmVtb3ZlZEV2ZW50U3ViamVjdCQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudD8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzUmVtb3ZlZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIEdldCB0aGUgZmlyc3QgdHJhbnNsYXRpb24gZm9yIGxvYWQgYWxsIHRyYW5zbGF0aW9ucy5cbiAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0KCdMQVlPVVRfQlVJTERFUi5ERVNLVE9QJykuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UuZGVmYXVsdFNlY3Rpb25UaXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0xBWU9VVF9CVUlMREVSLlNFQ1RJT04nKTtcbiAgICBcbiAgICAgICAgICAgIHRoaXMuc2NyZWVuVHlwZXMgPSBbXG4gICAgICAgICAgICAgICAgeyBrZXk6ICdMYW5kc2NhcGUnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnTEFZT1VUX0JVSUxERVIuREVTS1RPUCcpLCBjYWxsYmFjazogKCkgPT4gdGhpcy5zZXRTY3JlZW5XaWR0aCgnTGFuZHNjYXBlJyksIGljb25OYW1lOiBwZXBJY29uRGV2aWNlRGVza3RvcC5uYW1lLCBpY29uUG9zaXRpb246ICdlbmQnIH0sXG4gICAgICAgICAgICAgICAgeyBrZXk6ICdUYWJsZXQnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnTEFZT1VUX0JVSUxERVIuVEFCTEVUJyksIGNhbGxiYWNrOiAoKSA9PiB0aGlzLnNldFNjcmVlbldpZHRoKCdUYWJsZXQnKSwgaWNvbk5hbWU6IHBlcEljb25EZXZpY2VUYWJsZXQubmFtZSwgaWNvblBvc2l0aW9uOiAnZW5kJyB9LFxuICAgICAgICAgICAgICAgIHsga2V5OiAnUGhhYmxldCcsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdMQVlPVVRfQlVJTERFUi5NT0JJTEUnKSwgY2FsbGJhY2s6ICgpID0+IHRoaXMuc2V0U2NyZWVuV2lkdGgoJ1BoYWJsZXQnKSwgaWNvbk5hbWU6IHBlcEljb25EZXZpY2VNb2JpbGUubmFtZSwgaWNvblBvc2l0aW9uOiAnZW5kJyB9XG4gICAgICAgICAgICBdO1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25SZXNpemUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0V2lkdGgoKTtcbiAgICB9XG5cbiAgICB0b2dnbGVQcmV2aWV3TW9kZSgpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5ub3RpZnlQcmV2aWV3TW9kZUNoYW5nZSghdGhpcy5wcmV2aWV3TW9kZSk7XG4gICAgICAgIHRoaXMudXBkYXRlVmlld3BvcnRXaWR0aCgpO1xuICAgIH1cblxuICAgIG9uU2lkZWJhclN0YXRlQ2hhbmdlKGV2ZW50OiBJUGVwU2lkZUJhclN0YXRlQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3cG9ydFdpZHRoKCk7XG4gICAgfVxuXG4gICAgb25MYXlvdXRFZGl0b3JPYmplY3RDaGFuZ2UocGFnZUVkaXRvcjogSUxheW91dEVkaXRvcikge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJTZXJ2aWNlLnVwZGF0ZUxheW91dEZyb21FZGl0b3IocGFnZUVkaXRvcik7XG4gICAgfVxuXG4gICAgb25TZWN0aW9uRWRpdG9yT2JqZWN0Q2hhbmdlKHNlY3Rpb25FZGl0b3I6IElMYXlvdXRTZWN0aW9uRWRpdG9yKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UudXBkYXRlU2VjdGlvbkZyb21FZGl0b3Ioc2VjdGlvbkVkaXRvcik7XG4gICAgfVxuXG4gICAgb25OYXZpZ2F0ZUJhY2tGcm9tRWRpdG9yKCkge1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudEVkaXRvciB8fCB0aGlzLmN1cnJlbnRFZGl0b3I/LnR5cGUgPT09ICdsYXlvdXQtYnVpbGRlcicpIHtcbiAgICAgICAgICAgIHRoaXMuYmFja0NsaWNrLmVtaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UubmF2aWdhdGVCYWNrRnJvbUVkaXRvcigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImxvY2tTY3JlZW5cIiBjbGFzcz1cImNkay1vdmVybGF5LWJhY2tkcm9wIGNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AgY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1wiPjwvZGl2PlxuXG48cGVwLXBhZ2UtbGF5b3V0IFtzaG93U2hhZG93XT1cIiFwcmV2aWV3TW9kZSAmJiBjdXJyZW50RWRpdG9yICE9PSBudWxsXCIgPlxuICAgIDxkaXYgcGVwLXNpZGUtYXJlYSAqbmdJZj1cIiFwcmV2aWV3TW9kZSAmJiBjdXJyZW50RWRpdG9yXCIgc3R5bGU9XCJoZWlnaHQ6IGluaGVyaXQ7XCI+XG4gICAgICAgIDxwZXAtc2lkZS1iYXIgI3NpZGVCYXIgW2lnbm9yZVJlc2l6ZV09XCJ0cnVlXCIgKHN0YXRlQ2hhbmdlKT1cIm9uU2lkZWJhclN0YXRlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgIDxkaXYgaGVhZGVyLWNvbnRlbnQgY2xhc3M9XCJzaWRlLWJhci10aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxwZXAtYnV0dG9uIGNsYXNzPVwiYmFjay1idXR0b25cIiBzaXplVHlwZT1cInNtXCIgaWNvbk5hbWU9XCJhcnJvd19sZWZ0X2FsdFwiIChidXR0b25DbGljayk9XCJvbk5hdmlnYXRlQmFja0Zyb21FZGl0b3IoKTtcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlIHRpdGxlLWxnIGVsbGlwc2lzXCIgW3RpdGxlXT1cImN1cnJlbnRFZGl0b3IudGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY3VycmVudEVkaXRvci50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1idWlsZGVyLWVkaXRvci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPHBlcC1sYXlvdXQtZWRpdG9yICpuZ0lmPVwiY3VycmVudEVkaXRvci50eXBlID09PSAnbGF5b3V0LWJ1aWxkZXInXCIgW2F2YWlsYWJsZUJsb2Nrc0ZvckRyYWddPVwiYXZhaWxhYmxlQmxvY2tzRm9yRHJhZ1wiXG4gICAgICAgICAgICAgICAgICAgIFtob3N0T2JqZWN0XT1cImN1cnJlbnRFZGl0b3IuaG9zdE9iamVjdFwiIChob3N0T2JqZWN0Q2hhbmdlKT1cIm9uTGF5b3V0RWRpdG9yT2JqZWN0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbGF5b3V0LWVkaXRvci10b3AtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsYXlvdXQtZWRpdG9yLXRvcC1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbGF5b3V0LWVkaXRvci1ib3R0b20tY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsYXlvdXQtZWRpdG9yLWJvdHRvbS1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9wZXAtbGF5b3V0LWVkaXRvcj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxzZWN0aW9uLWVkaXRvciAqbmdJZj1cImN1cnJlbnRFZGl0b3IudHlwZSA9PT0gJ3NlY3Rpb24nXCIgXG4gICAgICAgICAgICAgICAgICAgIFtob3N0T2JqZWN0XT1cImN1cnJlbnRFZGl0b3IuaG9zdE9iamVjdFwiIChob3N0T2JqZWN0Q2hhbmdlKT1cIm9uU2VjdGlvbkVkaXRvck9iamVjdENoYW5nZSgkZXZlbnQpXCI+PC9zZWN0aW9uLWVkaXRvcj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50RWRpdG9yLnR5cGUgPT09ICdibG9jaydcIiBjbGFzcz1cImxheW91dC1idWlsZGVyLWVkaXRvci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Jsb2NrLWVkaXRvci1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3BlcC1zaWRlLWJhcj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyIHBlcC1tYWluLWFyZWE+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWFyZWEtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydwcmV2aWV3LW1vZGUnOiBwcmV2aWV3TW9kZSB9XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRhaW5lclwiID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByZXZpZXdNb2RlOyB0aGVuIGVkaXRvclRpdGxlVGVtcGxhdGU7IGVsc2UgcHJldmlld1RpdGxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRvclRpdGxlVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlci10aXRsZSBib2R5LXhzXCI+e3soJ0xBWU9VVF9CVUlMREVSLlZJRVdQT1JUX1dJRFRIJyB8IHRyYW5zbGF0ZSl9fTombmJzcDs8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJvZHkteHNcIj48Yj57e3ZpZXdwb3J0V2lkdGh9fTwvYj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNwcmV2aWV3VGl0bGVUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctdGl0bGUgYm9keS1zbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3soJ0xBWU9VVF9CVUlMREVSLlBSRVZJRVdfVElUTEUnIHwgdHJhbnNsYXRlKX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1ncm91cC1idG5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHBlcC1ncm91cC1idXR0b25zIFtidXR0b25zXT1cInNjcmVlblR5cGVzXCIgW3NlbGVjdGVkQnV0dG9uS2V5XT1cInNlbGVjdGVkU2NyZWVuVHlwZVwiIHNpemVUeXBlPVwic21cIiB2aWV3VHlwZT1cInRvZ2dsZVwiID5cbiAgICAgICAgICAgICAgICAgICAgPC9wZXAtZ3JvdXAtYnV0dG9ucz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcHJldmlld01vZGU7IHRoZW4gZWRpdG9yQnV0dG9uc1RlbXBsYXRlOyBlbHNlIHByZXZpZXdCdXR0b25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRvckJ1dHRvbnNUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwZXAtYnV0dG9uIGtleT0nUHJldmlldycgW3ZhbHVlXT1cIidBQ1RJT05TLlBSRVZJRVcnIHwgdHJhbnNsYXRlXCIgc2l6ZVR5cGU9XCJzbVwiIGNsYXNzTmFtZXM9XCJwZXAtc3BhY2luZy1lbGVtZW50XCIgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZVByZXZpZXdNb2RlKClcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyLWVuZC1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3ByZXZpZXdCdXR0b25zVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiY29sb3ItbGluayBib2R5LXNtXCIgKGNsaWNrKT1cInRvZ2dsZVByZXZpZXdNb2RlKClcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCI+e3soJ0xBWU9VVF9CVUlMREVSLlBSRVZJRVdfQ0xJQ0tfSEVSRScgfCB0cmFuc2xhdGUpfX08L2E+ICAgIFxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgI2xheW91dEJ1aWxkZXJXcmFwcGVyIGNsYXNzPVwibGF5b3V0LWJ1aWxkZXItd3JhcHBlclwiIFtuZ0NsYXNzXT1cInsnbGltaXQtbWluLXdpZHRoJzogc2VsZWN0ZWRTY3JlZW5UeXBlID09PSAnTGFuZHNjYXBlJyB9XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhcHJldmlld01vZGVcIiBjbGFzcz1cImJhY2tkcm9wXCIgW25nQ2xhc3NdPVwieydzaG93LWJhY2tkcm9wJzogY3VycmVudEVkaXRvcj8udHlwZSA9PT0gJ3NlY3Rpb24nIHx8IGN1cnJlbnRFZGl0b3I/LnR5cGUgPT09ICdibG9jayd9XCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3BlcC1wYWdlLWxheW91dD4iXX0=
|