@cleavelandprice/ngx-lib 3.2.0 → 3.2.2

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 (51) hide show
  1. package/esm2020/quill/cleavelandprice-ngx-lib-quill.mjs +5 -0
  2. package/esm2020/quill/components/editor/editor.component.mjs +296 -0
  3. package/esm2020/quill/mention/cleavelandprice-ngx-lib-quill-mention.mjs +5 -0
  4. package/esm2020/quill/mention/components/editor/editor.component.mjs +152 -0
  5. package/esm2020/quill/mention/model/dialog-data.mjs +2 -0
  6. package/esm2020/quill/mention/public_api.mjs +2 -0
  7. package/esm2020/quill/mention/quill-mention.module.mjs +63 -0
  8. package/esm2020/quill/model/buttons.mjs +51 -0
  9. package/esm2020/quill/model/config.mjs +40 -0
  10. package/esm2020/quill/model/dialog-data.mjs +2 -0
  11. package/esm2020/quill/model/icons.mjs +9 -0
  12. package/esm2020/quill/model/tooltips.mjs +54 -0
  13. package/esm2020/quill/public_api.mjs +8 -0
  14. package/esm2020/quill/quill.module.mjs +65 -0
  15. package/fesm2015/cleavelandprice-ngx-lib-quill-mention.mjs +212 -0
  16. package/fesm2015/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -0
  17. package/fesm2015/cleavelandprice-ngx-lib-quill.mjs +505 -0
  18. package/fesm2015/cleavelandprice-ngx-lib-quill.mjs.map +1 -0
  19. package/fesm2020/cleavelandprice-ngx-lib-quill-mention.mjs +207 -0
  20. package/fesm2020/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -0
  21. package/fesm2020/cleavelandprice-ngx-lib-quill.mjs +500 -0
  22. package/fesm2020/cleavelandprice-ngx-lib-quill.mjs.map +1 -0
  23. package/package.json +16 -8
  24. package/{quill-editor → quill}/components/editor/editor.component.d.ts +4 -9
  25. package/{quill-editor → quill}/index.d.ts +1 -1
  26. package/quill/mention/components/editor/editor.component.d.ts +20 -0
  27. package/quill/mention/index.d.ts +5 -0
  28. package/quill/mention/model/dialog-data.d.ts +5 -0
  29. package/quill/mention/public_api.d.ts +1 -0
  30. package/quill/mention/quill-mention.module.d.ts +17 -0
  31. package/{quill-editor → quill}/model/buttons.d.ts +0 -0
  32. package/{quill-editor → quill}/model/config.d.ts +0 -1
  33. package/{quill-editor → quill}/model/dialog-data.d.ts +1 -3
  34. package/{quill-editor → quill}/model/icons.d.ts +0 -0
  35. package/{quill-editor → quill}/model/tooltips.d.ts +0 -0
  36. package/{quill-editor → quill}/public_api.d.ts +2 -1
  37. package/quill/quill.module.d.ts +17 -0
  38. package/esm2020/quill-editor/cleavelandprice-ngx-lib-quill-editor.mjs +0 -5
  39. package/esm2020/quill-editor/components/editor/editor.component.mjs +0 -289
  40. package/esm2020/quill-editor/model/buttons.mjs +0 -51
  41. package/esm2020/quill-editor/model/config.mjs +0 -40
  42. package/esm2020/quill-editor/model/dialog-data.mjs +0 -2
  43. package/esm2020/quill-editor/model/icons.mjs +0 -9
  44. package/esm2020/quill-editor/model/tooltips.mjs +0 -54
  45. package/esm2020/quill-editor/public_api.mjs +0 -7
  46. package/esm2020/quill-editor/quill-editor.module.mjs +0 -65
  47. package/fesm2015/cleavelandprice-ngx-lib-quill-editor.mjs +0 -506
  48. package/fesm2015/cleavelandprice-ngx-lib-quill-editor.mjs.map +0 -1
  49. package/fesm2020/cleavelandprice-ngx-lib-quill-editor.mjs +0 -500
  50. package/fesm2020/cleavelandprice-ngx-lib-quill-editor.mjs.map +0 -1
  51. package/quill-editor/quill-editor.module.d.ts +0 -17
@@ -1,289 +0,0 @@
1
- import { Component, EventEmitter, Inject, Input, Output, ViewChild, Optional, forwardRef } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from "@angular/forms";
3
- //import { FormGroup } from '@angular/forms';
4
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
5
- import { QuillEditorComponent } from 'ngx-quill';
6
- import 'quill-mention';
7
- import Quill from 'quill';
8
- import { ImageDrop } from 'quill-image-drop-module';
9
- // This doesn't work when done from the library - it must be done from the client app
10
- //import ImageResize from 'quill-image-resize-module';
11
- //Quill.register('modules/imageResize', ImageResize);
12
- import { Config } from '../../model/config';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/material/dialog";
15
- import * as i2 from "@cleavelandprice/ngx-lib/active-directory";
16
- import * as i3 from "@angular/common";
17
- import * as i4 from "@angular/forms";
18
- import * as i5 from "@angular/material/icon";
19
- import * as i6 from "@angular/material/tooltip";
20
- import * as i7 from "ngx-quill";
21
- export class EditorComponent {
22
- //#endregion
23
- constructor(data, dialogRef, activeDirectoryService, dialog) {
24
- this.data = data;
25
- this.dialogRef = dialogRef;
26
- this.activeDirectoryService = activeDirectoryService;
27
- this.dialog = dialog;
28
- this.onChange = (_) => { }; // Invoked when the model has been changed
29
- this.onTouched = () => { }; // Invoked when the model has been touched
30
- //#endregion
31
- this.config = new Config();
32
- //#region These can be passed in as @Input(), or use values from config
33
- this.format = this.config.format;
34
- this.height = this.config.height;
35
- this.width = this.config.width;
36
- this.fullscreenHeight = this.config.fullscreenHeight;
37
- this.fullscreenWidth = this.config.fullscreenWidth;
38
- this.fullscreenMode = this.config.fullscreenMode;
39
- //#endregion
40
- //#endregion
41
- this.fullscreenChanged = new EventEmitter();
42
- //#region Passthrough events
43
- this.onBlur = new EventEmitter();
44
- this.onContentChanged = new EventEmitter();
45
- this.onEditorChanged = new EventEmitter();
46
- this.onEditorCreated = new EventEmitter();
47
- this.onFocus = new EventEmitter();
48
- this.onSelectionChanged = new EventEmitter();
49
- }
50
- ngOnInit() {
51
- this.initialize();
52
- if (!this.users) {
53
- this.activeDirectoryService.getUsers().subscribe(users => this.users = users);
54
- }
55
- }
56
- initialize() {
57
- this.config = this.config ?? this.data?.config ?? new Config();
58
- this.value = this.value ?? this.data?.value;
59
- this.imageResizeModule = this.imageResizeModule !== undefined ?
60
- this.imageResizeModule :
61
- this.imageResizeModule ?? this.config.imageResizeModule;
62
- this.imageDropModule = this.imageDropModule !== undefined ?
63
- this.imageDropModule :
64
- this.imageDropModule ?? this.config.imageDropModule;
65
- this.mentionModule = this.mentionModule !== undefined ?
66
- this.mentionModule :
67
- this.mentionModule ?? this.config.mentionModule;
68
- this.syntaxModule = this.syntaxModule !== undefined ?
69
- this.syntaxModule :
70
- this.syntaxModule ?? this.config.syntaxModule;
71
- if (this.imageDropModule) {
72
- Quill.register('modules/imageDrop', ImageDrop);
73
- }
74
- this.placeholder = this.placeholder ?? this.data?.placeholder;
75
- this.users = this.users ?? this.data?.users;
76
- this.format = this.format ?? this.data?.format ?? this.config.format;
77
- this.height = this.height ?? this.data?.height ?? this.config.height;
78
- this.width = this.width ?? this.data?.width ?? this.config.width;
79
- this.fullscreenHeight = this.fullscreenHeight ?? this.data?.maxHeight ?? this.config.fullscreenHeight;
80
- this.fullscreenWidth = this.fullscreenWidth ?? this.data?.maxWidth ?? this.config.fullscreenWidth;
81
- this.fullscreenMode = this.fullscreenMode ?? this.data?.fullscreenMode ?? this.config.fullscreenMode;
82
- this.enableTooltips = this.enableTooltips !== undefined ?
83
- this.enableTooltips :
84
- this.data?.enableTooltips ?? this.config.enableTooltips;
85
- this.fullscreen = this.fullscreen !== undefined ?
86
- this.fullscreen :
87
- this.data?.fullscreen ?? this.config.fullscreen;
88
- this.readonly = this.readonly !== undefined ?
89
- this.readonly :
90
- this.data?.readonly ?? this.config.readonly;
91
- this.applyReadonlyStyle = this.applyReadonlyStyle !== undefined ?
92
- this.applyReadonlyStyle :
93
- this.data?.applyReadonlyStyle ?? this.config.applyReadonlyStyle;
94
- this.showToolbar = this.showToolbar !== undefined ?
95
- this.showToolbar :
96
- this.data?.showToolbar ?? this.config.showToolbar;
97
- this.showBorder = this.showBorder !== undefined ?
98
- this.showBorder :
99
- this.data?.showBorder ?? this.config.showBorder;
100
- }
101
- toggleFullscreen() {
102
- if (this.fullscreenMode === 'expand') {
103
- this.fullscreen = !this.fullscreen;
104
- this.fullscreenChanged.emit(this.fullscreen);
105
- }
106
- else {
107
- if (this.fullscreen) {
108
- this.dialogRef.close(this.value);
109
- this.fullscreenChanged.emit(false);
110
- }
111
- else {
112
- const data = {
113
- value: this.value,
114
- config: this.config,
115
- placeholder: this.placeholder,
116
- format: this.format,
117
- height: this.fullscreenHeight,
118
- width: '100%',
119
- maxHeight: this.fullscreenHeight,
120
- maxWidth: '100%',
121
- enableTooltips: this.enableTooltips,
122
- fullscreen: true,
123
- fullscreenMode: this.fullscreenMode,
124
- readonly: this.readonly,
125
- applyReadonlyStyle: this.applyReadonlyStyle,
126
- showToolbar: this.showToolbar,
127
- showBorder: this.showBorder,
128
- users: this.users
129
- };
130
- this.dialog.open(EditorComponent, {
131
- disableClose: true,
132
- width: this.fullscreenWidth,
133
- height: this.fullscreenHeight,
134
- data
135
- })
136
- .afterClosed()
137
- .subscribe(value => {
138
- this.value = value;
139
- this.updateChanges();
140
- });
141
- this.fullscreenChanged.emit(true);
142
- }
143
- }
144
- }
145
- tooltip(val) {
146
- return this.enableTooltips ? val : '';
147
- }
148
- get modules() {
149
- if (!this.users) {
150
- return undefined;
151
- }
152
- const modules = {};
153
- if (!this.showToolbar) {
154
- modules['toolbar'] = [];
155
- }
156
- if (this.imageResizeModule) {
157
- modules['imageResize'] = {};
158
- }
159
- if (this.imageDropModule) {
160
- modules['imageDrop'] = true;
161
- }
162
- if (this.syntaxModule) {
163
- modules['syntax'] = true;
164
- }
165
- if (this.mentionModule) {
166
- modules['mention'] = {
167
- allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
168
- onSelect: (item, insertItem) => {
169
- const editor = this.editor.quillEditor;
170
- insertItem(item);
171
- // necessary because quill-mention triggers changes as 'api' instead of 'user'
172
- editor.insertText(editor.getLength() - 1, '', 'user');
173
- },
174
- source: (searchTerm, renderList) => {
175
- if (searchTerm.length === 0) {
176
- renderList(this.users?.map(u => ({ value: `${u.displayName} (${u.sAMAccountName.toLowerCase()})` })), searchTerm);
177
- }
178
- else {
179
- const matches = [];
180
- this.users.forEach((entry) => {
181
- if (entry.displayName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1 ||
182
- entry.sAMAccountName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1) {
183
- matches.push({ value: `${entry.displayName} (${entry.sAMAccountName.toLowerCase()})` });
184
- }
185
- });
186
- renderList(matches, searchTerm);
187
- }
188
- }
189
- };
190
- }
191
- return modules;
192
- }
193
- //#region ControlValueAccessor methods
194
- // Method that is invoked on an update of a model.
195
- updateChanges() {
196
- this.onChange(this.value);
197
- }
198
- //#region ControlValueAccessor Overrides
199
- // Writes a new item to the element.
200
- writeValue(value) {
201
- this.value = value;
202
- this.updateChanges();
203
- }
204
- // Registers a callback function that should be called when the control's value changes in the UI.
205
- registerOnChange(fn) {
206
- this.onChange = fn;
207
- }
208
- // Registers a callback function that should be called when the control receives a blur event.
209
- registerOnTouched(fn) {
210
- this.onTouched = fn;
211
- }
212
- }
213
- EditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: EditorComponent, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: i1.MatDialogRef, optional: true }, { token: i2.ActiveDirectoryService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
214
- EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: EditorComponent, selector: "cpquill-editor", inputs: { config: "config", placeholder: "placeholder", users: "users", format: "format", height: "height", width: "width", fullscreenHeight: "fullscreenHeight", fullscreenWidth: "fullscreenWidth", fullscreenMode: "fullscreenMode", enableTooltips: "enableTooltips", fullscreen: "fullscreen", readonly: "readonly", applyReadonlyStyle: "applyReadonlyStyle", showToolbar: "showToolbar", showBorder: "showBorder", imageResizeModule: "imageResizeModule", imageDropModule: "imageDropModule", mentionModule: "mentionModule", syntaxModule: "syntaxModule" }, outputs: { fullscreenChanged: "fullscreenChanged", onBlur: "onBlur", onContentChanged: "onContentChanged", onEditorChanged: "onEditorChanged", onEditorCreated: "onEditorCreated", onFocus: "onFocus", onSelectionChanged: "onSelectionChanged" }, providers: [{
215
- provide: NG_VALUE_ACCESSOR,
216
- useExisting: forwardRef(() => EditorComponent),
217
- multi: true
218
- }], viewQueries: [{ propertyName: "editor", first: true, predicate: QuillEditorComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"users\">\n <form>\n <quill-editor name=\"editor\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? fullscreenHeight : height\"\n [style.width]=\"fullscreen ? fullscreenWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly && applyReadonlyStyle\"\n [class.no-toolbar]=\"!showToolbar\"\n [class.no-border]=\"!showBorder\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar *ngIf=\"showToolbar\">\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n</ng-container>\n\n<ng-template #toolbar>\n <div>\n <ng-container [ngTemplateOutlet]=\"fontStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"blockStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"headingStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"indentStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"rtl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"fontSize\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"heading\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"color\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"font\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"align\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"clean\"></ng-container>\n <nt-container [ngTemplateOutlet]=\"formula\"></nt-container>\n <ng-container [ngTemplateOutlet]=\"media\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #fontStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showFontStyle\">\n <button class=\"ql-bold\" *ngIf=\"config.buttons.bold\" [matTooltip]=\"tooltip(config.tooltips.bold)\"></button>\n <button class=\"ql-italic\" *ngIf=\"config.buttons.italic\" [matTooltip]=\"tooltip(config.tooltips.italic)\"></button>\n <button class=\"ql-underline\" *ngIf=\"config.buttons.underline\" [matTooltip]=\"tooltip(config.tooltips.underline)\"></button>\n <button class=\"ql-strike\" *ngIf=\"config.buttons.strike\" [matTooltip]=\"tooltip(config.tooltips.strike)\"></button>\n </span>\n</ng-template>\n\n<ng-template #blockStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showBlockStyle\">\n <button class=\"ql-blockquote\" *ngIf=\"config.buttons.blockquote\" [matTooltip]=\"tooltip(config.tooltips.blockquote)\"></button>\n <button class=\"ql-code-block\" *ngIf=\"config.buttons.codeblock\" [matTooltip]=\"tooltip(config.tooltips.codeblock)\"></button>\n </span>\n</ng-template>\n\n<ng-template #headingStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showQuickHeadingStyle\">\n <button class=\"ql-header\" value=\"1\" *ngIf=\"config.buttons.h1\" [matTooltip]=\"tooltip(config.tooltips.h1)\"></button>\n <button class=\"ql-header\" value=\"2\" *ngIf=\"config.buttons.h2\" [matTooltip]=\"tooltip(config.tooltips.h2)\"></button>\n </span>\n</ng-template>\n\n<ng-template #listStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showListStyle\">\n <button class=\"ql-list\" value=\"ordered\" *ngIf=\"config.buttons.ordered\" [matTooltip]=\"tooltip(config.tooltips.ordered)\"></button>\n <button class=\"ql-list\" value=\"bullet\" *ngIf=\"config.buttons.bulleted\" [matTooltip]=\"tooltip(config.tooltips.bulleted)\"></button>\n </span>\n</ng-template>\n\n<ng-template #scriptStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showScriptStyle\">\n <button class=\"ql-script\" value=\"sub\" *ngIf=\"config.buttons.subScript\" [matTooltip]=\"tooltip(config.tooltips.subScript)\"></button>\n <button class=\"ql-script\" value=\"super\" *ngIf=\"config.buttons.superScript\" [matTooltip]=\"tooltip(config.tooltips.superScript)\"></button>\n </span>\n</ng-template>\n \n<ng-template #indentStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showIndentStyle\">\n <button class=\"ql-indent\" value=\"-1\" *ngIf=\"config.buttons.decreaseIndent\" [matTooltip]=\"tooltip(config.tooltips.decreaseIndent)\"></button>\n <button class=\"ql-indent\" value=\"+1\" *ngIf=\"config.buttons.increaseIndent\" [matTooltip]=\"tooltip(config.tooltips.increaseIndent)\"></button>\n </span>\n</ng-template>\n\n<ng-template #rtl>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.rtl\">\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config.tooltips.rtl)\"></button>\n </span>\n</ng-template>\n\n<ng-template #fontSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.fontSize\" [matTooltip]=\"tooltip(config.tooltips.fontSize)\">\n <select class=\"ql-size\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #heading>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.headingStyle\" [matTooltip]=\"tooltip(config.tooltips.headingStyle)\">\n <select class=\"ql-header\">\n <option value=\"1\"></option>\n <option value=\"2\"></option>\n <option value=\"3\"></option>\n <option value=\"4\"></option>\n <option value=\"5\"></option>\n <option value=\"6\"></option>\n <option selected=\"selected\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #color>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.color\" [matTooltip]=\"tooltip(config.tooltips.color)\">\n <select class=\"ql-color\"></select>\n <select class=\"ql-background\"></select>\n </span>\n</ng-template>\n\n<ng-template #font>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.font\" [matTooltip]=\"tooltip(config.tooltips.font)\">\n <select class=\"ql-font\">\n <option selected></option>\n <option value=\"serif\"></option>\n <option value=\"monospace\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #align>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.align\" [matTooltip]=\"tooltip(config.tooltips.align)\">\n <select class=\"ql-align\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #clean>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.clean\" [matTooltip]=\"tooltip(config.tooltips.clean)\">\n <button class=\"ql-clean\"></button>\n </span>\n</ng-template>\n\n<ng-template #media>\n <span class=\"ql-formats\" *ngIf=\"config.showMedia\">\n <button class=\"ql-link\" *ngIf=\"config.buttons.link\" [matTooltip]=\"tooltip(config.tooltips.link)\"></button>\n <button class=\"ql-image\" *ngIf=\"config.buttons.image\" [matTooltip]=\"tooltip(config.tooltips.image)\"></button>\n <button class=\"ql-video\" *ngIf=\"config.buttons.video\" [matTooltip]=\"tooltip(config.tooltips.video)\"></button>\n </span>\n</ng-template>\n\n<ng-template #editorSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.editorSize\">\n <button id=\"fullscreen\"\n [matTooltip]=\"tooltip(fullscreen ?\n (fullscreenMode === 'expand' ? config.tooltips.minimize : config.tooltips.popin) :\n (fullscreenMode === 'expand' ? config.tooltips.maximize : config.tooltips.popout))\">\n\n <mat-icon (click)=\"toggleFullscreen()\">\n {{ fullscreen ?\n (fullscreenMode === 'expand' ? config.icons.minimize : config.icons.popin) :\n (fullscreenMode === 'expand' ? config.icons.maximize : config.icons.popout)\n }}\n </mat-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template #formula>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.formula\" [matTooltip]=\"tooltip(config.tooltips.formula)\">\n <button class=\"ql-formula\"></button>\n </span>\n</ng-template>", styles: [".ql-toolbar{display:grid;grid-template-columns:1fr auto}mat-icon{color:#ff4500}quill-editor.readonly .ql-toolbar{opacity:.5}::ng-deep quill-editor.no-toolbar .ql-toolbar{height:0;padding:0;visibility:hidden}::ng-deep quill-editor.no-border .ql-container{border:none}::ng-deep quill-editor.readonly .ql-container{background-color:#f5f5f5!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.QuillEditorComponent, selector: "quill-editor" }] });
219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: EditorComponent, decorators: [{
220
- type: Component,
221
- args: [{ selector: 'cpquill-editor', providers: [{
222
- provide: NG_VALUE_ACCESSOR,
223
- useExisting: forwardRef(() => EditorComponent),
224
- multi: true
225
- }], template: "<ng-container *ngIf=\"users\">\n <form>\n <quill-editor name=\"editor\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? fullscreenHeight : height\"\n [style.width]=\"fullscreen ? fullscreenWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly && applyReadonlyStyle\"\n [class.no-toolbar]=\"!showToolbar\"\n [class.no-border]=\"!showBorder\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar *ngIf=\"showToolbar\">\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n</ng-container>\n\n<ng-template #toolbar>\n <div>\n <ng-container [ngTemplateOutlet]=\"fontStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"blockStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"headingStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"indentStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"rtl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"fontSize\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"heading\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"color\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"font\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"align\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"clean\"></ng-container>\n <nt-container [ngTemplateOutlet]=\"formula\"></nt-container>\n <ng-container [ngTemplateOutlet]=\"media\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #fontStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showFontStyle\">\n <button class=\"ql-bold\" *ngIf=\"config.buttons.bold\" [matTooltip]=\"tooltip(config.tooltips.bold)\"></button>\n <button class=\"ql-italic\" *ngIf=\"config.buttons.italic\" [matTooltip]=\"tooltip(config.tooltips.italic)\"></button>\n <button class=\"ql-underline\" *ngIf=\"config.buttons.underline\" [matTooltip]=\"tooltip(config.tooltips.underline)\"></button>\n <button class=\"ql-strike\" *ngIf=\"config.buttons.strike\" [matTooltip]=\"tooltip(config.tooltips.strike)\"></button>\n </span>\n</ng-template>\n\n<ng-template #blockStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showBlockStyle\">\n <button class=\"ql-blockquote\" *ngIf=\"config.buttons.blockquote\" [matTooltip]=\"tooltip(config.tooltips.blockquote)\"></button>\n <button class=\"ql-code-block\" *ngIf=\"config.buttons.codeblock\" [matTooltip]=\"tooltip(config.tooltips.codeblock)\"></button>\n </span>\n</ng-template>\n\n<ng-template #headingStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showQuickHeadingStyle\">\n <button class=\"ql-header\" value=\"1\" *ngIf=\"config.buttons.h1\" [matTooltip]=\"tooltip(config.tooltips.h1)\"></button>\n <button class=\"ql-header\" value=\"2\" *ngIf=\"config.buttons.h2\" [matTooltip]=\"tooltip(config.tooltips.h2)\"></button>\n </span>\n</ng-template>\n\n<ng-template #listStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showListStyle\">\n <button class=\"ql-list\" value=\"ordered\" *ngIf=\"config.buttons.ordered\" [matTooltip]=\"tooltip(config.tooltips.ordered)\"></button>\n <button class=\"ql-list\" value=\"bullet\" *ngIf=\"config.buttons.bulleted\" [matTooltip]=\"tooltip(config.tooltips.bulleted)\"></button>\n </span>\n</ng-template>\n\n<ng-template #scriptStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showScriptStyle\">\n <button class=\"ql-script\" value=\"sub\" *ngIf=\"config.buttons.subScript\" [matTooltip]=\"tooltip(config.tooltips.subScript)\"></button>\n <button class=\"ql-script\" value=\"super\" *ngIf=\"config.buttons.superScript\" [matTooltip]=\"tooltip(config.tooltips.superScript)\"></button>\n </span>\n</ng-template>\n \n<ng-template #indentStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showIndentStyle\">\n <button class=\"ql-indent\" value=\"-1\" *ngIf=\"config.buttons.decreaseIndent\" [matTooltip]=\"tooltip(config.tooltips.decreaseIndent)\"></button>\n <button class=\"ql-indent\" value=\"+1\" *ngIf=\"config.buttons.increaseIndent\" [matTooltip]=\"tooltip(config.tooltips.increaseIndent)\"></button>\n </span>\n</ng-template>\n\n<ng-template #rtl>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.rtl\">\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config.tooltips.rtl)\"></button>\n </span>\n</ng-template>\n\n<ng-template #fontSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.fontSize\" [matTooltip]=\"tooltip(config.tooltips.fontSize)\">\n <select class=\"ql-size\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #heading>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.headingStyle\" [matTooltip]=\"tooltip(config.tooltips.headingStyle)\">\n <select class=\"ql-header\">\n <option value=\"1\"></option>\n <option value=\"2\"></option>\n <option value=\"3\"></option>\n <option value=\"4\"></option>\n <option value=\"5\"></option>\n <option value=\"6\"></option>\n <option selected=\"selected\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #color>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.color\" [matTooltip]=\"tooltip(config.tooltips.color)\">\n <select class=\"ql-color\"></select>\n <select class=\"ql-background\"></select>\n </span>\n</ng-template>\n\n<ng-template #font>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.font\" [matTooltip]=\"tooltip(config.tooltips.font)\">\n <select class=\"ql-font\">\n <option selected></option>\n <option value=\"serif\"></option>\n <option value=\"monospace\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #align>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.align\" [matTooltip]=\"tooltip(config.tooltips.align)\">\n <select class=\"ql-align\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #clean>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.clean\" [matTooltip]=\"tooltip(config.tooltips.clean)\">\n <button class=\"ql-clean\"></button>\n </span>\n</ng-template>\n\n<ng-template #media>\n <span class=\"ql-formats\" *ngIf=\"config.showMedia\">\n <button class=\"ql-link\" *ngIf=\"config.buttons.link\" [matTooltip]=\"tooltip(config.tooltips.link)\"></button>\n <button class=\"ql-image\" *ngIf=\"config.buttons.image\" [matTooltip]=\"tooltip(config.tooltips.image)\"></button>\n <button class=\"ql-video\" *ngIf=\"config.buttons.video\" [matTooltip]=\"tooltip(config.tooltips.video)\"></button>\n </span>\n</ng-template>\n\n<ng-template #editorSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.editorSize\">\n <button id=\"fullscreen\"\n [matTooltip]=\"tooltip(fullscreen ?\n (fullscreenMode === 'expand' ? config.tooltips.minimize : config.tooltips.popin) :\n (fullscreenMode === 'expand' ? config.tooltips.maximize : config.tooltips.popout))\">\n\n <mat-icon (click)=\"toggleFullscreen()\">\n {{ fullscreen ?\n (fullscreenMode === 'expand' ? config.icons.minimize : config.icons.popin) :\n (fullscreenMode === 'expand' ? config.icons.maximize : config.icons.popout)\n }}\n </mat-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template #formula>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.formula\" [matTooltip]=\"tooltip(config.tooltips.formula)\">\n <button class=\"ql-formula\"></button>\n </span>\n</ng-template>", styles: [".ql-toolbar{display:grid;grid-template-columns:1fr auto}mat-icon{color:#ff4500}quill-editor.readonly .ql-toolbar{opacity:.5}::ng-deep quill-editor.no-toolbar .ql-toolbar{height:0;padding:0;visibility:hidden}::ng-deep quill-editor.no-border .ql-container{border:none}::ng-deep quill-editor.readonly .ql-container{background-color:#f5f5f5!important}\n"] }]
226
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
227
- type: Optional
228
- }, {
229
- type: Inject,
230
- args: [MAT_DIALOG_DATA]
231
- }] }, { type: i1.MatDialogRef, decorators: [{
232
- type: Optional
233
- }] }, { type: i2.ActiveDirectoryService }, { type: i1.MatDialog }]; }, propDecorators: { editor: [{
234
- type: ViewChild,
235
- args: [QuillEditorComponent, { static: false }]
236
- }], config: [{
237
- type: Input
238
- }], placeholder: [{
239
- type: Input
240
- }], users: [{
241
- type: Input
242
- }], format: [{
243
- type: Input
244
- }], height: [{
245
- type: Input
246
- }], width: [{
247
- type: Input
248
- }], fullscreenHeight: [{
249
- type: Input
250
- }], fullscreenWidth: [{
251
- type: Input
252
- }], fullscreenMode: [{
253
- type: Input
254
- }], enableTooltips: [{
255
- type: Input
256
- }], fullscreen: [{
257
- type: Input
258
- }], readonly: [{
259
- type: Input
260
- }], applyReadonlyStyle: [{
261
- type: Input
262
- }], showToolbar: [{
263
- type: Input
264
- }], showBorder: [{
265
- type: Input
266
- }], imageResizeModule: [{
267
- type: Input
268
- }], imageDropModule: [{
269
- type: Input
270
- }], mentionModule: [{
271
- type: Input
272
- }], syntaxModule: [{
273
- type: Input
274
- }], fullscreenChanged: [{
275
- type: Output
276
- }], onBlur: [{
277
- type: Output
278
- }], onContentChanged: [{
279
- type: Output
280
- }], onEditorChanged: [{
281
- type: Output
282
- }], onEditorCreated: [{
283
- type: Output
284
- }], onFocus: [{
285
- type: Output
286
- }], onSelectionChanged: [{
287
- type: Output
288
- }] } });
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsLWVkaXRvci9zcmMvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsLWVkaXRvci9zcmMvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSw2Q0FBNkM7QUFDN0MsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRixPQUFPLEVBQTJGLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFJLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcEQscUZBQXFGO0FBQ3JGLHNEQUFzRDtBQUN0RCxxREFBcUQ7QUFFckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7QUFhNUMsTUFBTSxPQUFPLGVBQWU7SUE2QzFCLFlBQVk7SUFFWixZQUF5RCxJQUFnQixFQUN6QyxTQUF3QyxFQUNwRCxzQkFBOEMsRUFDOUMsTUFBaUI7UUFIb0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUN6QyxjQUFTLEdBQVQsU0FBUyxDQUErQjtR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V0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUM7OzBCQWlEVyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUNsQyxRQUFRO3lHQS9DK0IsTUFBTTtzQkFBekQsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBUXpDLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFHRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBPcHRpb25hbCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuLy9pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsIFVzZXIgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeSc7XG5cbmltcG9ydCB7IENvbnRlbnRDaGFuZ2UsIEJsdXIsIEZvY3VzLCBFZGl0b3JDaGFuZ2VDb250ZW50LCBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24sIFNlbGVjdGlvbkNoYW5nZSwgUXVpbGxFZGl0b3JDb21wb25lbnQgfSBmcm9tICduZ3gtcXVpbGwnO1xuXG5pbXBvcnQgJ3F1aWxsLW1lbnRpb24nO1xuaW1wb3J0IFF1aWxsIGZyb20gJ3F1aWxsJztcbmltcG9ydCB7IEltYWdlRHJvcCB9IGZyb20gJ3F1aWxsLWltYWdlLWRyb3AtbW9kdWxlJztcblxuLy8gVGhpcyBkb2Vzbid0IHdvcmsgd2hlbiBkb25lIGZyb20gdGhlIGxpYnJhcnkgLSBpdCBtdXN0IGJlIGRvbmUgZnJvbSB0aGUgY2xpZW50IGFwcFxuLy9pbXBvcnQgSW1hZ2VSZXNpemUgZnJvbSAncXVpbGwtaW1hZ2UtcmVzaXplLW1vZHVsZSc7XG4vL1F1aWxsLnJlZ2lzdGVyKCdtb2R1bGVzL2ltYWdlUmVzaXplJywgSW1hZ2VSZXNpemUpO1xuXG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbC9jb25maWcnO1xuaW1wb3J0IHsgRGlhbG9nRGF0YSB9IGZyb20gJy4uLy4uL21vZGVsL2RpYWxvZy1kYXRhJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3BxdWlsbC1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVkaXRvckNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfV1cbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBWaWV3Q2hpbGQoUXVpbGxFZGl0b3JDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0b3I6IFF1aWxsRWRpdG9yQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIC8vI3JlZ2lvbiBDb250cm9sVmFsdWVBY2Nlc3NvciBzdHVmZlxuICB2YWx1ZTogYW55OyAvLyBzdHJpbmdcbiAgb25DaGFuZ2U6IChfOiBhbnkpID0+IHZvaWQgPSAoXzogYW55KSA9PiB7fTsgLy8gSW52b2tlZCB3aGVuIHRoZSBtb2RlbCBoYXMgYmVlbiBjaGFuZ2VkXG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9OyAvLyBJbnZva2VkIHdoZW4gdGhlIG1vZGVsIGhhcyBiZWVuIHRvdWNoZWRcbiAgLy8jZW5kcmVnaW9uXG4gIFxuICBASW5wdXQoKSBjb25maWc6IENvbmZpZyA9IG5ldyBDb25maWcoKTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgdXNlcnM6IFVzZXJbXSB8IHVuZGVmaW5lZDtcblxuICAvLyNyZWdpb24gVGhlc2UgY2FuIGJlIHBhc3NlZCBpbiBhcyBASW5wdXQoKSwgb3IgdXNlIHZhbHVlcyBmcm9tIGNvbmZpZ1xuICBASW5wdXQoKSBmb3JtYXQ6ICdvYmplY3QnIHwgJ2h0bWwnIHwgJ3RleHQnIHwgJ2pzb24nID0gdGhpcy5jb25maWcuZm9ybWF0O1xuICBASW5wdXQoKSBoZWlnaHQgPSB0aGlzLmNvbmZpZy5oZWlnaHQ7XG4gIEBJbnB1dCgpIHdpZHRoID0gdGhpcy5jb25maWcud2lkdGg7XG4gIEBJbnB1dCgpIGZ1bGxzY3JlZW5IZWlnaHQgPSB0aGlzLmNvbmZpZy5mdWxsc2NyZWVuSGVpZ2h0O1xuICBASW5wdXQoKSBmdWxsc2NyZWVuV2lkdGggPSB0aGlzLmNvbmZpZy5mdWxsc2NyZWVuV2lkdGg7XG4gIEBJbnB1dCgpIGZ1bGxzY3JlZW5Nb2RlOiAnZXhwYW5kJyB8ICdwb3BvdXQnID0gdGhpcy5jb25maWcuZnVsbHNjcmVlbk1vZGU7XG5cbiAgQElucHV0KCkgZW5hYmxlVG9vbHRpcHM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGZ1bGxzY3JlZW46IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBhcHBseVJlYWRvbmx5U3R5bGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHNob3dUb29sYmFyOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzaG93Qm9yZGVyOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8vI3JlZ2lvbiBPcHRpb25hbCBRdWlsbCBtb2R1bGVzXG4gIEBJbnB1dCgpIGltYWdlUmVzaXplTW9kdWxlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBpbWFnZURyb3BNb2R1bGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1lbnRpb25Nb2R1bGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHN5bnRheE1vZHVsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgLy8jZW5kcmVnaW9uXG4gIC8vI2VuZHJlZ2lvblxuXG4gIEBPdXRwdXQoKSBmdWxsc2NyZWVuQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvLyNyZWdpb24gUGFzc3Rocm91Z2ggZXZlbnRzXG4gIEBPdXRwdXQoKSBvbkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEJsdXI+KCk7XG4gIEBPdXRwdXQoKSBvbkNvbnRlbnRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDb250ZW50Q2hhbmdlPigpO1xuICBAT3V0cHV0KCkgb25FZGl0b3JDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0b3JDaGFuZ2VDb250ZW50IHwgRWRpdG9yQ2hhbmdlU2VsZWN0aW9uPigpO1xuICBAT3V0cHV0KCkgb25FZGl0b3JDcmVhdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Gb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXM+KCk7XG4gIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvbkNoYW5nZT4oKTtcbiAgLy8jZW5kcmVnaW9uXG4gIFxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkYXRhOiBEaWFsb2dEYXRhLFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEVkaXRvckNvbXBvbmVudD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgYWN0aXZlRGlyZWN0b3J5U2VydmljZTogQWN0aXZlRGlyZWN0b3J5U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykgeyAgXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICBcbiAgICBpZiAoIXRoaXMudXNlcnMpIHtcbiAgICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5U2VydmljZS5nZXRVc2VycygpLnN1YnNjcmliZSh1c2VycyA9PlxuICAgICAgICB0aGlzLnVzZXJzID0gdXNlcnNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuY29uZmlnID8/IHRoaXMuZGF0YT8uY29uZmlnID8/IG5ldyBDb25maWcoKTtcblxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlID8/IHRoaXMuZGF0YT8udmFsdWU7XG5cbiAgICB0aGlzLmltYWdlUmVzaXplTW9kdWxlID0gdGhpcy5pbWFnZVJlc2l6ZU1vZHVsZSAhPT0gdW5kZWZpbmVkID9cbiAgICAgIHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUgOlxuICAgICAgdGhpcy5pbWFnZVJlc2l6ZU1vZHVsZSA/PyB0aGlzLmNvbmZpZy5pbWFnZVJlc2l6ZU1vZHVsZTtcblxuICAgIHRoaXMuaW1hZ2VEcm9wTW9kdWxlID0gdGhpcy5pbWFnZURyb3BNb2R1bGUgIT09IHVuZGVmaW5lZCA/XG4gICAgICB0aGlzLmltYWdlRHJvcE1vZHVsZSA6XG4gICAgICB0aGlzLmltYWdlRHJvcE1vZHVsZSA/PyB0aGlzLmNvbmZpZy5pbWFnZURyb3BNb2R1bGU7XG5cbiAgICB0aGlzLm1lbnRpb25Nb2R1bGUgPSB0aGlzLm1lbnRpb25Nb2R1bGUgIT09IHVuZGVmaW5lZCA/XG4gICAgICB0aGlzLm1lbnRpb25Nb2R1bGUgOlxuICAgICAgdGhpcy5tZW50aW9uTW9kdWxlID8/IHRoaXMuY29uZmlnLm1lbnRpb25Nb2R1bGU7XG5cbiAgICB0aGlzLnN5bnRheE1vZHVsZSA9IHRoaXMuc3ludGF4TW9kdWxlICE9PSB1bmRlZmluZWQgP1xuICAgICAgdGhpcy5zeW50YXhNb2R1bGUgOlxuICAgICAgdGhpcy5zeW50YXhNb2R1bGUgPz8gdGhpcy5jb25maWcuc3ludGF4TW9kdWxlO1xuICAgICAgXG4gICAgaWYgKHRoaXMuaW1hZ2VEcm9wTW9kdWxlKSB7XG4gICAgICBRdWlsbC5yZWdpc3RlcignbW9kdWxlcy9pbWFnZURyb3AnLCBJbWFnZURyb3ApO1xuICAgIH1cblxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyID8/IHRoaXMuZGF0YT8ucGxhY2Vob2xkZXI7XG4gICAgdGhpcy51c2VycyA9IHRoaXMudXNlcnMgPz8gdGhpcy5kYXRhPy51c2VycztcblxuICAgIHRoaXMuZm9ybWF0ID0gdGhpcy5mb3JtYXQgPz8gdGhpcy5kYXRhPy5mb3JtYXQgPz8gdGhpcy5jb25maWcuZm9ybWF0O1xuICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy5oZWlnaHQgPz8gdGhpcy5kYXRhPy5oZWlnaHQgPz8gdGhpcy5jb25maWcuaGVpZ2h0O1xuICAgIHRoaXMud2lkdGggPSB0aGlzLndpZHRoID8/IHRoaXMuZGF0YT8ud2lkdGggPz8gdGhpcy5jb25maWcud2lkdGg7XG4gICAgdGhpcy5mdWxsc2NyZWVuSGVpZ2h0ID0gdGhpcy5mdWxsc2NyZWVuSGVpZ2h0ID8/IHRoaXMuZGF0YT8ubWF4SGVpZ2h0ID8/IHRoaXMuY29uZmlnLmZ1bGxzY3JlZW5IZWlnaHQ7XG4gICAgdGhpcy5mdWxsc2NyZWVuV2lkdGggPSB0aGlzLmZ1bGxzY3JlZW5XaWR0aCA/PyB0aGlzLmRhdGE/Lm1heFdpZHRoID8/IHRoaXMuY29uZmlnLmZ1bGxzY3JlZW5XaWR0aDtcbiAgICB0aGlzLmZ1bGxzY3JlZW5Nb2RlID0gdGhpcy5mdWxsc2NyZWVuTW9kZSA/PyB0aGlzLmRhdGE/LmZ1bGxzY3JlZW5Nb2RlID8/IHRoaXMuY29uZmlnLmZ1bGxzY3JlZW5Nb2RlO1xuXG4gICAgdGhpcy5lbmFibGVUb29sdGlwcyA9IHRoaXMuZW5hYmxlVG9vbHRpcHMgIT09IHVuZGVmaW5lZCA/XG4gICAgICB0aGlzLmVuYWJsZVRvb2x0aXBzIDpcbiAgICAgIHRoaXMuZGF0YT8uZW5hYmxlVG9vbHRpcHMgPz8gdGhpcy5jb25maWcuZW5hYmxlVG9vbHRpcHM7XG5cbiAgICB0aGlzLmZ1bGxzY3JlZW4gPSB0aGlzLmZ1bGxzY3JlZW4gIT09IHVuZGVmaW5lZCA/XG4gICAgICB0aGlzLmZ1bGxzY3JlZW4gOlxuICAgICAgdGhpcy5kYXRhPy5mdWxsc2NyZWVuID8/IHRoaXMuY29uZmlnLmZ1bGxzY3JlZW47XG5cbiAgICB0aGlzLnJlYWRvbmx5ID0gdGhpcy5yZWFkb25seSAhPT0gdW5kZWZpbmVkID9cbiAgICAgIHRoaXMucmVhZG9ubHkgOlxuICAgICAgdGhpcy5kYXRhPy5yZWFkb25seSA/PyB0aGlzLmNvbmZpZy5yZWFkb25seTtcblxuICAgIHRoaXMuYXBwbHlSZWFkb25seVN0eWxlID0gdGhpcy5hcHBseVJlYWRvbmx5U3R5bGUgIT09IHVuZGVmaW5lZCA/XG4gICAgICB0aGlzLmFwcGx5UmVhZG9ubHlTdHlsZSA6XG4gICAgICB0aGlzLmRhdGE/LmFwcGx5UmVhZG9ubHlTdHlsZSA/PyB0aGlzLmNvbmZpZy5hcHBseVJlYWRvbmx5U3R5bGU7XG5cbiAgICB0aGlzLnNob3dUb29sYmFyID0gdGhpcy5zaG93VG9vbGJhciAhPT0gdW5kZWZpbmVkID9cbiAgICAgIHRoaXMuc2hvd1Rvb2xiYXIgOlxuICAgICAgdGhpcy5kYXRhPy5zaG93VG9vbGJhciA/PyB0aGlzLmNvbmZpZy5zaG93VG9vbGJhcjtcblxuICAgIHRoaXMuc2hvd0JvcmRlciA9IHRoaXMuc2hvd0JvcmRlciAhPT0gdW5kZWZpbmVkID9cbiAgICAgIHRoaXMuc2hvd0JvcmRlciA6XG4gICAgICB0aGlzLmRhdGE/LnNob3dCb3JkZXIgPz8gdGhpcy5jb25maWcuc2hvd0JvcmRlcjtcbiAgfVxuXG4gIHRvZ2dsZUZ1bGxzY3JlZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZnVsbHNjcmVlbk1vZGUgPT09ICdleHBhbmQnKSB7XG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbiA9ICF0aGlzLmZ1bGxzY3JlZW47XG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbkNoYW5nZWQuZW1pdCh0aGlzLmZ1bGxzY3JlZW4pO1xuICAgICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYgKHRoaXMuZnVsbHNjcmVlbikge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQoZmFsc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGF0YTogRGlhbG9nRGF0YSA9IHtcblxuICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcsXG4gICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMucGxhY2Vob2xkZXIsXG4gICAgICAgICAgZm9ybWF0OiB0aGlzLmZvcm1hdCxcbiAgICAgICAgICBoZWlnaHQ6IHRoaXMuZnVsbHNjcmVlbkhlaWdodCxcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIG1heEhlaWdodDogdGhpcy5mdWxsc2NyZWVuSGVpZ2h0LFxuICAgICAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgZW5hYmxlVG9vbHRpcHM6IHRoaXMuZW5hYmxlVG9vbHRpcHMhLFxuICAgICAgICAgIGZ1bGxzY3JlZW46IHRydWUsXG4gICAgICAgICAgZnVsbHNjcmVlbk1vZGU6IHRoaXMuZnVsbHNjcmVlbk1vZGUsXG4gICAgICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZG9ubHkhLFxuICAgICAgICAgIGFwcGx5UmVhZG9ubHlTdHlsZTogdGhpcy5hcHBseVJlYWRvbmx5U3R5bGUhLFxuICAgICAgICAgIHNob3dUb29sYmFyOiB0aGlzLnNob3dUb29sYmFyISxcbiAgICAgICAgICBzaG93Qm9yZGVyOiB0aGlzLnNob3dCb3JkZXIhLFxuICAgICAgICAgIHVzZXJzOiB0aGlzLnVzZXJzXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5kaWFsb2cub3BlbihFZGl0b3JDb21wb25lbnQsIHtcbiAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXG4gICAgICAgICAgd2lkdGg6IHRoaXMuZnVsbHNjcmVlbldpZHRoLFxuICAgICAgICAgIGhlaWdodDogdGhpcy5mdWxsc2NyZWVuSGVpZ2h0LFxuICAgICAgICAgIGRhdGFcbiAgICAgICAgfSlcbiAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQodHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdG9vbHRpcCh2YWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlVG9vbHRpcHMgPyB2YWwgOiAnJztcbiAgfVxuXG4gIGdldCBtb2R1bGVzKCkge1xuICAgIGlmICghdGhpcy51c2VycykgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG5cbiAgICBjb25zdCBtb2R1bGVzID0geyB9O1xuXG4gICAgaWYgKCF0aGlzLnNob3dUb29sYmFyKSB7XG4gICAgICBtb2R1bGVzWyd0b29sYmFyJ10gPSBbXTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbWFnZVJlc2l6ZU1vZHVsZSkge1xuICAgICAgbW9kdWxlc1snaW1hZ2VSZXNpemUnXSA9IHt9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLmltYWdlRHJvcE1vZHVsZSkge1xuICAgICAgbW9kdWxlc1snaW1hZ2VEcm9wJ10gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN5bnRheE1vZHVsZSkge1xuICAgICAgbW9kdWxlc1snc3ludGF4J10gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1lbnRpb25Nb2R1bGUpIHtcbiAgICAgIG1vZHVsZXNbJ21lbnRpb24nXSA9IHtcbiAgICAgICAgYWxsb3dlZENoYXJzOiAvXltBLVphLXpcXHPDhcOEw5bDpcOkw7ZdKiQvLFxuXG4gICAgICAgIG9uU2VsZWN0OiAoaXRlbTogRE9NU3RyaW5nTWFwLCBpbnNlcnRJdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvciEucXVpbGxFZGl0b3JcbiAgICAgICAgICBpbnNlcnRJdGVtKGl0ZW0pXG4gICAgICAgICAgLy8gbmVjZXNzYXJ5IGJlY2F1c2UgcXVpbGwtbWVudGlvbiB0cmlnZ2VycyBjaGFuZ2VzIGFzICdhcGknIGluc3RlYWQgb2YgJ3VzZXInXG4gICAgICAgICAgZWRpdG9yLmluc2VydFRleHQoZWRpdG9yLmdldExlbmd0aCgpIC0gMSwgJycsICd1c2VyJylcbiAgICAgICAgfSxcblxuICAgICAgICBzb3VyY2U6IChzZWFyY2hUZXJtOiBzdHJpbmcsIHJlbmRlckxpc3Q6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChzZWFyY2hUZXJtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmVuZGVyTGlzdCh0aGlzLnVzZXJzPy5tYXAodSA9PiAoeyB2YWx1ZTogYCR7dS5kaXNwbGF5TmFtZX0gKCR7dS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpfSlgIH0pKSwgc2VhcmNoVGVybSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlczogYW55W10gPSBbXVxuXG4gICAgICAgICAgICB0aGlzLnVzZXJzIS5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZW50cnkuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkgIT09IC0xIHx8XG4gICAgICAgICAgICAgICAgZW50cnkuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkgIT09IC0xXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hlcy5wdXNoKHsgdmFsdWU6IGAke2VudHJ5LmRpc3BsYXlOYW1lfSAoJHtlbnRyeS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpfSlgIH0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIHJlbmRlckxpc3QobWF0Y2hlcywgc2VhcmNoVGVybSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZHVsZXM7XG4gIH1cblxuICAvLyNyZWdpb24gQ29udHJvbFZhbHVlQWNjZXNzb3IgbWV0aG9kc1xuICAvLyBNZXRob2QgdGhhdCBpcyBpbnZva2VkIG9uIGFuIHVwZGF0ZSBvZiBhIG1vZGVsLlxuICB1cGRhdGVDaGFuZ2VzKCkge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cblxuICAvLyNyZWdpb24gQ29udHJvbFZhbHVlQWNjZXNzb3IgT3ZlcnJpZGVzXG5cbiAgLy8gV3JpdGVzIGEgbmV3IGl0ZW0gdG8gdGhlIGVsZW1lbnQuXG4gIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IHNob3VsZCBiZSBjYWxsZWQgd2hlbiB0aGUgY29udHJvbCdzIHZhbHVlIGNoYW5nZXMgaW4gdGhlIFVJLlxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8vIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGEgYmx1ciBldmVudC5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI2VuZHJlZ2lvblxufSIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2Vyc1wiPlxuICAgIDxmb3JtPlxuICAgICAgICA8cXVpbGwtZWRpdG9yIG5hbWU9XCJlZGl0b3JcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVDaGFuZ2VzKClcIlxuXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgW2Zvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJmdWxsc2NyZWVuID8gZnVsbHNjcmVlbkhlaWdodCA6IGhlaWdodFwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiZnVsbHNjcmVlbiA/IGZ1bGxzY3JlZW5XaWR0aCA6IHdpZHRoXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgICBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHkgJiYgYXBwbHlSZWFkb25seVN0eWxlXCJcbiAgICAgICAgICAgIFtjbGFzcy5uby10b29sYmFyXT1cIiFzaG93VG9vbGJhclwiXG4gICAgICAgICAgICBbY2xhc3Mubm8tYm9yZGVyXT1cIiFzaG93Qm9yZGVyXCJcbiAgICAgICAgICAgIFttb2R1bGVzXT1cIm1vZHVsZXNcIlxuICAgIFxuICAgICAgICAgICAgKG9uQmx1cik9XCJvbkJsdXIuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbkNvbnRlbnRDaGFuZ2VkKT1cIm9uQ29udGVudENoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbkVkaXRvckNoYW5nZWQpPVwib25FZGl0b3JDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25FZGl0b3JDcmVhdGVkKT1cIm9uRWRpdG9yQ3JlYXRlZC5lbWl0KClcIlxuICAgICAgICAgICAgKG9uRm9jdXMpPVwib25Gb2N1cy5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCI+XG4gICAgXG4gICAgICAgICAgICA8ZGl2IHF1aWxsLWVkaXRvci10b29sYmFyICpuZ0lmPVwic2hvd1Rvb2xiYXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvb2xiYXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVkaXRvclNpemVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3F1aWxsLWVkaXRvcj5cbiAgICA8L2Zvcm0+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICN0b29sYmFyPlxuICAgIDxkaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9udFN0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYmxvY2tTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRpbmdTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3RTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNjcmlwdFN0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5kZW50U3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJydGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb250U2l6ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2xvclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhbGlnblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNsZWFuXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxudC1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9ybXVsYVwiPjwvbnQtY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lZGlhXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZvbnRTdHlsZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5zaG93Rm9udFN0eWxlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1ib2xkXCIgICAgICAqbmdJZj1cImNvbmZpZy5idXR0b25zLmJvbGRcIiAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmJvbGQpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pdGFsaWNcIiAgICAqbmdJZj1cImNvbmZpZy5idXR0b25zLml0YWxpY1wiICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLml0YWxpYylcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXVuZGVybGluZVwiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMudW5kZXJsaW5lXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMudW5kZXJsaW5lKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc3RyaWtlXCIgICAgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5zdHJpa2VcIiAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5zdHJpa2UpXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNibG9ja1N0eWxlPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLnNob3dCbG9ja1N0eWxlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1ibG9ja3F1b3RlXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5ibG9ja3F1b3RlXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuYmxvY2txdW90ZSlcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWNvZGUtYmxvY2tcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmNvZGVibG9ja1wiICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5jb2RlYmxvY2spXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkaW5nU3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuc2hvd1F1aWNrSGVhZGluZ1N0eWxlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1oZWFkZXJcIiB2YWx1ZT1cIjFcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmgxXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuaDEpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1oZWFkZXJcIiB2YWx1ZT1cIjJcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmgyXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuaDIpXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsaXN0U3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuc2hvd0xpc3RTdHlsZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwib3JkZXJlZFwiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMub3JkZXJlZFwiICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5vcmRlcmVkKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwiYnVsbGV0XCIgICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuYnVsbGV0ZWRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5idWxsZXRlZClcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NjcmlwdFN0eWxlPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLnNob3dTY3JpcHRTdHlsZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc2NyaXB0XCIgdmFsdWU9XCJzdWJcIiAgICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuc3ViU2NyaXB0XCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuc3ViU2NyaXB0KVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc2NyaXB0XCIgdmFsdWU9XCJzdXBlclwiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuc3VwZXJTY3JpcHRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5zdXBlclNjcmlwdClcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuICAgIFxuPG5nLXRlbXBsYXRlICNpbmRlbnRTdHlsZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5zaG93SW5kZW50U3R5bGVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWluZGVudFwiIHZhbHVlPVwiLTFcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmRlY3JlYXNlSW5kZW50XCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuZGVjcmVhc2VJbmRlbnQpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIisxXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5pbmNyZWFzZUluZGVudFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmluY3JlYXNlSW5kZW50KVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcnRsPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMucnRsXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1kaXJlY3Rpb25cIiB2YWx1ZT1cInJ0bFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLnJ0bClcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZvbnRTaXplPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuZm9udFNpemVcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5mb250U2l6ZSlcIj5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLXNpemVcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzbWFsbFwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJsYXJnZVwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImh1Z2VcIj48L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkaW5nPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuaGVhZGluZ1N0eWxlXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuaGVhZGluZ1N0eWxlKVwiPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtaGVhZGVyXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNFwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI2XCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPVwic2VsZWN0ZWRcIj48L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb2xvcj5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmNvbG9yXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuY29sb3IpXCI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1jb2xvclwiPjwvc2VsZWN0PlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYmFja2dyb3VuZFwiPjwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9udD5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmZvbnRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5mb250KVwiPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtZm9udFwiPlxuICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzZXJpZlwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPjwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FsaWduPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuYWxpZ25cIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5hbGlnbilcIj5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWFsaWduXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImNlbnRlclwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJpZ2h0XCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwianVzdGlmeVwiPjwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NsZWFuPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuY2xlYW5cIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5jbGVhbilcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWNsZWFuXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtZWRpYT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5zaG93TWVkaWFcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWxpbmtcIiAgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5saW5rXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMubGluaylcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWltYWdlXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5pbWFnZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmltYWdlKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtdmlkZW9cIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLnZpZGVvXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMudmlkZW8pXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlZGl0b3JTaXplPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuZWRpdG9yU2l6ZVwiPlxuICAgICAgICA8YnV0dG9uIGlkPVwiZnVsbHNjcmVlblwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGZ1bGxzY3JlZW4gP1xuICAgICAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSA9PT0gJ2V4cGFuZCcgPyBjb25maWcudG9vbHRpcHMubWluaW1pemUgOiBjb25maWcudG9vbHRpcHMucG9waW4pIDpcbiAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUgPT09ICdleHBhbmQnID8gY29uZmlnLnRvb2x0aXBzLm1heGltaXplIDogY29uZmlnLnRvb2x0aXBzLnBvcG91dCkpXCI+XG5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwidG9nZ2xlRnVsbHNjcmVlbigpXCI+XG4gICAgICAgICAgICAgICAge3sgZnVsbHNjcmVlbiA/XG4gICAgICAgICAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSA9PT0gJ2V4cGFuZCcgPyBjb25maWcuaWNvbnMubWluaW1pemUgOiBjb25maWcuaWNvbnMucG9waW4pIDpcbiAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlID09PSAnZXhwYW5kJyA/IGNvbmZpZy5pY29ucy5tYXhpbWl6ZSA6IGNvbmZpZy5pY29ucy5wb3BvdXQpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9ybXVsYT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmZvcm11bGFcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5mb3JtdWxhKVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtZm9ybXVsYVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+Il19
@@ -1,51 +0,0 @@
1
- export class Buttons {
2
- constructor() {
3
- //#region Font Style
4
- this.bold = true;
5
- this.italic = true;
6
- this.strike = true;
7
- this.underline = true;
8
- //#endregion
9
- //#region Media
10
- this.link = true;
11
- this.image = true;
12
- this.video = true;
13
- //#endregion
14
- //#region Block Style
15
- this.blockquote = true;
16
- this.codeblock = true;
17
- //#endregion
18
- //#region Heading Style
19
- this.h1 = true;
20
- this.h2 = true;
21
- //#endregion
22
- //#region Color
23
- this.color = true;
24
- //#endregion
25
- //#region List Style
26
- this.bulleted = true;
27
- this.ordered = true;
28
- //#endregion
29
- //#region Script Style
30
- this.subScript = true;
31
- this.superScript = true;
32
- //#endregion
33
- //#region Indent Style
34
- this.increaseIndent = true;
35
- this.decreaseIndent = true;
36
- //#endregion
37
- //#region DropDowns
38
- this.align = true;
39
- this.font = true;
40
- this.fontSize = true;
41
- this.headingStyle = true;
42
- //#endregion
43
- //#region Single Buttons
44
- this.clean = true;
45
- this.formula = true;
46
- this.rtl = true;
47
- this.editorSize = true;
48
- //#endregion
49
- }
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsLWVkaXRvci9zcmMvbW9kZWwvYnV0dG9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sT0FBTztJQUFwQjtRQUNJLG9CQUFvQjtRQUNwQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFlBQVk7UUFFWixlQUFlO1FBQ2YsU0FBSSxHQUFHLElBQUksQ0FBQztRQUNaLFVBQUssR0FBRyxJQUFJLENBQUM7UUFDYixVQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2IsWUFBWTtRQUVaLHFCQUFxQjtRQUNyQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsWUFBWTtRQUVaLHVCQUF1QjtRQUN2QixPQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ1YsT0FBRSxHQUFHLElBQUksQ0FBQztRQUNWLFlBQVk7UUFFWixlQUFlO1FBQ2YsVUFBSyxHQUFHLElBQUksQ0FBQztRQUNiLFlBQVk7UUFFWixvQkFBb0I7UUFDcEIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsWUFBWTtRQUVaLHNCQUFzQjtRQUN0QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLFlBQVk7UUFFWixzQkFBc0I7UUFDdEIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsWUFBWTtRQUVaLG1CQUFtQjtRQUNuQixVQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2IsU0FBSSxHQUFHLElBQUksQ0FBQztRQUNaLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsWUFBWTtRQUVaLHdCQUF3QjtRQUN4QixVQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2IsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLFFBQUcsR0FBRyxJQUFJLENBQUM7UUFDWCxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLFlBQVk7SUFDaEIsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEJ1dHRvbnMge1xyXG4gICAgLy8jcmVnaW9uIEZvbnQgU3R5bGVcclxuICAgIGJvbGQgPSB0cnVlO1xyXG4gICAgaXRhbGljID0gdHJ1ZTtcclxuICAgIHN0cmlrZSA9IHRydWU7XHJcbiAgICB1bmRlcmxpbmUgPSB0cnVlO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIE1lZGlhXHJcbiAgICBsaW5rID0gdHJ1ZTtcclxuICAgIGltYWdlID0gdHJ1ZTtcclxuICAgIHZpZGVvID0gdHJ1ZTtcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBCbG9jayBTdHlsZVxyXG4gICAgYmxvY2txdW90ZSA9IHRydWU7XHJcbiAgICBjb2RlYmxvY2sgPSB0cnVlO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIEhlYWRpbmcgU3R5bGVcclxuICAgIGgxID0gdHJ1ZTtcclxuICAgIGgyID0gdHJ1ZTtcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBDb2xvclxyXG4gICAgY29sb3IgPSB0cnVlO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIExpc3QgU3R5bGVcclxuICAgIGJ1bGxldGVkID0gdHJ1ZTtcclxuICAgIG9yZGVyZWQgPSB0cnVlO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIFNjcmlwdCBTdHlsZVxyXG4gICAgc3ViU2NyaXB0ID0gdHJ1ZTtcclxuICAgIHN1cGVyU2NyaXB0ID0gdHJ1ZTtcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBJbmRlbnQgU3R5bGVcclxuICAgIGluY3JlYXNlSW5kZW50ID0gdHJ1ZTtcclxuICAgIGRlY3JlYXNlSW5kZW50ID0gdHJ1ZTtcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBEcm9wRG93bnNcclxuICAgIGFsaWduID0gdHJ1ZTtcclxuICAgIGZvbnQgPSB0cnVlO1xyXG4gICAgZm9udFNpemUgPSB0cnVlO1xyXG4gICAgaGVhZGluZ1N0eWxlID0gdHJ1ZTtcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBTaW5nbGUgQnV0dG9uc1xyXG4gICAgY2xlYW4gPSB0cnVlO1xyXG4gICAgZm9ybXVsYSA9IHRydWU7XHJcbiAgICBydGwgPSB0cnVlO1xyXG4gICAgZWRpdG9yU2l6ZSA9IHRydWU7XHJcbiAgICAvLyNlbmRyZWdpb25cclxufSJdfQ==
@@ -1,40 +0,0 @@
1
- import { Buttons } from "./buttons";
2
- import { Icons } from "./icons";
3
- import { Tooltips } from "./tooltips";
4
- export class Config {
5
- constructor() {
6
- this.buttons = new Buttons();
7
- this.tooltips = new Tooltips();
8
- this.icons = new Icons();
9
- //#region These can be overriden via @Input()
10
- this.format = 'html';
11
- this.height = '50vh';
12
- this.width = '100%';
13
- this.fullscreenHeight = '85vh';
14
- this.fullscreenWidth = '100%';
15
- this.enableTooltips = true;
16
- this.fullscreen = false;
17
- this.fullscreenMode = 'popout';
18
- this.readonly = false;
19
- this.applyReadonlyStyle = true;
20
- this.showToolbar = true;
21
- this.showBorder = true;
22
- //#region Optional Quill modules
23
- this.imageResizeModule = true;
24
- this.imageDropModule = true;
25
- this.mentionModule = true;
26
- this.syntaxModule = true;
27
- //#endregion
28
- //#endregion
29
- //#region Groups
30
- this.showBlockStyle = () => this.buttons.blockquote || this.buttons.codeblock;
31
- this.showFontStyle = () => this.buttons.bold || this.buttons.italic || this.buttons.strike || this.buttons.underline;
32
- this.showQuickHeadingStyle = () => this.buttons.h1 || this.buttons.h2;
33
- this.showIndentStyle = () => this.buttons.decreaseIndent || this.buttons.increaseIndent;
34
- this.showListStyle = () => this.buttons.bulleted || this.buttons.ordered;
35
- this.showMedia = () => this.buttons.link || this.buttons.image || this.buttons.video;
36
- this.showScriptStyle = () => this.buttons.subScript || this.buttons.superScript;
37
- //#endregion
38
- }
39
- }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwtZWRpdG9yL3NyYy9tb2RlbC9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdEMsTUFBTSxPQUFPLE1BQU07SUFBbkI7UUFDSSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMxQixVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUVwQiw2Q0FBNkM7UUFDN0MsV0FBTSxHQUF3QyxNQUFNLENBQUM7UUFDckQsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixVQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ2YscUJBQWdCLEdBQUcsTUFBTSxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsbUJBQWMsR0FBd0IsUUFBUSxDQUFDO1FBQy9DLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFbEIsZ0NBQWdDO1FBQ2hDLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6QixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixZQUFZO1FBRVosWUFBWTtRQUVaLGdCQUFnQjtRQUNoQixtQkFBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3pFLGtCQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDaEgsMEJBQXFCLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDakUsb0JBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUNuRixrQkFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3BFLGNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNoRixvQkFBZSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzNFLFlBQVk7SUFDaEIsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnV0dG9ucyB9IGZyb20gXCIuL2J1dHRvbnNcIjtcclxuaW1wb3J0IHsgSWNvbnMgfSBmcm9tIFwiLi9pY29uc1wiO1xyXG5pbXBvcnQgeyBUb29sdGlwcyB9IGZyb20gXCIuL3Rvb2x0aXBzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uZmlnIHtcclxuICAgIGJ1dHRvbnMgPSBuZXcgQnV0dG9ucygpO1xyXG4gICAgdG9vbHRpcHMgPSBuZXcgVG9vbHRpcHMoKTtcclxuICAgIGljb25zID0gbmV3IEljb25zKCk7XHJcblxyXG4gICAgLy8jcmVnaW9uIFRoZXNlIGNhbiBiZSBvdmVycmlkZW4gdmlhIEBJbnB1dCgpXHJcbiAgICBmb3JtYXQ6ICdvYmplY3QnIHwgJ2h0bWwnIHwgJ3RleHQnIHwgJ2pzb24nID0gJ2h0bWwnO1xyXG4gICAgaGVpZ2h0ID0gJzUwdmgnO1xyXG4gICAgd2lkdGggPSAnMTAwJSc7XHJcbiAgICBmdWxsc2NyZWVuSGVpZ2h0ID0gJzg1dmgnO1xyXG4gICAgZnVsbHNjcmVlbldpZHRoID0gJzEwMCUnO1xyXG4gICAgZW5hYmxlVG9vbHRpcHMgPSB0cnVlO1xyXG4gICAgZnVsbHNjcmVlbiA9IGZhbHNlO1xyXG4gICAgZnVsbHNjcmVlbk1vZGU6ICdleHBhbmQnIHwgJ3BvcG91dCcgPSAncG9wb3V0JztcclxuICAgIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICBhcHBseVJlYWRvbmx5U3R5bGUgPSB0cnVlO1xyXG4gICAgc2hvd1Rvb2xiYXIgPSB0cnVlO1xyXG4gICAgc2hvd0JvcmRlciA9IHRydWU7XHJcblxyXG4gICAgLy8jcmVnaW9uIE9wdGlvbmFsIFF1aWxsIG1vZHVsZXNcclxuICAgIGltYWdlUmVzaXplTW9kdWxlID0gdHJ1ZTtcclxuICAgIGltYWdlRHJvcE1vZHVsZSA9IHRydWU7XHJcbiAgICBtZW50aW9uTW9kdWxlID0gdHJ1ZTtcclxuICAgIHN5bnRheE1vZHVsZSA9IHRydWU7XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gR3JvdXBzXHJcbiAgICBzaG93QmxvY2tTdHlsZSA9ICgpID0+IHRoaXMuYnV0dG9ucy5ibG9ja3F1b3RlIHx8IHRoaXMuYnV0dG9ucy5jb2RlYmxvY2s7XHJcbiAgICBzaG93Rm9udFN0eWxlID0gKCkgPT4gdGhpcy5idXR0b25zLmJvbGQgfHwgdGhpcy5idXR0b25zLml0YWxpYyB8fCB0aGlzLmJ1dHRvbnMuc3RyaWtlIHx8IHRoaXMuYnV0dG9ucy51bmRlcmxpbmU7XHJcbiAgICBzaG93UXVpY2tIZWFkaW5nU3R5bGUgPSAoKSA9PiB0aGlzLmJ1dHRvbnMuaDEgfHwgdGhpcy5idXR0b25zLmgyO1xyXG4gICAgc2hvd0luZGVudFN0eWxlID0gKCkgPT4gdGhpcy5idXR0b25zLmRlY3JlYXNlSW5kZW50IHx8IHRoaXMuYnV0dG9ucy5pbmNyZWFzZUluZGVudDtcclxuICAgIHNob3dMaXN0U3R5bGUgPSAoKSA9PiB0aGlzLmJ1dHRvbnMuYnVsbGV0ZWQgfHwgdGhpcy5idXR0b25zLm9yZGVyZWQ7XHJcbiAgICBzaG93TWVkaWEgPSAoKSA9PiB0aGlzLmJ1dHRvbnMubGluayB8fCB0aGlzLmJ1dHRvbnMuaW1hZ2UgfHwgdGhpcy5idXR0b25zLnZpZGVvO1xyXG4gICAgc2hvd1NjcmlwdFN0eWxlID0gKCkgPT4gdGhpcy5idXR0b25zLnN1YlNjcmlwdCB8fCB0aGlzLmJ1dHRvbnMuc3VwZXJTY3JpcHQ7XHJcbiAgICAvLyNlbmRyZWdpb25cclxufSJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbC1lZGl0b3Ivc3JjL21vZGVsL2RpYWxvZy1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyIH0gZnJvbSBcIkBjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5XCI7XHJcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dEYXRhIHtcclxuICAgIHZhbHVlOiBhbnk7XHJcblxyXG4gICAgY29uZmlnOiBDb25maWc7XHJcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgZm9ybWF0OiAnb2JqZWN0JyB8ICdodG1sJyB8ICd0ZXh0JyB8ICdqc29uJztcclxuICAgIGhlaWdodDogc3RyaW5nO1xyXG4gICAgd2lkdGg6IHN0cmluZztcclxuICAgIG1heEhlaWdodDogc3RyaW5nO1xyXG4gICAgbWF4V2lkdGg6IHN0cmluZztcclxuICAgIGVuYWJsZVRvb2x0aXBzOiBib29sZWFuO1xyXG4gICAgZnVsbHNjcmVlbjogYm9vbGVhbjtcclxuICAgIGZ1bGxzY3JlZW5Nb2RlOiAnZXhwYW5kJyB8ICdwb3BvdXQnO1xyXG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XHJcbiAgICBhcHBseVJlYWRvbmx5U3R5bGU6IGJvb2xlYW47XHJcbiAgICB1c2VyczogVXNlcltdIHwgdW5kZWZpbmVkO1xyXG4gICAgc2hvd1Rvb2xiYXI6IGJvb2xlYW47XHJcbiAgICBzaG93Qm9yZGVyOiBib29sZWFuO1xyXG59Il19
@@ -1,9 +0,0 @@
1
- export class Icons {
2
- constructor() {
3
- this.maximize = 'open_in_full';
4
- this.minimize = 'close_fullscreen';
5
- this.popout = 'open_in_full';
6
- this.popin = 'done';
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbC1lZGl0b3Ivc3JjL21vZGVsL2ljb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxLQUFLO0lBQWxCO1FBQ0ksYUFBUSxHQUFHLGNBQWMsQ0FBQztRQUMxQixhQUFRLEdBQUcsa0JBQWtCLENBQUM7UUFDOUIsV0FBTSxHQUFHLGNBQWMsQ0FBQztRQUN4QixVQUFLLEdBQUcsTUFBTSxDQUFDO0lBQ25CLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBJY29ucyB7XHJcbiAgICBtYXhpbWl6ZSA9ICdvcGVuX2luX2Z1bGwnO1xyXG4gICAgbWluaW1pemUgPSAnY2xvc2VfZnVsbHNjcmVlbic7XHJcbiAgICBwb3BvdXQgPSAnb3Blbl9pbl9mdWxsJztcclxuICAgIHBvcGluID0gJ2RvbmUnO1xyXG59Il19
@@ -1,54 +0,0 @@
1
- export class Tooltips {
2
- constructor() {
3
- //#region Font Style
4
- this.bold = 'Bold';
5
- this.italic = 'Italic';
6
- this.strike = 'Strikethrough';
7
- this.underline = 'Underline';
8
- //#endregion
9
- //#region Media
10
- this.link = 'Link';
11
- this.image = 'Insert Image';
12
- this.video = 'Insert Video';
13
- //#endregion
14
- //#region Block Style
15
- this.blockquote = 'Blockquote';
16
- this.codeblock = 'Code Block';
17
- //#endregion
18
- //#region Heading Style
19
- this.h1 = 'Heading 1';
20
- this.h2 = 'Heading 2';
21
- //#endregion
22
- //#region Color
23
- this.color = 'Font / Background Color';
24
- //#endregion
25
- //#region List Style
26
- this.bulleted = 'Bulleted List';
27
- this.ordered = 'Ordered List';
28
- //#endregion
29
- //#region Script Style
30
- this.subScript = 'Subscript';
31
- this.superScript = 'Superscript';
32
- //#endregion
33
- //#region Indent Style
34
- this.increaseIndent = 'Increase Indent';
35
- this.decreaseIndent = 'Decrease Indent';
36
- //#endregion
37
- //#region DropDowns
38
- this.align = 'Align';
39
- this.font = 'Font';
40
- this.fontSize = 'Font Size';
41
- this.headingStyle = 'Heading';
42
- //#endregion
43
- //#region Single Buttons
44
- this.clean = 'Clean';
45
- this.formula = 'Formula';
46
- this.rtl = 'Right-To-Left';
47
- this.maximize = 'Maximize';
48
- this.minimize = 'Minimize';
49
- this.popout = 'Popout';
50
- this.popin = 'Done';
51
- //#endregion
52
- }
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbC1lZGl0b3Ivc3JjL21vZGVsL3Rvb2x0aXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxRQUFRO0lBQXJCO1FBQ0ksb0JBQW9CO1FBQ3BCLFNBQUksR0FBRyxNQUFNLENBQUM7UUFDZCxXQUFNLEdBQUcsUUFBUSxDQUFDO1FBQ2xCLFdBQU0sR0FBRyxlQUFlLENBQUM7UUFDekIsY0FBUyxHQUFHLFdBQVcsQ0FBQztRQUN4QixZQUFZO1FBRVosZUFBZTtRQUNmLFNBQUksR0FBRyxNQUFNLENBQUM7UUFDZCxVQUFLLEdBQUcsY0FBYyxDQUFDO1FBQ3ZCLFVBQUssR0FBRyxjQUFjLENBQUM7UUFDdkIsWUFBWTtRQUVaLHFCQUFxQjtRQUNyQixlQUFVLEdBQUcsWUFBWSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxZQUFZLENBQUM7UUFDekIsWUFBWTtRQUVaLHVCQUF1QjtRQUN2QixPQUFFLEdBQUcsV0FBVyxDQUFDO1FBQ2pCLE9BQUUsR0FBRyxXQUFXLENBQUM7UUFDakIsWUFBWTtRQUVaLGVBQWU7UUFDZixVQUFLLEdBQUcseUJBQXlCLENBQUM7UUFDbEMsWUFBWTtRQUVaLG9CQUFvQjtRQUNwQixhQUFRLEdBQUcsZUFBZSxDQUFDO1FBQzNCLFlBQU8sR0FBRyxjQUFjLENBQUM7UUFDekIsWUFBWTtRQUVaLHNCQUFzQjtRQUN0QixjQUFTLEdBQUcsV0FBVyxDQUFDO1FBQ3hCLGdCQUFXLEdBQUcsYUFBYSxDQUFDO1FBQzVCLFlBQVk7UUFFWixzQkFBc0I7UUFDdEIsbUJBQWMsR0FBRyxpQkFBaUIsQ0FBQztRQUNuQyxtQkFBYyxHQUFHLGlCQUFpQixDQUFDO1FBQ25DLFlBQVk7UUFFWixtQkFBbUI7UUFDbkIsVUFBSyxHQUFHLE9BQU8sQ0FBQztRQUNoQixTQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ2QsYUFBUSxHQUFHLFdBQVcsQ0FBQztRQUN2QixpQkFBWSxHQUFHLFNBQVMsQ0FBQztRQUN6QixZQUFZO1FBRVosd0JBQXdCO1FBQ3hCLFVBQUssR0FBRyxPQUFPLENBQUM7UUFDaEIsWUFBTyxHQUFHLFNBQVMsQ0FBQztRQUNwQixRQUFHLEdBQUcsZUFBZSxDQUFDO1FBQ3RCLGFBQVEsR0FBRyxVQUFVLENBQUM7UUFDdEIsYUFBUSxHQUFHLFVBQVUsQ0FBQztRQUN0QixXQUFNLEdBQUcsUUFBUSxDQUFDO1FBQ2xCLFVBQUssR0FBRyxNQUFNLENBQUM7UUFDZixZQUFZO0lBQ2hCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBUb29sdGlwcyB7XHJcbiAgICAvLyNyZWdpb24gRm9udCBTdHlsZVxyXG4gICAgYm9sZCA9ICdCb2xkJztcclxuICAgIGl0YWxpYyA9ICdJdGFsaWMnO1xyXG4gICAgc3RyaWtlID0gJ1N0cmlrZXRocm91Z2gnO1xyXG4gICAgdW5kZXJsaW5lID0gJ1VuZGVybGluZSc7XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gTWVkaWFcclxuICAgIGxpbmsgPSAnTGluayc7XHJcbiAgICBpbWFnZSA9ICdJbnNlcnQgSW1hZ2UnO1xyXG4gICAgdmlkZW8gPSAnSW5zZXJ0IFZpZGVvJztcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBCbG9jayBTdHlsZVxyXG4gICAgYmxvY2txdW90ZSA9ICdCbG9ja3F1b3RlJztcclxuICAgIGNvZGVibG9jayA9ICdDb2RlIEJsb2NrJztcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBIZWFkaW5nIFN0eWxlXHJcbiAgICBoMSA9ICdIZWFkaW5nIDEnO1xyXG4gICAgaDIgPSAnSGVhZGluZyAyJztcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBDb2xvclxyXG4gICAgY29sb3IgPSAnRm9udCAvIEJhY2tncm91bmQgQ29sb3InO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIExpc3QgU3R5bGVcclxuICAgIGJ1bGxldGVkID0gJ0J1bGxldGVkIExpc3QnO1xyXG4gICAgb3JkZXJlZCA9ICdPcmRlcmVkIExpc3QnO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIFNjcmlwdCBTdHlsZVxyXG4gICAgc3ViU2NyaXB0ID0gJ1N1YnNjcmlwdCc7XHJcbiAgICBzdXBlclNjcmlwdCA9ICdTdXBlcnNjcmlwdCc7XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gSW5kZW50IFN0eWxlXHJcbiAgICBpbmNyZWFzZUluZGVudCA9ICdJbmNyZWFzZSBJbmRlbnQnO1xyXG4gICAgZGVjcmVhc2VJbmRlbnQgPSAnRGVjcmVhc2UgSW5kZW50JztcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBEcm9wRG93bnNcclxuICAgIGFsaWduID0gJ0FsaWduJztcclxuICAgIGZvbnQgPSAnRm9udCc7XHJcbiAgICBmb250U2l6ZSA9ICdGb250IFNpemUnO1xyXG4gICAgaGVhZGluZ1N0eWxlID0gJ0hlYWRpbmcnO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIFNpbmdsZSBCdXR0b25zXHJcbiAgICBjbGVhbiA9ICdDbGVhbic7XHJcbiAgICBmb3JtdWxhID0gJ0Zvcm11bGEnO1xyXG4gICAgcnRsID0gJ1JpZ2h0LVRvLUxlZnQnO1xyXG4gICAgbWF4aW1pemUgPSAnTWF4aW1pemUnO1xyXG4gICAgbWluaW1pemUgPSAnTWluaW1pemUnO1xyXG4gICAgcG9wb3V0ID0gJ1BvcG91dCc7XHJcbiAgICBwb3BpbiA9ICdEb25lJztcclxuICAgIC8vI2VuZHJlZ2lvblxyXG59Il19
@@ -1,7 +0,0 @@
1
- export * from './model/buttons';
2
- export * from './model/icons';
3
- export * from './model/tooltips';
4
- export * from './model/config';
5
- export * from './components/editor/editor.component';
6
- export * from './quill-editor.module';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsLWVkaXRvci9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFFakMsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vZGVsL2J1dHRvbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2ljb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC90b29sdGlwcyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2NvbmZpZyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9xdWlsbC1lZGl0b3IubW9kdWxlJzsiXX0=