@esfaenza/text-editors 19.2.5 → 19.2.6

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.
@@ -1,17 +1,217 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, forwardRef, Output, Input, ViewEncapsulation, Component } from '@angular/core';
2
+ import { InjectionToken, EventEmitter, inject, forwardRef, Output, Input, ViewEncapsulation, Component, input, viewChild } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { FormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
6
6
  import * as i2 from '@ckeditor/ckeditor5-angular';
7
- import { loadCKEditorCloud, CKEditorModule } from '@ckeditor/ckeditor5-angular';
7
+ import { CKEditorModule, loadCKEditorCloud } from '@ckeditor/ckeditor5-angular';
8
8
 
9
- const cloudConfig$1 = {
9
+ const TXE_DEBUG = new InjectionToken('TXE_DEBUG');
10
+
11
+ class HtmlEditorComponent {
12
+ constructor() {
13
+ this.Readonly = false; // Angular19 -> [disabled]
14
+ this.Required = false;
15
+ this.Validation = false;
16
+ this.onEditorLoaded = new EventEmitter();
17
+ this.EditorModel = null;
18
+ this.DEBUG = inject(TXE_DEBUG, { optional: true }) || false;
19
+ //#region Forms
20
+ this.onTouched = () => { };
21
+ this.propagateChange = (_) => { };
22
+ }
23
+ initializeEditor() {
24
+ if (!this.PersistentEditor) {
25
+ if (this.DEBUG)
26
+ console.error("@ HTML-Editor @: Impossibile inizializzare l'editor HTML senza PersistentEditor");
27
+ }
28
+ else
29
+ this.PersistentEditor?.iInitializeEditor();
30
+ }
31
+ ngOnInit() {
32
+ if (this.DEBUG)
33
+ console.info("@ HTML-Editor @: Il componente HtmlEditorComponent è stato creato");
34
+ }
35
+ ngOnDestroy() {
36
+ if (this.DEBUG)
37
+ console.info("@ HTML-Editor @: Il componente HtmlEditorComponent è stato distrutto");
38
+ }
39
+ registerOnChange(fn) {
40
+ this.propagateChange = fn;
41
+ }
42
+ registerOnTouched(fn) {
43
+ this.onTouched = fn;
44
+ }
45
+ writeValue(obj) {
46
+ let value = "";
47
+ if (obj !== undefined)
48
+ value = obj;
49
+ if (this.DEBUG)
50
+ console.log("@ HTML-Editor @: Writevalue pre-refresh: " + value);
51
+ if (value === this.EditorModel?.value) {
52
+ if (this.DEBUG)
53
+ console.log("@ HTML-Editor @: Writevalue ridondante");
54
+ return;
55
+ }
56
+ this.EditorModel = null;
57
+ requestAnimationFrame(() => {
58
+ if (this.DEBUG)
59
+ console.log("@ HTML-Editor @: Writevalue post-refresh: " + value);
60
+ this.EditorModel = { value: value, onEditorChange: this.onEditorChange.bind(this) };
61
+ });
62
+ }
63
+ validate(c) {
64
+ let ret = null;
65
+ if (this.EditorModel?.value || this.Readonly || !this.Required)
66
+ ret = null;
67
+ ret = null;
68
+ if (this.DEBUG)
69
+ console.log("@ HTML-Editor @: Validate post-validate: " + ret);
70
+ return ret;
71
+ }
72
+ onEditorChange({ editor }) {
73
+ if (!this.EditorModel)
74
+ return;
75
+ let data = editor?.getData();
76
+ if (this.DEBUG)
77
+ console.log("@ HTML-Editor @: changed: " + data);
78
+ this.propagateChange(data);
79
+ }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HtmlEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: HtmlEditorComponent, isStandalone: true, selector: "html-editor", inputs: { PersistentEditor: "PersistentEditor", Readonly: "Readonly", Required: "Required", Validation: "Validation" }, outputs: { onEditorLoaded: "onEditorLoaded" }, providers: [
82
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => HtmlEditorComponent), multi: true },
83
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => HtmlEditorComponent), multi: true }
84
+ ], ngImport: i0, template: "<div class=\"html-editor\" *ngIf=\"EditorModel && PersistentEditor\">\r\n <ng-content *ngIf=\"PersistentEditor.EditorTemplate()\">\r\n <ng-content *ngTemplateOutlet=\"PersistentEditor.EditorTemplate(); context: {$implicit: EditorModel}\"></ng-content>\r\n </ng-content>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap\";:root{--ck-content-font-family: \"Lato\"}@media print{body{margin:0!important}}.main-container{font-family:var(--ck-content-font-family);width:fit-content;margin-left:auto;margin-right:auto}.editor-container_classic-editor .editor-container__editor{min-width:795px;max-width:795px}.html-editor .ck-content{overflow-x:hidden!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CKEditorModule }], encapsulation: i0.ViewEncapsulation.None }); }
85
+ }
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HtmlEditorComponent, decorators: [{
87
+ type: Component,
88
+ args: [{ selector: "html-editor", standalone: true, imports: [CommonModule, FormsModule, CKEditorModule], encapsulation: ViewEncapsulation.None, providers: [
89
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => HtmlEditorComponent), multi: true },
90
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => HtmlEditorComponent), multi: true }
91
+ ], template: "<div class=\"html-editor\" *ngIf=\"EditorModel && PersistentEditor\">\r\n <ng-content *ngIf=\"PersistentEditor.EditorTemplate()\">\r\n <ng-content *ngTemplateOutlet=\"PersistentEditor.EditorTemplate(); context: {$implicit: EditorModel}\"></ng-content>\r\n </ng-content>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap\";:root{--ck-content-font-family: \"Lato\"}@media print{body{margin:0!important}}.main-container{font-family:var(--ck-content-font-family);width:fit-content;margin-left:auto;margin-right:auto}.editor-container_classic-editor .editor-container__editor{min-width:795px;max-width:795px}.html-editor .ck-content{overflow-x:hidden!important}\n"] }]
92
+ }], propDecorators: { PersistentEditor: [{
93
+ type: Input
94
+ }], Readonly: [{
95
+ type: Input
96
+ }], Required: [{
97
+ type: Input
98
+ }], Validation: [{
99
+ type: Input
100
+ }], onEditorLoaded: [{
101
+ type: Output
102
+ }] } });
103
+
104
+ class MarkdownEditorComponent {
105
+ constructor() {
106
+ this.Readonly = false; // Angular19 -> [disabled]
107
+ this.Required = false;
108
+ this.Validation = false;
109
+ // Mention
110
+ this.MentionMarker = "@";
111
+ this.MentionEntities = [];
112
+ this.onEditorLoaded = new EventEmitter();
113
+ this.DEBUG = inject(TXE_DEBUG, { optional: true }) || false;
114
+ this.EditorModel = null;
115
+ //#region Forms
116
+ this.onTouched = () => { };
117
+ this.propagateChange = (_) => { };
118
+ }
119
+ get NormalizedMentionEntities() {
120
+ return this.MentionEntities.map(m => {
121
+ return { id: this.MentionMarker + m.id, description: m.description };
122
+ });
123
+ }
124
+ initializeEditor() {
125
+ if (!this.PersistentEditor) {
126
+ if (this.DEBUG)
127
+ console.error("@ Markdown-Editor @: Impossibile inizializzare l'editor HTML senza PersistentEditor");
128
+ }
129
+ else
130
+ this.PersistentEditor?.iInitializeEditor(this.MentionMarker, this.NormalizedMentionEntities);
131
+ }
132
+ ngOnInit() {
133
+ if (this.DEBUG)
134
+ console.info("@ Markdown-Editor @: Il componente MarkdownEditor è stato creato");
135
+ }
136
+ ngOnDestroy() {
137
+ if (this.DEBUG)
138
+ console.info("@ Markdown-Editor @: Il componente MarkdownEditor è stato distrutto");
139
+ }
140
+ registerOnChange(fn) {
141
+ this.propagateChange = fn;
142
+ }
143
+ registerOnTouched(fn) {
144
+ this.onTouched = fn;
145
+ }
146
+ writeValue(obj) {
147
+ let value = "";
148
+ if (obj !== undefined)
149
+ value = obj;
150
+ if (this.DEBUG)
151
+ console.log("@ Markdown-Editor @: Writevalue pre-refresh: " + value);
152
+ if (value === this.EditorModel?.value) {
153
+ if (this.DEBUG)
154
+ console.log("@ Markdown-Editor @: Writevalue ridondante");
155
+ return;
156
+ }
157
+ this.EditorModel = null;
158
+ requestAnimationFrame(() => {
159
+ if (this.DEBUG)
160
+ console.log("@ Markdown-Editor @: Writevalue post-refresh: " + value);
161
+ this.EditorModel = { value: value, onEditorChange: this.onEditorChange.bind(this) };
162
+ });
163
+ }
164
+ validate(c) {
165
+ let ret = null;
166
+ if (this.EditorModel?.value || this.Readonly || !this.Required)
167
+ ret = null;
168
+ ret = null;
169
+ if (this.DEBUG)
170
+ console.log("@ Markdown-Editor @: Validate post-validate: " + ret);
171
+ return ret;
172
+ }
173
+ onEditorChange({ editor }) {
174
+ if (!this.EditorModel)
175
+ return;
176
+ let data = editor?.getData();
177
+ if (this.DEBUG)
178
+ console.log("@ Markdown-Editor @: changed: " + data);
179
+ this.propagateChange(data);
180
+ }
181
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: MarkdownEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
182
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: MarkdownEditorComponent, isStandalone: true, selector: "markdown-editor", inputs: { PersistentEditor: "PersistentEditor", Readonly: "Readonly", Required: "Required", Validation: "Validation", MentionMarker: "MentionMarker", MentionEntities: "MentionEntities" }, outputs: { onEditorLoaded: "onEditorLoaded" }, providers: [
183
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MarkdownEditorComponent), multi: true },
184
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => MarkdownEditorComponent), multi: true }
185
+ ], ngImport: i0, template: "<div class=\"html-editor\" *ngIf=\"EditorModel && PersistentEditor\">\r\n <ng-content *ngIf=\"PersistentEditor.EditorTemplate()\">\r\n <ng-content *ngTemplateOutlet=\"PersistentEditor.EditorTemplate(); context: {$implicit: EditorModel}\"></ng-content>\r\n </ng-content>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap\";:root{--ck-content-font-family: \"Lato\"}@media print{body{margin:0!important}}.main-container{font-family:var(--ck-content-font-family);width:fit-content;margin-left:auto;margin-right:auto}.editor-container_classic-editor .editor-container__editor{min-width:795px;max-width:795px}.markdown-editor .ck-content{overflow-x:hidden!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CKEditorModule }], encapsulation: i0.ViewEncapsulation.None }); }
186
+ }
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: MarkdownEditorComponent, decorators: [{
188
+ type: Component,
189
+ args: [{ selector: "markdown-editor", standalone: true, imports: [CommonModule, FormsModule, CKEditorModule], encapsulation: ViewEncapsulation.None, providers: [
190
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MarkdownEditorComponent), multi: true },
191
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => MarkdownEditorComponent), multi: true }
192
+ ], template: "<div class=\"html-editor\" *ngIf=\"EditorModel && PersistentEditor\">\r\n <ng-content *ngIf=\"PersistentEditor.EditorTemplate()\">\r\n <ng-content *ngTemplateOutlet=\"PersistentEditor.EditorTemplate(); context: {$implicit: EditorModel}\"></ng-content>\r\n </ng-content>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap\";:root{--ck-content-font-family: \"Lato\"}@media print{body{margin:0!important}}.main-container{font-family:var(--ck-content-font-family);width:fit-content;margin-left:auto;margin-right:auto}.editor-container_classic-editor .editor-container__editor{min-width:795px;max-width:795px}.markdown-editor .ck-content{overflow-x:hidden!important}\n"] }]
193
+ }], propDecorators: { PersistentEditor: [{
194
+ type: Input
195
+ }], Readonly: [{
196
+ type: Input
197
+ }], Required: [{
198
+ type: Input
199
+ }], Validation: [{
200
+ type: Input
201
+ }], MentionMarker: [{
202
+ type: Input
203
+ }], MentionEntities: [{
204
+ type: Input
205
+ }], onEditorLoaded: [{
206
+ type: Output
207
+ }] } });
208
+
209
+ const cloudConfig$2 = {
10
210
  version: '46.1.1',
11
211
  translations: ['it']
12
212
  };
