@cleavelandprice/ngx-lib 3.1.31 → 3.1.32
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-editor/cleavelandprice-ngx-lib-quill-editor.mjs +5 -0
- package/esm2020/quill-editor/components/editor/editor.component.mjs +211 -0
- package/esm2020/quill-editor/model/buttons.mjs +51 -0
- package/esm2020/quill-editor/model/config.mjs +31 -0
- package/esm2020/quill-editor/model/dialog-data.mjs +2 -0
- package/esm2020/quill-editor/model/icons.mjs +9 -0
- package/esm2020/quill-editor/model/tooltips.mjs +54 -0
- package/esm2020/quill-editor/public_api.mjs +7 -0
- package/esm2020/quill-editor/quill-editor.module.mjs +65 -0
- package/esm2020/upload/components/upload-dialog/upload-dialog.component.mjs +1 -1
- package/fesm2015/cleavelandprice-ngx-lib-quill-editor.mjs +425 -0
- package/fesm2015/cleavelandprice-ngx-lib-quill-editor.mjs.map +1 -0
- package/fesm2015/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
- package/fesm2020/cleavelandprice-ngx-lib-quill-editor.mjs +418 -0
- package/fesm2020/cleavelandprice-ngx-lib-quill-editor.mjs.map +1 -0
- package/fesm2020/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
- package/package.json +9 -1
- package/quill-editor/components/editor/editor.component.d.ts +53 -0
- package/quill-editor/index.d.ts +5 -0
- package/quill-editor/model/buttons.d.ts +28 -0
- package/quill-editor/model/config.d.ts +24 -0
- package/quill-editor/model/dialog-data.d.ts +20 -0
- package/quill-editor/model/icons.d.ts +6 -0
- package/quill-editor/model/tooltips.d.ts +31 -0
- package/quill-editor/public_api.d.ts +6 -0
- package/quill-editor/quill-editor.module.d.ts +17 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXZlbGFuZHByaWNlLW5neC1saWItcXVpbGwtZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwtZWRpdG9yL3NyYy9jbGVhdmVsYW5kcHJpY2Utbmd4LWxpYi1xdWlsbC1lZGl0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { Component, EventEmitter, Inject, Input, Output, ViewChild, Optional } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import { QuillEditorComponent } from 'ngx-quill';
|
|
4
|
+
import 'quill-mention';
|
|
5
|
+
import Quill from 'quill';
|
|
6
|
+
import ImageResize from 'quill-image-resize-module';
|
|
7
|
+
import { ImageDrop } from 'quill-image-drop-module';
|
|
8
|
+
import { Config } from '../../model/config';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/material/dialog";
|
|
11
|
+
import * as i2 from "@cleavelandprice/ngx-lib/active-directory";
|
|
12
|
+
import * as i3 from "@angular/common";
|
|
13
|
+
import * as i4 from "@angular/forms";
|
|
14
|
+
import * as i5 from "@angular/material/icon";
|
|
15
|
+
import * as i6 from "@angular/material/tooltip";
|
|
16
|
+
import * as i7 from "ngx-quill";
|
|
17
|
+
Quill.register('modules/imageDrop', ImageDrop);
|
|
18
|
+
Quill.register('modules/imageResize', ImageResize);
|
|
19
|
+
export class EditorComponent {
|
|
20
|
+
//#endregion
|
|
21
|
+
constructor(data, dialogRef, activeDirectoryService, dialog) {
|
|
22
|
+
this.dialogRef = dialogRef;
|
|
23
|
+
this.activeDirectoryService = activeDirectoryService;
|
|
24
|
+
this.dialog = dialog;
|
|
25
|
+
this.config = new Config();
|
|
26
|
+
//#region These can be passed in as @Input(), or use values from config
|
|
27
|
+
this.format = this.config.format;
|
|
28
|
+
this.height = this.config.height;
|
|
29
|
+
this.width = this.config.width;
|
|
30
|
+
this.maxHeight = this.config.maxHeight;
|
|
31
|
+
this.maxWidth = this.config.maxWidth;
|
|
32
|
+
this.enableTooltips = this.config.enableTooltips;
|
|
33
|
+
this.fullscreen = this.config.fullscreen;
|
|
34
|
+
this.fullscreenMode = this.config.fullscreenMode;
|
|
35
|
+
this.readonly = this.config.readonly;
|
|
36
|
+
//#endregion
|
|
37
|
+
this.fullscreenChanged = new EventEmitter();
|
|
38
|
+
//#region Passthrough events
|
|
39
|
+
this.onBlur = new EventEmitter();
|
|
40
|
+
this.onContentChanged = new EventEmitter();
|
|
41
|
+
this.onEditorChanged = new EventEmitter();
|
|
42
|
+
this.onEditorCreated = new EventEmitter();
|
|
43
|
+
this.onFocus = new EventEmitter();
|
|
44
|
+
this.onSelectionChanged = new EventEmitter();
|
|
45
|
+
if (data) {
|
|
46
|
+
this.formGroup = data.formGroup;
|
|
47
|
+
this.controlName = data.controlName;
|
|
48
|
+
this.ngModelValue = data.value;
|
|
49
|
+
this.config = data.config;
|
|
50
|
+
this.placeholder = data.placeholder;
|
|
51
|
+
this.format = data.format;
|
|
52
|
+
this.height = data.height;
|
|
53
|
+
this.width = data.width;
|
|
54
|
+
this.maxHeight = data.maxHeight;
|
|
55
|
+
this.maxWidth = data.maxWidth;
|
|
56
|
+
this.enableTooltips = data.enableTooltips;
|
|
57
|
+
this.fullscreen = data.fullscreen;
|
|
58
|
+
this.fullscreenMode = data.fullscreenMode;
|
|
59
|
+
this.readonly = data.readonly;
|
|
60
|
+
this.users = data.users;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
ngOnInit() {
|
|
64
|
+
if (!this.users) {
|
|
65
|
+
this.activeDirectoryService.getUsers().subscribe(users => this.users = users);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
toggleFullscreen() {
|
|
69
|
+
this.fullscreen = !this.fullscreen;
|
|
70
|
+
this.fullscreenChanged.emit(this.fullscreen);
|
|
71
|
+
if (this.fullscreenMode === 'popout') {
|
|
72
|
+
if (this.dialogRef) {
|
|
73
|
+
this.dialogRef.close(this.formGroup ?
|
|
74
|
+
this.formGroup.get(this.controlName)?.value :
|
|
75
|
+
this.ngModelValue);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
const data = {
|
|
79
|
+
formGroup: this.formGroup,
|
|
80
|
+
controlName: this.controlName,
|
|
81
|
+
value: this.ngModelValue,
|
|
82
|
+
config: this.config,
|
|
83
|
+
placeholder: this.placeholder,
|
|
84
|
+
format: this.format,
|
|
85
|
+
height: this.maxHeight,
|
|
86
|
+
width: '100%',
|
|
87
|
+
maxHeight: this.maxHeight,
|
|
88
|
+
maxWidth: '100%',
|
|
89
|
+
enableTooltips: this.enableTooltips,
|
|
90
|
+
fullscreen: this.fullscreen,
|
|
91
|
+
fullscreenMode: this.fullscreenMode,
|
|
92
|
+
readonly: this.readonly,
|
|
93
|
+
users: this.users
|
|
94
|
+
};
|
|
95
|
+
this.dialog.open(EditorComponent, {
|
|
96
|
+
disableClose: true,
|
|
97
|
+
width: this.maxWidth,
|
|
98
|
+
height: '90vh',
|
|
99
|
+
data
|
|
100
|
+
})
|
|
101
|
+
.afterClosed()
|
|
102
|
+
.subscribe(value => {
|
|
103
|
+
this.fullscreen = false;
|
|
104
|
+
if (this.formGroup) {
|
|
105
|
+
this.formGroup.get(this.controlName)?.setValue(value);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
this.ngModelValue = value;
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
tooltip(val) {
|
|
115
|
+
return this.enableTooltips ? val : '';
|
|
116
|
+
}
|
|
117
|
+
get modules() {
|
|
118
|
+
return this.users ?
|
|
119
|
+
{
|
|
120
|
+
imageResize: {},
|
|
121
|
+
imageDrop: true,
|
|
122
|
+
syntax: true,
|
|
123
|
+
mention: {
|
|
124
|
+
allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
|
|
125
|
+
onSelect: (item, insertItem) => {
|
|
126
|
+
const editor = this.editor.quillEditor;
|
|
127
|
+
insertItem(item);
|
|
128
|
+
// necessary because quill-mention triggers changes as 'api' instead of 'user'
|
|
129
|
+
editor.insertText(editor.getLength() - 1, '', 'user');
|
|
130
|
+
},
|
|
131
|
+
source: (searchTerm, renderList) => {
|
|
132
|
+
if (searchTerm.length === 0) {
|
|
133
|
+
renderList(this.users?.map(u => ({ value: `${u.displayName} (${u.sAMAccountName.toLowerCase()})` })), searchTerm);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
const matches = [];
|
|
137
|
+
this.users.forEach((entry) => {
|
|
138
|
+
if (entry.displayName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1 ||
|
|
139
|
+
entry.sAMAccountName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1) {
|
|
140
|
+
matches.push({ value: `${entry.displayName} (${entry.sAMAccountName.toLowerCase()})` });
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
renderList(matches, searchTerm);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
} :
|
|
148
|
+
undefined;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
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 });
|
|
152
|
+
EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: EditorComponent, selector: "cpquill-editor", inputs: { formGroup: "formGroup", controlName: "controlName", ngModelValue: "ngModelValue", config: "config", placeholder: "placeholder", users: "users", format: "format", height: "height", width: "width", maxHeight: "maxHeight", maxWidth: "maxWidth", enableTooltips: "enableTooltips", fullscreen: "fullscreen", fullscreenMode: "fullscreenMode", readonly: "readonly" }, outputs: { fullscreenChanged: "fullscreenChanged", onBlur: "onBlur", onContentChanged: "onContentChanged", onEditorChanged: "onEditorChanged", onEditorCreated: "onEditorCreated", onFocus: "onFocus", onSelectionChanged: "onSelectionChanged" }, viewQueries: [{ propertyName: "editor", first: true, predicate: QuillEditorComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"users\">\n <!-- Reactive forms -->\n <form *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <quill-editor\n [formControlName]=\"controlName\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? maxHeight : height\"\n [style.width]=\"fullscreen ? maxWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly\"\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>\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n \n <!-- NgModel forms -->\n <form *ngIf=\"!formGroup\">\n <quill-editor name=\"editor\"\n [(ngModel)]=\"ngModelValue\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? maxHeight : height\"\n [style.width]=\"fullscreen ? maxWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly\"\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>\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.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: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { 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" }] });
|
|
153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: EditorComponent, decorators: [{
|
|
154
|
+
type: Component,
|
|
155
|
+
args: [{ selector: 'cpquill-editor', template: "<ng-container *ngIf=\"users\">\n <!-- Reactive forms -->\n <form *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <quill-editor\n [formControlName]=\"controlName\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? maxHeight : height\"\n [style.width]=\"fullscreen ? maxWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly\"\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>\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n \n <!-- NgModel forms -->\n <form *ngIf=\"!formGroup\">\n <quill-editor name=\"editor\"\n [(ngModel)]=\"ngModelValue\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? maxHeight : height\"\n [style.width]=\"fullscreen ? maxWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly\"\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>\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.readonly .ql-container{background-color:#f5f5f5!important}\n"] }]
|
|
156
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
157
|
+
type: Optional
|
|
158
|
+
}, {
|
|
159
|
+
type: Inject,
|
|
160
|
+
args: [MAT_DIALOG_DATA]
|
|
161
|
+
}] }, { type: i1.MatDialogRef, decorators: [{
|
|
162
|
+
type: Optional
|
|
163
|
+
}] }, { type: i2.ActiveDirectoryService }, { type: i1.MatDialog }]; }, propDecorators: { editor: [{
|
|
164
|
+
type: ViewChild,
|
|
165
|
+
args: [QuillEditorComponent, { static: false }]
|
|
166
|
+
}], formGroup: [{
|
|
167
|
+
type: Input
|
|
168
|
+
}], controlName: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], ngModelValue: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], config: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}], placeholder: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], users: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}], format: [{
|
|
179
|
+
type: Input
|
|
180
|
+
}], height: [{
|
|
181
|
+
type: Input
|
|
182
|
+
}], width: [{
|
|
183
|
+
type: Input
|
|
184
|
+
}], maxHeight: [{
|
|
185
|
+
type: Input
|
|
186
|
+
}], maxWidth: [{
|
|
187
|
+
type: Input
|
|
188
|
+
}], enableTooltips: [{
|
|
189
|
+
type: Input
|
|
190
|
+
}], fullscreen: [{
|
|
191
|
+
type: Input
|
|
192
|
+
}], fullscreenMode: [{
|
|
193
|
+
type: Input
|
|
194
|
+
}], readonly: [{
|
|
195
|
+
type: Input
|
|
196
|
+
}], fullscreenChanged: [{
|
|
197
|
+
type: Output
|
|
198
|
+
}], onBlur: [{
|
|
199
|
+
type: Output
|
|
200
|
+
}], onContentChanged: [{
|
|
201
|
+
type: Output
|
|
202
|
+
}], onEditorChanged: [{
|
|
203
|
+
type: Output
|
|
204
|
+
}], onEditorCreated: [{
|
|
205
|
+
type: Output
|
|
206
|
+
}], onFocus: [{
|
|
207
|
+
type: Output
|
|
208
|
+
}], onSelectionChanged: [{
|
|
209
|
+
type: Output
|
|
210
|
+
}] } });
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsLWVkaXRvci9zcmMvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsLWVkaXRvci9zcmMvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUcsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRixPQUFPLEVBQTJGLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFJLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLFdBQVcsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7QUFINUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMvQyxLQUFLLENBQUMsUUFBUSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBVW5ELE1BQU0sT0FBTyxlQUFlO0lBZ0MxQixZQUFZO0lBRVosWUFBaUQsSUFBZ0IsRUFDakMsU0FBd0MsRUFDcEQsc0JBQThDLEVBQzlDLE1BQWlCO1FBRkwsY0FBUyxHQUFULFNBQVMsQ0FB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O3lHQWxDK0IsTUFBTTtzQkFBekQsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRXpDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFHSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBR0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQWN0aXZlRGlyZWN0b3J5U2VydmljZSwgVXNlciB9IGZyb20gJ0BjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5JztcblxuaW1wb3J0IHsgQ29udGVudENoYW5nZSwgQmx1ciwgRm9jdXMsIEVkaXRvckNoYW5nZUNvbnRlbnQsIEVkaXRvckNoYW5nZVNlbGVjdGlvbiwgU2VsZWN0aW9uQ2hhbmdlLCBRdWlsbEVkaXRvckNvbXBvbmVudCB9IGZyb20gJ25neC1xdWlsbCc7XG5pbXBvcnQgJ3F1aWxsLW1lbnRpb24nO1xuaW1wb3J0IFF1aWxsIGZyb20gJ3F1aWxsJztcbmltcG9ydCBJbWFnZVJlc2l6ZSBmcm9tICdxdWlsbC1pbWFnZS1yZXNpemUtbW9kdWxlJztcbmltcG9ydCB7IEltYWdlRHJvcCB9IGZyb20gJ3F1aWxsLWltYWdlLWRyb3AtbW9kdWxlJztcblF1aWxsLnJlZ2lzdGVyKCdtb2R1bGVzL2ltYWdlRHJvcCcsIEltYWdlRHJvcCk7XG5RdWlsbC5yZWdpc3RlcignbW9kdWxlcy9pbWFnZVJlc2l6ZScsIEltYWdlUmVzaXplKTtcblxuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvY29uZmlnJztcbmltcG9ydCB7IERpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctZGF0YSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NwcXVpbGwtZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkaXRvci5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZChRdWlsbEVkaXRvckNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRvcjogUXVpbGxFZGl0b3JDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBjb250cm9sTmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgbmdNb2RlbFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KCkgY29uZmlnOiBDb25maWcgPSBuZXcgQ29uZmlnKCk7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHVzZXJzOiBVc2VyW10gfCB1bmRlZmluZWQ7XG5cbiAgLy8jcmVnaW9uIFRoZXNlIGNhbiBiZSBwYXNzZWQgaW4gYXMgQElucHV0KCksIG9yIHVzZSB2YWx1ZXMgZnJvbSBjb25maWdcbiAgQElucHV0KCkgZm9ybWF0OiAnb2JqZWN0JyB8ICdodG1sJyB8ICd0ZXh0JyB8ICdqc29uJyA9IHRoaXMuY29uZmlnLmZvcm1hdDtcbiAgQElucHV0KCkgaGVpZ2h0ID0gdGhpcy5jb25maWcuaGVpZ2h0O1xuICBASW5wdXQoKSB3aWR0aCA9IHRoaXMuY29uZmlnLndpZHRoO1xuICBASW5wdXQoKSBtYXhIZWlnaHQgPSB0aGlzLmNvbmZpZy5tYXhIZWlnaHQ7XG4gIEBJbnB1dCgpIG1heFdpZHRoID0gdGhpcy5jb25maWcubWF4V2lkdGg7XG4gIEBJbnB1dCgpIGVuYWJsZVRvb2x0aXBzID0gdGhpcy5jb25maWcuZW5hYmxlVG9vbHRpcHM7XG4gIEBJbnB1dCgpIGZ1bGxzY3JlZW4gPSB0aGlzLmNvbmZpZy5mdWxsc2NyZWVuO1xuICBASW5wdXQoKSBmdWxsc2NyZWVuTW9kZTogJ2V4cGFuZCcgfCAncG9wb3V0JyA9IHRoaXMuY29uZmlnLmZ1bGxzY3JlZW5Nb2RlO1xuICBASW5wdXQoKSByZWFkb25seSA9IHRoaXMuY29uZmlnLnJlYWRvbmx5O1xuICAvLyNlbmRyZWdpb25cblxuICBAT3V0cHV0KCkgZnVsbHNjcmVlbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLy8jcmVnaW9uIFBhc3N0aHJvdWdoIGV2ZW50c1xuICBAT3V0cHV0KCkgb25CbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxCbHVyPigpO1xuICBAT3V0cHV0KCkgb25Db250ZW50Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29udGVudENoYW5nZT4oKTtcbiAgQE91dHB1dCgpIG9uRWRpdG9yQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdG9yQ2hhbmdlQ29udGVudCB8IEVkaXRvckNoYW5nZVNlbGVjdGlvbj4oKTtcbiAgQE91dHB1dCgpIG9uRWRpdG9yQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzPigpO1xuICBAT3V0cHV0KCkgb25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25DaGFuZ2U+KCk7XG4gIC8vI2VuZHJlZ2lvblxuICBcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGRhdGE6IERpYWxvZ0RhdGEsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RWRpdG9yQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhY3RpdmVEaXJlY3RvcnlTZXJ2aWNlOiBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nKSB7XG5cbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAgPSBkYXRhLmZvcm1Hcm91cDtcbiAgICAgIHRoaXMuY29udHJvbE5hbWUgPSBkYXRhLmNvbnRyb2xOYW1lO1xuICAgICAgdGhpcy5uZ01vZGVsVmFsdWUgPSBkYXRhLnZhbHVlO1xuXG4gICAgICB0aGlzLmNvbmZpZyA9IGRhdGEuY29uZmlnO1xuICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGRhdGEucGxhY2Vob2xkZXI7XG4gICAgICB0aGlzLmZvcm1hdCA9IGRhdGEuZm9ybWF0O1xuICAgICAgdGhpcy5oZWlnaHQgPSBkYXRhLmhlaWdodDtcbiAgICAgIHRoaXMud2lkdGggPSBkYXRhLndpZHRoO1xuICAgICAgdGhpcy5tYXhIZWlnaHQgPSBkYXRhLm1heEhlaWdodDtcbiAgICAgIHRoaXMubWF4V2lkdGggPSBkYXRhLm1heFdpZHRoO1xuICAgICAgdGhpcy5lbmFibGVUb29sdGlwcyA9IGRhdGEuZW5hYmxlVG9vbHRpcHM7XG4gICAgICB0aGlzLmZ1bGxzY3JlZW4gPSBkYXRhLmZ1bGxzY3JlZW47XG4gICAgICB0aGlzLmZ1bGxzY3JlZW5Nb2RlID0gZGF0YS5mdWxsc2NyZWVuTW9kZTtcbiAgICAgIHRoaXMucmVhZG9ubHkgPSBkYXRhLnJlYWRvbmx5O1xuICAgICAgdGhpcy51c2VycyA9IGRhdGEudXNlcnM7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnVzZXJzKSB7XG4gICAgICB0aGlzLmFjdGl2ZURpcmVjdG9yeVNlcnZpY2UuZ2V0VXNlcnMoKS5zdWJzY3JpYmUodXNlcnMgPT5cbiAgICAgICAgdGhpcy51c2VycyA9IHVzZXJzXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZUZ1bGxzY3JlZW4oKTogdm9pZCB7XG4gICAgdGhpcy5mdWxsc2NyZWVuID0gIXRoaXMuZnVsbHNjcmVlbjtcbiAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQodGhpcy5mdWxsc2NyZWVuKTtcblxuICAgIGlmICh0aGlzLmZ1bGxzY3JlZW5Nb2RlID09PSAncG9wb3V0Jykge1xuICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZm9ybUdyb3VwID9cbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5jb250cm9sTmFtZSk/LnZhbHVlIDpcbiAgICAgICAgICB0aGlzLm5nTW9kZWxWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBcbiAgICAgICAgY29uc3QgZGF0YTogRGlhbG9nRGF0YSA9IHtcbiAgICAgICAgICBmb3JtR3JvdXA6IHRoaXMuZm9ybUdyb3VwLFxuICAgICAgICAgIGNvbnRyb2xOYW1lOiB0aGlzLmNvbnRyb2xOYW1lLFxuICAgICAgICAgIHZhbHVlOiB0aGlzLm5nTW9kZWxWYWx1ZSxcblxuICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcsXG4gICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMucGxhY2Vob2xkZXIsXG4gICAgICAgICAgZm9ybWF0OiB0aGlzLmZvcm1hdCxcbiAgICAgICAgICBoZWlnaHQ6IHRoaXMubWF4SGVpZ2h0LFxuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgbWF4SGVpZ2h0OiB0aGlzLm1heEhlaWdodCxcbiAgICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgICAgIGVuYWJsZVRvb2x0aXBzOiB0aGlzLmVuYWJsZVRvb2x0aXBzLFxuICAgICAgICAgIGZ1bGxzY3JlZW46IHRoaXMuZnVsbHNjcmVlbixcbiAgICAgICAgICBmdWxsc2NyZWVuTW9kZTogdGhpcy5mdWxsc2NyZWVuTW9kZSxcbiAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSxcbiAgICAgICAgICB1c2VyczogdGhpcy51c2Vyc1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oRWRpdG9yQ29tcG9uZW50LCB7XG4gICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICAgIHdpZHRoOiB0aGlzLm1heFdpZHRoLFxuICAgICAgICAgIGhlaWdodDogJzkwdmgnLFxuICAgICAgICAgIGRhdGFcbiAgICAgICAgfSlcbiAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgdGhpcy5mdWxsc2NyZWVuID0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXApIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmNvbnRyb2xOYW1lKT8uc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5nTW9kZWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdG9vbHRpcCh2YWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlVG9vbHRpcHMgPyB2YWwgOiAnJztcbiAgfVxuXG4gIGdldCBtb2R1bGVzKCkge1xuICAgIHJldHVybiB0aGlzLnVzZXJzID9cbiAgICAgIHtcbiAgICAgICAgaW1hZ2VSZXNpemU6IHt9LFxuICAgICAgICBpbWFnZURyb3A6IHRydWUsXG4gICAgICAgIHN5bnRheDogdHJ1ZSxcbiAgICAgICAgbWVudGlvbjoge1xuICAgICAgICAgIGFsbG93ZWRDaGFyczogL15bQS1aYS16XFxzw4XDhMOWw6XDpMO2XSokLyxcblxuICAgICAgICAgIG9uU2VsZWN0OiAoaXRlbTogRE9NU3RyaW5nTWFwLCBpbnNlcnRJdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yIS5xdWlsbEVkaXRvclxuICAgICAgICAgICAgaW5zZXJ0SXRlbShpdGVtKVxuICAgICAgICAgICAgLy8gbmVjZXNzYXJ5IGJlY2F1c2UgcXVpbGwtbWVudGlvbiB0cmlnZ2VycyBjaGFuZ2VzIGFzICdhcGknIGluc3RlYWQgb2YgJ3VzZXInXG4gICAgICAgICAgICBlZGl0b3IuaW5zZXJ0VGV4dChlZGl0b3IuZ2V0TGVuZ3RoKCkgLSAxLCAnJywgJ3VzZXInKVxuICAgICAgICAgIH0sXG5cbiAgICAgICAgICBzb3VyY2U6IChzZWFyY2hUZXJtOiBzdHJpbmcsIHJlbmRlckxpc3Q6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHNlYXJjaFRlcm0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgIHJlbmRlckxpc3QodGhpcy51c2Vycz8ubWFwKHUgPT4gKHsgdmFsdWU6IGAke3UuZGlzcGxheU5hbWV9ICgke3Uuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKX0pYCB9KSksIHNlYXJjaFRlcm0pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzOiBhbnlbXSA9IFtdXG5cbiAgICAgICAgICAgICAgdGhpcy51c2VycyEuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBlbnRyeS5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSAhPT0gLTEgfHxcbiAgICAgICAgICAgICAgICAgIGVudHJ5LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpICE9PSAtMVxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBtYXRjaGVzLnB1c2goeyB2YWx1ZTogYCR7ZW50cnkuZGlzcGxheU5hbWV9ICgke2VudHJ5LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCl9KWAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgcmVuZGVyTGlzdChtYXRjaGVzLCBzZWFyY2hUZXJtKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSA6XG4gICAgICB1bmRlZmluZWQ7XG4gIH1cbn0iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidXNlcnNcIj5cbiAgICA8IS0tIFJlYWN0aXZlIGZvcm1zIC0tPlxuICAgIDxmb3JtICpuZ0lmPVwiZm9ybUdyb3VwXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICAgICAgPHF1aWxsLWVkaXRvclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgW2Zvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJmdWxsc2NyZWVuID8gbWF4SGVpZ2h0IDogaGVpZ2h0XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJmdWxsc2NyZWVuID8gbWF4V2lkdGggOiB3aWR0aFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgW2NsYXNzLnJlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgIFttb2R1bGVzXT1cIm1vZHVsZXNcIlxuICAgIFxuICAgICAgICAgICAgKG9uQmx1cik9XCJvbkJsdXIuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbkNvbnRlbnRDaGFuZ2VkKT1cIm9uQ29udGVudENoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbkVkaXRvckNoYW5nZWQpPVwib25FZGl0b3JDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25FZGl0b3JDcmVhdGVkKT1cIm9uRWRpdG9yQ3JlYXRlZC5lbWl0KClcIlxuICAgICAgICAgICAgKG9uRm9jdXMpPVwib25Gb2N1cy5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCI+XG4gICAgXG4gICAgICAgICAgICA8ZGl2IHF1aWxsLWVkaXRvci10b29sYmFyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9vbGJhclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRpdG9yU2l6ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcXVpbGwtZWRpdG9yPlxuICAgIDwvZm9ybT5cbiAgICBcbiAgICA8IS0tIE5nTW9kZWwgZm9ybXMgLS0+XG4gICAgPGZvcm0gKm5nSWY9XCIhZm9ybUdyb3VwXCI+XG4gICAgICAgIDxxdWlsbC1lZGl0b3IgbmFtZT1cImVkaXRvclwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5nTW9kZWxWYWx1ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgW2Zvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJmdWxsc2NyZWVuID8gbWF4SGVpZ2h0IDogaGVpZ2h0XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJmdWxsc2NyZWVuID8gbWF4V2lkdGggOiB3aWR0aFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgW2NsYXNzLnJlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgIFttb2R1bGVzXT1cIm1vZHVsZXNcIlxuICAgIFxuICAgICAgICAgICAgKG9uQmx1cik9XCJvbkJsdXIuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbkNvbnRlbnRDaGFuZ2VkKT1cIm9uQ29udGVudENoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbkVkaXRvckNoYW5nZWQpPVwib25FZGl0b3JDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25FZGl0b3JDcmVhdGVkKT1cIm9uRWRpdG9yQ3JlYXRlZC5lbWl0KClcIlxuICAgICAgICAgICAgKG9uRm9jdXMpPVwib25Gb2N1cy5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCI+XG4gICAgXG4gICAgICAgICAgICA8ZGl2IHF1aWxsLWVkaXRvci10b29sYmFyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9vbGJhclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRpdG9yU2l6ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcXVpbGwtZWRpdG9yPlxuICAgIDwvZm9ybT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3Rvb2xiYXI+XG4gICAgPGRpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb250U3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJibG9ja1N0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1N0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlzdFN0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2NyaXB0U3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpbmRlbnRTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJ0bFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRTaXplXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9udFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFsaWduXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2xlYW5cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG50LWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb3JtdWxhXCI+PC9udC1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibWVkaWFcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9udFN0eWxlPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLnNob3dGb250U3R5bGVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWJvbGRcIiAgICAgICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuYm9sZFwiICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuYm9sZClcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWl0YWxpY1wiICAgICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuaXRhbGljXCIgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuaXRhbGljKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtdW5kZXJsaW5lXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy51bmRlcmxpbmVcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy51bmRlcmxpbmUpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zdHJpa2VcIiAgICAqbmdJZj1cImNvbmZpZy5idXR0b25zLnN0cmlrZVwiICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLnN0cmlrZSlcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Jsb2NrU3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuc2hvd0Jsb2NrU3R5bGVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWJsb2NrcXVvdGVcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmJsb2NrcXVvdGVcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5ibG9ja3F1b3RlKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtY29kZS1ibG9ja1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuY29kZWJsb2NrXCIgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmNvZGVibG9jaylcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2hlYWRpbmdTdHlsZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5zaG93UXVpY2tIZWFkaW5nU3R5bGVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWhlYWRlclwiIHZhbHVlPVwiMVwiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuaDFcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5oMSlcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWhlYWRlclwiIHZhbHVlPVwiMlwiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuaDJcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5oMilcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xpc3RTdHlsZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5zaG93TGlzdFN0eWxlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saXN0XCIgdmFsdWU9XCJvcmRlcmVkXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5vcmRlcmVkXCIgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLm9yZGVyZWQpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saXN0XCIgdmFsdWU9XCJidWxsZXRcIiAgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5idWxsZXRlZFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmJ1bGxldGVkKVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2NyaXB0U3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuc2hvd1NjcmlwdFN0eWxlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zY3JpcHRcIiB2YWx1ZT1cInN1YlwiICAgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5zdWJTY3JpcHRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5zdWJTY3JpcHQpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zY3JpcHRcIiB2YWx1ZT1cInN1cGVyXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5zdXBlclNjcmlwdFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLnN1cGVyU2NyaXB0KVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4gICAgXG48bmctdGVtcGxhdGUgI2luZGVudFN0eWxlPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLnNob3dJbmRlbnRTdHlsZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaW5kZW50XCIgdmFsdWU9XCItMVwiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuZGVjcmVhc2VJbmRlbnRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5kZWNyZWFzZUluZGVudClcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWluZGVudFwiIHZhbHVlPVwiKzFcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmluY3JlYXNlSW5kZW50XCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuaW5jcmVhc2VJbmRlbnQpXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNydGw+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5ydGxcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWRpcmVjdGlvblwiIHZhbHVlPVwicnRsXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMucnRsKVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9udFNpemU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5mb250U2l6ZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmZvbnRTaXplKVwiPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtc2l6ZVwiPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNtYWxsXCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImxhcmdlXCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaHVnZVwiPjwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2hlYWRpbmc+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5oZWFkaW5nU3R5bGVcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5oZWFkaW5nU3R5bGUpXCI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMlwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjNcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNVwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjZcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiPjwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbG9yPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuY29sb3JcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5jb2xvcilcIj5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWNvbG9yXCI+PC9zZWxlY3Q+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1iYWNrZ3JvdW5kXCI+PC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb250PlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuZm9udFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmZvbnQpXCI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1mb250XCI+XG4gICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNlcmlmXCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibW9ub3NwYWNlXCI+PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYWxpZ24+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5hbGlnblwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmFsaWduKVwiPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYWxpZ25cIj5cbiAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiY2VudGVyXCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicmlnaHRcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJqdXN0aWZ5XCI+PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2xlYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5jbGVhblwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmNsZWFuKVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtY2xlYW5cIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21lZGlhPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLnNob3dNZWRpYVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlua1wiICAqbmdJZj1cImNvbmZpZy5idXR0b25zLmxpbmtcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5saW5rKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaW1hZ2VcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmltYWdlXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuaW1hZ2UpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC12aWRlb1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMudmlkZW9cIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy52aWRlbylcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VkaXRvclNpemU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5lZGl0b3JTaXplXCI+XG4gICAgICAgIDxidXR0b24gaWQ9XCJmdWxsc2NyZWVuXCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoZnVsbHNjcmVlbiA/XG4gICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlID09PSAnZXhwYW5kJyA/IGNvbmZpZy50b29sdGlwcy5taW5pbWl6ZSA6IGNvbmZpZy50b29sdGlwcy5wb3BpbikgOlxuICAgICAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSA9PT0gJ2V4cGFuZCcgPyBjb25maWcudG9vbHRpcHMubWF4aW1pemUgOiBjb25maWcudG9vbHRpcHMucG9wb3V0KSlcIj5cblxuICAgICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJ0b2dnbGVGdWxsc2NyZWVuKClcIj5cbiAgICAgICAgICAgICAgICB7eyBmdWxsc2NyZWVuID9cbiAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlID09PSAnZXhwYW5kJyA/IGNvbmZpZy5pY29ucy5taW5pbWl6ZSA6IGNvbmZpZy5pY29ucy5wb3BpbikgOlxuICAgICAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUgPT09ICdleHBhbmQnID8gY29uZmlnLmljb25zLm1heGltaXplIDogY29uZmlnLmljb25zLnBvcG91dClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb3JtdWxhPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuZm9ybXVsYVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmZvcm11bGEpXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1mb3JtdWxhXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -0,0 +1,51 @@
|
|
|
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==
|
|
@@ -0,0 +1,31 @@
|
|
|
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 = '100vw';
|
|
13
|
+
this.maxHeight = '85vh';
|
|
14
|
+
this.maxWidth = '100vw';
|
|
15
|
+
this.enableTooltips = true;
|
|
16
|
+
this.fullscreen = false;
|
|
17
|
+
this.fullscreenMode = 'popout';
|
|
18
|
+
this.readonly = false;
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region Groups
|
|
21
|
+
this.showBlockStyle = () => this.buttons.blockquote || this.buttons.codeblock;
|
|
22
|
+
this.showFontStyle = () => this.buttons.bold || this.buttons.italic || this.buttons.strike || this.buttons.underline;
|
|
23
|
+
this.showQuickHeadingStyle = () => this.buttons.h1 || this.buttons.h2;
|
|
24
|
+
this.showIndentStyle = () => this.buttons.decreaseIndent || this.buttons.increaseIndent;
|
|
25
|
+
this.showListStyle = () => this.buttons.bulleted || this.buttons.ordered;
|
|
26
|
+
this.showMedia = () => this.buttons.link || this.buttons.image || this.buttons.video;
|
|
27
|
+
this.showScriptStyle = () => this.buttons.subScript || this.buttons.superScript;
|
|
28
|
+
//#endregion
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwtZWRpdG9yL3NyYy9tb2RlbC9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdEMsTUFBTSxPQUFPLE1BQU07SUFBbkI7UUFDSSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMxQixVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUVwQiw2Q0FBNkM7UUFDN0MsV0FBTSxHQUF3QyxNQUFNLENBQUM7UUFDckQsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixVQUFLLEdBQUcsT0FBTyxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFDbkIsYUFBUSxHQUFHLE9BQU8sQ0FBQztRQUNuQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLG1CQUFjLEdBQXdCLFFBQVEsQ0FBQztRQUMvQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFlBQVk7UUFFWixnQkFBZ0I7UUFDaEIsbUJBQWMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUN6RSxrQkFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ2hILDBCQUFxQixHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2pFLG9CQUFlLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDbkYsa0JBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUNwRSxjQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDaEYsb0JBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUMzRSxZQUFZO0lBQ2hCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1dHRvbnMgfSBmcm9tIFwiLi9idXR0b25zXCI7XHJcbmltcG9ydCB7IEljb25zIH0gZnJvbSBcIi4vaWNvbnNcIjtcclxuaW1wb3J0IHsgVG9vbHRpcHMgfSBmcm9tIFwiLi90b29sdGlwc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbmZpZyB7XHJcbiAgICBidXR0b25zID0gbmV3IEJ1dHRvbnMoKTtcclxuICAgIHRvb2x0aXBzID0gbmV3IFRvb2x0aXBzKCk7XHJcbiAgICBpY29ucyA9IG5ldyBJY29ucygpO1xyXG5cclxuICAgIC8vI3JlZ2lvbiBUaGVzZSBjYW4gYmUgb3ZlcnJpZGVuIHZpYSBASW5wdXQoKVxyXG4gICAgZm9ybWF0OiAnb2JqZWN0JyB8ICdodG1sJyB8ICd0ZXh0JyB8ICdqc29uJyA9ICdodG1sJztcclxuICAgIGhlaWdodCA9ICc1MHZoJztcclxuICAgIHdpZHRoID0gJzEwMHZ3JztcclxuICAgIG1heEhlaWdodCA9ICc4NXZoJztcclxuICAgIG1heFdpZHRoID0gJzEwMHZ3JztcclxuICAgIGVuYWJsZVRvb2x0aXBzID0gdHJ1ZTtcclxuICAgIGZ1bGxzY3JlZW4gPSBmYWxzZTtcclxuICAgIGZ1bGxzY3JlZW5Nb2RlOiAnZXhwYW5kJyB8ICdwb3BvdXQnID0gJ3BvcG91dCc7XHJcbiAgICByZWFkb25seSA9IGZhbHNlO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIEdyb3Vwc1xyXG4gICAgc2hvd0Jsb2NrU3R5bGUgPSAoKSA9PiB0aGlzLmJ1dHRvbnMuYmxvY2txdW90ZSB8fCB0aGlzLmJ1dHRvbnMuY29kZWJsb2NrO1xyXG4gICAgc2hvd0ZvbnRTdHlsZSA9ICgpID0+IHRoaXMuYnV0dG9ucy5ib2xkIHx8IHRoaXMuYnV0dG9ucy5pdGFsaWMgfHwgdGhpcy5idXR0b25zLnN0cmlrZSB8fCB0aGlzLmJ1dHRvbnMudW5kZXJsaW5lO1xyXG4gICAgc2hvd1F1aWNrSGVhZGluZ1N0eWxlID0gKCkgPT4gdGhpcy5idXR0b25zLmgxIHx8IHRoaXMuYnV0dG9ucy5oMjtcclxuICAgIHNob3dJbmRlbnRTdHlsZSA9ICgpID0+IHRoaXMuYnV0dG9ucy5kZWNyZWFzZUluZGVudCB8fCB0aGlzLmJ1dHRvbnMuaW5jcmVhc2VJbmRlbnQ7XHJcbiAgICBzaG93TGlzdFN0eWxlID0gKCkgPT4gdGhpcy5idXR0b25zLmJ1bGxldGVkIHx8IHRoaXMuYnV0dG9ucy5vcmRlcmVkO1xyXG4gICAgc2hvd01lZGlhID0gKCkgPT4gdGhpcy5idXR0b25zLmxpbmsgfHwgdGhpcy5idXR0b25zLmltYWdlIHx8IHRoaXMuYnV0dG9ucy52aWRlbztcclxuICAgIHNob3dTY3JpcHRTdHlsZSA9ICgpID0+IHRoaXMuYnV0dG9ucy5zdWJTY3JpcHQgfHwgdGhpcy5idXR0b25zLnN1cGVyU2NyaXB0O1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcbn0iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbC1lZGl0b3Ivc3JjL21vZGVsL2RpYWxvZy1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gXCJAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeVwiO1xyXG5pbXBvcnQgeyBDb25maWcgfSBmcm9tIFwiLi9jb25maWdcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nRGF0YSB7XHJcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIGNvbmZpZzogQ29uZmlnO1xyXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIGZvcm1hdDogJ29iamVjdCcgfCAnaHRtbCcgfCAndGV4dCcgfCAnanNvbic7XHJcbiAgICBoZWlnaHQ6IHN0cmluZztcclxuICAgIHdpZHRoOiBzdHJpbmc7XHJcbiAgICBtYXhIZWlnaHQ6IHN0cmluZztcclxuICAgIG1heFdpZHRoOiBzdHJpbmc7XHJcbiAgICBlbmFibGVUb29sdGlwczogYm9vbGVhbjtcclxuICAgIGZ1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgICBmdWxsc2NyZWVuTW9kZTogJ2V4cGFuZCcgfCAncG9wb3V0JztcclxuICAgIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gICAgdXNlcnM6IFVzZXJbXSB8IHVuZGVmaW5lZDtcclxufSJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export class Tooltips {
|
|
2
|
+
constructor() {
|
|
3
|
+
//#region Font Style
|
|
4
|
+
this.bold = 'Bole';
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbC1lZGl0b3Ivc3JjL21vZGVsL3Rvb2x0aXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxRQUFRO0lBQXJCO1FBQ0ksb0JBQW9CO1FBQ3BCLFNBQUksR0FBRyxNQUFNLENBQUM7UUFDZCxXQUFNLEdBQUcsUUFBUSxDQUFDO1FBQ2xCLFdBQU0sR0FBRyxlQUFlLENBQUM7UUFDekIsY0FBUyxHQUFHLFdBQVcsQ0FBQztRQUN4QixZQUFZO1FBRVosZUFBZTtRQUNmLFNBQUksR0FBRyxNQUFNLENBQUM7UUFDZCxVQUFLLEdBQUcsY0FBYyxDQUFDO1FBQ3ZCLFVBQUssR0FBRyxjQUFjLENBQUM7UUFDdkIsWUFBWTtRQUVaLHFCQUFxQjtRQUNyQixlQUFVLEdBQUcsWUFBWSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxZQUFZLENBQUM7UUFDekIsWUFBWTtRQUVaLHVCQUF1QjtRQUN2QixPQUFFLEdBQUcsV0FBVyxDQUFDO1FBQ2pCLE9BQUUsR0FBRyxXQUFXLENBQUM7UUFDakIsWUFBWTtRQUVaLGVBQWU7UUFDZixVQUFLLEdBQUcseUJBQXlCLENBQUM7UUFDbEMsWUFBWTtRQUVaLG9CQUFvQjtRQUNwQixhQUFRLEdBQUcsZUFBZSxDQUFDO1FBQzNCLFlBQU8sR0FBRyxjQUFjLENBQUM7UUFDekIsWUFBWTtRQUVaLHNCQUFzQjtRQUN0QixjQUFTLEdBQUcsV0FBVyxDQUFDO1FBQ3hCLGdCQUFXLEdBQUcsYUFBYSxDQUFDO1FBQzVCLFlBQVk7UUFFWixzQkFBc0I7UUFDdEIsbUJBQWMsR0FBRyxpQkFBaUIsQ0FBQztRQUNuQyxtQkFBYyxHQUFHLGlCQUFpQixDQUFDO1FBQ25DLFlBQVk7UUFFWixtQkFBbUI7UUFDbkIsVUFBSyxHQUFHLE9BQU8sQ0FBQztRQUNoQixTQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ2QsYUFBUSxHQUFHLFdBQVcsQ0FBQztRQUN2QixpQkFBWSxHQUFHLFNBQVMsQ0FBQztRQUN6QixZQUFZO1FBRVosd0JBQXdCO1FBQ3hCLFVBQUssR0FBRyxPQUFPLENBQUM7UUFDaEIsWUFBTyxHQUFHLFNBQVMsQ0FBQztRQUNwQixRQUFHLEdBQUcsZUFBZSxDQUFDO1FBQ3RCLGFBQVEsR0FBRyxVQUFVLENBQUM7UUFDdEIsYUFBUSxHQUFHLFVBQVUsQ0FBQztRQUN0QixXQUFNLEdBQUcsUUFBUSxDQUFDO1FBQ2xCLFVBQUssR0FBRyxNQUFNLENBQUM7UUFDZixZQUFZO0lBQ2hCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBUb29sdGlwcyB7XHJcbiAgICAvLyNyZWdpb24gRm9udCBTdHlsZVxyXG4gICAgYm9sZCA9ICdCb2xlJztcclxuICAgIGl0YWxpYyA9ICdJdGFsaWMnO1xyXG4gICAgc3RyaWtlID0gJ1N0cmlrZXRocm91Z2gnO1xyXG4gICAgdW5kZXJsaW5lID0gJ1VuZGVybGluZSc7XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gTWVkaWFcclxuICAgIGxpbmsgPSAnTGluayc7XHJcbiAgICBpbWFnZSA9ICdJbnNlcnQgSW1hZ2UnO1xyXG4gICAgdmlkZW8gPSAnSW5zZXJ0IFZpZGVvJztcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBCbG9jayBTdHlsZVxyXG4gICAgYmxvY2txdW90ZSA9ICdCbG9ja3F1b3RlJztcclxuICAgIGNvZGVibG9jayA9ICdDb2RlIEJsb2NrJztcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBIZWFkaW5nIFN0eWxlXHJcbiAgICBoMSA9ICdIZWFkaW5nIDEnO1xyXG4gICAgaDIgPSAnSGVhZGluZyAyJztcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBDb2xvclxyXG4gICAgY29sb3IgPSAnRm9udCAvIEJhY2tncm91bmQgQ29sb3InO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIExpc3QgU3R5bGVcclxuICAgIGJ1bGxldGVkID0gJ0J1bGxldGVkIExpc3QnO1xyXG4gICAgb3JkZXJlZCA9ICdPcmRlcmVkIExpc3QnO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIFNjcmlwdCBTdHlsZVxyXG4gICAgc3ViU2NyaXB0ID0gJ1N1YnNjcmlwdCc7XHJcbiAgICBzdXBlclNjcmlwdCA9ICdTdXBlcnNjcmlwdCc7XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gSW5kZW50IFN0eWxlXHJcbiAgICBpbmNyZWFzZUluZGVudCA9ICdJbmNyZWFzZSBJbmRlbnQnO1xyXG4gICAgZGVjcmVhc2VJbmRlbnQgPSAnRGVjcmVhc2UgSW5kZW50JztcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBEcm9wRG93bnNcclxuICAgIGFsaWduID0gJ0FsaWduJztcclxuICAgIGZvbnQgPSAnRm9udCc7XHJcbiAgICBmb250U2l6ZSA9ICdGb250IFNpemUnO1xyXG4gICAgaGVhZGluZ1N0eWxlID0gJ0hlYWRpbmcnO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIFNpbmdsZSBCdXR0b25zXHJcbiAgICBjbGVhbiA9ICdDbGVhbic7XHJcbiAgICBmb3JtdWxhID0gJ0Zvcm11bGEnO1xyXG4gICAgcnRsID0gJ1JpZ2h0LVRvLUxlZnQnO1xyXG4gICAgbWF4aW1pemUgPSAnTWF4aW1pemUnO1xyXG4gICAgbWluaW1pemUgPSAnTWluaW1pemUnO1xyXG4gICAgcG9wb3V0ID0gJ1BvcG91dCc7XHJcbiAgICBwb3BpbiA9ICdEb25lJztcclxuICAgIC8vI2VuZHJlZ2lvblxyXG59Il19
|
|
@@ -0,0 +1,7 @@
|
|
|
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=
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { NgModule, Optional, SkipSelf } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
6
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
8
|
+
import { QuillModule } from 'ngx-quill';
|
|
9
|
+
import { EditorComponent } from './components/editor/editor.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "ngx-quill";
|
|
12
|
+
export class QuillEditorModule {
|
|
13
|
+
constructor(parentModule) {
|
|
14
|
+
if (parentModule) {
|
|
15
|
+
throw new Error('QuillEditorModule is already loaded. Import it in the AppModule only');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
static forRoot() {
|
|
19
|
+
return {
|
|
20
|
+
ngModule: QuillEditorModule
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
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 });
|
|
25
|
+
QuillEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: QuillEditorModule, declarations: [EditorComponent], imports: [CommonModule,
|
|
26
|
+
FormsModule,
|
|
27
|
+
ReactiveFormsModule,
|
|
28
|
+
MatButtonModule,
|
|
29
|
+
MatDialogModule,
|
|
30
|
+
MatIconModule,
|
|
31
|
+
MatTooltipModule, i1.QuillModule], exports: [EditorComponent] });
|
|
32
|
+
QuillEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: QuillEditorModule, imports: [CommonModule,
|
|
33
|
+
FormsModule,
|
|
34
|
+
ReactiveFormsModule,
|
|
35
|
+
MatButtonModule,
|
|
36
|
+
MatDialogModule,
|
|
37
|
+
MatIconModule,
|
|
38
|
+
MatTooltipModule,
|
|
39
|
+
QuillModule.forRoot()] });
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: QuillEditorModule, decorators: [{
|
|
41
|
+
type: NgModule,
|
|
42
|
+
args: [{
|
|
43
|
+
declarations: [
|
|
44
|
+
EditorComponent
|
|
45
|
+
],
|
|
46
|
+
imports: [
|
|
47
|
+
CommonModule,
|
|
48
|
+
FormsModule,
|
|
49
|
+
ReactiveFormsModule,
|
|
50
|
+
MatButtonModule,
|
|
51
|
+
MatDialogModule,
|
|
52
|
+
MatIconModule,
|
|
53
|
+
MatTooltipModule,
|
|
54
|
+
QuillModule.forRoot()
|
|
55
|
+
],
|
|
56
|
+
exports: [
|
|
57
|
+
EditorComponent
|
|
58
|
+
]
|
|
59
|
+
}]
|
|
60
|
+
}], ctorParameters: function () { return [{ type: QuillEditorModule, decorators: [{
|
|
61
|
+
type: Optional
|
|
62
|
+
}, {
|
|
63
|
+
type: SkipSelf
|
|
64
|
+
}] }]; } });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpbGwtZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsLWVkaXRvci9zcmMvcXVpbGwtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7OztBQXNCdkUsTUFBTSxPQUFPLGlCQUFpQjtJQU8xQixZQUFvQyxZQUErQjtRQUNqRSxJQUFJLFlBQVksRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUNiLHNFQUFzRSxDQUFDLENBQUM7U0FDM0U7SUFDSCxDQUFDO0lBWEgsTUFBTSxDQUFDLE9BQU87UUFDVixPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtTQUM1QixDQUFDO0lBQ0osQ0FBQzs7OEdBTFEsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBbEIxQixlQUFlLGFBR2YsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFFbkIsZUFBZTtRQUNmLGVBQWU7UUFDZixhQUFhO1FBQ2IsZ0JBQWdCLDZCQUtoQixlQUFlOytHQUdOLGlCQUFpQixZQWYxQixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUVuQixlQUFlO1FBQ2YsZUFBZTtRQUNmLGFBQWE7UUFDYixnQkFBZ0I7UUFFaEIsV0FBVyxDQUFDLE9BQU8sRUFBRTsyRkFNWixpQkFBaUI7a0JBcEI3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFFbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUVoQixXQUFXLENBQUMsT0FBTyxFQUFFO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTtxQkFDaEI7aUJBQ0Y7OzBCQVFnQixRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgUXVpbGxNb2R1bGUgfSBmcm9tICduZ3gtcXVpbGwnO1xuXG5pbXBvcnQgeyBFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBFZGl0b3JDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG5cbiAgICBRdWlsbE1vZHVsZS5mb3JSb290KClcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEVkaXRvckNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFF1aWxsRWRpdG9yTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxRdWlsbEVkaXRvck1vZHVsZT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmdNb2R1bGU6IFF1aWxsRWRpdG9yTW9kdWxlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHBhcmVudE1vZHVsZTogUXVpbGxFZGl0b3JNb2R1bGUpIHtcbiAgICAgIGlmIChwYXJlbnRNb2R1bGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdRdWlsbEVkaXRvck1vZHVsZSBpcyBhbHJlYWR5IGxvYWRlZC4gSW1wb3J0IGl0IGluIHRoZSBBcHBNb2R1bGUgb25seScpO1xuICAgICAgfVxuICAgIH1cbn0iXX0=
|