@talrace/ngx-noder 0.0.3 → 0.0.5

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.
Files changed (75) hide show
  1. package/README.md +72 -64
  2. package/esm2022/lib/+shared/add-link-dialog/add-link-dialog.component.mjs +9 -5
  3. package/esm2022/lib/+shared/confirm-dialog/confirm-dialog.component.mjs +10 -6
  4. package/esm2022/lib/+shared/editor/core/editor.mjs +7 -14
  5. package/esm2022/lib/+shared/editor/core/helpers/rendering.helper.mjs +9 -8
  6. package/esm2022/lib/+shared/editor/core/layers/text.layer.mjs +4 -4
  7. package/esm2022/lib/+shared/editor/custom-components/image/components/image.component.mjs +4 -3
  8. package/esm2022/lib/+shared/editor/custom-components/shared/abstract/base.component.mjs +4 -2
  9. package/esm2022/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.mjs +6 -12
  10. package/esm2022/lib/+shared/editor/custom-components/tab/tab.component.mjs +3 -2
  11. package/esm2022/lib/+shared/editor/custom-components/table/components/table-cell.component.mjs +6 -4
  12. package/esm2022/lib/+shared/editor/custom-components/table/components/table.component.mjs +7 -5
  13. package/esm2022/lib/+shared/editor/editor.component.mjs +5 -12
  14. package/esm2022/lib/+shared/editor/editor.module.mjs +1 -4
  15. package/esm2022/lib/+shared/editor/execution/models/general-properties.model.mjs +1 -1
  16. package/esm2022/lib/+shared/editor/execution/regulator.service.mjs +15 -5
  17. package/esm2022/lib/+shared/editor-title/editor-title.component.mjs +83 -0
  18. package/esm2022/lib/+shared/editor-toolbar/color-picker/color-picker.component.mjs +2 -2
  19. package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.component.mjs +77 -91
  20. package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.module.mjs +11 -1
  21. package/esm2022/lib/+shared/editor-toolbar/font/font.component.mjs +3 -3
  22. package/esm2022/lib/+shared/editor-toolbar/font-size/font-size.component.mjs +2 -2
  23. package/esm2022/lib/+shared/editor-toolbar/font-style/font-style.component.mjs +2 -2
  24. package/esm2022/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.mjs +194 -0
  25. package/esm2022/lib/+shared/editor-toolbar/numbering/numbering.component.mjs +3 -3
  26. package/esm2022/lib/+shared/editor-toolbar/print/print.component.mjs +2 -2
  27. package/esm2022/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.mjs +126 -0
  28. package/esm2022/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.mjs +2 -2
  29. package/esm2022/lib/+shared/helpers/scaling.helper.mjs +9 -0
  30. package/esm2022/public-api.mjs +2 -2
  31. package/fesm2022/talrace-ngx-noder.mjs +455 -398
  32. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  33. package/lib/+shared/add-link-dialog/add-link-dialog.component.d.ts +1 -0
  34. package/lib/+shared/confirm-dialog/confirm-dialog.component.d.ts +1 -0
  35. package/lib/+shared/editor/core/editor.d.ts +3 -3
  36. package/lib/+shared/editor/core/helpers/rendering.helper.d.ts +3 -3
  37. package/lib/+shared/editor/custom-components/shared/abstract/base.component.d.ts +3 -1
  38. package/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.d.ts +1 -1
  39. package/lib/+shared/editor/custom-components/table/components/table-cell.component.d.ts +2 -2
  40. package/lib/+shared/editor/custom-components/table/components/table.component.d.ts +0 -2
  41. package/lib/+shared/editor/editor.component.d.ts +1 -5
  42. package/lib/+shared/editor/editor.module.d.ts +15 -16
  43. package/lib/+shared/editor/execution/models/general-properties.model.d.ts +1 -0
  44. package/lib/+shared/editor/execution/regulator.service.d.ts +2 -2
  45. package/lib/+shared/editor-title/editor-title.component.d.ts +24 -0
  46. package/lib/+shared/editor-toolbar/editor-toolbar.component.d.ts +31 -30
  47. package/lib/+shared/editor-toolbar/editor-toolbar.module.d.ts +19 -16
  48. package/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.d.ts +73 -0
  49. package/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.d.ts +49 -0
  50. package/lib/+shared/helpers/scaling.helper.d.ts +4 -0
  51. package/package.json +1 -1
  52. package/public-api.d.ts +1 -1
  53. package/src/_ngx-noder.theme.scss +10 -8
  54. package/src/lib/+shared/add-link-dialog/_add-link-dialog.theme.scss +3 -3
  55. package/src/lib/+shared/confirm-dialog/_theme.scss +6 -6
  56. package/src/lib/+shared/editor/_editor.theme.scss +84 -15
  57. package/src/lib/+shared/editor/_theme.scss +0 -2
  58. package/src/lib/+shared/editor-title/_editor-title.theme.scss +28 -0
  59. package/src/lib/+shared/editor-toolbar/_editor-toolbar.theme.scss +1 -24
  60. package/src/lib/+shared/editor-toolbar/_theme.scss +14 -2
  61. package/src/lib/+shared/editor-toolbar/font-size/_font-size.theme.scss +14 -0
  62. package/src/lib/+shared/editor-toolbar/font-style/_font-style.theme.scss +21 -0
  63. package/src/lib/+shared/editor-toolbar/format/_format.theme.scss +21 -0
  64. package/src/lib/+shared/editor-toolbar/menu-dropdowns/_menu-dropdowns.theme.scss +22 -0
  65. package/src/lib/+shared/editor-toolbar/numbering/_numbering.theme.scss +52 -11
  66. package/src/lib/+shared/editor-toolbar/toolbar-actions/_toolbar-actions.theme.scss +21 -0
  67. package/src/lib/+shared/editor-toolbar/undo-redo/_undo-redo.theme.scss +16 -0
  68. package/src/lib/+shared/insert-table/_insert-table.theme.scss +9 -6
  69. package/src/scss/_mixins.scss +2 -37
  70. package/esm2022/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.mjs +0 -35
  71. package/esm2022/lib/+shared/editor-header/editor-header.component.mjs +0 -314
  72. package/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.d.ts +0 -14
  73. package/lib/+shared/editor-header/editor-header.component.d.ts +0 -101
  74. package/src/lib/+shared/editor/custom-components/external-element/element-toolbar/_element-toolbar.theme.scss +0 -10
  75. package/src/lib/+shared/editor-header/_editor-header.theme.scss +0 -106