13
- const LICENSE_KEY$1 = 'eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE4MDQ5ODIzOTksImp0aSI6ImJkZDU4ZGM3LTlhYzgtNDA4Mi05ZDk3LTg3Yzc0NjEzMDlmNyIsInVzYWdlRW5kcG9pbnQiOiJodHRwczovL3Byb3h5LWV2ZW50LmNrZWRpdG9yLmNvbSIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsiY2xvdWQiLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJFMlAiLCJFMlciLCJNTEwiLCJTRUUiLCJFQ0giLCJFSVMiLCJMSCIsIkZPTyJdLCJ2YyI6IjdjZjg2OGYwIn0.vw-04yWGiTzZVSaGxQUGCxWXBUQXRJ0yB2ItqwvNnd7nEjMFC4d9kiDgbkzGnHgAjkiQEUqTzrM7b1z4cR6rhA';
14
- class HtmlEditorComponent {
213
+ const LICENSE_KEY$2 = 'eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE4MDQ5ODIzOTksImp0aSI6ImJkZDU4ZGM3LTlhYzgtNDA4Mi05ZDk3LTg3Yzc0NjEzMDlmNyIsInVzYWdlRW5kcG9pbnQiOiJodHRwczovL3Byb3h5LWV2ZW50LmNrZWRpdG9yLmNvbSIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsiY2xvdWQiLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJFMlAiLCJFMlciLCJNTEwiLCJTRUUiLCJFQ0giLCJFSVMiLCJMSCIsIkZPTyJdLCJ2YyI6IjdjZjg2OGYwIn0.vw-04yWGiTzZVSaGxQUGCxWXBUQXRJ0yB2ItqwvNnd7nEjMFC4d9kiDgbkzGnHgAjkiQEUqTzrM7b1z4cR6rhA';
214
+ class HtmlEditorStandaloneComponent {
15
215
  constructor() {
16
216
  this.Readonly = false; // Angular19 -> [disabled]
17
217
  this.Required = false;
@@ -28,7 +228,7 @@ class HtmlEditorComponent {
28
228
  }
29
229
  initializeEditor() {
30
230
  if (!this.Editor) {
31
- loadCKEditorCloud(cloudConfig$1).then(this.internalInitializeEditor.bind(this));
231
+ loadCKEditorCloud(cloudConfig$2).then(this.internalInitializeEditor.bind(this));
32
232
  this.onEditorLoaded.emit();
33
233
  }
34
234
  }
@@ -70,7 +270,7 @@ class HtmlEditorComponent {
70
270
  },
71
271
  initialData: "",
72
272
  language: 'it',
73
- licenseKey: LICENSE_KEY$1,
273
+ licenseKey: LICENSE_KEY$2,
74
274
  link: {
75
275
  addTargetToExternalLinks: true,
76
276
  defaultProtocol: 'https://',
@@ -111,17 +311,17 @@ class HtmlEditorComponent {
111
311
  changed() {
112
312
  this.propagateChange(this.value);
113
313
  }
114
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HtmlEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
115
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: HtmlEditorComponent, isStandalone: true, selector: "html-editor", inputs: { Readonly: "Readonly", Required: "Required", Validation: "Validation" }, outputs: { onEditorLoaded: "onEditorLoaded" }, providers: [
116
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => HtmlEditorComponent), multi: true },
117
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => HtmlEditorComponent), multi: true }
314
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HtmlEditorStandaloneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
315
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: HtmlEditorStandaloneComponent, isStandalone: true, selector: "html-editor-standalone", inputs: { Readonly: "Readonly", Required: "Required", Validation: "Validation" }, outputs: { onEditorLoaded: "onEditorLoaded" }, providers: [
316
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => HtmlEditorStandaloneComponent), multi: true },
317
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => HtmlEditorStandaloneComponent), multi: true }
118
318
  ], ngImport: i0, template: "<div class=\"html-editor\">\r\n <ckeditor *ngIf=\"Editor && EditorConfig\"\r\n [data]=\"value\"\r\n [editor]=\"Editor\"\r\n [config]=\"EditorConfig\"\r\n (change)=\"onEditorChange($event)\">\r\n </ckeditor>\r\n <div *ngIf=\"!Editor && !EditorConfig\">\r\n Editor in caricamento...\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap\";:root{--ck-content-font-family: \"Lato\"}@media print{body{margin:0!important}}.main-container{font-family:var(--ck-content-font-family);width:fit-content;margin-left:auto;margin-right:auto}.editor-container_classic-editor .editor-container__editor{min-width:795px;max-width:795px}.html-editor .ck-content{overflow-x:hidden!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CKEditorModule }, { kind: "component", type: i2.CKEditorComponent, selector: "ckeditor", inputs: ["editor", "config", "data", "tagName", "watchdog", "editorWatchdogConfig", "disableTwoWayDataBinding", "disabled"], outputs: ["ready", "change", "blur", "focus", "error"] }], encapsulation: i0.ViewEncapsulation.None }); }
119
319
  }
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HtmlEditorComponent, decorators: [{
320
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HtmlEditorStandaloneComponent, decorators: [{
121
321
  type: Component,
122
- args: [{ selector: "html-editor", standalone: true, imports: [CommonModule, FormsModule, CKEditorModule], encapsulation: ViewEncapsulation.None, providers: [
123
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => HtmlEditorComponent), multi: true },
124
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => HtmlEditorComponent), multi: true }
322
+ args: [{ selector: "html-editor-standalone", standalone: true, imports: [CommonModule, FormsModule, CKEditorModule], encapsulation: ViewEncapsulation.None, providers: [
323
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => HtmlEditorStandaloneComponent), multi: true },
324
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => HtmlEditorStandaloneComponent), multi: true }
125
325
  ], template: "<div class=\"html-editor\">\r\n <ckeditor *ngIf=\"Editor && EditorConfig\"\r\n [data]=\"value\"\r\n [editor]=\"Editor\"\r\n [config]=\"EditorConfig\"\r\n (change)=\"onEditorChange($event)\">\r\n </ckeditor>\r\n <div *ngIf=\"!Editor && !EditorConfig\">\r\n Editor in caricamento...\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap\";:root{--ck-content-font-family: \"Lato\"}@media print{body{margin:0!important}}.main-container{font-family:var(--ck-content-font-family);width:fit-content;margin-left:auto;margin-right:auto}.editor-container_classic-editor .editor-container__editor{min-width:795px;max-width:795px}.html-editor .ck-content{overflow-x:hidden!important}\n"] }]
126
326
  }], propDecorators: { Readonly: [{
127
327
  type: Input
@@ -133,12 +333,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
133
333
  type: Output
134
334
  }] } });
135
335
 
