Merge pull request #2386 from umbraco/v15/feature/emm-menu
Extension Manifest Map: Menu
This commit is contained in:
@@ -7,10 +7,6 @@ export type * from './external-login-provider-element.interface.js';
|
||||
export type * from './external-login-provider.extension.js';
|
||||
export type * from './global-context.extension.js';
|
||||
export type * from './header-app.extension.js';
|
||||
export type * from './menu-item-element.interface.js';
|
||||
export type * from './menu-item-element.interface.js';
|
||||
export type * from './menu-item.extension.js';
|
||||
export type * from './menu.extension.js';
|
||||
export type * from './mfa-login-provider.extension.js';
|
||||
export type * from './preview-app.extension.js';
|
||||
export type * from './repository.extension.js';
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
import type { UmbMenuItemElement } from './menu-item-element.interface.js';
|
||||
import type { ManifestWithDynamicConditions, ManifestElement } from '@umbraco-cms/backoffice/extension-api';
|
||||
|
||||
export interface ManifestMenuItem
|
||||
extends ManifestElement<UmbMenuItemElement>,
|
||||
ManifestWithDynamicConditions<UmbExtensionCondition> {
|
||||
type: 'menuItem';
|
||||
meta: MetaMenuItem;
|
||||
}
|
||||
|
||||
export interface MetaMenuItem {
|
||||
label: string;
|
||||
menus: Array<string>;
|
||||
entityType?: string;
|
||||
icon?: string;
|
||||
}
|
||||
|
||||
export interface ManifestMenuItemTreeKind extends ManifestMenuItem {
|
||||
type: 'menuItem';
|
||||
kind: 'tree';
|
||||
meta: MetaMenuItemTreeKind;
|
||||
}
|
||||
|
||||
export interface MetaMenuItemTreeKind extends MetaMenuItem {
|
||||
treeAlias: string;
|
||||
hideTreeRoot?: boolean;
|
||||
}
|
||||
|
||||
export interface ManifestMenuItemLinkKind extends ManifestMenuItem {
|
||||
type: 'menuItem';
|
||||
kind: 'link';
|
||||
meta: MetaMenuItemLinkKind;
|
||||
}
|
||||
|
||||
export interface MetaMenuItemLinkKind extends MetaMenuItem {
|
||||
href: string;
|
||||
}
|
||||
|
||||
export type UmbMenuItemExtensions = ManifestMenuItem | ManifestMenuItemTreeKind | ManifestMenuItemLinkKind;
|
||||
|
||||
declare global {
|
||||
interface UmbExtensionManifestMap {
|
||||
UmbMenuItemExtensions: UmbMenuItemExtensions;
|
||||
}
|
||||
}
|
||||
@@ -1 +1,2 @@
|
||||
export * from './menu-item-default.element.js';
|
||||
export * from './link/index.js';
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export * from './types.js';
|
||||
@@ -1,6 +1,7 @@
|
||||
import type { UmbMenuItemElement } from '../../../menu-item-element.interface.js';
|
||||
import type { ManifestMenuItemLinkKind } from './types.js';
|
||||
import { customElement, html, property } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
import type { ManifestMenuItemLinkKind, UmbMenuItemElement } from '@umbraco-cms/backoffice/extension-registry';
|
||||
|
||||
const elementName = 'umb-link-menu-item';
|
||||
@customElement(elementName)
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
import type { ManifestMenuItem, MetaMenuItem } from '../../../menu-item.extension.js';
|
||||
|
||||
export interface ManifestMenuItemLinkKind extends ManifestMenuItem {
|
||||
type: 'menuItem';
|
||||
kind: 'link';
|
||||
meta: MetaMenuItemLinkKind;
|
||||
}
|
||||
|
||||
export interface MetaMenuItemLinkKind extends MetaMenuItem {
|
||||
href: string;
|
||||
}
|
||||
|
||||
declare global {
|
||||
interface UmbExtensionManifestMap {
|
||||
umbLinkMenuItemKind: ManifestMenuItemLinkKind;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
import type { UmbMenuItemElement } from '../../menu-item-element.interface.js';
|
||||
import type { ManifestMenuItem } from '../../menu-item.extension.js';
|
||||
import { customElement, html, property, state } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
import { UMB_SECTION_CONTEXT } from '@umbraco-cms/backoffice/section';
|
||||
import type { ManifestMenuItem, UmbMenuItemElement } from '@umbraco-cms/backoffice/extension-registry';
|
||||
|
||||
@customElement('umb-menu-item-default')
|
||||
export class UmbMenuItemDefaultElement extends UmbLitElement implements UmbMenuItemElement {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { ManifestMenu } from '../../menu.extension.js';
|
||||
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
|
||||
import { UmbDeepState } from '@umbraco-cms/backoffice/observable-api';
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { ManifestMenu } from '../../menu.extension.js';
|
||||
import type { ManifestMenuItem } from '../../menu-item.extension.js';
|
||||
import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit';
|
||||
import type { ManifestMenu, ManifestMenuItem } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
|
||||
import '../menu-item/menu-item-default.element.js';
|
||||
|
||||
@@ -2,5 +2,8 @@ export * from './components/index.js';
|
||||
export * from './menu-tree-structure-workspace-context-base.js';
|
||||
export * from './menu-variant-tree-structure-workspace-context-base.js';
|
||||
export * from './types.js';
|
||||
export type * from './menu-item-element.interface.js';
|
||||
export type * from './menu-item.extension.js';
|
||||
export type * from './menu.extension.js';
|
||||
|
||||
export type { UmbMenuStructureWorkspaceContext } from './menu-structure-workspace-context.interface.js';
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
import type { UmbMenuItemElement } from './menu-item-element.interface.js';
|
||||
import type { ManifestWithDynamicConditions, ManifestElement } from '@umbraco-cms/backoffice/extension-api';
|
||||
|
||||
export interface ManifestMenuItem
|
||||
extends ManifestElement<UmbMenuItemElement>,
|
||||
ManifestWithDynamicConditions<UmbExtensionCondition> {
|
||||
type: 'menuItem';
|
||||
meta: MetaMenuItem;
|
||||
}
|
||||
|
||||
export interface MetaMenuItem {
|
||||
label: string;
|
||||
menus: Array<string>;
|
||||
entityType?: string;
|
||||
icon?: string;
|
||||
}
|
||||
|
||||
declare global {
|
||||
interface UmbExtensionManifestMap {
|
||||
umbMenuItem: ManifestMenuItem;
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
import type { ManifestSectionSidebarAppBaseMenu, ManifestSectionSidebarAppMenuKind } from './types.js';
|
||||
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
|
||||
import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit';
|
||||
import type { ManifestMenu, UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
import type { ManifestMenu } from '../menu.extension.js';
|
||||
|
||||
// TODO: Move to separate file:
|
||||
const manifest: UmbExtensionManifestKind = {
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
export * from './tree-menu-item-default.element.js';
|
||||
export * from './types.js';
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
import type { ManifestMenuItemTreeKind } from './types.js';
|
||||
import { html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
import type {
|
||||
ManifestMenuItemTreeKind,
|
||||
UmbExtensionManifestKind,
|
||||
UmbMenuItemElement,
|
||||
} from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { UmbMenuItemElement } from '@umbraco-cms/backoffice/menu';
|
||||
|
||||
// TODO: Move to separate file:
|
||||
const manifest: UmbExtensionManifestKind = {
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
import type { ManifestMenuItem, MetaMenuItem } from '@umbraco-cms/backoffice/menu';
|
||||
|
||||
export interface ManifestMenuItemTreeKind extends ManifestMenuItem {
|
||||
type: 'menuItem';
|
||||
kind: 'tree';
|
||||
meta: MetaMenuItemTreeKind;
|
||||
}
|
||||
|
||||
export interface MetaMenuItemTreeKind extends MetaMenuItem {
|
||||
treeAlias: string;
|
||||
hideTreeRoot?: boolean;
|
||||
}
|
||||
|
||||
declare global {
|
||||
interface UmbExtensionManifestMap {
|
||||
umbTreeMenuItemKind: ManifestMenuItemTreeKind;
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,8 @@ import { UMB_HELP_MENU_ALIAS } from '../menu/index.js';
|
||||
import type { CSSResultGroup } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { css, html, customElement, state, nothing } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbHeaderAppButtonElement } from '@umbraco-cms/backoffice/components';
|
||||
import { umbExtensionsRegistry, type ManifestMenu } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { ManifestMenu } from '@umbraco-cms/backoffice/menu';
|
||||
import { UmbExtensionsManifestInitializer } from '@umbraco-cms/backoffice/extension-api';
|
||||
|
||||
const elementName = 'umb-help-header-app';
|
||||
|
||||
Reference in New Issue
Block a user