Moved Tiptap extension types to their own file/export

This commit is contained in:
leekelleher
2024-09-17 09:58:38 +01:00
parent 01dc79c8c1
commit bab94a0152
6 changed files with 29 additions and 27 deletions

View File

@@ -1,4 +1,4 @@
import type { UmbTiptapExtensionBase } from '../../extensions/tiptap-extension.js';
import type { UmbTiptapExtensionBase } from '../../extensions/types.js';
import { css, customElement, html, property, state } from '@umbraco-cms/backoffice/external/lit';
import { loadManifestApi } from '@umbraco-cms/backoffice/extension-api';
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';

View File

@@ -1,4 +1,4 @@
import type { UmbTiptapExtensionBase, UmbTiptapToolbarButton } from '../../extensions/tiptap-extension.js';
import type { UmbTiptapExtensionBase, UmbTiptapToolbarButton } from '../../extensions/types.js';
import * as icons from './icons.js';
import { css, customElement, html, property, state, when } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';

View File

@@ -1 +1,2 @@
export * from './tiptap-extension.js';
export type * from './tiptap-extension.js';
export * from './types.js';

View File

@@ -1,31 +1,10 @@
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
import type { Editor, Extension, Mark, Node } from '@umbraco-cms/backoffice/external/tiptap';
import type { TemplateResult } from '@umbraco-cms/backoffice/external/lit';
import type { ManifestApi, UmbApi } from '@umbraco-cms/backoffice/extension-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import type { UmbTiptapExtensionBase } from './types.js';
import type { ManifestApi } from '@umbraco-cms/backoffice/extension-api';
export interface ManifestTiptapExtension extends ManifestApi<UmbTiptapExtensionBase> {
type: 'tiptapExtension';
}
// TODO: [LK] Move to a `types.ts` file!
export abstract class UmbTiptapExtensionBase extends UmbControllerBase implements UmbApi {
constructor(host: UmbControllerHost) {
super(host);
}
abstract getExtensions(): Array<Extension | Mark | Node>;
abstract getToolbarButtons(): Array<UmbTiptapToolbarButton>;
}
export interface UmbTiptapToolbarButton {
name: string;
icon: string | TemplateResult;
isActive: (editor?: Editor) => boolean | undefined;
command: (editor?: Editor) => boolean | undefined | void | Promise<boolean> | Promise<undefined> | Promise<void>;
}
declare global {
interface UmbExtensionManifestMap {
tiptapExtension: ManifestTiptapExtension;

View File

@@ -1,4 +1,4 @@
import { UmbTiptapExtensionBase } from './tiptap-extension.js';
import { UmbTiptapExtensionBase } from './types.js';
import { mergeAttributes, Node } from '@umbraco-cms/backoffice/external/tiptap';
import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
import type { Editor } from '@umbraco-cms/backoffice/external/tiptap';

View File

@@ -0,0 +1,22 @@
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
import type { Editor, Extension, Mark, Node } from '@umbraco-cms/backoffice/external/tiptap';
import type { TemplateResult } from '@umbraco-cms/backoffice/external/lit';
import type { UmbApi } from '@umbraco-cms/backoffice/extension-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export abstract class UmbTiptapExtensionBase extends UmbControllerBase implements UmbApi {
constructor(host: UmbControllerHost) {
super(host);
}
abstract getExtensions(): Array<Extension | Mark | Node>;
abstract getToolbarButtons(): Array<UmbTiptapToolbarButton>;
}
export interface UmbTiptapToolbarButton {
name: string;
icon: string | TemplateResult;
isActive: (editor?: Editor) => boolean | undefined;
command: (editor?: Editor) => boolean | undefined | void | Promise<boolean> | Promise<undefined> | Promise<void>;
}