136
- const cloudConfig = {
336
+ const cloudConfig$1 = {
137
337
  version: '46.1.1',
138
338
  translations: ['it']
139
339
  };
140
- const LICENSE_KEY = 'eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE4MDQ5ODIzOTksImp0aSI6ImJkZDU4ZGM3LTlhYzgtNDA4Mi05ZDk3LTg3Yzc0NjEzMDlmNyIsInVzYWdlRW5kcG9pbnQiOiJodHRwczovL3Byb3h5LWV2ZW50LmNrZWRpdG9yLmNvbSIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsiY2xvdWQiLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJFMlAiLCJFMlciLCJNTEwiLCJTRUUiLCJFQ0giLCJFSVMiLCJMSCIsIkZPTyJdLCJ2YyI6IjdjZjg2OGYwIn0.vw-04yWGiTzZVSaGxQUGCxWXBUQXRJ0yB2ItqwvNnd7nEjMFC4d9kiDgbkzGnHgAjkiQEUqTzrM7b1z4cR6rhA';
141
- class MarkdownEditorComponent {
340
+ const LICENSE_KEY$1 = 'eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE4MDQ5ODIzOTksImp0aSI6ImJkZDU4ZGM3LTlhYzgtNDA4Mi05ZDk3LTg3Yzc0NjEzMDlmNyIsInVzYWdlRW5kcG9pbnQiOiJodHRwczovL3Byb3h5LWV2ZW50LmNrZWRpdG9yLmNvbSIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsiY2xvdWQiLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJFMlAiLCJFMlciLCJNTEwiLCJTRUUiLCJFQ0giLCJFSVMiLCJMSCIsIkZPTyJdLCJ2YyI6IjdjZjg2OGYwIn0.vw-04yWGiTzZVSaGxQUGCxWXBUQXRJ0yB2ItqwvNnd7nEjMFC4d9kiDgbkzGnHgAjkiQEUqTzrM7b1z4cR6rhA';
341
+ class MarkdownEditorStandaloneComponent {
142
342
  constructor() {
143
343
  this.Readonly = false; // Angular19 -> [disabled]
144
344
  this.Required = false;
@@ -163,7 +363,7 @@ class MarkdownEditorComponent {
163
363
  }
164
364
  initializeEditor() {
165
365
  if (!this.Editor) {
166
- loadCKEditorCloud(cloudConfig).then(this.internalInitializeEditor.bind(this));
366
+ loadCKEditorCloud(cloudConfig$1).then(this.internalInitializeEditor.bind(this));
167
367
  this.onEditorLoaded.emit();
168
368
  }
169
369
  }
@@ -205,7 +405,7 @@ class MarkdownEditorComponent {
205
405
  },
206
406
  initialData: "",
207
407
  language: 'it',
208
- licenseKey: LICENSE_KEY,
408
+ licenseKey: LICENSE_KEY$1,
209
409
  link: {
210
410
  addTargetToExternalLinks: true,
211
411
  defaultProtocol: 'https://',
@@ -275,31 +475,31 @@ class MarkdownEditorComponent {
275
475
  changed() {
276
476
  this.propagateChange(this.value);
277
477
  }
278
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: MarkdownEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
279
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: MarkdownEditorComponent, isStandalone: true, selector: "markdown-editor", inputs: { Readonly: "Readonly", Required: "Required", Validation: "Validation", MentionMarker: "MentionMarker", MentionEntities: "MentionEntities" }, outputs: { onEditorLoaded: "onEditorLoaded" }, providers: [
478
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: MarkdownEditorStandaloneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
479
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: MarkdownEditorStandaloneComponent, isStandalone: true, selector: "markdown-editor-standalone", inputs: { Readonly: "Readonly", Required: "Required", Validation: "Validation", MentionMarker: "MentionMarker", MentionEntities: "MentionEntities" }, outputs: { onEditorLoaded: "onEditorLoaded" }, providers: [
280
480
  {
281
481
  provide: NG_VALUE_ACCESSOR,
282
- useExisting: forwardRef(() => MarkdownEditorComponent),
482
+ useExisting: forwardRef(() => MarkdownEditorStandaloneComponent),
283
483
  multi: true
284
484
  },
285
485
  {
286
486
  provide: NG_VALIDATORS,
287
- useExisting: forwardRef(() => MarkdownEditorComponent),
487
+ useExisting: forwardRef(() => MarkdownEditorStandaloneComponent),
288
488
  multi: true
289
489
  }
290
490
  ], ngImport: i0, template: "<div class=\"markdown-editor\">\r\n <ckeditor *ngIf=\"Editor && EditorConfig\"\r\n [data]=\"value\"\r\n [editor]=\"Editor\"\r\n [config]=\"EditorConfig\"\r\n (change)=\"onEditorChange($event)\">\r\n </ckeditor>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap\";:root{--ck-content-font-family: \"Lato\"}@media print{body{margin:0!important}}.main-container{font-family:var(--ck-content-font-family);width:fit-content;margin-left:auto;margin-right:auto}.editor-container_classic-editor .editor-container__editor{min-width:795px;max-width:795px}.markdown-editor .ck-content{overflow-x:hidden!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CKEditorModule }, { kind: "component", type: i2.CKEditorComponent, selector: "ckeditor", inputs: ["editor", "config", "data", "tagName", "watchdog", "editorWatchdogConfig", "disableTwoWayDataBinding", "disabled"], outputs: ["ready", "change", "blur", "focus", "error"] }], encapsulation: i0.ViewEncapsulation.None }); }
291
491
  }
292
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: MarkdownEditorComponent, decorators: [{
492
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: MarkdownEditorStandaloneComponent, decorators: [{
293
493
  type: Component,
294
- args: [{ selector: "markdown-editor", standalone: true, imports: [CommonModule, FormsModule, CKEditorModule], encapsulation: ViewEncapsulation.None, providers: [
494
+ args: [{ selector: "markdown-editor-standalone", standalone: true, imports: [CommonModule, FormsModule, CKEditorModule], encapsulation: ViewEncapsulation.None, providers: [
295
495
  {
296
496
  provide: NG_VALUE_ACCESSOR,
297
- useExisting: forwardRef(() => MarkdownEditorComponent),
497
+ useExisting: forwardRef(() => MarkdownEditorStandaloneComponent),
298
498
  multi: true
299
499
  },
300
500
  {
301
501
  provide: NG_VALIDATORS,
302
- useExisting: forwardRef(() => MarkdownEditorComponent),
502
+ useExisting: forwardRef(() => MarkdownEditorStandaloneComponent),
303
503
  multi: true
304
504
  }
305
505
  ], template: "<div class=\"markdown-editor\">\r\n <ckeditor *ngIf=\"Editor && EditorConfig\"\r\n [data]=\"value\"\r\n [editor]=\"Editor\"\r\n [config]=\"EditorConfig\"\r\n (change)=\"onEditorChange($event)\">\r\n </ckeditor>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap\";:root{--ck-content-font-family: \"Lato\"}@media print{body{margin:0!important}}.main-container{font-family:var(--ck-content-font-family);width:fit-content;margin-left:auto;margin-right:auto}.editor-container_classic-editor .editor-container__editor{min-width:795px;max-width:795px}.markdown-editor .ck-content{overflow-x:hidden!important}\n"] }]
@@ -317,6 +517,136 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
317
517
  type: Output
318
518
  }] } });
319
519
 
520
+ const cloudConfig = {
521
+ version: '46.1.1',
522
+ translations: ['it']
523
+ };
524
+ const LICENSE_KEY = 'eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE4MDQ5ODIzOTksImp0aSI6ImJkZDU4ZGM3LTlhYzgtNDA4Mi05ZDk3LTg3Yzc0NjEzMDlmNyIsInVzYWdlRW5kcG9pbnQiOiJodHRwczovL3Byb3h5LWV2ZW50LmNrZWRpdG9yLmNvbSIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsiY2xvdWQiLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJFMlAiLCJFMlciLCJNTEwiLCJTRUUiLCJFQ0giLCJFSVMiLCJMSCIsIkZPTyJdLCJ2YyI6IjdjZjg2OGYwIn0.vw-04yWGiTzZVSaGxQUGCxWXBUQXRJ0yB2ItqwvNnd7nEjMFC4d9kiDgbkzGnHgAjkiQEUqTzrM7b1z4cR6rhA';
525
+ class PersistentEditor {
526
+ constructor() {
527
+ this.Mode = input.required();
528
+ this.EditorTemplate = viewChild("template");
529
+ this.DEBUG = inject(TXE_DEBUG, { optional: true }) || false;
530
+ this.Editor = null;
531
+ this.EditorConfig = null;
532
+ this.MentionMarker = "@";
533
+ this.MentionEntities = [];
534
+ }
535
+ iInitializeEditor(mentionmarker, mentionentitis) {
536
+ if (this.Editor && this.EditorConfig) {
537
+ if (this.DEBUG)
538
+ console.log("@ Persistent Editor @ Editor is already initialized");
539
+ }
540
+ else {
541
+ loadCKEditorCloud(cloudConfig).then(this.internalInitializeEditor.bind(this));
542
+ if (this.DEBUG)
543
+ console.log(`@ Persistent Editor @ Editor is initialized (${this.Mode()} mode). loadCKEditorCloud has been called`);
544
+ }
545
+ this.MentionMarker = mentionmarker ?? "@";
546
+ this.MentionEntities = mentionentitis ?? [];
547
+ if ((this.MentionEntities?.length || 0) > 0) {
548
+ if (this.DEBUG)
549
+ console.log(`@ Persistent Editor @ Editor is using ${this.MentionEntities?.length} mentions possibilities`);
550
+ }
551
+ }
552
+ internalInitializeEditor(cloudConfig) {
553
+ const { ClassicEditor,
554
+ // Plugin generali
555
+ Alignment, AutoImage, Autosave, Base64UploadAdapter, Bold, CloudServices, Essentials, Heading, ImageInline, ImageBlock, ImageInsert, ImageInsertViaUrl, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Italic, Link, List, Paragraph, PasteFromOffice,
556
+ // Plugin specifici modalità HTML
557
+ GeneralHtmlSupport, Underline, SourceEditing,
558
+ // Plugin specifici modalità Markdown
559
+ Mention, Emoji, Markdown, PasteFromMarkdownExperimental } = cloudConfig.CKEditor;
560
+ let markdownPlugins = [Mention, Emoji, Markdown, PasteFromMarkdownExperimental];
561
+ let htmlPlugins = [GeneralHtmlSupport, Underline, SourceEditing];
562
+ this.Editor = ClassicEditor;
563
+ this.EditorConfig = {
564
+ toolbar: {
565
+ items: this.Mode() == "html" ?
566
+ ['heading', '|', 'bold', 'italic', 'underline', '|', 'undo', 'redo', '|', 'insertImage', 'imageStyle:block', 'imageStyle:alignLeft', 'imageStyle:alignRight', '|', 'sourceEditing'] :
567
+ ['heading', '|', 'bold', 'italic', 'bulletedList', '|', 'undo', 'redo', '|', 'emoji'],
568
+ shouldNotGroupWhenFull: false
569
+ },
570
+ plugins: [
571
+ Alignment, AutoImage, Autosave, Base64UploadAdapter, Bold, CloudServices, Essentials,
572
+ Heading, ImageInline, ImageBlock, ImageInsert, ImageInsertViaUrl, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Italic,
573
+ Link, List, Paragraph, PasteFromOffice,
574
+ ...(this.Mode() == "html" ? htmlPlugins : markdownPlugins)
575
+ ],
576
+ heading: {
577
+ options: [
578
+ { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },
579
+ { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },
580
+ { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },
581
+ { model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },
582
+ { model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },
583
+ { model: 'heading5', view: 'h5', title: 'Heading 5', class: 'ck-heading_heading5' },
584
+ { model: 'heading6', view: 'h6', title: 'Heading 6', class: 'ck-heading_heading6' }
585
+ ]
586
+ },
587
+ htmlSupport: {
588
+ allow: [{ name: /^.*$/, styles: true, attributes: true, classes: true }]
589
+ },
590
+ image: {
591
+ toolbar: ['imageStyle:block', 'imageStyle:side', '|', 'resizeImage:original'],
592
+ insert: { type: 'auto' }
593
+ },
594
+ initialData: "",
595
+ language: 'it',
596
+ licenseKey: LICENSE_KEY,
597
+ link: {
598
+ addTargetToExternalLinks: true,
599
+ defaultProtocol: 'https://',
600
+ decorators: {
601
+ toggleDownloadable: {
602
+ mode: 'manual',
603
+ label: 'Downloadable',
604
+ attributes: { download: 'file' }
605
+ }
606
+ }
607
+ },
608
+ placeholder: 'Scrivi o incolla il tuo contenuto qui!'
609
+ };
610
+ if (this.Mode() == "markdown")
611
+ this.setupMentions();
612
+ }
613
+ setupMentions() {
614
+ if (!this.EditorConfig)
615
+ return;
616
+ this.EditorConfig.mention = {
617
+ feeds: [
618
+ {
619
+ marker: this.MentionMarker ?? "@",
620
+ feed: (filter) => {
621
+ return this.MentionEntities?.filter(t => t.id.toLowerCase().includes(filter.toLowerCase())) || [];
622
+ },
623
+ minimumCharacters: 1,
624
+ // Callback per stile
625
+ itemRenderer: (item) => {
626
+ let dropdownElement = document.createElement('div');
627
+ dropdownElement.classList.add("ck-mention-dropdown");
628
+ dropdownElement.id = `mention-list-item-id-${item.id}`;
629
+ let useridElement = document.createElement('div');
630
+ useridElement.classList.add("ck-username-id");
631
+ useridElement.textContent = `${item.id.substr(1, item.id.length)}`;
632
+ let userdescElement = document.createElement('div');
633
+ userdescElement.textContent = ` ● ${item.description}`;
634
+ dropdownElement.appendChild(useridElement);
635
+ dropdownElement.appendChild(userdescElement);
636
+ return dropdownElement;
637
+ }
638
+ },
639
+ ]
640
+ };
641
+ }
642
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PersistentEditor, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
643
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: PersistentEditor, isStandalone: true, selector: "persistent-ckeditor", inputs: { Mode: { classPropertyName: "Mode", publicName: "Mode", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "EditorTemplate", first: true, predicate: ["template"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #template let-EditorModel>\r\n <ckeditor \r\n *ngIf=\"Editor && EditorConfig\" \r\n [editor]=\"Editor\" \r\n [config]=\"EditorConfig\" \r\n [data]=\"EditorModel.value\" \r\n (change)=\"EditorModel.onEditorChange($event)\"></ckeditor>\r\n</ng-template>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap\";:root{--ck-content-font-family: \"Lato\"}@media print{body{margin:0!important}}.main-container{font-family:var(--ck-content-font-family);width:fit-content;margin-left:auto;margin-right:auto}.editor-container_classic-editor .editor-container__editor{min-width:795px;max-width:795px}.html-editor .ck-content{overflow-x:hidden!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CKEditorModule }, { kind: "component", type: i2.CKEditorComponent, selector: "ckeditor", inputs: ["editor", "config", "data", "tagName", "watchdog", "editorWatchdogConfig", "disableTwoWayDataBinding", "disabled"], outputs: ["ready", "change", "blur", "focus", "error"] }], encapsulation: i0.ViewEncapsulation.None }); }
644
+ }
645
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PersistentEditor, decorators: [{
646
+ type: Component,
647
+ args: [{ selector: "persistent-ckeditor", standalone: true, imports: [CommonModule, FormsModule, CKEditorModule], encapsulation: ViewEncapsulation.None, template: "<ng-template #template let-EditorModel>\r\n <ckeditor \r\n *ngIf=\"Editor && EditorConfig\" \r\n [editor]=\"Editor\" \r\n [config]=\"EditorConfig\" \r\n [data]=\"EditorModel.value\" \r\n (change)=\"EditorModel.onEditorChange($event)\"></ckeditor>\r\n</ng-template>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap\";:root{--ck-content-font-family: \"Lato\"}@media print{body{margin:0!important}}.main-container{font-family:var(--ck-content-font-family);width:fit-content;margin-left:auto;margin-right:auto}.editor-container_classic-editor .editor-container__editor{min-width:795px;max-width:795px}.html-editor .ck-content{overflow-x:hidden!important}\n"] }]
648
+ }] });
649
+
320
650
  /*
321
651
  * Public API Surface of text-editors
322
652
  */
@@ -325,5 +655,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
325
655
  * Generated bundle index. Do not edit.
326
656
  */
327
657
 
328
- export { HtmlEditorComponent, MarkdownEditorComponent };
658
+ export { HtmlEditorComponent, HtmlEditorStandaloneComponent, MarkdownEditorComponent, MarkdownEditorStandaloneComponent, PersistentEditor, TXE_DEBUG };
329
659
  //# sourceMappingURL=esfaenza-text-editors.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"esfaenza-text-editors.mjs","sources":["../../../projects/text-editors/src/lib/html-editor/html-editor.component.ts","../../../projects/text-editors/src/lib/html-editor/html-editor.component.html","../../../projects/text-editors/src/lib/markdown-editor/markdown-editor.component.ts","../../../projects/text-editors/src/lib/markdown-editor/markdown-editor.component.html","../../../projects/text-editors/src/public-api.ts","../../../projects/text-editors/src/esfaenza-text-editors.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, ViewEncapsulation, forwardRef } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from \"@angular/forms\";\r\nimport { loadCKEditorCloud, CKEditorModule, type CKEditorCloudResult, type CKEditorCloudConfig } from '@ckeditor/ckeditor5-angular';\r\n\r\nimport { EditorConfig } from \"ckeditor5\"\r\n\r\nconst cloudConfig = {\r\n version: '46.1.1',\r\n translations: ['it']\r\n} satisfies CKEditorCloudConfig;\r\n\r\nconst LICENSE_KEY = 'eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE4MDQ5ODIzOTksImp0aSI6ImJkZDU4ZGM3LTlhYzgtNDA4Mi05ZDk3LTg3Yzc0NjEzMDlmNyIsInVzYWdlRW5kcG9pbnQiOiJodHRwczovL3Byb3h5LWV2ZW50LmNrZWRpdG9yLmNvbSIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsiY2xvdWQiLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJFMlAiLCJFMlciLCJNTEwiLCJTRUUiLCJFQ0giLCJFSVMiLCJMSCIsIkZPTyJdLCJ2YyI6IjdjZjg2OGYwIn0.vw-04yWGiTzZVSaGxQUGCxWXBUQXRJ0yB2ItqwvNnd7nEjMFC4d9kiDgbkzGnHgAjkiQEUqTzrM7b1z4cR6rhA';\r\n\r\n@Component({\r\n selector: \"html-editor\",\r\n templateUrl: \"./html-editor.component.html\",\r\n styleUrls: [\"./html-editor.component.scss\"],\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, CKEditorModule],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => HtmlEditorComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => HtmlEditorComponent), multi: true }\r\n ]\r\n})\r\nexport class HtmlEditorComponent implements ControlValueAccessor, Validator {\r\n @Input() Readonly: boolean = false; // Angular19 -> [disabled]\r\n @Input() Required: boolean = false;\r\n @Input() Validation: boolean = false;\r\n\r\n @Output() onEditorLoaded: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public value: string;\r\n\r\n public initializeEditor() {\r\n if (!this.Editor) {\r\n loadCKEditorCloud(cloudConfig).then(this.internalInitializeEditor.bind(this));\r\n this.onEditorLoaded.emit();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n console.warn(\"Il componente HtmlEditorComponent è stato distrutto\");\r\n }\r\n\r\n //#region CKEditor5\r\n public Editor: any = null;\r\n public EditorConfig: EditorConfig = null;\r\n public EditorModel = { editorDataText: '', };\r\n\r\n private internalInitializeEditor(cloudConfig: CKEditorCloudResult<CKEditorCloudConfig>) {\r\n const {\r\n ClassicEditor,\r\n /* Plugins */\r\n Alignment, AutoImage, Autosave, Base64UploadAdapter, Bold, CloudServices, Essentials, GeneralHtmlSupport,\r\n Heading, ImageInline, ImageBlock, ImageInsert, ImageInsertViaUrl, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Italic,\r\n Link, List, Paragraph, PasteFromOffice, Underline, SourceEditing\r\n } = cloudConfig.CKEditor;\r\n\r\n this.Editor = ClassicEditor;\r\n this.EditorConfig = {\r\n toolbar: {\r\n items: ['heading', '|', 'bold', 'italic', 'underline', '|', 'undo', 'redo', '|', 'insertImage', 'imageStyle:block', 'imageStyle:alignLeft', 'imageStyle:alignRight', '|', 'sourceEditing'],\r\n shouldNotGroupWhenFull: false\r\n },\r\n plugins: [\r\n Alignment, AutoImage, Autosave, Base64UploadAdapter, Bold, CloudServices, Essentials, GeneralHtmlSupport,\r\n Heading, ImageInline, ImageBlock, ImageInsert, ImageInsertViaUrl, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Italic,\r\n Link, List, Paragraph, PasteFromOffice, Underline, SourceEditing\r\n ],\r\n heading: {\r\n options: [\r\n { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },\r\n { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },\r\n { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },\r\n { model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },\r\n { model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },\r\n { model: 'heading5', view: 'h5', title: 'Heading 5', class: 'ck-heading_heading5' },\r\n { model: 'heading6', view: 'h6', title: 'Heading 6', class: 'ck-heading_heading6' }\r\n ]\r\n },\r\n htmlSupport: {\r\n allow: [{ name: /^.*$/, styles: true, attributes: true, classes: true }]\r\n },\r\n image: {\r\n toolbar: ['imageStyle:block', 'imageStyle:side', '|', 'resizeImage:original'],\r\n insert: { type: 'auto' }\r\n },\r\n initialData: \"\",\r\n language: 'it',\r\n licenseKey: LICENSE_KEY,\r\n link: {\r\n addTargetToExternalLinks: true,\r\n defaultProtocol: 'https://',\r\n decorators: {\r\n toggleDownloadable: {\r\n mode: 'manual',\r\n label: 'Downloadable',\r\n attributes: { download: 'file' }\r\n }\r\n }\r\n },\r\n placeholder: 'Scrivi o incolla il tuo contenuto qui!'\r\n };\r\n }\r\n\r\n public onEditorChange({ editor }) {\r\n let data = editor?.getData();\r\n\r\n if (data !== undefined)\r\n this.propagateChange(data);\r\n }\r\n //#endregion\r\n\r\n //#region Forms\r\n onTouched = () => { };\r\n propagateChange = (_: any) => { };\r\n\r\n public registerOnChange(fn): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public writeValue(obj): void {\r\n if (obj !== undefined) {\r\n this.value = obj;\r\n } else\r\n this.value = \"\";\r\n }\r\n\r\n validate(c: FormControl): any {\r\n if (this.value || this.Readonly || !this.Required)\r\n return null;\r\n\r\n return null;\r\n }\r\n\r\n changed() {\r\n this.propagateChange(this.value);\r\n }\r\n //#endregion\r\n}","<div class=\"html-editor\">\r\n <ckeditor *ngIf=\"Editor && EditorConfig\"\r\n [data]=\"value\"\r\n [editor]=\"Editor\"\r\n [config]=\"EditorConfig\"\r\n (change)=\"onEditorChange($event)\">\r\n </ckeditor>\r\n <div *ngIf=\"!Editor && !EditorConfig\">\r\n Editor in caricamento...\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, Output, ViewEncapsulation, forwardRef } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from \"@angular/forms\";\r\nimport { loadCKEditorCloud, CKEditorModule, type CKEditorCloudResult, type CKEditorCloudConfig } from '@ckeditor/ckeditor5-angular';\r\n\r\nimport { EditorConfig } from \"ckeditor5\"\r\n\r\nconst cloudConfig = {\r\n version: '46.1.1',\r\n translations: ['it']\r\n} satisfies CKEditorCloudConfig;\r\n\r\nconst LICENSE_KEY = 'eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE4MDQ5ODIzOTksImp0aSI6ImJkZDU4ZGM3LTlhYzgtNDA4Mi05ZDk3LTg3Yzc0NjEzMDlmNyIsInVzYWdlRW5kcG9pbnQiOiJodHRwczovL3Byb3h5LWV2ZW50LmNrZWRpdG9yLmNvbSIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsiY2xvdWQiLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJFMlAiLCJFMlciLCJNTEwiLCJTRUUiLCJFQ0giLCJFSVMiLCJMSCIsIkZPTyJdLCJ2YyI6IjdjZjg2OGYwIn0.vw-04yWGiTzZVSaGxQUGCxWXBUQXRJ0yB2ItqwvNnd7nEjMFC4d9kiDgbkzGnHgAjkiQEUqTzrM7b1z4cR6rhA';\r\n\r\n@Component({\r\n selector: \"markdown-editor\",\r\n templateUrl: \"./markdown-editor.component.html\",\r\n styleUrls: [\"./markdown-editor.component.scss\"],\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, CKEditorModule],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MarkdownEditorComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => MarkdownEditorComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class MarkdownEditorComponent implements ControlValueAccessor, Validator {\r\n @Input() Readonly: boolean = false; // Angular19 -> [disabled]\r\n @Input() Required: boolean = false;\r\n @Input() Validation: boolean = false;\r\n\r\n // Mention\r\n @Input() MentionMarker: string = \"@\";\r\n @Input() MentionEntities: { id: string, description: string }[] = [];\r\n\r\n @Output() onEditorLoaded: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n private get mentionEntities() {\r\n return this.MentionEntities.map(m => {\r\n return { id: this.MentionMarker + m.id, description: m.description }\r\n });\r\n }\r\n\r\n public value: string;\r\n\r\n public initializeEditor() {\r\n if (!this.Editor) {\r\n loadCKEditorCloud(cloudConfig).then(this.internalInitializeEditor.bind(this));\r\n this.onEditorLoaded.emit();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n console.warn(\"Il componente MarkdownEditorComponent è stato distrutto\");\r\n }\r\n\r\n //#region CKEditor5\r\n public Editor: any = null;\r\n public EditorConfig: EditorConfig = null;\r\n public EditorModel = { editorDataText: '', };\r\n\r\n private internalInitializeEditor(cloudConfig: CKEditorCloudResult<CKEditorCloudConfig>) {\r\n const {\r\n ClassicEditor,\r\n /* Plugins */\r\n Alignment, AutoImage, Autosave, Base64UploadAdapter, Bold, CloudServices, Essentials, Heading,\r\n ImageInline, ImageBlock, ImageInsert, ImageInsertViaUrl, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Italic,\r\n Link, List, Paragraph, PasteFromOffice, Mention, Emoji, Markdown, PasteFromMarkdownExperimental\r\n } = cloudConfig.CKEditor;\r\n\r\n this.Editor = ClassicEditor;\r\n this.EditorConfig = {\r\n toolbar: {\r\n items: ['heading', '|', 'bold', 'italic', 'bulletedList', '|', 'undo', 'redo', '|', 'emoji'],\r\n shouldNotGroupWhenFull: false\r\n },\r\n plugins: [\r\n Alignment, AutoImage, Autosave, Base64UploadAdapter, Bold, CloudServices, Essentials, Heading,\r\n ImageInline, ImageBlock, ImageInsert, ImageInsertViaUrl, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Italic,\r\n Link, List, Paragraph, PasteFromOffice, Mention, Emoji, Markdown, PasteFromMarkdownExperimental\r\n ],\r\n heading: {\r\n options: [\r\n { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },\r\n { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },\r\n { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },\r\n { model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },\r\n { model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },\r\n { model: 'heading5', view: 'h5', title: 'Heading 5', class: 'ck-heading_heading5' },\r\n { model: 'heading6', view: 'h6', title: 'Heading 6', class: 'ck-heading_heading6' }\r\n ]\r\n },\r\n htmlSupport: {\r\n allow: [{ name: /^.*$/, styles: true, attributes: true, classes: true }]\r\n },\r\n image: {\r\n toolbar: ['imageStyle:block', 'imageStyle:side', '|', 'resizeImage:original'],\r\n insert: { type: 'auto' }\r\n },\r\n initialData: \"\",\r\n language: 'it',\r\n licenseKey: LICENSE_KEY,\r\n link: {\r\n addTargetToExternalLinks: true,\r\n defaultProtocol: 'https://',\r\n decorators: {\r\n toggleDownloadable: {\r\n mode: 'manual',\r\n label: 'Downloadable',\r\n attributes: { download: 'file' }\r\n }\r\n }\r\n },\r\n placeholder: 'Scrivi o incolla il tuo contenuto qui!'\r\n };\r\n\r\n // Attivo le Mention se sono presenti \"MentionEntities\"\r\n // \"Mention\" serve sempre per \"Emoji\"\r\n if (this.MentionEntities?.length > 0) {\r\n this.EditorConfig.mention = {\r\n feeds: [\r\n {\r\n marker: this.MentionMarker,\r\n feed: (filter: string) => {\r\n return this.mentionEntities.filter(t => t.id.toLowerCase().includes(filter.toLowerCase()));\r\n },\r\n minimumCharacters: 1,\r\n // Callback per stile\r\n itemRenderer: (item) => {\r\n let dropdownElement = document.createElement('div');\r\n dropdownElement.classList.add(\"ck-mention-dropdown\");\r\n dropdownElement.id = `mention-list-item-id-${item.id}`;\r\n\r\n let useridElement = document.createElement('div');\r\n useridElement.classList.add(\"ck-username-id\");\r\n useridElement.textContent = `${item.id.substr(1, item.id.length)}`;\r\n\r\n let userdescElement = document.createElement('div');\r\n userdescElement.textContent = ` ● ${(<any>item).description}`;\r\n\r\n dropdownElement.appendChild(useridElement);\r\n dropdownElement.appendChild(userdescElement);\r\n return dropdownElement;\r\n }\r\n },\r\n ]\r\n };\r\n }\r\n }\r\n\r\n public onEditorChange({ editor }) {\r\n let data = editor?.getData();\r\n\r\n if (data !== undefined)\r\n this.propagateChange(data);\r\n }\r\n //#endregion\r\n\r\n //#region Forms\r\n onTouched = () => { };\r\n propagateChange = (_: any) => { };\r\n\r\n public registerOnChange(fn): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public writeValue(obj): void {\r\n if (obj !== undefined) {\r\n this.value = obj;\r\n } else\r\n this.value = \"\";\r\n }\r\n\r\n validate(c: FormControl): any {\r\n if (this.value || this.Readonly || !this.Required)\r\n return null;\r\n\r\n return null;\r\n }\r\n\r\n changed() {\r\n this.propagateChange(this.value);\r\n }\r\n //#endregion\r\n}","<div class=\"markdown-editor\">\r\n <ckeditor *ngIf=\"Editor && EditorConfig\"\r\n [data]=\"value\"\r\n [editor]=\"Editor\"\r\n [config]=\"EditorConfig\"\r\n (change)=\"onEditorChange($event)\">\r\n </ckeditor>\r\n</div>","/*\r\n * Public API Surface of text-editors\r\n */\r\n\r\nexport * from './lib/html-editor/html-editor.component';\r\nexport * from './lib/markdown-editor/markdown-editor.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["cloudConfig","LICENSE_KEY"],"mappings":"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"}
1
+ {"version":3,"file":"esfaenza-text-editors.mjs","sources":["../../../projects/text-editors/src/lib/tokens.ts","../../../projects/text-editors/src/lib/html-editor/html-editor.component.ts","../../../projects/text-editors/src/lib/html-editor/html-editor.component.html","../../../projects/text-editors/src/lib/markdown-editor/markdown-editor.component.ts","../../../projects/text-editors/src/lib/markdown-editor/markdown-editor.component.html","../../../projects/text-editors/src/lib/standalone/html-editor/html-editor-standalone.component.ts","../../../projects/text-editors/src/lib/standalone/html-editor/html-editor-standalone.component.html","../../../projects/text-editors/src/lib/standalone/markdown-editor/markdown-editor-standalone.component.ts","../../../projects/text-editors/src/lib/standalone/markdown-editor/markdown-editor-standalone.component.html","../../../projects/text-editors/src/lib/persistent-editor/persistent-editor.component.ts","../../../projects/text-editors/src/lib/persistent-editor/persistent-editor.component.html","../../../projects/text-editors/src/public-api.ts","../../../projects/text-editors/src/esfaenza-text-editors.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const TXE_DEBUG = new InjectionToken<boolean>('TXE_DEBUG');","import { Component, EventEmitter, Input, Output, ViewEncapsulation, forwardRef, inject } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from \"@angular/forms\";\r\nimport { CKEditorModule } from '@ckeditor/ckeditor5-angular';\r\n\r\nimport { PersistentEditor } from \"../persistent-editor/persistent-editor.component\";\r\nimport { TXE_DEBUG } from \"../tokens\";\r\n\r\n@Component({\r\n selector: \"html-editor\",\r\n templateUrl: \"./html-editor.component.html\",\r\n styleUrls: [\"./html-editor.component.scss\"],\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, CKEditorModule],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => HtmlEditorComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => HtmlEditorComponent), multi: true }\r\n ]\r\n})\r\nexport class HtmlEditorComponent implements ControlValueAccessor, Validator {\r\n\r\n @Input() PersistentEditor?: PersistentEditor;\r\n\r\n @Input() Readonly: boolean = false; // Angular19 -> [disabled]\r\n @Input() Required: boolean = false;\r\n @Input() Validation: boolean = false;\r\n\r\n @Output() onEditorLoaded: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public EditorModel: { value: string, onEditorChange: any } | null = null;\r\n\r\n private DEBUG = inject(TXE_DEBUG, { optional: true }) || false;\r\n\r\n public initializeEditor() {\r\n if (!this.PersistentEditor)\r\n {\r\n if(this.DEBUG) \r\n console.error(\"@ HTML-Editor @: Impossibile inizializzare l'editor HTML senza PersistentEditor\");\r\n }\r\n else\r\n this.PersistentEditor?.iInitializeEditor();\r\n }\r\n\r\n ngOnInit() {\r\n if(this.DEBUG) console.info(\"@ HTML-Editor @: Il componente HtmlEditorComponent è stato creato\");\r\n }\r\n\r\n ngOnDestroy() {\r\n if(this.DEBUG) console.info(\"@ HTML-Editor @: Il componente HtmlEditorComponent è stato distrutto\");\r\n }\r\n\r\n //#region Forms\r\n onTouched = () => { };\r\n propagateChange = (_: any) => { };\r\n\r\n public registerOnChange(fn: (_: any) => {}): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: () => {}): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public writeValue(obj: string): void {\r\n let value = \"\";\r\n\r\n if (obj !== undefined)\r\n value = obj;\r\n\r\n if(this.DEBUG) console.log(\"@ HTML-Editor @: Writevalue pre-refresh: \" + value);\r\n\r\n if(value === this.EditorModel?.value){\r\n if(this.DEBUG) console.log(\"@ HTML-Editor @: Writevalue ridondante\")\r\n return;\r\n }\r\n\r\n this.EditorModel = null;\r\n requestAnimationFrame(() => {\r\n if(this.DEBUG) console.log(\"@ HTML-Editor @: Writevalue post-refresh: \" + value)\r\n this.EditorModel = { value: value, onEditorChange: this.onEditorChange.bind(this) }\r\n });\r\n }\r\n\r\n validate(c: FormControl): any {\r\n let ret = null;\r\n\r\n if (this.EditorModel?.value || this.Readonly || !this.Required)\r\n ret = null;\r\n\r\n ret = null;\r\n\r\n if(this.DEBUG) console.log(\"@ HTML-Editor @: Validate post-validate: \" + ret)\r\n return ret;\r\n }\r\n\r\n onEditorChange({editor}){\r\n if(!this.EditorModel)\r\n return;\r\n\r\n let data = editor?.getData();\r\n if(this.DEBUG) console.log(\"@ HTML-Editor @: changed: \" + data)\r\n this.propagateChange(data);\r\n }\r\n //#endregion\r\n}","<div class=\"html-editor\" *ngIf=\"EditorModel && PersistentEditor\">\r\n <ng-content *ngIf=\"PersistentEditor.EditorTemplate()\">\r\n <ng-content *ngTemplateOutlet=\"PersistentEditor.EditorTemplate(); context: {$implicit: EditorModel}\"></ng-content>\r\n </ng-content>\r\n</div>","import { Component, EventEmitter, Input, Output, ViewEncapsulation, forwardRef, inject } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from \"@angular/forms\";\r\nimport { CKEditorModule } from '@ckeditor/ckeditor5-angular';\r\n\r\nimport { PersistentEditor } from \"../persistent-editor/persistent-editor.component\";\r\nimport { TXE_DEBUG } from \"../tokens\";\r\n\r\n@Component({\r\n selector: \"markdown-editor\",\r\n templateUrl: \"./markdown-editor.component.html\",\r\n styleUrls: [\"./markdown-editor.component.scss\"],\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, CKEditorModule],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MarkdownEditorComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => MarkdownEditorComponent), multi: true }\r\n ]\r\n})\r\nexport class MarkdownEditorComponent implements ControlValueAccessor, Validator {\r\n\r\n @Input() PersistentEditor?: PersistentEditor;\r\n\r\n @Input() Readonly: boolean = false; // Angular19 -> [disabled]\r\n @Input() Required: boolean = false;\r\n @Input() Validation: boolean = false;\r\n\r\n // Mention\r\n @Input() MentionMarker: string = \"@\";\r\n @Input() MentionEntities: { id: string, description: string }[] = [];\r\n\r\n @Output() onEditorLoaded: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n private DEBUG = inject(TXE_DEBUG, { optional: true }) || false;\r\n\r\n private get NormalizedMentionEntities() {\r\n return this.MentionEntities.map(m => {\r\n return { id: this.MentionMarker + m.id, description: m.description }\r\n });\r\n }\r\n\r\n public EditorModel: { value: string, onEditorChange: any } | null = null;\r\n\r\n public initializeEditor() {\r\n if (!this.PersistentEditor) {\r\n if (this.DEBUG) console.error(\"@ Markdown-Editor @: Impossibile inizializzare l'editor HTML senza PersistentEditor\");\r\n }\r\n else\r\n this.PersistentEditor?.iInitializeEditor(this.MentionMarker, this.NormalizedMentionEntities);\r\n }\r\n\r\n ngOnInit() {\r\n if (this.DEBUG) console.info(\"@ Markdown-Editor @: Il componente MarkdownEditor è stato creato\");\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.DEBUG) console.info(\"@ Markdown-Editor @: Il componente MarkdownEditor è stato distrutto\");\r\n }\r\n\r\n //#region Forms\r\n onTouched = () => { };\r\n propagateChange = (_: any) => { };\r\n\r\n public registerOnChange(fn: (_: any) => {}): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: () => {}): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public writeValue(obj: string): void {\r\n let value = \"\";\r\n\r\n if (obj !== undefined)\r\n value = obj;\r\n\r\n if (this.DEBUG) console.log(\"@ Markdown-Editor @: Writevalue pre-refresh: \" + value);\r\n\r\n if (value === this.EditorModel?.value) {\r\n if (this.DEBUG) console.log(\"@ Markdown-Editor @: Writevalue ridondante\")\r\n return;\r\n }\r\n\r\n this.EditorModel = null;\r\n requestAnimationFrame(() => {\r\n if (this.DEBUG) console.log(\"@ Markdown-Editor @: Writevalue post-refresh: \" + value)\r\n this.EditorModel = { value: value, onEditorChange: this.onEditorChange.bind(this) }\r\n });\r\n }\r\n\r\n validate(c: FormControl): any {\r\n let ret = null;\r\n\r\n if (this.EditorModel?.value || this.Readonly || !this.Required)\r\n ret = null;\r\n\r\n ret = null;\r\n\r\n if (this.DEBUG) console.log(\"@ Markdown-Editor @: Validate post-validate: \" + ret)\r\n return ret;\r\n }\r\n\r\n onEditorChange({ editor }) {\r\n if (!this.EditorModel)\r\n return;\r\n\r\n let data = editor?.getData();\r\n if (this.DEBUG) console.log(\"@ Markdown-Editor @: changed: \" + data)\r\n this.propagateChange(data);\r\n }\r\n //#endregion\r\n}","<div class=\"html-editor\" *ngIf=\"EditorModel && PersistentEditor\">\r\n <ng-content *ngIf=\"PersistentEditor.EditorTemplate()\">\r\n <ng-content *ngTemplateOutlet=\"PersistentEditor.EditorTemplate(); context: {$implicit: EditorModel}\"></ng-content>\r\n </ng-content>\r\n</div>","import { Component, EventEmitter, Input, Output, ViewEncapsulation, forwardRef } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from \"@angular/forms\";\r\nimport { loadCKEditorCloud, CKEditorModule, type CKEditorCloudResult, type CKEditorCloudConfig } from '@ckeditor/ckeditor5-angular';\r\n\r\nimport { EditorConfig } from \"ckeditor5\"\r\n\r\nconst cloudConfig = {\r\n version: '46.1.1',\r\n translations: ['it']\r\n} satisfies CKEditorCloudConfig;\r\n\r\nconst LICENSE_KEY = 'eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE4MDQ5ODIzOTksImp0aSI6ImJkZDU4ZGM3LTlhYzgtNDA4Mi05ZDk3LTg3Yzc0NjEzMDlmNyIsInVzYWdlRW5kcG9pbnQiOiJodHRwczovL3Byb3h5LWV2ZW50LmNrZWRpdG9yLmNvbSIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsiY2xvdWQiLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJFMlAiLCJFMlciLCJNTEwiLCJTRUUiLCJFQ0giLCJFSVMiLCJMSCIsIkZPTyJdLCJ2YyI6IjdjZjg2OGYwIn0.vw-04yWGiTzZVSaGxQUGCxWXBUQXRJ0yB2ItqwvNnd7nEjMFC4d9kiDgbkzGnHgAjkiQEUqTzrM7b1z4cR6rhA';\r\n\r\n@Component({\r\n selector: \"html-editor-standalone\",\r\n templateUrl: \"./html-editor-standalone.component.html\",\r\n styleUrls: [\"./html-editor-standalone.component.scss\"],\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, CKEditorModule],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => HtmlEditorStandaloneComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => HtmlEditorStandaloneComponent), multi: true }\r\n ]\r\n})\r\nexport class HtmlEditorStandaloneComponent implements ControlValueAccessor, Validator {\r\n @Input() Readonly: boolean = false; // Angular19 -> [disabled]\r\n @Input() Required: boolean = false;\r\n @Input() Validation: boolean = false;\r\n\r\n @Output() onEditorLoaded: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public value: string;\r\n\r\n public initializeEditor() {\r\n if (!this.Editor) {\r\n loadCKEditorCloud(cloudConfig).then(this.internalInitializeEditor.bind(this));\r\n this.onEditorLoaded.emit();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n console.warn(\"Il componente HtmlEditorComponent è stato distrutto\");\r\n }\r\n\r\n //#region CKEditor5\r\n public Editor: any = null;\r\n public EditorConfig: EditorConfig = null;\r\n public EditorModel = { editorDataText: '', };\r\n\r\n private internalInitializeEditor(cloudConfig: CKEditorCloudResult<CKEditorCloudConfig>) {\r\n const {\r\n ClassicEditor,\r\n /* Plugins */\r\n Alignment, AutoImage, Autosave, Base64UploadAdapter, Bold, CloudServices, Essentials, GeneralHtmlSupport,\r\n Heading, ImageInline, ImageBlock, ImageInsert, ImageInsertViaUrl, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Italic,\r\n Link, List, Paragraph, PasteFromOffice, Underline, SourceEditing\r\n } = cloudConfig.CKEditor;\r\n\r\n this.Editor = ClassicEditor;\r\n this.EditorConfig = {\r\n toolbar: {\r\n items: ['heading', '|', 'bold', 'italic', 'underline', '|', 'undo', 'redo', '|', 'insertImage', 'imageStyle:block', 'imageStyle:alignLeft', 'imageStyle:alignRight', '|', 'sourceEditing'],\r\n shouldNotGroupWhenFull: false\r\n },\r\n plugins: [\r\n Alignment, AutoImage, Autosave, Base64UploadAdapter, Bold, CloudServices, Essentials, GeneralHtmlSupport,\r\n Heading, ImageInline, ImageBlock, ImageInsert, ImageInsertViaUrl, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Italic,\r\n Link, List, Paragraph, PasteFromOffice, Underline, SourceEditing\r\n ],\r\n heading: {\r\n options: [\r\n { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },\r\n { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },\r\n { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },\r\n { model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },\r\n { model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },\r\n { model: 'heading5', view: 'h5', title: 'Heading 5', class: 'ck-heading_heading5' },\r\n { model: 'heading6', view: 'h6', title: 'Heading 6', class: 'ck-heading_heading6' }\r\n ]\r\n },\r\n htmlSupport: {\r\n allow: [{ name: /^.*$/, styles: true, attributes: true, classes: true }]\r\n },\r\n image: {\r\n toolbar: ['imageStyle:block', 'imageStyle:side', '|', 'resizeImage:original'],\r\n insert: { type: 'auto' }\r\n },\r\n initialData: \"\",\r\n language: 'it',\r\n licenseKey: LICENSE_KEY,\r\n link: {\r\n addTargetToExternalLinks: true,\r\n defaultProtocol: 'https://',\r\n decorators: {\r\n toggleDownloadable: {\r\n mode: 'manual',\r\n label: 'Downloadable',\r\n attributes: { download: 'file' }\r\n }\r\n }\r\n },\r\n placeholder: 'Scrivi o incolla il tuo contenuto qui!'\r\n };\r\n }\r\n\r\n public onEditorChange({ editor }) {\r\n let data = editor?.getData();\r\n\r\n if (data !== undefined)\r\n this.propagateChange(data);\r\n }\r\n //#endregion\r\n\r\n //#region Forms\r\n onTouched = () => { };\r\n propagateChange = (_: any) => { };\r\n\r\n public registerOnChange(fn): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public writeValue(obj): void {\r\n if (obj !== undefined) {\r\n this.value = obj;\r\n } else\r\n this.value = \"\";\r\n }\r\n\r\n validate(c: FormControl): any {\r\n if (this.value || this.Readonly || !this.Required)\r\n return null;\r\n\r\n return null;\r\n }\r\n\r\n changed() {\r\n this.propagateChange(this.value);\r\n }\r\n //#endregion\r\n}","<div class=\"html-editor\">\r\n <ckeditor *ngIf=\"Editor && EditorConfig\"\r\n [data]=\"value\"\r\n [editor]=\"Editor\"\r\n [config]=\"EditorConfig\"\r\n (change)=\"onEditorChange($event)\">\r\n </ckeditor>\r\n <div *ngIf=\"!Editor && !EditorConfig\">\r\n Editor in caricamento...\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, Output, ViewEncapsulation, forwardRef } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from \"@angular/forms\";\r\nimport { loadCKEditorCloud, CKEditorModule, type CKEditorCloudResult, type CKEditorCloudConfig } from '@ckeditor/ckeditor5-angular';\r\n\r\nimport { EditorConfig } from \"ckeditor5\"\r\n\r\nconst cloudConfig = {\r\n version: '46.1.1',\r\n translations: ['it']\r\n} satisfies CKEditorCloudConfig;\r\n\r\nconst LICENSE_KEY = 'eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE4MDQ5ODIzOTksImp0aSI6ImJkZDU4ZGM3LTlhYzgtNDA4Mi05ZDk3LTg3Yzc0NjEzMDlmNyIsInVzYWdlRW5kcG9pbnQiOiJodHRwczovL3Byb3h5LWV2ZW50LmNrZWRpdG9yLmNvbSIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsiY2xvdWQiLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJFMlAiLCJFMlciLCJNTEwiLCJTRUUiLCJFQ0giLCJFSVMiLCJMSCIsIkZPTyJdLCJ2YyI6IjdjZjg2OGYwIn0.vw-04yWGiTzZVSaGxQUGCxWXBUQXRJ0yB2ItqwvNnd7nEjMFC4d9kiDgbkzGnHgAjkiQEUqTzrM7b1z4cR6rhA';\r\n\r\n@Component({\r\n selector: \"markdown-editor-standalone\",\r\n templateUrl: \"./markdown-editor-standalone.component.html\",\r\n styleUrls: [\"./markdown-editor-standalone.component.scss\"],\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, CKEditorModule],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MarkdownEditorStandaloneComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => MarkdownEditorStandaloneComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class MarkdownEditorStandaloneComponent implements ControlValueAccessor, Validator {\r\n @Input() Readonly: boolean = false; // Angular19 -> [disabled]\r\n @Input() Required: boolean = false;\r\n @Input() Validation: boolean = false;\r\n\r\n // Mention\r\n @Input() MentionMarker: string = \"@\";\r\n @Input() MentionEntities: { id: string, description: string }[] = [];\r\n\r\n @Output() onEditorLoaded: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n private get mentionEntities() {\r\n return this.MentionEntities.map(m => {\r\n return { id: this.MentionMarker + m.id, description: m.description }\r\n });\r\n }\r\n\r\n public value: string;\r\n\r\n public initializeEditor() {\r\n if (!this.Editor) {\r\n loadCKEditorCloud(cloudConfig).then(this.internalInitializeEditor.bind(this));\r\n this.onEditorLoaded.emit();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n console.warn(\"Il componente MarkdownEditorComponent è stato distrutto\");\r\n }\r\n\r\n //#region CKEditor5\r\n public Editor: any = null;\r\n public EditorConfig: EditorConfig = null;\r\n public EditorModel = { editorDataText: '', };\r\n\r\n private internalInitializeEditor(cloudConfig: CKEditorCloudResult<CKEditorCloudConfig>) {\r\n const {\r\n ClassicEditor,\r\n /* Plugins */\r\n Alignment, AutoImage, Autosave, Base64UploadAdapter, Bold, CloudServices, Essentials, Heading,\r\n ImageInline, ImageBlock, ImageInsert, ImageInsertViaUrl, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Italic,\r\n Link, List, Paragraph, PasteFromOffice, Mention, Emoji, Markdown, PasteFromMarkdownExperimental\r\n } = cloudConfig.CKEditor;\r\n\r\n this.Editor = ClassicEditor;\r\n this.EditorConfig = {\r\n toolbar: {\r\n items: ['heading', '|', 'bold', 'italic', 'bulletedList', '|', 'undo', 'redo', '|', 'emoji'],\r\n shouldNotGroupWhenFull: false\r\n },\r\n plugins: [\r\n Alignment, AutoImage, Autosave, Base64UploadAdapter, Bold, CloudServices, Essentials, Heading,\r\n ImageInline, ImageBlock, ImageInsert, ImageInsertViaUrl, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Italic,\r\n Link, List, Paragraph, PasteFromOffice, Mention, Emoji, Markdown, PasteFromMarkdownExperimental\r\n ],\r\n heading: {\r\n options: [\r\n { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },\r\n { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },\r\n { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },\r\n { model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },\r\n { model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },\r\n { model: 'heading5', view: 'h5', title: 'Heading 5', class: 'ck-heading_heading5' },\r\n { model: 'heading6', view: 'h6', title: 'Heading 6', class: 'ck-heading_heading6' }\r\n ]\r\n },\r\n htmlSupport: {\r\n allow: [{ name: /^.*$/, styles: true, attributes: true, classes: true }]\r\n },\r\n image: {\r\n toolbar: ['imageStyle:block', 'imageStyle:side', '|', 'resizeImage:original'],\r\n insert: { type: 'auto' }\r\n },\r\n initialData: \"\",\r\n language: 'it',\r\n licenseKey: LICENSE_KEY,\r\n link: {\r\n addTargetToExternalLinks: true,\r\n defaultProtocol: 'https://',\r\n decorators: {\r\n toggleDownloadable: {\r\n mode: 'manual',\r\n label: 'Downloadable',\r\n attributes: { download: 'file' }\r\n }\r\n }\r\n },\r\n placeholder: 'Scrivi o incolla il tuo contenuto qui!'\r\n };\r\n\r\n // Attivo le Mention se sono presenti \"MentionEntities\"\r\n // \"Mention\" serve sempre per \"Emoji\"\r\n if (this.MentionEntities?.length > 0) {\r\n this.EditorConfig.mention = {\r\n feeds: [\r\n {\r\n marker: this.MentionMarker,\r\n feed: (filter: string) => {\r\n return this.mentionEntities.filter(t => t.id.toLowerCase().includes(filter.toLowerCase()));\r\n },\r\n minimumCharacters: 1,\r\n // Callback per stile\r\n itemRenderer: (item) => {\r\n let dropdownElement = document.createElement('div');\r\n dropdownElement.classList.add(\"ck-mention-dropdown\");\r\n dropdownElement.id = `mention-list-item-id-${item.id}`;\r\n\r\n let useridElement = document.createElement('div');\r\n useridElement.classList.add(\"ck-username-id\");\r\n useridElement.textContent = `${item.id.substr(1, item.id.length)}`;\r\n\r\n let userdescElement = document.createElement('div');\r\n userdescElement.textContent = ` ● ${(<any>item).description}`;\r\n\r\n dropdownElement.appendChild(useridElement);\r\n dropdownElement.appendChild(userdescElement);\r\n return dropdownElement;\r\n }\r\n },\r\n ]\r\n };\r\n }\r\n }\r\n\r\n public onEditorChange({ editor }) {\r\n let data = editor?.getData();\r\n\r\n if (data !== undefined)\r\n this.propagateChange(data);\r\n }\r\n //#endregion\r\n\r\n //#region Forms\r\n onTouched = () => { };\r\n propagateChange = (_: any) => { };\r\n\r\n public registerOnChange(fn): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public writeValue(obj): void {\r\n if (obj !== undefined) {\r\n this.value = obj;\r\n } else\r\n this.value = \"\";\r\n }\r\n\r\n validate(c: FormControl): any {\r\n if (this.value || this.Readonly || !this.Required)\r\n return null;\r\n\r\n return null;\r\n }\r\n\r\n changed() {\r\n this.propagateChange(this.value);\r\n }\r\n //#endregion\r\n}","<div class=\"markdown-editor\">\r\n <ckeditor *ngIf=\"Editor && EditorConfig\"\r\n [data]=\"value\"\r\n [editor]=\"Editor\"\r\n [config]=\"EditorConfig\"\r\n (change)=\"onEditorChange($event)\">\r\n </ckeditor>\r\n</div>","import { Component, TemplateRef, ViewEncapsulation, inject, input, viewChild } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { loadCKEditorCloud, CKEditorModule, type CKEditorCloudResult, type CKEditorCloudConfig } from '@ckeditor/ckeditor5-angular';\r\n\r\nimport { EditorConfig } from \"ckeditor5\"\r\nimport { TXE_DEBUG } from \"../tokens\";\r\n\r\nconst cloudConfig = {\r\n version: '46.1.1',\r\n translations: ['it']\r\n} satisfies CKEditorCloudConfig;\r\n\r\nconst LICENSE_KEY = 'eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE4MDQ5ODIzOTksImp0aSI6ImJkZDU4ZGM3LTlhYzgtNDA4Mi05ZDk3LTg3Yzc0NjEzMDlmNyIsInVzYWdlRW5kcG9pbnQiOiJodHRwczovL3Byb3h5LWV2ZW50LmNrZWRpdG9yLmNvbSIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsiY2xvdWQiLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJFMlAiLCJFMlciLCJNTEwiLCJTRUUiLCJFQ0giLCJFSVMiLCJMSCIsIkZPTyJdLCJ2YyI6IjdjZjg2OGYwIn0.vw-04yWGiTzZVSaGxQUGCxWXBUQXRJ0yB2ItqwvNnd7nEjMFC4d9kiDgbkzGnHgAjkiQEUqTzrM7b1z4cR6rhA';\r\n\r\n@Component({\r\n selector: \"persistent-ckeditor\",\r\n templateUrl: \"./persistent-editor.component.html\",\r\n styleUrls: [\"./persistent-editor.component.scss\"],\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, CKEditorModule],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PersistentEditor {\r\n\r\n public Mode = input.required<'html' | 'markdown'>();\r\n\r\n public EditorTemplate = viewChild<TemplateRef<any>>(\"template\");\r\n public value?: string;\r\n\r\n private DEBUG = inject(TXE_DEBUG, { optional: true }) || false;\r\n\r\n public iInitializeEditor(mentionmarker?: string, mentionentitis?: { id: string, description: string }[]) {\r\n if (this.Editor && this.EditorConfig) {\r\n if (this.DEBUG) console.log(\"@ Persistent Editor @ Editor is already initialized\");\r\n }\r\n else {\r\n loadCKEditorCloud(cloudConfig).then(this.internalInitializeEditor.bind(this));\r\n if (this.DEBUG) console.log(`@ Persistent Editor @ Editor is initialized (${this.Mode()} mode). loadCKEditorCloud has been called`);\r\n }\r\n\r\n this.MentionMarker = mentionmarker ?? \"@\";\r\n this.MentionEntities = mentionentitis ?? [];\r\n\r\n if ((this.MentionEntities?.length || 0) > 0) {\r\n if (this.DEBUG) console.log(`@ Persistent Editor @ Editor is using ${this.MentionEntities?.length} mentions possibilities`);\r\n }\r\n }\r\n\r\n public Editor: any = null;\r\n public EditorConfig: EditorConfig | null = null;\r\n\r\n private MentionMarker?: string = \"@\";\r\n private MentionEntities?: { id: string, description: string }[] = [];\r\n\r\n private internalInitializeEditor(cloudConfig: CKEditorCloudResult<CKEditorCloudConfig>) {\r\n const {\r\n ClassicEditor,\r\n\r\n // Plugin generali\r\n Alignment, AutoImage, Autosave, Base64UploadAdapter, Bold, CloudServices, Essentials, Heading,\r\n ImageInline, ImageBlock, ImageInsert, ImageInsertViaUrl, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Italic,\r\n Link, List, Paragraph, PasteFromOffice,\r\n\r\n // Plugin specifici modalità HTML\r\n GeneralHtmlSupport, Underline, SourceEditing,\r\n\r\n // Plugin specifici modalità Markdown\r\n Mention, Emoji, Markdown, PasteFromMarkdownExperimental\r\n } = cloudConfig.CKEditor;\r\n\r\n let markdownPlugins = [Mention, Emoji, Markdown, PasteFromMarkdownExperimental];\r\n let htmlPlugins = [GeneralHtmlSupport, Underline, SourceEditing];\r\n\r\n this.Editor = ClassicEditor;\r\n this.EditorConfig = {\r\n toolbar: {\r\n items:\r\n this.Mode() == \"html\" ?\r\n ['heading', '|', 'bold', 'italic', 'underline', '|', 'undo', 'redo', '|', 'insertImage', 'imageStyle:block', 'imageStyle:alignLeft', 'imageStyle:alignRight', '|', 'sourceEditing'] :\r\n ['heading', '|', 'bold', 'italic', 'bulletedList', '|', 'undo', 'redo', '|', 'emoji'],\r\n shouldNotGroupWhenFull: false\r\n },\r\n plugins: [\r\n Alignment, AutoImage, Autosave, Base64UploadAdapter, Bold, CloudServices, Essentials,\r\n Heading, ImageInline, ImageBlock, ImageInsert, ImageInsertViaUrl, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Italic,\r\n Link, List, Paragraph, PasteFromOffice,\r\n\r\n ...(this.Mode() == \"html\" ? htmlPlugins : markdownPlugins)\r\n ],\r\n heading: {\r\n options: [\r\n { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },\r\n { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },\r\n { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },\r\n { model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },\r\n { model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },\r\n { model: 'heading5', view: 'h5', title: 'Heading 5', class: 'ck-heading_heading5' },\r\n { model: 'heading6', view: 'h6', title: 'Heading 6', class: 'ck-heading_heading6' }\r\n ]\r\n },\r\n htmlSupport: {\r\n allow: [{ name: /^.*$/, styles: true, attributes: true, classes: true }]\r\n },\r\n image: {\r\n toolbar: ['imageStyle:block', 'imageStyle:side', '|', 'resizeImage:original'],\r\n insert: { type: 'auto' }\r\n },\r\n initialData: \"\",\r\n language: 'it',\r\n licenseKey: LICENSE_KEY,\r\n link: {\r\n addTargetToExternalLinks: true,\r\n defaultProtocol: 'https://',\r\n decorators: {\r\n toggleDownloadable: {\r\n mode: 'manual',\r\n label: 'Downloadable',\r\n attributes: { download: 'file' }\r\n }\r\n }\r\n },\r\n placeholder: 'Scrivi o incolla il tuo contenuto qui!'\r\n };\r\n\r\n if (this.Mode() == \"markdown\")\r\n this.setupMentions();\r\n }\r\n\r\n private setupMentions() {\r\n if (!this.EditorConfig)\r\n return;\r\n\r\n this.EditorConfig.mention = {\r\n feeds: [\r\n {\r\n marker: this.MentionMarker ?? \"@\",\r\n feed: (filter: string) => {\r\n return this.MentionEntities?.filter(t => t.id.toLowerCase().includes(filter.toLowerCase())) || [];\r\n },\r\n minimumCharacters: 1,\r\n // Callback per stile\r\n itemRenderer: (item) => {\r\n let dropdownElement = document.createElement('div');\r\n dropdownElement.classList.add(\"ck-mention-dropdown\");\r\n dropdownElement.id = `mention-list-item-id-${item.id}`;\r\n\r\n let useridElement = document.createElement('div');\r\n useridElement.classList.add(\"ck-username-id\");\r\n useridElement.textContent = `${item.id.substr(1, item.id.length)}`;\r\n\r\n let userdescElement = document.createElement('div');\r\n userdescElement.textContent = ` ● ${(<any>item).description}`;\r\n\r\n dropdownElement.appendChild(useridElement);\r\n dropdownElement.appendChild(userdescElement);\r\n return dropdownElement;\r\n }\r\n },\r\n ]\r\n };\r\n }\r\n}","<ng-template #template let-EditorModel>\r\n <ckeditor \r\n *ngIf=\"Editor && EditorConfig\" \r\n [editor]=\"Editor\" \r\n [config]=\"EditorConfig\" \r\n [data]=\"EditorModel.value\" \r\n (change)=\"EditorModel.onEditorChange($event)\"></ckeditor>\r\n</ng-template>","/*\r\n * Public API Surface of text-editors\r\n */\r\n\r\nexport * from './lib/html-editor/html-editor.component';\r\nexport * from './lib/markdown-editor/markdown-editor.component';\r\nexport * from './lib/standalone/html-editor/html-editor-standalone.component';\r\nexport * from './lib/standalone/markdown-editor/markdown-editor-standalone.component';\r\nexport * from './lib/persistent-editor/persistent-editor.component';\r\nexport * from \"./lib/tokens\"","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["cloudConfig","LICENSE_KEY"],"mappings":"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"}
@@ -1,31 +1,30 @@
1
1
  import { EventEmitter } from "@angular/core";
2
2
  import { ControlValueAccessor, FormControl, Validator } from "@angular/forms";
3
- import { EditorConfig } from "ckeditor5";
3
+ import { PersistentEditor } from "../persistent-editor/persistent-editor.component";
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class HtmlEditorComponent implements ControlValueAccessor, Validator {
6
+ PersistentEditor?: PersistentEditor;
6
7
  Readonly: boolean;
7
8
  Required: boolean;
8
9
  Validation: boolean;
9
10
  onEditorLoaded: EventEmitter<void>;
10
- value: string;
11
+ EditorModel: {
12
+ value: string;
13
+ onEditorChange: any;
14
+ } | null;
15
+ private DEBUG;
11
16
  initializeEditor(): void;
17
+ ngOnInit(): void;
12
18
  ngOnDestroy(): void;
13
- Editor: any;
14
- EditorConfig: EditorConfig;
15
- EditorModel: {
16
- editorDataText: string;
17
- };
18
- private internalInitializeEditor;
19
- onEditorChange({ editor }: {
20
- editor: any;
21
- }): void;
22
19
  onTouched: () => void;
23
20
  propagateChange: (_: any) => void;
24
- registerOnChange(fn: any): void;
25
- registerOnTouched(fn: any): void;
26
- writeValue(obj: any): void;
21
+ registerOnChange(fn: (_: any) => {}): void;
22
+ registerOnTouched(fn: () => {}): void;
23
+ writeValue(obj: string): void;
27
24
  validate(c: FormControl): any;
28
- changed(): void;
25
+ onEditorChange({ editor }: {
26
+ editor: any;
27
+ }): void;
29
28
  static ɵfac: i0.ɵɵFactoryDeclaration<HtmlEditorComponent, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<HtmlEditorComponent, "html-editor", never, { "Readonly": { "alias": "Readonly"; "required": false; }; "Required": { "alias": "Required"; "required": false; }; "Validation": { "alias": "Validation"; "required": false; }; }, { "onEditorLoaded": "onEditorLoaded"; }, never, never, true, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<HtmlEditorComponent, "html-editor", never, { "PersistentEditor": { "alias": "PersistentEditor"; "required": false; }; "Readonly": { "alias": "Readonly"; "required": false; }; "Required": { "alias": "Required"; "required": false; }; "Validation": { "alias": "Validation"; "required": false; }; }, { "onEditorLoaded": "onEditorLoaded"; }, never, ["*", "*"], true, never>;
31
30
  }
@@ -1,8 +1,9 @@
1
1
  import { EventEmitter } from "@angular/core";
2
2
  import { ControlValueAccessor, FormControl, Validator } from "@angular/forms";
3
- import { EditorConfig } from "ckeditor5";
3
+ import { PersistentEditor } from "../persistent-editor/persistent-editor.component";
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class MarkdownEditorComponent implements ControlValueAccessor, Validator {
6
+ PersistentEditor?: PersistentEditor;
6
7
  Readonly: boolean;
7
8
  Required: boolean;
8
9
  Validation: boolean;
@@ -12,26 +13,24 @@ export declare class MarkdownEditorComponent implements ControlValueAccessor, Va
12
13
  description: string;
13
14
  }[];
14
15
  onEditorLoaded: EventEmitter<void>;
15
- private get mentionEntities();
16
- value: string;
16
+ private DEBUG;
17
+ private get NormalizedMentionEntities();
18
+ EditorModel: {
19
+ value: string;
20
+ onEditorChange: any;
21
+ } | null;
17
22
  initializeEditor(): void;
23
+ ngOnInit(): void;
18
24
  ngOnDestroy(): void;
19
- Editor: any;
20
- EditorConfig: EditorConfig;
21
- EditorModel: {
22
- editorDataText: string;
23
- };
24
- private internalInitializeEditor;
25
- onEditorChange({ editor }: {
26
- editor: any;
27
- }): void;
28
25
  onTouched: () => void;
29
26
  propagateChange: (_: any) => void;
30
- registerOnChange(fn: any): void;
31
- registerOnTouched(fn: any): void;
32
- writeValue(obj: any): void;
27
+ registerOnChange(fn: (_: any) => {}): void;
28
+ registerOnTouched(fn: () => {}): void;
29
+ writeValue(obj: string): void;
33
30
  validate(c: FormControl): any;
34
- changed(): void;
31
+ onEditorChange({ editor }: {
32
+ editor: any;
33
+ }): void;
35
34
  static ɵfac: i0.ɵɵFactoryDeclaration<MarkdownEditorComponent, never>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<MarkdownEditorComponent, "markdown-editor", never, { "Readonly": { "alias": "Readonly"; "required": false; }; "Required": { "alias": "Required"; "required": false; }; "Validation": { "alias": "Validation"; "required": false; }; "MentionMarker": { "alias": "MentionMarker"; "required": false; }; "MentionEntities": { "alias": "MentionEntities"; "required": false; }; }, { "onEditorLoaded": "onEditorLoaded"; }, never, never, true, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<MarkdownEditorComponent, "markdown-editor", never, { "PersistentEditor": { "alias": "PersistentEditor"; "required": false; }; "Readonly": { "alias": "Readonly"; "required": false; }; "Required": { "alias": "Required"; "required": false; }; "Validation": { "alias": "Validation"; "required": false; }; "MentionMarker": { "alias": "MentionMarker"; "required": false; }; "MentionEntities": { "alias": "MentionEntities"; "required": false; }; }, { "onEditorLoaded": "onEditorLoaded"; }, never, ["*", "*"], true, never>;
37
36
  }
@@ -0,0 +1,21 @@
1
+ import { TemplateRef } from "@angular/core";
2
+ import { EditorConfig } from "ckeditor5";
3
+ import * as i0 from "@angular/core";
4
+ export declare class PersistentEditor {
5
+ Mode: import("@angular/core").InputSignal<"html" | "markdown">;
6
+ EditorTemplate: import("@angular/core").Signal<TemplateRef<any>>;
7
+ value?: string;
8
+ private DEBUG;
9
+ iInitializeEditor(mentionmarker?: string, mentionentitis?: {
10
+ id: string;
11
+ description: string;
12
+ }[]): void;
13
+ Editor: any;
14
+ EditorConfig: EditorConfig | null;
15
+ private MentionMarker?;
16
+ private MentionEntities?;
17
+ private internalInitializeEditor;
18
+ private setupMentions;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<PersistentEditor, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<PersistentEditor, "persistent-ckeditor", never, { "Mode": { "alias": "Mode"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
21
+ }
@@ -0,0 +1,31 @@
1
+ import { EventEmitter } from "@angular/core";
2
+ import { ControlValueAccessor, FormControl, Validator } from "@angular/forms";
3
+ import { EditorConfig } from "ckeditor5";
4
+ import * as i0 from "@angular/core";
5
+ export declare class HtmlEditorStandaloneComponent implements ControlValueAccessor, Validator {
6
+ Readonly: boolean;
7
+ Required: boolean;
8
+ Validation: boolean;
9
+ onEditorLoaded: EventEmitter<void>;
10
+ value: string;
11
+ initializeEditor(): void;
12
+ ngOnDestroy(): void;
13
+ Editor: any;
14
+ EditorConfig: EditorConfig;
15
+ EditorModel: {
16
+ editorDataText: string;
17
+ };
18
+ private internalInitializeEditor;
19
+ onEditorChange({ editor }: {
20
+ editor: any;
21
+ }): void;
22
+ onTouched: () => void;
23
+ propagateChange: (_: any) => void;
24
+ registerOnChange(fn: any): void;
25
+ registerOnTouched(fn: any): void;
26
+ writeValue(obj: any): void;
27
+ validate(c: FormControl): any;
28
+ changed(): void;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<HtmlEditorStandaloneComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<HtmlEditorStandaloneComponent, "html-editor-standalone", never, { "Readonly": { "alias": "Readonly"; "required": false; }; "Required": { "alias": "Required"; "required": false; }; "Validation": { "alias": "Validation"; "required": false; }; }, { "onEditorLoaded": "onEditorLoaded"; }, never, never, true, never>;
31
+ }
@@ -0,0 +1,37 @@
1
+ import { EventEmitter } from "@angular/core";
2
+ import { ControlValueAccessor, FormControl, Validator } from "@angular/forms";
3
+ import { EditorConfig } from "ckeditor5";
4
+ import * as i0 from "@angular/core";
5
+ export declare class MarkdownEditorStandaloneComponent implements ControlValueAccessor, Validator {
6
+ Readonly: boolean;
7
+ Required: boolean;
8
+ Validation: boolean;
9
+ MentionMarker: string;
10
+ MentionEntities: {
11
+ id: string;
12
+ description: string;
13
+ }[];
14
+ onEditorLoaded: EventEmitter<void>;
15
+ private get mentionEntities();
16
+ value: string;
17
+ initializeEditor(): void;
18
+ ngOnDestroy(): void;
19
+ Editor: any;
20
+ EditorConfig: EditorConfig;
21
+ EditorModel: {
22
+ editorDataText: string;
23
+ };
24
+ private internalInitializeEditor;
25
+ onEditorChange({ editor }: {
26
+ editor: any;
27
+ }): void;
28
+ onTouched: () => void;
29
+ propagateChange: (_: any) => void;
30
+ registerOnChange(fn: any): void;
31
+ registerOnTouched(fn: any): void;
32
+ writeValue(obj: any): void;
33
+ validate(c: FormControl): any;
34
+ changed(): void;
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<MarkdownEditorStandaloneComponent, never>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<MarkdownEditorStandaloneComponent, "markdown-editor-standalone", never, { "Readonly": { "alias": "Readonly"; "required": false; }; "Required": { "alias": "Required"; "required": false; }; "Validation": { "alias": "Validation"; "required": false; }; "MentionMarker": { "alias": "MentionMarker"; "required": false; }; "MentionEntities": { "alias": "MentionEntities"; "required": false; }; }, { "onEditorLoaded": "onEditorLoaded"; }, never, never, true, never>;
37
+ }
@@ -0,0 +1,2 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ export declare const TXE_DEBUG: InjectionToken<boolean>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/text-editors",
3
- "version": "19.2.5",
3
+ "version": "19.2.6",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },
package/public-api.d.ts CHANGED
@@ -1,2 +1,6 @@
1
1
  export * from './lib/html-editor/html-editor.component';
2
2
  export * from './lib/markdown-editor/markdown-editor.component';
3
+ export * from './lib/standalone/html-editor/html-editor-standalone.component';
4
+ export * from './lib/standalone/markdown-editor/markdown-editor-standalone.component';
5
+ export * from './lib/persistent-editor/persistent-editor.component';
6
+ export * from "./lib/tokens";