Refactored tiptapExtension to register as global manifest
This commit is contained in:
@@ -42,7 +42,6 @@ import type { ManifestSectionView } from './section-view.model.js';
|
||||
import type { ManifestStore, ManifestTreeStore, ManifestItemStore } from './store.model.js';
|
||||
import type { ManifestTheme } from './theme.model.js';
|
||||
import type { ManifestTinyMcePlugin } from './tinymce-plugin.model.js';
|
||||
import type { ManifestTiptapExtension } from './tiptap-extension.model.js';
|
||||
import type { ManifestTree } from './tree.model.js';
|
||||
import type { ManifestTreeItem } from './tree-item.model.js';
|
||||
import type { ManifestUfmComponent } from './ufm-component.model.js';
|
||||
@@ -114,7 +113,6 @@ export type * from './section.model.js';
|
||||
export type * from './store.model.js';
|
||||
export type * from './theme.model.js';
|
||||
export type * from './tinymce-plugin.model.js';
|
||||
export type * from './tiptap-extension.model.js';
|
||||
export type * from './tree-item.model.js';
|
||||
export type * from './tree.model.js';
|
||||
export type * from './ufm-component.model.js';
|
||||
@@ -208,7 +206,6 @@ export type ManifestTypes =
|
||||
| ManifestStore
|
||||
| ManifestTheme
|
||||
| ManifestTinyMcePlugin
|
||||
| ManifestTiptapExtension
|
||||
| ManifestTree
|
||||
| ManifestTreeItem
|
||||
| ManifestTreeStore
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
import type { UmbTiptapExtensionBase } from '@umbraco-cms/backoffice/tiptap';
|
||||
import type { ManifestApi } from '@umbraco-cms/backoffice/extension-api';
|
||||
|
||||
export interface ManifestTiptapExtension extends ManifestApi<UmbTiptapExtensionBase> {
|
||||
type: 'tiptapExtension';
|
||||
}
|
||||
@@ -1,2 +1 @@
|
||||
export * from './input-tiptap.element.js';
|
||||
export * from './tiptap-extension.js';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { UmbTiptapExtensionBase } from './tiptap-extension.js';
|
||||
import type { UmbTiptapExtensionBase } from '../../extensions/tiptap-extension.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';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { UmbTiptapExtensionBase, UmbTiptapToolbarButton } from '../../extensions/tiptap-extension.js';
|
||||
import * as icons from './icons.js';
|
||||
import type { UmbTiptapExtensionBase, UmbTiptapToolbarButton } from './tiptap-extension.js';
|
||||
import { css, customElement, html, property, state, when } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
import type { Editor } from '@umbraco-cms/backoffice/external/tiptap';
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export * from './tiptap-extension.js';
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ManifestTiptapExtension } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { ManifestTiptapExtension } from './tiptap-extension.js';
|
||||
|
||||
export const manifests: Array<ManifestTiptapExtension> = [
|
||||
{
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
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 { ManifestApi, UmbApi } from '@umbraco-cms/backoffice/extension-api';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-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);
|
||||
@@ -20,3 +25,9 @@ export interface UmbTiptapToolbarButton {
|
||||
isActive: (editor?: Editor) => boolean | undefined;
|
||||
command: (editor?: Editor) => boolean | undefined | void | Promise<boolean> | Promise<undefined> | Promise<void>;
|
||||
}
|
||||
|
||||
declare global {
|
||||
interface UmbExtensionManifestMap {
|
||||
tiptapExtension: ManifestTiptapExtension;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import { UmbTiptapExtensionBase } from '../components/input-tiptap/tiptap-extension.js';
|
||||
import { UmbTiptapExtensionBase } from './tiptap-extension.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';
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
export * from './components/index.js';
|
||||
export * from './extensions/index.js';
|
||||
|
||||
Reference in New Issue
Block a user