From e962816d887298a5f7af1305d2ca8b235afcb04d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 08:21:17 +0200 Subject: [PATCH 01/78] remove unused index.ts --- src/Umbraco.Web.UI.Client/src/packages/templating/index.ts | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/index.ts deleted file mode 100644 index e1c9b4be07..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './components/index.js'; -export * from './templates/index.js'; -export * from './stylesheets/index.js'; -export * from './modals/index.js'; -export * from './types.js'; From e1d0b83d01ec73a4bec6fa79e0f59986eefb08f5 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 08:21:30 +0200 Subject: [PATCH 02/78] add templating package to workspaces --- src/Umbraco.Web.UI.Client/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index f60c783688..a88c5967d0 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -137,7 +137,8 @@ "./src/packages/umbraco-news", "./src/packages/webhook", "./src/packages/health-check", - "./src/packages/tags" + "./src/packages/tags", + "./src/packages/templating" ], "scripts": { "backoffice:test:e2e": "npx playwright test", From 2cd647480f523d90f4600d5b5f31843a5627971a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 08:21:37 +0200 Subject: [PATCH 03/78] add package.json --- .../src/packages/templating/package.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/package.json diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/package.json b/src/Umbraco.Web.UI.Client/src/packages/templating/package.json new file mode 100644 index 0000000000..844968aefd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/package.json @@ -0,0 +1,8 @@ +{ + "name": "@umbraco-backoffice/templating", + "private": true, + "type": "module", + "scripts": { + "build": "vite build" + } +} \ No newline at end of file From 4b7ed8b621cabc4be4b221d0cba220e09939e3e4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 08:21:42 +0200 Subject: [PATCH 04/78] Create vite.config.ts --- .../src/packages/templating/vite.config.ts | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/vite.config.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/vite.config.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/vite.config.ts new file mode 100644 index 0000000000..3d329ee327 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/vite.config.ts @@ -0,0 +1,23 @@ +import { defineConfig } from 'vite'; +import { rmSync } from 'fs'; +import { getDefaultConfig } from '../../vite-config-base'; + +const dist = '../../../dist-cms/packages/templating'; + +// delete the unbundled dist folder +rmSync(dist, { recursive: true, force: true }); + +export default defineConfig({ + ...getDefaultConfig({ + dist, + entry: { + 'code-editor/index': 'code-editor/index.ts', + 'partial-views/index': 'partial-views/index.ts', + 'scripts/index': 'scripts/index.ts', + 'stylesheets/index': 'stylesheets/index.ts', + 'templates/index': 'templates/index.ts', + 'umbraco-package': 'umbraco-package.ts', + manifests: 'manifests.ts', + }, + }), +}); From 29e0660be86d613dd114adbfb8bf929d33684f15 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 08:24:03 +0200 Subject: [PATCH 05/78] align file name for menu manifests --- .../src/packages/templating/manifests.ts | 4 ++-- .../templating/{menu.manifests.ts => menu/manifests.ts} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/templating/{menu.manifests.ts => menu/manifests.ts} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/manifests.ts index 08804aa6a4..e7a4e5d473 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/manifests.ts @@ -1,10 +1,10 @@ -import { manifests as menuManifests } from './menu.manifests.js'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import { manifests as menuManifests } from './menu/manifests.js'; import { manifests as templateManifests } from './templates/manifests.js'; import { manifests as stylesheetManifests } from './stylesheets/manifests.js'; import { manifests as partialManifests } from './partial-views/manifests.js'; import { manifests as scriptManifest } from './scripts/manifests.js'; import { manifests as modalManifests } from './modals/manifests.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array = [ ...menuManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/menu.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/menu/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/menu.manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/menu/manifests.ts From 62db1fda4d94ce480db17adfd2c635c37543d890 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 08:54:29 +0200 Subject: [PATCH 06/78] remove import --- .../src/packages/templating/umbraco-package.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/umbraco-package.ts index bb38899cf5..7c36d4038e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/umbraco-package.ts @@ -1,5 +1,3 @@ -import './index.js'; - export const name = 'Umbraco.Core.Templating'; export const extensions = [ { From 4caf88def4d83ac077c7b4e52ba40a0b1e6932aa Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 08:54:40 +0200 Subject: [PATCH 07/78] align folder names --- .../src/packages/templating/components/index.ts | 2 +- .../templating/components/insert-menu/index.ts | 1 + .../insert-menu.element.ts} | 16 ++++++++-------- .../components/templating-item-menu/index.ts | 1 - .../workspace/partial-view-workspace.element.ts | 2 +- .../template-workspace-editor.element.ts | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/index.ts rename src/Umbraco.Web.UI.Client/src/packages/templating/components/{templating-item-menu/templating-item-menu.element.ts => insert-menu/insert-menu.element.ts} (100%) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/components/templating-item-menu/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/components/index.ts index f70c22af23..dee0cf2b3e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/components/index.ts @@ -1 +1 @@ -export * from './templating-item-menu/index.js'; +export * from './insert-menu/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/index.ts new file mode 100644 index 0000000000..c4cc3332bf --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/index.ts @@ -0,0 +1 @@ +export * from './insert-menu.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/templating-item-menu/templating-item-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/insert-menu.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/components/templating-item-menu/templating-item-menu.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/insert-menu.element.ts index 6d6060d48e..3a0591e2d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/components/templating-item-menu/templating-item-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/insert-menu.element.ts @@ -1,17 +1,17 @@ -import { UMB_TEMPLATING_PAGE_FIELD_BUILDER_MODAL } from '../../modals/templating-page-field-builder/templating-page-field-builder-modal.token.js'; -import { CodeSnippetType } from '../../types.js'; -import { - UMB_TEMPLATING_ITEM_PICKER_MODAL, - type UmbTemplatingItemPickerModalValue, -} from '../../modals/templating-item-picker/templating-item-picker-modal.token.js'; -import { getInsertDictionarySnippet, getInsertPartialSnippet } from '../../utils/index.js'; -import { UMB_PARTIAL_VIEW_PICKER_MODAL } from '@umbraco-cms/backoffice/partial-view'; import { UmbDictionaryDetailRepository, UMB_DICTIONARY_PICKER_MODAL } from '@umbraco-cms/backoffice/dictionary'; import { customElement, property, css, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import { getInsertDictionarySnippet, getInsertPartialSnippet } from '../../utils/index.js'; +import { + UMB_TEMPLATING_ITEM_PICKER_MODAL, + type UmbTemplatingItemPickerModalValue, +} from '../../modals/templating-item-picker/templating-item-picker-modal.token.js'; +import { CodeSnippetType } from '../../types.js'; +import { UMB_TEMPLATING_PAGE_FIELD_BUILDER_MODAL } from '../../modals/templating-page-field-builder/templating-page-field-builder-modal.token.js'; +import { UMB_PARTIAL_VIEW_PICKER_MODAL } from '@umbraco-cms/backoffice/partial-view'; @customElement('umb-templating-insert-menu') export class UmbTemplatingInsertMenuElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/templating-item-menu/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/components/templating-item-menu/index.ts deleted file mode 100644 index 6d80bac0d8..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/components/templating-item-menu/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './templating-item-menu.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts index 2bf5171364..fe3dde66f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts @@ -5,7 +5,7 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbRoute, IRoutingInfo, PageComponent } from '@umbraco-cms/backoffice/router'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; -import '../../components/templating-item-menu/templating-item-menu.element.js'; +import '../../components/insert-menu/insert-menu.element.js'; import { UmbExtensionsApiInitializer } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts index 29ebab9530..16bcf43a20 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts @@ -1,5 +1,5 @@ import { UMB_TEMPLATING_SECTION_PICKER_MODAL } from '../../modals/templating-section-picker/templating-section-picker-modal.token.js'; -import type { UmbTemplatingInsertMenuElement } from '../../components/templating-item-menu/templating-item-menu.element.js'; +import type { UmbTemplatingInsertMenuElement } from '../../components/insert-menu/insert-menu.element.js'; import { UMB_TEMPLATE_QUERY_BUILDER_MODAL } from '../modals/query-builder/index.js'; import { getQuerySnippet } from '../../utils/index.js'; import { UMB_TEMPLATE_WORKSPACE_CONTEXT } from './template-workspace.context-token.js'; From d64c7a78f7c60a661f3ac7028b6bc8ccb031597a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 08:55:01 +0200 Subject: [PATCH 08/78] remove index --- .../src/packages/templating/components/index.ts | 1 - 1 file changed, 1 deletion(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/components/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/components/index.ts deleted file mode 100644 index dee0cf2b3e..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/components/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './insert-menu/index.js'; From a320d44de43dc8e3dfa5588844500cd39e97dc5d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 08:55:22 +0200 Subject: [PATCH 09/78] rename to local components --- .../{components => local-components}/insert-menu/index.ts | 0 .../insert-menu/insert-menu.element.ts | 0 .../workspace/partial-view-workspace-editor.element.ts | 2 +- .../partial-views/workspace/partial-view-workspace.element.ts | 2 +- .../templates/workspace/template-workspace-editor.element.ts | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/templating/{components => local-components}/insert-menu/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/{components => local-components}/insert-menu/insert-menu.element.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/local-components/insert-menu/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/local-components/insert-menu/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/insert-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/local-components/insert-menu/insert-menu.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/insert-menu.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/local-components/insert-menu/insert-menu.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts index 20a1d39e33..7820ca0a9e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts @@ -1,4 +1,4 @@ -import type { UmbTemplatingInsertMenuElement } from '../../components/index.js'; +import type { UmbTemplatingInsertMenuElement } from '../../local-components/index.js'; import { getQuerySnippet } from '../../utils/index.js'; import { UMB_PARTIAL_VIEW_WORKSPACE_CONTEXT } from './partial-view-workspace.context-token.js'; import { UMB_TEMPLATE_QUERY_BUILDER_MODAL } from '@umbraco-cms/backoffice/template'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts index fe3dde66f6..c60e4a4a6d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts @@ -5,7 +5,7 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbRoute, IRoutingInfo, PageComponent } from '@umbraco-cms/backoffice/router'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; -import '../../components/insert-menu/insert-menu.element.js'; +import '../../local-components/insert-menu/insert-menu.element.js'; import { UmbExtensionsApiInitializer } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts index 16bcf43a20..3c7b813f89 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts @@ -1,5 +1,5 @@ import { UMB_TEMPLATING_SECTION_PICKER_MODAL } from '../../modals/templating-section-picker/templating-section-picker-modal.token.js'; -import type { UmbTemplatingInsertMenuElement } from '../../components/insert-menu/insert-menu.element.js'; +import type { UmbTemplatingInsertMenuElement } from '../../local-components/insert-menu/insert-menu.element.js'; import { UMB_TEMPLATE_QUERY_BUILDER_MODAL } from '../modals/query-builder/index.js'; import { getQuerySnippet } from '../../utils/index.js'; import { UMB_TEMPLATE_WORKSPACE_CONTEXT } from './template-workspace.context-token.js'; From 1475f8a76dc626067ae0f37be1970a883742afab Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 10:29:04 +0200 Subject: [PATCH 10/78] import insert menu where used --- .../local-components/insert-menu/index.ts | 2 ++ .../partial-view-workspace-editor.element.ts | 13 ++++++++----- .../template-workspace-editor.element.ts | 17 ++++++++++------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/local-components/insert-menu/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/local-components/insert-menu/index.ts index c4cc3332bf..14dcb7e970 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/local-components/insert-menu/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/local-components/insert-menu/index.ts @@ -1 +1,3 @@ +import './insert-menu.element.js'; + export * from './insert-menu.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts index 7820ca0a9e..023087c40f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts @@ -1,12 +1,15 @@ -import type { UmbTemplatingInsertMenuElement } from '../../local-components/index.js'; -import { getQuerySnippet } from '../../utils/index.js'; -import { UMB_PARTIAL_VIEW_WORKSPACE_CONTEXT } from './partial-view-workspace.context-token.js'; -import { UMB_TEMPLATE_QUERY_BUILDER_MODAL } from '@umbraco-cms/backoffice/template'; -import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, query, state, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement, umbFocus } from '@umbraco-cms/backoffice/lit-element'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { UmbTemplatingInsertMenuElement } from '../../local-components/insert-menu/index.js'; +import { getQuerySnippet } from '../../utils/index.js'; +import { UMB_PARTIAL_VIEW_WORKSPACE_CONTEXT } from './partial-view-workspace.context-token.js'; +import { UMB_TEMPLATE_QUERY_BUILDER_MODAL } from '@umbraco-cms/backoffice/template'; +import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; + +// import local components +import '../../local-components/insert-menu/index.js'; @customElement('umb-partial-view-workspace-editor') export class UmbPartialViewWorkspaceEditorElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts index 3c7b813f89..5fe27ad2ab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts @@ -1,17 +1,20 @@ +import { toCamelCase } from '@umbraco-cms/backoffice/utils'; +import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import { css, html, customElement, query, state, nothing, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import { UmbLitElement, umbFocus } from '@umbraco-cms/backoffice/lit-element'; +import { Subject, debounceTime } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_TEMPLATING_SECTION_PICKER_MODAL } from '../../modals/templating-section-picker/templating-section-picker-modal.token.js'; import type { UmbTemplatingInsertMenuElement } from '../../local-components/insert-menu/insert-menu.element.js'; import { UMB_TEMPLATE_QUERY_BUILDER_MODAL } from '../modals/query-builder/index.js'; import { getQuerySnippet } from '../../utils/index.js'; import { UMB_TEMPLATE_WORKSPACE_CONTEXT } from './template-workspace.context-token.js'; import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; -import { toCamelCase } from '@umbraco-cms/backoffice/utils'; -import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; -import { css, html, customElement, query, state, nothing, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; -import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UMB_TEMPLATE_PICKER_MODAL } from '@umbraco-cms/backoffice/template'; -import { UmbLitElement, umbFocus } from '@umbraco-cms/backoffice/lit-element'; -import { Subject, debounceTime } from '@umbraco-cms/backoffice/external/rxjs'; + +// import local components +import '../../local-components/insert-menu/index.js'; @customElement('umb-template-workspace-editor') export class UmbTemplateWorkspaceEditorElement extends UmbLitElement { From 2ccad23b132fe4ffba861db7c8570daa31e8cea9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 10:38:59 +0200 Subject: [PATCH 11/78] lazy load repository --- .../templating/partial-views/tree/folder/manifests.ts | 5 ++--- .../tree/folder/partial-view-folder.repository.ts | 4 +++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/manifests.ts index 0f6d8cf9e6..8402a9f62e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/manifests.ts @@ -1,6 +1,5 @@ -import { UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UmbPartialViewFolderRepository } from './partial-view-folder.repository.js'; import type { ManifestRepository, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import { UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE } from '../../entity.js'; export const UMB_PARTIAL_VIEW_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.PartialView.Folder'; @@ -8,7 +7,7 @@ const folderRepository: ManifestRepository = { type: 'repository', alias: UMB_PARTIAL_VIEW_FOLDER_REPOSITORY_ALIAS, name: 'Partial View Folder Repository', - api: UmbPartialViewFolderRepository, + api: () => import('./partial-view-folder.repository.js'), }; export const UMB_DELETE_PARTIAL_VIEW_FOLDER_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.PartialView.Folder.Delete'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.repository.ts index 736d5af8ef..2d2c8b72d2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.repository.ts @@ -1,9 +1,11 @@ -import { UmbPartialViewFolderServerDataSource } from './partial-view-folder.server.data-source.js'; import { UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbPartialViewFolderServerDataSource } from './partial-view-folder.server.data-source.js'; export class UmbPartialViewFolderRepository extends UmbFolderRepositoryBase { constructor(host: UmbControllerHost) { super(host, UmbPartialViewFolderServerDataSource); } } + +export { UmbPartialViewFolderRepository as api }; From 6e3c454ab6f2717c1a2c14049b727215df95d61b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 10:47:07 +0200 Subject: [PATCH 12/78] lazy load apis --- .../entity-actions/create/create.action.ts | 8 ++++---- .../partial-views/entity-actions/create/create.action.ts | 4 +++- .../partial-views/entity-actions/create/manifests.ts | 5 ++--- .../scripts/entity-actions/create/create.action.ts | 4 +++- .../templating/scripts/entity-actions/create/manifests.ts | 5 ++--- .../stylesheets/entity-actions/create/create.action.ts | 4 +++- .../stylesheets/entity-actions/create/manifests.ts | 5 ++--- .../templates/entity-actions/create/create.action.ts | 4 +++- .../templating/templates/entity-actions/manifests.ts | 5 ++--- 9 files changed, 24 insertions(+), 20 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/entity-actions/create/create.action.ts index 25bdcb52dc..8f8e477785 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/entity-actions/create/create.action.ts @@ -1,11 +1,11 @@ -import { UMB_DOCUMENT_BLUEPRINT_ENTITY_TYPE } from '../../entity.js'; -import { UMB_DOCUMENT_BLUEPRINT_OPTIONS_CREATE_MODAL } from './modal/index.js'; import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import { UMB_DOCUMENT_BLUEPRINT_ENTITY_TYPE } from '../../entity.js'; +import { UMB_DOCUMENT_BLUEPRINT_OPTIONS_CREATE_MODAL } from './modal/index.js'; -export class UmbCreateEntityAction extends UmbEntityActionBase { +export class UmbCreateDocumentBlueprintEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHost, args: UmbEntityActionArgs) { super(host, args); } @@ -31,4 +31,4 @@ export class UmbCreateEntityAction extends UmbEntityActionBase { } } -export default UmbCreateEntityAction; +export default UmbCreateDocumentBlueprintEntityAction; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts index 0a674c01a7..a769b2c9d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts @@ -1,8 +1,8 @@ -import { UMB_PARTIAL_VIEW_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import { UMB_PARTIAL_VIEW_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; export class UmbPartialViewCreateOptionsEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHost, args: UmbEntityActionArgs) { @@ -23,3 +23,5 @@ export class UmbPartialViewCreateOptionsEntityAction extends UmbEntityActionBase await modalContext.onSubmit(); } } + +export { UmbPartialViewCreateOptionsEntityAction as api }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/manifests.ts index f6e8fd0f1a..05f1e09918 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/manifests.ts @@ -1,6 +1,5 @@ -import { UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE, UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE } from '../../entity.js'; -import { UmbPartialViewCreateOptionsEntityAction } from './create.action.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import { UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE, UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE } from '../../entity.js'; export const manifests: Array = [ { @@ -9,7 +8,7 @@ export const manifests: Array = [ alias: 'Umb.EntityAction.PartialView.CreateOptions', name: 'Partial View Create Options Entity Action', weight: 1200, - api: UmbPartialViewCreateOptionsEntityAction, + api: () => import('./create.action.js'), forEntityTypes: [UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE, UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE], meta: { icon: 'icon-add', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts index 6b5656ddf1..259edfe90b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts @@ -1,8 +1,8 @@ -import { UMB_SCRIPT_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import { UMB_SCRIPT_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; export class UmbScriptCreateOptionsEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHost, args: UmbEntityActionArgs) { @@ -23,3 +23,5 @@ export class UmbScriptCreateOptionsEntityAction extends UmbEntityActionBase = [ { @@ -9,7 +8,7 @@ export const manifests: Array = [ alias: 'Umb.EntityAction.Script.CreateOptions', name: 'Script Create Options Entity Action', weight: 1200, - api: UmbScriptCreateOptionsEntityAction, + api: () => import('./create.action.js'), forEntityTypes: [UMB_SCRIPT_ROOT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE], meta: { icon: 'icon-add', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts index bdc100da4e..1e76bec9d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts @@ -1,6 +1,6 @@ -import { UMB_STYLESHEET_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import { UMB_STYLESHEET_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; export class UmbStylesheetCreateOptionsEntityAction extends UmbEntityActionBase { override async execute() { @@ -17,3 +17,5 @@ export class UmbStylesheetCreateOptionsEntityAction extends UmbEntityActionBase< await modalContext.onSubmit(); } } + +export { UmbStylesheetCreateOptionsEntityAction as api }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/manifests.ts index 445ff76811..9e93abc832 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/manifests.ts @@ -1,6 +1,5 @@ -import { UMB_STYLESHEET_FOLDER_ENTITY_TYPE, UMB_STYLESHEET_ROOT_ENTITY_TYPE } from '../../entity.js'; -import { UmbStylesheetCreateOptionsEntityAction } from './create.action.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import { UMB_STYLESHEET_FOLDER_ENTITY_TYPE, UMB_STYLESHEET_ROOT_ENTITY_TYPE } from '../../entity.js'; export const manifests: Array = [ { @@ -9,7 +8,7 @@ export const manifests: Array = [ alias: 'Umb.EntityAction.Stylesheet.CreateOptions', name: 'Stylesheet Create Options Entity Action', weight: 1200, - api: UmbStylesheetCreateOptionsEntityAction, + api: () => import('./create.action.js'), forEntityTypes: [UMB_STYLESHEET_ROOT_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE], meta: { icon: 'icon-add', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/create/create.action.ts index 97fb564ba7..91e989477c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/create/create.action.ts @@ -2,7 +2,7 @@ import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action' import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -export class UmbCreateEntityAction extends UmbEntityActionBase { +export class UmbCreateTemplateEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHost, args: UmbEntityActionArgs) { super(host, args); } @@ -15,3 +15,5 @@ export class UmbCreateEntityAction extends UmbEntityActionBase { history.pushState(null, '', url); } } + +export { UmbCreateTemplateEntityAction as api }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/manifests.ts index 1a2fd784ee..f27fdcfe6f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/manifests.ts @@ -1,7 +1,6 @@ +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; import { UMB_TEMPLATE_DETAIL_REPOSITORY_ALIAS, UMB_TEMPLATE_ITEM_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_TEMPLATE_ENTITY_TYPE, UMB_TEMPLATE_ROOT_ENTITY_TYPE } from '../entity.js'; -import { UmbCreateEntityAction } from './create/create.action.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { @@ -10,7 +9,7 @@ const entityActions: Array = [ alias: 'Umb.EntityAction.Template.Create', name: 'Create Template Entity Action', weight: 1200, - api: UmbCreateEntityAction, + api: () => import('./create/create.action.js'), forEntityTypes: [UMB_TEMPLATE_ENTITY_TYPE, UMB_TEMPLATE_ROOT_ENTITY_TYPE], meta: { icon: 'icon-add', From b4fd4a3840f0de608ae7757209edcecc69ab04f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 26 Jun 2024 11:07:49 +0200 Subject: [PATCH 13/78] 404 route --- .../src/assets/lang/en-us.ts | 4 ++ .../src/external/router-slot/router-slot.ts | 25 ++++++++- .../block/block-grid/workspace/manifests.ts | 2 +- .../block-grid/workspace/views/manifests.ts | 4 +- .../block/block/workspace/manifests.ts | 4 ++ .../core/router/router-slot.element.ts | 3 +- .../workspace-editor.element.ts | 15 ++--- .../workspace-fallback-view.element.ts | 56 +++++++++++++++++++ 8 files changed, 96 insertions(+), 17 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-views/workspace-fallback-view.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts index 511f97480e..42b706954f 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts +++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts @@ -2524,4 +2524,8 @@ export default { detailedLevelDescription: '\n We will send:\n
    \n
  • Anonymized site ID, Umbraco version, and packages installed.
  • \n
  • Number of: Root nodes, Content nodes, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.
  • \n
  • System information: Webserver, server OS, server framework, server OS language, and database provider.
  • \n
  • Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.
  • \n
\n We might change what we send on the Detailed level in the future. If so, it will be listed above.\n
By choosing "Detailed" you agree to current and future anonymized information being collected.
\n ', }, + routing: { + routeNotFoundTitle: 'Not found', + routeNotFoundDescription: 'The requested route could not be found. Please check the URL and try again.' + } } as UmbLocalizationDictionary; diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts b/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts index 6f8e91af83..4bf3e5d5e5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts +++ b/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts @@ -197,8 +197,16 @@ export class RouterSlot extends HTMLElement implements IRouter this._routes.push(...routes); if (navigate === undefined) { - // If navigate is not determined, then we will check if we have a route match. If not then we will re-render. + // If navigate is not determined, then we will check if we have a route match. If not then we will re-render. [NL] navigate = this._routeMatch === null; + if (navigate === false) { + const newMatch = this.getRouteMatch(); + console.log("new match...", newMatch) + // Check if match is still present? [NL] + // Check if there is a better/different match? [NL] + // Maybe both are handled in this approach? [NL] + navigate = this._routeMatch !== newMatch; + } } // Navigate fallback: @@ -206,6 +214,7 @@ export class RouterSlot extends HTMLElement implements IRouter // Register that the path has changed so the correct route can be loaded. if (navigate) { + console.log("navigate...") this.render(); } } @@ -232,13 +241,21 @@ export class RouterSlot extends HTMLElement implements IRouter // Either choose the parent fragment or the current path if no parent exists. // The root router slot will always use the entire path. - const pathFragment = - this.parent != null && this.parent.fragments != null ? this.parent.fragments.rest : pathWithoutBasePath(); + const pathFragment = this.getPathFragment(); // Route to the path await this.renderPath(pathFragment); } + protected getPathFragment() { + return this.parent != null && this.parent.fragments != null ? this.parent.fragments.rest : pathWithoutBasePath(); + } + + protected getRouteMatch() { + // Find the corresponding route. + return matchRoutes(this._routes, this.getPathFragment()); + } + /** * Attaches listeners, either globally or on the parent router. */ @@ -296,6 +313,8 @@ export class RouterSlot extends HTMLElement implements IRouter * Returns true if a navigation was made to a new page. */ protected async renderPath(path: string | PathFragment): Promise { + + // Notice: Since this is never called from any other place than one higher in this file(when writing this...), we could just retrieve the path and find a match by using this.getRouteMatch() [NL] // Find the corresponding route. const match = matchRoutes(this._routes, path); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/manifests.ts index 09c4468799..f7b94148ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/manifests.ts @@ -1,6 +1,6 @@ +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; import { manifests as workspaceViewManifests } from './views/manifests.js'; import { UMB_BLOCK_GRID_TYPE_WORKSPACE_ALIAS } from './index.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array = [ ...workspaceViewManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/manifests.ts index e50774cc26..2d55fb84c3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/manifests.ts @@ -1,5 +1,5 @@ -import { UMB_BLOCK_GRID_TYPE_WORKSPACE_ALIAS } from '../index.js'; import type { ManifestTypes, ManifestWorkspaceView } from '@umbraco-cms/backoffice/extension-registry'; +import { UMB_BLOCK_GRID_TYPE_WORKSPACE_ALIAS } from '../index.js'; export const workspaceViews: Array = [ { @@ -53,7 +53,7 @@ export const workspaceViews: Array = [ { alias: 'Umb.Condition.WorkspaceAlias', match: UMB_BLOCK_GRID_TYPE_WORKSPACE_ALIAS, - }, + } ], }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts index 8b25bde2eb..b5078f80de 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts @@ -76,6 +76,10 @@ export const manifests: Array = [ { alias: 'Umb.Condition.BlockWorkspaceHasSettings', }, + { + alias: 'Umb.Condition.Switch', + frequency: '2000000000' + } ], } as any, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot.element.ts index 019d1324f0..7d62a52f1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot.element.ts @@ -28,7 +28,8 @@ export class UmbRouterSlotElement extends UmbLitElement { value ??= []; const oldValue = this.#router.routes; if ( - value.filter((route) => (oldValue ? oldValue.findIndex((r) => r.path === route.path) === -1 : true)).length > 0 + value.length !== oldValue?.length || + value.filter((route) => (oldValue?.findIndex((r) => r.path === route.path) === -1)).length > 0 ) { this.#router.routes = value; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts index cd43be73f3..43640abca6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts @@ -70,18 +70,13 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { }, } as UmbRoute; }); - - // If we have a post fix then we need to add a direct from the empty url of the split-view-index: - // TODO: This is problematic, cause if a workspaceView appears later, then this takes over. And it is also a problem if it does not use redirect, but just a view defined with and empty path. - const firstRoute = newRoutes[0]; - if (firstRoute) { - newRoutes.push({ - path: ``, - redirectTo: firstRoute.path, - }); - } } + newRoutes.push({ + path: `**`, + component: () => import('../workspace-views/workspace-fallback-view.element.js'), + }); + this._routes = newRoutes; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-views/workspace-fallback-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-views/workspace-fallback-view.element.ts new file mode 100644 index 0000000000..231ee4a5ea --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-views/workspace-fallback-view.element.ts @@ -0,0 +1,56 @@ +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; + +/** + * A fallback view to be used in Workspace Views, maybe this can be upgraded at a later point. + */ +// TODO: Rename and move this file to a more generic place. +@customElement('umb-workspace-fallback-view') +export class UmbWorkspaceFallbackViewElement extends UmbLitElement { + + override render() { + return html` +
+

+ +
+ `; + } + + static override styles = [ + UmbTextStyles, + css` + :host { + display: block; + width: 100%; + height: 100%; + min-width: 0; + } + + :host > div { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100%; + opacity: 0; + animation: fadeIn 4s .2s forwards; + } + + @keyframes fadeIn { + 100% { + opacity: 100%; + } + } + `, + ]; +} + +export default UmbWorkspaceFallbackViewElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-workspace-fallback-view': UmbWorkspaceFallbackViewElement; + } +} From 20d1baab64969ddd5ab0ebc019987d762703032c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 11:46:05 +0200 Subject: [PATCH 14/78] split token from implementation --- .../packages/templating/partial-views/repository/index.ts | 2 +- .../templating/partial-views/repository/item/index.ts | 2 +- .../repository/item/partial-view-item.repository.ts | 6 +++--- .../item/partial-view-item.store.context-token.ts | 6 ++++++ .../repository/item/partial-view-item.store.ts | 8 ++------ .../repository/partial-view-detail.repository.ts | 6 +++--- .../repository/partial-view-detail.store.context-token.ts | 6 ++++++ .../partial-views/repository/partial-view-detail.store.ts | 8 ++------ .../src/packages/templating/partial-views/tree/index.ts | 2 +- .../partial-views/tree/partial-view-tree.repository.ts | 8 ++++---- .../tree/partial-view-tree.store.context-token.ts | 6 ++++++ .../partial-views/tree/partial-view-tree.store.ts | 6 +----- .../workspace/partial-view-workspace.context-token.ts | 4 ++-- .../src/packages/templating/scripts/repository/index.ts | 2 +- .../packages/templating/scripts/repository/item/index.ts | 2 +- .../scripts/repository/item/script-item.repository.ts | 6 +++--- .../repository/item/script-item.store.context-token.ts | 4 ++++ .../scripts/repository/item/script-item.store.ts | 6 ++---- .../scripts/repository/script-detail.repository.ts | 6 +++--- .../repository/script-detail.store.context-token.ts | 4 ++++ .../templating/scripts/repository/script-detail.store.ts | 6 ++---- .../src/packages/templating/scripts/tree/index.ts | 2 +- .../templating/scripts/tree/script-tree.repository.ts | 6 +++--- .../scripts/tree/script-tree.store.context-token.ts | 4 ++++ .../packages/templating/scripts/tree/script-tree.store.ts | 4 +--- .../scripts/workspace/script-workspace.context-token.ts | 2 +- .../packages/templating/stylesheets/repository/index.ts | 3 ++- .../templating/stylesheets/repository/item/index.ts | 2 +- .../repository/item/stylesheet-item.repository.ts | 6 +++--- .../item/stylesheet-item.store.context-token.ts | 4 ++++ .../stylesheets/repository/item/stylesheet-item.store.ts | 6 ++---- .../repository/stylesheet-detail.repository.ts | 6 +++--- .../repository/stylesheet-detail.store.context-token.ts | 6 ++++++ .../stylesheets/repository/stylesheet-detail.store.ts | 8 ++------ .../src/packages/templating/stylesheets/tree/index.ts | 2 +- .../stylesheets/tree/stylesheet-tree.repository.ts | 8 ++++---- .../tree/stylesheet-tree.store.context-token.ts | 4 ++++ .../templating/stylesheets/tree/stylesheet-tree.store.ts | 4 +--- .../workspace/stylesheet-workspace.context-token.ts | 4 ++-- .../repository/detail/template-detail.repository.ts | 6 +++--- .../detail/template-detail.store.context-token.ts | 4 ++++ .../templates/repository/detail/template-detail.store.ts | 6 ++---- .../templates/repository/item/template-item.repository.ts | 6 +++--- .../repository/item/template-item.store.context-token.ts | 4 ++++ .../templates/repository/item/template-item.store.ts | 6 ++---- .../src/packages/templating/templates/tree/index.ts | 2 +- .../templating/templates/tree/template-tree.repository.ts | 8 ++++---- .../templates/tree/template-tree.store.context-token.ts | 4 ++++ .../templating/templates/tree/template-tree.store.ts | 4 +--- .../workspace/template-workspace.context-token.ts | 2 +- 50 files changed, 132 insertions(+), 107 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/partial-view-item.store.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.store.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/script-item.store.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.store.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.store.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.context-token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/index.ts index 39402645a6..c2c00a61f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/index.ts @@ -1,3 +1,3 @@ export { UmbPartialViewDetailRepository } from './partial-view-detail.repository.js'; export { UMB_PARTIAL_VIEW_DETAIL_REPOSITORY_ALIAS } from './manifests.js'; -export { UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT } from './partial-view-detail.store.js'; +export { UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT } from './partial-view-detail.store.context-token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/index.ts index d25f95a60a..5bfa2fb180 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/index.ts @@ -1,3 +1,3 @@ export { UmbPartialViewItemRepository } from './partial-view-item.repository.js'; export { UMB_PARTIAL_VIEW_ITEM_REPOSITORY_ALIAS, UMB_PARTIAL_VIEW_ITEM_STORE_ALIAS } from './manifests.js'; -export { UMB_PARTIAL_VIEW_ITEM_STORE_CONTEXT } from './partial-view-item.store.js'; +export { UMB_PARTIAL_VIEW_ITEM_STORE_CONTEXT } from './partial-view-item.store.context-token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/partial-view-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/partial-view-item.repository.ts index 0779f52811..1d66597196 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/partial-view-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/partial-view-item.repository.ts @@ -1,8 +1,8 @@ -import type { UmbPartialViewItemModel } from '../../types.js'; -import { UmbPartialViewItemServerDataSource } from './partial-view-item.server.data-source.js'; -import { UMB_PARTIAL_VIEW_ITEM_STORE_CONTEXT } from './partial-view-item.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import type { UmbPartialViewItemModel } from '../../types.js'; +import { UmbPartialViewItemServerDataSource } from './partial-view-item.server.data-source.js'; +import { UMB_PARTIAL_VIEW_ITEM_STORE_CONTEXT } from './partial-view-item.store.context-token.js'; export class UmbPartialViewItemRepository extends UmbItemRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/partial-view-item.store.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/partial-view-item.store.context-token.ts new file mode 100644 index 0000000000..b53341468c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/partial-view-item.store.context-token.ts @@ -0,0 +1,6 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbPartialViewItemStore } from './partial-view-item.store.js'; + +export const UMB_PARTIAL_VIEW_ITEM_STORE_CONTEXT = new UmbContextToken( + 'UmbPartialViewItemStore', +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/partial-view-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/partial-view-item.store.ts index 0b1f537f33..3d56ff7614 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/partial-view-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/item/partial-view-item.store.ts @@ -1,7 +1,7 @@ -import type { UmbPartialViewItemModel } from '../../types.js'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store'; +import type { UmbPartialViewItemModel } from '../../types.js'; +import { UMB_PARTIAL_VIEW_ITEM_STORE_CONTEXT } from './partial-view-item.store.context-token.js'; /** * @export @@ -22,7 +22,3 @@ export class UmbPartialViewItemStore extends UmbItemStoreBase( - 'UmbPartialViewItemStore', -); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts index 686f6be2b9..2b62d2d88a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts @@ -1,8 +1,8 @@ -import type { UmbPartialViewDetailModel } from '../types.js'; -import { UmbPartialViewDetailServerDataSource } from './partial-view-detail.server.data-source.js'; -import { UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT } from './partial-view-detail.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import type { UmbPartialViewDetailModel } from '../types.js'; +import { UmbPartialViewDetailServerDataSource } from './partial-view-detail.server.data-source.js'; +import { UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT } from './partial-view-detail.store.context-token.js'; export class UmbPartialViewDetailRepository extends UmbDetailRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.store.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.store.context-token.ts new file mode 100644 index 0000000000..8c7d18fe56 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.store.context-token.ts @@ -0,0 +1,6 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbPartialViewDetailStore } from './partial-view-detail.store.js'; + +export const UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT = new UmbContextToken( + 'UmbPartialViewDetailStore', +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.store.ts index 8334c4eb7b..bae29061e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.store.ts @@ -1,7 +1,7 @@ -import type { UmbPartialViewDetailModel } from '../types.js'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; +import type { UmbPartialViewDetailModel } from '../types.js'; +import { UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT } from './partial-view-detail.store.context-token.js'; /** * @export @@ -21,7 +21,3 @@ export class UmbPartialViewDetailStore extends UmbDetailStoreBase( - 'UmbPartialViewDetailStore', -); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/index.ts index b145ef7fe2..9d1efb47e4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/index.ts @@ -4,6 +4,6 @@ export { UMB_PARTIAL_VIEW_TREE_STORE_ALIAS, UMB_PARTIAL_VIEW_TREE_ALIAS, } from './manifests.js'; -export { UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT } from './partial-view-tree.store.js'; +export { UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT } from './partial-view-tree.store.context-token.js'; export { type UmbPartialViewTreeStore } from './partial-view-tree.store.js'; export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts index 69b1777f4c..57d8da8cc4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts @@ -1,10 +1,10 @@ -import { UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE } from '../entity.js'; -import { UmbPartialViewTreeServerDataSource } from './partial-view-tree.server.data-source.js'; -import type { UmbPartialViewTreeItemModel, UmbPartialViewTreeRootModel } from './types.js'; -import { UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT } from './partial-view-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import { UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE } from '../entity.js'; +import { UmbPartialViewTreeServerDataSource } from './partial-view-tree.server.data-source.js'; +import type { UmbPartialViewTreeItemModel, UmbPartialViewTreeRootModel } from './types.js'; +import { UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT } from './partial-view-tree.store.context-token.js'; export class UmbPartialViewTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.context-token.ts new file mode 100644 index 0000000000..6b169770c3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.context-token.ts @@ -0,0 +1,6 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbPartialViewTreeStore } from './partial-view-tree.store.js'; + +export const UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT = new UmbContextToken( + 'UmbPartialViewTreeStore', +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts index 5783cbc017..67248b8d67 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts @@ -1,6 +1,6 @@ -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT } from './partial-view-tree.store.context-token.js'; /** * @export @@ -20,7 +20,3 @@ export class UmbPartialViewTreeStore extends UmbUniqueTreeStore { } export default UmbPartialViewTreeStore; - -export const UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT = new UmbContextToken( - 'UmbPartialViewTreeStore', -); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context-token.ts index 54c9803061..211d09461a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context-token.ts @@ -1,7 +1,7 @@ -import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../entity.js'; -import type { UmbPartialViewWorkspaceContext } from './partial-view-workspace.context.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbSubmittableWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; +import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../entity.js'; +import type { UmbPartialViewWorkspaceContext } from './partial-view-workspace.context.js'; export const UMB_PARTIAL_VIEW_WORKSPACE_CONTEXT = new UmbContextToken< UmbSubmittableWorkspaceContext, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts index f53bd9a964..5b576ff659 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts @@ -1,3 +1,3 @@ export { UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS } from './manifests.js'; export { UmbScriptDetailRepository } from './script-detail.repository.js'; -export { UMB_SCRIPT_DETAIL_STORE_CONTEXT } from './script-detail.store.js'; +export { UMB_SCRIPT_DETAIL_STORE_CONTEXT } from './script-detail.store.context-token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/index.ts index 2ce544e48a..4ff9d2c346 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/index.ts @@ -1,3 +1,3 @@ export { UmbScriptItemRepository } from './script-item.repository.js'; export { UMB_SCRIPT_ITEM_REPOSITORY_ALIAS, UMB_SCRIPT_ITEM_STORE_ALIAS } from './manifests.js'; -export { UMB_SCRIPT_ITEM_STORE_CONTEXT } from './script-item.store.js'; +export { UMB_SCRIPT_ITEM_STORE_CONTEXT } from './script-item.store.context-token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/script-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/script-item.repository.ts index f4aeb8ba78..2691695a63 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/script-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/script-item.repository.ts @@ -1,8 +1,8 @@ -import type { UmbScriptItemModel } from '../../types.js'; -import { UmbScriptItemServerDataSource } from './script-item.server.data-source.js'; -import { UMB_SCRIPT_ITEM_STORE_CONTEXT } from './script-item.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import type { UmbScriptItemModel } from '../../types.js'; +import { UmbScriptItemServerDataSource } from './script-item.server.data-source.js'; +import { UMB_SCRIPT_ITEM_STORE_CONTEXT } from './script-item.store.context-token.js'; export class UmbScriptItemRepository extends UmbItemRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/script-item.store.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/script-item.store.context-token.ts new file mode 100644 index 0000000000..1b99e1d606 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/script-item.store.context-token.ts @@ -0,0 +1,4 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbScriptItemStore } from './script-item.store.js'; + +export const UMB_SCRIPT_ITEM_STORE_CONTEXT = new UmbContextToken('UmbScriptItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/script-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/script-item.store.ts index 6b3c7f6c55..280d21e583 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/script-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/item/script-item.store.ts @@ -1,7 +1,7 @@ -import type { UmbScriptItemModel } from '../../types.js'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store'; +import type { UmbScriptItemModel } from '../../types.js'; +import { UMB_SCRIPT_ITEM_STORE_CONTEXT } from './script-item.store.context-token.js'; /** * @export @@ -22,5 +22,3 @@ export class UmbScriptItemStore extends UmbItemStoreBase { } export default UmbScriptItemStore; - -export const UMB_SCRIPT_ITEM_STORE_CONTEXT = new UmbContextToken('UmbScriptItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts index 0366a2990a..52d9b83376 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts @@ -1,8 +1,8 @@ -import type { UmbScriptDetailModel } from '../types.js'; -import { UMB_SCRIPT_DETAIL_STORE_CONTEXT } from './script-detail.store.js'; -import { UmbScriptDetailServerDataSource } from './script-detail.server.data-source.js'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbScriptDetailModel } from '../types.js'; +import { UMB_SCRIPT_DETAIL_STORE_CONTEXT } from './script-detail.store.context-token.js'; +import { UmbScriptDetailServerDataSource } from './script-detail.server.data-source.js'; export class UmbScriptDetailRepository extends UmbDetailRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.context-token.ts new file mode 100644 index 0000000000..30d80a6d35 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.context-token.ts @@ -0,0 +1,4 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbScriptDetailStore } from './script-detail.store.js'; + +export const UMB_SCRIPT_DETAIL_STORE_CONTEXT = new UmbContextToken('UmbScriptDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts index 375fc959a1..0631b34666 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts @@ -1,7 +1,7 @@ -import type { UmbScriptDetailModel } from '../types.js'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; +import type { UmbScriptDetailModel } from '../types.js'; +import { UMB_SCRIPT_DETAIL_STORE_CONTEXT } from './script-detail.store.context-token.js'; /** * @export @@ -21,5 +21,3 @@ export class UmbScriptDetailStore extends UmbDetailStoreBase('UmbScriptDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/index.ts index 37225e51cc..58d9e10f46 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/index.ts @@ -1,5 +1,5 @@ export { UmbScriptTreeRepository } from './script-tree.repository.js'; export { UMB_SCRIPT_TREE_REPOSITORY_ALIAS, UMB_SCRIPT_TREE_STORE_ALIAS, UMB_SCRIPT_TREE_ALIAS } from './manifests.js'; -export { UMB_SCRIPT_TREE_STORE_CONTEXT } from './script-tree.store.js'; +export { UMB_SCRIPT_TREE_STORE_CONTEXT } from './script-tree.store.context-token.js'; export { type UmbScriptTreeStore } from './script-tree.store.js'; export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts index bb3c68e1af..f62c47ae08 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts @@ -1,9 +1,9 @@ +import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UMB_SCRIPT_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbScriptTreeServerDataSource } from './script-tree.server.data-source.js'; import type { UmbScriptTreeItemModel, UmbScriptTreeRootModel } from './types.js'; -import { UMB_SCRIPT_TREE_STORE_CONTEXT } from './script-tree.store.js'; -import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UMB_SCRIPT_TREE_STORE_CONTEXT } from './script-tree.store.context-token.js'; // TODO: TREE STORE TYPE PROBLEM: export class UmbScriptTreeRepository extends UmbTreeRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.context-token.ts new file mode 100644 index 0000000000..0a433efd7e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.context-token.ts @@ -0,0 +1,4 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbScriptTreeStore } from './script-tree.store.js'; + +export const UMB_SCRIPT_TREE_STORE_CONTEXT = new UmbContextToken('UmbScriptTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts index 1cef997c52..6a52812873 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts @@ -1,6 +1,6 @@ -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UMB_SCRIPT_TREE_STORE_CONTEXT } from './script-tree.store.context-token.js'; /** * @export @@ -20,5 +20,3 @@ export class UmbScriptTreeStore extends UmbUniqueTreeStore { } export default UmbScriptTreeStore; - -export const UMB_SCRIPT_TREE_STORE_CONTEXT = new UmbContextToken('UmbScriptTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context-token.ts index c5dd0234b5..3cff7360d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context-token.ts @@ -1,6 +1,6 @@ -import type { UmbScriptWorkspaceContext } from './script-workspace.context.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; +import type { UmbScriptWorkspaceContext } from './script-workspace.context.js'; export const UMB_SCRIPT_WORKSPACE_CONTEXT = new UmbContextToken( 'UmbWorkspaceContext', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts index 3f00980578..f164c3cb28 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts @@ -2,4 +2,5 @@ export * from './item/index.js'; export * from './stylesheet-detail.repository.js'; export { UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS } from './manifests.js'; -export { type UmbStylesheetDetailStore, UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.js'; +export { type UmbStylesheetDetailStore } from './stylesheet-detail.store.js'; +export { UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.context-token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/index.ts index 929e43c0f8..6df1aaee57 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/index.ts @@ -1,3 +1,3 @@ export { UmbStylesheetItemRepository } from './stylesheet-item.repository.js'; export { UMB_STYLESHEET_ITEM_REPOSITORY_ALIAS, UMB_STYLESHEET_ITEM_STORE_ALIAS } from './manifests.js'; -export { UMB_STYLESHEET_ITEM_STORE_CONTEXT } from './stylesheet-item.store.js'; +export { UMB_STYLESHEET_ITEM_STORE_CONTEXT } from './stylesheet-item.store.context-token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts index 73aa50c015..964eacd51c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts @@ -1,8 +1,8 @@ -import type { UmbStylesheetItemModel } from '../../types.js'; -import { UmbStylesheetItemServerDataSource } from './stylesheet-item.server.data-source.js'; -import { UMB_STYLESHEET_ITEM_STORE_CONTEXT } from './stylesheet-item.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import type { UmbStylesheetItemModel } from '../../types.js'; +import { UmbStylesheetItemServerDataSource } from './stylesheet-item.server.data-source.js'; +import { UMB_STYLESHEET_ITEM_STORE_CONTEXT } from './stylesheet-item.store.context-token.js'; export class UmbStylesheetItemRepository extends UmbItemRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.context-token.ts new file mode 100644 index 0000000000..eeebd2ad68 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.context-token.ts @@ -0,0 +1,4 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbStylesheetItemStore } from './stylesheet-item.store.js'; + +export const UMB_STYLESHEET_ITEM_STORE_CONTEXT = new UmbContextToken('UmbStylesheetItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.ts index 452bf4ed72..66a7e7bddf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.ts @@ -1,7 +1,7 @@ -import type { UmbStylesheetItemModel } from '../../types.js'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store'; +import type { UmbStylesheetItemModel } from '../../types.js'; +import { UMB_STYLESHEET_ITEM_STORE_CONTEXT } from './stylesheet-item.store.context-token.js'; /** * @export @@ -22,5 +22,3 @@ export class UmbStylesheetItemStore extends UmbItemStoreBase('UmbStylesheetItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts index 5cfe1c64bb..3632871314 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts @@ -1,8 +1,8 @@ -import type { UmbStylesheetDetailModel } from '../types.js'; -import { UmbStylesheetDetailServerDataSource } from './stylesheet-detail.server.data-source.js'; -import { UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import type { UmbStylesheetDetailModel } from '../types.js'; +import { UmbStylesheetDetailServerDataSource } from './stylesheet-detail.server.data-source.js'; +import { UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.context-token.js'; export class UmbStylesheetDetailRepository extends UmbDetailRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.context-token.ts new file mode 100644 index 0000000000..851d617f6a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.context-token.ts @@ -0,0 +1,6 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbStylesheetDetailStore } from './stylesheet-detail.store.js'; + +export const UMB_STYLESHEET_DETAIL_STORE_CONTEXT = new UmbContextToken( + 'UmbStylesheetDetailStore', +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.ts index 9a4d91d31d..1eb6ecc526 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.ts @@ -1,7 +1,7 @@ -import type { UmbStylesheetDetailModel } from '../types.js'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; +import type { UmbStylesheetDetailModel } from '../types.js'; +import { UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.context-token.js'; /** * @export @@ -21,7 +21,3 @@ export class UmbStylesheetDetailStore extends UmbDetailStoreBase( - 'UmbStylesheetDetailStore', -); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/index.ts index e7cd001fce..fec6b1c31a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/index.ts @@ -4,6 +4,6 @@ export { UMB_STYLESHEET_TREE_STORE_ALIAS, UMB_STYLESHEET_TREE_ALIAS, } from './manifests.js'; -export { UMB_STYLESHEET_TREE_STORE_CONTEXT } from './stylesheet-tree.store.js'; +export { UMB_STYLESHEET_TREE_STORE_CONTEXT } from './stylesheet-tree.store.context-token.js'; export { type UmbStylesheetTreeStore } from './stylesheet-tree.store.js'; export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts index 6edec84a7a..8a6ae8a483 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts @@ -1,9 +1,9 @@ -import { UMB_STYLESHEET_ROOT_ENTITY_TYPE } from '../entity.js'; -import { UmbStylesheetTreeServerDataSource } from './stylesheet-tree.server.data-source.js'; -import { UMB_STYLESHEET_TREE_STORE_CONTEXT } from './stylesheet-tree.store.js'; -import type { UmbStylesheetTreeItemModel, UmbStylesheetTreeRootModel } from './types.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UMB_STYLESHEET_ROOT_ENTITY_TYPE } from '../entity.js'; +import { UmbStylesheetTreeServerDataSource } from './stylesheet-tree.server.data-source.js'; +import { UMB_STYLESHEET_TREE_STORE_CONTEXT } from './stylesheet-tree.store.context-token.js'; +import type { UmbStylesheetTreeItemModel, UmbStylesheetTreeRootModel } from './types.js'; export class UmbStylesheetTreeRepository extends UmbTreeRepositoryBase< UmbStylesheetTreeItemModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.context-token.ts new file mode 100644 index 0000000000..6a3618d7b9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.context-token.ts @@ -0,0 +1,4 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbStylesheetTreeStore } from './stylesheet-tree.store.js'; + +export const UMB_STYLESHEET_TREE_STORE_CONTEXT = new UmbContextToken('UmbStylesheetTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts index 7474d507c1..081b2545b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts @@ -1,6 +1,6 @@ import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UMB_STYLESHEET_TREE_STORE_CONTEXT } from './stylesheet-tree.store.context-token.js'; /** * @export @@ -20,5 +20,3 @@ export class UmbStylesheetTreeStore extends UmbUniqueTreeStore { } export default UmbStylesheetTreeStore; - -export const UMB_STYLESHEET_TREE_STORE_CONTEXT = new UmbContextToken('UmbStylesheetTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context-token.ts index d706d04bb8..69f0d9d232 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context-token.ts @@ -1,7 +1,7 @@ -import { UMB_STYLESHEET_ENTITY_TYPE } from '../entity.js'; -import type { UmbStylesheetWorkspaceContext } from './stylesheet-workspace.context.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbSubmittableWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; +import { UMB_STYLESHEET_ENTITY_TYPE } from '../entity.js'; +import type { UmbStylesheetWorkspaceContext } from './stylesheet-workspace.context.js'; export const UMB_STYLESHEET_WORKSPACE_CONTEXT = new UmbContextToken< UmbSubmittableWorkspaceContext, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.repository.ts index 547be72f0c..dd01273dac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.repository.ts @@ -1,8 +1,8 @@ -import type { UmbTemplateDetailModel } from '../../types.js'; -import { UmbTemplateServerDataSource } from './template-detail.server.data-source.js'; -import { UMB_TEMPLATE_DETAIL_STORE_CONTEXT } from './template-detail.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import type { UmbTemplateDetailModel } from '../../types.js'; +import { UmbTemplateServerDataSource } from './template-detail.server.data-source.js'; +import { UMB_TEMPLATE_DETAIL_STORE_CONTEXT } from './template-detail.store.context-token.js'; export class UmbTemplateDetailRepository extends UmbDetailRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.store.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.store.context-token.ts new file mode 100644 index 0000000000..aa8f305ae2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.store.context-token.ts @@ -0,0 +1,4 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbTemplateDetailStore } from './template-detail.store.js'; + +export const UMB_TEMPLATE_DETAIL_STORE_CONTEXT = new UmbContextToken('UmbTemplateDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.store.ts index 0de7d4a852..79e6626082 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/detail/template-detail.store.ts @@ -1,7 +1,7 @@ -import type { UmbTemplateDetailModel } from '../../types.js'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbTemplateDetailModel } from '../../types.js'; +import { UMB_TEMPLATE_DETAIL_STORE_CONTEXT } from './template-detail.store.context-token.js'; /** * @export @@ -21,5 +21,3 @@ export class UmbTemplateDetailStore extends UmbDetailStoreBase('UmbTemplateDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.repository.ts index 88f329f8a0..c95aba9704 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.repository.ts @@ -1,8 +1,8 @@ -import { UmbTemplateItemServerDataSource } from './template-item.server.data-source.js'; -import { UMB_TEMPLATE_ITEM_STORE_CONTEXT } from './template-item.store.js'; -import type { UmbTemplateItemModel } from './types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import { UmbTemplateItemServerDataSource } from './template-item.server.data-source.js'; +import { UMB_TEMPLATE_ITEM_STORE_CONTEXT } from './template-item.store.context-token.js'; +import type { UmbTemplateItemModel } from './types.js'; export class UmbTemplateItemRepository extends UmbItemRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.store.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.store.context-token.ts new file mode 100644 index 0000000000..46db64cdf9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.store.context-token.ts @@ -0,0 +1,4 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbTemplateItemStore } from './template-item.store.js'; + +export const UMB_TEMPLATE_ITEM_STORE_CONTEXT = new UmbContextToken('UmbTemplateItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.store.ts index 7093c64520..ca7dbf96e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/item/template-item.store.ts @@ -1,7 +1,7 @@ -import type { UmbTemplateItemModel } from './types.js'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store'; +import type { UmbTemplateItemModel } from './types.js'; +import { UMB_TEMPLATE_ITEM_STORE_CONTEXT } from './template-item.store.context-token.js'; /** * @export @@ -22,5 +22,3 @@ export class UmbTemplateItemStore extends UmbItemStoreBase } export default UmbTemplateItemStore; - -export const UMB_TEMPLATE_ITEM_STORE_CONTEXT = new UmbContextToken('UmbTemplateItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/index.ts index 6552e9138b..2d83f31961 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/index.ts @@ -4,6 +4,6 @@ export { UMB_TEMPLATE_TREE_STORE_ALIAS, UMB_TEMPLATE_TREE_ALIAS, } from './manifests.js'; -export { UMB_TEMPLATE_TREE_STORE_CONTEXT } from './template-tree.store.js'; +export { UMB_TEMPLATE_TREE_STORE_CONTEXT } from './template-tree.store.context-token.js'; export { type UmbTemplateTreeStore } from './template-tree.store.js'; export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts index 77ec7b89aa..c8673ccdf1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts @@ -1,10 +1,10 @@ -import { UMB_TEMPLATE_ROOT_ENTITY_TYPE } from '../entity.js'; -import { UmbTemplateTreeServerDataSource } from './template-tree.server.data-source.js'; -import type { UmbTemplateTreeItemModel, UmbTemplateTreeRootModel } from './types.js'; -import { UMB_TEMPLATE_TREE_STORE_CONTEXT } from './template-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import { UMB_TEMPLATE_ROOT_ENTITY_TYPE } from '../entity.js'; +import { UmbTemplateTreeServerDataSource } from './template-tree.server.data-source.js'; +import type { UmbTemplateTreeItemModel, UmbTemplateTreeRootModel } from './types.js'; +import { UMB_TEMPLATE_TREE_STORE_CONTEXT } from './template-tree.store.context-token.js'; export class UmbTemplateTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.context-token.ts new file mode 100644 index 0000000000..19ae9353be --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.context-token.ts @@ -0,0 +1,4 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbTemplateTreeStore } from './template-tree.store.js'; + +export const UMB_TEMPLATE_TREE_STORE_CONTEXT = new UmbContextToken('UmbTemplateTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.ts index 26c8e5e624..9b1bb99a7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.ts @@ -1,6 +1,6 @@ -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UMB_TEMPLATE_TREE_STORE_CONTEXT } from './template-tree.store.context-token.js'; /** * @export @@ -20,5 +20,3 @@ export class UmbTemplateTreeStore extends UmbUniqueTreeStore { } export default UmbTemplateTreeStore; - -export const UMB_TEMPLATE_TREE_STORE_CONTEXT = new UmbContextToken('UmbTemplateTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context-token.ts index 6c6b390703..6564f95019 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context-token.ts @@ -1,6 +1,6 @@ -import type { UmbTemplateWorkspaceContext } from './template-workspace.context.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbSubmittableWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; +import type { UmbTemplateWorkspaceContext } from './template-workspace.context.js'; export const UMB_TEMPLATE_WORKSPACE_CONTEXT = new UmbContextToken< UmbSubmittableWorkspaceContext, From dbf8c8deedb629f61a14c3c5e446fa76a4cb6fea Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 13:08:31 +0200 Subject: [PATCH 15/78] fix import order --- .../stylesheet-rule-input/stylesheet-rule-input.element.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts index 33b0862bc4..4bd7e5cb36 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts @@ -1,11 +1,11 @@ -import type { UmbStylesheetRule } from '../../types.js'; -import { UMB_STYLESHEET_RULE_SETTINGS_MODAL } from './stylesheet-rule-settings-modal.token.js'; import { css, html, customElement, repeat, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbStylesheetRule } from '../../types.js'; +import { UMB_STYLESHEET_RULE_SETTINGS_MODAL } from './stylesheet-rule-settings-modal.token.js'; @customElement('umb-stylesheet-rule-input') export class UmbStylesheetRuleInputElement extends UUIFormControlMixin(UmbLitElement, '') { From d8c18dab422ec627bb1ed07d6ee56db995674042 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 13:08:42 +0200 Subject: [PATCH 16/78] add type and remove tsignore --- .../input-partial-view/input-partial-view.context.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/input-partial-view/input-partial-view.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/input-partial-view/input-partial-view.context.ts index 11c584246c..1dcff11475 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/input-partial-view/input-partial-view.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/input-partial-view/input-partial-view.context.ts @@ -1,13 +1,15 @@ +import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UMB_PARTIAL_VIEW_ITEM_REPOSITORY_ALIAS } from '../../repository/item/index.js'; import { UMB_PARTIAL_VIEW_PICKER_MODAL } from '../../partial-view-picker/index.js'; import type { UmbPartialViewItemModel } from '../../types.js'; -import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbPartialViewTreeItemModel } from '../../tree/types.js'; -export class UmbPartialViewPickerContext extends UmbPickerInputContext { +export class UmbPartialViewPickerContext extends UmbPickerInputContext< + UmbPartialViewItemModel, + UmbPartialViewTreeItemModel +> { constructor(host: UmbControllerHost) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore super(host, UMB_PARTIAL_VIEW_ITEM_REPOSITORY_ALIAS, UMB_PARTIAL_VIEW_PICKER_MODAL); } } From bd40c7f45f6313000962ccd4f1440254d2798d3f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 13:09:41 +0200 Subject: [PATCH 17/78] rename to folder global components --- .../workspace/workspace-package-builder.element.ts | 2 +- .../templates/{components => global-components}/index.ts | 0 .../input-template/input-template.context.ts | 0 .../input-template/input-template.element.ts | 0 .../template-card/template-card.element.ts | 0 .../template-card/template-card.stories.ts | 0 .../src/packages/templating/templates/index.ts | 4 ++-- 7 files changed, 3 insertions(+), 3 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/templating/templates/{components => global-components}/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/templates/{components => global-components}/input-template/input-template.context.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/templates/{components => global-components}/input-template/input-template.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/templates/{components => global-components}/template-card/template-card.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/templates/{components => global-components}/template-card/template-card.stories.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts index bab1fb0afa..0769aec30e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts @@ -3,7 +3,7 @@ import { UmbPackageRepository } from '../../package/repository/index.js'; import { UmbPartialViewPickerContext } from '../../../templating/partial-views/components/input-partial-view/input-partial-view.context.js'; import { UmbScriptPickerContext } from '../../../templating/scripts/components/input-script/input-script.context.js'; import { UmbStylesheetPickerContext } from '../../../templating/stylesheets/components/stylesheet-input/stylesheet-input.context.js'; -import { UmbTemplatePickerContext } from '../../../templating/templates/components/input-template/input-template.context.js'; +import { UmbTemplatePickerContext } from '../../../templating/templates/global-components/input-template/input-template.context.js'; import type { UmbCreatedPackageDefinition } from '../../types.js'; import type { UmbDataTypeInputElement } from '../../../data-type/components/data-type-input/data-type-input.element.js'; import type { UmbInputLanguageElement } from '../../../language/components/input-language/input-language.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/input-template/input-template.context.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/input-template/input-template.context.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/input-template/input-template.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/input-template/input-template.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/template-card/template-card.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/template-card/template-card.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/template-card/template-card.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/template-card/template-card.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/index.ts index f8e3d79c45..392b743cee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/index.ts @@ -1,6 +1,6 @@ -import './components/index.js'; +import './global-components/index.js'; -export * from './components/index.js'; +export * from './global-components/index.js'; export * from './entity.js'; export * from './modals/index.js'; export * from './repository/index.js'; From c2f53374061a23919173cdc4e8b4260a411655ba Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 13:10:17 +0200 Subject: [PATCH 18/78] rename folder to global components --- .../workspace/workspace-package-builder.element.ts | 2 +- .../{components => global-components}/index.ts | 0 .../{components => global-components}/manifests.ts | 0 .../stylesheet-input/index.ts | 0 .../stylesheet-input/stylesheet-input.context.ts | 0 .../stylesheet-input/stylesheet-input.element.ts | 0 .../stylesheet-input/stylesheet-picker-modal.token.ts | 0 .../stylesheet-rule-input/manifests.ts | 0 .../stylesheet-rule-input.element.ts | 0 .../stylesheet-rule-settings-modal.element.ts | 0 .../stylesheet-rule-settings-modal.token.ts | 0 .../stylesheet-rule-ref/stylesheet-rule-ref.element.ts | 0 .../src/packages/templating/stylesheets/index.ts | 8 ++++---- .../src/packages/templating/stylesheets/manifests.ts | 2 +- .../stylesheet-rich-text-rule-workspace-view.element.ts | 2 +- 15 files changed, 7 insertions(+), 7 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/{components => global-components}/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/{components => global-components}/manifests.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/{components => global-components}/stylesheet-input/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/{components => global-components}/stylesheet-input/stylesheet-input.context.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/{components => global-components}/stylesheet-input/stylesheet-input.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/{components => global-components}/stylesheet-input/stylesheet-picker-modal.token.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/{components => global-components}/stylesheet-rule-input/manifests.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/{components => global-components}/stylesheet-rule-input/stylesheet-rule-input.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/{components => global-components}/stylesheet-rule-input/stylesheet-rule-settings-modal.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/{components => global-components}/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/{components => global-components}/stylesheet-rule-ref/stylesheet-rule-ref.element.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts index 0769aec30e..fe44c32d7e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts @@ -2,7 +2,7 @@ import { UmbDictionaryPickerContext } from '../../../dictionary/components/input import { UmbPackageRepository } from '../../package/repository/index.js'; import { UmbPartialViewPickerContext } from '../../../templating/partial-views/components/input-partial-view/input-partial-view.context.js'; import { UmbScriptPickerContext } from '../../../templating/scripts/components/input-script/input-script.context.js'; -import { UmbStylesheetPickerContext } from '../../../templating/stylesheets/components/stylesheet-input/stylesheet-input.context.js'; +import { UmbStylesheetPickerContext } from '../../../templating/stylesheets/global-components/stylesheet-input/stylesheet-input.context.js'; import { UmbTemplatePickerContext } from '../../../templating/templates/global-components/input-template/input-template.context.js'; import type { UmbCreatedPackageDefinition } from '../../types.js'; import type { UmbDataTypeInputElement } from '../../../data-type/components/data-type-input/data-type-input.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-input/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-input/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-input/stylesheet-input.context.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-input/stylesheet-input.context.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-input/stylesheet-input.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-input/stylesheet-input.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-input/stylesheet-picker-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-picker-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-input/stylesheet-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-rule-input/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-rule-input/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-rule-input/stylesheet-rule-input.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-rule-input/stylesheet-rule-input.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-rule-input/stylesheet-rule-settings-modal.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-rule-input/stylesheet-rule-settings-modal.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-ref/stylesheet-rule-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-rule-ref/stylesheet-rule-ref.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-ref/stylesheet-rule-ref.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/global-components/stylesheet-rule-ref/stylesheet-rule-ref.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts index c8d98dcffb..9e1a9d4dde 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts @@ -1,4 +1,4 @@ -import './components/index.js'; +import './global-components/index.js'; export * from './repository/index.js'; export * from './entity.js'; @@ -6,9 +6,9 @@ export * from './entity.js'; export { UmbStylesheetTreeRepository } from './tree/index.js'; // Components -export { UmbStylesheetRuleInputElement } from './components/index.js'; -export { UmbStylesheetInputElement } from './components/index.js'; -export { UMB_STYLESHEET_PICKER_MODAL } from './components/index.js'; +export { UmbStylesheetRuleInputElement } from './global-components/index.js'; +export { UmbStylesheetInputElement } from './global-components/index.js'; +export { UMB_STYLESHEET_PICKER_MODAL } from './global-components/index.js'; // Utils export { UmbStylesheetRuleManager } from './utils/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts index 61cf551469..5d262392ce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts @@ -3,7 +3,7 @@ import { manifests as menuManifests } from './menu/manifests.js'; import { manifests as treeManifests } from './tree/manifests.js'; import { manifests as workspaceManifests } from './workspace/manifests.js'; import { manifests as entityActionManifests } from './entity-actions/manifests.js'; -import { manifests as componentManifests } from './components/manifests.js'; +import { manifests as componentManifests } from './global-components/manifests.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts index 2661159b09..3c821705f8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts @@ -1,5 +1,5 @@ import type { UmbStylesheetRule } from '../../../types.js'; -import type { UmbStylesheetRuleInputElement } from '../../../components/index.js'; +import type { UmbStylesheetRuleInputElement } from '../../../global-components/index.js'; import { UmbStylesheetRuleManager } from '../../../utils/index.js'; import { UMB_STYLESHEET_WORKSPACE_CONTEXT } from '../../stylesheet-workspace.context-token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; From d0a372ffae79d3ea2724479ef38411dfc2c9c5e3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 13:14:02 +0200 Subject: [PATCH 19/78] rename to global components --- .../src/packages/templating/scripts/global-components/index.ts | 1 + .../templating/scripts/global-components/input-script/index.ts | 1 + .../input-script/input-script.context.ts | 0 3 files changed, 2 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/global-components/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/global-components/input-script/index.ts rename src/Umbraco.Web.UI.Client/src/packages/templating/scripts/{components => global-components}/input-script/input-script.context.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/global-components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/global-components/index.ts new file mode 100644 index 0000000000..f89344b5c7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/global-components/index.ts @@ -0,0 +1 @@ +export * from './input-script/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/global-components/input-script/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/global-components/input-script/index.ts new file mode 100644 index 0000000000..131eea34e1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/global-components/input-script/index.ts @@ -0,0 +1 @@ +export * from './input-script.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/components/input-script/input-script.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/global-components/input-script/input-script.context.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/scripts/components/input-script/input-script.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/scripts/global-components/input-script/input-script.context.ts From a72a0a9cff58628d3c37db751bb2db03c6886f08 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 13:14:16 +0200 Subject: [PATCH 20/78] change import to use alias --- .../workspace/workspace-package-builder.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts index fe44c32d7e..fa337ccb53 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts @@ -1,12 +1,12 @@ import { UmbDictionaryPickerContext } from '../../../dictionary/components/input-dictionary/input-dictionary.context.js'; import { UmbPackageRepository } from '../../package/repository/index.js'; import { UmbPartialViewPickerContext } from '../../../templating/partial-views/components/input-partial-view/input-partial-view.context.js'; -import { UmbScriptPickerContext } from '../../../templating/scripts/components/input-script/input-script.context.js'; import { UmbStylesheetPickerContext } from '../../../templating/stylesheets/global-components/stylesheet-input/stylesheet-input.context.js'; import { UmbTemplatePickerContext } from '../../../templating/templates/global-components/input-template/input-template.context.js'; import type { UmbCreatedPackageDefinition } from '../../types.js'; import type { UmbDataTypeInputElement } from '../../../data-type/components/data-type-input/data-type-input.element.js'; import type { UmbInputLanguageElement } from '../../../language/components/input-language/input-language.element.js'; +import { UmbScriptPickerContext } from '@umbraco-cms/backoffice/script'; import { css, html, From 3a93aab0c8e4954c001abe0d4f175243bc235b5e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 13:14:35 +0200 Subject: [PATCH 21/78] export everything from global components --- .../src/packages/templating/scripts/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/index.ts index 1d591efae9..92548a1f79 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/index.ts @@ -3,5 +3,6 @@ export * from './workspace/script-workspace.context-token.js'; export * from './tree/index.js'; export * from './types.js'; export * from './entity.js'; +export * from './global-components/index.js'; export { UMB_SCRIPT_PICKER_MODAL } from './modals/script-picker-modal.token.js'; From e6d359201f7461e7ac6045d9af5265a2b0921dd4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 13:17:28 +0200 Subject: [PATCH 22/78] rename folder to global components --- .../packages/templating/partial-views/global-components/index.ts | 1 + .../partial-views/global-components/input-partial-view/index.ts | 1 + .../input-partial-view/input-partial-view.context.ts | 0 3 files changed, 2 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/global-components/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/global-components/input-partial-view/index.ts rename src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/{components => global-components}/input-partial-view/input-partial-view.context.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/global-components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/global-components/index.ts new file mode 100644 index 0000000000..6c4b0703d8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/global-components/index.ts @@ -0,0 +1 @@ +export * from './input-partial-view/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/global-components/input-partial-view/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/global-components/input-partial-view/index.ts new file mode 100644 index 0000000000..30b5339fc1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/global-components/input-partial-view/index.ts @@ -0,0 +1 @@ +export * from './input-partial-view.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/input-partial-view/input-partial-view.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/global-components/input-partial-view/input-partial-view.context.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/input-partial-view/input-partial-view.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/global-components/input-partial-view/input-partial-view.context.ts From e347edac9bf487fa267082064c4c3684c3e473f3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 13:17:39 +0200 Subject: [PATCH 23/78] export everything from global components --- .../src/packages/templating/partial-views/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/index.ts index 6ccaaa478f..2523ca78db 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/index.ts @@ -1,4 +1,5 @@ export * from './repository/index.js'; export * from './entity.js'; +export * from './global-components/index.js'; export { UMB_PARTIAL_VIEW_PICKER_MODAL } from './partial-view-picker/index.js'; From 4861075eaa72ba26f7ac3957b037b716a7a37274 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 13:17:52 +0200 Subject: [PATCH 24/78] use alias in import --- .../workspace/workspace-package-builder.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts index fa337ccb53..9080247809 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts @@ -1,11 +1,11 @@ import { UmbDictionaryPickerContext } from '../../../dictionary/components/input-dictionary/input-dictionary.context.js'; import { UmbPackageRepository } from '../../package/repository/index.js'; -import { UmbPartialViewPickerContext } from '../../../templating/partial-views/components/input-partial-view/input-partial-view.context.js'; import { UmbStylesheetPickerContext } from '../../../templating/stylesheets/global-components/stylesheet-input/stylesheet-input.context.js'; import { UmbTemplatePickerContext } from '../../../templating/templates/global-components/input-template/input-template.context.js'; import type { UmbCreatedPackageDefinition } from '../../types.js'; import type { UmbDataTypeInputElement } from '../../../data-type/components/data-type-input/data-type-input.element.js'; import type { UmbInputLanguageElement } from '../../../language/components/input-language/input-language.element.js'; +import { UmbPartialViewPickerContext } from '@umbraco-cms/backoffice/partial-view'; import { UmbScriptPickerContext } from '@umbraco-cms/backoffice/script'; import { css, From 0c55f59b6bc1c9ff34d15a3116ecf34bfa58d40e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 14:19:05 +0200 Subject: [PATCH 25/78] export picker context --- .../src/packages/data-type/components/data-type-input/index.ts | 2 ++ .../src/packages/data-type/components/index.ts | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-input/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-input/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-input/index.ts new file mode 100644 index 0000000000..b852e5536f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-input/index.ts @@ -0,0 +1,2 @@ +export * from './data-type-input.element.js'; +export * from './data-type-input.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/index.ts index 2249eba780..178ba43cd5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/index.ts @@ -2,3 +2,5 @@ import './data-type-input/data-type-input.element.js'; import './data-type-flow-input/data-type-flow-input.element.js'; import './ref-data-type/ref-data-type.element.js'; import './property-editor-config/property-editor-config.element.js'; + +export * from './data-type-input/index.js'; From 809f93b1accf1960d13cbe21ed80779538dc005d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 14:19:15 +0200 Subject: [PATCH 26/78] export picker context --- .../src/packages/dictionary/components/index.ts | 1 + .../src/packages/dictionary/components/input-dictionary/index.ts | 1 + src/Umbraco.Web.UI.Client/src/packages/dictionary/index.ts | 1 + 3 files changed, 3 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dictionary/components/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dictionary/components/input-dictionary/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/components/index.ts new file mode 100644 index 0000000000..4d001c14e0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/components/index.ts @@ -0,0 +1 @@ +export * from './input-dictionary/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/components/input-dictionary/index.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/components/input-dictionary/index.ts new file mode 100644 index 0000000000..7773cb1976 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/components/input-dictionary/index.ts @@ -0,0 +1 @@ +export * from './input-dictionary.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/index.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/index.ts index 9f3f449804..5c7b94903c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/index.ts @@ -2,3 +2,4 @@ export * from './repository/index.js'; export * from './tree/index.js'; export * from './modals/dictionary-picker-modal.token.js'; export * from './entity.js'; +export * from './components/index.js'; From 8fb5724f0038e4c25fc016226a7a5e849436501a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 14:19:28 +0200 Subject: [PATCH 27/78] export picker context --- .../src/packages/templating/partial-views/components/index.ts | 1 + .../partial-views/components/input-partial-view/index.ts | 1 + .../src/packages/templating/partial-views/index.ts | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/input-partial-view/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/index.ts new file mode 100644 index 0000000000..6c4b0703d8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/index.ts @@ -0,0 +1 @@ +export * from './input-partial-view/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/input-partial-view/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/input-partial-view/index.ts new file mode 100644 index 0000000000..30b5339fc1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/components/input-partial-view/index.ts @@ -0,0 +1 @@ +export * from './input-partial-view.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/index.ts index 6ccaaa478f..e5ef7d545d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/index.ts @@ -1,4 +1,5 @@ -export * from './repository/index.js'; +export * from './components/index.js'; export * from './entity.js'; +export * from './repository/index.js'; export { UMB_PARTIAL_VIEW_PICKER_MODAL } from './partial-view-picker/index.js'; From 8a8542e620ef3fef590f57954d6cc3c309c9a81a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 14:19:39 +0200 Subject: [PATCH 28/78] export picker context --- .../src/packages/templating/scripts/components/index.ts | 1 + .../templating/scripts/components/input-script/index.ts | 1 + .../src/packages/templating/scripts/index.ts | 5 +++-- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/components/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/components/input-script/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/components/index.ts new file mode 100644 index 0000000000..f89344b5c7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/components/index.ts @@ -0,0 +1 @@ +export * from './input-script/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/components/input-script/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/components/input-script/index.ts new file mode 100644 index 0000000000..131eea34e1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/components/input-script/index.ts @@ -0,0 +1 @@ +export * from './input-script.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/index.ts index 1d591efae9..df6fd81bf4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/index.ts @@ -1,7 +1,8 @@ +export * from './components/index.js'; +export * from './entity.js'; export * from './repository/index.js'; -export * from './workspace/script-workspace.context-token.js'; export * from './tree/index.js'; export * from './types.js'; -export * from './entity.js'; +export * from './workspace/script-workspace.context-token.js'; export { UMB_SCRIPT_PICKER_MODAL } from './modals/script-picker-modal.token.js'; From c2b87107196104eba5cd09fe7bc6b6689204d126 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 14:19:54 +0200 Subject: [PATCH 29/78] export picker context --- .../src/packages/templating/stylesheets/components/index.ts | 4 +--- .../stylesheets/components/stylesheet-input/index.ts | 2 ++ .../src/packages/templating/stylesheets/index.ts | 6 +----- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts index 8592f9d5c4..0a11310eaa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts @@ -2,8 +2,6 @@ import './stylesheet-input/stylesheet-input.element.js'; import './stylesheet-rule-input/stylesheet-rule-input.element.js'; import './stylesheet-rule-ref/stylesheet-rule-ref.element.js'; -export * from './stylesheet-input/stylesheet-input.element.js'; +export * from './stylesheet-input/index.js'; export * from './stylesheet-rule-input/stylesheet-rule-input.element.js'; export * from './stylesheet-rule-ref/stylesheet-rule-ref.element.js'; - -export { UMB_STYLESHEET_PICKER_MODAL } from './stylesheet-input/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/index.ts index e26dc38635..c966f78089 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/index.ts @@ -1 +1,3 @@ +export * from './stylesheet-input.context.js'; +export * from './stylesheet-input.element.js'; export { UMB_STYLESHEET_PICKER_MODAL } from './stylesheet-picker-modal.token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts index c8d98dcffb..74010d6e27 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts @@ -2,13 +2,9 @@ import './components/index.js'; export * from './repository/index.js'; export * from './entity.js'; +export * from './components/index.js'; export { UmbStylesheetTreeRepository } from './tree/index.js'; -// Components -export { UmbStylesheetRuleInputElement } from './components/index.js'; -export { UmbStylesheetInputElement } from './components/index.js'; -export { UMB_STYLESHEET_PICKER_MODAL } from './components/index.js'; - // Utils export { UmbStylesheetRuleManager } from './utils/index.js'; From d60812fd8adbb6fc24e4bdae654d5b873333c28c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 14:20:03 +0200 Subject: [PATCH 30/78] export picker context --- .../src/packages/templating/templates/components/index.ts | 2 +- .../templating/templates/components/input-template/index.ts | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/index.ts index 76ede8473d..2069458e97 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/index.ts @@ -1,2 +1,2 @@ export * from './template-card/template-card.element.js'; -export * from './input-template/input-template.element.js'; +export * from './input-template/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/index.ts new file mode 100644 index 0000000000..9eca623d8a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/index.ts @@ -0,0 +1,2 @@ +export * from './input-template.context.js'; +export * from './input-template.element.js'; From 4f906810d4c3cc6ad93ffbfeeda18dd7f8f0582d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 14:20:16 +0200 Subject: [PATCH 31/78] use import alias instead of relative imports --- .../workspace/workspace-package-builder.element.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts index d219784252..01f4a23173 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts @@ -1,12 +1,12 @@ -import { UmbDictionaryPickerContext } from '../../../dictionary/components/input-dictionary/input-dictionary.context.js'; import { UmbPackageRepository } from '../../package/repository/index.js'; -import { UmbPartialViewPickerContext } from '../../../templating/partial-views/components/input-partial-view/input-partial-view.context.js'; -import { UmbScriptPickerContext } from '../../../templating/scripts/components/input-script/input-script.context.js'; -import { UmbStylesheetPickerContext } from '../../../templating/stylesheets/components/stylesheet-input/stylesheet-input.context.js'; -import { UmbTemplatePickerContext } from '../../../templating/templates/components/input-template/input-template.context.js'; import type { UmbCreatedPackageDefinition } from '../../types.js'; -import type { UmbDataTypeInputElement } from '../../../data-type/components/data-type-input/data-type-input.element.js'; -import type { UmbInputLanguageElement } from '../../../language/components/input-language/input-language.element.js'; +import { UmbDictionaryPickerContext } from '@umbraco-cms/backoffice/dictionary'; +import { UmbPartialViewPickerContext } from '@umbraco-cms/backoffice/partial-view'; +import { UmbScriptPickerContext } from '@umbraco-cms/backoffice/script'; +import { UmbStylesheetPickerContext } from '@umbraco-cms/backoffice/stylesheet'; +import { UmbTemplatePickerContext } from '@umbraco-cms/backoffice/template'; +import type { UmbDataTypeInputElement } from '@umbraco-cms/backoffice/data-type'; +import type { UmbInputLanguageElement } from '@umbraco-cms/backoffice/language'; import { css, html, From 9332bbed091c91af2082084314bd447c7f5eb430 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 14:28:14 +0200 Subject: [PATCH 32/78] import modal from workspace module --- .../data-type-flow-input/data-type-flow-input.element.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-flow-input/data-type-flow-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-flow-input/data-type-flow-input.element.ts index fdb8a48ceb..7051d01eb1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-flow-input/data-type-flow-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-flow-input/data-type-flow-input.element.ts @@ -1,10 +1,10 @@ -import { UMB_DATATYPE_WORKSPACE_MODAL } from '../../index.js'; -import { UMB_DATA_TYPE_PICKER_FLOW_MODAL } from '../../modals/index.js'; import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import { UMB_DATA_TYPE_PICKER_FLOW_MODAL } from '../../modals/index.js'; +import { UMB_DATATYPE_WORKSPACE_MODAL } from '../../workspace/index.js'; // Note: Does only support picking a single data type. But this could be developed later into this same component. To follow other picker input components. /** From ebef3eefe5d6798756fd132197fccd8ec5a5c2a5 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 26 Jun 2024 14:51:09 +0200 Subject: [PATCH 33/78] Create index.ts --- .../templates/global-components/input-template/index.ts | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/input-template/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/input-template/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/input-template/index.ts new file mode 100644 index 0000000000..9eca623d8a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/input-template/index.ts @@ -0,0 +1,2 @@ +export * from './input-template.context.js'; +export * from './input-template.element.js'; From 0b94544f5796db9d127e20f15c1a7ff62668b341 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 09:49:54 +0200 Subject: [PATCH 34/78] general not found element --- .../src/packages/block/block/workspace/manifests.ts | 6 +++--- .../components/not-found/route-not-found.element.ts} | 8 ++++---- .../src/packages/core/router/index.ts | 1 + .../workspace-editor/workspace-editor.element.ts | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/core/{workspace/components/workspace-views/workspace-fallback-view.element.ts => router/components/not-found/route-not-found.element.ts} (82%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts index b5078f80de..1249f74d6d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts @@ -24,7 +24,7 @@ export const manifests: Array = [ { type: 'workspace', kind: 'routable', - name: 'Block List Type Workspace', + name: 'Block Workspace', alias: UMB_BLOCK_WORKSPACE_ALIAS, api: () => import('./block-workspace.context.js'), meta: { @@ -61,7 +61,7 @@ export const manifests: Array = [ alias: 'Umb.WorkspaceView.Block.Settings', name: 'Block Workspace Settings View', js: () => import('./views/edit/block-workspace-view-edit.element.js'), - weight: 1000, + weight: 900, meta: { label: '#general_settings', pathname: 'settings', @@ -78,7 +78,7 @@ export const manifests: Array = [ }, { alias: 'Umb.Condition.Switch', - frequency: '2000000000' + frequency: '2000' } ], } as any, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-views/workspace-fallback-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/components/not-found/route-not-found.element.ts similarity index 82% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-views/workspace-fallback-view.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/components/not-found/route-not-found.element.ts index 231ee4a5ea..9f57591368 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-views/workspace-fallback-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/components/not-found/route-not-found.element.ts @@ -6,8 +6,8 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; * A fallback view to be used in Workspace Views, maybe this can be upgraded at a later point. */ // TODO: Rename and move this file to a more generic place. -@customElement('umb-workspace-fallback-view') -export class UmbWorkspaceFallbackViewElement extends UmbLitElement { +@customElement('umb-route-not-found') +export class UmbRouteNotFoundElement extends UmbLitElement { override render() { return html` @@ -47,10 +47,10 @@ export class UmbWorkspaceFallbackViewElement extends UmbLitElement { ]; } -export default UmbWorkspaceFallbackViewElement; +export default UmbRouteNotFoundElement; declare global { interface HTMLElementTagNameMap { - 'umb-workspace-fallback-view': UmbWorkspaceFallbackViewElement; + 'umb-route-not-found': UmbRouteNotFoundElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts index fc2663470f..387eb72b4e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts @@ -9,3 +9,4 @@ export * from './path-pattern.class.js'; export * from './modal-registration/modal-route-registration.interface.js'; export * from './modal-registration/modal-route-registration.controller.js'; export * from './types.js'; +export * from './components/not-found/route-not-found.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts index 43640abca6..be6e3ac0f2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts @@ -74,7 +74,7 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { newRoutes.push({ path: `**`, - component: () => import('../workspace-views/workspace-fallback-view.element.js'), + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, }); this._routes = newRoutes; From 8d531f950a86bd5796b2352170d2fe1fe1c5b733 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 10:02:31 +0200 Subject: [PATCH 35/78] main no route --- .../components/backoffice-main.element.ts | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts index b4584ee573..a13afc7364 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts @@ -2,7 +2,7 @@ import type { UmbBackofficeContext } from '../backoffice.context.js'; import { UMB_BACKOFFICE_CONTEXT } from '../backoffice.context.js'; import { css, html, customElement, state, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbSectionContext, UMB_SECTION_CONTEXT, UMB_SECTION_PATH_PATTERN } from '@umbraco-cms/backoffice/section'; -import type { UmbRoute, UmbRouterSlotChangeEvent } from '@umbraco-cms/backoffice/router'; +import type { PageComponent, UmbRoute, UmbRouterSlotChangeEvent } from '@umbraco-cms/backoffice/router'; import type { ManifestSection, UmbSectionElement } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbExtensionManifestInitializer } from '@umbraco-cms/backoffice/extension-api'; import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; @@ -11,7 +11,7 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @customElement('umb-backoffice-main') export class UmbBackofficeMainElement extends UmbLitElement { @state() - private _routes: Array = []; + private _routes: Array = []; @state() private _sections: Array> = []; @@ -43,28 +43,33 @@ export class UmbBackofficeMainElement extends UmbLitElement { private _createRoutes() { if (!this._sections) return; - const oldValue = this._routes; // TODO: Refactor this for re-use across the app where the routes are re-generated at any time. - this._routes = this._sections + const newRoutes = this._sections .filter((x) => x.manifest) .map((section) => { - const existingRoute = this._routes.find((r) => r.alias === section.alias); + const existingRoute = this._routes.find((r) => r.path === UMB_SECTION_PATH_PATTERN.generateLocal({ sectionName: section.manifest!.meta.pathname })); if (existingRoute) { return existingRoute; } else { return { - alias: section.alias, + //alias: section.alias, path: UMB_SECTION_PATH_PATTERN.generateLocal({ sectionName: section.manifest!.meta.pathname }), component: () => createExtensionElement(section.manifest!, 'umb-section-default'), - setup: (component) => { - (component as UmbSectionElement).manifest = section.manifest as ManifestSection; + setup: (component: PageComponent) => { + (component as UmbSectionElement).manifest = section.manifest; }, }; } }); - this.requestUpdate('_routes', oldValue); + + newRoutes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); + + this._routes = newRoutes; } private _onRouteChange = async (event: UmbRouterSlotChangeEvent) => { From e3c1e2ed571a3b45d8bf55d0df53619b473afce8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 10:03:35 +0200 Subject: [PATCH 36/78] fix test issue --- .../src/libs/context-api/consume/context-consumer.test.ts | 2 +- .../property-dataset/property-dataset.element.test.ts | 4 ++-- .../core/utils/pagination-manager/pagination.manager.test.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.test.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.test.ts index 9baf9ea886..bd14391528 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.test.ts @@ -39,7 +39,7 @@ describe('UmbContextConsumer', () => { describe('events', () => { it('dispatches context request event when constructed', async () => { - const listener = oneEvent(window, UMB_CONTENT_REQUEST_EVENT_TYPE, false); + const listener = oneEvent(window, UMB_CONTENT_REQUEST_EVENT_TYPE); consumer.hostConnected(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset.element.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset.element.test.ts index 09338ec71c..363788c23d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset.element.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset.element.test.ts @@ -133,7 +133,7 @@ describe('UmbBasicVariantElement', () => { }); it('fires change event', async () => { - const listener = oneEvent(datasetElement, UmbChangeEvent.TYPE, false); + const listener = oneEvent(datasetElement, UmbChangeEvent.TYPE); expect(propertyEditor.alias).to.eq('testAlias'); propertyEditor.setValue('testValue3'); @@ -153,7 +153,7 @@ describe('UmbBasicVariantElement', () => { adapterPropertyEditor.alias = 'testAdapterAlias'; datasetElement.appendChild(adapterPropertyEditor); - const listener = oneEvent(datasetElement, UmbChangeEvent.TYPE, false); + const listener = oneEvent(datasetElement, UmbChangeEvent.TYPE); // The alias of the original property editor must be 'testAlias' for the adapter to set the value of it. expect(propertyEditor.alias).to.eq('testAlias'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/utils/pagination-manager/pagination.manager.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/pagination-manager/pagination.manager.test.ts index 3d2fe4f7a2..b18c0c2d30 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/utils/pagination-manager/pagination.manager.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/pagination-manager/pagination.manager.test.ts @@ -141,7 +141,7 @@ describe('UmbPaginationManager', () => { }); it('dispatches a change event', async () => { - const listener = oneEvent(manager, UmbChangeEvent.TYPE, false); + const listener = oneEvent(manager, UmbChangeEvent.TYPE); manager.setCurrentPageNumber(2); const event = (await listener) as unknown as UmbChangeEvent; const target = event.target as UmbPaginationManager; From 3dba4abb32eeb85a478ad390f676698e05294e87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 10:05:53 +0200 Subject: [PATCH 37/78] add default routes --- .../workspace/views/edit/block-workspace-view-edit.element.ts | 4 ++++ .../components/workspace-editor/workspace-editor.element.ts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts index 9a724cccf8..be1bb476eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts @@ -116,6 +116,10 @@ export class UmbBlockWorkspaceViewEditElement extends UmbLitElement implements U path: '', redirectTo: routes[0]?.path, }); + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); } this._routes = routes; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts index be6e3ac0f2..0de9a8d5f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts @@ -72,6 +72,10 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { }); } + newRoutes.push({ + path: '', + redirectTo: newRoutes[0]?.path, + }); newRoutes.push({ path: `**`, component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, From cb1f5e1249d936e4abf145c6b499bcfc8e7caad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 10:11:14 +0200 Subject: [PATCH 38/78] only navigate when a change has been detected --- .../src/external/router-slot/router-slot.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts b/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts index 4bf3e5d5e5..85ca8d15d8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts +++ b/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts @@ -201,11 +201,8 @@ export class RouterSlot extends HTMLElement implements IRouter navigate = this._routeMatch === null; if (navigate === false) { const newMatch = this.getRouteMatch(); - console.log("new match...", newMatch) - // Check if match is still present? [NL] - // Check if there is a better/different match? [NL] - // Maybe both are handled in this approach? [NL] - navigate = this._routeMatch !== newMatch; + // Check if this match matches the current match (aka. If the path has changed), if so we should navigate. [NL] + navigate = this._routeMatch?.route.path !== newMatch?.route.path; } } @@ -214,7 +211,6 @@ export class RouterSlot extends HTMLElement implements IRouter // Register that the path has changed so the correct route can be loaded. if (navigate) { - console.log("navigate...") this.render(); } } From 9d76cce610ca5e6c6b6ed3e975264069beb2dfd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 10:11:22 +0200 Subject: [PATCH 39/78] default routes --- .../backoffice/components/backoffice-main.element.ts | 6 ++++++ .../workspace-editor/workspace-editor.element.ts | 10 ++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts index a13afc7364..7b03cfe3d7 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts @@ -63,6 +63,12 @@ export class UmbBackofficeMainElement extends UmbLitElement { } }); + if(newRoutes.length > 0 ) { + newRoutes.push({ + path: ``, + redirectTo: newRoutes[0].path + }); + } newRoutes.push({ path: `**`, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts index 0de9a8d5f7..ccac1676b7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts @@ -70,12 +70,14 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { }, } as UmbRoute; }); + + newRoutes.push({ + path: '', + redirectTo: newRoutes[0]?.path, + }); + } - newRoutes.push({ - path: '', - redirectTo: newRoutes[0]?.path, - }); newRoutes.push({ path: `**`, component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, From 93ffebd22196f6149cefa19f9cc62ae578c6e3ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 10:28:09 +0200 Subject: [PATCH 40/78] remove editable workspace kind --- .../editable/editable-workspace.element.ts | 38 ------------------- .../kinds/editable/editable-workspace.kind.ts | 13 ------- .../kinds/editable/editable-workspace.test.ts | 22 ----------- .../workspace/data-type-workspace.context.ts | 8 ++-- .../packages/data-type/workspace/manifests.ts | 2 +- 5 files changed, 4 insertions(+), 79 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.element.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.kind.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.element.ts deleted file mode 100644 index 66b74b929d..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.element.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { UmbSubmittableWorkspaceContext } from '../../contexts/tokens/submittable-workspace-context.interface.js'; -import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { html, customElement, state, css } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import { UmbExtensionsApiInitializer } from '@umbraco-cms/backoffice/extension-api'; - -@customElement('umb-editable-workspace') -export class UmbEditableWorkspaceElement extends UmbLitElement { - @state() - _routes: UmbRoute[] = []; - - public set api(api: UmbSubmittableWorkspaceContext) { - this.observe(api.routes.routes, (routes) => (this._routes = routes)); - - new UmbExtensionsApiInitializer(this, umbExtensionsRegistry, 'workspaceContext', [api]); - } - - override render() { - return html` `; - } - - static override styles = [ - css` - form { - display: contents; - } - `, - ]; -} - -export default UmbEditableWorkspaceElement; - -declare global { - interface HTMLElementTagNameMap { - 'umb-editable-workspace': UmbEditableWorkspaceElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.kind.ts deleted file mode 100644 index 81ddb39fda..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.kind.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; - -export const manifest: UmbBackofficeManifestKind = { - type: 'kind', - alias: 'Umb.Kind.Workspace.Editable', - matchKind: 'editable', - matchType: 'workspace', - manifest: { - type: 'workspace', - kind: 'editable', - element: () => import('./editable-workspace.element.js'), - }, -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.test.ts deleted file mode 100644 index e0f2d541ca..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { expect, fixture, html } from '@open-wc/testing'; -import { UmbEditableWorkspaceElement } from './editable-workspace.element.js'; -import { type UmbTestRunnerWindow, defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; - -describe('UmbEditableWorkspaceElement', () => { - let element: UmbEditableWorkspaceElement; - - beforeEach(async () => { - element = await fixture(html``); - }); - - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbEditableWorkspaceElement); - }); - - if ((window as UmbTestRunnerWindow).__UMBRACO_TEST_RUN_A11Y_TEST) { - it('passes the a11y audit', async () => { - // TODO: should we use shadowDom here? - await expect(element).to.be.accessible(defaultA11yConfig); - }); - } -}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts index 683007dc0b..b225a924a3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts @@ -1,6 +1,3 @@ -import { UmbDataTypeDetailRepository } from '../repository/detail/data-type-detail.repository.js'; -import type { UmbDataTypeDetailModel, UmbDataTypePropertyModel } from '../types.js'; -import { UmbDataTypeWorkspaceEditorElement } from './data-type-workspace-editor.element.js'; import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import type { UmbInvariantDatasetWorkspaceContext, @@ -10,7 +7,6 @@ import { UmbSubmittableWorkspaceContextBase, UmbInvariantWorkspacePropertyDatasetContext, UmbWorkspaceIsNewRedirectController, - UmbWorkspaceRouteManager, } from '@umbraco-cms/backoffice/workspace'; import { appendToFrozenArray, @@ -29,7 +25,9 @@ import { UmbRequestReloadChildrenOfEntityEvent, UmbRequestReloadStructureForEntityEvent, } from '@umbraco-cms/backoffice/entity-action'; -import { UMB_PROPERTY_EDITOR_SCHEMA_ALIAS_DEFAULT } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbDataTypeDetailModel, UmbDataTypePropertyModel } from '../types.js'; +import { UmbDataTypeDetailRepository } from '../repository/detail/data-type-detail.repository.js'; +import { UmbDataTypeWorkspaceEditorElement } from './data-type-workspace-editor.element.js'; type EntityType = UmbDataTypeDetailModel; export class UmbDataTypeWorkspaceContext diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/manifests.ts index d8887e858d..62232d9507 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/manifests.ts @@ -10,7 +10,7 @@ const DATA_TYPE_WORKSPACE_ALIAS = 'Umb.Workspace.DataType'; const workspace: ManifestWorkspaces = { type: 'workspace', - kind: 'editable', + kind: 'routable', alias: DATA_TYPE_WORKSPACE_ALIAS, name: 'Data Type Workspace', api: () => import('./data-type-workspace.context.js'), From 608de15e738a24d4ab5c70f55ddbaf8e2d6ba3f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 10:28:38 +0200 Subject: [PATCH 41/78] simplify section route implementation --- .../packages/core/section/section-default.element.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts index 7a842e0cc1..ded72f1ac6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts @@ -13,12 +13,12 @@ import type { IRoute, IRoutingInfo, PageComponent, UmbRoute } from '@umbraco-cms import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbExtensionElementInitializer } from '@umbraco-cms/backoffice/extension-api'; import { - UmbExtensionsApiInitializer, UmbExtensionsElementInitializer, UmbExtensionsManifestInitializer, createExtensionApi, + createExtensionElement, } from '@umbraco-cms/backoffice/extension-api'; -import { aliasToPath, debounce } from '@umbraco-cms/backoffice/utils'; +import { aliasToPath } from '@umbraco-cms/backoffice/utils'; /** * @export @@ -90,11 +90,10 @@ export class UmbSectionDefaultElement extends UmbLitElement implements UmbSectio api?.getPath?.() || extensionController.manifest.meta?.path || aliasToPath(extensionController.manifest.alias), - // TODO: look into removing the "as PageComponent" type hack // be aware that this is kind of a hack to pass the manifest element to the router. But as the two resolve components // in a similar way. I currently find it more safe to let the router do the component resolving instead // of replicating it as a custom resolver here. - component: extensionController.manifest.element as PageComponent | PromiseLike, + component: () => createExtensionElement(extensionController.manifest), setup: (element: PageComponent, info: IRoutingInfo) => { api?.setup?.(element, info); }, @@ -102,13 +101,14 @@ export class UmbSectionDefaultElement extends UmbLitElement implements UmbSectio }), ); - this.#debouncedCreateRoutes(routes); + //this.#debouncedCreateRoutes(routes); + this.#createRoutes(routes); }, 'umbRouteExtensionApisInitializer', ); } - #debouncedCreateRoutes = debounce(this.#createRoutes, 50); + //#debouncedCreateRoutes = debounce(this.#createRoutes, 50); #createRoutes(routes: Array) { this._routes = [ From 0244a3223898dc07c7451d8ccf8e01eb6703d397 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 10:28:48 +0200 Subject: [PATCH 42/78] remove kind declaration --- .../src/packages/core/workspace/kinds/manifests.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/manifests.ts index f36f36118d..380b26b726 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/manifests.ts @@ -1,5 +1,4 @@ -import { manifest as editableKindManifest } from './editable/editable-workspace.kind.js'; import { manifest as routableKindManifest } from './routable/routable-workspace.kind.js'; import type { ManifestTypes, UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; -export const manifests: Array = [routableKindManifest, editableKindManifest]; +export const manifests: Array = [routableKindManifest]; From b2fd6b7388cf457c50bc1ad1d43ff852ab25fd00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 10:29:01 +0200 Subject: [PATCH 43/78] no route routes --- .../packages/core/collection/collection-view.manager.ts | 5 +++++ .../views/design/content-type-design-editor.element.ts | 5 +++++ .../workspace/views/edit/content-editor.element.ts | 9 ++++----- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.ts index 7fc6f58e72..7d380142c3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.ts @@ -98,6 +98,11 @@ export class UmbCollectionViewManager extends UmbControllerBase { }); } + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); + this.#routes.setValue(routes); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor.element.ts index 5870d71547..b109a12770 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor.element.ts @@ -226,6 +226,11 @@ export class UmbContentTypeDesignEditorElement extends UmbLitElement implements } } + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); + this._routes = routes; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor.element.ts index d13e1ac804..12d1743e26 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor.element.ts @@ -108,11 +108,10 @@ export class UmbContentWorkspaceViewEditElement extends UmbLitElement implements }); } - // Find the routes who are removed: - //const removedRoutes = this._routes.filter((route) => !routes.find((r) => r.path === route.path)); - - // Find the routes who are new: - //const newRoutes = routes.filter((route) => !this._routes.find((r) => r.path === route.path)); + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); this._routes = routes; } From c7615be9f96b76a221c23cb0a353a50014b99e37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 10:39:39 +0200 Subject: [PATCH 44/78] implement not found routes --- .../block-grid-area-type-workspace.context.ts | 2 +- .../block-type-workspace-editor.element.ts | 2 +- .../workspace/block-type-workspace.context.ts | 6 ++--- .../workspace-route-manager.controller.ts | 10 +++++++- .../workspace/dictionary-workspace.context.ts | 7 +++--- ...ment-blueprint-workspace-editor.element.ts | 13 +++++++---- .../document-type-workspace.context.ts | 23 +++++++++---------- .../document-workspace-editor.element.ts | 7 +++++- .../dashboard-health-check.element.ts | 5 +++- .../language/language-workspace.context.ts | 1 - .../workspace/media-type-workspace.context.ts | 1 - .../media-section-view.element.ts | 4 ++++ .../media-workspace-editor.element.ts | 5 ++++ .../member-group-section-view.element.ts | 4 ++++ .../member-group-workspace.context.ts | 1 - .../member-type-workspace.context.ts | 1 - .../member-section-view.element.ts | 4 ++++ .../member-workspace-editor.element.ts | 5 ++++ .../created-packages-section-view.element.ts | 4 ++++ .../dashboard-examine-management.element.ts | 5 +++- .../partial-view-workspace.context.ts | 1 - .../partial-view-workspace.element.ts | 4 ++++ .../workspace/script-workspace.context.ts | 1 - .../workspace/stylesheet-workspace.context.ts | 1 - .../workspace/template-workspace.context.ts | 1 - .../user-group-section-view.element.ts | 4 ++++ .../workspace/user-group-workspace.context.ts | 1 - .../users-section-view.element.ts | 4 ++++ 28 files changed, 89 insertions(+), 38 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.context.ts index d9ee93951c..56f5cd7a32 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.context.ts @@ -1,4 +1,3 @@ -import type { UmbBlockGridTypeAreaType } from '../../../types.js'; import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import type { @@ -14,6 +13,7 @@ import { UmbArrayState, UmbObjectState, appendToFrozenArray } from '@umbraco-cms import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { ManifestWorkspace, PropertyEditorSettingsProperty } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbBlockGridTypeAreaType } from '../../../types.js'; export class UmbBlockGridAreaTypeWorkspaceContext extends UmbSubmittableWorkspaceContextBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts index 18a5dacd63..4f08b1c709 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts @@ -1,10 +1,10 @@ -import { UMB_BLOCK_TYPE_WORKSPACE_CONTEXT } from './block-type-workspace.context-token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { customElement, css, html, state, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; import type { UmbDocumentTypeItemModel } from '@umbraco-cms/backoffice/document-type'; import { UMB_DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS } from '@umbraco-cms/backoffice/document-type'; +import { UMB_BLOCK_TYPE_WORKSPACE_CONTEXT } from './block-type-workspace.context-token.js'; @customElement('umb-block-type-workspace-editor') export class UmbBlockTypeWorkspaceEditorElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts index 667af0cdd1..095d892c25 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts @@ -1,5 +1,3 @@ -import type { UmbBlockTypeBaseModel, UmbBlockTypeWithGroupKey } from '../types.js'; -import { UmbBlockTypeWorkspaceEditorElement } from './block-type-workspace-editor.element.js'; import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import type { @@ -14,6 +12,8 @@ import { import { UmbArrayState, UmbObjectState, appendToFrozenArray } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { ManifestWorkspace, PropertyEditorSettingsProperty } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbBlockTypeBaseModel, UmbBlockTypeWithGroupKey } from '../types.js'; +import { UmbBlockTypeWorkspaceEditorElement } from './block-type-workspace-editor.element.js'; export class UmbBlockTypeWorkspaceContext extends UmbSubmittableWorkspaceContextBase @@ -27,7 +27,7 @@ export class UmbBlockTypeWorkspaceContext 'block'); + readonly name = this.#data.asObservablePart(() => 'block'); readonly unique = this.#data.asObservablePart((data) => data?.contentElementTypeKey); #properties = new UmbArrayState([], (x) => x.alias); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-route-manager.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-route-manager.controller.ts index 6fedc8a00e..6e2943c12b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-route-manager.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-route-manager.controller.ts @@ -8,6 +8,14 @@ export class UmbWorkspaceRouteManager extends UmbControllerBase { public readonly routes = this.#routes.asObservable(); setRoutes(routes: Array) { - this.#routes.setValue(routes); + this.#routes.setValue( + [ + ...routes, + { + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + } + ] + ); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts index 574735c961..515ef22ebf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts @@ -1,10 +1,6 @@ -import { UmbDictionaryDetailRepository } from '../repository/index.js'; -import type { UmbDictionaryDetailModel } from '../types.js'; -import { UmbDictionaryWorkspaceEditorElement } from './dictionary-workspace-editor.element.js'; import { type UmbSubmittableWorkspaceContext, UmbSubmittableWorkspaceContextBase, - UmbWorkspaceRouteManager, UmbWorkspaceIsNewRedirectController, type UmbRoutableWorkspaceContext, } from '@umbraco-cms/backoffice/workspace'; @@ -15,6 +11,9 @@ import { UmbRequestReloadChildrenOfEntityEvent, UmbRequestReloadStructureForEntityEvent, } from '@umbraco-cms/backoffice/entity-action'; +import type { UmbDictionaryDetailModel } from '../types.js'; +import { UmbDictionaryDetailRepository } from '../repository/index.js'; +import { UmbDictionaryWorkspaceEditorElement } from './dictionary-workspace-editor.element.js'; export class UmbDictionaryWorkspaceContext extends UmbSubmittableWorkspaceContextBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts index d0cf8ed639..6e89f5b110 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts @@ -1,10 +1,10 @@ -import type { UmbDocumentBlueprintVariantOptionModel } from '../types.js'; -import { UmbDocumentBlueprintWorkspaceSplitViewElement } from './document-blueprint-workspace-split-view.element.js'; -import { UMB_DOCUMENT_BLUEPRINT_WORKSPACE_CONTEXT } from './document-blueprint-workspace.context-token.js'; import { customElement, state, css, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; +import type { UmbDocumentBlueprintVariantOptionModel } from '../types.js'; +import { UMB_DOCUMENT_BLUEPRINT_WORKSPACE_CONTEXT } from './document-blueprint-workspace.context-token.js'; +import { UmbDocumentBlueprintWorkspaceSplitViewElement } from './document-blueprint-workspace-split-view.element.js'; @customElement('umb-document-blueprint-workspace-editor') export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { @@ -83,6 +83,11 @@ export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { }); } + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); + const oldValue = this._routes; // is there any differences in the amount ot the paths? [NL] @@ -101,7 +106,7 @@ export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { }; override render() { - return this._routes && this._routes.length > 0 + return this._routes ? html`` : ''; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index 723a64861e..db60bae4ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -1,14 +1,3 @@ -import { UmbDocumentTypeDetailRepository } from '../repository/detail/document-type-detail.repository.js'; -import { UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../entity.js'; -import type { UmbDocumentTypeDetailModel } from '../types.js'; -import { - UMB_CREATE_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN, - UMB_CREATE_DOCUMENT_TYPE_WORKSPACE_PRESET_ELEMENT, - UMB_CREATE_DOCUMENT_TYPE_WORKSPACE_PRESET_TEMPLATE, - UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN, - type UmbCreateDocumentTypeWorkspacePresetType, -} from '../paths.js'; -import { UmbDocumentTypeWorkspaceEditorElement } from './document-type-workspace-editor.element.js'; import { UmbContentTypeStructureManager } from '@umbraco-cms/backoffice/content-type'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { @@ -18,7 +7,6 @@ import { import { UmbSubmittableWorkspaceContextBase, UmbWorkspaceIsNewRedirectController, - UmbWorkspaceRouteManager, } from '@umbraco-cms/backoffice/workspace'; import { UmbTemplateDetailRepository } from '@umbraco-cms/backoffice/template'; import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; @@ -31,6 +19,17 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbReferenceByUnique } from '@umbraco-cms/backoffice/models'; import type { UmbRoutableWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import type { UmbPathPatternTypeAsEncodedParamsType } from '@umbraco-cms/backoffice/router'; +import { + UMB_CREATE_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN, + UMB_CREATE_DOCUMENT_TYPE_WORKSPACE_PRESET_ELEMENT, + UMB_CREATE_DOCUMENT_TYPE_WORKSPACE_PRESET_TEMPLATE, + UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN, + type UmbCreateDocumentTypeWorkspacePresetType, +} from '../paths.js'; +import type { UmbDocumentTypeDetailModel } from '../types.js'; +import { UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../entity.js'; +import { UmbDocumentTypeDetailRepository } from '../repository/detail/document-type-detail.repository.js'; +import { UmbDocumentTypeWorkspaceEditorElement } from './document-type-workspace-editor.element.js'; type EntityType = UmbDocumentTypeDetailModel; export class UmbDocumentTypeWorkspaceContext diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts index 5252f6f369..f024c5a0d0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts @@ -110,6 +110,11 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { }); } + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); + const oldValue = this._routes; // is there any differences in the amount ot the paths? [NL] @@ -128,7 +133,7 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { }; override render() { - return this._routes && this._routes.length > 0 + return this._routes ? html`` : ''; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts index 8ddaf1166a..89e68e26fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts @@ -24,7 +24,10 @@ export class UmbDashboardHealthCheckElement extends UmbLitElement { { path: ``, component: () => import('./views/health-check-overview.element.js'), - }, + },{ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + } ]; private _healthCheckDashboardContext = new UmbHealthCheckDashboardContext(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.context.ts index 66507f1ee0..abf77a8fda 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.context.ts @@ -1,7 +1,6 @@ import { type UmbSubmittableWorkspaceContext, UmbSubmittableWorkspaceContextBase, - UmbWorkspaceRouteManager, UmbWorkspaceIsNewRedirectController, type UmbRoutableWorkspaceContext, } from '@umbraco-cms/backoffice/workspace'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts index cc72c0ac24..e5c23009f2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts @@ -6,7 +6,6 @@ import { UmbSubmittableWorkspaceContextBase, type UmbRoutableWorkspaceContext, UmbWorkspaceIsNewRedirectController, - UmbWorkspaceRouteManager, } from '@umbraco-cms/backoffice/workspace'; import { UmbContentTypeStructureManager } from '@umbraco-cms/backoffice/content-type'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/section-view/media-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/section-view/media-section-view.element.ts index a3c5c4d2ea..c747046a92 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/section-view/media-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/section-view/media-section-view.element.ts @@ -52,6 +52,10 @@ export class UmbMediaSectionViewElement extends UmbLitElement { path: '', redirectTo: 'collection', }, + { + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + } ]; }, '_observeConfigDataType', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts index 2912be0036..d72c85f8bd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts @@ -83,6 +83,11 @@ export class UmbMediaWorkspaceEditorElement extends UmbLitElement { }); } + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); + const oldValue = this._routes; // is there any differences in the amount ot the paths? [NL] diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/section-view/member-group-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/section-view/member-group-section-view.element.ts index c8f50f65dd..6c26efc387 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/section-view/member-group-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/section-view/member-group-section-view.element.ts @@ -28,6 +28,10 @@ export class UmbMemberGroupSectionViewElement extends UmbLitElement { path: '', redirectTo: 'collection', }, + { + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + } ]; override render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/member-group-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/member-group-workspace.context.ts index 16d3dcbf0b..1258127044 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/member-group-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/member-group-workspace.context.ts @@ -5,7 +5,6 @@ import { UmbMemberGroupWorkspaceEditorElement } from './member-group-workspace-e import { type UmbSubmittableWorkspaceContext, UmbSubmittableWorkspaceContextBase, - UmbWorkspaceRouteManager, UmbWorkspaceIsNewRedirectController, type UmbRoutableWorkspaceContext, } from '@umbraco-cms/backoffice/workspace'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/member-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/member-type-workspace.context.ts index 7aa6614fdb..e791fc1e19 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/member-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/member-type-workspace.context.ts @@ -5,7 +5,6 @@ import { UmbMemberTypeWorkspaceEditorElement } from './member-type-workspace-edi import { UmbSubmittableWorkspaceContextBase, type UmbRoutableWorkspaceContext, - UmbWorkspaceRouteManager, UmbWorkspaceIsNewRedirectController, } from '@umbraco-cms/backoffice/workspace'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/section-view/member-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/section-view/member-section-view.element.ts index a5fc58ae48..a8e39e82ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/section-view/member-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/section-view/member-section-view.element.ts @@ -28,6 +28,10 @@ export class UmbMemberSectionViewElement extends UmbLitElement { path: '', redirectTo: 'collection', }, + { + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + } ]; override render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts index b44cf47bd6..e9e83446c7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts @@ -85,6 +85,11 @@ export class UmbMemberWorkspaceEditorElement extends UmbLitElement { }); } + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); + const oldValue = this._routes; // is there any differences in the amount ot the paths? [NL] diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts index f0f862cf48..d19f3286d2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts @@ -61,6 +61,10 @@ export class UmbCreatedPackagesSectionViewElement extends UmbLitElement implemen path: '', redirectTo: 'overview', }); + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); this._routes = routes; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts index 889d33f035..e3c25b4819 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts @@ -28,7 +28,10 @@ export class UmbDashboardExamineManagementElement extends UmbLitElement { { path: ``, component: () => import('./views/section-view-examine-overview.js'), - }, + },{ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + } ]; @state() diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts index 700c62c35d..598e91175a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts @@ -8,7 +8,6 @@ import type { UmbRoutableWorkspaceContext, UmbSubmittableWorkspaceContext } from import { UmbSubmittableWorkspaceContextBase, UmbWorkspaceIsNewRedirectController, - UmbWorkspaceRouteManager, } from '@umbraco-cms/backoffice/workspace'; import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts index 2bf5171364..ee0161c6f0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts @@ -44,6 +44,10 @@ export class UmbPartialViewWorkspaceElement extends UmbLitElement { this.#workspaceContext.load(unique); }, }, + { + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + } ]; constructor() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index 42e23b26ba..b037442377 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -10,7 +10,6 @@ import { type UmbRoutableWorkspaceContext, type UmbSubmittableWorkspaceContext, UmbWorkspaceIsNewRedirectController, - UmbWorkspaceRouteManager, } from '@umbraco-cms/backoffice/workspace'; import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts index e624f48c77..ad403df9b0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -6,7 +6,6 @@ import { UmbStylesheetWorkspaceEditorElement } from './stylesheet-workspace-edit import { type UmbSubmittableWorkspaceContext, UmbSubmittableWorkspaceContextBase, - UmbWorkspaceRouteManager, UmbWorkspaceIsNewRedirectController, type UmbRoutableWorkspaceContext, } from '@umbraco-cms/backoffice/workspace'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts index 3bb13d3814..ea4f07ffab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts @@ -8,7 +8,6 @@ import type { UmbRoutableWorkspaceContext, UmbSubmittableWorkspaceContext } from import { UmbSubmittableWorkspaceContextBase, UmbWorkspaceIsNewRedirectController, - UmbWorkspaceRouteManager, } from '@umbraco-cms/backoffice/workspace'; import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/section-view/user-group-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/section-view/user-group-section-view.element.ts index 87ac0b018d..53a170f589 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/section-view/user-group-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/section-view/user-group-section-view.element.ts @@ -30,6 +30,10 @@ export class UmbUserGroupSectionViewElement extends UmbLitElement { path: '', redirectTo: 'collection', }, + { + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + } ]; override render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts index 482457629f..0ad5583347 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts @@ -6,7 +6,6 @@ import type { UmbRoutableWorkspaceContext, UmbSubmittableWorkspaceContext } from import { UmbSubmittableWorkspaceContextBase, UmbWorkspaceIsNewRedirectController, - UmbWorkspaceRouteManager, } from '@umbraco-cms/backoffice/workspace'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/users-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/users-section-view.element.ts index 4869ea58b8..cd89bfe71d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/users-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/users-section-view.element.ts @@ -34,6 +34,10 @@ export class UmbSectionViewUsersElement extends UmbLitElement { path: '', redirectTo: 'collection', }, + { + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + } ]; override render() { From 15f29f3427583d3b8d2ca69c602032d7f1a5fb3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 11:02:47 +0200 Subject: [PATCH 45/78] import order --- .../condition/document-user-permission.condition.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/condition/document-user-permission.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/condition/document-user-permission.condition.ts index da991c449d..8a2721981b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/condition/document-user-permission.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/condition/document-user-permission.condition.ts @@ -1,4 +1,3 @@ -import { isDocumentUserPermission } from '../utils.js'; import { UMB_CURRENT_USER_CONTEXT } from '@umbraco-cms/backoffice/current-user'; import { UMB_ENTITY_CONTEXT } from '@umbraco-cms/backoffice/entity'; import { observeMultiple } from '@umbraco-cms/backoffice/observable-api'; @@ -10,6 +9,7 @@ import type { } from '@umbraco-cms/backoffice/extension-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { DocumentPermissionPresentationModel } from '@umbraco-cms/backoffice/external/backend-api'; +import { isDocumentUserPermission } from '../utils.js'; export class UmbDocumentUserPermissionCondition extends UmbConditionBase From 485c136874889916ad10efd19f3a588989d41ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 11:13:20 +0200 Subject: [PATCH 46/78] comment --- .../controller/base-extension-initializer.controller.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts index 07443ad840..84abaf321c 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts @@ -211,6 +211,8 @@ export abstract class UmbBaseExtensionInitializer< // Check if we already have a controller for this config: const existing = this.#conditionControllers.find((controller) => controller.config === conditionConfig); if (!existing) { + + // TODO: Be aware that we might not have a host element any longer at this moment, but I did not want to make a fix for it jet, as its a good indication to if something else is terrible wrong [NL] const conditionController = await createExtensionApi(this, conditionManifest, [ { manifest: conditionManifest, From 6d3a9007b3059f2766c58f3af8219bd842787972 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 11:13:41 +0200 Subject: [PATCH 47/78] import sorting --- .../workspace/document-workspace-editor.element.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts index f024c5a0d0..2179acf81d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts @@ -1,11 +1,11 @@ -import type { UmbDocumentVariantOptionModel } from '../types.js'; -import { UmbDocumentWorkspaceSplitViewElement } from './document-workspace-split-view.element.js'; -import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from './document-workspace.context-token.js'; import { customElement, state, css, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; import { UMB_APP_LANGUAGE_CONTEXT } from '@umbraco-cms/backoffice/language'; +import type { UmbDocumentVariantOptionModel } from '../types.js'; +import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from './document-workspace.context-token.js'; +import { UmbDocumentWorkspaceSplitViewElement } from './document-workspace-split-view.element.js'; // TODO: This seem fully identical with Media Workspace Editor, so we can refactor this to a generic component. [NL] @customElement('umb-document-workspace-editor') From ee70119b1cbf6b356738121c103ae0a84186bc28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 12:13:20 +0200 Subject: [PATCH 48/78] re-initialize workspace split view when switching variant --- .../src/libs/observable-api/observer.ts | 5 +++-- .../edit/content-editor-properties.element.ts | 1 + .../workspace-editor.element.ts | 2 ++ ...pace-split-view-variant-selector.element.ts | 12 ++++++------ .../workspace-split-view.element.ts | 5 ++++- .../workspace-split-view-manager.controller.ts | 9 +++++---- ...ument-blueprint-workspace-editor.element.ts | 7 ++----- .../document-workspace-editor.element.ts | 18 +++++++++--------- .../document-workspace-split-view.element.ts | 16 ++++++++++++++++ .../media-workspace-editor.element.ts | 7 ++----- .../member-workspace-editor.element.ts | 7 ++----- 11 files changed, 52 insertions(+), 37 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts index 8f32bf88d9..d41d1aaae0 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts @@ -5,12 +5,13 @@ export type ObserverCallback = (value: T) => void; export class UmbObserver { #source!: Observable; - #callback!: ObserverCallback; + #callback?: ObserverCallback; #subscription!: Subscription; constructor(source: Observable, callback?: ObserverCallback) { this.#source = source; if (callback) { + this.#callback = callback; this.#subscription = source.subscribe(callback); } } @@ -44,7 +45,7 @@ export class UmbObserver { hostConnected() { // Notice: This will not re-subscribe if this controller was destroyed. Only if the subscription was closed. - if (this.#subscription?.closed) { + if (this.#subscription?.closed && this.#callback) { this.#subscription = this.#source.subscribe(this.#callback); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor-properties.element.ts index 18173790f5..aa03023a26 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor-properties.element.ts @@ -41,6 +41,7 @@ export class UmbContentWorkspaceViewEditPropertiesElement extends UmbLitElement ); }); this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, (datasetContext) => { + console.log(this, datasetContext) this.#variantId = datasetContext.getVariantId(); this.#generatePropertyDataPath(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts index cd43be73f3..a376d72b0a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts @@ -49,6 +49,8 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { constructor() { super(); + console.log("workspace editor created.") + new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'workspaceView', null, (workspaceViews) => { this._workspaceViews = workspaceViews.map((view) => view.manifest); this._createRoutes(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts index 96097c23a8..2c2d951f6b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts @@ -1,17 +1,17 @@ -import type { ActiveVariant } from '../../controllers/index.js'; -import { UMB_WORKSPACE_SPLIT_VIEW_CONTEXT } from './workspace-split-view.context.js'; -import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -import { UMB_PROPERTY_DATASET_CONTEXT, isNameablePropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { type UUIInputElement, UUIInputEvent, type UUIPopoverContainerElement, } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, state, query } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement, umbFocus } from '@umbraco-cms/backoffice/lit-element'; import { DocumentVariantStateModel } from '@umbraco-cms/backoffice/external/backend-api'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbDocumentWorkspaceContext } from '@umbraco-cms/backoffice/document'; +import type { ActiveVariant } from '../../controllers/index.js'; +import { UMB_WORKSPACE_SPLIT_VIEW_CONTEXT } from './workspace-split-view.context.js'; +import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; +import { UMB_PROPERTY_DATASET_CONTEXT, isNameablePropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import { UmbLitElement, umbFocus } from '@umbraco-cms/backoffice/lit-element'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; type UmbDocumentVariantOption = { culture: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts index 78ae74b82b..75b4ea0180 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts @@ -1,6 +1,6 @@ +import { css, html, customElement, property, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbWorkspaceSplitViewContext } from './workspace-split-view.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, html, customElement, property, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; // import local components @@ -34,6 +34,9 @@ export class UmbWorkspaceSplitViewElement extends UmbLitElement { splitViewContext = new UmbWorkspaceSplitViewContext(this); override render() { + + console.log("workspace split view render") + return html` ([], (x) => x.index); + #activeVariantsInfo = new UmbArrayState([], (x) => x.index).sortBy((a, b) => (a.index || 0) - (b.index || 0)); public readonly activeVariantsInfo = this.#activeVariantsInfo.asObservable(); private _routeBase?: string; @@ -25,7 +25,8 @@ export class UmbWorkspaceSplitViewManager { } setActiveVariant(index: number, culture: string | null, segment: string | null) { - this.#activeVariantsInfo.appendOne({ index, culture: culture || null, segment: segment || null }); + console.log("setActiveVariant", index, culture, segment) + this.#activeVariantsInfo.appendOneAt({ index, culture: culture ?? null, segment: segment ?? null }, index); } getActiveVariants() { @@ -39,7 +40,7 @@ export class UmbWorkspaceSplitViewManager { } public activeVariantByIndex(index: number) { - return this.#activeVariantsInfo.asObservablePart((data) => data[index] || undefined); + return this.#activeVariantsInfo.asObservablePart((data) => data.find(x => x.index === index) || undefined); } public switchVariant(index: number, variantId: UmbVariantId) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts index d0cf8ed639..64e12e51af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts @@ -8,9 +8,6 @@ import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/r @customElement('umb-document-blueprint-workspace-editor') export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { - // - // TODO: Refactor: when having a split view/variants context token, we can rename the split view/variants component to a generic and make this component generic as well. [NL] - private splitViewElement = new UmbDocumentBlueprintWorkspaceSplitViewElement(); #workspaceContext?: typeof UMB_DOCUMENT_BLUEPRINT_WORKSPACE_CONTEXT.TYPE; @@ -49,7 +46,7 @@ export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variantA.unique + '_&_' + variantB.unique, - component: this.splitViewElement, + component: UmbDocumentBlueprintWorkspaceSplitViewElement, setup: (_component, info) => { // Set split view/active info.. const variantSplit = info.match.fragments.consumed.split('_&_'); @@ -66,7 +63,7 @@ export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variant.unique, - component: this.splitViewElement, + component: UmbDocumentBlueprintWorkspaceSplitViewElement, setup: (_component, info) => { // cause we might come from a split-view, we need to reset index 1. this.#workspaceContext?.splitView.removeActiveVariant(1); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts index 5252f6f369..0d804d6c18 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts @@ -1,18 +1,18 @@ -import type { UmbDocumentVariantOptionModel } from '../types.js'; -import { UmbDocumentWorkspaceSplitViewElement } from './document-workspace-split-view.element.js'; -import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from './document-workspace.context-token.js'; import { customElement, state, css, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; import { UMB_APP_LANGUAGE_CONTEXT } from '@umbraco-cms/backoffice/language'; +import type { UmbDocumentVariantOptionModel } from '../types.js'; +import { UmbDocumentWorkspaceSplitViewElement } from './document-workspace-split-view.element.js'; +import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from './document-workspace.context-token.js'; // TODO: This seem fully identical with Media Workspace Editor, so we can refactor this to a generic component. [NL] @customElement('umb-document-workspace-editor') export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { // // TODO: Refactor: when having a split view/variants context token, we can rename the split view/variants component to a generic and make this component generic as well. [NL] - private splitViewElement = new UmbDocumentWorkspaceSplitViewElement(); + //private splitViewElement = new UmbDocumentWorkspaceSplitViewElement(); #appLanguage?: typeof UMB_APP_LANGUAGE_CONTEXT.TYPE; #workspaceContext?: typeof UMB_DOCUMENT_WORKSPACE_CONTEXT.TYPE; @@ -67,7 +67,7 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique still is URL Safe, cause its most likely not... [NL] path: variantA.unique + '_&_' + variantB.unique, - component: this.splitViewElement, + component: UmbDocumentWorkspaceSplitViewElement, setup: (_component, info) => { // Set split view/active info.. const variantSplit = info.match.fragments.consumed.split('_&_'); @@ -84,7 +84,7 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique still is URL Safe, cause its most likely not... [NL] path: variant.unique, - component: this.splitViewElement, + component: UmbDocumentWorkspaceSplitViewElement, setup: (_component, info) => { // cause we might come from a split-view, we need to reset index 1. this.#workspaceContext?.splitView.removeActiveVariant(1); @@ -110,16 +110,16 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { }); } - const oldValue = this._routes; + /*const oldValue = this._routes; // is there any differences in the amount ot the paths? [NL] if (oldValue && oldValue.length === routes.length) { // is there any differences in the paths? [NL] const hasDifferences = oldValue.some((route, index) => route.path !== routes[index].path); if (!hasDifferences) return; - } + }*/ this._routes = routes; - this.requestUpdate('_routes', oldValue); + //this.requestUpdate('_routes', oldValue); } private _gotWorkspaceRoute = (e: UmbRouterSlotInitEvent) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts index 97f56208fa..50fbbb01a4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts @@ -28,11 +28,27 @@ export class UmbDocumentWorkspaceSplitViewElement extends UmbLitElement { this._workspaceContext.splitView.activeVariantsInfo, (variants) => { this._variants = variants; + console.log("______variants: ", variants[0]) }, '_observeActiveVariantsInfo', ); } + override connectedCallback(): void { + super.connectedCallback(); + console.log("connected callback------") + } + + override disconnectedCallback(): void { + super.disconnectedCallback(); + console.log("DISconnected callback------") + } + + override destroy(): void { + super.destroy(); + console.log("split view ot destroyed") + } + override render() { return this._variants ? html`
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts index 2912be0036..4ff96f8179 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts @@ -7,9 +7,6 @@ import { customElement, state, css, html } from '@umbraco-cms/backoffice/externa import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; @customElement('umb-media-workspace-editor') export class UmbMediaWorkspaceEditorElement extends UmbLitElement { - // - // TODO: Refactor: when having a split view/variants context token, we can rename the split view/variants component to a generic and make this component generic as well. [NL] - private splitViewElement = new UmbMediaWorkspaceSplitViewElement(); @state() _routes?: Array; @@ -49,7 +46,7 @@ export class UmbMediaWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variantA.unique + '_&_' + variantB.unique, - component: this.splitViewElement, + component: UmbMediaWorkspaceSplitViewElement, setup: (_component, info) => { // Set split view/active info.. const variantSplit = info.match.fragments.consumed.split('_&_'); @@ -66,7 +63,7 @@ export class UmbMediaWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variant.unique, - component: this.splitViewElement, + component: UmbMediaWorkspaceSplitViewElement, setup: (_component, info) => { // cause we might come from a split-view, we need to reset index 1. this.#workspaceContext?.splitView.removeActiveVariant(1); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts index b44cf47bd6..9c076a5b5f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts @@ -8,9 +8,6 @@ import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/r @customElement('umb-member-workspace-editor') export class UmbMemberWorkspaceEditorElement extends UmbLitElement { - // - // TODO: Refactor: when having a split view/variants context token, we can rename the split view/variants component to a generic and make this component generic as well. [NL] - private splitViewElement = new UmbMemberWorkspaceSplitViewElement(); #workspaceContext?: typeof UMB_MEMBER_WORKSPACE_CONTEXT.TYPE; @@ -51,7 +48,7 @@ export class UmbMemberWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variantA.unique + '_&_' + variantB.unique, - component: this.splitViewElement, + component: UmbMemberWorkspaceSplitViewElement, setup: (_component, info) => { // Set split view/active info.. const variantSplit = info.match.fragments.consumed.split('_&_'); @@ -68,7 +65,7 @@ export class UmbMemberWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variant.unique, - component: this.splitViewElement, + component: UmbMemberWorkspaceSplitViewElement, setup: (_component, info) => { // cause we might come from a split-view, we need to reset index 1. this.#workspaceContext?.splitView.removeActiveVariant(1); From 6adb6e3ff7f93ceca10f4fd5f3c5e8ea4e3a6cd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 12:25:55 +0200 Subject: [PATCH 49/78] comment and fixing index --- .../document-blueprint-workspace-editor.element.ts | 10 ---------- .../workspace/document-workspace-editor.element.ts | 3 ++- .../media/workspace/media-workspace-editor.element.ts | 10 ---------- .../workspace/member-workspace-editor.element.ts | 10 ---------- 4 files changed, 2 insertions(+), 31 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts index 59411728e2..b4404e770f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts @@ -85,17 +85,7 @@ export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, }); - const oldValue = this._routes; - - // is there any differences in the amount ot the paths? [NL] - // TODO: if we make a memorization function as the observer, we can avoid this check and avoid the whole build of routes. [NL] - if (oldValue && oldValue.length === routes.length) { - // is there any differences in the paths? [NL] - const hasDifferences = oldValue.some((route, index) => route.path !== routes[index].path); - if (!hasDifferences) return; - } this._routes = routes; - this.requestUpdate('_routes', oldValue); } private _gotWorkspaceRoute = (e: UmbRouterSlotInitEvent) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts index 584ae703cd..83591487b4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts @@ -101,7 +101,8 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { const route = routes.find((route) => route.path === this.#appCulture); if (!route) { - history.pushState({}, '', `${this.#workspaceRoute}/${routes[routes.length - 2].path}`); + // TODO: Notice: here is a specific index used for fallback, this could be made more solid [NL] + history.pushState({}, '', `${this.#workspaceRoute}/${routes[routes.length - 3].path}`); return; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts index 247510d0d3..e9ebf9bd2e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts @@ -85,17 +85,7 @@ export class UmbMediaWorkspaceEditorElement extends UmbLitElement { component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, }); - const oldValue = this._routes; - - // is there any differences in the amount ot the paths? [NL] - // TODO: if we make a memorization function as the observer, we can avoid this check and avoid the whole build of routes. [NL] - if (oldValue && oldValue.length === routes.length) { - // is there any differences in the paths? [NL] - const hasDifferences = oldValue.some((route, index) => route.path !== routes[index].path); - if (!hasDifferences) return; - } this._routes = routes; - this.requestUpdate('_routes', oldValue); } private _gotWorkspaceRoute = (e: UmbRouterSlotInitEvent) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts index 91c2f4abcb..e18cc89526 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts @@ -87,17 +87,7 @@ export class UmbMemberWorkspaceEditorElement extends UmbLitElement { component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, }); - const oldValue = this._routes; - - // is there any differences in the amount ot the paths? [NL] - // TODO: if we make a memorization function as the observer, we can avoid this check and avoid the whole build of routes. [NL] - if (oldValue && oldValue.length === routes.length) { - // is there any differences in the paths? [NL] - const hasDifferences = oldValue.some((route, index) => route.path !== routes[index].path); - if (!hasDifferences) return; - } this._routes = routes; - this.requestUpdate('_routes', oldValue); } private _gotWorkspaceRoute = (e: UmbRouterSlotInitEvent) => { From 30922fbacbf6c8a34b38e98301839a823d24ca58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 13:05:33 +0200 Subject: [PATCH 50/78] fix route resolve race condition --- .../src/external/router-slot/router-slot.ts | 24 +++++++++++++++---- .../edit/content-editor-properties.element.ts | 1 - .../workspace-editor.element.ts | 2 -- .../workspace-split-view.context.ts | 4 ++-- .../workspace-split-view.element.ts | 2 -- ...workspace-split-view-manager.controller.ts | 1 - .../document-workspace-split-view.element.ts | 18 +------------- 7 files changed, 23 insertions(+), 29 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts b/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts index 85ca8d15d8..6c60cdee95 100644 --- a/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts +++ b/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts @@ -45,6 +45,11 @@ ensureAnchorHistory(); * @event changestate - Dispatched when the router slot state changes. */ export class RouterSlot extends HTMLElement implements IRouterSlot { + /** + * Method to cancel navigation if changed. + */ + private _cancelNavigation ?:() => void; + /** * Listeners on the router. */ @@ -200,9 +205,13 @@ export class RouterSlot extends HTMLElement implements IRouter // If navigate is not determined, then we will check if we have a route match. If not then we will re-render. [NL] navigate = this._routeMatch === null; if (navigate === false) { - const newMatch = this.getRouteMatch(); - // Check if this match matches the current match (aka. If the path has changed), if so we should navigate. [NL] - navigate = this._routeMatch?.route.path !== newMatch?.route.path; + if (this.isConnected) { + const newMatch = this.getRouteMatch(); + // Check if this match matches the current match (aka. If the path has changed), if so we should navigate. [NL] + if(newMatch) { + navigate = shouldNavigate(this.match, newMatch); + } + } } } @@ -327,10 +336,17 @@ export class RouterSlot extends HTMLElement implements IRouter // Only change route if its a new route. const navigate = shouldNavigate(this.match, match); if (navigate) { + + // If another navigation is still begin resolved in this very moment, then we need to cancel that so it does not end up overriding this new navigation.[NL] + this._cancelNavigation?.(); // Listen for another push state event. If another push state event happens // while we are about to navigate we have to cancel. let navigationInvalidated = false; - const cancelNavigation = () => (navigationInvalidated = true); + const cancelNavigation = () => { + navigationInvalidated = true; + this._cancelNavigation = undefined; + }; + this._cancelNavigation = cancelNavigation; const removeChangeListener: EventListenerSubscription = addListener( GLOBAL_ROUTER_EVENTS_TARGET, 'changestate', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor-properties.element.ts index aa03023a26..18173790f5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor-properties.element.ts @@ -41,7 +41,6 @@ export class UmbContentWorkspaceViewEditPropertiesElement extends UmbLitElement ); }); this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, (datasetContext) => { - console.log(this, datasetContext) this.#variantId = datasetContext.getVariantId(); this.#generatePropertyDataPath(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts index 485f8569bd..ccac1676b7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts @@ -49,8 +49,6 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { constructor() { super(); - console.log("workspace editor created.") - new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'workspaceView', null, (workspaceViews) => { this._workspaceViews = workspaceViews.map((view) => view.manifest); this._createRoutes(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts index 73c074a102..9a39d69ae0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts @@ -1,9 +1,9 @@ -import { UMB_VARIANT_WORKSPACE_CONTEXT } from '../../contexts/index.js'; -import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import { UmbNumberState } from '@umbraco-cms/backoffice/observable-api'; +import { UMB_VARIANT_WORKSPACE_CONTEXT } from '../../contexts/index.js'; +import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; export class UmbWorkspaceSplitViewContext extends UmbContextBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts index 75b4ea0180..ab5edb1996 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts @@ -35,8 +35,6 @@ export class UmbWorkspaceSplitViewElement extends UmbLitElement { override render() { - console.log("workspace split view render") - return html` { this._variants = variants; - console.log("______variants: ", variants[0]) }, '_observeActiveVariantsInfo', ); } - override connectedCallback(): void { - super.connectedCallback(); - console.log("connected callback------") - } - - override disconnectedCallback(): void { - super.disconnectedCallback(); - console.log("DISconnected callback------") - } - - override destroy(): void { - super.destroy(); - console.log("split view ot destroyed") - } - override render() { return this._variants ? html`
From 2f19aafa044b4e81d071db6b0280c66a08391d9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 13:10:17 +0200 Subject: [PATCH 51/78] remove comments --- .../src/packages/core/section/section-default.element.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts index ded72f1ac6..000af08c74 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts @@ -101,15 +101,12 @@ export class UmbSectionDefaultElement extends UmbLitElement implements UmbSectio }), ); - //this.#debouncedCreateRoutes(routes); this.#createRoutes(routes); }, 'umbRouteExtensionApisInitializer', ); } - //#debouncedCreateRoutes = debounce(this.#createRoutes, 50); - #createRoutes(routes: Array) { this._routes = [ ...routes, From 10d560544f8af117812f5ffa378c6cc5d8d4aebe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 13:28:35 +0200 Subject: [PATCH 52/78] remove out dated comment --- .../src/packages/block/block/workspace/manifests.ts | 4 ---- .../src/packages/core/section/section-default.element.ts | 8 +++----- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts index 1249f74d6d..e6f79b4710 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts @@ -75,10 +75,6 @@ export const manifests: Array = [ }, { alias: 'Umb.Condition.BlockWorkspaceHasSettings', - }, - { - alias: 'Umb.Condition.Switch', - frequency: '2000' } ], } as any, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts index 000af08c74..f76b1d40e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts @@ -86,13 +86,11 @@ export class UmbSectionDefaultElement extends UmbLitElement implements UmbSectio const api = await createExtensionApi(this, extensionController.manifest); return { - path: + path: ( api?.getPath?.() || extensionController.manifest.meta?.path || - aliasToPath(extensionController.manifest.alias), - // be aware that this is kind of a hack to pass the manifest element to the router. But as the two resolve components - // in a similar way. I currently find it more safe to let the router do the component resolving instead - // of replicating it as a custom resolver here. + aliasToPath(extensionController.manifest.alias) + ), component: () => createExtensionElement(extensionController.manifest), setup: (element: PageComponent, info: IRoutingInfo) => { api?.setup?.(element, info); From 67144b463e61f32c81bbdac8ceccab8c9c065d7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 13:35:58 +0200 Subject: [PATCH 53/78] re-implemented shared route component --- .../src/external/router-slot/router-slot.ts | 17 ++++++++++++----- .../document-workspace-editor.element.ts | 6 +++--- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts b/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts index 6c60cdee95..1a2bec962f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts +++ b/src/Umbraco.Web.UI.Client/src/external/router-slot/router-slot.ts @@ -409,16 +409,23 @@ export class RouterSlot extends HTMLElement implements IRouter return cancel(); } - // Remove the old page by clearing the slot - this.clearChildren(); + // We have some routes that share the same component instance, those should not be removed and re-appended [NL] + const isTheSameComponent = this.firstChild === page; + + if(!isTheSameComponent) { + // Remove the old page by clearing the slot + this.clearChildren(); + } // Store the new route match before we append the new page to the DOM. // We do this to ensure that we can find the match in the connectedCallback of the page. this._routeMatch = match; - if (page) { - // Append the new page - this.appendChild(page); + if(!isTheSameComponent) { + if (page) { + // Append the new page + this.appendChild(page); + } } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts index 83591487b4..5eb630c5ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts @@ -12,7 +12,7 @@ import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from './document-workspace.context-tok export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { // // TODO: Refactor: when having a split view/variants context token, we can rename the split view/variants component to a generic and make this component generic as well. [NL] - //private splitViewElement = new UmbDocumentWorkspaceSplitViewElement(); + private splitViewElement = new UmbDocumentWorkspaceSplitViewElement(); #appLanguage?: typeof UMB_APP_LANGUAGE_CONTEXT.TYPE; #workspaceContext?: typeof UMB_DOCUMENT_WORKSPACE_CONTEXT.TYPE; @@ -67,7 +67,7 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique still is URL Safe, cause its most likely not... [NL] path: variantA.unique + '_&_' + variantB.unique, - component: UmbDocumentWorkspaceSplitViewElement, + component: this.splitViewElement, setup: (_component, info) => { // Set split view/active info.. const variantSplit = info.match.fragments.consumed.split('_&_'); @@ -84,7 +84,7 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique still is URL Safe, cause its most likely not... [NL] path: variant.unique, - component: UmbDocumentWorkspaceSplitViewElement, + component: this.splitViewElement, setup: (_component, info) => { // cause we might come from a split-view, we need to reset index 1. this.#workspaceContext?.splitView.removeActiveVariant(1); From 7d859b91d2f64be3c917587e0fb916b35e65bcdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 13:38:18 +0200 Subject: [PATCH 54/78] reintroduce other splitViewElements --- .../document-blueprint-workspace-editor.element.ts | 7 +++++-- .../media/workspace/media-workspace-editor.element.ts | 7 +++++-- .../member/workspace/member-workspace-editor.element.ts | 7 +++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts index b4404e770f..f3c8ac32dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts @@ -8,6 +8,9 @@ import { UmbDocumentBlueprintWorkspaceSplitViewElement } from './document-bluepr @customElement('umb-document-blueprint-workspace-editor') export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { + // + // TODO: Refactor: when having a split view/variants context token, we can rename the split view/variants component to a generic and make this component generic as well. [NL] + private splitViewElement = new UmbDocumentBlueprintWorkspaceSplitViewElement(); #workspaceContext?: typeof UMB_DOCUMENT_BLUEPRINT_WORKSPACE_CONTEXT.TYPE; @@ -46,7 +49,7 @@ export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variantA.unique + '_&_' + variantB.unique, - component: UmbDocumentBlueprintWorkspaceSplitViewElement, + component: this.splitViewElement, setup: (_component, info) => { // Set split view/active info.. const variantSplit = info.match.fragments.consumed.split('_&_'); @@ -63,7 +66,7 @@ export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variant.unique, - component: UmbDocumentBlueprintWorkspaceSplitViewElement, + component: this.splitViewElement, setup: (_component, info) => { // cause we might come from a split-view, we need to reset index 1. this.#workspaceContext?.splitView.removeActiveVariant(1); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts index e9ebf9bd2e..d7eaa87ced 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts @@ -7,6 +7,9 @@ import { customElement, state, css, html } from '@umbraco-cms/backoffice/externa import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; @customElement('umb-media-workspace-editor') export class UmbMediaWorkspaceEditorElement extends UmbLitElement { + // + // TODO: Refactor: when having a split view/variants context token, we can rename the split view/variants component to a generic and make this component generic as well. [NL] + private splitViewElement = new UmbMediaWorkspaceSplitViewElement(); @state() _routes?: Array; @@ -46,7 +49,7 @@ export class UmbMediaWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variantA.unique + '_&_' + variantB.unique, - component: UmbMediaWorkspaceSplitViewElement, + component: this.splitViewElement, setup: (_component, info) => { // Set split view/active info.. const variantSplit = info.match.fragments.consumed.split('_&_'); @@ -63,7 +66,7 @@ export class UmbMediaWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variant.unique, - component: UmbMediaWorkspaceSplitViewElement, + component: this.splitViewElement, setup: (_component, info) => { // cause we might come from a split-view, we need to reset index 1. this.#workspaceContext?.splitView.removeActiveVariant(1); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts index e18cc89526..5bbe5e974e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member-workspace-editor.element.ts @@ -8,6 +8,9 @@ import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/r @customElement('umb-member-workspace-editor') export class UmbMemberWorkspaceEditorElement extends UmbLitElement { + // + // TODO: Refactor: when having a split view/variants context token, we can rename the split view/variants component to a generic and make this component generic as well. [NL] + private splitViewElement = new UmbMemberWorkspaceSplitViewElement(); #workspaceContext?: typeof UMB_MEMBER_WORKSPACE_CONTEXT.TYPE; @@ -48,7 +51,7 @@ export class UmbMemberWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variantA.unique + '_&_' + variantB.unique, - component: UmbMemberWorkspaceSplitViewElement, + component: this.splitViewElement, setup: (_component, info) => { // Set split view/active info.. const variantSplit = info.match.fragments.consumed.split('_&_'); @@ -65,7 +68,7 @@ export class UmbMemberWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variant.unique, - component: UmbMemberWorkspaceSplitViewElement, + component: this.splitViewElement, setup: (_component, info) => { // cause we might come from a split-view, we need to reset index 1. this.#workspaceContext?.splitView.removeActiveVariant(1); From 5f2fe04abacd17f20f0c87b62a247762abf72259 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 28 Jun 2024 15:10:56 +0200 Subject: [PATCH 55/78] import sorting --- .../block-grid-area-config-entry.element.ts | 2 +- .../block-grid-areas-container.element.ts | 4 ++-- .../context/block-grid-entry.context.ts | 18 +++++++++--------- .../block-grid-scale-manager.controller.ts | 2 +- ...ditor-ui-block-grid-areas-config.element.ts | 9 ++++----- .../core/property/property/property.context.ts | 4 ++-- 6 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.ts index 1254987417..70b4e30ee5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.ts @@ -1,7 +1,7 @@ -import { UmbBlockGridAreaConfigEntryContext } from './block-grid-area-config-entry.context.js'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { html, css, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbBlockGridAreaConfigEntryContext } from './block-grid-area-config-entry.context.js'; import '../block-grid-block/index.js'; import '../block-scale-handler/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts index 567c471be8..966d63ce0c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts @@ -1,7 +1,7 @@ -import { UMB_BLOCK_GRID_MANAGER_CONTEXT } from '../../context/block-grid-manager.context-token.js'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UMB_BLOCK_GRID_ENTRY_CONTEXT, type UmbBlockGridTypeAreaType } from '@umbraco-cms/backoffice/block-grid'; import { css, customElement, html, repeat, state } from '@umbraco-cms/backoffice/external/lit'; +import { UMB_BLOCK_GRID_MANAGER_CONTEXT } from '../../context/block-grid-manager.context-token.js'; +import { UMB_BLOCK_GRID_ENTRY_CONTEXT, type UmbBlockGridTypeAreaType } from '@umbraco-cms/backoffice/block-grid'; import '../block-grid-entries/index.js'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entry.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entry.context.ts index fcbfbd8dce..eadf1ebeb9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entry.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entry.context.ts @@ -1,13 +1,4 @@ -import { closestColumnSpanOption } from '../utils/index.js'; -import { UMB_BLOCK_GRID_MANAGER_CONTEXT } from './block-grid-manager.context-token.js'; -import { UMB_BLOCK_GRID_ENTRIES_CONTEXT } from './block-grid-entries.context-token.js'; -import { - type UmbBlockGridScalableContext, - UmbBlockGridScaleManager, -} from './block-grid-scale-manager/block-grid-scale-manager.controller.js'; -import { UmbBlockEntryContext } from '@umbraco-cms/backoffice/block'; import type { UmbContentTypeModel, UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; -import type { UmbBlockGridTypeModel, UmbBlockGridLayoutModel } from '@umbraco-cms/backoffice/block-grid'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, @@ -17,6 +8,15 @@ import { appendToFrozenArray, observeMultiple, } from '@umbraco-cms/backoffice/observable-api'; +import { closestColumnSpanOption } from '../utils/index.js'; +import { UMB_BLOCK_GRID_MANAGER_CONTEXT } from './block-grid-manager.context-token.js'; +import { UMB_BLOCK_GRID_ENTRIES_CONTEXT } from './block-grid-entries.context-token.js'; +import { + type UmbBlockGridScalableContext, + UmbBlockGridScaleManager, +} from './block-grid-scale-manager/block-grid-scale-manager.controller.js'; +import { UmbBlockEntryContext } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockGridTypeModel, UmbBlockGridLayoutModel } from '@umbraco-cms/backoffice/block-grid'; export class UmbBlockGridEntryContext extends UmbBlockEntryContext< diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts index d969f6e914..4fcfdd1f75 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts @@ -1,7 +1,7 @@ -import { closestColumnSpanOption } from '../../utils/index.js'; import { getAccumulatedValueOfIndex, getInterpolatedIndexOfPositionInWeightMap } from '@umbraco-cms/backoffice/utils'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { closestColumnSpanOption } from '../../utils/index.js'; // This might be more generic than Block Grid, but this is where it belongs currently: export interface UmbBlockGridScalableContext extends UmbControllerHost { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.ts index 64b8879589..9b884fb29c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.ts @@ -1,7 +1,3 @@ -import type { UmbBlockGridTypeAreaType } from '../../index.js'; -import { UMB_BLOCK_GRID_DEFAULT_LAYOUT_STYLESHEET } from '../../context/block-grid-manager.context.js'; -import { UMB_BLOCK_GRID_AREA_TYPE_WORKSPACE_MODAL } from '../../components/block-grid-area-config-entry/index.js'; -import { UmbBlockGridAreaTypeEntriesContext } from './block-grid-area-type-entries.context.js'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; @@ -13,6 +9,10 @@ import { import { UmbId } from '@umbraco-cms/backoffice/id'; import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router'; import { incrementString } from '@umbraco-cms/backoffice/utils'; +import { UMB_BLOCK_GRID_AREA_TYPE_WORKSPACE_MODAL } from '../../components/block-grid-area-config-entry/index.js'; +import { UMB_BLOCK_GRID_DEFAULT_LAYOUT_STYLESHEET } from '../../context/block-grid-manager.context.js'; +import type { UmbBlockGridTypeAreaType } from '../../index.js'; +import { UmbBlockGridAreaTypeEntriesContext } from './block-grid-area-type-entries.context.js'; @customElement('umb-property-editor-ui-block-grid-areas-config') export class UmbPropertyEditorUIBlockGridAreasConfigElement @@ -127,7 +127,6 @@ export class UmbPropertyEditorUIBlockGridAreasConfigElement //TODO: open area edit workspace } - // TODO: Needs localizations: override render() { return this._areaGridColumns ? html`${this._styleElement} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts index 433cc5c813..830c8936fd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts @@ -1,5 +1,3 @@ -import { UMB_PROPERTY_DATASET_CONTEXT } from '../property-dataset/index.js'; -import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import { @@ -11,6 +9,8 @@ import { UmbStringState, } from '@umbraco-cms/backoffice/observable-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UMB_PROPERTY_DATASET_CONTEXT } from '../property-dataset/index.js'; +import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import type { UmbPropertyEditorConfigProperty } from '@umbraco-cms/backoffice/property-editor'; import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; From 6ad5f321211e550a989bd6942f8639b955e620db Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 1 Jul 2024 09:25:28 +0200 Subject: [PATCH 56/78] load global components --- .../src/packages/templating/entry-point.ts | 4 ++++ .../src/packages/templating/umbraco-package.ts | 6 ++++++ 2 files changed, 10 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/entry-point.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/entry-point.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/entry-point.ts new file mode 100644 index 0000000000..b3e1814160 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/entry-point.ts @@ -0,0 +1,4 @@ +import './partial-views/global-components/index.js'; +import './scripts/global-components/index.js'; +import './stylesheets/global-components/index.js'; +import './templates/global-components/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/umbraco-package.ts index 7c36d4038e..0aafd8af65 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/umbraco-package.ts @@ -6,4 +6,10 @@ export const extensions = [ type: 'bundle', js: () => import('./manifests.js'), }, + { + name: 'Template Management Backoffice Entry Point', + alias: 'Umb.BackofficeEntryPoint.TemplateManagement', + type: 'backofficeEntryPoint', + js: () => import('./entry-point.js'), + }, ]; From b10c117b8a84f08eed27acf13404c8161e521010 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 1 Jul 2024 09:41:43 +0200 Subject: [PATCH 57/78] add entry point as module --- src/Umbraco.Web.UI.Client/src/packages/templating/vite.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/vite.config.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/vite.config.ts index 3d329ee327..4f5b9cd8e9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/vite.config.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/vite.config.ts @@ -12,6 +12,7 @@ export default defineConfig({ dist, entry: { 'code-editor/index': 'code-editor/index.ts', + 'entry-point': 'entry-point.ts', 'partial-views/index': 'partial-views/index.ts', 'scripts/index': 'scripts/index.ts', 'stylesheets/index': 'stylesheets/index.ts', From a73b18dd913bac8a9430212f50a9aec6512a7574 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 1 Jul 2024 09:48:29 +0200 Subject: [PATCH 58/78] Update package-lock.json --- src/Umbraco.Web.UI.Client/package-lock.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 5326f82c68..54410aa06e 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -20,7 +20,8 @@ "./src/packages/umbraco-news", "./src/packages/webhook", "./src/packages/health-check", - "./src/packages/tags" + "./src/packages/tags", + "./src/packages/templating" ], "dependencies": { "@types/diff": "^5.2.1", @@ -6673,6 +6674,10 @@ "resolved": "src/packages/tags", "link": true }, + "node_modules/@umbraco-backoffice/templating": { + "resolved": "src/packages/templating", + "link": true + }, "node_modules/@umbraco-backoffice/umbraco-news": { "resolved": "src/packages/umbraco-news", "link": true @@ -21265,6 +21270,7 @@ "src/packages/tags": { "name": "@umbraco-backoffice/tag" }, + "src/packages/templating": {}, "src/packages/umbraco-news": { "name": "@umbraco-backoffice/umbraco-news" }, From acead5d844494844513c4e4552267d94875d2d96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 18:27:45 +0000 Subject: [PATCH 59/78] Bump simple-icons from 12.2.0 to 13.0.0 Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 12.2.0 to 13.0.0. - [Release notes](https://github.com/simple-icons/simple-icons/releases) - [Commits](https://github.com/simple-icons/simple-icons/compare/12.2.0...13.0.0) --- updated-dependencies: - dependency-name: simple-icons dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- src/Umbraco.Web.UI.Client/package-lock.json | 8 ++++---- src/Umbraco.Web.UI.Client/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 1f4033931b..08265a8904 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -88,7 +88,7 @@ "rollup-plugin-esbuild": "^6.1.1", "rollup-plugin-import-css": "^3.5.0", "rollup-plugin-web-worker-loader": "^1.6.1", - "simple-icons": "^12.0.0", + "simple-icons": "^13.0.0", "storybook": "^7.6.17", "tiny-glob": "^0.2.9", "tsc-alias": "^1.8.8", @@ -18485,9 +18485,9 @@ "dev": true }, "node_modules/simple-icons": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-12.2.0.tgz", - "integrity": "sha512-q8Qpts9HIW1PP1gdwT2/NqJBgou3XG44Z4xDGvdqFZYG+eINDyHu7PEidHkPFHpP5TLcB9s4Ne70Uy5u83u7Ig==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-13.0.0.tgz", + "integrity": "sha512-emybHoFXO9IorOH8Uy8GwavS1oOQk6bVMxrIAXztNn/EcRc17yHmJM6XpUUd1CcDpax0dHAbpqvGp4hqWlQapg==", "dev": true, "engines": { "node": ">=0.12.18" diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index feec6dd657..63d0742d56 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -255,7 +255,7 @@ "rollup-plugin-esbuild": "^6.1.1", "rollup-plugin-import-css": "^3.5.0", "rollup-plugin-web-worker-loader": "^1.6.1", - "simple-icons": "^12.0.0", + "simple-icons": "^13.0.0", "storybook": "^7.6.17", "tiny-glob": "^0.2.9", "tsc-alias": "^1.8.8", From 21fc726bcd46a478e4eff9a40651c9957429289f Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 2 Jul 2024 10:10:17 +0200 Subject: [PATCH 60/78] chore: add localization --- src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts | 10 ++++++---- src/Umbraco.Web.UI.Client/src/assets/lang/en.ts | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts index 4747f8746d..0a0ec7595d 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts +++ b/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts @@ -1586,8 +1586,7 @@ export default { addProperty: 'Tilføj egenskab', requiredLabel: 'Påkrævet label', enableListViewHeading: 'Aktivér listevisning', - enableListViewDescription: - 'Konfigurér indholdet til at blive vist i en sortérbar og søgbar liste.', + enableListViewDescription: 'Konfigurér indholdet til at blive vist i en sortérbar og søgbar liste.', allowedTemplatesHeading: 'Tilladte skabeloner', allowedTemplatesDescription: 'Vælg hvilke skabeloner, der er tilladt at bruge på dette indhold.', allowAtRootHeading: 'Tillad på rodniveau', @@ -1681,8 +1680,7 @@ export default { changeDataTypeHelpText: 'Changing a data type with stored values is disabled. To allow this you can change the Umbraco:CMS:DataTypes:CanBeChanged setting in appsettings.json.', collections: 'Samlinger', - collectionsDescription: - 'Konfigurerer indholdselementet til at vise listen over dets underordnede elementer.', + collectionsDescription: 'Konfigurerer indholdselementet til at vise listen over dets underordnede elementer.', structure: 'Struktur', presentation: 'Præsentation', }, @@ -2523,4 +2521,8 @@ export default { detailedLevelDescription: '\n We will send:\n
    \n
  • Anonymized site ID, Umbraco version, and packages installed.
  • \n
  • Number of: Root nodes, Content nodes, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.
  • \n
  • System information: Webserver, server OS, server framework, server OS language, and database provider.
  • \n
  • Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.
  • \n
