@esfaenza/text-editors 19.2.8 → 19.2.10

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 +1 @@
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 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 this.onEditorLoaded.emit();\r\n });\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 this.onEditorLoaded.emit();\r\n });\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\nimport { PersistentEditor } from \"../../persistent-editor/persistent-editor.component\";\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\r\n // Retrocompatibilità assoluta per switchare i componenti da legacy a nuovi\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 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\nimport { PersistentEditor } from \"../../persistent-editor/persistent-editor.component\";\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 // Retrocompatibilità assoluta per switchare i componenti da legacy a nuovi\r\n @Input() PersistentEditor?: PersistentEditor;\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 }[], onEditorLoaded?: Function) {\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 onEditorLoaded?.();\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
+ {"version":3,"file":"esfaenza-text-editors.mjs","sources":["../../../projects/text-editors/src/lib/editor/extensions/FontSize.ts","../../../projects/text-editors/src/lib/editor/extensions/FontFamily.ts","../../../projects/text-editors/src/lib/editor/extensions/LineHeight.ts","../../../projects/text-editors/src/lib/editor/extensions/Suggestion.ts","../../../projects/text-editors/src/lib/editor/extensions/CustomeImageWithView.ts","../../../projects/text-editors/src/lib/editor/editor.component.ts","../../../projects/text-editors/src/lib/editor/editor.component.html","../../../projects/text-editors/src/lib/tokens.ts","../../../projects/text-editors/src/public-api.ts","../../../projects/text-editors/src/esfaenza-text-editors.ts"],"sourcesContent":["import { Extension } from \"@tiptap/core\";\r\n\r\nconst FontSize = Extension.create({\r\n name: 'fontSize',\r\n\r\n addGlobalAttributes() {\r\n return [\r\n {\r\n types: ['textStyle'],\r\n attributes: {\r\n fontSize: {\r\n default: null,\r\n parseHTML: element => {\r\n const size = element.style.fontSize;\r\n if (!size) return null;\r\n // normalize pt → px\r\n if (size.endsWith('pt'))\r\n return `${Math.round(parseFloat(size) * 1.333)}px`;\r\n return size;\r\n },\r\n renderHTML: attributes => {\r\n if (!attributes.fontSize) return {};\r\n\r\n return { style: `font-size: ${attributes.fontSize}` }\r\n },\r\n },\r\n },\r\n },\r\n ]\r\n },\r\n addCommands() {\r\n return {\r\n setFontSize: (fontSize: string) => ({ chain }) => { return chain().setMark('textStyle', { fontSize }).run() },\r\n unsetFontSize: () => ({ chain }) => { return chain().setMark('textStyle', { fontSize: null }).removeEmptyTextStyle().run() },\r\n }\r\n },\r\n})\r\n\r\nexport default FontSize;","import { Extension } from \"@tiptap/core\";\r\n\r\nconst FontFamily = Extension.create({\r\n name: 'fontFamily',\r\n\r\n addGlobalAttributes() {\r\n return [\r\n {\r\n types: ['textStyle'],\r\n attributes: {\r\n fontFamily: {\r\n default: null,\r\n parseHTML: element => element.style.fontFamily,\r\n renderHTML: attributes => {\r\n if (!attributes.fontFamily) return {};\r\n return { style: `font-family: ${attributes.fontFamily}` };\r\n },\r\n },\r\n },\r\n },\r\n ]\r\n },\r\n addCommands() {\r\n return {\r\n setFontFamily: (fontFamily: string) => ({ chain }) => { return chain().setMark('textStyle', { fontFamily }).run(); },\r\n unsetFontFamily: () => ({ chain }) => { return chain().setMark('textStyle', { fontFamily: null, }).removeEmptyTextStyle().run() },\r\n }\r\n },\r\n});\r\n\r\nexport default FontFamily;","import { Extension } from \"@tiptap/core\";\r\n\r\nconst LineHeight = Extension.create({\r\n name: 'lineHeight',\r\n\r\n addGlobalAttributes() {\r\n return [\r\n {\r\n types: ['paragraph', 'heading'],\r\n attributes: {\r\n lineHeight: {\r\n default: null,\r\n parseHTML: element => element.style.lineHeight,\r\n renderHTML: attributes => {\r\n if (!attributes.lineHeight) return {};\r\n return { style: `line-height: ${attributes.lineHeight}` };\r\n },\r\n },\r\n },\r\n },\r\n ]\r\n },\r\n addCommands() {\r\n return {\r\n setLineHeight: (lineHeight: string) => ({ commands }) => { return commands.updateAttributes('paragraph', { lineHeight }) },\r\n unsetLineHeight: () => ({ commands }) => { return commands.updateAttributes('paragraph', { lineHeight: null }) },\r\n }\r\n },\r\n});\r\n\r\nexport default LineHeight;","let Suggestion = (choiches: { id: string, description: string }[]) => {\r\n \r\n\r\n return {\r\n char: '@',\r\n\r\n items: ({ query }: { query: string }) => {\r\n return choiches.filter(item => item.description.toLowerCase().startsWith(query.toLowerCase())).slice(0, 5)\r\n },\r\n\r\n render: () => {\r\n let popup: HTMLDivElement;\r\n let selectedIndex = 0\r\n let currentProps: any\r\n\r\n return {\r\n onStart: (props: any) => {\r\n popup = document.createElement('div')\r\n popup.classList.add('suggestion-popup')\r\n\r\n document.body.appendChild(popup)\r\n\r\n currentProps = props;\r\n updatePopup();\r\n },\r\n onKeyDown(props: any) {\r\n if (props.event.key === 'ArrowUp') {\r\n selectedIndex = (selectedIndex + currentProps.items.length - 1) % currentProps.items.length\r\n updatePopup()\r\n return true\r\n }\r\n\r\n if (props.event.key === 'ArrowDown') {\r\n selectedIndex = (selectedIndex + 1) % currentProps.items.length\r\n updatePopup()\r\n return true\r\n }\r\n\r\n if (props.event.key === 'Enter') {\r\n selectItem()\r\n return true\r\n }\r\n\r\n return false\r\n },\r\n onUpdate(props: any) { \r\n currentProps = props;\r\n updatePopup();\r\n },\r\n onExit() { popup.remove(); },\r\n }\r\n\r\n function updatePopup() {\r\n if (!currentProps.clientRect)\r\n return\r\n\r\n popup.innerHTML = '';\r\n\r\n currentProps.items.forEach((item: { id: string, description: string }, index: number) => {\r\n const button = document.createElement('button')\r\n\r\n button.textContent = item.description\r\n\r\n if (index === selectedIndex)\r\n button.classList.add('is-selected')\r\n\r\n button.addEventListener('click', () => {\r\n selectedIndex = index\r\n selectItem()\r\n })\r\n\r\n popup.appendChild(button)\r\n });\r\n\r\n const rect = currentProps.clientRect();\r\n popup.style.position = 'fixed'\r\n popup.style.left = `${rect.left}px`\r\n popup.style.top = `${rect.bottom + 5}px`\r\n }\r\n\r\n function selectItem() {\r\n const item = currentProps.items[selectedIndex]\r\n\r\n if (item)\r\n currentProps.command({ id: item.id, description: item.description, });\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default Suggestion;","import { Image } from '@tiptap/extension-image'\r\nimport { Plugin } from '@tiptap/pm/state'\r\n\r\nlet handleFiles = async (view: any, files: FileList | undefined) => {\r\n\r\n const file = Array.from(files || []).find(f => f.type.startsWith('image/'));\r\n\r\n if (!file) return;\r\n\r\n const reader = new FileReader();\r\n\r\n reader.onload = () => {\r\n\r\n const base64 = reader.result as string;\r\n const img = new window.Image();\r\n img.onload = () => {\r\n const { schema } = view.state;\r\n const node = schema.nodes.image.create({ src: base64, width: img.naturalWidth, float: \"none\" });\r\n const tr = view.state.tr.replaceSelectionWith(node);\r\n view.dispatch(tr);\r\n }\r\n img.src = base64;\r\n };\r\n\r\n reader.readAsDataURL(file);\r\n}\r\n\r\nconst CustomImage = Image.extend({\r\n draggable: true,\r\n selectable: true,\r\n addAttributes() {\r\n return {\r\n ...this.parent?.(),\r\n width: { default: null, },\r\n float: { default: \"none\" }, // 'left' | 'right' | 'none'\r\n src: {\r\n default: null,\r\n parseHTML: element => { return element.getAttribute('src') },\r\n renderHTML: attributes => { return { src: attributes.src, } },\r\n },\r\n };\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n const { float } = HTMLAttributes\r\n let style = ''\r\n if (float === 'left')\r\n style = 'float:left; display:block; margin-right: 10px'\r\n else if (float === 'right')\r\n style = 'float:right; display:block; margin-left: 10px'\r\n else\r\n style = `display: inline-block; float: none; vertical-align: middle;`\r\n\r\n return ['img', { ...HTMLAttributes, style }]\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'img[src]',\r\n getAttrs: element => {\r\n const el = element as HTMLImageElement;\r\n const src = el.getAttribute('src')\r\n\r\n if (!src) return false\r\n\r\n // allow both normal URLs AND base64\r\n if (src.startsWith('http') || src.startsWith('data:image'))\r\n return { src, float: el.style.float || null, width: el.style.width ? parseInt(el.style.width) : null, }\r\n\r\n return false\r\n },\r\n },\r\n ]\r\n },\r\n addProseMirrorPlugins: () => {\r\n return [\r\n new Plugin({\r\n props: {\r\n handleDrop: (view, event) => {\r\n const files = event.dataTransfer?.files;\r\n if (!files?.length) return false;\r\n\r\n handleFiles(view, files);\r\n\r\n return true;\r\n },\r\n\r\n handlePaste: (view, event) => {\r\n const files = event.clipboardData?.files;\r\n if (!files?.length) return false;\r\n\r\n handleFiles(view, files);\r\n\r\n return true;\r\n },\r\n },\r\n })\r\n ]\r\n },\r\n});\r\n\r\nconst CustomImageWithView = CustomImage.extend({\r\n addNodeView: () => {\r\n return ({ node, getPos, editor }) => {\r\n\r\n let updateImage = (img: HTMLImageElement, node: any) => {\r\n img.draggable = false;\r\n img.src = node.attrs.src\r\n img.style.width = node.attrs.width ? `${node.attrs.width}px` : '';\r\n if (node.attrs.float === 'left' || node.attrs.float === 'right') {\r\n img.style.display = 'block'\r\n if (node.attrs.float === 'left')\r\n img.style.margin = \"0 10px 0 0\";\r\n else if (node.attrs.float === 'right')\r\n img.style.margin = \"0 0 0 10px\"\r\n } else {\r\n img.style.display = 'inline-block'\r\n img.style.verticalAlign = 'middle'\r\n }\r\n };\r\n\r\n let updateWrapper = (wrapper: HTMLDivElement, node: any) => {\r\n wrapper.draggable = true;\r\n wrapper.contentEditable = \"false\";\r\n\r\n wrapper.className = `img-wrapper`;\r\n wrapper.style.float = node.attrs.float;\r\n\r\n if (node.attrs.float === 'left' || node.attrs.float === 'right') {\r\n wrapper.style.width = \"auto\";\r\n wrapper.style.textAlign = \"auto\";\r\n }\r\n else {\r\n wrapper.style.width = \"100%\";\r\n wrapper.style.textAlign = \"center\";\r\n }\r\n }\r\n\r\n const wrapper = document.createElement('div')\r\n updateWrapper(wrapper, node);\r\n\r\n const img = document.createElement('img')\r\n updateImage(img, node);\r\n\r\n const toolbar = document.createElement('div')\r\n toolbar.className = \"img-toolbar\";\r\n\r\n const btn = (t: any, fn: any) => {\r\n const b = document.createElement('button');\r\n b.textContent = t;\r\n b.onclick = fn;\r\n return b;\r\n }\r\n\r\n toolbar.append(\r\n\r\n btn('Centro', () => editor.view.dispatch(editor.view.state.tr.setNodeMarkup(getPos()!, undefined, { ...node.attrs, ...{ float: 'none' } }))),\r\n btn('Sinistra', () => editor.view.dispatch(editor.view.state.tr.setNodeMarkup(getPos()!, undefined, { ...node.attrs, ...{ float: 'left' } }))),\r\n btn('Destra', () => editor.view.dispatch(editor.view.state.tr.setNodeMarkup(getPos()!, undefined, { ...node.attrs, ...{ float: 'right' } }))),\r\n\r\n btn('Elimina', () => {\r\n const nodePos = getPos()!;\r\n editor.view.dispatch(editor.view.state.tr.delete(nodePos, nodePos + node.nodeSize))\r\n }));\r\n\r\n // resize\r\n let startX = 0;\r\n let startW = 0;\r\n\r\n const handle = document.createElement('div');\r\n handle.className = \"img-resize-handle\";\r\n\r\n handle.onmousedown = (e) => {\r\n startX = e.clientX\r\n startW = img.offsetWidth\r\n\r\n let latestWidth: number | null = null\r\n let ticking = false\r\n\r\n const move = (e: any) => {\r\n latestWidth = Math.max(80, startW + (e.clientX - startX));\r\n\r\n if (!ticking) {\r\n ticking = true\r\n\r\n requestAnimationFrame(() => {\r\n const nodePos = getPos()!;\r\n editor.view.dispatch(editor.view.state.tr.setNodeMarkup(nodePos, undefined, { ...node.attrs, width: latestWidth }))\r\n ticking = false\r\n });\r\n }\r\n }\r\n\r\n const up = () => {\r\n window.removeEventListener('mousemove', move);\r\n window.removeEventListener('mouseup', up);\r\n }\r\n\r\n window.addEventListener('mousemove', move);\r\n window.addEventListener('mouseup', up);\r\n\r\n // Per evitare che si attivi il drag dell'elemento sotto. Dal resizer si usa solo il resizer\r\n e.preventDefault();\r\n }\r\n\r\n wrapper.append(img, toolbar, handle);\r\n\r\n return {\r\n dom: wrapper,\r\n destroy() { wrapper.remove() },\r\n update(updatedNode) {\r\n\r\n // different node type -> recreate NodeView\r\n if (updatedNode.type !== node.type)\r\n return false\r\n\r\n node = updatedNode\r\n updateImage(img, node);\r\n updateWrapper(wrapper, node);\r\n\r\n return true\r\n },\r\n };\r\n }\r\n },\r\n});\r\n\r\nexport default CustomImageWithView;","import { CommonModule } from \"@angular/common\";\r\nimport { booleanAttribute, Component, ElementRef, EventEmitter, forwardRef, input, Output, viewChild, ViewEncapsulation } from \"@angular/core\";\r\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from \"@angular/forms\";\r\n\r\nimport { Editor } from '@tiptap/core'\r\nimport { Markdown } from '@tiptap/markdown'\r\nimport { Mention } from '@tiptap/extension-mention'\r\n\r\nimport { StarterKit } from '@tiptap/starter-kit'\r\n\r\nimport { TextStyle } from '@tiptap/extension-text-style'\r\nimport { Color } from '@tiptap/extension-color'\r\nimport { Underline } from '@tiptap/extension-underline'\r\nimport { Table } from '@tiptap/extension-table'\r\nimport { TableRow } from '@tiptap/extension-table-row'\r\nimport { TableCell } from '@tiptap/extension-table-cell'\r\nimport { TableHeader } from '@tiptap/extension-table-header'\r\nimport { TextAlign } from '@tiptap/extension-text-align'\r\n\r\nimport FontSize from \"./extensions/FontSize\";\r\nimport FontFamily from \"./extensions/FontFamily\";\r\nimport LineHeight from \"./extensions/LineHeight\";\r\nimport Suggestion from \"./extensions/Suggestion\";\r\nimport CustomImageWithView from \"./extensions/CustomeImageWithView\";\r\n\r\n@Component({\r\n selector: \"editor\",\r\n templateUrl: \"./editor.component.html\",\r\n styleUrls: [\"./editor.component.scss\"],\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => EditorComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => EditorComponent), multi: true }\r\n ]\r\n})\r\nexport class EditorComponent implements ControlValueAccessor, Validator {\r\n\r\n protected onChange = (_: any) => { };\r\n public onTouched = () => { };\r\n public registerOnChange(fn: any): void { this.onChange = fn; }\r\n public registerOnTouched(fn: any): void { this.onTouched = fn; }\r\n\r\n validate(_: AbstractControl): ValidationErrors | null {\r\n return null;\r\n }\r\n\r\n private element = viewChild.required<ElementRef<HTMLDivElement>>(\"element\");\r\n\r\n public EmojiSupport = input<boolean>(false);\r\n public BulletListSupport = input<boolean>(false);\r\n public TablesSupport = input<boolean>(false);\r\n public Mode = input.required<'html' | 'markdown' | 'text'>();\r\n public readonly = input(false, { transform: booleanAttribute });\r\n public disabled = input(false, { transform: booleanAttribute });\r\n public required = input(false, { transform: booleanAttribute });\r\n\r\n public MentionEntities = input<{ id: string, description: string }[]>([]);\r\n\r\n public name = input.required<string>();\r\n\r\n private EditorRef?: Editor;\r\n public value: any;\r\n\r\n @Output() inputChange: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() inputFocus: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() inputFinalized: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n ngOnInit() {\r\n let config = [];\r\n\r\n config.push(...[\r\n StarterKit,\r\n TextStyle,\r\n Color,\r\n Underline,\r\n FontSize,\r\n FontFamily,\r\n LineHeight,\r\n TextAlign.configure({ types: ['heading', 'paragraph'] })]);\r\n\r\n if (this.Mode() == \"markdown\")\r\n config.push(Markdown);\r\n\r\n if (this.Mode() == \"html\") {\r\n if(this.TablesSupport())\r\n config.push(...[Table.configure({ lastColumnResizable: true, resizable: true }), TableRow, TableHeader, TableCell])\r\n config.push(CustomImageWithView)\r\n }\r\n\r\n if ((this.MentionEntities()?.length || 0) > 0)\r\n config.push(Mention.configure({\r\n deleteTriggerWithBackspace: true,\r\n HTMLAttributes: { class: 'mention', },\r\n renderText({ options, node }) { return `${options.suggestion.char}${node.attrs.description ?? node.attrs.id}` },\r\n suggestion: Suggestion(this.MentionEntities()),\r\n }),);\r\n\r\n this.EditorRef = new Editor({\r\n element: this.element().nativeElement,\r\n extensions: config,\r\n editable: !this.readonly(),\r\n onUpdate: (_) => {\r\n let value = \"\";\r\n switch (this.Mode()) {\r\n case \"html\":\r\n value = this.EditorRef?.getHTML() || \"\";\r\n // Emissione del valore vuoto trimmato per bene\r\n if (value.trim() === \"<p></p>\")\r\n value = \"\";\r\n break;\r\n case \"markdown\": value = this.EditorRef?.getMarkdown() || \"\"; break;\r\n case \"text\": value = this.EditorRef?.getText() || \"\"; break;\r\n }\r\n\r\n this.onChange(value);\r\n }\r\n });\r\n }\r\n\r\n public async writeValue(obj: any): Promise<void> {\r\n // Coercizione di tutti i valori \"vuoti\" all'unico \"null\"\r\n if (obj === null || obj === undefined) obj = null;\r\n\r\n this.value = obj;\r\n\r\n this.EditorRef?.commands.clearContent();\r\n if (this.Mode() === \"markdown\")\r\n this.EditorRef?.commands.setContent(this.value, { contentType: \"markdown\" });\r\n else\r\n this.EditorRef?.commands.insertContent(this.value);\r\n }\r\n\r\n setTypography(selectElement: { target: { value: string } }) {\r\n switch (selectElement.target.value) {\r\n case \"paragraph\": this.EditorRef?.chain().focus().setParagraph().run(); break;\r\n default: this.EditorRef?.chain().focus().setHeading({ level: parseInt(selectElement.target.value.charAt(1)) as any }).run(); break;\r\n }\r\n selectElement.target.value = \"\";\r\n }\r\n setBold() {\r\n this.EditorRef?.chain().focus().toggleBold().run();\r\n }\r\n setItalic() {\r\n this.EditorRef?.chain().focus().toggleItalic().run();\r\n }\r\n setUnderlined(){\r\n this.EditorRef?.chain().focus().toggleUnderline().run();\r\n }\r\n setBulletList() {\r\n this.EditorRef?.chain().focus().toggleBulletList().run();\r\n }\r\n undoAction() {\r\n this.EditorRef?.chain().focus().undo().run();\r\n }\r\n redoAction() {\r\n this.EditorRef?.chain().focus().redo().run();\r\n }\r\n addTable() {\r\n this.EditorRef?.chain().focus().insertTable({ rows: 1, cols: 2, withHeaderRow: false }).run()\r\n }\r\n deleteTable() {\r\n this.EditorRef?.chain().focus().deleteTable().run();\r\n }\r\n addRow() {\r\n this.EditorRef?.chain().focus().addRowAfter().run();\r\n }\r\n deleteRow() {\r\n this.EditorRef?.chain().focus().deleteRow().run();\r\n }\r\n addColumn() {\r\n this.EditorRef?.chain().focus().addColumnAfter().run();\r\n }\r\n deleteColumn() {\r\n this.EditorRef?.chain().focus().deleteColumn().run();\r\n }\r\n setEmoji(selectElement: { target: { value: string } }) {\r\n this.EditorRef?.chain().focus().insertContent(selectElement.target.value).run();\r\n selectElement.target.value = \"\";\r\n }\r\n}","<div class=\"editor-shell\">\r\n <div class=\"editor-toolbar\">\r\n\r\n <!-- Typography -->\r\n <select id=\"heading-select\" (change)=\"setTypography($event)\">\r\n <option value=\"\" selected hidden>Pragrafo</option>\r\n <option value=\"paragraph\">Pragrafo</option>\r\n <option value=\"h1\">Intestazione 1</option>\r\n <option value=\"h2\">Intestazione 2</option>\r\n <option value=\"h3\">Intestazione 3</option>\r\n <option value=\"h4\">Intestazione 4</option>\r\n <option value=\"h5\">Intestazione 5</option>\r\n <option value=\"h6\">Intestazione 6</option>\r\n </select>\r\n\r\n <div class=\"divider\"></div>\r\n\r\n <!-- Formatting -->\r\n <button (click)=\"setBold()\"><b>B</b></button>\r\n <button (click)=\"setItalic()\"><i>I</i></button>\r\n <button (click)=\"setUnderlined()\"><u>U</u></button>\r\n\r\n <!-- Lists -->\r\n @if(BulletListSupport()){\r\n <button (click)=\"setBulletList()\">• Lista</button>\r\n }\r\n\r\n <div class=\"divider\"></div>\r\n\r\n @if(Mode() == \"html\" && TablesSupport())\r\n {\r\n <button (click)=\"addTable()\">⊞<span style=\"font-size: 10px;\">✚</span></button>\r\n <button (click)=\"deleteTable()\">⊞<span style=\"font-size: 10px;\">▬</span></button>\r\n <button (click)=\"addRow()\">🖨<span style=\"font-size: 10px;\">✚</span></button>\r\n <button (click)=\"deleteRow()\">🖨<span style=\"font-size: 10px;\">▬</span></button>\r\n <button (click)=\"addColumn()\">🗄<span style=\"font-size: 10px;\">✚</span></button>\r\n <button (click)=\"deleteColumn()\">🗄<span style=\"font-size: 10px;\">▬</span></button>\r\n <div class=\"divider\"></div>\r\n }\r\n\r\n <!-- History -->\r\n <button (click)=\"undoAction()\">↶</button>\r\n <button (click)=\"redoAction()\">↷</button>\r\n\r\n @if(EmojiSupport()){\r\n <select id=\"emoji-select\" (change)=\"setEmoji($event)\">\r\n <option value=\"\" hidden selected>😊</option>\r\n <option value=\"😊\">😊</option>\r\n <option value=\"😀\">😀</option>\r\n <option value=\"😂\">😂</option>\r\n <option value=\"🔥\">🔥</option>\r\n <option value=\"🎉\">🎉</option>\r\n <option value=\"🚀\">🚀</option>\r\n <option value=\"❤️\">❤️</option>\r\n <option value=\"👍\">👍</option>\r\n </select>\r\n }\r\n </div>\r\n\r\n <div #element></div>\r\n</div>","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const TXE_DEBUG = new InjectionToken<boolean>('TXE_DEBUG');","/*\r\n * Public API Surface of text-editors\r\n */\r\n\r\nexport * from './lib/editor/editor.component';\r\n\r\nexport * from \"./lib/tokens\"","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { EventEmitter } from "@angular/core";
2
+ import { AbstractControl, ControlValueAccessor, ValidationErrors, Validator } from "@angular/forms";
3
+ import * as i0 from "@angular/core";
4
+ export declare class EditorComponent implements ControlValueAccessor, Validator {
5
+ protected onChange: (_: any) => void;
6
+ onTouched: () => void;
7
+ registerOnChange(fn: any): void;
8
+ registerOnTouched(fn: any): void;
9
+ validate(_: AbstractControl): ValidationErrors | null;
10
+ private element;
11
+ EmojiSupport: import("@angular/core").InputSignal<boolean>;
12
+ BulletListSupport: import("@angular/core").InputSignal<boolean>;
13
+ TablesSupport: import("@angular/core").InputSignal<boolean>;
14
+ Mode: import("@angular/core").InputSignal<"text" | "html" | "markdown">;
15
+ readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
16
+ disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
17
+ required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
18
+ MentionEntities: import("@angular/core").InputSignal<{
19
+ id: string;
20
+ description: string;
21
+ }[]>;
22
+ name: import("@angular/core").InputSignal<string>;
23
+ private EditorRef?;
24
+ value: any;
25
+ inputChange: EventEmitter<string>;
26
+ inputFocus: EventEmitter<any>;
27
+ inputFinalized: EventEmitter<string>;
28
+ ngOnInit(): void;
29
+ writeValue(obj: any): Promise<void>;
30
+ setTypography(selectElement: {
31
+ target: {
32
+ value: string;
33
+ };
34
+ }): void;
35
+ setBold(): void;
36
+ setItalic(): void;
37
+ setUnderlined(): void;
38
+ setBulletList(): void;
39
+ undoAction(): void;
40
+ redoAction(): void;
41
+ addTable(): void;
42
+ deleteTable(): void;
43
+ addRow(): void;
44
+ deleteRow(): void;
45
+ addColumn(): void;
46
+ deleteColumn(): void;
47
+ setEmoji(selectElement: {
48
+ target: {
49
+ value: string;
50
+ };
51
+ }): void;
52
+ static ɵfac: i0.ɵɵFactoryDeclaration<EditorComponent, never>;
53
+ static ɵcmp: i0.ɵɵComponentDeclaration<EditorComponent, "editor", never, { "EmojiSupport": { "alias": "EmojiSupport"; "required": false; "isSignal": true; }; "BulletListSupport": { "alias": "BulletListSupport"; "required": false; "isSignal": true; }; "TablesSupport": { "alias": "TablesSupport"; "required": false; "isSignal": true; }; "Mode": { "alias": "Mode"; "required": true; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "MentionEntities": { "alias": "MentionEntities"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": true; "isSignal": true; }; }, { "inputChange": "inputChange"; "inputFocus": "inputFocus"; "inputFinalized": "inputFinalized"; }, never, never, true, never>;
54
+ }
@@ -0,0 +1,2 @@
1
+ declare const CustomImageWithView: import("@tiptap/core").Node<import("@tiptap/extension-image").ImageOptions, any>;
2
+ export default CustomImageWithView;
@@ -0,0 +1,3 @@
1
+ import { Extension } from "@tiptap/core";
2
+ declare const FontFamily: Extension<any, any>;
3
+ export default FontFamily;
@@ -0,0 +1,3 @@
1
+ import { Extension } from "@tiptap/core";
2
+ declare const FontSize: Extension<any, any>;
3
+ export default FontSize;
@@ -0,0 +1,3 @@
1
+ import { Extension } from "@tiptap/core";
2
+ declare const LineHeight: Extension<any, any>;
3
+ export default LineHeight;
@@ -0,0 +1,19 @@
1
+ declare let Suggestion: (choiches: {
2
+ id: string;
3
+ description: string;
4
+ }[]) => {
5
+ char: string;
6
+ items: ({ query }: {
7
+ query: string;
8
+ }) => {
9
+ id: string;
10
+ description: string;
11
+ }[];
12
+ render: () => {
13
+ onStart: (props: any) => void;
14
+ onKeyDown(props: any): boolean;
15
+ onUpdate(props: any): void;
16
+ onExit(): void;
17
+ };
18
+ };
19
+ export default Suggestion;
package/package.json CHANGED
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "name": "@esfaenza/text-editors",
3
- "version": "19.2.8",
3
+ "version": "19.2.10",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },
7
7
  "peerDependencies": {
8
8
  "@angular/common": "^19.2.15",
9
9
  "@angular/core": "^19.2.15",
10
- "@ckeditor/ckeditor5-angular": "^10.0.0"
10
+ "@tiptap/core": "^3.23.4",
11
+ "@tiptap/pm": "^3.23.4",
12
+ "@tiptap/starter-kit": "^3.23.4"
11
13
  },
12
14
  "module": "fesm2022/esfaenza-text-editors.mjs",
13
15
  "typings": "index.d.ts",
package/public-api.d.ts CHANGED
@@ -1,6 +1,2 @@
1
- export * from './lib/html-editor/html-editor.component';
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';
1
+ export * from './lib/editor/editor.component';
6
2
  export * from "./lib/tokens";
@@ -1,30 +0,0 @@
1
- import { EventEmitter } from "@angular/core";
2
- import { ControlValueAccessor, FormControl, Validator } from "@angular/forms";
3
- import { PersistentEditor } from "../persistent-editor/persistent-editor.component";
4
- import * as i0 from "@angular/core";
5
- export declare class HtmlEditorComponent implements ControlValueAccessor, Validator {
6
- PersistentEditor?: PersistentEditor;
7
- Readonly: boolean;
8
- Required: boolean;
9
- Validation: boolean;
10
- onEditorLoaded: EventEmitter<void>;
11
- EditorModel: {
12
- value: string;
13
- onEditorChange: any;
14
- } | null;
15
- private DEBUG;
16
- initializeEditor(): void;
17
- ngOnInit(): void;
18
- ngOnDestroy(): void;
19
- onTouched: () => void;
20
- propagateChange: (_: any) => void;
21
- registerOnChange(fn: (_: any) => {}): void;
22
- registerOnTouched(fn: () => {}): void;
23
- writeValue(obj: string): void;
24
- validate(c: FormControl): any;
25
- onEditorChange({ editor }: {
26
- editor: any;
27
- }): void;
28
- static ɵfac: i0.ɵɵFactoryDeclaration<HtmlEditorComponent, 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>;
30
- }
@@ -1,36 +0,0 @@
1
- import { EventEmitter } from "@angular/core";
2
- import { ControlValueAccessor, FormControl, Validator } from "@angular/forms";
3
- import { PersistentEditor } from "../persistent-editor/persistent-editor.component";
4
- import * as i0 from "@angular/core";
5
- export declare class MarkdownEditorComponent implements ControlValueAccessor, Validator {
6
- PersistentEditor?: PersistentEditor;
7
- Readonly: boolean;
8
- Required: boolean;
9
- Validation: boolean;
10
- MentionMarker: string;
11
- MentionEntities: {
12
- id: string;
13
- description: string;
14
- }[];
15
- onEditorLoaded: EventEmitter<void>;
16
- private DEBUG;
17
- private get NormalizedMentionEntities();
18
- EditorModel: {
19
- value: string;
20
- onEditorChange: any;
21
- } | null;
22
- initializeEditor(): void;
23
- ngOnInit(): void;
24
- ngOnDestroy(): void;
25
- onTouched: () => void;
26
- propagateChange: (_: any) => void;
27
- registerOnChange(fn: (_: any) => {}): void;
28
- registerOnTouched(fn: () => {}): void;
29
- writeValue(obj: string): void;
30
- validate(c: FormControl): any;
31
- onEditorChange({ editor }: {
32
- editor: any;
33
- }): void;
34
- static ɵfac: i0.ɵɵFactoryDeclaration<MarkdownEditorComponent, 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>;
36
- }
@@ -1,21 +0,0 @@
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
- }[], onEditorLoaded?: Function): 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
- }
@@ -1,33 +0,0 @@
1
- import { EventEmitter } from "@angular/core";
2
- import { ControlValueAccessor, FormControl, Validator } from "@angular/forms";
3
- import { EditorConfig } from "ckeditor5";
4
- import { PersistentEditor } from "../../persistent-editor/persistent-editor.component";
5
- import * as i0 from "@angular/core";
6
- export declare class HtmlEditorStandaloneComponent implements ControlValueAccessor, Validator {
7
- PersistentEditor?: PersistentEditor;
8
- Readonly: boolean;
9
- Required: boolean;
10
- Validation: boolean;
11
- onEditorLoaded: EventEmitter<void>;
12
- value: string;
13
- initializeEditor(): void;
14
- ngOnDestroy(): void;
15
- Editor: any;
16
- EditorConfig: EditorConfig;
17
- EditorModel: {
18
- editorDataText: string;
19
- };
20
- private internalInitializeEditor;
21
- onEditorChange({ editor }: {
22
- editor: any;
23
- }): void;
24
- onTouched: () => void;
25
- propagateChange: (_: any) => void;
26
- registerOnChange(fn: any): void;
27
- registerOnTouched(fn: any): void;
28
- writeValue(obj: any): void;
29
- validate(c: FormControl): any;
30
- changed(): void;
31
- static ɵfac: i0.ɵɵFactoryDeclaration<HtmlEditorStandaloneComponent, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<HtmlEditorStandaloneComponent, "html-editor-standalone", never, { "PersistentEditor": { "alias": "PersistentEditor"; "required": false; }; "Readonly": { "alias": "Readonly"; "required": false; }; "Required": { "alias": "Required"; "required": false; }; "Validation": { "alias": "Validation"; "required": false; }; }, { "onEditorLoaded": "onEditorLoaded"; }, never, never, true, never>;
33
- }
@@ -1,39 +0,0 @@
1
- import { EventEmitter } from "@angular/core";
2
- import { ControlValueAccessor, FormControl, Validator } from "@angular/forms";
3
- import { EditorConfig } from "ckeditor5";
4
- import { PersistentEditor } from "../../persistent-editor/persistent-editor.component";
5
- import * as i0 from "@angular/core";
6
- export declare class MarkdownEditorStandaloneComponent implements ControlValueAccessor, Validator {
7
- Readonly: boolean;
8
- Required: boolean;
9
- Validation: boolean;
10
- MentionMarker: string;
11
- MentionEntities: {
12
- id: string;
13
- description: string;
14
- }[];
15
- onEditorLoaded: EventEmitter<void>;
16
- PersistentEditor?: PersistentEditor;
17
- private get mentionEntities();
18
- value: string;
19
- initializeEditor(): void;
20
- ngOnDestroy(): void;
21
- Editor: any;
22
- EditorConfig: EditorConfig;
23
- EditorModel: {
24
- editorDataText: string;
25
- };
26
- private internalInitializeEditor;
27
- onEditorChange({ editor }: {
28
- editor: any;
29
- }): void;
30
- onTouched: () => void;
31
- propagateChange: (_: any) => void;
32
- registerOnChange(fn: any): void;
33
- registerOnTouched(fn: any): void;
34
- writeValue(obj: any): void;
35
- validate(c: FormControl): any;
36
- changed(): void;
37
- static ɵfac: i0.ɵɵFactoryDeclaration<MarkdownEditorStandaloneComponent, never>;
38
- 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; }; "PersistentEditor": { "alias": "PersistentEditor"; "required": false; }; }, { "onEditorLoaded": "onEditorLoaded"; }, never, never, true, never>;
39
- }