@cleavelandprice/ngx-lib 3.2.1 → 3.2.3

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 +298 -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 +507 -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 +502 -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,500 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { EventEmitter, forwardRef, Component, Optional, Inject, ViewChild, Input, Output, NgModule, SkipSelf } from '@angular/core';
3
- import * as i4 from '@angular/forms';
4
- import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
5
- import * as i1 from '@angular/material/dialog';
6
- import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
7
- import * as i7 from 'ngx-quill';
8
- import { QuillEditorComponent, QuillModule } from 'ngx-quill';
9
- import 'quill-mention';
10
- import Quill from 'quill';
11
- import { ImageDrop } from 'quill-image-drop-module';
12
- import * as i2 from '@cleavelandprice/ngx-lib/active-directory';
13
- import * as i3 from '@angular/common';
14
- import { CommonModule } from '@angular/common';
15
- import * as i5 from '@angular/material/icon';
16
- import { MatIconModule } from '@angular/material/icon';
17
- import * as i6 from '@angular/material/tooltip';
18
- import { MatTooltipModule } from '@angular/material/tooltip';
19
- import { MatButtonModule } from '@angular/material/button';
20
-
21
- class Buttons {
22
- constructor() {
23
- //#region Font Style
24
- this.bold = true;
25
- this.italic = true;
26
- this.strike = true;
27
- this.underline = true;
28
- //#endregion
29
- //#region Media
30
- this.link = true;
31
- this.image = true;
32
- this.video = true;
33
- //#endregion
34
- //#region Block Style
35
- this.blockquote = true;
36
- this.codeblock = true;
37
- //#endregion
38
- //#region Heading Style
39
- this.h1 = true;
40
- this.h2 = true;
41
- //#endregion
42
- //#region Color
43
- this.color = true;
44
- //#endregion
45
- //#region List Style
46
- this.bulleted = true;
47
- this.ordered = true;
48
- //#endregion
49
- //#region Script Style
50
- this.subScript = true;
51
- this.superScript = true;
52
- //#endregion
53
- //#region Indent Style
54
- this.increaseIndent = true;
55
- this.decreaseIndent = true;
56
- //#endregion
57
- //#region DropDowns
58
- this.align = true;
59
- this.font = true;
60
- this.fontSize = true;
61
- this.headingStyle = true;
62
- //#endregion
63
- //#region Single Buttons
64
- this.clean = true;
65
- this.formula = true;
66
- this.rtl = true;
67
- this.editorSize = true;
68
- //#endregion
69
- }
70
- }
71
-
72
- class Icons {
73
- constructor() {
74
- this.maximize = 'open_in_full';
75
- this.minimize = 'close_fullscreen';
76
- this.popout = 'open_in_full';
77
- this.popin = 'done';
78
- }
79
- }
80
-
81
- class Tooltips {
82
- constructor() {
83
- //#region Font Style
84
- this.bold = 'Bold';
85
- this.italic = 'Italic';
86
- this.strike = 'Strikethrough';
87
- this.underline = 'Underline';
88
- //#endregion
89
- //#region Media
90
- this.link = 'Link';
91
- this.image = 'Insert Image';
92
- this.video = 'Insert Video';
93
- //#endregion
94
- //#region Block Style
95
- this.blockquote = 'Blockquote';
96
- this.codeblock = 'Code Block';
97
- //#endregion
98
- //#region Heading Style
99
- this.h1 = 'Heading 1';
100
- this.h2 = 'Heading 2';
101
- //#endregion
102
- //#region Color
103
- this.color = 'Font / Background Color';
104
- //#endregion
105
- //#region List Style
106
- this.bulleted = 'Bulleted List';
107
- this.ordered = 'Ordered List';
108
- //#endregion
109
- //#region Script Style
110
- this.subScript = 'Subscript';
111
- this.superScript = 'Superscript';
112
- //#endregion
113
- //#region Indent Style
114
- this.increaseIndent = 'Increase Indent';
115
- this.decreaseIndent = 'Decrease Indent';
116
- //#endregion
117
- //#region DropDowns
118
- this.align = 'Align';
119
- this.font = 'Font';
120
- this.fontSize = 'Font Size';
121
- this.headingStyle = 'Heading';
122
- //#endregion
123
- //#region Single Buttons
124
- this.clean = 'Clean';
125
- this.formula = 'Formula';
126
- this.rtl = 'Right-To-Left';
127
- this.maximize = 'Maximize';
128
- this.minimize = 'Minimize';
129
- this.popout = 'Popout';
130
- this.popin = 'Done';
131
- //#endregion
132
- }
133
- }
134
-
135
- class Config {
136
- constructor() {
137
- this.buttons = new Buttons();
138
- this.tooltips = new Tooltips();
139
- this.icons = new Icons();
140
- //#region These can be overriden via @Input()
141
- this.format = 'html';
142
- this.height = '50vh';
143
- this.width = '100%';
144
- this.fullscreenHeight = '85vh';
145
- this.fullscreenWidth = '100%';
146
- this.enableTooltips = true;
147
- this.fullscreen = false;
148
- this.fullscreenMode = 'popout';
149
- this.readonly = false;
150
- this.applyReadonlyStyle = true;
151
- this.showToolbar = true;
152
- this.showBorder = true;
153
- //#region Optional Quill modules
154
- this.imageResizeModule = true;
155
- this.imageDropModule = true;
156
- this.mentionModule = true;
157
- this.syntaxModule = true;
158
- //#endregion
159
- //#endregion
160
- //#region Groups
161
- this.showBlockStyle = () => this.buttons.blockquote || this.buttons.codeblock;
162
- this.showFontStyle = () => this.buttons.bold || this.buttons.italic || this.buttons.strike || this.buttons.underline;
163
- this.showQuickHeadingStyle = () => this.buttons.h1 || this.buttons.h2;
164
- this.showIndentStyle = () => this.buttons.decreaseIndent || this.buttons.increaseIndent;
165
- this.showListStyle = () => this.buttons.bulleted || this.buttons.ordered;
166
- this.showMedia = () => this.buttons.link || this.buttons.image || this.buttons.video;
167
- this.showScriptStyle = () => this.buttons.subScript || this.buttons.superScript;
168
- //#endregion
169
- }
170
- }
171
-
172
- class EditorComponent {
173
- //#endregion
174
- constructor(data, dialogRef, activeDirectoryService, dialog) {
175
- this.data = data;
176
- this.dialogRef = dialogRef;
177
- this.activeDirectoryService = activeDirectoryService;
178
- this.dialog = dialog;
179
- this.onChange = (_) => { }; // Invoked when the model has been changed
180
- this.onTouched = () => { }; // Invoked when the model has been touched
181
- //#endregion
182
- this.config = new Config();
183
- //#region These can be passed in as @Input(), or use values from config
184
- this.format = this.config.format;
185
- this.height = this.config.height;
186
- this.width = this.config.width;
187
- this.fullscreenHeight = this.config.fullscreenHeight;
188
- this.fullscreenWidth = this.config.fullscreenWidth;
189
- this.fullscreenMode = this.config.fullscreenMode;
190
- //#endregion
191
- //#endregion
192
- this.fullscreenChanged = new EventEmitter();
193
- //#region Passthrough events
194
- this.onBlur = new EventEmitter();
195
- this.onContentChanged = new EventEmitter();
196
- this.onEditorChanged = new EventEmitter();
197
- this.onEditorCreated = new EventEmitter();
198
- this.onFocus = new EventEmitter();
199
- this.onSelectionChanged = new EventEmitter();
200
- }
201
- ngOnInit() {
202
- this.initialize();
203
- if (!this.users) {
204
- this.activeDirectoryService.getUsers().subscribe(users => this.users = users);
205
- }
206
- }
207
- initialize() {
208
- this.config = this.config ?? this.data?.config ?? new Config();
209
- this.value = this.value ?? this.data?.value;
210
- this.imageResizeModule = this.imageResizeModule !== undefined ?
211
- this.imageResizeModule :
212
- this.imageResizeModule ?? this.config.imageResizeModule;
213
- this.imageDropModule = this.imageDropModule !== undefined ?
214
- this.imageDropModule :
215
- this.imageDropModule ?? this.config.imageDropModule;
216
- this.mentionModule = this.mentionModule !== undefined ?
217
- this.mentionModule :
218
- this.mentionModule ?? this.config.mentionModule;
219
- this.syntaxModule = this.syntaxModule !== undefined ?
220
- this.syntaxModule :
221
- this.syntaxModule ?? this.config.syntaxModule;
222
- if (this.imageDropModule) {
223
- Quill.register('modules/imageDrop', ImageDrop);
224
- }
225
- this.placeholder = this.placeholder ?? this.data?.placeholder;
226
- this.users = this.users ?? this.data?.users;
227
- this.format = this.format ?? this.data?.format ?? this.config.format;
228
- this.height = this.height ?? this.data?.height ?? this.config.height;
229
- this.width = this.width ?? this.data?.width ?? this.config.width;
230
- this.fullscreenHeight = this.fullscreenHeight ?? this.data?.maxHeight ?? this.config.fullscreenHeight;
231
- this.fullscreenWidth = this.fullscreenWidth ?? this.data?.maxWidth ?? this.config.fullscreenWidth;
232
- this.fullscreenMode = this.fullscreenMode ?? this.data?.fullscreenMode ?? this.config.fullscreenMode;
233
- this.enableTooltips = this.enableTooltips !== undefined ?
234
- this.enableTooltips :
235
- this.data?.enableTooltips ?? this.config.enableTooltips;
236
- this.fullscreen = this.fullscreen !== undefined ?
237
- this.fullscreen :
238
- this.data?.fullscreen ?? this.config.fullscreen;
239
- this.readonly = this.readonly !== undefined ?
240
- this.readonly :
241
- this.data?.readonly ?? this.config.readonly;
242
- this.applyReadonlyStyle = this.applyReadonlyStyle !== undefined ?
243
- this.applyReadonlyStyle :
244
- this.data?.applyReadonlyStyle ?? this.config.applyReadonlyStyle;
245
- this.showToolbar = this.showToolbar !== undefined ?
246
- this.showToolbar :
247
- this.data?.showToolbar ?? this.config.showToolbar;
248
- this.showBorder = this.showBorder !== undefined ?
249
- this.showBorder :
250
- this.data?.showBorder ?? this.config.showBorder;
251
- }
252
- toggleFullscreen() {
253
- if (this.fullscreenMode === 'expand') {
254
- this.fullscreen = !this.fullscreen;
255
- this.fullscreenChanged.emit(this.fullscreen);
256
- }
257
- else {
258
- if (this.fullscreen) {
259
- this.dialogRef.close(this.value);
260
- this.fullscreenChanged.emit(false);
261
- }
262
- else {
263
- const data = {
264
- value: this.value,
265
- config: this.config,
266
- placeholder: this.placeholder,
267
- format: this.format,
268
- height: this.fullscreenHeight,
269
- width: '100%',
270
- maxHeight: this.fullscreenHeight,
271
- maxWidth: '100%',
272
- enableTooltips: this.enableTooltips,
273
- fullscreen: true,
274
- fullscreenMode: this.fullscreenMode,
275
- readonly: this.readonly,
276
- applyReadonlyStyle: this.applyReadonlyStyle,
277
- showToolbar: this.showToolbar,
278
- showBorder: this.showBorder,
279
- users: this.users
280
- };
281
- this.dialog.open(EditorComponent, {
282
- disableClose: true,
283
- width: this.fullscreenWidth,
284
- height: this.fullscreenHeight,
285
- data
286
- })
287
- .afterClosed()
288
- .subscribe(value => {
289
- this.value = value;
290
- this.updateChanges();
291
- });
292
- this.fullscreenChanged.emit(true);
293
- }
294
- }
295
- }
296
- tooltip(val) {
297
- return this.enableTooltips ? val : '';
298
- }
299
- get modules() {
300
- if (!this.users) {
301
- return undefined;
302
- }
303
- const modules = {};
304
- if (!this.showToolbar) {
305
- modules['toolbar'] = [];
306
- }
307
- if (this.imageResizeModule) {
308
- modules['imageResize'] = {};
309
- }
310
- if (this.imageDropModule) {
311
- modules['imageDrop'] = true;
312
- }
313
- if (this.syntaxModule) {
314
- modules['syntax'] = true;
315
- }
316
- if (this.mentionModule) {
317
- modules['mention'] = {
318
- allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
319
- onSelect: (item, insertItem) => {
320
- const editor = this.editor.quillEditor;
321
- insertItem(item);
322
- // necessary because quill-mention triggers changes as 'api' instead of 'user'
323
- editor.insertText(editor.getLength() - 1, '', 'user');
324
- },
325
- source: (searchTerm, renderList) => {
326
- if (searchTerm.length === 0) {
327
- renderList(this.users?.map(u => ({ value: `${u.displayName} (${u.sAMAccountName.toLowerCase()})` })), searchTerm);
328
- }
329
- else {
330
- const matches = [];
331
- this.users.forEach((entry) => {
332
- if (entry.displayName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1 ||
333
- entry.sAMAccountName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1) {
334
- matches.push({ value: `${entry.displayName} (${entry.sAMAccountName.toLowerCase()})` });
335
- }
336
- });
337
- renderList(matches, searchTerm);
338
- }
339
- }
340
- };
341
- }
342
- return modules;
343
- }
344
- //#region ControlValueAccessor methods
345
- // Method that is invoked on an update of a model.
346
- updateChanges() {
347
- this.onChange(this.value);
348
- }
349
- //#region ControlValueAccessor Overrides
350
- // Writes a new item to the element.
351
- writeValue(value) {
352
- this.value = value;
353
- this.updateChanges();
354
- }
355
- // Registers a callback function that should be called when the control's value changes in the UI.
356
- registerOnChange(fn) {
357
- this.onChange = fn;
358
- }
359
- // Registers a callback function that should be called when the control receives a blur event.
360
- registerOnTouched(fn) {
361
- this.onTouched = fn;
362
- }
363
- }
364
- 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 });
365
- 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: [{
366
- provide: NG_VALUE_ACCESSOR,
367
- useExisting: forwardRef(() => EditorComponent),
368
- multi: true
369
- }], viewQueries: [{ propertyName: "editor", first: true, predicate: QuillEditorComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"users\">\r\n <form>\r\n <quill-editor name=\"editor\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"updateChanges()\"\r\n\r\n [placeholder]=\"placeholder\"\r\n [format]=\"format\"\r\n [style.height]=\"fullscreen ? fullscreenHeight : height\"\r\n [style.width]=\"fullscreen ? fullscreenWidth : width\"\r\n [readOnly]=\"readonly\"\r\n [class.readonly]=\"readonly && applyReadonlyStyle\"\r\n [class.no-toolbar]=\"!showToolbar\"\r\n [class.no-border]=\"!showBorder\"\r\n [modules]=\"modules\"\r\n \r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onContentChanged)=\"onContentChanged.emit($event)\"\r\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\r\n (onEditorCreated)=\"onEditorCreated.emit()\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n \r\n <div quill-editor-toolbar *ngIf=\"showToolbar\">\r\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\r\n </div>\r\n </quill-editor>\r\n </form>\r\n</ng-container>\r\n\r\n<ng-template #toolbar>\r\n <div>\r\n <ng-container [ngTemplateOutlet]=\"fontStyle\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"blockStyle\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"headingStyle\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"listStyle\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"indentStyle\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"rtl\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"fontSize\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"heading\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"color\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"font\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"align\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"clean\"></ng-container>\r\n <nt-container [ngTemplateOutlet]=\"formula\"></nt-container>\r\n <ng-container [ngTemplateOutlet]=\"media\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #fontStyle>\r\n <span class=\"ql-formats\" *ngIf=\"config.showFontStyle\">\r\n <button class=\"ql-bold\" *ngIf=\"config.buttons.bold\" [matTooltip]=\"tooltip(config.tooltips.bold)\"></button>\r\n <button class=\"ql-italic\" *ngIf=\"config.buttons.italic\" [matTooltip]=\"tooltip(config.tooltips.italic)\"></button>\r\n <button class=\"ql-underline\" *ngIf=\"config.buttons.underline\" [matTooltip]=\"tooltip(config.tooltips.underline)\"></button>\r\n <button class=\"ql-strike\" *ngIf=\"config.buttons.strike\" [matTooltip]=\"tooltip(config.tooltips.strike)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #blockStyle>\r\n <span class=\"ql-formats\" *ngIf=\"config.showBlockStyle\">\r\n <button class=\"ql-blockquote\" *ngIf=\"config.buttons.blockquote\" [matTooltip]=\"tooltip(config.tooltips.blockquote)\"></button>\r\n <button class=\"ql-code-block\" *ngIf=\"config.buttons.codeblock\" [matTooltip]=\"tooltip(config.tooltips.codeblock)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #headingStyle>\r\n <span class=\"ql-formats\" *ngIf=\"config.showQuickHeadingStyle\">\r\n <button class=\"ql-header\" value=\"1\" *ngIf=\"config.buttons.h1\" [matTooltip]=\"tooltip(config.tooltips.h1)\"></button>\r\n <button class=\"ql-header\" value=\"2\" *ngIf=\"config.buttons.h2\" [matTooltip]=\"tooltip(config.tooltips.h2)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #listStyle>\r\n <span class=\"ql-formats\" *ngIf=\"config.showListStyle\">\r\n <button class=\"ql-list\" value=\"ordered\" *ngIf=\"config.buttons.ordered\" [matTooltip]=\"tooltip(config.tooltips.ordered)\"></button>\r\n <button class=\"ql-list\" value=\"bullet\" *ngIf=\"config.buttons.bulleted\" [matTooltip]=\"tooltip(config.tooltips.bulleted)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #scriptStyle>\r\n <span class=\"ql-formats\" *ngIf=\"config.showScriptStyle\">\r\n <button class=\"ql-script\" value=\"sub\" *ngIf=\"config.buttons.subScript\" [matTooltip]=\"tooltip(config.tooltips.subScript)\"></button>\r\n <button class=\"ql-script\" value=\"super\" *ngIf=\"config.buttons.superScript\" [matTooltip]=\"tooltip(config.tooltips.superScript)\"></button>\r\n </span>\r\n</ng-template>\r\n \r\n<ng-template #indentStyle>\r\n <span class=\"ql-formats\" *ngIf=\"config.showIndentStyle\">\r\n <button class=\"ql-indent\" value=\"-1\" *ngIf=\"config.buttons.decreaseIndent\" [matTooltip]=\"tooltip(config.tooltips.decreaseIndent)\"></button>\r\n <button class=\"ql-indent\" value=\"+1\" *ngIf=\"config.buttons.increaseIndent\" [matTooltip]=\"tooltip(config.tooltips.increaseIndent)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #rtl>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.rtl\">\r\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config.tooltips.rtl)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #fontSize>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.fontSize\" [matTooltip]=\"tooltip(config.tooltips.fontSize)\">\r\n <select class=\"ql-size\">\r\n <option value=\"small\"></option>\r\n <option selected></option>\r\n <option value=\"large\"></option>\r\n <option value=\"huge\"></option>\r\n </select>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #heading>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.headingStyle\" [matTooltip]=\"tooltip(config.tooltips.headingStyle)\">\r\n <select class=\"ql-header\">\r\n <option value=\"1\"></option>\r\n <option value=\"2\"></option>\r\n <option value=\"3\"></option>\r\n <option value=\"4\"></option>\r\n <option value=\"5\"></option>\r\n <option value=\"6\"></option>\r\n <option selected=\"selected\"></option>\r\n </select>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #color>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.color\" [matTooltip]=\"tooltip(config.tooltips.color)\">\r\n <select class=\"ql-color\"></select>\r\n <select class=\"ql-background\"></select>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #font>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.font\" [matTooltip]=\"tooltip(config.tooltips.font)\">\r\n <select class=\"ql-font\">\r\n <option selected></option>\r\n <option value=\"serif\"></option>\r\n <option value=\"monospace\"></option>\r\n </select>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #align>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.align\" [matTooltip]=\"tooltip(config.tooltips.align)\">\r\n <select class=\"ql-align\">\r\n <option selected></option>\r\n <option value=\"center\"></option>\r\n <option value=\"right\"></option>\r\n <option value=\"justify\"></option>\r\n </select>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #clean>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.clean\" [matTooltip]=\"tooltip(config.tooltips.clean)\">\r\n <button class=\"ql-clean\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #media>\r\n <span class=\"ql-formats\" *ngIf=\"config.showMedia\">\r\n <button class=\"ql-link\" *ngIf=\"config.buttons.link\" [matTooltip]=\"tooltip(config.tooltips.link)\"></button>\r\n <button class=\"ql-image\" *ngIf=\"config.buttons.image\" [matTooltip]=\"tooltip(config.tooltips.image)\"></button>\r\n <button class=\"ql-video\" *ngIf=\"config.buttons.video\" [matTooltip]=\"tooltip(config.tooltips.video)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #editorSize>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.editorSize\">\r\n <button id=\"fullscreen\"\r\n [matTooltip]=\"tooltip(fullscreen ?\r\n (fullscreenMode === 'expand' ? config.tooltips.minimize : config.tooltips.popin) :\r\n (fullscreenMode === 'expand' ? config.tooltips.maximize : config.tooltips.popout))\">\r\n\r\n <mat-icon (click)=\"toggleFullscreen()\">\r\n {{ fullscreen ?\r\n (fullscreenMode === 'expand' ? config.icons.minimize : config.icons.popin) :\r\n (fullscreenMode === 'expand' ? config.icons.maximize : config.icons.popout)\r\n }}\r\n </mat-icon>\r\n </button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #formula>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.formula\" [matTooltip]=\"tooltip(config.tooltips.formula)\">\r\n <button class=\"ql-formula\"></button>\r\n </span>\r\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" }] });
370
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: EditorComponent, decorators: [{
371
- type: Component,
372
- args: [{ selector: 'cpquill-editor', providers: [{
373
- provide: NG_VALUE_ACCESSOR,
374
- useExisting: forwardRef(() => EditorComponent),
375
- multi: true
376
- }], template: "<ng-container *ngIf=\"users\">\r\n <form>\r\n <quill-editor name=\"editor\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"updateChanges()\"\r\n\r\n [placeholder]=\"placeholder\"\r\n [format]=\"format\"\r\n [style.height]=\"fullscreen ? fullscreenHeight : height\"\r\n [style.width]=\"fullscreen ? fullscreenWidth : width\"\r\n [readOnly]=\"readonly\"\r\n [class.readonly]=\"readonly && applyReadonlyStyle\"\r\n [class.no-toolbar]=\"!showToolbar\"\r\n [class.no-border]=\"!showBorder\"\r\n [modules]=\"modules\"\r\n \r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onContentChanged)=\"onContentChanged.emit($event)\"\r\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\r\n (onEditorCreated)=\"onEditorCreated.emit()\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n \r\n <div quill-editor-toolbar *ngIf=\"showToolbar\">\r\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\r\n </div>\r\n </quill-editor>\r\n </form>\r\n</ng-container>\r\n\r\n<ng-template #toolbar>\r\n <div>\r\n <ng-container [ngTemplateOutlet]=\"fontStyle\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"blockStyle\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"headingStyle\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"listStyle\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"indentStyle\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"rtl\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"fontSize\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"heading\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"color\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"font\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"align\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"clean\"></ng-container>\r\n <nt-container [ngTemplateOutlet]=\"formula\"></nt-container>\r\n <ng-container [ngTemplateOutlet]=\"media\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #fontStyle>\r\n <span class=\"ql-formats\" *ngIf=\"config.showFontStyle\">\r\n <button class=\"ql-bold\" *ngIf=\"config.buttons.bold\" [matTooltip]=\"tooltip(config.tooltips.bold)\"></button>\r\n <button class=\"ql-italic\" *ngIf=\"config.buttons.italic\" [matTooltip]=\"tooltip(config.tooltips.italic)\"></button>\r\n <button class=\"ql-underline\" *ngIf=\"config.buttons.underline\" [matTooltip]=\"tooltip(config.tooltips.underline)\"></button>\r\n <button class=\"ql-strike\" *ngIf=\"config.buttons.strike\" [matTooltip]=\"tooltip(config.tooltips.strike)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #blockStyle>\r\n <span class=\"ql-formats\" *ngIf=\"config.showBlockStyle\">\r\n <button class=\"ql-blockquote\" *ngIf=\"config.buttons.blockquote\" [matTooltip]=\"tooltip(config.tooltips.blockquote)\"></button>\r\n <button class=\"ql-code-block\" *ngIf=\"config.buttons.codeblock\" [matTooltip]=\"tooltip(config.tooltips.codeblock)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #headingStyle>\r\n <span class=\"ql-formats\" *ngIf=\"config.showQuickHeadingStyle\">\r\n <button class=\"ql-header\" value=\"1\" *ngIf=\"config.buttons.h1\" [matTooltip]=\"tooltip(config.tooltips.h1)\"></button>\r\n <button class=\"ql-header\" value=\"2\" *ngIf=\"config.buttons.h2\" [matTooltip]=\"tooltip(config.tooltips.h2)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #listStyle>\r\n <span class=\"ql-formats\" *ngIf=\"config.showListStyle\">\r\n <button class=\"ql-list\" value=\"ordered\" *ngIf=\"config.buttons.ordered\" [matTooltip]=\"tooltip(config.tooltips.ordered)\"></button>\r\n <button class=\"ql-list\" value=\"bullet\" *ngIf=\"config.buttons.bulleted\" [matTooltip]=\"tooltip(config.tooltips.bulleted)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #scriptStyle>\r\n <span class=\"ql-formats\" *ngIf=\"config.showScriptStyle\">\r\n <button class=\"ql-script\" value=\"sub\" *ngIf=\"config.buttons.subScript\" [matTooltip]=\"tooltip(config.tooltips.subScript)\"></button>\r\n <button class=\"ql-script\" value=\"super\" *ngIf=\"config.buttons.superScript\" [matTooltip]=\"tooltip(config.tooltips.superScript)\"></button>\r\n </span>\r\n</ng-template>\r\n \r\n<ng-template #indentStyle>\r\n <span class=\"ql-formats\" *ngIf=\"config.showIndentStyle\">\r\n <button class=\"ql-indent\" value=\"-1\" *ngIf=\"config.buttons.decreaseIndent\" [matTooltip]=\"tooltip(config.tooltips.decreaseIndent)\"></button>\r\n <button class=\"ql-indent\" value=\"+1\" *ngIf=\"config.buttons.increaseIndent\" [matTooltip]=\"tooltip(config.tooltips.increaseIndent)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #rtl>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.rtl\">\r\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config.tooltips.rtl)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #fontSize>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.fontSize\" [matTooltip]=\"tooltip(config.tooltips.fontSize)\">\r\n <select class=\"ql-size\">\r\n <option value=\"small\"></option>\r\n <option selected></option>\r\n <option value=\"large\"></option>\r\n <option value=\"huge\"></option>\r\n </select>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #heading>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.headingStyle\" [matTooltip]=\"tooltip(config.tooltips.headingStyle)\">\r\n <select class=\"ql-header\">\r\n <option value=\"1\"></option>\r\n <option value=\"2\"></option>\r\n <option value=\"3\"></option>\r\n <option value=\"4\"></option>\r\n <option value=\"5\"></option>\r\n <option value=\"6\"></option>\r\n <option selected=\"selected\"></option>\r\n </select>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #color>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.color\" [matTooltip]=\"tooltip(config.tooltips.color)\">\r\n <select class=\"ql-color\"></select>\r\n <select class=\"ql-background\"></select>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #font>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.font\" [matTooltip]=\"tooltip(config.tooltips.font)\">\r\n <select class=\"ql-font\">\r\n <option selected></option>\r\n <option value=\"serif\"></option>\r\n <option value=\"monospace\"></option>\r\n </select>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #align>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.align\" [matTooltip]=\"tooltip(config.tooltips.align)\">\r\n <select class=\"ql-align\">\r\n <option selected></option>\r\n <option value=\"center\"></option>\r\n <option value=\"right\"></option>\r\n <option value=\"justify\"></option>\r\n </select>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #clean>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.clean\" [matTooltip]=\"tooltip(config.tooltips.clean)\">\r\n <button class=\"ql-clean\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #media>\r\n <span class=\"ql-formats\" *ngIf=\"config.showMedia\">\r\n <button class=\"ql-link\" *ngIf=\"config.buttons.link\" [matTooltip]=\"tooltip(config.tooltips.link)\"></button>\r\n <button class=\"ql-image\" *ngIf=\"config.buttons.image\" [matTooltip]=\"tooltip(config.tooltips.image)\"></button>\r\n <button class=\"ql-video\" *ngIf=\"config.buttons.video\" [matTooltip]=\"tooltip(config.tooltips.video)\"></button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #editorSize>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.editorSize\">\r\n <button id=\"fullscreen\"\r\n [matTooltip]=\"tooltip(fullscreen ?\r\n (fullscreenMode === 'expand' ? config.tooltips.minimize : config.tooltips.popin) :\r\n (fullscreenMode === 'expand' ? config.tooltips.maximize : config.tooltips.popout))\">\r\n\r\n <mat-icon (click)=\"toggleFullscreen()\">\r\n {{ fullscreen ?\r\n (fullscreenMode === 'expand' ? config.icons.minimize : config.icons.popin) :\r\n (fullscreenMode === 'expand' ? config.icons.maximize : config.icons.popout)\r\n }}\r\n </mat-icon>\r\n </button>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #formula>\r\n <span class=\"ql-formats\" *ngIf=\"config.buttons.formula\" [matTooltip]=\"tooltip(config.tooltips.formula)\">\r\n <button class=\"ql-formula\"></button>\r\n </span>\r\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"] }]
377
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
378
- type: Optional
379
- }, {
380
- type: Inject,
381
- args: [MAT_DIALOG_DATA]
382
- }] }, { type: i1.MatDialogRef, decorators: [{
383
- type: Optional
384
- }] }, { type: i2.ActiveDirectoryService }, { type: i1.MatDialog }]; }, propDecorators: { editor: [{
385
- type: ViewChild,
386
- args: [QuillEditorComponent, { static: false }]
387
- }], config: [{
388
- type: Input
389
- }], placeholder: [{
390
- type: Input
391
- }], users: [{
392
- type: Input
393
- }], format: [{
394
- type: Input
395
- }], height: [{
396
- type: Input
397
- }], width: [{
398
- type: Input
399
- }], fullscreenHeight: [{
400
- type: Input
401
- }], fullscreenWidth: [{
402
- type: Input
403
- }], fullscreenMode: [{
404
- type: Input
405
- }], enableTooltips: [{
406
- type: Input
407
- }], fullscreen: [{
408
- type: Input
409
- }], readonly: [{
410
- type: Input
411
- }], applyReadonlyStyle: [{
412
- type: Input
413
- }], showToolbar: [{
414
- type: Input
415
- }], showBorder: [{
416
- type: Input
417
- }], imageResizeModule: [{
418
- type: Input
419
- }], imageDropModule: [{
420
- type: Input
421
- }], mentionModule: [{
422
- type: Input
423
- }], syntaxModule: [{
424
- type: Input
425
- }], fullscreenChanged: [{
426
- type: Output
427
- }], onBlur: [{
428
- type: Output
429
- }], onContentChanged: [{
430
- type: Output
431
- }], onEditorChanged: [{
432
- type: Output
433
- }], onEditorCreated: [{
434
- type: Output
435
- }], onFocus: [{
436
- type: Output
437
- }], onSelectionChanged: [{
438
- type: Output
439
- }] } });
440
-
441
- class QuillEditorModule {
442
- constructor(parentModule) {
443
- if (parentModule) {
444
- throw new Error('QuillEditorModule is already loaded. Import it in the AppModule only');
445
- }
446
- }
447
- static forRoot() {
448
- return {
449
- ngModule: QuillEditorModule
450
- };
451
- }
452
- }
453
- QuillEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: QuillEditorModule, deps: [{ token: QuillEditorModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
454
- QuillEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: QuillEditorModule, declarations: [EditorComponent], imports: [CommonModule,
455
- FormsModule,
456
- ReactiveFormsModule,
457
- MatButtonModule,
458
- MatDialogModule,
459
- MatIconModule,
460
- MatTooltipModule, i7.QuillModule], exports: [EditorComponent] });
461
- QuillEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: QuillEditorModule, imports: [CommonModule,
462
- FormsModule,
463
- ReactiveFormsModule,
464
- MatButtonModule,
465
- MatDialogModule,
466
- MatIconModule,
467
- MatTooltipModule,
468
- QuillModule.forRoot()] });
469
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: QuillEditorModule, decorators: [{
470
- type: NgModule,
471
- args: [{
472
- declarations: [
473
- EditorComponent
474
- ],
475
- imports: [
476
- CommonModule,
477
- FormsModule,
478
- ReactiveFormsModule,
479
- MatButtonModule,
480
- MatDialogModule,
481
- MatIconModule,
482
- MatTooltipModule,
483
- QuillModule.forRoot()
484
- ],
485
- exports: [
486
- EditorComponent
487
- ]
488
- }]
489
- }], ctorParameters: function () { return [{ type: QuillEditorModule, decorators: [{
490
- type: Optional
491
- }, {
492
- type: SkipSelf
493
- }] }]; } });
494
-
495
- /**
496
- * Generated bundle index. Do not edit.
497
- */
498
-
499
- export { Buttons, Config, EditorComponent, Icons, QuillEditorModule, Tooltips };
500
- //# sourceMappingURL=cleavelandprice-ngx-lib-quill-editor.mjs.map