\n We might change what we send on the Detailed level in the future. If so, it will be listed above.\n
By choosing "Detailed" you agree to current and future anonymized information being collected.
\n ', }, + routing: { + routeNotFoundTitle: 'Ikke fundet', + routeNotFoundDescription: 'Den side du leder efter kunne ikke findes. Kontroller adressen og prøv igen.', + }, } as UmbLocalizationDictionary; diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts index e619515a94..52d3d86a1a 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts +++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts @@ -1623,8 +1623,7 @@ export default { editProperty: 'Edit property', requiredLabel: 'Required label', enableListViewHeading: 'Enable list view', - enableListViewDescription: - 'Configures the content item to show a sortable and searchable list of its children.', + enableListViewDescription: 'Configures the content item to show a sortable and searchable list of its children.', allowedTemplatesHeading: 'Allowed Templates', allowedTemplatesDescription: 'Choose which templates editors are allowed to use on content of this type', allowAtRootHeading: 'Allow at root', @@ -1717,8 +1716,7 @@ export default { changeDataTypeHelpText: 'Changing a data type with stored values is disabled. To allow this you can change the Umbraco:CMS:DataTypes:CanBeChanged setting in appsettings.json.', collections: 'Collections', - collectionsDescription: - 'Configures the content item to show list of its children.', + collectionsDescription: 'Configures the content item to show list of its children.', structure: 'Structure', presentation: 'Presentation', }, @@ -2593,4 +2591,8 @@ export default { detailedLevelDescription: 'We will send:\n
    \n
  • Anonymized site ID, Umbraco version, and packages installed.
  • \n
  • Number of: Root nodes, Content nodes, Macros, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.
  • \n
  • System information: Webserver, server OS, server framework, server OS language, and database provider.
  • \n
  • Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.
  • \n