@@ -0,0 +1,194 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { filter, take } from 'rxjs';
3
+ import { Alignment } from '../enums/alignment.enum';
4
+ import { DEFAULT_FONT_SIZE } from '../../editor/core/constants/editor.const';
5
+ import { ElementDataModel } from '../../editor/custom-components/external-element/models/element-data.model';
6
+ import { EXTERNAL_ELEMENT_SERVICE } from '../../editor/custom-components/external-element/external-elements.const';
7
+ import { NumberingTemplates } from '../constants/numbering-templates.const';
8
+ import { NumberingTemplateType } from '../enums/numbering-template-type.enum';
9
+ import { ParagraphStyleModel } from '../../../models/generated/paragraph-style.model';
10
+ import { TextStyleModel } from '../../../models/generated/text-style.model';
11
+ import { ToolbarStylesHelper } from '../helpers/toolbar-styles.helper';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "../../services/custom-icon.service";
14
+ import * as i2 from "@angular/common";
15
+ import * as i3 from "../../insert-table/insert-table.component";
16
+ import * as i4 from "@angular/material/button";
17
+ import * as i5 from "@angular/material/icon";
18
+ import * as i6 from "@angular/material/menu";
19
+ export class MenuDropdownsComponent {
20
+ set historyInfo(value) {
21
+ this.canUndo = value.step !== -1;
22
+ this.canRedo = value.step < value.lastStep;
23
+ }
24
+ set styles(value) {
25
+ this._styles = value;
26
+ this.numberingTemplateType = ToolbarStylesHelper.getNumberingTemplateType(value.numberingLevelsStyles);
27
+ }
28
+ get styles() {
29
+ return this._styles;
30
+ }
31
+ constructor(cdr, injector, customIconService) {
32
+ this.cdr = cdr;
33
+ this.injector = injector;
34
+ this.customIconService = customIconService;
35
+ this.openFileFromDisk = new EventEmitter();
36
+ this.addCustomElement = new EventEmitter();
37
+ this.saveAs = new EventEmitter();
38
+ this.print = new EventEmitter();
39
+ this.insertPageBreak = new EventEmitter();
40
+ this.createDocument = new EventEmitter();
41
+ this.insertImage = new EventEmitter();
42
+ this.rename = new EventEmitter();
43
+ this.delete = new EventEmitter();
44
+ this.openEditMenu = new EventEmitter();
45
+ this.redo = new EventEmitter();
46
+ this.undo = new EventEmitter();
47
+ this.cutSelected = new EventEmitter();
48
+ this.copySelected = new EventEmitter();
49
+ this.pasteClipboardData = new EventEmitter();
50
+ this.selectAll = new EventEmitter();
51
+ this.removeSelected = new EventEmitter();
52
+ this.insertLink = new EventEmitter();
53
+ this.createElement = new EventEmitter();
54
+ this.changeParagraphStyle = new EventEmitter();
55
+ this.changeTextStyle = new EventEmitter();
56
+ this.setNumberingTemplateType = new EventEmitter();
57
+ this.removeNumberings = new EventEmitter();
58
+ this.insertTable = new EventEmitter();
59
+ this.numberingTemplateTypes = NumberingTemplateType;
60
+ this.showInsertTableMenu = false;
61
+ this.alignments = Alignment;
62
+ this.customIconService.register();
63
+ this.elements = this.injector.get(EXTERNAL_ELEMENT_SERVICE).elements;
64
+ }
65
+ onOpenFileFromDisk(event) {
66
+ this.openFileFromDisk.emit(event);
67
+ event.target.value = null;
68
+ }
69
+ onInsertImage(event) {
70
+ this.insertImage.emit(event);
71
+ event.target.value = null;
72
+ }
73
+ onSelectFormat(alignment) {
74
+ this.changeParagraphStyle.emit(new ParagraphStyleModel({ alignment }));
75
+ }
76
+ onApplyBold() {
77
+ const bold = !this.styles.bold;
78
+ this.checkFontLoadedAndApplyStyle(new TextStyleModel({ bold }));
79
+ }
80
+ onApplyUnderline() {
81
+ const underline = !this.styles.underline;
82
+ this.changeTextStyle.emit(new TextStyleModel({ underline }));
83
+ }
84
+ onApplyItalic() {
85
+ const italic = !this.styles.italic;
86
+ this.checkFontLoadedAndApplyStyle(new TextStyleModel({ italic }));
87
+ }
88
+ onSelectNumberingTemplate(numberingTemplateType) {
89
+ if (this.numberingTemplateType === numberingTemplateType) {
90
+ this.removeNumberings.emit();
91
+ }
92
+ else {
93
+ const templateLevels = NumberingTemplates.find(x => x.templateType === numberingTemplateType).levels;
94
+ this.setNumberingTemplateType.emit(templateLevels);
95
+ }
96
+ }
97
+ onTableInsertMenuClosed() {
98
+ this.tableInsertMenu._animationDone
99
+ .pipe(filter(e => e.toState === 'void'), take(1))
100
+ .subscribe(() => {
101
+ this.showInsertTableMenu = false;
102
+ this.cdr.markForCheck();
103
+ });
104
+ }
105
+ async onCreate(model) {
106
+ const data = await model.factoryMethod();
107
+ const element = new ElementDataModel(model.type, data.width, data.height, data.guid);
108
+ this.createElement.emit(element);
109
+ }
110
+ checkFontLoadedAndApplyStyle(style) {
111
+ const newStyles = { ...this.styles, ...style };
112
+ const italic = newStyles.italic ? 'italic ' : '';
113
+ const bold = newStyles.bold ? 'bold ' : '';
114
+ const fontStyles = `${italic}${bold}${newStyles.fontSize ?? DEFAULT_FONT_SIZE}pt ${newStyles.fontFamily}`;
115
+ if (document.fonts.check(fontStyles)) {
116
+ this.changeTextStyle.emit(style);
117
+ return;
118
+ }
119
+ document.fonts
120
+ .load(fontStyles)
121
+ .then(() => this.changeTextStyle.emit(style))
122
+ .catch(() => {
123
+ // continue regardless of error
124
+ });
125
+ }
126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MenuDropdownsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: i1.CustomIconService }], target: i0.ɵɵFactoryTarget.Component }); }
127
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: MenuDropdownsComponent, selector: "app-menu-dropdowns", inputs: { isViewOnly: "isViewOnly", hasSelection: "hasSelection", clipboardData: "clipboardData", historyInfo: "historyInfo", styles: "styles" }, outputs: { openFileFromDisk: "openFileFromDisk", addCustomElement: "addCustomElement", saveAs: "saveAs", print: "print", insertPageBreak: "insertPageBreak", createDocument: "createDocument", insertImage: "insertImage", rename: "rename", delete: "delete", openEditMenu: "openEditMenu", redo: "redo", undo: "undo", cutSelected: "cutSelected", copySelected: "copySelected", pasteClipboardData: "pasteClipboardData", selectAll: "selectAll", removeSelected: "removeSelected", insertLink: "insertLink", createElement: "createElement", changeParagraphStyle: "changeParagraphStyle", changeTextStyle: "changeTextStyle", setNumberingTemplateType: "setNumberingTemplateType", removeNumberings: "removeNumberings", insertTable: "insertTable" }, viewQueries: [{ propertyName: "tableInsertMenu", first: true, predicate: ["tableInsert"], descendants: true }], ngImport: i0, template: "<button\n id=\"menu-dropdowns-menu-file\"\n mat-button\n [matMenuTriggerFor]=\"fileMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n File\n</button>\n<mat-menu\n #fileMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-item-new\"\n mat-menu-item\n (click)=\"createDocument.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add-new\"></mat-icon>\n <span class=\"menu-item-text\">New</span>\n </div>\n </button>\n <input\n #fileInput\n class=\"upload-input\"\n accept=\".docx\"\n type=\"file\"\n id=\"file-input\"\n (change)=\"onOpenFileFromDisk($event)\" />\n <button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-item-open-from\"\n mat-menu-item\n (click)=\"fileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-open-from\"></mat-icon>\n <span class=\"menu-item-text\">Open From</span>\n <span class=\"hot-keys\">Ctrl+O</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-save-as\"\n mat-menu-item\n (click)=\"saveAs.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-save\"></mat-icon>\n <span class=\"menu-item-text\">Save As</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-rename\"\n mat-menu-item\n (click)=\"rename.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-rename\"></mat-icon>\n <span class=\"menu-item-text\">Rename</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-print\"\n mat-menu-item\n (click)=\"print.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n <span class=\"menu-item-text\">Print</span>\n <span class=\"hot-keys\">Ctrl+P</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-delete\"\n mat-menu-item\n (click)=\"delete.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n</mat-menu>\n<button\n id=\"menu-dropdowns-menu-edit\"\n mat-button\n [matMenuTriggerFor]=\"editMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n (menuOpened)=\"openEditMenu.emit()\">\n Edit\n</button>\n<mat-menu\n #editMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-undo\"\n mat-menu-item\n [disabled]=\"!canUndo\"\n (click)=\"undo.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-undo\"></mat-icon>\n <span class=\"menu-item-text\">Undo</span>\n <span class=\"hot-keys\">Ctrl+Z</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-redo\"\n mat-menu-item\n [disabled]=\"!canRedo\"\n (click)=\"redo.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-redo\"></mat-icon>\n <span class=\"menu-item-text\">Redo</span>\n <span class=\"hot-keys\">Ctrl+Y</span>\n </div>\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-cut\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"cutSelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-cut\"></mat-icon>\n <span class=\"menu-item-text\">Cut</span>\n <span class=\"hot-keys\">Ctrl+X</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-copy\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"copySelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-file-copy\"></mat-icon>\n <span class=\"menu-item-text\">Copy</span>\n <span class=\"hot-keys\">Ctrl+C</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-paste\"\n mat-menu-item\n [disabled]=\"!clipboardData?.length\"\n (click)=\"pasteClipboardData.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-paste\"></mat-icon>\n <span class=\"menu-item-text\">Paste</span>\n <span class=\"hot-keys\">Ctrl+V</span>\n </div>\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-select-all\"\n mat-menu-item\n (click)=\"selectAll.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-select-all\"></mat-icon>\n <span class=\"menu-item-text\">Select All</span>\n <span class=\"hot-keys\">Ctrl+A</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-delete-text\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"removeSelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n #insertMenuTrigger=\"matMenuTrigger\"\n id=\"menu-dropdowns-menu-insert\"\n mat-button\n [matMenuTriggerFor]=\"insertMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Insert\n</button>\n<mat-menu\n #insertMenu=\"matMenu\"\n class=\"noder-modal\">\n <input\n #imageFileInput\n class=\"upload-input\"\n accept=\"image/gif, image/jpeg, image/png, image/bmp, image/webp\"\n type=\"file\"\n id=\"image-file-input\"\n (change)=\"onInsertImage($event)\" />\n <button\n id=\"menu-dropdowns-menu-item-image\"\n mat-menu-item\n (click)=\"imageFileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-image\"></mat-icon>\n <span class=\"menu-item-text\">Image</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-table\"\n mat-menu-item\n [matMenuTriggerFor]=\"tableInsert\"\n (menuOpened)=\"showInsertTableMenu = true\"\n (menuClosed)=\"onTableInsertMenuClosed()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-table\"></mat-icon>\n Table\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-link\"\n mat-menu-item\n (click)=\"insertLink.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-link-on\"></mat-icon>\n <span class=\"menu-item-text\">Link</span>\n <span class=\"hot-keys\">Ctrl+K</span>\n </div>\n </button>\n <button\n *ngFor=\"let element of elements\"\n id=\"menu-dropdowns-menu-item-{{ element.title }}\"\n mat-menu-item\n (click)=\"onCreate(element)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n <span class=\"menu-item-text\">{{ element.name }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-headers-footers\"\n mat-menu-item\n class=\"hidden\"\n [matMenuTriggerFor]=\"listHeadersFootersMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n <mat-menu\n #listHeadersFootersMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-header\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-header\"></mat-icon>\n <span class=\"menu-item-text\">Header</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-footer\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-bottom\"></mat-icon>\n <span class=\"menu-item-text\">Footer</span>\n </div>\n </button>\n </mat-menu>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-layout\"\n mat-button\n [matMenuTriggerFor]=\"layoutMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Layout\n</button>\n<mat-menu\n #layoutMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-page-break\"\n mat-menu-item\n (click)=\"insertPageBreak.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-page-break\"></mat-icon>\n <span class=\"menu-item-text\">Page Break</span>\n <span class=\"hot-keys\">Ctrl+Enter</span>\n </div>\n </button>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-format\"\n mat-button\n [matMenuTriggerFor]=\"formatMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Format\n</button>\n<mat-menu\n #formatMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-align\"\n mat-menu-item\n [matMenuTriggerFor]=\"listAlignMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Align</span>\n </div>\n </button>\n <mat-menu\n #listAlignMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-align-left\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Left)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Left</span>\n <span class=\"hot-keys\">Ctrl+L</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-align-center\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Center)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-aligncenter\"></mat-icon>\n <span class=\"menu-item-text\">Center</span>\n <span class=\"hot-keys\">Ctrl+E</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-align-right\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Right)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignright\"></mat-icon>\n <span class=\"menu-item-text\">Right</span>\n <span class=\"hot-keys\">Ctrl+R</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-bullets-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletsNumberingMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullets & Numbering</span>\n </div>\n </button>\n <mat-menu\n #listBulletsNumberingMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-bullets\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullet List Menu</span>\n </div>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList1)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList2)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList3)\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList4)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList5)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList6)\"></mat-icon>\n </div>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listNumberedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n <span class=\"menu-item-text\">Numbered List Menu</span>\n </div>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList1)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList2)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList3)\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList4)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList5)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList6)\"></mat-icon>\n </div>\n </mat-menu>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-text\"\n mat-menu-item\n [matMenuTriggerFor]=\"listTextMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Text</span>\n </div>\n </button>\n <mat-menu\n #listTextMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-bold\"\n mat-menu-item\n (click)=\"onApplyBold()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Bold</span>\n <span class=\"hot-keys\">Ctrl+B</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-italic\"\n mat-menu-item\n (click)=\"onApplyItalic()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-italic\"></mat-icon>\n <span class=\"menu-item-text\">Italic</span>\n <span class=\"hot-keys\">Ctrl+I</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-underlined\"\n mat-menu-item\n (click)=\"onApplyUnderline()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-underlined\"></mat-icon>\n <span class=\"menu-item-text\">Underlined</span>\n <span class=\"hot-keys\">Ctrl+U</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-header-footer\"\n mat-menu-item\n class=\"hidden\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n</mat-menu>\n<mat-menu\n #tableInsert=\"matMenu\"\n class=\"insert-table noder-modal\">\n <app-insert-table\n *ngIf=\"showInsertTableMenu\"\n (selectSizes)=\"insertTable.emit($event)\" />\n</mat-menu>\n", styles: [":host{display:flex;align-items:center;height:100%}.upload-input{display:none}.menu-buttons mat-icon{width:24px;height:24px;font-size:24px}.heading-menu{display:inline-flex;width:210px}.hot-keys{text-align:end;width:auto}.menu-item-text{white-space:nowrap;width:64%}.mat-mdc-menu-item .mat-icon{margin-right:4px;width:28px}.hidden{display:none}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none}.list-icon .selected,.list-icon .selected:hover,.list-number .selected,.list-number .selected:hover{border-width:2px;border-style:solid}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.InsertTableComponent, selector: "app-insert-table", outputs: ["selectSizes"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
128
+ }
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MenuDropdownsComponent, decorators: [{
130
+ type: Component,
131
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-menu-dropdowns', template: "<button\n id=\"menu-dropdowns-menu-file\"\n mat-button\n [matMenuTriggerFor]=\"fileMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n File\n</button>\n<mat-menu\n #fileMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-item-new\"\n mat-menu-item\n (click)=\"createDocument.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add-new\"></mat-icon>\n <span class=\"menu-item-text\">New</span>\n </div>\n </button>\n <input\n #fileInput\n class=\"upload-input\"\n accept=\".docx\"\n type=\"file\"\n id=\"file-input\"\n (change)=\"onOpenFileFromDisk($event)\" />\n <button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-item-open-from\"\n mat-menu-item\n (click)=\"fileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-open-from\"></mat-icon>\n <span class=\"menu-item-text\">Open From</span>\n <span class=\"hot-keys\">Ctrl+O</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-save-as\"\n mat-menu-item\n (click)=\"saveAs.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-save\"></mat-icon>\n <span class=\"menu-item-text\">Save As</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-rename\"\n mat-menu-item\n (click)=\"rename.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-rename\"></mat-icon>\n <span class=\"menu-item-text\">Rename</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-print\"\n mat-menu-item\n (click)=\"print.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n <span class=\"menu-item-text\">Print</span>\n <span class=\"hot-keys\">Ctrl+P</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-delete\"\n mat-menu-item\n (click)=\"delete.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n</mat-menu>\n<button\n id=\"menu-dropdowns-menu-edit\"\n mat-button\n [matMenuTriggerFor]=\"editMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n (menuOpened)=\"openEditMenu.emit()\">\n Edit\n</button>\n<mat-menu\n #editMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-undo\"\n mat-menu-item\n [disabled]=\"!canUndo\"\n (click)=\"undo.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-undo\"></mat-icon>\n <span class=\"menu-item-text\">Undo</span>\n <span class=\"hot-keys\">Ctrl+Z</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-redo\"\n mat-menu-item\n [disabled]=\"!canRedo\"\n (click)=\"redo.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-redo\"></mat-icon>\n <span class=\"menu-item-text\">Redo</span>\n <span class=\"hot-keys\">Ctrl+Y</span>\n </div>\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-cut\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"cutSelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-cut\"></mat-icon>\n <span class=\"menu-item-text\">Cut</span>\n <span class=\"hot-keys\">Ctrl+X</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-copy\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"copySelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-file-copy\"></mat-icon>\n <span class=\"menu-item-text\">Copy</span>\n <span class=\"hot-keys\">Ctrl+C</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-paste\"\n mat-menu-item\n [disabled]=\"!clipboardData?.length\"\n (click)=\"pasteClipboardData.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-paste\"></mat-icon>\n <span class=\"menu-item-text\">Paste</span>\n <span class=\"hot-keys\">Ctrl+V</span>\n </div>\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-select-all\"\n mat-menu-item\n (click)=\"selectAll.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-select-all\"></mat-icon>\n <span class=\"menu-item-text\">Select All</span>\n <span class=\"hot-keys\">Ctrl+A</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-delete-text\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"removeSelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n #insertMenuTrigger=\"matMenuTrigger\"\n id=\"menu-dropdowns-menu-insert\"\n mat-button\n [matMenuTriggerFor]=\"insertMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Insert\n</button>\n<mat-menu\n #insertMenu=\"matMenu\"\n class=\"noder-modal\">\n <input\n #imageFileInput\n class=\"upload-input\"\n accept=\"image/gif, image/jpeg, image/png, image/bmp, image/webp\"\n type=\"file\"\n id=\"image-file-input\"\n (change)=\"onInsertImage($event)\" />\n <button\n id=\"menu-dropdowns-menu-item-image\"\n mat-menu-item\n (click)=\"imageFileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-image\"></mat-icon>\n <span class=\"menu-item-text\">Image</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-table\"\n mat-menu-item\n [matMenuTriggerFor]=\"tableInsert\"\n (menuOpened)=\"showInsertTableMenu = true\"\n (menuClosed)=\"onTableInsertMenuClosed()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-table\"></mat-icon>\n Table\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-link\"\n mat-menu-item\n (click)=\"insertLink.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-link-on\"></mat-icon>\n <span class=\"menu-item-text\">Link</span>\n <span class=\"hot-keys\">Ctrl+K</span>\n </div>\n </button>\n <button\n *ngFor=\"let element of elements\"\n id=\"menu-dropdowns-menu-item-{{ element.title }}\"\n mat-menu-item\n (click)=\"onCreate(element)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n <span class=\"menu-item-text\">{{ element.name }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-headers-footers\"\n mat-menu-item\n class=\"hidden\"\n [matMenuTriggerFor]=\"listHeadersFootersMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n <mat-menu\n #listHeadersFootersMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-header\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-header\"></mat-icon>\n <span class=\"menu-item-text\">Header</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-footer\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-bottom\"></mat-icon>\n <span class=\"menu-item-text\">Footer</span>\n </div>\n </button>\n </mat-menu>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-layout\"\n mat-button\n [matMenuTriggerFor]=\"layoutMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Layout\n</button>\n<mat-menu\n #layoutMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-page-break\"\n mat-menu-item\n (click)=\"insertPageBreak.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-page-break\"></mat-icon>\n <span class=\"menu-item-text\">Page Break</span>\n <span class=\"hot-keys\">Ctrl+Enter</span>\n </div>\n </button>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-format\"\n mat-button\n [matMenuTriggerFor]=\"formatMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Format\n</button>\n<mat-menu\n #formatMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-align\"\n mat-menu-item\n [matMenuTriggerFor]=\"listAlignMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Align</span>\n </div>\n </button>\n <mat-menu\n #listAlignMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-align-left\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Left)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Left</span>\n <span class=\"hot-keys\">Ctrl+L</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-align-center\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Center)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-aligncenter\"></mat-icon>\n <span class=\"menu-item-text\">Center</span>\n <span class=\"hot-keys\">Ctrl+E</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-align-right\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Right)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignright\"></mat-icon>\n <span class=\"menu-item-text\">Right</span>\n <span class=\"hot-keys\">Ctrl+R</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-bullets-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletsNumberingMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullets & Numbering</span>\n </div>\n </button>\n <mat-menu\n #listBulletsNumberingMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-bullets\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullet List Menu</span>\n </div>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList1)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList2)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList3)\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList4)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList5)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList6)\"></mat-icon>\n </div>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listNumberedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n <span class=\"menu-item-text\">Numbered List Menu</span>\n </div>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList1)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList2)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList3)\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList4)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList5)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList6)\"></mat-icon>\n </div>\n </mat-menu>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-text\"\n mat-menu-item\n [matMenuTriggerFor]=\"listTextMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Text</span>\n </div>\n </button>\n <mat-menu\n #listTextMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-bold\"\n mat-menu-item\n (click)=\"onApplyBold()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Bold</span>\n <span class=\"hot-keys\">Ctrl+B</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-italic\"\n mat-menu-item\n (click)=\"onApplyItalic()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-italic\"></mat-icon>\n <span class=\"menu-item-text\">Italic</span>\n <span class=\"hot-keys\">Ctrl+I</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-underlined\"\n mat-menu-item\n (click)=\"onApplyUnderline()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-underlined\"></mat-icon>\n <span class=\"menu-item-text\">Underlined</span>\n <span class=\"hot-keys\">Ctrl+U</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-header-footer\"\n mat-menu-item\n class=\"hidden\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n</mat-menu>\n<mat-menu\n #tableInsert=\"matMenu\"\n class=\"insert-table noder-modal\">\n <app-insert-table\n *ngIf=\"showInsertTableMenu\"\n (selectSizes)=\"insertTable.emit($event)\" />\n</mat-menu>\n", styles: [":host{display:flex;align-items:center;height:100%}.upload-input{display:none}.menu-buttons mat-icon{width:24px;height:24px;font-size:24px}.heading-menu{display:inline-flex;width:210px}.hot-keys{text-align:end;width:auto}.menu-item-text{white-space:nowrap;width:64%}.mat-mdc-menu-item .mat-icon{margin-right:4px;width:28px}.hidden{display:none}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none}.list-icon .selected,.list-icon .selected:hover,.list-number .selected,.list-number .selected:hover{border-width:2px;border-style:solid}\n"] }]
132
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: i1.CustomIconService }], propDecorators: { isViewOnly: [{
133
+ type: Input
134
+ }], hasSelection: [{
135
+ type: Input
136
+ }], clipboardData: [{
137
+ type: Input
138
+ }], historyInfo: [{
139
+ type: Input
140
+ }], styles: [{
141
+ type: Input
142
+ }], openFileFromDisk: [{
143
+ type: Output
144
+ }], addCustomElement: [{
145
+ type: Output
146
+ }], saveAs: [{
147
+ type: Output
148
+ }], print: [{
149
+ type: Output
150
+ }], insertPageBreak: [{
151
+ type: Output
152
+ }], createDocument: [{
153
+ type: Output
154
+ }], insertImage: [{
155
+ type: Output
156
+ }], rename: [{
157
+ type: Output
158
+ }], delete: [{
159
+ type: Output
160
+ }], openEditMenu: [{
161
+ type: Output
162
+ }], redo: [{
163
+ type: Output
164
+ }], undo: [{
165
+ type: Output
166
+ }], cutSelected: [{
167
+ type: Output
168
+ }], copySelected: [{
169
+ type: Output
170
+ }], pasteClipboardData: [{
171
+ type: Output
172
+ }], selectAll: [{
173
+ type: Output
174
+ }], removeSelected: [{
175
+ type: Output
176
+ }], insertLink: [{
177
+ type: Output
178
+ }], createElement: [{
179
+ type: Output
180
+ }], changeParagraphStyle: [{
181
+ type: Output
182
+ }], changeTextStyle: [{
183
+ type: Output
184
+ }], setNumberingTemplateType: [{
185
+ type: Output
186
+ }], removeNumberings: [{
187
+ type: Output
188
+ }], insertTable: [{
189
+ type: Output
190
+ }], tableInsertMenu: [{
191
+ type: ViewChild,
192
+ args: ['tableInsert']
193
+ }] } });
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kcm9wZG93bnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3ItdG9vbGJhci9tZW51LWRyb3Bkb3ducy9tZW51LWRyb3Bkb3ducy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci10b29sYmFyL21lbnUtZHJvcGRvd25zL21lbnUtZHJvcGRvd25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBWSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkVBQTJFLENBQUM7QUFDN0csT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFJbkgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7OztBQVF2RSxNQUFNLE9B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O2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUcsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsY0FBYztzQkFBdkIsTUFBTTtnQkFFRyxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsb0JBQW9CO3NCQUE3QixNQUFNO2dCQUVHLGVBQWU7c0JBQXhCLE1BQU07Z0JBRUcsd0JBQXdCO3NCQUFqQyxNQUFNO2dCQUVHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVtQixlQUFlO3NCQUF4QyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1hdE1lbnUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcblxuaW1wb3J0IHsgQWxpZ25tZW50IH0gZnJvbSAnLi4vZW51bXMvYWxpZ25tZW50LmVudW0nO1xuaW1wb3J0IHsgQ3VzdG9tSWNvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jdXN0b20taWNvbi5zZXJ2aWNlJztcbmltcG9ydCB7IERFRkFVTFRfRk9OVF9TSVpFIH0gZnJvbSAnLi4vLi4vZWRpdG9yL2NvcmUvY29uc3RhbnRzL2VkaXRvci5jb25zdCc7XG5pbXBvcnQgeyBFbGVtZW50RGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vZWRpdG9yL2N1c3RvbS1jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2VsZW1lbnQtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBFWFRFUk5BTF9FTEVNRU5UX1NFUlZJQ0UgfSBmcm9tICcuLi8uLi9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9leHRlcm5hbC1lbGVtZW50cy5jb25zdCc7XG5pbXBvcnQgeyBFeHRlcm5hbEVsZW1lbnRNb2RlbCB9IGZyb20gJy4uLy4uL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L21vZGVscy9leHRlcm5hbC1lbGVtZW50Lm1vZGVsJztcbmltcG9ydCB7IElUb29sYmFyU3R5bGVzIH0gZnJvbSAnLi4vLi4vZWRpdG9yL2NvcmUvaW50ZXJmYWNlcy90b29sYmFyLXN0eWxlcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTnVtYmVyaW5nTGV2ZWxNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvbnVtYmVyaW5nLWxldmVsLm1vZGVsJztcbmltcG9ydCB7IE51bWJlcmluZ1RlbXBsYXRlcyB9IGZyb20gJy4uL2NvbnN0YW50cy9udW1iZXJpbmctdGVtcGxhdGVzLmNvbnN0JztcbmltcG9ydCB7IE51bWJlcmluZ1RlbXBsYXRlVHlwZSB9IGZyb20gJy4uL2VudW1zL251bWJlcmluZy10ZW1wbGF0ZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgT3BlcmF0aW9uc0hpc3RvcnlJbmZvTW9kZWwgfSBmcm9tICcuLi8uLi9lZGl0b3Ivb3BlcmF0aW9uLWhpc3Rvcnkvb3BlcmF0aW9ucy1oaXN0b3J5LWluZm8ubW9kZWwnO1xuaW1wb3J0IHsgUGFyYWdyYXBoU3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLXN0eWxlLm1vZGVsJztcbmltcG9ydCB7IFRleHRTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90ZXh0LXN0eWxlLm1vZGVsJztcbmltcG9ydCB7IFRvb2xiYXJTdHlsZXNIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL3Rvb2xiYXItc3R5bGVzLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnYXBwLW1lbnUtZHJvcGRvd25zJyxcbiAgICB0ZW1wbGF0ZVVybDogJ21lbnUtZHJvcGRvd25zLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnbWVudS1kcm9wZG93bnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNZW51RHJvcGRvd25zQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBpc1ZpZXdPbmx5OiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgaGFzU2VsZWN0aW9uOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgY2xpcGJvYXJkRGF0YTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgaGlzdG9yeUluZm8odmFsdWU6IE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsKSB7XG4gICAgICAgIHRoaXMuY2FuVW5kbyA9IHZhbHVlLnN0ZXAgIT09IC0xO1xuICAgICAgICB0aGlzLmNhblJlZG8gPSB2YWx1ZS5zdGVwIDwgdmFsdWUubGFzdFN0ZXA7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgc3R5bGVzKHZhbHVlOiBJVG9vbGJhclN0eWxlcykge1xuICAgICAgICB0aGlzLl9zdHlsZXMgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5udW1iZXJpbmdUZW1wbGF0ZVR5cGUgPSBUb29sYmFyU3R5bGVzSGVscGVyLmdldE51bWJlcmluZ1RlbXBsYXRlVHlwZSh2YWx1ZS5udW1iZXJpbmdMZXZlbHNTdHlsZXMpO1xuICAgIH1cbiAgICBnZXQgc3R5bGVzKCk6IElUb29sYmFyU3R5bGVzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlcztcbiAgICB9XG4gICAgcHJpdmF0ZSBfc3R5bGVzOiBJVG9vbGJhclN0eWxlcztcblxuICAgIEBPdXRwdXQoKSBvcGVuRmlsZUZyb21EaXNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KCkgYWRkQ3VzdG9tRWxlbWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RWxlbWVudERhdGFNb2RlbD4oKTtcblxuICAgIEBPdXRwdXQoKSBzYXZlQXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgcHJpbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgaW5zZXJ0UGFnZUJyZWFrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGNyZWF0ZURvY3VtZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGluc2VydEltYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KCkgcmVuYW1lID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoKSBvcGVuRWRpdE1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgcmVkbyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoKSB1bmRvID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGN1dFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGNvcHlTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoKSBwYXN0ZUNsaXBib2FyZERhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgc2VsZWN0QWxsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIHJlbW92ZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGluc2VydExpbmsgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgY3JlYXRlRWxlbWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RWxlbWVudERhdGFNb2RlbD4oKTtcblxuICAgIEBPdXRwdXQoKSBjaGFuZ2VQYXJhZ3JhcGhTdHlsZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFyYWdyYXBoU3R5bGVNb2RlbD4oKTtcblxuICAgIEBPdXRwdXQoKSBjaGFuZ2VUZXh0U3R5bGUgPSBuZXcgRXZlbnRFbWl0dGVyPFRleHRTdHlsZU1vZGVsPigpO1xuXG4gICAgQE91dHB1dCgpIHNldE51bWJlcmluZ1RlbXBsYXRlVHlwZSA9IG5ldyBFdmVudEVtaXR0ZXI8TnVtYmVyaW5nTGV2ZWxNb2RlbFtdPigpO1xuXG4gICAgQE91dHB1dCgpIHJlbW92ZU51bWJlcmluZ3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgaW5zZXJ0VGFibGUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcm93czogbnVtYmVyOyBjb2x1bW5zOiBudW1iZXIgfT4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3RhYmxlSW5zZXJ0JykgdGFibGVJbnNlcnRNZW51OiBNYXRNZW51O1xuXG4gICAgY2FuVW5kbzogYm9vbGVhbjtcblxuICAgIGNhblJlZG86IGJvb2xlYW47XG5cbiAgICBudW1iZXJpbmdUZW1wbGF0ZVR5cGU6IE51bWJlcmluZ1RlbXBsYXRlVHlwZSB8IG51bGw7XG5cbiAgICBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzID0gTnVtYmVyaW5nVGVtcGxhdGVUeXBlO1xuXG4gICAgc2hvd0luc2VydFRhYmxlTWVudSA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgZWxlbWVudHM6IEV4dGVybmFsRWxlbWVudE1vZGVsW107XG5cbiAgICByZWFkb25seSBhbGlnbm1lbnRzID0gQWxpZ25tZW50O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBjdXN0b21JY29uU2VydmljZTogQ3VzdG9tSWNvblNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5jdXN0b21JY29uU2VydmljZS5yZWdpc3RlcigpO1xuICAgICAgICB0aGlzLmVsZW1lbnRzID0gdGhpcy5pbmplY3Rvci5nZXQoRVhURVJOQUxfRUxFTUVOVF9TRVJWSUNFKS5lbGVtZW50cztcbiAgICB9XG5cbiAgICBvbk9wZW5GaWxlRnJvbURpc2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5GaWxlRnJvbURpc2suZW1pdChldmVudCk7XG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IG51bGw7XG4gICAgfVxuXG4gICAgb25JbnNlcnRJbWFnZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5zZXJ0SW1hZ2UuZW1pdChldmVudCk7XG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IG51bGw7XG4gICAgfVxuXG4gICAgb25TZWxlY3RGb3JtYXQoYWxpZ25tZW50OiBBbGlnbm1lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VQYXJhZ3JhcGhTdHlsZS5lbWl0KG5ldyBQYXJhZ3JhcGhTdHlsZU1vZGVsKHsgYWxpZ25tZW50IH0pKTtcbiAgICB9XG5cbiAgICBvbkFwcGx5Qm9sZCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYm9sZCA9ICF0aGlzLnN0eWxlcy5ib2xkO1xuICAgICAgICB0aGlzLmNoZWNrRm9udExvYWRlZEFuZEFwcGx5U3R5bGUobmV3IFRleHRTdHlsZU1vZGVsKHsgYm9sZCB9KSk7XG4gICAgfVxuXG4gICAgb25BcHBseVVuZGVybGluZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdW5kZXJsaW5lID0gIXRoaXMuc3R5bGVzLnVuZGVybGluZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VUZXh0U3R5bGUuZW1pdChuZXcgVGV4dFN0eWxlTW9kZWwoeyB1bmRlcmxpbmUgfSkpO1xuICAgIH1cblxuICAgIG9uQXBwbHlJdGFsaWMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGl0YWxpYyA9ICF0aGlzLnN0eWxlcy5pdGFsaWM7XG4gICAgICAgIHRoaXMuY2hlY2tGb250TG9hZGVkQW5kQXBwbHlTdHlsZShuZXcgVGV4dFN0eWxlTW9kZWwoeyBpdGFsaWMgfSkpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlOiBOdW1iZXJpbmdUZW1wbGF0ZVR5cGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlTnVtYmVyaW5ncy5lbWl0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZUxldmVscyA9IE51bWJlcmluZ1RlbXBsYXRlcy5maW5kKHggPT4geC50ZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZSkubGV2ZWxzO1xuICAgICAgICAgICAgdGhpcy5zZXROdW1iZXJpbmdUZW1wbGF0ZVR5cGUuZW1pdCh0ZW1wbGF0ZUxldmVscyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRhYmxlSW5zZXJ0TWVudUNsb3NlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJsZUluc2VydE1lbnUuX2FuaW1hdGlvbkRvbmVcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihlID0+IGUudG9TdGF0ZSA9PT0gJ3ZvaWQnKSxcbiAgICAgICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dJbnNlcnRUYWJsZU1lbnUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFzeW5jIG9uQ3JlYXRlKG1vZGVsOiBFeHRlcm5hbEVsZW1lbnRNb2RlbCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgbW9kZWwuZmFjdG9yeU1ldGhvZCgpO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gbmV3IEVsZW1lbnREYXRhTW9kZWwobW9kZWwudHlwZSwgZGF0YS53aWR0aCwgZGF0YS5oZWlnaHQsIGRhdGEuZ3VpZCk7XG4gICAgICAgIHRoaXMuY3JlYXRlRWxlbWVudC5lbWl0KGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tGb250TG9hZGVkQW5kQXBwbHlTdHlsZShzdHlsZTogVGV4dFN0eWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3U3R5bGVzID0geyAuLi50aGlzLnN0eWxlcywgLi4uc3R5bGUgfTtcbiAgICAgICAgY29uc3QgaXRhbGljID0gbmV3U3R5bGVzLml0YWxpYyA/ICdpdGFsaWMgJyA6ICcnO1xuICAgICAgICBjb25zdCBib2xkID0gbmV3U3R5bGVzLmJvbGQgPyAnYm9sZCAnIDogJyc7XG4gICAgICAgIGNvbnN0IGZvbnRTdHlsZXMgPSBgJHtpdGFsaWN9JHtib2xkfSR7bmV3U3R5bGVzLmZvbnRTaXplID8/IERFRkFVTFRfRk9OVF9TSVpFfXB0ICR7bmV3U3R5bGVzLmZvbnRGYW1pbHl9YDtcblxuICAgICAgICBpZiAoZG9jdW1lbnQuZm9udHMuY2hlY2soZm9udFN0eWxlcykpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVGV4dFN0eWxlLmVtaXQoc3R5bGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZG9jdW1lbnQuZm9udHNcbiAgICAgICAgICAgIC5sb2FkKGZvbnRTdHlsZXMpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB0aGlzLmNoYW5nZVRleHRTdHlsZS5lbWl0KHN0eWxlKSlcbiAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gY29udGludWUgcmVnYXJkbGVzcyBvZiBlcnJvclxuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1maWxlXCJcbiAgICBtYXQtYnV0dG9uXG4gICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImZpbGVNZW51XCJcbiAgICBbbWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXNdPVwiZmFsc2VcIj5cbiAgICBGaWxlXG48L2J1dHRvbj5cbjxtYXQtbWVudVxuICAgICNmaWxlTWVudT1cIm1hdE1lbnVcIlxuICAgIGNsYXNzPVwibm9kZXItbW9kYWxcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiIWlzVmlld09ubHlcIlxuICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1lbnUtaXRlbS1uZXdcIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIChjbGljayk9XCJjcmVhdGVEb2N1bWVudC5lbWl0KClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1hZGQtbmV3XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5OZXc8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxpbnB1dFxuICAgICAgICAjZmlsZUlucHV0XG4gICAgICAgIGNsYXNzPVwidXBsb2FkLWlucHV0XCJcbiAgICAgICAgYWNjZXB0PVwiLmRvY3hcIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGlkPVwiZmlsZS1pbnB1dFwiXG4gICAgICAgIChjaGFuZ2UpPVwib25PcGVuRmlsZUZyb21EaXNrKCRldmVudClcIiAvPlxuICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCIhaXNWaWV3T25seVwiXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLW9wZW4tZnJvbVwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tb3Blbi1mcm9tXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5PcGVuIEZyb208L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtPPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLXNhdmUtYXNcIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIChjbGljayk9XCJzYXZlQXMuZW1pdCgpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tc2F2ZVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+U2F2ZSBBczwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1lbnUtaXRlbS1yZW5hbWVcIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIChjbGljayk9XCJyZW5hbWUuZW1pdCgpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tcmVuYW1lXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5SZW5hbWU8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tcHJpbnRcIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIChjbGljayk9XCJwcmludC5lbWl0KClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1wcmludFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+UHJpbnQ8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtQPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWRlbGV0ZVwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgKGNsaWNrKT1cImRlbGV0ZS5lbWl0KClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1kZWxldGVcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPkRlbGV0ZTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG48L21hdC1tZW51PlxuPGJ1dHRvblxuICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1lZGl0XCJcbiAgICBtYXQtYnV0dG9uXG4gICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImVkaXRNZW51XCJcbiAgICBbbWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXNdPVwiZmFsc2VcIlxuICAgIChtZW51T3BlbmVkKT1cIm9wZW5FZGl0TWVudS5lbWl0KClcIj5cbiAgICBFZGl0XG48L2J1dHRvbj5cbjxtYXQtbWVudVxuICAgICNlZGl0TWVudT1cIm1hdE1lbnVcIlxuICAgIGNsYXNzPVwibm9kZXItbW9kYWxcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLXVuZG9cIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuVW5kb1wiXG4gICAgICAgIChjbGljayk9XCJ1bmRvLmVtaXQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLXVuZG9cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPlVuZG88L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtaPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLXJlZG9cIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuUmVkb1wiXG4gICAgICAgIChjbGljayk9XCJyZWRvLmVtaXQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLXJlZG9cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPlJlZG88L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtZPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8aHIgY2xhc3M9XCJub2Rlci1kaXZpZGVyXCIgLz5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWN1dFwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNTZWxlY3Rpb25cIlxuICAgICAgICAoY2xpY2spPVwiY3V0U2VsZWN0ZWQuZW1pdCgpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tY29udGVudC1jdXRcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPkN1dDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG90LWtleXNcIj5DdHJsK1g8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tY29weVwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNTZWxlY3Rpb25cIlxuICAgICAgICAoY2xpY2spPVwiY29weVNlbGVjdGVkLmVtaXQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWZpbGUtY29weVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+Q29weTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG90LWtleXNcIj5DdHJsK0M8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tcGFzdGVcIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2xpcGJvYXJkRGF0YT8ubGVuZ3RoXCJcbiAgICAgICAgKGNsaWNrKT1cInBhc3RlQ2xpcGJvYXJkRGF0YS5lbWl0KClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1jb250ZW50LXBhc3RlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5QYXN0ZTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG90LWtleXNcIj5DdHJsK1Y8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxociBjbGFzcz1cIm5vZGVyLWRpdmlkZXJcIiAvPlxuICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tc2VsZWN0LWFsbFwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFsbC5lbWl0KClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1zZWxlY3QtYWxsXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5TZWxlY3QgQWxsPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob3Qta2V5c1wiPkN0cmwrQTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1lbnUtaXRlbS1kZWxldGUtdGV4dFwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNTZWxlY3Rpb25cIlxuICAgICAgICAoY2xpY2spPVwicmVtb3ZlU2VsZWN0ZWQuZW1pdCgpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZGVsZXRlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5EZWxldGU8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuPC9tYXQtbWVudT5cbjxidXR0b25cbiAgICAqbmdJZj1cIiFpc1ZpZXdPbmx5XCJcbiAgICAjaW5zZXJ0TWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiXG4gICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWluc2VydFwiXG4gICAgbWF0LWJ1dHRvblxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJpbnNlcnRNZW51XCJcbiAgICBbbWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXNdPVwiZmFsc2VcIj5cbiAgICBJbnNlcnRcbjwvYnV0dG9uPlxuPG1hdC1tZW51XG4gICAgI2luc2VydE1lbnU9XCJtYXRNZW51XCJcbiAgICBjbGFzcz1cIm5vZGVyLW1vZGFsXCI+XG4gICAgPGlucHV0XG4gICAgICAgICNpbWFnZUZpbGVJbnB1dFxuICAgICAgICBjbGFzcz1cInVwbG9hZC1pbnB1dFwiXG4gICAgICAgIGFjY2VwdD1cImltYWdlL2dpZiwgaW1hZ2UvanBlZywgaW1hZ2UvcG5nLCBpbWFnZS9ibXAsIGltYWdlL3dlYnBcIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGlkPVwiaW1hZ2UtZmlsZS1pbnB1dFwiXG4gICAgICAgIChjaGFuZ2UpPVwib25JbnNlcnRJbWFnZSgkZXZlbnQpXCIgLz5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWltYWdlXCJcbiAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAoY2xpY2spPVwiaW1hZ2VGaWxlSW5wdXQuY2xpY2soKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWltYWdlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5JbWFnZTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1lbnUtaXRlbS10YWJsZVwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRhYmxlSW5zZXJ0XCJcbiAgICAgICAgKG1lbnVPcGVuZWQpPVwic2hvd0luc2VydFRhYmxlTWVudSA9IHRydWVcIlxuICAgICAgICAobWVudUNsb3NlZCk9XCJvblRhYmxlSW5zZXJ0TWVudUNsb3NlZCgpXCI+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgZm9udEljb249XCJpY29uLXRhYmxlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgVGFibGVcbiAgICA8L2J1dHRvbj5cbiAgICA8aHIgY2xhc3M9XCJub2Rlci1kaXZpZGVyXCIgLz5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWxpbmtcIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIChjbGljayk9XCJpbnNlcnRMaW5rLmVtaXQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWxpbmstb25cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPkxpbms8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtLPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIGVsZW1lbnRzXCJcbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0te3sgZWxlbWVudC50aXRsZSB9fVwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgKGNsaWNrKT1cIm9uQ3JlYXRlKGVsZW1lbnQpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cInt7IGVsZW1lbnQuaWNvbiB9fVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+e3sgZWxlbWVudC5uYW1lIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWhlYWRlcnMtZm9vdGVyc1wiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgY2xhc3M9XCJoaWRkZW5cIlxuICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibGlzdEhlYWRlcnNGb290ZXJzTWVudVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWhlYWRlcnMtZm9vdGVyc1wiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+SGVhZGVycyAmIEZvb3RlcnM8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxtYXQtbWVudVxuICAgICAgICAjbGlzdEhlYWRlcnNGb290ZXJzTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICBjbGFzcz1cIm5vZGVyLW1vZGFsXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWhlYWRlclwiXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1oZWFkZXJcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5IZWFkZXI8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWZvb3RlclwiXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1ib3R0b21cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5Gb290ZXI8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtbWVudT5cbjwvbWF0LW1lbnU+XG48YnV0dG9uXG4gICAgKm5nSWY9XCIhaXNWaWV3T25seVwiXG4gICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWxheW91dFwiXG4gICAgbWF0LWJ1dHRvblxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJsYXlvdXRNZW51XCJcbiAgICBbbWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXNdPVwiZmFsc2VcIj5cbiAgICBMYXlvdXRcbjwvYnV0dG9uPlxuPG1hdC1tZW51XG4gICAgI2xheW91dE1lbnU9XCJtYXRNZW51XCJcbiAgICBjbGFzcz1cIm5vZGVyLW1vZGFsXCI+XG4gICAgPGJ1dHRvblxuICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1lbnUtaXRlbS1wYWdlLWJyZWFrXCJcbiAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAoY2xpY2spPVwiaW5zZXJ0UGFnZUJyZWFrLmVtaXQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLXBhZ2UtYnJlYWtcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPlBhZ2UgQnJlYWs8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtFbnRlcjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG48L21hdC1tZW51PlxuPGJ1dHRvblxuICAgICpuZ0lmPVwiIWlzVmlld09ubHlcIlxuICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1mb3JtYXRcIlxuICAgIG1hdC1idXR0b25cbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZm9ybWF0TWVudVwiXG4gICAgW21hdE1lbnVUcmlnZ2VyUmVzdG9yZUZvY3VzXT1cImZhbHNlXCI+XG4gICAgRm9ybWF0XG48L2J1dHRvbj5cbjxtYXQtbWVudVxuICAgICNmb3JtYXRNZW51PVwibWF0TWVudVwiXG4gICAgY2xhc3M9XCJub2Rlci1tb2RhbFwiPlxuICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tYWxpZ25cIlxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJsaXN0QWxpZ25NZW51XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWFsaWdubGVmdFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+QWxpZ248L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxtYXQtbWVudVxuICAgICAgICAjbGlzdEFsaWduTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICBjbGFzcz1cIm5vZGVyLW1vZGFsXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWFsaWduLWxlZnRcIlxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0Rm9ybWF0KGFsaWdubWVudHMuTGVmdClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWFsaWdubGVmdFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPkxlZnQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob3Qta2V5c1wiPkN0cmwrTDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tYWxpZ24tY2VudGVyXCJcbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdEZvcm1hdChhbGlnbm1lbnRzLkNlbnRlcilcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWFsaWduY2VudGVyXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+Q2VudGVyPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG90LWtleXNcIj5DdHJsK0U8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWFsaWduLXJpZ2h0XCJcbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdEZvcm1hdChhbGlnbm1lbnRzLlJpZ2h0KVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVudVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1mb3JtYXQtYWxpZ25yaWdodFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPlJpZ2h0PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG90LWtleXNcIj5DdHJsK1I8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtbWVudT5cbiAgICA8YnV0dG9uXG4gICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWJ1bGxldHMtbnVtYmVyaW5nXCJcbiAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibGlzdEJ1bGxldHNOdW1iZXJpbmdNZW51XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWJ1bGxldGVkXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5CdWxsZXRzICYgTnVtYmVyaW5nPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bWF0LW1lbnVcbiAgICAgICAgI2xpc3RCdWxsZXRzTnVtYmVyaW5nTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICBjbGFzcz1cIm5vZGVyLW1vZGFsXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWJ1bGxldHNcIlxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImxpc3RCdWxsZXRlZE1lbnVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWJ1bGxldGVkXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+QnVsbGV0IExpc3QgTWVudTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51XG4gICAgICAgICAgICAjbGlzdEJ1bGxldGVkTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1udW1iZXJpbmctb3ZlcmxheSBub2Rlci1tb2RhbFwiXG4gICAgICAgICAgICB5UG9zaXRpb249XCJiZWxvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaWNvbiBsaXN0LW1hcmtlclwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBzdmdJY29uPVwibWFya2VyLTFcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLkJ1bGxldExpc3QxXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlcy5CdWxsZXRMaXN0MSlcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBzdmdJY29uPVwibWFya2VyLTJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLkJ1bGxldExpc3QyXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlcy5CdWxsZXRMaXN0MilcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBzdmdJY29uPVwibWFya2VyLTNcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLkJ1bGxldExpc3QzXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlcy5CdWxsZXRMaXN0MylcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pY29uIGxpc3QtbWFya2VyXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIHN2Z0ljb249XCJtYXJrZXItNFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJudW1iZXJpbmdUZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZXMuQnVsbGV0TGlzdDRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLkJ1bGxldExpc3Q0KVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIHN2Z0ljb249XCJtYXJrZXItNVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJudW1iZXJpbmdUZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZXMuQnVsbGV0TGlzdDVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLkJ1bGxldExpc3Q1KVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIHN2Z0ljb249XCJtYXJrZXItNlwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJudW1iZXJpbmdUZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZXMuQnVsbGV0TGlzdDZcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLkJ1bGxldExpc3Q2KVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tbnVtYmVyaW5nXCJcbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJsaXN0TnVtYmVyZWRNZW51XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWZvcm1hdC1udW1iZXJlZFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGV4dFwiPk51bWJlcmVkIExpc3QgTWVudTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51XG4gICAgICAgICAgICAjbGlzdE51bWJlcmVkTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1udW1iZXJpbmctb3ZlcmxheSBub2Rlci1tb2RhbFwiXG4gICAgICAgICAgICB5UG9zaXRpb249XCJiZWxvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaWNvbiBsaXN0LW51bWJlclwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBzdmdJY29uPVwibnVtYmVyLTFcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLk51bWJlckxpc3QxXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlcy5OdW1iZXJMaXN0MSlcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBzdmdJY29uPVwibnVtYmVyLTJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLk51bWJlckxpc3QyXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlcy5OdW1iZXJMaXN0MilcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBzdmdJY29uPVwibnVtYmVyLTNcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibnVtYmVyaW5nVGVtcGxhdGVUeXBlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLk51bWJlckxpc3QzXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlcy5OdW1iZXJMaXN0MylcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pY29uIGxpc3QtbnVtYmVyXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIHN2Z0ljb249XCJudW1iZXItNFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJudW1iZXJpbmdUZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZXMuTnVtYmVyTGlzdDRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLk51bWJlckxpc3Q0KVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIHN2Z0ljb249XCJudW1iZXItNVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJudW1iZXJpbmdUZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZXMuTnVtYmVyTGlzdDVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLk51bWJlckxpc3Q1KVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIHN2Z0ljb249XCJudW1iZXItNlwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJudW1iZXJpbmdUZW1wbGF0ZVR5cGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZXMuTnVtYmVyTGlzdDZcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGVzLk51bWJlckxpc3Q2KVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICA8L21hdC1tZW51PlxuICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tdGV4dFwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImxpc3RUZXh0TWVudVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWZvcm1hdC1ib2xkXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5UZXh0PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bWF0LW1lbnVcbiAgICAgICAgI2xpc3RUZXh0TWVudT1cIm1hdE1lbnVcIlxuICAgICAgICBjbGFzcz1cIm5vZGVyLW1vZGFsXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWJvbGRcIlxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXBwbHlCb2xkKClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lbnVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBmb250SWNvbj1cImljb24tZm9ybWF0LWJvbGRcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5Cb2xkPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG90LWtleXNcIj5DdHJsK0I8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibWVudS1kcm9wZG93bnMtbWVudS1pdGVtLWl0YWxpY1wiXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAoY2xpY2spPVwib25BcHBseUl0YWxpYygpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWZvcm1hdC1pdGFsaWNcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5JdGFsaWM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob3Qta2V5c1wiPkN0cmwrSTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJtZW51LWRyb3Bkb3ducy1tZW51LWl0ZW0tdW5kZXJsaW5lZFwiXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAoY2xpY2spPVwib25BcHBseVVuZGVybGluZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWZvcm1hdC11bmRlcmxpbmVkXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+VW5kZXJsaW5lZDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdC1rZXlzXCI+Q3RybCtVPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LW1lbnU+XG4gICAgPGJ1dHRvblxuICAgICAgICBpZD1cIm1lbnUtZHJvcGRvd25zLW1lbnUtaXRlbS1oZWFkZXItZm9vdGVyXCJcbiAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICBjbGFzcz1cImhpZGRlblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICAgICAgZm9udEljb249XCJpY29uLWhlYWRlcnMtZm9vdGVyc1wiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+SGVhZGVycyAmIEZvb3RlcnM8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuPC9tYXQtbWVudT5cbjxtYXQtbWVudVxuICAgICN0YWJsZUluc2VydD1cIm1hdE1lbnVcIlxuICAgIGNsYXNzPVwiaW5zZXJ0LXRhYmxlIG5vZGVyLW1vZGFsXCI+XG4gICAgPGFwcC1pbnNlcnQtdGFibGVcbiAgICAgICAgKm5nSWY9XCJzaG93SW5zZXJ0VGFibGVNZW51XCJcbiAgICAgICAgKHNlbGVjdFNpemVzKT1cImluc2VydFRhYmxlLmVtaXQoJGV2ZW50KVwiIC8+XG48L21hdC1tZW51PlxuIl19
@@ -34,11 +34,11 @@ export class NumberingComponent {
34
34
  this.selectNumberingTemplate.emit(numberingTemplateType);
35
35
  }
