croco-html 2.41.0 → 2.43.0
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/README.md +59 -0
- package/esm2022/lib/components/editor/main-editor-block/main-editor-block.component.mjs +3 -3
- package/esm2022/lib/components/editor/visual-editor/visual-editor.component.mjs +3 -3
- package/esm2022/lib/extensions/AngularMaterialTableMethods.mjs +1 -1
- package/esm2022/lib/extensions/TableMethods.mjs +1 -1
- package/esm2022/lib/models/models.mjs +1 -1
- package/esm2022/lib/pipes/sprite-icon-path.pipe.mjs +2 -2
- package/fesm2022/croco-html.mjs +5 -5
- package/fesm2022/croco-html.mjs.map +1 -1
- package/lib/extensions/AngularMaterialTableMethods.d.ts +1 -2
- package/lib/extensions/HtmlExtractionMethods.d.ts +2 -2
- package/lib/extensions/TableMethods.d.ts +5 -1
- package/lib/index.d.ts +7 -7
- package/lib/models/models.d.ts +0 -4
- package/package.json +1 -1
|
@@ -193,7 +193,7 @@ export class VisualEditorComponent {
|
|
|
193
193
|
this.selectedVideoPlayer = this.videoPlayers[0].type;
|
|
194
194
|
}
|
|
195
195
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: VisualEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CrocoHtmlOptionsToken }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
196
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: VisualEditorComponent, isStandalone: true, selector: "croco-visual-editor", inputs: { showMarkUp: "showMarkUp", useHtmlRaw: "useHtmlRaw", html: "html" }, outputs: { html: "html", onHtmlChanged: "onHtmlChanged", rendered: "rendered" }, viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }], ngImport: i0, template: "@if (isLoading) {\n <div>\n <div>\n <mat-spinner style=\"margin:0 auto;\"></mat-spinner>\n <div style=\"text-align: center;\">{{loadingText}}</div>\n </div>\n <div style=\"height: 10px;\"></div>\n </div>\n}\n<div [hidden]=\"isLoading\">\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\n <mat-card-content>\n <div class=\"row d-flex align-items-center\">\n <div class=\"col-12\">\n <div class=\"w-100\" style=\"margin-bottom: 22px\">\n <div class=\"tags\">\n @for (tag of tags; track tag) {\n <span class=\"tag-item\" (click)=\"selectTag(tag)\" [class.active]=\"selectedValue === tag.tag\">\n <ng-container [ngTemplateOutlet]=\"tagButtonIcons\"\n [ngTemplateOutletContext]=\"{icon: tag.tag}\">\n </ng-container>\n {{tag.displayValue}}\n </span>\n }\n </div>\n </div>\n </div>\n @if (selectedValue === ExternalVideoTagDataConsts.TagName) {\n <div class=\"col-12\">\n <mat-form-field class=\"w-100\" appearance=\"outline\">\n <mat-label>\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0438\u0434\u0435\u043E\u043F\u043B\u0435\u0435\u0440</mat-label>\n <mat-select [(ngModel)]=\"selectedVideoPlayer\">\n @for (videoPlayer of videoPlayers; track videoPlayer.type) {\n <mat-option [value]=\"videoPlayer.type\">\n {{videoPlayer.displayValue}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @if (selectedValue === 'text') {\n <div style=\"display: flex; justify-content: space-between\">\n <div style=\"margin-bottom: 22px\">\n <mat-button-toggle-group\n [(ngModel)]=\"textTag\"\n [hideSingleSelectionIndicator]=\"true\"\n >\n @for (option of textTagOptions; track option) {\n <mat-button-toggle value=\"{{ option.tag }}\">\n {{ option.displayValue }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n\n <div style=\"margin-bottom: 22px\">\n <mat-button-toggle-group\n [(ngModel)]=\"alignment\"\n [hideSingleSelectionIndicator]=\"true\"\n >\n @for (option of alignmentOptions; track option) {\n <mat-button-toggle value=\"{{ option.value }}\">\n <ng-container [ngTemplateOutlet]=\"textAlignToggleIcons\"\n [ngTemplateOutletContext]=\"{icon: option.value}\">\n </ng-container>\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <mat-form-field class=\"w-100\">\n <mat-label>\u0422\u0435\u043A\u0441\u0442</mat-label>\n <textarea\n #autosize=\"cdkTextareaAutosize\"\n matInput\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n cdkAutosizeMaxRows=\"5\"\n placeholder=\"\u0422\u0435\u043A\u0441\u0442\"\n #textArea\n [(ngModel)]=\"text\"\n ></textarea>\n </mat-form-field>\n }\n <div class=\"col-12\">\n <button (click)=\"addTag()\" class=\"w-100\" mat-stroked-button>\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u0433\n </button>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <div style=\"height: 10px;\">\n </div>\n</div>\n<div [hidden]=\"isLoading\">\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\n <mat-card-content>\n <div class=\"row d-flex align-items-center\">\n <div class=\"col-12\">\n <croco-html-add-files-btn (filesTagsReady)=\"filesTagsReadyHandler($event)\"\n (postFilesStarted)=\"postFilesStartedEventHandler($event)\" class=\"w-100\">\n </croco-html-add-files-btn>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <div style=\"height: 10px;\">\n </div>\n</div>\n<div [hidden]=\"isLoading\">\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\n @for (tag of bodyTags; track tag; let i = $index) {\n <div cdkDrag>\n <mat-card style=\"margin: 2px;\" class=\"mat-card special\">\n <mat-card-content>\n <div class=\"d-flex justify-content-between\">\n <div class=\"example-handle\" cdkDragHandle>\n <svg class=\"move-icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"cursor: pointer\">\n <path\n d=\"M14.6516 19.0984L12 21.75M12 21.75L9.34838 19.0984M12 21.75V15M4.90163 14.6516L2.25 12M2.25 12L4.90163 9.34838M2.25 12H9M19.0984 9.34838L21.75 12M21.75 12L19.0984 14.6516M21.75 12H15M9.34838 4.90163L12 2.25M12 2.25L14.6516 4.90163M12 2.25V9\"\n stroke=\"#323E8B\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div>\n <div class=\"badge\" style=\"color:#323E8B\">\n <ng-container [ngTemplateOutlet]=\"tagButtonIcons\"\n [ngTemplateOutletContext]=\"{icon: tag.tagDescription.tag}\">\n </ng-container>\n </div>\n </div>\n </div>\n <div style=\"height: 15px;\"></div>\n <croco-html-main-editor-block [tag]=\"tag\" (onTagSaved)=\"onTagSavedHandler($event)\"\n (onTagRemoved)=\"onTagRemovedHandler(i)\">\n </croco-html-main-editor-block>\n </mat-card-content>\n </mat-card>\n <div style=\"height: 10px;\">\n </div>\n </div>\n }\n </div>\n</div>\n\n<ng-template #textAlignToggleIcons let-icon=\"icon\">\n @if (icon === 'left') {\n <svg class=\"text-align-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3.12548 14.6875H13.125M3.12548 11.5625H16.875M3.125 8.4375H13.125M3.125 5.3125H16.875\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'center') {\n <svg class=\"text-align-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.00024 14.6875H14.9998M3.12524 11.5625H16.8748M5 8.4375H15M3.125 5.3125H16.875\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'right') {\n <svg class=\"text-align-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6.87548 14.6875H16.875M3.12548 11.5625H16.875M6.875 8.4375H16.875M3.125 5.3125H16.875\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n</ng-template>\n\n<ng-template #tagButtonIcons let-icon=\"icon\">\n @if (icon === 'text') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7.49952 15.6246H12.4995M9.99952 4.37459V15.6246M3.74951 6.87459V4.37459H16.2495V6.87459\"\n stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'html-raw') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 6.875L18.75 10L15 13.125M5 6.875L1.25 10L5 13.125M12.5 3.125L7.5 16.875\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'external-video') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M14.375 8.75L18.75 6.25V13.75L14.375 11.25M1.875 4.6875H11.875C12.538 4.6875 13.1739 4.95089 13.6428 5.41973C14.1116 5.88857 14.375 6.52446 14.375 7.1875V14.6875C14.375 14.8533 14.3092 15.0122 14.1919 15.1294C14.0747 15.2467 13.9158 15.3125 13.75 15.3125H3.75C3.08696 15.3125 2.45107 15.0491 1.98223 14.5803C1.51339 14.1114 1.25 13.4755 1.25 12.8125V5.3125C1.25 5.14674 1.31585 4.98777 1.43306 4.87056C1.55027 4.75335 1.70924 4.6875 1.875 4.6875Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'file-image') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M2.5 13.125L6.43305 9.19194C6.49108 9.1339 6.55998 9.08787 6.63581 9.05646C6.71164 9.02505 6.79291 9.00888 6.87499 9.00888C6.95706 9.00888 7.03834 9.02505 7.11417 9.05646C7.18999 9.08787 7.25889 9.1339 7.31693 9.19194L10.808 12.6831C10.8661 12.7411 10.935 12.7871 11.0108 12.8185C11.0866 12.8499 11.1679 12.8661 11.25 12.8661C11.3321 12.8661 11.4133 12.8499 11.4892 12.8185C11.565 12.7871 11.6339 12.7411 11.6919 12.6831L13.308 11.0669C13.3661 11.0089 13.435 10.9629 13.5108 10.9315C13.5866 10.9 13.6679 10.8839 13.75 10.8839C13.8321 10.8839 13.9133 10.9 13.9892 10.9315C14.065 10.9629 14.1339 11.0089 14.1919 11.0669L17.5 14.375M3.125 3.75H16.875C17.2202 3.75 17.5 4.02982 17.5 4.375V15.625C17.5 15.9702 17.2202 16.25 16.875 16.25H3.125C2.77982 16.25 2.5 15.9702 2.5 15.625V4.375C2.5 4.02982 2.77982 3.75 3.125 3.75ZM13.125 7.8125C13.125 8.33027 12.7053 8.75 12.1875 8.75C11.6697 8.75 11.25 8.33027 11.25 7.8125C11.25 7.29473 11.6697 6.875 12.1875 6.875C12.7053 6.875 13.125 7.29473 13.125 7.8125Z\"\n stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'custom-widget') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M16.25 15V16.25M13.75 12.5H16.25M11.25 16.25H13.75V11.25M11.25 11.25V13.75M4.375 11.25H8.125C8.47018 11.25 8.75 11.5298 8.75 11.875V15.625C8.75 15.9702 8.47018 16.25 8.125 16.25H4.375C4.02982 16.25 3.75 15.9702 3.75 15.625V11.875C3.75 11.5298 4.02982 11.25 4.375 11.25ZM11.875 3.75H15.625C15.9702 3.75 16.25 4.02982 16.25 4.375V8.125C16.25 8.47018 15.9702 8.75 15.625 8.75H11.875C11.5298 8.75 11.25 8.47018 11.25 8.125V4.375C11.25 4.02982 11.5298 3.75 11.875 3.75ZM4.375 3.75H8.125C8.47018 3.75 8.75 4.02982 8.75 4.375V8.125C8.75 8.47018 8.47018 8.75 8.125 8.75H4.375C4.02982 8.75 3.75 8.47018 3.75 8.125V4.375C3.75 4.02982 4.02982 3.75 4.375 3.75Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'button') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9.99939 3.75024V9.68775M13.7501 4.23695C14.9923 5.04536 15.9399 6.23353 16.4518 7.62435C16.9638 9.01517 17.0125 10.5342 16.5909 11.955C16.1693 13.3758 15.2998 14.6223 14.1121 15.5087C12.9244 16.3952 11.482 16.8741 9.99998 16.8741C8.51795 16.8741 7.07559 16.3951 5.88788 15.5087C4.70017 14.6223 3.83071 13.3757 3.40908 11.9549C2.98746 10.5341 3.03624 9.01513 3.54816 7.62432C4.06009 6.2335 5.00774 5.04534 6.24988 4.23693\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'download-file-button') {\n <svg style=\"fill:currentColor\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.42424 9.41667C3.49967 9.41667 2.75 10.1663 2.75 11.0909V19.5758C2.75 20.5003 3.49967 21.25 4.42424 21.25H19.5758C20.5003 21.25 21.25 20.5003 21.25 19.5758V11.0909C21.25 10.1663 20.5003 9.41667 19.5758 9.41667H15.9394C15.5252 9.41667 15.1894 9.08088 15.1894 8.66667C15.1894 8.25245 15.5252 7.91667 15.9394 7.91667H19.5758C21.3288 7.91667 22.75 9.33791 22.75 11.0909V19.5758C22.75 21.3288 21.3288 22.75 19.5758 22.75H4.42424C2.67124 22.75 1.25 21.3288 1.25 19.5758V11.0909C1.25 9.33791 2.67124 7.91667 4.42424 7.91667H8.06061C8.47482 7.91667 8.81061 8.25245 8.81061 8.66667C8.81061 9.08088 8.47482 9.41667 8.06061 9.41667H4.42424Z\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 1.25C12.4142 1.25 12.75 1.58579 12.75 2V15.9394C12.75 16.3536 12.4142 16.6894 12 16.6894C11.5858 16.6894 11.25 16.3536 11.25 15.9394V2C11.25 1.58579 11.5858 1.25 12 1.25Z\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.83331 12.9848C8.1262 12.6919 8.60107 12.6919 8.89397 12.9848L12 16.0909L15.106 12.9848C15.3989 12.6919 15.8738 12.6919 16.1667 12.9848C16.4596 13.2777 16.4596 13.7526 16.1667 14.0455L12.5303 17.6818C12.2374 17.9747 11.7626 17.9747 11.4697 17.6818L7.83331 14.0455C7.54041 13.7526 7.54041 13.2777 7.83331 12.9848Z\"/>\n </svg>\n }\n</ng-template>\n\n\n\n\n\n\n", styles: [":host{--mat-standard-button-toggle-selected-state-background-color: #323E8B;--mat-standard-button-toggle-text-color: #323E8B;--mat-standard-button-toggle-selected-state-text-color: white;--mat-standard-button-toggle-height: 36px;--mat-standard-button-toggle-divider-color: #323E8B;--mdc-outlined-button-label-text-weight: 400;--mdc-outlined-button-label-text-color: #333333!important;--mdc-outlined-button-container-shape: 30px;--mdc-outlined-button-outline-width: 2px;--mdc-outlined-button-container-height: 44px}:host ::ng-deep .mat-button-toggle-appearance-standard span.mat-button-toggle-label-content{padding:0 8px;min-width:36px}.mat-button-toggle .text-align-icon{stroke:#323e8b}.mat-button-toggle:hover{color:#747ebf}.mat-button-toggle:hover .text-align-icon{stroke:#747ebf}.mat-button-toggle-checked .text-align-icon{stroke:#fff}.example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden}.example-box{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.badge{width:44px;height:44px;border-radius:50%;border:1px solid #323E8B;display:flex;align-items:center;justify-content:center}.mat-card.special{border:1px solid #747EBF;border-radius:8px;box-shadow:none}.tags{display:flex;gap:10px;flex-wrap:wrap}.tag-item{display:flex;align-items:center;gap:5px;cursor:pointer;padding:5px 20px;border-radius:20px;background-color:#e0e0e0;color:#212121;transition:.2s ease-in-out}.tag-item.active{background-color:#323e8b;color:#fff}.move-icon:hover{opacity:.7}\n"], dependencies: [{ kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: MatCardContent, selector: "mat-card-content" }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: AddFilesBtnComponent, selector: "croco-html-add-files-btn", outputs: ["postFilesStarted", "filesTagsReady"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: MainEditorBlockComponent, selector: "croco-html-main-editor-block", inputs: ["tag"], outputs: ["onTagSaved", "onTagRemoved"] }, { kind: "directive", type: MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
196
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: VisualEditorComponent, isStandalone: true, selector: "croco-visual-editor", inputs: { showMarkUp: "showMarkUp", useHtmlRaw: "useHtmlRaw", html: "html" }, outputs: { html: "html", onHtmlChanged: "onHtmlChanged", rendered: "rendered" }, viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }], ngImport: i0, template: "@if (isLoading) {\n <div>\n <div>\n <mat-spinner style=\"margin:0 auto;\"></mat-spinner>\n <div style=\"text-align: center;\">{{loadingText}}</div>\n </div>\n <div style=\"height: 10px;\"></div>\n </div>\n}\n<div [hidden]=\"isLoading\">\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\n <mat-card-content>\n <div class=\"row d-flex align-items-center\">\n <div class=\"col-12\">\n <div class=\"w-100\" style=\"margin-bottom: 22px\">\n <div class=\"tags\">\n @for (tag of tags; track tag) {\n <span class=\"tag-item\" (click)=\"selectTag(tag)\" [class.active]=\"selectedValue === tag.tag\">\n <ng-container [ngTemplateOutlet]=\"tagButtonIcons\"\n [ngTemplateOutletContext]=\"{icon: tag.tag}\">\n </ng-container>\n {{tag.displayValue}}\n </span>\n }\n </div>\n </div>\n </div>\n @if (selectedValue === ExternalVideoTagDataConsts.TagName) {\n <div class=\"col-12\">\n <mat-form-field class=\"w-100\" appearance=\"outline\">\n <mat-label>\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0438\u0434\u0435\u043E\u043F\u043B\u0435\u0435\u0440</mat-label>\n <mat-select [(ngModel)]=\"selectedVideoPlayer\">\n @for (videoPlayer of videoPlayers; track videoPlayer.type) {\n <mat-option [value]=\"videoPlayer.type\">\n {{videoPlayer.displayValue}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @if (selectedValue === 'text') {\n <div style=\"display: flex; justify-content: space-between\">\n <div style=\"margin-bottom: 22px\">\n <mat-button-toggle-group\n [(ngModel)]=\"textTag\"\n [hideSingleSelectionIndicator]=\"true\"\n >\n @for (option of textTagOptions; track option) {\n <mat-button-toggle value=\"{{ option.tag }}\">\n {{ option.displayValue }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n\n <div style=\"margin-bottom: 22px\">\n <mat-button-toggle-group\n [(ngModel)]=\"alignment\"\n [hideSingleSelectionIndicator]=\"true\"\n >\n @for (option of alignmentOptions; track option) {\n <mat-button-toggle value=\"{{ option.value }}\">\n <ng-container [ngTemplateOutlet]=\"textAlignToggleIcons\"\n [ngTemplateOutletContext]=\"{icon: option.value}\">\n </ng-container>\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <mat-form-field class=\"w-100\">\n <mat-label>\u0422\u0435\u043A\u0441\u0442</mat-label>\n <textarea\n #autosize=\"cdkTextareaAutosize\"\n matInput\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n cdkAutosizeMaxRows=\"5\"\n placeholder=\"\u0422\u0435\u043A\u0441\u0442\"\n #textArea\n [(ngModel)]=\"text\"\n ></textarea>\n </mat-form-field>\n }\n <div class=\"col-12\">\n <button (click)=\"addTag()\" class=\"w-100\" mat-stroked-button>\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u0433\n </button>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <div style=\"height: 10px;\">\n </div>\n</div>\n<div [hidden]=\"isLoading\">\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\n <mat-card-content>\n <div class=\"row d-flex align-items-center\">\n <div class=\"col-12\">\n <croco-html-add-files-btn (filesTagsReady)=\"filesTagsReadyHandler($event)\"\n (postFilesStarted)=\"postFilesStartedEventHandler($event)\" class=\"w-100\">\n </croco-html-add-files-btn>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <div style=\"height: 10px;\">\n </div>\n</div>\n<div [hidden]=\"isLoading\">\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\n @for (tag of bodyTags; track tag; let i = $index) {\n <div cdkDrag>\n <mat-card style=\"margin: 2px;\" class=\"mat-card special\">\n <mat-card-content>\n <div class=\"d-flex justify-content-between\">\n <div class=\"example-handle\" cdkDragHandle>\n <svg class=\"move-icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"cursor: pointer\">\n <path\n d=\"M14.6516 19.0984L12 21.75M12 21.75L9.34838 19.0984M12 21.75V15M4.90163 14.6516L2.25 12M2.25 12L4.90163 9.34838M2.25 12H9M19.0984 9.34838L21.75 12M21.75 12L19.0984 14.6516M21.75 12H15M9.34838 4.90163L12 2.25M12 2.25L14.6516 4.90163M12 2.25V9\"\n stroke=\"#323E8B\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div>\n <div class=\"badge\" style=\"color:#323E8B\">\n <ng-container [ngTemplateOutlet]=\"tagButtonIcons\"\n [ngTemplateOutletContext]=\"{icon: tag.tagDescription.tag}\">\n </ng-container>\n </div>\n </div>\n </div>\n <div style=\"height: 15px;\"></div>\n <croco-html-main-editor-block [tag]=\"tag\" (onTagSaved)=\"onTagSavedHandler($event)\"\n (onTagRemoved)=\"onTagRemovedHandler(i)\">\n </croco-html-main-editor-block>\n </mat-card-content>\n </mat-card>\n <div style=\"height: 10px;\">\n </div>\n </div>\n }\n </div>\n</div>\n\n<ng-template #textAlignToggleIcons let-icon=\"icon\">\n @if (icon === 'left') {\n <svg class=\"text-align-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3.12548 14.6875H13.125M3.12548 11.5625H16.875M3.125 8.4375H13.125M3.125 5.3125H16.875\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'center') {\n <svg class=\"text-align-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.00024 14.6875H14.9998M3.12524 11.5625H16.8748M5 8.4375H15M3.125 5.3125H16.875\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'right') {\n <svg class=\"text-align-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6.87548 14.6875H16.875M3.12548 11.5625H16.875M6.875 8.4375H16.875M3.125 5.3125H16.875\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n</ng-template>\n\n<ng-template #tagButtonIcons let-icon=\"icon\">\n @if (icon === 'text') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7.49952 15.6246H12.4995M9.99952 4.37459V15.6246M3.74951 6.87459V4.37459H16.2495V6.87459\"\n stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'html-raw') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 6.875L18.75 10L15 13.125M5 6.875L1.25 10L5 13.125M12.5 3.125L7.5 16.875\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'external-video') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M14.375 8.75L18.75 6.25V13.75L14.375 11.25M1.875 4.6875H11.875C12.538 4.6875 13.1739 4.95089 13.6428 5.41973C14.1116 5.88857 14.375 6.52446 14.375 7.1875V14.6875C14.375 14.8533 14.3092 15.0122 14.1919 15.1294C14.0747 15.2467 13.9158 15.3125 13.75 15.3125H3.75C3.08696 15.3125 2.45107 15.0491 1.98223 14.5803C1.51339 14.1114 1.25 13.4755 1.25 12.8125V5.3125C1.25 5.14674 1.31585 4.98777 1.43306 4.87056C1.55027 4.75335 1.70924 4.6875 1.875 4.6875Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'file-image') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M2.5 13.125L6.43305 9.19194C6.49108 9.1339 6.55998 9.08787 6.63581 9.05646C6.71164 9.02505 6.79291 9.00888 6.87499 9.00888C6.95706 9.00888 7.03834 9.02505 7.11417 9.05646C7.18999 9.08787 7.25889 9.1339 7.31693 9.19194L10.808 12.6831C10.8661 12.7411 10.935 12.7871 11.0108 12.8185C11.0866 12.8499 11.1679 12.8661 11.25 12.8661C11.3321 12.8661 11.4133 12.8499 11.4892 12.8185C11.565 12.7871 11.6339 12.7411 11.6919 12.6831L13.308 11.0669C13.3661 11.0089 13.435 10.9629 13.5108 10.9315C13.5866 10.9 13.6679 10.8839 13.75 10.8839C13.8321 10.8839 13.9133 10.9 13.9892 10.9315C14.065 10.9629 14.1339 11.0089 14.1919 11.0669L17.5 14.375M3.125 3.75H16.875C17.2202 3.75 17.5 4.02982 17.5 4.375V15.625C17.5 15.9702 17.2202 16.25 16.875 16.25H3.125C2.77982 16.25 2.5 15.9702 2.5 15.625V4.375C2.5 4.02982 2.77982 3.75 3.125 3.75ZM13.125 7.8125C13.125 8.33027 12.7053 8.75 12.1875 8.75C11.6697 8.75 11.25 8.33027 11.25 7.8125C11.25 7.29473 11.6697 6.875 12.1875 6.875C12.7053 6.875 13.125 7.29473 13.125 7.8125Z\"\n stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'custom-widget') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M16.25 15V16.25M13.75 12.5H16.25M11.25 16.25H13.75V11.25M11.25 11.25V13.75M4.375 11.25H8.125C8.47018 11.25 8.75 11.5298 8.75 11.875V15.625C8.75 15.9702 8.47018 16.25 8.125 16.25H4.375C4.02982 16.25 3.75 15.9702 3.75 15.625V11.875C3.75 11.5298 4.02982 11.25 4.375 11.25ZM11.875 3.75H15.625C15.9702 3.75 16.25 4.02982 16.25 4.375V8.125C16.25 8.47018 15.9702 8.75 15.625 8.75H11.875C11.5298 8.75 11.25 8.47018 11.25 8.125V4.375C11.25 4.02982 11.5298 3.75 11.875 3.75ZM4.375 3.75H8.125C8.47018 3.75 8.75 4.02982 8.75 4.375V8.125C8.75 8.47018 8.47018 8.75 8.125 8.75H4.375C4.02982 8.75 3.75 8.47018 3.75 8.125V4.375C3.75 4.02982 4.02982 3.75 4.375 3.75Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'button') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9.99939 3.75024V9.68775M13.7501 4.23695C14.9923 5.04536 15.9399 6.23353 16.4518 7.62435C16.9638 9.01517 17.0125 10.5342 16.5909 11.955C16.1693 13.3758 15.2998 14.6223 14.1121 15.5087C12.9244 16.3952 11.482 16.8741 9.99998 16.8741C8.51795 16.8741 7.07559 16.3951 5.88788 15.5087C4.70017 14.6223 3.83071 13.3757 3.40908 11.9549C2.98746 10.5341 3.03624 9.01513 3.54816 7.62432C4.06009 6.2335 5.00774 5.04534 6.24988 4.23693\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'download-file-button') {\n <svg style=\"fill:currentColor\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.42424 9.41667C3.49967 9.41667 2.75 10.1663 2.75 11.0909V19.5758C2.75 20.5003 3.49967 21.25 4.42424 21.25H19.5758C20.5003 21.25 21.25 20.5003 21.25 19.5758V11.0909C21.25 10.1663 20.5003 9.41667 19.5758 9.41667H15.9394C15.5252 9.41667 15.1894 9.08088 15.1894 8.66667C15.1894 8.25245 15.5252 7.91667 15.9394 7.91667H19.5758C21.3288 7.91667 22.75 9.33791 22.75 11.0909V19.5758C22.75 21.3288 21.3288 22.75 19.5758 22.75H4.42424C2.67124 22.75 1.25 21.3288 1.25 19.5758V11.0909C1.25 9.33791 2.67124 7.91667 4.42424 7.91667H8.06061C8.47482 7.91667 8.81061 8.25245 8.81061 8.66667C8.81061 9.08088 8.47482 9.41667 8.06061 9.41667H4.42424Z\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 1.25C12.4142 1.25 12.75 1.58579 12.75 2V15.9394C12.75 16.3536 12.4142 16.6894 12 16.6894C11.5858 16.6894 11.25 16.3536 11.25 15.9394V2C11.25 1.58579 11.5858 1.25 12 1.25Z\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.83331 12.9848C8.1262 12.6919 8.60107 12.6919 8.89397 12.9848L12 16.0909L15.106 12.9848C15.3989 12.6919 15.8738 12.6919 16.1667 12.9848C16.4596 13.2777 16.4596 13.7526 16.1667 14.0455L12.5303 17.6818C12.2374 17.9747 11.7626 17.9747 11.4697 17.6818L7.83331 14.0455C7.54041 13.7526 7.54041 13.2777 7.83331 12.9848Z\"/>\n </svg>\n }\n</ng-template>\n\n\n\n\n\n\n", styles: [":host{--mat-standard-button-toggle-selected-state-background-color: #323E8B;--mat-standard-button-toggle-text-color: #323E8B;--mat-standard-button-toggle-selected-state-text-color: white;--mat-standard-button-toggle-height: 36px;--mat-standard-button-toggle-divider-color: #323E8B;--mdc-outlined-button-label-text-weight: 400;--mdc-outlined-button-label-text-color: #333333!important;--mdc-outlined-button-container-shape: 30px;--mdc-outlined-button-outline-width: 2px;--mdc-outlined-button-container-height: 44px}:host ::ng-deep .mat-button-toggle-appearance-standard span.mat-button-toggle-label-content{padding:0 8px;min-width:36px}.mat-button-toggle .text-align-icon{stroke:#323e8b}.mat-button-toggle:hover{color:#747ebf}.mat-button-toggle:hover .text-align-icon{stroke:#747ebf}.mat-button-toggle-checked .text-align-icon{stroke:#fff}.example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden}.example-box{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.badge{width:44px;height:44px;border-radius:50%;border:1px solid #323E8B;display:flex;align-items:center;justify-content:center}.mat-card.special{border:1px solid #747EBF;border-radius:8px;box-shadow:none}.tags{display:flex;gap:10px;flex-wrap:wrap}.tag-item{display:flex;align-items:center;gap:5px;cursor:pointer;padding:10px 20px;border:1px solid #323E8B;border-radius:30px;background-color:#fff;color:#23262a;transition:.2s ease-in-out}.tag-item svg{color:#323e8b}.tag-item.active{background-color:#323e8b;color:#fff}.tag-item.active svg{color:#fff}.tag-item:hover{color:#747ebf;box-shadow:0 0 4px #747ebf}.tag-item:hover svg{color:#747ebf}.move-icon:hover{opacity:.7}\n"], dependencies: [{ kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: MatCardContent, selector: "mat-card-content" }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: AddFilesBtnComponent, selector: "croco-html-add-files-btn", outputs: ["postFilesStarted", "filesTagsReady"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: MainEditorBlockComponent, selector: "croco-html-main-editor-block", inputs: ["tag"], outputs: ["onTagSaved", "onTagRemoved"] }, { kind: "directive", type: MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
197
197
|
}
|
|
198
198
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: VisualEditorComponent, decorators: [{
|
|
199
199
|
type: Component,
|
|
@@ -218,7 +218,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
218
218
|
MatButtonToggle,
|
|
219
219
|
NgTemplateOutlet,
|
|
220
220
|
UpperCasePipe,
|
|
221
|
-
], template: "@if (isLoading) {\n <div>\n <div>\n <mat-spinner style=\"margin:0 auto;\"></mat-spinner>\n <div style=\"text-align: center;\">{{loadingText}}</div>\n </div>\n <div style=\"height: 10px;\"></div>\n </div>\n}\n<div [hidden]=\"isLoading\">\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\n <mat-card-content>\n <div class=\"row d-flex align-items-center\">\n <div class=\"col-12\">\n <div class=\"w-100\" style=\"margin-bottom: 22px\">\n <div class=\"tags\">\n @for (tag of tags; track tag) {\n <span class=\"tag-item\" (click)=\"selectTag(tag)\" [class.active]=\"selectedValue === tag.tag\">\n <ng-container [ngTemplateOutlet]=\"tagButtonIcons\"\n [ngTemplateOutletContext]=\"{icon: tag.tag}\">\n </ng-container>\n {{tag.displayValue}}\n </span>\n }\n </div>\n </div>\n </div>\n @if (selectedValue === ExternalVideoTagDataConsts.TagName) {\n <div class=\"col-12\">\n <mat-form-field class=\"w-100\" appearance=\"outline\">\n <mat-label>\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0438\u0434\u0435\u043E\u043F\u043B\u0435\u0435\u0440</mat-label>\n <mat-select [(ngModel)]=\"selectedVideoPlayer\">\n @for (videoPlayer of videoPlayers; track videoPlayer.type) {\n <mat-option [value]=\"videoPlayer.type\">\n {{videoPlayer.displayValue}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @if (selectedValue === 'text') {\n <div style=\"display: flex; justify-content: space-between\">\n <div style=\"margin-bottom: 22px\">\n <mat-button-toggle-group\n [(ngModel)]=\"textTag\"\n [hideSingleSelectionIndicator]=\"true\"\n >\n @for (option of textTagOptions; track option) {\n <mat-button-toggle value=\"{{ option.tag }}\">\n {{ option.displayValue }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n\n <div style=\"margin-bottom: 22px\">\n <mat-button-toggle-group\n [(ngModel)]=\"alignment\"\n [hideSingleSelectionIndicator]=\"true\"\n >\n @for (option of alignmentOptions; track option) {\n <mat-button-toggle value=\"{{ option.value }}\">\n <ng-container [ngTemplateOutlet]=\"textAlignToggleIcons\"\n [ngTemplateOutletContext]=\"{icon: option.value}\">\n </ng-container>\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <mat-form-field class=\"w-100\">\n <mat-label>\u0422\u0435\u043A\u0441\u0442</mat-label>\n <textarea\n #autosize=\"cdkTextareaAutosize\"\n matInput\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n cdkAutosizeMaxRows=\"5\"\n placeholder=\"\u0422\u0435\u043A\u0441\u0442\"\n #textArea\n [(ngModel)]=\"text\"\n ></textarea>\n </mat-form-field>\n }\n <div class=\"col-12\">\n <button (click)=\"addTag()\" class=\"w-100\" mat-stroked-button>\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u0433\n </button>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <div style=\"height: 10px;\">\n </div>\n</div>\n<div [hidden]=\"isLoading\">\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\n <mat-card-content>\n <div class=\"row d-flex align-items-center\">\n <div class=\"col-12\">\n <croco-html-add-files-btn (filesTagsReady)=\"filesTagsReadyHandler($event)\"\n (postFilesStarted)=\"postFilesStartedEventHandler($event)\" class=\"w-100\">\n </croco-html-add-files-btn>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <div style=\"height: 10px;\">\n </div>\n</div>\n<div [hidden]=\"isLoading\">\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\n @for (tag of bodyTags; track tag; let i = $index) {\n <div cdkDrag>\n <mat-card style=\"margin: 2px;\" class=\"mat-card special\">\n <mat-card-content>\n <div class=\"d-flex justify-content-between\">\n <div class=\"example-handle\" cdkDragHandle>\n <svg class=\"move-icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"cursor: pointer\">\n <path\n d=\"M14.6516 19.0984L12 21.75M12 21.75L9.34838 19.0984M12 21.75V15M4.90163 14.6516L2.25 12M2.25 12L4.90163 9.34838M2.25 12H9M19.0984 9.34838L21.75 12M21.75 12L19.0984 14.6516M21.75 12H15M9.34838 4.90163L12 2.25M12 2.25L14.6516 4.90163M12 2.25V9\"\n stroke=\"#323E8B\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div>\n <div class=\"badge\" style=\"color:#323E8B\">\n <ng-container [ngTemplateOutlet]=\"tagButtonIcons\"\n [ngTemplateOutletContext]=\"{icon: tag.tagDescription.tag}\">\n </ng-container>\n </div>\n </div>\n </div>\n <div style=\"height: 15px;\"></div>\n <croco-html-main-editor-block [tag]=\"tag\" (onTagSaved)=\"onTagSavedHandler($event)\"\n (onTagRemoved)=\"onTagRemovedHandler(i)\">\n </croco-html-main-editor-block>\n </mat-card-content>\n </mat-card>\n <div style=\"height: 10px;\">\n </div>\n </div>\n }\n </div>\n</div>\n\n<ng-template #textAlignToggleIcons let-icon=\"icon\">\n @if (icon === 'left') {\n <svg class=\"text-align-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3.12548 14.6875H13.125M3.12548 11.5625H16.875M3.125 8.4375H13.125M3.125 5.3125H16.875\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'center') {\n <svg class=\"text-align-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.00024 14.6875H14.9998M3.12524 11.5625H16.8748M5 8.4375H15M3.125 5.3125H16.875\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'right') {\n <svg class=\"text-align-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6.87548 14.6875H16.875M3.12548 11.5625H16.875M6.875 8.4375H16.875M3.125 5.3125H16.875\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n</ng-template>\n\n<ng-template #tagButtonIcons let-icon=\"icon\">\n @if (icon === 'text') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7.49952 15.6246H12.4995M9.99952 4.37459V15.6246M3.74951 6.87459V4.37459H16.2495V6.87459\"\n stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'html-raw') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 6.875L18.75 10L15 13.125M5 6.875L1.25 10L5 13.125M12.5 3.125L7.5 16.875\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'external-video') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M14.375 8.75L18.75 6.25V13.75L14.375 11.25M1.875 4.6875H11.875C12.538 4.6875 13.1739 4.95089 13.6428 5.41973C14.1116 5.88857 14.375 6.52446 14.375 7.1875V14.6875C14.375 14.8533 14.3092 15.0122 14.1919 15.1294C14.0747 15.2467 13.9158 15.3125 13.75 15.3125H3.75C3.08696 15.3125 2.45107 15.0491 1.98223 14.5803C1.51339 14.1114 1.25 13.4755 1.25 12.8125V5.3125C1.25 5.14674 1.31585 4.98777 1.43306 4.87056C1.55027 4.75335 1.70924 4.6875 1.875 4.6875Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'file-image') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M2.5 13.125L6.43305 9.19194C6.49108 9.1339 6.55998 9.08787 6.63581 9.05646C6.71164 9.02505 6.79291 9.00888 6.87499 9.00888C6.95706 9.00888 7.03834 9.02505 7.11417 9.05646C7.18999 9.08787 7.25889 9.1339 7.31693 9.19194L10.808 12.6831C10.8661 12.7411 10.935 12.7871 11.0108 12.8185C11.0866 12.8499 11.1679 12.8661 11.25 12.8661C11.3321 12.8661 11.4133 12.8499 11.4892 12.8185C11.565 12.7871 11.6339 12.7411 11.6919 12.6831L13.308 11.0669C13.3661 11.0089 13.435 10.9629 13.5108 10.9315C13.5866 10.9 13.6679 10.8839 13.75 10.8839C13.8321 10.8839 13.9133 10.9 13.9892 10.9315C14.065 10.9629 14.1339 11.0089 14.1919 11.0669L17.5 14.375M3.125 3.75H16.875C17.2202 3.75 17.5 4.02982 17.5 4.375V15.625C17.5 15.9702 17.2202 16.25 16.875 16.25H3.125C2.77982 16.25 2.5 15.9702 2.5 15.625V4.375C2.5 4.02982 2.77982 3.75 3.125 3.75ZM13.125 7.8125C13.125 8.33027 12.7053 8.75 12.1875 8.75C11.6697 8.75 11.25 8.33027 11.25 7.8125C11.25 7.29473 11.6697 6.875 12.1875 6.875C12.7053 6.875 13.125 7.29473 13.125 7.8125Z\"\n stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'custom-widget') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M16.25 15V16.25M13.75 12.5H16.25M11.25 16.25H13.75V11.25M11.25 11.25V13.75M4.375 11.25H8.125C8.47018 11.25 8.75 11.5298 8.75 11.875V15.625C8.75 15.9702 8.47018 16.25 8.125 16.25H4.375C4.02982 16.25 3.75 15.9702 3.75 15.625V11.875C3.75 11.5298 4.02982 11.25 4.375 11.25ZM11.875 3.75H15.625C15.9702 3.75 16.25 4.02982 16.25 4.375V8.125C16.25 8.47018 15.9702 8.75 15.625 8.75H11.875C11.5298 8.75 11.25 8.47018 11.25 8.125V4.375C11.25 4.02982 11.5298 3.75 11.875 3.75ZM4.375 3.75H8.125C8.47018 3.75 8.75 4.02982 8.75 4.375V8.125C8.75 8.47018 8.47018 8.75 8.125 8.75H4.375C4.02982 8.75 3.75 8.47018 3.75 8.125V4.375C3.75 4.02982 4.02982 3.75 4.375 3.75Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'button') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9.99939 3.75024V9.68775M13.7501 4.23695C14.9923 5.04536 15.9399 6.23353 16.4518 7.62435C16.9638 9.01517 17.0125 10.5342 16.5909 11.955C16.1693 13.3758 15.2998 14.6223 14.1121 15.5087C12.9244 16.3952 11.482 16.8741 9.99998 16.8741C8.51795 16.8741 7.07559 16.3951 5.88788 15.5087C4.70017 14.6223 3.83071 13.3757 3.40908 11.9549C2.98746 10.5341 3.03624 9.01513 3.54816 7.62432C4.06009 6.2335 5.00774 5.04534 6.24988 4.23693\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'download-file-button') {\n <svg style=\"fill:currentColor\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.42424 9.41667C3.49967 9.41667 2.75 10.1663 2.75 11.0909V19.5758C2.75 20.5003 3.49967 21.25 4.42424 21.25H19.5758C20.5003 21.25 21.25 20.5003 21.25 19.5758V11.0909C21.25 10.1663 20.5003 9.41667 19.5758 9.41667H15.9394C15.5252 9.41667 15.1894 9.08088 15.1894 8.66667C15.1894 8.25245 15.5252 7.91667 15.9394 7.91667H19.5758C21.3288 7.91667 22.75 9.33791 22.75 11.0909V19.5758C22.75 21.3288 21.3288 22.75 19.5758 22.75H4.42424C2.67124 22.75 1.25 21.3288 1.25 19.5758V11.0909C1.25 9.33791 2.67124 7.91667 4.42424 7.91667H8.06061C8.47482 7.91667 8.81061 8.25245 8.81061 8.66667C8.81061 9.08088 8.47482 9.41667 8.06061 9.41667H4.42424Z\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 1.25C12.4142 1.25 12.75 1.58579 12.75 2V15.9394C12.75 16.3536 12.4142 16.6894 12 16.6894C11.5858 16.6894 11.25 16.3536 11.25 15.9394V2C11.25 1.58579 11.5858 1.25 12 1.25Z\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.83331 12.9848C8.1262 12.6919 8.60107 12.6919 8.89397 12.9848L12 16.0909L15.106 12.9848C15.3989 12.6919 15.8738 12.6919 16.1667 12.9848C16.4596 13.2777 16.4596 13.7526 16.1667 14.0455L12.5303 17.6818C12.2374 17.9747 11.7626 17.9747 11.4697 17.6818L7.83331 14.0455C7.54041 13.7526 7.54041 13.2777 7.83331 12.9848Z\"/>\n </svg>\n }\n</ng-template>\n\n\n\n\n\n\n", styles: [":host{--mat-standard-button-toggle-selected-state-background-color: #323E8B;--mat-standard-button-toggle-text-color: #323E8B;--mat-standard-button-toggle-selected-state-text-color: white;--mat-standard-button-toggle-height: 36px;--mat-standard-button-toggle-divider-color: #323E8B;--mdc-outlined-button-label-text-weight: 400;--mdc-outlined-button-label-text-color: #333333!important;--mdc-outlined-button-container-shape: 30px;--mdc-outlined-button-outline-width: 2px;--mdc-outlined-button-container-height: 44px}:host ::ng-deep .mat-button-toggle-appearance-standard span.mat-button-toggle-label-content{padding:0 8px;min-width:36px}.mat-button-toggle .text-align-icon{stroke:#323e8b}.mat-button-toggle:hover{color:#747ebf}.mat-button-toggle:hover .text-align-icon{stroke:#747ebf}.mat-button-toggle-checked .text-align-icon{stroke:#fff}.example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden}.example-box{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.badge{width:44px;height:44px;border-radius:50%;border:1px solid #323E8B;display:flex;align-items:center;justify-content:center}.mat-card.special{border:1px solid #747EBF;border-radius:8px;box-shadow:none}.tags{display:flex;gap:10px;flex-wrap:wrap}.tag-item{display:flex;align-items:center;gap:5px;cursor:pointer;padding:5px 20px;border-radius:20px;background-color:#e0e0e0;color:#212121;transition:.2s ease-in-out}.tag-item.active{background-color:#323e8b;color:#fff}.move-icon:hover{opacity:.7}\n"] }]
|
|
221
|
+
], template: "@if (isLoading) {\n <div>\n <div>\n <mat-spinner style=\"margin:0 auto;\"></mat-spinner>\n <div style=\"text-align: center;\">{{loadingText}}</div>\n </div>\n <div style=\"height: 10px;\"></div>\n </div>\n}\n<div [hidden]=\"isLoading\">\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\n <mat-card-content>\n <div class=\"row d-flex align-items-center\">\n <div class=\"col-12\">\n <div class=\"w-100\" style=\"margin-bottom: 22px\">\n <div class=\"tags\">\n @for (tag of tags; track tag) {\n <span class=\"tag-item\" (click)=\"selectTag(tag)\" [class.active]=\"selectedValue === tag.tag\">\n <ng-container [ngTemplateOutlet]=\"tagButtonIcons\"\n [ngTemplateOutletContext]=\"{icon: tag.tag}\">\n </ng-container>\n {{tag.displayValue}}\n </span>\n }\n </div>\n </div>\n </div>\n @if (selectedValue === ExternalVideoTagDataConsts.TagName) {\n <div class=\"col-12\">\n <mat-form-field class=\"w-100\" appearance=\"outline\">\n <mat-label>\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0438\u0434\u0435\u043E\u043F\u043B\u0435\u0435\u0440</mat-label>\n <mat-select [(ngModel)]=\"selectedVideoPlayer\">\n @for (videoPlayer of videoPlayers; track videoPlayer.type) {\n <mat-option [value]=\"videoPlayer.type\">\n {{videoPlayer.displayValue}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @if (selectedValue === 'text') {\n <div style=\"display: flex; justify-content: space-between\">\n <div style=\"margin-bottom: 22px\">\n <mat-button-toggle-group\n [(ngModel)]=\"textTag\"\n [hideSingleSelectionIndicator]=\"true\"\n >\n @for (option of textTagOptions; track option) {\n <mat-button-toggle value=\"{{ option.tag }}\">\n {{ option.displayValue }}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n\n <div style=\"margin-bottom: 22px\">\n <mat-button-toggle-group\n [(ngModel)]=\"alignment\"\n [hideSingleSelectionIndicator]=\"true\"\n >\n @for (option of alignmentOptions; track option) {\n <mat-button-toggle value=\"{{ option.value }}\">\n <ng-container [ngTemplateOutlet]=\"textAlignToggleIcons\"\n [ngTemplateOutletContext]=\"{icon: option.value}\">\n </ng-container>\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n </div>\n <mat-form-field class=\"w-100\">\n <mat-label>\u0422\u0435\u043A\u0441\u0442</mat-label>\n <textarea\n #autosize=\"cdkTextareaAutosize\"\n matInput\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n cdkAutosizeMaxRows=\"5\"\n placeholder=\"\u0422\u0435\u043A\u0441\u0442\"\n #textArea\n [(ngModel)]=\"text\"\n ></textarea>\n </mat-form-field>\n }\n <div class=\"col-12\">\n <button (click)=\"addTag()\" class=\"w-100\" mat-stroked-button>\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u0433\n </button>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <div style=\"height: 10px;\">\n </div>\n</div>\n<div [hidden]=\"isLoading\">\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\n <mat-card-content>\n <div class=\"row d-flex align-items-center\">\n <div class=\"col-12\">\n <croco-html-add-files-btn (filesTagsReady)=\"filesTagsReadyHandler($event)\"\n (postFilesStarted)=\"postFilesStartedEventHandler($event)\" class=\"w-100\">\n </croco-html-add-files-btn>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <div style=\"height: 10px;\">\n </div>\n</div>\n<div [hidden]=\"isLoading\">\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\n @for (tag of bodyTags; track tag; let i = $index) {\n <div cdkDrag>\n <mat-card style=\"margin: 2px;\" class=\"mat-card special\">\n <mat-card-content>\n <div class=\"d-flex justify-content-between\">\n <div class=\"example-handle\" cdkDragHandle>\n <svg class=\"move-icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"cursor: pointer\">\n <path\n d=\"M14.6516 19.0984L12 21.75M12 21.75L9.34838 19.0984M12 21.75V15M4.90163 14.6516L2.25 12M2.25 12L4.90163 9.34838M2.25 12H9M19.0984 9.34838L21.75 12M21.75 12L19.0984 14.6516M21.75 12H15M9.34838 4.90163L12 2.25M12 2.25L14.6516 4.90163M12 2.25V9\"\n stroke=\"#323E8B\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div>\n <div class=\"badge\" style=\"color:#323E8B\">\n <ng-container [ngTemplateOutlet]=\"tagButtonIcons\"\n [ngTemplateOutletContext]=\"{icon: tag.tagDescription.tag}\">\n </ng-container>\n </div>\n </div>\n </div>\n <div style=\"height: 15px;\"></div>\n <croco-html-main-editor-block [tag]=\"tag\" (onTagSaved)=\"onTagSavedHandler($event)\"\n (onTagRemoved)=\"onTagRemovedHandler(i)\">\n </croco-html-main-editor-block>\n </mat-card-content>\n </mat-card>\n <div style=\"height: 10px;\">\n </div>\n </div>\n }\n </div>\n</div>\n\n<ng-template #textAlignToggleIcons let-icon=\"icon\">\n @if (icon === 'left') {\n <svg class=\"text-align-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3.12548 14.6875H13.125M3.12548 11.5625H16.875M3.125 8.4375H13.125M3.125 5.3125H16.875\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'center') {\n <svg class=\"text-align-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.00024 14.6875H14.9998M3.12524 11.5625H16.8748M5 8.4375H15M3.125 5.3125H16.875\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'right') {\n <svg class=\"text-align-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6.87548 14.6875H16.875M3.12548 11.5625H16.875M6.875 8.4375H16.875M3.125 5.3125H16.875\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n</ng-template>\n\n<ng-template #tagButtonIcons let-icon=\"icon\">\n @if (icon === 'text') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7.49952 15.6246H12.4995M9.99952 4.37459V15.6246M3.74951 6.87459V4.37459H16.2495V6.87459\"\n stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'html-raw') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 6.875L18.75 10L15 13.125M5 6.875L1.25 10L5 13.125M12.5 3.125L7.5 16.875\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'external-video') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M14.375 8.75L18.75 6.25V13.75L14.375 11.25M1.875 4.6875H11.875C12.538 4.6875 13.1739 4.95089 13.6428 5.41973C14.1116 5.88857 14.375 6.52446 14.375 7.1875V14.6875C14.375 14.8533 14.3092 15.0122 14.1919 15.1294C14.0747 15.2467 13.9158 15.3125 13.75 15.3125H3.75C3.08696 15.3125 2.45107 15.0491 1.98223 14.5803C1.51339 14.1114 1.25 13.4755 1.25 12.8125V5.3125C1.25 5.14674 1.31585 4.98777 1.43306 4.87056C1.55027 4.75335 1.70924 4.6875 1.875 4.6875Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'file-image') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M2.5 13.125L6.43305 9.19194C6.49108 9.1339 6.55998 9.08787 6.63581 9.05646C6.71164 9.02505 6.79291 9.00888 6.87499 9.00888C6.95706 9.00888 7.03834 9.02505 7.11417 9.05646C7.18999 9.08787 7.25889 9.1339 7.31693 9.19194L10.808 12.6831C10.8661 12.7411 10.935 12.7871 11.0108 12.8185C11.0866 12.8499 11.1679 12.8661 11.25 12.8661C11.3321 12.8661 11.4133 12.8499 11.4892 12.8185C11.565 12.7871 11.6339 12.7411 11.6919 12.6831L13.308 11.0669C13.3661 11.0089 13.435 10.9629 13.5108 10.9315C13.5866 10.9 13.6679 10.8839 13.75 10.8839C13.8321 10.8839 13.9133 10.9 13.9892 10.9315C14.065 10.9629 14.1339 11.0089 14.1919 11.0669L17.5 14.375M3.125 3.75H16.875C17.2202 3.75 17.5 4.02982 17.5 4.375V15.625C17.5 15.9702 17.2202 16.25 16.875 16.25H3.125C2.77982 16.25 2.5 15.9702 2.5 15.625V4.375C2.5 4.02982 2.77982 3.75 3.125 3.75ZM13.125 7.8125C13.125 8.33027 12.7053 8.75 12.1875 8.75C11.6697 8.75 11.25 8.33027 11.25 7.8125C11.25 7.29473 11.6697 6.875 12.1875 6.875C12.7053 6.875 13.125 7.29473 13.125 7.8125Z\"\n stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'custom-widget') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M16.25 15V16.25M13.75 12.5H16.25M11.25 16.25H13.75V11.25M11.25 11.25V13.75M4.375 11.25H8.125C8.47018 11.25 8.75 11.5298 8.75 11.875V15.625C8.75 15.9702 8.47018 16.25 8.125 16.25H4.375C4.02982 16.25 3.75 15.9702 3.75 15.625V11.875C3.75 11.5298 4.02982 11.25 4.375 11.25ZM11.875 3.75H15.625C15.9702 3.75 16.25 4.02982 16.25 4.375V8.125C16.25 8.47018 15.9702 8.75 15.625 8.75H11.875C11.5298 8.75 11.25 8.47018 11.25 8.125V4.375C11.25 4.02982 11.5298 3.75 11.875 3.75ZM4.375 3.75H8.125C8.47018 3.75 8.75 4.02982 8.75 4.375V8.125C8.75 8.47018 8.47018 8.75 8.125 8.75H4.375C4.02982 8.75 3.75 8.47018 3.75 8.125V4.375C3.75 4.02982 4.02982 3.75 4.375 3.75Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'button') {\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9.99939 3.75024V9.68775M13.7501 4.23695C14.9923 5.04536 15.9399 6.23353 16.4518 7.62435C16.9638 9.01517 17.0125 10.5342 16.5909 11.955C16.1693 13.3758 15.2998 14.6223 14.1121 15.5087C12.9244 16.3952 11.482 16.8741 9.99998 16.8741C8.51795 16.8741 7.07559 16.3951 5.88788 15.5087C4.70017 14.6223 3.83071 13.3757 3.40908 11.9549C2.98746 10.5341 3.03624 9.01513 3.54816 7.62432C4.06009 6.2335 5.00774 5.04534 6.24988 4.23693\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n }\n @if (icon === 'download-file-button') {\n <svg style=\"fill:currentColor\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.42424 9.41667C3.49967 9.41667 2.75 10.1663 2.75 11.0909V19.5758C2.75 20.5003 3.49967 21.25 4.42424 21.25H19.5758C20.5003 21.25 21.25 20.5003 21.25 19.5758V11.0909C21.25 10.1663 20.5003 9.41667 19.5758 9.41667H15.9394C15.5252 9.41667 15.1894 9.08088 15.1894 8.66667C15.1894 8.25245 15.5252 7.91667 15.9394 7.91667H19.5758C21.3288 7.91667 22.75 9.33791 22.75 11.0909V19.5758C22.75 21.3288 21.3288 22.75 19.5758 22.75H4.42424C2.67124 22.75 1.25 21.3288 1.25 19.5758V11.0909C1.25 9.33791 2.67124 7.91667 4.42424 7.91667H8.06061C8.47482 7.91667 8.81061 8.25245 8.81061 8.66667C8.81061 9.08088 8.47482 9.41667 8.06061 9.41667H4.42424Z\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 1.25C12.4142 1.25 12.75 1.58579 12.75 2V15.9394C12.75 16.3536 12.4142 16.6894 12 16.6894C11.5858 16.6894 11.25 16.3536 11.25 15.9394V2C11.25 1.58579 11.5858 1.25 12 1.25Z\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.83331 12.9848C8.1262 12.6919 8.60107 12.6919 8.89397 12.9848L12 16.0909L15.106 12.9848C15.3989 12.6919 15.8738 12.6919 16.1667 12.9848C16.4596 13.2777 16.4596 13.7526 16.1667 14.0455L12.5303 17.6818C12.2374 17.9747 11.7626 17.9747 11.4697 17.6818L7.83331 14.0455C7.54041 13.7526 7.54041 13.2777 7.83331 12.9848Z\"/>\n </svg>\n }\n</ng-template>\n\n\n\n\n\n\n", styles: [":host{--mat-standard-button-toggle-selected-state-background-color: #323E8B;--mat-standard-button-toggle-text-color: #323E8B;--mat-standard-button-toggle-selected-state-text-color: white;--mat-standard-button-toggle-height: 36px;--mat-standard-button-toggle-divider-color: #323E8B;--mdc-outlined-button-label-text-weight: 400;--mdc-outlined-button-label-text-color: #333333!important;--mdc-outlined-button-container-shape: 30px;--mdc-outlined-button-outline-width: 2px;--mdc-outlined-button-container-height: 44px}:host ::ng-deep .mat-button-toggle-appearance-standard span.mat-button-toggle-label-content{padding:0 8px;min-width:36px}.mat-button-toggle .text-align-icon{stroke:#323e8b}.mat-button-toggle:hover{color:#747ebf}.mat-button-toggle:hover .text-align-icon{stroke:#747ebf}.mat-button-toggle-checked .text-align-icon{stroke:#fff}.example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden}.example-box{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.badge{width:44px;height:44px;border-radius:50%;border:1px solid #323E8B;display:flex;align-items:center;justify-content:center}.mat-card.special{border:1px solid #747EBF;border-radius:8px;box-shadow:none}.tags{display:flex;gap:10px;flex-wrap:wrap}.tag-item{display:flex;align-items:center;gap:5px;cursor:pointer;padding:10px 20px;border:1px solid #323E8B;border-radius:30px;background-color:#fff;color:#23262a;transition:.2s ease-in-out}.tag-item svg{color:#323e8b}.tag-item.active{background-color:#323e8b;color:#fff}.tag-item.active svg{color:#fff}.tag-item:hover{color:#747ebf;box-shadow:0 0 4px #747ebf}.tag-item:hover svg{color:#747ebf}.move-icon:hover{opacity:.7}\n"] }]
|
|
222
222
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
223
223
|
type: Inject,
|
|
224
224
|
args: [CrocoHtmlOptionsToken]
|
|
@@ -238,4 +238,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
238
238
|
}], rendered: [{
|
|
239
239
|
type: Output
|
|
240
240
|
}] } });
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvdmlzdWFsLWVkaXRvci92aXN1YWwtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci92aXN1YWwtZWRpdG9yL3Zpc3VhbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNHLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQixRQUFRLEVBQ1QsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNyQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUFF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dCwgQ2RrRHJhZywgQ2RrRHJhZ0hhbmRsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQm9keVRhZ3NFeHRlbnNpb25zLFxuICBFeHRlcm5hbFZpZGVvU3VwcG9ydGVkVHlwZXMsXG4gIFRleHRUYWdzXG59IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRmlsZUltYWdlVGFnRGF0YUNvbnN0cyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHtcbiAgRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMsXG4gIEV4dGVybmFsVmlkZW9QbGF5ZXJzXG59IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgWG1sRXh0ZW5zaW9ucyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgVGFnSXRlbSwgSHRtbEJvZHlUYWcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbW9kZWxzJztcbmltcG9ydCB7IEZpbGVQb3N0aW5nU3RhcnRlZCB9IGZyb20gJy4uLy4uL3VwbG9hZC1maWxlcy1idG4vdXBsb2FkLWZpbGVzLWJ0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVmYXVsdFRhZ3MgfSBmcm9tICcuL0RlZmF1bHRUYWdzJztcbmltcG9ydCB7IEFsaWdubWVudHNEYXRhLCBFQWxpZ25tZW50cyB9IGZyb20gXCIuL0RlZmF1bHRBbGlnbWVudHNcIjtcbmltcG9ydCB7IENyb2NvSHRtbE9wdGlvbnNUb2tlbiB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cyc7XG5pbXBvcnQge0Rvd25sb2FkQnV0dG9uVGFnRGF0YUNvbnN0c30gZnJvbSBcIi4uLy4uLy4uL2V4dGVuc2lvbnMvRG93bmxvYWRCdXR0b25NZXRob2RzXCI7XG5pbXBvcnQgeyBNYWluRWRpdG9yQmxvY2tDb21wb25lbnQgfSBmcm9tICcuLi9tYWluLWVkaXRvci1ibG9jay9tYWluLWVkaXRvci1ibG9jay5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRkRmlsZXNCdG5Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hZGQtZmlsZXMtYnRuL2FkZC1maWxlcy1idG4uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2RrVGV4dGFyZWFBdXRvc2l6ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENhcmQsIE1hdENhcmRDb250ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7QnV0dG9uVGFnRGF0YUNvbnN0c30gZnJvbSBcIi4uLy4uLy4uL2V4dGVuc2lvbnMvQnV0dG9uTWV0aG9kc1wiO1xuaW1wb3J0IHsgQ3JvY29IdG1sT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL29wdGlvbnMnO1xuaW1wb3J0IHtDdXN0b21XaWRnZXRUYWdEYXRhQ29uc3RzfSBmcm9tIFwiLi4vLi4vLi4vZXh0ZW5zaW9ucy9DdXN0b21XaWRnZXRNZXRob2RzXCI7XG5pbXBvcnQge01hdEJ1dHRvblRvZ2dsZSwgTWF0QnV0dG9uVG9nZ2xlR3JvdXB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlXCI7XG5pbXBvcnQge05nVGVtcGxhdGVPdXRsZXQsIFVwcGVyQ2FzZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMaW5rWW91VHViZSA9IFwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvNEN0U0FuSkRmc0k/c2k9c2N5Qk5KYTBIczJ0NWFMRVwiO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRMaW5rVmsgPSBcImh0dHBzOi8vdmsuY29tL3ZpZGVvX2V4dC5waHA/b2lkPS0yMjgyMjMwNSZpZD00NTYyNDE4NjQmaGQ9MlwiO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRMaW5rRm9yRG93bmxvYWQgPSBcImh0dHBzOi8vc3RvcmFnZS55YW5kZXhjbG91ZC5uZXQvbWVnYS1hY2FkZW15L3ByZXNlbnRhdGlvbi5wZGZcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjcm9jby12aXN1YWwtZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmlzdWFsLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdmlzdWFsLWVkaXRvci5jb21wb25lbnQuY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdFByb2dyZXNzU3Bpbm5lcixcbiAgICBNYXRDYXJkLFxuICAgIE1hdENhcmRDb250ZW50LFxuICAgIE1hdEJ1dHRvbixcbiAgICBNYXRGb3JtRmllbGQsXG4gICAgTWF0TGFiZWwsXG4gICAgTWF0SW5wdXQsXG4gICAgQ2RrVGV4dGFyZWFBdXRvc2l6ZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRTZWxlY3QsXG4gICAgTWF0T3B0aW9uLFxuICAgIEFkZEZpbGVzQnRuQ29tcG9uZW50LFxuICAgIENka0Ryb3BMaXN0LFxuICAgIENka0RyYWcsXG4gICAgQ2RrRHJhZ0hhbmRsZSxcbiAgICBNYWluRWRpdG9yQmxvY2tDb21wb25lbnQsXG4gICAgTWF0QnV0dG9uVG9nZ2xlR3JvdXAsXG4gICAgTWF0QnV0dG9uVG9nZ2xlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgVXBwZXJDYXNlUGlwZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBWaXN1YWxFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCd0ZXh0QXJlYScpIHRleHRBcmVhOiBFbGVtZW50UmVmO1xuXG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBsb2FkaW5nVGV4dCA9IFwi0JjQtNGR0YIg0LfQsNCz0YDRg9C30LrQsFwiO1xuICB0ZXh0ID0gJyc7XG5cbiAgYWxpZ25tZW50ID0gRUFsaWdubWVudHMuTGVmdDtcbiAgdGV4dFRhZyA9IERlZmF1bHRUYWdzLnRleHRUYWdzWzBdLnRhZztcbiAgdGV4dFRhZ09wdGlvbnMgPSBEZWZhdWx0VGFncy50ZXh0VGFnc1xuICBhbGlnbm1lbnRPcHRpb25zID0gQWxpZ25tZW50c0RhdGFcblxuICBASW5wdXQoKVxuICBzaG93TWFya1VwID0gdHJ1ZTtcblxuICB0YWdzOiBUYWdJdGVtW10gPSBbXTtcbiAgdmlkZW9QbGF5ZXJzID0gRXh0ZXJuYWxWaWRlb1BsYXllcnNcbiAgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nO1xuICBzZWxlY3RlZFZpZGVvUGxheWVyOiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cyA9IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzO1xuXG4gIEBJbnB1dCgpXG4gIHVzZUh0bWxSYXcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBAT3V0cHV0KClcbiAgaHRtbDogc3RyaW5nID0gXCJcIjtcblxuICBpc0h0bWxTZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHRtbC5zdGFydHNXaXRoKFwiPGJvZHk+XCIpO1xuICB9XG5cbiAgY2xlYXJIdG1sKCkge1xuICAgIHRoaXMuaHRtbCA9IFwiXCI7XG4gICAgdGhpcy5yZWNhbGN1bGF0ZUJvZHlUYWdzKCk7XG4gIH1cblxuICBnZXRIdG1sKCkge1xuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XG4gICAgcmV0dXJuIHRoaXMuaHRtbDtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBvbkh0bWxDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlbmRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGJvZHlUYWdzOiBIdG1sQm9keVRhZ1tdID0gW107XG4gIHNhdmVCb2R5VGFnczogSHRtbEJvZHlUYWdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KENyb2NvSHRtbE9wdGlvbnNUb2tlbikgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgeyB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZWQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jZHJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBhZGRUYWcoKTogdm9pZCB7XG4gICAgbGV0IHRhZ0Rlc2NyaXB0aW9uID0gdGhpcy50YWdzXG4gICAgICAuZmluZCh4ID0+IHgudGFnID09PSB0aGlzLnNlbGVjdGVkVmFsdWUpO1xuXG4gICAgbGV0IGF0dHJzID0ge307XG4gICAgbGV0IGlubmVySHRtbCA9IFwiXCI7XG5cbiAgICBpZiAoVGV4dFRhZ3MuYWxsVGV4dFRhZ3MuaW5jbHVkZXModGFnRGVzY3JpcHRpb24udGFnKSkge1xuICAgICAgdGhpcy5hZGRUZXh0VGFncygpO1xuICAgICAgdGhpcy5zdGFydEFkZGluZ1RleHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZWxzZSBpZiAodGFnRGVzY3JpcHRpb24udGFnID09IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcbiAgICAgIGF0dHJzW0V4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlZpZGVvVHlwZUF0dHJOYW1lXSA9IHRoaXMuc2VsZWN0ZWRWaWRlb1BsYXllcjtcbiAgICAgIGF0dHJzW0V4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLkxpbmtBdHRyTmFtZV0gPSB0aGlzLnNlbGVjdGVkVmlkZW9QbGF5ZXIgPT09IEV4dGVybmFsVmlkZW9TdXBwb3J0ZWRUeXBlcy5Wa1ZpZGVvID8gZGVmYXVsdExpbmtWayA6IGRlZmF1bHRMaW5rWW91VHViZTtcbiAgICB9XG4gICAgZWxzZSBpZiAodGFnRGVzY3JpcHRpb24udGFnID09IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgYXR0cnNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5TY3JlZW5NZWRpYVJlcXVlc3RdID0gRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5EZWZhdWx0VmFsdWVGb3JGaWxlSW1hZ2U7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRhZ0Rlc2NyaXB0aW9uLnRhZyA9PSBEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgYXR0cnNbRG93bmxvYWRCdXR0b25UYWdEYXRhQ29uc3RzLkxpbmtBdHRyTmFtZV0gPSBkZWZhdWx0TGlua0ZvckRvd25sb2FkXG4gICAgICBhdHRyc1tEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHMuVGl0bGVBdHRyTmFtZV0gPSAn0KHQutCw0YfQsNGC0YwnXG4gICAgfVxuICAgIGVsc2UgaWYgKHRhZ0Rlc2NyaXB0aW9uLnRhZyA9PSBCdXR0b25UYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcbiAgICAgIGF0dHJzW0J1dHRvblRhZ0RhdGFDb25zdHMuQ2xpY2tBdHRyTmFtZV0gPSAnJ1xuICAgICAgYXR0cnNbQnV0dG9uVGFnRGF0YUNvbnN0cy5UeXBlQXR0ck5hbWVdID0gJ2J1dHRvbidcbiAgICAgIGF0dHJzW0J1dHRvblRhZ0RhdGFDb25zdHMuVGV4dEF0dHJOYW1lXSA9ICfQmtC90L7Qv9C60LAnXG4gICAgfVxuICAgIGVsc2UgaWYgKHRhZ0Rlc2NyaXB0aW9uLnRhZyA9PSBDdXN0b21XaWRnZXRUYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcbiAgICAgIGF0dHJzW0N1c3RvbVdpZGdldFRhZ0RhdGFDb25zdHMuVHlwZUF0dHJOYW1lXSA9ICdleGFtcGxlLXR5cGUnXG4gICAgICBhdHRyc1tDdXN0b21XaWRnZXRUYWdEYXRhQ29uc3RzLkRhdGFJZEF0dHJOYW1lXSA9ICdleGFtcGxlLWRhdGEtaWQnXG4gICAgICBhdHRyc1tDdXN0b21XaWRnZXRUYWdEYXRhQ29uc3RzLldpZGdldElkQXR0ck5hbWVdID0gJ2V4YW1wbGUtd2lkZ2V0LWlkJ1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGF0dHJzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWVdID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5ib2R5VGFncy5wdXNoKHtcbiAgICAgIHRhZ0Rlc2NyaXB0aW9uLFxuICAgICAgaW5uZXJIdG1sLFxuICAgICAgYXR0cmlidXRlczogYXR0cnMsXG4gICAgICBwcmVzZW50T3JFZGl0OiB0cnVlXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xuICB9XG5cbiAgc3RhcnRBZGRpbmdUZXh0KCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZUJvZHlUYWdzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmJvZHlUYWdzKSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRleHRBcmVhLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9KVxuICAgIHRoaXMucmVzZXRUZXh0U3R5bGUoKTtcbiAgfVxuXG4gIGZpbmlzaEFkZGluZ1RleHQoKTogdm9pZCB7XG4gICAgdGhpcy5ib2R5VGFncyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zYXZlQm9keVRhZ3MpKTtcbiAgICB0aGlzLnJlc2V0VGV4dFN0eWxlKCk7XG4gIH1cblxuICByZXNldFRleHRTdHlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHQgPSAnJztcbiAgICB0aGlzLmFsaWdubWVudCA9IEVBbGlnbm1lbnRzLkxlZnQ7XG4gICAgdGhpcy50ZXh0VGFnID0gRGVmYXVsdFRhZ3MudGV4dFRhZ3NbMF0udGFnO1xuICB9XG5cbiAgYWRkVGV4dFRhZ3MoKSB7XG4gICAgbGV0IGxpbmVzID0gdGhpcy50ZXh0LnNwbGl0KCdcXG4nKTtcbiAgICB0aGlzLmJvZHlUYWdzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNhdmVCb2R5VGFncykpO1xuICAgIGxldCB0YWdEZXNjcmlwdGlvbiA9IHRoaXMudGV4dFRhZ09wdGlvbnM/LmZpbmQoeCA9PiB4LnRhZyA9PT0gdGhpcy50ZXh0VGFnKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChsaW5lc1tpXS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuYm9keVRhZ3MucHVzaCh7XG4gICAgICAgICAgdGFnRGVzY3JpcHRpb24sXG4gICAgICAgICAgaW5uZXJIdG1sOiBsaW5lc1tpXSxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICBcImgtYWxpZ25cIjogYCR7dGhpcy5hbGlnbm1lbnR9YFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwb3N0RmlsZXNTdGFydGVkRXZlbnRIYW5kbGVyKG1vZGVsOiBGaWxlUG9zdGluZ1N0YXJ0ZWQpIHtcbiAgICB0aGlzLmxvYWRpbmdUZXh0ID0gXCLQpNCw0LnQu9GLINC30LDQs9GA0YPQttCw0Y7RgtGB0Y8g0L3QsCDRgdC10YDQstC10YBcIjtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gIH1cblxuICBhZGRUYWdDdXN0b20odGFnOiBIdG1sQm9keVRhZykge1xuICAgIHRoaXMuYm9keVRhZ3MucHVzaCh0YWcpO1xuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XG4gIH1cblxuICBmaWxlc1RhZ3NSZWFkeUhhbmRsZXIodGFnczogSHRtbEJvZHlUYWdbXSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5ib2R5VGFncy5wdXNoKHRhZ3NbaV0pO1xuICAgIH1cbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxvYmplY3RbXT4pIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5ib2R5VGFncywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xuICB9XG5cbiAgb25UYWdTYXZlZEhhbmRsZXIodGFnOiBIdG1sQm9keVRhZykge1xuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XG4gIH1cblxuICBvblRhZ1JlbW92ZWRIYW5kbGVyKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmJvZHlUYWdzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcbiAgfVxuXG4gIHJlY2FsY3VsYXRlSHRtbCgpIHtcbiAgICBsZXQgcmVzdWx0ID0gQm9keVRhZ3NFeHRlbnNpb25zLnRvSHRtbCh0aGlzLmJvZHlUYWdzKTtcbiAgICB0aGlzLmh0bWwgPSBYbWxFeHRlbnNpb25zLmZvcm1hdFhtbChcIjxib2R5PlwiICsgcmVzdWx0ICsgXCI8L2JvZHk+XCIpO1xuICAgIHRoaXMub25IdG1sQ2hhbmdlZC5lbWl0KHRoaXMuaHRtbCk7XG4gIH1cblxuICByZWNhbGN1bGF0ZUJvZHlUYWdzKCkge1xuICAgIHRoaXMuYm9keVRhZ3MgPSBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0Qm9keVRhZ3ModGhpcy5odG1sLCB0aGlzLl9vcHRpb25zKTtcbiAgfVxuXG4gIHNlbGVjdFRhZyhkYXRhOiBUYWdJdGVtKSB7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZGF0YS50YWc7XG5cbiAgICBpZiAoZGF0YS50YWcgPT09ICd0ZXh0Jykge1xuICAgICAgdGhpcy5zdGFydEFkZGluZ1RleHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maW5pc2hBZGRpbmdUZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWNhbGN1bGF0ZUJvZHlUYWdzKCk7XG5cbiAgICB0aGlzLnRhZ3MgPSBEZWZhdWx0VGFncy5nZXRUYWdzKHRoaXMudXNlSHRtbFJhdyk7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdGhpcy50YWdzWzBdLnRhZztcbiAgICB0aGlzLnNlbGVjdGVkVmlkZW9QbGF5ZXIgPSB0aGlzLnZpZGVvUGxheWVyc1swXS50eXBlO1xuICB9XG59XG4iLCJAaWYgKGlzTG9hZGluZykge1xuICA8ZGl2PlxuICAgIDxkaXY+XG4gICAgICA8bWF0LXNwaW5uZXIgc3R5bGU9XCJtYXJnaW46MCBhdXRvO1wiPjwvbWF0LXNwaW5uZXI+XG4gICAgICA8ZGl2IHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPnt7bG9hZGluZ1RleHR9fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+PC9kaXY+XG4gIDwvZGl2PlxufVxuPGRpdiBbaGlkZGVuXT1cImlzTG9hZGluZ1wiPlxuICA8bWF0LWNhcmQgc3R5bGU9XCJtYXJnaW46IDJweDtcIiBjbGFzcz1cIm1hdC1jYXJkXCI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMjJweFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZ3NcIj5cbiAgICAgICAgICAgICAgQGZvciAodGFnIG9mIHRhZ3M7IHRyYWNrIHRhZykge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFnLWl0ZW1cIiAoY2xpY2spPVwic2VsZWN0VGFnKHRhZylcIiBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkVmFsdWUgPT09IHRhZy50YWdcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFnQnV0dG9uSWNvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2ljb246IHRhZy50YWd9XCI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHt7dGFnLmRpc3BsYXlWYWx1ZX19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoc2VsZWN0ZWRWYWx1ZSA9PT0gRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD7QktGL0LHQtdGA0LjRgtC1INCy0LjQtNC10L7Qv9C70LXQtdGAPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRWaWRlb1BsYXllclwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHZpZGVvUGxheWVyIG9mIHZpZGVvUGxheWVyczsgdHJhY2sgdmlkZW9QbGF5ZXIudHlwZSkge1xuICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInZpZGVvUGxheWVyLnR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3t2aWRlb1BsYXllci5kaXNwbGF5VmFsdWV9fVxuICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHNlbGVjdGVkVmFsdWUgPT09ICd0ZXh0Jykge1xuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAyMnB4XCI+XG4gICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cFxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGV4dFRhZ1wiXG4gICAgICAgICAgICAgICAgW2hpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3JdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAZm9yIChvcHRpb24gb2YgdGV4dFRhZ09wdGlvbnM7IHRyYWNrIG9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwie3sgb3B0aW9uLnRhZyB9fVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24uZGlzcGxheVZhbHVlIH19XG4gICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMjJweFwiPlxuICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXBcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFsaWdubWVudFwiXG4gICAgICAgICAgICAgICAgW2hpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3JdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAZm9yIChvcHRpb24gb2YgYWxpZ25tZW50T3B0aW9uczsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJ7eyBvcHRpb24udmFsdWUgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZXh0QWxpZ25Ub2dnbGVJY29uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpY29uOiBvcHRpb24udmFsdWV9XCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD7QotC10LrRgdGCPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgI2F1dG9zaXplPVwiY2RrVGV4dGFyZWFBdXRvc2l6ZVwiXG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAgICAgICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiMVwiXG4gICAgICAgICAgICAgIGNka0F1dG9zaXplTWF4Um93cz1cIjVcIlxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItCi0LXQutGB0YJcIlxuICAgICAgICAgICAgICAjdGV4dEFyZWFcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0ZXh0XCJcbiAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFkZFRhZygpXCIgY2xhc3M9XCJ3LTEwMFwiIG1hdC1zdHJva2VkLWJ1dHRvbj5cbiAgICAgICAgICAgINCU0L7QsdCw0LLQuNGC0Ywg0YLQtdCzXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICA8L21hdC1jYXJkPlxuXG4gIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IFtoaWRkZW5dPVwiaXNMb2FkaW5nXCI+XG4gIDxtYXQtY2FyZCBzdHlsZT1cIm1hcmdpbjogMnB4O1wiIGNsYXNzPVwibWF0LWNhcmRcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgPGNyb2NvLWh0bWwtYWRkLWZpbGVzLWJ0biAoZmlsZXNUYWdzUmVhZHkpPVwiZmlsZXNUYWdzUmVhZHlIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgKHBvc3RGaWxlc1N0YXJ0ZWQpPVwicG9zdEZpbGVzU3RhcnRlZEV2ZW50SGFuZGxlcigkZXZlbnQpXCIgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgIDwvY3JvY28taHRtbC1hZGQtZmlsZXMtYnRuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cblxuICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBbaGlkZGVuXT1cImlzTG9hZGluZ1wiPlxuICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XG4gICAgQGZvciAodGFnIG9mIGJvZHlUYWdzOyB0cmFjayB0YWc7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICA8ZGl2IGNka0RyYWc+XG4gICAgICAgIDxtYXQtY2FyZCBzdHlsZT1cIm1hcmdpbjogMnB4O1wiIGNsYXNzPVwibWF0LWNhcmQgc3BlY2lhbFwiPlxuICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1oYW5kbGVcIiBjZGtEcmFnSGFuZGxlPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJtb3ZlLWljb25cIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuNjUxNiAxOS4wOTg0TDEyIDIxLjc1TTEyIDIxLjc1TDkuMzQ4MzggMTkuMDk4NE0xMiAyMS43NVYxNU00LjkwMTYzIDE0LjY1MTZMMi4yNSAxMk0yLjI1IDEyTDQuOTAxNjMgOS4zNDgzOE0yLjI1IDEySDlNMTkuMDk4NCA5LjM0ODM4TDIxLjc1IDEyTTIxLjc1IDEyTDE5LjA5ODQgMTQuNjUxNk0yMS43NSAxMkgxNU05LjM0ODM4IDQuOTAxNjNMMTIgMi4yNU0xMiAyLjI1TDE0LjY1MTYgNC45MDE2M00xMiAyLjI1VjlcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzIzRThCXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIiBzdHlsZT1cImNvbG9yOiMzMjNFOEJcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFnQnV0dG9uSWNvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2ljb246IHRhZy50YWdEZXNjcmlwdGlvbi50YWd9XCI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDE1cHg7XCI+PC9kaXY+XG4gICAgICAgICAgICA8Y3JvY28taHRtbC1tYWluLWVkaXRvci1ibG9jayBbdGFnXT1cInRhZ1wiIChvblRhZ1NhdmVkKT1cIm9uVGFnU2F2ZWRIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAob25UYWdSZW1vdmVkKT1cIm9uVGFnUmVtb3ZlZEhhbmRsZXIoaSlcIj5cbiAgICAgICAgICAgIDwvY3JvY28taHRtbC1tYWluLWVkaXRvci1ibG9jaz5cbiAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RleHRBbGlnblRvZ2dsZUljb25zIGxldC1pY29uPVwiaWNvblwiPlxuICBAaWYgKGljb24gPT09ICdsZWZ0Jykge1xuICAgIDxzdmcgY2xhc3M9XCJ0ZXh0LWFsaWduLWljb25cIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aCBkPVwiTTMuMTI1NDggMTQuNjg3NUgxMy4xMjVNMy4xMjU0OCAxMS41NjI1SDE2Ljg3NU0zLjEyNSA4LjQzNzVIMTMuMTI1TTMuMTI1IDUuMzEyNUgxNi44NzVcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgIDwvc3ZnPlxuICB9XG4gIEBpZiAoaWNvbiA9PT0gJ2NlbnRlcicpIHtcbiAgICA8c3ZnIGNsYXNzPVwidGV4dC1hbGlnbi1pY29uXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHBhdGggZD1cIk01LjAwMDI0IDE0LjY4NzVIMTQuOTk5OE0zLjEyNTI0IDExLjU2MjVIMTYuODc0OE01IDguNDM3NUgxNU0zLjEyNSA1LjMxMjVIMTYuODc1XCJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuICBAaWYgKGljb24gPT09ICdyaWdodCcpIHtcbiAgICA8c3ZnIGNsYXNzPVwidGV4dC1hbGlnbi1pY29uXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHBhdGggZD1cIk02Ljg3NTQ4IDE0LjY4NzVIMTYuODc1TTMuMTI1NDggMTEuNTYyNUgxNi44NzVNNi44NzUgOC40Mzc1SDE2Ljg3NU0zLjEyNSA1LjMxMjVIMTYuODc1XCJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YWdCdXR0b25JY29ucyBsZXQtaWNvbj1cImljb25cIj5cbiAgQGlmIChpY29uID09PSAndGV4dCcpIHtcbiAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNy40OTk1MiAxNS42MjQ2SDEyLjQ5OTVNOS45OTk1MiA0LjM3NDU5VjE1LjYyNDZNMy43NDk1MSA2Ljg3NDU5VjQuMzc0NTlIMTYuMjQ5NVY2Ljg3NDU5XCJcbiAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuICBAaWYgKGljb24gPT09ICdodG1sLXJhdycpIHtcbiAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTUgNi44NzVMMTguNzUgMTBMMTUgMTMuMTI1TTUgNi44NzVMMS4yNSAxMEw1IDEzLjEyNU0xMi41IDMuMTI1TDcuNSAxNi44NzVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgPC9zdmc+XG4gIH1cbiAgQGlmIChpY29uID09PSAnZXh0ZXJuYWwtdmlkZW8nKSB7XG4gICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aCBkPVwiTTE0LjM3NSA4Ljc1TDE4Ljc1IDYuMjVWMTMuNzVMMTQuMzc1IDExLjI1TTEuODc1IDQuNjg3NUgxMS44NzVDMTIuNTM4IDQuNjg3NSAxMy4xNzM5IDQuOTUwODkgMTMuNjQyOCA1LjQxOTczQzE0LjExMTYgNS44ODg1NyAxNC4zNzUgNi41MjQ0NiAxNC4zNzUgNy4xODc1VjE0LjY4NzVDMTQuMzc1IDE0Ljg1MzMgMTQuMzA5MiAxNS4wMTIyIDE0LjE5MTkgMTUuMTI5NEMxNC4wNzQ3IDE1LjI0NjcgMTMuOTE1OCAxNS4zMTI1IDEzLjc1IDE1LjMxMjVIMy43NUMzLjA4Njk2IDE1LjMxMjUgMi40NTEwNyAxNS4wNDkxIDEuOTgyMjMgMTQuNTgwM0MxLjUxMzM5IDE0LjExMTQgMS4yNSAxMy40NzU1IDEuMjUgMTIuODEyNVY1LjMxMjVDMS4yNSA1LjE0Njc0IDEuMzE1ODUgNC45ODc3NyAxLjQzMzA2IDQuODcwNTZDMS41NTAyNyA0Ljc1MzM1IDEuNzA5MjQgNC42ODc1IDEuODc1IDQuNjg3NVpcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgPC9zdmc+XG4gIH1cbiAgQGlmIChpY29uID09PSAnZmlsZS1pbWFnZScpIHtcbiAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMi41IDEzLjEyNUw2LjQzMzA1IDkuMTkxOTRDNi40OTEwOCA5LjEzMzkgNi41NTk5OCA5LjA4Nzg3IDYuNjM1ODEgOS4wNTY0NkM2LjcxMTY0IDkuMDI1MDUgNi43OTI5MSA5LjAwODg4IDYuODc0OTkgOS4wMDg4OEM2Ljk1NzA2IDkuMDA4ODggNy4wMzgzNCA5LjAyNTA1IDcuMTE0MTcgOS4wNTY0NkM3LjE4OTk5IDkuMDg3ODcgNy4yNTg4OSA5LjEzMzkgNy4zMTY5MyA5LjE5MTk0TDEwLjgwOCAxMi42ODMxQzEwLjg2NjEgMTIuNzQxMSAxMC45MzUgMTIuNzg3MSAxMS4wMTA4IDEyLjgxODVDMTEuMDg2NiAxMi44NDk5IDExLjE2NzkgMTIuODY2MSAxMS4yNSAxMi44NjYxQzExLjMzMjEgMTIuODY2MSAxMS40MTMzIDEyLjg0OTkgMTEuNDg5MiAxMi44MTg1QzExLjU2NSAxMi43ODcxIDExLjYzMzkgMTIuNzQxMSAxMS42OTE5IDEyLjY4MzFMMTMuMzA4IDExLjA2NjlDMTMuMzY2MSAxMS4wMDg5IDEzLjQzNSAxMC45NjI5IDEzLjUxMDggMTAuOTMxNUMxMy41ODY2IDEwLjkgMTMuNjY3OSAxMC44ODM5IDEzLjc1IDEwLjg4MzlDMTMuODMyMSAxMC44ODM5IDEzLjkxMzMgMTAuOSAxMy45ODkyIDEwLjkzMTVDMTQuMDY1IDEwLjk2MjkgMTQuMTMzOSAxMS4wMDg5IDE0LjE5MTkgMTEuMDY2OUwxNy41IDE0LjM3NU0zLjEyNSAzLjc1SDE2Ljg3NUMxNy4yMjAyIDMuNzUgMTcuNSA0LjAyOTgyIDE3LjUgNC4zNzVWMTUuNjI1QzE3LjUgMTUuOTcwMiAxNy4yMjAyIDE2LjI1IDE2Ljg3NSAxNi4yNUgzLjEyNUMyLjc3OTgyIDE2LjI1IDIuNSAxNS45NzAyIDIuNSAxNS42MjVWNC4zNzVDMi41IDQuMDI5ODIgMi43Nzk4MiAzLjc1IDMuMTI1IDMuNzVaTTEzLjEyNSA3LjgxMjVDMTMuMTI1IDguMzMwMjcgMTIuNzA1MyA4Ljc1IDEyLjE4NzUgOC43NUMxMS42Njk3IDguNzUgMTEuMjUgOC4zMzAyNyAxMS4yNSA3LjgxMjVDMTEuMjUgNy4yOTQ3MyAxMS42Njk3IDYuODc1IDEyLjE4NzUgNi44NzVDMTIuNzA1MyA2Ljg3NSAxMy4xMjUgNy4yOTQ3MyAxMy4xMjUgNy44MTI1WlwiXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuICBAaWYgKGljb24gPT09ICdjdXN0b20td2lkZ2V0Jykge1xuICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHBhdGggZD1cIk0xNi4yNSAxNVYxNi4yNU0xMy43NSAxMi41SDE2LjI1TTExLjI1IDE2LjI1SDEzLjc1VjExLjI1TTExLjI1IDExLjI1VjEzLjc1TTQuMzc1IDExLjI1SDguMTI1QzguNDcwMTggMTEuMjUgOC43NSAxMS41Mjk4IDguNzUgMTEuODc1VjE1LjYyNUM4Ljc1IDE1Ljk3MDIgOC40NzAxOCAxNi4yNSA4LjEyNSAxNi4yNUg0LjM3NUM0LjAyOTgyIDE2LjI1IDMuNzUgMTUuOTcwMiAzLjc1IDE1LjYyNVYxMS44NzVDMy43NSAxMS41Mjk4IDQuMDI5ODIgMTEuMjUgNC4zNzUgMTEuMjVaTTExLjg3NSAzLjc1SDE1LjYyNUMxNS45NzAyIDMuNzUgMTYuMjUgNC4wMjk4MiAxNi4yNSA0LjM3NVY4LjEyNUMxNi4yNSA4LjQ3MDE4IDE1Ljk3MDIgOC43NSAxNS42MjUgOC43NUgxMS44NzVDMTEuNTI5OCA4Ljc1IDExLjI1IDguNDcwMTggMTEuMjUgOC4xMjVWNC4zNzVDMTEuMjUgNC4wMjk4MiAxMS41Mjk4IDMuNzUgMTEuODc1IDMuNzVaTTQuMzc1IDMuNzVIOC4xMjVDOC40NzAxOCAzLjc1IDguNzUgNC4wMjk4MiA4Ljc1IDQuMzc1VjguMTI1QzguNzUgOC40NzAxOCA4LjQ3MDE4IDguNzUgOC4xMjUgOC43NUg0LjM3NUM0LjAyOTgyIDguNzUgMy43NSA4LjQ3MDE4IDMuNzUgOC4xMjVWNC4zNzVDMy43NSA0LjAyOTgyIDQuMDI5ODIgMy43NSA0LjM3NSAzLjc1WlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuICBAaWYgKGljb24gPT09ICdidXR0b24nKSB7XG4gICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aCBkPVwiTTkuOTk5MzkgMy43NTAyNFY5LjY4Nzc1TTEzLjc1MDEgNC4yMzY5NUMxNC45OTIzIDUuMDQ1MzYgMTUuOTM5OSA2LjIzMzUzIDE2LjQ1MTggNy42MjQzNUMxNi45NjM4IDkuMDE1MTcgMTcuMDEyNSAxMC41MzQyIDE2LjU5MDkgMTEuOTU1QzE2LjE2OTMgMTMuMzc1OCAxNS4yOTk4IDE0LjYyMjMgMTQuMTEyMSAxNS41MDg3QzEyLjkyNDQgMTYuMzk1MiAxMS40ODIgMTYuODc0MSA5Ljk5OTk4IDE2Ljg3NDFDOC41MTc5NSAxNi44NzQxIDcuMDc1NTkgMTYuMzk1MSA1Ljg4Nzg4IDE1LjUwODdDNC43MDAxNyAxNC42MjIzIDMuODMwNzEgMTMuMzc1NyAzLjQwOTA4IDExLjk1NDlDMi45ODc0NiAxMC41MzQxIDMuMDM2MjQgOS4wMTUxMyAzLjU0ODE2IDcuNjI0MzJDNC4wNjAwOSA2LjIzMzUgNS4wMDc3NCA1LjA0NTM0IDYuMjQ5ODggNC4yMzY5M1wiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuICBAaWYgKGljb24gPT09ICdkb3dubG9hZC1maWxlLWJ1dHRvbicpIHtcbiAgICA8c3ZnIHN0eWxlPVwiZmlsbDpjdXJyZW50Q29sb3JcIiAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjQyNDI0IDkuNDE2NjdDMy40OTk2NyA5LjQxNjY3IDIuNzUgMTAuMTY2MyAyLjc1IDExLjA5MDlWMTkuNTc1OEMyLjc1IDIwLjUwMDMgMy40OTk2NyAyMS4yNSA0LjQyNDI0IDIxLjI1SDE5LjU3NThDMjAuNTAwMyAyMS4yNSAyMS4yNSAyMC41MDAzIDIxLjI1IDE5LjU3NThWMTEuMDkwOUMyMS4yNSAxMC4xNjYzIDIwLjUwMDMgOS40MTY2NyAxOS41NzU4IDkuNDE2NjdIMTUuOTM5NEMxNS41MjUyIDkuNDE2NjcgMTUuMTg5NCA5LjA4MDg4IDE1LjE4OTQgOC42NjY2N0MxNS4xODk0IDguMjUyNDUgMTUuNTI1MiA3LjkxNjY3IDE1LjkzOTQgNy45MTY2N0gxOS41NzU4QzIxLjMyODggNy45MTY2NyAyMi43NSA5LjMzNzkxIDIyLjc1IDExLjA5MDlWMTkuNTc1OEMyMi43NSAyMS4zMjg4IDIxLjMyODggMjIuNzUgMTkuNTc1OCAyMi43NUg0LjQyNDI0QzIuNjcxMjQgMjIuNzUgMS4yNSAyMS4zMjg4IDEuMjUgMTkuNTc1OFYxMS4wOTA5QzEuMjUgOS4zMzc5MSAyLjY3MTI0IDcuOTE2NjcgNC40MjQyNCA3LjkxNjY3SDguMDYwNjFDOC40NzQ4MiA3LjkxNjY3IDguODEwNjEgOC4yNTI0NSA4LjgxMDYxIDguNjY2NjdDOC44MTA2MSA5LjA4MDg4IDguNDc0ODIgOS40MTY2NyA4LjA2MDYxIDkuNDE2NjdINC40MjQyNFpcIi8+XG4gICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTIgMS4yNUMxMi40MTQyIDEuMjUgMTIuNzUgMS41ODU3OSAxMi43NSAyVjE1LjkzOTRDMTIuNzUgMTYuMzUzNiAxMi40MTQyIDE2LjY4OTQgMTIgMTYuNjg5NEMxMS41ODU4IDE2LjY4OTQgMTEuMjUgMTYuMzUzNiAxMS4yNSAxNS45Mzk0VjJDMTEuMjUgMS41ODU3OSAxMS41ODU4IDEuMjUgMTIgMS4yNVpcIi8+XG4gICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy44MzMzMSAxMi45ODQ4QzguMTI2MiAxMi42OTE5IDguNjAxMDcgMTIuNjkxOSA4Ljg5Mzk3IDEyLjk4NDhMMTIgMTYuMDkwOUwxNS4xMDYgMTIuOTg0OEMxNS4zOTg5IDEyLjY5MTkgMTUuODczOCAxMi42OTE5IDE2LjE2NjcgMTIuOTg0OEMxNi40NTk2IDEzLjI3NzcgMTYuNDU5NiAxMy43NTI2IDE2LjE2NjcgMTQuMDQ1NUwxMi41MzAzIDE3LjY4MThDMTIuMjM3NCAxNy45NzQ3IDExLjc2MjYgMTcuOTc0NyAxMS40Njk3IDE3LjY4MThMNy44MzMzMSAxNC4wNDU1QzcuNTQwNDEgMTMuNzUyNiA3LjU0MDQxIDEzLjI3NzcgNy44MzMzMSAxMi45ODQ4WlwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuXG5cblxuXG5cbiJdfQ==
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvdmlzdWFsLWVkaXRvci92aXN1YWwtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci92aXN1YWwtZWRpdG9yL3Zpc3VhbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNHLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQixRQUFRLEVBQ1QsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNyQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUFF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dCwgQ2RrRHJhZywgQ2RrRHJhZ0hhbmRsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQm9keVRhZ3NFeHRlbnNpb25zLFxuICBFeHRlcm5hbFZpZGVvU3VwcG9ydGVkVHlwZXMsXG4gIFRleHRUYWdzXG59IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRmlsZUltYWdlVGFnRGF0YUNvbnN0cyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHtcbiAgRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMsXG4gIEV4dGVybmFsVmlkZW9QbGF5ZXJzXG59IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgWG1sRXh0ZW5zaW9ucyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgVGFnSXRlbSwgSHRtbEJvZHlUYWcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbW9kZWxzJztcbmltcG9ydCB7IEZpbGVQb3N0aW5nU3RhcnRlZCB9IGZyb20gJy4uLy4uL3VwbG9hZC1maWxlcy1idG4vdXBsb2FkLWZpbGVzLWJ0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVmYXVsdFRhZ3MgfSBmcm9tICcuL0RlZmF1bHRUYWdzJztcbmltcG9ydCB7IEFsaWdubWVudHNEYXRhLCBFQWxpZ25tZW50cyB9IGZyb20gXCIuL0RlZmF1bHRBbGlnbWVudHNcIjtcbmltcG9ydCB7IENyb2NvSHRtbE9wdGlvbnNUb2tlbiB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cyc7XG5pbXBvcnQge0Rvd25sb2FkQnV0dG9uVGFnRGF0YUNvbnN0c30gZnJvbSBcIi4uLy4uLy4uL2V4dGVuc2lvbnMvRG93bmxvYWRCdXR0b25NZXRob2RzXCI7XG5pbXBvcnQgeyBNYWluRWRpdG9yQmxvY2tDb21wb25lbnQgfSBmcm9tICcuLi9tYWluLWVkaXRvci1ibG9jay9tYWluLWVkaXRvci1ibG9jay5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRkRmlsZXNCdG5Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hZGQtZmlsZXMtYnRuL2FkZC1maWxlcy1idG4uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2RrVGV4dGFyZWFBdXRvc2l6ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENhcmQsIE1hdENhcmRDb250ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7QnV0dG9uVGFnRGF0YUNvbnN0c30gZnJvbSBcIi4uLy4uLy4uL2V4dGVuc2lvbnMvQnV0dG9uTWV0aG9kc1wiO1xuaW1wb3J0IHsgQ3JvY29IdG1sT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL29wdGlvbnMnO1xuaW1wb3J0IHtDdXN0b21XaWRnZXRUYWdEYXRhQ29uc3RzfSBmcm9tIFwiLi4vLi4vLi4vZXh0ZW5zaW9ucy9DdXN0b21XaWRnZXRNZXRob2RzXCI7XG5pbXBvcnQge01hdEJ1dHRvblRvZ2dsZSwgTWF0QnV0dG9uVG9nZ2xlR3JvdXB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlXCI7XG5pbXBvcnQge05nVGVtcGxhdGVPdXRsZXQsIFVwcGVyQ2FzZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMaW5rWW91VHViZSA9IFwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvNEN0U0FuSkRmc0k/c2k9c2N5Qk5KYTBIczJ0NWFMRVwiO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRMaW5rVmsgPSBcImh0dHBzOi8vdmsuY29tL3ZpZGVvX2V4dC5waHA/b2lkPS0yMjgyMjMwNSZpZD00NTYyNDE4NjQmaGQ9MlwiO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRMaW5rRm9yRG93bmxvYWQgPSBcImh0dHBzOi8vc3RvcmFnZS55YW5kZXhjbG91ZC5uZXQvbWVnYS1hY2FkZW15L3ByZXNlbnRhdGlvbi5wZGZcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjcm9jby12aXN1YWwtZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmlzdWFsLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdmlzdWFsLWVkaXRvci5jb21wb25lbnQuY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdFByb2dyZXNzU3Bpbm5lcixcbiAgICBNYXRDYXJkLFxuICAgIE1hdENhcmRDb250ZW50LFxuICAgIE1hdEJ1dHRvbixcbiAgICBNYXRGb3JtRmllbGQsXG4gICAgTWF0TGFiZWwsXG4gICAgTWF0SW5wdXQsXG4gICAgQ2RrVGV4dGFyZWFBdXRvc2l6ZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRTZWxlY3QsXG4gICAgTWF0T3B0aW9uLFxuICAgIEFkZEZpbGVzQnRuQ29tcG9uZW50LFxuICAgIENka0Ryb3BMaXN0LFxuICAgIENka0RyYWcsXG4gICAgQ2RrRHJhZ0hhbmRsZSxcbiAgICBNYWluRWRpdG9yQmxvY2tDb21wb25lbnQsXG4gICAgTWF0QnV0dG9uVG9nZ2xlR3JvdXAsXG4gICAgTWF0QnV0dG9uVG9nZ2xlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgVXBwZXJDYXNlUGlwZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBWaXN1YWxFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCd0ZXh0QXJlYScpIHRleHRBcmVhOiBFbGVtZW50UmVmO1xuXG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBsb2FkaW5nVGV4dCA9IFwi0JjQtNGR0YIg0LfQsNCz0YDRg9C30LrQsFwiO1xuICB0ZXh0ID0gJyc7XG5cbiAgYWxpZ25tZW50ID0gRUFsaWdubWVudHMuTGVmdDtcbiAgdGV4dFRhZyA9IERlZmF1bHRUYWdzLnRleHRUYWdzWzBdLnRhZztcbiAgdGV4dFRhZ09wdGlvbnMgPSBEZWZhdWx0VGFncy50ZXh0VGFnc1xuICBhbGlnbm1lbnRPcHRpb25zID0gQWxpZ25tZW50c0RhdGFcblxuICBASW5wdXQoKVxuICBzaG93TWFya1VwID0gdHJ1ZTtcblxuICB0YWdzOiBUYWdJdGVtW10gPSBbXTtcbiAgdmlkZW9QbGF5ZXJzID0gRXh0ZXJuYWxWaWRlb1BsYXllcnNcbiAgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nO1xuICBzZWxlY3RlZFZpZGVvUGxheWVyOiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cyA9IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzO1xuXG4gIEBJbnB1dCgpXG4gIHVzZUh0bWxSYXcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBAT3V0cHV0KClcbiAgaHRtbDogc3RyaW5nID0gXCJcIjtcblxuICBpc0h0bWxTZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHRtbC5zdGFydHNXaXRoKFwiPGJvZHk+XCIpO1xuICB9XG5cbiAgY2xlYXJIdG1sKCkge1xuICAgIHRoaXMuaHRtbCA9IFwiXCI7XG4gICAgdGhpcy5yZWNhbGN1bGF0ZUJvZHlUYWdzKCk7XG4gIH1cblxuICBnZXRIdG1sKCkge1xuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XG4gICAgcmV0dXJuIHRoaXMuaHRtbDtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBvbkh0bWxDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlbmRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGJvZHlUYWdzOiBIdG1sQm9keVRhZ1tdID0gW107XG4gIHNhdmVCb2R5VGFnczogSHRtbEJvZHlUYWdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KENyb2NvSHRtbE9wdGlvbnNUb2tlbikgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgeyB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZWQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jZHJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBhZGRUYWcoKTogdm9pZCB7XG4gICAgbGV0IHRhZ0Rlc2NyaXB0aW9uID0gdGhpcy50YWdzXG4gICAgICAuZmluZCh4ID0+IHgudGFnID09PSB0aGlzLnNlbGVjdGVkVmFsdWUpO1xuXG4gICAgbGV0IGF0dHJzID0ge307XG4gICAgbGV0IGlubmVySHRtbCA9IFwiXCI7XG5cbiAgICBpZiAoVGV4dFRhZ3MuYWxsVGV4dFRhZ3MuaW5jbHVkZXModGFnRGVzY3JpcHRpb24udGFnKSkge1xuICAgICAgdGhpcy5hZGRUZXh0VGFncygpO1xuICAgICAgdGhpcy5zdGFydEFkZGluZ1RleHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZWxzZSBpZiAodGFnRGVzY3JpcHRpb24udGFnID09IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcbiAgICAgIGF0dHJzW0V4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlZpZGVvVHlwZUF0dHJOYW1lXSA9IHRoaXMuc2VsZWN0ZWRWaWRlb1BsYXllcjtcbiAgICAgIGF0dHJzW0V4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLkxpbmtBdHRyTmFtZV0gPSB0aGlzLnNlbGVjdGVkVmlkZW9QbGF5ZXIgPT09IEV4dGVybmFsVmlkZW9TdXBwb3J0ZWRUeXBlcy5Wa1ZpZGVvID8gZGVmYXVsdExpbmtWayA6IGRlZmF1bHRMaW5rWW91VHViZTtcbiAgICB9XG4gICAgZWxzZSBpZiAodGFnRGVzY3JpcHRpb24udGFnID09IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgYXR0cnNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5TY3JlZW5NZWRpYVJlcXVlc3RdID0gRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5EZWZhdWx0VmFsdWVGb3JGaWxlSW1hZ2U7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRhZ0Rlc2NyaXB0aW9uLnRhZyA9PSBEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgYXR0cnNbRG93bmxvYWRCdXR0b25UYWdEYXRhQ29uc3RzLkxpbmtBdHRyTmFtZV0gPSBkZWZhdWx0TGlua0ZvckRvd25sb2FkXG4gICAgICBhdHRyc1tEb3dubG9hZEJ1dHRvblRhZ0RhdGFDb25zdHMuVGl0bGVBdHRyTmFtZV0gPSAn0KHQutCw0YfQsNGC0YwnXG4gICAgfVxuICAgIGVsc2UgaWYgKHRhZ0Rlc2NyaXB0aW9uLnRhZyA9PSBCdXR0b25UYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcbiAgICAgIGF0dHJzW0J1dHRvblRhZ0RhdGFDb25zdHMuQ2xpY2tBdHRyTmFtZV0gPSAnJ1xuICAgICAgYXR0cnNbQnV0dG9uVGFnRGF0YUNvbnN0cy5UeXBlQXR0ck5hbWVdID0gJ2J1dHRvbidcbiAgICAgIGF0dHJzW0J1dHRvblRhZ0RhdGFDb25zdHMuVGV4dEF0dHJOYW1lXSA9ICfQmtC90L7Qv9C60LAnXG4gICAgfVxuICAgIGVsc2UgaWYgKHRhZ0Rlc2NyaXB0aW9uLnRhZyA9PSBDdXN0b21XaWRnZXRUYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcbiAgICAgIGF0dHJzW0N1c3RvbVdpZGdldFRhZ0RhdGFDb25zdHMuVHlwZUF0dHJOYW1lXSA9ICdleGFtcGxlLXR5cGUnXG4gICAgICBhdHRyc1tDdXN0b21XaWRnZXRUYWdEYXRhQ29uc3RzLkRhdGFJZEF0dHJOYW1lXSA9ICdleGFtcGxlLWRhdGEtaWQnXG4gICAgICBhdHRyc1tDdXN0b21XaWRnZXRUYWdEYXRhQ29uc3RzLldpZGdldElkQXR0ck5hbWVdID0gJ2V4YW1wbGUtd2lkZ2V0LWlkJ1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGF0dHJzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWVdID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5ib2R5VGFncy5wdXNoKHtcbiAgICAgIHRhZ0Rlc2NyaXB0aW9uLFxuICAgICAgaW5uZXJIdG1sLFxuICAgICAgYXR0cmlidXRlczogYXR0cnMsXG4gICAgICBwcmVzZW50T3JFZGl0OiB0cnVlXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xuICB9XG5cbiAgc3RhcnRBZGRpbmdUZXh0KCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZUJvZHlUYWdzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmJvZHlUYWdzKSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRleHRBcmVhLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9KVxuICAgIHRoaXMucmVzZXRUZXh0U3R5bGUoKTtcbiAgfVxuXG4gIGZpbmlzaEFkZGluZ1RleHQoKTogdm9pZCB7XG4gICAgdGhpcy5ib2R5VGFncyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zYXZlQm9keVRhZ3MpKTtcbiAgICB0aGlzLnJlc2V0VGV4dFN0eWxlKCk7XG4gIH1cblxuICByZXNldFRleHRTdHlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHQgPSAnJztcbiAgICB0aGlzLmFsaWdubWVudCA9IEVBbGlnbm1lbnRzLkxlZnQ7XG4gICAgdGhpcy50ZXh0VGFnID0gRGVmYXVsdFRhZ3MudGV4dFRhZ3NbMF0udGFnO1xuICB9XG5cbiAgYWRkVGV4dFRhZ3MoKSB7XG4gICAgbGV0IGxpbmVzID0gdGhpcy50ZXh0LnNwbGl0KCdcXG4nKTtcbiAgICB0aGlzLmJvZHlUYWdzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNhdmVCb2R5VGFncykpO1xuICAgIGxldCB0YWdEZXNjcmlwdGlvbiA9IHRoaXMudGV4dFRhZ09wdGlvbnM/LmZpbmQoeCA9PiB4LnRhZyA9PT0gdGhpcy50ZXh0VGFnKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChsaW5lc1tpXS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuYm9keVRhZ3MucHVzaCh7XG4gICAgICAgICAgdGFnRGVzY3JpcHRpb24sXG4gICAgICAgICAgaW5uZXJIdG1sOiBsaW5lc1tpXSxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICBcImgtYWxpZ25cIjogYCR7dGhpcy5hbGlnbm1lbnR9YFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwb3N0RmlsZXNTdGFydGVkRXZlbnRIYW5kbGVyKG1vZGVsOiBGaWxlUG9zdGluZ1N0YXJ0ZWQpIHtcbiAgICB0aGlzLmxvYWRpbmdUZXh0ID0gXCLQpNCw0LnQu9GLINC30LDQs9GA0YPQttCw0Y7RgtGB0Y8g0L3QsCDRgdC10YDQstC10YBcIjtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gIH1cblxuICBhZGRUYWdDdXN0b20odGFnOiBIdG1sQm9keVRhZykge1xuICAgIHRoaXMuYm9keVRhZ3MucHVzaCh0YWcpO1xuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XG4gIH1cblxuICBmaWxlc1RhZ3NSZWFkeUhhbmRsZXIodGFnczogSHRtbEJvZHlUYWdbXSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5ib2R5VGFncy5wdXNoKHRhZ3NbaV0pO1xuICAgIH1cbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxvYmplY3RbXT4pIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5ib2R5VGFncywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xuICB9XG5cbiAgb25UYWdTYXZlZEhhbmRsZXIodGFnOiBIdG1sQm9keVRhZykge1xuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XG4gIH1cblxuICBvblRhZ1JlbW92ZWRIYW5kbGVyKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmJvZHlUYWdzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcbiAgfVxuXG4gIHJlY2FsY3VsYXRlSHRtbCgpIHtcbiAgICBsZXQgcmVzdWx0ID0gQm9keVRhZ3NFeHRlbnNpb25zLnRvSHRtbCh0aGlzLmJvZHlUYWdzKTtcbiAgICB0aGlzLmh0bWwgPSBYbWxFeHRlbnNpb25zLmZvcm1hdFhtbChcIjxib2R5PlwiICsgcmVzdWx0ICsgXCI8L2JvZHk+XCIpO1xuICAgIHRoaXMub25IdG1sQ2hhbmdlZC5lbWl0KHRoaXMuaHRtbCk7XG4gIH1cblxuICByZWNhbGN1bGF0ZUJvZHlUYWdzKCkge1xuICAgIHRoaXMuYm9keVRhZ3MgPSBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0Qm9keVRhZ3ModGhpcy5odG1sLCB0aGlzLl9vcHRpb25zKTtcbiAgfVxuXG4gIHNlbGVjdFRhZyhkYXRhOiBUYWdJdGVtKSB7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZGF0YS50YWc7XG5cbiAgICBpZiAoZGF0YS50YWcgPT09ICd0ZXh0Jykge1xuICAgICAgdGhpcy5zdGFydEFkZGluZ1RleHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maW5pc2hBZGRpbmdUZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWNhbGN1bGF0ZUJvZHlUYWdzKCk7XG5cbiAgICB0aGlzLnRhZ3MgPSBEZWZhdWx0VGFncy5nZXRUYWdzKHRoaXMudXNlSHRtbFJhdyk7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdGhpcy50YWdzWzBdLnRhZztcbiAgICB0aGlzLnNlbGVjdGVkVmlkZW9QbGF5ZXIgPSB0aGlzLnZpZGVvUGxheWVyc1swXS50eXBlO1xuICB9XG59XG4iLCJAaWYgKGlzTG9hZGluZykge1xuICA8ZGl2PlxuICAgIDxkaXY+XG4gICAgICA8bWF0LXNwaW5uZXIgc3R5bGU9XCJtYXJnaW46MCBhdXRvO1wiPjwvbWF0LXNwaW5uZXI+XG4gICAgICA8ZGl2IHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPnt7bG9hZGluZ1RleHR9fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+PC9kaXY+XG4gIDwvZGl2PlxufVxuPGRpdiBbaGlkZGVuXT1cImlzTG9hZGluZ1wiPlxuICA8bWF0LWNhcmQgc3R5bGU9XCJtYXJnaW46IDJweDtcIiBjbGFzcz1cIm1hdC1jYXJkXCI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMjJweFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZ3NcIj5cbiAgICAgICAgICAgICAgQGZvciAodGFnIG9mIHRhZ3M7IHRyYWNrIHRhZykge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFnLWl0ZW1cIiAoY2xpY2spPVwic2VsZWN0VGFnKHRhZylcIiBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkVmFsdWUgPT09IHRhZy50YWdcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFnQnV0dG9uSWNvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2ljb246IHRhZy50YWd9XCI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHt7dGFnLmRpc3BsYXlWYWx1ZX19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoc2VsZWN0ZWRWYWx1ZSA9PT0gRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD7QktGL0LHQtdGA0LjRgtC1INCy0LjQtNC10L7Qv9C70LXQtdGAPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRWaWRlb1BsYXllclwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHZpZGVvUGxheWVyIG9mIHZpZGVvUGxheWVyczsgdHJhY2sgdmlkZW9QbGF5ZXIudHlwZSkge1xuICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInZpZGVvUGxheWVyLnR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3t2aWRlb1BsYXllci5kaXNwbGF5VmFsdWV9fVxuICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHNlbGVjdGVkVmFsdWUgPT09ICd0ZXh0Jykge1xuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAyMnB4XCI+XG4gICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cFxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGV4dFRhZ1wiXG4gICAgICAgICAgICAgICAgW2hpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3JdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAZm9yIChvcHRpb24gb2YgdGV4dFRhZ09wdGlvbnM7IHRyYWNrIG9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwie3sgb3B0aW9uLnRhZyB9fVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24uZGlzcGxheVZhbHVlIH19XG4gICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMjJweFwiPlxuICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXBcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFsaWdubWVudFwiXG4gICAgICAgICAgICAgICAgW2hpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3JdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAZm9yIChvcHRpb24gb2YgYWxpZ25tZW50T3B0aW9uczsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJ7eyBvcHRpb24udmFsdWUgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZXh0QWxpZ25Ub2dnbGVJY29uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpY29uOiBvcHRpb24udmFsdWV9XCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD7QotC10LrRgdGCPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgI2F1dG9zaXplPVwiY2RrVGV4dGFyZWFBdXRvc2l6ZVwiXG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAgICAgICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiMVwiXG4gICAgICAgICAgICAgIGNka0F1dG9zaXplTWF4Um93cz1cIjVcIlxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItCi0LXQutGB0YJcIlxuICAgICAgICAgICAgICAjdGV4dEFyZWFcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0ZXh0XCJcbiAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFkZFRhZygpXCIgY2xhc3M9XCJ3LTEwMFwiIG1hdC1zdHJva2VkLWJ1dHRvbj5cbiAgICAgICAgICAgINCU0L7QsdCw0LLQuNGC0Ywg0YLQtdCzXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICA8L21hdC1jYXJkPlxuXG4gIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IFtoaWRkZW5dPVwiaXNMb2FkaW5nXCI+XG4gIDxtYXQtY2FyZCBzdHlsZT1cIm1hcmdpbjogMnB4O1wiIGNsYXNzPVwibWF0LWNhcmRcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgPGNyb2NvLWh0bWwtYWRkLWZpbGVzLWJ0biAoZmlsZXNUYWdzUmVhZHkpPVwiZmlsZXNUYWdzUmVhZHlIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgKHBvc3RGaWxlc1N0YXJ0ZWQpPVwicG9zdEZpbGVzU3RhcnRlZEV2ZW50SGFuZGxlcigkZXZlbnQpXCIgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgIDwvY3JvY28taHRtbC1hZGQtZmlsZXMtYnRuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cblxuICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBbaGlkZGVuXT1cImlzTG9hZGluZ1wiPlxuICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XG4gICAgQGZvciAodGFnIG9mIGJvZHlUYWdzOyB0cmFjayB0YWc7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICA8ZGl2IGNka0RyYWc+XG4gICAgICAgIDxtYXQtY2FyZCBzdHlsZT1cIm1hcmdpbjogMnB4O1wiIGNsYXNzPVwibWF0LWNhcmQgc3BlY2lhbFwiPlxuICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1oYW5kbGVcIiBjZGtEcmFnSGFuZGxlPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJtb3ZlLWljb25cIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuNjUxNiAxOS4wOTg0TDEyIDIxLjc1TTEyIDIxLjc1TDkuMzQ4MzggMTkuMDk4NE0xMiAyMS43NVYxNU00LjkwMTYzIDE0LjY1MTZMMi4yNSAxMk0yLjI1IDEyTDQuOTAxNjMgOS4zNDgzOE0yLjI1IDEySDlNMTkuMDk4NCA5LjM0ODM4TDIxLjc1IDEyTTIxLjc1IDEyTDE5LjA5ODQgMTQuNjUxNk0yMS43NSAxMkgxNU05LjM0ODM4IDQuOTAxNjNMMTIgMi4yNU0xMiAyLjI1TDE0LjY1MTYgNC45MDE2M00xMiAyLjI1VjlcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzIzRThCXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIiBzdHlsZT1cImNvbG9yOiMzMjNFOEJcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFnQnV0dG9uSWNvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2ljb246IHRhZy50YWdEZXNjcmlwdGlvbi50YWd9XCI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDE1cHg7XCI+PC9kaXY+XG4gICAgICAgICAgICA8Y3JvY28taHRtbC1tYWluLWVkaXRvci1ibG9jayBbdGFnXT1cInRhZ1wiIChvblRhZ1NhdmVkKT1cIm9uVGFnU2F2ZWRIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAob25UYWdSZW1vdmVkKT1cIm9uVGFnUmVtb3ZlZEhhbmRsZXIoaSlcIj5cbiAgICAgICAgICAgIDwvY3JvY28taHRtbC1tYWluLWVkaXRvci1ibG9jaz5cbiAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RleHRBbGlnblRvZ2dsZUljb25zIGxldC1pY29uPVwiaWNvblwiPlxuICBAaWYgKGljb24gPT09ICdsZWZ0Jykge1xuICAgIDxzdmcgY2xhc3M9XCJ0ZXh0LWFsaWduLWljb25cIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aCBkPVwiTTMuMTI1NDggMTQuNjg3NUgxMy4xMjVNMy4xMjU0OCAxMS41NjI1SDE2Ljg3NU0zLjEyNSA4LjQzNzVIMTMuMTI1TTMuMTI1IDUuMzEyNUgxNi44NzVcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgIDwvc3ZnPlxuICB9XG4gIEBpZiAoaWNvbiA9PT0gJ2NlbnRlcicpIHtcbiAgICA8c3ZnIGNsYXNzPVwidGV4dC1hbGlnbi1pY29uXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHBhdGggZD1cIk01LjAwMDI0IDE0LjY4NzVIMTQuOTk5OE0zLjEyNTI0IDExLjU2MjVIMTYuODc0OE01IDguNDM3NUgxNU0zLjEyNSA1LjMxMjVIMTYuODc1XCJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuICBAaWYgKGljb24gPT09ICdyaWdodCcpIHtcbiAgICA8c3ZnIGNsYXNzPVwidGV4dC1hbGlnbi1pY29uXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHBhdGggZD1cIk02Ljg3NTQ4IDE0LjY4NzVIMTYuODc1TTMuMTI1NDggMTEuNTYyNUgxNi44NzVNNi44NzUgOC40Mzc1SDE2Ljg3NU0zLjEyNSA1LjMxMjVIMTYuODc1XCJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YWdCdXR0b25JY29ucyBsZXQtaWNvbj1cImljb25cIj5cbiAgQGlmIChpY29uID09PSAndGV4dCcpIHtcbiAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNy40OTk1MiAxNS42MjQ2SDEyLjQ5OTVNOS45OTk1MiA0LjM3NDU5VjE1LjYyNDZNMy43NDk1MSA2Ljg3NDU5VjQuMzc0NTlIMTYuMjQ5NVY2Ljg3NDU5XCJcbiAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuICBAaWYgKGljb24gPT09ICdodG1sLXJhdycpIHtcbiAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTUgNi44NzVMMTguNzUgMTBMMTUgMTMuMTI1TTUgNi44NzVMMS4yNSAxMEw1IDEzLjEyNU0xMi41IDMuMTI1TDcuNSAxNi44NzVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgPC9zdmc+XG4gIH1cbiAgQGlmIChpY29uID09PSAnZXh0ZXJuYWwtdmlkZW8nKSB7XG4gICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aCBkPVwiTTE0LjM3NSA4Ljc1TDE4Ljc1IDYuMjVWMTMuNzVMMTQuMzc1IDExLjI1TTEuODc1IDQuNjg3NUgxMS44NzVDMTIuNTM4IDQuNjg3NSAxMy4xNzM5IDQuOTUwODkgMTMuNjQyOCA1LjQxOTczQzE0LjExMTYgNS44ODg1NyAxNC4zNzUgNi41MjQ0NiAxNC4zNzUgNy4xODc1VjE0LjY4NzVDMTQuMzc1IDE0Ljg1MzMgMTQuMzA5MiAxNS4wMTIyIDE0LjE5MTkgMTUuMTI5NEMxNC4wNzQ3IDE1LjI0NjcgMTMuOTE1OCAxNS4zMTI1IDEzLjc1IDE1LjMxMjVIMy43NUMzLjA4Njk2IDE1LjMxMjUgMi40NTEwNyAxNS4wNDkxIDEuOTgyMjMgMTQuNTgwM0MxLjUxMzM5IDE0LjExMTQgMS4yNSAxMy40NzU1IDEuMjUgMTIuODEyNVY1LjMxMjVDMS4yNSA1LjE0Njc0IDEuMzE1ODUgNC45ODc3NyAxLjQzMzA2IDQuODcwNTZDMS41NTAyNyA0Ljc1MzM1IDEuNzA5MjQgNC42ODc1IDEuODc1IDQuNjg3NVpcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgPC9zdmc+XG4gIH1cbiAgQGlmIChpY29uID09PSAnZmlsZS1pbWFnZScpIHtcbiAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMi41IDEzLjEyNUw2LjQzMzA1IDkuMTkxOTRDNi40OTEwOCA5LjEzMzkgNi41NTk5OCA5LjA4Nzg3IDYuNjM1ODEgOS4wNTY0NkM2LjcxMTY0IDkuMDI1MDUgNi43OTI5MSA5LjAwODg4IDYuODc0OTkgOS4wMDg4OEM2Ljk1NzA2IDkuMDA4ODggNy4wMzgzNCA5LjAyNTA1IDcuMTE0MTcgOS4wNTY0NkM3LjE4OTk5IDkuMDg3ODcgNy4yNTg4OSA5LjEzMzkgNy4zMTY5MyA5LjE5MTk0TDEwLjgwOCAxMi42ODMxQzEwLjg2NjEgMTIuNzQxMSAxMC45MzUgMTIuNzg3MSAxMS4wMTA4IDEyLjgxODVDMTEuMDg2NiAxMi44NDk5IDExLjE2NzkgMTIuODY2MSAxMS4yNSAxMi44NjYxQzExLjMzMjEgMTIuODY2MSAxMS40MTMzIDEyLjg0OTkgMTEuNDg5MiAxMi44MTg1QzExLjU2NSAxMi43ODcxIDExLjYzMzkgMTIuNzQxMSAxMS42OTE5IDEyLjY4MzFMMTMuMzA4IDExLjA2NjlDMTMuMzY2MSAxMS4wMDg5IDEzLjQzNSAxMC45NjI5IDEzLjUxMDggMTAuOTMxNUMxMy41ODY2IDEwLjkgMTMuNjY3OSAxMC44ODM5IDEzLjc1IDEwLjg4MzlDMTMuODMyMSAxMC44ODM5IDEzLjkxMzMgMTAuOSAxMy45ODkyIDEwLjkzMTVDMTQuMDY1IDEwLjk2MjkgMTQuMTMzOSAxMS4wMDg5IDE0LjE5MTkgMTEuMDY2OUwxNy41IDE0LjM3NU0zLjEyNSAzLjc1SDE2Ljg3NUMxNy4yMjAyIDMuNzUgMTcuNSA0LjAyOTgyIDE3LjUgNC4zNzVWMTUuNjI1QzE3LjUgMTUuOTcwMiAxNy4yMjAyIDE2LjI1IDE2Ljg3NSAxNi4yNUgzLjEyNUMyLjc3OTgyIDE2LjI1IDIuNSAxNS45NzAyIDIuNSAxNS42MjVWNC4zNzVDMi41IDQuMDI5ODIgMi43Nzk4MiAzLjc1IDMuMTI1IDMuNzVaTTEzLjEyNSA3LjgxMjVDMTMuMTI1IDguMzMwMjcgMTIuNzA1MyA4Ljc1IDEyLjE4NzUgOC43NUMxMS42Njk3IDguNzUgMTEuMjUgOC4zMzAyNyAxMS4yNSA3LjgxMjVDMTEuMjUgNy4yOTQ3MyAxMS42Njk3IDYuODc1IDEyLjE4NzUgNi44NzVDMTIuNzA1MyA2Ljg3NSAxMy4xMjUgNy4yOTQ3MyAxMy4xMjUgNy44MTI1WlwiXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuICBAaWYgKGljb24gPT09ICdjdXN0b20td2lkZ2V0Jykge1xuICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHBhdGggZD1cIk0xNi4yNSAxNVYxNi4yNU0xMy43NSAxMi41SDE2LjI1TTExLjI1IDE2LjI1SDEzLjc1VjExLjI1TTExLjI1IDExLjI1VjEzLjc1TTQuMzc1IDExLjI1SDguMTI1QzguNDcwMTggMTEuMjUgOC43NSAxMS41Mjk4IDguNzUgMTEuODc1VjE1LjYyNUM4Ljc1IDE1Ljk3MDIgOC40NzAxOCAxNi4yNSA4LjEyNSAxNi4yNUg0LjM3NUM0LjAyOTgyIDE2LjI1IDMuNzUgMTUuOTcwMiAzLjc1IDE1LjYyNVYxMS44NzVDMy43NSAxMS41Mjk4IDQuMDI5ODIgMTEuMjUgNC4zNzUgMTEuMjVaTTExLjg3NSAzLjc1SDE1LjYyNUMxNS45NzAyIDMuNzUgMTYuMjUgNC4wMjk4MiAxNi4yNSA0LjM3NVY4LjEyNUMxNi4yNSA4LjQ3MDE4IDE1Ljk3MDIgOC43NSAxNS42MjUgOC43NUgxMS44NzVDMTEuNTI5OCA4Ljc1IDExLjI1IDguNDcwMTggMTEuMjUgOC4xMjVWNC4zNzVDMTEuMjUgNC4wMjk4MiAxMS41Mjk4IDMuNzUgMTEuODc1IDMuNzVaTTQuMzc1IDMuNzVIOC4xMjVDOC40NzAxOCAzLjc1IDguNzUgNC4wMjk4MiA4Ljc1IDQuMzc1VjguMTI1QzguNzUgOC40NzAxOCA4LjQ3MDE4IDguNzUgOC4xMjUgOC43NUg0LjM3NUM0LjAyOTgyIDguNzUgMy43NSA4LjQ3MDE4IDMuNzUgOC4xMjVWNC4zNzVDMy43NSA0LjAyOTgyIDQuMDI5ODIgMy43NSA0LjM3NSAzLjc1WlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuICBAaWYgKGljb24gPT09ICdidXR0b24nKSB7XG4gICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aCBkPVwiTTkuOTk5MzkgMy43NTAyNFY5LjY4Nzc1TTEzLjc1MDEgNC4yMzY5NUMxNC45OTIzIDUuMDQ1MzYgMTUuOTM5OSA2LjIzMzUzIDE2LjQ1MTggNy42MjQzNUMxNi45NjM4IDkuMDE1MTcgMTcuMDEyNSAxMC41MzQyIDE2LjU5MDkgMTEuOTU1QzE2LjE2OTMgMTMuMzc1OCAxNS4yOTk4IDE0LjYyMjMgMTQuMTEyMSAxNS41MDg3QzEyLjkyNDQgMTYuMzk1MiAxMS40ODIgMTYuODc0MSA5Ljk5OTk4IDE2Ljg3NDFDOC41MTc5NSAxNi44NzQxIDcuMDc1NTkgMTYuMzk1MSA1Ljg4Nzg4IDE1LjUwODdDNC43MDAxNyAxNC42MjIzIDMuODMwNzEgMTMuMzc1NyAzLjQwOTA4IDExLjk1NDlDMi45ODc0NiAxMC41MzQxIDMuMDM2MjQgOS4wMTUxMyAzLjU0ODE2IDcuNjI0MzJDNC4wNjAwOSA2LjIzMzUgNS4wMDc3NCA1LjA0NTM0IDYuMjQ5ODggNC4yMzY5M1wiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuICBAaWYgKGljb24gPT09ICdkb3dubG9hZC1maWxlLWJ1dHRvbicpIHtcbiAgICA8c3ZnIHN0eWxlPVwiZmlsbDpjdXJyZW50Q29sb3JcIiAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjQyNDI0IDkuNDE2NjdDMy40OTk2NyA5LjQxNjY3IDIuNzUgMTAuMTY2MyAyLjc1IDExLjA5MDlWMTkuNTc1OEMyLjc1IDIwLjUwMDMgMy40OTk2NyAyMS4yNSA0LjQyNDI0IDIxLjI1SDE5LjU3NThDMjAuNTAwMyAyMS4yNSAyMS4yNSAyMC41MDAzIDIxLjI1IDE5LjU3NThWMTEuMDkwOUMyMS4yNSAxMC4xNjYzIDIwLjUwMDMgOS40MTY2NyAxOS41NzU4IDkuNDE2NjdIMTUuOTM5NEMxNS41MjUyIDkuNDE2NjcgMTUuMTg5NCA5LjA4MDg4IDE1LjE4OTQgOC42NjY2N0MxNS4xODk0IDguMjUyNDUgMTUuNTI1MiA3LjkxNjY3IDE1LjkzOTQgNy45MTY2N0gxOS41NzU4QzIxLjMyODggNy45MTY2NyAyMi43NSA5LjMzNzkxIDIyLjc1IDExLjA5MDlWMTkuNTc1OEMyMi43NSAyMS4zMjg4IDIxLjMyODggMjIuNzUgMTkuNTc1OCAyMi43NUg0LjQyNDI0QzIuNjcxMjQgMjIuNzUgMS4yNSAyMS4zMjg4IDEuMjUgMTkuNTc1OFYxMS4wOTA5QzEuMjUgOS4zMzc5MSAyLjY3MTI0IDcuOTE2NjcgNC40MjQyNCA3LjkxNjY3SDguMDYwNjFDOC40NzQ4MiA3LjkxNjY3IDguODEwNjEgOC4yNTI0NSA4LjgxMDYxIDguNjY2NjdDOC44MTA2MSA5LjA4MDg4IDguNDc0ODIgOS40MTY2NyA4LjA2MDYxIDkuNDE2NjdINC40MjQyNFpcIi8+XG4gICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTIgMS4yNUMxMi40MTQyIDEuMjUgMTIuNzUgMS41ODU3OSAxMi43NSAyVjE1LjkzOTRDMTIuNzUgMTYuMzUzNiAxMi40MTQyIDE2LjY4OTQgMTIgMTYuNjg5NEMxMS41ODU4IDE2LjY4OTQgMTEuMjUgMTYuMzUzNiAxMS4yNSAxNS45Mzk0VjJDMTEuMjUgMS41ODU3OSAxMS41ODU4IDEuMjUgMTIgMS4yNVpcIi8+XG4gICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy44MzMzMSAxMi45ODQ4QzguMTI2MiAxMi42OTE5IDguNjAxMDcgMTIuNjkxOSA4Ljg5Mzk3IDEyLjk4NDhMMTIgMTYuMDkwOUwxNS4xMDYgMTIuOTg0OEMxNS4zOTg5IDEyLjY5MTkgMTUuODczOCAxMi42OTE5IDE2LjE2NjcgMTIuOTg0OEMxNi40NTk2IDEzLjI3NzcgMTYuNDU5NiAxMy43NTI2IDE2LjE2NjcgMTQuMDQ1NUwxMi41MzAzIDE3LjY4MThDMTIuMjM3NCAxNy45NzQ3IDExLjc2MjYgMTcuOTc0NyAxMS40Njk3IDE3LjY4MThMNy44MzMzMSAxNC4wNDU1QzcuNTQwNDEgMTMuNzUyNiA3LjU0MDQxIDEzLjI3NzcgNy44MzMzMSAxMi45ODQ4WlwiLz5cbiAgICA8L3N2Zz5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuXG5cblxuXG5cbiJdfQ==
|
|
@@ -61,4 +61,4 @@ export class AngularMaterialTableMethods {
|
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5ndWxhck1hdGVyaWFsVGFibGVNZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvQW5ndWxhck1hdGVyaWFsVGFibGVNZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTywyQkFBMkI7SUFDcEMsTUFBTSxDQUFDLDJCQUEyQixDQUFDLE9BQWlCLEVBQUUsSUFBb0I7UUFFdEUsSUFBSSxJQUFJLEdBQWEsRUFBRSxDQUFDO1FBRXhCLEtBQUssSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDeEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTNCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUVkLEtBQUssSUFBSSxXQUFXLEdBQUcsQ0FBQyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQ3BFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFFcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0RCxDQUFDO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDO1FBRUQsT0FBTztZQUNILGdCQUFnQixFQUFFLE9BQU87WUFDekIsSUFBSSxFQUFFLElBQUk7U0FDYixDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBb0I7UUFDcEMsSUFBRyxTQUFTLENBQUMsTUFBTSxLQUFLLElBQUksRUFBQyxDQUFDO1lBQzFCLE9BQU87Z0JBQ0gsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLE9BQU8sRUFBRSxzQ0FBc0M7YUFDbEQsQ0FBQztRQUNOLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBYSxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUVqRCxJQUFJLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUU1RSxJQUFJLHFCQUFxQixDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEQsT0FBTztnQkFDSCxXQUFXLEVBQUUsS0FBSztnQkFDbEIsT0FBTyxFQUFFLHlFQUF5RTthQUNyRixDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU87WUFDSCxXQUFXLEVBQUUsSUFBSTtZQUNqQixPQUFPLEVBQUUsSUFBSTtTQUNoQixDQUFDO0lBQ04sQ0FBQztJQUNELE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxTQUFvQixFQUFFLGVBQXdCLElBQUk7UUFFbkYsSUFBRyxZQUFZLEVBQUMsQ0FBQztZQUNiLElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV0RCxJQUFHLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFDLENBQUM7Z0JBQ2hDLE9BQU8sa0JBQWtCLENBQUM7WUFDOUIsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLElBQUksR0FBbUIsU0FBUyxDQUFDLElBQUksQ0FBQztRQUMxQyxJQUFJLE9BQU8sR0FBYSxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUVqRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwQixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDeEMsT0FBTztvQkFDSCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsT0FBTyxFQUFFLHlDQUF5QzswQkFDNUMsNkdBQTZHOzBCQUM3RyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMseUJBQXlCLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxtQkFBbUIsT0FBTyxDQUFDLE1BQU0sR0FBRztpQkFDbEgsQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTztZQUNILFdBQVcsRUFBRSxJQUFJO1lBQ2pCLE9BQU8sRUFBRSxJQUFJO1NBQ2hCLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FuZ3VsYXJNYXRlcmlhbFRhYmxlRGF0YSwgQmFzZUFwaVJlc3BvbnNlLCBUYWJsZURhdGEsIFRhYmxlUm93RGF0YX0gZnJvbSAnLi9UYWJsZU1ldGhvZHMnO1xuXG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyTWF0ZXJpYWxUYWJsZU1ldGhvZHMge1xuICAgIHN0YXRpYyBnZXRBbmd1bGFyTWF0ZXJpYWxUYWJsZURhdGEoY29sdW1uczogc3RyaW5nW10sIHJvd3M6IFRhYmxlUm93RGF0YVtdKTogQW5ndWxhck1hdGVyaWFsVGFibGVEYXRhIHtcblxuICAgICAgICBsZXQgZGF0YTogb2JqZWN0W10gPSBbXTtcblxuICAgICAgICBmb3IgKGxldCByb3dJbmRleCA9IDA7IHJvd0luZGV4IDwgcm93cy5sZW5ndGg7IHJvd0luZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IHJvd3Nbcm93SW5kZXhdO1xuXG4gICAgICAgICAgICB2YXIgZWxlbSA9IHt9O1xuXG4gICAgICAgICAgICBmb3IgKGxldCBjb2x1bW5JbmRleCA9IDA7IGNvbHVtbkluZGV4IDwgY29sdW1ucy5sZW5ndGg7IGNvbHVtbkluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zW2NvbHVtbkluZGV4XTtcblxuICAgICAgICAgICAgICAgIGVsZW1bY29sdW1uXSA9IHJvdy5jb2x1bW5zW2NvbHVtbkluZGV4XS5kYXRhLnRleHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRhdGEucHVzaChlbGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkaXNwbGF5ZWRDb2x1bW5zOiBjb2x1bW5zLFxuICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgY2hlY2tIZWFkZXJzKHRhYmxlRGF0YTogVGFibGVEYXRhKTogQmFzZUFwaVJlc3BvbnNlIHtcbiAgICAgICAgaWYodGFibGVEYXRhLmhlYWRlciA9PT0gbnVsbCl7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGlzU3VjY2VlZGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcItCd0LXQvtCx0YXQvtC00LjQvNC+INGD0LrQsNC30LDRgtGMINC30LDQs9C+0LvQvtCy0L7QuiDRgtCw0LHQu9C40YbRi1wiXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNvbHVtbnM6IHN0cmluZ1tdID0gdGFibGVEYXRhLmhlYWRlci5jb2x1bW5zO1xuXG4gICAgICAgIHZhciB1bmlxdWVEaXNsYXllZENvbHVtbnMgPSBjb2x1bW5zLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKTtcblxuICAgICAgICBpZiAodW5pcXVlRGlzbGF5ZWRDb2x1bW5zLmxlbmd0aCAhPT0gY29sdW1ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaXNTdWNjZWVkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi0J7RiNC40LHQutCwINC/0YDQuCDQvtCx0YDQsNCx0L7RgtC60LUg0YDQsNC30LzQtdGC0LrQuCDRgtCw0LHQu9C40YbRiy4g0J7QsdC90LDRgNGD0LbQtdC90Ysg0LTRg9Cx0LvQuNC60LDRgtGLINC30LDQs9C+0LvQvtCy0LrQvtCyLlwiXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlzU3VjY2VlZGVkOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogXCJPa1wiXG4gICAgICAgIH07XG4gICAgfVxuICAgIHN0YXRpYyBjaGVja0FuZ3VsYXJNYXRlcmlhbFRhYmxlRGF0YSh0YWJsZURhdGE6IFRhYmxlRGF0YSwgY2hlY2tIZWFkZXJzOiBib29sZWFuID0gdHJ1ZSk6IEJhc2VBcGlSZXNwb25zZSB7XG5cbiAgICAgICAgaWYoY2hlY2tIZWFkZXJzKXtcbiAgICAgICAgICAgIHZhciBjaGVja0hlYWRlcnNSZXN1bHQgPSB0aGlzLmNoZWNrSGVhZGVycyh0YWJsZURhdGEpO1xuXG4gICAgICAgICAgICBpZighY2hlY2tIZWFkZXJzUmVzdWx0LmlzU3VjY2VlZGVkKXtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2hlY2tIZWFkZXJzUmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJvd3M6IFRhYmxlUm93RGF0YVtdID0gdGFibGVEYXRhLnJvd3M7XG4gICAgICAgIGxldCBjb2x1bW5zOiBzdHJpbmdbXSA9IHRhYmxlRGF0YS5oZWFkZXIuY29sdW1ucztcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IHJvd3NbaV07XG5cbiAgICAgICAgICAgIGlmIChyb3cuY29sdW1ucy5sZW5ndGggIT09IGNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaXNTdWNjZWVkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBg0J7RiNC40LHQutCwINC/0YDQuCDQvtCx0YDQsNCx0L7RgtC60LUg0YDQsNC30LzQtdGC0LrQuCDRgtCw0LHQu9C40YbRiy4gYFxuICAgICAgICAgICAgICAgICAgICAgICAgKyBg0JrQvtC70LjRh9C10YHRgtCy0L4g0LrQvtC70L7QvdC+0Log0LIg0LrQsNC20LTQvtC5INGB0YLRgNC+0LrQtSDRgtCw0LHQu9C40YbRiyDQtNC+0LvQttC90L4g0YHQvtC+0YLQstC10YHRgtCy0L7QstCw0YLRjCDQutC+0LvQuNGH0LXRgdGC0LLRgyDQutC+0LvQvtC90L7QuiDRg9C60LDQt9Cw0L3QvdGL0YUg0LIg0LfQsNCz0L7Qu9C+0LLQutC1LiBgXG4gICAgICAgICAgICAgICAgICAgICAgICArIGDQkiDRgdGC0YDQvtC60LUg0YLQsNCx0LvQuNGG0Ysg4oSWJHtpICsgMX0g0LrQvtC70LjRh9C10YHRgtCy0L4g0LrQvtC70L7QvdC+0LogPSAke3Jvdy5jb2x1bW5zLmxlbmd0aH0sINCwINC00L7Qu9C20L3QviDQsdGL0YLRjCAke2NvbHVtbnMubGVuZ3RofS5gXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpc1N1Y2NlZWRlZDogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwiT2tcIlxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -105,4 +105,4 @@ export class TableMethods {
|
|
|
105
105
|
return rows;
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVNZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvVGFibGVNZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBbUN4RCxNQUFNLE9BQU8sVUFBVTthQUNILHVCQUFrQixHQUFHLHVCQUF1QixDQUFDO2FBQzdDLFVBQUssR0FBRyxPQUFPLENBQUM7YUFDaEIsbUJBQWMsR0FBRyxrQkFBa0IsQ0FBQzs7QUFHeEQsTUFBTSxPQUFPLFlBQVk7SUFFckIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQTBCLEVBQUUsT0FBeUI7UUFDNUUsSUFBSSxTQUFTLEdBQWU7WUFDeEIsTUFBTSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1lBQ3hDLElBQUksRUFBRSxZQUFZLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7U0FDckQsQ0FBQztRQUVGLElBQUksTUFBTSxHQUFHO1lBQ1QsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLO1lBQ3RCLElBQUksRUFBRSxTQUFTO1lBQ2YsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDNUMsYUFBYSxFQUFFLEVBQUU7U0FDcEIsQ0FBQTtRQUVELElBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUMsQ0FBQztZQUN6QixPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBQ0QsTUFBTSxDQUFDLGFBQWEsR0FBRyxxQkFB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3JvY29IdG1sT3B0aW9ucyB9IGZyb20gJy4uL29wdGlvbnMnO1xuaW1wb3J0IHsgQW5ndWxhck1hdGVyaWFsVGFibGVNZXRob2RzIH0gZnJvbSAnLi9Bbmd1bGFyTWF0ZXJpYWxUYWJsZU1ldGhvZHMnO1xuaW1wb3J0IHsgQm9vdHN0cmFwVGFibGVNZXRob2RzIH0gZnJvbSAnLi9Cb290c3RyYXBUYWJsZU1ldGhvZHMnO1xuaW1wb3J0IHsgSHRtbEV4dHJhY3Rpb25NZXRob2RzIH0gZnJvbSAnLi9IdG1sRXh0cmFjdGlvbk1ldGhvZHMnO1xuaW1wb3J0IHsgSW50ZXJmYWNlQmxvY2sgfSBmcm9tIFwiLi9JbnRlcmZhY2VCbG9ja1wiO1xuaW1wb3J0IHsgVGV4dFNpbXBsZU1ldGhvZHMgfSBmcm9tICcuL1RleHRTaW1wbGVNZXRob2RzJztcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlQXBpUmVzcG9uc2Uge1xuICAgIGlzU3VjY2VlZGVkOiBib29sZWFuO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUhlYWRlckRhdGF7XG4gICAgdHlwZTogXCJ0YWJsZS1oZWFkZXJcIjtcbiAgICBjb2x1bW5zOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZVJvd0NvbHVtbkRhdGEge1xuICAgIHR5cGU6IFwidGFibGUtcm93LWNvbHVtbi1kYXRhXCI7XG4gICAgZGF0YToge1xuICAgICAgICB0ZXh0OiBzdHJpbmc7XG4gICAgICAgIGNoaWxkcmVuOiBJbnRlcmZhY2VCbG9ja1tdO1xuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZVJvd0RhdGEge1xuICAgIHR5cGU6IFwidGFibGUtcm93LWNvbHVtblwiO1xuICAgIGNvbHVtbnM6IFRhYmxlUm93Q29sdW1uRGF0YVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlRGF0YXtcbiAgICBoZWFkZXI6IFRhYmxlSGVhZGVyRGF0YSxcbiAgICByb3dzOiBUYWJsZVJvd0RhdGFbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlVGFnRGF0YXtcbiAgICB0eXBlOiBcInRhYmxlXCI7XG4gICAgZGF0YTogVGFibGVEYXRhO1xufVxuXG5leHBvcnQgY2xhc3MgVGFibGVUeXBlcyB7XG4gICAgc3RhdGljIHJlYWRvbmx5IFRhYmxlUm93Q29sdW1uRGF0YSA9IFwidGFibGUtcm93LWNvbHVtbi1kYXRhXCI7XG4gICAgc3RhdGljIHJlYWRvbmx5IFRhYmxlID0gXCJ0YWJsZVwiO1xuICAgIHN0YXRpYyByZWFkb25seSBUYWJsZVJvd0NvbHVtbiA9IFwidGFibGUtcm93LWNvbHVtblwiO1xufVxuXG5leHBvcnQgY2xhc3MgVGFibGVNZXRob2RzIHtcblxuICAgIHN0YXRpYyBnZXRUYWJsZUZyb21IdG1sVGFnKHRhYmxlVGFnOiBIVE1MVGFibGVFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSB7XG4gICAgICAgIGxldCB0YWJsZURhdGEgOiBUYWJsZURhdGEgPSB7XG4gICAgICAgICAgICBoZWFkZXI6IFRhYmxlTWV0aG9kcy5nZXRIZWFkZXIodGFibGVUYWcpLFxuICAgICAgICAgICAgcm93czogVGFibGVNZXRob2RzLmdldFRhYmxlUm93cyh0YWJsZVRhZywgb3B0aW9ucylcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgcmVzdWx0ID0ge1xuICAgICAgICAgICAgdHlwZTogVGFibGVUeXBlcy5UYWJsZSxcbiAgICAgICAgICAgIGRhdGE6IHRhYmxlRGF0YSxcbiAgICAgICAgICAgIHZhbGlkYXRpb25SZXN1bHQ6IHRoaXMuY2hlY2tUYWJsZSh0YWJsZURhdGEpLFxuICAgICAgICAgICAgYm9vdHN0cmFwSHRtbDogXCJcIlxuICAgICAgICB9XG5cbiAgICAgICAgaWYoIXJlc3VsdC52YWxpZGF0aW9uUmVzdWx0KXtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0LmJvb3RzdHJhcEh0bWwgPSBCb290c3RyYXBUYWJsZU1ldGhvZHMuQnVpbGRUYWJsZShyZXN1bHQuZGF0YSk7XG5cbiAgICAgICAgdmFyIGFuZ3VsYXJNYXRlcmlhbFRhYmxlRGF0YUNoZWNrID0gQW5ndWxhck1hdGVyaWFsVGFibGVNZXRob2RzLmNoZWNrQW5ndWxhck1hdGVyaWFsVGFibGVEYXRhKHRhYmxlRGF0YSk7XG5cbiAgICAgICAgaWYgKCFhbmd1bGFyTWF0ZXJpYWxUYWJsZURhdGFDaGVjay5pc1N1Y2NlZWRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICAgICAgYW5ndWxhck1hdGVyaWFsVGFibGVEYXRhQ2hlY2tcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgYW5ndWxhck1hdGVyaWFsVGFibGVEYXRhQ2hlY2ssXG4gICAgICAgICAgICBodG1sOiB0YWJsZVRhZy5vdXRlckhUTUwsXG4gICAgICAgICAgICBhbmd1bGFyTWF0ZXJpYWxUYWJsZURhdGE6IEFuZ3VsYXJNYXRlcmlhbFRhYmxlTWV0aG9kcy5nZXRBbmd1bGFyTWF0ZXJpYWxUYWJsZURhdGEodGFibGVEYXRhLmhlYWRlci5jb2x1bW5zLCB0YWJsZURhdGEucm93cyksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgc3RhdGljIGNoZWNrVGFibGUodGFibGVEYXRhOiBUYWJsZURhdGEpIDogQmFzZUFwaVJlc3BvbnNle1xuXG4gICAgICAgIGxldCByb3dzID0gdGFibGVEYXRhLnJvd3M7XG5cbiAgICAgICAgbGV0IHByZXZSb3dDb3VudCA9IC0xO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IHJvd3NbaV07XG5cbiAgICAgICAgICAgIGlmIChyb3cuY29sdW1ucy5sZW5ndGggIT09IHByZXZSb3dDb3VudCAmJiBwcmV2Um93Q291bnQgIT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpc1N1Y2NlZWRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGDQntGI0LjQsdC60LAg0L/RgNC4INC+0LHRgNCw0LHQvtGC0LrQtSDRgNCw0LfQvNC10YLQutC4INGC0LDQsdC70LjRhtGLLiBgXG4gICAgICAgICAgICAgICAgICAgICAgICArIGDQmtC+0LvQuNGH0LXRgdGC0LLQviDQutC+0LvQvtC90L7QuiDQsiDQutCw0LbQtNC+0Lkg0YHRgtGA0L7QutC1INGC0LDQsdC70LjRhtGLINC00L7Qu9C20L3QviDRgdC+0L7RgtCy0LXRgdGC0LLQvtCy0LDRgtGMINC00YDRg9CzINC00YDRg9Cz0YMuIGBcbiAgICAgICAgICAgICAgICAgICAgICAgICsgYNCSINGB0YLRgNC+0LrQtSDRgtCw0LHQu9C40YbRiyDihJYke2kgKyAxfSDQutC+0LvQuNGH0LXRgdGC0LLQviDQutC+0LvQvtC90L7QuiA9ICR7cm93LmNvbHVtbnMubGVuZ3RofSwg0LAg0LIg0YHRgtGA0L7QutC1INCy0YvRiNC1ICR7cHJldlJvd0NvdW50fS5gXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByZXZSb3dDb3VudCA9IHJvdy5jb2x1bW5zLmxlbmd0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpc1N1Y2NlZWRlZDogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwiT2tcIlxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBzdGF0aWMgZ2V0SGVhZGVyKHRhYmxlVGFnOiBIVE1MVGFibGVFbGVtZW50KSA6IFRhYmxlSGVhZGVyRGF0YSB7XG4gICAgICAgIGxldCBoZWFkZXIgPSB0YWJsZVRhZy50SGVhZDtcblxuICAgICAgICBpZihoZWFkZXIgPT09IG51bGwpe1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdHIgPSBoZWFkZXIuY2hpbGRyZW4uaXRlbSgwKTtcblxuICAgICAgICBsZXQgaGVhZGVyQ29sdW1uczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRyLmNoaWxkcmVuLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBjb25zdCBqRWxlbWVudCA9IHRyLmNoaWxkcmVuLml0ZW0oaikgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGhlYWRlckNvbHVtbnMucHVzaChqRWxlbWVudC5pbm5lckhUTUwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwidGFibGUtaGVhZGVyXCIsXG4gICAgICAgICAgICBjb2x1bW5zOiBoZWFkZXJDb2x1bW5zXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgc3RhdGljIGdldFRhYmxlUm93cyh0YWJsZVRhZzogSFRNTFRhYmxlRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucyk6IEFycmF5PFRhYmxlUm93RGF0YT4ge1xuICAgICAgICBsZXQgdEJvZHkgPSB0YWJsZVRhZy50Qm9kaWVzLml0ZW0oMCk7XG5cbiAgICAgICAgbGV0IHJvd3M6IFRhYmxlUm93RGF0YVtdID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0Qm9keS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgaUVsZW1lbnQgPSB0Qm9keS5jaGlsZHJlbi5pdGVtKGkpO1xuXG4gICAgICAgICAgICBsZXQgcm93Q29sdW1uczogVGFibGVSb3dDb2x1bW5EYXRhW10gPSBbXTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpRWxlbWVudC5jaGlsZHJlbi5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGpFbGVtZW50ID0gaUVsZW1lbnQuY2hpbGRyZW4uaXRlbShqKSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbiA9IEh0bWxFeHRyYWN0aW9uTWV0aG9kcy50cmFuc2Zvcm1IdG1sRWxlbWVudFRvQmxvY2tzKGpFbGVtZW50LCBvcHRpb25zKTtcblxuICAgICAgICAgICAgICAgIGlmKGNoaWxkcmVuLmxlbmd0aCA9PT0gMCl7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0VGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInBcIik7XG4gICAgICAgICAgICAgICAgICAgIHRleHRUYWcuaW5uZXJIVE1MID0gakVsZW1lbnQuaW5uZXJIVE1MO1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0RWxlbSA9IFRleHRTaW1wbGVNZXRob2RzLkV4dHJhY3RUZXh0VGFnKHRleHRUYWcpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2godGV4dEVsZW0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQ6VGFibGVSb3dDb2x1bW5EYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBUYWJsZVR5cGVzLlRhYmxlUm93Q29sdW1uRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogakVsZW1lbnQuaW5uZXJIVE1MLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByb3dDb2x1bW5zLnB1c2gocmVzdWx0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcm93cy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBUYWJsZVR5cGVzLlRhYmxlUm93Q29sdW1uLFxuICAgICAgICAgICAgICAgIGNvbHVtbnM6IHJvd0NvbHVtbnNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJvd3M7XG4gICAgfVxufVxuIl19
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVNZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvVGFibGVNZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBbUN4RCxNQUFNLE9BQU8sVUFBVTthQUNILHVCQUFrQixHQUFHLHVCQUF1QixDQUFDO2FBQzdDLFVBQUssR0FBRyxPQUFPLENBQUM7YUFDaEIsbUJBQWMsR0FBRyxrQkFBa0IsQ0FBQzs7QUFReEQsTUFBTSxPQUFPLFlBQVk7SUFFckIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQTBCLEVBQUUsT0FBeUI7UUFDNUUsSUFBSSxTQUFTLEdBQWU7WUFDeEIsTUFBTSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1lBQ3hDLElBQUksRUFBRSxZQUFZLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7U0FDckQsQ0FBQztRQUVGLElBQUksTUFBTSxHQUFHO1lBQ1QsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLO1lBQ3RCLElBQUksRUFBRSxTQUFTO1lBQ2YsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDNUMsYUFBYSxFQUFFLEVBQUU7U0FDcEIsQ0FBQTtRQUVELElBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUMsQ0FBQztZQUN6QixPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBQ0QsTUFBTSxDQUFDLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJFLElBQUksNkJBQTZCLEdBQUcsMkJBQTJCLENBQUMsNkJBQTZCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFekcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdDLE9BQU87Z0JBQ0gsR0FBRyxNQUFNO2dCQUNULDZCQUE2QjthQUNoQyxDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU87WUFDSCxHQUFHLE1BQU07WUFDVCw2QkFBNkI7WUFDN0IsSUFBSSxFQUFFLFFBQVEsQ0FBQyxTQUFTO1lBQ3hCLHdCQUF3QixFQUFFLDJCQUEyQixDQUFDLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUM7U0FDOUgsQ0FBQztJQUNOLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQW9CO1FBRWxDLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFFMUIsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFcEIsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxZQUFZLElBQUksWUFBWSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzVELE9BQU87b0JBQ0gsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLE9BQU8sRUFBRSx5Q0FBeUM7MEJBQzVDLCtFQUErRTswQkFDL0UscUJBQXFCLENBQUMsR0FBRyxDQUFDLHlCQUF5QixHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0scUJBQXFCLFlBQVksR0FBRztpQkFDbEgsQ0FBQztZQUNOLENBQUM7WUFDRCxZQUFZLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDdEMsQ0FBQztRQUVELE9BQU87WUFDSCxXQUFXLEVBQUUsSUFBSTtZQUNqQixPQUFPLEVBQUUsSUFBSTtTQUNoQixDQUFBO0lBQ0wsQ0FBQztJQUdELE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBMEI7UUFDdkMsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUU1QixJQUFHLE1BQU0sS0FBSyxJQUFJLEVBQUMsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakMsSUFBSSxhQUFhLEdBQWEsRUFBRSxDQUFDO1FBRWpDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzFDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztZQUVwRCxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBRUQsT0FBTztZQUNILElBQUksRUFBRSxjQUFjO1lBQ3BCLE9BQU8sRUFBRSxhQUFhO1NBQ3pCLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUEwQixFQUFFLE9BQXlCO1FBQ3JFLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXJDLElBQUksSUFBSSxHQUFtQixFQUFFLENBQUM7UUFFOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDN0MsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFeEMsSUFBSSxVQUFVLEdBQXlCLEVBQUUsQ0FBQztZQUUxQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDaEQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFnQixDQUFDO2dCQUUxRCxJQUFJLFFBQVEsR0FBRyxxQkFBcUIsQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBRXJGLElBQUcsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUMsQ0FBQztvQkFDdEIsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDMUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO29CQUV2QyxJQUFJLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBRXpELFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVCLENBQUM7Z0JBRUQsSUFBSSxNQUFNLEdBQXNCO29CQUM1QixJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtvQkFDbkMsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxRQUFRLENBQUMsU0FBUzt3QkFDeEIsUUFBUTtxQkFDWDtpQkFDSixDQUFDO2dCQUVGLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUIsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ04sSUFBSSxFQUFFLFVBQVUsQ0FBQyxjQUFjO2dCQUMvQixPQUFPLEVBQUUsVUFBVTthQUN0QixDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3JvY29IdG1sT3B0aW9ucyB9IGZyb20gJy4uL29wdGlvbnMnO1xuaW1wb3J0IHsgQW5ndWxhck1hdGVyaWFsVGFibGVNZXRob2RzIH0gZnJvbSAnLi9Bbmd1bGFyTWF0ZXJpYWxUYWJsZU1ldGhvZHMnO1xuaW1wb3J0IHsgQm9vdHN0cmFwVGFibGVNZXRob2RzIH0gZnJvbSAnLi9Cb290c3RyYXBUYWJsZU1ldGhvZHMnO1xuaW1wb3J0IHsgSHRtbEV4dHJhY3Rpb25NZXRob2RzIH0gZnJvbSAnLi9IdG1sRXh0cmFjdGlvbk1ldGhvZHMnO1xuaW1wb3J0IHsgSW50ZXJmYWNlQmxvY2sgfSBmcm9tIFwiLi9JbnRlcmZhY2VCbG9ja1wiO1xuaW1wb3J0IHsgVGV4dFNpbXBsZU1ldGhvZHMgfSBmcm9tICcuL1RleHRTaW1wbGVNZXRob2RzJztcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlQXBpUmVzcG9uc2Uge1xuICAgIGlzU3VjY2VlZGVkOiBib29sZWFuO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUhlYWRlckRhdGF7XG4gICAgdHlwZTogXCJ0YWJsZS1oZWFkZXJcIjtcbiAgICBjb2x1bW5zOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZVJvd0NvbHVtbkRhdGEge1xuICAgIHR5cGU6IFwidGFibGUtcm93LWNvbHVtbi1kYXRhXCI7XG4gICAgZGF0YToge1xuICAgICAgICB0ZXh0OiBzdHJpbmc7XG4gICAgICAgIGNoaWxkcmVuOiBJbnRlcmZhY2VCbG9ja1tdO1xuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZVJvd0RhdGEge1xuICAgIHR5cGU6IFwidGFibGUtcm93LWNvbHVtblwiO1xuICAgIGNvbHVtbnM6IFRhYmxlUm93Q29sdW1uRGF0YVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlRGF0YXtcbiAgICBoZWFkZXI6IFRhYmxlSGVhZGVyRGF0YSxcbiAgICByb3dzOiBUYWJsZVJvd0RhdGFbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlVGFnRGF0YXtcbiAgICB0eXBlOiBcInRhYmxlXCI7XG4gICAgZGF0YTogVGFibGVEYXRhO1xufVxuXG5leHBvcnQgY2xhc3MgVGFibGVUeXBlcyB7XG4gICAgc3RhdGljIHJlYWRvbmx5IFRhYmxlUm93Q29sdW1uRGF0YSA9IFwidGFibGUtcm93LWNvbHVtbi1kYXRhXCI7XG4gICAgc3RhdGljIHJlYWRvbmx5IFRhYmxlID0gXCJ0YWJsZVwiO1xuICAgIHN0YXRpYyByZWFkb25seSBUYWJsZVJvd0NvbHVtbiA9IFwidGFibGUtcm93LWNvbHVtblwiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJNYXRlcmlhbFRhYmxlRGF0YSB7XG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdO1xuICBkYXRhOiBvYmplY3RbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlTWV0aG9kcyB7XG5cbiAgICBzdGF0aWMgZ2V0VGFibGVGcm9tSHRtbFRhZyh0YWJsZVRhZzogSFRNTFRhYmxlRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykge1xuICAgICAgICBsZXQgdGFibGVEYXRhIDogVGFibGVEYXRhID0ge1xuICAgICAgICAgICAgaGVhZGVyOiBUYWJsZU1ldGhvZHMuZ2V0SGVhZGVyKHRhYmxlVGFnKSxcbiAgICAgICAgICAgIHJvd3M6IFRhYmxlTWV0aG9kcy5nZXRUYWJsZVJvd3ModGFibGVUYWcsIG9wdGlvbnMpXG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHR5cGU6IFRhYmxlVHlwZXMuVGFibGUsXG4gICAgICAgICAgICBkYXRhOiB0YWJsZURhdGEsXG4gICAgICAgICAgICB2YWxpZGF0aW9uUmVzdWx0OiB0aGlzLmNoZWNrVGFibGUodGFibGVEYXRhKSxcbiAgICAgICAgICAgIGJvb3RzdHJhcEh0bWw6IFwiXCJcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKCFyZXN1bHQudmFsaWRhdGlvblJlc3VsdCl7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdC5ib290c3RyYXBIdG1sID0gQm9vdHN0cmFwVGFibGVNZXRob2RzLkJ1aWxkVGFibGUocmVzdWx0LmRhdGEpO1xuXG4gICAgICAgIHZhciBhbmd1bGFyTWF0ZXJpYWxUYWJsZURhdGFDaGVjayA9IEFuZ3VsYXJNYXRlcmlhbFRhYmxlTWV0aG9kcy5jaGVja0FuZ3VsYXJNYXRlcmlhbFRhYmxlRGF0YSh0YWJsZURhdGEpO1xuXG4gICAgICAgIGlmICghYW5ndWxhck1hdGVyaWFsVGFibGVEYXRhQ2hlY2suaXNTdWNjZWVkZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgICAgIGFuZ3VsYXJNYXRlcmlhbFRhYmxlRGF0YUNoZWNrXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgIGFuZ3VsYXJNYXRlcmlhbFRhYmxlRGF0YUNoZWNrLFxuICAgICAgICAgICAgaHRtbDogdGFibGVUYWcub3V0ZXJIVE1MLFxuICAgICAgICAgICAgYW5ndWxhck1hdGVyaWFsVGFibGVEYXRhOiBBbmd1bGFyTWF0ZXJpYWxUYWJsZU1ldGhvZHMuZ2V0QW5ndWxhck1hdGVyaWFsVGFibGVEYXRhKHRhYmxlRGF0YS5oZWFkZXIuY29sdW1ucywgdGFibGVEYXRhLnJvd3MpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHN0YXRpYyBjaGVja1RhYmxlKHRhYmxlRGF0YTogVGFibGVEYXRhKSA6IEJhc2VBcGlSZXNwb25zZXtcblxuICAgICAgICBsZXQgcm93cyA9IHRhYmxlRGF0YS5yb3dzO1xuXG4gICAgICAgIGxldCBwcmV2Um93Q291bnQgPSAtMTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSByb3dzW2ldO1xuXG4gICAgICAgICAgICBpZiAocm93LmNvbHVtbnMubGVuZ3RoICE9PSBwcmV2Um93Q291bnQgJiYgcHJldlJvd0NvdW50ICE9IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaXNTdWNjZWVkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBg0J7RiNC40LHQutCwINC/0YDQuCDQvtCx0YDQsNCx0L7RgtC60LUg0YDQsNC30LzQtdGC0LrQuCDRgtCw0LHQu9C40YbRiy4gYFxuICAgICAgICAgICAgICAgICAgICAgICAgKyBg0JrQvtC70LjRh9C10YHRgtCy0L4g0LrQvtC70L7QvdC+0Log0LIg0LrQsNC20LTQvtC5INGB0YLRgNC+0LrQtSDRgtCw0LHQu9C40YbRiyDQtNC+0LvQttC90L4g0YHQvtC+0YLQstC10YHRgtCy0L7QstCw0YLRjCDQtNGA0YPQsyDQtNGA0YPQs9GDLiBgXG4gICAgICAgICAgICAgICAgICAgICAgICArIGDQkiDRgdGC0YDQvtC60LUg0YLQsNCx0LvQuNGG0Ysg4oSWJHtpICsgMX0g0LrQvtC70LjRh9C10YHRgtCy0L4g0LrQvtC70L7QvdC+0LogPSAke3Jvdy5jb2x1bW5zLmxlbmd0aH0sINCwINCyINGB0YLRgNC+0LrQtSDQstGL0YjQtSAke3ByZXZSb3dDb3VudH0uYFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmV2Um93Q291bnQgPSByb3cuY29sdW1ucy5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXNTdWNjZWVkZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBcIk9rXCJcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgc3RhdGljIGdldEhlYWRlcih0YWJsZVRhZzogSFRNTFRhYmxlRWxlbWVudCkgOiBUYWJsZUhlYWRlckRhdGEge1xuICAgICAgICBsZXQgaGVhZGVyID0gdGFibGVUYWcudEhlYWQ7XG5cbiAgICAgICAgaWYoaGVhZGVyID09PSBudWxsKXtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHRyID0gaGVhZGVyLmNoaWxkcmVuLml0ZW0oMCk7XG5cbiAgICAgICAgbGV0IGhlYWRlckNvbHVtbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0ci5jaGlsZHJlbi5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgY29uc3QgakVsZW1lbnQgPSB0ci5jaGlsZHJlbi5pdGVtKGopIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgICAgICBoZWFkZXJDb2x1bW5zLnB1c2goakVsZW1lbnQuaW5uZXJIVE1MKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcInRhYmxlLWhlYWRlclwiLFxuICAgICAgICAgICAgY29sdW1uczogaGVhZGVyQ29sdW1uc1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRUYWJsZVJvd3ModGFibGVUYWc6IEhUTUxUYWJsZUVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpOiBBcnJheTxUYWJsZVJvd0RhdGE+IHtcbiAgICAgICAgbGV0IHRCb2R5ID0gdGFibGVUYWcudEJvZGllcy5pdGVtKDApO1xuXG4gICAgICAgIGxldCByb3dzOiBUYWJsZVJvd0RhdGFbXSA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdEJvZHkuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGlFbGVtZW50ID0gdEJvZHkuY2hpbGRyZW4uaXRlbShpKTtcblxuICAgICAgICAgICAgbGV0IHJvd0NvbHVtbnM6IFRhYmxlUm93Q29sdW1uRGF0YVtdID0gW107XG5cbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBqRWxlbWVudCA9IGlFbGVtZW50LmNoaWxkcmVuLml0ZW0oaikgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBIdG1sRXh0cmFjdGlvbk1ldGhvZHMudHJhbnNmb3JtSHRtbEVsZW1lbnRUb0Jsb2NrcyhqRWxlbWVudCwgb3B0aW9ucyk7XG5cbiAgICAgICAgICAgICAgICBpZihjaGlsZHJlbi5sZW5ndGggPT09IDApe1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dFRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJwXCIpO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0VGFnLmlubmVySFRNTCA9IGpFbGVtZW50LmlubmVySFRNTDtcblxuICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dEVsZW0gPSBUZXh0U2ltcGxlTWV0aG9kcy5FeHRyYWN0VGV4dFRhZyh0ZXh0VGFnKTtcblxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKHRleHRFbGVtKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0OlRhYmxlUm93Q29sdW1uRGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogVGFibGVUeXBlcy5UYWJsZVJvd0NvbHVtbkRhdGEsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGpFbGVtZW50LmlubmVySFRNTCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcm93Q29sdW1ucy5wdXNoKHJlc3VsdCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJvd3MucHVzaCh7XG4gICAgICAgICAgICAgICAgdHlwZTogVGFibGVUeXBlcy5UYWJsZVJvd0NvbHVtbixcbiAgICAgICAgICAgICAgICBjb2x1bW5zOiByb3dDb2x1bW5zXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByb3dzO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL21vZGVscy9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVGFnSXRlbSB7XG4gIHRhZzogc3RyaW5nO1xuICBkaXNwbGF5VmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdG1sQm9keVRhZyB7XG4gIHRhZ0Rlc2NyaXB0aW9uOiBUYWdJdGVtO1xuICBpbm5lckh0bWw6IHN0cmluZztcbiAgYXR0cmlidXRlczogT2JqZWN0O1xuICBwcmVzZW50T3JFZGl0OiBib29sZWFuO1xufVxuIl19
|
|
@@ -3,7 +3,7 @@ import { spritesHash } from "../../sprites-hash";
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class SpriteIconPathPipe {
|
|
5
5
|
transform(id) {
|
|
6
|
-
return `assets/sprites/svg-sprite-${spritesHash.symbol}.svg#${id}`;
|
|
6
|
+
return `assets/sprites/symbol/croco-html-svg-sprite-${spritesHash.symbol}.svg#${id}`;
|
|
7
7
|
}
|
|
8
8
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SpriteIconPathPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
9
9
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: SpriteIconPathPipe, isStandalone: true, name: "spriteIconPath" }); }
|
|
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
15
15
|
standalone: true,
|
|
16
16
|
}]
|
|
17
17
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaXRlLWljb24tcGF0aC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL3BpcGVzL3Nwcml0ZS1pY29uLXBhdGgucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7O0FBTy9DLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsU0FBUyxDQUFDLEVBQWlCO1FBQ3pCLE9BQU8sK0NBQStDLFdBQVcsQ0FBQyxNQUFNLFFBQVEsRUFBRSxFQUFFLENBQUM7SUFDdkYsQ0FBQzs4R0FIVSxrQkFBa0I7NEdBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFKOUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge3Nwcml0ZXNIYXNofSBmcm9tIFwiLi4vLi4vc3ByaXRlcy1oYXNoXCI7XG5pbXBvcnQge1Nwcml0ZUlkc1R5cGV9IGZyb20gXCIuLi8uLi9zcHJpdGVzLWlkcy50eXBlXCI7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3Nwcml0ZUljb25QYXRoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU3ByaXRlSWNvblBhdGhQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShpZDogU3ByaXRlSWRzVHlwZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBhc3NldHMvc3ByaXRlcy9zeW1ib2wvY3JvY28taHRtbC1zdmctc3ByaXRlLSR7c3ByaXRlc0hhc2guc3ltYm9sfS5zdmcjJHtpZH1gO1xuICB9XG59XG4iXX0=
|