From d195ccedd2fa708f6565f3783f78569a87aca168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 13 Mar 2023 13:01:15 +0100 Subject: [PATCH] make property editor interface --- .../libs/property-editor/index.ts | 1 + .../property-editor-element.ts | 6 +++++ .../libs/property-editor/rollup.config.js | 3 +++ .../workspace-property.element.ts | 4 ++-- .../src/core/router/router-slot.element.ts | 24 ------------------- src/Umbraco.Web.UI.Client/tsconfig.json | 23 +++++++++--------- .../web-test-runner.config.mjs | 21 ++++++++-------- 7 files changed, 35 insertions(+), 47 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/libs/property-editor/index.ts create mode 100644 src/Umbraco.Web.UI.Client/libs/property-editor/property-editor-element.ts create mode 100644 src/Umbraco.Web.UI.Client/libs/property-editor/rollup.config.js diff --git a/src/Umbraco.Web.UI.Client/libs/property-editor/index.ts b/src/Umbraco.Web.UI.Client/libs/property-editor/index.ts new file mode 100644 index 0000000000..8637ac2e6d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/property-editor/index.ts @@ -0,0 +1 @@ +export * from './property-editor-element'; diff --git a/src/Umbraco.Web.UI.Client/libs/property-editor/property-editor-element.ts b/src/Umbraco.Web.UI.Client/libs/property-editor/property-editor-element.ts new file mode 100644 index 0000000000..8b081cbdec --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/property-editor/property-editor-element.ts @@ -0,0 +1,6 @@ +import { DataTypePropertyModel } from '@umbraco-cms/backend-api'; + +export interface UmbPropertyEditorElement { + value: unknown; + config: DataTypePropertyModel[]; +} diff --git a/src/Umbraco.Web.UI.Client/libs/property-editor/rollup.config.js b/src/Umbraco.Web.UI.Client/libs/property-editor/rollup.config.js new file mode 100644 index 0000000000..35421e5ce7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/libs/property-editor/rollup.config.js @@ -0,0 +1,3 @@ +import config from '../../utils/rollup.config.js'; + +export default config; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace-property/workspace-property.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace-property/workspace-property.element.ts index c927ef409e..59a9fc51f1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace-property/workspace-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace-property/workspace-property.element.ts @@ -12,6 +12,7 @@ import '../../../../backoffice/shared/components/workspace/workspace-property-la import { UmbObserverController } from '@umbraco-cms/observable-api'; import { UmbLitElement } from '@umbraco-cms/element'; import { DataTypePropertyModel } from '@umbraco-cms/backend-api'; +import { UmbPropertyEditorElement } from '@umbraco-cms/property-editor'; /** * @element umb-workspace-property @@ -133,9 +134,8 @@ export class UmbWorkspacePropertyElement extends UmbLitElement { @state() private _variantDifference?: string; - // TODO: make interface for UMBPropertyEditorElement @state() - private _element?: { value?: any; config?: any } & HTMLElement; // TODO: invent interface for propertyEditorUI. + private _element?: UmbPropertyEditorElement; @state() private _value?: unknown; diff --git a/src/Umbraco.Web.UI.Client/src/core/router/router-slot.element.ts b/src/Umbraco.Web.UI.Client/src/core/router/router-slot.element.ts index 474e5d64a3..1269dcd227 100644 --- a/src/Umbraco.Web.UI.Client/src/core/router/router-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/core/router/router-slot.element.ts @@ -22,30 +22,6 @@ export class UmbRouterSlotElement extends LitElement { return (this.#router as any).routes; } public set routes(value: IRoute[] | undefined) { - /* - Concept for extending routes with modal routes. - const routesWithModals = value?.map((route, i, array) => { - { - path: 'bla/:key/' - component: () => { - return import('.....'); - } - setup: () => { - ... - } - } - - if (route.path === '') { - { - ...route, - path: route.path + '/modal/:modal-alias', - setup: () => { - route.setup?.(); - // Call modal service to open modal. - } - } - }); - */ (this.#router as any).routes = value; } diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index 500796ce4c..4cacd68027 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -20,28 +20,29 @@ "resolveJsonModule": true, "baseUrl": ".", "paths": { - "@umbraco-cms/css": ["libs/css/custom-properties.css"], - "@umbraco-cms/modal": ["libs/modal"], - "@umbraco-cms/models": ["libs/models"], "@umbraco-cms/backend-api": ["libs/backend-api"], + "@umbraco-cms/components/*": ["src/backoffice/components/*"], "@umbraco-cms/context-api": ["libs/context-api"], "@umbraco-cms/controller": ["libs/controller"], + "@umbraco-cms/css": ["libs/css/custom-properties.css"], "@umbraco-cms/element": ["libs/element"], + "@umbraco-cms/entity-action": ["libs/entity-action"], + "@umbraco-cms/events": ["libs/events"], "@umbraco-cms/extensions-api": ["libs/extensions-api"], "@umbraco-cms/extensions-registry": ["libs/extensions-registry"], + "@umbraco-cms/modal": ["libs/modal"], + "@umbraco-cms/models": ["libs/models"], "@umbraco-cms/notification": ["libs/notification"], "@umbraco-cms/observable-api": ["libs/observable-api"], - "@umbraco-cms/events": ["libs/events"], - "@umbraco-cms/entity-action": ["libs/entity-action"], - "@umbraco-cms/workspace": ["libs/workspace"], - "@umbraco-cms/utils": ["libs/utils"], - "@umbraco-cms/router": ["src/core/router"], - "@umbraco-cms/test-utils": ["libs/test-utils"], + "@umbraco-cms/property-editor": ["libs/property-editor"], "@umbraco-cms/repository": ["libs/repository"], "@umbraco-cms/resources": ["libs/resources"], + "@umbraco-cms/router": ["src/core/router"], + "@umbraco-cms/sections/*": ["src/backoffice/sections/*"], "@umbraco-cms/store": ["libs/store"], - "@umbraco-cms/components/*": ["src/backoffice/components/*"], - "@umbraco-cms/sections/*": ["src/backoffice/sections/*"] + "@umbraco-cms/test-utils": ["libs/test-utils"], + "@umbraco-cms/utils": ["libs/utils"], + "@umbraco-cms/workspace": ["libs/workspace"] } }, "include": ["src/**/*.ts", "apps/**/*.ts", "libs/**/*.ts", "e2e/**/*.ts"], 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 d1edd086aa..cd570c5c4d 100644 --- a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs +++ b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs @@ -38,26 +38,27 @@ export default { importMap: { imports: { 'src/': './src/', - '@umbraco-cms/css': './libs/css/custom-properties.css', - '@umbraco-cms/models': './libs/models/index.ts', '@umbraco-cms/backend-api': './libs/backend-api/index.ts', '@umbraco-cms/context-api': './libs/context-api/index.ts', '@umbraco-cms/controller': './libs/controller/index.ts', + '@umbraco-cms/css': './libs/css/custom-properties.css', '@umbraco-cms/element': './libs/element/index.ts', + '@umbraco-cms/entity-action': './libs/entity-action/index.ts', + '@umbraco-cms/events': './libs/events/index.ts', '@umbraco-cms/extensions-api': './libs/extensions-api/index.ts', '@umbraco-cms/extensions-registry': './libs/extensions-registry/index.ts', + '@umbraco-cms/modal': './libs/modal/index.ts', + '@umbraco-cms/models': './libs/models/index.ts', '@umbraco-cms/notification': './libs/notification/index.ts', '@umbraco-cms/observable-api': './libs/observable-api/index.ts', - '@umbraco-cms/events': './libs/events/index.ts', - '@umbraco-cms/entity-action': './libs/entity-action/index.ts', - '@umbraco-cms/workspace': './libs/workspace/index.ts', - '@umbraco-cms/store': './libs/store/index.ts', - '@umbraco-cms/utils': './libs/utils/index.ts', - '@umbraco-cms/test-utils': './libs/test-utils/index.ts', - '@umbraco-cms/resources': './libs/resources/index.ts', + '@umbraco-cms/property-editor': './libs/property-editor/index.ts', '@umbraco-cms/repository': './libs/repository/index.ts', + '@umbraco-cms/resources': './libs/resources/index.ts', '@umbraco-cms/router': './src/core/router/index.ts', - '@umbraco-cms/modal': './libs/modal/index.ts', + '@umbraco-cms/store': './libs/store/index.ts', + '@umbraco-cms/test-utils': './libs/test-utils/index.ts', + '@umbraco-cms/utils': './libs/utils/index.ts', + '@umbraco-cms/workspace': './libs/workspace/index.ts', }, }, },