@flogeez/angular-tiptap-editor 3.0.0 → 3.0.1
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), with the exception that the major version is specifically aligned with the major version of [Tiptap](https://tiptap.dev).
|
|
7
7
|
|
|
8
|
+
## [3.0.1] - 2026-02-06
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **Link & Underline extensions**: Native `Link` and `Underline` extensions are now utilized directly from `StarterKit` instead of being loaded as separate extensions.
|
|
13
|
+
|
|
8
14
|
## [3.0.0] - 2026-02-05
|
|
9
15
|
|
|
10
16
|
### Changed
|
|
@@ -4,11 +4,9 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
|
4
4
|
import { Node as Node$1, nodeInputRule, mergeAttributes, Extension, getAttributes, Editor } from '@tiptap/core';
|
|
5
5
|
import StarterKit from '@tiptap/starter-kit';
|
|
6
6
|
import { Placeholder, CharacterCount } from '@tiptap/extensions';
|
|
7
|
-
import { Underline } from '@tiptap/extension-underline';
|
|
8
7
|
import { Superscript } from '@tiptap/extension-superscript';
|
|
9
8
|
import { Subscript } from '@tiptap/extension-subscript';
|
|
10
9
|
import { TextAlign } from '@tiptap/extension-text-align';
|
|
11
|
-
import { Link } from '@tiptap/extension-link';
|
|
12
10
|
import { Highlight } from '@tiptap/extension-highlight';
|
|
13
11
|
import { TextStyle } from '@tiptap/extension-text-style';
|
|
14
12
|
import { Color } from '@tiptap/extension-color';
|
|
@@ -6347,18 +6345,19 @@ class AngularTiptapEditorComponent {
|
|
|
6347
6345
|
// Appearance & Fundamentals
|
|
6348
6346
|
this.finalSeamless = computed(() => {
|
|
6349
6347
|
const inputVal = this.seamless();
|
|
6350
|
-
if (inputVal !== undefined)
|
|
6348
|
+
if (inputVal !== undefined) {
|
|
6351
6349
|
return inputVal;
|
|
6350
|
+
}
|
|
6352
6351
|
const fromConfig = this.effectiveConfig().mode;
|
|
6353
6352
|
return fromConfig === "seamless";
|
|
6354
6353
|
}, ...(ngDevMode ? [{ debugName: "finalSeamless" }] : []));
|
|
6355
|
-
this.finalEditable = computed(() => this.editable() ?? this.effectiveConfig().editable, ...(ngDevMode ? [{ debugName: "finalEditable" }] : []));
|
|
6354
|
+
this.finalEditable = computed(() => this.editable() ?? this.effectiveConfig().editable ?? true, ...(ngDevMode ? [{ debugName: "finalEditable" }] : []));
|
|
6356
6355
|
this.finalPlaceholder = computed(() => this.placeholder() ??
|
|
6357
6356
|
this.effectiveConfig().placeholder ??
|
|
6358
6357
|
this.currentTranslations().editor.placeholder, ...(ngDevMode ? [{ debugName: "finalPlaceholder" }] : []));
|
|
6359
6358
|
this.finalFillContainer = computed(() => this.fillContainer() ?? this.effectiveConfig().fillContainer, ...(ngDevMode ? [{ debugName: "finalFillContainer" }] : []));
|
|
6360
|
-
this.finalShowFooter = computed(() => this.showFooter() ?? this.effectiveConfig().showFooter, ...(ngDevMode ? [{ debugName: "finalShowFooter" }] : []));
|
|
6361
|
-
this.finalShowEditToggle = computed(() => this.showEditToggle() ?? this.effectiveConfig().showEditToggle, ...(ngDevMode ? [{ debugName: "finalShowEditToggle" }] : []));
|
|
6359
|
+
this.finalShowFooter = computed(() => this.showFooter() ?? this.effectiveConfig().showFooter ?? true, ...(ngDevMode ? [{ debugName: "finalShowFooter" }] : []));
|
|
6360
|
+
this.finalShowEditToggle = computed(() => this.showEditToggle() ?? this.effectiveConfig().showEditToggle ?? false, ...(ngDevMode ? [{ debugName: "finalShowEditToggle" }] : []));
|
|
6362
6361
|
this.finalHeight = computed(() => {
|
|
6363
6362
|
const h = this.height() ?? this.effectiveConfig().height;
|
|
6364
6363
|
return typeof h === "number" ? `${h}px` : h;
|
|
@@ -6371,10 +6370,10 @@ class AngularTiptapEditorComponent {
|
|
|
6371
6370
|
const mh = this.maxHeight() ?? this.effectiveConfig().maxHeight;
|
|
6372
6371
|
return typeof mh === "number" ? `${mh}px` : mh;
|
|
6373
6372
|
}, ...(ngDevMode ? [{ debugName: "finalMaxHeight" }] : []));
|
|
6374
|
-
this.finalSpellcheck = computed(() => this.spellcheck() ?? this.effectiveConfig().spellcheck, ...(ngDevMode ? [{ debugName: "finalSpellcheck" }] : []));
|
|
6375
|
-
this.finalEnableOfficePaste = computed(() => this.enableOfficePaste() ?? this.effectiveConfig().enableOfficePaste, ...(ngDevMode ? [{ debugName: "finalEnableOfficePaste" }] : []));
|
|
6373
|
+
this.finalSpellcheck = computed(() => this.spellcheck() ?? this.effectiveConfig().spellcheck ?? true, ...(ngDevMode ? [{ debugName: "finalSpellcheck" }] : []));
|
|
6374
|
+
this.finalEnableOfficePaste = computed(() => this.enableOfficePaste() ?? this.effectiveConfig().enableOfficePaste ?? true, ...(ngDevMode ? [{ debugName: "finalEnableOfficePaste" }] : []));
|
|
6376
6375
|
// Features
|
|
6377
|
-
this.finalShowToolbar = computed(() => this.showToolbar() ?? this.effectiveConfig().showToolbar, ...(ngDevMode ? [{ debugName: "finalShowToolbar" }] : []));
|
|
6376
|
+
this.finalShowToolbar = computed(() => this.showToolbar() ?? this.effectiveConfig().showToolbar ?? true, ...(ngDevMode ? [{ debugName: "finalShowToolbar" }] : []));
|
|
6378
6377
|
this.finalToolbarConfig = computed(() => {
|
|
6379
6378
|
const fromInput = this.toolbar();
|
|
6380
6379
|
const fromConfig = this.effectiveConfig().toolbar;
|
|
@@ -6387,8 +6386,8 @@ class AngularTiptapEditorComponent {
|
|
|
6387
6386
|
}
|
|
6388
6387
|
return base;
|
|
6389
6388
|
}, ...(ngDevMode ? [{ debugName: "finalToolbarConfig" }] : []));
|
|
6390
|
-
this.finalFloatingToolbar = computed(() => this.floatingToolbar() ?? this.effectiveConfig().floatingToolbar, ...(ngDevMode ? [{ debugName: "finalFloatingToolbar" }] : []));
|
|
6391
|
-
this.finalShowBubbleMenu = computed(() => this.showBubbleMenu() ?? this.effectiveConfig().showBubbleMenu, ...(ngDevMode ? [{ debugName: "finalShowBubbleMenu" }] : []));
|
|
6389
|
+
this.finalFloatingToolbar = computed(() => this.floatingToolbar() ?? this.effectiveConfig().floatingToolbar ?? false, ...(ngDevMode ? [{ debugName: "finalFloatingToolbar" }] : []));
|
|
6390
|
+
this.finalShowBubbleMenu = computed(() => this.showBubbleMenu() ?? this.effectiveConfig().showBubbleMenu ?? true, ...(ngDevMode ? [{ debugName: "finalShowBubbleMenu" }] : []));
|
|
6392
6391
|
this.finalBubbleMenuConfig = computed(() => {
|
|
6393
6392
|
const fromInput = this.bubbleMenu();
|
|
6394
6393
|
const fromConfig = this.effectiveConfig().bubbleMenu;
|
|
@@ -6401,7 +6400,7 @@ class AngularTiptapEditorComponent {
|
|
|
6401
6400
|
}
|
|
6402
6401
|
return base;
|
|
6403
6402
|
}, ...(ngDevMode ? [{ debugName: "finalBubbleMenuConfig" }] : []));
|
|
6404
|
-
this.finalShowImageBubbleMenu = computed(() => this.showImageBubbleMenu() ?? this.effectiveConfig().showImageBubbleMenu, ...(ngDevMode ? [{ debugName: "finalShowImageBubbleMenu" }] : []));
|
|
6403
|
+
this.finalShowImageBubbleMenu = computed(() => this.showImageBubbleMenu() ?? this.effectiveConfig().showImageBubbleMenu ?? true, ...(ngDevMode ? [{ debugName: "finalShowImageBubbleMenu" }] : []));
|
|
6405
6404
|
this.finalImageBubbleMenuConfig = computed(() => {
|
|
6406
6405
|
const fromInput = this.imageBubbleMenu();
|
|
6407
6406
|
const fromConfig = this.effectiveConfig().imageBubbleMenu;
|
|
@@ -6414,7 +6413,7 @@ class AngularTiptapEditorComponent {
|
|
|
6414
6413
|
}
|
|
6415
6414
|
return base;
|
|
6416
6415
|
}, ...(ngDevMode ? [{ debugName: "finalImageBubbleMenuConfig" }] : []));
|
|
6417
|
-
this.finalShowTableBubbleMenu = computed(() => this.showTableBubbleMenu() ?? this.effectiveConfig().showTableMenu, ...(ngDevMode ? [{ debugName: "finalShowTableBubbleMenu" }] : []));
|
|
6416
|
+
this.finalShowTableBubbleMenu = computed(() => this.showTableBubbleMenu() ?? this.effectiveConfig().showTableMenu ?? true, ...(ngDevMode ? [{ debugName: "finalShowTableBubbleMenu" }] : []));
|
|
6418
6417
|
this.finalTableBubbleMenuConfig = computed(() => {
|
|
6419
6418
|
const fromInput = this.tableBubbleMenu();
|
|
6420
6419
|
const fromConfig = this.effectiveConfig().tableBubbleMenu;
|
|
@@ -6427,7 +6426,7 @@ class AngularTiptapEditorComponent {
|
|
|
6427
6426
|
}
|
|
6428
6427
|
return base;
|
|
6429
6428
|
}, ...(ngDevMode ? [{ debugName: "finalTableBubbleMenuConfig" }] : []));
|
|
6430
|
-
this.finalShowCellBubbleMenu = computed(() => this.showCellBubbleMenu() ?? this.effectiveConfig().showCellMenu, ...(ngDevMode ? [{ debugName: "finalShowCellBubbleMenu" }] : []));
|
|
6429
|
+
this.finalShowCellBubbleMenu = computed(() => this.showCellBubbleMenu() ?? this.effectiveConfig().showCellMenu ?? true, ...(ngDevMode ? [{ debugName: "finalShowCellBubbleMenu" }] : []));
|
|
6431
6430
|
this.finalCellBubbleMenuConfig = computed(() => {
|
|
6432
6431
|
const fromInput = this.cellBubbleMenu();
|
|
6433
6432
|
const fromConfig = this.effectiveConfig().cellBubbleMenu;
|
|
@@ -6440,7 +6439,7 @@ class AngularTiptapEditorComponent {
|
|
|
6440
6439
|
}
|
|
6441
6440
|
return base;
|
|
6442
6441
|
}, ...(ngDevMode ? [{ debugName: "finalCellBubbleMenuConfig" }] : []));
|
|
6443
|
-
this.finalEnableSlashCommands = computed(() => this.enableSlashCommands() ?? this.effectiveConfig().enableSlashCommands, ...(ngDevMode ? [{ debugName: "finalEnableSlashCommands" }] : []));
|
|
6442
|
+
this.finalEnableSlashCommands = computed(() => this.enableSlashCommands() ?? this.effectiveConfig().enableSlashCommands ?? true, ...(ngDevMode ? [{ debugName: "finalEnableSlashCommands" }] : []));
|
|
6444
6443
|
this.finalSlashCommandsConfig = computed(() => {
|
|
6445
6444
|
const fromInputComponent = this.customSlashCommands();
|
|
6446
6445
|
const fromConfigComponent = this.effectiveConfig().customSlashCommands;
|
|
@@ -6460,8 +6459,8 @@ class AngularTiptapEditorComponent {
|
|
|
6460
6459
|
// Behavior
|
|
6461
6460
|
this.finalAutofocus = computed(() => this.autofocus() ?? this.effectiveConfig().autofocus, ...(ngDevMode ? [{ debugName: "finalAutofocus" }] : []));
|
|
6462
6461
|
this.finalMaxCharacters = computed(() => this.maxCharacters() ?? this.effectiveConfig().maxCharacters, ...(ngDevMode ? [{ debugName: "finalMaxCharacters" }] : []));
|
|
6463
|
-
this.finalShowCharacterCount = computed(() => this.showCharacterCount() ?? this.effectiveConfig().showCharacterCount, ...(ngDevMode ? [{ debugName: "finalShowCharacterCount" }] : []));
|
|
6464
|
-
this.finalShowWordCount = computed(() => this.showWordCount() ?? this.effectiveConfig().showWordCount, ...(ngDevMode ? [{ debugName: "finalShowWordCount" }] : []));
|
|
6462
|
+
this.finalShowCharacterCount = computed(() => this.showCharacterCount() ?? this.effectiveConfig().showCharacterCount ?? true, ...(ngDevMode ? [{ debugName: "finalShowCharacterCount" }] : []));
|
|
6463
|
+
this.finalShowWordCount = computed(() => this.showWordCount() ?? this.effectiveConfig().showWordCount ?? true, ...(ngDevMode ? [{ debugName: "finalShowWordCount" }] : []));
|
|
6465
6464
|
this.finalLocale = computed(() => this.locale() ?? this.effectiveConfig().locale, ...(ngDevMode ? [{ debugName: "finalLocale" }] : []));
|
|
6466
6465
|
// Extensions & Options
|
|
6467
6466
|
this.finalTiptapExtensions = computed(() => this.tiptapExtensions() ?? this.effectiveConfig().tiptapExtensions ?? [], ...(ngDevMode ? [{ debugName: "finalTiptapExtensions" }] : []));
|
|
@@ -6619,7 +6618,14 @@ class AngularTiptapEditorComponent {
|
|
|
6619
6618
|
}
|
|
6620
6619
|
initEditor() {
|
|
6621
6620
|
const extensions = [
|
|
6622
|
-
StarterKit
|
|
6621
|
+
StarterKit.configure({
|
|
6622
|
+
link: {
|
|
6623
|
+
openOnClick: false,
|
|
6624
|
+
HTMLAttributes: {
|
|
6625
|
+
class: "ate-link",
|
|
6626
|
+
},
|
|
6627
|
+
},
|
|
6628
|
+
}),
|
|
6623
6629
|
TextStyle,
|
|
6624
6630
|
Color.configure({
|
|
6625
6631
|
types: ["textStyle"],
|
|
@@ -6627,18 +6633,11 @@ class AngularTiptapEditorComponent {
|
|
|
6627
6633
|
Placeholder.configure({
|
|
6628
6634
|
placeholder: this.finalPlaceholder(),
|
|
6629
6635
|
}),
|
|
6630
|
-
Underline,
|
|
6631
6636
|
Superscript,
|
|
6632
6637
|
Subscript,
|
|
6633
6638
|
TextAlign.configure({
|
|
6634
6639
|
types: ["heading", "paragraph"],
|
|
6635
6640
|
}),
|
|
6636
|
-
Link.configure({
|
|
6637
|
-
openOnClick: false,
|
|
6638
|
-
HTMLAttributes: {
|
|
6639
|
-
class: "ate-link",
|
|
6640
|
-
},
|
|
6641
|
-
}),
|
|
6642
6641
|
AteLinkClickBehavior,
|
|
6643
6642
|
Highlight.configure({
|
|
6644
6643
|
multicolor: true,
|