36
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NumberingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: NumberingComponent, selector: "app-numbering", inputs: { isDisabled: "isDisabled", selectedNumberingType: "selectedNumberingType", selectedNumberingTemplate: "selectedNumberingTemplate" }, outputs: { selectNumberingTemplate: "selectNumberingTemplate", removeNumberings: "removeNumberings" }, ngImport: i0, template: "<mat-button-toggle-group\n name=\"format\"\n aria-label=\"format\"\n [disabled]=\"isDisabled\">\n <mat-button-toggle\n (click)=\"onToggleBulletedNumbering()\"\n [value]=\"numberingType.Bullet\"\n [checked]=\"selectedNumberingType === numberingType.Bullet\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listBulletedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList1\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList2\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList4\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList5\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList6\"></mat-icon>\n </div>\n </mat-menu>\n <mat-button-toggle\n (click)=\"onToggleNumberedNumbering()\"\n [value]=\"numberingType.Number\"\n [checked]=\"selectedNumberingType === numberingType.Number\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listNumberedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\"\n style=\"display: none\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList1\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList2\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList4\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList5\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList6\"></mat-icon>\n </div>\n </mat-menu>\n</mat-button-toggle-group>\n", styles: [":host{display:flex;align-items:center}mat-button-toggle-group,button{margin:0 3px}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:0}.mdc-button{min-width:28px;min-height:28px;padding:0}.mat-mdc-button>.mat-icon{margin-right:0}.mat-button-toggle-group{align-items:center}.mat-button-toggle-group .mdc-button{min-width:20px;height:28px;padding:0}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none!important}.list-icon .selected,.list-icon .selected:hover{border:2px solid #1b84e0}\n"], dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.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: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: NumberingComponent, selector: "app-numbering", inputs: { isDisabled: "isDisabled", selectedNumberingType: "selectedNumberingType", selectedNumberingTemplate: "selectedNumberingTemplate" }, outputs: { selectNumberingTemplate: "selectNumberingTemplate", removeNumberings: "removeNumberings" }, ngImport: i0, template: "<mat-button-toggle-group\n name=\"format\"\n aria-label=\"format\"\n [disabled]=\"isDisabled\">\n <mat-button-toggle\n (click)=\"onToggleBulletedNumbering()\"\n [value]=\"numberingType.Bullet\"\n [checked]=\"selectedNumberingType === numberingType.Bullet\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listBulletedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList1\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList2\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList4\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList5\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList6\"></mat-icon>\n </div>\n </mat-menu>\n <mat-button-toggle\n (click)=\"onToggleNumberedNumbering()\"\n [value]=\"numberingType.Number\"\n [checked]=\"selectedNumberingType === numberingType.Number\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listNumberedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\"\n style=\"display: none\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList1\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList2\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList4\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList5\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList6\"></mat-icon>\n </div>\n </mat-menu>\n</mat-button-toggle-group>\n", styles: [":host{display:flex;align-items:center}mat-button-toggle-group,button{margin:0 3px}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:0}.mdc-button{min-width:32px;min-height:32px;padding:0}.mat-mdc-button>.mat-icon{margin-right:0}.mat-button-toggle-group{align-items:center}.mat-button-toggle-group .mdc-button{min-width:20px;height:32px;padding:0}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none!important}.list-icon .selected,.list-icon .selected:hover{border-width:2px;border-style:solid}\n"], dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.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: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NumberingComponent, decorators: [{
40
40
  type: Component,
41
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-numbering', template: "<mat-button-toggle-group\n name=\"format\"\n aria-label=\"format\"\n [disabled]=\"isDisabled\">\n <mat-button-toggle\n (click)=\"onToggleBulletedNumbering()\"\n [value]=\"numberingType.Bullet\"\n [checked]=\"selectedNumberingType === numberingType.Bullet\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listBulletedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList1\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList2\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList4\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList5\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList6\"></mat-icon>\n </div>\n </mat-menu>\n <mat-button-toggle\n (click)=\"onToggleNumberedNumbering()\"\n [value]=\"numberingType.Number\"\n [checked]=\"selectedNumberingType === numberingType.Number\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listNumberedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\"\n style=\"display: none\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList1\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList2\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList4\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList5\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList6\"></mat-icon>\n </div>\n </mat-menu>\n</mat-button-toggle-group>\n", styles: [":host{display:flex;align-items:center}mat-button-toggle-group,button{margin:0 3px}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:0}.mdc-button{min-width:28px;min-height:28px;padding:0}.mat-mdc-button>.mat-icon{margin-right:0}.mat-button-toggle-group{align-items:center}.mat-button-toggle-group .mdc-button{min-width:20px;height:28px;padding:0}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none!important}.list-icon .selected,.list-icon .selected:hover{border:2px solid #1b84e0}\n"] }]
41
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-numbering', template: "<mat-button-toggle-group\n name=\"format\"\n aria-label=\"format\"\n [disabled]=\"isDisabled\">\n <mat-button-toggle\n (click)=\"onToggleBulletedNumbering()\"\n [value]=\"numberingType.Bullet\"\n [checked]=\"selectedNumberingType === numberingType.Bullet\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listBulletedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList1\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList2\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList4\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList5\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList6\"></mat-icon>\n </div>\n </mat-menu>\n <mat-button-toggle\n (click)=\"onToggleNumberedNumbering()\"\n [value]=\"numberingType.Number\"\n [checked]=\"selectedNumberingType === numberingType.Number\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listNumberedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\"\n style=\"display: none\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList1\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList2\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList4\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList5\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList6\"></mat-icon>\n </div>\n </mat-menu>\n</mat-button-toggle-group>\n", styles: [":host{display:flex;align-items:center}mat-button-toggle-group,button{margin:0 3px}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:0}.mdc-button{min-width:32px;min-height:32px;padding:0}.mat-mdc-button>.mat-icon{margin-right:0}.mat-button-toggle-group{align-items:center}.mat-button-toggle-group .mdc-button{min-width:20px;height:32px;padding:0}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none!important}.list-icon .selected,.list-icon .selected:hover{border-width:2px;border-style:solid}\n"] }]
42
42
  }], propDecorators: { isDisabled: [{
43
43
  type: Input
44
44
  }], selectedNumberingType: [{
@@ -50,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
50
50
  }], removeNumberings: [{
51
51
  type: Output
52
52
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yLXRvb2xiYXIvbnVtYmVyaW5nL251bWJlcmluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci10b29sYmFyL251bWJlcmluZy9udW1iZXJpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7OztBQVE3RCxNQUFNLE9BQU8sa0JBQWtCO0lBTi9CO1FBT2EsZUFBVSxHQUFHLEtBQUssQ0FBQztRQU1sQiw0QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUVwRSxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXRELDBCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBRTlDLGtCQUFhLEdBQUcsYUFBYSxDQUFDO0tBcUJqQztJQW5CRyx5QkFBeUI7UUFDckIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEtBQUssYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUNyRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDaEM7YUFBTTtZQUNILElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDeEU7SUFDTCxDQUFDO0lBRUQseUJBQXlCO1FBQ3JCLElBQUksSUFBSSxDQUFDLHFCQUFxQixLQUFLLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDckQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2hDO2FBQU07WUFDSCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3hFO0lBQ0wsQ0FBQztJQUVELHlCQUF5QixDQUFDLHFCQUE0QztRQUNsRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDN0QsQ0FBQzs4R0FqQ1Esa0JBQWtCO2tHQUFsQixrQkFBa0IsMFNDWC9CLHk2SkF3R0E7OzJGRDdGYSxrQkFBa0I7a0JBTjlCLFNBQVM7c0NBQ1csdUJBQXVCLENBQUMsTUFBTSxZQUNyQyxlQUFlOzhCQUtoQixVQUFVO3NCQUFsQixLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBRUksdUJBQXVCO3NCQUFoQyxNQUFNO2dCQUVHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOdW1iZXJpbmdUZW1wbGF0ZVR5cGUgfSBmcm9tICcuLi9lbnVtcy9udW1iZXJpbmctdGVtcGxhdGUtdHlwZS5lbnVtJztcbmltcG9ydCB7IE51bWJlcmluZ1R5cGUgfSBmcm9tICcuLi9lbnVtcy9udW1iZXJpbmctdHlwZS5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcHAtbnVtYmVyaW5nJyxcbiAgICB0ZW1wbGF0ZVVybDogJ251bWJlcmluZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ251bWJlcmluZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlcmluZ0NvbXBvbmVudCB7XG4gICAgQElucHV0KCkgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2VsZWN0ZWROdW1iZXJpbmdUeXBlOiBOdW1iZXJpbmdUeXBlO1xuXG4gICAgQElucHV0KCkgc2VsZWN0ZWROdW1iZXJpbmdUZW1wbGF0ZTogTnVtYmVyaW5nVGVtcGxhdGVUeXBlO1xuXG4gICAgQE91dHB1dCgpIHNlbGVjdE51bWJlcmluZ1RlbXBsYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxOdW1iZXJpbmdUZW1wbGF0ZVR5cGU+KCk7XG5cbiAgICBAT3V0cHV0KCkgcmVtb3ZlTnVtYmVyaW5ncyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIG51bWJlcmluZ1RlbXBsYXRlVHlwZSA9IE51bWJlcmluZ1RlbXBsYXRlVHlwZTtcblxuICAgIG51bWJlcmluZ1R5cGUgPSBOdW1iZXJpbmdUeXBlO1xuXG4gICAgb25Ub2dnbGVOdW1iZXJlZE51bWJlcmluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWROdW1iZXJpbmdUeXBlID09PSBOdW1iZXJpbmdUeXBlLk51bWJlcikge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVOdW1iZXJpbmdzLmVtaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUuZW1pdChOdW1iZXJpbmdUZW1wbGF0ZVR5cGUuTnVtYmVyTGlzdDMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ub2dnbGVCdWxsZXRlZE51bWJlcmluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWROdW1iZXJpbmdUeXBlID09PSBOdW1iZXJpbmdUeXBlLkJ1bGxldCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVOdW1iZXJpbmdzLmVtaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUuZW1pdChOdW1iZXJpbmdUZW1wbGF0ZVR5cGUuQnVsbGV0TGlzdDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGU6IE51bWJlcmluZ1RlbXBsYXRlVHlwZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdE51bWJlcmluZ1RlbXBsYXRlLmVtaXQobnVtYmVyaW5nVGVtcGxhdGVUeXBlKTtcbiAgICB9XG59XG4iLCI8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXBcbiAgICBuYW1lPVwiZm9ybWF0XCJcbiAgICBhcmlhLWxhYmVsPVwiZm9ybWF0XCJcbiAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiPlxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZVxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVCdWxsZXRlZE51bWJlcmluZygpXCJcbiAgICAgICAgW3ZhbHVlXT1cIm51bWJlcmluZ1R5cGUuQnVsbGV0XCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWROdW1iZXJpbmdUeXBlID09PSBudW1iZXJpbmdUeXBlLkJ1bGxldFwiPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1mb3JtYXQtYnVsbGV0ZWRcIj48L21hdC1pY29uPlxuICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgPGJ1dHRvblxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJsaXN0QnVsbGV0ZWRNZW51XCJcbiAgICAgICAgW21hdE1lbnVUcmlnZ2VyUmVzdG9yZUZvY3VzXT1cImZhbHNlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIj5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICBmb250SWNvbj1cImljb24tYXJyb3ctZHJvcGRvd25cIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxtYXQtbWVudVxuICAgICAgICAjbGlzdEJ1bGxldGVkTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICB5UG9zaXRpb249XCJiZWxvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pY29uIGxpc3QtbWFya2VyXCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBzdmdJY29uPVwibWFya2VyLTFcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdE51bWJlcmluZ1RlbXBsYXRlKG51bWJlcmluZ1RlbXBsYXRlVHlwZS5CdWxsZXRMaXN0MSlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3RlZE51bWJlcmluZ1RlbXBsYXRlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGUuQnVsbGV0TGlzdDFcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgc3ZnSWNvbj1cIm1hcmtlci0yXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGUuQnVsbGV0TGlzdDIpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWROdW1iZXJpbmdUZW1wbGF0ZSA9PT0gbnVtYmVyaW5nVGVtcGxhdGVUeXBlLkJ1bGxldExpc3QyXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIHN2Z0ljb249XCJtYXJrZXItM1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlLkJ1bGxldExpc3QzKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cInNlbGVjdGVkTnVtYmVyaW5nVGVtcGxhdGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZS5CdWxsZXRMaXN0M1wiPjwvbWF0LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pY29uIGxpc3QtbWFya2VyXCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBzdmdJY29uPVwibWFya2VyLTRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdE51bWJlcmluZ1RlbXBsYXRlKG51bWJlcmluZ1RlbXBsYXRlVHlwZS5CdWxsZXRMaXN0NClcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3RlZE51bWJlcmluZ1RlbXBsYXRlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGUuQnVsbGV0TGlzdDRcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgc3ZnSWNvbj1cIm1hcmtlci01XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGUuQnVsbGV0TGlzdDUpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWROdW1iZXJpbmdUZW1wbGF0ZSA9PT0gbnVtYmVyaW5nVGVtcGxhdGVUeXBlLkJ1bGxldExpc3Q1XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIHN2Z0ljb249XCJtYXJrZXItNlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlLkJ1bGxldExpc3Q2KVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cInNlbGVjdGVkTnVtYmVyaW5nVGVtcGxhdGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZS5CdWxsZXRMaXN0NlwiPjwvbWF0LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LW1lbnU+XG4gICAgPG1hdC1idXR0b24tdG9nZ2xlXG4gICAgICAgIChjbGljayk9XCJvblRvZ2dsZU51bWJlcmVkTnVtYmVyaW5nKClcIlxuICAgICAgICBbdmFsdWVdPVwibnVtYmVyaW5nVHlwZS5OdW1iZXJcIlxuICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZE51bWJlcmluZ1R5cGUgPT09IG51bWJlcmluZ1R5cGUuTnVtYmVyXCI+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgZm9udEljb249XCJpY29uLWZvcm1hdC1udW1iZXJlZFwiPjwvbWF0LWljb24+XG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImxpc3ROdW1iZXJlZE1lbnVcIlxuICAgICAgICBbbWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXNdPVwiZmFsc2VcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1hcnJvdy1kcm9wZG93blwiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPG1hdC1tZW51XG4gICAgICAgICNsaXN0TnVtYmVyZWRNZW51PVwibWF0TWVudVwiXG4gICAgICAgIHlQb3NpdGlvbj1cImJlbG93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWljb24gbGlzdC1udW1iZXJcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIHN2Z0ljb249XCJudW1iZXItMVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlLk51bWJlckxpc3QxKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cInNlbGVjdGVkTnVtYmVyaW5nVGVtcGxhdGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZS5OdW1iZXJMaXN0MVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBzdmdJY29uPVwibnVtYmVyLTJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdE51bWJlcmluZ1RlbXBsYXRlKG51bWJlcmluZ1RlbXBsYXRlVHlwZS5OdW1iZXJMaXN0MilcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3RlZE51bWJlcmluZ1RlbXBsYXRlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGUuTnVtYmVyTGlzdDJcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgc3ZnSWNvbj1cIm51bWJlci0zXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGUuTnVtYmVyTGlzdDMpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWROdW1iZXJpbmdUZW1wbGF0ZSA9PT0gbnVtYmVyaW5nVGVtcGxhdGVUeXBlLk51bWJlckxpc3QzXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWljb24gbGlzdC1udW1iZXJcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIHN2Z0ljb249XCJudW1iZXItNFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlLk51bWJlckxpc3Q0KVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cInNlbGVjdGVkTnVtYmVyaW5nVGVtcGxhdGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZS5OdW1iZXJMaXN0NFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBzdmdJY29uPVwibnVtYmVyLTVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdE51bWJlcmluZ1RlbXBsYXRlKG51bWJlcmluZ1RlbXBsYXRlVHlwZS5OdW1iZXJMaXN0NSlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3RlZE51bWJlcmluZ1RlbXBsYXRlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGUuTnVtYmVyTGlzdDVcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgc3ZnSWNvbj1cIm51bWJlci02XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGUuTnVtYmVyTGlzdDYpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWROdW1iZXJpbmdUZW1wbGF0ZSA9PT0gbnVtYmVyaW5nVGVtcGxhdGVUeXBlLk51bWJlckxpc3Q2XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtbWVudT5cbjwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yLXRvb2xiYXIvbnVtYmVyaW5nL251bWJlcmluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci10b29sYmFyL251bWJlcmluZy9udW1iZXJpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7OztBQVE3RCxNQUFNLE9BQU8sa0JBQWtCO0lBTi9CO1FBT2EsZUFBVSxHQUFHLEtBQUssQ0FBQztRQU1sQiw0QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUVwRSxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXRELDBCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBRTlDLGtCQUFhLEdBQUcsYUFBYSxDQUFDO0tBcUJqQztJQW5CRyx5QkFBeUI7UUFDckIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEtBQUssYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUNyRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDaEM7YUFBTTtZQUNILElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDeEU7SUFDTCxDQUFDO0lBRUQseUJBQXlCO1FBQ3JCLElBQUksSUFBSSxDQUFDLHFCQUFxQixLQUFLLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDckQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2hDO2FBQU07WUFDSCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3hFO0lBQ0wsQ0FBQztJQUVELHlCQUF5QixDQUFDLHFCQUE0QztRQUNsRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDN0QsQ0FBQzs4R0FqQ1Esa0JBQWtCO2tHQUFsQixrQkFBa0IsMFNDWC9CLDZoS0EwR0E7OzJGRC9GYSxrQkFBa0I7a0JBTjlCLFNBQVM7c0NBQ1csdUJBQXVCLENBQUMsTUFBTSxZQUNyQyxlQUFlOzhCQUtoQixVQUFVO3NCQUFsQixLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBRUksdUJBQXVCO3NCQUFoQyxNQUFNO2dCQUVHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOdW1iZXJpbmdUZW1wbGF0ZVR5cGUgfSBmcm9tICcuLi9lbnVtcy9udW1iZXJpbmctdGVtcGxhdGUtdHlwZS5lbnVtJztcbmltcG9ydCB7IE51bWJlcmluZ1R5cGUgfSBmcm9tICcuLi9lbnVtcy9udW1iZXJpbmctdHlwZS5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcHAtbnVtYmVyaW5nJyxcbiAgICB0ZW1wbGF0ZVVybDogJ251bWJlcmluZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ251bWJlcmluZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlcmluZ0NvbXBvbmVudCB7XG4gICAgQElucHV0KCkgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2VsZWN0ZWROdW1iZXJpbmdUeXBlOiBOdW1iZXJpbmdUeXBlO1xuXG4gICAgQElucHV0KCkgc2VsZWN0ZWROdW1iZXJpbmdUZW1wbGF0ZTogTnVtYmVyaW5nVGVtcGxhdGVUeXBlO1xuXG4gICAgQE91dHB1dCgpIHNlbGVjdE51bWJlcmluZ1RlbXBsYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxOdW1iZXJpbmdUZW1wbGF0ZVR5cGU+KCk7XG5cbiAgICBAT3V0cHV0KCkgcmVtb3ZlTnVtYmVyaW5ncyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIG51bWJlcmluZ1RlbXBsYXRlVHlwZSA9IE51bWJlcmluZ1RlbXBsYXRlVHlwZTtcblxuICAgIG51bWJlcmluZ1R5cGUgPSBOdW1iZXJpbmdUeXBlO1xuXG4gICAgb25Ub2dnbGVOdW1iZXJlZE51bWJlcmluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWROdW1iZXJpbmdUeXBlID09PSBOdW1iZXJpbmdUeXBlLk51bWJlcikge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVOdW1iZXJpbmdzLmVtaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUuZW1pdChOdW1iZXJpbmdUZW1wbGF0ZVR5cGUuTnVtYmVyTGlzdDMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ub2dnbGVCdWxsZXRlZE51bWJlcmluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWROdW1iZXJpbmdUeXBlID09PSBOdW1iZXJpbmdUeXBlLkJ1bGxldCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVOdW1iZXJpbmdzLmVtaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUuZW1pdChOdW1iZXJpbmdUZW1wbGF0ZVR5cGUuQnVsbGV0TGlzdDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGU6IE51bWJlcmluZ1RlbXBsYXRlVHlwZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdE51bWJlcmluZ1RlbXBsYXRlLmVtaXQobnVtYmVyaW5nVGVtcGxhdGVUeXBlKTtcbiAgICB9XG59XG4iLCI8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXBcbiAgICBuYW1lPVwiZm9ybWF0XCJcbiAgICBhcmlhLWxhYmVsPVwiZm9ybWF0XCJcbiAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiPlxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZVxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVCdWxsZXRlZE51bWJlcmluZygpXCJcbiAgICAgICAgW3ZhbHVlXT1cIm51bWJlcmluZ1R5cGUuQnVsbGV0XCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWROdW1iZXJpbmdUeXBlID09PSBudW1iZXJpbmdUeXBlLkJ1bGxldFwiPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1mb3JtYXQtYnVsbGV0ZWRcIj48L21hdC1pY29uPlxuICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgPGJ1dHRvblxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJsaXN0QnVsbGV0ZWRNZW51XCJcbiAgICAgICAgW21hdE1lbnVUcmlnZ2VyUmVzdG9yZUZvY3VzXT1cImZhbHNlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIj5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICBmb250SWNvbj1cImljb24tYXJyb3ctZHJvcGRvd25cIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxtYXQtbWVudVxuICAgICAgICAjbGlzdEJ1bGxldGVkTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW51bWJlcmluZy1vdmVybGF5IG5vZGVyLW1vZGFsXCJcbiAgICAgICAgeVBvc2l0aW9uPVwiYmVsb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaWNvbiBsaXN0LW1hcmtlclwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgc3ZnSWNvbj1cIm1hcmtlci0xXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGUuQnVsbGV0TGlzdDEpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWROdW1iZXJpbmdUZW1wbGF0ZSA9PT0gbnVtYmVyaW5nVGVtcGxhdGVUeXBlLkJ1bGxldExpc3QxXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIHN2Z0ljb249XCJtYXJrZXItMlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlLkJ1bGxldExpc3QyKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cInNlbGVjdGVkTnVtYmVyaW5nVGVtcGxhdGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZS5CdWxsZXRMaXN0MlwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBzdmdJY29uPVwibWFya2VyLTNcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdE51bWJlcmluZ1RlbXBsYXRlKG51bWJlcmluZ1RlbXBsYXRlVHlwZS5CdWxsZXRMaXN0MylcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3RlZE51bWJlcmluZ1RlbXBsYXRlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGUuQnVsbGV0TGlzdDNcIj48L21hdC1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaWNvbiBsaXN0LW1hcmtlclwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgc3ZnSWNvbj1cIm1hcmtlci00XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGUuQnVsbGV0TGlzdDQpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWROdW1iZXJpbmdUZW1wbGF0ZSA9PT0gbnVtYmVyaW5nVGVtcGxhdGVUeXBlLkJ1bGxldExpc3Q0XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIHN2Z0ljb249XCJtYXJrZXItNVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlLkJ1bGxldExpc3Q1KVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cInNlbGVjdGVkTnVtYmVyaW5nVGVtcGxhdGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZS5CdWxsZXRMaXN0NVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBzdmdJY29uPVwibWFya2VyLTZcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdE51bWJlcmluZ1RlbXBsYXRlKG51bWJlcmluZ1RlbXBsYXRlVHlwZS5CdWxsZXRMaXN0NilcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3RlZE51bWJlcmluZ1RlbXBsYXRlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGUuQnVsbGV0TGlzdDZcIj48L21hdC1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1tZW51PlxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZVxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVOdW1iZXJlZE51bWJlcmluZygpXCJcbiAgICAgICAgW3ZhbHVlXT1cIm51bWJlcmluZ1R5cGUuTnVtYmVyXCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWROdW1iZXJpbmdUeXBlID09PSBudW1iZXJpbmdUeXBlLk51bWJlclwiPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1mb3JtYXQtbnVtYmVyZWRcIj48L21hdC1pY29uPlxuICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgPGJ1dHRvblxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJsaXN0TnVtYmVyZWRNZW51XCJcbiAgICAgICAgW21hdE1lbnVUcmlnZ2VyUmVzdG9yZUZvY3VzXT1cImZhbHNlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICBmb250SWNvbj1cImljb24tYXJyb3ctZHJvcGRvd25cIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxtYXQtbWVudVxuICAgICAgICAjbGlzdE51bWJlcmVkTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW51bWJlcmluZy1vdmVybGF5IG5vZGVyLW1vZGFsXCJcbiAgICAgICAgeVBvc2l0aW9uPVwiYmVsb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaWNvbiBsaXN0LW51bWJlclwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgc3ZnSWNvbj1cIm51bWJlci0xXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGUuTnVtYmVyTGlzdDEpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWROdW1iZXJpbmdUZW1wbGF0ZSA9PT0gbnVtYmVyaW5nVGVtcGxhdGVUeXBlLk51bWJlckxpc3QxXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIHN2Z0ljb249XCJudW1iZXItMlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlLk51bWJlckxpc3QyKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cInNlbGVjdGVkTnVtYmVyaW5nVGVtcGxhdGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZS5OdW1iZXJMaXN0MlwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBzdmdJY29uPVwibnVtYmVyLTNcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdE51bWJlcmluZ1RlbXBsYXRlKG51bWJlcmluZ1RlbXBsYXRlVHlwZS5OdW1iZXJMaXN0MylcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3RlZE51bWJlcmluZ1RlbXBsYXRlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGUuTnVtYmVyTGlzdDNcIj48L21hdC1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaWNvbiBsaXN0LW51bWJlclwiPlxuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgc3ZnSWNvbj1cIm51bWJlci00XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3ROdW1iZXJpbmdUZW1wbGF0ZShudW1iZXJpbmdUZW1wbGF0ZVR5cGUuTnVtYmVyTGlzdDQpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWROdW1iZXJpbmdUZW1wbGF0ZSA9PT0gbnVtYmVyaW5nVGVtcGxhdGVUeXBlLk51bWJlckxpc3Q0XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIHN2Z0ljb249XCJudW1iZXItNVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TnVtYmVyaW5nVGVtcGxhdGUobnVtYmVyaW5nVGVtcGxhdGVUeXBlLk51bWJlckxpc3Q1KVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cInNlbGVjdGVkTnVtYmVyaW5nVGVtcGxhdGUgPT09IG51bWJlcmluZ1RlbXBsYXRlVHlwZS5OdW1iZXJMaXN0NVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBzdmdJY29uPVwibnVtYmVyLTZcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdE51bWJlcmluZ1RlbXBsYXRlKG51bWJlcmluZ1RlbXBsYXRlVHlwZS5OdW1iZXJMaXN0NilcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3RlZE51bWJlcmluZ1RlbXBsYXRlID09PSBudW1iZXJpbmdUZW1wbGF0ZVR5cGUuTnVtYmVyTGlzdDZcIj48L21hdC1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1tZW51PlxuPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiJdfQ==
@@ -7,11 +7,11 @@ export class PrintComponent {
7
7
  this.print = new EventEmitter();
8
8
  }
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: PrintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: PrintComponent, selector: "app-print", outputs: { print: "print" }, ngImport: i0, template: "<button\n mat-button\n (click)=\"print.emit()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n</button>\n", styles: [":host{align-self:center}.mdc-button{min-width:28px;min-height:28px;height:28px;padding:0;margin:0 4px}.mdc-button mat-icon{font-size:24px;height:24px;width:24px;margin:0}\n"], dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: PrintComponent, selector: "app-print", outputs: { print: "print" }, ngImport: i0, template: "<button\n mat-button\n (click)=\"print.emit()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n</button>\n", styles: [":host{display:flex;align-items:center}.mdc-button{min-width:28px;min-height:28px;height:28px;padding:0;margin:0 4px}.mdc-button mat-icon{font-size:24px;height:24px;width:24px;margin:0}\n"], dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: PrintComponent, decorators: [{
13
13
  type: Component,
14
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-print', template: "<button\n mat-button\n (click)=\"print.emit()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n</button>\n", styles: [":host{align-self:center}.mdc-button{min-width:28px;min-height:28px;height:28px;padding:0;margin:0 4px}.mdc-button mat-icon{font-size:24px;height:24px;width:24px;margin:0}\n"] }]
14
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-print', template: "<button\n mat-button\n (click)=\"print.emit()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n</button>\n", styles: [":host{display:flex;align-items:center}.mdc-button{min-width:28px;min-height:28px;height:28px;padding:0;margin:0 4px}.mdc-button mat-icon{font-size:24px;height:24px;width:24px;margin:0}\n"] }]
15
15
  }], propDecorators: { print: [{
16
16
  type: Output
17
17
  }] } });