Skip to content

Commit abf2fea

Browse files
committed
Refactored default Tiptap toolbar configuration
Removed the `isDefault` property, replaced with property-editor's `defaultData`.
1 parent 9cb75e7 commit abf2fea

File tree

6 files changed

+122
-124
lines changed

6 files changed

+122
-124
lines changed

src/packages/rte/tiptap/extensions/manifests.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ const umbToolbarExtensions: Array<ManifestTiptapToolbarExtension | ManifestTipta
4444
alias: 'umbLink',
4545
icon: 'icon-link',
4646
label: '#defaultdialogs_urlLinkPicker',
47-
isDefault: true,
4847
},
4948
},
5049
{
@@ -58,7 +57,6 @@ const umbToolbarExtensions: Array<ManifestTiptapToolbarExtension | ManifestTipta
5857
alias: 'umbMedia',
5958
icon: 'icon-picture',
6059
label: 'Media picker',
61-
isDefault: true,
6260
},
6361
},
6462
{

src/packages/rte/tiptap/extensions/tiptap-toolbar-extension.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ export interface MetaTiptapToolbarExtension {
1313
alias: string;
1414
icon: string;
1515
label: string;
16-
isDefault?: boolean;
1716
}
1817

1918
export interface ManifestTiptapToolbarExtensionButtonKind<

src/packages/rte/tiptap/extensions/toolbar/manifests.ts

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
1515
alias: 'blockquote',
1616
icon: 'icon-blockquote',
1717
label: 'Blockquote',
18-
isDefault: true,
1918
},
2019
},
2120
{
@@ -29,7 +28,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
2928
alias: 'bold',
3029
icon: 'icon-bold',
3130
label: 'Bold',
32-
isDefault: true,
3331
},
3432
},
3533
{
@@ -43,7 +41,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
4341
alias: 'codeBlock',
4442
icon: 'icon-code',
4543
label: 'Code Block',
46-
isDefault: true,
4744
},
4845
},
4946
{
@@ -57,7 +54,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
5754
alias: 'bulletList',
5855
icon: 'icon-bulleted-list',
5956
label: 'Bullet List',
60-
isDefault: true,
6157
},
6258
},
6359
{
@@ -71,7 +67,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
7167
alias: 'orderedList',
7268
icon: 'icon-ordered-list',
7369
label: 'Ordered List',
74-
isDefault: true,
7570
},
7671
},
7772
{
@@ -99,7 +94,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
9994
alias: 'strike',
10095
icon: 'icon-strikethrough',
10196
label: 'Strike',
102-
isDefault: true,
10397
},
10498
},
10599
{
@@ -113,7 +107,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
113107
alias: 'subscript',
114108
icon: 'icon-subscript',
115109
label: 'Subscript',
116-
isDefault: true,
117110
},
118111
},
119112
{
@@ -127,7 +120,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
127120
alias: 'superscript',
128121
icon: 'icon-superscript',
129122
label: 'Superscript',
130-
isDefault: true,
131123
},
132124
},
133125
{
@@ -154,7 +146,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
154146
alias: 'heading1',
155147
icon: 'icon-heading-1',
156148
label: 'Heading 1',
157-
isDefault: true,
158149
},
159150
},
160151
{
@@ -168,7 +159,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
168159
alias: 'heading2',
169160
icon: 'icon-heading-2',
170161
label: 'Heading 2',
171-
isDefault: true,
172162
},
173163
},
174164
{
@@ -182,7 +172,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
182172
alias: 'heading3',
183173
icon: 'icon-heading-3',
184174
label: 'Heading 3',
185-
isDefault: true,
186175
},
187176
},
188177
{
@@ -209,7 +198,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
209198
alias: 'italic',
210199
icon: 'icon-italic',
211200
label: 'Italic',
212-
isDefault: true,
213201
},
214202
},
215203
{
@@ -223,7 +211,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
223211
alias: 'text-align-center',
224212
icon: 'icon-text-align-center',
225213
label: 'Text Align Center',
226-
isDefault: true,
227214
},
228215
},
229216
{
@@ -250,7 +237,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
250237
alias: 'text-align-left',
251238
icon: 'icon-text-align-left',
252239
label: 'Text Align Left',
253-
isDefault: true,
254240
},
255241
},
256242
{
@@ -264,7 +250,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
264250
alias: 'text-align-right',
265251
icon: 'icon-text-align-right',
266252
label: 'Text Align Right',
267-
isDefault: true,
268253
},
269254
},
270255
{
@@ -278,7 +263,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
278263
alias: 'underline',
279264
icon: 'icon-underline',
280265
label: 'Underline',
281-
isDefault: true,
282266
},
283267
},
284268
{
@@ -307,7 +291,6 @@ export const manifests: Array<ManifestTiptapToolbarExtension | ManifestTiptapToo
307291
alias: 'unlink',
308292
icon: 'icon-unlink',
309293
label: 'Unlink',
310-
isDefault: true,
311294
},
312295
},
313296
];

