@talrace/ngx-noder 0.0.17 → 0.0.18
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 +72 -9
- package/assets/i18n/noder.en.json +93 -0
- package/assets/i18n/noder.es.json +93 -0
- package/assets/i18n/noder.ru.json +93 -0
- package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +21 -21
- package/esm2022/lib/apart-components/add-link-mobile/add-link-mobile.component.mjs +5 -3
- package/esm2022/lib/apart-components/confirm-dialog/confirm-dialog.component.mjs +5 -3
- package/esm2022/lib/apart-components/editor-search/editor-search-dialog.component.mjs +14 -3
- package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +17 -14
- package/esm2022/lib/apart-components/editor-title-mobile/editor-title-mobile.component.mjs +5 -3
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/color-picker/color-picker.component.mjs +3 -3
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +3 -3
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/format/format.component.mjs +3 -3
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/numbering/numbering.component.mjs +3 -3
- package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +4 -3
- package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component.mjs +4 -3
- package/esm2022/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.mjs +2 -2
- package/esm2022/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.mjs +18 -16
- package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar.module.mjs +8 -13
- package/esm2022/lib/apart-components/insert-table-mobile/insert-table-mobile.component.mjs +5 -3
- package/esm2022/lib/apart-components/text-format-mobile/text-format-mobile.component.mjs +14 -3
- package/esm2022/lib/editor/components/edges/edge.component.mjs +48 -6
- package/esm2022/lib/editor/components/edges/edges.mjs +7 -29
- package/esm2022/lib/editor/components/external-element/models/external-element.model.mjs +4 -4
- package/esm2022/lib/editor/components/table/overlay-menu/overlay-menu.component.mjs +29 -19
- package/esm2022/lib/editor/editor.module.mjs +28 -4
- package/esm2022/lib/editor/execution/editor.mjs +2 -1
- package/esm2022/lib/editor/gadgets/scrollbar.mjs +11 -6
- package/esm2022/lib/translate/noder-translate.loader.mjs +22 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/talrace-ngx-noder.mjs +241 -168
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/apart-components/add-link-dialog/add-link-dialog.component.d.ts +1 -10
- package/lib/apart-components/editor-title/editor-title.component.d.ts +5 -3
- package/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.d.ts +3 -1
- package/lib/apart-components/editor-toolbar/editor-toolbar.module.d.ts +23 -23
- package/lib/editor/components/edges/edge.component.d.ts +10 -3
- package/lib/editor/components/edges/edges.d.ts +0 -2
- package/lib/editor/components/external-element/models/external-element.model.d.ts +3 -3
- package/lib/editor/components/table/overlay-menu/overlay-menu.component.d.ts +3 -1
- package/lib/editor/editor.module.d.ts +2 -1
- package/lib/editor/gadgets/scrollbar.d.ts +1 -0
- package/lib/translate/noder-translate.loader.d.ts +11 -0
- package/package.json +3 -1
- package/public-api.d.ts +1 -0
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/heading/heading.component.mjs +0 -22
- package/lib/apart-components/editor-toolbar/components/buttons/heading/heading.component.d.ts +0 -8
|
@@ -7,6 +7,7 @@ import * as i3 from "@angular/common";
|
|
|
7
7
|
import * as i4 from "@angular/material/expansion";
|
|
8
8
|
import * as i5 from "@angular/material/icon";
|
|
9
9
|
import * as i6 from "@angular/material/menu";
|
|
10
|
+
import * as i7 from "@ngx-translate/core";
|
|
10
11
|
export class MenuDropdownsMobileComponent {
|
|
11
12
|
constructor(injector, editorService, toolbarCoreService) {
|
|
12
13
|
this.injector = injector;
|
|
@@ -15,10 +16,10 @@ export class MenuDropdownsMobileComponent {
|
|
|
15
16
|
this.elements = this.injector.get(EXTERNAL_ELEMENT_SERVICE).elements;
|
|
16
17
|
}
|
|
17
18
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuDropdownsMobileComponent, deps: [{ token: i0.Injector }, { token: i1.EditorService }, { token: i2.ToolbarCoreService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MenuDropdownsMobileComponent, selector: "app-nod-menu-dropdowns-mobile", ngImport: i0, template: "<ng-container\n *ngIf=\"{\n isViewOnly: editorService.isViewOnly$ | async\n } as data\">\n <mat-accordion>\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>File</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <button\n *ngIf=\"!data.isViewOnly\"\n id=\"menu-dropdowns-mobile-item-new\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.new(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-add-new\" />\n <span class=\"menu-item-text\">New</span>\n </div>\n </button>\n <button\n *ngIf=\"!data.isViewOnly\"\n id=\"menu-dropdowns-mobile-item-open-from\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.openFrom(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-open-from\" />\n <span class=\"menu-item-text\">Open From</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-save-as\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.saveAs(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-save\" />\n <span class=\"menu-item-text\">Save As</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-rename\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.rename(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-rename\" />\n <span class=\"menu-item-text\">Rename</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-print\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.print(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-print\" />\n <span class=\"menu-item-text\">Print</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-delete\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.delete(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-delete\" />\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n </div>\n </mat-expansion-panel>\n <ng-container *ngIf=\"!data.isViewOnly\">\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>Insert</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <button\n id=\"menu-dropdowns-mobile-item-image\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertImage(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-image\" />\n <span class=\"menu-item-text\">Image</span>\n </div>\n </button>\n <div class=\"composition-button\">\n <button\n id=\"menu-dropdowns-mobile-item-table\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertTable()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-table\" />\n Table\n </button>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </div>\n <div class=\"composition-button\">\n <button\n id=\"menu-dropdowns-mobile-item-link\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertLink()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-link-on\" />\n <span class=\"menu-item-text\">Link</span>\n </div>\n </button>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </div>\n <button\n *ngFor=\"let element of elements\"\n id=\"menu-dropdowns-mobile-item-{{ element.title }}\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertCustomElement(element); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"{{ element.icon }}\" />\n <span class=\"menu-item-text\">{{ element.name }}</span>\n </div>\n </button>\n <div class=\"composition-button hidden\">\n <button\n id=\"menu-dropdowns-mobile-item-headers-footers\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-headers-footers\" />\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </div>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>Layout</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <button\n id=\"menu-dropdowns-mobile-item-page-break\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertPageBreak(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-page-break\" />\n <span class=\"menu-item-text\">Page Break</span>\n </div>\n </button>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>Format</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <div class=\"composition-button\">\n <button\n id=\"menu-dropdowns-mobile-text-format\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.textFormat()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-text\" />\n <span class=\"menu-item-text\">Text Format</span>\n </div>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </button>\n </div>\n <div class=\"composition-button hidden\">\n <button\n id=\"menu-dropdowns-mobile-header-footer\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-headers-footers\" />\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </button>\n </div>\n </div>\n </mat-expansion-panel>\n </ng-container>\n </mat-accordion>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;padding:25px}mat-expansion-panel.mat-expansion-panel ::ng-deep{box-shadow:none;border-bottom-width:1px;border-bottom-style:solid}mat-expansion-panel.mat-expansion-panel ::ng-deep .mat-expansion-panel-body{padding:0 18px}mat-panel-description{margin:0;justify-content:flex-end}.mat-expansion-panel-spacing{margin:0}.mat-expansion-panel-header,.mat-expansion-panel-header.mat-expanded{height:48px;padding-right:10px}.mat-expansion-panel-header.mat-expanded .mat-expansion-panel-header-description .mat-icon{transform:rotate(180deg)}.heading-menu{display:inline-flex;width:100%}.menu-item-text{white-space:nowrap;align-self:center}.composition-button{display:flex;flex-direction:row;align-items:center;position:relative}.composition-icon{position:absolute;right:0;transform:rotate(270deg)}.hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i4.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i4.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MenuDropdownsMobileComponent, selector: "app-nod-menu-dropdowns-mobile", ngImport: i0, template: "<ng-container\n *ngIf=\"{\n isViewOnly: editorService.isViewOnly$ | async\n } as data\">\n <mat-accordion>\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>{{ 'NODER.LABEL.FILE' | translate }}</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <button\n *ngIf=\"!data.isViewOnly\"\n id=\"menu-dropdowns-mobile-item-new\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.new(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-add-new\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.NEW' | translate }}</span>\n </div>\n </button>\n <button\n *ngIf=\"!data.isViewOnly\"\n id=\"menu-dropdowns-mobile-item-open-from\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.openFrom(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-open-from\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.OPEN_FROM' | translate }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-save-as\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.saveAs(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-save\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.SAVE_AS' | translate }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-rename\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.rename(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-rename\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.RENAME' | translate }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-print\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.print(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-print\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.PRINT' | translate }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-delete\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.delete(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-delete\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.DELETE' | translate }}</span>\n </div>\n </button>\n </div>\n </mat-expansion-panel>\n <ng-container *ngIf=\"!data.isViewOnly\">\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>{{ 'NODER.LABEL.INSERT' | translate }}</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <button\n id=\"menu-dropdowns-mobile-item-image\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertImage(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-image\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.IMAGE' | translate }}</span>\n </div>\n </button>\n <div class=\"composition-button\">\n <button\n id=\"menu-dropdowns-mobile-item-table\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertTable()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-table\" />\n {{ 'NODER.LABEL.TABLE' | translate }}\n </button>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </div>\n <div class=\"composition-button\">\n <button\n id=\"menu-dropdowns-mobile-item-link\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertLink()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-link-on\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.LINK' | translate }}</span>\n </div>\n </button>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </div>\n <button\n *ngFor=\"let element of elements\"\n id=\"menu-dropdowns-mobile-item-{{ element.nameId }}\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertCustomElement(element); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"{{ element.icon }}\" />\n <span class=\"menu-item-text\">{{ element.nameTranslate | translate }}</span>\n </div>\n </button>\n <div class=\"composition-button hidden\">\n <button\n id=\"menu-dropdowns-mobile-item-headers-footers\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-headers-footers\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.HEADERS_AND_FOOTERS' | translate }}</span>\n </div>\n </button>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </div>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>{{ 'NODER.LABEL.LAYOUT' | translate }}</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <button\n id=\"menu-dropdowns-mobile-item-page-break\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertPageBreak(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-page-break\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.PAGE_BREAK' | translate }}</span>\n </div>\n </button>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>{{ 'NODER.LABEL.FORMAT' | translate }}</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <div class=\"composition-button\">\n <button\n id=\"menu-dropdowns-mobile-text-format\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.textFormat()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-text\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.TEXT_FORMAT' | translate }}</span>\n </div>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </button>\n </div>\n <div class=\"composition-button hidden\">\n <button\n id=\"menu-dropdowns-mobile-header-footer\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-headers-footers\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.HEADERS_AND_FOOTERS' | translate }}</span>\n </div>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </button>\n </div>\n </div>\n </mat-expansion-panel>\n </ng-container>\n </mat-accordion>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;padding:25px}mat-expansion-panel.mat-expansion-panel ::ng-deep{box-shadow:none;border-bottom-width:1px;border-bottom-style:solid}mat-expansion-panel.mat-expansion-panel ::ng-deep .mat-expansion-panel-body{padding:0 18px}mat-panel-description{margin:0;justify-content:flex-end}.mat-expansion-panel-spacing{margin:0}.mat-expansion-panel-header,.mat-expansion-panel-header.mat-expanded{height:48px;padding-right:10px}.mat-expansion-panel-header.mat-expanded .mat-expansion-panel-header-description .mat-icon{transform:rotate(180deg)}.heading-menu{display:inline-flex;width:100%}.menu-item-text{white-space:nowrap;align-self:center}.composition-button{display:flex;flex-direction:row;align-items:center;position:relative}.composition-icon{position:absolute;right:0;transform:rotate(270deg)}.hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i4.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i4.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
20
|
}
|
|
20
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuDropdownsMobileComponent, decorators: [{
|
|
21
22
|
type: Component,
|
|
22
|
-
args: [{ selector: 'app-nod-menu-dropdowns-mobile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngIf=\"{\n isViewOnly: editorService.isViewOnly$ | async\n } as data\">\n <mat-accordion>\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>File</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <button\n *ngIf=\"!data.isViewOnly\"\n id=\"menu-dropdowns-mobile-item-new\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.new(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-add-new\" />\n <span class=\"menu-item-text\">New</span>\n </div>\n </button>\n <button\n *ngIf=\"!data.isViewOnly\"\n id=\"menu-dropdowns-mobile-item-open-from\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.openFrom(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-open-from\" />\n <span class=\"menu-item-text\">Open From</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-save-as\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.saveAs(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-save\" />\n <span class=\"menu-item-text\">Save As</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-rename\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.rename(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-rename\" />\n <span class=\"menu-item-text\">Rename</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-print\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.print(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-print\" />\n <span class=\"menu-item-text\">Print</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-delete\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.delete(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-delete\" />\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n </div>\n </mat-expansion-panel>\n <ng-container *ngIf=\"!data.isViewOnly\">\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>Insert</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <button\n id=\"menu-dropdowns-mobile-item-image\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertImage(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-image\" />\n <span class=\"menu-item-text\">Image</span>\n </div>\n </button>\n <div class=\"composition-button\">\n <button\n id=\"menu-dropdowns-mobile-item-table\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertTable()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-table\" />\n Table\n </button>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </div>\n <div class=\"composition-button\">\n <button\n id=\"menu-dropdowns-mobile-item-link\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertLink()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-link-on\" />\n <span class=\"menu-item-text\">Link</span>\n </div>\n </button>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </div>\n <button\n *ngFor=\"let element of elements\"\n id=\"menu-dropdowns-mobile-item-{{ element.title }}\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertCustomElement(element); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"{{ element.icon }}\" />\n <span class=\"menu-item-text\">{{ element.name }}</span>\n </div>\n </button>\n <div class=\"composition-button hidden\">\n <button\n id=\"menu-dropdowns-mobile-item-headers-footers\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-headers-footers\" />\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </div>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>Layout</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <button\n id=\"menu-dropdowns-mobile-item-page-break\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertPageBreak(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-page-break\" />\n <span class=\"menu-item-text\">Page Break</span>\n </div>\n </button>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>Format</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <div class=\"composition-button\">\n <button\n id=\"menu-dropdowns-mobile-text-format\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.textFormat()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-text\" />\n <span class=\"menu-item-text\">Text Format</span>\n </div>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </button>\n </div>\n <div class=\"composition-button hidden\">\n <button\n id=\"menu-dropdowns-mobile-header-footer\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-headers-footers\" />\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </button>\n </div>\n </div>\n </mat-expansion-panel>\n </ng-container>\n </mat-accordion>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;padding:25px}mat-expansion-panel.mat-expansion-panel ::ng-deep{box-shadow:none;border-bottom-width:1px;border-bottom-style:solid}mat-expansion-panel.mat-expansion-panel ::ng-deep .mat-expansion-panel-body{padding:0 18px}mat-panel-description{margin:0;justify-content:flex-end}.mat-expansion-panel-spacing{margin:0}.mat-expansion-panel-header,.mat-expansion-panel-header.mat-expanded{height:48px;padding-right:10px}.mat-expansion-panel-header.mat-expanded .mat-expansion-panel-header-description .mat-icon{transform:rotate(180deg)}.heading-menu{display:inline-flex;width:100%}.menu-item-text{white-space:nowrap;align-self:center}.composition-button{display:flex;flex-direction:row;align-items:center;position:relative}.composition-icon{position:absolute;right:0;transform:rotate(270deg)}.hidden{display:none}\n"] }]
|
|
23
|
+
args: [{ selector: 'app-nod-menu-dropdowns-mobile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngIf=\"{\n isViewOnly: editorService.isViewOnly$ | async\n } as data\">\n <mat-accordion>\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>{{ 'NODER.LABEL.FILE' | translate }}</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <button\n *ngIf=\"!data.isViewOnly\"\n id=\"menu-dropdowns-mobile-item-new\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.new(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-add-new\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.NEW' | translate }}</span>\n </div>\n </button>\n <button\n *ngIf=\"!data.isViewOnly\"\n id=\"menu-dropdowns-mobile-item-open-from\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.openFrom(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-open-from\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.OPEN_FROM' | translate }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-save-as\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.saveAs(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-save\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.SAVE_AS' | translate }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-rename\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.rename(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-rename\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.RENAME' | translate }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-print\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.print(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-print\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.PRINT' | translate }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-mobile-item-delete\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.delete(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-delete\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.DELETE' | translate }}</span>\n </div>\n </button>\n </div>\n </mat-expansion-panel>\n <ng-container *ngIf=\"!data.isViewOnly\">\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>{{ 'NODER.LABEL.INSERT' | translate }}</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <button\n id=\"menu-dropdowns-mobile-item-image\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertImage(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-image\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.IMAGE' | translate }}</span>\n </div>\n </button>\n <div class=\"composition-button\">\n <button\n id=\"menu-dropdowns-mobile-item-table\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertTable()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-table\" />\n {{ 'NODER.LABEL.TABLE' | translate }}\n </button>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </div>\n <div class=\"composition-button\">\n <button\n id=\"menu-dropdowns-mobile-item-link\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertLink()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-link-on\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.LINK' | translate }}</span>\n </div>\n </button>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </div>\n <button\n *ngFor=\"let element of elements\"\n id=\"menu-dropdowns-mobile-item-{{ element.nameId }}\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertCustomElement(element); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"{{ element.icon }}\" />\n <span class=\"menu-item-text\">{{ element.nameTranslate | translate }}</span>\n </div>\n </button>\n <div class=\"composition-button hidden\">\n <button\n id=\"menu-dropdowns-mobile-item-headers-footers\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-headers-footers\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.HEADERS_AND_FOOTERS' | translate }}</span>\n </div>\n </button>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </div>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>{{ 'NODER.LABEL.LAYOUT' | translate }}</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <button\n id=\"menu-dropdowns-mobile-item-page-break\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.insertPageBreak(); toolbarCoreService.reset()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-page-break\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.PAGE_BREAK' | translate }}</span>\n </div>\n </button>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel hideToggle>\n <mat-expansion-panel-header>\n <mat-panel-title>{{ 'NODER.LABEL.FORMAT' | translate }}</mat-panel-title>\n <mat-panel-description>\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-content\">\n <div class=\"composition-button\">\n <button\n id=\"menu-dropdowns-mobile-text-format\"\n mat-menu-item\n (click)=\"toolbarCoreService.actions.textFormat()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-text\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.TEXT_FORMAT' | translate }}</span>\n </div>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </button>\n </div>\n <div class=\"composition-button hidden\">\n <button\n id=\"menu-dropdowns-mobile-header-footer\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-headers-footers\" />\n <span class=\"menu-item-text\">{{ 'NODER.LABEL.HEADERS_AND_FOOTERS' | translate }}</span>\n </div>\n <mat-icon\n class=\"composition-icon\"\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-dropdown\" />\n </button>\n </div>\n </div>\n </mat-expansion-panel>\n </ng-container>\n </mat-accordion>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;padding:25px}mat-expansion-panel.mat-expansion-panel ::ng-deep{box-shadow:none;border-bottom-width:1px;border-bottom-style:solid}mat-expansion-panel.mat-expansion-panel ::ng-deep .mat-expansion-panel-body{padding:0 18px}mat-panel-description{margin:0;justify-content:flex-end}.mat-expansion-panel-spacing{margin:0}.mat-expansion-panel-header,.mat-expansion-panel-header.mat-expanded{height:48px;padding-right:10px}.mat-expansion-panel-header.mat-expanded .mat-expansion-panel-header-description .mat-icon{transform:rotate(180deg)}.heading-menu{display:inline-flex;width:100%}.menu-item-text{white-space:nowrap;align-self:center}.composition-button{display:flex;flex-direction:row;align-items:center;position:relative}.composition-icon{position:absolute;right:0;transform:rotate(270deg)}.hidden{display:none}\n"] }]
|
|
23
24
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.EditorService }, { type: i2.ToolbarCoreService }] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kcm9wZG93bnMtbW9iaWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2FwYXJ0LWNvbXBvbmVudHMvZWRpdG9yLXRvb2xiYXIvY29tcG9uZW50cy9tZW51LWRyb3Bkb3ducy1tb2JpbGUvbWVudS1kcm9wZG93bnMtbW9iaWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2FwYXJ0LWNvbXBvbmVudHMvZWRpdG9yLXRvb2xiYXIvY29tcG9uZW50cy9tZW51LWRyb3Bkb3ducy1tb2JpbGUvbWVudS1kcm9wZG93bnMtbW9iaWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7QUFHN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7Ozs7Ozs7O0FBVWxILE1BQU0sT0FBTyw0QkFBNEI7SUFHckMsWUFBb0IsUUFBa0IsRUFBUyxhQUE0QixFQUFTLGtCQUFzQztRQUF0RyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBUyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RILElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDekUsQ0FBQzsrR0FMUSw0QkFBNEI7bUdBQTVCLDRCQUE0QixxRUNiekMsd29YQWdQQTs7NEZEbk9hLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDSSwrQkFBK0IsbUJBR3hCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZWRpdG9yL2ludGVyYWN0aW9uL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEVYVEVSTkFMX0VMRU1FTlRfU0VSVklDRSB9IGZyb20gJy4uLy4uLy4uLy4uL2VkaXRvci9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvZXh0ZXJuYWwtZWxlbWVudHMuY29uc3QnO1xuaW1wb3J0IHsgRXh0ZXJuYWxFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9lZGl0b3IvY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L21vZGVscy9leHRlcm5hbC1lbGVtZW50Lm1vZGVsJztcbmltcG9ydCB7IFRvb2xiYXJDb3JlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy90b29sYmFyLWNvcmUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLW5vZC1tZW51LWRyb3Bkb3ducy1tb2JpbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnbWVudS1kcm9wZG93bnMtbW9iaWxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnbWVudS1kcm9wZG93bnMtbW9iaWxlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTWVudURyb3Bkb3duc01vYmlsZUNvbXBvbmVudCB7XG4gICAgcmVhZG9ubHkgZWxlbWVudHM6IEV4dGVybmFsRWxlbWVudE1vZGVsW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHVibGljIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UsIHB1YmxpYyB0b29sYmFyQ29yZVNlcnZpY2U6IFRvb2xiYXJDb3JlU2VydmljZSkge1xuICAgICAgICB0aGlzLmVsZW1lbnRzID0gdGhpcy5pbmplY3Rvci5nZXQoRVhURVJOQUxfRUxFTUVOVF9TRVJWSUNFKS5lbGVtZW50cztcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJ7XG4gICAgICAgIGlzVmlld09ubHk6IGVkaXRvclNlcnZpY2UuaXNWaWV3T25seSQgfCBhc3luY1xuICAgIH0gYXMgZGF0YVwiPlxuICAgIDxtYXQtYWNjb3JkaW9uPlxuICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCBoaWRlVG9nZ2xlPlxuICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+RmlsZTwvbWF0LXBhbmVsLXRpdGxlPlxuICAgICAgICAgICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWFycm93LWRyb3Bkb3duXCIgLz5cbiAgICAgICAgICAgICAgICA8L21hdC1wYW5lbC1kZXNjcmlwdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWRhdGEuaXNWaWV3T25seVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLWl0ZW0tbmV3XCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9vbGJhckNvcmVTZXJ2aWNlLmFjdGlvbnMubmV3KCk7IHRvb2xiYXJDb3JlU2VydmljZS5yZXNldCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tYWRkLW5ld1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+TmV3PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWRhdGEuaXNWaWV3T25seVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLWl0ZW0tb3Blbi1mcm9tXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9vbGJhckNvcmVTZXJ2aWNlLmFjdGlvbnMub3BlbkZyb20oKTsgdG9vbGJhckNvcmVTZXJ2aWNlLnJlc2V0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1vcGVuLWZyb21cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPk9wZW4gRnJvbTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1vYmlsZS1pdGVtLXNhdmUtYXNcIlxuICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b29sYmFyQ29yZVNlcnZpY2UuYWN0aW9ucy5zYXZlQXMoKTsgdG9vbGJhckNvcmVTZXJ2aWNlLnJlc2V0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1zYXZlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5TYXZlIEFzPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLWl0ZW0tcmVuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9vbGJhckNvcmVTZXJ2aWNlLmFjdGlvbnMucmVuYW1lKCk7IHRvb2xiYXJDb3JlU2VydmljZS5yZXNldCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tcmVuYW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5SZW5hbWU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tb2JpbGUtaXRlbS1wcmludFwiXG4gICAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvb2xiYXJDb3JlU2VydmljZS5hY3Rpb25zLnByaW50KCk7IHRvb2xiYXJDb3JlU2VydmljZS5yZXNldCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tcHJpbnRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPlByaW50PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLWl0ZW0tZGVsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9vbGJhckNvcmVTZXJ2aWNlLmFjdGlvbnMuZGVsZXRlKCk7IHRvb2xiYXJDb3JlU2VydmljZS5yZXNldCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZGVsZXRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5EZWxldGU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkYXRhLmlzVmlld09ubHlcIj5cbiAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsIGhpZGVUb2dnbGU+XG4gICAgICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPkluc2VydDwvbWF0LXBhbmVsLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1hcnJvdy1kcm9wZG93blwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuc2lvbi1wYW5lbC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLWl0ZW0taW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvb2xiYXJDb3JlU2VydmljZS5hY3Rpb25zLmluc2VydEltYWdlKCk7IHRvb2xiYXJDb3JlU2VydmljZS5yZXNldCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWltYWdlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+SW1hZ2U8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wb3NpdGlvbi1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1vYmlsZS1pdGVtLXRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvb2xiYXJDb3JlU2VydmljZS5hY3Rpb25zLmluc2VydFRhYmxlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tdGFibGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29tcG9zaXRpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1hcnJvdy1kcm9wZG93blwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tcG9zaXRpb24tYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tb2JpbGUtaXRlbS1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvb2xiYXJDb3JlU2VydmljZS5hY3Rpb25zLmluc2VydExpbmsoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tbGluay1vblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5MaW5rPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbXBvc2l0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tYXJyb3ctZHJvcGRvd25cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgZWxlbWVudHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tb2JpbGUtaXRlbS17eyBlbGVtZW50LnRpdGxlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b29sYmFyQ29yZVNlcnZpY2UuYWN0aW9ucy5pbnNlcnRDdXN0b21FbGVtZW50KGVsZW1lbnQpOyB0b29sYmFyQ29yZVNlcnZpY2UucmVzZXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwie3sgZWxlbWVudC5pY29uIH19XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+e3sgZWxlbWVudC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tcG9zaXRpb24tYnV0dG9uIGhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLWl0ZW0taGVhZGVycy1mb290ZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24taGVhZGVycy1mb290ZXJzXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPkhlYWRlcnMgJiBGb290ZXJzPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbXBvc2l0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tYXJyb3ctZHJvcGRvd25cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbiAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsIGhpZGVUb2dnbGU+XG4gICAgICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPkxheW91dDwvbWF0LXBhbmVsLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1hcnJvdy1kcm9wZG93blwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuc2lvbi1wYW5lbC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLWl0ZW0tcGFnZS1icmVha1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9vbGJhckNvcmVTZXJ2aWNlLmFjdGlvbnMuaW5zZXJ0UGFnZUJyZWFrKCk7IHRvb2xiYXJDb3JlU2VydmljZS5yZXNldCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLXBhZ2UtYnJlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5QYWdlIEJyZWFrPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxuICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwgaGlkZVRvZ2dsZT5cbiAgICAgICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+Rm9ybWF0PC9tYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWFycm93LWRyb3Bkb3duXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbXBvc2l0aW9uLWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLXRleHQtZm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvb2xiYXJDb3JlU2VydmljZS5hY3Rpb25zLnRleHRGb3JtYXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tdGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5UZXh0IEZvcm1hdDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb21wb3NpdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tYXJyb3ctZHJvcGRvd25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tcG9zaXRpb24tYnV0dG9uIGhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLWhlYWRlci1mb290ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1oZWFkZXJzLWZvb3RlcnNcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+SGVhZGVycyAmIEZvb3RlcnM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29tcG9zaXRpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWFycm93LWRyb3Bkb3duXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtYWNjb3JkaW9uPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kcm9wZG93bnMtbW9iaWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2FwYXJ0LWNvbXBvbmVudHMvZWRpdG9yLXRvb2xiYXIvY29tcG9uZW50cy9tZW51LWRyb3Bkb3ducy1tb2JpbGUvbWVudS1kcm9wZG93bnMtbW9iaWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2FwYXJ0LWNvbXBvbmVudHMvZWRpdG9yLXRvb2xiYXIvY29tcG9uZW50cy9tZW51LWRyb3Bkb3ducy1tb2JpbGUvbWVudS1kcm9wZG93bnMtbW9iaWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7QUFHN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7Ozs7Ozs7OztBQVVsSCxNQUFNLE9BQU8sNEJBQTRCO0lBR3JDLFlBQW9CLFFBQWtCLEVBQVMsYUFBNEIsRUFBUyxrQkFBc0M7UUFBdEcsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0SCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3pFLENBQUM7K0dBTFEsNEJBQTRCO21HQUE1Qiw0QkFBNEIscUVDYnpDLGtzWUFnUEE7OzRGRG5PYSw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0ksK0JBQStCLG1CQUd4Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2VkaXRvci9pbnRlcmFjdGlvbi9lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBFWFRFUk5BTF9FTEVNRU5UX1NFUlZJQ0UgfSBmcm9tICcuLi8uLi8uLi8uLi9lZGl0b3IvY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L2V4dGVybmFsLWVsZW1lbnRzLmNvbnN0JztcbmltcG9ydCB7IEV4dGVybmFsRWxlbWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vZWRpdG9yL2NvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9tb2RlbHMvZXh0ZXJuYWwtZWxlbWVudC5tb2RlbCc7XG5pbXBvcnQgeyBUb29sYmFyQ29yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvdG9vbGJhci1jb3JlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1ub2QtbWVudS1kcm9wZG93bnMtbW9iaWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ21lbnUtZHJvcGRvd25zLW1vYmlsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ21lbnUtZHJvcGRvd25zLW1vYmlsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVEcm9wZG93bnNNb2JpbGVDb21wb25lbnQge1xuICAgIHJlYWRvbmx5IGVsZW1lbnRzOiBFeHRlcm5hbEVsZW1lbnRNb2RlbFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHB1YmxpYyBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlLCBwdWJsaWMgdG9vbGJhckNvcmVTZXJ2aWNlOiBUb29sYmFyQ29yZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEVYVEVSTkFMX0VMRU1FTlRfU0VSVklDRSkuZWxlbWVudHM7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwie1xuICAgICAgICBpc1ZpZXdPbmx5OiBlZGl0b3JTZXJ2aWNlLmlzVmlld09ubHkkIHwgYXN5bmNcbiAgICB9IGFzIGRhdGFcIj5cbiAgICA8bWF0LWFjY29yZGlvbj5cbiAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwgaGlkZVRvZ2dsZT5cbiAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPnt7ICdOT0RFUi5MQUJFTC5GSUxFJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LXBhbmVsLXRpdGxlPlxuICAgICAgICAgICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWFycm93LWRyb3Bkb3duXCIgLz5cbiAgICAgICAgICAgICAgICA8L21hdC1wYW5lbC1kZXNjcmlwdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWRhdGEuaXNWaWV3T25seVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLWl0ZW0tbmV3XCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9vbGJhckNvcmVTZXJ2aWNlLmFjdGlvbnMubmV3KCk7IHRvb2xiYXJDb3JlU2VydmljZS5yZXNldCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tYWRkLW5ld1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+e3sgJ05PREVSLkxBQkVMLk5FVycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZGF0YS5pc1ZpZXdPbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tb2JpbGUtaXRlbS1vcGVuLWZyb21cIlxuICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b29sYmFyQ29yZVNlcnZpY2UuYWN0aW9ucy5vcGVuRnJvbSgpOyB0b29sYmFyQ29yZVNlcnZpY2UucmVzZXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLW9wZW4tZnJvbVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+e3sgJ05PREVSLkxBQkVMLk9QRU5fRlJPTScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tb2JpbGUtaXRlbS1zYXZlLWFzXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9vbGJhckNvcmVTZXJ2aWNlLmFjdGlvbnMuc2F2ZUFzKCk7IHRvb2xiYXJDb3JlU2VydmljZS5yZXNldCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tc2F2ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+e3sgJ05PREVSLkxBQkVMLlNBVkVfQVMnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLWl0ZW0tcmVuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9vbGJhckNvcmVTZXJ2aWNlLmFjdGlvbnMucmVuYW1lKCk7IHRvb2xiYXJDb3JlU2VydmljZS5yZXNldCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tcmVuYW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj57eyAnTk9ERVIuTEFCRUwuUkVOQU1FJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1vYmlsZS1pdGVtLXByaW50XCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9vbGJhckNvcmVTZXJ2aWNlLmFjdGlvbnMucHJpbnQoKTsgdG9vbGJhckNvcmVTZXJ2aWNlLnJlc2V0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1wcmludFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+e3sgJ05PREVSLkxBQkVMLlBSSU5UJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1vYmlsZS1pdGVtLWRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvb2xiYXJDb3JlU2VydmljZS5hY3Rpb25zLmRlbGV0ZSgpOyB0b29sYmFyQ29yZVNlcnZpY2UucmVzZXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWRlbGV0ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+e3sgJ05PREVSLkxBQkVMLkRFTEVURScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkYXRhLmlzVmlld09ubHlcIj5cbiAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsIGhpZGVUb2dnbGU+XG4gICAgICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPnt7ICdOT0RFUi5MQUJFTC5JTlNFUlQnIHwgdHJhbnNsYXRlIH19PC9tYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWFycm93LWRyb3Bkb3duXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tb2JpbGUtaXRlbS1pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9vbGJhckNvcmVTZXJ2aWNlLmFjdGlvbnMuaW5zZXJ0SW1hZ2UoKTsgdG9vbGJhckNvcmVTZXJ2aWNlLnJlc2V0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24taW1hZ2VcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj57eyAnTk9ERVIuTEFCRUwuSU1BR0UnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tcG9zaXRpb24tYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tb2JpbGUtaXRlbS10YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b29sYmFyQ29yZVNlcnZpY2UuYWN0aW9ucy5pbnNlcnRUYWJsZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLXRhYmxlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnTk9ERVIuTEFCRUwuVEFCTEUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29tcG9zaXRpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1hcnJvdy1kcm9wZG93blwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tcG9zaXRpb24tYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tb2JpbGUtaXRlbS1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvb2xiYXJDb3JlU2VydmljZS5hY3Rpb25zLmluc2VydExpbmsoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tbGluay1vblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj57eyAnTk9ERVIuTEFCRUwuTElOSycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29tcG9zaXRpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1hcnJvdy1kcm9wZG93blwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBlbGVtZW50c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1vYmlsZS1pdGVtLXt7IGVsZW1lbnQubmFtZUlkIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b29sYmFyQ29yZVNlcnZpY2UuYWN0aW9ucy5pbnNlcnRDdXN0b21FbGVtZW50KGVsZW1lbnQpOyB0b29sYmFyQ29yZVNlcnZpY2UucmVzZXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwie3sgZWxlbWVudC5pY29uIH19XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+e3sgZWxlbWVudC5uYW1lVHJhbnNsYXRlIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tcG9zaXRpb24tYnV0dG9uIGhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLWl0ZW0taGVhZGVycy1mb290ZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24taGVhZGVycy1mb290ZXJzXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPnt7ICdOT0RFUi5MQUJFTC5IRUFERVJTX0FORF9GT09URVJTJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb21wb3NpdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWFycm93LWRyb3Bkb3duXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XG4gICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCBoaWRlVG9nZ2xlPlxuICAgICAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1wYW5lbC10aXRsZT57eyAnTk9ERVIuTEFCRUwuTEFZT1VUJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LXBhbmVsLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1hcnJvdy1kcm9wZG93blwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuc2lvbi1wYW5lbC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLWl0ZW0tcGFnZS1icmVha1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9vbGJhckNvcmVTZXJ2aWNlLmFjdGlvbnMuaW5zZXJ0UGFnZUJyZWFrKCk7IHRvb2xiYXJDb3JlU2VydmljZS5yZXNldCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLXBhZ2UtYnJlYWtcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj57eyAnTk9ERVIuTEFCRUwuUEFHRV9CUkVBSycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XG4gICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCBoaWRlVG9nZ2xlPlxuICAgICAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1wYW5lbC10aXRsZT57eyAnTk9ERVIuTEFCRUwuRk9STUFUJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LXBhbmVsLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1hcnJvdy1kcm9wZG93blwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuc2lvbi1wYW5lbC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wb3NpdGlvbi1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1vYmlsZS10ZXh0LWZvcm1hdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b29sYmFyQ29yZVNlcnZpY2UuYWN0aW9ucy50ZXh0Rm9ybWF0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLXRleHRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+e3sgJ05PREVSLkxBQkVMLlRFWFRfRk9STUFUJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb21wb3NpdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tYXJyb3ctZHJvcGRvd25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tcG9zaXRpb24tYnV0dG9uIGhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbW9iaWxlLWhlYWRlci1mb290ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1oZWFkZXJzLWZvb3RlcnNcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+e3sgJ05PREVSLkxBQkVMLkhFQURFUlNfQU5EX0ZPT1RFUlMnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbXBvc2l0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1hcnJvdy1kcm9wZG93blwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LWFjY29yZGlvbj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -53,11 +53,11 @@ export class ToolbarActionsComponent extends BaseToolbarComponent {
|
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
55
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarActionsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CustomIconService }, { token: i0.Injector }, { token: i2.EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolbarActionsComponent, selector: "app-nod-toolbar-actions", viewQueries: [{ propertyName: "tableInsertMenu", first: true, predicate: ["tableInsert"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"{ isViewOnly: editorService.isViewOnly$ | async } as data\">\n <app-nod-undo-redo\n [canUndo]=\"canUndo\"\n [canRedo]=\"canRedo\"\n (undo)=\"undo.emit()\"\n (redo)=\"redo.emit()\" />\n <app-nod-print (print)=\"print.emit()\" />\n <div class=\"separator\"></div>\n <app-nod-font\n [isDisabled]=\"data.isViewOnly\"\n [styles]=\"styles\"\n (selectFont)=\"onApplyFontFamily($event)\" />\n <div class=\"separator\"></div>\n <app-nod-font-size\n [isDisabled]=\"data.isViewOnly\"\n [fontSize]=\"styles.fontSize\"\n (selectFontSize)=\"onApplyFontSize($event)\" />\n <div class=\"separator\"></div>\n <app-nod-font-style\n [isDisabled]=\"data.isViewOnly\"\n [bold]=\"styles.bold\"\n [italic]=\"styles.italic\"\n [underline]=\"styles.underline\"\n [fontColor]=\"styles.fontColor\"\n [highlightColor]=\"styles.highlightColor\"\n (selectFontColor)=\"onApplyFontColor($event)\"\n (toggleBold)=\"onApplyBold()\"\n (toggleItalic)=\"onApplyItalic()\"\n (toggleUnderline)=\"onApplyUnderline()\"\n (selectHighlightColor)=\"onApplyHighlightColor($event)\" />\n <div class=\"separator\"></div>\n <app-nod-format\n [isDisabled]=\"data.isViewOnly\"\n [alignment]=\"styles.alignment\"\n (selectAlignment)=\"onApplyAlignment($event)\" />\n <div class=\"separator\"></div>\n <app-nod-numbering\n [isDisabled]=\"data.isViewOnly\"\n [selectedNumberingType]=\"numberingType\"\n [selectedNumberingTemplate]=\"numberingTemplateType\"\n (selectNumberingTemplate)=\"onSetNumberingTemplateType($event)\"\n (removeNumberings)=\"removeNumberings.emit()\" />\n <div class=\"separator\"></div>\n <div class=\"insert-buttons\">\n <button\n mat-button\n id=\"toolbar-actions-menu-item-insert-image\"\n [disabled]=\"data.isViewOnly\"\n (click)=\"insertImage.emit()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-image\" />\n </button>\n <button\n mat-button\n id=\"toolbar-actions-menu-item-insert-table\"\n [class.active-button]=\"showInsertTableMenu\"\n [disabled]=\"data.isViewOnly\"\n [matMenuTriggerFor]=\"tableInsert\"\n (menuOpened)=\"showInsertTableMenu = true\"\n (menuClosed)=\"onTableInsertMenuClosed()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-table\" />\n </button>\n <button\n mat-button\n id=\"toolbar-actions-menu-item-insert-link\"\n [disabled]=\"data.isViewOnly\"\n (click)=\"insertLink.emit()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-link-on\" />\n </button>\n </div>\n <div\n *ngIf=\"elements.length\"\n class=\"separator\"></div>\n <div\n *ngIf=\"elements.length\"\n class=\"custom-elements\">\n <button\n *ngFor=\"let element of elements\"\n mat-button\n [disabled]=\"data.isViewOnly\"\n (click)=\"onCreateElement(element)\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n </button>\n </div>\n</ng-container>\n<mat-menu\n #tableInsert=\"matMenu\"\n class=\"insert-table noder-modal\">\n <app-nod-insert-table\n *ngIf=\"showInsertTableMenu\"\n (selectSizes)=\"insertTable.emit($event)\" />\n</mat-menu>\n", styles: [":host::ng-deep mat-button-toggle,:host::ng-deep .mat-button-toggle-button{height:32px;width:32px;border-radius:4px}:host::ng-deep mat-button-toggle mat-icon,:host::ng-deep .mat-button-toggle-button mat-icon{font-size:24px;height:24px;width:24px;border-radius:4px}:host::ng-deep mat-button-toggle .mat-button-toggle-label-content,:host::ng-deep .mat-button-toggle-button .mat-button-toggle-label-content{padding:0 2px}.separator{border-left:
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolbarActionsComponent, selector: "app-nod-toolbar-actions", viewQueries: [{ propertyName: "tableInsertMenu", first: true, predicate: ["tableInsert"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"{ isViewOnly: editorService.isViewOnly$ | async } as data\">\n <app-nod-undo-redo\n [canUndo]=\"canUndo\"\n [canRedo]=\"canRedo\"\n (undo)=\"undo.emit()\"\n (redo)=\"redo.emit()\" />\n <app-nod-print (print)=\"print.emit()\" />\n <div class=\"separator\"></div>\n <app-nod-font\n [isDisabled]=\"data.isViewOnly\"\n [styles]=\"styles\"\n (selectFont)=\"onApplyFontFamily($event)\" />\n <div class=\"separator\"></div>\n <app-nod-font-size\n [isDisabled]=\"data.isViewOnly\"\n [fontSize]=\"styles.fontSize\"\n (selectFontSize)=\"onApplyFontSize($event)\" />\n <div class=\"separator\"></div>\n <app-nod-font-style\n [isDisabled]=\"data.isViewOnly\"\n [bold]=\"styles.bold\"\n [italic]=\"styles.italic\"\n [underline]=\"styles.underline\"\n [fontColor]=\"styles.fontColor\"\n [highlightColor]=\"styles.highlightColor\"\n (selectFontColor)=\"onApplyFontColor($event)\"\n (toggleBold)=\"onApplyBold()\"\n (toggleItalic)=\"onApplyItalic()\"\n (toggleUnderline)=\"onApplyUnderline()\"\n (selectHighlightColor)=\"onApplyHighlightColor($event)\" />\n <div class=\"separator\"></div>\n <app-nod-format\n [isDisabled]=\"data.isViewOnly\"\n [alignment]=\"styles.alignment\"\n (selectAlignment)=\"onApplyAlignment($event)\" />\n <div class=\"separator\"></div>\n <app-nod-numbering\n [isDisabled]=\"data.isViewOnly\"\n [selectedNumberingType]=\"numberingType\"\n [selectedNumberingTemplate]=\"numberingTemplateType\"\n (selectNumberingTemplate)=\"onSetNumberingTemplateType($event)\"\n (removeNumberings)=\"removeNumberings.emit()\" />\n <div class=\"separator\"></div>\n <div class=\"insert-buttons\">\n <button\n mat-button\n id=\"toolbar-actions-menu-item-insert-image\"\n [disabled]=\"data.isViewOnly\"\n (click)=\"insertImage.emit()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-image\" />\n </button>\n <button\n mat-button\n id=\"toolbar-actions-menu-item-insert-table\"\n [class.active-button]=\"showInsertTableMenu\"\n [disabled]=\"data.isViewOnly\"\n [matMenuTriggerFor]=\"tableInsert\"\n (menuOpened)=\"showInsertTableMenu = true\"\n (menuClosed)=\"onTableInsertMenuClosed()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-table\" />\n </button>\n <button\n mat-button\n id=\"toolbar-actions-menu-item-insert-link\"\n [disabled]=\"data.isViewOnly\"\n (click)=\"insertLink.emit()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-link-on\" />\n </button>\n </div>\n <div\n *ngIf=\"elements.length\"\n class=\"separator\"></div>\n <div\n *ngIf=\"elements.length\"\n class=\"custom-elements\">\n <button\n *ngFor=\"let element of elements\"\n mat-button\n [disabled]=\"data.isViewOnly\"\n (click)=\"onCreateElement(element)\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n </button>\n </div>\n</ng-container>\n<mat-menu\n #tableInsert=\"matMenu\"\n class=\"insert-table noder-modal\">\n <app-nod-insert-table\n *ngIf=\"showInsertTableMenu\"\n (selectSizes)=\"insertTable.emit($event)\" />\n</mat-menu>\n", styles: [":host::ng-deep mat-button-toggle,:host::ng-deep .mat-button-toggle-button{height:32px;width:32px;border-radius:4px}:host::ng-deep mat-button-toggle mat-icon,:host::ng-deep .mat-button-toggle-button mat-icon{font-size:24px;height:24px;width:24px;border-radius:4px}:host::ng-deep mat-button-toggle .mat-button-toggle-label-content,:host::ng-deep .mat-button-toggle-button .mat-button-toggle-label-content{padding:0 2px}.separator{border-left:2px solid;height:24px;margin:0 8px}.mdc-button{width:28px;height:28px;padding:0}.mat-mdc-button>.mat-icon{margin-right:0}.do-action{padding-right:1px;justify-content:center;display:flex}.custom-elements,.insert-buttons{display:flex;align-items:center;height:100%}.custom-elements .mdc-button,.insert-buttons .mdc-button{min-width:32px;min-height:32px;width:32px;height:32px;padding:0}.custom-elements .mdc-button>.mat-icon,.insert-buttons .mdc-button>.mat-icon{margin-right:0;font-size:24px;height:24px;width:24px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.FontComponent, selector: "app-nod-font", inputs: ["isDisabled", "styles"], outputs: ["selectFont"] }, { kind: "component", type: i5.FontSizeComponent, selector: "app-nod-font-size", inputs: ["isDisabled", "fontSize"], outputs: ["selectFontSize"] }, { kind: "component", type: i6.InsertTableComponent, selector: "app-nod-insert-table", outputs: ["selectSizes"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i10.FontStyleComponent, selector: "app-nod-font-style", inputs: ["isDisabled", "bold", "italic", "underline", "fontColor", "highlightColor"], outputs: ["toggleBold", "toggleItalic", "toggleUnderline", "selectFontColor", "selectHighlightColor"] }, { kind: "component", type: i11.FormatComponent, selector: "app-nod-format", inputs: ["isDisabled", "alignment"], outputs: ["selectAlignment"] }, { kind: "component", type: i12.NumberingComponent, selector: "app-nod-numbering", inputs: ["isDisabled", "selectedNumberingType", "selectedNumberingTemplate"], outputs: ["selectNumberingTemplate", "removeNumberings"] }, { kind: "component", type: i13.PrintComponent, selector: "app-nod-print", outputs: ["print"] }, { kind: "component", type: i14.UndoRedoComponent, selector: "app-nod-undo-redo", inputs: ["canUndo", "canRedo"], outputs: ["undo", "redo"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
57
57
|
}
|
|
58
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarActionsComponent, decorators: [{
|
|
59
59
|
type: Component,
|
|
60
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-nod-toolbar-actions', template: "<ng-container *ngIf=\"{ isViewOnly: editorService.isViewOnly$ | async } as data\">\n <app-nod-undo-redo\n [canUndo]=\"canUndo\"\n [canRedo]=\"canRedo\"\n (undo)=\"undo.emit()\"\n (redo)=\"redo.emit()\" />\n <app-nod-print (print)=\"print.emit()\" />\n <div class=\"separator\"></div>\n <app-nod-font\n [isDisabled]=\"data.isViewOnly\"\n [styles]=\"styles\"\n (selectFont)=\"onApplyFontFamily($event)\" />\n <div class=\"separator\"></div>\n <app-nod-font-size\n [isDisabled]=\"data.isViewOnly\"\n [fontSize]=\"styles.fontSize\"\n (selectFontSize)=\"onApplyFontSize($event)\" />\n <div class=\"separator\"></div>\n <app-nod-font-style\n [isDisabled]=\"data.isViewOnly\"\n [bold]=\"styles.bold\"\n [italic]=\"styles.italic\"\n [underline]=\"styles.underline\"\n [fontColor]=\"styles.fontColor\"\n [highlightColor]=\"styles.highlightColor\"\n (selectFontColor)=\"onApplyFontColor($event)\"\n (toggleBold)=\"onApplyBold()\"\n (toggleItalic)=\"onApplyItalic()\"\n (toggleUnderline)=\"onApplyUnderline()\"\n (selectHighlightColor)=\"onApplyHighlightColor($event)\" />\n <div class=\"separator\"></div>\n <app-nod-format\n [isDisabled]=\"data.isViewOnly\"\n [alignment]=\"styles.alignment\"\n (selectAlignment)=\"onApplyAlignment($event)\" />\n <div class=\"separator\"></div>\n <app-nod-numbering\n [isDisabled]=\"data.isViewOnly\"\n [selectedNumberingType]=\"numberingType\"\n [selectedNumberingTemplate]=\"numberingTemplateType\"\n (selectNumberingTemplate)=\"onSetNumberingTemplateType($event)\"\n (removeNumberings)=\"removeNumberings.emit()\" />\n <div class=\"separator\"></div>\n <div class=\"insert-buttons\">\n <button\n mat-button\n id=\"toolbar-actions-menu-item-insert-image\"\n [disabled]=\"data.isViewOnly\"\n (click)=\"insertImage.emit()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-image\" />\n </button>\n <button\n mat-button\n id=\"toolbar-actions-menu-item-insert-table\"\n [class.active-button]=\"showInsertTableMenu\"\n [disabled]=\"data.isViewOnly\"\n [matMenuTriggerFor]=\"tableInsert\"\n (menuOpened)=\"showInsertTableMenu = true\"\n (menuClosed)=\"onTableInsertMenuClosed()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-table\" />\n </button>\n <button\n mat-button\n id=\"toolbar-actions-menu-item-insert-link\"\n [disabled]=\"data.isViewOnly\"\n (click)=\"insertLink.emit()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-link-on\" />\n </button>\n </div>\n <div\n *ngIf=\"elements.length\"\n class=\"separator\"></div>\n <div\n *ngIf=\"elements.length\"\n class=\"custom-elements\">\n <button\n *ngFor=\"let element of elements\"\n mat-button\n [disabled]=\"data.isViewOnly\"\n (click)=\"onCreateElement(element)\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n </button>\n </div>\n</ng-container>\n<mat-menu\n #tableInsert=\"matMenu\"\n class=\"insert-table noder-modal\">\n <app-nod-insert-table\n *ngIf=\"showInsertTableMenu\"\n (selectSizes)=\"insertTable.emit($event)\" />\n</mat-menu>\n", styles: [":host::ng-deep mat-button-toggle,:host::ng-deep .mat-button-toggle-button{height:32px;width:32px;border-radius:4px}:host::ng-deep mat-button-toggle mat-icon,:host::ng-deep .mat-button-toggle-button mat-icon{font-size:24px;height:24px;width:24px;border-radius:4px}:host::ng-deep mat-button-toggle .mat-button-toggle-label-content,:host::ng-deep .mat-button-toggle-button .mat-button-toggle-label-content{padding:0 2px}.separator{border-left:
|
|
60
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-nod-toolbar-actions', template: "<ng-container *ngIf=\"{ isViewOnly: editorService.isViewOnly$ | async } as data\">\n <app-nod-undo-redo\n [canUndo]=\"canUndo\"\n [canRedo]=\"canRedo\"\n (undo)=\"undo.emit()\"\n (redo)=\"redo.emit()\" />\n <app-nod-print (print)=\"print.emit()\" />\n <div class=\"separator\"></div>\n <app-nod-font\n [isDisabled]=\"data.isViewOnly\"\n [styles]=\"styles\"\n (selectFont)=\"onApplyFontFamily($event)\" />\n <div class=\"separator\"></div>\n <app-nod-font-size\n [isDisabled]=\"data.isViewOnly\"\n [fontSize]=\"styles.fontSize\"\n (selectFontSize)=\"onApplyFontSize($event)\" />\n <div class=\"separator\"></div>\n <app-nod-font-style\n [isDisabled]=\"data.isViewOnly\"\n [bold]=\"styles.bold\"\n [italic]=\"styles.italic\"\n [underline]=\"styles.underline\"\n [fontColor]=\"styles.fontColor\"\n [highlightColor]=\"styles.highlightColor\"\n (selectFontColor)=\"onApplyFontColor($event)\"\n (toggleBold)=\"onApplyBold()\"\n (toggleItalic)=\"onApplyItalic()\"\n (toggleUnderline)=\"onApplyUnderline()\"\n (selectHighlightColor)=\"onApplyHighlightColor($event)\" />\n <div class=\"separator\"></div>\n <app-nod-format\n [isDisabled]=\"data.isViewOnly\"\n [alignment]=\"styles.alignment\"\n (selectAlignment)=\"onApplyAlignment($event)\" />\n <div class=\"separator\"></div>\n <app-nod-numbering\n [isDisabled]=\"data.isViewOnly\"\n [selectedNumberingType]=\"numberingType\"\n [selectedNumberingTemplate]=\"numberingTemplateType\"\n (selectNumberingTemplate)=\"onSetNumberingTemplateType($event)\"\n (removeNumberings)=\"removeNumberings.emit()\" />\n <div class=\"separator\"></div>\n <div class=\"insert-buttons\">\n <button\n mat-button\n id=\"toolbar-actions-menu-item-insert-image\"\n [disabled]=\"data.isViewOnly\"\n (click)=\"insertImage.emit()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-image\" />\n </button>\n <button\n mat-button\n id=\"toolbar-actions-menu-item-insert-table\"\n [class.active-button]=\"showInsertTableMenu\"\n [disabled]=\"data.isViewOnly\"\n [matMenuTriggerFor]=\"tableInsert\"\n (menuOpened)=\"showInsertTableMenu = true\"\n (menuClosed)=\"onTableInsertMenuClosed()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-table\" />\n </button>\n <button\n mat-button\n id=\"toolbar-actions-menu-item-insert-link\"\n [disabled]=\"data.isViewOnly\"\n (click)=\"insertLink.emit()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-link-on\" />\n </button>\n </div>\n <div\n *ngIf=\"elements.length\"\n class=\"separator\"></div>\n <div\n *ngIf=\"elements.length\"\n class=\"custom-elements\">\n <button\n *ngFor=\"let element of elements\"\n mat-button\n [disabled]=\"data.isViewOnly\"\n (click)=\"onCreateElement(element)\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n </button>\n </div>\n</ng-container>\n<mat-menu\n #tableInsert=\"matMenu\"\n class=\"insert-table noder-modal\">\n <app-nod-insert-table\n *ngIf=\"showInsertTableMenu\"\n (selectSizes)=\"insertTable.emit($event)\" />\n</mat-menu>\n", styles: [":host::ng-deep mat-button-toggle,:host::ng-deep .mat-button-toggle-button{height:32px;width:32px;border-radius:4px}:host::ng-deep mat-button-toggle mat-icon,:host::ng-deep .mat-button-toggle-button mat-icon{font-size:24px;height:24px;width:24px;border-radius:4px}:host::ng-deep mat-button-toggle .mat-button-toggle-label-content,:host::ng-deep .mat-button-toggle-button .mat-button-toggle-label-content{padding:0 2px}.separator{border-left:2px solid;height:24px;margin:0 8px}.mdc-button{width:28px;height:28px;padding:0}.mat-mdc-button>.mat-icon{margin-right:0}.do-action{padding-right:1px;justify-content:center;display:flex}.custom-elements,.insert-buttons{display:flex;align-items:center;height:100%}.custom-elements .mdc-button,.insert-buttons .mdc-button{min-width:32px;min-height:32px;width:32px;height:32px;padding:0}.custom-elements .mdc-button>.mat-icon,.insert-buttons .mdc-button>.mat-icon{margin-right:0;font-size:24px;height:24px;width:24px}\n"] }]
|
|
61
61
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.CustomIconService }, { type: i0.Injector }, { type: i2.EditorService }], propDecorators: { tableInsertMenu: [{
|
|
62
62
|
type: ViewChild,
|
|
63
63
|
args: ['tableInsert']
|
|
@@ -6,18 +6,20 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
import * as i1 from "../shared/services/custom-icon.service";
|
|
7
7
|
import * as i2 from "../../../editor/interaction/editor.service";
|
|
8
8
|
import * as i3 from "../shared/services/toolbar-core.service";
|
|
9
|
-
import * as i4 from "@
|
|
10
|
-
import * as i5 from "
|
|
11
|
-
import * as i6 from "../components/buttons/font
|
|
12
|
-
import * as i7 from "
|
|
13
|
-
import * as i8 from "@angular/material/
|
|
14
|
-
import * as i9 from "
|
|
15
|
-
import * as i10 from "../components/buttons/
|
|
16
|
-
import * as i11 from "../components/buttons/
|
|
9
|
+
import * as i4 from "@ngx-translate/core";
|
|
10
|
+
import * as i5 from "@angular/common";
|
|
11
|
+
import * as i6 from "../components/buttons/font/font.component";
|
|
12
|
+
import * as i7 from "../components/buttons/font-size/font-size.component";
|
|
13
|
+
import * as i8 from "@angular/material/button";
|
|
14
|
+
import * as i9 from "@angular/material/icon";
|
|
15
|
+
import * as i10 from "../components/buttons/font-style/font-style.component";
|
|
16
|
+
import * as i11 from "../components/buttons/format/format.component";
|
|
17
|
+
import * as i12 from "../components/buttons/undo-redo/undo-redo.component";
|
|
17
18
|
export class EditorMobileToolbarComponent extends ToolbarActionsComponent {
|
|
18
|
-
constructor(cdr, customIconService, editorService, injector, toolbarCoreService) {
|
|
19
|
+
constructor(cdr, customIconService, editorService, injector, toolbarCoreService, translateService) {
|
|
19
20
|
super(cdr, customIconService, injector, editorService);
|
|
20
21
|
this.toolbarCoreService = toolbarCoreService;
|
|
22
|
+
this.translateService = translateService;
|
|
21
23
|
this.openFileFromDisk = new EventEmitter();
|
|
22
24
|
this.createDocument = new EventEmitter();
|
|
23
25
|
this.saveAs = new EventEmitter();
|
|
@@ -30,17 +32,17 @@ export class EditorMobileToolbarComponent extends ToolbarActionsComponent {
|
|
|
30
32
|
this.toolbarCoreService.actions = this.getActions();
|
|
31
33
|
}
|
|
32
34
|
onInsertLink() {
|
|
33
|
-
this.toolbarCoreService.backTitle = '
|
|
35
|
+
this.toolbarCoreService.backTitle = this.translateService.instant('NODER.LABEL.INSERT_LINK');
|
|
34
36
|
this.toolbarCoreService.mode = EditorToolbarMode.Insert;
|
|
35
37
|
this.insertLink.emit();
|
|
36
38
|
}
|
|
37
39
|
onInsertTable() {
|
|
38
|
-
this.toolbarCoreService.backTitle = '
|
|
40
|
+
this.toolbarCoreService.backTitle = this.translateService.instant('NODER.LABEL.INSERT_TABLE');
|
|
39
41
|
this.toolbarCoreService.mode = EditorToolbarMode.Insert;
|
|
40
42
|
this.insertTable.emit();
|
|
41
43
|
}
|
|
42
44
|
onTextFormat() {
|
|
43
|
-
this.toolbarCoreService.backTitle = '
|
|
45
|
+
this.toolbarCoreService.backTitle = this.translateService.instant('NODER.LABEL.INSERT_FORMAT');
|
|
44
46
|
this.toolbarCoreService.mode = EditorToolbarMode.Insert;
|
|
45
47
|
this.textFormat.emit();
|
|
46
48
|
}
|
|
@@ -60,13 +62,13 @@ export class EditorMobileToolbarComponent extends ToolbarActionsComponent {
|
|
|
60
62
|
textFormat: () => this.onTextFormat()
|
|
61
63
|
};
|
|
62
64
|
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorMobileToolbarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CustomIconService }, { token: i2.EditorService }, { token: i0.Injector }, { token: i3.ToolbarCoreService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EditorMobileToolbarComponent, selector: "app-nod-editor-mobile-toolbar", outputs: { openFileFromDisk: "openFileFromDisk", createDocument: "createDocument", saveAs: "saveAs", rename: "rename", delete: "delete", insertPageBreak: "insertPageBreak", textFormat: "textFormat" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"{ mode: toolbarCoreService.mode$ | async, isViewOnly: editorService.isViewOnly$ | async } as data\">\n <div class=\"menu-action\">\n <button\n *ngIf=\"data.mode === editorToolbarMode.Base; else back\"\n mat-button\n id=\"editor-mobile-toolbar-sandwich\"\n (click)=\"toolbarCoreService.openBurgerMenu()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-sandwich\" />\n </button>\n <ng-template #back>\n <div class=\"back-container\">\n <button\n mat-button\n id=\"editor-mobile-toolbar-back\"\n (click)=\"toolbarCoreService.back()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-back\" />\n </button>\n <div class=\"back-title\">{{ toolbarCoreService.backTitle }}</div>\n </div>\n </ng-template>\n </div>\n <div\n *ngIf=\"styles && !data.isViewOnly && actionsMenuMods.includes(data.mode)\"\n class=\"actions\">\n <app-nod-undo-redo\n [canUndo]=\"canUndo\"\n [canRedo]=\"canRedo\"\n (undo)=\"undo.emit()\"\n (redo)=\"redo.emit()\" />\n <div class=\"separator\"></div>\n <div\n class=\"main-actions\"\n [ngSwitch]=\"data.mode\">\n <ng-container *ngSwitchCase=\"editorToolbarMode.Base\">\n <button\n mat-button\n id=\"editor-mobile-toolbar-text-format\"\n (click)=\"toolbarCoreService.mode = editorToolbarMode.TextFormat\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-text\" />\n </button>\n <button\n mat-button\n id=\"editor-mobile-toolbar-style-format\"\n (click)=\"toolbarCoreService.mode = editorToolbarMode.StyleFormat\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-format-combined\" />\n </button>\n <button\n mat-button\n id=\"editor-mobile-toolbar-align-format\"\n (click)=\"toolbarCoreService.mode = editorToolbarMode.AlignFormat\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-format-alignleft\" />\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"editorToolbarMode.TextFormat\">\n <app-nod-font\n [isDisabled]=\"data.isViewOnly\"\n [styles]=\"styles\"\n (selectFont)=\"onApplyFontFamily($event)\" />\n <div class=\"separator\"></div>\n <app-nod-font-size\n [isDisabled]=\"data.isViewOnly\"\n [fontSize]=\"styles.fontSize\"\n (selectFontSize)=\"onApplyFontSize($event)\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"editorToolbarMode.StyleFormat\">\n <app-nod-font-style\n [isDisabled]=\"data.isViewOnly\"\n [bold]=\"styles.bold\"\n [italic]=\"styles.italic\"\n [underline]=\"styles.underline\"\n (toggleBold)=\"onApplyBold($event)\"\n (toggleItalic)=\"onApplyItalic($event)\"\n (toggleUnderline)=\"onApplyUnderline($event)\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"editorToolbarMode.AlignFormat\">\n <app-nod-format\n [isDisabled]=\"data.isViewOnly\"\n [alignment]=\"styles.alignment\"\n (selectAlignment)=\"onApplyAlignment($event)\" />\n </ng-container>\n </div>\n </div>\n</ng-container>\n", styles: ["button.mdc-button{min-width:28px;min-height:28px;height:28px;padding:0;margin:0 4px}button.mdc-button mat-icon{font-size:24px;height:24px;width:24px;margin:0}:host::ng-deep{display:flex;position:relative;width:100%;height:32px}:host::ng-deep mat-button-toggle,:host::ng-deep .mat-button-toggle-button{height:32px;width:32px;border-radius:4px}:host::ng-deep mat-button-toggle mat-icon,:host::ng-deep .mat-button-toggle-button mat-icon{font-size:24px;height:24px;width:24px;border-radius:4px}:host::ng-deep mat-button-toggle .mat-button-toggle-label-content,:host::ng-deep .mat-button-toggle-button .mat-button-toggle-label-content{padding:0 2px}.menu-action{display:flex;align-items:center;z-index:1}.actions{display:flex;position:absolute;align-items:center;justify-content:center;width:100%;height:100%}.main-actions{display:flex;align-items:center;height:100%}.separator{border-left:1px solid;opacity:.1;height:100%;margin:0 8px}app-nod-font{max-width:142px}.back-container{display:flex}.back-title{font-size:14px;font-weight:400;padding-left:10px}\n"], dependencies: [{ kind: "directive", type:
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorMobileToolbarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CustomIconService }, { token: i2.EditorService }, { token: i0.Injector }, { token: i3.ToolbarCoreService }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EditorMobileToolbarComponent, selector: "app-nod-editor-mobile-toolbar", outputs: { openFileFromDisk: "openFileFromDisk", createDocument: "createDocument", saveAs: "saveAs", rename: "rename", delete: "delete", insertPageBreak: "insertPageBreak", textFormat: "textFormat" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"{ mode: toolbarCoreService.mode$ | async, isViewOnly: editorService.isViewOnly$ | async } as data\">\n <div class=\"menu-action\">\n <button\n *ngIf=\"data.mode === editorToolbarMode.Base; else back\"\n mat-button\n id=\"editor-mobile-toolbar-sandwich\"\n (click)=\"toolbarCoreService.openBurgerMenu()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-sandwich\" />\n </button>\n <ng-template #back>\n <div class=\"back-container\">\n <button\n mat-button\n id=\"editor-mobile-toolbar-back\"\n (click)=\"toolbarCoreService.back()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-back\" />\n </button>\n <div class=\"back-title\">{{ toolbarCoreService.backTitle }}</div>\n </div>\n </ng-template>\n </div>\n <div\n *ngIf=\"styles && !data.isViewOnly && actionsMenuMods.includes(data.mode)\"\n class=\"actions\">\n <app-nod-undo-redo\n [canUndo]=\"canUndo\"\n [canRedo]=\"canRedo\"\n (undo)=\"undo.emit()\"\n (redo)=\"redo.emit()\" />\n <div class=\"separator\"></div>\n <div\n class=\"main-actions\"\n [ngSwitch]=\"data.mode\">\n <ng-container *ngSwitchCase=\"editorToolbarMode.Base\">\n <button\n mat-button\n id=\"editor-mobile-toolbar-text-format\"\n (click)=\"toolbarCoreService.mode = editorToolbarMode.TextFormat\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-text\" />\n </button>\n <button\n mat-button\n id=\"editor-mobile-toolbar-style-format\"\n (click)=\"toolbarCoreService.mode = editorToolbarMode.StyleFormat\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-format-combined\" />\n </button>\n <button\n mat-button\n id=\"editor-mobile-toolbar-align-format\"\n (click)=\"toolbarCoreService.mode = editorToolbarMode.AlignFormat\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-format-alignleft\" />\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"editorToolbarMode.TextFormat\">\n <app-nod-font\n [isDisabled]=\"data.isViewOnly\"\n [styles]=\"styles\"\n (selectFont)=\"onApplyFontFamily($event)\" />\n <div class=\"separator\"></div>\n <app-nod-font-size\n [isDisabled]=\"data.isViewOnly\"\n [fontSize]=\"styles.fontSize\"\n (selectFontSize)=\"onApplyFontSize($event)\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"editorToolbarMode.StyleFormat\">\n <app-nod-font-style\n [isDisabled]=\"data.isViewOnly\"\n [bold]=\"styles.bold\"\n [italic]=\"styles.italic\"\n [underline]=\"styles.underline\"\n (toggleBold)=\"onApplyBold($event)\"\n (toggleItalic)=\"onApplyItalic($event)\"\n (toggleUnderline)=\"onApplyUnderline($event)\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"editorToolbarMode.AlignFormat\">\n <app-nod-format\n [isDisabled]=\"data.isViewOnly\"\n [alignment]=\"styles.alignment\"\n (selectAlignment)=\"onApplyAlignment($event)\" />\n </ng-container>\n </div>\n </div>\n</ng-container>\n", styles: ["button.mdc-button{min-width:28px;min-height:28px;height:28px;padding:0;margin:0 4px}button.mdc-button mat-icon{font-size:24px;height:24px;width:24px;margin:0}:host::ng-deep{display:flex;position:relative;width:100%;height:32px}:host::ng-deep mat-button-toggle,:host::ng-deep .mat-button-toggle-button{height:32px;width:32px;border-radius:4px}:host::ng-deep mat-button-toggle mat-icon,:host::ng-deep .mat-button-toggle-button mat-icon{font-size:24px;height:24px;width:24px;border-radius:4px}:host::ng-deep mat-button-toggle .mat-button-toggle-label-content,:host::ng-deep .mat-button-toggle-button .mat-button-toggle-label-content{padding:0 2px}.menu-action{display:flex;align-items:center;z-index:1}.actions{display:flex;position:absolute;align-items:center;justify-content:center;width:100%;height:100%}.main-actions{display:flex;align-items:center;height:100%}.separator{border-left:1px solid;opacity:.1;height:100%;margin:0 8px}app-nod-font{max-width:142px}.back-container{display:flex}.back-title{font-size:14px;font-weight:400;padding-left:10px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i6.FontComponent, selector: "app-nod-font", inputs: ["isDisabled", "styles"], outputs: ["selectFont"] }, { kind: "component", type: i7.FontSizeComponent, selector: "app-nod-font-size", inputs: ["isDisabled", "fontSize"], outputs: ["selectFontSize"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.FontStyleComponent, selector: "app-nod-font-style", inputs: ["isDisabled", "bold", "italic", "underline", "fontColor", "highlightColor"], outputs: ["toggleBold", "toggleItalic", "toggleUnderline", "selectFontColor", "selectHighlightColor"] }, { kind: "component", type: i11.FormatComponent, selector: "app-nod-format", inputs: ["isDisabled", "alignment"], outputs: ["selectAlignment"] }, { kind: "component", type: i12.UndoRedoComponent, selector: "app-nod-undo-redo", inputs: ["canUndo", "canRedo"], outputs: ["undo", "redo"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
65
67
|
}
|
|
66
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorMobileToolbarComponent, decorators: [{
|
|
67
69
|
type: Component,
|
|
68
70
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-nod-editor-mobile-toolbar', template: "<ng-container *ngIf=\"{ mode: toolbarCoreService.mode$ | async, isViewOnly: editorService.isViewOnly$ | async } as data\">\n <div class=\"menu-action\">\n <button\n *ngIf=\"data.mode === editorToolbarMode.Base; else back\"\n mat-button\n id=\"editor-mobile-toolbar-sandwich\"\n (click)=\"toolbarCoreService.openBurgerMenu()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-sandwich\" />\n </button>\n <ng-template #back>\n <div class=\"back-container\">\n <button\n mat-button\n id=\"editor-mobile-toolbar-back\"\n (click)=\"toolbarCoreService.back()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-back\" />\n </button>\n <div class=\"back-title\">{{ toolbarCoreService.backTitle }}</div>\n </div>\n </ng-template>\n </div>\n <div\n *ngIf=\"styles && !data.isViewOnly && actionsMenuMods.includes(data.mode)\"\n class=\"actions\">\n <app-nod-undo-redo\n [canUndo]=\"canUndo\"\n [canRedo]=\"canRedo\"\n (undo)=\"undo.emit()\"\n (redo)=\"redo.emit()\" />\n <div class=\"separator\"></div>\n <div\n class=\"main-actions\"\n [ngSwitch]=\"data.mode\">\n <ng-container *ngSwitchCase=\"editorToolbarMode.Base\">\n <button\n mat-button\n id=\"editor-mobile-toolbar-text-format\"\n (click)=\"toolbarCoreService.mode = editorToolbarMode.TextFormat\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-text\" />\n </button>\n <button\n mat-button\n id=\"editor-mobile-toolbar-style-format\"\n (click)=\"toolbarCoreService.mode = editorToolbarMode.StyleFormat\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-format-combined\" />\n </button>\n <button\n mat-button\n id=\"editor-mobile-toolbar-align-format\"\n (click)=\"toolbarCoreService.mode = editorToolbarMode.AlignFormat\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-format-alignleft\" />\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"editorToolbarMode.TextFormat\">\n <app-nod-font\n [isDisabled]=\"data.isViewOnly\"\n [styles]=\"styles\"\n (selectFont)=\"onApplyFontFamily($event)\" />\n <div class=\"separator\"></div>\n <app-nod-font-size\n [isDisabled]=\"data.isViewOnly\"\n [fontSize]=\"styles.fontSize\"\n (selectFontSize)=\"onApplyFontSize($event)\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"editorToolbarMode.StyleFormat\">\n <app-nod-font-style\n [isDisabled]=\"data.isViewOnly\"\n [bold]=\"styles.bold\"\n [italic]=\"styles.italic\"\n [underline]=\"styles.underline\"\n (toggleBold)=\"onApplyBold($event)\"\n (toggleItalic)=\"onApplyItalic($event)\"\n (toggleUnderline)=\"onApplyUnderline($event)\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"editorToolbarMode.AlignFormat\">\n <app-nod-format\n [isDisabled]=\"data.isViewOnly\"\n [alignment]=\"styles.alignment\"\n (selectAlignment)=\"onApplyAlignment($event)\" />\n </ng-container>\n </div>\n </div>\n</ng-container>\n", styles: ["button.mdc-button{min-width:28px;min-height:28px;height:28px;padding:0;margin:0 4px}button.mdc-button mat-icon{font-size:24px;height:24px;width:24px;margin:0}:host::ng-deep{display:flex;position:relative;width:100%;height:32px}:host::ng-deep mat-button-toggle,:host::ng-deep .mat-button-toggle-button{height:32px;width:32px;border-radius:4px}:host::ng-deep mat-button-toggle mat-icon,:host::ng-deep .mat-button-toggle-button mat-icon{font-size:24px;height:24px;width:24px;border-radius:4px}:host::ng-deep mat-button-toggle .mat-button-toggle-label-content,:host::ng-deep .mat-button-toggle-button .mat-button-toggle-label-content{padding:0 2px}.menu-action{display:flex;align-items:center;z-index:1}.actions{display:flex;position:absolute;align-items:center;justify-content:center;width:100%;height:100%}.main-actions{display:flex;align-items:center;height:100%}.separator{border-left:1px solid;opacity:.1;height:100%;margin:0 8px}app-nod-font{max-width:142px}.back-container{display:flex}.back-title{font-size:14px;font-weight:400;padding-left:10px}\n"] }]
|
|
69
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.CustomIconService }, { type: i2.EditorService }, { type: i0.Injector }, { type: i3.ToolbarCoreService }], propDecorators: { openFileFromDisk: [{
|
|
71
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.CustomIconService }, { type: i2.EditorService }, { type: i0.Injector }, { type: i3.ToolbarCoreService }, { type: i4.TranslateService }], propDecorators: { openFileFromDisk: [{
|
|
70
72
|
type: Output
|
|
71
73
|
}], createDocument: [{
|
|
72
74
|
type: Output
|
|
@@ -81,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
81
83
|
}], textFormat: [{
|
|
82
84
|
type: Output
|
|
83
85
|
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLW1vYmlsZS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2FwYXJ0LWNvbXBvbmVudHMvZWRpdG9yLXRvb2xiYXIvZWRpdG9yLW1vYmlsZS10b29sYmFyL2VkaXRvci1tb2JpbGUtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9hcGFydC1jb21wb25lbnRzL2VkaXRvci10b29sYmFyL2VkaXRvci1tb2JpbGUtdG9vbGJhci9lZGl0b3ItbW9iaWxlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFZLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUduRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUc3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVFsRyxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsdUJBQXVCO0lBbUJyRSxZQUNJLEdBQXNCLEVBQ3RCLGlCQUFvQyxFQUNwQyxhQUE0QixFQUM1QixRQUFrQixFQUNYLGtCQUFzQztRQUU3QyxLQUFLLENBQUMsR0FBRyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUZoRCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBdkJ2QyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUxQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVsQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVsQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVsQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFM0MsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFaEQsc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFFN0Isb0JBQWUsR0FBRyxpQkFBaUIsQ0FBQztRQVV6QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO1FBQ2xELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUNuRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUN4RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUM7UUFDbEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sVUFBVTtRQUNkLE9BQU87WUFDSCxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUU7WUFDckMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7WUFDNUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ2hDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNoQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDOUIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ2hDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtZQUMxQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQyxtQkFBbUIsRUFBRSxDQUFDLEtBQTJCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO1lBQ2pGLGVBQWUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRTtZQUNsRCxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtTQUN4QyxDQUFDO0lBQ04sQ0FBQzsrR0EvRFEsNEJBQTRCO21HQUE1Qiw0QkFBNEIscVNDaEJ6Qyx5aklBNkZBOzs0RkQ3RWEsNEJBQTRCO2tCQU54QyxTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsK0JBQStCOzBNQUsvQixnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRUcsY0FBYztzQkFBdkIsTUFBTTtnQkFFRyxNQUFNO3NCQUFmLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQUVHLE1BQU07c0JBQWYsTUFBTTtnQkFFRyxlQUFlO3NCQUF4QixNQUFNO2dCQUVHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFDVElPTlNfTUVOVV9NT0RTIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnN0YW50cy9lZGl0b3ItdG9vbGJhci1tb2Rlcy5jb25zdCc7XG5pbXBvcnQgeyBDdXN0b21JY29uU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9zZXJ2aWNlcy9jdXN0b20taWNvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lZGl0b3IvaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdG9yVG9vbGJhck1vZGUgfSBmcm9tICcuLi9zaGFyZWQvZW51bXMvZWRpdG9yLXRvb2xiYXItbW9kZS5lbnVtJztcbmltcG9ydCB7IEV4dGVybmFsRWxlbWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vZWRpdG9yL2NvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9tb2RlbHMvZXh0ZXJuYWwtZWxlbWVudC5tb2RlbCc7XG5pbXBvcnQgeyBJQWN0aW9ucywgVG9vbGJhckNvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL3NlcnZpY2VzL3Rvb2xiYXItY29yZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRvb2xiYXJBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy90b29sYmFyLWFjdGlvbnMvdG9vbGJhci1hY3Rpb25zLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnYXBwLW5vZC1lZGl0b3ItbW9iaWxlLXRvb2xiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnZWRpdG9yLW1vYmlsZS10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnZWRpdG9yLW1vYmlsZS10b29sYmFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yTW9iaWxlVG9vbGJhckNvbXBvbmVudCBleHRlbmRzIFRvb2xiYXJBY3Rpb25zQ29tcG9uZW50IHtcbiAgICBAT3V0cHV0KCkgb3BlbkZpbGVGcm9tRGlzayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoKSBjcmVhdGVEb2N1bWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoKSBzYXZlQXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgcmVuYW1lID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoKSBpbnNlcnRQYWdlQnJlYWsgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgdGV4dEZvcm1hdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGVkaXRvclRvb2xiYXJNb2RlID0gRWRpdG9yVG9vbGJhck1vZGU7XG5cbiAgICByZWFkb25seSBhY3Rpb25zTWVudU1vZHMgPSBBQ1RJT05TX01FTlVfTU9EUztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBjdXN0b21JY29uU2VydmljZTogQ3VzdG9tSWNvblNlcnZpY2UsXG4gICAgICAgIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHVibGljIHRvb2xiYXJDb3JlU2VydmljZTogVG9vbGJhckNvcmVTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNkciwgY3VzdG9tSWNvblNlcnZpY2UsIGluamVjdG9yLCBlZGl0b3JTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy50b29sYmFyQ29yZVNlcnZpY2UuYWN0aW9ucyA9IHRoaXMuZ2V0QWN0aW9ucygpO1xuICAgIH1cblxuICAgIG9uSW5zZXJ0TGluaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b29sYmFyQ29yZVNlcnZpY2UuYmFja1RpdGxlID0gJ0luc2VydCBMaW5rJztcbiAgICAgICAgdGhpcy50b29sYmFyQ29yZVNlcnZpY2UubW9kZSA9IEVkaXRvclRvb2xiYXJNb2RlLkluc2VydDtcbiAgICAgICAgdGhpcy5pbnNlcnRMaW5rLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbkluc2VydFRhYmxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRvb2xiYXJDb3JlU2VydmljZS5iYWNrVGl0bGUgPSAnSW5zZXJ0IFRhYmxlJztcbiAgICAgICAgdGhpcy50b29sYmFyQ29yZVNlcnZpY2UubW9kZSA9IEVkaXRvclRvb2xiYXJNb2RlLkluc2VydDtcbiAgICAgICAgdGhpcy5pbnNlcnRUYWJsZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25UZXh0Rm9ybWF0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRvb2xiYXJDb3JlU2VydmljZS5iYWNrVGl0bGUgPSAnVGV4dCBGb3JtYXQnO1xuICAgICAgICB0aGlzLnRvb2xiYXJDb3JlU2VydmljZS5tb2RlID0gRWRpdG9yVG9vbGJhck1vZGUuSW5zZXJ0O1xuICAgICAgICB0aGlzLnRleHRGb3JtYXQuZW1pdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWN0aW9ucygpOiBJQWN0aW9ucyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZXc6ICgpID0+IHRoaXMuY3JlYXRlRG9jdW1lbnQuZW1pdCgpLFxuICAgICAgICAgICAgb3BlbkZyb206ICgpID0+IHRoaXMub3BlbkZpbGVGcm9tRGlzay5lbWl0KCksXG4gICAgICAgICAgICBzYXZlQXM6ICgpID0+IHRoaXMuc2F2ZUFzLmVtaXQoKSxcbiAgICAgICAgICAgIHJlbmFtZTogKCkgPT4gdGhpcy5yZW5hbWUuZW1pdCgpLFxuICAgICAgICAgICAgcHJpbnQ6ICgpID0+IHRoaXMucHJpbnQuZW1pdCgpLFxuICAgICAgICAgICAgZGVsZXRlOiAoKSA9PiB0aGlzLmRlbGV0ZS5lbWl0KCksXG4gICAgICAgICAgICBpbnNlcnRJbWFnZTogKCkgPT4gdGhpcy5pbnNlcnRJbWFnZS5lbWl0KCksXG4gICAgICAgICAgICBpbnNlcnRUYWJsZTogKCkgPT4gdGhpcy5vbkluc2VydFRhYmxlKCksXG4gICAgICAgICAgICBpbnNlcnRMaW5rOiAoKSA9PiB0aGlzLm9uSW5zZXJ0TGluaygpLFxuICAgICAgICAgICAgaW5zZXJ0Q3VzdG9tRWxlbWVudDogKG1vZGVsOiBFeHRlcm5hbEVsZW1lbnRNb2RlbCkgPT4gdGhpcy5vbkNyZWF0ZUVsZW1lbnQobW9kZWwpLFxuICAgICAgICAgICAgaW5zZXJ0UGFnZUJyZWFrOiAoKSA9PiB0aGlzLmluc2VydFBhZ2VCcmVhay5lbWl0KCksXG4gICAgICAgICAgICB0ZXh0Rm9ybWF0OiAoKSA9PiB0aGlzLm9uVGV4dEZvcm1hdCgpXG4gICAgICAgIH07XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInsgbW9kZTogdG9vbGJhckNvcmVTZXJ2aWNlLm1vZGUkIHwgYXN5bmMsIGlzVmlld09ubHk6IGVkaXRvclNlcnZpY2UuaXNWaWV3T25seSQgfCBhc3luYyB9IGFzIGRhdGFcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWVudS1hY3Rpb25cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJkYXRhLm1vZGUgPT09IGVkaXRvclRvb2xiYXJNb2RlLkJhc2U7IGVsc2UgYmFja1wiXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICBpZD1cImVkaXRvci1tb2JpbGUtdG9vbGJhci1zYW5kd2ljaFwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9vbGJhckNvcmVTZXJ2aWNlLm9wZW5CdXJnZXJNZW51KClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tc2FuZHdpY2hcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNiYWNrPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhY2stY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiZWRpdG9yLW1vYmlsZS10b29sYmFyLWJhY2tcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9vbGJhckNvcmVTZXJ2aWNlLmJhY2soKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1iYWNrXCIgLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFjay10aXRsZVwiPnt7IHRvb2xiYXJDb3JlU2VydmljZS5iYWNrVGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJzdHlsZXMgJiYgIWRhdGEuaXNWaWV3T25seSAmJiBhY3Rpb25zTWVudU1vZHMuaW5jbHVkZXMoZGF0YS5tb2RlKVwiXG4gICAgICAgIGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICA8YXBwLW5vZC11bmRvLXJlZG9cbiAgICAgICAgICAgIFtjYW5VbmRvXT1cImNhblVuZG9cIlxuICAgICAgICAgICAgW2NhblJlZG9dPVwiY2FuUmVkb1wiXG4gICAgICAgICAgICAodW5kbyk9XCJ1bmRvLmVtaXQoKVwiXG4gICAgICAgICAgICAocmVkbyk9XCJyZWRvLmVtaXQoKVwiIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJtYWluLWFjdGlvbnNcIlxuICAgICAgICAgICAgW25nU3dpdGNoXT1cImRhdGEubW9kZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZWRpdG9yVG9vbGJhck1vZGUuQmFzZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpZD1cImVkaXRvci1tb2JpbGUtdG9vbGJhci10ZXh0LWZvcm1hdFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b29sYmFyQ29yZVNlcnZpY2UubW9kZSA9IGVkaXRvclRvb2xiYXJNb2RlLlRleHRGb3JtYXRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tdGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiZWRpdG9yLW1vYmlsZS10b29sYmFyLXN0eWxlLWZvcm1hdFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b29sYmFyQ29yZVNlcnZpY2UubW9kZSA9IGVkaXRvclRvb2xiYXJNb2RlLlN0eWxlRm9ybWF0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWZvcm1hdC1jb21iaW5lZFwiIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiZWRpdG9yLW1vYmlsZS10b29sYmFyLWFsaWduLWZvcm1hdFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b29sYmFyQ29yZVNlcnZpY2UubW9kZSA9IGVkaXRvclRvb2xiYXJNb2RlLkFsaWduRm9ybWF0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWZvcm1hdC1hbGlnbmxlZnRcIiAvPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJlZGl0b3JUb29sYmFyTW9kZS5UZXh0Rm9ybWF0XCI+XG4gICAgICAgICAgICAgICAgPGFwcC1ub2QtZm9udFxuICAgICAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCJkYXRhLmlzVmlld09ubHlcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGVzXT1cInN0eWxlc1wiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RGb250KT1cIm9uQXBwbHlGb250RmFtaWx5KCRldmVudClcIiAvPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8YXBwLW5vZC1mb250LXNpemVcbiAgICAgICAgICAgICAgICAgICAgW2lzRGlzYWJsZWRdPVwiZGF0YS5pc1ZpZXdPbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgW2ZvbnRTaXplXT1cInN0eWxlcy5mb250U2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RGb250U2l6ZSk9XCJvbkFwcGx5Rm9udFNpemUoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImVkaXRvclRvb2xiYXJNb2RlLlN0eWxlRm9ybWF0XCI+XG4gICAgICAgICAgICAgICAgPGFwcC1ub2QtZm9udC1zdHlsZVxuICAgICAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCJkYXRhLmlzVmlld09ubHlcIlxuICAgICAgICAgICAgICAgICAgICBbYm9sZF09XCJzdHlsZXMuYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGFsaWNdPVwic3R5bGVzLml0YWxpY1wiXG4gICAgICAgICAgICAgICAgICAgIFt1bmRlcmxpbmVdPVwic3R5bGVzLnVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICAgICh0b2dnbGVCb2xkKT1cIm9uQXBwbHlCb2xkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAodG9nZ2xlSXRhbGljKT1cIm9uQXBwbHlJdGFsaWMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICh0b2dnbGVVbmRlcmxpbmUpPVwib25BcHBseVVuZGVybGluZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZWRpdG9yVG9vbGJhck1vZGUuQWxpZ25Gb3JtYXRcIj5cbiAgICAgICAgICAgICAgICA8YXBwLW5vZC1mb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgW2lzRGlzYWJsZWRdPVwiZGF0YS5pc1ZpZXdPbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgW2FsaWdubWVudF09XCJzdHlsZXMuYWxpZ25tZW50XCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdEFsaWdubWVudCk9XCJvbkFwcGx5QWxpZ25tZW50KCRldmVudClcIiAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLW1vYmlsZS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2FwYXJ0LWNvbXBvbmVudHMvZWRpdG9yLXRvb2xiYXIvZWRpdG9yLW1vYmlsZS10b29sYmFyL2VkaXRvci1tb2JpbGUtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9hcGFydC1jb21wb25lbnRzL2VkaXRvci10b29sYmFyL2VkaXRvci1tb2JpbGUtdG9vbGJhci9lZGl0b3ItbW9iaWxlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFZLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUduRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUc3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRbEcsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHVCQUF1QjtJQW1CckUsWUFDSSxHQUFzQixFQUN0QixpQkFBb0MsRUFDcEMsYUFBNEIsRUFDNUIsUUFBa0IsRUFDWCxrQkFBc0MsRUFDckMsZ0JBQWtDO1FBRTFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBSGhELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDckMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXhCcEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU1QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFMUMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFbEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFbEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFbEMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTNDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWhELHNCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBRTdCLG9CQUFlLEdBQUcsaUJBQWlCLENBQUM7UUFXekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3RixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUN4RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQy9GLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLFVBQVU7UUFDZCxPQUFPO1lBQ0gsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFO1lBQ3JDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1lBQzVDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNoQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDaEMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQzlCLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNoQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUU7WUFDMUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckMsbUJBQW1CLEVBQUUsQ0FBQyxLQUEyQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztZQUNqRixlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUU7WUFDbEQsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7U0FDeEMsQ0FBQztJQUNOLENBQUM7K0dBaEVRLDRCQUE0QjttR0FBNUIsNEJBQTRCLHFTQ2pCekMseWpJQTZGQTs7NEZENUVhLDRCQUE0QjtrQkFOeEMsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLCtCQUErQjt5T0FLL0IsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUVHLGNBQWM7c0JBQXZCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQUVHLE1BQU07c0JBQWYsTUFBTTtnQkFFRyxNQUFNO3NCQUFmLE1BQU07Z0JBRUcsZUFBZTtzQkFBeEIsTUFBTTtnQkFFRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBBQ1RJT05TX01FTlVfTU9EUyB9IGZyb20gJy4uL3NoYXJlZC9jb25zdGFudHMvZWRpdG9yLXRvb2xiYXItbW9kZXMuY29uc3QnO1xuaW1wb3J0IHsgQ3VzdG9tSWNvblNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvc2VydmljZXMvY3VzdG9tLWljb24uc2VydmljZSc7XG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWRpdG9yL2ludGVyYWN0aW9uL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRvclRvb2xiYXJNb2RlIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL2VkaXRvci10b29sYmFyLW1vZGUuZW51bSc7XG5pbXBvcnQgeyBFeHRlcm5hbEVsZW1lbnRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2VkaXRvci9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2V4dGVybmFsLWVsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgSUFjdGlvbnMsIFRvb2xiYXJDb3JlU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9zZXJ2aWNlcy90b29sYmFyLWNvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBUb29sYmFyQWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvdG9vbGJhci1hY3Rpb25zL3Rvb2xiYXItYWN0aW9ucy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwcC1ub2QtZWRpdG9yLW1vYmlsZS10b29sYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VkaXRvci1tb2JpbGUtdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2VkaXRvci1tb2JpbGUtdG9vbGJhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvck1vYmlsZVRvb2xiYXJDb21wb25lbnQgZXh0ZW5kcyBUb29sYmFyQWN0aW9uc0NvbXBvbmVudCB7XG4gICAgQE91dHB1dCgpIG9wZW5GaWxlRnJvbURpc2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgY3JlYXRlRG9jdW1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgc2F2ZUFzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIHJlbmFtZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoKSBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgaW5zZXJ0UGFnZUJyZWFrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIHRleHRGb3JtYXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBlZGl0b3JUb29sYmFyTW9kZSA9IEVkaXRvclRvb2xiYXJNb2RlO1xuXG4gICAgcmVhZG9ubHkgYWN0aW9uc01lbnVNb2RzID0gQUNUSU9OU19NRU5VX01PRFM7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgY3VzdG9tSWNvblNlcnZpY2U6IEN1c3RvbUljb25TZXJ2aWNlLFxuICAgICAgICBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHB1YmxpYyB0b29sYmFyQ29yZVNlcnZpY2U6IFRvb2xiYXJDb3JlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNkciwgY3VzdG9tSWNvblNlcnZpY2UsIGluamVjdG9yLCBlZGl0b3JTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy50b29sYmFyQ29yZVNlcnZpY2UuYWN0aW9ucyA9IHRoaXMuZ2V0QWN0aW9ucygpO1xuICAgIH1cblxuICAgIG9uSW5zZXJ0TGluaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b29sYmFyQ29yZVNlcnZpY2UuYmFja1RpdGxlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ05PREVSLkxBQkVMLklOU0VSVF9MSU5LJyk7XG4gICAgICAgIHRoaXMudG9vbGJhckNvcmVTZXJ2aWNlLm1vZGUgPSBFZGl0b3JUb29sYmFyTW9kZS5JbnNlcnQ7XG4gICAgICAgIHRoaXMuaW5zZXJ0TGluay5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25JbnNlcnRUYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b29sYmFyQ29yZVNlcnZpY2UuYmFja1RpdGxlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ05PREVSLkxBQkVMLklOU0VSVF9UQUJMRScpO1xuICAgICAgICB0aGlzLnRvb2xiYXJDb3JlU2VydmljZS5tb2RlID0gRWRpdG9yVG9vbGJhck1vZGUuSW5zZXJ0O1xuICAgICAgICB0aGlzLmluc2VydFRhYmxlLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvblRleHRGb3JtYXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudG9vbGJhckNvcmVTZXJ2aWNlLmJhY2tUaXRsZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdOT0RFUi5MQUJFTC5JTlNFUlRfRk9STUFUJyk7XG4gICAgICAgIHRoaXMudG9vbGJhckNvcmVTZXJ2aWNlLm1vZGUgPSBFZGl0b3JUb29sYmFyTW9kZS5JbnNlcnQ7XG4gICAgICAgIHRoaXMudGV4dEZvcm1hdC5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBY3Rpb25zKCk6IElBY3Rpb25zIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5ldzogKCkgPT4gdGhpcy5jcmVhdGVEb2N1bWVudC5lbWl0KCksXG4gICAgICAgICAgICBvcGVuRnJvbTogKCkgPT4gdGhpcy5vcGVuRmlsZUZyb21EaXNrLmVtaXQoKSxcbiAgICAgICAgICAgIHNhdmVBczogKCkgPT4gdGhpcy5zYXZlQXMuZW1pdCgpLFxuICAgICAgICAgICAgcmVuYW1lOiAoKSA9PiB0aGlzLnJlbmFtZS5lbWl0KCksXG4gICAgICAgICAgICBwcmludDogKCkgPT4gdGhpcy5wcmludC5lbWl0KCksXG4gICAgICAgICAgICBkZWxldGU6ICgpID0+IHRoaXMuZGVsZXRlLmVtaXQoKSxcbiAgICAgICAgICAgIGluc2VydEltYWdlOiAoKSA9PiB0aGlzLmluc2VydEltYWdlLmVtaXQoKSxcbiAgICAgICAgICAgIGluc2VydFRhYmxlOiAoKSA9PiB0aGlzLm9uSW5zZXJ0VGFibGUoKSxcbiAgICAgICAgICAgIGluc2VydExpbms6ICgpID0+IHRoaXMub25JbnNlcnRMaW5rKCksXG4gICAgICAgICAgICBpbnNlcnRDdXN0b21FbGVtZW50OiAobW9kZWw6IEV4dGVybmFsRWxlbWVudE1vZGVsKSA9PiB0aGlzLm9uQ3JlYXRlRWxlbWVudChtb2RlbCksXG4gICAgICAgICAgICBpbnNlcnRQYWdlQnJlYWs6ICgpID0+IHRoaXMuaW5zZXJ0UGFnZUJyZWFrLmVtaXQoKSxcbiAgICAgICAgICAgIHRleHRGb3JtYXQ6ICgpID0+IHRoaXMub25UZXh0Rm9ybWF0KClcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwieyBtb2RlOiB0b29sYmFyQ29yZVNlcnZpY2UubW9kZSQgfCBhc3luYywgaXNWaWV3T25seTogZWRpdG9yU2VydmljZS5pc1ZpZXdPbmx5JCB8IGFzeW5jIH0gYXMgZGF0YVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtZW51LWFjdGlvblwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImRhdGEubW9kZSA9PT0gZWRpdG9yVG9vbGJhck1vZGUuQmFzZTsgZWxzZSBiYWNrXCJcbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIGlkPVwiZWRpdG9yLW1vYmlsZS10b29sYmFyLXNhbmR3aWNoXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b29sYmFyQ29yZVNlcnZpY2Uub3BlbkJ1cmdlck1lbnUoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1zYW5kd2ljaFwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2JhY2s+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFjay1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJlZGl0b3ItbW9iaWxlLXRvb2xiYXItYmFja1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b29sYmFyQ29yZVNlcnZpY2UuYmFjaygpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5vZGVyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWJhY2tcIiAvPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWNrLXRpdGxlXCI+e3sgdG9vbGJhckNvcmVTZXJ2aWNlLmJhY2tUaXRsZSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cInN0eWxlcyAmJiAhZGF0YS5pc1ZpZXdPbmx5ICYmIGFjdGlvbnNNZW51TW9kcy5pbmNsdWRlcyhkYXRhLm1vZGUpXCJcbiAgICAgICAgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgIDxhcHAtbm9kLXVuZG8tcmVkb1xuICAgICAgICAgICAgW2NhblVuZG9dPVwiY2FuVW5kb1wiXG4gICAgICAgICAgICBbY2FuUmVkb109XCJjYW5SZWRvXCJcbiAgICAgICAgICAgICh1bmRvKT1cInVuZG8uZW1pdCgpXCJcbiAgICAgICAgICAgIChyZWRvKT1cInJlZG8uZW1pdCgpXCIgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm1haW4tYWN0aW9uc1wiXG4gICAgICAgICAgICBbbmdTd2l0Y2hdPVwiZGF0YS5tb2RlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJlZGl0b3JUb29sYmFyTW9kZS5CYXNlXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiZWRpdG9yLW1vYmlsZS10b29sYmFyLXRleHQtZm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvb2xiYXJDb3JlU2VydmljZS5tb2RlID0gZWRpdG9yVG9vbGJhck1vZGUuVGV4dEZvcm1hdFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJub2Rlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi10ZXh0XCIgLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJlZGl0b3ItbW9iaWxlLXRvb2xiYXItc3R5bGUtZm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvb2xiYXJDb3JlU2VydmljZS5tb2RlID0gZWRpdG9yVG9vbGJhck1vZGUuU3R5bGVGb3JtYXRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWNvbWJpbmVkXCIgLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJlZGl0b3ItbW9iaWxlLXRvb2xiYXItYWxpZ24tZm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvb2xiYXJDb3JlU2VydmljZS5tb2RlID0gZWRpdG9yVG9vbGJhck1vZGUuQWxpZ25Gb3JtYXRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibm9kZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWFsaWdubGVmdFwiIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImVkaXRvclRvb2xiYXJNb2RlLlRleHRGb3JtYXRcIj5cbiAgICAgICAgICAgICAgICA8YXBwLW5vZC1mb250XG4gICAgICAgICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImRhdGEuaXNWaWV3T25seVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZXNdPVwic3R5bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdEZvbnQpPVwib25BcHBseUZvbnRGYW1pbHkoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxhcHAtbm9kLWZvbnQtc2l6ZVxuICAgICAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCJkYXRhLmlzVmlld09ubHlcIlxuICAgICAgICAgICAgICAgICAgICBbZm9udFNpemVdPVwic3R5bGVzLmZvbnRTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdEZvbnRTaXplKT1cIm9uQXBwbHlGb250U2l6ZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZWRpdG9yVG9vbGJhck1vZGUuU3R5bGVGb3JtYXRcIj5cbiAgICAgICAgICAgICAgICA8YXBwLW5vZC1mb250LXN0eWxlXG4gICAgICAgICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImRhdGEuaXNWaWV3T25seVwiXG4gICAgICAgICAgICAgICAgICAgIFtib2xkXT1cInN0eWxlcy5ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0YWxpY109XCJzdHlsZXMuaXRhbGljXCJcbiAgICAgICAgICAgICAgICAgICAgW3VuZGVybGluZV09XCJzdHlsZXMudW5kZXJsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgKHRvZ2dsZUJvbGQpPVwib25BcHBseUJvbGQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICh0b2dnbGVJdGFsaWMpPVwib25BcHBseUl0YWxpYygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKHRvZ2dsZVVuZGVybGluZSk9XCJvbkFwcGx5VW5kZXJsaW5lKCRldmVudClcIiAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJlZGl0b3JUb29sYmFyTW9kZS5BbGlnbkZvcm1hdFwiPlxuICAgICAgICAgICAgICAgIDxhcHAtbm9kLWZvcm1hdFxuICAgICAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCJkYXRhLmlzVmlld09ubHlcIlxuICAgICAgICAgICAgICAgICAgICBbYWxpZ25tZW50XT1cInN0eWxlcy5hbGlnbm1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0QWxpZ25tZW50KT1cIm9uQXBwbHlBbGlnbm1lbnQoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|