From 87dc1c974d89e61c81cc1b89989c8dc6b76a449e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 9 Sep 2024 17:59:20 +0200 Subject: [PATCH] scaffold help package + header app --- .../src/apps/backoffice/backoffice.element.ts | 1 + .../packages/help/help-header-app.element.ts | 21 +++++++++++++++++++ .../src/packages/help/manifests.ts | 16 ++++++++++++++ .../src/packages/help/umbraco-package.ts | 9 ++++++++ .../src/packages/help/vite.config.ts | 12 +++++++++++ 5 files changed, 59 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/help/help-header-app.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/help/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/help/umbraco-package.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/help/vite.config.ts diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts index d59e98126c..cdaffce824 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts @@ -18,6 +18,7 @@ const CORE_PACKAGES = [ import('../../packages/dictionary/umbraco-package.js'), import('../../packages/documents/umbraco-package.js'), import('../../packages/health-check/umbraco-package.js'), + import('../../packages/help/umbraco-package.js'), import('../../packages/language/umbraco-package.js'), import('../../packages/log-viewer/umbraco-package.js'), import('../../packages/markdown-editor/umbraco-package.js'), diff --git a/src/Umbraco.Web.UI.Client/src/packages/help/help-header-app.element.ts b/src/Umbraco.Web.UI.Client/src/packages/help/help-header-app.element.ts new file mode 100644 index 0000000000..e34b0d906b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/help/help-header-app.element.ts @@ -0,0 +1,21 @@ +import type { CSSResultGroup } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UmbHeaderAppButtonElement } from '@umbraco-cms/backoffice/components'; + +const elementName = 'umb-help-header-app'; +@customElement(elementName) +export class UmbHelpHeaderAppElement extends UmbHeaderAppButtonElement { + override render() { + return html`
My Header App
`; + } + + static override styles: CSSResultGroup = [UmbHeaderAppButtonElement.styles, css``]; +} + +export { UmbHelpHeaderAppElement as element }; + +declare global { + interface HTMLElementTagNameMap { + [elementName]: UmbHelpHeaderAppElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/help/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/help/manifests.ts new file mode 100644 index 0000000000..9504557d0d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/help/manifests.ts @@ -0,0 +1,16 @@ +import type { ManifestTypes, UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'headerApp', + alias: 'Umb.HeaderApp.Help', + name: 'Help Header App', + element: () => import('./help-header-app.element.js'), + weight: 0, + meta: { + label: 'TODO: how should we enable this to not be set.', + icon: 'TODO: how should we enable this to not be set.', + pathname: 'help', + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/help/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/help/umbraco-package.ts new file mode 100644 index 0000000000..bbf3a996b9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/help/umbraco-package.ts @@ -0,0 +1,9 @@ +export const name = 'Umbraco.Core.Help'; +export const extensions = [ + { + name: 'Help Bundle', + alias: 'Umb.Bundle.Help', + type: 'bundle', + js: () => import('./manifests.js'), + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/help/vite.config.ts b/src/Umbraco.Web.UI.Client/src/packages/help/vite.config.ts new file mode 100644 index 0000000000..a320e9a053 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/help/vite.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from 'vite'; +import { rmSync } from 'fs'; +import { getDefaultConfig } from '../../vite-config-base'; + +const dist = '../../../dist-cms/packages/help'; + +// delete the unbundled dist folder +rmSync(dist, { recursive: true, force: true }); + +export default defineConfig({ + ...getDefaultConfig({ dist, entry: ['manifests.ts', 'umbraco-package.ts'] }), +});