src/packages/rte/tiptap/property-editors/property-editor-ui-tiptap-extensions-configuration.element.ts

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,48 +9,43 @@ import {
99
type UmbPropertyEditorUiElement,
1010
} from '@umbraco-cms/backoffice/property-editor';
1111

12-
type ExtensionConfig = {
12+
type UmbTiptapExtensionConfig = {
1313
alias: string;
1414
label: string;
1515
icon?: string;
1616
group: string;
1717
};
1818

19-
type ExtensionGroupItem = {
19+
type UmbTiptapExtensionGroupItem = {
2020
alias: string;
2121
label: string;
2222
icon?: string;
2323
selected: boolean;
2424
};
2525

26-
type ExtensionGroup = {
26+
type UmbTiptapExtensionGroup = {
2727
group: string;
28-
extensions: ExtensionGroupItem[];
28+
extensions: UmbTiptapExtensionGroupItem[];
2929
};
3030

31-
@customElement('umb-property-editor-ui-tiptap-extensions-configuration')
31+
const elementName = 'umb-property-editor-ui-tiptap-extensions-configuration';
32+
33+
@customElement(elementName)
3234
export class UmbPropertyEditorUiTiptapExtensionsConfigurationElement
3335
extends UmbLitElement
3436
implements UmbPropertyEditorUiElement
3537
{
3638
@property({ attribute: false })
37-
set value(value: string[] | undefined) {
38-
this.#value = value;
39-
}
40-
get value(): string[] | undefined {
41-
return this.#value;
42-
}
43-
44-
#value?: string[] = [];
39+
value?: Array<string> = [];
4540

4641
@property({ attribute: false })
4742
config?: UmbPropertyEditorConfigCollection;
4843

4944
@state()
50-
private _extensionCategories: ExtensionGroup[] = [];
45+
private _extensionCategories: UmbTiptapExtensionGroup[] = [];
5146

5247
@state()
53-
private _extensionConfigs: ExtensionConfig[] = [];
48+
private _extensionConfigs: UmbTiptapExtensionConfig[] = [];
5449

5550
protected override async firstUpdated(_changedProperties: PropertyValueMap<unknown>) {
5651
super.firstUpdated(_changedProperties);
@@ -69,7 +64,7 @@ export class UmbPropertyEditorUiTiptapExtensionsConfigurationElement
6964

7065
if (!this.value) {
7166
// The default value is all extensions enabled
72-
this.#value = this._extensionConfigs.map((ext) => ext.alias);
67+
this.value = this._extensionConfigs.map((ext) => ext.alias);
7368
this.dispatchEvent(new UmbPropertyValueChangeEvent());
7469
}
7570

@@ -88,7 +83,7 @@ export class UmbPropertyEditorUiTiptapExtensionsConfigurationElement
8883

8984
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
9085
// @ts-expect-error
91-
const grouped = Object.groupBy(withSelectedProperty, (item: ExtensionConfig) => item.group || 'Uncategorized');
86+
const grouped = Object.groupBy(withSelectedProperty, (item: UmbTiptapExtensionConfig) => item.group || 'Uncategorized');
9287

9388
this._extensionCategories = Object.keys(grouped)
9489
.sort((a, b) => a.localeCompare(b))
@@ -98,17 +93,17 @@ export class UmbPropertyEditorUiTiptapExtensionsConfigurationElement
9893
}));
9994
}
10095

101-
#onExtensionClick(item: ExtensionGroupItem) {
96+
#onExtensionClick(item: UmbTiptapExtensionGroupItem) {
10297
item.selected = !item.selected;
10398

10499
if (!this.value) {
105100
this.value = [];
106101
}
107102

108103
if (item.selected) {
109-
this.#value = [...this.value, item.alias];
104+
this.value = [...this.value, item.alias];
110105
} else {
111-
this.#value = this.value.filter((alias) => alias !== item.alias);
106+
this.value = this.value.filter((alias) => alias !== item.alias);
112107
}
113108

114109
this.requestUpdate('_extensionCategories');
@@ -203,10 +198,10 @@ export class UmbPropertyEditorUiTiptapExtensionsConfigurationElement
203198
];
204199
}
205200

206-
export default UmbPropertyEditorUiTiptapExtensionsConfigurationElement;
201+
export { UmbPropertyEditorUiTiptapExtensionsConfigurationElement as element };
207202

208203
declare global {
209204
interface HTMLElementTagNameMap {
210-
'umb-property-editor-ui-tiptap-extensions-configuration': UmbPropertyEditorUiTiptapExtensionsConfigurationElement;
205+
[elementName]: UmbPropertyEditorUiTiptapExtensionsConfigurationElement;
211206
}
212207
}

0 commit comments

Comments
 (0)