@flogeez/angular-tiptap-editor 2.1.1 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,12 @@ All notable changes to `@flogeez/angular-tiptap-editor` will be documented in th
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.1.2] - 2026-01-21
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **Editable State Synchronization**: Fixed an issue where the `editable` state from the `[config]` input was ignored in favor of the standalone `[editable]` input. Both are now correctly merged, with `config.editable` taking precedence.
|
|
13
|
+
|
|
8
14
|
## [2.1.1] - 2026-01-20
|
|
9
15
|
|
|
10
16
|
### Fixed
|
|
@@ -5755,6 +5755,7 @@ class AngularTiptapEditorComponent {
|
|
|
5755
5755
|
return fromConfig === 'seamless';
|
|
5756
5756
|
return this.seamless();
|
|
5757
5757
|
});
|
|
5758
|
+
this.finalEditable = computed(() => this.config().editable ?? this.editable());
|
|
5758
5759
|
this.finalPlaceholder = computed(() => this.config().placeholder ?? (this.placeholder() || this.currentTranslations().editor.placeholder));
|
|
5759
5760
|
this.finalFillContainer = computed(() => this.config().fillContainer ?? this.fillContainer());
|
|
5760
5761
|
this.finalShowFooter = computed(() => this.config().showFooter ?? this.showFooter());
|
|
@@ -5905,9 +5906,9 @@ class AngularTiptapEditorComponent {
|
|
|
5905
5906
|
effect(() => {
|
|
5906
5907
|
const currentEditor = this.editor();
|
|
5907
5908
|
// An editor is "editable" if it's not disabled and editable mode is ON
|
|
5908
|
-
const isEditable = this.
|
|
5909
|
+
const isEditable = this.finalEditable() && !this.mergedDisabled();
|
|
5909
5910
|
// An editor is "readonly" if it's explicitly non-editable and not disabled
|
|
5910
|
-
const isReadOnly = !this.
|
|
5911
|
+
const isReadOnly = !this.finalEditable() && !this.mergedDisabled();
|
|
5911
5912
|
if (currentEditor) {
|
|
5912
5913
|
this.editorCommandsService.setEditable(currentEditor, isEditable);
|
|
5913
5914
|
}
|
|
@@ -6030,7 +6031,7 @@ class AngularTiptapEditorComponent {
|
|
|
6030
6031
|
element: this.editorElement().nativeElement,
|
|
6031
6032
|
extensions: extensions,
|
|
6032
6033
|
content: this.content(),
|
|
6033
|
-
editable: this.
|
|
6034
|
+
editable: this.finalEditable() && !this.mergedDisabled(),
|
|
6034
6035
|
autofocus: this.finalAutofocus(),
|
|
6035
6036
|
editorProps: {
|
|
6036
6037
|
attributes: {
|
|
@@ -6077,7 +6078,7 @@ class AngularTiptapEditorComponent {
|
|
|
6077
6078
|
toggleEditMode(event) {
|
|
6078
6079
|
event.preventDefault();
|
|
6079
6080
|
event.stopPropagation();
|
|
6080
|
-
const newEditable = !this.
|
|
6081
|
+
const newEditable = !this.finalEditable();
|
|
6081
6082
|
this.editableChange.emit(newEditable);
|
|
6082
6083
|
}
|
|
6083
6084
|
updateCharacterCount(editor) {
|
|
@@ -6182,7 +6183,7 @@ class AngularTiptapEditorComponent {
|
|
|
6182
6183
|
}
|
|
6183
6184
|
onEditorClick(event) {
|
|
6184
6185
|
const editor = this.editor();
|
|
6185
|
-
if (!editor || !this.
|
|
6186
|
+
if (!editor || !this.finalEditable())
|
|
6186
6187
|
return;
|
|
6187
6188
|
// Verify if click is on the container element and not on the content
|
|
6188
6189
|
const target = event.target;
|
|
@@ -6199,7 +6200,7 @@ class AngularTiptapEditorComponent {
|
|
|
6199
6200
|
}
|
|
6200
6201
|
}
|
|
6201
6202
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: AngularTiptapEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6202
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: AngularTiptapEditorComponent, isStandalone: true, selector: "angular-tiptap-editor", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, fillContainer: { classPropertyName: "fillContainer", publicName: "fillContainer", isSignal: true, isRequired: false, transformFunction: null }, showToolbar: { classPropertyName: "showToolbar", publicName: "showToolbar", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, showCharacterCount: { classPropertyName: "showCharacterCount", publicName: "showCharacterCount", isSignal: true, isRequired: false, transformFunction: null }, showWordCount: { classPropertyName: "showWordCount", publicName: "showWordCount", isSignal: true, isRequired: false, transformFunction: null }, maxCharacters: { classPropertyName: "maxCharacters", publicName: "maxCharacters", isSignal: true, isRequired: false, transformFunction: null }, enableOfficePaste: { classPropertyName: "enableOfficePaste", publicName: "enableOfficePaste", isSignal: true, isRequired: false, transformFunction: null }, enableSlashCommands: { classPropertyName: "enableSlashCommands", publicName: "enableSlashCommands", isSignal: true, isRequired: false, transformFunction: null }, slashCommands: { classPropertyName: "slashCommands", publicName: "slashCommands", isSignal: true, isRequired: false, transformFunction: null }, customSlashCommands: { classPropertyName: "customSlashCommands", publicName: "customSlashCommands", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, autofocus: { classPropertyName: "autofocus", publicName: "autofocus", isSignal: true, isRequired: false, transformFunction: null }, seamless: { classPropertyName: "seamless", publicName: "seamless", isSignal: true, isRequired: false, transformFunction: null }, floatingToolbar: { classPropertyName: "floatingToolbar", publicName: "floatingToolbar", isSignal: true, isRequired: false, transformFunction: null }, showEditToggle: { classPropertyName: "showEditToggle", publicName: "showEditToggle", isSignal: true, isRequired: false, transformFunction: null }, spellcheck: { classPropertyName: "spellcheck", publicName: "spellcheck", isSignal: true, isRequired: false, transformFunction: null }, tiptapExtensions: { classPropertyName: "tiptapExtensions", publicName: "tiptapExtensions", isSignal: true, isRequired: false, transformFunction: null }, tiptapOptions: { classPropertyName: "tiptapOptions", publicName: "tiptapOptions", isSignal: true, isRequired: false, transformFunction: null }, showBubbleMenu: { classPropertyName: "showBubbleMenu", publicName: "showBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, bubbleMenu: { classPropertyName: "bubbleMenu", publicName: "bubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, showImageBubbleMenu: { classPropertyName: "showImageBubbleMenu", publicName: "showImageBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, imageBubbleMenu: { classPropertyName: "imageBubbleMenu", publicName: "imageBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, toolbar: { classPropertyName: "toolbar", publicName: "toolbar", isSignal: true, isRequired: false, transformFunction: null }, showTableBubbleMenu: { classPropertyName: "showTableBubbleMenu", publicName: "showTableBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, tableBubbleMenu: { classPropertyName: "tableBubbleMenu", publicName: "tableBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, showCellBubbleMenu: { classPropertyName: "showCellBubbleMenu", publicName: "showCellBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, cellBubbleMenu: { classPropertyName: "cellBubbleMenu", publicName: "cellBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, stateCalculators: { classPropertyName: "stateCalculators", publicName: "stateCalculators", isSignal: true, isRequired: false, transformFunction: null }, imageUpload: { classPropertyName: "imageUpload", publicName: "imageUpload", isSignal: true, isRequired: false, transformFunction: null }, imageUploadHandler: { classPropertyName: "imageUploadHandler", publicName: "imageUploadHandler", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { contentChange: "contentChange", editorCreated: "editorCreated", editorUpdate: "editorUpdate", editorFocus: "editorFocus", editorBlur: "editorBlur", editableChange: "editableChange" }, host: { properties: { "class.fill-container": "finalFillContainer()", "class.floating-toolbar": "finalFloatingToolbar()", "class.is-readonly": "!
|
|
6203
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: AngularTiptapEditorComponent, isStandalone: true, selector: "angular-tiptap-editor", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, fillContainer: { classPropertyName: "fillContainer", publicName: "fillContainer", isSignal: true, isRequired: false, transformFunction: null }, showToolbar: { classPropertyName: "showToolbar", publicName: "showToolbar", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, showCharacterCount: { classPropertyName: "showCharacterCount", publicName: "showCharacterCount", isSignal: true, isRequired: false, transformFunction: null }, showWordCount: { classPropertyName: "showWordCount", publicName: "showWordCount", isSignal: true, isRequired: false, transformFunction: null }, maxCharacters: { classPropertyName: "maxCharacters", publicName: "maxCharacters", isSignal: true, isRequired: false, transformFunction: null }, enableOfficePaste: { classPropertyName: "enableOfficePaste", publicName: "enableOfficePaste", isSignal: true, isRequired: false, transformFunction: null }, enableSlashCommands: { classPropertyName: "enableSlashCommands", publicName: "enableSlashCommands", isSignal: true, isRequired: false, transformFunction: null }, slashCommands: { classPropertyName: "slashCommands", publicName: "slashCommands", isSignal: true, isRequired: false, transformFunction: null }, customSlashCommands: { classPropertyName: "customSlashCommands", publicName: "customSlashCommands", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, autofocus: { classPropertyName: "autofocus", publicName: "autofocus", isSignal: true, isRequired: false, transformFunction: null }, seamless: { classPropertyName: "seamless", publicName: "seamless", isSignal: true, isRequired: false, transformFunction: null }, floatingToolbar: { classPropertyName: "floatingToolbar", publicName: "floatingToolbar", isSignal: true, isRequired: false, transformFunction: null }, showEditToggle: { classPropertyName: "showEditToggle", publicName: "showEditToggle", isSignal: true, isRequired: false, transformFunction: null }, spellcheck: { classPropertyName: "spellcheck", publicName: "spellcheck", isSignal: true, isRequired: false, transformFunction: null }, tiptapExtensions: { classPropertyName: "tiptapExtensions", publicName: "tiptapExtensions", isSignal: true, isRequired: false, transformFunction: null }, tiptapOptions: { classPropertyName: "tiptapOptions", publicName: "tiptapOptions", isSignal: true, isRequired: false, transformFunction: null }, showBubbleMenu: { classPropertyName: "showBubbleMenu", publicName: "showBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, bubbleMenu: { classPropertyName: "bubbleMenu", publicName: "bubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, showImageBubbleMenu: { classPropertyName: "showImageBubbleMenu", publicName: "showImageBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, imageBubbleMenu: { classPropertyName: "imageBubbleMenu", publicName: "imageBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, toolbar: { classPropertyName: "toolbar", publicName: "toolbar", isSignal: true, isRequired: false, transformFunction: null }, showTableBubbleMenu: { classPropertyName: "showTableBubbleMenu", publicName: "showTableBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, tableBubbleMenu: { classPropertyName: "tableBubbleMenu", publicName: "tableBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, showCellBubbleMenu: { classPropertyName: "showCellBubbleMenu", publicName: "showCellBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, cellBubbleMenu: { classPropertyName: "cellBubbleMenu", publicName: "cellBubbleMenu", isSignal: true, isRequired: false, transformFunction: null }, stateCalculators: { classPropertyName: "stateCalculators", publicName: "stateCalculators", isSignal: true, isRequired: false, transformFunction: null }, imageUpload: { classPropertyName: "imageUpload", publicName: "imageUpload", isSignal: true, isRequired: false, transformFunction: null }, imageUploadHandler: { classPropertyName: "imageUploadHandler", publicName: "imageUploadHandler", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { contentChange: "contentChange", editorCreated: "editorCreated", editorUpdate: "editorUpdate", editorFocus: "editorFocus", editorBlur: "editorBlur", editableChange: "editableChange" }, host: { properties: { "class.fill-container": "finalFillContainer()", "class.floating-toolbar": "finalFloatingToolbar()", "class.is-readonly": "!finalEditable() && !mergedDisabled()", "class.is-disabled": "mergedDisabled()", "style.--ate-border-width": "finalSeamless() || mergedDisabled() ? '0' : null", "style.--ate-background": "finalSeamless() ? 'transparent' : (mergedDisabled() ? 'var(--ate-surface-tertiary)' : null)", "style.--ate-toolbar-border-color": "finalSeamless() ? 'transparent' : null", "style.--ate-counter-background": "finalSeamless() ? 'transparent' : null", "style.--ate-counter-border-color": "finalSeamless() ? 'transparent' : null", "class.dark": "config().theme === 'dark'", "attr.data-theme": "config().theme" } }, providers: [
|
|
6203
6204
|
EditorCommandsService,
|
|
6204
6205
|
ImageService,
|
|
6205
6206
|
ColorPickerService,
|
|
@@ -6207,7 +6208,7 @@ class AngularTiptapEditorComponent {
|
|
|
6207
6208
|
], viewQueries: [{ propertyName: "editorElement", first: true, predicate: ["editorElement"], descendants: true, isSignal: true }], hostDirectives: [{ directive: NoopValueAccessorDirective }], ngImport: i0, template: `
|
|
6208
6209
|
<div class="tiptap-editor">
|
|
6209
6210
|
<!-- Toolbar -->
|
|
6210
|
-
@if (
|
|
6211
|
+
@if (finalEditable() && !mergedDisabled() && finalShowToolbar() && editor()) {
|
|
6211
6212
|
<tiptap-toolbar
|
|
6212
6213
|
[editor]="editor()!"
|
|
6213
6214
|
[config]="finalToolbarConfig()"
|
|
@@ -6220,7 +6221,7 @@ class AngularTiptapEditorComponent {
|
|
|
6220
6221
|
|
|
6221
6222
|
@if (finalShowEditToggle() && !mergedDisabled()) {
|
|
6222
6223
|
<tiptap-edit-toggle
|
|
6223
|
-
[editable]="
|
|
6224
|
+
[editable]="finalEditable()"
|
|
6224
6225
|
[translations]="currentTranslations()"
|
|
6225
6226
|
(toggle)="toggleEditMode($event)"
|
|
6226
6227
|
/>
|
|
@@ -6237,7 +6238,7 @@ class AngularTiptapEditorComponent {
|
|
|
6237
6238
|
></div>
|
|
6238
6239
|
|
|
6239
6240
|
<!-- Text Bubble Menu -->
|
|
6240
|
-
@if (
|
|
6241
|
+
@if (finalEditable() && finalShowBubbleMenu() && editor()) {
|
|
6241
6242
|
<tiptap-bubble-menu
|
|
6242
6243
|
[editor]="editor()!"
|
|
6243
6244
|
[config]="finalBubbleMenuConfig()"
|
|
@@ -6246,7 +6247,7 @@ class AngularTiptapEditorComponent {
|
|
|
6246
6247
|
}
|
|
6247
6248
|
|
|
6248
6249
|
<!-- Image Bubble Menu -->
|
|
6249
|
-
@if (
|
|
6250
|
+
@if (finalEditable() && finalShowImageBubbleMenu() && editor()) {
|
|
6250
6251
|
<tiptap-image-bubble-menu
|
|
6251
6252
|
[editor]="editor()!"
|
|
6252
6253
|
[config]="finalImageBubbleMenuConfig()"
|
|
@@ -6256,7 +6257,7 @@ class AngularTiptapEditorComponent {
|
|
|
6256
6257
|
}
|
|
6257
6258
|
|
|
6258
6259
|
<!-- Link Bubble Menu -->
|
|
6259
|
-
@if (
|
|
6260
|
+
@if (finalEditable() && editor()) {
|
|
6260
6261
|
<tiptap-link-bubble-menu
|
|
6261
6262
|
[editor]="editor()!"
|
|
6262
6263
|
[style.display]="editorFullyInitialized() ? 'block' : 'none'"
|
|
@@ -6264,7 +6265,7 @@ class AngularTiptapEditorComponent {
|
|
|
6264
6265
|
}
|
|
6265
6266
|
|
|
6266
6267
|
<!-- Color Bubble Menu -->
|
|
6267
|
-
@if (
|
|
6268
|
+
@if (finalEditable() && editor()) {
|
|
6268
6269
|
<tiptap-color-bubble-menu
|
|
6269
6270
|
[editor]="editor()!"
|
|
6270
6271
|
[style.display]="editorFullyInitialized() ? 'block' : 'none'"
|
|
@@ -6272,7 +6273,7 @@ class AngularTiptapEditorComponent {
|
|
|
6272
6273
|
}
|
|
6273
6274
|
|
|
6274
6275
|
<!-- Slash Commands -->
|
|
6275
|
-
@if (
|
|
6276
|
+
@if (finalEditable() && finalEnableSlashCommands() && editor()) {
|
|
6276
6277
|
<tiptap-slash-commands
|
|
6277
6278
|
[editor]="editor()!"
|
|
6278
6279
|
[config]="finalSlashCommandsConfig()"
|
|
@@ -6281,7 +6282,7 @@ class AngularTiptapEditorComponent {
|
|
|
6281
6282
|
}
|
|
6282
6283
|
|
|
6283
6284
|
<!-- Table Menu -->
|
|
6284
|
-
@if (
|
|
6285
|
+
@if (finalEditable() && finalShowTableBubbleMenu() && editor()) {
|
|
6285
6286
|
<tiptap-table-bubble-menu
|
|
6286
6287
|
[editor]="editor()!"
|
|
6287
6288
|
[config]="finalTableBubbleMenuConfig()"
|
|
@@ -6290,7 +6291,7 @@ class AngularTiptapEditorComponent {
|
|
|
6290
6291
|
}
|
|
6291
6292
|
|
|
6292
6293
|
<!-- Cell Menu -->
|
|
6293
|
-
@if (
|
|
6294
|
+
@if (finalEditable() && finalShowCellBubbleMenu() && editor()) {
|
|
6294
6295
|
<tiptap-cell-bubble-menu
|
|
6295
6296
|
[editor]="editor()!"
|
|
6296
6297
|
[config]="finalCellBubbleMenuConfig()"
|
|
@@ -6299,7 +6300,7 @@ class AngularTiptapEditorComponent {
|
|
|
6299
6300
|
}
|
|
6300
6301
|
|
|
6301
6302
|
<!-- Counters -->
|
|
6302
|
-
@if (
|
|
6303
|
+
@if (finalEditable() && !mergedDisabled() && finalShowFooter() && (finalShowCharacterCount() || finalShowWordCount())) {
|
|
6303
6304
|
<div class="character-count" [class.limit-reached]="finalMaxCharacters() && characterCount() >= finalMaxCharacters()!">
|
|
6304
6305
|
@if (finalShowCharacterCount()) {
|
|
6305
6306
|
{{ characterCount() }}
|
|
@@ -6327,7 +6328,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
6327
6328
|
args: [{ selector: "angular-tiptap-editor", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [NoopValueAccessorDirective], host: {
|
|
6328
6329
|
'[class.fill-container]': 'finalFillContainer()',
|
|
6329
6330
|
'[class.floating-toolbar]': 'finalFloatingToolbar()',
|
|
6330
|
-
'[class.is-readonly]': '!
|
|
6331
|
+
'[class.is-readonly]': '!finalEditable() && !mergedDisabled()',
|
|
6331
6332
|
'[class.is-disabled]': 'mergedDisabled()',
|
|
6332
6333
|
'[style.--ate-border-width]': "finalSeamless() || mergedDisabled() ? '0' : null",
|
|
6333
6334
|
'[style.--ate-background]': "finalSeamless() ? 'transparent' : (mergedDisabled() ? 'var(--ate-surface-tertiary)' : null)",
|
|
@@ -6354,7 +6355,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
6354
6355
|
], template: `
|
|
6355
6356
|
<div class="tiptap-editor">
|
|
6356
6357
|
<!-- Toolbar -->
|
|
6357
|
-
@if (
|
|
6358
|
+
@if (finalEditable() && !mergedDisabled() && finalShowToolbar() && editor()) {
|
|
6358
6359
|
<tiptap-toolbar
|
|
6359
6360
|
[editor]="editor()!"
|
|
6360
6361
|
[config]="finalToolbarConfig()"
|
|
@@ -6367,7 +6368,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
6367
6368
|
|
|
6368
6369
|
@if (finalShowEditToggle() && !mergedDisabled()) {
|
|
6369
6370
|
<tiptap-edit-toggle
|
|
6370
|
-
[editable]="
|
|
6371
|
+
[editable]="finalEditable()"
|
|
6371
6372
|
[translations]="currentTranslations()"
|
|
6372
6373
|
(toggle)="toggleEditMode($event)"
|
|
6373
6374
|
/>
|
|
@@ -6384,7 +6385,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
6384
6385
|
></div>
|
|
6385
6386
|
|
|
6386
6387
|
<!-- Text Bubble Menu -->
|
|
6387
|
-
@if (
|
|
6388
|
+
@if (finalEditable() && finalShowBubbleMenu() && editor()) {
|
|
6388
6389
|
<tiptap-bubble-menu
|
|
6389
6390
|
[editor]="editor()!"
|
|
6390
6391
|
[config]="finalBubbleMenuConfig()"
|
|
@@ -6393,7 +6394,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
6393
6394
|
}
|
|
6394
6395
|
|
|
6395
6396
|
<!-- Image Bubble Menu -->
|
|
6396
|
-
@if (
|
|
6397
|
+
@if (finalEditable() && finalShowImageBubbleMenu() && editor()) {
|
|
6397
6398
|
<tiptap-image-bubble-menu
|
|
6398
6399
|
[editor]="editor()!"
|
|
6399
6400
|
[config]="finalImageBubbleMenuConfig()"
|
|
@@ -6403,7 +6404,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
6403
6404
|
}
|
|
6404
6405
|
|
|
6405
6406
|
<!-- Link Bubble Menu -->
|
|
6406
|
-
@if (
|
|
6407
|
+
@if (finalEditable() && editor()) {
|
|
6407
6408
|
<tiptap-link-bubble-menu
|
|
6408
6409
|
[editor]="editor()!"
|
|
6409
6410
|
[style.display]="editorFullyInitialized() ? 'block' : 'none'"
|
|
@@ -6411,7 +6412,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
6411
6412
|
}
|
|
6412
6413
|
|
|
6413
6414
|
<!-- Color Bubble Menu -->
|
|
6414
|
-
@if (
|
|
6415
|
+
@if (finalEditable() && editor()) {
|
|
6415
6416
|
<tiptap-color-bubble-menu
|
|
6416
6417
|
[editor]="editor()!"
|
|
6417
6418
|
[style.display]="editorFullyInitialized() ? 'block' : 'none'"
|
|
@@ -6419,7 +6420,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
6419
6420
|
}
|
|
6420
6421
|
|
|
6421
6422
|
<!-- Slash Commands -->
|
|
6422
|
-
@if (
|
|
6423
|
+
@if (finalEditable() && finalEnableSlashCommands() && editor()) {
|
|
6423
6424
|
<tiptap-slash-commands
|
|
6424
6425
|
[editor]="editor()!"
|
|
6425
6426
|
[config]="finalSlashCommandsConfig()"
|
|
@@ -6428,7 +6429,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
6428
6429
|
}
|
|
6429
6430
|
|
|
6430
6431
|
<!-- Table Menu -->
|
|
6431
|
-
@if (
|
|
6432
|
+
@if (finalEditable() && finalShowTableBubbleMenu() && editor()) {
|
|
6432
6433
|
<tiptap-table-bubble-menu
|
|
6433
6434
|
[editor]="editor()!"
|
|
6434
6435
|
[config]="finalTableBubbleMenuConfig()"
|
|
@@ -6437,7 +6438,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
6437
6438
|
}
|
|
6438
6439
|
|
|
6439
6440
|
<!-- Cell Menu -->
|
|
6440
|
-
@if (
|
|
6441
|
+
@if (finalEditable() && finalShowCellBubbleMenu() && editor()) {
|
|
6441
6442
|
<tiptap-cell-bubble-menu
|
|
6442
6443
|
[editor]="editor()!"
|
|
6443
6444
|
[config]="finalCellBubbleMenuConfig()"
|
|
@@ -6446,7 +6447,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
6446
6447
|
}
|
|
6447
6448
|
|
|
6448
6449
|
<!-- Counters -->
|
|
6449
|
-
@if (
|
|
6450
|
+
@if (finalEditable() && !mergedDisabled() && finalShowFooter() && (finalShowCharacterCount() || finalShowWordCount())) {
|
|
6450
6451
|
<div class="character-count" [class.limit-reached]="finalMaxCharacters() && characterCount() >= finalMaxCharacters()!">
|
|
6451
6452
|
@if (finalShowCharacterCount()) {
|
|
6452
6453
|
{{ characterCount() }}
|