From 67e93fae27d4b98e66c192dbcc61c16fe53c31ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 27 Apr 2023 16:03:28 +0200 Subject: [PATCH] UmbMenuItemExtensionElement --- .../libs/extensions-registry/interfaces/index.ts | 1 + .../interfaces/menu-item-extension-element.interface.ts | 5 +++++ .../libs/extensions-registry/models/menu-item.model.ts | 3 ++- .../tree/tree-menu-item/tree-menu-item.element.ts | 8 ++++++-- 4 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/libs/extensions-registry/interfaces/menu-item-extension-element.interface.ts diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/interfaces/index.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/interfaces/index.ts index 0454c17339..14fb03e1dc 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/interfaces/index.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/interfaces/index.ts @@ -1,5 +1,6 @@ export * from './dashboard-extension-element.interface'; export * from './external-login-provider-extension-element.interface'; +export * from './menu-item-extension-element.interface'; export * from './modal-extension-element.interface'; export * from './property-editor-ui-extension-element.interface'; export * from './section-extension-element.interface'; diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/interfaces/menu-item-extension-element.interface.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/interfaces/menu-item-extension-element.interface.ts new file mode 100644 index 0000000000..d44c658099 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/interfaces/menu-item-extension-element.interface.ts @@ -0,0 +1,5 @@ +import type { ManifestMenuItem } from '../models'; + +export interface UmbMenuItemExtensionElement extends HTMLElement { + item?: ManifestMenuItem; +} 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 354c3c2a37..9823ce29e3 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,6 +1,7 @@ +import type { UmbMenuItemExtensionElement } from '../interfaces/menu-item-extension-element.interface'; import type { ManifestElement } from '.'; -export interface ManifestMenuItem extends ManifestElement { +export interface ManifestMenuItem extends ManifestElement { type: 'menuItem'; meta: MetaMenuItem; conditions: ConditionsMenuItem; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-menu-item/tree-menu-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-menu-item/tree-menu-item.element.ts index 7922feb209..39d2a9ea28 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-menu-item/tree-menu-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-menu-item/tree-menu-item.element.ts @@ -4,7 +4,11 @@ import { ifDefined } from 'lit/directives/if-defined.js'; import { UUIMenuItemEvent } from '@umbraco-ui/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-api'; -import { ManifestKind, ManifestMenuItemTreeKind } from '@umbraco-cms/backoffice/extensions-registry'; +import { + ManifestKind, + ManifestMenuItemTreeKind, + UmbMenuItemExtensionElement, +} from '@umbraco-cms/backoffice/extensions-registry'; // TODO: Move to separate file: const manifest: ManifestKind = { @@ -20,7 +24,7 @@ const manifest: ManifestKind = { umbExtensionsRegistry.register(manifest); @customElement('umb-menu-item-tree') -export class UmbMenuItemTreeElement extends UmbLitElement { +export class UmbMenuItemTreeElement extends UmbLitElement implements UmbMenuItemExtensionElement { @state() private _renderTree = false;