@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.
- package/esm2020/quill/cleavelandprice-ngx-lib-quill.mjs +5 -0
- package/esm2020/quill/components/editor/editor.component.mjs +296 -0
- package/esm2020/quill/mention/cleavelandprice-ngx-lib-quill-mention.mjs +5 -0
- package/esm2020/quill/mention/components/editor/editor.component.mjs +152 -0
- package/esm2020/quill/mention/model/dialog-data.mjs +2 -0
- package/esm2020/quill/mention/public_api.mjs +2 -0
- package/esm2020/quill/mention/quill-mention.module.mjs +63 -0
- package/esm2020/quill/model/buttons.mjs +51 -0
- package/esm2020/quill/model/config.mjs +40 -0
- package/esm2020/quill/model/dialog-data.mjs +2 -0
- package/esm2020/quill/model/icons.mjs +9 -0
- package/esm2020/quill/model/tooltips.mjs +54 -0
- package/esm2020/quill/public_api.mjs +8 -0
- package/esm2020/quill/quill.module.mjs +65 -0
- package/fesm2015/cleavelandprice-ngx-lib-quill-mention.mjs +212 -0
- package/fesm2015/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -0
- package/fesm2015/cleavelandprice-ngx-lib-quill.mjs +505 -0
- package/fesm2015/cleavelandprice-ngx-lib-quill.mjs.map +1 -0
- package/fesm2020/cleavelandprice-ngx-lib-quill-mention.mjs +207 -0
- package/fesm2020/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -0
- package/fesm2020/cleavelandprice-ngx-lib-quill.mjs +500 -0
- package/fesm2020/cleavelandprice-ngx-lib-quill.mjs.map +1 -0
- package/package.json +16 -8
- package/{quill-editor → quill}/components/editor/editor.component.d.ts +4 -9
- package/{quill-editor → quill}/index.d.ts +1 -1
- package/quill/mention/components/editor/editor.component.d.ts +20 -0
- package/quill/mention/index.d.ts +5 -0
- package/quill/mention/model/dialog-data.d.ts +5 -0
- package/quill/mention/public_api.d.ts +1 -0
- package/quill/mention/quill-mention.module.d.ts +17 -0
- package/{quill-editor → quill}/model/buttons.d.ts +0 -0
- package/{quill-editor → quill}/model/config.d.ts +0 -1
- package/{quill-editor → quill}/model/dialog-data.d.ts +1 -3
- package/{quill-editor → quill}/model/icons.d.ts +0 -0
- package/{quill-editor → quill}/model/tooltips.d.ts +0 -0
- package/{quill-editor → quill}/public_api.d.ts +2 -1
- package/quill/quill.module.d.ts +17 -0
- package/esm2020/quill-editor/cleavelandprice-ngx-lib-quill-editor.mjs +0 -5
- package/esm2020/quill-editor/components/editor/editor.component.mjs +0 -289
- package/esm2020/quill-editor/model/buttons.mjs +0 -51
- package/esm2020/quill-editor/model/config.mjs +0 -40
- package/esm2020/quill-editor/model/dialog-data.mjs +0 -2
- package/esm2020/quill-editor/model/icons.mjs +0 -9
- package/esm2020/quill-editor/model/tooltips.mjs +0 -54
- package/esm2020/quill-editor/public_api.mjs +0 -7
- package/esm2020/quill-editor/quill-editor.module.mjs +0 -65
- package/fesm2015/cleavelandprice-ngx-lib-quill-editor.mjs +0 -506
- package/fesm2015/cleavelandprice-ngx-lib-quill-editor.mjs.map +0 -1
- package/fesm2020/cleavelandprice-ngx-lib-quill-editor.mjs +0 -500
- package/fesm2020/cleavelandprice-ngx-lib-quill-editor.mjs.map +0 -1
- 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=
|