From 267604c1394deade27cf076bdb4a452920305c0a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 7 Aug 2024 08:52:54 +0200 Subject: [PATCH 1/6] add build setup --- src/Umbraco.Web.UI.Client/package-lock.json | 1 + src/Umbraco.Web.UI.Client/package.json | 1 + .../src/packages/packages/package.json | 8 ++++++++ .../src/packages/packages/vite.config.ts | 19 +++++++++++++++++++ 4 files changed, 29 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/packages/package.json create mode 100644 src/Umbraco.Web.UI.Client/src/packages/packages/vite.config.ts diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index bfe157ce3a..408e9634c3 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -21,6 +21,7 @@ "./src/packages/media", "./src/packages/members", "./src/packages/multi-url-picker", + "./src/packages/package", "./src/packages/property-editors", "./src/packages/tags", "./src/packages/templating", diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 766ac0c7bb..57ea897df1 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -140,6 +140,7 @@ "./src/packages/media", "./src/packages/members", "./src/packages/multi-url-picker", + "./src/packages/package", "./src/packages/property-editors", "./src/packages/tags", "./src/packages/templating", diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package.json b/src/Umbraco.Web.UI.Client/src/packages/packages/package.json new file mode 100644 index 0000000000..4f95a8575b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package.json @@ -0,0 +1,8 @@ +{ + "name": "@umbraco-backoffice/package", + "private": true, + "type": "module", + "scripts": { + "build": "vite build" + } +} \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/vite.config.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/vite.config.ts new file mode 100644 index 0000000000..859f550e82 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/vite.config.ts @@ -0,0 +1,19 @@ +import { defineConfig } from 'vite'; +import { rmSync } from 'fs'; +import { getDefaultConfig } from '../../vite-config-base'; + +const dist = '../../../dist-cms/packages/packages'; + +// delete the unbundled dist folder +rmSync(dist, { recursive: true, force: true }); + +export default defineConfig({ + ...getDefaultConfig({ + dist, + entry: { + 'package/index': 'package/index.ts', + manifests: 'manifests.ts', + 'umbraco-package': 'umbraco-package.ts', + }, + }), +}); From ece79783f78dd9cbc4aac6c467a0f3915f1f30db Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 7 Aug 2024 11:16:10 +0200 Subject: [PATCH 2/6] Update package.json --- src/Umbraco.Web.UI.Client/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 57ea897df1..bfb25020ef 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -140,7 +140,7 @@ "./src/packages/media", "./src/packages/members", "./src/packages/multi-url-picker", - "./src/packages/package", + "./src/packages/packages", "./src/packages/property-editors", "./src/packages/tags", "./src/packages/templating", From b52b3cf8227c909e1027d4b4ece971c97835cb69 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 7 Aug 2024 11:18:24 +0200 Subject: [PATCH 3/6] clean up --- .../packages/packages/package-builder/manifests.ts | 12 ++---------- .../src/packages/packages/package-repo/manifests.ts | 12 ++---------- .../packages/package/repository/constants.ts | 2 ++ .../packages/package/repository/manifests.ts | 5 +---- 4 files changed, 7 insertions(+), 24 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/constants.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/manifests.ts index d2d5da69af..40c3db214d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/manifests.ts @@ -1,9 +1,4 @@ -import type { - ManifestTypes, - ManifestWorkspace, - ManifestWorkspaceActions, - ManifestWorkspaceView, -} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes, ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; const workspace: ManifestWorkspace = { type: 'workspace', @@ -15,7 +10,4 @@ const workspace: ManifestWorkspace = { }, }; -const workspaceViews: Array = []; -const workspaceActions: Array = []; - -export const manifests: Array = [workspace, ...workspaceViews, ...workspaceActions]; +export const manifests: Array = [workspace]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/manifests.ts index ca3f976d04..9ee6b2ffe5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/manifests.ts @@ -1,9 +1,4 @@ -import type { - ManifestTypes, - ManifestWorkspace, - ManifestWorkspaceActions, - ManifestWorkspaceView, -} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes, ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; const workspace: ManifestWorkspace = { type: 'workspace', @@ -15,7 +10,4 @@ const workspace: ManifestWorkspace = { }, }; -const workspaceViews: Array = []; -const workspaceActions: Array = []; - -export const manifests: Array = [workspace, ...workspaceViews, ...workspaceActions]; +export const manifests: Array = [workspace]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/constants.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/constants.ts new file mode 100644 index 0000000000..a73f790346 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/constants.ts @@ -0,0 +1,2 @@ +export const UMB_PACKAGE_REPOSITORY_ALIAS = 'Umb.Repository.Package'; +export const UMB_PACKAGE_STORE_ALIAS = 'Umb.Store.Package'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/manifests.ts index 4825a19fc6..72b80c8342 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/manifests.ts @@ -1,7 +1,6 @@ +import { UMB_PACKAGE_REPOSITORY_ALIAS, UMB_PACKAGE_STORE_ALIAS } from './constants.js'; import type { ManifestStore, ManifestRepository, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; -export const UMB_PACKAGE_REPOSITORY_ALIAS = 'Umb.Repository.Package'; - const repository: ManifestRepository = { type: 'repository', alias: UMB_PACKAGE_REPOSITORY_ALIAS, @@ -9,8 +8,6 @@ const repository: ManifestRepository = { api: () => import('./package.repository.js'), }; -export const UMB_PACKAGE_STORE_ALIAS = 'Umb.Store.Package'; - const store: ManifestStore = { type: 'store', alias: UMB_PACKAGE_STORE_ALIAS, From 162db5105af3ef5e4127c2c2f935e1e65575f51e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 7 Aug 2024 11:50:11 +0200 Subject: [PATCH 4/6] Update package-lock.json --- src/Umbraco.Web.UI.Client/package-lock.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index e0e60938d3..ef46e7a6f4 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -21,7 +21,7 @@ "./src/packages/media", "./src/packages/members", "./src/packages/multi-url-picker", - "./src/packages/package", + "./src/packages/packages", "./src/packages/property-editors", "./src/packages/tags", "./src/packages/templating", @@ -7417,6 +7417,10 @@ "resolved": "src/packages/multi-url-picker", "link": true }, + "node_modules/@umbraco-backoffice/package": { + "resolved": "src/packages/packages", + "link": true + }, "node_modules/@umbraco-backoffice/property-editors": { "resolved": "src/packages/property-editors", "link": true @@ -21880,6 +21884,7 @@ "src/packages/multi-url-picker": { "name": "@umbraco-backoffice/multi-url-picker" }, + "src/packages/packages": {}, "src/packages/property-editors": { "name": "@umbraco-backoffice/property-editors" }, From 9d4a5c09f9c6dcff4709070c0ba3764e56fd21fc Mon Sep 17 00:00:00 2001 From: mattbrailsford Date: Wed, 7 Aug 2024 13:14:48 +0100 Subject: [PATCH 5/6] Align table icons centrally --- .../src/packages/core/components/table/table.element.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.element.ts index ebb1da1e6f..203cfbcbbc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.element.ts @@ -204,7 +204,7 @@ export class UmbTableElement extends LitElement { if (this.config.hideIcon && !this.config.allowSelection) return; return html` - + ${when( this.config.allowSelection, () => @@ -236,7 +236,7 @@ export class UmbTableElement extends LitElement { if (this.config.hideIcon && !this.config.allowSelection) return; return html` - + ${when(!this.config.hideIcon, () => html``)} ${when( this.config.allowSelection, From fc1f722e8e45ed1c9dc05794280ed6c8972b4cb7 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 6 Aug 2024 18:28:13 +0100 Subject: [PATCH 6/6] Manifest viewer modal: replaces stringify function --- .../manifest-viewer-modal.element.ts | 47 ++++++++++++------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/modals/manifest-viewer/manifest-viewer-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/modals/manifest-viewer/manifest-viewer-modal.element.ts index 2e5e8e476e..931b876ce3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/modals/manifest-viewer/manifest-viewer-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/modals/manifest-viewer/manifest-viewer-modal.element.ts @@ -1,29 +1,37 @@ import type { UmbManifestViewerModalData, UmbManifestViewerModalValue } from './manifest-viewer-modal.token.js'; -import { css, html, customElement, nothing } from '@umbraco-cms/backoffice/external/lit'; +import { css, customElement, html, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -// JSON parser for the manifest viewer modal -// Enabling us to view JS code, but it is not optimal, but currently better than nothing [NL] -// Ideally we should have a JS code stringify that can print the manifest as JS. [NL] -function JsonParser(key: string, value: any) { - if (typeof value === 'function' && value !== null && value.toString) { - return Function.prototype.toString.call(value); - } - return value; -} - @customElement('umb-manifest-viewer-modal') export class UmbManifestViewerModalElement extends UmbModalBaseElement< UmbManifestViewerModalData, UmbManifestViewerModalValue > { + // Code adapted from https://stackoverflow.com/a/57668208/12787 + // Licensed under the permissions of the CC BY-SA 4.0 DEED + #stringify(obj: any): string { + let output = '{'; + for (const key in obj) { + let value = obj[key]; + if (typeof value === 'function') { + value = value.toString(); + } else if (value instanceof Array) { + value = JSON.stringify(value); + } else if (typeof value === 'object') { + value = this.#stringify(value); + } else { + value = `"${value}"`; + } + output += `\n ${key}: ${value},`; + } + return output + '\n}'; + } + override render() { return html` - + ${this.data - ? html`${JSON.stringify(this.data, JsonParser, 2)}` + ? html`${this.#stringify(this.data)}` : nothing}
@@ -32,7 +40,14 @@ export class UmbManifestViewerModalElement extends UmbModalBaseElement< `; } - static override styles = [css``]; + static override styles = [ + css` + umb-code-block { + border: none; + height: 100%; + } + `, + ]; } export default UmbManifestViewerModalElement;