\nWe might change what we send on the Detailed level in the future. If so, it will be listed above.\n
By choosing "Detailed" you agree to current and future anonymized information being collected.
', }, + routing: { + routeNotFoundTitle: 'Not found', + routeNotFoundDescription: 'The requested route could not be found. Please check the URL and try again.', + }, } as UmbLocalizationDictionary; From 53146f915d7d915dd57f01fb2353cd7ac603d424 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 2 Jul 2024 14:50:56 +0200 Subject: [PATCH 61/78] chore: separate the build_test into two different jobs to save time --- .../.github/workflows/build.yml | 40 +++++++++++++++++++ .../workflows/{build_test.yml => test.yml} | 26 +++--------- 2 files changed, 45 insertions(+), 21 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/.github/workflows/build.yml rename src/Umbraco.Web.UI.Client/.github/workflows/{build_test.yml => test.yml} (60%) diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/build.yml b/src/Umbraco.Web.UI.Client/.github/workflows/build.yml new file mode 100644 index 0000000000..97a076af49 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/.github/workflows/build.yml @@ -0,0 +1,40 @@ +# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Build + +on: + push: + branches: + - main + - release/* + pull_request: + branches: + - main + - release/* + + # Allows GitHub to use this workflow to validate the merge queue + merge_group: + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +env: + NODE_OPTIONS: --max_old_space_size=16384 + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version-file: .nvmrc + cache: npm + cache-dependency-path: ./package-lock.json + - run: npm ci --no-audit --no-fund --prefer-offline + - run: npm run lint:errors + - run: npm run build:for:npm + - run: npm run generate:jsonschema:dist diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml b/src/Umbraco.Web.UI.Client/.github/workflows/test.yml similarity index 60% rename from src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml rename to src/Umbraco.Web.UI.Client/.github/workflows/test.yml index 6bccda7c83..199d177548 100644 --- a/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml +++ b/src/Umbraco.Web.UI.Client/.github/workflows/test.yml @@ -1,7 +1,7 @@ # This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions -name: Build and test +name: Test on: push: @@ -26,21 +26,15 @@ jobs: build: runs-on: ubuntu-latest - strategy: - matrix: - node-version: [20] - steps: - uses: actions/checkout@v4 - - name: Use Node.js ${{ matrix.node-version }} + - name: Use Node.js uses: actions/setup-node@v4 with: - node-version: ${{ matrix.node-version }} - cache: 'npm' + node-version-file: .nvmrc + cache: npm + cache-dependency-path: ./package-lock.json - run: npm ci --no-audit --no-fund --prefer-offline - - run: npm run lint:errors - - run: npm run build - - run: npm run generate:jsonschema:dist - run: npx playwright install --with-deps - run: npm test - name: Upload Code Coverage reports @@ -50,13 +44,3 @@ jobs: name: code-coverage path: coverage/ retention-days: 30 - # Commented out since it is outdated and is quite spammy - # - name: Report code coverage - # uses: zgosalvez/github-actions-report-lcov@v2 - # if: always() - # continue-on-error: true - # with: - # coverage-files: coverage/lcov.info - # artifact-name: code-coverage-report - # github-token: ${{ secrets.GITHUB_TOKEN }} - # working-directory: ./ From 79d27f4b0bd7aa61b7194aadc1d193c70d71988f Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 2 Jul 2024 15:00:40 +0200 Subject: [PATCH 62/78] chore: test with `build:for:cms` instead --- src/Umbraco.Web.UI.Client/.github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/build.yml b/src/Umbraco.Web.UI.Client/.github/workflows/build.yml index 97a076af49..4a8f96ea58 100644 --- a/src/Umbraco.Web.UI.Client/.github/workflows/build.yml +++ b/src/Umbraco.Web.UI.Client/.github/workflows/build.yml @@ -36,5 +36,5 @@ jobs: cache-dependency-path: ./package-lock.json - run: npm ci --no-audit --no-fund --prefer-offline - run: npm run lint:errors - - run: npm run build:for:npm + - run: npm run build:for:cms - run: npm run generate:jsonschema:dist From a694e4f0024834f3f9afb951a9c559bcd71305d5 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Jul 2024 16:10:49 +0200 Subject: [PATCH 63/78] format --- src/Umbraco.Web.UI.Client/src/rollup.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/rollup.config.js b/src/Umbraco.Web.UI.Client/src/rollup.config.js index 67dacb42aa..b20eb1cd69 100644 --- a/src/Umbraco.Web.UI.Client/src/rollup.config.js +++ b/src/Umbraco.Web.UI.Client/src/rollup.config.js @@ -84,7 +84,7 @@ const libraries = allowed.map((module) => { preventAssignment: true, values: { '?inline': '', - } + }, }), css({ minify: true }), esbuild({ minify: true, sourceMap: true }), From 73bdef82e3817bd6ec8b9ccd246102d659c963e2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2024 14:23:35 +0000 Subject: [PATCH 64/78] Bump simple-icons from 12.2.0 to 13.0.0 Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 12.2.0 to 13.0.0. - [Release notes](https://github.com/simple-icons/simple-icons/releases) - [Commits](https://github.com/simple-icons/simple-icons/compare/12.2.0...13.0.0) --- updated-dependencies: - dependency-name: simple-icons dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- src/Umbraco.Web.UI.Client/package-lock.json | 8 ++++---- src/Umbraco.Web.UI.Client/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index c1c4159eb0..18c3aa3313 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -89,7 +89,7 @@ "rollup-plugin-esbuild": "^6.1.1", "rollup-plugin-import-css": "^3.5.0", "rollup-plugin-web-worker-loader": "^1.6.1", - "simple-icons": "^12.0.0", + "simple-icons": "^13.0.0", "storybook": "^7.6.17", "tiny-glob": "^0.2.9", "tsc-alias": "^1.8.8", @@ -19361,9 +19361,9 @@ "dev": true }, "node_modules/simple-icons": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-12.4.0.tgz", - "integrity": "sha512-2uL8PHFDyBLQGhZsAvYcaHqm5KjNzIepPshTLZky9Dc6HgPFI83SAVC8of3KYtr+7O8zJggrGYTxyUu/9hyYgA==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-13.0.0.tgz", + "integrity": "sha512-emybHoFXO9IorOH8Uy8GwavS1oOQk6bVMxrIAXztNn/EcRc17yHmJM6XpUUd1CcDpax0dHAbpqvGp4hqWlQapg==", "dev": true, "engines": { "node": ">=0.12.18" diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 14d325f8f2..3e282485bb 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -256,7 +256,7 @@ "rollup-plugin-esbuild": "^6.1.1", "rollup-plugin-import-css": "^3.5.0", "rollup-plugin-web-worker-loader": "^1.6.1", - "simple-icons": "^12.0.0", + "simple-icons": "^13.0.0", "storybook": "^7.6.17", "tiny-glob": "^0.2.9", "tsc-alias": "^1.8.8", From 42d0d8a6da504291d44b74e40efe9d702d06ce97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 2 Jul 2024 19:37:35 +0200 Subject: [PATCH 65/78] remove workspace editor redirect --- .../workspace-editor.element.ts | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts index ccac1676b7..cd5b245d1d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts @@ -71,11 +71,8 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { } as UmbRoute; }); - newRoutes.push({ - path: '', - redirectTo: newRoutes[0]?.path, - }); - + // Duplicate first workspace and use it for the empty path scenario. [NL] + newRoutes.push({ ...newRoutes[0], path: '' }); } newRoutes.push({ @@ -116,15 +113,18 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { ${repeat( this._workspaceViews, (view) => view.alias, - (view) => html` - - - ${view.meta.label ? this.localize.string(view.meta.label) : view.name} - - `, + (view, index) => + // Notice how we use index 0 to determine which workspace that is active with empty path. [NL] + html` + + + ${view.meta.label ? this.localize.string(view.meta.label) : view.name} + + `, )} ` From 46c14d73a63aa8f955f50002f0e97f05a7c9a1fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 2 Jul 2024 19:44:26 +0200 Subject: [PATCH 66/78] additional no route routes --- .../components/backoffice-main.element.ts | 18 ++++++++++-------- .../content-type-design-editor.element.ts | 9 ++++++++- .../views/edit/content-editor.element.ts | 10 +++++----- .../section-main-views.element.ts | 10 +++++++++- .../workspace-editor.element.ts | 10 +++++----- .../user-group-section-view.element.ts | 2 +- 6 files changed, 38 insertions(+), 21 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts index 7b03cfe3d7..3a9ac24397 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts @@ -48,7 +48,9 @@ export class UmbBackofficeMainElement extends UmbLitElement { const newRoutes = this._sections .filter((x) => x.manifest) .map((section) => { - const existingRoute = this._routes.find((r) => r.path === UMB_SECTION_PATH_PATTERN.generateLocal({ sectionName: section.manifest!.meta.pathname })); + const existingRoute = this._routes.find( + (r) => r.path === UMB_SECTION_PATH_PATTERN.generateLocal({ sectionName: section.manifest!.meta.pathname }), + ); if (existingRoute) { return existingRoute; } else { @@ -63,18 +65,18 @@ export class UmbBackofficeMainElement extends UmbLitElement { } }); - if(newRoutes.length > 0 ) { + if (newRoutes.length > 0) { newRoutes.push({ path: ``, - redirectTo: newRoutes[0].path + redirectTo: newRoutes[0].path, + }); + + newRoutes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, }); } - newRoutes.push({ - path: `**`, - component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - }); - this._routes = newRoutes; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor.element.ts index b109a12770..109077161d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor.element.ts @@ -207,7 +207,14 @@ export class UmbContentTypeDesignEditorElement extends UmbLitElement implements redirectTo: routes[0]?.path, guards: [() => this._activeTabId === undefined], }); - // TODO: Look at this case. + } + + if (routes.length !== 0) { + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + guards: [() => this._activeTabId === undefined], + }); } // If we have an active tab name, then we might have a active tab name re-name, then we will redirect to the new name if it has been changed: [NL] diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor.element.ts index 12d1743e26..f37657e16d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/views/edit/content-editor.element.ts @@ -106,12 +106,12 @@ export class UmbContentWorkspaceViewEditElement extends UmbLitElement implements path: '', redirectTo: routes[0]?.path, }); - } - routes.push({ - path: `**`, - component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - }); + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); + } this._routes = routes; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main-views/section-main-views.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main-views/section-main-views.element.ts index d8b7f49b4e..c7ad6fc056 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main-views/section-main-views.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main-views/section-main-views.element.ts @@ -79,7 +79,15 @@ export class UmbSectionMainViewElement extends UmbLitElement { }); const routes = [...dashboardRoutes, ...viewRoutes]; - this._routes = routes?.length > 0 ? [...routes, { path: '', redirectTo: routes?.[0]?.path }] : []; + if (routes.length > 0) { + routes.push({ path: '', redirectTo: routes?.[0]?.path }); + + routes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); + } + this._routes = routes; } override render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts index cd5b245d1d..3a8195caf2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts @@ -73,12 +73,12 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { // Duplicate first workspace and use it for the empty path scenario. [NL] newRoutes.push({ ...newRoutes[0], path: '' }); - } - newRoutes.push({ - path: `**`, - component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - }); + newRoutes.push({ + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }); + } this._routes = newRoutes; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/section-view/user-group-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/section-view/user-group-section-view.element.ts index 53a170f589..4611f0962d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/section-view/user-group-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/section-view/user-group-section-view.element.ts @@ -33,7 +33,7 @@ export class UmbUserGroupSectionViewElement extends UmbLitElement { { path: `**`, component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - } + }, ]; override render() { From b9772e89660142ad8169df31e3b48575659f6327 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 2 Jul 2024 21:46:05 +0200 Subject: [PATCH 67/78] lint fixes --- .../src/assets/lang/en-us.ts | 4 ++-- .../base-extension-initializer.controller.ts | 1 - .../block-grid-area-config-entry.element.ts | 2 +- .../block-grid-area-type-workspace.context.ts | 2 +- .../block-grid-areas-container.element.ts | 2 +- .../context/block-grid-entry.context.ts | 18 +++++++-------- .../block-grid-scale-manager.controller.ts | 2 +- ...itor-ui-block-grid-areas-config.element.ts | 8 +++---- .../block/block-grid/workspace/manifests.ts | 2 +- .../block-grid/workspace/views/manifests.ts | 4 ++-- .../block-list-editor/manifests.ts | 2 +- .../block-type-workspace-editor.element.ts | 2 +- .../workspace/block-type-workspace.context.ts | 4 ++-- .../block/block/workspace/manifests.ts | 2 +- .../core/components/table/table.element.ts | 2 +- .../property/property/property.context.ts | 2 +- .../not-found/route-not-found.element.ts | 5 ++--- .../core/router/router-slot.element.ts | 2 +- .../core/section/section-default.element.ts | 5 ++--- ...ace-split-view-variant-selector.element.ts | 4 ++-- .../workspace-split-view.context.ts | 2 +- .../workspace-split-view.element.ts | 3 +-- .../workspace-route-manager.controller.ts | 16 ++++++-------- ...workspace-split-view-manager.controller.ts | 6 +++-- .../workspace/data-type-workspace.context.ts | 6 ++--- .../workspace/dictionary-workspace.context.ts | 6 ++--- ...ment-blueprint-workspace-editor.element.ts | 6 ++--- .../document-type-workspace.context.ts | 22 +++++++++---------- .../tree-item/document-tree-item.element.ts | 2 +- .../document-user-permission.condition.ts | 2 +- .../document-workspace-editor.element.ts | 6 ++--- .../document-workspace-split-view.element.ts | 2 +- .../dashboard-health-check.element.ts | 5 +++-- .../media-section-view.element.ts | 2 +- .../member-group-section-view.element.ts | 2 +- .../member-section-view.element.ts | 2 +- .../dashboard-examine-management.element.ts | 5 +++-- .../partial-view-workspace.element.ts | 2 +- .../users-section-view.element.ts | 2 +- 39 files changed, 86 insertions(+), 88 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts index 4accb22836..020b2f5683 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts +++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts @@ -2524,6 +2524,6 @@ export default { }, routing: { routeNotFoundTitle: 'Not found', - routeNotFoundDescription: 'The requested route could not be found. Please check the URL and try again.' - } + routeNotFoundDescription: 'The requested route could not be found. Please check the URL and try again.', + }, } as UmbLocalizationDictionary; diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts index 84abaf321c..be3570a7ba 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts @@ -211,7 +211,6 @@ export abstract class UmbBaseExtensionInitializer< // Check if we already have a controller for this config: const existing = this.#conditionControllers.find((controller) => controller.config === conditionConfig); if (!existing) { - // TODO: Be aware that we might not have a host element any longer at this moment, but I did not want to make a fix for it jet, as its a good indication to if something else is terrible wrong [NL] const conditionController = await createExtensionApi(this, conditionManifest, [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.ts index 70b4e30ee5..1254987417 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.ts @@ -1,7 +1,7 @@ +import { UmbBlockGridAreaConfigEntryContext } from './block-grid-area-config-entry.context.js'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { html, css, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbBlockGridAreaConfigEntryContext } from './block-grid-area-config-entry.context.js'; import '../block-grid-block/index.js'; import '../block-scale-handler/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.context.ts index 56f5cd7a32..d9ee93951c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.context.ts @@ -1,3 +1,4 @@ +import type { UmbBlockGridTypeAreaType } from '../../../types.js'; import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import type { @@ -13,7 +14,6 @@ import { UmbArrayState, UmbObjectState, appendToFrozenArray } from '@umbraco-cms import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { ManifestWorkspace, PropertyEditorSettingsProperty } from '@umbraco-cms/backoffice/extension-registry'; -import type { UmbBlockGridTypeAreaType } from '../../../types.js'; export class UmbBlockGridAreaTypeWorkspaceContext extends UmbSubmittableWorkspaceContextBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts index 966d63ce0c..17e2187888 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts @@ -1,6 +1,6 @@ +import { UMB_BLOCK_GRID_MANAGER_CONTEXT } from '../../context/block-grid-manager.context-token.js'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { css, customElement, html, repeat, state } from '@umbraco-cms/backoffice/external/lit'; -import { UMB_BLOCK_GRID_MANAGER_CONTEXT } from '../../context/block-grid-manager.context-token.js'; import { UMB_BLOCK_GRID_ENTRY_CONTEXT, type UmbBlockGridTypeAreaType } from '@umbraco-cms/backoffice/block-grid'; import '../block-grid-entries/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entry.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entry.context.ts index 2821c1f990..f072e4f164 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entry.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-entry.context.ts @@ -1,5 +1,10 @@ -import type { UmbContentTypeModel, UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { closestColumnSpanOption } from '../utils/index.js'; +import { UMB_BLOCK_GRID_MANAGER_CONTEXT } from './block-grid-manager.context-token.js'; +import { UMB_BLOCK_GRID_ENTRIES_CONTEXT } from './block-grid-entries.context-token.js'; +import { + type UmbBlockGridScalableContext, + UmbBlockGridScaleManager, +} from './block-grid-scale-manager/block-grid-scale-manager.controller.js'; import { UmbArrayState, UmbBooleanState, @@ -8,13 +13,8 @@ import { appendToFrozenArray, observeMultiple, } from '@umbraco-cms/backoffice/observable-api'; -import { closestColumnSpanOption } from '../utils/index.js'; -import { UMB_BLOCK_GRID_MANAGER_CONTEXT } from './block-grid-manager.context-token.js'; -import { UMB_BLOCK_GRID_ENTRIES_CONTEXT } from './block-grid-entries.context-token.js'; -import { - type UmbBlockGridScalableContext, - UmbBlockGridScaleManager, -} from './block-grid-scale-manager/block-grid-scale-manager.controller.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbContentTypeModel, UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; import { UmbBlockEntryContext } from '@umbraco-cms/backoffice/block'; import type { UmbBlockGridTypeModel, UmbBlockGridLayoutModel } from '@umbraco-cms/backoffice/block-grid'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts index 4fcfdd1f75..d969f6e914 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts @@ -1,7 +1,7 @@ +import { closestColumnSpanOption } from '../../utils/index.js'; import { getAccumulatedValueOfIndex, getInterpolatedIndexOfPositionInWeightMap } from '@umbraco-cms/backoffice/utils'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { closestColumnSpanOption } from '../../utils/index.js'; // This might be more generic than Block Grid, but this is where it belongs currently: export interface UmbBlockGridScalableContext extends UmbControllerHost { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.ts index 9b884fb29c..3f102682ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-areas-config/property-editor-ui-block-grid-areas-config.element.ts @@ -1,3 +1,7 @@ +import { UMB_BLOCK_GRID_AREA_TYPE_WORKSPACE_MODAL } from '../../components/block-grid-area-config-entry/index.js'; +import { UMB_BLOCK_GRID_DEFAULT_LAYOUT_STYLESHEET } from '../../context/block-grid-manager.context.js'; +import type { UmbBlockGridTypeAreaType } from '../../index.js'; +import { UmbBlockGridAreaTypeEntriesContext } from './block-grid-area-type-entries.context.js'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; @@ -9,10 +13,6 @@ import { import { UmbId } from '@umbraco-cms/backoffice/id'; import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router'; import { incrementString } from '@umbraco-cms/backoffice/utils'; -import { UMB_BLOCK_GRID_AREA_TYPE_WORKSPACE_MODAL } from '../../components/block-grid-area-config-entry/index.js'; -import { UMB_BLOCK_GRID_DEFAULT_LAYOUT_STYLESHEET } from '../../context/block-grid-manager.context.js'; -import type { UmbBlockGridTypeAreaType } from '../../index.js'; -import { UmbBlockGridAreaTypeEntriesContext } from './block-grid-area-type-entries.context.js'; @customElement('umb-property-editor-ui-block-grid-areas-config') export class UmbPropertyEditorUIBlockGridAreasConfigElement diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/manifests.ts index f7b94148ee..09c4468799 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/manifests.ts @@ -1,6 +1,6 @@ -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; import { manifests as workspaceViewManifests } from './views/manifests.js'; import { UMB_BLOCK_GRID_TYPE_WORKSPACE_ALIAS } from './index.js'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array = [ ...workspaceViewManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/manifests.ts index 2d55fb84c3..e50774cc26 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/manifests.ts @@ -1,5 +1,5 @@ -import type { ManifestTypes, ManifestWorkspaceView } from '@umbraco-cms/backoffice/extension-registry'; import { UMB_BLOCK_GRID_TYPE_WORKSPACE_ALIAS } from '../index.js'; +import type { ManifestTypes, ManifestWorkspaceView } from '@umbraco-cms/backoffice/extension-registry'; export const workspaceViews: Array = [ { @@ -53,7 +53,7 @@ export const workspaceViews: Array = [ { alias: 'Umb.Condition.WorkspaceAlias', match: UMB_BLOCK_GRID_TYPE_WORKSPACE_ALIAS, - } + }, ], }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/manifests.ts index bbb50aafbc..c3d07105cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/manifests.ts @@ -1,5 +1,5 @@ -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; import { manifest as blockListSchemaManifest } from './Umbraco.BlockList.js'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS = 'Umbraco.BlockList'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts index 4f08b1c709..18a5dacd63 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts @@ -1,10 +1,10 @@ +import { UMB_BLOCK_TYPE_WORKSPACE_CONTEXT } from './block-type-workspace.context-token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { customElement, css, html, state, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; import type { UmbDocumentTypeItemModel } from '@umbraco-cms/backoffice/document-type'; import { UMB_DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS } from '@umbraco-cms/backoffice/document-type'; -import { UMB_BLOCK_TYPE_WORKSPACE_CONTEXT } from './block-type-workspace.context-token.js'; @customElement('umb-block-type-workspace-editor') export class UmbBlockTypeWorkspaceEditorElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts index 774e6da41a..cbfba97bfc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts @@ -1,3 +1,5 @@ +import type { UmbBlockTypeBaseModel, UmbBlockTypeWithGroupKey } from '../types.js'; +import { UmbBlockTypeWorkspaceEditorElement } from './block-type-workspace-editor.element.js'; import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import type { @@ -12,8 +14,6 @@ import { import { UmbArrayState, UmbObjectState, appendToFrozenArray } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { ManifestWorkspace, PropertyEditorSettingsProperty } from '@umbraco-cms/backoffice/extension-registry'; -import type { UmbBlockTypeBaseModel, UmbBlockTypeWithGroupKey } from '../types.js'; -import { UmbBlockTypeWorkspaceEditorElement } from './block-type-workspace-editor.element.js'; export class UmbBlockTypeWorkspaceContext extends UmbSubmittableWorkspaceContextBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts index c7e905247a..5a2c47ed35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts @@ -75,7 +75,7 @@ export const manifests: Array = [ }, { alias: 'Umb.Condition.BlockWorkspaceHasSettings', - } + }, ], } as any, ]; 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 279c064ffe..cb2b5cbba9 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 @@ -1,3 +1,4 @@ +import type { UmbUfmRenderElement } from '../../../ufm/components/ufm-render/index.js'; import { css, customElement, @@ -9,7 +10,6 @@ import { when, LitElement, } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbUfmRenderElement } from '../../../ufm/components/ufm-render/index.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; // TODO: move to UI Library - entity actions should NOT be moved to UI Library but stay in an UmbTable element diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts index 830c8936fd..9d1ea7be5d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts @@ -1,3 +1,4 @@ +import { UMB_PROPERTY_DATASET_CONTEXT } from '../property-dataset/index.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import { @@ -9,7 +10,6 @@ import { UmbStringState, } from '@umbraco-cms/backoffice/observable-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UMB_PROPERTY_DATASET_CONTEXT } from '../property-dataset/index.js'; import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import type { UmbPropertyEditorConfigProperty } from '@umbraco-cms/backoffice/property-editor'; import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/components/not-found/route-not-found.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/components/not-found/route-not-found.element.ts index 9f57591368..091b0d1473 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/components/not-found/route-not-found.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/components/not-found/route-not-found.element.ts @@ -8,14 +8,13 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; // TODO: Rename and move this file to a more generic place. @customElement('umb-route-not-found') export class UmbRouteNotFoundElement extends UmbLitElement { - override render() { return html`

- `; + `; } static override styles = [ @@ -35,7 +34,7 @@ export class UmbRouteNotFoundElement extends UmbLitElement { align-items: center; height: 100%; opacity: 0; - animation: fadeIn 4s .2s forwards; + animation: fadeIn 4s 0.2s forwards; } @keyframes fadeIn { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot.element.ts index 7d62a52f1c..ae9f336236 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot.element.ts @@ -29,7 +29,7 @@ export class UmbRouterSlotElement extends UmbLitElement { const oldValue = this.#router.routes; if ( value.length !== oldValue?.length || - value.filter((route) => (oldValue?.findIndex((r) => r.path === route.path) === -1)).length > 0 + value.filter((route) => oldValue?.findIndex((r) => r.path === route.path) === -1).length > 0 ) { this.#router.routes = value; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts index f76b1d40e8..863afb248f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts @@ -86,11 +86,10 @@ export class UmbSectionDefaultElement extends UmbLitElement implements UmbSectio const api = await createExtensionApi(this, extensionController.manifest); return { - path: ( + path: api?.getPath?.() || extensionController.manifest.meta?.path || - aliasToPath(extensionController.manifest.alias) - ), + aliasToPath(extensionController.manifest.alias), component: () => createExtensionElement(extensionController.manifest), setup: (element: PageComponent, info: IRoutingInfo) => { api?.setup?.(element, info); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts index 2c2d951f6b..2fd9078243 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts @@ -1,3 +1,5 @@ +import type { ActiveVariant } from '../../controllers/index.js'; +import { UMB_WORKSPACE_SPLIT_VIEW_CONTEXT } from './workspace-split-view.context.js'; import { type UUIInputElement, UUIInputEvent, @@ -6,8 +8,6 @@ import { import { css, html, nothing, customElement, state, query } from '@umbraco-cms/backoffice/external/lit'; import { DocumentVariantStateModel } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbDocumentWorkspaceContext } from '@umbraco-cms/backoffice/document'; -import type { ActiveVariant } from '../../controllers/index.js'; -import { UMB_WORKSPACE_SPLIT_VIEW_CONTEXT } from './workspace-split-view.context.js'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { UMB_PROPERTY_DATASET_CONTEXT, isNameablePropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { UmbLitElement, umbFocus } from '@umbraco-cms/backoffice/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts index 9a39d69ae0..1672a2f81b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts @@ -1,8 +1,8 @@ +import { UMB_VARIANT_WORKSPACE_CONTEXT } from '../../contexts/index.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import { UmbNumberState } from '@umbraco-cms/backoffice/observable-api'; -import { UMB_VARIANT_WORKSPACE_CONTEXT } from '../../contexts/index.js'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts index ab5edb1996..0c3209b02b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts @@ -1,5 +1,5 @@ -import { css, html, customElement, property, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbWorkspaceSplitViewContext } from './workspace-split-view.context.js'; +import { css, html, customElement, property, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -34,7 +34,6 @@ export class UmbWorkspaceSplitViewElement extends UmbLitElement { splitViewContext = new UmbWorkspaceSplitViewContext(this); override render() { - return html` ) { - this.#routes.setValue( - [ - ...routes, - { - path: `**`, - component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - } - ] - ); + this.#routes.setValue([ + ...routes, + { + path: `**`, + component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, + }, + ]); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-split-view-manager.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-split-view-manager.controller.ts index 7833049984..47ac07b29f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-split-view-manager.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-split-view-manager.controller.ts @@ -13,7 +13,9 @@ export type ActiveVariant = { * @description - Class managing the split view state for a workspace context. */ export class UmbWorkspaceSplitViewManager { - #activeVariantsInfo = new UmbArrayState([], (x) => x.index).sortBy((a, b) => (a.index || 0) - (b.index || 0)); + #activeVariantsInfo = new UmbArrayState([], (x) => x.index).sortBy( + (a, b) => (a.index || 0) - (b.index || 0), + ); public readonly activeVariantsInfo = this.#activeVariantsInfo.asObservable(); private _routeBase?: string; @@ -39,7 +41,7 @@ export class UmbWorkspaceSplitViewManager { } public activeVariantByIndex(index: number) { - return this.#activeVariantsInfo.asObservablePart((data) => data.find(x => x.index === index) || undefined); + return this.#activeVariantsInfo.asObservablePart((data) => data.find((x) => x.index === index) || undefined); } public switchVariant(index: number, variantId: UmbVariantId) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts index 2e34d1c926..b5182fd07e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts @@ -1,3 +1,6 @@ +import type { UmbDataTypeDetailModel, UmbDataTypePropertyModel } from '../types.js'; +import { UmbDataTypeDetailRepository } from '../repository/detail/data-type-detail.repository.js'; +import { UmbDataTypeWorkspaceEditorElement } from './data-type-workspace-editor.element.js'; import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import type { UmbInvariantDatasetWorkspaceContext, @@ -25,9 +28,6 @@ import { UmbRequestReloadChildrenOfEntityEvent, UmbRequestReloadStructureForEntityEvent, } from '@umbraco-cms/backoffice/entity-action'; -import type { UmbDataTypeDetailModel, UmbDataTypePropertyModel } from '../types.js'; -import { UmbDataTypeDetailRepository } from '../repository/detail/data-type-detail.repository.js'; -import { UmbDataTypeWorkspaceEditorElement } from './data-type-workspace-editor.element.js'; type EntityType = UmbDataTypeDetailModel; export class UmbDataTypeWorkspaceContext diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts index d6bd9ece08..0445c105ae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts @@ -1,3 +1,6 @@ +import type { UmbDictionaryDetailModel } from '../types.js'; +import { UmbDictionaryDetailRepository } from '../repository/index.js'; +import { UmbDictionaryWorkspaceEditorElement } from './dictionary-workspace-editor.element.js'; import { type UmbSubmittableWorkspaceContext, UmbSubmittableWorkspaceContextBase, @@ -11,9 +14,6 @@ import { UmbRequestReloadChildrenOfEntityEvent, UmbRequestReloadStructureForEntityEvent, } from '@umbraco-cms/backoffice/entity-action'; -import type { UmbDictionaryDetailModel } from '../types.js'; -import { UmbDictionaryDetailRepository } from '../repository/index.js'; -import { UmbDictionaryWorkspaceEditorElement } from './dictionary-workspace-editor.element.js'; export class UmbDictionaryWorkspaceContext extends UmbSubmittableWorkspaceContextBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts index f3c8ac32dc..0f75fd2ac0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts @@ -1,10 +1,10 @@ +import type { UmbDocumentBlueprintVariantOptionModel } from '../types.js'; +import { UMB_DOCUMENT_BLUEPRINT_WORKSPACE_CONTEXT } from './document-blueprint-workspace.context-token.js'; +import { UmbDocumentBlueprintWorkspaceSplitViewElement } from './document-blueprint-workspace-split-view.element.js'; import { customElement, state, css, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; -import type { UmbDocumentBlueprintVariantOptionModel } from '../types.js'; -import { UMB_DOCUMENT_BLUEPRINT_WORKSPACE_CONTEXT } from './document-blueprint-workspace.context-token.js'; -import { UmbDocumentBlueprintWorkspaceSplitViewElement } from './document-blueprint-workspace-split-view.element.js'; @customElement('umb-document-blueprint-workspace-editor') export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index db60bae4ef..a2eb3f1b9c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -1,3 +1,14 @@ +import { + UMB_CREATE_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN, + UMB_CREATE_DOCUMENT_TYPE_WORKSPACE_PRESET_ELEMENT, + UMB_CREATE_DOCUMENT_TYPE_WORKSPACE_PRESET_TEMPLATE, + UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN, + type UmbCreateDocumentTypeWorkspacePresetType, +} from '../paths.js'; +import type { UmbDocumentTypeDetailModel } from '../types.js'; +import { UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../entity.js'; +import { UmbDocumentTypeDetailRepository } from '../repository/detail/document-type-detail.repository.js'; +import { UmbDocumentTypeWorkspaceEditorElement } from './document-type-workspace-editor.element.js'; import { UmbContentTypeStructureManager } from '@umbraco-cms/backoffice/content-type'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { @@ -19,17 +30,6 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbReferenceByUnique } from '@umbraco-cms/backoffice/models'; import type { UmbRoutableWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import type { UmbPathPatternTypeAsEncodedParamsType } from '@umbraco-cms/backoffice/router'; -import { - UMB_CREATE_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN, - UMB_CREATE_DOCUMENT_TYPE_WORKSPACE_PRESET_ELEMENT, - UMB_CREATE_DOCUMENT_TYPE_WORKSPACE_PRESET_TEMPLATE, - UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN, - type UmbCreateDocumentTypeWorkspacePresetType, -} from '../paths.js'; -import type { UmbDocumentTypeDetailModel } from '../types.js'; -import { UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../entity.js'; -import { UmbDocumentTypeDetailRepository } from '../repository/detail/document-type-detail.repository.js'; -import { UmbDocumentTypeWorkspaceEditorElement } from './document-type-workspace-editor.element.js'; type EntityType = UmbDocumentTypeDetailModel; export class UmbDocumentTypeWorkspaceContext diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts index 3fae384c2f..3c5c94c536 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts @@ -1,9 +1,9 @@ +import type { UmbDocumentTreeItemModel, UmbDocumentTreeItemVariantModel } from '../types.js'; import { css, html, nothing, customElement, state, classMap } from '@umbraco-cms/backoffice/external/lit'; import type { UmbAppLanguageContext } from '@umbraco-cms/backoffice/language'; import { UMB_APP_LANGUAGE_CONTEXT } from '@umbraco-cms/backoffice/language'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbTreeItemElementBase } from '@umbraco-cms/backoffice/tree'; -import type { UmbDocumentTreeItemModel, UmbDocumentTreeItemVariantModel } from '../types.js'; @customElement('umb-document-tree-item') export class UmbDocumentTreeItemElement extends UmbTreeItemElementBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/condition/document-user-permission.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/condition/document-user-permission.condition.ts index 8a2721981b..da991c449d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/condition/document-user-permission.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/condition/document-user-permission.condition.ts @@ -1,3 +1,4 @@ +import { isDocumentUserPermission } from '../utils.js'; import { UMB_CURRENT_USER_CONTEXT } from '@umbraco-cms/backoffice/current-user'; import { UMB_ENTITY_CONTEXT } from '@umbraco-cms/backoffice/entity'; import { observeMultiple } from '@umbraco-cms/backoffice/observable-api'; @@ -9,7 +10,6 @@ import type { } from '@umbraco-cms/backoffice/extension-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { DocumentPermissionPresentationModel } from '@umbraco-cms/backoffice/external/backend-api'; -import { isDocumentUserPermission } from '../utils.js'; export class UmbDocumentUserPermissionCondition extends UmbConditionBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts index 5eb630c5ef..0482a812a3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts @@ -1,11 +1,11 @@ +import type { UmbDocumentVariantOptionModel } from '../types.js'; +import { UmbDocumentWorkspaceSplitViewElement } from './document-workspace-split-view.element.js'; +import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from './document-workspace.context-token.js'; import { customElement, state, css, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; import { UMB_APP_LANGUAGE_CONTEXT } from '@umbraco-cms/backoffice/language'; -import type { UmbDocumentVariantOptionModel } from '../types.js'; -import { UmbDocumentWorkspaceSplitViewElement } from './document-workspace-split-view.element.js'; -import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from './document-workspace.context-token.js'; // TODO: This seem fully identical with Media Workspace Editor, so we can refactor this to a generic component. [NL] @customElement('umb-document-workspace-editor') diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts index f9a55662b4..97f56208fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts @@ -1,8 +1,8 @@ +import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from './document-workspace.context-token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import type { ActiveVariant } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from './document-workspace.context-token.js'; @customElement('umb-document-workspace-split-view') export class UmbDocumentWorkspaceSplitViewElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts index 89e68e26fc..ffb79db0a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts @@ -24,10 +24,11 @@ export class UmbDashboardHealthCheckElement extends UmbLitElement { { path: ``, component: () => import('./views/health-check-overview.element.js'), - },{ + }, + { path: `**`, component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - } + }, ]; private _healthCheckDashboardContext = new UmbHealthCheckDashboardContext(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/section-view/media-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/section-view/media-section-view.element.ts index feb392d8f5..8a1f3c6a11 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/section-view/media-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/section-view/media-section-view.element.ts @@ -55,7 +55,7 @@ export class UmbMediaSectionViewElement extends UmbLitElement { { path: `**`, component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - } + }, ]; }, '_observeConfigDataType', diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/section-view/member-group-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/section-view/member-group-section-view.element.ts index 6c26efc387..b4809053c8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/section-view/member-group-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/section-view/member-group-section-view.element.ts @@ -31,7 +31,7 @@ export class UmbMemberGroupSectionViewElement extends UmbLitElement { { path: `**`, component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - } + }, ]; override render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/section-view/member-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/section-view/member-section-view.element.ts index a8e39e82ee..c5ed738500 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/section-view/member-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/section-view/member-section-view.element.ts @@ -31,7 +31,7 @@ export class UmbMemberSectionViewElement extends UmbLitElement { { path: `**`, component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - } + }, ]; override render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts index e3c25b4819..dd9e6043aa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts @@ -28,10 +28,11 @@ export class UmbDashboardExamineManagementElement extends UmbLitElement { { path: ``, component: () => import('./views/section-view-examine-overview.js'), - },{ + }, + { path: `**`, component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - } + }, ]; @state() diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts index ee0161c6f0..18254e9863 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts @@ -47,7 +47,7 @@ export class UmbPartialViewWorkspaceElement extends UmbLitElement { { path: `**`, component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - } + }, ]; constructor() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/users-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/users-section-view.element.ts index cd89bfe71d..002fbf4d92 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/users-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/section-view/users-section-view.element.ts @@ -37,7 +37,7 @@ export class UmbSectionViewUsersElement extends UmbLitElement { { path: `**`, component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement, - } + }, ]; override render() { From 6198197d50d2c795dec8f38b48346577fe5d43a9 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 Jul 2024 09:05:49 +0200 Subject: [PATCH 68/78] chore: merge separate workflows into parallel jobs --- .../.github/workflows/build.yml | 40 ------------------- .../workflows/{test.yml => build_test.yml} | 16 +++++++- 2 files changed, 15 insertions(+), 41 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/.github/workflows/build.yml rename src/Umbraco.Web.UI.Client/.github/workflows/{test.yml => build_test.yml} (73%) diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/build.yml b/src/Umbraco.Web.UI.Client/.github/workflows/build.yml deleted file mode 100644 index 4a8f96ea58..0000000000 --- a/src/Umbraco.Web.UI.Client/.github/workflows/build.yml +++ /dev/null @@ -1,40 +0,0 @@ -# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions - -name: Build - -on: - push: - branches: - - main - - release/* - pull_request: - branches: - - main - - release/* - - # Allows GitHub to use this workflow to validate the merge queue - merge_group: - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -env: - NODE_OPTIONS: --max_old_space_size=16384 - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Use Node.js - uses: actions/setup-node@v4 - with: - node-version-file: .nvmrc - cache: npm - cache-dependency-path: ./package-lock.json - - run: npm ci --no-audit --no-fund --prefer-offline - - run: npm run lint:errors - - run: npm run build:for:cms - - run: npm run generate:jsonschema:dist diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/test.yml b/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml similarity index 73% rename from src/Umbraco.Web.UI.Client/.github/workflows/test.yml rename to src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml index 199d177548..341335e79d 100644 --- a/src/Umbraco.Web.UI.Client/.github/workflows/test.yml +++ b/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml @@ -1,7 +1,7 @@ # This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions -name: Test +name: Build on: push: @@ -25,7 +25,21 @@ env: jobs: build: runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version-file: .nvmrc + cache: npm + cache-dependency-path: ./package-lock.json + - run: npm ci --no-audit --no-fund --prefer-offline + - run: npm run lint:errors + - run: npm run build:for:cms + - run: npm run generate:jsonschema:dist + test: + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Use Node.js From 897bf187bc3f45c430de24bba41b123a77ee5ecb Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 Jul 2024 09:06:34 +0200 Subject: [PATCH 69/78] chore: update the name of workflow --- src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml b/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml index 341335e79d..7c5ee7ee44 100644 --- a/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml +++ b/src/Umbraco.Web.UI.Client/.github/workflows/build_test.yml @@ -1,7 +1,7 @@ # This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions -name: Build +name: Build and test on: push: From e9afe7d2d87a6479ca5060f72e2ae3f3527d9ad5 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Jul 2024 10:40:33 +0200 Subject: [PATCH 70/78] remove unused test --- .../kinds/editable/editable-workspace.test.ts | 22 ------------------- 1 file changed, 22 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.test.ts deleted file mode 100644 index e73403c457..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/editable/editable-workspace.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { UmbEditableWorkspaceElement } from './editable-workspace.element.js'; -import { expect, fixture, html } from '@open-wc/testing'; -import { type UmbTestRunnerWindow, defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; - -describe('UmbEditableWorkspaceElement', () => { - let element: UmbEditableWorkspaceElement; - - beforeEach(async () => { - element = await fixture(html``); - }); - - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbEditableWorkspaceElement); - }); - - if ((window as UmbTestRunnerWindow).__UMBRACO_TEST_RUN_A11Y_TEST) { - it('passes the a11y audit', async () => { - // TODO: should we use shadowDom here? - await expect(element).to.be.accessible(defaultA11yConfig); - }); - } -}); From 14f72dbea91390959ff64ee1b48c020763fc0948 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:04:59 +0200 Subject: [PATCH 71/78] build: ignore src/mocks because of too many false-positives --- src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml b/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml index fbb9d054cd..d81f322cea 100644 --- a/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml +++ b/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml @@ -30,7 +30,7 @@ jobs: with: directory-to-scan: src should-scan-archives: false - ignore-globs: '**/.git/**,*.md,*.mdx,*.stories.ts,*.js' + ignore-globs: '**/.git/**,src/mocks/**/*,*.md,*.mdx,*.stories.ts,*.js' - name: Upload DevSkim scan results to GitHub Security tab uses: github/codeql-action/upload-sarif@v3 From c8f54c834e688229504b88b76736ba777312ef80 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:11:14 +0200 Subject: [PATCH 72/78] correct glob --- src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml b/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml index d81f322cea..0d27f32901 100644 --- a/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml +++ b/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml @@ -30,7 +30,7 @@ jobs: with: directory-to-scan: src should-scan-archives: false - ignore-globs: '**/.git/**,src/mocks/**/*,*.md,*.mdx,*.stories.ts,*.js' + ignore-globs: '**/.git/**,src/mocks/**,*.md,*.mdx,*.stories.ts,*.js' - name: Upload DevSkim scan results to GitHub Security tab uses: github/codeql-action/upload-sarif@v3 From c0db3fcfa0bffa04e51c922a6de8f112398dad25 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:14:16 +0200 Subject: [PATCH 73/78] remove faulty job --- .../.github/workflows/devskim.yml | 38 ------------------- 1 file changed, 38 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml b/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml deleted file mode 100644 index 0d27f32901..0000000000 --- a/src/Umbraco.Web.UI.Client/.github/workflows/devskim.yml +++ /dev/null @@ -1,38 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -name: DevSkim - -on: - push: - branches: - - main - - release/* - schedule: - - cron: '19 14 * * 5' - -jobs: - lint: - name: DevSkim - runs-on: ubuntu-20.04 - permissions: - actions: read - contents: read - security-events: write - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Run DevSkim scanner - uses: microsoft/DevSkim-Action@v1 - with: - directory-to-scan: src - should-scan-archives: false - ignore-globs: '**/.git/**,src/mocks/**,*.md,*.mdx,*.stories.ts,*.js' - - - name: Upload DevSkim scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@v3 - with: - sarif_file: devskim-results.sarif From 567f57423e835ab9791bbef79868658fa94d0025 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:20:00 +0200 Subject: [PATCH 74/78] update packagelock --- src/Umbraco.Web.UI.Client/package-lock.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 3333dc4b2f..2e7be9bc15 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -22275,7 +22275,9 @@ "src/packages/tags": { "name": "@umbraco-backoffice/tag" }, - "src/packages/templating": {}, + "src/packages/templating": { + "name": "@umbraco-backoffice/templating" + }, "src/packages/umbraco-news": { "name": "@umbraco-backoffice/umbraco-news" }, From 01c55e71880dfbbe08e67a18bfd7e6569eb56c61 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:26:55 +0200 Subject: [PATCH 75/78] move missing icons into local svgs --- .../core/icon-registry/icon-dictionary.json | 16 +++++++-------- .../src/packages/core/icon-registry/icons.ts | 20 +++++++++++-------- .../core/icon-registry/icons/icon-azure.ts | 7 ++++++- .../icon-registry/icons/icon-microsoft.ts | 7 ++++++- .../icon-registry/svgs/icon-microsoft.svg | 5 +++++ .../svgs/icon-microsoftazure.svg | 5 +++++ 6 files changed, 42 insertions(+), 18 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microsoft.svg create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microsoftazure.svg diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json index c9667aae86..c23d92367f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json @@ -2451,10 +2451,6 @@ } ], "simpleIcons": [ - { - "name": "icon-azure", - "file": "microsoftazure.svg" - }, { "name": "icon-facebook", "file": "facebook.svg" @@ -2483,10 +2479,6 @@ "name": "icon-mastodon", "file": "mastodon.svg" }, - { - "name": "icon-microsoft", - "file": "microsoft.svg" - }, { "name": "icon-twitter-x", "file": "x.svg" @@ -2496,6 +2488,14 @@ { "name": "icon-umbraco", "file": "icon-umbraco.svg" + }, + { + "name": "icon-microsoft", + "file": "icon-microsoft.svg" + }, + { + "name": "icon-azure", + "file": "icon-microsoftazure.svg" } ] } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons.ts index a6f123db8a..2a59a220a2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons.ts @@ -2099,10 +2099,6 @@ name: "icon-database", path: () => import("./icons/icon-database.js"), },{ -name: "icon-azure", - -path: () => import("./icons/icon-azure.js"), -},{ name: "icon-facebook", path: () => import("./icons/icon-facebook.js"), @@ -2131,10 +2127,6 @@ name: "icon-mastodon", path: () => import("./icons/icon-mastodon.js"), },{ -name: "icon-microsoft", - -path: () => import("./icons/icon-microsoft.js"), -},{ name: "icon-twitter-x", path: () => import("./icons/icon-twitter-x.js"), @@ -2143,6 +2135,14 @@ name: "icon-umbraco", path: () => import("./icons/icon-umbraco.js"), },{ +name: "icon-microsoft", + +path: () => import("./icons/icon-microsoft.js"), +},{ +name: "icon-azure", + +path: () => import("./icons/icon-azure.js"), +},{ name: "icon-art-easel", legacy: true, path: () => import("./icons/icon-art-easel.js"), @@ -2351,6 +2351,10 @@ name: "icon-male-symbol", legacy: true, path: () => import("./icons/icon-male-symbol.js"), },{ +name: "icon-microsoftazure", +legacy: true, +path: () => import("./icons/icon-microsoftazure.js"), +},{ name: "icon-molecular-network", legacy: true, path: () => import("./icons/icon-molecular-network.js"), diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-azure.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-azure.ts index c12ff1b97a..812b7e83ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-azure.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-azure.ts @@ -1 +1,6 @@ -export default `Microsoft Azure`; \ No newline at end of file +export default ` + Microsoft Azure + + +`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-microsoft.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-microsoft.ts index 48d6ba0e9a..61caa12b42 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-microsoft.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-microsoft.ts @@ -1 +1,6 @@ -export default `Microsoft`; \ No newline at end of file +export default ` + Microsoft + + +`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microsoft.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microsoft.svg new file mode 100644 index 0000000000..aceab2c2d7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microsoft.svg @@ -0,0 +1,5 @@ + + Microsoft + + diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microsoftazure.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microsoftazure.svg new file mode 100644 index 0000000000..a42782c0bb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microsoftazure.svg @@ -0,0 +1,5 @@ + + Microsoft Azure + + From 923f219f24181bb380800934c29fcc3013a92bf1 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:30:45 +0200 Subject: [PATCH 76/78] empty outdir before writing icons --- src/Umbraco.Web.UI.Client/devops/icons/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/devops/icons/index.js b/src/Umbraco.Web.UI.Client/devops/icons/index.js index 19e684c7dd..0e35e7815c 100644 --- a/src/Umbraco.Web.UI.Client/devops/icons/index.js +++ b/src/Umbraco.Web.UI.Client/devops/icons/index.js @@ -1,4 +1,4 @@ -import { readFileSync, writeFile, mkdir } from 'fs'; +import { readFileSync, writeFile, mkdir, rmSync } from 'fs'; import * as globModule from 'tiny-glob'; import * as pathModule from 'path'; @@ -15,6 +15,9 @@ const lucideSvgDirectory = 'node_modules/lucide-static/icons'; const simpleIconsSvgDirectory = 'node_modules/simple-icons/icons'; const run = async () => { + // Empty output directory: + rmSync(iconsOutputDirectory, { recursive: true }); + var icons = await collectDictionaryIcons(); icons = await collectDiskIcons(icons); writeIconsToDisk(icons); From 22365ddba20eb23f18f9e1ad5fe648e65908969c Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:31:13 +0200 Subject: [PATCH 77/78] move icons from dictionary to disk --- .../core/icon-registry/icon-dictionary.json | 8 -------- .../src/packages/core/icon-registry/icons.ts | 16 ++++++---------- .../{icon-microsoftazure.svg => icon-azure.svg} | 0 3 files changed, 6 insertions(+), 18 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/{icon-microsoftazure.svg => icon-azure.svg} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json index c23d92367f..e6e06752d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json @@ -2488,14 +2488,6 @@ { "name": "icon-umbraco", "file": "icon-umbraco.svg" - }, - { - "name": "icon-microsoft", - "file": "icon-microsoft.svg" - }, - { - "name": "icon-azure", - "file": "icon-microsoftazure.svg" } ] } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons.ts b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons.ts index 2a59a220a2..8f0b5beb5f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons.ts @@ -2135,14 +2135,6 @@ name: "icon-umbraco", path: () => import("./icons/icon-umbraco.js"), },{ -name: "icon-microsoft", - -path: () => import("./icons/icon-microsoft.js"), -},{ -name: "icon-azure", - -path: () => import("./icons/icon-azure.js"), -},{ name: "icon-art-easel", legacy: true, path: () => import("./icons/icon-art-easel.js"), @@ -2155,6 +2147,10 @@ name: "icon-auction-hammer", legacy: true, path: () => import("./icons/icon-auction-hammer.js"), },{ +name: "icon-azure", +legacy: true, +path: () => import("./icons/icon-azure.js"), +},{ name: "icon-baby-stroller", legacy: true, path: () => import("./icons/icon-baby-stroller.js"), @@ -2351,9 +2347,9 @@ name: "icon-male-symbol", legacy: true, path: () => import("./icons/icon-male-symbol.js"), },{ -name: "icon-microsoftazure", +name: "icon-microsoft", legacy: true, -path: () => import("./icons/icon-microsoftazure.js"), +path: () => import("./icons/icon-microsoft.js"), },{ name: "icon-molecular-network", legacy: true, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microsoftazure.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-azure.svg similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-microsoftazure.svg rename to src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-azure.svg From e44e55b3ddd43a35f2538f1cce43c12a52bfa1d9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Jul 2024 11:57:13 +0200 Subject: [PATCH 78/78] fix test runner log filter --- .../web-test-runner.config.mjs | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs index bb99c1da29..7e570f0e20 100644 --- a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs +++ b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs @@ -12,6 +12,8 @@ if (!['dev', 'prod'].includes(mode)) { throw new Error(`MODE must be "dev" or "prod", was "${mode}"`); } +const silencedLogs = ['Lit is in dev mode.', 'Multiple versions of Lit loaded.']; + /** @type {import('@web/dev-server').DevServerConfig} */ export default { rootDir: '.', @@ -38,6 +40,14 @@ export default { }), esbuildPlugin({ ts: true, tsconfig: './tsconfig.json', target: 'auto', json: true }), ], + filterBrowserLogs(log) { + for (const arg of log.args) { + if (typeof arg === 'string' && silencedLogs.some((l) => arg.includes(l))) { + return false; + } + } + return true; + }, testRunnerHtml: (testFramework, devMode) => ` @@ -59,19 +69,6 @@ export default { -