rename sidebar menu extension + add menu extension
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
import type { ManifestElement } from './models';
|
||||
|
||||
export interface ManifestMenu extends ManifestElement {
|
||||
type: 'menu';
|
||||
meta: MetaMenu;
|
||||
}
|
||||
|
||||
export interface MetaMenu {
|
||||
label: string;
|
||||
}
|
||||
@@ -12,7 +12,7 @@ import type { ManifestPropertyEditorUI, ManifestPropertyEditorModel } from './pr
|
||||
import type { ManifestSection } from './section.models';
|
||||
import type { ManifestSectionView } from './section-view.models';
|
||||
import type { ManifestSectionSidebarItem } from './section-sidebar-item.models';
|
||||
import type { ManifestSidebarMenu } from './sidebar-menu.models';
|
||||
import type { ManifestSectionSidebarMenu } from './section-sidebar-menu.models';
|
||||
import type { ManifestSidebarMenuItem } from './sidebar-menu-item.models';
|
||||
import type { ManifestTheme } from './theme.models';
|
||||
import type { ManifestTree } from './tree.models';
|
||||
@@ -39,7 +39,7 @@ export * from './property-editor.models';
|
||||
export * from './section-view.models';
|
||||
export * from './section.models';
|
||||
export * from './section-sidebar-item.models';
|
||||
export * from './sidebar-menu.models';
|
||||
export * from './section-sidebar-menu.models';
|
||||
export * from './sidebar-menu-item.models';
|
||||
export * from './theme.models';
|
||||
export * from './tree-item-action.models';
|
||||
@@ -70,7 +70,7 @@ export type ManifestTypes =
|
||||
| ManifestSection
|
||||
| ManifestSectionSidebarItem
|
||||
| ManifestSectionView
|
||||
| ManifestSidebarMenu
|
||||
| ManifestSectionSidebarMenu
|
||||
| ManifestSidebarMenuItem
|
||||
| ManifestTheme
|
||||
| ManifestTree
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import type { ManifestElement } from './models';
|
||||
|
||||
export interface ManifestSectionSidebarMenu extends ManifestElement {
|
||||
type: 'sectionSidebarMenu';
|
||||
meta: MetaSectionSidebarMenu;
|
||||
}
|
||||
|
||||
export interface MetaSectionSidebarMenu {
|
||||
label: string;
|
||||
sections: Array<string>;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
import type { ManifestElement } from './models';
|
||||
|
||||
export interface ManifestSidebarMenu extends ManifestElement {
|
||||
type: 'sidebarMenu';
|
||||
meta: MetaSidebarMenu;
|
||||
}
|
||||
|
||||
export interface MetaSidebarMenu {
|
||||
label: string;
|
||||
sections: Array<string>;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ManifestSection, ManifestSidebarMenu } from '@umbraco-cms/models';
|
||||
import type { ManifestSection, ManifestSectionSidebarMenu } from '@umbraco-cms/models';
|
||||
|
||||
const sectionAlias = 'Umb.Section.Content';
|
||||
|
||||
@@ -13,8 +13,8 @@ const section: ManifestSection = {
|
||||
},
|
||||
};
|
||||
|
||||
const sidebarMenu: ManifestSidebarMenu = {
|
||||
type: 'sidebarMenu',
|
||||
const sectionSidebarMenu: ManifestSectionSidebarMenu = {
|
||||
type: 'sectionSidebarMenu',
|
||||
alias: 'Umb.SidebarMenu.Content',
|
||||
name: 'Content Sidebar Menu',
|
||||
weight: 100,
|
||||
@@ -24,4 +24,4 @@ const sidebarMenu: ManifestSidebarMenu = {
|
||||
},
|
||||
};
|
||||
|
||||
export const manifests = [section, sidebarMenu];
|
||||
export const manifests = [section, sectionSidebarMenu];
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ManifestDashboardCollection, ManifestSection, ManifestSidebarMenu } from '@umbraco-cms/models';
|
||||
import type { ManifestDashboardCollection, ManifestSection, ManifestSectionSidebarMenu } from '@umbraco-cms/models';
|
||||
|
||||
const sectionAlias = 'Umb.Section.Media';
|
||||
|
||||
@@ -29,15 +29,16 @@ const dashboards: Array<ManifestDashboardCollection> = [
|
||||
},
|
||||
];
|
||||
|
||||
const sidebarMenu: ManifestSidebarMenu = {
|
||||
type: 'sidebarMenu',
|
||||
alias: 'Umb.SidebarMenu.Media',
|
||||
name: 'Media Sidebar Menu',
|
||||
const sectionSidebarMenu: ManifestSectionSidebarMenu = {
|
||||
type: 'sectionSidebarMenu',
|
||||
alias: 'Umb.SectionSidebarMenu.Media',
|
||||
name: 'Media Section Sidebar Menu',
|
||||
weight: 100,
|
||||
meta: {
|
||||
label: 'Media',
|
||||
sections: [sectionAlias],
|
||||
menu: 'Umb.Menu.Media',
|
||||
},
|
||||
};
|
||||
|
||||
export const manifests = [section, sidebarMenu, ...dashboards];
|
||||
export const manifests = [section, sectionSidebarMenu, ...dashboards];
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ManifestDashboard, ManifestSection, ManifestSidebarMenu } from '@umbraco-cms/models';
|
||||
import type { ManifestDashboard, ManifestSection, ManifestSectionSidebarMenu } from '@umbraco-cms/models';
|
||||
|
||||
const sectionAlias = 'Umb.Section.Members';
|
||||
|
||||
@@ -28,15 +28,16 @@ const dashboards: Array<ManifestDashboard> = [
|
||||
},
|
||||
];
|
||||
|
||||
const sidebarMenu: ManifestSidebarMenu = {
|
||||
type: 'sidebarMenu',
|
||||
alias: 'Umb.SidebarMenu.Members',
|
||||
name: 'Members Sidebar Menu',
|
||||
const sectionSidebarMenu: ManifestSectionSidebarMenu = {
|
||||
type: 'sectionSidebarMenu',
|
||||
alias: 'Umb.SectionSidebarMenu.Members',
|
||||
name: 'Members Section Sidebar Menu',
|
||||
weight: 100,
|
||||
meta: {
|
||||
label: 'Members',
|
||||
sections: [sectionAlias],
|
||||
menu: 'Umb.Menu.Members',
|
||||
},
|
||||
};
|
||||
|
||||
export const manifests = [section, sidebarMenu, ...dashboards];
|
||||
export const manifests = [section, sectionSidebarMenu, ...dashboards];
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ManifestSection, ManifestSidebarMenu } from '@umbraco-cms/models';
|
||||
import type { ManifestSection, ManifestSectionSidebarMenu } from '@umbraco-cms/models';
|
||||
|
||||
const sectionAlias = 'Umb.Section.Settings';
|
||||
|
||||
@@ -13,10 +13,10 @@ const section: ManifestSection = {
|
||||
},
|
||||
};
|
||||
|
||||
const sidebarMenu: ManifestSidebarMenu = {
|
||||
type: 'sidebarMenu',
|
||||
alias: 'Umb.SidebarMenu.Settings',
|
||||
name: 'Settings Sidebar Menu',
|
||||
const sectionSidebarMenu: ManifestSectionSidebarMenu = {
|
||||
type: 'sectionSidebarMenu',
|
||||
alias: 'Umb.SectionSidebarMenu.Settings',
|
||||
name: 'Settings Section Sidebar Menu',
|
||||
weight: 100,
|
||||
meta: {
|
||||
label: 'Settings',
|
||||
@@ -24,4 +24,4 @@ const sidebarMenu: ManifestSidebarMenu = {
|
||||
},
|
||||
};
|
||||
|
||||
export const manifests = [section, sidebarMenu];
|
||||
export const manifests = [section, sectionSidebarMenu];
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
|
||||
import { css, html } from 'lit';
|
||||
import { customElement, property } from 'lit/decorators.js';
|
||||
import { ManifestSidebarMenu, ManifestSidebarMenuItem } from '@umbraco-cms/extensions-registry';
|
||||
import { ManifestSectionSidebarMenu, ManifestSidebarMenuItem } from '@umbraco-cms/extensions-registry';
|
||||
import { UmbLitElement } from '@umbraco-cms/element';
|
||||
|
||||
import './sidebar-menu-item.element.ts';
|
||||
@@ -18,7 +18,7 @@ export class UmbSectionSidebarMenuElement extends UmbLitElement {
|
||||
];
|
||||
|
||||
@property()
|
||||
manifest?: ManifestSidebarMenu;
|
||||
manifest?: ManifestSectionSidebarMenu;
|
||||
|
||||
render() {
|
||||
// TODO: link to dashboards when clicking on the menu item header
|
||||
|
||||
@@ -5,7 +5,7 @@ import { map } from 'rxjs';
|
||||
import { IRoutingInfo } from 'router-slot';
|
||||
import type { UmbWorkspaceEntityElement } from '../workspace/workspace-entity-element.interface';
|
||||
import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from './section.context';
|
||||
import type { ManifestSectionView, ManifestWorkspace, ManifestSidebarMenu } from '@umbraco-cms/models';
|
||||
import type { ManifestSectionView, ManifestWorkspace, ManifestSectionSidebarMenu } from '@umbraco-cms/models';
|
||||
import { umbExtensionsRegistry, createExtensionElement } from '@umbraco-cms/extensions-api';
|
||||
import { UmbLitElement } from '@umbraco-cms/element';
|
||||
|
||||
@@ -40,7 +40,7 @@ export class UmbSectionElement extends UmbLitElement {
|
||||
private _routes: Array<any> = [];
|
||||
|
||||
@state()
|
||||
private _menus?: Array<ManifestSidebarMenu>;
|
||||
private _menus?: Array<ManifestSectionSidebarMenu>;
|
||||
|
||||
@state()
|
||||
private _views?: Array<ManifestSectionView>;
|
||||
@@ -84,7 +84,7 @@ export class UmbSectionElement extends UmbLitElement {
|
||||
if (sectionAlias) {
|
||||
this.observe(
|
||||
umbExtensionsRegistry
|
||||
?.extensionsOfType('sidebarMenu')
|
||||
?.extensionsOfType('sectionSidebarMenu')
|
||||
.pipe(map((manifests) => manifests.filter((manifest) => manifest.meta.sections.includes(sectionAlias)))),
|
||||
(manifests) => {
|
||||
this._menus = manifests;
|
||||
@@ -202,12 +202,12 @@ export class UmbSectionElement extends UmbLitElement {
|
||||
<umb-section-sidebar>
|
||||
<umb-extension-slot
|
||||
type="sectionSidebarItem"
|
||||
.filter=${(items: ManifestSidebarMenu) =>
|
||||
.filter=${(items: ManifestSectionSidebarMenu) =>
|
||||
items.meta.sections.includes(this._sectionAlias || '')}></umb-extension-slot>
|
||||
|
||||
<umb-extension-slot
|
||||
type="sidebarMenu"
|
||||
.filter=${(items: ManifestSidebarMenu) => items.meta.sections.includes(this._sectionAlias || '')}
|
||||
type="sectionSidebarMenu"
|
||||
.filter=${(items: ManifestSectionSidebarMenu) => items.meta.sections.includes(this._sectionAlias || '')}
|
||||
default-element="umb-section-sidebar-menu"></umb-extension-slot>
|
||||
</umb-section-sidebar>
|
||||
`
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
import type { ManifestSidebarMenu } from '@umbraco-cms/models';
|
||||
import type { ManifestSectionSidebarMenu } from '@umbraco-cms/models';
|
||||
|
||||
const sidebarMenu: ManifestSidebarMenu = {
|
||||
type: 'sidebarMenu',
|
||||
alias: 'Umb.SidebarMenu.Templating',
|
||||
name: 'Settings Sidebar Menu',
|
||||
const sectionSidebarMenu: ManifestSectionSidebarMenu = {
|
||||
type: 'sectionSidebarMenu',
|
||||
alias: 'Umb.SectionSidebarMenu.Templating',
|
||||
name: 'Templating Section Sidebar Menu',
|
||||
weight: 100,
|
||||
meta: {
|
||||
label: 'Templating',
|
||||
sections: ['Umb.Section.Settings'],
|
||||
menu: 'Umb.Menu.Templating',
|
||||
},
|
||||
};
|
||||
|
||||
export const manifests = [sidebarMenu];
|
||||
export const manifests = [sectionSidebarMenu];
|
||||
|
||||
Reference in New Issue
Block a user