diff --git a/src/Umbraco.Web.UI.Client/libs/controller/controller-host.mixin.ts b/src/Umbraco.Web.UI.Client/libs/controller/controller-host.mixin.ts index fc5df147a6..026ea14312 100644 --- a/src/Umbraco.Web.UI.Client/libs/controller/controller-host.mixin.ts +++ b/src/Umbraco.Web.UI.Client/libs/controller/controller-host.mixin.ts @@ -1,5 +1,5 @@ import { UmbControllerInterface } from './controller.interface'; -import type { HTMLElementConstructor } from '@umbraco-cms/backoffice/models'; +import type { HTMLElementConstructor } from '@umbraco-cms/backoffice/extensions-api'; export declare class UmbControllerHostElement extends HTMLElement { hasController(controller: UmbControllerInterface): boolean; diff --git a/src/Umbraco.Web.UI.Client/libs/element/element.mixin.ts b/src/Umbraco.Web.UI.Client/libs/element/element.mixin.ts index a53c101822..a1fbb7f34f 100644 --- a/src/Umbraco.Web.UI.Client/libs/element/element.mixin.ts +++ b/src/Umbraco.Web.UI.Client/libs/element/element.mixin.ts @@ -1,7 +1,5 @@ import { Observable } from 'rxjs'; - -import type { HTMLElementConstructor } from '@umbraco-cms/backoffice/models'; - +import type { HTMLElementConstructor } from '@umbraco-cms/backoffice/extensions-api'; import { UmbControllerHostElement, UmbControllerHostMixin } from '@umbraco-cms/backoffice/controller'; import { UmbContextToken, diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/create-extension-class.function.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/create-extension-class.function.ts index 5e5fe9c57c..45b7fde848 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/create-extension-class.function.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/create-extension-class.function.ts @@ -1,8 +1,7 @@ import { hasDefaultExport } from './has-default-export.function'; import { isManifestClassConstructorType } from './type-guards'; import { loadExtension } from './load-extension.function'; -import type { ClassConstructor } from '@umbraco-cms/backoffice/models'; -import type { ManifestClass } from '@umbraco-cms/backoffice/extensions-registry'; +import type { ManifestClass, ClassConstructor } from './types'; //TODO: Write tests for this method: export async function createExtensionClass( diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/create-extension-element.function.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/create-extension-element.function.ts index ee12ef1b55..07a282bac4 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/create-extension-element.function.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/create-extension-element.function.ts @@ -1,8 +1,7 @@ import { hasDefaultExport } from './has-default-export.function'; import { isManifestElementNameType } from './type-guards'; import { loadExtension } from './load-extension.function'; -import type { HTMLElementConstructor } from '@umbraco-cms/backoffice/models'; -import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-registry'; +import type { HTMLElementConstructor, ManifestElement } from './types'; export async function createExtensionElement( manifest: ManifestElement diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/entry-point-extension-initializer.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/entry-point-extension-initializer.ts index 43e57f663e..40201e8ec4 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/entry-point-extension-initializer.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/entry-point-extension-initializer.ts @@ -1,5 +1,7 @@ -import type { ManifestEntrypoint } from '../extensions-registry/models'; -import { hasInitExport, loadExtension, UmbExtensionRegistry } from '@umbraco-cms/backoffice/extensions-api'; +import type { ManifestEntrypoint } from './types'; +import { hasInitExport } from './has-init-export.function'; +import { loadExtension } from './load-extension.function'; +import { UmbExtensionRegistry } from './registry/extension.registry'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; export class UmbEntryPointExtensionInitializer { diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/index.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/index.ts index fd515e6f52..9370b946d0 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/index.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/index.ts @@ -8,3 +8,4 @@ export * from './create-extension-element-or-fallback.function'; export * from './create-extension-class.function'; export * from './umb-lifecycle.interface'; export * from './entry-point-extension-initializer'; +export * from './types'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/load-extension.function.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/load-extension.function.ts index fde314455c..849ffa5c50 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/load-extension.function.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/load-extension.function.ts @@ -1,5 +1,5 @@ import { isManifestJSType, isManifestLoaderType } from './type-guards'; -import type { ManifestWithLoader } from '@umbraco-cms/backoffice/extensions-registry'; +import type { ManifestWithLoader } from '@umbraco-cms/backoffice/extensions-api'; export async function loadExtension(manifest: ManifestWithLoader): Promise { try { diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/registry/extension.registry.test.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/registry/extension.registry.test.ts index a7cf61027a..730336c611 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/registry/extension.registry.test.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/registry/extension.registry.test.ts @@ -1,6 +1,7 @@ import { expect } from '@open-wc/testing'; +import type { ManifestKind } from '../types'; import { UmbExtensionRegistry } from './extension.registry'; -import type { ManifestKind, ManifestTypes } from '@umbraco-cms/backoffice/extensions-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extensions-registry'; describe('UmbExtensionRegistry', () => { let extensionRegistry: UmbExtensionRegistry; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/registry/extension.registry.ts index 69bafe3099..ad1a7387e6 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/registry/extension.registry.ts @@ -1,11 +1,6 @@ import { BehaviorSubject, map, Observable, distinctUntilChanged, combineLatest } from 'rxjs'; -import type { - ManifestTypes, - ManifestTypeMap, - ManifestBase, - SpecificManifestTypeOrManifestBase, - ManifestKind, -} from '@umbraco-cms/backoffice/extensions-registry'; +import type { ManifestTypeMap, ManifestBase, SpecificManifestTypeOrManifestBase, ManifestKind } from '../types'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extensions-registry'; function extensionArrayMemoization( previousValue: Array, diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-class-instance-type.function.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-class-instance-type.function.ts index 1683d083a2..7472005e30 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-class-instance-type.function.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-class-instance-type.function.ts @@ -1,4 +1,4 @@ -import type { ManifestClass, ManifestClassWithClassConstructor } from '@umbraco-cms/backoffice/extensions-registry'; +import type { ManifestClass, ManifestClassWithClassConstructor } from '../types'; export function isManifestClassConstructorType(manifest: unknown): manifest is ManifestClassWithClassConstructor { return typeof manifest === 'object' && manifest !== null && (manifest as ManifestClass).class !== undefined; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-classable-type.function.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-classable-type.function.ts index 7fefb4ff02..04913b5d29 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-classable-type.function.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-classable-type.function.ts @@ -1,7 +1,7 @@ +import type { ManifestBase, ManifestClass } from '../types'; import { isManifestJSType } from './is-manifest-js-type.function'; import { isManifestLoaderType } from './is-manifest-loader-type.function'; import { isManifestClassConstructorType } from './is-manifest-class-instance-type.function'; -import type { ManifestBase, ManifestClass } from '@umbraco-cms/backoffice/extensions-registry'; export function isManifestClassableType(manifest: ManifestBase): manifest is ManifestClass { return ( diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-element-name-type.function.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-element-name-type.function.ts index 0a1ec48892..2076793178 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-element-name-type.function.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-element-name-type.function.ts @@ -1,4 +1,4 @@ -import type { ManifestElement, ManifestElementWithElementName } from '@umbraco-cms/backoffice/extensions-registry'; +import type { ManifestElement, ManifestElementWithElementName } from '../types'; export function isManifestElementNameType(manifest: unknown): manifest is ManifestElementWithElementName { return typeof manifest === 'object' && manifest !== null && (manifest as ManifestElement).elementName !== undefined; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-elementable-type.function.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-elementable-type.function.ts index 603ded315d..f0643d92f2 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-elementable-type.function.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-elementable-type.function.ts @@ -1,7 +1,7 @@ +import type { ManifestElement, ManifestBase } from '../types'; import { isManifestElementNameType } from './is-manifest-element-name-type.function'; import { isManifestJSType } from './is-manifest-js-type.function'; import { isManifestLoaderType } from './is-manifest-loader-type.function'; -import type { ManifestElement, ManifestBase } from '@umbraco-cms/backoffice/extensions-registry'; export function isManifestElementableType( manifest: ManifestBase diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-js-type.function.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-js-type.function.ts index eb450b24a7..27e9aefb1f 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-js-type.function.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-js-type.function.ts @@ -1,4 +1,4 @@ -import type { ManifestBase, ManifestWithLoader } from '@umbraco-cms/backoffice/extensions-registry'; +import type { ManifestBase, ManifestWithLoader } from '../types'; export type ManifestJSType = ManifestWithLoader & { js: string }; export function isManifestJSType(manifest: ManifestBase | unknown): manifest is ManifestJSType { diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-loader-type.function.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-loader-type.function.ts index 389813a00d..5ee9ef3411 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-loader-type.function.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/type-guards/is-manifest-loader-type.function.ts @@ -1,8 +1,9 @@ +import type { ManifestBase, ManifestWithLoader } from '../types'; -import type { ManifestBase, ManifestWithLoader } from '@umbraco-cms/backoffice/extensions-registry'; export type ManifestLoaderType = ManifestWithLoader & { loader: () => Promise; }; + export function isManifestLoaderType(manifest: ManifestBase): manifest is ManifestLoaderType { return typeof (manifest as ManifestLoaderType).loader === 'function'; } diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-api/types.ts b/src/Umbraco.Web.UI.Client/libs/extensions-api/types.ts new file mode 100644 index 0000000000..bc99e42fd4 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/extensions-api/types.ts @@ -0,0 +1,157 @@ +import { ManifestTypes } from '@umbraco-cms/backoffice/extensions-registry'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export type HTMLElementConstructor = new (...args: any[]) => T; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export type ClassConstructor = new (...args: any[]) => T; + +export type ManifestTypeMap = { + [Manifest in ManifestTypes as Manifest['type']]: Manifest; +}; + +export type SpecificManifestTypeOrManifestBase = + T extends keyof ManifestTypeMap ? ManifestTypeMap[T] : ManifestBase; + +export interface ManifestBase { + /** + * The type of extension such as dashboard etc... + */ + type: string; + + /** + * The alias of the extension, ensure it is unique + */ + alias: string; + + /** + * The kind of the extension, used to group extensions together + * + * @examples ["button"] + */ + kind?: unknown; // I had to add the optional kind property set to undefined. To make the ManifestTypes recognize the Manifest Kind types. Notice that Kinds has to Omit the kind property when extending. + + /** + * The friendly name of the extension + */ + name: string; + + /** + * Extensions such as dashboards are ordered by weight with lower numbers being first in the list + */ + weight?: number; +} + +export interface ManifestKind { + type: 'kind'; + alias: string; + matchType: string; + matchKind: string; + manifest: Partial; +} + +export interface ManifestWithConditions { + /** + * Set the conditions for when the extension should be loaded + */ + conditions: ConditionsType; +} + +export interface ManifestWithLoader extends ManifestBase { + /** + * @TJS-ignore + */ + loader?: () => Promise; +} + +/** + * The type of extension such as dashboard etc... + */ +export interface ManifestClass + extends ManifestWithLoader<{ default: ClassConstructor }> { + readonly CLASS_TYPE?: ClassType; + + /** + * The file location of the javascript file to load + * @TJS-required + */ + js?: string; + + /** + * @TJS-ignore + */ + className?: string; + + /** + * @TJS-ignore + */ + class?: ClassConstructor; + //loader?: () => Promise; +} + +export interface ManifestClassWithClassConstructor extends ManifestClass { + class: ClassConstructor; +} + +export interface ManifestElement + extends ManifestWithLoader<{ default: ClassConstructor } | Omit> { + readonly ELEMENT_TYPE?: ElementType; + + /** + * The file location of the javascript file to load + * + * @TJS-require + */ + js?: string; + + /** + * The HTML web component name to use such as 'my-dashboard' + * Note it is NOT but just the name + */ + elementName?: string; + + //loader?: () => Promise; + + /** + * This contains properties specific to the type of extension + */ + meta?: unknown; +} + +export interface ManifestWithView extends ManifestElement { + meta: MetaManifestWithView; +} + +export interface MetaManifestWithView { + pathname: string; + label: string; + icon: string; +} + +export interface ManifestElementWithElementName extends ManifestElement { + /** + * The HTML web component name to use such as 'my-dashboard' + * Note it is NOT but just the name + */ + elementName: string; +} + +export interface ManifestWithMeta extends ManifestBase { + /** + * This contains properties specific to the type of extension + */ + meta: unknown; +} + +/** + * This type of extension gives full control and will simply load the specified JS file + * You could have custom logic to decide which extensions to load/register by using extensionRegistry + */ +export interface ManifestEntrypoint extends ManifestBase { + type: 'entryPoint'; + + /** + * The file location of the javascript file to load in the backoffice + */ + js: string; +} diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/collection-view.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/collection-view.model.ts index 31e4667675..68613fec5f 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/collection-view.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/collection-view.model.ts @@ -1,4 +1,4 @@ -import type { ManifestElement, ManifestWithConditions } from '.'; +import type { ManifestElement, ManifestWithConditions } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestCollectionView extends ManifestElement, ManifestWithConditions { type: 'collectionView'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/dashboard-collection.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/dashboard-collection.model.ts index 2ce68be8da..ef9ee97b5b 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/dashboard-collection.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/dashboard-collection.model.ts @@ -1,4 +1,4 @@ -import type { ManifestBase } from '.'; +import type { ManifestBase } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestDashboardCollection extends ManifestBase { type: 'dashboardCollection'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/dashboard.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/dashboard.model.ts index 1bbdb5c903..b7509a707e 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/dashboard.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/dashboard.model.ts @@ -1,5 +1,5 @@ import type { UmbDashboardExtensionElement } from '../interfaces'; -import type { ManifestElement, ManifestWithConditions } from '.'; +import type { ManifestElement, ManifestWithConditions } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestDashboard extends ManifestElement, diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/entity-action.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/entity-action.model.ts index f46fb6510c..b0e922c651 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/entity-action.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/entity-action.model.ts @@ -1,4 +1,4 @@ -import type { ManifestElement } from '.'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-api'; /** * An action to perform on an entity diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/entity-bulk-action.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/entity-bulk-action.model.ts index c1e7fc8728..36433b4aea 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/entity-bulk-action.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/entity-bulk-action.model.ts @@ -1,4 +1,4 @@ -import type { ManifestElement, ManifestWithConditions } from '.'; +import type { ManifestElement, ManifestWithConditions } from '@umbraco-cms/backoffice/extensions-api'; /** * An action to perform on multiple entities diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/external-login-provider.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/external-login-provider.model.ts index c51d5df20c..98bb11be75 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/external-login-provider.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/external-login-provider.model.ts @@ -1,5 +1,5 @@ import type { UmbExternalLoginProviderExtensionElement } from '../interfaces/external-login-provider-extension-element.interface'; -import type { ManifestElement } from '.'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestExternalLoginProvider extends ManifestElement { type: 'externalLoginProvider'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/header-app.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/header-app.model.ts index 06932383aa..1fe068d758 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/header-app.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/header-app.model.ts @@ -1,4 +1,4 @@ -import type { ManifestElement } from '.'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-api'; /** * Header apps are displayed in the top right corner of the backoffice diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/health-check.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/health-check.model.ts index b95dedf7eb..7ace48a541 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/health-check.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/health-check.model.ts @@ -1,4 +1,4 @@ -import type { ManifestElement } from '.'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestHealthCheck extends ManifestElement { type: 'healthCheck'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/index.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/index.ts index def8693ca7..1d23a38a17 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/index.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/index.ts @@ -25,8 +25,7 @@ import type { ManifestWorkspace } from './workspace.model'; import type { ManifestWorkspaceAction } from './workspace-action.model'; import type { ManifestWorkspaceEditorView } from './workspace-editor-view.model'; import type { ManifestWorkspaceViewCollection } from './workspace-view-collection.model'; - -import type { ClassConstructor } from '@umbraco-cms/backoffice/models'; +import type { ManifestBase, ManifestEntrypoint } from '@umbraco-cms/backoffice/extensions-api'; export * from './collection-view.model'; export * from './dashboard-collection.model'; @@ -92,157 +91,3 @@ export type ManifestTypes = | ManifestWorkspaceEditorView | ManifestWorkspaceViewCollection | ManifestBase; - -export type ManifestStandardTypes = ManifestTypes['type']; - -export type ManifestTypeMap = { - [Manifest in ManifestTypes as Manifest['type']]: Manifest; -}; - -export type SpecificManifestTypeOrManifestBase = - T extends keyof ManifestTypeMap ? ManifestTypeMap[T] : ManifestBase; - -export interface ManifestBase { - /** - * The type of extension such as dashboard etc... - */ - type: string; - - /** - * The alias of the extension, ensure it is unique - */ - alias: string; - - /** - * The kind of the extension, used to group extensions together - * - * @examples ["button"] - */ - kind?: unknown; // I had to add the optional kind property set to undefined. To make the ManifestTypes recognize the Manifest Kind types. Notice that Kinds has to Omit the kind property when extending. - - /** - * The friendly name of the extension - */ - name: string; - - /** - * Extensions such as dashboards are ordered by weight with lower numbers being first in the list - */ - weight?: number; -} - -export interface ManifestKind { - type: 'kind'; - alias: string; - matchType: string; - matchKind: string; - manifest: Partial; -} - -export interface ManifestWithConditions { - /** - * Set the conditions for when the extension should be loaded - */ - conditions: ConditionsType; -} - -export interface ManifestWithLoader extends ManifestBase { - /** - * @TJS-ignore - */ - loader?: () => Promise; -} - -/** - * The type of extension such as dashboard etc... - */ -export interface ManifestClass - extends ManifestWithLoader<{ default: ClassConstructor }> { - //type: ManifestStandardTypes; - readonly CLASS_TYPE?: ClassType; - - /** - * The file location of the javascript file to load - * @TJS-required - */ - js?: string; - - /** - * @TJS-ignore - */ - className?: string; - - /** - * @TJS-ignore - */ - class?: ClassConstructor; - //loader?: () => Promise; -} - -export interface ManifestClassWithClassConstructor extends ManifestClass { - class: ClassConstructor; -} - -export interface ManifestElement - extends ManifestWithLoader<{ default: ClassConstructor } | Omit> { - //type: ManifestStandardTypes; - readonly ELEMENT_TYPE?: ElementType; - - /** - * The file location of the javascript file to load - * - * @TJS-require - */ - js?: string; - - /** - * The HTML web component name to use such as 'my-dashboard' - * Note it is NOT but just the name - */ - elementName?: string; - - //loader?: () => Promise; - - /** - * This contains properties specific to the type of extension - */ - meta?: unknown; -} - -export interface ManifestWithView extends ManifestElement { - meta: MetaManifestWithView; -} - -export interface MetaManifestWithView { - pathname: string; - label: string; - icon: string; -} - -export interface ManifestElementWithElementName extends ManifestElement { - /** - * The HTML web component name to use such as 'my-dashboard' - * Note it is NOT but just the name - */ - elementName: string; -} - -export interface ManifestWithMeta extends ManifestBase { - /** - * This contains properties specific to the type of extension - */ - meta: unknown; -} - -/** - * This type of extension gives full control and will simply load the specified JS file - * You could have custom logic to decide which extensions to load/register by using extensionRegistry - */ -export interface ManifestEntrypoint extends ManifestBase { - type: 'entryPoint'; - - /** - * The file location of the javascript file to load in the backoffice - */ - js: string; -} diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/menu-item.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/menu-item.model.ts index 9823ce29e3..fc339ded20 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/menu-item.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/menu-item.model.ts @@ -1,5 +1,5 @@ import type { UmbMenuItemExtensionElement } from '../interfaces/menu-item-extension-element.interface'; -import type { ManifestElement } from '.'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestMenuItem extends ManifestElement { type: 'menuItem'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/menu.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/menu.model.ts index 3ca2a76b3c..f40db002de 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/menu.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/menu.model.ts @@ -1,4 +1,4 @@ -import type { ManifestElement } from '.'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestMenu extends ManifestElement { type: 'menu'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/modal.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/modal.model.ts index 2bace8be4d..43ca3acee1 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/modal.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/modal.model.ts @@ -1,4 +1,4 @@ -import type { ManifestElement } from '.'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestModal extends ManifestElement { type: 'modal'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/package-view.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/package-view.model.ts index bcb442f55f..f343346d17 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/package-view.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/package-view.model.ts @@ -1,4 +1,4 @@ -import type { ManifestElement } from '.'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestPackageView extends ManifestElement { type: 'packageView'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/property-action.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/property-action.model.ts index f1a89b43ee..cd9bcf2131 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/property-action.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/property-action.model.ts @@ -1,4 +1,4 @@ -import type { ManifestElement, ManifestWithConditions } from '.'; +import type { ManifestElement, ManifestWithConditions } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestPropertyAction extends ManifestElement, ManifestWithConditions { type: 'propertyAction'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/property-editor.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/property-editor.model.ts index 0094761351..225da55be4 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/property-editor.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/property-editor.model.ts @@ -1,5 +1,5 @@ import type { UmbPropertyEditorExtensionElement } from '../interfaces'; -import type { ManifestElement, ManifestBase } from '.'; +import type { ManifestElement, ManifestBase } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestPropertyEditorUI extends ManifestElement { type: 'propertyEditorUI'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/repository.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/repository.model.ts index 93b1d6f81c..567bcd66ca 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/repository.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/repository.model.ts @@ -1,5 +1,4 @@ -import type { ManifestClass } from '.'; - +import type { ManifestClass } from '@umbraco-cms/backoffice/extensions-api'; // TODO: Consider adding a ClassType for this manifest. (Currently we cannot know the scope of a repository, therefor we are going with unknown for now.) export interface ManifestRepository extends ManifestClass { type: 'repository'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/section-sidebar-app.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/section-sidebar-app.model.ts index 04e842a843..3820c20083 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/section-sidebar-app.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/section-sidebar-app.model.ts @@ -1,5 +1,5 @@ import type { UmbSectionSidebarAppExtensionElement } from '../interfaces/section-sidebar-app-extension-element.interface'; -import type { ManifestElement } from '.'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestSectionSidebarApp extends ManifestElement { type: 'sectionSidebarApp'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/section-view.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/section-view.model.ts index 8353f261a4..2b2bde4c21 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/section-view.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/section-view.model.ts @@ -1,5 +1,5 @@ import type { UmbSectionViewExtensionElement } from '../interfaces/section-view-extension-element.interface'; -import type { ManifestElement, ManifestWithConditions } from '.'; +import type { ManifestElement, ManifestWithConditions } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestSectionView extends ManifestElement, diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/section.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/section.model.ts index d91ffdefd7..b8df489769 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/section.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/section.model.ts @@ -1,5 +1,5 @@ import type { UmbSectionExtensionElement } from '../interfaces'; -import type { ManifestElement } from '.'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestSection extends ManifestElement { type: 'section'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/store.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/store.model.ts index cf738a7266..aab812981b 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/store.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/store.model.ts @@ -1,4 +1,4 @@ -import type { ManifestClass } from '.'; +import type { ManifestClass } from '@umbraco-cms/backoffice/extensions-api'; import { UmbItemStore, UmbStoreBase, UmbTreeStore } from '@umbraco-cms/backoffice/store'; export interface ManifestStore extends ManifestClass { diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/theme.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/theme.model.ts index b220be34b2..e2e2658443 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/theme.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/theme.model.ts @@ -1,4 +1,4 @@ -import type { ManifestWithLoader } from '.'; +import type { ManifestWithLoader } from '@umbraco-cms/backoffice/extensions-api'; // TODO: make or find type for JS Module with default export: Would be nice to support css file directly. diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/tree-item.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/tree-item.model.ts index 472d1605a5..9a1b2a0f2e 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/tree-item.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/tree-item.model.ts @@ -1,5 +1,5 @@ import { UmbTreeItemExtensionElement } from '../interfaces'; -import type { ManifestElement } from '.'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestTreeItem extends ManifestElement { type: 'treeItem'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/tree.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/tree.model.ts index 61283bbcbb..c31787ac5f 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/tree.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/tree.model.ts @@ -1,4 +1,4 @@ -import type { ManifestBase } from '.'; +import type { ManifestBase } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestTree extends ManifestBase { type: 'tree'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/user-profile-app.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/user-profile-app.model.ts index 41a8207914..74d1892c26 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/user-profile-app.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/user-profile-app.model.ts @@ -1,4 +1,4 @@ -import type { ManifestElement } from '.'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestUserProfileApp extends ManifestElement { type: 'userProfileApp'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace-action.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace-action.model.ts index 927b3fe31e..f7bfa78070 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace-action.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace-action.model.ts @@ -1,6 +1,5 @@ import type { InterfaceColor, InterfaceLook } from '@umbraco-ui/uui-base/lib/types/index'; -import type { ManifestElement } from '.'; -import type { ClassConstructor } from '@umbraco-cms/backoffice/models'; +import type { ManifestElement, ClassConstructor } from '@umbraco-cms/backoffice/extensions-api'; import { UmbWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; export interface ManifestWorkspaceAction extends ManifestElement { diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace-editor-view.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace-editor-view.model.ts index 61aab74915..37463a1ef1 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace-editor-view.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace-editor-view.model.ts @@ -1,5 +1,5 @@ import type { UmbWorkspaceEditorViewExtensionElement } from '../interfaces/workspace-editor-view-extension-element.interface'; -import type { ManifestWithView } from '.'; +import type { ManifestWithView } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestWorkspaceEditorView extends ManifestWithView { type: 'workspaceEditorView'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace-view-collection.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace-view-collection.model.ts index c0f53f870f..961ca5f115 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace-view-collection.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace-view-collection.model.ts @@ -1,4 +1,8 @@ -import type { ManifestWithConditions, ManifestWithView, MetaManifestWithView } from '.'; +import type { + ManifestWithConditions, + ManifestWithView, + MetaManifestWithView, +} from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestWorkspaceViewCollection extends ManifestWithView, diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace.model.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace.model.ts index d04fea3aa5..cec75ec8ec 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace.model.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/models/workspace.model.ts @@ -1,4 +1,4 @@ -import type { ManifestElement } from '.'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extensions-api'; export interface ManifestWorkspace extends ManifestElement { type: 'workspace'; diff --git a/src/Umbraco.Web.UI.Client/libs/models/index.ts b/src/Umbraco.Web.UI.Client/libs/models/index.ts index d2fccc54c2..236aae84f0 100644 --- a/src/Umbraco.Web.UI.Client/libs/models/index.ts +++ b/src/Umbraco.Web.UI.Client/libs/models/index.ts @@ -1,9 +1,3 @@ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export type HTMLElementConstructor = new (...args: any[]) => T; - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export type ClassConstructor = new (...args: any[]) => T; - /** Tried to find a common base of our entities — used by Entity Workspace Context */ export type UmbEntityBase = { id?: string; diff --git a/src/Umbraco.Web.UI.Client/libs/tree/tree.context.ts b/src/Umbraco.Web.UI.Client/libs/tree/tree.context.ts index 5ff7a7d41b..ec569ff721 100644 --- a/src/Umbraco.Web.UI.Client/libs/tree/tree.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/tree/tree.context.ts @@ -1,10 +1,9 @@ import { Observable, map } from 'rxjs'; import { UmbPagedData, UmbTreeRepository } from '@umbraco-cms/backoffice/repository'; -import type { ManifestTree } from '@umbraco-cms/backoffice/extensions-registry'; +import { ManifestTree, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-registry'; import { UmbBooleanState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { createExtensionClass } from '@umbraco-cms/backoffice/extensions-api'; -import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-registry'; import { ProblemDetailsModel, TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; import { UmbSelectionManagerBase } from '@umbraco-cms/backoffice/utils'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/components/header-app/header-app-button.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/components/header-app/header-app-button.element.ts index a21a2c190c..cb4a154281 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/components/header-app/header-app-button.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/components/header-app/header-app-button.element.ts @@ -2,11 +2,8 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, CSSResultGroup, html, LitElement } from 'lit'; import { customElement } from 'lit/decorators.js'; import { ifDefined } from 'lit/directives/if-defined.js'; -import { - ManifestHeaderAppButtonKind, - ManifestKind, - umbExtensionsRegistry, -} from '@umbraco-cms/backoffice/extensions-registry'; +import { ManifestHeaderAppButtonKind, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-registry'; +import { ManifestKind } from '@umbraco-cms/backoffice/extensions-api'; const manifest: ManifestKind = { type: 'kind', diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/components/section/section-sidebar-menu/section-sidebar-menu.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/components/section/section-sidebar-menu/section-sidebar-menu.element.ts index f52dd16b5b..a93335ed77 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/components/section/section-sidebar-menu/section-sidebar-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/components/section/section-sidebar-menu/section-sidebar-menu.element.ts @@ -2,11 +2,11 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { - ManifestKind, ManifestMenu, ManifestSectionSidebarAppMenuKind, umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extensions-registry'; +import { ManifestKind } from '@umbraco-cms/backoffice/extensions-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import '../../menu/menu.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/components/tree/entity-tree-item/entity-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/components/tree/entity-tree-item/entity-tree-item.element.ts index 4db5e61b19..3bf4960ae5 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/components/tree/entity-tree-item/entity-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/components/tree/entity-tree-item/entity-tree-item.element.ts @@ -4,11 +4,8 @@ import { customElement, property } from 'lit/decorators.js'; import { UmbEntityTreeItemContext } from './entity-tree-item.context'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { - ManifestKind, - UmbTreeItemExtensionElement, - umbExtensionsRegistry, -} from '@umbraco-cms/backoffice/extensions-registry'; +import { UmbTreeItemExtensionElement, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-registry'; +import { ManifestKind } from '@umbraco-cms/backoffice/extensions-api'; // TODO: Move to separate file: const manifest: ManifestKind = { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/components/tree/tree-menu-item/tree-menu-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/components/tree/tree-menu-item/tree-menu-item.element.ts index 4fe3f9ea96..d8f02cdb32 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/components/tree/tree-menu-item/tree-menu-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/components/tree/tree-menu-item/tree-menu-item.element.ts @@ -2,11 +2,11 @@ import { html, nothing } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { - ManifestKind, ManifestMenuItemTreeKind, UmbMenuItemExtensionElement, umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extensions-registry'; +import { ManifestKind } from '@umbraco-cms/backoffice/extensions-api'; // TODO: Move to separate file: const manifest: ManifestKind = { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/index.ts index 0e66702e0b..88c0ed9032 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/index.ts @@ -9,8 +9,8 @@ import { UmbBackofficeModalContainerElement } from './components/backoffice-fram import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import { UmbModalContext, UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; -import type { UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extensions-api'; -import { ManifestKind, ManifestTypes } from '@umbraco-cms/backoffice/extensions-registry'; +import type { UmbEntryPointOnInit, ManifestKind } from '@umbraco-cms/backoffice/extensions-api'; +import { ManifestTypes } from '@umbraco-cms/backoffice/extensions-registry'; import './notification'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/core/modals/folder/folder-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/core/modals/folder/folder-modal.element.ts index 14f05a916b..a46328835c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/core/modals/folder/folder-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/core/modals/folder/folder-modal.element.ts @@ -4,10 +4,10 @@ import { customElement, property, query, state } from 'lit/decorators.js'; import { UmbFolderModalData, UmbFolderModalResult, UmbModalHandler } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; -import { createExtensionClass } from '@umbraco-cms/backoffice/extensions-api'; +import { createExtensionClass, ManifestBase } from '@umbraco-cms/backoffice/extensions-api'; import { FolderReponseModel, ProblemDetailsModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -import { ManifestBase, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-registry'; @customElement('umb-folder-modal') export class UmbFolderModalElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.repository.ts index abe8c7deda..dddaea61a1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.repository.ts @@ -2,8 +2,7 @@ import { UmbPackageStore, UMB_PACKAGE_STORE_TOKEN } from './package.store'; import { UmbPackageServerDataSource } from './sources/package.server.data'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import type { ManifestBase } from '@umbraco-cms/backoffice/extensions-registry'; -import { isManifestJSType } from '@umbraco-cms/backoffice/extensions-api'; +import { isManifestJSType, ManifestBase } from '@umbraco-cms/backoffice/extensions-api'; import { OpenAPI } from '@umbraco-cms/backoffice/backend-api'; // TODO: Figure out if we should base stores like this on something more generic for "collections" rather than trees. diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.store.ts index 7a7cf0ff19..e1c3195407 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.store.ts @@ -4,7 +4,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import type { PackageMigrationStatusResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import type { ManifestBase } from '@umbraco-cms/backoffice/extensions-registry'; +import type { ManifestBase } from '@umbraco-cms/backoffice/extensions-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; export const UMB_PACKAGE_STORE_TOKEN = new UmbContextToken('UmbPackageStore'); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/templating/components/file-system-tree-item/file-system-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/templating/components/file-system-tree-item/file-system-tree-item.element.ts index f1a10d3ca2..febef42167 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/templating/components/file-system-tree-item/file-system-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/templating/components/file-system-tree-item/file-system-tree-item.element.ts @@ -4,7 +4,8 @@ import { customElement, property } from 'lit/decorators.js'; import { UmbTreeItemElement } from '../../../core/components/tree/tree-item/tree-item.element'; import { UmbFileSystemTreeItemContext } from './file-system-tree-item.context'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { ManifestKind, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-registry'; +import { ManifestKind } from '@umbraco-cms/backoffice/extensions-api'; import { FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; // TODO: Move to separate file: