From 1c6e1323eb552d8c1f5be288fe984781c34f6216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 23 Feb 2024 14:36:23 +0100 Subject: [PATCH] move router and style --- src/Umbraco.Web.UI.Client/package.json | 8 +- .../router/encode-folder-name.function.ts | 0 .../generate-route-path-builder.function.ts | 0 .../{shared => packages/core}/router/index.ts | 11 ++- .../core}/router/route.context.ts | 0 .../core}/router/route.interface.ts | 0 .../core}/router/router-slot-change.event.ts | 0 .../core}/router/router-slot-init.event.ts | 0 .../core}/router/router-slot.element.ts | 0 .../{shared => packages/core}/style/index.ts | 0 .../core}/style/text-style.style.ts | 0 .../router/variant-router-slot.element.ts | 79 ------------------- src/Umbraco.Web.UI.Client/tsconfig.json | 8 +- 13 files changed, 13 insertions(+), 93 deletions(-) rename src/Umbraco.Web.UI.Client/src/{shared => packages/core}/router/encode-folder-name.function.ts (100%) rename src/Umbraco.Web.UI.Client/src/{shared => packages/core}/router/generate-route-path-builder.function.ts (100%) rename src/Umbraco.Web.UI.Client/src/{shared => packages/core}/router/index.ts (88%) rename src/Umbraco.Web.UI.Client/src/{shared => packages/core}/router/route.context.ts (100%) rename src/Umbraco.Web.UI.Client/src/{shared => packages/core}/router/route.interface.ts (100%) rename src/Umbraco.Web.UI.Client/src/{shared => packages/core}/router/router-slot-change.event.ts (100%) rename src/Umbraco.Web.UI.Client/src/{shared => packages/core}/router/router-slot-init.event.ts (100%) rename src/Umbraco.Web.UI.Client/src/{shared => packages/core}/router/router-slot.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/{shared => packages/core}/style/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/{shared => packages/core}/style/text-style.style.ts (100%) delete mode 100644 src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index e1c2990f34..c48471a380 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -14,13 +14,9 @@ "./localization-api": "./dist-cms/libs/localization-api/index.js", "./observable-api": "./dist-cms/libs/observable-api/index.js", "./resources": "./dist-cms/shared/resources/index.js", - "./router": "./dist-cms/shared/router/index.js", - "./style": "./dist-cms/shared/style/index.js", "./action": "./dist-cms/packages/core/action/index.js", - "./icon": "./dist-cms/packages/core/icon-registry/index.js", "./audit-log": "./dist-cms/packages/audit-log/index.js", "./auth": "./dist-cms/packages/core/auth/index.js", - "./models": "./dist-cms/packages/core/models/index.js", "./block-grid": "./dist-cms/packages/block/block-grid/index.js", "./block-list": "./dist-cms/packages/block/block-list/index.js", "./block-rte": "./dist-cms/packages/block/block-rte/index.js", @@ -43,6 +39,7 @@ "./entity-bulk-action": "./dist-cms/packages/core/entity-bulk-action/index.js", "./event": "./dist-cms/packages/core/event/index.js", "./extension-registry": "./dist-cms/packages/core/extension-registry/index.js", + "./icon": "./dist-cms/packages/core/icon-registry/index.js", "./id": "./dist-cms/packages/core/id/index.js", "./language": "./dist-cms/packages/language/index.js", "./lit-element": "./dist-cms/packages/core/lit-element/index.js", @@ -55,6 +52,7 @@ "./member": "./dist-cms/packages/members/member/index.js", "./menu": "./dist-cms/packages/core/menu/index.js", "./modal": "./dist-cms/packages/core/modal/index.js", + "./models": "./dist-cms/packages/core/models/index.js", "./notification": "./dist-cms/packages/core/notification/index.js", "./object-type": "./dist-cms/packages/object-type/index.js", "./package": "./dist-cms/packages/packages/package/index.js", @@ -66,11 +64,13 @@ "./relation-type": "./dist-cms/packages/relations/relation-types/index.js", "./relations": "./dist-cms/packages/relations/relations/index.js", "./repository": "./dist-cms/packages/core/repository/index.js", + "./router": "./dist-cms/packages/core/router/index.js", "./section": "./dist-cms/packages/core/section/index.js", "./server-file-system": "./dist-cms/packages/core/server-file-system/index.js", "./sorter": "./dist-cms/packages/core/sorter/index.js", "./static-file": "./dist-cms/packages/static-file/index.js", "./store": "./dist-cms/packages/core/store/index.js", + "./style": "./dist-cms/packages/core/style/index.js", "./stylesheet": "./dist-cms/packages/templating/stylesheets/index.js", "./tags": "./dist-cms/packages/tags/index.js", "./template": "./dist-cms/packages/templating/templates/index.js", diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/encode-folder-name.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/encode-folder-name.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/encode-folder-name.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/encode-folder-name.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/generate-route-path-builder.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/generate-route-path-builder.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/generate-route-path-builder.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/generate-route-path-builder.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/shared/router/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts index 02f1d354e6..c4b9ff29db 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/router/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/index.ts @@ -1,9 +1,8 @@ export * from '@umbraco-cms/backoffice/external/router-slot'; -export * from './router-slot.element.js'; -export * from './router-slot-change.event.js'; -export * from './router-slot-init.event.js'; -export * from './variant-router-slot.element.js'; +export * from './encode-folder-name.function.js'; +export * from './generate-route-path-builder.function.js'; export * from './route.context.js'; export * from './route.interface.js'; -export * from './generate-route-path-builder.function.js'; -export * from './encode-folder-name.function.js'; +export * from './router-slot-change.event.js'; +export * from './router-slot-init.event.js'; +export * from './router-slot.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/route.context.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/route.context.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/route.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/route.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/route.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/route.interface.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot-change.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot-change.event.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/router-slot-change.event.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot-change.event.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot-init.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot-init.event.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/router-slot-init.event.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot-init.event.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/router/router-slot.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/style/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/style/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/style/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/style/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/style/text-style.style.ts b/src/Umbraco.Web.UI.Client/src/packages/core/style/text-style.style.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/shared/style/text-style.style.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/style/text-style.style.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts b/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts deleted file mode 100644 index 7d06057627..0000000000 --- a/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { UmbRouterSlotElement } from './router-slot.element.js'; -import type { UmbRoute } from './route.interface.js'; -import { customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; - -function variantIdsToString(variantIds: UmbVariantId[]): string { - return variantIds.map((id) => id.toString()).join('_&_'); -} - -/** - * @element umb-variant-router-slot-element - * @description - Component for wrapping Router Slot element, providing - * @extends UmbRouterSlotElement - * @fires {UmbRouterSlotInitEvent} init - fires when the router is connected - * @fires {UmbRouterSlotChangeEvent} change - fires when a path of this router is changed - */ -@customElement('umb-variant-router-slot') -export class UmbVariantRouterSlotElement extends UmbRouterSlotElement { - #variantIds: UmbVariantId[] = []; - - #getPathPrefix() { - return variantIdsToString(this.#variantIds); - } - - #currentPathPrefix = ''; - private _routes?: UmbRoute[]; - public get routes(): UmbRoute[] | undefined { - return this._routes; - } - public set routes(value: UmbRoute[] | undefined) { - this._routes = value; - if (this.#variantIds.length > 0) { - this._updateRoutes(); - } - } - - private _updateRoutes() { - const newPrefix = this.#getPathPrefix(); - if (newPrefix !== this.#currentPathPrefix) { - this.#currentPathPrefix = newPrefix; - const prepend = newPrefix === '' ? '' : newPrefix + '/'; - const mappedRoutes = this._routes?.map((route) => { - return { - ...route, - path: prepend + route.path, - }; - }); - super.routes = mappedRoutes; - this._updateRouterPath(); - } - } - - @property() - public get variantId(): UmbVariantId[] { - return this.#variantIds; - } - public set variantId(value: UmbVariantId[] | UmbVariantId) { - if (Array.isArray(value)) { - this.#variantIds = [...(value as UmbVariantId[])]; - } else if (value) { - this.#variantIds = [value]; - } else { - this.#variantIds = []; - } - if (this._routes) { - this._updateRoutes(); - } - } - - protected _constructAbsoluteRouterPath() { - return super._constructAbsoluteRouterPath() + (this.#currentPathPrefix !== '' ? '/' + this.#currentPathPrefix : ''); - } -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-variant-router-slot': UmbVariantRouterSlotElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index b02d9e1157..67b25a3b4e 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -31,12 +31,8 @@ "@umbraco-cms/backoffice/extension-api": ["./src/libs/extension-api/index.ts"], "@umbraco-cms/backoffice/localization-api": ["./src/libs/localization-api/index.ts"], "@umbraco-cms/backoffice/observable-api": ["./src/libs/observable-api/index.ts"], - "@umbraco-cms/backoffice/models": ["./src/shared/models/index.ts"], "@umbraco-cms/backoffice/resources": ["./src/shared/resources/index.ts"], - "@umbraco-cms/backoffice/router": ["./src/shared/router/index.ts"], - "@umbraco-cms/backoffice/style": ["./src/shared/style/index.ts"], "@umbraco-cms/backoffice/action": ["./src/packages/core/action/index.ts"], - "@umbraco-cms/backoffice/icon": ["./src/packages/core/icon-registry/index.ts"], "@umbraco-cms/backoffice/audit-log": ["./src/packages/audit-log/index.ts"], "@umbraco-cms/backoffice/auth": ["./src/packages/core/auth/index.ts"], "@umbraco-cms/backoffice/block-grid": ["./src/packages/block/block-grid/index.ts"], @@ -61,6 +57,7 @@ "@umbraco-cms/backoffice/entity-bulk-action": ["./src/packages/core/entity-bulk-action/index.ts"], "@umbraco-cms/backoffice/event": ["./src/packages/core/event/index.ts"], "@umbraco-cms/backoffice/extension-registry": ["./src/packages/core/extension-registry/index.ts"], + "@umbraco-cms/backoffice/icon": ["./src/packages/core/icon-registry/index.ts"], "@umbraco-cms/backoffice/id": ["./src/packages/core/id/index.ts"], "@umbraco-cms/backoffice/language": ["./src/packages/language/index.ts"], "@umbraco-cms/backoffice/lit-element": ["./src/packages/core/lit-element/index.ts"], @@ -73,6 +70,7 @@ "@umbraco-cms/backoffice/member": ["./src/packages/members/member/index.ts"], "@umbraco-cms/backoffice/menu": ["./src/packages/core/menu/index.ts"], "@umbraco-cms/backoffice/modal": ["./src/packages/core/modal/index.ts"], + "@umbraco-cms/backoffice/models": ["./src/packages/core/models/index.ts"], "@umbraco-cms/backoffice/notification": ["./src/packages/core/notification/index.ts"], "@umbraco-cms/backoffice/object-type": ["./src/packages/object-type/index.ts"], "@umbraco-cms/backoffice/package": ["./src/packages/packages/package/index.ts"], @@ -84,11 +82,13 @@ "@umbraco-cms/backoffice/relation-type": ["./src/packages/relations/relation-types/index.ts"], "@umbraco-cms/backoffice/relations": ["./src/packages/relations/relations/index.ts"], "@umbraco-cms/backoffice/repository": ["./src/packages/core/repository/index.ts"], + "@umbraco-cms/backoffice/router": ["./src/packages/core/router/index.ts"], "@umbraco-cms/backoffice/section": ["./src/packages/core/section/index.ts"], "@umbraco-cms/backoffice/server-file-system": ["./src/packages/core/server-file-system/index.ts"], "@umbraco-cms/backoffice/sorter": ["./src/packages/core/sorter/index.ts"], "@umbraco-cms/backoffice/static-file": ["./src/packages/static-file/index.ts"], "@umbraco-cms/backoffice/store": ["./src/packages/core/store/index.ts"], + "@umbraco-cms/backoffice/style": ["./src/packages/core/style/index.ts"], "@umbraco-cms/backoffice/stylesheet": ["./src/packages/templating/stylesheets/index.ts"], "@umbraco-cms/backoffice/tags": ["./src/packages/tags/index.ts"], "@umbraco-cms/backoffice/template": ["./src/packages/templating/templates/index.ts"],